@zhin.js/adapter-icqq 1.1.14 → 1.1.16
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 +65 -0
- package/PERMITS.md +14 -18
- package/README.md +12 -0
- package/adapters/icqq/index.js +15 -0
- package/adapters/icqq/index.ts +15 -0
- package/agents/icqq/conversation.js +72 -0
- package/agents/icqq/conversation.ts +67 -0
- package/agents/icqq/messages.js +144 -0
- package/agents/icqq/messages.ts +144 -0
- package/agents/icqq/skills/icqq-conversation/SKILL.md +24 -0
- package/agents/icqq/skills/icqq-conversation/tools/conversation_info/index.js +61 -0
- package/agents/icqq/skills/icqq-conversation/tools/conversation_info/index.ts +61 -0
- package/agents/icqq/skills/icqq-directory/SKILL.md +9 -11
- package/agents/icqq/skills/icqq-directory/tools/user_info/index.js +2 -1
- package/agents/icqq/skills/icqq-directory/tools/user_info/index.ts +2 -1
- package/agents/icqq/skills/icqq-group-admin/SKILL.md +32 -15
- package/agents/icqq/skills/icqq-group-admin/tools/announce/index.js +2 -1
- package/agents/icqq/skills/icqq-group-admin/tools/announce/index.ts +2 -1
- package/agents/icqq/skills/icqq-group-admin/tools/essence/index.js +2 -1
- package/agents/icqq/skills/icqq-group-admin/tools/essence/index.ts +2 -1
- package/agents/icqq/skills/icqq-group-admin/tools/group_invite/index.js +5 -3
- package/agents/icqq/skills/icqq-group-admin/tools/group_invite/index.ts +5 -3
- package/agents/icqq/skills/icqq-group-admin/tools/group_kick/index.js +14 -11
- package/agents/icqq/skills/icqq-group-admin/tools/group_kick/index.ts +13 -9
- package/agents/icqq/skills/icqq-group-admin/tools/group_leave/index.js +33 -0
- package/agents/icqq/skills/icqq-group-admin/tools/group_leave/index.ts +32 -0
- package/agents/icqq/skills/icqq-group-admin/tools/recall_member_message/index.js +33 -0
- package/agents/icqq/skills/icqq-group-admin/tools/recall_member_message/index.ts +32 -0
- package/agents/icqq/skills/icqq-group-admin/tools/set_anonymous/index.js +3 -2
- package/agents/icqq/skills/icqq-group-admin/tools/set_anonymous/index.ts +3 -2
- package/agents/icqq/skills/icqq-group-admin/tools/set_mute/index.js +4 -3
- package/agents/icqq/skills/icqq-group-admin/tools/set_mute/index.ts +4 -3
- package/agents/icqq/skills/icqq-group-admin/tools/set_title/index.js +4 -3
- package/agents/icqq/skills/icqq-group-admin/tools/set_title/index.ts +4 -3
- package/agents/icqq/skills/icqq-group-directory/SKILL.md +16 -0
- package/agents/icqq/skills/{icqq-directory → icqq-group-directory}/tools/group_member_info/index.js +3 -2
- package/agents/icqq/skills/{icqq-directory → icqq-group-directory}/tools/group_member_info/index.ts +3 -2
- package/agents/icqq/skills/icqq-group-interaction/SKILL.md +18 -0
- package/agents/icqq/skills/{icqq-interaction → icqq-group-interaction}/tools/group_sign/index.js +3 -2
- package/agents/icqq/skills/{icqq-interaction → icqq-group-interaction}/tools/group_sign/index.ts +3 -2
- package/agents/icqq/skills/{icqq-interaction → icqq-group-interaction}/tools/poke/index.js +2 -1
- package/agents/icqq/skills/{icqq-interaction → icqq-group-interaction}/tools/poke/index.ts +2 -1
- package/agents/icqq/skills/icqq-group-state/SKILL.md +7 -6
- package/agents/icqq/skills/icqq-group-state/tools/group_files/index.js +2 -1
- package/agents/icqq/skills/icqq-group-state/tools/group_files/index.ts +2 -1
- package/agents/icqq/skills/icqq-interaction/SKILL.md +5 -10
- package/agents/icqq/skills/icqq-interaction/tools/send_user_like/index.js +3 -2
- package/agents/icqq/skills/icqq-interaction/tools/send_user_like/index.ts +3 -2
- package/agents/icqq/skills/icqq-messages/SKILL.md +28 -0
- package/agents/icqq/skills/icqq-messages/tools/forward_messages/index.js +42 -0
- package/agents/icqq/skills/icqq-messages/tools/forward_messages/index.ts +40 -0
- package/agents/icqq/skills/icqq-messages/tools/quote_reply/index.js +24 -0
- package/agents/icqq/skills/icqq-messages/tools/quote_reply/index.ts +24 -0
- package/agents/icqq/skills/icqq-messages/tools/recall_own_message/index.js +18 -0
- package/agents/icqq/skills/icqq-messages/tools/recall_own_message/index.ts +17 -0
- package/agents/icqq/system.md +4 -0
- package/commands/icqq/endpoint/definition.js +9 -7
- package/commands/icqq/endpoint/definition.ts +9 -9
- package/lib/endpoint.d.ts +1 -0
- package/lib/endpoint.js +12 -1
- package/lib/group-moderation.d.ts +5 -0
- package/lib/group-moderation.js +46 -0
- package/lib/i18n.d.ts +1 -0
- package/lib/i18n.js +47 -0
- package/lib/icqq-inbound.js +15 -0
- package/lib/icqq-login-assist.d.ts +2 -0
- package/lib/icqq-login-assist.js +8 -7
- package/lib/protocol.d.ts +1 -0
- package/lib/protocol.js +14 -1
- package/package.json +16 -16
- package/prompt-sections/platform/index.js +1 -2
- package/prompt-sections/platform/index.ts +1 -2
- package/schema.json +250 -42
- package/src/endpoint.ts +14 -1
- package/src/group-moderation.ts +52 -0
- package/src/i18n.ts +48 -0
- package/src/icqq-inbound.ts +14 -0
- package/src/icqq-login-assist.ts +10 -7
- package/src/protocol.ts +13 -1
package/src/protocol.ts
CHANGED
|
@@ -269,6 +269,7 @@ export interface ResolvedIcqqConfig {
|
|
|
269
269
|
export interface IcqqWireSegment {
|
|
270
270
|
readonly type: string;
|
|
271
271
|
readonly data?: Record<string, unknown>;
|
|
272
|
+
readonly platform?: Readonly<Record<string, unknown>>;
|
|
272
273
|
}
|
|
273
274
|
|
|
274
275
|
export interface IcqqInboundMessage {
|
|
@@ -394,6 +395,7 @@ const ICQQ_STANDALONE_ELEMENTS = new Set([
|
|
|
394
395
|
'json',
|
|
395
396
|
'share',
|
|
396
397
|
'long_msg',
|
|
398
|
+
'multimsg',
|
|
397
399
|
] as const);
|
|
398
400
|
|
|
399
401
|
/** Normalize inline image bytes before either temporary-file or native-base64 delivery. */
|
|
@@ -461,7 +463,7 @@ export function formatOutboundMessages(payload: unknown): Sendable[] {
|
|
|
461
463
|
}
|
|
462
464
|
const messages = groups.filter(group => group.some(element => typeof element === 'string'
|
|
463
465
|
? element.trim() !== ''
|
|
464
|
-
: element.type !== 'reply'));
|
|
466
|
+
: element.type !== 'reply' && element.type !== 'quote'));
|
|
465
467
|
if (messages.length === 0) return ['\u200b'];
|
|
466
468
|
return messages.map(group => group.length === 1 ? group[0]! : group);
|
|
467
469
|
}
|
|
@@ -502,6 +504,13 @@ function formatOutboundElements(payload: readonly unknown[]): (string | MessageE
|
|
|
502
504
|
case 'reply': {
|
|
503
505
|
const id = String(item.data?.message_id ?? item.data?.id ?? '').trim();
|
|
504
506
|
if (!id) throw new TypeError('ICQQ reply segment requires message_id');
|
|
507
|
+
const quote = item.platform?.icqqQuote as Record<string, unknown> | undefined;
|
|
508
|
+
if (quote) {
|
|
509
|
+
const { user_id, seq, rand, time, message } = quote;
|
|
510
|
+
if (typeof user_id !== 'number' || typeof seq !== 'number' || typeof rand !== 'number'
|
|
511
|
+
|| typeof time !== 'number' || typeof message !== 'string') throw new TypeError('Invalid ICQQ quote source');
|
|
512
|
+
return { type: 'quote', user_id, seq, rand, time, message };
|
|
513
|
+
}
|
|
505
514
|
return { type: 'reply', id };
|
|
506
515
|
}
|
|
507
516
|
case 'record':
|
|
@@ -528,6 +537,9 @@ function formatOutboundElements(payload: readonly unknown[]): (string | MessageE
|
|
|
528
537
|
case 'forward': {
|
|
529
538
|
const resid = String(item.data?.forward_id ?? item.data?.resid ?? item.data?.id ?? '').trim();
|
|
530
539
|
if (!resid) throw new TypeError('ICQQ forward segment requires forward_id');
|
|
540
|
+
// Prepared merged forwards need their filename; a long_msg would expand inline.
|
|
541
|
+
const filename = item.platform?.icqqForwardFilename;
|
|
542
|
+
if (typeof filename === 'string' && filename) return { type: 'multimsg', resid, filename };
|
|
531
543
|
return { type: 'long_msg', resid };
|
|
532
544
|
}
|
|
533
545
|
case 'share':
|