@jesonliu/lark-claudecode-bridge 0.18.0 → 0.19.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.
- package/README.md +5 -3
- package/assets/web/css/main.css +2 -0
- package/assets/web/js/main.js +3 -1
- package/assets/web/js/pages/mcp.js +229 -0
- package/assets/web/js/pages/skills.js +169 -0
- package/assets/web/js/pages/workspaces.js +23 -2
- package/dist/bin/lcb.js +5 -0
- package/dist/bin/lcb.js.map +1 -1
- package/dist/config.js +33 -7
- package/dist/config.js.map +1 -1
- package/dist/executor/notify-server.d.ts +13 -0
- package/dist/executor/notify-server.js +60 -4
- package/dist/executor/notify-server.js.map +1 -1
- package/dist/executor/plugin-discovery.d.ts +6 -0
- package/dist/executor/plugin-discovery.js +14 -0
- package/dist/executor/plugin-discovery.js.map +1 -1
- package/dist/gateway/card-builder.d.ts +24 -26
- package/dist/gateway/card-builder.js +79 -109
- package/dist/gateway/card-builder.js.map +1 -1
- package/dist/gateway/feishu-gateway.d.ts +10 -0
- package/dist/gateway/feishu-gateway.js +48 -0
- package/dist/gateway/feishu-gateway.js.map +1 -1
- package/dist/gateway/progress-card.d.ts +26 -0
- package/dist/gateway/progress-card.js +68 -4
- package/dist/gateway/progress-card.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +174 -71
- package/dist/index.js.map +1 -1
- package/dist/notify-sop.d.ts +1 -0
- package/dist/notify-sop.js +30 -0
- package/dist/notify-sop.js.map +1 -0
- package/dist/types.d.ts +14 -2
- package/dist/util/log-tee.d.ts +4 -0
- package/dist/util/log-tee.js +99 -0
- package/dist/util/log-tee.js.map +1 -0
- package/dist/util/runtime-dirs.d.ts +4 -0
- package/dist/util/runtime-dirs.js +27 -0
- package/dist/util/runtime-dirs.js.map +1 -0
- package/dist/web/lifecycle.d.ts +4 -1
- package/dist/web/lifecycle.js +11 -25
- package/dist/web/lifecycle.js.map +1 -1
- package/dist/web/server.js +311 -11
- package/dist/web/server.js.map +1 -1
- package/dist/web/skills-mcp-api.d.ts +113 -0
- package/dist/web/skills-mcp-api.js +312 -0
- package/dist/web/skills-mcp-api.js.map +1 -0
- package/package.json +3 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { chunkText } from '../util/chunk-text.js';
|
|
2
1
|
/** 子代理清单最多渲染条数(防爆卡片;超出折叠为「…等共 N 个」) */
|
|
3
2
|
const AGENT_LIST_MAX = 5;
|
|
4
|
-
function card(elements) {
|
|
5
|
-
return { schema: '2.0', config: { update_multi: true }, body: { elements } };
|
|
3
|
+
function card(elements, widthMode = 'default') {
|
|
4
|
+
return { schema: '2.0', config: { update_multi: true, ...(widthMode === 'fill' ? { width_mode: 'fill' } : {}) }, body: { elements } };
|
|
6
5
|
}
|
|
7
6
|
function md(content) {
|
|
8
7
|
return { tag: 'markdown', content };
|
|
@@ -10,8 +9,11 @@ function md(content) {
|
|
|
10
9
|
export function buildTextCard(markdown) {
|
|
11
10
|
return card([md(markdown)]);
|
|
12
11
|
}
|
|
13
|
-
/**
|
|
14
|
-
|
|
12
|
+
/** 进度卡终态结果尾部的字符上限(防爆卡片)。运行中不展示过程文本(产品决策:主卡只留
|
|
13
|
+
* 关键信息——状态/工具/子代理/确认区/计时;思考内容与过程文本一律不进卡),仅任务收尾
|
|
14
|
+
* 露出结果尾部。index.ts 以同一常量判断「短回复是否需要独立结果消息」,两处保持同值,
|
|
15
|
+
* 否则 400–1200 区间内容会卡片/消息两边都不展示 */
|
|
16
|
+
export const PROGRESS_TAIL_CHARS = 400;
|
|
15
17
|
/** 图片卡片:caption(可选)显示在图片上方——逐张发图时带编号说明用 */
|
|
16
18
|
export function buildImageCard(caption, imgKey) {
|
|
17
19
|
const elements = [];
|
|
@@ -20,7 +22,7 @@ export function buildImageCard(caption, imgKey) {
|
|
|
20
22
|
elements.push({ tag: 'img', img_key: imgKey, alt: { tag: 'plain_text', content: caption ?? '图片' } });
|
|
21
23
|
return card(elements);
|
|
22
24
|
}
|
|
23
|
-
export function buildProgressCard(state) {
|
|
25
|
+
export function buildProgressCard(state, widthMode = 'default') {
|
|
24
26
|
const elapsed = Math.max(0, Math.floor((Date.now() - state.startedAt) / 1000));
|
|
25
27
|
const duration = `${Math.floor(elapsed / 60)} 分 ${elapsed % 60} 秒`;
|
|
26
28
|
const lines = [`**${state.title}**`, ``, state.status, ``];
|
|
@@ -50,8 +52,25 @@ export function buildProgressCard(state) {
|
|
|
50
52
|
// 大量重叠(尤其 plan mode 下计划文本同时出现在正文与计划卡),收敛避免重复刷屏
|
|
51
53
|
lines.push('---', `⏸ 正文已收起,等待下方确认后继续…`);
|
|
52
54
|
}
|
|
53
|
-
else if (state.
|
|
54
|
-
|
|
55
|
+
else if (state.question) {
|
|
56
|
+
// 内嵌提问区同样收敛正文:选项已承载信息,正文尾部继续刷只会冲淡提问区
|
|
57
|
+
lines.push('---', `⏸ 正文已收起,等待下方问题作答后继续…`);
|
|
58
|
+
}
|
|
59
|
+
else if (state.plan) {
|
|
60
|
+
// 内嵌计划区同理收敛正文
|
|
61
|
+
lines.push('---', `⏸ 正文已收起,等待下方计划确认后继续…`);
|
|
62
|
+
}
|
|
63
|
+
else if (state.done && state.textTail) {
|
|
64
|
+
// 终态才展示结果尾部(产品决策:运行中过程文本不进卡片,主卡只留关键信息;思考内容
|
|
65
|
+
// 也不采集不展示)。textTail 仍保留全部内容(appendText 不断积累),超长部分由 index.ts
|
|
66
|
+
// 的独立结果消息承载(阈值与本常量同值),渲染层截断不丢内容
|
|
67
|
+
if (state.textTail.length > PROGRESS_TAIL_CHARS) {
|
|
68
|
+
const folded = state.textTail.length - PROGRESS_TAIL_CHARS;
|
|
69
|
+
lines.push('---', `**📝 结果**`, `<font color='grey'>⋯ 已折叠前面 ${folded} 字符</font>`, state.textTail.slice(-PROGRESS_TAIL_CHARS));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
lines.push('---', `**📝 结果**`, state.textTail);
|
|
73
|
+
}
|
|
55
74
|
}
|
|
56
75
|
const elements = [md(lines.join('\n'))];
|
|
57
76
|
// 工具确认区:嵌入进度卡(按钮在计时行上方)——不再单独发确认卡(旧版独立确认卡与
|
|
@@ -77,6 +96,55 @@ export function buildProgressCard(state) {
|
|
|
77
96
|
})),
|
|
78
97
|
});
|
|
79
98
|
}
|
|
99
|
+
// 内嵌计划确认区(#3+#6):方案正文不进卡片(产品决策:主卡不铺长内容),仅一行就绪提示 +
|
|
100
|
+
// 「查看完整方案」按钮(send_file 发送落盘的原 md)+ 表单(批准/放弃/按意见修改 + 意见输入框)。
|
|
101
|
+
// 用户动线:点按钮看方案文件 → 回卡片选操作
|
|
102
|
+
if (state.plan) {
|
|
103
|
+
elements.push(md(`**📋 执行计划已就绪**(共 ${state.plan.plan.length} 字)· 工作区 \`${state.plan.workspaceName}\`\n\n请先点击下方「📂 查看完整方案」阅读原文,再选择操作`));
|
|
104
|
+
elements.push({
|
|
105
|
+
tag: 'button',
|
|
106
|
+
text: { tag: 'plain_text', content: '📂 查看完整方案' },
|
|
107
|
+
type: 'default',
|
|
108
|
+
behaviors: [{ type: 'callback', value: { requestId: state.plan.requestId, decision: 'plan-view-file' } }],
|
|
109
|
+
});
|
|
110
|
+
elements.push({
|
|
111
|
+
tag: 'form',
|
|
112
|
+
name: 'plan_form',
|
|
113
|
+
elements: [
|
|
114
|
+
{
|
|
115
|
+
tag: 'column_set',
|
|
116
|
+
flex_mode: 'flow',
|
|
117
|
+
columns: [
|
|
118
|
+
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('plan-approve', '✅ 批准执行', 'primary', state.plan.requestId, 'plan_btn_approve')] },
|
|
119
|
+
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('plan-reject', '❌ 放弃计划', 'danger', state.plan.requestId, 'plan_btn_reject')] },
|
|
120
|
+
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('plan-revise', '📝 按意见修改', 'default', state.plan.requestId, 'plan_btn_revise')] },
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
{ tag: 'input', name: 'feedback', width: 'fill', placeholder: { tag: 'plain_text', content: '修改意见(点「按意见修改」时随意见重新出计划)' } },
|
|
124
|
+
],
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
// 内嵌提问确认区(#3):选项按钮全宽单行 + 提交按钮;qa-pick PATCH 选中态(✓ + primary),
|
|
128
|
+
// qa-submit 一次性 resolve。点击是 callback(非 form 提交),所以可与 plan/confirm 共存区下同列
|
|
129
|
+
if (state.question) {
|
|
130
|
+
const q = state.question;
|
|
131
|
+
elements.push(md(`**❓ Claude 需要你确认** · 工作区 \`${q.workspaceName}\``));
|
|
132
|
+
q.questions.forEach((qq, qIndex) => {
|
|
133
|
+
const sel = q.answers[qIndex];
|
|
134
|
+
const picked = Array.isArray(sel) ? sel : sel !== undefined ? [sel] : [];
|
|
135
|
+
elements.push(md(`**${qIndex + 1}. ${qq.question}**${qq.multiSelect ? '(可多选)' : ''}`));
|
|
136
|
+
for (const o of qq.options) {
|
|
137
|
+
elements.push(embeddedQaOptionButton(q.requestId, qIndex, o.label, picked.includes(o.label)));
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
elements.push({
|
|
141
|
+
tag: 'button',
|
|
142
|
+
text: { tag: 'plain_text', content: '✅ 提交答案' },
|
|
143
|
+
type: 'primary',
|
|
144
|
+
margin: '8px 0px 0px 0px',
|
|
145
|
+
behaviors: [{ type: 'callback', value: { requestId: q.requestId, decision: 'qa-submit' } }],
|
|
146
|
+
});
|
|
147
|
+
}
|
|
80
148
|
// 计时行上方加分隔横线,与正文/确认区做视觉划分
|
|
81
149
|
elements.push({ tag: 'hr' });
|
|
82
150
|
// 终态改为「总耗时」+ 完成时刻:运行中的「已运行」在停止刷新后读起来仍像在计时,任务
|
|
@@ -84,7 +152,7 @@ export function buildProgressCard(state) {
|
|
|
84
152
|
elements.push(md(state.done
|
|
85
153
|
? `<font color='grey'>⏱ 总耗时 ${duration} · 已结束于 ${new Date().toLocaleTimeString('zh-CN', { hour12: false })}</font>`
|
|
86
154
|
: `<font color='grey'>⏱ 已运行 ${duration}</font>`));
|
|
87
|
-
return card(elements);
|
|
155
|
+
return card(elements, widthMode);
|
|
88
156
|
}
|
|
89
157
|
export const DECISION_TEXT = {
|
|
90
158
|
allow: '✅ 已允许',
|
|
@@ -111,112 +179,14 @@ function planButton(decision, label, type, requestId, name) {
|
|
|
111
179
|
: {}),
|
|
112
180
|
};
|
|
113
181
|
}
|
|
114
|
-
/**
|
|
115
|
-
|
|
116
|
-
* 空白 plan 退化为单卡占位(模型未提交实质计划时用户只能放弃)。
|
|
117
|
-
*
|
|
118
|
-
* 首卡的按钮 + 意见输入框必须包在 tag:'form' 容器内、按钮带 form_action_type:'submit'——
|
|
119
|
-
* 飞书卡片 2.0 中 input 值只有该结构下点击按钮才随 action.form_value 回传,
|
|
120
|
-
* 平铺结构点击任何按钮 form_value 恒空(0.17.0 「按意见修改取不到意见」根因)。
|
|
121
|
-
* 三个按钮都是 submit:批准/放弃忽略意见字段,input 不设 required。
|
|
122
|
-
*/
|
|
123
|
-
export function buildPlanCards(req) {
|
|
124
|
-
const chunks = chunkText(req.plan, 2800);
|
|
125
|
-
if (chunks.length === 0)
|
|
126
|
-
chunks.push('(模型未提交计划正文)');
|
|
127
|
-
return chunks.map((chunk, i) => {
|
|
128
|
-
const header = chunks.length > 1
|
|
129
|
-
? `**📋 Claude 提交执行计划(${i + 1}/${chunks.length})**\n\n工作区: \`${req.workspaceName}\`\n`
|
|
130
|
-
: `**📋 Claude 提交执行计划**\n\n工作区: \`${req.workspaceName}\`\n`;
|
|
131
|
-
if (i === 0) {
|
|
132
|
-
return card([
|
|
133
|
-
md(`${header}${chunk}`),
|
|
134
|
-
{
|
|
135
|
-
tag: 'form',
|
|
136
|
-
name: 'plan_form',
|
|
137
|
-
elements: [
|
|
138
|
-
{
|
|
139
|
-
// 卡片 V2 已废弃 tag:'action',与确认卡同款 column_set 分栏按钮
|
|
140
|
-
tag: 'column_set',
|
|
141
|
-
flex_mode: 'flow',
|
|
142
|
-
columns: [
|
|
143
|
-
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('plan-approve', '✅ 批准执行', 'primary', req.requestId, 'plan_btn_approve')] },
|
|
144
|
-
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('plan-reject', '❌ 放弃计划', 'danger', req.requestId, 'plan_btn_reject')] },
|
|
145
|
-
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('plan-revise', '📝 按意见修改', 'default', req.requestId, 'plan_btn_revise')] },
|
|
146
|
-
],
|
|
147
|
-
},
|
|
148
|
-
// 意见输入框在按钮行下方:先决策后补意见的视觉动线(name=feedback 随 form_value 回传)
|
|
149
|
-
{
|
|
150
|
-
tag: 'input',
|
|
151
|
-
name: 'feedback',
|
|
152
|
-
width: 'fill',
|
|
153
|
-
placeholder: { tag: 'plain_text', content: '修改意见(点「按意见修改」时随意见重新出计划)' },
|
|
154
|
-
},
|
|
155
|
-
],
|
|
156
|
-
},
|
|
157
|
-
]);
|
|
158
|
-
}
|
|
159
|
-
return card([md(`${header}${chunk}`)]);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
/** 计划决策结果卡(决策后由回调响应内联 + 兜底 PATCH 首卡) */
|
|
163
|
-
export function buildPlanResultCard(req, decision, byName, feedback) {
|
|
164
|
-
const text = decision === 'plan-approve'
|
|
165
|
-
? `✅ 计划已批准,开始执行(由 ${byName} 操作)`
|
|
166
|
-
: decision === 'plan-revise'
|
|
167
|
-
? `📝 已提交修改意见,Claude 将修订计划后重新提交(由 ${byName} 操作):\n${(feedback ?? '').slice(0, 500)}`
|
|
168
|
-
: `❌ 计划已放弃(由 ${byName} 操作)`;
|
|
169
|
-
return card([md(`**📋 Claude 提交执行计划**\n\n工作区: \`${req.workspaceName}\`\n\n${text}`)]);
|
|
170
|
-
}
|
|
171
|
-
/** 计划确认超时卡(此后迟到点击不再改写此卡片) */
|
|
172
|
-
export function buildExpiredPlanCard(req, timeoutMs) {
|
|
173
|
-
return card([md(`**📋 Claude 提交执行计划**\n\n工作区: \`${req.workspaceName}\`\n\n⏰ 已超时自动放弃(${Math.round(timeoutMs / 60000)} 分钟未确认)`)]);
|
|
174
|
-
}
|
|
175
|
-
function qaOptionButton(reqId, qIndex, label, selected) {
|
|
182
|
+
/** 内嵌提问按钮(qa-pick callback):与独立卡片同款「选中 ✓ + primary」视觉,qa-pick 不消耗挂起项,仅 PATCH 选中态 */
|
|
183
|
+
function embeddedQaOptionButton(reqId, qIndex, label, selected) {
|
|
176
184
|
return {
|
|
177
185
|
tag: 'button',
|
|
178
|
-
// 全宽单行:选项文字完整可见(横排 flow 分栏长文本会被 ellipsis 截断,看不全无法决策)
|
|
179
186
|
width: 'fill',
|
|
180
187
|
text: { tag: 'plain_text', content: selected ? `✓ ${label}` : label },
|
|
181
188
|
type: selected ? 'primary' : 'default',
|
|
182
189
|
behaviors: [{ type: 'callback', value: { requestId: reqId, decision: 'qa-pick', qIndex, option: label } }],
|
|
183
190
|
};
|
|
184
191
|
}
|
|
185
|
-
/**
|
|
186
|
-
* 提问卡片:每个问题一节(问题文本 + 选项按钮,每选项独占一行全宽、选中态打 ✓),
|
|
187
|
-
* 底部「提交答案」按钮。选项点击仅更新选中态(PATCH 重渲染),全部问题有答案后提交才有效。
|
|
188
|
-
*/
|
|
189
|
-
export function buildQuestionCard(req, answers) {
|
|
190
|
-
const elements = [md(`**❓ Claude 需要你确认**\n\n工作区: \`${req.workspaceName}\``)];
|
|
191
|
-
req.questions.forEach((q, qIndex) => {
|
|
192
|
-
const sel = answers[qIndex];
|
|
193
|
-
const picked = Array.isArray(sel) ? sel : sel !== undefined ? [sel] : [];
|
|
194
|
-
elements.push(md(`**${qIndex + 1}. ${q.question}**${q.multiSelect ? '(可多选)' : ''}`));
|
|
195
|
-
// JSON 2.0 按钮可直接放 elements:逐个纵排替代旧 column_set flow 横排
|
|
196
|
-
for (const o of q.options) {
|
|
197
|
-
elements.push(qaOptionButton(req.requestId, qIndex, o.label, picked.includes(o.label)));
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
elements.push({
|
|
201
|
-
tag: 'button',
|
|
202
|
-
text: { tag: 'plain_text', content: '✅ 提交答案' },
|
|
203
|
-
type: 'primary',
|
|
204
|
-
margin: '8px 0px 0px 0px',
|
|
205
|
-
behaviors: [{ type: 'callback', value: { requestId: req.requestId, decision: 'qa-submit' } }],
|
|
206
|
-
});
|
|
207
|
-
return card(elements);
|
|
208
|
-
}
|
|
209
|
-
/** 提交后的结果卡(展示每问的最终答案) */
|
|
210
|
-
export function buildQuestionResultCard(req, answers, byName) {
|
|
211
|
-
const lines = req.questions.map((q, i) => {
|
|
212
|
-
const a = answers[i];
|
|
213
|
-
const ans = a === undefined ? '(未作答)' : Array.isArray(a) ? a.join('、') : a;
|
|
214
|
-
return `- ${q.question} → **${ans}**`;
|
|
215
|
-
});
|
|
216
|
-
return card([md(`**❓ Claude 需要你确认**\n\n工作区: \`${req.workspaceName}\`\n\n${lines.join('\n')}\n\n✅ 答案已提交(由 ${byName} 操作)`)]);
|
|
217
|
-
}
|
|
218
|
-
/** 提问超时卡(此后迟到点击不再改写此卡片) */
|
|
219
|
-
export function buildExpiredQuestionCard(req, timeoutMs) {
|
|
220
|
-
return card([md(`**❓ Claude 需要你确认**\n\n工作区: \`${req.workspaceName}\`\n\n⏰ 已超时自动跳过(${Math.round(timeoutMs / 60000)} 分钟未响应),Claude 将自行决策继续`)]);
|
|
221
|
-
}
|
|
222
192
|
//# sourceMappingURL=card-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-builder.js","sourceRoot":"","sources":["../../src/gateway/card-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"card-builder.js","sourceRoot":"","sources":["../../src/gateway/card-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,12 +102,16 @@ export interface FeishuSdk {
|
|
|
102
102
|
request(payload: {
|
|
103
103
|
method: string;
|
|
104
104
|
url: string;
|
|
105
|
+
params?: Record<string, unknown>;
|
|
105
106
|
}): Promise<{
|
|
106
107
|
code?: number;
|
|
107
108
|
msg?: string;
|
|
108
109
|
bot?: {
|
|
109
110
|
open_id?: string;
|
|
110
111
|
};
|
|
112
|
+
data?: {
|
|
113
|
+
items?: unknown[];
|
|
114
|
+
};
|
|
111
115
|
}>;
|
|
112
116
|
};
|
|
113
117
|
Domain: {
|
|
@@ -179,6 +183,12 @@ export declare class FeishuGateway {
|
|
|
179
183
|
* 单张失败仅 warn 记录、不阻塞其余图片与消息转发(im:resource 权限缺失等场景文字任务照常)。
|
|
180
184
|
*/
|
|
181
185
|
private downloadImages;
|
|
186
|
+
/**
|
|
187
|
+
* 拉取回复链上游消息文本(#5):用户回复某条消息时把上游最多 3 条消息文本一并拼进 prompt。
|
|
188
|
+
* SDK 1.73.0 未封装 im.message.get(只有 list/create/patch/delete),经 Client.request 调
|
|
189
|
+
* GET /open-apis/im/v1/messages/:message_id。失败仅 warn,不阻断主消息流(拉不到时降级为只发当前消息)
|
|
190
|
+
*/
|
|
191
|
+
private fetchUpstreamChain;
|
|
182
192
|
/** 建立 WS 长连接并注册事件分发(im.message.receive_v1 / card.action.trigger) */
|
|
183
193
|
start(handlers: GatewayHandlers): Promise<void>;
|
|
184
194
|
/** 优雅关闭长连接(SIGINT/SIGTERM 时逐个 app 调用);未 start 时为 no-op */
|
|
@@ -125,6 +125,7 @@ export function parseIncomingMessage(event, botOpenId, opts = {}) {
|
|
|
125
125
|
userId,
|
|
126
126
|
text: stripMention(text),
|
|
127
127
|
messageId: m.message_id,
|
|
128
|
+
...(m.parent_id ? { parentId: m.parent_id } : {}),
|
|
128
129
|
...(imageKeys.length > 0 ? { imageKeys } : {}),
|
|
129
130
|
};
|
|
130
131
|
}
|
|
@@ -264,6 +265,47 @@ export class FeishuGateway {
|
|
|
264
265
|
}
|
|
265
266
|
return { paths, failures };
|
|
266
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* 拉取回复链上游消息文本(#5):用户回复某条消息时把上游最多 3 条消息文本一并拼进 prompt。
|
|
270
|
+
* SDK 1.73.0 未封装 im.message.get(只有 list/create/patch/delete),经 Client.request 调
|
|
271
|
+
* GET /open-apis/im/v1/messages/:message_id。失败仅 warn,不阻断主消息流(拉不到时降级为只发当前消息)
|
|
272
|
+
*/
|
|
273
|
+
async fetchUpstreamChain(parentId, maxDepth = 3) {
|
|
274
|
+
const out = [];
|
|
275
|
+
const visited = new Set();
|
|
276
|
+
let cur = parentId;
|
|
277
|
+
for (let depth = 0; depth < maxDepth && cur && !visited.has(cur); depth++) {
|
|
278
|
+
visited.add(cur);
|
|
279
|
+
try {
|
|
280
|
+
const res = await this.client.request({
|
|
281
|
+
method: 'GET',
|
|
282
|
+
url: `/open-apis/im/v1/messages/${cur}`,
|
|
283
|
+
params: { user_id_type: 'open_id' },
|
|
284
|
+
});
|
|
285
|
+
const items = res.data?.items;
|
|
286
|
+
const msg = Array.isArray(items) && items.length > 0
|
|
287
|
+
? items[0]
|
|
288
|
+
: null;
|
|
289
|
+
if (!msg)
|
|
290
|
+
break;
|
|
291
|
+
let text = '';
|
|
292
|
+
if (msg.message_type === 'text') {
|
|
293
|
+
text = JSON.parse(msg.body?.content ?? '{}').text ?? '';
|
|
294
|
+
}
|
|
295
|
+
else if (msg.message_type === 'post') {
|
|
296
|
+
text = flattenPost(msg.body?.content ?? '{}')?.text ?? '';
|
|
297
|
+
}
|
|
298
|
+
if (text.trim())
|
|
299
|
+
out.push(`> [L${depth + 1}] ${text.trim()}`);
|
|
300
|
+
cur = msg.parent_id;
|
|
301
|
+
}
|
|
302
|
+
catch (e) {
|
|
303
|
+
this.log.warn('[回复链] 拉取上游消息失败', cur, e);
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return out;
|
|
308
|
+
}
|
|
267
309
|
/** 建立 WS 长连接并注册事件分发(im.message.receive_v1 / card.action.trigger) */
|
|
268
310
|
async start(handlers) {
|
|
269
311
|
const botOpenId = await this.fetchBotOpenId();
|
|
@@ -299,6 +341,12 @@ export class FeishuGateway {
|
|
|
299
341
|
}
|
|
300
342
|
parsed.text = hasText ? `${parsed.text}\n\n${notes.join('\n')}` : notes.join('\n');
|
|
301
343
|
}
|
|
344
|
+
// #5 回复链上游消息:把 parent_id 链路上最多 3 条消息文本拼到 prompt 头部
|
|
345
|
+
if (parsed.parentId) {
|
|
346
|
+
const upstream = await this.fetchUpstreamChain(parsed.parentId);
|
|
347
|
+
if (upstream.length > 0)
|
|
348
|
+
parsed.text = `${upstream.join('\n\n')}\n\n---\n\n${parsed.text}`;
|
|
349
|
+
}
|
|
302
350
|
await handlers.onMessage(parsed);
|
|
303
351
|
}
|
|
304
352
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu-gateway.js","sourceRoot":"","sources":["../../src/gateway/feishu-gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feishu-gateway.js","sourceRoot":"","sources":["../../src/gateway/feishu-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA0CpD,4CAA4C;AAC5C,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC;AAmBD;;;;GAIG;AACH,SAAS,WAAW,CAAC,UAAkB;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAA+C,CAAC;QAClF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,SAAS;YACnC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxD,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACvG,IAAI,IAAI,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS;oBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjF,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,SAAkB,EAAE,IAAI,GAAqC,EAAE;IAClH,IAAI,CAAC;QACH,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC7D,MAAM,GAAG,GAAG,KAA0D,CAAC;QACvE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5D,MAAM,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YAC9B,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAuB,CAAC,IAAI,IAAI,EAAE,CAAC;QACzE,CAAC;aAAM,IAAI,CAAC,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YACtC,MAAM,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAA4B,CAAC,SAAS,CAAC;YAChF,IAAI,GAAG;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK;gBAC1B,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE;gBAC7G,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxD,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,SAAS,EAAE,CAAC;gBACd,uDAAuD;gBACvD,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC;gBAChF,IAAI,CAAC,WAAW;oBAAE,OAAO,IAAI,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACnC,oCAAoC;gBACpC,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,8BAA8B;gBAC9B,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,eAAe,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpE,IAAI,CAAC,UAAU;oBAAE,OAAO,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QACnD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,OAAO;YACjB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YACnC,MAAM;YACN,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAeD,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,eAAe;IAChC,cAAc,EAAE,aAAa,EAAE,aAAa;IAC5C,SAAS,EAAE,WAAW;CACvB,CAAC,CAAC;AAEH,6DAA6D;AAC7D,SAAS,eAAe,CAAC,IAAa;IACpC,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,CAAC,GAAG,IAA4B,CAAC;QACvC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;QAC9B,kEAAkE;QAClE,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO;YAAE,OAAO,IAAI,CAAC;QACzI,0DAA0D;QAC1D,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3H,MAAM,QAAQ,GAAG,SAAS,IAAI,QAAQ,CAAC;QACvC,sDAAsD;QACtD,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,OAAO;YACL,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAwB;gBACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B;YACD,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO;YAC9B,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,eAAe,IAAI,EAAE;SACrE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,MAAM,CAAoC;IAC1C,GAAG,CAAY;IACf,GAAG,CAAkB;IACrB,EAAE,CAAuC;IACzC,GAAG,CAAwE;IAC3E,kBAAkB,CAAU;IACpC,8DAA8D;IACtD,QAAQ,CAAS;IACzB,oDAAoD;IACpD,mDAAmD;IAC3C,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,CAAU,QAAQ,GAAG,IAAI,CAAC;IAExC,YACE,GAAoB,EACpB,IAAI,GAQA,EAAE;QAEN,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAK,OAAgC,CAAC;QACzD,MAAM,GAAG,GAAG,YAAY,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI;YACrB,IAAI,EAAE,CAAC,GAAG,CAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClD,KAAK,EAAE,CAAC,GAAG,CAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrD,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QACrF,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACxF,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC;YACjC,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1H,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACrH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qDAAqD;IAC7C,QAAQ,CAAC,SAAiB;QAChC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACvD,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAClC,MAAM,CAAC,cAAc,CAAC,OAAgB;QAC5C,MAAM,EAAE,GAAG,MAAM,CAAE,OAAsD,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAC7D,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACtC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,GAAoB;QAC/C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,GAAG,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;oBACnD,IAAI,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE;oBAClD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;iBAC1B,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/G,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,QAAQ,GAAG,CAAC;QAC7D,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,GAAG,GAAuB,QAAQ,CAAC;QACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBACpC,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,6BAA6B,GAAG,EAAE;oBACvC,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE;iBACpC,CAAC,CAAC;gBACH,MAAM,KAAK,GAAI,GAAwC,CAAC,IAAI,EAAE,KAAK,CAAC;gBACpE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAClD,CAAC,CAAC,KAAK,CAAC,CAAC,CAA+E;oBACxF,CAAC,CAAC,IAAI,CAAC;gBACT,IAAI,CAAC,GAAG;oBAAE,MAAM;gBAChB,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;oBAChC,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAuB,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjF,CAAC;qBAAM,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;oBACvC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC5D,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9D,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxC,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,KAAK,CAAC,QAAyB;QACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;YAC3D,uBAAuB,EAAE,KAAK,EAAE,IAAW,EAAE,EAAE;gBAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBACtG,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;oBACnC,wCAAwC;oBACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;wBACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,MAAM,CAAC,QAAQ,CAAC,WAAW,yBAAyB,CAAC;6BAC9G,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;oBAClD,OAAO;gBACT,CAAC;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,wDAAwD;oBACxD,4CAA4C;oBAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;wBAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACrB,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;wBAClJ,CAAC;wBACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACxB,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,MAAM,YAAY,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;wBACzG,CAAC;wBACD,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrF,CAAC;oBACD,mDAAmD;oBACnD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;4BAAE,MAAM,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7F,CAAC;oBACD,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,oDAAoD;YACpD,kDAAkD;YAClD,8DAA8D;YAC9D,qBAAqB,EAAE,KAAK,EAAE,IAAW,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,OAAO,GAAG,IAAI,EAAE,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,0DAA0D;IAC1D,KAAK;QACH,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAa;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;YACtC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;SACrF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,QAAgB;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,IAAa;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAgB;QAChE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3C,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE;SACnE,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,EAAE,SAAS,CAAC;QAC/B,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,OAAO;gBAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9C,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;gBACtC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClG,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/E,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACtD,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE;aACnE,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,EAAE,EAAE,SAAS,CAAC;YAC/B,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9C,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;gBACtC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;aAClG,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1C,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE;aAC/F,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,EAAE,QAAQ,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9C,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;gBACtC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;aAC/F,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -21,8 +21,11 @@ export declare class ProgressCard {
|
|
|
21
21
|
constructor(sender: CardSender, title: string, opts?: {
|
|
22
22
|
flushIntervalMs?: number;
|
|
23
23
|
idleHeartbeatMs?: number;
|
|
24
|
+
cardWidthMode?: 'default' | 'fill';
|
|
24
25
|
});
|
|
25
26
|
start(): Promise<void>;
|
|
27
|
+
/** 过程文本累积(产品决策:运行中不在卡片渲染过程文本与思考内容,仅终态露出结果尾部——
|
|
28
|
+
* 见 card-builder buildProgressCard 的 done 分支;buffer 照常积累供终态使用,不丢内容) */
|
|
26
29
|
appendText(delta: string): void;
|
|
27
30
|
toolStart(name: string, summary: string): void;
|
|
28
31
|
toolResult(name: string, ok: boolean, note?: string): void;
|
|
@@ -33,6 +36,29 @@ export declare class ProgressCard {
|
|
|
33
36
|
* 清除后 flush 一次性带出。
|
|
34
37
|
*/
|
|
35
38
|
setConfirm(req: ConfirmationRequest | undefined): void;
|
|
39
|
+
/**
|
|
40
|
+
* 挂起/清除内嵌计划确认(#3+#6):plan 内容过长仅露 600 字预览,完整原文落盘到 planFilePath,
|
|
41
|
+
* 「查看完整方案」按钮 callback 触发 send_file 而非嵌入卡片。决策后 clearPlan() 收回区域
|
|
42
|
+
*/
|
|
43
|
+
setPlan(req: import('./card-builder.js').EmbeddedPlanState | undefined): void;
|
|
44
|
+
/**
|
|
45
|
+
* 挂起/清除内嵌提问确认(#3):每题选项全宽单行 + 提交按钮全部在主卡上,qa-pick PATCH 选中态。
|
|
46
|
+
* 决策后 clearQuestion() 收回区域
|
|
47
|
+
*/
|
|
48
|
+
setQuestion(req: import('./card-builder.js').EmbeddedQuestionState | undefined): void;
|
|
49
|
+
/** 当前某题的选中答案(wiring 的 qa-pick 回调同步给 qaPending 校验用;公开读,
|
|
50
|
+
* 替代旧版 wiring 直接访问私有 state 的 hack) */
|
|
51
|
+
getQuestionAnswer(qIndex: number): string | string[] | undefined;
|
|
52
|
+
/** 当前挂起的内嵌 plan / question requestId(wiring 诊断入口 _pendingAsk 用) */
|
|
53
|
+
pendingAsk(): {
|
|
54
|
+
planId?: string;
|
|
55
|
+
questionId?: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* qa-pick 选项点击:更新选中态并 flush(multiSelect 累加/移除,单选直接覆盖)。
|
|
59
|
+
* 异常状态(如 question 已被清空)静默忽略——迟到点击不报错
|
|
60
|
+
*/
|
|
61
|
+
updateQuestionAnswer(qIndex: number, option: string, multiSelect: boolean): void;
|
|
36
62
|
/** 子代理/后台任务启动:加入清单(同 id 重复启动幂等跳过) */
|
|
37
63
|
agentStart(agent: {
|
|
38
64
|
id: string;
|
|
@@ -22,7 +22,7 @@ export class ProgressCard {
|
|
|
22
22
|
this.state = { title, status: '🚀 已接收,启动中…', textTail: '', toolLine: '', startedAt: Date.now(), agents: [] };
|
|
23
23
|
}
|
|
24
24
|
async start() {
|
|
25
|
-
this.messageId = await this.sender.sendCard(buildProgressCard(this.state));
|
|
25
|
+
this.messageId = await this.sender.sendCard(buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default'));
|
|
26
26
|
const interval = this.opts.flushIntervalMs ?? 1500;
|
|
27
27
|
this.flushTimer = setInterval(() => void this.flush(), interval).unref();
|
|
28
28
|
this.heartbeatTimer = setInterval(() => {
|
|
@@ -32,6 +32,8 @@ export class ProgressCard {
|
|
|
32
32
|
}
|
|
33
33
|
}, 1000).unref();
|
|
34
34
|
}
|
|
35
|
+
/** 过程文本累积(产品决策:运行中不在卡片渲染过程文本与思考内容,仅终态露出结果尾部——
|
|
36
|
+
* 见 card-builder buildProgressCard 的 done 分支;buffer 照常积累供终态使用,不丢内容) */
|
|
35
37
|
appendText(delta) {
|
|
36
38
|
if (this.done)
|
|
37
39
|
return;
|
|
@@ -73,6 +75,66 @@ export class ProgressCard {
|
|
|
73
75
|
this.lastActivityAt = Date.now();
|
|
74
76
|
void this.flush();
|
|
75
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* 挂起/清除内嵌计划确认(#3+#6):plan 内容过长仅露 600 字预览,完整原文落盘到 planFilePath,
|
|
80
|
+
* 「查看完整方案」按钮 callback 触发 send_file 而非嵌入卡片。决策后 clearPlan() 收回区域
|
|
81
|
+
*/
|
|
82
|
+
setPlan(req) {
|
|
83
|
+
if (this.done)
|
|
84
|
+
return;
|
|
85
|
+
this.state.plan = req;
|
|
86
|
+
this.lastActivityAt = Date.now();
|
|
87
|
+
void this.flush();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 挂起/清除内嵌提问确认(#3):每题选项全宽单行 + 提交按钮全部在主卡上,qa-pick PATCH 选中态。
|
|
91
|
+
* 决策后 clearQuestion() 收回区域
|
|
92
|
+
*/
|
|
93
|
+
setQuestion(req) {
|
|
94
|
+
if (this.done)
|
|
95
|
+
return;
|
|
96
|
+
this.state.question = req;
|
|
97
|
+
this.lastActivityAt = Date.now();
|
|
98
|
+
void this.flush();
|
|
99
|
+
}
|
|
100
|
+
/** 当前某题的选中答案(wiring 的 qa-pick 回调同步给 qaPending 校验用;公开读,
|
|
101
|
+
* 替代旧版 wiring 直接访问私有 state 的 hack) */
|
|
102
|
+
getQuestionAnswer(qIndex) {
|
|
103
|
+
return this.state.question?.answers[qIndex];
|
|
104
|
+
}
|
|
105
|
+
/** 当前挂起的内嵌 plan / question requestId(wiring 诊断入口 _pendingAsk 用) */
|
|
106
|
+
pendingAsk() {
|
|
107
|
+
return {
|
|
108
|
+
planId: this.state.plan?.requestId,
|
|
109
|
+
questionId: this.state.question?.requestId,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* qa-pick 选项点击:更新选中态并 flush(multiSelect 累加/移除,单选直接覆盖)。
|
|
114
|
+
* 异常状态(如 question 已被清空)静默忽略——迟到点击不报错
|
|
115
|
+
*/
|
|
116
|
+
updateQuestionAnswer(qIndex, option, multiSelect) {
|
|
117
|
+
if (this.done || !this.state.question)
|
|
118
|
+
return;
|
|
119
|
+
const q = this.state.question.questions[qIndex];
|
|
120
|
+
if (!q)
|
|
121
|
+
return;
|
|
122
|
+
if (multiSelect) {
|
|
123
|
+
const cur = this.state.question.answers[qIndex];
|
|
124
|
+
const arr = Array.isArray(cur) ? [...cur] : cur !== undefined ? [cur] : [];
|
|
125
|
+
const i = arr.indexOf(option);
|
|
126
|
+
if (i >= 0 && arr.length > 1)
|
|
127
|
+
arr.splice(i, 1); // 至少保留一项:单选/全取消等于未答
|
|
128
|
+
else if (i < 0)
|
|
129
|
+
arr.push(option);
|
|
130
|
+
this.state.question.answers[qIndex] = arr;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.state.question.answers[qIndex] = option;
|
|
134
|
+
}
|
|
135
|
+
this.lastActivityAt = Date.now();
|
|
136
|
+
void this.flush();
|
|
137
|
+
}
|
|
76
138
|
/** 子代理/后台任务启动:加入清单(同 id 重复启动幂等跳过) */
|
|
77
139
|
agentStart(agent) {
|
|
78
140
|
if (this.done)
|
|
@@ -109,8 +171,10 @@ export class ProgressCard {
|
|
|
109
171
|
clearInterval(this.heartbeatTimer);
|
|
110
172
|
this.state.status = summary;
|
|
111
173
|
this.state.toolLine = '';
|
|
112
|
-
//
|
|
174
|
+
// 终态不再带交互区(决策未落的最极端兜底;正常路径 plan/question/confirm 先于 finish settle)
|
|
113
175
|
this.state.confirm = undefined;
|
|
176
|
+
this.state.plan = undefined;
|
|
177
|
+
this.state.question = undefined;
|
|
114
178
|
await this.flush(); // 经由同一串行链落地,保证是最后一张(终态不被旧 flush 覆盖)
|
|
115
179
|
}
|
|
116
180
|
/**
|
|
@@ -129,7 +193,7 @@ export class ProgressCard {
|
|
|
129
193
|
await this.sender.deleteCard(old).catch(() => { });
|
|
130
194
|
for (let attempt = 0; attempt < 2; attempt++) {
|
|
131
195
|
try {
|
|
132
|
-
this.messageId = await this.sender.sendCard(buildProgressCard(this.state));
|
|
196
|
+
this.messageId = await this.sender.sendCard(buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default'));
|
|
133
197
|
void this.flush();
|
|
134
198
|
return;
|
|
135
199
|
}
|
|
@@ -162,7 +226,7 @@ export class ProgressCard {
|
|
|
162
226
|
this.buffer = '';
|
|
163
227
|
}
|
|
164
228
|
try {
|
|
165
|
-
await this.sender.updateCard(this.messageId, buildProgressCard(this.state));
|
|
229
|
+
await this.sender.updateCard(this.messageId, buildProgressCard(this.state, this.opts.cardWidthMode ?? 'default'));
|
|
166
230
|
}
|
|
167
231
|
catch {
|
|
168
232
|
// 单次 PATCH 失败不致命(限流/网络抖动),下轮重试
|