@jesonliu/lark-claudecode-bridge 1.0.6 → 1.2.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 +6 -4
- package/assets/web/css/main.css +46 -0
- package/assets/web/index.html +1 -0
- package/assets/web/js/pages/apps.js +118 -6
- package/assets/web/js/pages/claude.js +4 -7
- package/assets/web/js/pages/overview.js +57 -8
- package/assets/web/js/pages/permissions.js +45 -10
- package/assets/web/js/ui.js +167 -0
- package/config.example.yaml +20 -2
- package/dist/config-defaults.js +2 -1
- package/dist/config-defaults.js.map +1 -1
- package/dist/config.d.ts +4 -2
- package/dist/config.js +80 -5
- package/dist/config.js.map +1 -1
- package/dist/executor/claude-executor.d.ts +3 -0
- package/dist/executor/claude-executor.js +3 -0
- package/dist/executor/claude-executor.js.map +1 -1
- package/dist/executor/notify-server.d.ts +4 -18
- package/dist/executor/notify-server.js +6 -74
- package/dist/executor/notify-server.js.map +1 -1
- package/dist/executor/permission-gate.d.ts +10 -0
- package/dist/executor/permission-gate.js +24 -7
- package/dist/executor/permission-gate.js.map +1 -1
- package/dist/gateway/card-builder.d.ts +30 -19
- package/dist/gateway/card-builder.js +63 -46
- package/dist/gateway/card-builder.js.map +1 -1
- package/dist/gateway/diff-card.d.ts +1 -2
- package/dist/gateway/diff-card.js +2 -3
- package/dist/gateway/diff-card.js.map +1 -1
- package/dist/gateway/feishu-gateway.d.ts +2 -2
- package/dist/gateway/feishu-gateway.js +35 -5
- package/dist/gateway/feishu-gateway.js.map +1 -1
- package/dist/gateway/progress-card.d.ts +15 -5
- package/dist/gateway/progress-card.js +29 -14
- package/dist/gateway/progress-card.js.map +1 -1
- package/dist/index.js +198 -94
- package/dist/index.js.map +1 -1
- package/dist/notify-sop.d.ts +1 -1
- package/dist/notify-sop.js +21 -26
- package/dist/notify-sop.js.map +1 -1
- package/dist/session/commands.d.ts +20 -2
- package/dist/session/commands.js +58 -17
- package/dist/session/commands.js.map +1 -1
- package/dist/types.d.ts +27 -7
- package/dist/web/autostart.d.ts +49 -0
- package/dist/web/autostart.js +250 -0
- package/dist/web/autostart.js.map +1 -0
- package/dist/web/config-api.js +14 -2
- package/dist/web/config-api.js.map +1 -1
- package/dist/web/server.js +38 -1
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,17 +4,11 @@ export { chunkText };
|
|
|
4
4
|
export declare const NOTIFY_SERVER_NAME = "lcb-notify";
|
|
5
5
|
/** canUseTool 收到的工具全名形态:mcp__lcb-notify__send_text */
|
|
6
6
|
export declare const NOTIFY_TOOL_PREFIX = "mcp__lcb-notify__";
|
|
7
|
-
/** 发送能力抽象:executeTask 闭包内绑定当前任务的 chatId
|
|
7
|
+
/** 发送能力抽象:executeTask 闭包内绑定当前任务的 chatId 实现(含图片无 caption 通道降级) */
|
|
8
8
|
export interface NotifySender {
|
|
9
9
|
sendText(markdown: string): Promise<void>;
|
|
10
10
|
sendImage(path: string, caption?: string): Promise<void>;
|
|
11
11
|
sendFile(path: string, note?: string): Promise<void>;
|
|
12
|
-
/**
|
|
13
|
-
* SOP 降级单文件补发(#7):任务收尾时调用——降级内容全部追加进同一文件,
|
|
14
|
-
* 首次降级已发过一次(阶段性内容),此后有新追加才在收尾补发完整版。
|
|
15
|
-
* 可选:旧实现/测试 mock 缺省时无降级文件可发,调用方 ?. 调用即可。
|
|
16
|
-
*/
|
|
17
|
-
flushDowngradedFile?(): Promise<void>;
|
|
18
12
|
}
|
|
19
13
|
/**
|
|
20
14
|
* 构建工具定义数组。handler 全部捕获异常返回 isError 中文原因,绝不抛出——
|
|
@@ -28,12 +22,9 @@ export declare function createNotifyServer(sender: NotifySender): McpSdkServerCo
|
|
|
28
22
|
* sendImageWithCaption 可选:缺省(旧 gateway / 测试 mock)时图片降级为
|
|
29
23
|
* 「caption 文本卡 + 图片消息」两条;sentPaths 记录已推送路径供任务收尾去重。
|
|
30
24
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* 首次降级提示卡 + 立即发当前文件,后续静默追加,任务收尾 flushDowngradedFile 补发完整版)
|
|
35
|
-
* - sequentialLimit=4:本任务连续 sendText ≥ 第 4 张起 → 后续 sendText 同样进单文件
|
|
36
|
-
* 计数属于本 sender 闭包,每任务新一次(createGatewaySender 由 executeTask 每任务调一次)
|
|
25
|
+
* #11 旧版 SOP 硬兜底(>50 行/连续 4 张转 changes-<ts>.md 单文件 send_file)已整体移除
|
|
26
|
+
* (用户决策):send_text 永远按 ~3000 字/块多卡发送,不发文件;「只推用户需要查看的
|
|
27
|
+
* 内容」改由 notify-sop 提示词软约束引导(docs/feishu-notify-sop-v1.0.md 为旧版存档)
|
|
37
28
|
*/
|
|
38
29
|
export declare function createGatewaySender(args: {
|
|
39
30
|
chatId: string;
|
|
@@ -41,9 +32,4 @@ export declare function createGatewaySender(args: {
|
|
|
41
32
|
sendText: (chatId: string, markdown: string) => Promise<unknown>;
|
|
42
33
|
sendImageWithCaption?: (chatId: string, path: string, caption?: string) => Promise<unknown>;
|
|
43
34
|
sendFileTo: (chatId: string, path: string) => Promise<unknown>;
|
|
44
|
-
}, sopOptions?: {
|
|
45
|
-
enabled?: boolean;
|
|
46
|
-
lineLimit?: number;
|
|
47
|
-
sequentialLimit?: number;
|
|
48
|
-
notifyDir?: string;
|
|
49
35
|
}): NotifySender;
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
// 构造——chatId 在闭包内硬绑定,模型无法选择接收者,只能发到当前任务发起的聊天,
|
|
4
4
|
// 因此权限闸对该前缀直通(见 permission-gate.ts)。
|
|
5
5
|
import { createSdkMcpServer, tool } from '@anthropic-ai/claude-agent-sdk';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { basename, extname, join, resolve } from 'node:path';
|
|
6
|
+
import { stat } from 'node:fs/promises';
|
|
7
|
+
import { basename, extname, resolve } from 'node:path';
|
|
9
8
|
import { z } from 'zod';
|
|
10
9
|
import { chunkText } from '../util/chunk-text.js';
|
|
11
|
-
import { CONFIG_DIR } from '../config.js';
|
|
12
10
|
// 分块算法已抽到 util/chunk-text(gateway 卡片层复用);此处 re-export 保持既有引用兼容
|
|
13
11
|
export { chunkText };
|
|
14
12
|
export const NOTIFY_SERVER_NAME = 'lcb-notify';
|
|
@@ -125,82 +123,16 @@ export function createNotifyServer(sender) {
|
|
|
125
123
|
* sendImageWithCaption 可选:缺省(旧 gateway / 测试 mock)时图片降级为
|
|
126
124
|
* 「caption 文本卡 + 图片消息」两条;sentPaths 记录已推送路径供任务收尾去重。
|
|
127
125
|
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* 首次降级提示卡 + 立即发当前文件,后续静默追加,任务收尾 flushDowngradedFile 补发完整版)
|
|
132
|
-
* - sequentialLimit=4:本任务连续 sendText ≥ 第 4 张起 → 后续 sendText 同样进单文件
|
|
133
|
-
* 计数属于本 sender 闭包,每任务新一次(createGatewaySender 由 executeTask 每任务调一次)
|
|
126
|
+
* #11 旧版 SOP 硬兜底(>50 行/连续 4 张转 changes-<ts>.md 单文件 send_file)已整体移除
|
|
127
|
+
* (用户决策):send_text 永远按 ~3000 字/块多卡发送,不发文件;「只推用户需要查看的
|
|
128
|
+
* 内容」改由 notify-sop 提示词软约束引导(docs/feishu-notify-sop-v1.0.md 为旧版存档)
|
|
134
129
|
*/
|
|
135
|
-
export function createGatewaySender(args
|
|
130
|
+
export function createGatewaySender(args) {
|
|
136
131
|
const { chatId, sentPaths } = args;
|
|
137
|
-
const sopEnabled = sopOptions?.enabled !== false;
|
|
138
|
-
const lineLimit = sopOptions?.lineLimit ?? 50;
|
|
139
|
-
const sequentialLimit = sopOptions?.sequentialLimit ?? 4;
|
|
140
|
-
const notifyDir = sopOptions?.notifyDir ?? join(CONFIG_DIR, 'notify');
|
|
141
|
-
// 顺序计数:递增写入;上限仅作判定,超阈值 → 后续全部走降级
|
|
142
|
-
let textCallCount = 0;
|
|
143
|
-
let downgradedByLines = false;
|
|
144
|
-
// #7 单文件合并:本任务所有降级内容追加进同一文件(旧行为每次降级一个新文件,
|
|
145
|
-
// 用户收到 N 个零散附件)。首次降级立即发一次(长任务也有阶段性内容可看),
|
|
146
|
-
// 之后静默追加;收尾 flushDowngradedFile 有新追加才补发完整版
|
|
147
|
-
let downgradeFilePath;
|
|
148
|
-
let downgradeDirty = false;
|
|
149
|
-
let downgradeSent = false;
|
|
150
|
-
function renderTitle() {
|
|
151
|
-
const d = new Date();
|
|
152
|
-
const pad = (n) => String(n).padStart(2, '0');
|
|
153
|
-
return `${d.getFullYear()}${pad(d.getMonth() + 1)}${pad(d.getDate())}-${pad(d.getHours())}${pad(d.getMinutes())}${pad(d.getSeconds())}`;
|
|
154
|
-
}
|
|
155
132
|
return {
|
|
156
133
|
sendText: async (md) => {
|
|
157
|
-
textCallCount++;
|
|
158
|
-
const lines = md.split('\n').length;
|
|
159
|
-
const overLines = lines > lineLimit;
|
|
160
|
-
const overSequential = textCallCount > sequentialLimit;
|
|
161
|
-
// downgradedByLines 一旦置位,整个任务后续 sendText 全走降级——避免大块持续刷屏;
|
|
162
|
-
// sequentialLimit 则每张都判定(次数远超才逐张转),避免误伤正常 4 张内调用
|
|
163
|
-
if (sopEnabled && (downgradedByLines || overLines || overSequential)) {
|
|
164
|
-
if (overLines)
|
|
165
|
-
downgradedByLines = true;
|
|
166
|
-
try {
|
|
167
|
-
await mkdir(notifyDir, { recursive: true });
|
|
168
|
-
}
|
|
169
|
-
catch { /* 极端权限异常:继续走提示卡,但 send_file 会失败由调用方兜底 */ }
|
|
170
|
-
if (!downgradeFilePath)
|
|
171
|
-
downgradeFilePath = join(notifyDir, `changes-${renderTitle()}.md`);
|
|
172
|
-
try {
|
|
173
|
-
writeFileSync(downgradeFilePath, `${md}\n\n---\n\n`, { flag: 'a' });
|
|
174
|
-
downgradeDirty = true;
|
|
175
|
-
}
|
|
176
|
-
catch (e) {
|
|
177
|
-
// 落盘失败兜底:跳过降级,按原样 sendText——硬兜底不该把内容吞掉
|
|
178
|
-
console.warn(`[notify-server] SOP 降级落盘失败:${e instanceof Error ? e.message : e}(已按原内容发送)`);
|
|
179
|
-
await args.sendText(chatId, md);
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
if (!downgradeSent) {
|
|
183
|
-
// 首次降级:直接发当前文件(长任务也有阶段性内容可看),静默化——不发提示文案卡;
|
|
184
|
-
// 后续追加同样静默,收尾 flushDowngradedFile 有新内容才补发完整文件
|
|
185
|
-
downgradeSent = true;
|
|
186
|
-
await args.sendFileTo(chatId, downgradeFilePath).catch((e) => {
|
|
187
|
-
console.error('[notify-server] SOP 降级 send_file 失败:', e);
|
|
188
|
-
});
|
|
189
|
-
downgradeDirty = false;
|
|
190
|
-
}
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
134
|
await args.sendText(chatId, md);
|
|
194
135
|
},
|
|
195
|
-
// 任务收尾补发:首次降级后又有新追加时才重发完整文件(至多 2 条附件消息,同样静默不发文案)
|
|
196
|
-
flushDowngradedFile: async () => {
|
|
197
|
-
if (!downgradeFilePath || !downgradeDirty)
|
|
198
|
-
return;
|
|
199
|
-
downgradeDirty = false;
|
|
200
|
-
await args.sendFileTo(chatId, downgradeFilePath).catch((e) => {
|
|
201
|
-
console.error('[notify-server] SOP 收尾补发 send_file 失败:', e);
|
|
202
|
-
});
|
|
203
|
-
},
|
|
204
136
|
sendImage: async (p, caption) => {
|
|
205
137
|
sentPaths.add(resolve(p));
|
|
206
138
|
if (args.sendImageWithCaption) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-server.js","sourceRoot":"","sources":["../../src/executor/notify-server.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wEAAwE;AACxE,8CAA8C;AAC9C,qCAAqC;AACrC,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAkE,MAAM,gCAAgC,CAAC;AAC1I,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"notify-server.js","sourceRoot":"","sources":["../../src/executor/notify-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,13 @@ import type { ConfirmationRequest, PermissionDecision } from '../types.js';
|
|
|
8
8
|
export declare const DEFAULT_ALLOW_TOOLS_LIST: readonly string[];
|
|
9
9
|
export declare const DEFAULT_ALLOW_TOOLS: ReadonlySet<string>;
|
|
10
10
|
export declare const READ_ONLY_TOOLS: ReadonlySet<string>;
|
|
11
|
+
/**
|
|
12
|
+
* 内置默认:全部工具免确认(config.yaml permissions.allow_all_tools 缺省值)。
|
|
13
|
+
* 开启后除命中 DEFAULT_DANGEROUS_COMMANDS(现读配置的 dangerous_commands)的 Bash 外,
|
|
14
|
+
* 所有工具(含 Write/Edit/NotebookEdit)直通不弹确认卡;关闭则回落到 allow_tools 白名单语义。
|
|
15
|
+
* 注意:只对 Bash 的 command 生效的黑名单是本模式唯一安全网——Write/Edit 等写工具在开启态裸奔。
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_ALLOW_ALL_TOOLS = true;
|
|
11
18
|
/**
|
|
12
19
|
* 内置 Bash 危险命令正则源串(permissions.dangerous_commands 缺省值;运行期统一 i flag 编译)。
|
|
13
20
|
* 源串形式供 config-defaults 预置写盘——写出的配置回读后与内置行为逐字一致。
|
|
@@ -60,6 +67,7 @@ export declare class PermissionGate {
|
|
|
60
67
|
private opts;
|
|
61
68
|
private remembered;
|
|
62
69
|
private allowTools;
|
|
70
|
+
private allowAllTools;
|
|
63
71
|
private dangerousCommands;
|
|
64
72
|
constructor(opts: {
|
|
65
73
|
ask: (req: ConfirmationRequest) => Promise<PermissionDecision>;
|
|
@@ -70,6 +78,8 @@ export declare class PermissionGate {
|
|
|
70
78
|
timeoutMs?: number;
|
|
71
79
|
/** 免确认白名单(静态值或 getter);缺省 DEFAULT_ALLOW_TOOLS */
|
|
72
80
|
allowTools?: ReadonlySet<string> | (() => ReadonlySet<string>);
|
|
81
|
+
/** 全部工具免确认(静态值或 getter);缺省 DEFAULT_ALLOW_ALL_TOOLS(开) */
|
|
82
|
+
allowAllTools?: boolean | (() => boolean);
|
|
73
83
|
/** Bash 危险命令正则(静态值或 getter);缺省 DEFAULT_DANGEROUS_COMMANDS */
|
|
74
84
|
dangerousCommands?: readonly RegExp[] | (() => readonly RegExp[]);
|
|
75
85
|
});
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// 权限闸:「全部免确认」开关(permissions.allow_all_tools,缺省开)或白名单命中即直通,
|
|
2
|
+
// 未直通的写操作经 ask 回调询问(飞书卡片确认,带 diff 展示),超时自动拒绝 + 会话级记忆;
|
|
3
|
+
// Bash 另过危险命令黑名单——它优先于开关与白名单,是免确认模式下的安全底线。
|
|
4
|
+
// plan mode 的 ExitPlanMode 经 planAsk 回调走计划确认卡片;AskUserQuestion 经 askQuestion
|
|
5
|
+
// 回调走问题选项卡片——两者是交互路由而非工具确认,不受开关影响
|
|
4
6
|
import { randomUUID } from 'node:crypto';
|
|
5
7
|
import { NOTIFY_TOOL_PREFIX } from './notify-server.js';
|
|
6
8
|
import { generateFileDiff } from '../util/diff.js';
|
|
@@ -18,6 +20,13 @@ export const DEFAULT_ALLOW_TOOLS = new Set(DEFAULT_ALLOW_TOOLS_LIST);
|
|
|
18
20
|
export const READ_ONLY_TOOLS = new Set([
|
|
19
21
|
'Read', 'Glob', 'Grep', 'LS', 'TodoRead', 'TodoWrite', 'WebFetch', 'WebSearch',
|
|
20
22
|
]);
|
|
23
|
+
/**
|
|
24
|
+
* 内置默认:全部工具免确认(config.yaml permissions.allow_all_tools 缺省值)。
|
|
25
|
+
* 开启后除命中 DEFAULT_DANGEROUS_COMMANDS(现读配置的 dangerous_commands)的 Bash 外,
|
|
26
|
+
* 所有工具(含 Write/Edit/NotebookEdit)直通不弹确认卡;关闭则回落到 allow_tools 白名单语义。
|
|
27
|
+
* 注意:只对 Bash 的 command 生效的黑名单是本模式唯一安全网——Write/Edit 等写工具在开启态裸奔。
|
|
28
|
+
*/
|
|
29
|
+
export const DEFAULT_ALLOW_ALL_TOOLS = true;
|
|
21
30
|
/**
|
|
22
31
|
* 内置 Bash 危险命令正则源串(permissions.dangerous_commands 缺省值;运行期统一 i flag 编译)。
|
|
23
32
|
* 源串形式供 config-defaults 预置写盘——写出的配置回读后与内置行为逐字一致。
|
|
@@ -81,12 +90,18 @@ export class PermissionGate {
|
|
|
81
90
|
// decide 时现读——gate 按通道永久复用,静态快照会让改白名单后已有通道继续用旧名单,
|
|
82
91
|
// 直到新通道/重启才生效(0.17.0「配了免确认工具仍弹卡/被拒」根因)。也接受静态值(测试)。
|
|
83
92
|
allowTools;
|
|
93
|
+
allowAllTools;
|
|
84
94
|
dangerousCommands;
|
|
85
95
|
constructor(opts) {
|
|
86
96
|
this.opts = opts;
|
|
87
97
|
this.allowTools = typeof opts.allowTools === 'function' ? opts.allowTools
|
|
88
98
|
: opts.allowTools ? () => opts.allowTools
|
|
89
99
|
: () => DEFAULT_ALLOW_TOOLS;
|
|
100
|
+
// 必须用 !== undefined 判空:allowAllTools 的 false 是有效配置(用户主动关闭),
|
|
101
|
+
// 照搬 allowTools 的真值判断会把 false 误当「未配置」而回落到缺省的 true
|
|
102
|
+
this.allowAllTools = typeof opts.allowAllTools === 'function' ? opts.allowAllTools
|
|
103
|
+
: opts.allowAllTools !== undefined ? () => opts.allowAllTools
|
|
104
|
+
: () => DEFAULT_ALLOW_ALL_TOOLS;
|
|
90
105
|
this.dangerousCommands = typeof opts.dangerousCommands === 'function' ? opts.dangerousCommands
|
|
91
106
|
: opts.dangerousCommands ? () => opts.dangerousCommands
|
|
92
107
|
: () => DEFAULT_DANGEROUS_COMMANDS;
|
|
@@ -134,13 +149,15 @@ export class PermissionGate {
|
|
|
134
149
|
}
|
|
135
150
|
return { behavior: 'allow', updatedInput: { questions: input.questions, answers } };
|
|
136
151
|
}
|
|
137
|
-
//
|
|
138
|
-
// Bash
|
|
139
|
-
|
|
152
|
+
// 「全部免确认」或白名单直通(decide 时经 getter 现读:热重载改配置后已有通道的
|
|
153
|
+
// 下一个工具调用即生效);Bash 命中危险命令正则时落到确认卡——安全优先于两者,
|
|
154
|
+
// 开关与白名单都不是绕过黑名单的后门
|
|
155
|
+
const dangerous = toolName === 'Bash' && this.isDangerousCommand(input);
|
|
156
|
+
if (!dangerous && (this.allowAllTools() || this.allowTools().has(toolName))) {
|
|
140
157
|
return { behavior: 'allow' };
|
|
141
158
|
}
|
|
142
159
|
// 会话记忆同样不能绕过危险命令黑名单(用户对 Bash 点过「不再询问」≠ 授权 rm -rf)
|
|
143
|
-
if (this.remembered.has(toolName)
|
|
160
|
+
if (!dangerous && this.remembered.has(toolName)) {
|
|
144
161
|
return { behavior: 'allow' };
|
|
145
162
|
}
|
|
146
163
|
const req = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../../src/executor/permission-gate.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../../src/executor/permission-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,12 @@ import type { AskQuestionRequest } from '../executor/permission-gate.js';
|
|
|
3
3
|
export interface ProgressState {
|
|
4
4
|
title: string;
|
|
5
5
|
status: string;
|
|
6
|
-
textTail: string;
|
|
7
6
|
toolLine: string;
|
|
8
7
|
startedAt: number;
|
|
9
8
|
done?: boolean;
|
|
9
|
+
/** 终态结果提示行:完整回复的字数(finish 传入)——终态不再渲染回复正文(由收尾独立
|
|
10
|
+
* 多卡直接展示),只留一行「已单独发送」指引,消除折叠看不到与两边重复 */
|
|
11
|
+
resultChars?: number;
|
|
10
12
|
/** 挂起中的工具确认(非空时卡片底部渲染确认按钮区、正文收敛),决策后置回 undefined */
|
|
11
13
|
confirm?: ConfirmationRequest;
|
|
12
14
|
/** 子代理/后台任务清单(启动加入、落定标记保留到任务结束) */
|
|
@@ -42,15 +44,6 @@ export interface SubagentTask {
|
|
|
42
44
|
}
|
|
43
45
|
/** 纯文本卡:宽度跟随调用方传入(gateway 层注入 config.card.width,缺省 default) */
|
|
44
46
|
export declare function buildTextCard(markdown: string, widthMode?: 'default' | 'fill'): unknown;
|
|
45
|
-
/** 进度卡终态结果尾部的字符上限(防爆卡片)。运行中不展示过程文本(产品决策:主卡只留
|
|
46
|
-
* 关键信息——状态/工具/子代理/确认区/计时;思考内容与过程文本一律不进卡),仅任务收尾
|
|
47
|
-
* 露出结果尾部。index.ts 以同一常量判断「短回复是否需要独立结果消息」,两处保持同值,
|
|
48
|
-
* 否则 400–1200 区间内容会卡片/消息两边都不展示 */
|
|
49
|
-
export declare const PROGRESS_TAIL_CHARS = 400;
|
|
50
|
-
/** 独立结果消息的按钮化阈值(0.20.0):最终回复超过此字数不再直接发全文卡片,改为落盘 md
|
|
51
|
-
* + 「查看完整内容」按钮 + 确认/按意见修改引导——飞书单卡 30KB 上限与可读性都不允许长文
|
|
52
|
-
* 铺卡片,旧版 4000 字硬截断会静默丢内容。400~2000 字区间仍直接发全文卡片 */
|
|
53
|
-
export declare const LONG_OUTPUT_THRESHOLD = 2000;
|
|
54
47
|
/** 图片卡片:caption(可选)显示在图片上方——逐张发图时带编号说明用;宽度同 buildTextCard */
|
|
55
48
|
export declare function buildImageCard(caption: string | undefined, imgKey: string, widthMode?: 'default' | 'fill'): unknown;
|
|
56
49
|
/** 进度卡局部更新的固定组件 ID(cardkit element_id,长度限 1-20):状态主块 + 计时行。
|
|
@@ -103,18 +96,36 @@ export interface QuestionCardRequest {
|
|
|
103
96
|
}
|
|
104
97
|
/** 已选答案的中间态(wiring 侧维护):问题下标 → 选中的 option label(multiSelect 为数组) */
|
|
105
98
|
export type QuestionCardAnswers = Record<number, string | string[]>;
|
|
106
|
-
export interface
|
|
99
|
+
export interface ResultCardRequest {
|
|
107
100
|
requestId: string;
|
|
108
|
-
/** 落盘的完整回复 md 路径(「查看完整内容」回调 send_file 用) */
|
|
109
|
-
filePath: string;
|
|
110
101
|
charCount: number;
|
|
111
102
|
workspaceName: string;
|
|
112
103
|
}
|
|
104
|
+
/** 结论块头部标号行:非尾卡(sendTextTo 文本卡)与尾卡共用同一标题样式,仅位置标号不同 */
|
|
105
|
+
export declare function resultChunkHeader(req: ResultCardRequest, index: number, total: number): string;
|
|
113
106
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
107
|
+
* 结论尾卡:完整回复多卡的最后一张——末块正文 + form「确认方案 / 按意见修改」引导
|
|
108
|
+
* (点击以对应 prompt 合成用户消息入队,走完整排队/resume 链路发起新一轮任务,wiring 侧
|
|
109
|
+
* 经 outputPending 挂起项校验发起人),也可直接回复消息。
|
|
110
|
+
* settled 态(决策后回调响应内联换卡):正文保留,按钮区收为一行文案。
|
|
117
111
|
*/
|
|
118
|
-
export declare function
|
|
119
|
-
|
|
120
|
-
|
|
112
|
+
export declare function buildResultTailCard(req: ResultCardRequest, chunkContent: string, pos: {
|
|
113
|
+
index: number;
|
|
114
|
+
total: number;
|
|
115
|
+
}, settledText?: string, widthMode?: 'default' | 'fill'): unknown;
|
|
116
|
+
export interface WorkspaceCardRequest {
|
|
117
|
+
requestId: string;
|
|
118
|
+
workspaces: Array<{
|
|
119
|
+
name: string;
|
|
120
|
+
path: string;
|
|
121
|
+
}>;
|
|
122
|
+
currentName: string;
|
|
123
|
+
}
|
|
124
|
+
/** 工作区选择卡:每个工作区一行 column_set——左列 30% 整宽按钮(点击即切换),右列 70%
|
|
125
|
+
* 灰色路径(仅名字无法区分各工作区对应目录,路径上卡面后免切错),两列垂直居中、长路径
|
|
126
|
+
* 自动换行;固定百分比列宽(非 flow)保证多行按钮纵向对齐。回调侧按按钮 value.ws 定位
|
|
127
|
+
* 目标;卡片体量随工作区数线性增长(典型 2-5 个远低于单卡 30KB 上限,量级失控时再折叠
|
|
128
|
+
* 为 markdown 列表) */
|
|
129
|
+
export declare function buildWorkspaceCard(req: WorkspaceCardRequest, widthMode?: 'default' | 'fill'): unknown;
|
|
130
|
+
/** 工作区切换完成终态卡:纯 markdown 无交互组件——一次性选择语义(点过即定),再切重发 /ws */
|
|
131
|
+
export declare function buildWorkspaceSwitchedCard(name: string, path: string, widthMode?: 'default' | 'fill'): unknown;
|
|
@@ -10,15 +10,6 @@ function md(content) {
|
|
|
10
10
|
export function buildTextCard(markdown, widthMode = 'default') {
|
|
11
11
|
return card([md(markdown)], widthMode);
|
|
12
12
|
}
|
|
13
|
-
/** 进度卡终态结果尾部的字符上限(防爆卡片)。运行中不展示过程文本(产品决策:主卡只留
|
|
14
|
-
* 关键信息——状态/工具/子代理/确认区/计时;思考内容与过程文本一律不进卡),仅任务收尾
|
|
15
|
-
* 露出结果尾部。index.ts 以同一常量判断「短回复是否需要独立结果消息」,两处保持同值,
|
|
16
|
-
* 否则 400–1200 区间内容会卡片/消息两边都不展示 */
|
|
17
|
-
export const PROGRESS_TAIL_CHARS = 400;
|
|
18
|
-
/** 独立结果消息的按钮化阈值(0.20.0):最终回复超过此字数不再直接发全文卡片,改为落盘 md
|
|
19
|
-
* + 「查看完整内容」按钮 + 确认/按意见修改引导——飞书单卡 30KB 上限与可读性都不允许长文
|
|
20
|
-
* 铺卡片,旧版 4000 字硬截断会静默丢内容。400~2000 字区间仍直接发全文卡片 */
|
|
21
|
-
export const LONG_OUTPUT_THRESHOLD = 2000;
|
|
22
13
|
/** 图片卡片:caption(可选)显示在图片上方——逐张发图时带编号说明用;宽度同 buildTextCard */
|
|
23
14
|
export function buildImageCard(caption, imgKey, widthMode = 'default') {
|
|
24
15
|
const elements = [];
|
|
@@ -73,17 +64,11 @@ function buildMainLines(state) {
|
|
|
73
64
|
// 内嵌计划区同理收敛正文
|
|
74
65
|
lines.push('---', `⏸ 正文已收起,等待下方计划确认后继续…`);
|
|
75
66
|
}
|
|
76
|
-
else if (state.done && state.
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
const folded = state.textTail.length - PROGRESS_TAIL_CHARS;
|
|
82
|
-
lines.push('---', `**📝 结果**`, `<font color='grey'>⋯ 已折叠前面 ${folded} 字符</font>`, state.textTail.slice(-PROGRESS_TAIL_CHARS));
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
lines.push('---', `**📝 结果**`, state.textTail);
|
|
86
|
-
}
|
|
67
|
+
else if (state.done && state.resultChars !== undefined) {
|
|
68
|
+
// 终态不再渲染回复正文:完整回复由收尾逻辑独立多卡直接展示(用户决策),主卡只留一行
|
|
69
|
+
// 指引——消除「折叠前面 N 字符看不到全文」与「卡片/消息两边内容重复」两类问题
|
|
70
|
+
// (原 textTail 尾部 400 字方案,P06 耦合随之消解)。停止/出错终态无 resultChars 不显示
|
|
71
|
+
lines.push('---', `📝 完整回复已单独发送(共 ${state.resultChars.toLocaleString()} 字),见下方消息卡片`);
|
|
87
72
|
}
|
|
88
73
|
return lines;
|
|
89
74
|
}
|
|
@@ -287,23 +272,25 @@ function embeddedQaOptionButton(reqId, qIndex, optIndex, label, selected) {
|
|
|
287
272
|
behaviors: [{ type: 'callback', value: { requestId: reqId, decision: 'qa-pick', qIndex, option: label } }],
|
|
288
273
|
};
|
|
289
274
|
}
|
|
275
|
+
/** 结论块头部标号行:非尾卡(sendTextTo 文本卡)与尾卡共用同一标题样式,仅位置标号不同 */
|
|
276
|
+
export function resultChunkHeader(req, index, total) {
|
|
277
|
+
return `**📝 完整回复**(${total > 1 ? `${index}/${total} · ` : ''}共 ${req.charCount.toLocaleString()} 字)· 工作区 \`${req.workspaceName}\``;
|
|
278
|
+
}
|
|
290
279
|
/**
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
280
|
+
* 结论尾卡:完整回复多卡的最后一张——末块正文 + form「确认方案 / 按意见修改」引导
|
|
281
|
+
* (点击以对应 prompt 合成用户消息入队,走完整排队/resume 链路发起新一轮任务,wiring 侧
|
|
282
|
+
* 经 outputPending 挂起项校验发起人),也可直接回复消息。
|
|
283
|
+
* settled 态(决策后回调响应内联换卡):正文保留,按钮区收为一行文案。
|
|
294
284
|
*/
|
|
295
|
-
export function
|
|
296
|
-
const elements = [
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
behaviors: [{ type: 'callback', value: { requestId: req.requestId, decision: 'view-output-file', filePath: req.filePath } }],
|
|
303
|
-
},
|
|
304
|
-
{
|
|
285
|
+
export function buildResultTailCard(req, chunkContent, pos, settledText, widthMode = 'default') {
|
|
286
|
+
const elements = [md(`${resultChunkHeader(req, pos.index, pos.total)}\n\n${chunkContent}`)];
|
|
287
|
+
if (settledText) {
|
|
288
|
+
elements.push(md(settledText));
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
elements.push({
|
|
305
292
|
tag: 'form',
|
|
306
|
-
name: '
|
|
293
|
+
name: 'result_form',
|
|
307
294
|
elements: [
|
|
308
295
|
{
|
|
309
296
|
tag: 'column_set',
|
|
@@ -313,23 +300,53 @@ export function buildLongOutputCard(req, widthMode = 'default') {
|
|
|
313
300
|
{ tag: 'column', width: 'auto', weight: 1, vertical_align: 'top', elements: [planButton('output-revise', '✏️ 按意见修改', 'default', req.requestId, 'out_btn_revise')] },
|
|
314
301
|
],
|
|
315
302
|
},
|
|
316
|
-
|
|
303
|
+
// 意见框不带 multiline/rows:消息卡通道(im.message.create)卡片校验拒绝该属性
|
|
304
|
+
// (飞书 230099/200621 "unknown property" 实锤)——multiline 仅 cardkit 实体卡可用;
|
|
305
|
+
// 复杂意见走「直接回复消息」(placeholder 已引导)
|
|
306
|
+
{ tag: 'input', name: 'feedback', width: 'fill', max_length: 1000, placeholder: { tag: 'plain_text', content: '修改意见(点「按意见修改」时生效);复杂意见可直接回复消息' } },
|
|
317
307
|
],
|
|
318
|
-
}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
return card(elements, widthMode);
|
|
311
|
+
}
|
|
312
|
+
/** 工作区按钮:文案即工作区名(点击即切换,同 QA 选项卡的「按钮即选项」模式),width fill
|
|
313
|
+
* 填满所在列保住点击面积;当前项 ✓+primary+disabled 不可点。只用 disabled(消息卡 2.0
|
|
314
|
+
* 通用),不带 disabled_reason 等 cardkit 实体卡专属字段——旧版 im.message.create 的
|
|
315
|
+
* interactive 卡不识别未知字段 */
|
|
316
|
+
function wsSwitchButton(requestId, name, current) {
|
|
317
|
+
return {
|
|
318
|
+
tag: 'button',
|
|
319
|
+
width: 'fill',
|
|
320
|
+
text: { tag: 'plain_text', content: current ? `✓ ${name}(当前)` : name },
|
|
321
|
+
type: current ? 'primary' : 'default',
|
|
322
|
+
...(current ? { disabled: true } : {}),
|
|
323
|
+
behaviors: [{ type: 'callback', value: { requestId, decision: 'ws-switch', ws: name } }],
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
/** 工作区选择卡:每个工作区一行 column_set——左列 30% 整宽按钮(点击即切换),右列 70%
|
|
327
|
+
* 灰色路径(仅名字无法区分各工作区对应目录,路径上卡面后免切错),两列垂直居中、长路径
|
|
328
|
+
* 自动换行;固定百分比列宽(非 flow)保证多行按钮纵向对齐。回调侧按按钮 value.ws 定位
|
|
329
|
+
* 目标;卡片体量随工作区数线性增长(典型 2-5 个远低于单卡 30KB 上限,量级失控时再折叠
|
|
330
|
+
* 为 markdown 列表) */
|
|
331
|
+
export function buildWorkspaceCard(req, widthMode = 'default') {
|
|
332
|
+
const elements = [
|
|
333
|
+
md(`**📁 选择工作区**(当前:**${req.currentName}**)\n<font color='grey'>点击工作区名直接切换;切换后自动开启新会话(历史保留,/resume 可切回)</font>`),
|
|
319
334
|
];
|
|
335
|
+
for (const w of req.workspaces) {
|
|
336
|
+
elements.push({
|
|
337
|
+
tag: 'column_set',
|
|
338
|
+
columns: [
|
|
339
|
+
{ tag: 'column', width: '30%', vertical_align: 'center', elements: [wsSwitchButton(req.requestId, w.name, w.name === req.currentName)] },
|
|
340
|
+
{ tag: 'column', width: '70%', vertical_align: 'center', elements: [md(`<font color='grey'>\`${w.path}\`</font>`)] },
|
|
341
|
+
],
|
|
342
|
+
});
|
|
343
|
+
}
|
|
320
344
|
return card(elements, widthMode);
|
|
321
345
|
}
|
|
322
|
-
/**
|
|
323
|
-
export function
|
|
346
|
+
/** 工作区切换完成终态卡:纯 markdown 无交互组件——一次性选择语义(点过即定),再切重发 /ws */
|
|
347
|
+
export function buildWorkspaceSwitchedCard(name, path, widthMode = 'default') {
|
|
324
348
|
return card([
|
|
325
|
-
md(
|
|
326
|
-
{
|
|
327
|
-
tag: 'button',
|
|
328
|
-
text: { tag: 'plain_text', content: '📂 查看完整内容' },
|
|
329
|
-
type: 'default',
|
|
330
|
-
behaviors: [{ type: 'callback', value: { requestId: req.requestId, decision: 'view-output-file', filePath: req.filePath } }],
|
|
331
|
-
},
|
|
332
|
-
md(settledText),
|
|
349
|
+
md(`✅ 已切换到工作区:**${name}**(\`${path}\`)\n<font color='grey'>已自动开启新会话(历史保留,/resume 可切回);再次切换请重发 /ws</font>`),
|
|
333
350
|
], widthMode);
|
|
334
351
|
}
|
|
335
352
|
//# sourceMappingURL=card-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-builder.js","sourceRoot":"","sources":["../../src/gateway/card-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card-builder.js","sourceRoot":"","sources":["../../src/gateway/card-builder.ts"],"names":[],"mappings":"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"}
|