@zhin.js/adapter-onebot11 4.0.0 → 4.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.
- package/CHANGELOG.md +26 -0
- package/README.md +10 -0
- package/{skills/onebot11 → agent}/PERMITS.md +3 -3
- package/{skills/onebot11/SKILL.md → agent/skills/onebot11.md} +2 -2
- package/agent/tools/set_title.ts +21 -0
- package/lib/agent/tools/set_title.js +21 -0
- package/lib/agent/tools/set_title.js.map +1 -0
- package/lib/{adapter.js → src/adapter.js} +13 -6
- package/lib/src/adapter.js.map +1 -0
- package/lib/{endpoint-ws-client.js → src/endpoint-ws-client.js} +35 -42
- package/lib/src/endpoint-ws-client.js.map +1 -0
- package/lib/{endpoint-ws-server.js → src/endpoint-ws-server.js} +37 -44
- package/lib/src/endpoint-ws-server.js.map +1 -0
- package/lib/src/index.js +41 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/onebot-get-msg.js.map +1 -0
- package/lib/src/onebot11-agent-deps.js +10 -0
- package/lib/src/onebot11-agent-deps.js.map +1 -0
- package/lib/src/segment-mapper.js +2 -0
- package/lib/src/segment-mapper.js.map +1 -0
- package/lib/src/types.js.map +1 -0
- package/package.json +20 -10
- package/src/adapter.ts +13 -6
- package/src/endpoint-ws-client.ts +38 -42
- package/src/endpoint-ws-server.ts +40 -44
- package/src/index.ts +14 -31
- package/src/onebot11-agent-deps.ts +17 -0
- package/src/segment-mapper.ts +1 -0
- package/lib/adapter.d.ts +0 -34
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js.map +0 -1
- package/lib/endpoint-ws-client.d.ts +0 -40
- package/lib/endpoint-ws-client.d.ts.map +0 -1
- package/lib/endpoint-ws-client.js.map +0 -1
- package/lib/endpoint-ws-server.d.ts +0 -42
- package/lib/endpoint-ws-server.d.ts.map +0 -1
- package/lib/endpoint-ws-server.js.map +0 -1
- package/lib/index.d.ts +0 -16
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -56
- package/lib/index.js.map +0 -1
- package/lib/onebot-get-msg.d.ts +0 -3
- package/lib/onebot-get-msg.d.ts.map +0 -1
- package/lib/onebot-get-msg.js.map +0 -1
- package/lib/types.d.ts +0 -61
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
- /package/lib/{onebot-get-msg.js → src/onebot-get-msg.js} +0 -0
- /package/lib/{types.js → src/types.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-onebot11",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Zhin.js adapter for OneBot v11 protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"lib",
|
|
18
18
|
"client",
|
|
19
19
|
"dist",
|
|
20
|
-
"skills",
|
|
21
20
|
"plugin.yml",
|
|
22
21
|
"README.md",
|
|
23
|
-
"CHANGELOG.md"
|
|
22
|
+
"CHANGELOG.md",
|
|
23
|
+
"agent"
|
|
24
24
|
],
|
|
25
25
|
"keywords": [
|
|
26
26
|
"zhin",
|
|
@@ -47,21 +47,31 @@
|
|
|
47
47
|
"ws": "^8.21.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@types/node": "^
|
|
50
|
+
"@types/node": "^26.1.0",
|
|
51
51
|
"@types/ws": "^8.18.1",
|
|
52
52
|
"typescript": "^6.0.3",
|
|
53
|
-
"
|
|
54
|
-
"@zhin.js/
|
|
55
|
-
"zhin.js": "
|
|
56
|
-
"@zhin.js/
|
|
53
|
+
"zod": "^4.4.3",
|
|
54
|
+
"@zhin.js/cli": "1.0.93",
|
|
55
|
+
"@zhin.js/client": "2.0.5",
|
|
56
|
+
"@zhin.js/host-router": "2.0.3",
|
|
57
|
+
"zhin.js": "4.1.2",
|
|
58
|
+
"@zhin.js/agent": "1.0.3"
|
|
57
59
|
},
|
|
58
60
|
"peerDependencies": {
|
|
59
|
-
"
|
|
60
|
-
"zhin.js": "4.1.
|
|
61
|
+
"zod": "^4.0.0",
|
|
62
|
+
"zhin.js": "4.1.2",
|
|
63
|
+
"@zhin.js/agent": "1.0.3",
|
|
64
|
+
"@zhin.js/host-router": "2.0.3"
|
|
61
65
|
},
|
|
62
66
|
"peerDependenciesMeta": {
|
|
63
67
|
"@zhin.js/host-router": {
|
|
64
68
|
"optional": true
|
|
69
|
+
},
|
|
70
|
+
"@zhin.js/agent": {
|
|
71
|
+
"optional": true
|
|
72
|
+
},
|
|
73
|
+
"zod": {
|
|
74
|
+
"optional": true
|
|
65
75
|
}
|
|
66
76
|
},
|
|
67
77
|
"publishConfig": {
|
package/src/adapter.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OneBot11 适配器:单一适配器支持正向 WS / 反向 WS,由 config.connection 区分
|
|
3
3
|
*/
|
|
4
|
-
import { formatCompact, Adapter, Plugin, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL } from 'zhin.js';
|
|
4
|
+
import { formatCompact, Adapter, Plugin, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL, ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION } from 'zhin.js';
|
|
5
5
|
import type { Router } from '@zhin.js/host-router';
|
|
6
6
|
import { OneBot11WsClient } from './endpoint-ws-client.js';
|
|
7
7
|
import { OneBot11WsServer } from './endpoint-ws-server.js';
|
|
@@ -16,6 +16,13 @@ export type OneBot11Bot = OneBot11WsClient | OneBot11WsServer;
|
|
|
16
16
|
export class OneBot11Adapter extends Adapter<OneBot11Bot> {
|
|
17
17
|
static override readonly capabilities = ['inbound', 'outbound'] as const;
|
|
18
18
|
static override outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
|
|
19
|
+
static override interactivePolicy = 'text' as const;
|
|
20
|
+
static override aiOutboundCapabilities = {
|
|
21
|
+
mentions: true,
|
|
22
|
+
richSegments: ['qrcode', 'html', 'markdown', 'tts'],
|
|
23
|
+
interactive: 'text' as const,
|
|
24
|
+
};
|
|
25
|
+
static override aiOutboundExtensions = [ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION];
|
|
19
26
|
|
|
20
27
|
#router?: Router;
|
|
21
28
|
|
|
@@ -38,7 +45,7 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
|
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
|
|
41
|
-
async
|
|
48
|
+
async removeMember(endpointId: string, sceneId: string, userId: string) {
|
|
42
49
|
const endpoint = this.endpoints.get(endpointId);
|
|
43
50
|
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
44
51
|
return endpoint.kickMember(Number(sceneId), Number(userId), false);
|
|
@@ -50,13 +57,13 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
|
|
|
50
57
|
return endpoint.muteMember(Number(sceneId), Number(userId), duration);
|
|
51
58
|
}
|
|
52
59
|
|
|
53
|
-
async
|
|
60
|
+
async setSceneMuted(endpointId: string, sceneId: string, enable = true) {
|
|
54
61
|
const endpoint = this.endpoints.get(endpointId);
|
|
55
62
|
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
56
63
|
return endpoint.muteAll(Number(sceneId), enable);
|
|
57
64
|
}
|
|
58
65
|
|
|
59
|
-
async
|
|
66
|
+
async setModerator(endpointId: string, sceneId: string, userId: string, enable = true) {
|
|
60
67
|
const endpoint = this.endpoints.get(endpointId);
|
|
61
68
|
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
62
69
|
return endpoint.setAdmin(Number(sceneId), Number(userId), enable);
|
|
@@ -68,7 +75,7 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
|
|
|
68
75
|
return endpoint.setCard(Number(sceneId), Number(userId), nickname);
|
|
69
76
|
}
|
|
70
77
|
|
|
71
|
-
async
|
|
78
|
+
async renameScene(endpointId: string, sceneId: string, name: string) {
|
|
72
79
|
const endpoint = this.endpoints.get(endpointId);
|
|
73
80
|
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
74
81
|
return endpoint.setGroupName(Number(sceneId), name);
|
|
@@ -90,7 +97,7 @@ export class OneBot11Adapter extends Adapter<OneBot11Bot> {
|
|
|
90
97
|
};
|
|
91
98
|
}
|
|
92
99
|
|
|
93
|
-
async
|
|
100
|
+
async getSceneInfo(endpointId: string, sceneId: string) {
|
|
94
101
|
const endpoint = this.endpoints.get(endpointId);
|
|
95
102
|
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
96
103
|
return endpoint.getGroupInfo(Number(sceneId));
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
import WebSocket from 'ws';
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import { clearInterval } from 'node:timers';
|
|
7
|
-
import { formatCompact, Endpoint, Message,
|
|
7
|
+
import { formatCompact, Endpoint, Message, mapNoticeParts, mapRequestParts, buildNotice, buildRequest, senderFromId, resolveSideEventDedupeKey, segment, SendContent, SendOptions, expandInteractiveSegmentsInContent, type QuotedMessagePayload, applyQqSenderRoleToMessageSender, type MessageElement,} from 'zhin.js';
|
|
8
8
|
import { parseOneBotGetMsgResponse } from './onebot-get-msg.js';
|
|
9
|
+
import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
|
|
9
10
|
import type {
|
|
10
11
|
OneBot11WsClientConfig,
|
|
11
12
|
OneBot11Message,
|
|
@@ -54,7 +55,7 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
|
|
|
54
55
|
if (!this.$config.access_token) {
|
|
55
56
|
this.logger.warn(formatCompact({ endpoint: this.$id, ok: false, error: 'missing access_token' }));
|
|
56
57
|
}
|
|
57
|
-
this.logger.
|
|
58
|
+
this.logger.debug(formatCompact({ endpoint: this.$id, mode: 'ws' }));
|
|
58
59
|
this.startHeartbeat();
|
|
59
60
|
resolve();
|
|
60
61
|
});
|
|
@@ -115,10 +116,18 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
|
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
|
|
119
|
+
private toWireSendContent(content: SendContent): MessageElement[] {
|
|
120
|
+
const items = (Array.isArray(content) ? content : [content]).map((item) =>
|
|
121
|
+
typeof item === 'string' ? { type: 'text', data: { text: item } } : item as MessageElement,
|
|
122
|
+
);
|
|
123
|
+
return fromCanonicalSegments(toCanonicalSegments(items as never));
|
|
124
|
+
}
|
|
125
|
+
|
|
118
126
|
$formatMessage(onebotMsg: OneBot11Message) {
|
|
119
|
-
const
|
|
120
|
-
const quoteId = Message.quoteIdFromContent(
|
|
121
|
-
Message.alignReplySegments(
|
|
127
|
+
const wire = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
|
|
128
|
+
const quoteId = Message.quoteIdFromContent(wire);
|
|
129
|
+
Message.alignReplySegments(wire, quoteId);
|
|
130
|
+
const content = toCanonicalSegments(wire as never);
|
|
122
131
|
|
|
123
132
|
const message = Message.from(onebotMsg, {
|
|
124
133
|
$id: onebotMsg.message_id.toString(),
|
|
@@ -158,7 +167,8 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
|
|
|
158
167
|
}
|
|
159
168
|
|
|
160
169
|
async $sendMessage(options: SendOptions): Promise<string> {
|
|
161
|
-
const
|
|
170
|
+
const content = this.toWireSendContent(expandInteractiveSegmentsInContent(options.content));
|
|
171
|
+
const messageData: any = { message: content };
|
|
162
172
|
if (options.type === 'group') {
|
|
163
173
|
const result = await this.callApi('send_group_msg', {
|
|
164
174
|
group_id: parseInt(options.id),
|
|
@@ -331,55 +341,41 @@ export class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11W
|
|
|
331
341
|
}
|
|
332
342
|
|
|
333
343
|
private handleOneBot11Notice(event: any): void {
|
|
334
|
-
const noticeTypeMap: Record<string, string> = {
|
|
335
|
-
group_increase: 'group_member_increase',
|
|
336
|
-
group_decrease: 'group_member_decrease',
|
|
337
|
-
group_admin: 'group_admin_change',
|
|
338
|
-
group_ban: 'group_ban',
|
|
339
|
-
group_recall: 'group_recall',
|
|
340
|
-
friend_recall: 'friend_recall',
|
|
341
|
-
friend_add: 'friend_add',
|
|
342
|
-
notify: event.sub_type === 'poke' ? (event.group_id ? 'group_poke' : 'friend_poke') : `notify_${event.sub_type}`,
|
|
343
|
-
group_upload: 'group_upload',
|
|
344
|
-
};
|
|
345
|
-
const $type = noticeTypeMap[event.notice_type] || event.notice_type;
|
|
346
344
|
const isGroup = !!event.group_id;
|
|
347
|
-
const
|
|
345
|
+
const { scene_type, sub_type } = mapNoticeParts('onebot', event.notice_type ?? '', {
|
|
346
|
+
sub_type: event.sub_type,
|
|
347
|
+
is_group: isGroup,
|
|
348
|
+
});
|
|
349
|
+
const sceneId = String((event.group_id || event.user_id) ?? '');
|
|
350
|
+
const notice = buildNotice(event, {
|
|
348
351
|
$id: `${event.time}_${event.notice_type}_${event.group_id || event.user_id}`,
|
|
349
352
|
$adapter: 'onebot11',
|
|
350
353
|
$endpoint: this.$config.name,
|
|
351
|
-
$type,
|
|
352
|
-
$
|
|
353
|
-
$
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
$
|
|
358
|
-
$target: event.user_id ? { id: event.user_id.toString(), name: event.user_id.toString() } : undefined,
|
|
359
|
-
$timestamp: event.time || Math.floor(Date.now() / 1000),
|
|
354
|
+
$type: 'notice',
|
|
355
|
+
$scene_id: sceneId,
|
|
356
|
+
$scene_type: scene_type,
|
|
357
|
+
$sub_type: sub_type,
|
|
358
|
+
$actor: senderFromId(event.operator_id),
|
|
359
|
+
$target: senderFromId(event.user_id),
|
|
360
|
+
$timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
|
|
360
361
|
});
|
|
361
362
|
this.adapter.emit('notice.receive', notice);
|
|
362
363
|
}
|
|
363
364
|
|
|
364
365
|
private handleOneBot11Request(event: any): void {
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
};
|
|
369
|
-
const $type = typeMap[event.request_type] || event.request_type;
|
|
370
|
-
const request = Request.from(event, {
|
|
366
|
+
const { scene_type, sub_type } = mapRequestParts('onebot', event.request_type ?? '', event.sub_type);
|
|
367
|
+
const sceneId = String((event.group_id || event.user_id) ?? '');
|
|
368
|
+
const request = buildRequest(event, {
|
|
371
369
|
$id: event.flag || `${event.time}_${event.request_type}_${event.user_id}`,
|
|
372
370
|
$adapter: 'onebot11',
|
|
373
371
|
$endpoint: this.$config.name,
|
|
374
|
-
$type,
|
|
375
|
-
$
|
|
376
|
-
$
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
},
|
|
380
|
-
$sender: { id: event.user_id?.toString() || '', name: event.user_id?.toString() || '' },
|
|
372
|
+
$type: 'request',
|
|
373
|
+
$scene_id: sceneId,
|
|
374
|
+
$scene_type: scene_type,
|
|
375
|
+
$sub_type: sub_type,
|
|
376
|
+
$actor: senderFromId(event.user_id) ?? { id: '', name: '' },
|
|
381
377
|
$comment: event.comment,
|
|
382
|
-
$timestamp: event.time || Math.floor(Date.now() / 1000),
|
|
378
|
+
$timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
|
|
383
379
|
$approve: async (remark?: string) => {
|
|
384
380
|
await this.callApi(
|
|
385
381
|
event.request_type === 'friend' ? 'set_friend_add_request' : 'set_group_add_request',
|
|
@@ -5,8 +5,9 @@ import WebSocket, { WebSocketServer } from 'ws';
|
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import { clearInterval } from 'node:timers';
|
|
7
7
|
import { IncomingMessage } from 'http';
|
|
8
|
-
import { formatCompact, Endpoint, Message,
|
|
8
|
+
import { formatCompact, Endpoint, Message, mapNoticeParts, mapRequestParts, buildNotice, buildRequest, senderFromId, segment, SendContent, SendOptions, expandInteractiveSegmentsInContent, type QuotedMessagePayload, applyQqSenderRoleToMessageSender, type MessageElement,} from 'zhin.js';
|
|
9
9
|
import { parseOneBotGetMsgResponse } from './onebot-get-msg.js';
|
|
10
|
+
import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
|
|
10
11
|
import type { Router } from '@zhin.js/host-router';
|
|
11
12
|
import type {
|
|
12
13
|
OneBot11WsServerConfig,
|
|
@@ -59,10 +60,10 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
|
|
|
59
60
|
return true;
|
|
60
61
|
},
|
|
61
62
|
});
|
|
62
|
-
this.logger.
|
|
63
|
+
this.logger.debug(formatCompact( { op: 'listen', endpoint: this.$id, mode: 'wss', path: this.$config.path }));
|
|
63
64
|
this.#wss.on('connection', (client, req) => {
|
|
64
65
|
this.startHeartbeat();
|
|
65
|
-
this.logger.
|
|
66
|
+
this.logger.debug(formatCompact({ endpoint: this.$id, peer: req.socket.remoteAddress }));
|
|
66
67
|
client.on('error', (err) => this.logger.warn(formatCompact( {
|
|
67
68
|
op: 'ws_error',
|
|
68
69
|
endpoint: this.$id,
|
|
@@ -105,15 +106,23 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
|
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
108
|
|
|
109
|
+
private toWireSendContent(content: SendContent): MessageElement[] {
|
|
110
|
+
const items = (Array.isArray(content) ? content : [content]).map((item) =>
|
|
111
|
+
typeof item === 'string' ? { type: 'text', data: { text: item } } : item as MessageElement,
|
|
112
|
+
);
|
|
113
|
+
return fromCanonicalSegments(toCanonicalSegments(items as never));
|
|
114
|
+
}
|
|
115
|
+
|
|
108
116
|
$formatMessage(onebotMsg: OneBot11Message) {
|
|
109
117
|
const msgId = [onebotMsg.self_id, onebotMsg.message_id].join(':');
|
|
110
118
|
const channel = {
|
|
111
119
|
id: [onebotMsg.self_id, (onebotMsg.group_id || onebotMsg.user_id)].join(':'),
|
|
112
120
|
type: (onebotMsg.group_id ? 'group' : 'private') as 'group' | 'private',
|
|
113
121
|
};
|
|
114
|
-
const
|
|
115
|
-
const quoteId = Message.quoteIdFromContent(
|
|
116
|
-
Message.alignReplySegments(
|
|
122
|
+
const wire = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
|
|
123
|
+
const quoteId = Message.quoteIdFromContent(wire);
|
|
124
|
+
Message.alignReplySegments(wire, quoteId);
|
|
125
|
+
const content = toCanonicalSegments(wire as never);
|
|
117
126
|
|
|
118
127
|
const message = Message.from(onebotMsg, {
|
|
119
128
|
$id: msgId,
|
|
@@ -148,7 +157,8 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
|
|
|
148
157
|
}
|
|
149
158
|
|
|
150
159
|
async $sendMessage(options: SendOptions): Promise<string> {
|
|
151
|
-
const
|
|
160
|
+
const content = this.toWireSendContent(expandInteractiveSegmentsInContent(options.content));
|
|
161
|
+
const messageData: any = { message: content };
|
|
152
162
|
if (options.type === 'group') {
|
|
153
163
|
const [self_id, id] = options.id.split(':');
|
|
154
164
|
const result = await this.callApi(self_id, 'send_group_msg', {
|
|
@@ -295,7 +305,7 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
|
|
|
295
305
|
case 'connect':
|
|
296
306
|
this.#clientMap.set(String(message.self_id), client);
|
|
297
307
|
this.$connected = true;
|
|
298
|
-
this.logger.
|
|
308
|
+
this.logger.debug(formatCompact({ endpoint: this.$config.name, self_id: message.self_id }));
|
|
299
309
|
break;
|
|
300
310
|
}
|
|
301
311
|
}
|
|
@@ -307,56 +317,42 @@ export class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11W
|
|
|
307
317
|
}
|
|
308
318
|
|
|
309
319
|
private handleNotice(event: any): void {
|
|
310
|
-
const noticeTypeMap: Record<string, string> = {
|
|
311
|
-
group_increase: 'group_member_increase',
|
|
312
|
-
group_decrease: 'group_member_decrease',
|
|
313
|
-
group_admin: 'group_admin_change',
|
|
314
|
-
group_ban: 'group_ban',
|
|
315
|
-
group_recall: 'group_recall',
|
|
316
|
-
friend_recall: 'friend_recall',
|
|
317
|
-
friend_add: 'friend_add',
|
|
318
|
-
notify: event.sub_type === 'poke' ? (event.group_id ? 'group_poke' : 'friend_poke') : `notify_${event.sub_type}`,
|
|
319
|
-
group_upload: 'group_upload',
|
|
320
|
-
};
|
|
321
|
-
const $type = noticeTypeMap[event.notice_type] || event.notice_type;
|
|
322
320
|
const isGroup = !!event.group_id;
|
|
323
|
-
const
|
|
321
|
+
const { scene_type, sub_type } = mapNoticeParts('onebot', event.notice_type ?? '', {
|
|
322
|
+
sub_type: event.sub_type,
|
|
323
|
+
is_group: isGroup,
|
|
324
|
+
});
|
|
325
|
+
const sceneId = String(event.group_id || event.user_id || '');
|
|
326
|
+
const notice = buildNotice(event, {
|
|
324
327
|
$id: `${event.self_id}:${event.time}_${event.notice_type}_${event.group_id || event.user_id}`,
|
|
325
328
|
$adapter: 'onebot11',
|
|
326
329
|
$endpoint: this.$config.name,
|
|
327
|
-
$type,
|
|
328
|
-
$
|
|
329
|
-
$
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
$
|
|
334
|
-
$target: event.user_id ? { id: event.user_id.toString(), name: event.user_id.toString() } : undefined,
|
|
335
|
-
$timestamp: event.time || Math.floor(Date.now() / 1000),
|
|
330
|
+
$type: 'notice',
|
|
331
|
+
$scene_id: sceneId,
|
|
332
|
+
$scene_type: scene_type,
|
|
333
|
+
$sub_type: sub_type,
|
|
334
|
+
$actor: senderFromId(event.operator_id),
|
|
335
|
+
$target: senderFromId(event.user_id),
|
|
336
|
+
$timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
|
|
336
337
|
});
|
|
337
338
|
this.adapter.emit('notice.receive', notice);
|
|
338
339
|
}
|
|
339
340
|
|
|
340
341
|
private handleRequest(event: any): void {
|
|
341
342
|
const self_id = event.self_id?.toString() || '';
|
|
342
|
-
const
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
};
|
|
346
|
-
const $type = typeMap[event.request_type] || event.request_type;
|
|
347
|
-
const request = Request.from(event, {
|
|
343
|
+
const { scene_type, sub_type } = mapRequestParts('onebot', event.request_type ?? '', event.sub_type);
|
|
344
|
+
const sceneId = String(event.group_id || event.user_id || '');
|
|
345
|
+
const request = buildRequest(event, {
|
|
348
346
|
$id: event.flag || `${self_id}:${event.time}_${event.request_type}_${event.user_id}`,
|
|
349
347
|
$adapter: 'onebot11',
|
|
350
348
|
$endpoint: this.$config.name,
|
|
351
|
-
$type,
|
|
352
|
-
$
|
|
353
|
-
$
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
},
|
|
357
|
-
$sender: { id: event.user_id?.toString() || '', name: event.user_id?.toString() || '' },
|
|
349
|
+
$type: 'request',
|
|
350
|
+
$scene_id: sceneId,
|
|
351
|
+
$scene_type: scene_type,
|
|
352
|
+
$sub_type: sub_type,
|
|
353
|
+
$actor: senderFromId(event.user_id) ?? { id: '', name: '' },
|
|
358
354
|
$comment: event.comment,
|
|
359
|
-
$timestamp: event.time || Math.floor(Date.now() / 1000),
|
|
355
|
+
$timestamp: (event.time || Math.floor(Date.now() / 1000)) * 1000,
|
|
360
356
|
$approve: async (remark?: string) => {
|
|
361
357
|
await this.callApi(
|
|
362
358
|
self_id,
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OneBot11 适配器入口:单一适配器,支持正向 WS / 反向 WS(connection: ws | wss)
|
|
3
3
|
*/
|
|
4
|
-
import { usePlugin, type Plugin, type Context, type
|
|
4
|
+
import { usePlugin, type Plugin, type Context, type ISceneManagement, createSceneManagementTools, registerDefaultScenePlatformPermitChecker, type ToolFeature } from 'zhin.js';
|
|
5
5
|
import type { Router } from '@zhin.js/host-router';
|
|
6
6
|
import { OneBot11Adapter } from './adapter.js';
|
|
7
|
+
import { setOnebot11AgentDeps } from './onebot11-agent-deps.js';
|
|
7
8
|
|
|
8
9
|
export * from './types.js';
|
|
9
10
|
export { OneBot11WsClient } from './endpoint-ws-client.js';
|
|
@@ -38,37 +39,19 @@ provide({
|
|
|
38
39
|
|
|
39
40
|
useContext('tool', 'onebot11', (toolService: ToolFeature, onebot11: OneBot11Adapter) => {
|
|
40
41
|
const disposers: (() => void)[] = [];
|
|
41
|
-
disposers.push(
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
disposers.push(registerDefaultScenePlatformPermitChecker('onebot11'));
|
|
43
|
+
setOnebot11AgentDeps({
|
|
44
|
+
getEndpoint: (endpointId) => {
|
|
45
|
+
const endpoint = onebot11.endpoints.get(endpointId);
|
|
46
|
+
if (!endpoint) throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
47
|
+
return endpoint;
|
|
48
|
+
},
|
|
49
|
+
getAdapter: () => onebot11,
|
|
50
|
+
});
|
|
51
|
+
const sceneTools = createSceneManagementTools(
|
|
52
|
+
onebot11 as unknown as ISceneManagement,
|
|
44
53
|
'onebot11',
|
|
45
54
|
);
|
|
46
|
-
disposers.push(...
|
|
47
|
-
|
|
48
|
-
// Platform-specific tool: set title
|
|
49
|
-
disposers.push(toolService.addTool({
|
|
50
|
-
name: 'onebot11_set_title',
|
|
51
|
-
description: '设置 QQ 群成员的专属头衔。只有群主才能设置。',
|
|
52
|
-
parameters: {
|
|
53
|
-
type: 'object',
|
|
54
|
-
properties: {
|
|
55
|
-
endpoint_id: { type: 'string', description: 'Endpoint 名称', contextKey: 'endpointId' },
|
|
56
|
-
group_id: { type: 'number', description: '目标群号' },
|
|
57
|
-
user_id: { type: 'number', description: '目标成员 QQ号' },
|
|
58
|
-
title: { type: 'string', description: '头衔文字' },
|
|
59
|
-
},
|
|
60
|
-
required: ['endpoint_id', 'group_id', 'user_id', 'title'],
|
|
61
|
-
},
|
|
62
|
-
platforms: ['onebot11'],
|
|
63
|
-
tags: ['onebot11'],
|
|
64
|
-
permissions: ['platform(onebot11,group_owner)'],
|
|
65
|
-
execute: async (args: Record<string, any>) => {
|
|
66
|
-
const endpoint = onebot11.endpoints.get(args.endpoint_id);
|
|
67
|
-
if (!endpoint) throw new Error(`Endpoint ${args.endpoint_id} 不存在`);
|
|
68
|
-
const success = await endpoint.setTitle(args.group_id, args.user_id, args.title);
|
|
69
|
-
return { success, message: success ? `已将 ${args.user_id} 的头衔设为 "${args.title}"` : '设置失败' };
|
|
70
|
-
},
|
|
71
|
-
}, plugin.name));
|
|
72
|
-
|
|
55
|
+
disposers.push(...sceneTools.map(t => toolService.addTool(t, plugin.name)));
|
|
73
56
|
return () => disposers.forEach(d => d());
|
|
74
57
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OneBot11Adapter, OneBot11Bot } from './adapter.js';
|
|
2
|
+
|
|
3
|
+
export interface Onebot11AgentDeps {
|
|
4
|
+
getEndpoint: (endpointId: string) => OneBot11Bot;
|
|
5
|
+
getAdapter: () => OneBot11Adapter;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let _deps: Onebot11AgentDeps | null = null;
|
|
9
|
+
|
|
10
|
+
export function setOnebot11AgentDeps(deps: Onebot11AgentDeps): void {
|
|
11
|
+
_deps = deps;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function getOnebot11AgentDeps(): Onebot11AgentDeps {
|
|
15
|
+
if (!_deps) throw new Error('onebot11 agent deps not initialized');
|
|
16
|
+
return _deps;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { toCanonicalSegments, fromCanonicalSegments } from 'zhin.js';
|
package/lib/adapter.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OneBot11 适配器:单一适配器支持正向 WS / 反向 WS,由 config.connection 区分
|
|
3
|
-
*/
|
|
4
|
-
import { Adapter, Plugin } from 'zhin.js';
|
|
5
|
-
import { OneBot11WsClient } from './endpoint-ws-client.js';
|
|
6
|
-
import { OneBot11WsServer } from './endpoint-ws-server.js';
|
|
7
|
-
import type { OneBot11EndpointConfig } from './types.js';
|
|
8
|
-
export type OneBot11Bot = OneBot11WsClient | OneBot11WsServer;
|
|
9
|
-
export declare class OneBot11Adapter extends Adapter<OneBot11Bot> {
|
|
10
|
-
#private;
|
|
11
|
-
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
12
|
-
static outboundRichSegmentPolicy: import("zhin.js").OutboundRichSegmentPolicy;
|
|
13
|
-
constructor(plugin: Plugin);
|
|
14
|
-
createEndpoint(config: OneBot11EndpointConfig): OneBot11Bot;
|
|
15
|
-
kickMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
|
|
16
|
-
muteMember(endpointId: string, sceneId: string, userId: string, duration?: number): Promise<boolean>;
|
|
17
|
-
muteAll(endpointId: string, sceneId: string, enable?: boolean): Promise<boolean>;
|
|
18
|
-
setAdmin(endpointId: string, sceneId: string, userId: string, enable?: boolean): Promise<boolean>;
|
|
19
|
-
setMemberNickname(endpointId: string, sceneId: string, userId: string, nickname: string): Promise<boolean>;
|
|
20
|
-
setGroupName(endpointId: string, sceneId: string, name: string): Promise<boolean>;
|
|
21
|
-
listMembers(endpointId: string, sceneId: string): Promise<{
|
|
22
|
-
members: {
|
|
23
|
-
user_id: any;
|
|
24
|
-
nickname: any;
|
|
25
|
-
card: any;
|
|
26
|
-
role: any;
|
|
27
|
-
title: any;
|
|
28
|
-
}[];
|
|
29
|
-
count: number;
|
|
30
|
-
}>;
|
|
31
|
-
getGroupInfo(endpointId: string, sceneId: string): Promise<any>;
|
|
32
|
-
start(): Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=adapter.d.ts.map
|
package/lib/adapter.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAiB,OAAO,EAAE,MAAM,EAAwC,MAAM,SAAS,CAAC;AAE/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAGV,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE9D,qBAAa,eAAgB,SAAQ,OAAO,CAAC,WAAW,CAAC;;IACvD,gBAAyB,YAAY,mCAAoC;IACzE,OAAgB,yBAAyB,8CAAwC;gBAIrE,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW;IAerD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM9D,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM;IAM9E,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAO;IAM1D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAO;IAM3E,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAMvF,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM9D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;IAgB/C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
|
package/lib/adapter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'events';
|
|
2
|
-
import { Endpoint, Message, SendOptions, type QuotedMessagePayload } from 'zhin.js';
|
|
3
|
-
import type { OneBot11WsClientConfig, OneBot11Message } from './types.js';
|
|
4
|
-
import type { OneBot11Adapter } from './adapter.js';
|
|
5
|
-
export declare class OneBot11WsClient extends EventEmitter implements Endpoint<OneBot11WsClientConfig, OneBot11Message> {
|
|
6
|
-
adapter: OneBot11Adapter;
|
|
7
|
-
$config: OneBot11WsClientConfig;
|
|
8
|
-
$connected: boolean;
|
|
9
|
-
private ws?;
|
|
10
|
-
private reconnectTimer?;
|
|
11
|
-
private heartbeatTimer?;
|
|
12
|
-
private requestId;
|
|
13
|
-
private pendingRequests;
|
|
14
|
-
get logger(): import("zhin.js").Logger;
|
|
15
|
-
constructor(adapter: OneBot11Adapter, $config: OneBot11WsClientConfig);
|
|
16
|
-
get $id(): string;
|
|
17
|
-
$connect(): Promise<void>;
|
|
18
|
-
$disconnect(): Promise<void>;
|
|
19
|
-
$formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
|
|
20
|
-
$sendMessage(options: SendOptions): Promise<string>;
|
|
21
|
-
$recallMessage(id: string): Promise<void>;
|
|
22
|
-
$getMsg(messageId: string): Promise<QuotedMessagePayload>;
|
|
23
|
-
kickMember(groupId: number, userId: number, rejectAddRequest?: boolean): Promise<boolean>;
|
|
24
|
-
muteMember(groupId: number, userId: number, duration?: number): Promise<boolean>;
|
|
25
|
-
muteAll(groupId: number, enable?: boolean): Promise<boolean>;
|
|
26
|
-
setAdmin(groupId: number, userId: number, enable?: boolean): Promise<boolean>;
|
|
27
|
-
setCard(groupId: number, userId: number, card: string): Promise<boolean>;
|
|
28
|
-
setTitle(groupId: number, userId: number, title: string, duration?: number): Promise<boolean>;
|
|
29
|
-
setGroupName(groupId: number, name: string): Promise<boolean>;
|
|
30
|
-
getMemberList(groupId: number): Promise<any[]>;
|
|
31
|
-
getGroupInfo(groupId: number): Promise<any>;
|
|
32
|
-
private callApi;
|
|
33
|
-
private handleWebSocketMessage;
|
|
34
|
-
private handleOneBot11Notice;
|
|
35
|
-
private handleOneBot11Request;
|
|
36
|
-
private handleOneBot11Message;
|
|
37
|
-
private startHeartbeat;
|
|
38
|
-
private scheduleReconnect;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=endpoint-ws-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-ws-client.d.ts","sourceRoot":"","sources":["../src/endpoint-ws-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAyC,WAAW,EAAE,KAAK,oBAAoB,EAAoC,MAAM,SAAS,CAAC;AAE5K,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ,CAAC,sBAAsB,EAAE,eAAe,CAAC;IAe1F,OAAO,EAAE,eAAe;IAAS,OAAO,EAAE,sBAAsB;IAdnF,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;IACL,IAAI,MAAM,6BAET;gBAEkB,OAAO,EAAE,eAAe,EAAS,OAAO,EAAE,sBAAsB;IAKnF,IAAI,GAAG,WAEN;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBlC,cAAc,CAAC,SAAS,EAAE,eAAe;IA0CnC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMzD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAehG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAerF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAWlE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAWnF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBjG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAS9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YASnC,OAAO;IAgBrB,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;CAa1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-ws-client.js","sourceRoot":"","sources":["../src/endpoint-ws-client.ts"],"names":[],"mappings":"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"}
|