@zhin.js/adapter-icqq 6.0.0 → 6.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 (161) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +3 -3
  3. package/{skills/icqq → agent}/PERMITS.md +6 -6
  4. package/agent/tools/announce.ts +21 -0
  5. package/agent/tools/essence.ts +22 -0
  6. package/agent/tools/friend_list.ts +19 -0
  7. package/agent/tools/group_files.ts +27 -0
  8. package/agent/tools/group_invite.ts +20 -0
  9. package/agent/tools/group_list.ts +20 -0
  10. package/agent/tools/group_sign.ts +19 -0
  11. package/agent/tools/list_muted.ts +22 -0
  12. package/agent/tools/poke.ts +20 -0
  13. package/agent/tools/send_user_like.ts +22 -0
  14. package/agent/tools/set_anonymous.ts +22 -0
  15. package/agent/tools/set_title.ts +25 -0
  16. package/dist/index.js +2 -2
  17. package/lib/agent/tools/announce.js +21 -0
  18. package/lib/agent/tools/announce.js.map +1 -0
  19. package/lib/agent/tools/essence.js +22 -0
  20. package/lib/agent/tools/essence.js.map +1 -0
  21. package/lib/agent/tools/friend_list.js +19 -0
  22. package/lib/agent/tools/friend_list.js.map +1 -0
  23. package/lib/agent/tools/group_files.js +29 -0
  24. package/lib/agent/tools/group_files.js.map +1 -0
  25. package/lib/agent/tools/group_invite.js +20 -0
  26. package/lib/agent/tools/group_invite.js.map +1 -0
  27. package/lib/agent/tools/group_list.js +20 -0
  28. package/lib/agent/tools/group_list.js.map +1 -0
  29. package/lib/agent/tools/group_sign.js +19 -0
  30. package/lib/agent/tools/group_sign.js.map +1 -0
  31. package/lib/agent/tools/list_muted.js +23 -0
  32. package/lib/agent/tools/list_muted.js.map +1 -0
  33. package/lib/agent/tools/poke.js +20 -0
  34. package/lib/agent/tools/poke.js.map +1 -0
  35. package/lib/agent/tools/send_user_like.js +22 -0
  36. package/lib/agent/tools/send_user_like.js.map +1 -0
  37. package/lib/agent/tools/set_anonymous.js +22 -0
  38. package/lib/agent/tools/set_anonymous.js.map +1 -0
  39. package/lib/agent/tools/set_title.js +25 -0
  40. package/lib/agent/tools/set_title.js.map +1 -0
  41. package/lib/{adapter.js → src/adapter.js} +13 -6
  42. package/lib/src/adapter.js.map +1 -0
  43. package/lib/src/agent-prompt.js.map +1 -0
  44. package/lib/{cq-message.js → src/cq-message.js} +12 -3
  45. package/lib/src/cq-message.js.map +1 -0
  46. package/lib/{endpoint.js → src/endpoint.js} +130 -63
  47. package/lib/src/endpoint.js.map +1 -0
  48. package/lib/{forward-msg.js → src/forward-msg.js} +4 -1
  49. package/lib/src/forward-msg.js.map +1 -0
  50. package/lib/src/get-msg.js.map +1 -0
  51. package/lib/src/icqq-agent-deps.js +10 -0
  52. package/lib/src/icqq-agent-deps.js.map +1 -0
  53. package/lib/src/icqq-guild.js +115 -0
  54. package/lib/src/icqq-guild.js.map +1 -0
  55. package/lib/{icqq-inbound.js → src/icqq-inbound.js} +15 -5
  56. package/lib/src/icqq-inbound.js.map +1 -0
  57. package/lib/src/icqq-login-assist-bridge.js.map +1 -0
  58. package/lib/{icqq-side-events.js → src/icqq-side-events.js} +28 -92
  59. package/lib/src/icqq-side-events.js.map +1 -0
  60. package/lib/{index.js → src/index.js} +0 -1
  61. package/lib/src/index.js.map +1 -0
  62. package/lib/src/ipc-client.js.map +1 -0
  63. package/lib/src/login-assist-routes.js.map +1 -0
  64. package/lib/src/login-ipc-contract.js.map +1 -0
  65. package/lib/src/outbound-media.js.map +1 -0
  66. package/lib/src/protocol.js.map +1 -0
  67. package/lib/src/routes.js.map +1 -0
  68. package/lib/src/segment-mapper.js +2 -0
  69. package/lib/src/segment-mapper.js.map +1 -0
  70. package/lib/src/tools/index.js +23 -0
  71. package/lib/src/tools/index.js.map +1 -0
  72. package/lib/src/types.js.map +1 -0
  73. package/package.json +25 -21
  74. package/src/adapter.ts +13 -6
  75. package/src/agent-prompt.ts +1 -2
  76. package/src/cq-message.ts +11 -3
  77. package/src/endpoint.ts +158 -82
  78. package/src/forward-msg.ts +2 -2
  79. package/src/icqq-agent-deps.ts +18 -0
  80. package/src/icqq-guild.ts +157 -0
  81. package/src/icqq-inbound.ts +16 -5
  82. package/src/icqq-side-events.ts +33 -118
  83. package/src/index.ts +0 -8
  84. package/src/segment-mapper.ts +1 -0
  85. package/src/tools/index.ts +16 -397
  86. package/src/types.ts +0 -45
  87. package/lib/adapter.d.ts +0 -39
  88. package/lib/adapter.d.ts.map +0 -1
  89. package/lib/adapter.js.map +0 -1
  90. package/lib/agent-prompt.d.ts +0 -3
  91. package/lib/agent-prompt.d.ts.map +0 -1
  92. package/lib/agent-prompt.js.map +0 -1
  93. package/lib/cq-message.d.ts +0 -10
  94. package/lib/cq-message.d.ts.map +0 -1
  95. package/lib/cq-message.js.map +0 -1
  96. package/lib/endpoint.d.ts +0 -99
  97. package/lib/endpoint.d.ts.map +0 -1
  98. package/lib/endpoint.js.map +0 -1
  99. package/lib/forward-msg.d.ts +0 -27
  100. package/lib/forward-msg.d.ts.map +0 -1
  101. package/lib/forward-msg.js.map +0 -1
  102. package/lib/get-msg.d.ts +0 -3
  103. package/lib/get-msg.d.ts.map +0 -1
  104. package/lib/get-msg.js.map +0 -1
  105. package/lib/icqq-inbound.d.ts +0 -130
  106. package/lib/icqq-inbound.d.ts.map +0 -1
  107. package/lib/icqq-inbound.js.map +0 -1
  108. package/lib/icqq-login-assist-bridge.d.ts +0 -5
  109. package/lib/icqq-login-assist-bridge.d.ts.map +0 -1
  110. package/lib/icqq-login-assist-bridge.js.map +0 -1
  111. package/lib/icqq-side-events.d.ts +0 -34
  112. package/lib/icqq-side-events.d.ts.map +0 -1
  113. package/lib/icqq-side-events.js.map +0 -1
  114. package/lib/index.d.ts +0 -20
  115. package/lib/index.d.ts.map +0 -1
  116. package/lib/index.js.map +0 -1
  117. package/lib/ipc-client.d.ts +0 -74
  118. package/lib/ipc-client.d.ts.map +0 -1
  119. package/lib/ipc-client.js.map +0 -1
  120. package/lib/login-assist-routes.d.ts +0 -7
  121. package/lib/login-assist-routes.d.ts.map +0 -1
  122. package/lib/login-assist-routes.js.map +0 -1
  123. package/lib/login-ipc-contract.d.ts +0 -44
  124. package/lib/login-ipc-contract.d.ts.map +0 -1
  125. package/lib/login-ipc-contract.js.map +0 -1
  126. package/lib/outbound-media.d.ts +0 -14
  127. package/lib/outbound-media.d.ts.map +0 -1
  128. package/lib/outbound-media.js.map +0 -1
  129. package/lib/protocol.d.ts +0 -198
  130. package/lib/protocol.d.ts.map +0 -1
  131. package/lib/protocol.js.map +0 -1
  132. package/lib/routes.d.ts +0 -8
  133. package/lib/routes.d.ts.map +0 -1
  134. package/lib/routes.js.map +0 -1
  135. package/lib/tools/index.d.ts +0 -10
  136. package/lib/tools/index.d.ts.map +0 -1
  137. package/lib/tools/index.js +0 -341
  138. package/lib/tools/index.js.map +0 -1
  139. package/lib/types.d.ts +0 -117
  140. package/lib/types.d.ts.map +0 -1
  141. package/lib/types.js.map +0 -1
  142. package/lib/typing-indicator-example.d.ts +0 -108
  143. package/lib/typing-indicator-example.d.ts.map +0 -1
  144. package/lib/typing-indicator-example.js +0 -220
  145. package/lib/typing-indicator-example.js.map +0 -1
  146. package/lib/typing-indicator.d.ts +0 -87
  147. package/lib/typing-indicator.d.ts.map +0 -1
  148. package/lib/typing-indicator.js +0 -229
  149. package/lib/typing-indicator.js.map +0 -1
  150. package/src/typing-indicator-example.ts +0 -269
  151. package/src/typing-indicator.ts +0 -317
  152. /package/lib/{agent-prompt.js → src/agent-prompt.js} +0 -0
  153. /package/lib/{get-msg.js → src/get-msg.js} +0 -0
  154. /package/lib/{icqq-login-assist-bridge.js → src/icqq-login-assist-bridge.js} +0 -0
  155. /package/lib/{ipc-client.js → src/ipc-client.js} +0 -0
  156. /package/lib/{login-assist-routes.js → src/login-assist-routes.js} +0 -0
  157. /package/lib/{login-ipc-contract.js → src/login-ipc-contract.js} +0 -0
  158. /package/lib/{outbound-media.js → src/outbound-media.js} +0 -0
  159. /package/lib/{protocol.js → src/protocol.js} +0 -0
  160. /package/lib/{routes.js → src/routes.js} +0 -0
  161. /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 { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: '获取 Endpoint 的 QQ 群列表',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint 名称'),
8
+ }),
9
+ platforms: ['icqq'],
10
+ tags: ['icqq'],
11
+ async execute({ endpoint_id }) {
12
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
13
+ const groups = Array.from(endpoint.groups.values()).map((g) => ({
14
+ group_id: g.group_id, group_name: g.group_name,
15
+ member_count: g.member_count, max_member_count: g.max_member_count,
16
+ }));
17
+ return { groups: groups.slice(0, 50), count: endpoint.groups.size };
18
+ },
19
+ });
20
+ //# sourceMappingURL=group_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group_list.js","sourceRoot":"","sources":["../../../agent/tools/group_list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA0B;IACjD,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAChD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAA8B;QACvD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;YAC9C,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;SACnE,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: 'QQ 群签到打卡',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint QQ号'),
8
+ group_id: z.number().describe('目标群号'),
9
+ }),
10
+ platforms: ['icqq'],
11
+ tags: ['icqq'],
12
+ async execute({ endpoint_id, group_id }) {
13
+ const { Actions } = await import('../../src/protocol.js');
14
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
15
+ const resp = await endpoint.ipc.request(Actions.GROUP_SIGN, { group_id });
16
+ return { success: resp.ok, message: resp.ok ? '群签到成功' : (resp.error ?? '签到失败') };
17
+ },
18
+ });
19
+ //# sourceMappingURL=group_sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group_sign.js","sourceRoot":"","sources":["../../../agent/tools/group_sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAgD;QACnF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IACnF,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: '查询 QQ 群中当前被禁言的成员列表',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint QQ号'),
8
+ group_id: z.number().describe('目标群号'),
9
+ }),
10
+ platforms: ['icqq'],
11
+ tags: ['icqq'],
12
+ permissions: ['platform(icqq,scene_admin)'],
13
+ async execute({ endpoint_id, group_id }) {
14
+ const { Actions } = await import('../../src/protocol.js');
15
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
16
+ const resp = await endpoint.ipc.request(Actions.GROUP_MUTED_LIST, { group_id });
17
+ if (!resp.ok)
18
+ throw new Error(resp.error ?? '获取禁言列表失败');
19
+ const list = Array.isArray(resp.data) ? resp.data : [];
20
+ return { muted_members: list, count: list.length };
21
+ },
22
+ });
23
+ //# sourceMappingURL=list_muted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_muted.js","sourceRoot":"","sources":["../../../agent/tools/list_muted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA4C;IACnE,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;KACtC,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAgD;QACnF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: '在 QQ 群中对某个成员执行戳一戳互动操作',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint QQ号'),
8
+ group_id: z.number().describe('目标群号'),
9
+ user_id: z.number().describe('要戳的目标成员 QQ号'),
10
+ }),
11
+ platforms: ['icqq'],
12
+ tags: ['icqq'],
13
+ async execute({ endpoint_id, group_id, user_id }) {
14
+ const { Actions } = await import('../../src/protocol.js');
15
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
16
+ const resp = await endpoint.ipc.request(Actions.GROUP_POKE, { group_id, user_id });
17
+ return { success: resp.ok, message: resp.ok ? `已戳了戳 ${user_id}` : (resp.error ?? '戳一戳失败') };
18
+ },
19
+ });
20
+ //# sourceMappingURL=poke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poke.js","sourceRoot":"","sources":["../../../agent/tools/poke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA6D;IACpF,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC5C,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAiE;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;IAC9F,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: '给用户点赞(竖大拇指),每人每天最多 20 次',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint QQ号'),
8
+ user_id: z.number().describe('要点赞的目标用户 QQ号'),
9
+ times: z.number().optional().describe('点赞次数(1-20),默认 1'),
10
+ }),
11
+ platforms: ['icqq'],
12
+ tags: ['icqq'],
13
+ async execute({ endpoint_id, user_id, times }) {
14
+ const { Actions } = await import('../../src/protocol.js');
15
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
16
+ const resp = await endpoint.ipc.request(Actions.FRIEND_LIKE, {
17
+ user_id, times: Math.min(times ?? 1, 20),
18
+ });
19
+ return { success: resp.ok, message: resp.ok ? `已给 ${user_id} 点赞` : (resp.error ?? '点赞失败') };
20
+ },
21
+ });
22
+ //# sourceMappingURL=send_user_like.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send_user_like.js","sourceRoot":"","sources":["../../../agent/tools/send_user_like.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA2D;IAClF,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KACzD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAA+D;QACxG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;YAC3D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IAC9F,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: '开启或关闭 QQ 群的匿名聊天功能',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint QQ号'),
8
+ group_id: z.number().describe('目标群号'),
9
+ enable: z.boolean().optional().describe('true=开启,false=关闭,默认 true'),
10
+ }),
11
+ platforms: ['icqq'],
12
+ tags: ['icqq'],
13
+ permissions: ['platform(icqq,scene_owner)'],
14
+ async execute({ endpoint_id, group_id, enable }) {
15
+ const { Actions } = await import('../../src/protocol.js');
16
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
17
+ const on = enable ?? true;
18
+ const resp = await endpoint.ipc.request(Actions.GROUP_ALLOW_ANONY, { group_id, enable: on });
19
+ return { success: resp.ok, message: resp.ok ? (on ? '已开启匿名聊天' : '已关闭匿名聊天') : (resp.error ?? '操作失败') };
20
+ },
21
+ });
22
+ //# sourceMappingURL=set_anonymous.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_anonymous.js","sourceRoot":"","sources":["../../../agent/tools/set_anonymous.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA8D;IACrF,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACpE,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAkE;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7F,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IACxG,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { defineTool } from '@zhin.js/agent/tools';
2
+ import { z } from 'zod';
3
+ import { getIcqqAgentDeps } from '../../src/icqq-agent-deps.js';
4
+ export default defineTool({
5
+ description: '设置 QQ 群成员的专属头衔',
6
+ inputSchema: z.object({
7
+ endpoint_id: z.string().describe('Endpoint QQ号'),
8
+ group_id: z.number().describe('目标群号'),
9
+ user_id: z.number().describe('目标成员 QQ号'),
10
+ title: z.string().describe('头衔文字'),
11
+ duration: z.number().optional().describe('持续时间(秒),-1永久'),
12
+ }),
13
+ platforms: ['icqq'],
14
+ tags: ['icqq'],
15
+ permissions: ['platform(icqq,scene_owner)'],
16
+ async execute({ endpoint_id, group_id, user_id, title, duration }) {
17
+ const { Actions } = await import('../../src/protocol.js');
18
+ const endpoint = getIcqqAgentDeps().getEndpoint(endpoint_id);
19
+ const resp = await endpoint.ipc.request(Actions.SET_GROUP_TITLE, {
20
+ group_id, user_id, title, duration: duration ?? -1,
21
+ });
22
+ return { success: resp.ok, message: resp.ok ? `已将 ${user_id} 的头衔设为 "${title}"` : (resp.error ?? '设置失败') };
23
+ },
24
+ });
25
+ //# sourceMappingURL=set_title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set_title.js","sourceRoot":"","sources":["../../../agent/tools/set_title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,eAAe,UAAU,CAA+F;IACtH,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;QACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KACzD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAC3C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAmG;QAChK,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE;YAC/D,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;IAC5G,CAAC;CACF,CAAC,CAAC"}
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * ICQQ 适配器 — 通过 @icqqjs/cli 守护进程 IPC 管理 Endpoint 实例
3
3
  */
4
- import { formatCompact, Adapter, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL } from 'zhin.js';
4
+ import { formatCompact, Adapter, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL, ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION } from 'zhin.js';
5
5
  import { IcqqEndpoint } from "./endpoint.js";
6
6
  import { Actions } from "./protocol.js";
7
7
  export class IcqqAdapter extends Adapter {
8
8
  static capabilities = ['inbound', 'outbound'];
9
9
  static outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
10
+ static interactivePolicy = 'text';
11
+ static aiOutboundCapabilities = {
12
+ mentions: true,
13
+ richSegments: ['qrcode', 'html', 'markdown', 'tts'],
14
+ interactive: 'text',
15
+ };
16
+ static aiOutboundExtensions = [ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION];
10
17
  constructor(plugin) {
11
18
  super(plugin, "icqq", []);
12
19
  }
@@ -29,14 +36,14 @@ export class IcqqAdapter extends Adapter {
29
36
  await super.stop();
30
37
  this.logger.debug(formatCompact({ stop: true }));
31
38
  }
32
- // ── IGroupManagement 标准群管方法(通过 IPC) ─────────────────────
39
+ // ── ISceneManagement 标准群管方法(通过 IPC) ─────────────────────
33
40
  getEndpoint(endpointId) {
34
41
  const endpoint = this.endpoints.get(endpointId);
35
42
  if (!endpoint)
36
43
  throw new Error(`Endpoint ${endpointId} 不存在`);
37
44
  return endpoint;
38
45
  }
39
- async kickMember(endpointId, sceneId, userId) {
46
+ async removeMember(endpointId, sceneId, userId) {
40
47
  const endpoint = this.getEndpoint(endpointId);
41
48
  const resp = await endpoint.ipc.request(Actions.GROUP_KICK, {
42
49
  group_id: Number(sceneId),
@@ -58,7 +65,7 @@ export class IcqqAdapter extends Adapter {
58
65
  throw new Error(resp.error ?? "禁言失败");
59
66
  return true;
60
67
  }
61
- async muteAll(endpointId, sceneId, enable = true) {
68
+ async setSceneMuted(endpointId, sceneId, enable = true) {
62
69
  const endpoint = this.getEndpoint(endpointId);
63
70
  const resp = await endpoint.ipc.request(Actions.GROUP_MUTE_ALL, {
64
71
  group_id: Number(sceneId),
@@ -68,7 +75,7 @@ export class IcqqAdapter extends Adapter {
68
75
  throw new Error(resp.error ?? "全员禁言失败");
69
76
  return true;
70
77
  }
71
- async setAdmin(endpointId, sceneId, userId, enable = true) {
78
+ async setModerator(endpointId, sceneId, userId, enable = true) {
72
79
  const endpoint = this.getEndpoint(endpointId);
73
80
  const resp = await endpoint.ipc.request(Actions.SET_GROUP_ADMIN, {
74
81
  group_id: Number(sceneId),
@@ -90,7 +97,7 @@ export class IcqqAdapter extends Adapter {
90
97
  throw new Error(resp.error ?? "设置群名片失败");
91
98
  return true;
92
99
  }
93
- async setGroupName(endpointId, sceneId, name) {
100
+ async renameScene(endpointId, sceneId, name) {
94
101
  const endpoint = this.getEndpoint(endpointId);
95
102
  const resp = await endpoint.ipc.request(Actions.SET_GROUP_NAME, {
96
103
  group_id: Number(sceneId),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-prompt.js","sourceRoot":"","sources":["../../src/agent-prompt.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ function pushCqSegment(segments, type, arg) {
34
34
  segments.push({ type: "video", data: { file: arg } });
35
35
  break;
36
36
  case "reply":
37
- segments.push({ type: "reply", data: { id: arg } });
37
+ segments.push({ type: "reply", data: { message_id: arg } });
38
38
  break;
39
39
  default:
40
40
  segments.push({ type, data: { text: `[${type}:${arg}]` } });
@@ -96,6 +96,12 @@ export function toCqString(content) {
96
96
  case "face":
97
97
  return `[face:${data.id}]`;
98
98
  case "image": {
99
+ const media = data.media;
100
+ if (media?.value) {
101
+ if (media.kind === "base64")
102
+ return `[image:base64://${media.value}]`;
103
+ return `[image:${media.value}]`;
104
+ }
99
105
  const b64 = typeof data.base64 === "string"
100
106
  ? data.base64
101
107
  : typeof data.data === "string"
@@ -106,7 +112,10 @@ export function toCqString(content) {
106
112
  return `[image:${data.file || data.url || data.src}]`;
107
113
  }
108
114
  case "at":
109
- return `[at:${data.qq ?? data.id}]`;
115
+ case "mention": {
116
+ const target = data.target ?? data.qq ?? data.id ?? data.user_id;
117
+ return `[at:${target}]`;
118
+ }
110
119
  case "dice":
111
120
  return "[dice]";
112
121
  case "rps":
@@ -129,7 +138,7 @@ export function toCqString(content) {
129
138
  return `[video:${data.file || data.url}]`;
130
139
  }
131
140
  case "reply":
132
- return `[reply:${data.id}]`;
141
+ return `[reply:${data.message_id ?? data.id}]`;
133
142
  default:
134
143
  return segment.toString(seg);
135
144
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cq-message.js","sourceRoot":"","sources":["../../src/cq-message.ts"],"names":[],"mappings":"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"}