@zhin.js/adapter-kook 5.0.2 → 6.0.0

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 +62 -0
  2. package/README.md +61 -453
  3. package/adapters/kook.ts +46 -0
  4. package/agent/tools/blacklist.ts +2 -2
  5. package/agent/tools/create_role.ts +2 -2
  6. package/agent/tools/delete_role.ts +2 -2
  7. package/agent/tools/grant_role.ts +2 -2
  8. package/agent/tools/list_roles.ts +2 -2
  9. package/agent/tools/revoke_role.ts +2 -2
  10. package/lib/endpoint.d.ts +84 -0
  11. package/lib/endpoint.js +299 -0
  12. package/lib/index.d.ts +6 -0
  13. package/lib/index.js +6 -0
  14. package/lib/kook-agent-deps.d.ts +29 -0
  15. package/lib/kook-agent-deps.js +30 -0
  16. package/lib/platform-permit.d.ts +23 -0
  17. package/lib/{src/platform-permit.js → platform-permit.js} +2 -3
  18. package/lib/protocol.d.ts +147 -0
  19. package/lib/protocol.js +279 -0
  20. package/lib/webhook.d.ts +15 -0
  21. package/lib/webhook.js +76 -0
  22. package/lib/ws.d.ts +42 -0
  23. package/lib/ws.js +63 -0
  24. package/package.json +44 -40
  25. package/plugin.ts +13 -0
  26. package/schema.json +92 -0
  27. package/src/endpoint.ts +287 -879
  28. package/src/index.ts +55 -177
  29. package/src/kook-agent-deps.ts +44 -11
  30. package/src/platform-permit.ts +13 -3
  31. package/src/protocol.ts +429 -0
  32. package/src/webhook.ts +116 -0
  33. package/src/ws.ts +120 -0
  34. package/client/Dashboard.tsx +0 -255
  35. package/client/index.tsx +0 -11
  36. package/client/tsconfig.json +0 -7
  37. package/client/utils/api.ts +0 -30
  38. package/dist/index.js +0 -31
  39. package/lib/agent/tools/blacklist.js +0 -33
  40. package/lib/agent/tools/blacklist.js.map +0 -1
  41. package/lib/agent/tools/create_role.js +0 -25
  42. package/lib/agent/tools/create_role.js.map +0 -1
  43. package/lib/agent/tools/delete_role.js +0 -21
  44. package/lib/agent/tools/delete_role.js.map +0 -1
  45. package/lib/agent/tools/grant_role.js +0 -22
  46. package/lib/agent/tools/grant_role.js.map +0 -1
  47. package/lib/agent/tools/list_roles.js +0 -27
  48. package/lib/agent/tools/list_roles.js.map +0 -1
  49. package/lib/agent/tools/revoke_role.js +0 -22
  50. package/lib/agent/tools/revoke_role.js.map +0 -1
  51. package/lib/src/adapter.js +0 -67
  52. package/lib/src/adapter.js.map +0 -1
  53. package/lib/src/endpoint.js +0 -796
  54. package/lib/src/endpoint.js.map +0 -1
  55. package/lib/src/index.js +0 -197
  56. package/lib/src/index.js.map +0 -1
  57. package/lib/src/kook-agent-deps.js +0 -10
  58. package/lib/src/kook-agent-deps.js.map +0 -1
  59. package/lib/src/kook-asset-upload.js +0 -46
  60. package/lib/src/kook-asset-upload.js.map +0 -1
  61. package/lib/src/kook-inbound.js +0 -22
  62. package/lib/src/kook-inbound.js.map +0 -1
  63. package/lib/src/kook-msg-route.js +0 -106
  64. package/lib/src/kook-msg-route.js.map +0 -1
  65. package/lib/src/kook-side-events.js +0 -166
  66. package/lib/src/kook-side-events.js.map +0 -1
  67. package/lib/src/outbound-keyboard.js +0 -66
  68. package/lib/src/outbound-keyboard.js.map +0 -1
  69. package/lib/src/outbound-media.js +0 -45
  70. package/lib/src/outbound-media.js.map +0 -1
  71. package/lib/src/outbound-sendable.js +0 -64
  72. package/lib/src/outbound-sendable.js.map +0 -1
  73. package/lib/src/platform-permit.js.map +0 -1
  74. package/lib/src/segment-mapper.js +0 -2
  75. package/lib/src/segment-mapper.js.map +0 -1
  76. package/lib/src/types.js +0 -8
  77. package/lib/src/types.js.map +0 -1
  78. package/plugin.yml +0 -3
  79. package/src/adapter.ts +0 -75
  80. package/src/kook-asset-upload.ts +0 -55
  81. package/src/kook-inbound.ts +0 -22
  82. package/src/kook-msg-route.ts +0 -122
  83. package/src/kook-side-events.ts +0 -230
  84. package/src/outbound-keyboard.ts +0 -77
  85. package/src/outbound-media.ts +0 -60
  86. package/src/outbound-sendable.ts +0 -73
  87. package/src/segment-mapper.ts +0 -1
  88. package/src/types.ts +0 -58
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-kook",
3
- "version": "5.0.2",
4
- "description": "Zhin.js adapter for KOOK (开黑啦)",
3
+ "version": "6.0.0",
4
+ "description": "Zhin.js KOOK adapter for Plugin Runtime (WebSocket gateway or Webhook)",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
@@ -33,59 +33,49 @@
33
33
  "directory": "plugins/adapters/kook"
34
34
  },
35
35
  "dependencies": {
36
- "kook-client": "^1.0.4"
37
- },
38
- "devDependencies": {
39
- "@types/react": "^19.2.17",
40
- "@types/react-dom": "^19.2.3",
41
- "lucide-react": "^1.22.0",
42
- "typescript": "^6.0.3",
43
- "zod": "^4.4.3",
44
- "@zhin.js/cli": "1.0.93",
45
- "@zhin.js/client": "2.0.5",
46
- "@zhin.js/contract": "1.0.3",
47
- "@zhin.js/host-api": "2.0.5",
48
- "@zhin.js/host-router": "2.0.3",
49
- "@zhin.js/logger": "1.0.74",
50
- "zhin.js": "4.1.2",
51
- "@zhin.js/agent": "1.0.3"
36
+ "kook-client": "^1.0.4",
37
+ "@zhin.js/adapter": "1.1.0",
38
+ "@zhin.js/core": "1.4.0",
39
+ "@zhin.js/host-http": "1.0.2",
40
+ "@zhin.js/logger": "1.0.75",
41
+ "@zhin.js/plugin-runtime": "1.1.0"
52
42
  },
53
43
  "peerDependencies": {
54
44
  "zod": "^4.0.0",
55
- "@zhin.js/client": "2.0.5",
56
- "@zhin.js/host-api": "2.0.5",
57
- "@zhin.js/contract": "1.0.3",
58
- "@zhin.js/host-router": "2.0.3",
59
- "@zhin.js/logger": "1.0.74",
60
- "zhin.js": "4.1.2",
61
- "@zhin.js/agent": "1.0.3"
45
+ "@zhin.js/adapter": "1.1.0",
46
+ "@zhin.js/agent": "1.0.5",
47
+ "@zhin.js/core": "1.4.0",
48
+ "@zhin.js/plugin-runtime": "1.1.0",
49
+ "zhin.js": "5.0.0"
62
50
  },
63
51
  "peerDependenciesMeta": {
64
- "@zhin.js/agent": {
65
- "optional": true
66
- },
67
- "@zhin.js/client": {
52
+ "zhin.js": {
68
53
  "optional": true
69
54
  },
70
- "@zhin.js/host-router": {
71
- "optional": true
72
- },
73
- "@zhin.js/host-api": {
55
+ "@zhin.js/agent": {
74
56
  "optional": true
75
57
  },
76
58
  "zod": {
77
59
  "optional": true
78
60
  }
79
61
  },
62
+ "devDependencies": {
63
+ "@types/node": "^26.1.0",
64
+ "typescript": "^6.0.3",
65
+ "vitest": "^4.1.10",
66
+ "zod": "^4.4.3",
67
+ "@zhin.js/agent": "1.0.5",
68
+ "@zhin.js/host-http": "1.0.2",
69
+ "zhin.js": "5.0.0"
70
+ },
80
71
  "files": [
72
+ "adapters",
73
+ "plugin.ts",
74
+ "schema.json",
81
75
  "src",
82
76
  "lib",
83
- "client",
84
- "dist",
85
77
  "agent",
86
- "plugin.yml",
87
78
  "README.md",
88
- "node",
89
79
  "CHANGELOG.md"
90
80
  ],
91
81
  "publishConfig": {
@@ -95,9 +85,23 @@
95
85
  "engines": {
96
86
  "node": "^20.19.0 || >=22.12.0"
97
87
  },
88
+ "zhin": {
89
+ "protocol": 1,
90
+ "type": "plugin",
91
+ "entry": "./plugin.ts",
92
+ "engine": "^1.0.0",
93
+ "runtime": "trusted",
94
+ "features": [
95
+ {
96
+ "package": "@zhin.js/adapter",
97
+ "api": "^1.0.0"
98
+ }
99
+ ],
100
+ "plugins": []
101
+ },
98
102
  "scripts": {
99
- "build": "zhin build",
100
- "clean": "rimraf lib dist",
101
- "build:node": "tsc"
103
+ "build": "tsc",
104
+ "clean": "rimraf lib",
105
+ "test": "NODE_OPTIONS=--experimental-strip-types vitest run --root ../../.. plugins/adapters/kook/tests"
102
106
  }
103
107
  }
package/plugin.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { definePlugin } from '@zhin.js/plugin-runtime';
2
+ import { registerKookPlatformPermitChecker } from './src/platform-permit.js';
3
+
4
+ export default definePlugin({
5
+ name: 'kook',
6
+ metadata: {
7
+ displayName: 'KOOK WebSocket Adapter',
8
+ },
9
+ setup() {
10
+ // 平台权限门禁:guild_owner / guild_admin / channel_admin 等(agent 工具 platformPermit)
11
+ return registerKookPlatformPermitChecker();
12
+ },
13
+ });
package/schema.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "connection": {
7
+ "type": "string",
8
+ "enum": [
9
+ "websocket",
10
+ "webhook"
11
+ ],
12
+ "default": "websocket",
13
+ "description": "WebSocket gateway (default). webhook requires httpHostToken, verify_token, and a public HTTPS callback URL."
14
+ },
15
+ "webhookPath": {
16
+ "type": "string",
17
+ "default": "/kook/webhook",
18
+ "description": "POST path registered via httpHostToken when connection is webhook."
19
+ },
20
+ "data_dir": {
21
+ "type": "string"
22
+ },
23
+ "timeout": {
24
+ "type": "number",
25
+ "default": 10000
26
+ },
27
+ "max_retry": {
28
+ "type": "number",
29
+ "default": 3
30
+ },
31
+ "ignore": {
32
+ "type": "string",
33
+ "enum": [
34
+ "bot",
35
+ "self"
36
+ ],
37
+ "default": "bot"
38
+ },
39
+ "logLevel": {
40
+ "type": "string",
41
+ "enum": [
42
+ "trace",
43
+ "debug",
44
+ "info",
45
+ "warn",
46
+ "error",
47
+ "fatal",
48
+ "mark",
49
+ "off"
50
+ ],
51
+ "default": "info"
52
+ },
53
+ "endpoints": {
54
+ "type": "array",
55
+ "description": "多账号:一个插件实例挂多个 endpoint。每项与顶层字段同构(name 必填,其余覆盖顶层)",
56
+ "items": {
57
+ "type": "object",
58
+ "additionalProperties": true,
59
+ "properties": {
60
+ "name": {
61
+ "type": "string",
62
+ "description": "KOOK bot name"
63
+ },
64
+ "token": {
65
+ "type": "string",
66
+ "description": "KOOK bot token"
67
+ },
68
+ "verify_token": {
69
+ "type": "string",
70
+ "description": "KOOK developer console verify token (required for webhook mode)."
71
+ },
72
+ "encrypt_key": {
73
+ "type": "string",
74
+ "description": "Optional Encrypt Key when message encryption is enabled in KOOK console."
75
+ }
76
+ },
77
+ "required": [
78
+ "name",
79
+ "token"
80
+ ]
81
+ }
82
+ },
83
+ "commandPrefix": {
84
+ "type": "string",
85
+ "default": "",
86
+ "description": "命令前缀(默认 '' 无前缀,任意文本按命令匹配;如 '/' 要求 / 开头)。endpoints[i] 可逐项覆盖"
87
+ }
88
+ },
89
+ "required": [
90
+ "endpoints"
91
+ ]
92
+ }