@zhin.js/adapter-qq 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 (130) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +75 -409
  3. package/adapters/qq.ts +51 -0
  4. package/agent/tools/add_role.ts +2 -2
  5. package/agent/tools/channel_info.ts +2 -2
  6. package/agent/tools/create_role.ts +2 -2
  7. package/agent/tools/list_channels.ts +2 -2
  8. package/agent/tools/list_guilds.ts +2 -2
  9. package/agent/tools/list_roles.ts +2 -2
  10. package/agent/tools/member_detail.ts +2 -2
  11. package/agent/tools/remove_role.ts +2 -2
  12. package/commands/endpoint/add/[name:string=].ts +21 -0
  13. package/commands/endpoint/cancel.ts +15 -0
  14. package/commands/endpoint/list.ts +10 -0
  15. package/commands/endpoint/remove/[name:string].ts +15 -0
  16. package/lib/endpoint.d.ts +75 -0
  17. package/lib/endpoint.js +358 -0
  18. package/lib/index.d.ts +6 -0
  19. package/lib/index.js +6 -0
  20. package/lib/platform-permit.d.ts +16 -0
  21. package/lib/{src/platform-permit.js → platform-permit.js} +1 -2
  22. package/lib/protocol.d.ts +96 -0
  23. package/lib/protocol.js +129 -0
  24. package/lib/qq-agent-deps.d.ts +21 -0
  25. package/lib/qq-agent-deps.js +30 -0
  26. package/lib/qq-bind-api.d.ts +36 -0
  27. package/lib/{src/qq-bind-api.js → qq-bind-api.js} +0 -1
  28. package/lib/qq-bind-flow.d.ts +19 -0
  29. package/lib/{src/qq-bind-flow.js → qq-bind-flow.js} +0 -1
  30. package/lib/qq-bind-persist.d.ts +12 -0
  31. package/lib/{src/qq-bind-persist.js → qq-bind-persist.js} +4 -5
  32. package/lib/qq-endpoint-commands.d.ts +25 -0
  33. package/lib/qq-endpoint-commands.js +147 -0
  34. package/lib/qq-endpoint-config.d.ts +17 -0
  35. package/lib/qq-endpoint-config.js +110 -0
  36. package/lib/qq-runtime-state.d.ts +17 -0
  37. package/lib/qq-runtime-state.js +13 -0
  38. package/lib/webhook.d.ts +18 -0
  39. package/lib/webhook.js +100 -0
  40. package/lib/ws.d.ts +24 -0
  41. package/lib/ws.js +118 -0
  42. package/package.json +51 -40
  43. package/plugin.ts +16 -0
  44. package/schema.json +85 -0
  45. package/src/endpoint.ts +362 -596
  46. package/src/index.ts +56 -186
  47. package/src/platform-permit.ts +1 -1
  48. package/src/protocol.ts +229 -0
  49. package/src/qq-agent-deps.ts +49 -12
  50. package/src/qq-bind-persist.ts +4 -4
  51. package/src/qq-endpoint-commands.ts +174 -0
  52. package/src/qq-endpoint-config.ts +135 -0
  53. package/src/qq-runtime-state.ts +36 -0
  54. package/src/webhook.ts +127 -0
  55. package/src/ws.ts +172 -0
  56. package/client/Dashboard.tsx +0 -230
  57. package/client/index.tsx +0 -11
  58. package/client/tsconfig.json +0 -7
  59. package/client/utils/api.ts +0 -30
  60. package/dist/index.js +0 -30
  61. package/lib/agent/tools/add_role.js +0 -23
  62. package/lib/agent/tools/add_role.js.map +0 -1
  63. package/lib/agent/tools/channel_info.js +0 -19
  64. package/lib/agent/tools/channel_info.js.map +0 -1
  65. package/lib/agent/tools/create_role.js +0 -22
  66. package/lib/agent/tools/create_role.js.map +0 -1
  67. package/lib/agent/tools/list_channels.js +0 -20
  68. package/lib/agent/tools/list_channels.js.map +0 -1
  69. package/lib/agent/tools/list_guilds.js +0 -17
  70. package/lib/agent/tools/list_guilds.js.map +0 -1
  71. package/lib/agent/tools/list_roles.js +0 -20
  72. package/lib/agent/tools/list_roles.js.map +0 -1
  73. package/lib/agent/tools/member_detail.js +0 -20
  74. package/lib/agent/tools/member_detail.js.map +0 -1
  75. package/lib/agent/tools/remove_role.js +0 -23
  76. package/lib/agent/tools/remove_role.js.map +0 -1
  77. package/lib/package.json +0 -105
  78. package/lib/src/adapter.js +0 -81
  79. package/lib/src/adapter.js.map +0 -1
  80. package/lib/src/endpoint.js +0 -600
  81. package/lib/src/endpoint.js.map +0 -1
  82. package/lib/src/gateway-config.js +0 -32
  83. package/lib/src/gateway-config.js.map +0 -1
  84. package/lib/src/group-at-normalize.js +0 -68
  85. package/lib/src/group-at-normalize.js.map +0 -1
  86. package/lib/src/inbound-action.js +0 -57
  87. package/lib/src/inbound-action.js.map +0 -1
  88. package/lib/src/inbound-normalize.js +0 -47
  89. package/lib/src/inbound-normalize.js.map +0 -1
  90. package/lib/src/index.js +0 -194
  91. package/lib/src/index.js.map +0 -1
  92. package/lib/src/mention-enrich.js +0 -52
  93. package/lib/src/mention-enrich.js.map +0 -1
  94. package/lib/src/outbound-keyboard.js +0 -100
  95. package/lib/src/outbound-keyboard.js.map +0 -1
  96. package/lib/src/outbound-markdown.js +0 -189
  97. package/lib/src/outbound-markdown.js.map +0 -1
  98. package/lib/src/outbound-media.js +0 -51
  99. package/lib/src/outbound-media.js.map +0 -1
  100. package/lib/src/outbound-mixed-media.js +0 -78
  101. package/lib/src/outbound-mixed-media.js.map +0 -1
  102. package/lib/src/platform-permit.js.map +0 -1
  103. package/lib/src/qq-agent-deps.js +0 -10
  104. package/lib/src/qq-agent-deps.js.map +0 -1
  105. package/lib/src/qq-bind-api.js.map +0 -1
  106. package/lib/src/qq-bind-flow.js.map +0 -1
  107. package/lib/src/qq-bind-persist.js.map +0 -1
  108. package/lib/src/qq-endpoint-manager.js +0 -159
  109. package/lib/src/qq-endpoint-manager.js.map +0 -1
  110. package/lib/src/sdk-version.js +0 -19
  111. package/lib/src/sdk-version.js.map +0 -1
  112. package/lib/src/segment-mapper.js +0 -2
  113. package/lib/src/segment-mapper.js.map +0 -1
  114. package/lib/src/types.js +0 -2
  115. package/lib/src/types.js.map +0 -1
  116. package/plugin.yml +0 -3
  117. package/src/adapter.ts +0 -97
  118. package/src/gateway-config.ts +0 -48
  119. package/src/group-at-normalize.ts +0 -75
  120. package/src/inbound-action.ts +0 -87
  121. package/src/inbound-normalize.ts +0 -57
  122. package/src/mention-enrich.ts +0 -71
  123. package/src/outbound-keyboard.ts +0 -117
  124. package/src/outbound-markdown.ts +0 -212
  125. package/src/outbound-media.ts +0 -58
  126. package/src/outbound-mixed-media.ts +0 -101
  127. package/src/qq-endpoint-manager.ts +0 -199
  128. package/src/sdk-version.ts +0 -21
  129. package/src/segment-mapper.ts +0 -1
  130. package/src/types.ts +0 -52
package/lib/package.json DELETED
@@ -1,105 +0,0 @@
1
- {
2
- "name": "@zhin.js/adapter-qq",
3
- "version": "5.0.2",
4
- "description": "Zhin.js adapter for QQ Official Bot",
5
- "type": "module",
6
- "main": "./lib/index.js",
7
- "types": "./lib/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./lib/index.d.ts",
11
- "development": "./src/index.ts",
12
- "import": "./lib/index.js"
13
- }
14
- },
15
- "keywords": [
16
- "zhin",
17
- "zhin.js",
18
- "bot",
19
- "adapter",
20
- "qq",
21
- "tencent",
22
- "official",
23
- "chatbot"
24
- ],
25
- "author": {
26
- "name": "lc-cn",
27
- "email": "admin@liucl.cn",
28
- "url": "https://github.com/lc-cn"
29
- },
30
- "license": "MIT",
31
- "repository": {
32
- "url": "git+https://github.com/zhinjs/zhin.git",
33
- "type": "git",
34
- "directory": "plugins/adapters/qq"
35
- },
36
- "scripts": {
37
- "build": "zhin build",
38
- "clean": "rimraf lib dist",
39
- "build:node": "tsc",
40
- "prepublishOnly": "npm run build"
41
- },
42
- "dependencies": {
43
- "qq-official-bot": "^1.2.3"
44
- },
45
- "devDependencies": {
46
- "@types/react": "^19.2.17",
47
- "@types/react-dom": "^19.2.3",
48
- "@zhin.js/cli": "workspace:*",
49
- "@zhin.js/client": "workspace:*",
50
- "@zhin.js/contract": "workspace:*",
51
- "@zhin.js/host-api": "workspace:*",
52
- "@zhin.js/host-router": "workspace:*",
53
- "@zhin.js/logger": "workspace:*",
54
- "lucide-react": "^1.22.0",
55
- "typescript": "^6.0.3",
56
- "zhin.js": "workspace:*",
57
- "@zhin.js/agent": "workspace:*",
58
- "zod": "^4.4.3"
59
- },
60
- "peerDependencies": {
61
- "@zhin.js/client": "workspace:*",
62
- "@zhin.js/host-api": "workspace:*",
63
- "@zhin.js/contract": "workspace:*",
64
- "@zhin.js/host-router": "workspace:*",
65
- "@zhin.js/logger": "workspace:*",
66
- "zhin.js": "workspace:*",
67
- "@zhin.js/agent": "workspace:*",
68
- "zod": "^4.0.0"
69
- },
70
- "peerDependenciesMeta": {
71
- "@zhin.js/agent": {
72
- "optional": true
73
- },
74
- "@zhin.js/client": {
75
- "optional": true
76
- },
77
- "@zhin.js/host-router": {
78
- "optional": true
79
- },
80
- "@zhin.js/host-api": {
81
- "optional": true
82
- },
83
- "zod": {
84
- "optional": true
85
- }
86
- },
87
- "files": [
88
- "src",
89
- "lib",
90
- "client",
91
- "dist",
92
- "agent",
93
- "plugin.yml",
94
- "README.md",
95
- "node",
96
- "CHANGELOG.md"
97
- ],
98
- "publishConfig": {
99
- "access": "public",
100
- "registry": "https://registry.npmjs.org"
101
- },
102
- "engines": {
103
- "node": "^20.19.0 || >=22.12.0"
104
- }
105
- }
@@ -1,81 +0,0 @@
1
- /**
2
- * QQ 官方适配器
3
- */
4
- import { Adapter, QQ_AI_OUTBOUND_EXTENSIONS } from 'zhin.js';
5
- import { QQEndpoint } from "./endpoint.js";
6
- import { QqEndpointManager } from "./qq-endpoint-manager.js";
7
- export class QQAdapter extends Adapter {
8
- static capabilities = ['inbound', 'outbound'];
9
- static outboundRichSegmentPolicy = {
10
- qrcode: 'image',
11
- html: 'image',
12
- markdown: 'origin',
13
- };
14
- static interactivePolicy = 'native';
15
- static aiOutboundCapabilities = {
16
- mentions: true,
17
- richSegments: ['qrcode', 'html', 'markdown', 'tts'],
18
- interactive: 'native',
19
- };
20
- static aiOutboundExtensions = QQ_AI_OUTBOUND_EXTENSIONS;
21
- #router;
22
- #endpointManager;
23
- constructor(plugin, router) {
24
- super(plugin, "qq", []);
25
- this.#router = router;
26
- }
27
- getRouter() {
28
- return this.#router;
29
- }
30
- createEndpoint(config) {
31
- return new QQEndpoint(this, config);
32
- }
33
- getEndpointManager() {
34
- if (!this.#endpointManager) {
35
- this.#endpointManager = new QqEndpointManager(this);
36
- }
37
- return this.#endpointManager;
38
- }
39
- // ── ISceneManagement 标准群管方法 ──────────────────────────────────
40
- async removeMember(endpointId, sceneId, userId) {
41
- const endpoint = this.endpoints.get(endpointId);
42
- if (!endpoint)
43
- throw new Error(`Endpoint ${endpointId} 不存在`);
44
- return endpoint.removeGuildMember(sceneId, userId, false);
45
- }
46
- async muteMember(endpointId, sceneId, userId, duration = 600) {
47
- const endpoint = this.endpoints.get(endpointId);
48
- if (!endpoint)
49
- throw new Error(`Endpoint ${endpointId} 不存在`);
50
- return endpoint.muteMembers(sceneId, [userId], duration);
51
- }
52
- async setSceneMuted(endpointId, sceneId, enable = true) {
53
- const endpoint = this.endpoints.get(endpointId);
54
- if (!endpoint)
55
- throw new Error(`Endpoint ${endpointId} 不存在`);
56
- return endpoint.muteAll(sceneId, enable ? 600 : 0);
57
- }
58
- async listMembers(endpointId, sceneId) {
59
- const endpoint = this.endpoints.get(endpointId);
60
- if (!endpoint)
61
- throw new Error(`Endpoint ${endpointId} 不存在`);
62
- return endpoint.getGuildMembers(sceneId);
63
- }
64
- async getSceneInfo(endpointId, sceneId) {
65
- const endpoint = this.endpoints.get(endpointId);
66
- if (!endpoint)
67
- throw new Error(`Endpoint ${endpointId} 不存在`);
68
- return endpoint.getGuildInfo(sceneId);
69
- }
70
- // ── 生命周期 ───────────────────────────────────────────────────────
71
- async start() {
72
- if (!this.#router) {
73
- this.#router = this.plugin.inject("router");
74
- }
75
- this.plugin.useContext("router", (router) => {
76
- this.#router = router;
77
- });
78
- await super.start();
79
- }
80
- }
81
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}