@zhin.js/adapter-onebot11 1.0.98 → 1.1.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 (88) hide show
  1. package/CHANGELOG.md +745 -3
  2. package/PERMITS.md +14 -0
  3. package/README.md +59 -367
  4. package/adapters/onebot11/index.js +40 -0
  5. package/adapters/onebot11/index.ts +53 -0
  6. package/agents/onebot11/agent.json +20 -0
  7. package/agents/onebot11/boundaries.md +3 -0
  8. package/agents/onebot11/conventions.md +3 -0
  9. package/agents/onebot11/skills/onebot11/SKILL.md +15 -0
  10. package/agents/onebot11/skills/onebot11/tools/set_title/index.js +25 -0
  11. package/agents/onebot11/skills/onebot11/tools/set_title/index.ts +24 -0
  12. package/agents/onebot11/system.md +3 -0
  13. package/commands/onebot11/endpoint/add/[id]/index.js +3 -0
  14. package/commands/onebot11/endpoint/add/[id]/index.ts +3 -0
  15. package/commands/onebot11/endpoint/definition.js +25 -0
  16. package/commands/onebot11/endpoint/definition.ts +23 -0
  17. package/commands/onebot11/endpoint/list/index.js +3 -0
  18. package/commands/onebot11/endpoint/list/index.ts +3 -0
  19. package/commands/onebot11/endpoint/remove/[id]/index.js +3 -0
  20. package/commands/onebot11/endpoint/remove/[id]/index.ts +3 -0
  21. package/lib/client.d.ts +20 -0
  22. package/lib/client.js +30 -0
  23. package/lib/content-port.d.ts +4 -0
  24. package/lib/content-port.js +63 -0
  25. package/lib/endpoint-management.d.ts +15 -0
  26. package/lib/endpoint-management.js +47 -0
  27. package/lib/index.d.ts +10 -16
  28. package/lib/index.js +7 -53
  29. package/lib/onebot11-runtime-state.d.ts +1 -0
  30. package/lib/onebot11-runtime-state.js +6 -0
  31. package/lib/protocol.d.ts +143 -0
  32. package/lib/protocol.js +327 -0
  33. package/lib/side-event-dispatch.d.ts +7 -0
  34. package/lib/side-event-dispatch.js +36 -0
  35. package/lib/ws-endpoint.d.ts +22 -0
  36. package/lib/ws-endpoint.js +209 -0
  37. package/lib/ws-transport.d.ts +12 -0
  38. package/lib/ws-transport.js +59 -0
  39. package/lib/ws-types.d.ts +18 -0
  40. package/lib/ws-types.js +1 -0
  41. package/lib/wss-auth.d.ts +2 -0
  42. package/lib/wss-auth.js +16 -0
  43. package/lib/wss-endpoint.d.ts +25 -0
  44. package/lib/wss-endpoint.js +186 -0
  45. package/package.json +82 -23
  46. package/plugin.js +18 -0
  47. package/schema.json +114 -0
  48. package/src/client.ts +78 -0
  49. package/src/content-port.ts +66 -0
  50. package/src/endpoint-management.ts +72 -0
  51. package/src/index.ts +60 -65
  52. package/src/onebot11-runtime-state.ts +7 -0
  53. package/src/protocol.ts +452 -0
  54. package/src/side-event-dispatch.ts +48 -0
  55. package/src/ws-endpoint.ts +272 -0
  56. package/src/ws-transport.ts +85 -0
  57. package/src/ws-types.ts +21 -0
  58. package/src/wss-auth.ts +17 -0
  59. package/src/wss-endpoint.ts +239 -0
  60. package/lib/adapter.d.ts +0 -32
  61. package/lib/adapter.d.ts.map +0 -1
  62. package/lib/adapter.js +0 -92
  63. package/lib/adapter.js.map +0 -1
  64. package/lib/bot-ws-client.d.ts +0 -40
  65. package/lib/bot-ws-client.d.ts.map +0 -1
  66. package/lib/bot-ws-client.js +0 -397
  67. package/lib/bot-ws-client.js.map +0 -1
  68. package/lib/bot-ws-server.d.ts +0 -42
  69. package/lib/bot-ws-server.d.ts.map +0 -1
  70. package/lib/bot-ws-server.js +0 -344
  71. package/lib/bot-ws-server.js.map +0 -1
  72. package/lib/index.d.ts.map +0 -1
  73. package/lib/index.js.map +0 -1
  74. package/lib/onebot-get-msg.d.ts +0 -3
  75. package/lib/onebot-get-msg.d.ts.map +0 -1
  76. package/lib/onebot-get-msg.js +0 -27
  77. package/lib/onebot-get-msg.js.map +0 -1
  78. package/lib/types.d.ts +0 -54
  79. package/lib/types.d.ts.map +0 -1
  80. package/lib/types.js +0 -5
  81. package/lib/types.js.map +0 -1
  82. package/plugin.yml +0 -3
  83. package/skills/onebot11/SKILL.md +0 -80
  84. package/src/adapter.ts +0 -104
  85. package/src/bot-ws-client.ts +0 -421
  86. package/src/bot-ws-server.ts +0 -382
  87. package/src/onebot-get-msg.ts +0 -33
  88. package/src/types.ts +0 -58
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot-ws-server.d.ts","sourceRoot":"","sources":["../src/bot-ws-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAiB,GAAG,EAAE,OAAO,EAA4B,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAExH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAC;;IAqB/F,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,sBAAsB;IAtBxC,UAAU,EAAE,OAAO,CAAC;IAGpB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;IAEL,IAAI,MAAM,6BAET;IAED,IAAI,GAAG,WAEN;gBAGQ,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,sBAAsB;IAMlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,cAAc,CAAC,SAAS,EAAE,eAAe;IAsCnC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAO/D,OAAO,CAAC,cAAc;IAMhB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAMhG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAMnF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAK9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAK3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;YAMzF,OAAO;IAiBrB,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,cAAc;CAQvB"}
@@ -1,344 +0,0 @@
1
- /**
2
- * OneBot11 WebSocket 服务端(反向 WS)Bot
3
- */
4
- import WebSocket from 'ws';
5
- import { EventEmitter } from 'events';
6
- import { clearInterval } from 'node:timers';
7
- import { formatCompact, Message, Notice, Request, segment } from 'zhin.js';
8
- import { parseOneBotGetMsgResponse } from './onebot-get-msg.js';
9
- export class OneBot11WsServer extends EventEmitter {
10
- adapter;
11
- router;
12
- $config;
13
- $connected;
14
- #wss;
15
- #clientMap = new Map();
16
- heartbeatTimer;
17
- requestId = 0;
18
- pendingRequests = new Map();
19
- get logger() {
20
- return this.adapter.plugin.logger;
21
- }
22
- get $id() {
23
- return this.$config.name;
24
- }
25
- constructor(adapter, router, $config) {
26
- super();
27
- this.adapter = adapter;
28
- this.router = router;
29
- this.$config = $config;
30
- this.$connected = false;
31
- }
32
- async $connect() {
33
- if (!this.$config.access_token) {
34
- this.logger.warn(formatCompact({ bot: this.$id, ok: false, error: 'missing access_token' }));
35
- }
36
- this.#wss = this.router.ws(this.$config.path, {
37
- verifyClient: (info) => {
38
- const { req: { headers } } = info;
39
- const authorization = headers['authorization'] || '';
40
- if (this.$config.access_token && authorization !== `Bearer ${this.$config.access_token}`) {
41
- this.logger.error('鉴权失败');
42
- return false;
43
- }
44
- return true;
45
- },
46
- });
47
- this.logger.info(formatCompact({ op: 'listen', bot: this.$id, mode: 'wss', path: this.$config.path }));
48
- this.#wss.on('connection', (client, req) => {
49
- this.startHeartbeat();
50
- this.logger.info(formatCompact({ bot: this.$id, peer: req.socket.remoteAddress }));
51
- client.on('error', (err) => this.logger.warn(formatCompact({
52
- op: 'ws_error',
53
- bot: this.$id,
54
- ok: false,
55
- error: err instanceof Error ? err.message : String(err),
56
- })));
57
- client.on('close', (code, reason) => {
58
- const reasonStr = reason?.toString?.() || String(reason ?? '');
59
- const codeHint = code === 1005 ? ' [无状态]' : code === 1006 ? ' [异常关闭]' : '';
60
- this.logger.warn(formatCompact({
61
- op: 'disconnect',
62
- bot: this.$id,
63
- peer: req.socket.remoteAddress,
64
- code: code ?? '?',
65
- error: `${reasonStr || 'closed'}${codeHint}`,
66
- }));
67
- for (const [key, value] of this.#clientMap) {
68
- if (client === value)
69
- this.#clientMap.delete(key);
70
- }
71
- if (this.#clientMap.size === 0) {
72
- this.$connected = false;
73
- }
74
- });
75
- client.on('message', (data) => {
76
- try {
77
- const message = JSON.parse(data.toString());
78
- this.handleWebSocketMessage(client, message);
79
- }
80
- catch (error) {
81
- this.emit('error', error);
82
- }
83
- });
84
- });
85
- }
86
- async $disconnect() {
87
- this.#wss?.close();
88
- if (this.heartbeatTimer) {
89
- clearInterval(this.heartbeatTimer);
90
- this.heartbeatTimer = undefined;
91
- }
92
- }
93
- $formatMessage(onebotMsg) {
94
- const msgId = [onebotMsg.self_id, onebotMsg.message_id].join(':');
95
- const channel = {
96
- id: [onebotMsg.self_id, (onebotMsg.group_id || onebotMsg.user_id)].join(':'),
97
- type: (onebotMsg.group_id ? 'group' : 'private'),
98
- };
99
- const content = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
100
- const quoteId = Message.quoteIdFromContent(content);
101
- Message.alignReplySegments(content, quoteId);
102
- const message = Message.from(onebotMsg, {
103
- $id: msgId,
104
- $adapter: 'onebot11',
105
- $bot: `${this.$config.name}`,
106
- $sender: {
107
- id: onebotMsg.user_id.toString(),
108
- name: onebotMsg.user_id.toString(),
109
- },
110
- $channel: channel,
111
- $content: content,
112
- $quote_id: quoteId,
113
- $raw: onebotMsg.raw_message,
114
- $timestamp: onebotMsg.time,
115
- $recall: async () => await this.$recallMessage(msgId),
116
- $reply: async (content, quote) => {
117
- if (!Array.isArray(content))
118
- content = [content];
119
- if (quote)
120
- content.unshift({ type: 'reply', data: { message_id: msgId } });
121
- return await this.$sendMessage({
122
- ...channel,
123
- context: 'onebot11',
124
- bot: `${this.$config.name}`,
125
- content,
126
- });
127
- },
128
- });
129
- return message;
130
- }
131
- async $sendMessage(options) {
132
- const messageData = { message: options.content };
133
- if (options.type === 'group') {
134
- const [self_id, id] = options.id.split(':');
135
- const result = await this.callApi(self_id, 'send_group_msg', {
136
- group_id: parseInt(id),
137
- ...messageData,
138
- });
139
- this.logger.debug(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`);
140
- return result.message_id.toString();
141
- }
142
- if (options.type === 'private') {
143
- const [self_id, id] = options.id.split(':');
144
- const result = await this.callApi(self_id, 'send_private_msg', {
145
- user_id: parseInt(id),
146
- ...messageData,
147
- });
148
- this.logger.debug(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`);
149
- return result.message_id.toString();
150
- }
151
- throw new Error('Either group_id or user_id must be provided');
152
- }
153
- async $recallMessage(id) {
154
- const [self_id, message_id] = id.split(':');
155
- await this.callApi(self_id, 'delete_msg', { message_id: parseInt(message_id) });
156
- }
157
- async $getMsg(messageId) {
158
- const selfId = this.getFirstSelfId();
159
- const idParam = /^\d+$/.test(messageId) ? Number(messageId) : messageId;
160
- const data = await this.callApi(selfId, 'get_msg', { message_id: idParam });
161
- return parseOneBotGetMsgResponse(messageId, data);
162
- }
163
- getFirstSelfId() {
164
- const first = this.#clientMap.keys().next().value;
165
- if (!first)
166
- throw new Error('反向 WS 尚未有实现端连接');
167
- return first;
168
- }
169
- async kickMember(groupId, userId, rejectAddRequest = false) {
170
- const selfId = this.getFirstSelfId();
171
- await this.callApi(selfId, 'set_group_kick', { group_id: groupId, user_id: userId, reject_add_request: rejectAddRequest });
172
- return true;
173
- }
174
- async muteMember(groupId, userId, duration = 600) {
175
- const selfId = this.getFirstSelfId();
176
- await this.callApi(selfId, 'set_group_ban', { group_id: groupId, user_id: userId, duration });
177
- return true;
178
- }
179
- async muteAll(groupId, enable = true) {
180
- const selfId = this.getFirstSelfId();
181
- await this.callApi(selfId, 'set_group_whole_ban', { group_id: groupId, enable });
182
- return true;
183
- }
184
- async setAdmin(groupId, userId, enable = true) {
185
- const selfId = this.getFirstSelfId();
186
- await this.callApi(selfId, 'set_group_admin', { group_id: groupId, user_id: userId, enable });
187
- return true;
188
- }
189
- async setCard(groupId, userId, card) {
190
- const selfId = this.getFirstSelfId();
191
- await this.callApi(selfId, 'set_group_card', { group_id: groupId, user_id: userId, card });
192
- return true;
193
- }
194
- async setGroupName(groupId, name) {
195
- const selfId = this.getFirstSelfId();
196
- await this.callApi(selfId, 'set_group_name', { group_id: groupId, group_name: name });
197
- return true;
198
- }
199
- async getMemberList(groupId) {
200
- const selfId = this.getFirstSelfId();
201
- return await this.callApi(selfId, 'get_group_member_list', { group_id: groupId });
202
- }
203
- async getGroupInfo(groupId) {
204
- const selfId = this.getFirstSelfId();
205
- return await this.callApi(selfId, 'get_group_info', { group_id: groupId });
206
- }
207
- async setTitle(groupId, userId, title, duration = -1) {
208
- const selfId = this.getFirstSelfId();
209
- await this.callApi(selfId, 'set_group_special_title', { group_id: groupId, user_id: userId, special_title: title, duration });
210
- return true;
211
- }
212
- async callApi(self_id, action, params = {}) {
213
- const client = this.#clientMap.get(self_id);
214
- if (!client || client.readyState !== WebSocket.OPEN) {
215
- throw new Error('WebSocket is not connected');
216
- }
217
- const echo = `req_${++this.requestId}`;
218
- const message = { action, params, echo };
219
- return new Promise((resolve, reject) => {
220
- const timeout = setTimeout(() => {
221
- this.pendingRequests.delete(echo);
222
- reject(new Error(`API call timeout: ${action}`));
223
- }, 30000);
224
- this.pendingRequests.set(echo, { resolve, reject, timeout });
225
- client.send(JSON.stringify(message));
226
- });
227
- }
228
- handleWebSocketMessage(client, message) {
229
- // 自动注册 client 映射(修复:统一使用 String 类型 key,兼容不发 lifecycle:connect 的实现端)
230
- if (message.self_id != null) {
231
- const selfIdStr = String(message.self_id);
232
- if (!this.#clientMap.has(selfIdStr) || this.#clientMap.get(selfIdStr) !== client) {
233
- this.#clientMap.set(selfIdStr, client);
234
- if (!this.$connected) {
235
- this.$connected = true;
236
- }
237
- }
238
- }
239
- if (message.echo && this.pendingRequests.has(message.echo)) {
240
- const request = this.pendingRequests.get(message.echo);
241
- this.pendingRequests.delete(message.echo);
242
- clearTimeout(request.timeout);
243
- const response = message;
244
- if (response.status === 'ok')
245
- return request.resolve(response.data);
246
- return request.reject(new Error(`API error: ${response.retcode}`));
247
- }
248
- switch (message.post_type) {
249
- case 'message':
250
- return this.handleMessage(message);
251
- case 'notice':
252
- return this.handleNotice(message);
253
- case 'request':
254
- return this.handleRequest(message);
255
- case 'meta_event':
256
- return this.handleMetaEvent(client, message);
257
- }
258
- }
259
- handleMetaEvent(client, message) {
260
- switch (message.sub_type) {
261
- case 'heartbeat':
262
- break;
263
- case 'connect':
264
- this.#clientMap.set(String(message.self_id), client);
265
- this.$connected = true;
266
- this.logger.info(formatCompact({ bot: this.$config.name, self_id: message.self_id }));
267
- break;
268
- }
269
- }
270
- handleMessage(onebotMsg) {
271
- const message = this.$formatMessage(onebotMsg);
272
- this.adapter.emit('message.receive', message);
273
- this.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`);
274
- }
275
- handleNotice(event) {
276
- const noticeTypeMap = {
277
- group_increase: 'group_member_increase',
278
- group_decrease: 'group_member_decrease',
279
- group_admin: 'group_admin_change',
280
- group_ban: 'group_ban',
281
- group_recall: 'group_recall',
282
- friend_recall: 'friend_recall',
283
- friend_add: 'friend_add',
284
- notify: event.sub_type === 'poke' ? (event.group_id ? 'group_poke' : 'friend_poke') : `notify_${event.sub_type}`,
285
- group_upload: 'group_upload',
286
- };
287
- const $type = noticeTypeMap[event.notice_type] || event.notice_type;
288
- const isGroup = !!event.group_id;
289
- const notice = Notice.from(event, {
290
- $id: `${event.self_id}:${event.time}_${event.notice_type}_${event.group_id || event.user_id}`,
291
- $adapter: 'onebot11',
292
- $bot: this.$config.name,
293
- $type,
294
- $subType: event.sub_type,
295
- $channel: {
296
- id: [event.self_id, (event.group_id || event.user_id)].join(':'),
297
- type: isGroup ? 'group' : 'private',
298
- },
299
- $operator: event.operator_id ? { id: event.operator_id.toString(), name: event.operator_id.toString() } : undefined,
300
- $target: event.user_id ? { id: event.user_id.toString(), name: event.user_id.toString() } : undefined,
301
- $timestamp: event.time || Math.floor(Date.now() / 1000),
302
- });
303
- this.adapter.emit('notice.receive', notice);
304
- }
305
- handleRequest(event) {
306
- const self_id = event.self_id?.toString() || '';
307
- const typeMap = {
308
- friend: 'friend_add',
309
- group: event.sub_type === 'invite' ? 'group_invite' : 'group_add',
310
- };
311
- const $type = typeMap[event.request_type] || event.request_type;
312
- const request = Request.from(event, {
313
- $id: event.flag || `${self_id}:${event.time}_${event.request_type}_${event.user_id}`,
314
- $adapter: 'onebot11',
315
- $bot: this.$config.name,
316
- $type,
317
- $subType: event.sub_type,
318
- $channel: {
319
- id: [self_id, (event.group_id || event.user_id)].join(':'),
320
- type: event.group_id ? 'group' : 'private',
321
- },
322
- $sender: { id: event.user_id?.toString() || '', name: event.user_id?.toString() || '' },
323
- $comment: event.comment,
324
- $timestamp: event.time || Math.floor(Date.now() / 1000),
325
- $approve: async (remark) => {
326
- await this.callApi(self_id, event.request_type === 'friend' ? 'set_friend_add_request' : 'set_group_add_request', { flag: event.flag, approve: true, remark });
327
- },
328
- $reject: async (reason) => {
329
- await this.callApi(self_id, event.request_type === 'friend' ? 'set_friend_add_request' : 'set_group_add_request', { flag: event.flag, approve: false, reason });
330
- },
331
- });
332
- this.adapter.emit('request.receive', request);
333
- }
334
- startHeartbeat() {
335
- const interval = this.$config.heartbeat_interval || 30000;
336
- this.heartbeatTimer = setInterval(() => {
337
- for (const client of this.#wss?.clients || []) {
338
- if (client && client.readyState === WebSocket.OPEN)
339
- client.ping();
340
- }
341
- }, interval);
342
- }
343
- }
344
- //# sourceMappingURL=bot-ws-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot-ws-server.js","sourceRoot":"","sources":["../src/bot-ws-server.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,MAAM,EAAE,OAAO,sBAAsB,EAAE,MAAM,CAAC;SAC/C;KACF;IACD,UAAU,QAAQ;QAChB,QAAQ,EAAE,eAAe,CAAC;KAC3B;CACF"}
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { QuotedMessagePayload } from 'zhin.js';
2
- export declare function parseOneBotGetMsgResponse(messageId: string, data: unknown): QuotedMessagePayload;
3
- //# sourceMappingURL=onebot-get-msg.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onebot-get-msg.d.ts","sourceRoot":"","sources":["../src/onebot-get-msg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpE,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,GACZ,oBAAoB,CA2BtB"}
@@ -1,27 +0,0 @@
1
- export function parseOneBotGetMsgResponse(messageId, data) {
2
- const record = data && typeof data === 'object' ? data : {};
3
- let content = [];
4
- if (Array.isArray(record.message)) {
5
- content = record.message;
6
- }
7
- else if (typeof record.raw_message === 'string' && record.raw_message) {
8
- content = [{ type: 'text', data: { text: record.raw_message } }];
9
- }
10
- const senderRaw = record.sender;
11
- let sender;
12
- if (senderRaw && typeof senderRaw === 'object') {
13
- const s = senderRaw;
14
- sender = {
15
- id: String(s.user_id ?? ''),
16
- name: String(s.nickname ?? s.card ?? ''),
17
- };
18
- }
19
- return {
20
- messageId,
21
- sender,
22
- content,
23
- raw: typeof record.raw_message === 'string' ? record.raw_message : undefined,
24
- time: typeof record.time === 'number' ? record.time : undefined,
25
- };
26
- }
27
- //# sourceMappingURL=onebot-get-msg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onebot-get-msg.js","sourceRoot":"","sources":["../src/onebot-get-msg.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,IAAa;IAEb,MAAM,MAAM,GACV,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,IAAI,OAAO,GAAoC,EAAE,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,MAAM,CAAC,OAA2B,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,MAAsC,CAAC;IAC3C,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,SAAoC,CAAC;QAC/C,MAAM,GAAG;YACP,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS;QACT,MAAM;QACN,OAAO;QACP,GAAG,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC5E,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAChE,CAAC;AACJ,CAAC"}
package/lib/types.d.ts DELETED
@@ -1,54 +0,0 @@
1
- /**
2
- * OneBot11 适配器类型与配置
3
- */
4
- export interface OneBot11SenderInfo {
5
- id: string;
6
- name: string;
7
- role?: 'owner' | 'admin' | 'member';
8
- isOwner?: boolean;
9
- isAdmin?: boolean;
10
- card?: string;
11
- title?: string;
12
- }
13
- /** 配置公共字段;单一适配器 context 均为 'onebot11',连接方式由 connection 区分 */
14
- export interface OneBot11ConfigBase {
15
- context: 'onebot11';
16
- name: string;
17
- access_token?: string;
18
- }
19
- /** 正向 WebSocket:应用连 OneBot 实现的 WS */
20
- export interface OneBot11WsClientConfig extends OneBot11ConfigBase {
21
- connection: 'ws';
22
- url: string;
23
- reconnect_interval?: number;
24
- heartbeat_interval?: number;
25
- }
26
- /** 反向 WebSocket:应用开 WS 服务端,实现连上来 */
27
- export interface OneBot11WsServerConfig extends OneBot11ConfigBase {
28
- connection: 'wss';
29
- path: string;
30
- heartbeat_interval?: number;
31
- }
32
- export type OneBot11BotConfig = OneBot11WsClientConfig | OneBot11WsServerConfig;
33
- export interface OneBot11Message {
34
- post_type: string;
35
- self_id: string;
36
- message_type?: string;
37
- sub_type?: string;
38
- message_id: number;
39
- user_id: number;
40
- group_id?: number;
41
- message: Array<{
42
- type: string;
43
- data: Record<string, any>;
44
- }>;
45
- raw_message: string;
46
- time: number;
47
- }
48
- export interface ApiResponse<T = any> {
49
- status: string;
50
- retcode: number;
51
- data: T;
52
- echo?: string;
53
- }
54
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qCAAqC;AACrC,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,UAAU,EAAE,IAAI,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,oCAAoC;AACpC,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,UAAU,EAAE,KAAK,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAEhF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
package/lib/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * OneBot11 适配器类型与配置
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
package/lib/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/plugin.yml DELETED
@@ -1,3 +0,0 @@
1
- name: adapter-onebot11
2
- description: OneBot 11 协议适配器:群管理、头衔设置
3
- version: 1.0.63
@@ -1,80 +0,0 @@
1
- ---
2
- name: onebot11
3
- platforms:
4
- - onebot11
5
- description: >-
6
- OneBot11 协议群管理能力。当用户在 QQ 群中请求踢人、禁言、设管理员、改群名片、
7
- 设专属头衔、查成员列表或群信息时使用此技能。即使用户没有提到 OneBot,
8
- 只要 Bot 所在平台是 OneBot11 协议且涉及群管理操作,就应触发。
9
- 仅有昵称时必须先查成员列表获取 user_id。
10
- keywords:
11
- - onebot
12
- - onebot11
13
- - adapter:onebot11
14
- - 群管理
15
- - 头衔
16
- - 禁言
17
- - 踢人
18
- - 管理员
19
- - 群名片
20
- - list_members
21
- tags:
22
- - group
23
- - management
24
- - im
25
- tools:
26
- - onebot11_set_title
27
- - onebot11_kick_member
28
- - onebot11_mute_member
29
- - onebot11_mute_all
30
- - onebot11_set_admin
31
- - onebot11_set_nickname
32
- - onebot11_set_group_name
33
- - onebot11_list_members
34
- - onebot11_get_group_info
35
- ---
36
-
37
- # OneBot11 群管理技能
38
-
39
- OneBot11 是 QQ 生态中广泛使用的标准协议。此技能覆盖基础群管理操作,另有一个平台特有工具(专属头衔)。
40
-
41
- ## 核心原则
42
-
43
- ### 先查后操作
44
-
45
- 用户说「把小明禁言」,但工具需要 QQ 号。只有昵称时,第一步永远是 `onebot11_list_members` 获取成员列表,匹配到 `user_id` 后再操作。不要猜测 QQ 号。
46
-
47
- **Example:**
48
- ```
49
- 用户: 把"小飞"踢了
50
- 步骤1: onebot11_list_members → 找到 user_id = 123456
51
- 步骤2: onebot11_kick_member(user_id=123456)
52
- ```
53
-
54
- ### 权限层级
55
-
56
- - **user** — 查询类:`list_members`, `get_group_info`
57
- - **group_admin** — 管理类:踢人、禁言、改名片、改群名
58
- - **group_owner** — 仅群主:设管理员、设专属头衔
59
-
60
- Bot 权限不足时 API 会报错,应向用户说明而非重试。
61
-
62
- ## 工具详解
63
-
64
- | 工具 | 用途 | 权限 | 关键参数 |
65
- |------|------|------|----------|
66
- | `onebot11_kick_member` | 踢出成员 | admin | `user_id` |
67
- | `onebot11_mute_member` | 禁言/解禁 | admin | `user_id`, `duration`(秒,**0=解禁**) |
68
- | `onebot11_mute_all` | 全员禁言/解除 | admin | `enable`(true/false) |
69
- | `onebot11_set_admin` | 设/取消管理员 | owner | `user_id`, `enable` |
70
- | `onebot11_set_nickname` | 改群名片 | admin | `user_id`, `nickname` |
71
- | `onebot11_set_group_name` | 改群名称 | admin | `name` |
72
- | `onebot11_set_title` | 设专属头衔 | owner | `user_id`, `title` |
73
- | `onebot11_list_members` | 获取成员列表 | user | — |
74
- | `onebot11_get_group_info` | 获取群信息 | user | — |
75
-
76
- ## 易错点
77
-
78
- 1. **禁言 duration=0 是解禁**,不是永久禁言。最长可设 2592000(30 天)。
79
- 2. **头衔只有群主能设**,管理员也不行。用户说「加个头衔」但 Bot 不是群主时,告知无法操作。
80
- 3. **OneBot11 与 NapCat/ICQQ 功能范围不同**:标准 OneBot11 不支持合并转发、精华消息、群文件等扩展功能,这些属于 NapCat 或 ICQQ 的增强。