@zhin.js/adapter-icqq 5.0.2 → 6.0.1

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 (76) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +32 -4
  3. package/client/LoginAssistPanel.tsx +38 -3
  4. package/dist/index.js +2 -2
  5. package/lib/adapter.d.ts +12 -4
  6. package/lib/adapter.d.ts.map +1 -1
  7. package/lib/adapter.js +14 -6
  8. package/lib/adapter.js.map +1 -1
  9. package/lib/cq-message.d.ts.map +1 -1
  10. package/lib/cq-message.js +12 -3
  11. package/lib/cq-message.js.map +1 -1
  12. package/lib/endpoint.d.ts +12 -8
  13. package/lib/endpoint.d.ts.map +1 -1
  14. package/lib/endpoint.js +135 -47
  15. package/lib/endpoint.js.map +1 -1
  16. package/lib/icqq-guild.d.ts +48 -0
  17. package/lib/icqq-guild.d.ts.map +1 -0
  18. package/lib/icqq-guild.js +115 -0
  19. package/lib/icqq-guild.js.map +1 -0
  20. package/lib/icqq-inbound.d.ts +7 -0
  21. package/lib/icqq-inbound.d.ts.map +1 -1
  22. package/lib/icqq-inbound.js +39 -6
  23. package/lib/icqq-inbound.js.map +1 -1
  24. package/lib/icqq-login-assist-bridge.d.ts +5 -0
  25. package/lib/icqq-login-assist-bridge.d.ts.map +1 -0
  26. package/lib/icqq-login-assist-bridge.js +148 -0
  27. package/lib/icqq-login-assist-bridge.js.map +1 -0
  28. package/lib/index.d.ts +0 -2
  29. package/lib/index.d.ts.map +1 -1
  30. package/lib/index.js +2 -1
  31. package/lib/index.js.map +1 -1
  32. package/lib/login-assist-routes.d.ts +7 -0
  33. package/lib/login-assist-routes.d.ts.map +1 -0
  34. package/lib/login-assist-routes.js +29 -0
  35. package/lib/login-assist-routes.js.map +1 -0
  36. package/lib/login-ipc-contract.d.ts +44 -0
  37. package/lib/login-ipc-contract.d.ts.map +1 -0
  38. package/lib/login-ipc-contract.js +35 -0
  39. package/lib/login-ipc-contract.js.map +1 -0
  40. package/lib/protocol.d.ts +32 -1
  41. package/lib/protocol.d.ts.map +1 -1
  42. package/lib/protocol.js +23 -0
  43. package/lib/protocol.js.map +1 -1
  44. package/lib/segment-mapper.d.ts +2 -0
  45. package/lib/segment-mapper.d.ts.map +1 -0
  46. package/lib/segment-mapper.js +2 -0
  47. package/lib/segment-mapper.js.map +1 -0
  48. package/lib/tools/index.d.ts +1 -1
  49. package/lib/tools/index.js +8 -8
  50. package/lib/types.d.ts +0 -44
  51. package/lib/types.d.ts.map +1 -1
  52. package/package.json +18 -18
  53. package/skills/icqq/PERMITS.md +6 -6
  54. package/src/adapter.ts +14 -6
  55. package/src/cq-message.ts +11 -3
  56. package/src/endpoint.ts +169 -52
  57. package/src/icqq-guild.ts +157 -0
  58. package/src/icqq-inbound.ts +52 -7
  59. package/src/icqq-login-assist-bridge.ts +196 -0
  60. package/src/index.ts +2 -8
  61. package/src/login-assist-routes.ts +39 -0
  62. package/src/login-ipc-contract.ts +52 -0
  63. package/src/protocol.ts +32 -1
  64. package/src/segment-mapper.ts +1 -0
  65. package/src/tools/index.ts +9 -9
  66. package/src/types.ts +0 -45
  67. package/lib/typing-indicator-example.d.ts +0 -108
  68. package/lib/typing-indicator-example.d.ts.map +0 -1
  69. package/lib/typing-indicator-example.js +0 -220
  70. package/lib/typing-indicator-example.js.map +0 -1
  71. package/lib/typing-indicator.d.ts +0 -87
  72. package/lib/typing-indicator.d.ts.map +0 -1
  73. package/lib/typing-indicator.js +0 -225
  74. package/lib/typing-indicator.js.map +0 -1
  75. package/src/typing-indicator-example.ts +0 -269
  76. package/src/typing-indicator.ts +0 -313
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @zhin.js/adapter-icqq
2
2
 
3
+ ## 6.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 5cc9c03: fix: ai 优化
8
+ - b9b3881: fix: 增加游戏引擎以及部分游戏
9
+ - Updated dependencies [5b08052]
10
+ - Updated dependencies [5cc9c03]
11
+ - Updated dependencies [36d6db2]
12
+ - Updated dependencies [b9b3881]
13
+ - Updated dependencies [7700903]
14
+ - @zhin.js/agent@1.0.2
15
+ - @zhin.js/core@1.3.3
16
+ - @zhin.js/client@2.0.4
17
+ - @zhin.js/contract@1.0.2
18
+ - @zhin.js/host-api@2.0.4
19
+ - @zhin.js/host-router@2.0.2
20
+ - zhin.js@4.1.1
21
+
22
+ ## 6.0.0
23
+
24
+ ### Patch Changes
25
+
26
+ - c4575c9: fix: 输入输出优化,文档优化
27
+ - Updated dependencies [c4575c9]
28
+ - Updated dependencies [c4575c9]
29
+ - @zhin.js/host-router@2.0.1
30
+ - @zhin.js/host-api@2.0.3
31
+ - @zhin.js/agent@1.0.1
32
+ - @zhin.js/core@1.3.2
33
+ - zhin.js@4.1.0
34
+
3
35
  ## 5.0.2
4
36
 
5
37
  ### Patch Changes
package/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # @zhin.js/adapter-icqq
2
2
 
3
+ > **QQ 群助手 + 可选 @AI** — 先在 [demo.zhin.dev](https://demo.zhin.dev) 或 Sandbox 调试逻辑,再接实机 QQ。启用 AI:`npx zhin setup --ai`。接入本适配器:`npx zhin setup --adapters`。
4
+
3
5
  Zhin.js ICQQ 适配器,通过 **[@icqqjs/cli](https://github.com/icqqjs/cli) 守护进程 IPC** 连接已登录的 QQ 账号,支持群聊和私聊消息。协议与登录由 CLI 负责,Zhin 侧只配置 QQ 号并连接本地/远程守护进程。
4
6
 
5
7
  ## 功能特性
6
8
 
7
- - 🤖 支持 QQ 群聊和私聊消息处理
9
+ - 🤖 支持 QQ 群聊、私聊与**群临时会话**消息处理
8
10
  - 🔐 登录由 `icqq login` 完成(短信/二维码/滑块等由 CLI 处理)
9
11
  - 🖥️ **Web 控制台登录辅助**:与 `@zhin.js/host-api` 同时启用时,在 **`/icqq`** 页面提供「概览 + 登录辅助」;HTTP 接口为 **`GET /api/login-assist/pending`**、**`POST /api/login-assist/submit`**、**`POST /api/login-assist/cancel`**(由本适配器在路由上下文中注册,依赖核心 `loginAssist` 服务)。
10
12
  - 📨 消息发送和接收处理
@@ -177,7 +179,9 @@ addCommand(new MessageCommand('at <user:at>')
177
179
 
178
180
  ### Web 控制台登录辅助(可选)
179
181
 
180
- 与 **`@zhin.js/host-api`** 同时启用时,Remote Console 的 **ICQQ 管理**(`/icqq`)可提供登录辅助 Tab,对应 API:`GET/POST /api/login-assist/*`(依赖核心 `loginAssist` 服务)。**不能替代** `icqq login`;仅用于在 Host 已运行时配合完成验证步骤。
182
+ 与 **`@zhin.js/host-api`** 同时启用时,Remote Console 的 **ICQQ 管理**(`/icqq`)可提供登录辅助 Tab,对应 API:`GET/POST /api/login-assist/*`(依赖核心 `loginAssist` 服务)。
183
+
184
+ 守护进程在登录/重连时按 **`@icqqjs/cli` IPC 契约**推送 `IpcEvent`(`id: "*"` + `event: "system.login.*"` + `data`)。其中 **`system.login.auth`** 携带 `url` + `device` 设备指纹(形状见 `@icqqjs/icqq` `EventMap`)。适配器将其桥接到 `LoginAssist` 并在控制台展示;用户完成验证后,续传 invoke 与 CLI `LoginFlow` 一致(`login` / `submit_slider` / `submit_sms_code` / `send_sms_code`,见 `login-ipc-contract.ts`)。
181
185
 
182
186
  ## 消息类型支持
183
187
 
@@ -192,6 +196,7 @@ addCommand(new MessageCommand('at <user:at>')
192
196
  - ✅ 引用回复
193
197
  - ✅ 文件消息
194
198
  - ✅ JSON 卡片消息
199
+ - ✅ **群临时会话**(`message_type=private` + `sub_type=group`;`$channel` 为 `private` + `parent.group`)
195
200
 
196
201
  ### 发送消息类型
197
202
 
@@ -206,6 +211,29 @@ addCommand(new MessageCommand('at <user:at>')
206
211
  - ✅ JSON 卡片消息
207
212
  - ✅ 戳一戳
208
213
  - ✅ 音乐分享
214
+ - ✅ **群临时会话**(`type: private` + `parent: { type: 'group', id }` → IPC `send_temp_msg`)
215
+
216
+ ## 群临时会话
217
+
218
+ 当群成员通过「临时会话」私聊机器人时,新版 `@icqqjs/cli` 会以私聊事件推送(`sub_type: group`,`sender.group_id` 为来源群)。适配器使用 `private` + `parent.group` 表达场景,而非发明新的顶层 `MessageType`。
219
+
220
+ | 字段 | 值 |
221
+ |------|-----|
222
+ | `$channel.type` | `private`(对端 QQ) |
223
+ | `$channel.parent` | `{ type: 'group', id: 群号 }` |
224
+
225
+ `message.$reply` 会原样带上 `parent`,出站自动走 `send_temp_msg`。
226
+
227
+ ```typescript
228
+ await adapter.sendMessage({
229
+ context: 'icqq',
230
+ endpoint: '你的QQ号',
231
+ type: 'private',
232
+ id: '987654321',
233
+ parent: { type: 'group', id: '123456789' },
234
+ content: [{ type: 'text', data: { text: '你好' } }],
235
+ })
236
+ ```
209
237
 
210
238
  ## API 方法
211
239
 
@@ -233,11 +261,11 @@ const memberInfo = endpoint.getGroupMemberInfo(groupId, userId)
233
261
 
234
262
  ## 🔧 群管理工具(AI 可调用)
235
263
 
236
- 适配器通过覆写 `IGroupManagement` 标准方法自动注册群管理工具,同时保留平台特有工具,这些工具可以被 AI 调用,实现智能化的群管理。
264
+ 适配器通过覆写 `ISceneManagement` 标准方法自动注册群管理工具,同时保留平台特有工具,这些工具可以被 AI 调用,实现智能化的群管理。
237
265
 
238
266
  ### 标准群管工具(自动生成)
239
267
 
240
- 通过覆写 `IGroupManagement` 方法,`start()` 时自动检测并生成对应 Tool:
268
+ 通过覆写 `ISceneManagement` 方法,`start()` 时自动检测并生成对应 Tool:
241
269
 
242
270
  | 工具 | 覆写方法 | 所需权限 | 说明 |
243
271
  |------|---------|----------|------|
@@ -32,6 +32,7 @@ const TYPE_META: Record<string, { icon: React.ReactNode; label: string }> = {
32
32
  qrcode: { icon: <QrCode className="w-4 h-4" />, label: "扫码登录" },
33
33
  sms: { icon: <MessageSquare className="w-4 h-4" />, label: "短信验证码" },
34
34
  device: { icon: <Smartphone className="w-4 h-4" />, label: "设备验证" },
35
+ auth: { icon: <Smartphone className="w-4 h-4" />, label: "身份验证" },
35
36
  slider: { icon: <MousePointer className="w-4 h-4" />, label: "滑块验证" },
36
37
  };
37
38
 
@@ -184,10 +185,10 @@ export default function LoginAssistPanel() {
184
185
  </div>
185
186
  )}
186
187
 
187
- {/* Slider URL */}
188
- {task.type === "slider" && task.payload?.url && (
188
+ {/* Slider / auth URL */}
189
+ {(task.type === "slider" || task.type === "auth") && task.payload?.url && (
189
190
  <p className="text-sm break-all mb-3">
190
- <span className="text-muted-foreground">滑块链接:</span>{" "}
191
+ <span className="text-muted-foreground">验证链接:</span>{" "}
191
192
  <a
192
193
  href={String(task.payload.url)}
193
194
  target="_blank"
@@ -199,6 +200,40 @@ export default function LoginAssistPanel() {
199
200
  </p>
200
201
  )}
201
202
 
203
+ {/* system.login.auth 设备信息 */}
204
+ {task.type === "auth" && task.payload?.device && typeof task.payload.device === "object" && (
205
+ <div className="text-xs text-muted-foreground mb-3 space-y-1 rounded border p-3 bg-muted/20">
206
+ <div className="font-medium text-foreground">设备信息(登录续传用)</div>
207
+ {Object.entries(task.payload.device as Record<string, unknown>)
208
+ .filter(([, v]) => v != null && String(v) !== "")
209
+ .map(([k, v]) => (
210
+ <div key={k}>
211
+ <span className="opacity-70">{k}: </span>
212
+ <span className="font-mono break-all">{String(v)}</span>
213
+ </div>
214
+ ))}
215
+ </div>
216
+ )}
217
+
218
+ {/* auth 确认 */}
219
+ {task.type === "auth" && (
220
+ <div className="flex gap-2 mt-3">
221
+ <button
222
+ className="h-9 px-4 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50"
223
+ disabled={!!submitting[task.id]}
224
+ onClick={() => void handleSubmit(task.id, { done: true })}
225
+ >
226
+ {submitting[task.id] ? "提交中…" : "我已完成验证"}
227
+ </button>
228
+ <button
229
+ className="h-9 px-4 rounded-md border text-sm hover:bg-accent transition-colors"
230
+ onClick={() => void handleCancel(task.id)}
231
+ >
232
+ 取消
233
+ </button>
234
+ </div>
235
+ )}
236
+
202
237
  {/* Text input (sms / device / slider ticket) */}
203
238
  {(task.type === "sms" || task.type === "device" || task.type === "slider") && (
204
239
  <div className="flex flex-wrap gap-2 items-center">
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{useCallback as ye,useEffect as Re,useState as N}from"react";import{forwardRef as re,createElement as fe}from"react";var W=(...a)=>a.filter((u,r,f)=>!!u&&u.trim()!==""&&f.indexOf(u)===r).join(" ").trim();var Q=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var J=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(u,r,f)=>f?f.toUpperCase():r.toLowerCase());var X=a=>{let u=J(a);return u.charAt(0).toUpperCase()+u.slice(1)};import{forwardRef as le,createElement as Y}from"react";var V={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var _=a=>{for(let u in a)if(u.startsWith("aria-")||u==="role"||u==="title")return!0;return!1};import{createContext as oe,useContext as ue,useMemo as We,createElement as Ve}from"react";var de=oe({});var j=()=>ue(de);var $=le(({color:a,size:u,strokeWidth:r,absoluteStrokeWidth:f,className:p="",children:s,iconNode:m,...h},L)=>{let{size:d=24,strokeWidth:n=2,absoluteStrokeWidth:G=!1,color:g="currentColor",className:M=""}=j()??{},B=f??G?Number(r??n)*24/Number(u??d):r??n;return Y("svg",{ref:L,...V,width:u??d??V.width,height:u??d??V.height,stroke:a??g,strokeWidth:B,className:W("lucide",M,p),...!s&&!_(h)&&{"aria-hidden":"true"},...h},[...m.map(([z,e])=>Y(z,e)),...Array.isArray(s)?s:[s]])});var t=(a,u)=>{let r=re(({className:f,...p},s)=>fe($,{ref:s,iconNode:u,className:W(`lucide-${Q(X(a))}`,`lucide-${a}`,f),...p}));return r.displayName=X(a),r};var se=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],F=t("activity",se);var ie=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],P=t("bot",ie);var ce=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],k=t("circle-alert",ce);var ne=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],x=t("loader-circle",ne);var pe=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],w=t("log-in",pe);var me=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],D=t("message-square",me);var Le=[["path",{d:"M12.586 12.586 19 19",key:"ea5xo7"}],["path",{d:"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",key:"277e5u"}]],y=t("mouse-pointer",Le);var Ie=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],R=t("qr-code",Ie);var xe=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],T=t("refresh-cw",xe);var Ce=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],q=t("smartphone",Ce);var he=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],b=t("users",he);var ge=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],v=t("wifi-off",ge);var Se=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],U=t("wifi",Se);var ke=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],O=t("x",ke);import{useCallback as ae,useEffect as Me,useRef as te,useState as H}from"react";var ee="zhin_api_token",we="zhin_api_base";function Pe(){let a=localStorage.getItem(we)?.trim();return a?a.replace(/\/$/,""):typeof window<"u"?window.location.origin:""}function Ae(){return localStorage.getItem(ee)}async function A(a,u){let r=Ae(),f=new Headers(u?.headers);r&&f.set("Authorization",`Bearer ${r}`);let p=Pe(),s=typeof a=="string"&&a.startsWith("/")?`${p}${a}`:a,m=await fetch(s,{...u,headers:f});return m.status===401&&(localStorage.removeItem(ee),window.dispatchEvent(new CustomEvent("zhin:auth-required"))),m}import{jsx as o,jsxs as C}from"react/jsx-runtime";var Be=2e3,Fe=15e3,De={qrcode:{icon:o(R,{className:"w-4 h-4"}),label:"\u626B\u7801\u767B\u5F55"},sms:{icon:o(D,{className:"w-4 h-4"}),label:"\u77ED\u4FE1\u9A8C\u8BC1\u7801"},device:{icon:o(q,{className:"w-4 h-4"}),label:"\u8BBE\u5907\u9A8C\u8BC1"},slider:{icon:o(y,{className:"w-4 h-4"}),label:"\u6ED1\u5757\u9A8C\u8BC1"}};function K(){let[a,u]=H([]),[r,f]=H(!0),[p,s]=H(null),[m,h]=H({}),[L,d]=H({}),n=te(0),G=te(),g=ae(async()=>{try{let e=await A("/api/login-assist/pending");if(!e.ok)throw new Error("\u83B7\u53D6\u5F85\u529E\u5931\u8D25");let S=await e.json(),I=(Array.isArray(S)?S:[]).filter(E=>E.adapter==="icqq");u(I),s(null),n.current=I.length>0?0:n.current+1}catch(e){s(e.message),n.current++}finally{f(!1)}},[]),M=ae(()=>{let e=Math.min(Be*Math.pow(1.5,n.current),Fe);G.current=setTimeout(async()=>{await g(),M()},e)},[g]);Me(()=>(g().then(M),()=>clearTimeout(G.current)),[g,M]);let B=async(e,S)=>{h(c=>({...c,[e]:!0}));try{if(!(await A("/api/login-assist/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,value:S})})).ok)throw new Error("\u63D0\u4EA4\u5931\u8D25");d(I=>{let E={...I};return delete E[e],E}),n.current=0,await g()}catch(c){s(c.message)}finally{h(c=>({...c,[e]:!1}))}},z=async e=>{try{(await A("/api/login-assist/cancel",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})})).ok&&await g()}catch{}};return r&&a.length===0?o("div",{className:"flex justify-center py-12",children:o(x,{className:"w-6 h-6 animate-spin text-blue-500"})}):C("div",{className:"space-y-4",children:[o("p",{className:"text-sm text-muted-foreground",children:"\u626B\u7801\u3001\u77ED\u4FE1\u6216\u6ED1\u5757\u7B49\u9A8C\u8BC1\u4F1A\u51FA\u73B0\u5728\u4E0B\u65B9\uFF1B\u5237\u65B0\u9875\u9762\u540E\u4ECD\u53EF\u7EE7\u7EED\u5904\u7406\uFF08\u4EC5 ICQQ \u5F85\u529E\uFF09\u3002"}),p&&C("div",{className:"flex items-center gap-2 p-3 rounded border border-red-200 bg-red-50 text-red-600 text-sm dark:bg-red-900/20 dark:text-red-400 dark:border-red-800",children:[o(k,{className:"w-4 h-4 shrink-0"}),o("span",{children:p}),o("button",{onClick:()=>s(null),className:"ml-auto",children:o(O,{className:"w-3.5 h-3.5"})})]}),a.length===0?C("div",{className:"border rounded-lg bg-card p-12 text-center",children:[o(w,{className:"w-16 h-16 mx-auto mb-4 opacity-25"}),o("h3",{className:"text-lg font-semibold mb-1",children:"\u6682\u65E0\u5F85\u529E"}),o("p",{className:"text-sm text-muted-foreground",children:"\u673A\u5668\u4EBA\u9700\u8981\u9A8C\u8BC1\u65F6\uFF0C\u5F85\u529E\u5C06\u663E\u793A\u5728\u6B64\u5904"})]}):o("div",{className:"space-y-4",children:a.map(e=>{let S=De[e.type]??{icon:o(w,{className:"w-4 h-4"}),label:e.type};return C("div",{className:"border rounded-lg bg-card p-4 shadow-sm",children:[C("div",{className:"flex items-start justify-between flex-wrap gap-2 mb-2",children:[C("div",{className:"flex items-center gap-2 font-semibold",children:[S.icon," ",S.label]}),C("div",{className:"flex gap-1 text-xs",children:[o("span",{className:"px-2 py-0.5 rounded border",children:e.adapter}),o("span",{className:"px-2 py-0.5 rounded bg-muted",children:e.endpointId})]})]}),e.payload?.message&&o("p",{className:"text-sm text-muted-foreground mb-3",children:e.payload.message}),e.type==="qrcode"&&e.payload?.image&&o("div",{className:"flex justify-center p-4 bg-muted/30 rounded-lg mb-3",children:o("img",{src:String(e.payload.image),alt:"\u767B\u5F55\u4E8C\u7EF4\u7801",className:"max-w-[200px] w-full h-auto"})}),e.type==="slider"&&e.payload?.url&&C("p",{className:"text-sm break-all mb-3",children:[o("span",{className:"text-muted-foreground",children:"\u6ED1\u5757\u94FE\u63A5\uFF1A"})," ",o("a",{href:String(e.payload.url),target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:String(e.payload.url)})]}),(e.type==="sms"||e.type==="device"||e.type==="slider")&&C("div",{className:"flex flex-wrap gap-2 items-center",children:[o("input",{className:"h-9 px-3 rounded-md border border-input bg-background text-sm max-w-[18rem] flex-1",placeholder:e.type==="slider"?"\u8F93\u5165 ticket":"\u8F93\u5165\u9A8C\u8BC1\u7801",value:L[e.id]??"",onChange:c=>d(I=>({...I,[e.id]:c.target.value})),onKeyDown:c=>{if(c.key==="Enter"){let I=L[e.id]?.trim();I&&B(e.id,e.type==="slider"?{ticket:I}:I)}}}),o("button",{className:"h-9 px-4 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50",disabled:m[e.id]||!L[e.id]?.trim(),onClick:()=>{let c=L[e.id]?.trim();c&&B(e.id,e.type==="slider"?{ticket:c}:c)},children:m[e.id]?"\u63D0\u4EA4\u4E2D\u2026":"\u63D0\u4EA4"})]}),e.type==="qrcode"&&C("div",{className:"flex gap-2 mt-3",children:[o("button",{className:"h-9 px-4 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50",disabled:!!m[e.id],onClick:()=>{B(e.id,{done:!0})},children:m[e.id]?"\u63D0\u4EA4\u4E2D\u2026":"\u6211\u5DF2\u626B\u7801"}),o("button",{className:"h-9 px-4 rounded-md border text-sm hover:bg-accent transition-colors",onClick:()=>{z(e.id)},children:"\u53D6\u6D88"})]})]},e.id)})})]})}import{Fragment as Te,jsx as l,jsxs as i}from"react/jsx-runtime";function Z(){let[a,u]=N("overview"),[r,f]=N([]),[p,s]=N(!0),[m,h]=N(null),L=ye(async()=>{s(!0),h(null);try{let d=await A("/api/icqq/endpoints"),n=await d.json();if(!d.ok||!n.success)throw new Error(n.message||"\u52A0\u8F7D\u5931\u8D25");f(Array.isArray(n.data)?n.data:[])}catch(d){h(d.message),f([])}finally{s(!1)}},[]);return Re(()=>{a==="overview"&&L()},[a,L]),i("div",{className:"p-6 max-w-5xl mx-auto space-y-5",children:[i("div",{className:"flex items-center justify-between",children:[i("div",{children:[i("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[l(P,{className:"w-6 h-6"})," ICQQ \u7BA1\u7406"]}),l("p",{className:"text-sm text-muted-foreground mt-1",children:"\u673A\u5668\u4EBA\u6982\u89C8\u4E0E\u767B\u5F55\u8F85\u52A9\uFF08\u626B\u7801 / \u9A8C\u8BC1\u7801 / \u6ED1\u5757\uFF09"})]}),a==="overview"&&i("button",{onClick:L,disabled:p,className:"flex items-center gap-1 px-3 py-1.5 rounded bg-blue-500 text-white hover:bg-blue-600 disabled:opacity-50 text-sm",children:[l(T,{className:`w-4 h-4 ${p?"animate-spin":""}`})," \u5237\u65B0"]})]}),i("div",{className:"flex gap-1 border-b",children:[l("button",{onClick:()=>u("overview"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${a==="overview"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:i("span",{className:"flex items-center gap-1.5",children:[l(P,{className:"w-4 h-4"})," \u6982\u89C8"]})}),l("button",{onClick:()=>u("login"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${a==="login"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:i("span",{className:"flex items-center gap-1.5",children:[l(w,{className:"w-4 h-4"})," \u767B\u5F55\u8F85\u52A9"]})})]}),a==="overview"&&i(Te,{children:[m&&l("div",{className:"p-3 bg-red-50 text-red-600 rounded border border-red-200 text-sm dark:bg-red-900/20 dark:text-red-400 dark:border-red-800",children:m}),p?l("div",{className:"flex justify-center py-12",children:l(x,{className:"w-6 h-6 animate-spin text-blue-500"})}):r.length===0?l("div",{className:"text-center text-muted-foreground py-12",children:"\u6682\u65E0 ICQQ Endpoint \u5B9E\u4F8B"}):l("div",{className:"grid gap-4 md:grid-cols-2",children:r.map(d=>i("div",{className:"border rounded-lg p-4 bg-card shadow-sm",children:[i("div",{className:"flex items-center justify-between mb-3",children:[l("span",{className:"font-medium text-lg",children:d.name}),d.connected?i("span",{className:"flex items-center gap-1 text-green-600 text-sm",children:[l(U,{className:"w-4 h-4"})," \u5728\u7EBF"]}):i("span",{className:"flex items-center gap-1 text-gray-400 text-sm",children:[l(v,{className:"w-4 h-4"})," \u79BB\u7EBF"]})]}),i("div",{className:"space-y-2 text-sm text-muted-foreground",children:[i("div",{className:"flex items-center gap-1.5",children:[l(b,{className:"w-3.5 h-3.5"}),"\u7FA4 ",d.groupCount," \xB7 \u597D\u53CB ",d.friendCount]}),i("div",{className:"flex items-center gap-1.5",children:[l(F,{className:"w-3.5 h-3.5"}),"\u767B\u5F55\u65B9\u5F0F ",d.loginMode," \xB7 ",d.status]})]})]},d.name))})]}),a==="login"&&l(K,{})]})}function dt(a){a.addRoute({path:"/console/icqq",name:"ICQQ\u7BA1\u7406",element:a.React.createElement(Z,{hostReact:a.React})}),a.addTool({id:"icqq",name:"ICQQ",path:"/console/icqq"})}export{dt as register};
1
+ import{useCallback as ye,useEffect as Re,useState as z}from"react";import{forwardRef as re,createElement as fe}from"react";var N=(...a)=>a.filter((u,f,s)=>!!u&&u.trim()!==""&&s.indexOf(u)===f).join(" ").trim();var Q=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var J=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(u,f,s)=>s?s.toUpperCase():f.toLowerCase());var X=a=>{let u=J(a);return u.charAt(0).toUpperCase()+u.slice(1)};import{forwardRef as le,createElement as Y}from"react";var V={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var _=a=>{for(let u in a)if(u.startsWith("aria-")||u==="role"||u==="title")return!0;return!1};import{createContext as oe,useContext as ue,useMemo as Ee,createElement as Ne}from"react";var de=oe({});var j=()=>ue(de);var $=le(({color:a,size:u,strokeWidth:f,absoluteStrokeWidth:s,className:L="",children:i,iconNode:n,...h},x)=>{let{size:l=24,strokeWidth:m=2,absoluteStrokeWidth:G=!1,color:g="currentColor",className:D=""}=j()??{},P=s??G?Number(f??m)*24/Number(u??l):f??m;return Y("svg",{ref:x,...V,width:u??l??V.width,height:u??l??V.height,stroke:a??g,strokeWidth:P,className:N("lucide",D,L),...!i&&!_(h)&&{"aria-hidden":"true"},...h},[...n.map(([W,e])=>Y(W,e)),...Array.isArray(i)?i:[i]])});var o=(a,u)=>{let f=re(({className:s,...L},i)=>fe($,{ref:i,iconNode:u,className:N(`lucide-${Q(X(a))}`,`lucide-${a}`,s),...L}));return f.displayName=X(a),f};var se=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],F=o("activity",se);var ie=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],A=o("bot",ie);var ce=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],k=o("circle-alert",ce);var ne=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],C=o("loader-circle",ne);var pe=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],w=o("log-in",pe);var me=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],y=o("message-square",me);var Le=[["path",{d:"M12.586 12.586 19 19",key:"ea5xo7"}],["path",{d:"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",key:"277e5u"}]],R=o("mouse-pointer",Le);var Ie=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],b=o("qr-code",Ie);var xe=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],T=o("refresh-cw",xe);var Ce=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],B=o("smartphone",Ce);var he=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],q=o("users",he);var ge=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],v=o("wifi-off",ge);var Se=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],U=o("wifi",Se);var ke=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],O=o("x",ke);import{useCallback as ae,useEffect as Be,useRef as te,useState as H}from"react";var ee="zhin_api_token",we="zhin_api_base";function Pe(){let a=localStorage.getItem(we)?.trim();return a?a.replace(/\/$/,""):typeof window<"u"?window.location.origin:""}function Ae(){return localStorage.getItem(ee)}async function M(a,u){let f=Ae(),s=new Headers(u?.headers);f&&s.set("Authorization",`Bearer ${f}`);let L=Pe(),i=typeof a=="string"&&a.startsWith("/")?`${L}${a}`:a,n=await fetch(i,{...u,headers:s});return n.status===401&&(localStorage.removeItem(ee),window.dispatchEvent(new CustomEvent("zhin:auth-required"))),n}import{jsx as t,jsxs as p}from"react/jsx-runtime";var Me=2e3,De=15e3,Fe={qrcode:{icon:t(b,{className:"w-4 h-4"}),label:"\u626B\u7801\u767B\u5F55"},sms:{icon:t(y,{className:"w-4 h-4"}),label:"\u77ED\u4FE1\u9A8C\u8BC1\u7801"},device:{icon:t(B,{className:"w-4 h-4"}),label:"\u8BBE\u5907\u9A8C\u8BC1"},auth:{icon:t(B,{className:"w-4 h-4"}),label:"\u8EAB\u4EFD\u9A8C\u8BC1"},slider:{icon:t(R,{className:"w-4 h-4"}),label:"\u6ED1\u5757\u9A8C\u8BC1"}};function K(){let[a,u]=H([]),[f,s]=H(!0),[L,i]=H(null),[n,h]=H({}),[x,l]=H({}),m=te(0),G=te(),g=ae(async()=>{try{let e=await M("/api/login-assist/pending");if(!e.ok)throw new Error("\u83B7\u53D6\u5F85\u529E\u5931\u8D25");let S=await e.json(),I=(Array.isArray(S)?S:[]).filter(E=>E.adapter==="icqq");u(I),i(null),m.current=I.length>0?0:m.current+1}catch(e){i(e.message),m.current++}finally{s(!1)}},[]),D=ae(()=>{let e=Math.min(Me*Math.pow(1.5,m.current),De);G.current=setTimeout(async()=>{await g(),D()},e)},[g]);Be(()=>(g().then(D),()=>clearTimeout(G.current)),[g,D]);let P=async(e,S)=>{h(d=>({...d,[e]:!0}));try{if(!(await M("/api/login-assist/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,value:S})})).ok)throw new Error("\u63D0\u4EA4\u5931\u8D25");l(I=>{let E={...I};return delete E[e],E}),m.current=0,await g()}catch(d){i(d.message)}finally{h(d=>({...d,[e]:!1}))}},W=async e=>{try{(await M("/api/login-assist/cancel",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})})).ok&&await g()}catch{}};return f&&a.length===0?t("div",{className:"flex justify-center py-12",children:t(C,{className:"w-6 h-6 animate-spin text-blue-500"})}):p("div",{className:"space-y-4",children:[t("p",{className:"text-sm text-muted-foreground",children:"\u626B\u7801\u3001\u77ED\u4FE1\u6216\u6ED1\u5757\u7B49\u9A8C\u8BC1\u4F1A\u51FA\u73B0\u5728\u4E0B\u65B9\uFF1B\u5237\u65B0\u9875\u9762\u540E\u4ECD\u53EF\u7EE7\u7EED\u5904\u7406\uFF08\u4EC5 ICQQ \u5F85\u529E\uFF09\u3002"}),L&&p("div",{className:"flex items-center gap-2 p-3 rounded border border-red-200 bg-red-50 text-red-600 text-sm dark:bg-red-900/20 dark:text-red-400 dark:border-red-800",children:[t(k,{className:"w-4 h-4 shrink-0"}),t("span",{children:L}),t("button",{onClick:()=>i(null),className:"ml-auto",children:t(O,{className:"w-3.5 h-3.5"})})]}),a.length===0?p("div",{className:"border rounded-lg bg-card p-12 text-center",children:[t(w,{className:"w-16 h-16 mx-auto mb-4 opacity-25"}),t("h3",{className:"text-lg font-semibold mb-1",children:"\u6682\u65E0\u5F85\u529E"}),t("p",{className:"text-sm text-muted-foreground",children:"\u673A\u5668\u4EBA\u9700\u8981\u9A8C\u8BC1\u65F6\uFF0C\u5F85\u529E\u5C06\u663E\u793A\u5728\u6B64\u5904"})]}):t("div",{className:"space-y-4",children:a.map(e=>{let S=Fe[e.type]??{icon:t(w,{className:"w-4 h-4"}),label:e.type};return p("div",{className:"border rounded-lg bg-card p-4 shadow-sm",children:[p("div",{className:"flex items-start justify-between flex-wrap gap-2 mb-2",children:[p("div",{className:"flex items-center gap-2 font-semibold",children:[S.icon," ",S.label]}),p("div",{className:"flex gap-1 text-xs",children:[t("span",{className:"px-2 py-0.5 rounded border",children:e.adapter}),t("span",{className:"px-2 py-0.5 rounded bg-muted",children:e.endpointId})]})]}),e.payload?.message&&t("p",{className:"text-sm text-muted-foreground mb-3",children:e.payload.message}),e.type==="qrcode"&&e.payload?.image&&t("div",{className:"flex justify-center p-4 bg-muted/30 rounded-lg mb-3",children:t("img",{src:String(e.payload.image),alt:"\u767B\u5F55\u4E8C\u7EF4\u7801",className:"max-w-[200px] w-full h-auto"})}),(e.type==="slider"||e.type==="auth")&&e.payload?.url&&p("p",{className:"text-sm break-all mb-3",children:[t("span",{className:"text-muted-foreground",children:"\u9A8C\u8BC1\u94FE\u63A5\uFF1A"})," ",t("a",{href:String(e.payload.url),target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:String(e.payload.url)})]}),e.type==="auth"&&e.payload?.device&&typeof e.payload.device=="object"&&p("div",{className:"text-xs text-muted-foreground mb-3 space-y-1 rounded border p-3 bg-muted/20",children:[t("div",{className:"font-medium text-foreground",children:"\u8BBE\u5907\u4FE1\u606F\uFF08\u767B\u5F55\u7EED\u4F20\u7528\uFF09"}),Object.entries(e.payload.device).filter(([,d])=>d!=null&&String(d)!=="").map(([d,I])=>p("div",{children:[p("span",{className:"opacity-70",children:[d,": "]}),t("span",{className:"font-mono break-all",children:String(I)})]},d))]}),e.type==="auth"&&p("div",{className:"flex gap-2 mt-3",children:[t("button",{className:"h-9 px-4 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50",disabled:!!n[e.id],onClick:()=>{P(e.id,{done:!0})},children:n[e.id]?"\u63D0\u4EA4\u4E2D\u2026":"\u6211\u5DF2\u5B8C\u6210\u9A8C\u8BC1"}),t("button",{className:"h-9 px-4 rounded-md border text-sm hover:bg-accent transition-colors",onClick:()=>{W(e.id)},children:"\u53D6\u6D88"})]}),(e.type==="sms"||e.type==="device"||e.type==="slider")&&p("div",{className:"flex flex-wrap gap-2 items-center",children:[t("input",{className:"h-9 px-3 rounded-md border border-input bg-background text-sm max-w-[18rem] flex-1",placeholder:e.type==="slider"?"\u8F93\u5165 ticket":"\u8F93\u5165\u9A8C\u8BC1\u7801",value:x[e.id]??"",onChange:d=>l(I=>({...I,[e.id]:d.target.value})),onKeyDown:d=>{if(d.key==="Enter"){let I=x[e.id]?.trim();I&&P(e.id,e.type==="slider"?{ticket:I}:I)}}}),t("button",{className:"h-9 px-4 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50",disabled:n[e.id]||!x[e.id]?.trim(),onClick:()=>{let d=x[e.id]?.trim();d&&P(e.id,e.type==="slider"?{ticket:d}:d)},children:n[e.id]?"\u63D0\u4EA4\u4E2D\u2026":"\u63D0\u4EA4"})]}),e.type==="qrcode"&&p("div",{className:"flex gap-2 mt-3",children:[t("button",{className:"h-9 px-4 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50",disabled:!!n[e.id],onClick:()=>{P(e.id,{done:!0})},children:n[e.id]?"\u63D0\u4EA4\u4E2D\u2026":"\u6211\u5DF2\u626B\u7801"}),t("button",{className:"h-9 px-4 rounded-md border text-sm hover:bg-accent transition-colors",onClick:()=>{W(e.id)},children:"\u53D6\u6D88"})]})]},e.id)})})]})}import{Fragment as be,jsx as r,jsxs as c}from"react/jsx-runtime";function Z(){let[a,u]=z("overview"),[f,s]=z([]),[L,i]=z(!0),[n,h]=z(null),x=ye(async()=>{i(!0),h(null);try{let l=await M("/api/icqq/endpoints"),m=await l.json();if(!l.ok||!m.success)throw new Error(m.message||"\u52A0\u8F7D\u5931\u8D25");s(Array.isArray(m.data)?m.data:[])}catch(l){h(l.message),s([])}finally{i(!1)}},[]);return Re(()=>{a==="overview"&&x()},[a,x]),c("div",{className:"p-6 max-w-5xl mx-auto space-y-5",children:[c("div",{className:"flex items-center justify-between",children:[c("div",{children:[c("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[r(A,{className:"w-6 h-6"})," ICQQ \u7BA1\u7406"]}),r("p",{className:"text-sm text-muted-foreground mt-1",children:"\u673A\u5668\u4EBA\u6982\u89C8\u4E0E\u767B\u5F55\u8F85\u52A9\uFF08\u626B\u7801 / \u9A8C\u8BC1\u7801 / \u6ED1\u5757\uFF09"})]}),a==="overview"&&c("button",{onClick:x,disabled:L,className:"flex items-center gap-1 px-3 py-1.5 rounded bg-blue-500 text-white hover:bg-blue-600 disabled:opacity-50 text-sm",children:[r(T,{className:`w-4 h-4 ${L?"animate-spin":""}`})," \u5237\u65B0"]})]}),c("div",{className:"flex gap-1 border-b",children:[r("button",{onClick:()=>u("overview"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${a==="overview"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:c("span",{className:"flex items-center gap-1.5",children:[r(A,{className:"w-4 h-4"})," \u6982\u89C8"]})}),r("button",{onClick:()=>u("login"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${a==="login"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:c("span",{className:"flex items-center gap-1.5",children:[r(w,{className:"w-4 h-4"})," \u767B\u5F55\u8F85\u52A9"]})})]}),a==="overview"&&c(be,{children:[n&&r("div",{className:"p-3 bg-red-50 text-red-600 rounded border border-red-200 text-sm dark:bg-red-900/20 dark:text-red-400 dark:border-red-800",children:n}),L?r("div",{className:"flex justify-center py-12",children:r(C,{className:"w-6 h-6 animate-spin text-blue-500"})}):f.length===0?r("div",{className:"text-center text-muted-foreground py-12",children:"\u6682\u65E0 ICQQ Endpoint \u5B9E\u4F8B"}):r("div",{className:"grid gap-4 md:grid-cols-2",children:f.map(l=>c("div",{className:"border rounded-lg p-4 bg-card shadow-sm",children:[c("div",{className:"flex items-center justify-between mb-3",children:[r("span",{className:"font-medium text-lg",children:l.name}),l.connected?c("span",{className:"flex items-center gap-1 text-green-600 text-sm",children:[r(U,{className:"w-4 h-4"})," \u5728\u7EBF"]}):c("span",{className:"flex items-center gap-1 text-gray-400 text-sm",children:[r(v,{className:"w-4 h-4"})," \u79BB\u7EBF"]})]}),c("div",{className:"space-y-2 text-sm text-muted-foreground",children:[c("div",{className:"flex items-center gap-1.5",children:[r(q,{className:"w-3.5 h-3.5"}),"\u7FA4 ",l.groupCount," \xB7 \u597D\u53CB ",l.friendCount]}),c("div",{className:"flex items-center gap-1.5",children:[r(F,{className:"w-3.5 h-3.5"}),"\u767B\u5F55\u65B9\u5F0F ",l.loginMode," \xB7 ",l.status]})]})]},l.name))})]}),a==="login"&&r(K,{})]})}function dt(a){a.addRoute({path:"/console/icqq",name:"ICQQ\u7BA1\u7406",element:a.React.createElement(Z,{hostReact:a.React})}),a.addTool({id:"icqq",name:"ICQQ",path:"/console/icqq"})}export{dt as register};
2
2
  /*! Bundled license information:
3
3
 
4
4
  lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs:
@@ -26,7 +26,7 @@ lucide-react/dist/esm/icons/wifi.mjs:
26
26
  lucide-react/dist/esm/icons/x.mjs:
27
27
  lucide-react/dist/esm/lucide-react.mjs:
28
28
  (**
29
- * @license lucide-react v1.17.0 - ISC
29
+ * @license lucide-react v1.23.0 - ISC
30
30
  *
31
31
  * This source code is licensed under the ISC license.
32
32
  * See the LICENSE file in the root directory of this source tree.
package/lib/adapter.d.ts CHANGED
@@ -6,6 +6,14 @@ import { IcqqEndpoint } from "./endpoint.js";
6
6
  import type { IcqqEndpointConfig } from "./types.js";
7
7
  export declare class IcqqAdapter extends Adapter<IcqqEndpoint> {
8
8
  static readonly capabilities: readonly ["inbound", "outbound"];
9
+ static outboundRichSegmentPolicy: import("zhin.js").OutboundRichSegmentPolicy;
10
+ static interactivePolicy: "text";
11
+ static aiOutboundCapabilities: {
12
+ mentions: boolean;
13
+ richSegments: string[];
14
+ interactive: "text";
15
+ };
16
+ static aiOutboundExtensions: import("zhin.js").AiOutboundExtensionDefinition[];
9
17
  constructor(plugin: Plugin);
10
18
  getOutboundMediaCapabilities(): {
11
19
  image: boolean;
@@ -18,12 +26,12 @@ export declare class IcqqAdapter extends Adapter<IcqqEndpoint> {
18
26
  start(): Promise<void>;
19
27
  stop(): Promise<void>;
20
28
  private getEndpoint;
21
- kickMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
29
+ removeMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
22
30
  muteMember(endpointId: string, sceneId: string, userId: string, duration?: number): Promise<boolean>;
23
- muteAll(endpointId: string, sceneId: string, enable?: boolean): Promise<boolean>;
24
- setAdmin(endpointId: string, sceneId: string, userId: string, enable?: boolean): Promise<boolean>;
31
+ setSceneMuted(endpointId: string, sceneId: string, enable?: boolean): Promise<boolean>;
32
+ setModerator(endpointId: string, sceneId: string, userId: string, enable?: boolean): Promise<boolean>;
25
33
  setMemberNickname(endpointId: string, sceneId: string, userId: string, nickname: string): Promise<boolean>;
26
- setGroupName(endpointId: string, sceneId: string, name: string): Promise<boolean>;
34
+ renameScene(endpointId: string, sceneId: string, name: string): Promise<boolean>;
27
35
  listMembers(endpointId: string, sceneId: string): Promise<{
28
36
  members: {
29
37
  user_id: number;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAiB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAGpE,qBAAa,WAAY,SAAQ,OAAO,CAAC,YAAY,CAAC;IACpD,gBAAyB,YAAY,mCAAoC;gBAE7D,MAAM,EAAE,MAAM;IAI1B,4BAA4B;;;;;;;IAU5B,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;IAIlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,WAAW;IAMb,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAW9D,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,SAAM;IAYV,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAO;IAU1D,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,UAAO;IAYT,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAYZ,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAU9D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;CAiBtD"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAiB,OAAO,EAAE,MAAM,EAA+E,MAAM,SAAS,CAAC;AACtI,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAGpE,qBAAa,WAAY,SAAQ,OAAO,CAAC,YAAY,CAAC;IACpD,gBAAyB,YAAY,mCAAoC;IACzE,OAAgB,yBAAyB,8CAAwC;IACjF,OAAgB,iBAAiB,EAAG,MAAM,CAAU;IACpD,OAAgB,sBAAsB;;;;MAIpC;IACF,OAAgB,oBAAoB,oDAA2C;gBAEnE,MAAM,EAAE,MAAM;IAI1B,4BAA4B;;;;;;;IAU5B,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;IAIlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,WAAW;IAMb,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWhE,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,SAAM;IAYV,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAO;IAUhE,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,UAAO;IAYT,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAYZ,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAU7D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;CAiBtD"}
package/lib/adapter.js CHANGED
@@ -1,11 +1,19 @@
1
1
  /**
2
2
  * ICQQ 适配器 — 通过 @icqqjs/cli 守护进程 IPC 管理 Endpoint 实例
3
3
  */
4
- import { formatCompact, Adapter } from 'zhin.js';
4
+ import { formatCompact, Adapter, OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL, ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION } from 'zhin.js';
5
5
  import { IcqqEndpoint } from "./endpoint.js";
6
6
  import { Actions } from "./protocol.js";
7
7
  export class IcqqAdapter extends Adapter {
8
8
  static capabilities = ['inbound', 'outbound'];
9
+ static outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
10
+ static interactivePolicy = 'text';
11
+ static aiOutboundCapabilities = {
12
+ mentions: true,
13
+ richSegments: ['qrcode', 'html', 'markdown', 'tts'],
14
+ interactive: 'text',
15
+ };
16
+ static aiOutboundExtensions = [ONEBOT_KEYBOARD_AI_OUTBOUND_EXTENSION];
9
17
  constructor(plugin) {
10
18
  super(plugin, "icqq", []);
11
19
  }
@@ -28,14 +36,14 @@ export class IcqqAdapter extends Adapter {
28
36
  await super.stop();
29
37
  this.logger.debug(formatCompact({ stop: true }));
30
38
  }
31
- // ── IGroupManagement 标准群管方法(通过 IPC) ─────────────────────
39
+ // ── ISceneManagement 标准群管方法(通过 IPC) ─────────────────────
32
40
  getEndpoint(endpointId) {
33
41
  const endpoint = this.endpoints.get(endpointId);
34
42
  if (!endpoint)
35
43
  throw new Error(`Endpoint ${endpointId} 不存在`);
36
44
  return endpoint;
37
45
  }
38
- async kickMember(endpointId, sceneId, userId) {
46
+ async removeMember(endpointId, sceneId, userId) {
39
47
  const endpoint = this.getEndpoint(endpointId);
40
48
  const resp = await endpoint.ipc.request(Actions.GROUP_KICK, {
41
49
  group_id: Number(sceneId),
@@ -57,7 +65,7 @@ export class IcqqAdapter extends Adapter {
57
65
  throw new Error(resp.error ?? "禁言失败");
58
66
  return true;
59
67
  }
60
- async muteAll(endpointId, sceneId, enable = true) {
68
+ async setSceneMuted(endpointId, sceneId, enable = true) {
61
69
  const endpoint = this.getEndpoint(endpointId);
62
70
  const resp = await endpoint.ipc.request(Actions.GROUP_MUTE_ALL, {
63
71
  group_id: Number(sceneId),
@@ -67,7 +75,7 @@ export class IcqqAdapter extends Adapter {
67
75
  throw new Error(resp.error ?? "全员禁言失败");
68
76
  return true;
69
77
  }
70
- async setAdmin(endpointId, sceneId, userId, enable = true) {
78
+ async setModerator(endpointId, sceneId, userId, enable = true) {
71
79
  const endpoint = this.getEndpoint(endpointId);
72
80
  const resp = await endpoint.ipc.request(Actions.SET_GROUP_ADMIN, {
73
81
  group_id: Number(sceneId),
@@ -89,7 +97,7 @@ export class IcqqAdapter extends Adapter {
89
97
  throw new Error(resp.error ?? "设置群名片失败");
90
98
  return true;
91
99
  }
92
- async setGroupName(endpointId, sceneId, name) {
100
+ async renameScene(endpointId, sceneId, name) {
93
101
  const endpoint = this.getEndpoint(endpointId);
94
102
  const resp = await endpoint.ipc.request(Actions.SET_GROUP_NAME, {
95
103
  group_id: Number(sceneId),
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cq-message.d.ts","sourceRoot":"","sources":["../src/cq-message.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,SAAS,CAAC;AAyC/D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAkC5D;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAIhE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAkDvD"}
1
+ {"version":3,"file":"cq-message.d.ts","sourceRoot":"","sources":["../src/cq-message.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,SAAS,CAAC;AAyC/D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAkC5D;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAIhE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA0DvD"}
package/lib/cq-message.js CHANGED
@@ -34,7 +34,7 @@ function pushCqSegment(segments, type, arg) {
34
34
  segments.push({ type: "video", data: { file: arg } });
35
35
  break;
36
36
  case "reply":
37
- segments.push({ type: "reply", data: { id: arg } });
37
+ segments.push({ type: "reply", data: { message_id: arg } });
38
38
  break;
39
39
  default:
40
40
  segments.push({ type, data: { text: `[${type}:${arg}]` } });
@@ -96,6 +96,12 @@ export function toCqString(content) {
96
96
  case "face":
97
97
  return `[face:${data.id}]`;
98
98
  case "image": {
99
+ const media = data.media;
100
+ if (media?.value) {
101
+ if (media.kind === "base64")
102
+ return `[image:base64://${media.value}]`;
103
+ return `[image:${media.value}]`;
104
+ }
99
105
  const b64 = typeof data.base64 === "string"
100
106
  ? data.base64
101
107
  : typeof data.data === "string"
@@ -106,7 +112,10 @@ export function toCqString(content) {
106
112
  return `[image:${data.file || data.url || data.src}]`;
107
113
  }
108
114
  case "at":
109
- return `[at:${data.qq ?? data.id}]`;
115
+ case "mention": {
116
+ const target = data.target ?? data.qq ?? data.id ?? data.user_id;
117
+ return `[at:${target}]`;
118
+ }
110
119
  case "dice":
111
120
  return "[dice]";
112
121
  case "rps":
@@ -129,7 +138,7 @@ export function toCqString(content) {
129
138
  return `[video:${data.file || data.url}]`;
130
139
  }
131
140
  case "reply":
132
- return `[reply:${data.id}]`;
141
+ return `[reply:${data.message_id ?? data.id}]`;
133
142
  default:
134
143
  return segment.toString(seg);
135
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cq-message.js","sourceRoot":"","sources":["../src/cq-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cq-message.js","sourceRoot":"","sources":["../src/cq-message.ts"],"names":[],"mappings":"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"}
package/lib/endpoint.d.ts CHANGED
@@ -11,7 +11,7 @@ import { IpcClient } from "./ipc-client.js";
11
11
  import type { IcqqIpcMessageEvent } from "./icqq-inbound.js";
12
12
  import { type NormalizedIcqqInbound } from "./icqq-inbound.js";
13
13
  import { buildIcqqIpcMessage as buildIcqqIpcMessageImpl, parseCqMessage as parseCqMessageImpl, toCqString as toCqStringImpl } from "./cq-message.js";
14
- import { type ICQQTypingIndicatorManager } from "./typing-indicator.js";
14
+ import { IcqqGuildCatalog } from "./icqq-guild.js";
15
15
  export declare class IcqqEndpoint implements Endpoint<IcqqEndpointConfig, IcqqIpcMessageEvent> {
16
16
  adapter: IcqqAdapter;
17
17
  $connected: boolean;
@@ -21,6 +21,8 @@ export declare class IcqqEndpoint implements Endpoint<IcqqEndpointConfig, IcqqIp
21
21
  friends: Map<number, IpcFriendInfo>;
22
22
  /** 缓存的群列表 */
23
23
  groups: Map<number, IpcGroupInfo>;
24
+ /** QQ 频道(guild)子频道缓存 */
25
+ readonly guildCatalog: IcqqGuildCatalog;
24
26
  private subscriptions;
25
27
  /** 事件去重:覆盖多端回流/服务端重复推送等场景 */
26
28
  private readonly inboundDeduper;
@@ -30,17 +32,10 @@ export declare class IcqqEndpoint implements Endpoint<IcqqEndpointConfig, IcqqIp
30
32
  private intentionalDisconnect;
31
33
  /** 是否已有重连循环在跑(避免多次 schedule 叠套) */
32
34
  private reconnectRunning;
33
- /** Typing Indicator 管理器 */
34
- $typingIndicator?: ICQQTypingIndicatorManager;
35
35
  get $id(): `${number}`;
36
36
  get logger(): import("zhin.js").Logger;
37
37
  constructor(adapter: IcqqAdapter, config: IcqqEndpointConfig);
38
38
  $connect(): Promise<void>;
39
- /**
40
- * 初始化 Typing Indicator
41
- * 根据配置自动启用或禁用
42
- */
43
- private initTypingIndicator;
44
39
  /** 建立或恢复与守护进程的 IPC/RPC 会话(订阅、缓存列表) */
45
40
  private rebindIpcSession;
46
41
  /** IPC/RPC 意外断开时调度重连(指数退避) */
@@ -48,9 +43,18 @@ export declare class IcqqEndpoint implements Endpoint<IcqqEndpointConfig, IcqqIp
48
43
  private runReconnectLoop;
49
44
  /** 刷新好友/群列表缓存 */
50
45
  refreshLists(): Promise<void>;
46
+ /** Console:列出 guild 子频道(含 parent.guild) */
47
+ getGuildChannelList(): ReturnType<IcqqGuildCatalog["getGuildChannelList"]>;
48
+ resolveConsoleChannelNames(channelId: string, guildId?: string): {
49
+ channelName?: string;
50
+ parentName?: string;
51
+ };
51
52
  $disconnect(): Promise<void>;
52
53
  private handleEvent;
53
54
  private dispatchInboundMessage;
55
+ private handleGuildMessageEvent;
56
+ private dispatchGuildInboundMessage;
57
+ private $formatGuildMessage;
54
58
  private handleNoticeEvent;
55
59
  private handleRequestEvent;
56
60
  private handleMetaEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}