@qqvu/openclaw-channel 1.0.24 → 1.0.26
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/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +36 -6
- package/dist/channel.js.map +1 -1
- package/package.json +1 -1
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAGlE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG5D;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAGlE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG5D;AAoFD;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;8BAwBJ,GAAG;8BAWH,GAAG,cAAc,MAAM,KAAG,iBAAiB;;IAInE;;;OAGG;;+BAGsB,MAAM;sCAEC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE;;;mCAcnB,MAAM;oCAQC;gBAC5B,KAAK,EAAE,MAAM,CAAC;gBACd,UAAU,EAAE,MAAM,CAAC;gBACnB,aAAa,CAAC,EAAE,MAAM,CAAC;aACxB;;;;;;;;;;QAwBH;;;WAGG;wBACmB,GAAG;;;;;;;yBAgDF,GAAG;;;;;;;wBAgCJ,GAAG;;;;;;;;CAkC5B,CAAC"}
|
package/dist/channel.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PufferfishAPIClient } from './api-client.js';
|
|
2
2
|
const runtimeAccounts = new Map();
|
|
3
|
-
//
|
|
4
|
-
const
|
|
3
|
+
// 温和占位账号:仅在已存在 channels.pufferfish 但未配置具体 bots 时用于 UI 展示。
|
|
4
|
+
const PLACEHOLDER_ACCOUNT_ID = 'default';
|
|
5
5
|
export function setRuntimeAccount(account) {
|
|
6
6
|
// 记录运行时已连接账号,优先于静态配置读取,保证 token 等动态字段最新。
|
|
7
7
|
runtimeAccounts.set(account.accountId, account);
|
|
@@ -43,10 +43,10 @@ function resolvePufferfishAccountFromConfig(cfg, accountId) {
|
|
|
43
43
|
}
|
|
44
44
|
const account = cfg.channels?.pufferfish?.bots?.[resolvedAccountId] ??
|
|
45
45
|
cfg.channels?.pufferfish?.accounts?.[resolvedAccountId];
|
|
46
|
-
|
|
47
|
-
if (!account || resolvedAccountId === UNCONFIGURED_ACCOUNT_ID) {
|
|
46
|
+
if (!account) {
|
|
48
47
|
return {
|
|
49
48
|
accountId: resolvedAccountId,
|
|
49
|
+
// 占位账号不参与实际连接,仅用于 Dashboard 的配置入口展示。
|
|
50
50
|
enabled: false,
|
|
51
51
|
apiUrl: '',
|
|
52
52
|
wsUrl: '',
|
|
@@ -72,6 +72,21 @@ function resolveOutboundCtx(ctx) {
|
|
|
72
72
|
const account = ctx.account ?? resolvePufferfishAccountFromConfig(ctx.cfg, ctx.accountId);
|
|
73
73
|
return { chatId, account };
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* 检查账号是否完成基础配置(至少具备 apiUrl + token)。
|
|
77
|
+
* 未配置时给用户友好错误,避免出现晦涩的网络/鉴权异常。
|
|
78
|
+
*/
|
|
79
|
+
function validateAccountReady(account) {
|
|
80
|
+
const apiUrl = String(account?.apiUrl ?? '').trim();
|
|
81
|
+
const token = String(account?.token ?? '').trim();
|
|
82
|
+
if (!apiUrl) {
|
|
83
|
+
return 'QQvu 未配置:缺少 channels.pufferfish.bots.*.apiUrl';
|
|
84
|
+
}
|
|
85
|
+
if (!token) {
|
|
86
|
+
return 'QQvu 未配置:机器人尚未完成 connect 鉴权(缺少运行 token)';
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
75
90
|
/**
|
|
76
91
|
* Pufferfish Channel 定义
|
|
77
92
|
* 实现 OpenClaw Channel 接口,连接到 Pufferfish IM 平台
|
|
@@ -98,9 +113,12 @@ export const pufferfishChannel = {
|
|
|
98
113
|
config: {
|
|
99
114
|
// 列出所有配置的账号ID
|
|
100
115
|
listAccountIds: (cfg) => {
|
|
116
|
+
const hasChannelNode = !!cfg.channels?.pufferfish;
|
|
101
117
|
const accountIds = Object.keys(cfg.channels?.pufferfish?.bots ?? cfg.channels?.pufferfish?.accounts ?? {});
|
|
102
|
-
|
|
103
|
-
|
|
118
|
+
if (accountIds.length > 0)
|
|
119
|
+
return accountIds;
|
|
120
|
+
// 仅当用户已显式存在 channels.pufferfish 时才返回占位账号,避免影响其它频道总览渲染。
|
|
121
|
+
return hasChannelNode ? [PLACEHOLDER_ACCOUNT_ID] : [];
|
|
104
122
|
},
|
|
105
123
|
// 解析指定账号的配置
|
|
106
124
|
resolveAccount: (cfg, accountId) => resolvePufferfishAccountFromConfig(cfg, accountId),
|
|
@@ -174,6 +192,10 @@ export const pufferfishChannel = {
|
|
|
174
192
|
sendText: async (ctx) => {
|
|
175
193
|
const { text, streaming } = ctx;
|
|
176
194
|
const { chatId, account } = resolveOutboundCtx(ctx);
|
|
195
|
+
const notReadyReason = validateAccountReady(account);
|
|
196
|
+
if (notReadyReason) {
|
|
197
|
+
return { ok: false, error: notReadyReason };
|
|
198
|
+
}
|
|
177
199
|
const client = new PufferfishAPIClient(account);
|
|
178
200
|
const cancelTargetMsgId = String(ctx?.MessageSid ?? ctx?.messageId ?? ctx?.MessageSidFull ?? '').trim();
|
|
179
201
|
const cancelMeta = cancelTargetMsgId ? { cancel_target_msg_id: cancelTargetMsgId } : undefined;
|
|
@@ -217,6 +239,10 @@ export const pufferfishChannel = {
|
|
|
217
239
|
// 下载外部图片并上传到 Pufferfish OSS,再发送 image 消息。
|
|
218
240
|
const imageUrl = ctx.imageUrl ?? ctx.mediaUrl;
|
|
219
241
|
const { chatId, account } = resolveOutboundCtx(ctx);
|
|
242
|
+
const notReadyReason = validateAccountReady(account);
|
|
243
|
+
if (notReadyReason) {
|
|
244
|
+
return { ok: false, error: notReadyReason };
|
|
245
|
+
}
|
|
220
246
|
const client = new PufferfishAPIClient(account);
|
|
221
247
|
const cancelTargetMsgId = String(ctx?.MessageSid ?? ctx?.messageId ?? ctx?.MessageSidFull ?? '').trim();
|
|
222
248
|
const cancelMeta = cancelTargetMsgId ? { cancel_target_msg_id: cancelTargetMsgId } : undefined;
|
|
@@ -241,6 +267,10 @@ export const pufferfishChannel = {
|
|
|
241
267
|
const { fileUrl, fileName, mediaUrl } = ctx;
|
|
242
268
|
const url = fileUrl ?? mediaUrl;
|
|
243
269
|
const { chatId, account } = resolveOutboundCtx(ctx);
|
|
270
|
+
const notReadyReason = validateAccountReady(account);
|
|
271
|
+
if (notReadyReason) {
|
|
272
|
+
return { ok: false, error: notReadyReason };
|
|
273
|
+
}
|
|
244
274
|
const client = new PufferfishAPIClient(account);
|
|
245
275
|
const cancelTargetMsgId = String(ctx?.MessageSid ?? ctx?.messageId ?? ctx?.MessageSidFull ?? '').trim();
|
|
246
276
|
const cancelMeta = cancelTargetMsgId ? { cancel_target_msg_id: cancelTargetMsgId } : undefined;
|
package/dist/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC7D,
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|