@zhin.js/adapter-icqq 6.0.1 → 6.0.3
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 +59 -0
- package/README.md +32 -437
- package/adapters/icqq.ts +30 -0
- package/agent/tools/announce.ts +21 -0
- package/agent/tools/essence.ts +22 -0
- package/agent/tools/friend_list.ts +19 -0
- package/agent/tools/group_files.ts +27 -0
- package/agent/tools/group_invite.ts +20 -0
- package/agent/tools/group_list.ts +20 -0
- package/agent/tools/group_sign.ts +19 -0
- package/agent/tools/list_muted.ts +22 -0
- package/agent/tools/poke.ts +20 -0
- package/agent/tools/send_user_like.ts +22 -0
- package/agent/tools/set_anonymous.ts +22 -0
- package/agent/tools/set_title.ts +25 -0
- package/lib/agent-prompt.d.ts +0 -1
- package/lib/agent-prompt.js +0 -1
- package/lib/cq-message.d.ts +0 -1
- package/lib/cq-message.js +0 -1
- package/lib/endpoint.d.ts +45 -97
- package/lib/endpoint.js +357 -628
- package/lib/forward-msg.d.ts +1 -2
- package/lib/forward-msg.js +4 -2
- package/lib/icqq-agent-deps.d.ts +25 -0
- package/lib/icqq-agent-deps.js +32 -0
- package/lib/icqq-guild.d.ts +1 -2
- package/lib/icqq-guild.js +4 -2
- package/lib/icqq-inbound.d.ts +10 -1
- package/lib/icqq-inbound.js +27 -3
- package/lib/index.d.ts +6 -18
- package/lib/index.js +6 -50
- package/lib/ipc-client.d.ts +0 -1
- package/lib/ipc-client.js +0 -1
- package/lib/outbound-media.d.ts +0 -1
- package/lib/outbound-media.js +0 -1
- package/lib/protocol.d.ts +73 -2
- package/lib/protocol.js +124 -2
- package/lib/types.d.ts +0 -1
- package/lib/types.js +0 -1
- package/package.json +51 -43
- package/plugin.ts +32 -0
- package/schema.json +35 -0
- package/src/agent-prompt.ts +1 -2
- package/src/endpoint.ts +399 -800
- package/src/forward-msg.ts +2 -2
- package/src/icqq-agent-deps.ts +57 -0
- package/src/icqq-guild.ts +1 -2
- package/src/icqq-inbound.ts +31 -2
- package/src/index.ts +35 -69
- package/src/protocol.ts +191 -1
- package/client/ICQQManagement.tsx +0 -147
- package/client/LoginAssistPanel.tsx +0 -300
- package/client/index.tsx +0 -11
- package/client/tsconfig.json +0 -7
- package/client/utils/api.ts +0 -30
- package/dist/index.js +0 -34
- package/lib/adapter.d.ts +0 -46
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js +0 -128
- package/lib/adapter.js.map +0 -1
- package/lib/agent-prompt.d.ts.map +0 -1
- package/lib/agent-prompt.js.map +0 -1
- package/lib/cq-message.d.ts.map +0 -1
- package/lib/cq-message.js.map +0 -1
- package/lib/endpoint.d.ts.map +0 -1
- package/lib/endpoint.js.map +0 -1
- package/lib/forward-msg.d.ts.map +0 -1
- package/lib/forward-msg.js.map +0 -1
- package/lib/get-msg.d.ts +0 -3
- package/lib/get-msg.d.ts.map +0 -1
- package/lib/get-msg.js +0 -46
- package/lib/get-msg.js.map +0 -1
- package/lib/icqq-guild.d.ts.map +0 -1
- package/lib/icqq-guild.js.map +0 -1
- package/lib/icqq-inbound.d.ts.map +0 -1
- package/lib/icqq-inbound.js.map +0 -1
- package/lib/icqq-login-assist-bridge.d.ts +0 -5
- package/lib/icqq-login-assist-bridge.d.ts.map +0 -1
- package/lib/icqq-login-assist-bridge.js +0 -148
- package/lib/icqq-login-assist-bridge.js.map +0 -1
- package/lib/icqq-side-events.d.ts +0 -34
- package/lib/icqq-side-events.d.ts.map +0 -1
- package/lib/icqq-side-events.js +0 -194
- package/lib/icqq-side-events.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/ipc-client.d.ts.map +0 -1
- package/lib/ipc-client.js.map +0 -1
- package/lib/login-assist-routes.d.ts +0 -7
- package/lib/login-assist-routes.d.ts.map +0 -1
- package/lib/login-assist-routes.js +0 -29
- package/lib/login-assist-routes.js.map +0 -1
- package/lib/login-ipc-contract.d.ts +0 -44
- package/lib/login-ipc-contract.d.ts.map +0 -1
- package/lib/login-ipc-contract.js +0 -35
- package/lib/login-ipc-contract.js.map +0 -1
- package/lib/outbound-media.d.ts.map +0 -1
- package/lib/outbound-media.js.map +0 -1
- package/lib/protocol.d.ts.map +0 -1
- package/lib/protocol.js.map +0 -1
- package/lib/routes.d.ts +0 -8
- package/lib/routes.d.ts.map +0 -1
- package/lib/routes.js +0 -67
- 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/index.d.ts +0 -10
- package/lib/tools/index.d.ts.map +0 -1
- package/lib/tools/index.js +0 -341
- package/lib/tools/index.js.map +0 -1
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
- package/plugin.yml +0 -3
- package/src/adapter.ts +0 -151
- package/src/get-msg.ts +0 -56
- package/src/icqq-login-assist-bridge.ts +0 -196
- package/src/icqq-side-events.ts +0 -228
- package/src/login-assist-routes.ts +0 -39
- package/src/login-ipc-contract.ts +0 -52
- package/src/routes.ts +0 -83
- package/src/segment-mapper.ts +0 -1
- package/src/tools/index.ts +0 -412
- /package/{skills/icqq → agent}/PERMITS.md +0 -0
package/plugin.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { definePlugin } from '@zhin.js/plugin-runtime';
|
|
2
|
+
|
|
3
|
+
// Module-level guard: multiple icqq instances (icqq, icqq-2, …) share this
|
|
4
|
+
// module, but the prompt contributor is per-platform — register it once.
|
|
5
|
+
let promptContributorRegistered = false;
|
|
6
|
+
|
|
7
|
+
export default definePlugin({
|
|
8
|
+
name: 'icqq',
|
|
9
|
+
metadata: {
|
|
10
|
+
displayName: 'ICQQ Adapter',
|
|
11
|
+
},
|
|
12
|
+
setup() {
|
|
13
|
+
// Agent prompt contributor (orchestrator/deferred-worker ICQQ guidance).
|
|
14
|
+
// `zhin.js/agent` is an optional peer — skip silently on IM-only installs.
|
|
15
|
+
if (promptContributorRegistered) return;
|
|
16
|
+
let cancelled = false;
|
|
17
|
+
let unregister: (() => void) | undefined;
|
|
18
|
+
void Promise.all([
|
|
19
|
+
import('zhin.js/agent'),
|
|
20
|
+
import('./src/agent-prompt.js'),
|
|
21
|
+
]).then(([agent, prompt]) => {
|
|
22
|
+
if (cancelled || promptContributorRegistered) return;
|
|
23
|
+
agent.registerAgentPromptContributor(prompt.createIcqqAgentPromptContributor());
|
|
24
|
+
promptContributorRegistered = true;
|
|
25
|
+
unregister = () => agent.unregisterAgentPromptContributor('icqq');
|
|
26
|
+
}).catch(() => { /* optional peer not installed */ });
|
|
27
|
+
return () => {
|
|
28
|
+
cancelled = true;
|
|
29
|
+
unregister?.();
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
});
|
package/schema.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "QQ uin (must match icqq login account)"
|
|
9
|
+
},
|
|
10
|
+
"master": {
|
|
11
|
+
"type": ["string", "number"],
|
|
12
|
+
"description": "Endpoint Owner QQ uin (for /approve bash and master role)"
|
|
13
|
+
},
|
|
14
|
+
"autoReconnect": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": true
|
|
17
|
+
},
|
|
18
|
+
"outboundMedia": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["file", "base64"],
|
|
21
|
+
"description": "file=local path (same host as daemon); base64=CQ base64:// (default when rpc set)"
|
|
22
|
+
},
|
|
23
|
+
"rpc": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"additionalProperties": false,
|
|
26
|
+
"properties": {
|
|
27
|
+
"host": { "type": "string" },
|
|
28
|
+
"port": { "type": "number" },
|
|
29
|
+
"token": { "type": "string" }
|
|
30
|
+
},
|
|
31
|
+
"required": ["host", "port", "token"]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": ["name"]
|
|
35
|
+
}
|
package/src/agent-prompt.ts
CHANGED
|
@@ -4,8 +4,7 @@ import type {
|
|
|
4
4
|
AgentPromptSection,
|
|
5
5
|
DeferredToolCatalogItem,
|
|
6
6
|
} from 'zhin.js';
|
|
7
|
-
import type
|
|
8
|
-
import { filterTools } from 'zhin.js/ai';
|
|
7
|
+
import { filterTools, type AgentTool } from 'zhin.js/ai';
|
|
9
8
|
|
|
10
9
|
function isIcqqDelegatedTask(query: string, goal: string): boolean {
|
|
11
10
|
const text = `${query} ${goal}`;
|