@zhin.js/adapter-napcat 3.0.1 → 4.0.1
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.
- package/CHANGELOG.md +58 -0
- package/README.md +43 -96
- package/adapters/napcat.ts +39 -0
- package/agent/tools/ai_tts.ts +21 -0
- package/agent/tools/del_group_notice.ts +22 -0
- package/agent/tools/delete_essence_msg.ts +21 -0
- package/agent/tools/delete_friend.ts +20 -0
- package/agent/tools/download_file.ts +19 -0
- package/agent/tools/forward_single_msg.ts +32 -0
- package/agent/tools/get_ai_characters.ts +19 -0
- package/agent/tools/get_essence_list.ts +19 -0
- package/agent/tools/get_friend_msg_history.ts +20 -0
- package/agent/tools/get_group_file_url.ts +21 -0
- package/agent/tools/get_group_info_ex.ts +19 -0
- package/agent/tools/get_group_msg_history.ts +21 -0
- package/agent/tools/get_group_notice.ts +19 -0
- package/agent/tools/get_group_root_files.ts +19 -0
- package/agent/tools/get_group_shut_list.ts +19 -0
- package/agent/tools/get_mini_app_ark.ts +22 -0
- package/agent/tools/get_user_status.ts +18 -0
- package/agent/tools/group_sign.ts +20 -0
- package/agent/tools/mark_msg_as_read.ts +19 -0
- package/agent/tools/ocr_image.ts +18 -0
- package/agent/tools/send_forward_msg.ts +31 -0
- package/agent/tools/send_group_notice.ts +23 -0
- package/agent/tools/send_like.ts +20 -0
- package/agent/tools/send_poke.ts +20 -0
- package/agent/tools/set_avatar.ts +19 -0
- package/agent/tools/set_emoji_reaction.ts +20 -0
- package/agent/tools/set_essence_msg.ts +21 -0
- package/agent/tools/set_group_portrait.ts +22 -0
- package/agent/tools/set_online_status.ts +20 -0
- package/agent/tools/set_profile.ts +23 -0
- package/agent/tools/set_signature.ts +19 -0
- package/agent/tools/set_title.ts +23 -0
- package/agent/tools/translate.ts +18 -0
- package/agent/tools/upload_group_file.ts +23 -0
- package/lib/http-endpoint.d.ts +26 -0
- package/lib/http-endpoint.js +147 -0
- package/lib/index.d.ts +11 -21
- package/lib/index.js +10 -59
- package/lib/napcat-agent-deps.d.ts +51 -0
- package/lib/napcat-agent-deps.js +33 -0
- package/lib/napcat-inbound.d.ts +12 -5
- package/lib/napcat-inbound.js +28 -13
- package/lib/onebot-get-msg.d.ts +13 -2
- package/lib/onebot-get-msg.js +0 -1
- package/lib/protocol.d.ts +151 -0
- package/lib/protocol.js +217 -0
- package/lib/webhook.d.ts +2 -0
- package/lib/webhook.js +14 -0
- package/lib/ws-endpoint.d.ts +61 -0
- package/lib/ws-endpoint.js +357 -0
- package/lib/ws-transport.d.ts +13 -0
- package/lib/ws-transport.js +75 -0
- package/lib/ws-types.d.ts +17 -0
- package/lib/ws-types.js +1 -0
- package/lib/wss-auth.d.ts +2 -0
- package/lib/wss-auth.js +16 -0
- package/lib/wss-endpoint.d.ts +25 -0
- package/lib/wss-endpoint.js +157 -0
- package/package.json +48 -32
- package/plugin.ts +13 -0
- package/schema.json +48 -0
- package/src/http-endpoint.ts +197 -0
- package/src/index.ts +66 -82
- package/src/napcat-agent-deps.ts +95 -0
- package/src/napcat-inbound.ts +34 -10
- package/src/onebot-get-msg.ts +8 -2
- package/src/protocol.ts +373 -0
- package/src/webhook.ts +16 -0
- package/src/ws-endpoint.ts +452 -0
- package/src/ws-transport.ts +105 -0
- package/src/ws-types.ts +20 -0
- package/src/wss-auth.ts +17 -0
- package/src/wss-endpoint.ts +205 -0
- package/client/NapCatManagement.tsx +0 -113
- package/client/index.tsx +0 -11
- package/client/tsconfig.json +0 -7
- package/client/utils/api.ts +0 -30
- package/dist/index.js +0 -27
- package/lib/adapter.d.ts +0 -36
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js +0 -102
- package/lib/adapter.js.map +0 -1
- package/lib/agent-prompt.d.ts +0 -3
- package/lib/agent-prompt.d.ts.map +0 -1
- package/lib/agent-prompt.js +0 -106
- package/lib/agent-prompt.js.map +0 -1
- package/lib/endpoint-base.d.ts +0 -144
- package/lib/endpoint-base.d.ts.map +0 -1
- package/lib/endpoint-base.js +0 -341
- package/lib/endpoint-base.js.map +0 -1
- package/lib/endpoint-http.d.ts +0 -17
- package/lib/endpoint-http.d.ts.map +0 -1
- package/lib/endpoint-http.js +0 -106
- package/lib/endpoint-http.js.map +0 -1
- package/lib/endpoint-ws-client.d.ts +0 -20
- package/lib/endpoint-ws-client.d.ts.map +0 -1
- package/lib/endpoint-ws-client.js +0 -139
- package/lib/endpoint-ws-client.js.map +0 -1
- package/lib/endpoint-ws-server.d.ts +0 -20
- package/lib/endpoint-ws-server.d.ts.map +0 -1
- package/lib/endpoint-ws-server.js +0 -137
- package/lib/endpoint-ws-server.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/napcat-inbound.d.ts.map +0 -1
- package/lib/napcat-inbound.js.map +0 -1
- package/lib/onebot-get-msg.d.ts.map +0 -1
- package/lib/onebot-get-msg.js.map +0 -1
- package/lib/routes.d.ts +0 -4
- package/lib/routes.d.ts.map +0 -1
- package/lib/routes.js +0 -61
- package/lib/routes.js.map +0 -1
- package/lib/segment-mapper.d.ts +0 -2
- package/lib/segment-mapper.d.ts.map +0 -1
- package/lib/segment-mapper.js +0 -2
- package/lib/segment-mapper.js.map +0 -1
- package/lib/tools.d.ts +0 -8
- package/lib/tools.d.ts.map +0 -1
- package/lib/tools.js +0 -605
- package/lib/tools.js.map +0 -1
- package/lib/types.d.ts +0 -275
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -6
- package/lib/types.js.map +0 -1
- package/plugin.yml +0 -3
- package/src/adapter.ts +0 -109
- package/src/agent-prompt.ts +0 -116
- package/src/endpoint-base.ts +0 -386
- package/src/endpoint-http.ts +0 -95
- package/src/endpoint-ws-client.ts +0 -137
- package/src/endpoint-ws-server.ts +0 -136
- package/src/routes.ts +0 -61
- package/src/segment-mapper.ts +0 -1
- package/src/tools.ts +0 -632
- package/src/types.ts +0 -266
- /package/{skills/napcat → agent}/PERMITS.md +0 -0
- /package/{skills/napcat/SKILL.md → agent/skills/napcat.md} +0 -0
package/lib/types.d.ts
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NapCat 适配器类型定义
|
|
3
|
-
* 覆盖 OneBot11 标准 + go-cqhttp 扩展 + NapCat 独有 API
|
|
4
|
-
*/
|
|
5
|
-
export interface NapCatConfigBase {
|
|
6
|
-
context: 'napcat';
|
|
7
|
-
name: string;
|
|
8
|
-
access_token?: string;
|
|
9
|
-
}
|
|
10
|
-
/** 正向 WebSocket */
|
|
11
|
-
export interface NapCatWsClientConfig extends NapCatConfigBase {
|
|
12
|
-
connection: 'ws';
|
|
13
|
-
url: string;
|
|
14
|
-
reconnect_interval?: number;
|
|
15
|
-
heartbeat_interval?: number;
|
|
16
|
-
}
|
|
17
|
-
/** 反向 WebSocket */
|
|
18
|
-
export interface NapCatWsServerConfig extends NapCatConfigBase {
|
|
19
|
-
connection: 'wss';
|
|
20
|
-
path: string;
|
|
21
|
-
heartbeat_interval?: number;
|
|
22
|
-
}
|
|
23
|
-
/** HTTP API + POST 上报 */
|
|
24
|
-
export interface NapCatHttpConfig extends NapCatConfigBase {
|
|
25
|
-
connection: 'http';
|
|
26
|
-
/** NapCat HTTP API 地址,如 http://127.0.0.1:3000 */
|
|
27
|
-
http_url: string;
|
|
28
|
-
/** HTTP POST 事件上报接收路径,如 /napcat/post */
|
|
29
|
-
post_path: string;
|
|
30
|
-
/** 轮询间隔(ms),用于 HTTP 心跳检测,默认 30000 */
|
|
31
|
-
poll_interval?: number;
|
|
32
|
-
}
|
|
33
|
-
export type NapCatEndpointConfig = NapCatWsClientConfig | NapCatWsServerConfig | NapCatHttpConfig;
|
|
34
|
-
export interface ApiResponse<T = any> {
|
|
35
|
-
status: string;
|
|
36
|
-
retcode: number;
|
|
37
|
-
data: T;
|
|
38
|
-
echo?: string;
|
|
39
|
-
message?: string;
|
|
40
|
-
wording?: string;
|
|
41
|
-
}
|
|
42
|
-
export interface MessageSegment {
|
|
43
|
-
type: string;
|
|
44
|
-
data: Record<string, any>;
|
|
45
|
-
}
|
|
46
|
-
export interface NapCatEvent {
|
|
47
|
-
post_type: 'message' | 'message_sent' | 'notice' | 'request' | 'meta_event';
|
|
48
|
-
self_id: number;
|
|
49
|
-
time: number;
|
|
50
|
-
}
|
|
51
|
-
export interface NapCatMessageEvent extends NapCatEvent {
|
|
52
|
-
post_type: 'message' | 'message_sent';
|
|
53
|
-
message_type: 'private' | 'group';
|
|
54
|
-
sub_type: string;
|
|
55
|
-
message_id: number;
|
|
56
|
-
user_id: number;
|
|
57
|
-
group_id?: number;
|
|
58
|
-
message: MessageSegment[];
|
|
59
|
-
raw_message: string;
|
|
60
|
-
font: number;
|
|
61
|
-
sender: {
|
|
62
|
-
user_id: number;
|
|
63
|
-
nickname: string;
|
|
64
|
-
card?: string;
|
|
65
|
-
sex?: string;
|
|
66
|
-
age?: number;
|
|
67
|
-
area?: string;
|
|
68
|
-
level?: string;
|
|
69
|
-
role?: 'owner' | 'admin' | 'member';
|
|
70
|
-
title?: string;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
export interface NapCatNoticeEvent extends NapCatEvent {
|
|
74
|
-
post_type: 'notice';
|
|
75
|
-
notice_type: string;
|
|
76
|
-
sub_type?: string;
|
|
77
|
-
group_id?: number;
|
|
78
|
-
user_id?: number;
|
|
79
|
-
operator_id?: number;
|
|
80
|
-
message_id?: number;
|
|
81
|
-
target_id?: number;
|
|
82
|
-
file?: {
|
|
83
|
-
id: string;
|
|
84
|
-
name: string;
|
|
85
|
-
size: number;
|
|
86
|
-
busid: number;
|
|
87
|
-
url?: string;
|
|
88
|
-
};
|
|
89
|
-
duration?: number;
|
|
90
|
-
sender_id?: number;
|
|
91
|
-
title?: string;
|
|
92
|
-
action?: string;
|
|
93
|
-
suffix?: string;
|
|
94
|
-
comment?: string;
|
|
95
|
-
flag?: string;
|
|
96
|
-
}
|
|
97
|
-
export interface NapCatRequestEvent extends NapCatEvent {
|
|
98
|
-
post_type: 'request';
|
|
99
|
-
request_type: 'friend' | 'group';
|
|
100
|
-
sub_type?: string;
|
|
101
|
-
user_id: number;
|
|
102
|
-
group_id?: number;
|
|
103
|
-
comment?: string;
|
|
104
|
-
flag: string;
|
|
105
|
-
}
|
|
106
|
-
export interface NapCatMetaEvent extends NapCatEvent {
|
|
107
|
-
post_type: 'meta_event';
|
|
108
|
-
meta_event_type: string;
|
|
109
|
-
sub_type?: string;
|
|
110
|
-
status?: any;
|
|
111
|
-
interval?: number;
|
|
112
|
-
}
|
|
113
|
-
export interface SenderInfo {
|
|
114
|
-
id: string;
|
|
115
|
-
name: string;
|
|
116
|
-
role?: 'owner' | 'admin' | 'member';
|
|
117
|
-
isOwner?: boolean;
|
|
118
|
-
isAdmin?: boolean;
|
|
119
|
-
card?: string;
|
|
120
|
-
title?: string;
|
|
121
|
-
}
|
|
122
|
-
export interface LoginInfo {
|
|
123
|
-
user_id: number;
|
|
124
|
-
nickname: string;
|
|
125
|
-
}
|
|
126
|
-
export interface StrangerInfo {
|
|
127
|
-
user_id: number;
|
|
128
|
-
nickname: string;
|
|
129
|
-
sex: string;
|
|
130
|
-
age: number;
|
|
131
|
-
qid?: string;
|
|
132
|
-
level?: number;
|
|
133
|
-
login_days?: number;
|
|
134
|
-
}
|
|
135
|
-
export interface FriendInfo {
|
|
136
|
-
user_id: number;
|
|
137
|
-
nickname: string;
|
|
138
|
-
remark: string;
|
|
139
|
-
}
|
|
140
|
-
export interface GroupInfo {
|
|
141
|
-
group_id: number;
|
|
142
|
-
group_name: string;
|
|
143
|
-
group_memo?: string;
|
|
144
|
-
group_create_time?: number;
|
|
145
|
-
group_level?: number;
|
|
146
|
-
member_count: number;
|
|
147
|
-
max_member_count: number;
|
|
148
|
-
}
|
|
149
|
-
export interface GroupMemberInfo {
|
|
150
|
-
group_id: number;
|
|
151
|
-
user_id: number;
|
|
152
|
-
nickname: string;
|
|
153
|
-
card: string;
|
|
154
|
-
sex: string;
|
|
155
|
-
age: number;
|
|
156
|
-
area: string;
|
|
157
|
-
join_time: number;
|
|
158
|
-
last_sent_time: number;
|
|
159
|
-
level: string;
|
|
160
|
-
role: 'owner' | 'admin' | 'member';
|
|
161
|
-
unfriendly: boolean;
|
|
162
|
-
title: string;
|
|
163
|
-
title_expire_time: number;
|
|
164
|
-
card_changeable: boolean;
|
|
165
|
-
shut_up_timestamp?: number;
|
|
166
|
-
}
|
|
167
|
-
export interface MessageInfo {
|
|
168
|
-
time: number;
|
|
169
|
-
message_type: string;
|
|
170
|
-
message_id: number;
|
|
171
|
-
real_id: number;
|
|
172
|
-
sender: {
|
|
173
|
-
user_id: number;
|
|
174
|
-
nickname: string;
|
|
175
|
-
card?: string;
|
|
176
|
-
};
|
|
177
|
-
message: MessageSegment[];
|
|
178
|
-
}
|
|
179
|
-
export interface ForwardMessage {
|
|
180
|
-
messages: Array<{
|
|
181
|
-
content: MessageSegment[];
|
|
182
|
-
sender: {
|
|
183
|
-
nickname: string;
|
|
184
|
-
user_id: number;
|
|
185
|
-
};
|
|
186
|
-
time: number;
|
|
187
|
-
}>;
|
|
188
|
-
}
|
|
189
|
-
export interface GroupHonorInfo {
|
|
190
|
-
group_id: number;
|
|
191
|
-
current_talkative?: {
|
|
192
|
-
user_id: number;
|
|
193
|
-
nickname: string;
|
|
194
|
-
avatar: string;
|
|
195
|
-
day_count: number;
|
|
196
|
-
};
|
|
197
|
-
talkative_list?: any[];
|
|
198
|
-
performer_list?: any[];
|
|
199
|
-
legend_list?: any[];
|
|
200
|
-
strong_newbie_list?: any[];
|
|
201
|
-
emotion_list?: any[];
|
|
202
|
-
}
|
|
203
|
-
export interface EssenceMessage {
|
|
204
|
-
sender_id: number;
|
|
205
|
-
sender_nick: string;
|
|
206
|
-
sender_time: number;
|
|
207
|
-
operator_id: number;
|
|
208
|
-
operator_nick: string;
|
|
209
|
-
operator_time: number;
|
|
210
|
-
message_id: number;
|
|
211
|
-
}
|
|
212
|
-
export interface GroupFileSystemInfo {
|
|
213
|
-
file_count: number;
|
|
214
|
-
limit_count: number;
|
|
215
|
-
used_space: number;
|
|
216
|
-
total_space: number;
|
|
217
|
-
}
|
|
218
|
-
export interface GroupFileInfo {
|
|
219
|
-
files: Array<{
|
|
220
|
-
group_id: number;
|
|
221
|
-
file_id: string;
|
|
222
|
-
file_name: string;
|
|
223
|
-
busid: number;
|
|
224
|
-
file_size: number;
|
|
225
|
-
upload_time: number;
|
|
226
|
-
dead_time: number;
|
|
227
|
-
modify_time: number;
|
|
228
|
-
download_times: number;
|
|
229
|
-
uploader: number;
|
|
230
|
-
uploader_name: string;
|
|
231
|
-
}>;
|
|
232
|
-
folders: Array<{
|
|
233
|
-
group_id: number;
|
|
234
|
-
folder_id: string;
|
|
235
|
-
folder_name: string;
|
|
236
|
-
create_time: number;
|
|
237
|
-
creator: number;
|
|
238
|
-
creator_name: string;
|
|
239
|
-
total_file_count: number;
|
|
240
|
-
}>;
|
|
241
|
-
}
|
|
242
|
-
export interface GroupNotice {
|
|
243
|
-
sender_id: number;
|
|
244
|
-
publish_time: number;
|
|
245
|
-
message: {
|
|
246
|
-
text: string;
|
|
247
|
-
images?: Array<{
|
|
248
|
-
id: string;
|
|
249
|
-
height: string;
|
|
250
|
-
width: string;
|
|
251
|
-
}>;
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
export interface VersionInfo {
|
|
255
|
-
app_name: string;
|
|
256
|
-
app_version: string;
|
|
257
|
-
protocol_version: string;
|
|
258
|
-
[key: string]: any;
|
|
259
|
-
}
|
|
260
|
-
export interface OnlineStatus {
|
|
261
|
-
status: number;
|
|
262
|
-
ext_status: number;
|
|
263
|
-
}
|
|
264
|
-
export interface AiCharacter {
|
|
265
|
-
character_id: string;
|
|
266
|
-
character_name: string;
|
|
267
|
-
preview_url?: string;
|
|
268
|
-
}
|
|
269
|
-
export interface CollectionItem {
|
|
270
|
-
id: string;
|
|
271
|
-
type: number;
|
|
272
|
-
content: string;
|
|
273
|
-
create_time: number;
|
|
274
|
-
}
|
|
275
|
-
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
DELETED
package/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/plugin.yml
DELETED
package/src/adapter.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NapCat 适配器:支持正向 WS / 反向 WS / HTTP
|
|
3
|
-
*/
|
|
4
|
-
import { formatCompact, Adapter, Plugin, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL, ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION } from 'zhin.js';
|
|
5
|
-
import type { Router } from '@zhin.js/host-router';
|
|
6
|
-
import { NapCatWsClient } from './endpoint-ws-client.js';
|
|
7
|
-
import { NapCatWsServer } from './endpoint-ws-server.js';
|
|
8
|
-
import { NapCatHttpEndpoint } from './endpoint-http.js';
|
|
9
|
-
import type { NapCatEndpointConfig, NapCatWsClientConfig, NapCatWsServerConfig, NapCatHttpConfig } from './types.js';
|
|
10
|
-
|
|
11
|
-
export type NapCatEndpoint = NapCatWsClient | NapCatWsServer | NapCatHttpEndpoint;
|
|
12
|
-
|
|
13
|
-
export class NapCatAdapter extends Adapter<NapCatEndpoint> {
|
|
14
|
-
static override readonly capabilities = ['inbound', 'outbound'] as const;
|
|
15
|
-
static override outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
|
|
16
|
-
static override interactivePolicy = 'text' as const;
|
|
17
|
-
static override aiOutboundCapabilities = {
|
|
18
|
-
mentions: true,
|
|
19
|
-
richSegments: ['qrcode', 'html', 'markdown', 'tts'],
|
|
20
|
-
interactive: 'text' as const,
|
|
21
|
-
};
|
|
22
|
-
static override aiOutboundExtensions = [ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION];
|
|
23
|
-
|
|
24
|
-
#router?: Router;
|
|
25
|
-
|
|
26
|
-
constructor(plugin: Plugin) {
|
|
27
|
-
super(plugin, 'napcat', []);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
createEndpoint(config: NapCatEndpointConfig): NapCatEndpoint {
|
|
31
|
-
const connection = config.connection ?? 'ws';
|
|
32
|
-
switch (connection) {
|
|
33
|
-
case 'ws':
|
|
34
|
-
return new NapCatWsClient(this, config as NapCatWsClientConfig);
|
|
35
|
-
case 'wss':
|
|
36
|
-
if (!this.#router) throw new Error('NapCat connection: wss requires router. Enable @zhin.js/host-router first.');
|
|
37
|
-
return new NapCatWsServer(this, this.#router, config as NapCatWsServerConfig);
|
|
38
|
-
case 'http':
|
|
39
|
-
if (!this.#router) throw new Error('NapCat connection: http requires router. Enable @zhin.js/host-router first.');
|
|
40
|
-
return new NapCatHttpEndpoint(this, this.#router, config as NapCatHttpConfig);
|
|
41
|
-
default:
|
|
42
|
-
throw new Error(`Unknown NapCat connection: ${connection}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// ── 群管理接口(ISceneManagement 适配)──────────────────────────
|
|
47
|
-
|
|
48
|
-
async removeMember(endpointId: string, sceneId: string, userId: string) {
|
|
49
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
50
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
51
|
-
return endpoint.kickMember(Number(sceneId), Number(userId));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async muteMember(endpointId: string, sceneId: string, userId: string, duration = 600) {
|
|
55
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
56
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
57
|
-
return endpoint.muteMember(Number(sceneId), Number(userId), duration);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async setSceneMuted(endpointId: string, sceneId: string, enable = true) {
|
|
61
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
62
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
63
|
-
return endpoint.muteAll(Number(sceneId), enable);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
async setModerator(endpointId: string, sceneId: string, userId: string, enable = true) {
|
|
67
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
68
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
69
|
-
return endpoint.setAdmin(Number(sceneId), Number(userId), enable);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
async setMemberNickname(endpointId: string, sceneId: string, userId: string, nickname: string) {
|
|
73
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
74
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
75
|
-
return endpoint.setCard(Number(sceneId), Number(userId), nickname);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
async renameScene(endpointId: string, sceneId: string, name: string) {
|
|
79
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
80
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
81
|
-
return endpoint.setGroupName(Number(sceneId), name);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async listMembers(endpointId: string, sceneId: string) {
|
|
85
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
86
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
87
|
-
const members = await endpoint.getMemberList(Number(sceneId));
|
|
88
|
-
return {
|
|
89
|
-
members: members.map((m: any) => ({
|
|
90
|
-
user_id: m.user_id, nickname: m.nickname, card: m.card, role: m.role, title: m.title,
|
|
91
|
-
})),
|
|
92
|
-
count: members.length,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
async getSceneInfo(endpointId: string, sceneId: string) {
|
|
97
|
-
const endpoint = this.endpoints.get(endpointId);
|
|
98
|
-
if (!endpoint) throw new Error(`Endpoint ${endpointId} not found`);
|
|
99
|
-
return endpoint.getGroupInfo(Number(sceneId));
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
async start(): Promise<void> {
|
|
103
|
-
this.#router = (this.plugin.inject as (key: string) => Router | undefined)('router');
|
|
104
|
-
(this.plugin.useContext as (key: string, fn: (router: Router) => void) => void)('router', (router: Router) => {
|
|
105
|
-
this.#router = router;
|
|
106
|
-
});
|
|
107
|
-
await super.start();
|
|
108
|
-
}
|
|
109
|
-
}
|
package/src/agent-prompt.ts
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
AgentPromptBuildContext,
|
|
3
|
-
AgentPromptContributor,
|
|
4
|
-
AgentPromptSection,
|
|
5
|
-
DeferredToolCatalogItem,
|
|
6
|
-
} from 'zhin.js';
|
|
7
|
-
import type { AgentTool } from 'zhin.js/ai';
|
|
8
|
-
import { filterTools } from 'zhin.js/ai';
|
|
9
|
-
|
|
10
|
-
function isNapCatDelegatedTask(query: string, goal: string): boolean {
|
|
11
|
-
const text = `${query} ${goal}`;
|
|
12
|
-
if (/\bnapcat\b|napcat_|mcp_napcat/i.test(text)) return true;
|
|
13
|
-
if (/戳一戳|poke|表情回应|emoji.*reaction/i.test(text)) return true;
|
|
14
|
-
if (/精华消息|essence|群公告|group.*notice/i.test(text)) return true;
|
|
15
|
-
if (/AI语音|ai.*record|tts|文字转语音/i.test(text)) return true;
|
|
16
|
-
if (/群文件|upload.*file|群签到|group.*sign/i.test(text)) return true;
|
|
17
|
-
if (/合并转发|forward.*msg|转发消息/i.test(text)) return true;
|
|
18
|
-
if (/点赞/.test(text) && /qq|好友|\d{5,}/i.test(text)) return true;
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function selectNapCatDeferredTools(
|
|
23
|
-
query: string,
|
|
24
|
-
goal: string,
|
|
25
|
-
deferredCatalog: DeferredToolCatalogItem[],
|
|
26
|
-
maxTools: number,
|
|
27
|
-
): DeferredToolCatalogItem[] {
|
|
28
|
-
const pool = deferredCatalog.filter(
|
|
29
|
-
t => !t.name.startsWith('mcp_filesystem') && !t.name.startsWith('mcp_memory_'),
|
|
30
|
-
);
|
|
31
|
-
const napcatTools = pool.filter(t => t.name.startsWith('napcat_'));
|
|
32
|
-
const pinned: DeferredToolCatalogItem[] = [];
|
|
33
|
-
const preferOrder = [
|
|
34
|
-
'napcat_send_poke',
|
|
35
|
-
'napcat_set_emoji_reaction',
|
|
36
|
-
'napcat_send_like',
|
|
37
|
-
'napcat_set_essence_msg',
|
|
38
|
-
'napcat_send_group_notice',
|
|
39
|
-
'napcat_ai_tts',
|
|
40
|
-
];
|
|
41
|
-
for (const name of preferOrder) {
|
|
42
|
-
const t = napcatTools.find(x => x.name === name);
|
|
43
|
-
if (t) pinned.push(t);
|
|
44
|
-
}
|
|
45
|
-
for (const t of napcatTools) {
|
|
46
|
-
if (pinned.length >= maxTools) break;
|
|
47
|
-
if (!pinned.some(p => p.name === t.name)) pinned.push(t);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const extra = filterTools(query, pool as AgentTool[], { maxTools, minScore: 0.08 })
|
|
51
|
-
.map((t) => ({ name: t.name, description: t.description }))
|
|
52
|
-
.filter(t => !pinned.some(p => p.name === t.name));
|
|
53
|
-
|
|
54
|
-
const merged: DeferredToolCatalogItem[] = [...pinned];
|
|
55
|
-
for (const t of extra) {
|
|
56
|
-
if (merged.length >= maxTools) break;
|
|
57
|
-
merged.push(t);
|
|
58
|
-
}
|
|
59
|
-
return merged.slice(0, maxTools);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const ORCHESTRATOR_NAPCAT = [
|
|
63
|
-
'On napcat/QQ: use run_deferred_task with tool_query "napcat_send_poke" or "napcat_set_emoji_reaction".',
|
|
64
|
-
'NapCat supports: poke, emoji reaction, forward msg, essence, group notice, AI TTS, OCR, group files.',
|
|
65
|
-
'Skip tool_search when the user clearly asks for QQ-specific features like poke, reaction, or group management.',
|
|
66
|
-
].join('\n');
|
|
67
|
-
|
|
68
|
-
const WORKER_NAPCAT = [
|
|
69
|
-
'- Use `napcat_send_poke` for poke/戳一戳.',
|
|
70
|
-
'- Use `napcat_set_emoji_reaction` for emoji reaction/表情回应.',
|
|
71
|
-
'- Use `napcat_send_like` for friend like/点赞.',
|
|
72
|
-
'- Use `napcat_ai_tts` for AI voice/AI语音.',
|
|
73
|
-
'- Use `napcat_set_essence_msg` / `napcat_delete_essence_msg` for essence messages.',
|
|
74
|
-
'- Use `napcat_send_group_notice` for group announcements.',
|
|
75
|
-
'- Do NOT use mcp_filesystem_* or explore node_modules for QQ tasks.',
|
|
76
|
-
].join('\n');
|
|
77
|
-
|
|
78
|
-
export function createNapCatAgentPromptContributor(): AgentPromptContributor {
|
|
79
|
-
return {
|
|
80
|
-
platform: 'napcat',
|
|
81
|
-
|
|
82
|
-
async buildSections(ctx: AgentPromptBuildContext): Promise<AgentPromptSection[] | null> {
|
|
83
|
-
if (ctx.slot === 'orchestrator') {
|
|
84
|
-
return [{
|
|
85
|
-
id: 'platform.napcat.orchestrator',
|
|
86
|
-
title: '## napcat / QQ',
|
|
87
|
-
body: ORCHESTRATOR_NAPCAT,
|
|
88
|
-
priority: 50,
|
|
89
|
-
}];
|
|
90
|
-
}
|
|
91
|
-
if (ctx.slot === 'deferred_worker') {
|
|
92
|
-
const query = ctx.deferred?.toolQuery ?? ctx.deferred?.goal ?? '';
|
|
93
|
-
const goal = ctx.deferred?.goal ?? '';
|
|
94
|
-
if (!isNapCatDelegatedTask(query, goal)) return null;
|
|
95
|
-
return [{
|
|
96
|
-
id: 'platform.napcat.deferred_worker',
|
|
97
|
-
title: '## napcat / QQ(本任务)',
|
|
98
|
-
body: WORKER_NAPCAT,
|
|
99
|
-
priority: 50,
|
|
100
|
-
}];
|
|
101
|
-
}
|
|
102
|
-
return null;
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
matchesDeferredTask(ctx: AgentPromptBuildContext): boolean {
|
|
106
|
-
const query = ctx.deferred?.toolQuery ?? ctx.deferred?.goal ?? ctx.userMessagePreview ?? '';
|
|
107
|
-
const goal = ctx.deferred?.goal ?? ctx.userMessagePreview ?? '';
|
|
108
|
-
return isNapCatDelegatedTask(query, goal);
|
|
109
|
-
},
|
|
110
|
-
|
|
111
|
-
selectDeferredTools(query, goal, catalog, maxTools) {
|
|
112
|
-
if (!isNapCatDelegatedTask(query, goal)) return null;
|
|
113
|
-
return selectNapCatDeferredTools(query, goal, catalog, maxTools);
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
}
|