@zhin.js/adapter-kook 1.0.84 → 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.
- package/CHANGELOG.md +898 -17
- package/PERMITS.md +23 -0
- package/README.md +73 -374
- package/adapters/kook/index.js +41 -0
- package/adapters/kook/index.ts +56 -0
- package/agents/kook/agent.json +20 -0
- package/agents/kook/boundaries.md +3 -0
- package/agents/kook/conventions.md +3 -0
- package/agents/kook/skills/kook/SKILL.md +20 -0
- package/agents/kook/skills/kook/tools/blacklist/index.js +31 -0
- package/agents/kook/skills/kook/tools/blacklist/index.ts +31 -0
- package/agents/kook/skills/kook/tools/create_role/index.js +23 -0
- package/agents/kook/skills/kook/tools/create_role/index.ts +23 -0
- package/agents/kook/skills/kook/tools/delete_role/index.js +19 -0
- package/agents/kook/skills/kook/tools/delete_role/index.ts +19 -0
- package/agents/kook/skills/kook/tools/grant_role/index.js +20 -0
- package/agents/kook/skills/kook/tools/grant_role/index.ts +20 -0
- package/agents/kook/skills/kook/tools/list_roles/index.js +25 -0
- package/agents/kook/skills/kook/tools/list_roles/index.ts +25 -0
- package/agents/kook/skills/kook/tools/revoke_role/index.js +20 -0
- package/agents/kook/skills/kook/tools/revoke_role/index.ts +20 -0
- package/agents/kook/system.md +3 -0
- package/commands/kook/endpoint/add/[id]/index.js +3 -0
- package/commands/kook/endpoint/add/[id]/index.ts +3 -0
- package/commands/kook/endpoint/definition.js +19 -0
- package/commands/kook/endpoint/definition.ts +19 -0
- package/commands/kook/endpoint/list/index.js +3 -0
- package/commands/kook/endpoint/list/index.ts +3 -0
- package/commands/kook/endpoint/remove/[id]/index.js +3 -0
- package/commands/kook/endpoint/remove/[id]/index.ts +3 -0
- package/lib/client.d.ts +11 -0
- package/lib/client.js +2 -0
- package/lib/endpoint.d.ts +59 -0
- package/lib/endpoint.js +374 -0
- package/lib/index.d.ts +6 -18
- package/lib/index.js +6 -342
- package/lib/kook-runtime-state.d.ts +1 -0
- package/lib/kook-runtime-state.js +6 -0
- package/lib/platform-permit.d.ts +22 -0
- package/lib/platform-permit.js +48 -0
- package/lib/protocol.d.ts +126 -0
- package/lib/protocol.js +300 -0
- package/lib/side-event-dispatch.d.ts +3 -0
- package/lib/side-event-dispatch.js +49 -0
- package/lib/webhook.d.ts +16 -0
- package/lib/webhook.js +71 -0
- package/lib/ws.d.ts +56 -0
- package/lib/ws.js +63 -0
- package/package.json +73 -29
- package/plugin.js +19 -0
- package/schema.json +171 -0
- package/src/client.ts +15 -0
- package/src/endpoint.ts +433 -0
- package/src/index.ts +45 -322
- package/src/kook-runtime-state.ts +7 -0
- package/src/platform-permit.ts +75 -0
- package/src/protocol.ts +433 -0
- package/src/side-event-dispatch.ts +54 -0
- package/src/webhook.ts +114 -0
- package/src/ws.ts +131 -0
- package/client/Dashboard.tsx +0 -255
- package/client/index.tsx +0 -11
- package/client/tsconfig.json +0 -7
- package/client/utils/api.ts +0 -17
- package/dist/index.js +0 -31
- package/lib/adapter.d.ts +0 -26
- package/lib/adapter.d.ts.map +0 -1
- package/lib/adapter.js +0 -61
- package/lib/adapter.js.map +0 -1
- package/lib/bot.d.ts +0 -122
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js +0 -608
- package/lib/bot.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/types.d.ts +0 -32
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -8
- package/lib/types.js.map +0 -1
- package/plugin.yml +0 -3
- package/skills/kook/SKILL.md +0 -80
- package/src/adapter.ts +0 -71
- package/src/bot.ts +0 -693
- package/src/types.ts +0 -36
package/lib/types.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* KOOK 适配器类型与配置
|
|
3
|
-
*/
|
|
4
|
-
import type { PrivateMessageEvent, ChannelMessageEvent } from "kook-client";
|
|
5
|
-
import type { LogLevel } from "kook-client";
|
|
6
|
-
export type { LogLevel };
|
|
7
|
-
export declare enum KookPermission {
|
|
8
|
-
Normal = 1,
|
|
9
|
-
Admin = 2,
|
|
10
|
-
Owner = 4,
|
|
11
|
-
ChannelAdmin = 5
|
|
12
|
-
}
|
|
13
|
-
export interface KookSenderInfo {
|
|
14
|
-
id: string;
|
|
15
|
-
name: string;
|
|
16
|
-
permission?: KookPermission;
|
|
17
|
-
roles?: number[];
|
|
18
|
-
isGuildOwner?: boolean;
|
|
19
|
-
isAdmin?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface KookBotConfig {
|
|
22
|
-
context: "kook";
|
|
23
|
-
name: string;
|
|
24
|
-
token: string;
|
|
25
|
-
data_dir?: string;
|
|
26
|
-
timeout?: number;
|
|
27
|
-
max_retry?: number;
|
|
28
|
-
ignore?: "bot" | "self";
|
|
29
|
-
logLevel?: LogLevel;
|
|
30
|
-
}
|
|
31
|
-
export type KookRawMessage = PrivateMessageEvent | ChannelMessageEvent;
|
|
32
|
-
//# 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":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,oBAAY,cAAc;IACxB,MAAM,IAAI;IACV,KAAK,IAAI;IACT,KAAK,IAAI;IACT,YAAY,IAAI;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,mBAAmB,CAAC"}
|
package/lib/types.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export var KookPermission;
|
|
2
|
-
(function (KookPermission) {
|
|
3
|
-
KookPermission[KookPermission["Normal"] = 1] = "Normal";
|
|
4
|
-
KookPermission[KookPermission["Admin"] = 2] = "Admin";
|
|
5
|
-
KookPermission[KookPermission["Owner"] = 4] = "Owner";
|
|
6
|
-
KookPermission[KookPermission["ChannelAdmin"] = 5] = "ChannelAdmin";
|
|
7
|
-
})(KookPermission || (KookPermission = {}));
|
|
8
|
-
//# 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":"AAQA,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,uDAAU,CAAA;IACV,qDAAS,CAAA;IACT,qDAAS,CAAA;IACT,mEAAgB,CAAA;AAClB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB"}
|
package/plugin.yml
DELETED
package/skills/kook/SKILL.md
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: kook
|
|
3
|
-
platforms:
|
|
4
|
-
- kook
|
|
5
|
-
description: >-
|
|
6
|
-
KOOK 服务器管理能力。当用户在 KOOK 中请求群管(踢人、封禁、解封、改昵称)、
|
|
7
|
-
角色管理(创建/删除/授予/撤销角色)、黑名单操作或查询成员列表时使用。
|
|
8
|
-
即使用户没有提到 KOOK,只要上下文是 KOOK 场景且涉及上述操作,就应触发。
|
|
9
|
-
仅有昵称时必须先 list_members 获取 user_id。
|
|
10
|
-
keywords:
|
|
11
|
-
- kook
|
|
12
|
-
- KOOK
|
|
13
|
-
- adapter:kook
|
|
14
|
-
- 群管理
|
|
15
|
-
- 角色
|
|
16
|
-
- 黑名单
|
|
17
|
-
- 封禁
|
|
18
|
-
- list_members
|
|
19
|
-
tags:
|
|
20
|
-
- group
|
|
21
|
-
- management
|
|
22
|
-
- im
|
|
23
|
-
tools:
|
|
24
|
-
- kook_grant_role
|
|
25
|
-
- kook_revoke_role
|
|
26
|
-
- kook_list_roles
|
|
27
|
-
- kook_create_role
|
|
28
|
-
- kook_delete_role
|
|
29
|
-
- kook_blacklist
|
|
30
|
-
- kook_kick_member
|
|
31
|
-
- kook_ban_member
|
|
32
|
-
- kook_unban_member
|
|
33
|
-
- kook_set_nickname
|
|
34
|
-
- kook_list_members
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
# KOOK 服务器管理技能
|
|
38
|
-
|
|
39
|
-
KOOK 的管理模型类似 Discord,以角色为核心。此技能覆盖成员管理和角色系统。
|
|
40
|
-
|
|
41
|
-
## 核心原则
|
|
42
|
-
|
|
43
|
-
### ID 获取链
|
|
44
|
-
|
|
45
|
-
操作成员需要 KOOK 用户 ID,操作角色需要角色 ID:
|
|
46
|
-
- `kook_list_members` → 获取用户 ID
|
|
47
|
-
- `kook_list_roles` → 获取角色 ID
|
|
48
|
-
|
|
49
|
-
### 黑名单 ≠ 踢人
|
|
50
|
-
|
|
51
|
-
`kook_blacklist` 是永久性封禁,被拉黑的用户无法再加入服务器。`kook_kick_member` 只是移除,用户可以通过邀请重新加入。
|
|
52
|
-
|
|
53
|
-
## 工具详解
|
|
54
|
-
|
|
55
|
-
### 成员管理
|
|
56
|
-
|
|
57
|
-
| 工具 | 用途 | 说明 |
|
|
58
|
-
|------|------|------|
|
|
59
|
-
| `kook_kick_member` | 踢出 | 可重新加入 |
|
|
60
|
-
| `kook_ban_member` | 封禁 | 阻止重新加入 |
|
|
61
|
-
| `kook_unban_member` | 解除封禁 | — |
|
|
62
|
-
| `kook_set_nickname` | 改昵称 | 服务器内昵称 |
|
|
63
|
-
| `kook_list_members` | 成员列表 | — |
|
|
64
|
-
| `kook_blacklist` | 黑名单操作 | **不可逆,谨慎使用** |
|
|
65
|
-
|
|
66
|
-
### 角色管理
|
|
67
|
-
|
|
68
|
-
| 工具 | 用途 | 说明 |
|
|
69
|
-
|------|------|------|
|
|
70
|
-
| `kook_create_role` | 创建角色 | — |
|
|
71
|
-
| `kook_delete_role` | 删除角色 | — |
|
|
72
|
-
| `kook_grant_role` | 授予角色 | 需 user_id + role_id |
|
|
73
|
-
| `kook_revoke_role` | 撤销角色 | 需 user_id + role_id |
|
|
74
|
-
| `kook_list_roles` | 角色列表 | 获取所有角色及 ID |
|
|
75
|
-
|
|
76
|
-
## 易错点
|
|
77
|
-
|
|
78
|
-
1. **黑名单是永久封禁**,与普通踢人(kick)不同。用户说「把他踢了」用 kick,说「永久拉黑」才用 blacklist。
|
|
79
|
-
2. **角色操作需要 role_id**,先 `kook_list_roles` 查询。
|
|
80
|
-
3. **创建角色后还需要 grant_role 才能给成员分配**,创建 ≠ 分配。
|
package/src/adapter.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* KOOK 适配器
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
Adapter,
|
|
6
|
-
Plugin,
|
|
7
|
-
} from "zhin.js";
|
|
8
|
-
import { KookBot } from "./bot.js";
|
|
9
|
-
import type { KookBotConfig } from "./types.js";
|
|
10
|
-
|
|
11
|
-
export class KookAdapter extends Adapter<KookBot> {
|
|
12
|
-
constructor(plugin: Plugin) {
|
|
13
|
-
super(plugin, "kook", []);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
createBot(config: KookBotConfig): KookBot {
|
|
17
|
-
return new KookBot(this, config);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// ── IGroupManagement 标准群管方法 ──────────────────────────────────
|
|
21
|
-
|
|
22
|
-
async kickMember(botId: string, sceneId: string, userId: string) {
|
|
23
|
-
const bot = this.bots.get(botId);
|
|
24
|
-
if (!bot) throw new Error(`Bot ${botId} 不存在`);
|
|
25
|
-
return bot.kickUser(sceneId, userId);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
async banMember(botId: string, sceneId: string, userId: string, reason?: string) {
|
|
29
|
-
const bot = this.bots.get(botId);
|
|
30
|
-
if (!bot) throw new Error(`Bot ${botId} 不存在`);
|
|
31
|
-
return bot.addToBlacklist(sceneId, userId, reason);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async unbanMember(botId: string, sceneId: string, userId: string) {
|
|
35
|
-
const bot = this.bots.get(botId);
|
|
36
|
-
if (!bot) throw new Error(`Bot ${botId} 不存在`);
|
|
37
|
-
return bot.removeFromBlacklist(sceneId, userId);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async setMemberNickname(botId: string, sceneId: string, userId: string, nickname: string) {
|
|
41
|
-
const bot = this.bots.get(botId);
|
|
42
|
-
if (!bot) throw new Error(`Bot ${botId} 不存在`);
|
|
43
|
-
return bot.setNickname(sceneId, userId, nickname);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
async listMembers(botId: string, sceneId: string) {
|
|
47
|
-
const bot = this.bots.get(botId);
|
|
48
|
-
if (!bot) throw new Error(`Bot ${botId} 不存在`);
|
|
49
|
-
const members = await bot.getGuildMembers(sceneId);
|
|
50
|
-
return {
|
|
51
|
-
members: members.map(m => ({
|
|
52
|
-
id: m.id, username: m.username,
|
|
53
|
-
nickname: m.nickname, roles: m.roles,
|
|
54
|
-
})),
|
|
55
|
-
count: members.length,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// ── 生命周期 ───────────────────────────────────────────────────────
|
|
60
|
-
|
|
61
|
-
async start(): Promise<void> {
|
|
62
|
-
await super.start();
|
|
63
|
-
this.plugin.logger.info("KOOK 适配器已启动");
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
async stop(): Promise<void> {
|
|
67
|
-
await super.stop();
|
|
68
|
-
this.plugin.logger.info("KOOK 适配器已停止");
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|