@jesonliu/lark-claudecode-bridge 0.19.0 → 0.20.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.
- package/README.md +77 -192
- package/assets/web/css/main.css +511 -113
- package/assets/web/index.html +12 -2
- package/assets/web/js/main.js +16 -10
- package/assets/web/js/pages/apps.js +10 -5
- package/assets/web/js/pages/claude.js +15 -5
- package/assets/web/js/pages/mcp.js +57 -21
- package/assets/web/js/pages/overview.js +5 -4
- package/assets/web/js/pages/permissions.js +56 -30
- package/assets/web/js/pages/plugins.js +29 -6
- package/assets/web/js/pages/skills.js +184 -11
- package/assets/web/js/pages/slash.js +11 -5
- package/assets/web/js/pages/workspaces.js +15 -14
- package/assets/web/js/theme.js +23 -0
- package/assets/web/js/ui.js +75 -4
- package/config.example.yaml +2 -3
- package/dist/access/access-control.d.ts +17 -1
- package/dist/access/access-control.js +31 -2
- package/dist/access/access-control.js.map +1 -1
- package/dist/claude-config.d.ts +14 -2
- package/dist/claude-config.js +75 -4
- package/dist/claude-config.js.map +1 -1
- package/dist/cli/setup-wizard.d.ts +0 -1
- package/dist/cli/setup-wizard.js +2 -4
- package/dist/cli/setup-wizard.js.map +1 -1
- package/dist/config.js +6 -7
- package/dist/config.js.map +1 -1
- package/dist/executor/claude-executor.d.ts +1 -1
- package/dist/executor/claude-executor.js +4 -2
- package/dist/executor/claude-executor.js.map +1 -1
- package/dist/executor/notify-server.d.ts +9 -2
- package/dist/executor/notify-server.js +34 -9
- package/dist/executor/notify-server.js.map +1 -1
- package/dist/gateway/card-builder.d.ts +54 -0
- package/dist/gateway/card-builder.js +160 -18
- package/dist/gateway/card-builder.js.map +1 -1
- package/dist/gateway/diff-card.js +1 -1
- package/dist/gateway/diff-card.js.map +1 -1
- package/dist/gateway/feishu-gateway.d.ts +20 -3
- package/dist/gateway/feishu-gateway.js +58 -4
- package/dist/gateway/feishu-gateway.js.map +1 -1
- package/dist/gateway/progress-card.d.ts +56 -0
- package/dist/gateway/progress-card.js +218 -8
- package/dist/gateway/progress-card.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +195 -42
- package/dist/index.js.map +1 -1
- package/dist/notify-sop.d.ts +1 -1
- package/dist/notify-sop.js +5 -2
- package/dist/notify-sop.js.map +1 -1
- package/dist/session/commands.d.ts +1 -1
- package/dist/session/commands.js +25 -2
- package/dist/session/commands.js.map +1 -1
- package/dist/session/session-store.d.ts +3 -0
- package/dist/session/session-store.js.map +1 -1
- package/dist/types.d.ts +11 -5
- package/dist/util/workspace-diff.js +2 -2
- package/dist/util/workspace-diff.js.map +1 -1
- package/dist/web/server.js +146 -13
- package/dist/web/server.js.map +1 -1
- package/dist/web/skills-mcp-api.d.ts +27 -4
- package/dist/web/skills-mcp-api.js +105 -14
- package/dist/web/skills-mcp-api.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,37 @@
|
|
|
1
|
-
import { buildProgressCard } from './card-builder.js';
|
|
1
|
+
import { buildProgressCard, buildPartialUpdateActions, buildQaButtonActions } from './card-builder.js';
|
|
2
2
|
const FLUSH_CHARS = 200;
|
|
3
|
+
/** 单次卡片更新请求超时:飞书 SDK 的 axios 无超时(timeout=0),请求被网络黑洞时
|
|
4
|
+
* flush 串行链会无限期挂起(生产实测单次挂 7.4 分钟)——挂起期间计时/交互区全停,
|
|
5
|
+
* 与任务卡死无从区分。到点按失败处理(seq 不推进)下轮重试;若超时请求实际已在
|
|
6
|
+
* 服务端落地,下轮会收 300317 经跳号分支自愈 */
|
|
7
|
+
const UPDATE_TIMEOUT_MS = 30_000;
|
|
8
|
+
/** 给单次更新请求加超时闸:到点 reject 由 flush catch 统一按失败重试 */
|
|
9
|
+
function withTimeout(p, ms) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
const timer = setTimeout(() => reject(new Error(`卡片更新超时(${ms}ms 无响应),按失败处理下轮重试`)), ms);
|
|
12
|
+
timer.unref();
|
|
13
|
+
p.then((v) => { clearTimeout(timer); resolve(v); }, (e) => { clearTimeout(timer); reject(e); });
|
|
14
|
+
});
|
|
15
|
+
}
|
|
3
16
|
export class ProgressCard {
|
|
4
17
|
sender;
|
|
5
18
|
opts;
|
|
6
19
|
messageId;
|
|
20
|
+
/** 卡片实体 ID(cardkit 实体模式):非空时状态刷新走局部更新(保 form 输入),结构变化走全量替换 */
|
|
21
|
+
cardId;
|
|
22
|
+
/** cardkit 操作序号:同一实体的每次 update/batch_update 必须严格递增 */
|
|
23
|
+
seq = 0;
|
|
24
|
+
/** 同一实体连续更新失败计数(任何错误码):达到阈值放弃该实体沉底式重建,防未知错误死循环刷日志 */
|
|
25
|
+
consecutiveFailures = 0;
|
|
26
|
+
/** 上次全量渲染的结构签名:交互区(confirm/plan/question)增删、终态需要全量重渲染。
|
|
27
|
+
* 0.20.0 起 qa 选中态不进签名(见 structureKey)——改走 partial 按钮级局部更新 */
|
|
28
|
+
lastStructure = '';
|
|
29
|
+
/** qa 选中态脏标记:updateQuestionAnswer 置位,下一次实体 partial 经按钮级 actions 发出
|
|
30
|
+
* (挂起冻结期间的唯一例外放行通道)前快照清零,失败在 flush catch 恢复重试。
|
|
31
|
+
* 显式标记取代快照对比——快照在 replace 与求值之间可能被新一轮点击改写(竞态丢刷) */
|
|
32
|
+
qaButtonsDirty = false;
|
|
33
|
+
/** 挂起输入期间收到的沉底请求(sinkToBottom 会删卡重发清空输入态):挂起解除后补执行 */
|
|
34
|
+
deferSink = false;
|
|
7
35
|
buffer = '';
|
|
8
36
|
state;
|
|
9
37
|
flushTimer;
|
|
@@ -22,8 +50,27 @@ export class ProgressCard {
|
|
|
22
50
|
this.state = { title, status: '🚀 已接收,启动中…', textTail: '', toolLine: '', startedAt: Date.now(), agents: [] };
|
|
23
51
|
}
|
|
24
52
|
async start() {
|
|
25
|
-
|
|
26
|
-
|
|
53
|
+
const initial = buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default');
|
|
54
|
+
// 优先卡片实体模式(支持局部更新 → plan 表单输入不被心跳刷掉);
|
|
55
|
+
// 创建失败(cardkit:card:write 权限缺失/接口异常)降级为普通卡片 + 整卡 PATCH,功能不退化
|
|
56
|
+
if (this.sender.sendCardEntity) {
|
|
57
|
+
try {
|
|
58
|
+
const { messageId, cardId } = await this.sender.sendCardEntity(initial);
|
|
59
|
+
this.messageId = messageId;
|
|
60
|
+
this.cardId = cardId;
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
console.warn('[进度卡] 卡片实体模式不可用,降级为整卡更新(挂起期间状态/计时停更,输入冻结保护仍生效)。如已开通 cardkit:card:write,需在飞书开发者后台创建新版本并发布、并重启 bridge 后生效。原因:', e instanceof Error ? e.message : e);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!this.messageId) {
|
|
67
|
+
this.messageId = await this.sender.sendCard(initial);
|
|
68
|
+
}
|
|
69
|
+
this.lastStructure = this.structureKey();
|
|
70
|
+
this.qaButtonsDirty = false;
|
|
71
|
+
// 1s 对齐秒级计时(0.20.1:原 1.5s 跨秒边界会跳秒显示,如 1→3);cardkit batch_update
|
|
72
|
+
// 限频 1000 次/分钟,单卡 60 次/分钟远在限内
|
|
73
|
+
const interval = this.opts.flushIntervalMs ?? 1000;
|
|
27
74
|
this.flushTimer = setInterval(() => void this.flush(), interval).unref();
|
|
28
75
|
this.heartbeatTimer = setInterval(() => {
|
|
29
76
|
if (Date.now() - this.lastActivityAt >= (this.opts.idleHeartbeatMs ?? 30_000)) {
|
|
@@ -94,6 +141,9 @@ export class ProgressCard {
|
|
|
94
141
|
if (this.done)
|
|
95
142
|
return;
|
|
96
143
|
this.state.question = req;
|
|
144
|
+
// 提问区收回时同步清选中态脏标记(按钮已随全量替换消失,qa-only 空批次无意义)
|
|
145
|
+
if (!req)
|
|
146
|
+
this.qaButtonsDirty = false;
|
|
97
147
|
this.lastActivityAt = Date.now();
|
|
98
148
|
void this.flush();
|
|
99
149
|
}
|
|
@@ -132,6 +182,7 @@ export class ProgressCard {
|
|
|
132
182
|
else {
|
|
133
183
|
this.state.question.answers[qIndex] = option;
|
|
134
184
|
}
|
|
185
|
+
this.qaButtonsDirty = true; // 下次实体 partial 附带按钮级选中态更新(不走全量替换,保 form 输入)
|
|
135
186
|
this.lastActivityAt = Date.now();
|
|
136
187
|
void this.flush();
|
|
137
188
|
}
|
|
@@ -185,15 +236,39 @@ export class ProgressCard {
|
|
|
185
236
|
* 绝不向上抛:调用方多为 void 调用,未处理 rejection 会拖垮整个 bridge 进程。
|
|
186
237
|
*/
|
|
187
238
|
async sinkToBottom() {
|
|
188
|
-
if (this.done
|
|
239
|
+
if (this.done) {
|
|
240
|
+
this.deferSink = false;
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (!this.messageId)
|
|
189
244
|
return;
|
|
245
|
+
// 挂起输入期间沉底会删卡重发(输入态归零,用户打的意见/自定义答案被清掉)——
|
|
246
|
+
// 记录请求延迟到挂起解除(flush 落地后检查补执行)
|
|
247
|
+
if (this.hasInputPending()) {
|
|
248
|
+
this.deferSink = true;
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
190
251
|
const old = this.messageId;
|
|
252
|
+
const oldCardId = this.cardId;
|
|
191
253
|
this.messageId = undefined; // 期间 flush 自动跳过,避免 PATCH 打到已删除的旧卡
|
|
254
|
+
this.cardId = undefined;
|
|
192
255
|
if (this.sender.deleteCard)
|
|
193
256
|
await this.sender.deleteCard(old).catch(() => { });
|
|
194
257
|
for (let attempt = 0; attempt < 2; attempt++) {
|
|
195
258
|
try {
|
|
196
|
-
|
|
259
|
+
const fresh = buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default');
|
|
260
|
+
// 沉底重发沿用当前模式:原先是实体模式则新建实体(旧实体已随消息撤回弃用)
|
|
261
|
+
if (this.sender.sendCardEntity && oldCardId) {
|
|
262
|
+
const { messageId, cardId } = await this.sender.sendCardEntity(fresh);
|
|
263
|
+
this.messageId = messageId;
|
|
264
|
+
this.cardId = cardId;
|
|
265
|
+
this.seq = 0; // sequence 按实体计数:新实体从 1 重新递增
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
this.messageId = await this.sender.sendCard(fresh);
|
|
269
|
+
}
|
|
270
|
+
this.lastStructure = this.structureKey();
|
|
271
|
+
this.qaButtonsDirty = false; // 重发卡片已含最新选中态
|
|
197
272
|
void this.flush();
|
|
198
273
|
return;
|
|
199
274
|
}
|
|
@@ -209,6 +284,12 @@ export class ProgressCard {
|
|
|
209
284
|
* 串行化 flush:所有更新走同一条 promise 链按发起顺序落地。
|
|
210
285
|
* - in-flight 中再来请求 → 标记 dirty,本轮落地后自动补刷一次(带上最新 state);
|
|
211
286
|
* - finish 的终态 flush 也入链,天然排在先前挂起的更新之后。
|
|
287
|
+
* 实体模式下按结构签名分流:结构未变 → 局部更新(只改 main/timer 两个 markdown 组件);
|
|
288
|
+
* 结构变化(交互区增删、终态)→ 全量替换实体。两种模式自 0.20.1 起对称实现「挂起输入
|
|
289
|
+
* 冻结」:plan/qa 挂起期间(hasInputPending)跳过维持性刷新——真机实测实体局部更新与
|
|
290
|
+
* 整卡 PATCH 落地都会重置 form 内未提交输入,挂起期间任何更新都清掉用户正在打的字;
|
|
291
|
+
* 计时行随挂起上屏显示「⏸ 计时已暂停」。唯一例外:qa 选中态脏标记放行一次按钮级
|
|
292
|
+
* partial(仅 qa_opt_*,用户刚点选项的即时反馈),失败恢复脏标记重试。
|
|
212
293
|
*/
|
|
213
294
|
flush() {
|
|
214
295
|
if (!this.messageId)
|
|
@@ -225,19 +306,148 @@ export class ProgressCard {
|
|
|
225
306
|
this.state.textTail += this.buffer;
|
|
226
307
|
this.buffer = '';
|
|
227
308
|
}
|
|
309
|
+
const expectedSeq = this.seq + 1; // 仅期望值,await 成功才提交推进
|
|
310
|
+
const timeoutMs = this.opts.updateTimeoutMs ?? UPDATE_TIMEOUT_MS;
|
|
311
|
+
// 本轮是否携带 qa 按钮级更新:发送前快照并清零(先清后发)——await 期间新一轮
|
|
312
|
+
// 选项点击会重新置位,经 dirty 补刷/下轮自动补发;失败恢复见 catch。旧版在成功后
|
|
313
|
+
// 才清标记,await 期间的第二次点击会丢其 ✓ 高亮(0.20.0 既有竞态,0.20.1 修复)
|
|
314
|
+
let withQaButtons = false;
|
|
228
315
|
try {
|
|
229
|
-
|
|
316
|
+
if (this.cardId && this.sender.partialUpdateCard && this.sender.replaceCard) {
|
|
317
|
+
const structure = this.structureKey();
|
|
318
|
+
if (structure === this.lastStructure) {
|
|
319
|
+
// 0.20.1 实体模式挂起冻结(与降级分支对称):真机实测 cardkit batch_update
|
|
320
|
+
// 落地同样会重置 form 内未提交输入(官方错误码 200810 亦表明交互期间流式
|
|
321
|
+
// 更新受限)——挂起期间跳过维持性 partial,计时/状态停更可接受(任务在等
|
|
322
|
+
// 用户,计时行随挂起上屏显示「⏸ 计时已暂停」)。例外:qa 选中态脏标记
|
|
323
|
+
// (用户刚点选项按钮的即时反馈,此刻输入框大概率未打字)放行一次按钮级
|
|
324
|
+
// partial——只发 qa_opt_*,不含 main/timer 替换(最小触碰)
|
|
325
|
+
if (this.hasInputPending() && !this.qaButtonsDirty)
|
|
326
|
+
break;
|
|
327
|
+
withQaButtons = this.qaButtonsDirty;
|
|
328
|
+
this.qaButtonsDirty = false; // 先清后发:失败恢复见 catch
|
|
329
|
+
const actions = this.hasInputPending()
|
|
330
|
+
? buildQaButtonActions(this.state)
|
|
331
|
+
: buildPartialUpdateActions(this.state, withQaButtons);
|
|
332
|
+
// 挂起中无 qa 按钮可发(question 刚被清等边界):视同冻结跳过;脏标记不恢复
|
|
333
|
+
// (空批次重试只会无限刷日志,选中态由下次全量渲染/点击补齐)
|
|
334
|
+
if (actions.length === 0)
|
|
335
|
+
break;
|
|
336
|
+
await withTimeout(this.sender.partialUpdateCard(this.cardId, expectedSeq, actions), timeoutMs);
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
// 结构变化:全量替换实体(form 输入会重置,但这些时刻用户尚未输入或已提交;
|
|
340
|
+
// 全量渲染已含最新选中态)。replace 前同样先清 qa 脏标记(先清后发):await
|
|
341
|
+
// 期间新点击重新置位的 dirty 由下一轮 partial(qa 例外通道)自动补发
|
|
342
|
+
withQaButtons = this.qaButtonsDirty;
|
|
343
|
+
this.qaButtonsDirty = false;
|
|
344
|
+
await withTimeout(this.sender.replaceCard(this.cardId, expectedSeq, buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default')), timeoutMs);
|
|
345
|
+
this.lastStructure = structure;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
// 降级模式挂起冻结(0.20.0):im.message.patch 整卡 PATCH 会重置卡片全部客户端
|
|
350
|
+
// 输入态——plan/qa 挂起期间 1.5s 心跳会把用户正在输入的意见/自定义答案瞬间清掉。
|
|
351
|
+
// 仅冻结「结构不变」的维持性刷新;挂起区出现/消失(结构变化)必须放行——
|
|
352
|
+
// 否则确认按钮根本不上屏。计时/状态行在挂起期间停更可接受(任务实际在等用户)
|
|
353
|
+
const structure = this.structureKey();
|
|
354
|
+
if (this.hasInputPending() && structure === this.lastStructure)
|
|
355
|
+
break;
|
|
356
|
+
await withTimeout(this.sender.updateCard(this.messageId, buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default')), timeoutMs);
|
|
357
|
+
this.lastStructure = structure;
|
|
358
|
+
}
|
|
359
|
+
this.seq = expectedSeq; // 仅成功后提交推进
|
|
360
|
+
this.consecutiveFailures = 0; // 成功即清零连续失败计数
|
|
230
361
|
}
|
|
231
|
-
catch {
|
|
232
|
-
//
|
|
362
|
+
catch (e) {
|
|
363
|
+
// 本轮携带 qa 按钮更新但发送失败:恢复脏标记,下轮重试补发选中态(先清后发的恢复路径)
|
|
364
|
+
if (withQaButtons)
|
|
365
|
+
this.qaButtonsDirty = true;
|
|
366
|
+
// cardkit sequence OCC 失败恢复:
|
|
367
|
+
// - 300317(本地 seq 与服务端错位,典型成因:超时请求实际已在服务端落地)或连续失败达到
|
|
368
|
+
// 阈值:sequence 无法对齐服务端真实值(飞书不提供读取口;实测跳 Date.now() 兜底被
|
|
369
|
+
// 9499 拒绝——sequence 只接受从 1 递增的小整数),继续同 seq 重试只会
|
|
370
|
+
// 永久失败死循环。放弃当前实体恢复:
|
|
371
|
+
// 非 done:沉底式重建(循环外 deferSink 执行点 → sinkToBottom:删旧卡→新实体,seq 从 1 干净开始);
|
|
372
|
+
// done(sinkToBottom 不处理终态):降级整卡 PATCH(同一 messageId,无需 sequence;
|
|
373
|
+
// 终态无交互输入,重置客户端输入无副作用),尽力而为失败静默
|
|
374
|
+
// - 偶发错误(限流/200810 交互进行中/网络抖动):服务端没接受本次 seq,seq 不推进,
|
|
375
|
+
// 下轮重试用同一 expectedSeq,由连续失败计数兜底
|
|
376
|
+
// 错误码可能在 axios 的 response.data 里(HTTP 400 时 message 只有 status code),一并带出供定位
|
|
377
|
+
const code = extractFeishuErrorCode(e);
|
|
378
|
+
const detail = feishuErrorBody(e);
|
|
379
|
+
const giveUp = code === '300317' || ++this.consecutiveFailures >= 5;
|
|
380
|
+
if (giveUp) {
|
|
381
|
+
this.consecutiveFailures = 0;
|
|
382
|
+
console.warn(`[进度卡] 更新持续失败,放弃当前卡片实体${code === '300317' ? '(300317 sequence 错位)' : '(连续 5 次)'},沉底式重建:`, e instanceof Error ? e.message : e, detail ?? '');
|
|
383
|
+
if (this.done) {
|
|
384
|
+
// 终态兜底:整卡 PATCH 不依赖 sequence;失败静默(终态尽力而为,不再重试)
|
|
385
|
+
try {
|
|
386
|
+
await withTimeout(this.sender.updateCard(this.messageId, buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default')), timeoutMs);
|
|
387
|
+
this.lastStructure = this.structureKey();
|
|
388
|
+
}
|
|
389
|
+
catch { /* 尽力而为 */ }
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
this.deferSink = true; // 循环外执行点 → sinkToBottom(自带挂起输入延迟逻辑)
|
|
393
|
+
break; // 错位 seq 继续重试无意义,退出本轮循环(定时器每秒仍会触发新 flush,无丢失)
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
console.warn('[进度卡] 更新失败(seq 未推进,下次用相同 expectedSeq 重试):', e instanceof Error ? e.message : e, detail ?? '');
|
|
398
|
+
}
|
|
233
399
|
}
|
|
234
400
|
if (!this.dirty)
|
|
235
401
|
break; // 落地期间无新请求,收工
|
|
236
402
|
}
|
|
403
|
+
// 沉底延迟触发:挂起期间被暂存的 sink 请求,在挂起解除(plan/question 已清)后补执行
|
|
404
|
+
if (this.deferSink && !this.hasInputPending()) {
|
|
405
|
+
this.deferSink = false;
|
|
406
|
+
void this.sinkToBottom();
|
|
407
|
+
}
|
|
237
408
|
})().finally(() => {
|
|
238
409
|
this.flushing = false;
|
|
239
410
|
});
|
|
240
411
|
return this.flushChain;
|
|
241
412
|
}
|
|
413
|
+
/** 是否有等待用户输入的挂起区(plan 意见框 / qa 自定义输入):降级模式冻结与沉底延迟的判定依据 */
|
|
414
|
+
hasInputPending() {
|
|
415
|
+
return !!(this.state.plan || this.state.question);
|
|
416
|
+
}
|
|
417
|
+
/** 结构签名:交互区存在性 + 终态——任一变化都需要全量重渲染才能上屏。
|
|
418
|
+
* 0.20.0 起不含 qa 选中态:选中态变化只走按钮 element_id 级局部更新,全量替换会
|
|
419
|
+
* 清空 form 内未提交的自定义输入(用户点选项时输入框里可能已打了字) */
|
|
420
|
+
structureKey() {
|
|
421
|
+
const s = this.state;
|
|
422
|
+
return JSON.stringify([!!s.confirm, !!s.plan, !!s.question, !!s.done]);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* 飞书错误响应体原文(截断防刷屏)。axios 把 HTTP 400 的业务错误码藏在 e.response.data
|
|
427
|
+
* (300317/99992402 等),e.message 只有 "Request failed with status code 400"——
|
|
428
|
+
* 不提取响应体的话日志无从定位拒绝原因(本次 card is required 事故即如此)。
|
|
429
|
+
*
|
|
430
|
+
* 导出供单元测试使用;不在生产逻辑外暴露。
|
|
431
|
+
*/
|
|
432
|
+
export function feishuErrorBody(e) {
|
|
433
|
+
const data = e?.response?.data;
|
|
434
|
+
if (data === undefined || data === null)
|
|
435
|
+
return undefined;
|
|
436
|
+
const s = typeof data === 'string' ? data : JSON.stringify(data);
|
|
437
|
+
return s.length > 300 ? `${s.slice(0, 300)}…` : s;
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* 从 gateway 抛出的 Error 中提取飞书 cardkit 错误码。
|
|
441
|
+
* 优先读 axios 响应体(HTTP 400 场景),回落 message 正则容错匹配——
|
|
442
|
+
* gateway 业务级错误信息形如 `卡片局部更新失败: {"code":300317,"msg":"..."}`。
|
|
443
|
+
* 这里用正则容错匹配 — 不引入新依赖,只对错误信息做最小解析。
|
|
444
|
+
*
|
|
445
|
+
* 导出供单元测试使用;不在生产逻辑外暴露。
|
|
446
|
+
*/
|
|
447
|
+
export function extractFeishuErrorCode(e) {
|
|
448
|
+
if (!(e instanceof Error))
|
|
449
|
+
return undefined;
|
|
450
|
+
const m = /"code"\s*:\s*(\d+)/.exec(feishuErrorBody(e) ?? e.message);
|
|
451
|
+
return m?.[1];
|
|
242
452
|
}
|
|
243
453
|
//# sourceMappingURL=progress-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-card.js","sourceRoot":"","sources":["../../src/gateway/progress-card.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"progress-card.js","sourceRoot":"","sources":["../../src/gateway/progress-card.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,15 @@ export interface BridgeDeps {
|
|
|
15
15
|
sendImageTo?(chatId: string, p: string, caption?: string): Promise<string>;
|
|
16
16
|
/** 撤回消息(进度卡沉底);可选——缺省时沉底退化为仅重刷 */
|
|
17
17
|
deleteCard?(id: string): Promise<void>;
|
|
18
|
+
/** 卡片实体模式(cardkit):进度卡专用,支持局部更新保 form 输入;可选——缺省降级整卡 PATCH */
|
|
19
|
+
sendCardEntityTo?(chatId: string, card: unknown): Promise<{
|
|
20
|
+
messageId: string;
|
|
21
|
+
cardId: string;
|
|
22
|
+
}>;
|
|
23
|
+
/** 卡片实体局部更新(batch_update);可选 */
|
|
24
|
+
partialUpdateCardElements?(cardId: string, sequence: number, actions: unknown[]): Promise<void>;
|
|
25
|
+
/** 卡片实体全量替换;可选 */
|
|
26
|
+
replaceCardEntity?(cardId: string, sequence: number, card: unknown): Promise<void>;
|
|
18
27
|
};
|
|
19
28
|
access: AccessControl;
|
|
20
29
|
store: SessionStore;
|