@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
@@ -0,0 +1,20 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; message_id: number; emoji_id: string }>({
6
+ description: '为消息添加表情回应(贴表情)。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ message_id: z.number().describe('消息 ID'),
10
+ emoji_id: z.string().describe('表情 ID'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['表情回应', 'reaction', '贴表情', 'emoji'],
15
+ async execute({ endpoint_id, message_id, emoji_id }: { endpoint_id: string; message_id: number; emoji_id: string }) {
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ await endpoint.setMsgEmojiLike(message_id, emoji_id);
18
+ return { success: true };
19
+ },
20
+ });
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; message_id: number }>({
6
+ description: '设置群精华消息。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ message_id: z.number().describe('消息 ID'),
10
+ }),
11
+ platforms: ['napcat'],
12
+ tags: ['napcat', 'qq'],
13
+ keywords: ['精华', 'essence', '设精', '加精'],
14
+ permissions: ['platform(napcat,scene_admin)'],
15
+ scopes: ['group'],
16
+ async execute({ endpoint_id, message_id }: { endpoint_id: string; message_id: number }) {
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ await endpoint.setEssenceMsg(message_id);
19
+ return { success: true };
20
+ },
21
+ });
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; group_id: number; file: string }>({
6
+ description: '设置群头像。file 为图片 URL 或 base64。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ group_id: z.number().describe('群号'),
10
+ file: z.string().describe('图片(URL 或 base64)'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['群头像', 'group portrait', '设置群头像'],
15
+ permissions: ['platform(napcat,scene_admin)'],
16
+ scopes: ['group'],
17
+ async execute({ endpoint_id, group_id, file }: { endpoint_id: string; group_id: number; file: string }) {
18
+ const endpoint = getEndpoint(endpoint_id);
19
+ await endpoint.setGroupPortrait(group_id, file);
20
+ return { success: true };
21
+ },
22
+ });
@@ -0,0 +1,20 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; status: number; ext_status?: number }>({
6
+ description: '设置在线状态(在线、隐身、忙碌等)。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ status: z.number().describe('状态码(11=在线, 21=离开, 31=隐身, 41=忙碌, 50=请勿打扰, 60=Q我吧)'),
10
+ ext_status: z.number().optional().describe('扩展状态码'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['在线状态', '隐身', '忙碌', 'online', 'status'],
15
+ async execute({ endpoint_id, status, ext_status }: { endpoint_id: string; status: number; ext_status?: number }) {
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ await endpoint.setOnlineStatus(status, ext_status || 0);
18
+ return { success: true };
19
+ },
20
+ });
@@ -0,0 +1,23 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; nickname: string; company?: string; email?: string; college?: string; personal_note?: string }>({
6
+ description: '修改 QQ 资料(昵称等)。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ nickname: z.string().describe('昵称'),
10
+ company: z.string().optional().describe('公司(可选)'),
11
+ email: z.string().optional().describe('邮箱(可选)'),
12
+ college: z.string().optional().describe('学校(可选)'),
13
+ personal_note: z.string().optional().describe('个人说明(可选)'),
14
+ }),
15
+ platforms: ['napcat'],
16
+ tags: ['napcat', 'qq'],
17
+ keywords: ['修改资料', '设置昵称', 'profile', 'set profile'],
18
+ async execute({ endpoint_id, nickname, company, email, college, personal_note }: { endpoint_id: string; nickname: string; company?: string; email?: string; college?: string; personal_note?: string }) {
19
+ const endpoint = getEndpoint(endpoint_id);
20
+ await endpoint.setQQProfile(nickname, company, email, college, personal_note);
21
+ return { success: true };
22
+ },
23
+ });
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; signature: string }>({
6
+ description: '设置个人签名(个性签名)。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ signature: z.string().describe('签名内容'),
10
+ }),
11
+ platforms: ['napcat'],
12
+ tags: ['napcat', 'qq'],
13
+ keywords: ['签名', '个性签名', 'signature', 'longnick'],
14
+ async execute({ endpoint_id, signature }: { endpoint_id: string; signature: string }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ await endpoint.setSelfLongnick(signature);
17
+ return { success: true };
18
+ },
19
+ });
@@ -0,0 +1,23 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; group_id: number; user_id: number; title: string }>({
6
+ description: '设置群成员专属头衔。需要群主权限。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ group_id: z.number().describe('群号'),
10
+ user_id: z.number().describe('目标成员 QQ 号'),
11
+ title: z.string().describe('头衔文字'),
12
+ }),
13
+ platforms: ['napcat'],
14
+ tags: ['napcat', 'qq'],
15
+ keywords: ['头衔', 'title', '专属头衔', '设置头衔'],
16
+ permissions: ['platform(napcat,scene_owner)'],
17
+ scopes: ['group'],
18
+ async execute({ endpoint_id, group_id, user_id, title }: { endpoint_id: string; group_id: number; user_id: number; title: string }) {
19
+ const endpoint = getEndpoint(endpoint_id);
20
+ await endpoint.setTitle(group_id, user_id, title);
21
+ return { success: true, message: `已设置 ${user_id} 头衔为 "${title}"` };
22
+ },
23
+ });
@@ -0,0 +1,18 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; text: string }>({
6
+ description: '英译中翻译。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ text: z.string().describe('要翻译的英文文本'),
10
+ }),
11
+ platforms: ['napcat'],
12
+ tags: ['napcat', 'qq'],
13
+ keywords: ['翻译', 'translate', '英译中'],
14
+ async execute({ endpoint_id, text }: { endpoint_id: string; text: string }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ return endpoint.translateEn2Zh(text);
17
+ },
18
+ });
@@ -0,0 +1,23 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+
5
+ export default defineTool<{ endpoint_id: string; group_id: number; file: string; name: string; folder?: string }>({
6
+ description: '上传文件到群。file 为本地路径或 URL。',
7
+ inputSchema: z.object({
8
+ endpoint_id: z.string().describe('Endpoint 名称'),
9
+ group_id: z.number().describe('群号'),
10
+ file: z.string().describe('文件路径或 URL'),
11
+ name: z.string().describe('文件名'),
12
+ folder: z.string().optional().describe('目标文件夹 ID(可选)'),
13
+ }),
14
+ platforms: ['napcat'],
15
+ tags: ['napcat', 'qq'],
16
+ keywords: ['上传文件', 'upload file', '群文件'],
17
+ scopes: ['group'],
18
+ async execute({ endpoint_id, group_id, file, name, folder }: { endpoint_id: string; group_id: number; file: string; name: string; folder?: string }) {
19
+ const endpoint = getEndpoint(endpoint_id);
20
+ await endpoint.uploadGroupFile(group_id, file, name, folder);
21
+ return { success: true };
22
+ },
23
+ });
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{useCallback as te,useEffect as ue,useState as P}from"react";import{forwardRef as X,createElement as N}from"react";var S=(...e)=>e.filter((a,u,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===u).join(" ").trim();var B=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var M=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,u,o)=>o?o.toUpperCase():u.toLowerCase());var k=e=>{let a=M(e);return a.charAt(0).toUpperCase()+a.slice(1)};import{forwardRef as z,createElement as R}from"react";var g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var F=e=>{for(let a in e)if(a.startsWith("aria-")||a==="role"||a==="title")return!0;return!1};import{createContext as W,useContext as E,useMemo as ne,createElement as pe}from"react";var V=W({});var D=()=>E(V);var T=z(({color:e,size:a,strokeWidth:u,absoluteStrokeWidth:o,className:s="",children:r,iconNode:i,...h},t)=>{let{size:c=24,strokeWidth:A=2,absoluteStrokeWidth:b=!1,color:U="currentColor",className:O=""}=D()??{},v=o??b?Number(u??A)*24/Number(a??c):u??A;return R("svg",{ref:t,...g,width:a??c??g.width,height:a??c??g.height,stroke:e??U,strokeWidth:v,className:S("lucide",O,s),...!r&&!F(h)&&{"aria-hidden":"true"},...h},[...i.map(([H,G])=>R(H,G)),...Array.isArray(r)?r:[r]])});var d=(e,a)=>{let u=X(({className:o,...s},r)=>N(T,{ref:r,iconNode:a,className:S(`lucide-${B(k(e))}`,`lucide-${e}`,o),...s}));return u.displayName=k(e),u};var K=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],p=d("activity",K);var Z=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],L=d("bot",Z);var Q=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],n=d("loader-circle",Q);var J=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],m=d("refresh-cw",J);var _=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],I=d("users",_);var j=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],x=d("wifi-off",j);var Y=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],C=d("wifi",Y);var y="zhin_api_token",$="zhin_api_base";function ee(){let e=localStorage.getItem($)?.trim();return e?e.replace(/\/$/,""):typeof window<"u"?window.location.origin:""}function ae(){return localStorage.getItem(y)}async function q(e,a){let u=ae(),o=new Headers(a?.headers);u&&o.set("Authorization",`Bearer ${u}`);let s=ee(),r=typeof e=="string"&&e.startsWith("/")?`${s}${e}`:e,i=await fetch(r,{...a,headers:o});return i.status===401&&(localStorage.removeItem(y),window.dispatchEvent(new CustomEvent("zhin:auth-required"))),i}import{jsx as l,jsxs as f}from"react/jsx-runtime";function w(){let[e,a]=P([]),[u,o]=P(!0),[s,r]=P(null),i=te(async()=>{o(!0),r(null);try{let t=await q("/api/napcat/endpoints"),c=await t.json();if(!t.ok||!c.success)throw new Error(c.message||"\u52A0\u8F7D\u5931\u8D25");a(Array.isArray(c.data)?c.data:[])}catch(t){r(t.message),a([])}finally{o(!1)}},[]);ue(()=>{i()},[i]);let h=t=>{switch(t){case"ws":return"\u6B63\u5411 WS";case"wss":return"\u53CD\u5411 WS";case"http":return"HTTP";default:return t}};return f("div",{className:"p-6 max-w-5xl mx-auto space-y-5",children:[f("div",{className:"flex items-center justify-between",children:[f("div",{children:[f("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[l(L,{className:"w-6 h-6"})," NapCat \u7BA1\u7406"]}),l("p",{className:"text-sm text-muted-foreground mt-1",children:"NapCatQQ \u673A\u5668\u4EBA\u6982\u89C8\uFF08OneBot11 + go-cqhttp + NapCat \u6269\u5C55\uFF09"})]}),f("button",{onClick:i,disabled:u,className:"flex items-center gap-1 px-3 py-1.5 rounded bg-blue-500 text-white hover:bg-blue-600 disabled:opacity-50 text-sm",children:[l(m,{className:`w-4 h-4 ${u?"animate-spin":""}`})," \u5237\u65B0"]})]}),s&&l("div",{className:"p-3 bg-red-50 text-red-600 rounded border border-red-200 text-sm dark:bg-red-900/20 dark:text-red-400 dark:border-red-800",children:s}),u?l("div",{className:"flex justify-center py-12",children:l(n,{className:"w-6 h-6 animate-spin text-blue-500"})}):e.length===0?l("div",{className:"text-center text-muted-foreground py-12",children:"\u6682\u65E0 NapCat Endpoint \u5B9E\u4F8B"}):l("div",{className:"grid gap-4 md:grid-cols-2",children:e.map(t=>f("div",{className:"border rounded-lg p-4 bg-card shadow-sm",children:[f("div",{className:"flex items-center justify-between mb-3",children:[l("span",{className:"font-medium text-lg",children:t.name}),t.connected?f("span",{className:"flex items-center gap-1 text-green-600 text-sm",children:[l(C,{className:"w-4 h-4"})," \u5728\u7EBF"]}):f("span",{className:"flex items-center gap-1 text-gray-400 text-sm",children:[l(x,{className:"w-4 h-4"})," \u79BB\u7EBF"]})]}),f("div",{className:"space-y-2 text-sm text-muted-foreground",children:[f("div",{className:"flex items-center gap-1.5",children:[l(I,{className:"w-3.5 h-3.5"}),"\u7FA4 ",t.groupCount," \xB7 \u597D\u53CB ",t.friendCount]}),f("div",{className:"flex items-center gap-1.5",children:[l(p,{className:"w-3.5 h-3.5"}),"\u8FDE\u63A5\u65B9\u5F0F ",h(t.connection)," \xB7 ",t.status]})]})]},t.name))})]})}function ta(e){e.addRoute({path:"/console/napcat",name:"NapCat\u7BA1\u7406",element:e.React.createElement(w,{hostReact:e.React})}),e.addTool({id:"napcat",name:"NapCat",path:"/console/napcat"})}export{ta as register};
1
+ import{useCallback as ta,useEffect as ua,useState as P}from"react";import{forwardRef as X,createElement as N}from"react";var S=(...a)=>a.filter((e,u,o)=>!!e&&e.trim()!==""&&o.indexOf(e)===u).join(" ").trim();var B=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var M=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,u,o)=>o?o.toUpperCase():u.toLowerCase());var k=a=>{let e=M(a);return e.charAt(0).toUpperCase()+e.slice(1)};import{forwardRef as z,createElement as R}from"react";var g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var D=a=>{for(let e in a)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};import{createContext as W,useContext as E,useMemo as na,createElement as pa}from"react";var V=W({});var F=()=>E(V);var T=z(({color:a,size:e,strokeWidth:u,absoluteStrokeWidth:o,className:s="",children:r,iconNode:i,...h},t)=>{let{size:c=24,strokeWidth:A=2,absoluteStrokeWidth:b=!1,color:U="currentColor",className:O=""}=F()??{},v=o??b?Number(u??A)*24/Number(e??c):u??A;return R("svg",{ref:t,...g,width:e??c??g.width,height:e??c??g.height,stroke:a??U,strokeWidth:v,className:S("lucide",O,s),...!r&&!D(h)&&{"aria-hidden":"true"},...h},[...i.map(([H,G])=>R(H,G)),...Array.isArray(r)?r:[r]])});var d=(a,e)=>{let u=X(({className:o,...s},r)=>N(T,{ref:r,iconNode:e,className:S(`lucide-${B(k(a))}`,`lucide-${a}`,o),...s}));return u.displayName=k(a),u};var K=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],p=d("activity",K);var Z=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],L=d("bot",Z);var Q=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],n=d("loader-circle",Q);var J=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],m=d("refresh-cw",J);var _=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],I=d("users",_);var j=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],x=d("wifi-off",j);var Y=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],C=d("wifi",Y);var y="zhin_api_token",$="zhin_api_base";function aa(){let a=localStorage.getItem($)?.trim();return a?a.replace(/\/$/,""):typeof window<"u"?window.location.origin:""}function ea(){return localStorage.getItem(y)}async function q(a,e){let u=ea(),o=new Headers(e?.headers);u&&o.set("Authorization",`Bearer ${u}`);let s=aa(),r=typeof a=="string"&&a.startsWith("/")?`${s}${a}`:a,i=await fetch(r,{...e,headers:o});return i.status===401&&(localStorage.removeItem(y),window.dispatchEvent(new CustomEvent("zhin:auth-required"))),i}import{jsx as l,jsxs as f}from"react/jsx-runtime";function w(){let[a,e]=P([]),[u,o]=P(!0),[s,r]=P(null),i=ta(async()=>{o(!0),r(null);try{let t=await q("/api/napcat/endpoints"),c=await t.json();if(!t.ok||!c.success)throw new Error(c.message||"\u52A0\u8F7D\u5931\u8D25");e(Array.isArray(c.data)?c.data:[])}catch(t){r(t.message),e([])}finally{o(!1)}},[]);ua(()=>{i()},[i]);let h=t=>{switch(t){case"ws":return"\u6B63\u5411 WS";case"wss":return"\u53CD\u5411 WS";case"http":return"HTTP";default:return t}};return f("div",{className:"p-6 max-w-5xl mx-auto space-y-5",children:[f("div",{className:"flex items-center justify-between",children:[f("div",{children:[f("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[l(L,{className:"w-6 h-6"})," NapCat \u7BA1\u7406"]}),l("p",{className:"text-sm text-muted-foreground mt-1",children:"NapCatQQ \u673A\u5668\u4EBA\u6982\u89C8\uFF08OneBot11 + go-cqhttp + NapCat \u6269\u5C55\uFF09"})]}),f("button",{onClick:i,disabled:u,className:"flex items-center gap-1 px-3 py-1.5 rounded bg-blue-500 text-white hover:bg-blue-600 disabled:opacity-50 text-sm",children:[l(m,{className:`w-4 h-4 ${u?"animate-spin":""}`})," \u5237\u65B0"]})]}),s&&l("div",{className:"p-3 bg-red-50 text-red-600 rounded border border-red-200 text-sm dark:bg-red-900/20 dark:text-red-400 dark:border-red-800",children:s}),u?l("div",{className:"flex justify-center py-12",children:l(n,{className:"w-6 h-6 animate-spin text-blue-500"})}):a.length===0?l("div",{className:"text-center text-muted-foreground py-12",children:"\u6682\u65E0 NapCat Endpoint \u5B9E\u4F8B"}):l("div",{className:"grid gap-4 md:grid-cols-2",children:a.map(t=>f("div",{className:"border rounded-lg p-4 bg-card shadow-sm",children:[f("div",{className:"flex items-center justify-between mb-3",children:[l("span",{className:"font-medium text-lg",children:t.name}),t.connected?f("span",{className:"flex items-center gap-1 text-green-600 text-sm",children:[l(C,{className:"w-4 h-4"})," \u5728\u7EBF"]}):f("span",{className:"flex items-center gap-1 text-gray-400 text-sm",children:[l(x,{className:"w-4 h-4"})," \u79BB\u7EBF"]})]}),f("div",{className:"space-y-2 text-sm text-muted-foreground",children:[f("div",{className:"flex items-center gap-1.5",children:[l(I,{className:"w-3.5 h-3.5"}),"\u7FA4 ",t.groupCount," \xB7 \u597D\u53CB ",t.friendCount]}),f("div",{className:"flex items-center gap-1.5",children:[l(p,{className:"w-3.5 h-3.5"}),"\u8FDE\u63A5\u65B9\u5F0F ",h(t.connection)," \xB7 ",t.status]})]})]},t.name))})]})}function te(a){a.addRoute({path:"/console/napcat",name:"NapCat\u7BA1\u7406",element:a.React.createElement(w,{hostReact:a.React})}),a.addTool({id:"napcat",name:"NapCat",path:"/console/napcat"})}export{te as register};
2
2
  /*! Bundled license information:
3
3
 
4
4
  lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs:
@@ -19,7 +19,7 @@ lucide-react/dist/esm/icons/wifi-off.mjs:
19
19
  lucide-react/dist/esm/icons/wifi.mjs:
20
20
  lucide-react/dist/esm/lucide-react.mjs:
21
21
  (**
22
- * @license lucide-react v1.21.0 - ISC
22
+ * @license lucide-react v1.23.0 - ISC
23
23
  *
24
24
  * This source code is licensed under the ISC license.
25
25
  * See the LICENSE file in the root directory of this source tree.
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: 'AI 文字转语音,在群聊中发送 AI 语音消息。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ character: z.string().describe('AI 语音角色 ID(可先用 napcat_get_ai_characters 查询)'),
10
+ text: z.string().describe('要转为语音的文字'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['AI语音', 'TTS', '文字转语音', 'ai record'],
15
+ scopes: ['group'],
16
+ async execute({ endpoint_id, group_id, character, text }) {
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ return endpoint.sendGroupAiRecord(group_id, character, text);
19
+ },
20
+ });
21
+ //# sourceMappingURL=ai_tts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai_tts.js","sourceRoot":"","sources":["../../../agent/tools/ai_tts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA6E;IACpG,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;IAC/C,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAA8E;QAClI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '删除群公告。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ notice_id: z.string().describe('公告 ID'),
10
+ }),
11
+ platforms: ['napcat'],
12
+ tags: ['napcat', 'qq'],
13
+ keywords: ['删除公告', 'delete notice'],
14
+ permissions: ['platform(napcat,scene_admin)'],
15
+ scopes: ['group'],
16
+ async execute({ endpoint_id, group_id, notice_id }) {
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ await endpoint.deleteGroupNotice(group_id, notice_id);
19
+ return { success: true };
20
+ },
21
+ });
22
+ //# sourceMappingURL=del_group_notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"del_group_notice.js","sourceRoot":"","sources":["../../../agent/tools/del_group_notice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA+D;IACtF,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACxC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IACnC,WAAW,EAAE,CAAC,8BAA8B,CAAC;IAC7C,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAgE;QAC9G,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '移除群精华消息。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ message_id: z.number().describe('消息 ID'),
9
+ }),
10
+ platforms: ['napcat'],
11
+ tags: ['napcat', 'qq'],
12
+ keywords: ['取消精华', '移除精华', 'delete essence'],
13
+ permissions: ['platform(napcat,scene_admin)'],
14
+ scopes: ['group'],
15
+ async execute({ endpoint_id, message_id }) {
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ await endpoint.deleteEssenceMsg(message_id);
18
+ return { success: true };
19
+ },
20
+ });
21
+ //# sourceMappingURL=delete_essence_msg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete_essence_msg.js","sourceRoot":"","sources":["../../../agent/tools/delete_essence_msg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA8C;IACrE,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;KACzC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC;IAC5C,WAAW,EAAE,CAAC,8BAA8B,CAAC;IAC7C,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAA+C;QACpF,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '删除好友。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ user_id: z.number().describe('好友 QQ 号'),
9
+ }),
10
+ platforms: ['napcat'],
11
+ tags: ['napcat', 'qq'],
12
+ keywords: ['删除好友', 'delete friend', '删好友'],
13
+ permissions: ['platform(napcat,scene_admin)'],
14
+ async execute({ endpoint_id, user_id }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ await endpoint.deleteFriend(user_id);
17
+ return { success: true };
18
+ },
19
+ });
20
+ //# sourceMappingURL=delete_friend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete_friend.js","sourceRoot":"","sources":["../../../agent/tools/delete_friend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA2C;IAClE,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KACxC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC;IAC1C,WAAW,EAAE,CAAC,8BAA8B,CAAC;IAC7C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAA4C;QAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '下载文件到 NapCat 缓存目录,返回本地路径。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ url: z.string().describe('文件 URL'),
9
+ thread_count: z.number().optional().describe('下载线程数(可选,默认 1)'),
10
+ }),
11
+ platforms: ['napcat'],
12
+ tags: ['napcat', 'qq'],
13
+ keywords: ['下载', 'download', '下载文件'],
14
+ async execute({ endpoint_id, url, thread_count }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ return endpoint.downloadFile(url, thread_count || 1);
17
+ },
18
+ });
19
+ //# sourceMappingURL=download_file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download_file.js","sourceRoot":"","sources":["../../../agent/tools/download_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA8D;IACrF,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC/D,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC;IACpC,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAA+D;QAC3G,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '转发单条消息到指定好友或群。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ target_type: z.enum(['friend', 'group']).describe('friend 或 group'),
9
+ target_id: z.number().describe('目标好友 QQ 号或群号'),
10
+ message_id: z.number().describe('要转发的消息 ID'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['转发', 'forward', '单条转发'],
15
+ async execute({ endpoint_id, target_type, target_id, message_id }) {
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ if (target_type === 'friend')
18
+ await endpoint.forwardFriendSingleMsg(target_id, message_id);
19
+ else
20
+ await endpoint.forwardGroupSingleMsg(target_id, message_id);
21
+ return { success: true };
22
+ },
23
+ });
24
+ //# sourceMappingURL=forward_single_msg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forward_single_msg.js","sourceRoot":"","sources":["../../../agent/tools/forward_single_msg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAKtB;IACD,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC7C,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;IACnC,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAK9D;QACC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,WAAW,KAAK,QAAQ;YAAE,MAAM,QAAQ,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;;YACtF,MAAM,QAAQ,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取 AI 语音角色列表,用于 napcat_ai_tts 的 character 参数。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ }),
10
+ platforms: ['napcat'],
11
+ tags: ['napcat', 'qq'],
12
+ keywords: ['AI角色', 'ai characters', '语音角色'],
13
+ scopes: ['group'],
14
+ async execute({ endpoint_id, group_id }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ return endpoint.getAiCharacters(group_id);
17
+ },
18
+ });
19
+ //# sourceMappingURL=get_ai_characters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_ai_characters.js","sourceRoot":"","sources":["../../../agent/tools/get_ai_characters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,+CAA+C;IAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KACpC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAA6C;QAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取群精华消息列表。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ }),
10
+ platforms: ['napcat'],
11
+ tags: ['napcat', 'qq'],
12
+ keywords: ['精华列表', 'essence list'],
13
+ scopes: ['group'],
14
+ async execute({ endpoint_id, group_id }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ return endpoint.getEssenceMsgList(group_id);
17
+ },
18
+ });
19
+ //# sourceMappingURL=get_essence_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_essence_list.js","sourceRoot":"","sources":["../../../agent/tools/get_essence_list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KACpC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAA6C;QAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取私聊消息历史记录。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ user_id: z.number().describe('QQ 号'),
9
+ message_seq: z.number().optional().describe('起始消息序号(可选)'),
10
+ count: z.number().optional().describe('获取条数(可选)'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['私聊记录', '好友聊天记录', 'friend history'],
15
+ async execute({ endpoint_id, user_id, message_seq, count }) {
16
+ const endpoint = getEndpoint(endpoint_id);
17
+ return endpoint.getFriendMsgHistory(user_id, message_seq, count);
18
+ },
19
+ });
20
+ //# sourceMappingURL=get_friend_msg_history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_friend_msg_history.js","sourceRoot":"","sources":["../../../agent/tools/get_friend_msg_history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAAiF;IACxG,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KAClD,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IAC9C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAkF;QACxI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取群文件下载链接。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ file_id: z.string().describe('文件 ID'),
10
+ busid: z.number().describe('文件类型 ID'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['文件链接', 'file url', '下载文件'],
15
+ scopes: ['group'],
16
+ async execute({ endpoint_id, group_id, file_id, busid }) {
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ return endpoint.getGroupFileUrl(group_id, file_id, busid);
19
+ },
20
+ });
21
+ //# sourceMappingURL=get_group_file_url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_group_file_url.js","sourceRoot":"","sources":["../../../agent/tools/get_group_file_url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA4E;IACnG,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAA6E;QAChI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取群组额外详细信息。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ }),
10
+ platforms: ['napcat'],
11
+ tags: ['napcat', 'qq'],
12
+ keywords: ['群详情', '群额外信息', 'group info ex'],
13
+ scopes: ['group'],
14
+ async execute({ endpoint_id, group_id }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ return endpoint.getGroupInfoEx(group_id);
17
+ },
18
+ });
19
+ //# sourceMappingURL=get_group_info_ex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_group_info_ex.js","sourceRoot":"","sources":["../../../agent/tools/get_group_info_ex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KACpC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC;IAC3C,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAA6C;QAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取群消息历史记录。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ message_seq: z.number().optional().describe('起始消息序号(可选,不传从最新开始)'),
10
+ count: z.number().optional().describe('获取条数(可选)'),
11
+ }),
12
+ platforms: ['napcat'],
13
+ tags: ['napcat', 'qq'],
14
+ keywords: ['群消息历史', '聊天记录', 'message history'],
15
+ scopes: ['group'],
16
+ async execute({ endpoint_id, group_id, message_seq, count }) {
17
+ const endpoint = getEndpoint(endpoint_id);
18
+ return endpoint.getGroupMsgHistory(group_id, message_seq, count);
19
+ },
20
+ });
21
+ //# sourceMappingURL=get_group_msg_history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_group_msg_history.js","sourceRoot":"","sources":["../../../agent/tools/get_group_msg_history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAAkF;IACzG,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KAClD,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC;IAC9C,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAmF;QAC1I,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getEndpoint } from '../../src/napcat-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取群公告列表。',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ group_id: z.number().describe('群号'),
9
+ }),
10
+ platforms: ['napcat'],
11
+ tags: ['napcat', 'qq'],
12
+ keywords: ['群公告', '获取公告', 'get notice'],
13
+ scopes: ['group'],
14
+ async execute({ endpoint_id, group_id }) {
15
+ const endpoint = getEndpoint(endpoint_id);
16
+ return endpoint.getGroupNotice(group_id);
17
+ },
18
+ });
19
+ //# sourceMappingURL=get_group_notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_group_notice.js","sourceRoot":"","sources":["../../../agent/tools/get_group_notice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KACpC,CAAC;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC;IACvC,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAA6C;QAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC"}