@keyou007/agent-bot 0.1.9 → 0.1.11
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/CHANGELOG.md +23 -0
- package/README.md +22 -10
- package/README.zh.md +22 -10
- package/assets/agent-bot-logo.png +0 -0
- package/dist/acp/AcpSessionManager.js +78 -46
- package/dist/acp/AcpSessionManager.js.map +1 -1
- package/dist/cli/FeishuAppConfiguration.js +84 -22
- package/dist/cli/FeishuAppConfiguration.js.map +1 -1
- package/dist/cli/FeishuAppRegistration.js +12 -9
- package/dist/cli/FeishuAppRegistration.js.map +1 -1
- package/dist/cli/Initializer.js +7 -6
- package/dist/cli/Initializer.js.map +1 -1
- package/dist/cli/LocalControlClient.js +3 -2
- package/dist/cli/LocalControlClient.js.map +1 -1
- package/dist/cli/LocalControlServer.js +2 -1
- package/dist/cli/LocalControlServer.js.map +1 -1
- package/dist/cli/OptionalAuthorizationSkip.js +27 -6
- package/dist/cli/OptionalAuthorizationSkip.js.map +1 -1
- package/dist/cli/ServerStarter.js +12 -3
- package/dist/cli/ServerStarter.js.map +1 -1
- package/dist/cli/SkillRegistry.js +5 -4
- package/dist/cli/SkillRegistry.js.map +1 -1
- package/dist/cli/VerificationOutput.js +2 -1
- package/dist/cli/VerificationOutput.js.map +1 -1
- package/dist/cli/help.js +48 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/i18n.js +27 -0
- package/dist/cli/i18n.js.map +1 -0
- package/dist/cli/initOptions.js +5 -4
- package/dist/cli/initOptions.js.map +1 -1
- package/dist/cli/packageVersion.js +2 -1
- package/dist/cli/packageVersion.js.map +1 -1
- package/dist/cli/profile.js +4 -3
- package/dist/cli/profile.js.map +1 -1
- package/dist/cli/serverStatus.js +15 -14
- package/dist/cli/serverStatus.js.map +1 -1
- package/dist/cli/taskChatRoute.js +3 -2
- package/dist/cli/taskChatRoute.js.map +1 -1
- package/dist/cli.js +165 -107
- package/dist/cli.js.map +1 -1
- package/dist/codex/AppServerConnection.js +15 -1
- package/dist/codex/AppServerConnection.js.map +1 -1
- package/dist/codex/CodexLocalActivityDetector.js +4 -1
- package/dist/codex/CodexLocalActivityDetector.js.map +1 -1
- package/dist/codex/CodexProcessManager.js +1 -0
- package/dist/codex/CodexProcessManager.js.map +1 -1
- package/dist/codex/CodexRuntime.js +77 -2
- package/dist/codex/CodexRuntime.js.map +1 -1
- package/dist/commands/CommandRouter.js +108 -47
- package/dist/commands/CommandRouter.js.map +1 -1
- package/dist/console/ConsoleTurnPresenter.js +1 -1
- package/dist/console/ConsoleTurnPresenter.js.map +1 -1
- package/dist/feishu/CardRenderer.js +345 -11
- package/dist/feishu/CardRenderer.js.map +1 -1
- package/dist/feishu/FeishuMessageClient.js +51 -5
- package/dist/feishu/FeishuMessageClient.js.map +1 -1
- package/dist/feishu/FeishuTurnPresenter.js +8 -3
- package/dist/feishu/FeishuTurnPresenter.js.map +1 -1
- package/dist/index.js +18 -17
- package/dist/index.js.map +1 -1
- package/dist/proxy/ProxySessionController.js +595 -205
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/dist/runtime/AcpRuntimeAdapter.js +1 -0
- package/dist/runtime/AcpRuntimeAdapter.js.map +1 -1
- package/dist/runtime/AgentRuntimeRegistry.js +7 -4
- package/dist/runtime/AgentRuntimeRegistry.js.map +1 -1
- package/dist/runtime/createAgentRuntimeRegistry.js +22 -0
- package/dist/runtime/createAgentRuntimeRegistry.js.map +1 -0
- package/dist/startup/SessionMetadataHydrator.js +2 -2
- package/dist/startup/SessionMetadataHydrator.js.map +1 -1
- package/dist/startup/StartupNotifier.js +1 -0
- package/dist/startup/StartupNotifier.js.map +1 -1
- package/dist/state/StateStore.js +21 -15
- package/dist/state/StateStore.js.map +1 -1
- package/dist/supervision/SafeRestartScheduler.js +5 -0
- package/dist/supervision/SafeRestartScheduler.js.map +1 -1
- package/docs/technical-reference.md +27 -6
- package/docs/technical-reference.zh.md +27 -6
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -1
- package/skills/agent-bot/SKILL.md +19 -9
- package/src/acp/AcpSessionManager.ts +73 -54
- package/src/cli/FeishuAppConfiguration.ts +130 -18
- package/src/cli/FeishuAppRegistration.ts +24 -9
- package/src/cli/Initializer.ts +25 -6
- package/src/cli/LocalControlClient.ts +9 -2
- package/src/cli/LocalControlServer.ts +2 -1
- package/src/cli/OptionalAuthorizationSkip.ts +51 -6
- package/src/cli/ServerStarter.ts +20 -3
- package/src/cli/SkillRegistry.ts +17 -4
- package/src/cli/VerificationOutput.ts +4 -1
- package/src/cli/help.ts +50 -1
- package/src/cli/i18n.ts +38 -0
- package/src/cli/initOptions.ts +17 -4
- package/src/cli/packageVersion.ts +5 -1
- package/src/cli/profile.ts +13 -3
- package/src/cli/serverStatus.ts +19 -14
- package/src/cli/taskChatRoute.ts +9 -2
- package/src/cli.ts +290 -103
- package/src/codex/AppServerConnection.ts +21 -1
- package/src/codex/CodexLocalActivityDetector.ts +8 -1
- package/src/codex/CodexProcessManager.ts +1 -0
- package/src/codex/CodexRuntime.ts +91 -2
- package/src/commands/CommandRouter.ts +123 -46
- package/src/commands/commandTypes.ts +6 -11
- package/src/console/ConsoleTurnPresenter.ts +1 -1
- package/src/feishu/CardRenderer.ts +418 -11
- package/src/feishu/FeishuMessageClient.ts +66 -3
- package/src/feishu/FeishuTurnPresenter.ts +7 -2
- package/src/index.ts +21 -22
- package/src/proxy/ProxySessionController.ts +712 -208
- package/src/runtime/AcpRuntimeAdapter.ts +1 -0
- package/src/runtime/AgentRuntimeRegistry.ts +7 -6
- package/src/runtime/createAgentRuntimeRegistry.ts +25 -0
- package/src/runtime/types.ts +18 -0
- package/src/startup/SessionMetadataHydrator.ts +2 -2
- package/src/startup/StartupNotifier.ts +1 -0
- package/src/state/StateStore.ts +29 -15
- package/src/supervision/SafeRestartScheduler.ts +5 -0
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
const COMMAND_NAMES = [
|
|
2
|
+
"agent",
|
|
3
|
+
"fork",
|
|
4
|
+
"forkgroup",
|
|
5
|
+
"goal",
|
|
6
|
+
"help",
|
|
7
|
+
"model",
|
|
8
|
+
"new",
|
|
9
|
+
"newgroup",
|
|
10
|
+
"nosteer",
|
|
11
|
+
"permissions",
|
|
12
|
+
"provider",
|
|
13
|
+
"queue",
|
|
14
|
+
"restart",
|
|
15
|
+
"sessions",
|
|
16
|
+
"status",
|
|
17
|
+
"stop",
|
|
18
|
+
"switch",
|
|
19
|
+
"thinking",
|
|
20
|
+
"title",
|
|
21
|
+
];
|
|
22
|
+
const COMMAND_INITIALISMS = {
|
|
23
|
+
forkgroup: "fg",
|
|
24
|
+
newgroup: "ng",
|
|
25
|
+
nosteer: "ns",
|
|
26
|
+
};
|
|
27
|
+
const DISABLED_COMMAND_NAMES = new Set(["mode", "modes"]);
|
|
1
28
|
export class CommandRouter {
|
|
2
29
|
parse(text) {
|
|
3
30
|
const trimmed = text.trim();
|
|
@@ -11,29 +38,20 @@ export class CommandRouter {
|
|
|
11
38
|
return { type: "prompt", text };
|
|
12
39
|
}
|
|
13
40
|
const [rawCommand, ...args] = splitArgs(trimmed);
|
|
14
|
-
const command = rawCommand
|
|
41
|
+
const command = resolveCommandName(rawCommand);
|
|
15
42
|
switch (command) {
|
|
16
|
-
case "agents":
|
|
17
|
-
return { type: "agent" };
|
|
18
43
|
case "new":
|
|
19
44
|
return parseNewCommand(args);
|
|
20
45
|
case "newgroup":
|
|
21
46
|
return parseNewGroupCommand(args);
|
|
22
47
|
case "forkgroup":
|
|
23
|
-
return
|
|
24
|
-
type: "forkgroup",
|
|
25
|
-
title: args.join(" ").trim() || undefined,
|
|
26
|
-
};
|
|
48
|
+
return parseForkGroupCommand(args);
|
|
27
49
|
case "fork":
|
|
28
|
-
|
|
29
|
-
throw new Error("/fork 只接受一个可选的任务序号或任务 ID。");
|
|
30
|
-
return args[0] ? { type: "fork", sessionId: args[0] } : { type: "fork" };
|
|
50
|
+
return parseForkCommand(args);
|
|
31
51
|
case "title":
|
|
32
52
|
if (args.length === 0)
|
|
33
53
|
throw new Error("请输入新标题,例如:/title 修复会话列表。");
|
|
34
54
|
return { type: "title", title: args.join(" ") };
|
|
35
|
-
case "ask":
|
|
36
|
-
return { type: "ask", text: trimmed.slice(rawCommand.length).trim() };
|
|
37
55
|
case "queue":
|
|
38
56
|
case "nosteer": {
|
|
39
57
|
const prompt = trimmed.slice(rawCommand.length).trim();
|
|
@@ -47,8 +65,6 @@ export class CommandRouter {
|
|
|
47
65
|
return args[0] ? { type: "switch", sessionId: args[0] } : { type: "switch" };
|
|
48
66
|
case "agent":
|
|
49
67
|
return args[0] ? { type: "agent", agent: args[0] } : { type: "agent" };
|
|
50
|
-
case "use":
|
|
51
|
-
return requireArg(args[0], "agent name", (agent) => ({ type: "use", agent, cwd: args[1] }));
|
|
52
68
|
case "stop":
|
|
53
69
|
return { type: "stop" };
|
|
54
70
|
case "status":
|
|
@@ -71,36 +87,69 @@ export class CommandRouter {
|
|
|
71
87
|
return { type: "goal", action: "set", objective: args.join(" ") };
|
|
72
88
|
}
|
|
73
89
|
case "restart":
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
90
|
+
if (args.length === 0)
|
|
91
|
+
return { type: "restart" };
|
|
92
|
+
if (args.length === 1 && args[0] === "--force")
|
|
93
|
+
return { type: "restart", force: true };
|
|
94
|
+
throw new Error("/restart 只接受一个可选的 --force 参数。");
|
|
79
95
|
case "model":
|
|
80
|
-
return { type: "model"
|
|
96
|
+
return settingsCommand("/model", args, { type: "model" });
|
|
97
|
+
case "provider":
|
|
98
|
+
return settingsCommand("/provider", args, { type: "provider" });
|
|
81
99
|
case "thinking":
|
|
82
|
-
return { type: "thinking"
|
|
83
|
-
case "permissions":
|
|
84
|
-
|
|
85
|
-
if (mode !== undefined && mode !== "auto" && mode !== "confirm") {
|
|
86
|
-
throw new Error("权限模式只能是 auto 或 confirm。");
|
|
87
|
-
}
|
|
88
|
-
return { type: "permissions", mode };
|
|
89
|
-
}
|
|
100
|
+
return settingsCommand("/thinking", args, { type: "thinking" });
|
|
101
|
+
case "permissions":
|
|
102
|
+
return settingsCommand("/permissions", args, { type: "permissions" });
|
|
90
103
|
case "help":
|
|
91
104
|
return { type: "help" };
|
|
92
|
-
default:
|
|
93
|
-
throw new Error(`未知命令:${rawCommand}。发送 /help 查看可用命令。`);
|
|
94
105
|
}
|
|
95
106
|
}
|
|
96
107
|
}
|
|
97
|
-
function
|
|
98
|
-
|
|
99
|
-
|
|
108
|
+
function resolveCommandName(rawCommand) {
|
|
109
|
+
const input = rawCommand.slice(1).toLowerCase();
|
|
110
|
+
if (!input)
|
|
111
|
+
throw unknownCommand(rawCommand);
|
|
112
|
+
if (DISABLED_COMMAND_NAMES.has(input))
|
|
113
|
+
throw unknownCommand(rawCommand);
|
|
114
|
+
const exact = COMMAND_NAMES.find((command) => command === input);
|
|
115
|
+
if (exact)
|
|
116
|
+
return exact;
|
|
117
|
+
const matches = COMMAND_NAMES.filter((command) => command.startsWith(input) || COMMAND_INITIALISMS[command] === input);
|
|
118
|
+
if (matches.length === 1)
|
|
119
|
+
return matches[0];
|
|
120
|
+
if (matches.length > 1) {
|
|
121
|
+
throw new Error(`命令前缀 ${rawCommand} 不唯一,可匹配:${matches.map((command) => `/${command}`).join("、")}。请输入更长的命令前缀。`);
|
|
122
|
+
}
|
|
123
|
+
throw unknownCommand(rawCommand);
|
|
124
|
+
}
|
|
125
|
+
function unknownCommand(rawCommand) {
|
|
126
|
+
return new Error(`未知命令:${rawCommand}。发送 /help 查看可用命令。`);
|
|
127
|
+
}
|
|
128
|
+
function settingsCommand(name, args, command) {
|
|
129
|
+
if (args.length > 0) {
|
|
130
|
+
throw new Error(`${name} 不接受参数,请在设置卡片中完成选择。`);
|
|
100
131
|
}
|
|
101
|
-
return
|
|
132
|
+
return command;
|
|
102
133
|
}
|
|
103
134
|
function parseNewCommand(args) {
|
|
135
|
+
const options = parseNewTaskOptions("/new", args, "工作目录", "D:\\dev\\project");
|
|
136
|
+
return {
|
|
137
|
+
type: "new",
|
|
138
|
+
title: options.title,
|
|
139
|
+
cwd: options.cwd,
|
|
140
|
+
...(options.projectless ? { projectless: true } : {}),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function parseNewGroupCommand(args) {
|
|
144
|
+
const options = parseNewTaskOptions("/newgroup", args, "项目目录", "~/dev/project");
|
|
145
|
+
return {
|
|
146
|
+
type: "newgroup",
|
|
147
|
+
title: options.title,
|
|
148
|
+
...(options.cwd === undefined ? {} : { cwd: options.cwd }),
|
|
149
|
+
...(options.projectless ? { projectless: true } : {}),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function parseNewTaskOptions(commandName, args, directoryLabel, exampleDirectory) {
|
|
104
153
|
const titleParts = [];
|
|
105
154
|
let cwd;
|
|
106
155
|
let projectless = false;
|
|
@@ -108,9 +157,9 @@ function parseNewCommand(args) {
|
|
|
108
157
|
const argument = args[index];
|
|
109
158
|
if (argument === "--nodir") {
|
|
110
159
|
if (projectless)
|
|
111
|
-
throw new Error(
|
|
160
|
+
throw new Error(`${commandName} 只能指定一次 --nodir。`);
|
|
112
161
|
if (cwd !== undefined)
|
|
113
|
-
throw new Error(
|
|
162
|
+
throw new Error(`${commandName} 的 --dir 和 --nodir 不能同时使用。`);
|
|
114
163
|
projectless = true;
|
|
115
164
|
continue;
|
|
116
165
|
}
|
|
@@ -119,32 +168,44 @@ function parseNewCommand(args) {
|
|
|
119
168
|
continue;
|
|
120
169
|
}
|
|
121
170
|
if (projectless)
|
|
122
|
-
throw new Error(
|
|
171
|
+
throw new Error(`${commandName} 的 --dir 和 --nodir 不能同时使用。`);
|
|
123
172
|
if (cwd !== undefined)
|
|
124
|
-
throw new Error(
|
|
173
|
+
throw new Error(`${commandName} 只能指定一次 --dir。`);
|
|
125
174
|
const directory = args[index + 1];
|
|
126
|
-
if (!directory || directory === "--dir") {
|
|
127
|
-
throw new Error(
|
|
175
|
+
if (!directory || directory === "--dir" || directory === "--nodir") {
|
|
176
|
+
throw new Error(`请在 --dir 后指定${directoryLabel},例如:${commandName} 修复会话列表 --dir ${exampleDirectory}。`);
|
|
128
177
|
}
|
|
129
178
|
cwd = directory;
|
|
130
179
|
index += 1;
|
|
131
180
|
}
|
|
132
181
|
return {
|
|
133
|
-
type: "new",
|
|
134
182
|
title: titleParts.join(" ").trim() || undefined,
|
|
135
183
|
cwd,
|
|
136
|
-
|
|
184
|
+
projectless,
|
|
137
185
|
};
|
|
138
186
|
}
|
|
139
|
-
function
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
187
|
+
function parseForkCommand(args) {
|
|
188
|
+
rejectOptions("/fork", args);
|
|
189
|
+
if (args.length > 1)
|
|
190
|
+
throw new Error("/fork 只接受一个可选的任务序号或任务 ID。");
|
|
143
191
|
return {
|
|
144
|
-
type: "
|
|
192
|
+
type: "fork",
|
|
193
|
+
...(args[0] ? { sessionId: args[0] } : {}),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
function parseForkGroupCommand(args) {
|
|
197
|
+
rejectOptions("/forkgroup", args);
|
|
198
|
+
return {
|
|
199
|
+
type: "forkgroup",
|
|
145
200
|
title: args.join(" ").trim() || undefined,
|
|
146
201
|
};
|
|
147
202
|
}
|
|
203
|
+
function rejectOptions(command, args) {
|
|
204
|
+
for (const argument of args) {
|
|
205
|
+
if (argument.startsWith("--"))
|
|
206
|
+
throw new Error(`${command} 不支持参数:${argument}。`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
148
209
|
function splitArgs(input) {
|
|
149
210
|
const args = [];
|
|
150
211
|
let current = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/commands/CommandRouter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,IAAY;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/commands/CommandRouter.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG;IACpB,OAAO;IACP,MAAM;IACN,WAAW;IACX,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,UAAU;IACV,SAAS;IACT,aAAa;IACb,UAAU;IACV,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;CACC,CAAC;AAIX,MAAM,mBAAmB,GAAyC;IAChE,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1D,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,IAAY;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE/C,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,KAAK;gBACR,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,UAAU;gBACb,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,WAAW;gBACd,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,MAAM;gBACT,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAChC,KAAK,OAAO;gBACV,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACnE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,OAAO,CAAC;YACb,KAAK,SAAS,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvD,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,cAAc,CAAC,CAAC;gBAC1E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC3C,CAAC;YACD,KAAK,UAAU;gBACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC;YAChG,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC/E,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACzE,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC/E,KAAK,MAAM,EAAE,CAAC;gBACZ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;gBACtC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBACpE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC;oBACjE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAClC,CAAC;gBACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjD,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACrD,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,CAAC;YACD,KAAK,SAAS;gBACZ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAClD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;oBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBACxF,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,KAAK,OAAO;gBACV,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,KAAK,UAAU;gBACb,OAAO,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAClE,KAAK,UAAU;gBACb,OAAO,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAClE,KAAK,aAAa;gBAChB,OAAO,eAAe,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YACxE,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAExE,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;IACjE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,KAAK,KAAK,CACjF,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,QAAQ,UAAU,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAC9F,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,OAAO,IAAI,KAAK,CAAC,QAAQ,UAAU,mBAAmB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAoB,IAAY,EAAE,IAAc,EAAE,OAAU;IAClF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IACrC,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9E,OAAO;QACL,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAChF,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1D,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAiC,EACjC,IAAc,EACd,cAAsB,EACtB,gBAAwB;IAExB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,GAAuB,CAAC;IAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,kBAAkB,CAAC,CAAC;YACnE,IAAI,GAAG,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,4BAA4B,CAAC,CAAC;YACnF,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,4BAA4B,CAAC,CAAC;QAC7E,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,gBAAgB,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,eAAe,cAAc,OAAO,WAAW,iBAAiB,gBAAgB,GAAG,CACpF,CAAC;QACJ,CAAC;QACD,GAAG,GAAG,SAAS,CAAC;QAChB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;QAC/C,GAAG;QACH,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,IAAc;IACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,UAAU,QAAQ,GAAG,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAyB,CAAC;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,KAAK,GAAG,SAAS,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -35,7 +35,7 @@ export class ConsoleTurnPresenter {
|
|
|
35
35
|
await this.outbound.sendText(contextKey, `> ${event.tool.title}`);
|
|
36
36
|
}
|
|
37
37
|
else if (event.type === "approval_requested") {
|
|
38
|
-
await this.outbound.sendText(contextKey, `Approval required: ${event.request.title}. Use Feishu
|
|
38
|
+
await this.outbound.sendText(contextKey, `Approval required: ${event.request.title}. Use Feishu's Permission settings card.`);
|
|
39
39
|
}
|
|
40
40
|
else if (event.type === "turn_completed" && !this.delivered.has(event.turnId)) {
|
|
41
41
|
this.delivered.add(event.turnId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleTurnPresenter.js","sourceRoot":"","sources":["../../src/console/ConsoleTurnPresenter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,oBAAoB;IAIF,QAAQ;IAHpB,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/C,YAA6B,QAAwB;wBAAxB,QAAQ;IAAmB,CAAC;IAEzD,eAAe,CAAC,SAAiB,EAAE,UAAkB;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB,KAAU,CAAC;IAE7B,iBAAiB,CAAC,SAAiB;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,UAAkB;QAC3D,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,OAAe;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,UAAU;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,0BAA0B,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,kBAAkB,KAAmB,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,KAAiB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,KAAK,CAAC,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ConsoleTurnPresenter.js","sourceRoot":"","sources":["../../src/console/ConsoleTurnPresenter.ts"],"names":[],"mappings":"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"}
|