@keyou007/agent-bot 0.1.12 → 0.1.13-alpha.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/CHANGELOG.md +9 -0
- package/README.md +23 -10
- package/README.zh.md +23 -10
- package/config.example.yaml +0 -24
- package/dist/cli/AgentPrerequisites.js +262 -0
- package/dist/cli/AgentPrerequisites.js.map +1 -0
- package/dist/cli/DefaultAgentSelection.js +47 -0
- package/dist/cli/DefaultAgentSelection.js.map +1 -0
- package/dist/cli/Initializer.js +165 -2
- package/dist/cli/Initializer.js.map +1 -1
- package/dist/cli/help.js +4 -4
- package/dist/cli.js +194 -4
- package/dist/cli.js.map +1 -1
- package/dist/codex/AppServerConnection.js +3 -3
- package/dist/codex/AppServerConnection.js.map +1 -1
- package/dist/codex/CodexProcessManager.js +4 -4
- package/dist/codex/CodexProcessManager.js.map +1 -1
- package/dist/codex/CodexRuntime.js +28 -16
- package/dist/codex/CodexRuntime.js.map +1 -1
- package/dist/config/loadConfig.js +0 -24
- package/dist/config/loadConfig.js.map +1 -1
- package/dist/console/ConsoleConnector.js +2 -2
- package/dist/console/ConsoleConnector.js.map +1 -1
- package/dist/feishu/CardRenderer.js +8 -8
- package/dist/feishu/CardRenderer.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/proxy/ProxySessionController.js +51 -51
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/dist/runtime/AcpRuntimeAdapter.js +3 -2
- package/dist/runtime/AcpRuntimeAdapter.js.map +1 -1
- package/docs/technical-reference.md +32 -17
- package/docs/technical-reference.zh.md +32 -17
- package/npm-shrinkwrap.json +2 -2
- package/package.json +7 -3
- package/skills/agent-bot/SKILL.md +12 -6
- package/src/cli/AgentPrerequisites.ts +377 -0
- package/src/cli/DefaultAgentSelection.ts +56 -0
- package/src/cli/Initializer.ts +204 -3
- package/src/cli/help.ts +4 -4
- package/src/cli.ts +293 -5
- package/src/codex/AppServerConnection.ts +3 -3
- package/src/codex/CodexProcessManager.ts +4 -4
- package/src/codex/CodexRuntime.ts +38 -18
- package/src/config/loadConfig.ts +0 -24
- package/src/console/ConsoleConnector.ts +2 -2
- package/src/feishu/CardRenderer.ts +8 -8
- package/src/index.ts +1 -1
- package/src/proxy/ProxySessionController.ts +52 -52
- package/src/runtime/AcpRuntimeAdapter.ts +3 -1
package/dist/cli/Initializer.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from "node:path";
|
|
|
5
5
|
import { cliText } from "./i18n.js";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import { parse as parseDotEnv } from "dotenv";
|
|
8
|
+
import { isMap, isScalar, parseDocument } from "yaml";
|
|
8
9
|
import { agentBotHome, defaultConfigPath, defaultDotEnvPath, resolveUserPath, } from "../config/paths.js";
|
|
9
10
|
const DEFAULT_CONFIG_TEMPLATE = fileURLToPath(new URL("../../config.example.yaml", import.meta.url));
|
|
10
11
|
const DEFAULT_ENV_TEMPLATE = fileURLToPath(new URL("../../.env.example", import.meta.url));
|
|
@@ -26,8 +27,8 @@ export function initializeAgentBot(options = {}) {
|
|
|
26
27
|
const reset = options.reset
|
|
27
28
|
? resetProfileContents(homePath, configPath, envPath, configDirectory)
|
|
28
29
|
: undefined;
|
|
29
|
-
const config =
|
|
30
|
-
const envFile =
|
|
30
|
+
const config = initializeConfig(configTemplatePath, configPath);
|
|
31
|
+
const envFile = initializeEnv(envTemplatePath, envPath);
|
|
31
32
|
restrictFilePermissions(envFile.path);
|
|
32
33
|
const data = ensureDirectory(path.join(configDirectory, "data"));
|
|
33
34
|
const logs = ensureDirectory(path.join(configDirectory, "logs"));
|
|
@@ -40,6 +41,55 @@ export function initializeAgentBot(options = {}) {
|
|
|
40
41
|
...(reset ? { reset: { backupPath: reset.backupPath } } : {}),
|
|
41
42
|
};
|
|
42
43
|
}
|
|
44
|
+
export function readConfiguredAgentSelection(configPath) {
|
|
45
|
+
const document = parseConfigurationDocument(fs.readFileSync(configPath, "utf8"), configPath);
|
|
46
|
+
if (!isMap(document.contents)) {
|
|
47
|
+
throw new Error(cliText(`Configuration file must contain a YAML mapping: ${configPath}`, `配置文件必须包含 YAML 映射:${configPath}`));
|
|
48
|
+
}
|
|
49
|
+
const configuredAgents = document.contents.get("agents", true);
|
|
50
|
+
if (!isMap(configuredAgents)) {
|
|
51
|
+
throw new Error(cliText(`Configuration file must contain an agents mapping: ${configPath}`, `配置文件必须包含 agents 映射:${configPath}`));
|
|
52
|
+
}
|
|
53
|
+
const agents = configuredAgents.items.flatMap((pair) => {
|
|
54
|
+
const name = yamlMappingKey(pair.key);
|
|
55
|
+
if (!name)
|
|
56
|
+
return [];
|
|
57
|
+
const titleNode = isMap(pair.value) ? pair.value.get("title", true) : undefined;
|
|
58
|
+
const title = isScalar(titleNode) && typeof titleNode.value === "string"
|
|
59
|
+
? titleNode.value
|
|
60
|
+
: name;
|
|
61
|
+
return [{ name, title }];
|
|
62
|
+
});
|
|
63
|
+
const defaultAgent = document.getIn(["defaults", "agent"]);
|
|
64
|
+
return {
|
|
65
|
+
agents,
|
|
66
|
+
...(typeof defaultAgent === "string" && defaultAgent.trim() ? { defaultAgent } : {}),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export function writeDefaultAgent(configPath, agentName) {
|
|
70
|
+
const original = fs.readFileSync(configPath, "utf8");
|
|
71
|
+
const document = parseConfigurationDocument(original, configPath);
|
|
72
|
+
if (!isMap(document.contents)) {
|
|
73
|
+
throw new Error(cliText(`Configuration file must contain a YAML mapping: ${configPath}`, `配置文件必须包含 YAML 映射:${configPath}`));
|
|
74
|
+
}
|
|
75
|
+
const configuredAgents = document.contents.get("agents", true);
|
|
76
|
+
if (!isMap(configuredAgents) || !configuredAgents.has(agentName)) {
|
|
77
|
+
throw new Error(cliText(`Cannot select an Agent that is not configured: ${agentName}`, `不能选择尚未配置的 Agent:${agentName}`));
|
|
78
|
+
}
|
|
79
|
+
const defaults = document.contents.get("defaults", true);
|
|
80
|
+
if (defaults !== undefined && !isMap(defaults)) {
|
|
81
|
+
throw new Error(cliText(`Configuration defaults must contain a YAML mapping: ${configPath}`, `配置文件的 defaults 必须是 YAML 映射:${configPath}`));
|
|
82
|
+
}
|
|
83
|
+
const currentAgent = document.getIn(["defaults", "agent"]);
|
|
84
|
+
if (currentAgent === agentName)
|
|
85
|
+
return false;
|
|
86
|
+
if (isMap(defaults))
|
|
87
|
+
defaults.set("agent", agentName);
|
|
88
|
+
else
|
|
89
|
+
document.setIn(["defaults"], { agent: agentName });
|
|
90
|
+
writeFileAtomically(configPath, document.toString());
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
43
93
|
export function readFeishuCredentials(envPath, env = process.env) {
|
|
44
94
|
const fileValues = fs.existsSync(envPath) ? parseDotEnv(fs.readFileSync(envPath, "utf8")) : {};
|
|
45
95
|
const appId = firstNonBlank(env.FEISHU_APP_ID, fileValues.FEISHU_APP_ID);
|
|
@@ -174,6 +224,119 @@ function copyIfMissing(sourcePath, targetPath) {
|
|
|
174
224
|
throw error;
|
|
175
225
|
}
|
|
176
226
|
}
|
|
227
|
+
function initializeConfig(templatePath, configPath) {
|
|
228
|
+
if (!fs.existsSync(configPath)) {
|
|
229
|
+
const copied = copyIfMissing(templatePath, configPath);
|
|
230
|
+
if (copied.status === "created")
|
|
231
|
+
return copied;
|
|
232
|
+
}
|
|
233
|
+
const original = fs.readFileSync(configPath, "utf8");
|
|
234
|
+
const template = fs.readFileSync(templatePath, "utf8");
|
|
235
|
+
const configDocument = parseConfigurationDocument(original, configPath);
|
|
236
|
+
const templateDocument = parseConfigurationDocument(template, templatePath);
|
|
237
|
+
if (!isMap(configDocument.contents) || !isMap(templateDocument.contents)) {
|
|
238
|
+
throw new Error(cliText(`Configuration files must contain a YAML mapping: ${configPath}`, `配置文件必须包含 YAML 映射:${configPath}`));
|
|
239
|
+
}
|
|
240
|
+
const updated = mergeMissingConfiguration(configDocument.contents, templateDocument.contents, []);
|
|
241
|
+
if (!updated)
|
|
242
|
+
return { path: configPath, status: "existing" };
|
|
243
|
+
writeFileAtomically(configPath, configDocument.toString());
|
|
244
|
+
return { path: configPath, status: "updated" };
|
|
245
|
+
}
|
|
246
|
+
function initializeEnv(templatePath, envPath) {
|
|
247
|
+
if (!fs.existsSync(envPath)) {
|
|
248
|
+
const copied = copyIfMissing(templatePath, envPath);
|
|
249
|
+
if (copied.status === "created")
|
|
250
|
+
return copied;
|
|
251
|
+
}
|
|
252
|
+
const original = fs.readFileSync(envPath, "utf8");
|
|
253
|
+
const template = fs.readFileSync(templatePath, "utf8");
|
|
254
|
+
const existingKeys = dotEnvKeys(original);
|
|
255
|
+
const missingLines = template
|
|
256
|
+
.split(/\r?\n/)
|
|
257
|
+
.flatMap((line) => {
|
|
258
|
+
const key = dotEnvAssignmentKey(line);
|
|
259
|
+
if (!key || existingKeys.has(key))
|
|
260
|
+
return [];
|
|
261
|
+
existingKeys.add(key);
|
|
262
|
+
return [line];
|
|
263
|
+
});
|
|
264
|
+
if (missingLines.length === 0)
|
|
265
|
+
return { path: envPath, status: "existing" };
|
|
266
|
+
const newline = original.includes("\r\n") ? "\r\n" : "\n";
|
|
267
|
+
const separator = original.length === 0 || /\r?\n$/u.test(original) ? "" : newline;
|
|
268
|
+
writeFileAtomically(envPath, `${original}${separator}${missingLines.join(newline)}${newline}`);
|
|
269
|
+
return { path: envPath, status: "updated" };
|
|
270
|
+
}
|
|
271
|
+
function parseConfigurationDocument(contents, filePath) {
|
|
272
|
+
const document = parseDocument(contents);
|
|
273
|
+
if (document.errors.length === 0)
|
|
274
|
+
return document;
|
|
275
|
+
throw new Error(cliText(`Could not upgrade configuration file ${filePath}: ${document.errors[0]?.message ?? "invalid YAML"}`, `无法升级配置文件 ${filePath}:${document.errors[0]?.message ?? "YAML 无效"}`));
|
|
276
|
+
}
|
|
277
|
+
function mergeMissingConfiguration(config, template, parentPath) {
|
|
278
|
+
let updated = false;
|
|
279
|
+
for (const templatePair of template.items) {
|
|
280
|
+
const key = yamlMappingKey(templatePair.key);
|
|
281
|
+
if (!key)
|
|
282
|
+
continue;
|
|
283
|
+
if (!config.has(key)) {
|
|
284
|
+
if (shouldPreserveMissingConfiguration(parentPath, key))
|
|
285
|
+
continue;
|
|
286
|
+
const clonedPair = templatePair.clone();
|
|
287
|
+
if (parentPath.length === 0 && key === "defaults" && isMap(clonedPair.value)) {
|
|
288
|
+
clonedPair.value.delete("agent");
|
|
289
|
+
if (clonedPair.value.items.length === 0)
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
config.add(clonedPair);
|
|
293
|
+
updated = true;
|
|
294
|
+
continue;
|
|
295
|
+
}
|
|
296
|
+
const configValue = config.get(key, true);
|
|
297
|
+
if (isMap(configValue) && isMap(templatePair.value)) {
|
|
298
|
+
updated = mergeMissingConfiguration(configValue, templatePair.value, [...parentPath, key]) || updated;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return updated;
|
|
302
|
+
}
|
|
303
|
+
function shouldPreserveMissingConfiguration(parentPath, key) {
|
|
304
|
+
if (parentPath.length === 1 && parentPath[0] === "agents")
|
|
305
|
+
return true;
|
|
306
|
+
return parentPath.length === 1 && parentPath[0] === "defaults" && key === "agent";
|
|
307
|
+
}
|
|
308
|
+
function yamlMappingKey(value) {
|
|
309
|
+
if (typeof value === "string")
|
|
310
|
+
return value;
|
|
311
|
+
return isScalar(value) && typeof value.value === "string" ? value.value : undefined;
|
|
312
|
+
}
|
|
313
|
+
function dotEnvKeys(contents) {
|
|
314
|
+
return new Set(contents.split(/\r?\n/).flatMap((line) => {
|
|
315
|
+
const key = dotEnvAssignmentKey(line);
|
|
316
|
+
return key ? [key] : [];
|
|
317
|
+
}));
|
|
318
|
+
}
|
|
319
|
+
function dotEnvAssignmentKey(line) {
|
|
320
|
+
return /^\s*(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=/u.exec(line)?.[1];
|
|
321
|
+
}
|
|
322
|
+
function writeFileAtomically(filePath, contents) {
|
|
323
|
+
const temporaryPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
324
|
+
let temporaryFile;
|
|
325
|
+
try {
|
|
326
|
+
temporaryFile = fs.openSync(temporaryPath, "wx", fs.statSync(filePath).mode);
|
|
327
|
+
fs.writeFileSync(temporaryFile, contents, "utf8");
|
|
328
|
+
fs.fsyncSync(temporaryFile);
|
|
329
|
+
fs.closeSync(temporaryFile);
|
|
330
|
+
temporaryFile = undefined;
|
|
331
|
+
fs.renameSync(temporaryPath, filePath);
|
|
332
|
+
syncDirectory(path.dirname(filePath));
|
|
333
|
+
}
|
|
334
|
+
finally {
|
|
335
|
+
if (temporaryFile !== undefined)
|
|
336
|
+
fs.closeSync(temporaryFile);
|
|
337
|
+
fs.rmSync(temporaryPath, { force: true });
|
|
338
|
+
}
|
|
339
|
+
}
|
|
177
340
|
function resetProfileContents(homePath, configPath, envPath, configDirectory) {
|
|
178
341
|
const resolvedHome = path.resolve(homePath);
|
|
179
342
|
if (path.resolve(configDirectory) !== resolvedHome
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Initializer.js","sourceRoot":"","sources":["../../src/cli/Initializer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Initializer.js","sourceRoot":"","sources":["../../src/cli/Initializer.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/help.js
CHANGED
|
@@ -2,13 +2,13 @@ import { cliLanguage } from "./i18n.js";
|
|
|
2
2
|
export function renderCliHelp(version, language = cliLanguage) {
|
|
3
3
|
if (language === "zh") {
|
|
4
4
|
return `Agent Bot ${version}
|
|
5
|
-
通过飞书使用本地 Codex
|
|
5
|
+
通过飞书使用本地 Codex、TraeX 和兼容 ACP 的 Agent。
|
|
6
6
|
|
|
7
7
|
用法:
|
|
8
8
|
agentbot [选项] <命令>
|
|
9
9
|
|
|
10
10
|
常用命令:
|
|
11
|
-
init
|
|
11
|
+
init 检查并选择 Agent,初始化飞书应用和服务
|
|
12
12
|
init --reset 重置并重新配置显式指定的 Profile
|
|
13
13
|
console 打开本地控制台
|
|
14
14
|
server start 在后台启动 Agent Bot
|
|
@@ -49,13 +49,13 @@ export function renderCliHelp(version, language = cliLanguage) {
|
|
|
49
49
|
`;
|
|
50
50
|
}
|
|
51
51
|
return `Agent Bot ${version}
|
|
52
|
-
Use
|
|
52
|
+
Use Codex, TraeX, and compatible ACP agents from Lark/Feishu.
|
|
53
53
|
|
|
54
54
|
Usage:
|
|
55
55
|
agentbot [options] <command>
|
|
56
56
|
|
|
57
57
|
Common commands:
|
|
58
|
-
init
|
|
58
|
+
init Check and select an Agent; initialize the Lark app and service
|
|
59
59
|
init --reset Reset and reconfigure an explicit profile
|
|
60
60
|
console Open the local console
|
|
61
61
|
server start Start Agent Bot in the background
|
package/dist/cli.js
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import { spawnSync } from "node:child_process";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { createInterface } from "node:readline";
|
|
5
6
|
import { loadConfig, loadConfigWithoutEnvironmentMutation } from "./config/loadConfig.js";
|
|
6
7
|
import { sendControlRequest, isServerReachable } from "./cli/LocalControlClient.js";
|
|
7
8
|
import { controlEndpoint, } from "./cli/controlProtocol.js";
|
|
8
|
-
import { acquireInitializationLock, cleanupFeishuCredentialTemporaryFiles, initializeAgentBot, readFeishuCredentials, shouldCreateFeishuApp, writeFeishuCredentials, } from "./cli/Initializer.js";
|
|
9
|
+
import { acquireInitializationLock, cleanupFeishuCredentialTemporaryFiles, initializeAgentBot, readConfiguredAgentSelection, readFeishuCredentials, shouldCreateFeishuApp, writeDefaultAgent, writeFeishuCredentials, } from "./cli/Initializer.js";
|
|
9
10
|
import { parseInitCommandOptions } from "./cli/initOptions.js";
|
|
10
11
|
import { listenForManualPermissionSkip, listenForOptionalAuthorizationSkip, } from "./cli/OptionalAuthorizationSkip.js";
|
|
11
12
|
import { registerFeishuApp, } from "./cli/FeishuAppRegistration.js";
|
|
12
13
|
import { ensureFeishuAppConfiguration, } from "./cli/FeishuAppConfiguration.js";
|
|
13
14
|
import { renderCliHelp } from "./cli/help.js";
|
|
14
15
|
import { cliLanguage, cliText, localizeCliErrorMessage } from "./cli/i18n.js";
|
|
16
|
+
import { inspectSupportedAgent, inspectSupportedAgents, runSupportedAgentMaintenance, } from "./cli/AgentPrerequisites.js";
|
|
17
|
+
import { parseMaintenanceSelection, resolveDefaultAgentChoice, selectableDefaultAgents, } from "./cli/DefaultAgentSelection.js";
|
|
15
18
|
import { formatServerStatus, withConfiguredFeishuAppId } from "./cli/serverStatus.js";
|
|
16
19
|
import { resolveSystemSkillsRoot, SkillRegistry } from "./cli/SkillRegistry.js";
|
|
17
20
|
import { readPackageVersion } from "./cli/packageVersion.js";
|
|
@@ -19,6 +22,7 @@ import { applyExplicitProfile, parseGlobalOptions } from "./cli/profile.js";
|
|
|
19
22
|
import { printVerificationQrAndLink } from "./cli/VerificationOutput.js";
|
|
20
23
|
import { startInitializedServer, startServer, } from "./cli/ServerStarter.js";
|
|
21
24
|
import { taskChatRoute } from "./cli/taskChatRoute.js";
|
|
25
|
+
import { refreshedSystemEnvironment } from "./supervision/systemEnvironment.js";
|
|
22
26
|
import { parseTaskForkGroupOptions, parseTaskNewGroupOptions, } from "./cli/taskGroupOptions.js";
|
|
23
27
|
import { StateStore } from "./state/StateStore.js";
|
|
24
28
|
import { nodeDiagnosticReportArguments, prepareCrashReportDirectory, resolveSupervisorDiagnosticsPaths, } from "./supervision/SupervisorDiagnostics.js";
|
|
@@ -79,10 +83,12 @@ async function initCommand(input, configPath, explicitProfile) {
|
|
|
79
83
|
paths = initializeAgentBot({ configPath, reset: options.reset });
|
|
80
84
|
if (!options.json)
|
|
81
85
|
printInitializationPaths(paths);
|
|
86
|
+
const agents = await initializeSupportedAgents(options.json);
|
|
87
|
+
const defaultAgent = await selectDefaultAgent(paths.config.path, agents, options.json);
|
|
82
88
|
initializationLock ??= acquireInitializationLock(paths.home.path);
|
|
83
89
|
cleanupFeishuCredentialTemporaryFiles(paths.env.path);
|
|
84
90
|
const feishu = await initializeFeishu(paths, options);
|
|
85
|
-
initialized = { ...paths, feishu };
|
|
91
|
+
initialized = { ...paths, agents, defaultAgent, feishu };
|
|
86
92
|
}
|
|
87
93
|
finally {
|
|
88
94
|
initializationLock?.release();
|
|
@@ -99,6 +105,184 @@ async function initCommand(input, configPath, explicitProfile) {
|
|
|
99
105
|
else
|
|
100
106
|
printInitializationServerResult(server);
|
|
101
107
|
}
|
|
108
|
+
async function initializeSupportedAgents(json) {
|
|
109
|
+
const output = json ? process.stderr : process.stdout;
|
|
110
|
+
output.write(cliText("\nAgent setup\nChecking Codex and TraeX...\n", "\nAgent 设置\n正在检查 Codex 和 TraeX...\n"));
|
|
111
|
+
const inspections = await inspectSupportedAgents();
|
|
112
|
+
for (const inspection of inspections)
|
|
113
|
+
printAgentInspection(inspection, output);
|
|
114
|
+
const actionable = inspections.filter((inspection) => inspection.action);
|
|
115
|
+
if (actionable.length === 0)
|
|
116
|
+
return inspections;
|
|
117
|
+
output.write(cliText("\nAvailable actions:\n", "\n可执行的操作:\n"));
|
|
118
|
+
for (const [index, inspection] of actionable.entries()) {
|
|
119
|
+
output.write(cliText(` ${index + 1}. ${inspection.action?.kind === "install" ? "Install" : "Upgrade"} ${inspection.name}: ${inspection.action?.command}\n`, ` ${index + 1}. ${inspection.action?.kind === "install" ? "安装" : "升级"} ${inspection.name}:${inspection.action?.command}\n`));
|
|
120
|
+
}
|
|
121
|
+
let selected = new Set();
|
|
122
|
+
if (!process.stdin.isTTY) {
|
|
123
|
+
output.write(cliText("No interactive terminal is available. Run the commands above manually if needed.\n", "当前没有交互式终端,如有需要请手动执行上面的命令。\n"));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
selected = new Set(await promptForAgentMaintenance(actionable.length));
|
|
127
|
+
if (selected.size === 0) {
|
|
128
|
+
output.write(cliText("No Agent changes selected.\n", "已跳过 Agent 安装和升级。\n"));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const initialized = [];
|
|
132
|
+
for (const inspection of inspections) {
|
|
133
|
+
if (!inspection.action) {
|
|
134
|
+
initialized.push(inspection);
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
const actionIndex = actionable.indexOf(inspection);
|
|
138
|
+
if (!selected.has(actionIndex)) {
|
|
139
|
+
initialized.push({
|
|
140
|
+
...inspection,
|
|
141
|
+
assistance: { status: process.stdin.isTTY ? "skipped" : "unavailable" },
|
|
142
|
+
});
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
output.write(cliText(`\nRunning ${inspection.name} ${inspection.action.kind}: ${inspection.action.command}\n`, `\n正在${inspection.action.kind === "install" ? "安装" : "升级"} ${inspection.name}:${inspection.action.command}\n`));
|
|
146
|
+
const maintenance = await runSupportedAgentMaintenance(inspection.id, inspection.action.kind);
|
|
147
|
+
if (maintenance.status !== 0 || maintenance.error) {
|
|
148
|
+
const error = maintenance.error ?? cliText(`Command exited with code ${maintenance.status ?? "unknown"}.`, `命令退出码为 ${maintenance.status ?? "未知"}。`);
|
|
149
|
+
output.write(cliText(`${inspection.name} ${inspection.action.kind} did not complete; initialization will continue.\n`, `${inspection.name}${inspection.action.kind === "install" ? "安装" : "升级"}未完成,初始化将继续。\n`));
|
|
150
|
+
initialized.push({ ...inspection, assistance: { status: "failed", error } });
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
refreshCurrentProcessPath();
|
|
154
|
+
const refreshed = await inspectSupportedAgent(inspection.id);
|
|
155
|
+
if (refreshed.installedVersion) {
|
|
156
|
+
output.write(cliText(`${inspection.name} is ready (${refreshed.installedVersion}).\n`, `${inspection.name} 已就绪(${refreshed.installedVersion})。\n`));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
output.write(cliText(`${inspection.name} command completed, but the CLI is not visible in this process. Open a new terminal and run agentbot init again.\n`, `${inspection.name} 命令已完成,但当前进程仍无法找到该 CLI。请打开新终端后重新运行 agentbot init。\n`));
|
|
160
|
+
}
|
|
161
|
+
initialized.push({ ...refreshed, assistance: { status: "completed" } });
|
|
162
|
+
}
|
|
163
|
+
return initialized;
|
|
164
|
+
}
|
|
165
|
+
async function selectDefaultAgent(configPath, inspections, json) {
|
|
166
|
+
const output = json ? process.stderr : process.stdout;
|
|
167
|
+
const configured = readConfiguredAgentSelection(configPath);
|
|
168
|
+
const choices = selectableDefaultAgents(configured.agents, inspections);
|
|
169
|
+
if (!process.stdin.isTTY) {
|
|
170
|
+
if (!configured.defaultAgent || !configured.agents.some((agent) => agent.name === configured.defaultAgent)) {
|
|
171
|
+
throw new Error(cliText("A default Agent is not configured. Run agentbot init in an interactive terminal and select one.", "尚未配置默认 Agent。请在交互式终端中运行 agentbot init 并选择一个 Agent。"));
|
|
172
|
+
}
|
|
173
|
+
output.write(cliText(`Default Agent: ${configured.defaultAgent} (kept because no interactive terminal is available)\n`, `默认 Agent:${configured.defaultAgent}(当前没有交互式终端,已保留现有设置)\n`));
|
|
174
|
+
return { name: configured.defaultAgent, status: "existing" };
|
|
175
|
+
}
|
|
176
|
+
if (choices.length === 0) {
|
|
177
|
+
throw new Error(cliText("No available configured Agent can be selected. Install Codex or TraeX, then run agentbot init again.", "没有可选择的已配置 Agent。请安装 Codex 或 TraeX,然后重新运行 agentbot init。"));
|
|
178
|
+
}
|
|
179
|
+
output.write(cliText("\nSelect the default Agent:\n", "\n请选择默认 Agent:\n"));
|
|
180
|
+
for (const [index, choice] of choices.entries()) {
|
|
181
|
+
const version = choice.installedVersion ? ` (${choice.installedVersion})` : "";
|
|
182
|
+
const current = choice.name === configured.defaultAgent
|
|
183
|
+
? cliText(" [current]", " [当前]")
|
|
184
|
+
: "";
|
|
185
|
+
output.write(` ${index + 1}. ${choice.name} - ${choice.title}${version}${current}\n`);
|
|
186
|
+
}
|
|
187
|
+
const selected = choices[await promptForDefaultAgent(choices, configured.defaultAgent)];
|
|
188
|
+
if (!selected)
|
|
189
|
+
throw new Error(cliText("Default Agent selection failed.", "默认 Agent 选择失败。"));
|
|
190
|
+
const updated = writeDefaultAgent(configPath, selected.name);
|
|
191
|
+
output.write(updated
|
|
192
|
+
? cliText(`Saved default Agent: ${selected.name}\n`, `已保存默认 Agent:${selected.name}\n`)
|
|
193
|
+
: cliText(`Default Agent unchanged: ${selected.name}\n`, `默认 Agent 保持不变:${selected.name}\n`));
|
|
194
|
+
return { name: selected.name, status: updated ? "selected" : "existing" };
|
|
195
|
+
}
|
|
196
|
+
function promptForAgentMaintenance(choiceCount) {
|
|
197
|
+
const readline = createInterface({ input: process.stdin, output: process.stderr });
|
|
198
|
+
return new Promise((resolve, reject) => {
|
|
199
|
+
let settled = false;
|
|
200
|
+
const finish = (selection) => {
|
|
201
|
+
settled = true;
|
|
202
|
+
readline.close();
|
|
203
|
+
resolve(selection);
|
|
204
|
+
};
|
|
205
|
+
const ask = () => {
|
|
206
|
+
readline.question(cliText("Enter action numbers separated by commas, type all, or press Enter to skip: ", "请输入要执行的操作编号(多个用逗号分隔),输入 all 选择全部,直接回车跳过:"), (answer) => {
|
|
207
|
+
const selection = parseMaintenanceSelection(answer, choiceCount);
|
|
208
|
+
if (selection) {
|
|
209
|
+
finish(selection);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
process.stderr.write(cliText(`Enter numbers from 1 to ${choiceCount}, all, or press Enter to skip.\n`, `请输入 1 到 ${choiceCount} 之间的编号、all,或直接回车跳过。\n`));
|
|
213
|
+
ask();
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
listenForPromptCancellation(readline, () => {
|
|
217
|
+
settled = true;
|
|
218
|
+
reject(new Error(cliText("Initialization was cancelled.", "初始化已取消。")));
|
|
219
|
+
}, () => settled);
|
|
220
|
+
ask();
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
function promptForDefaultAgent(choices, currentAgent) {
|
|
224
|
+
const readline = createInterface({ input: process.stdin, output: process.stderr });
|
|
225
|
+
return new Promise((resolve, reject) => {
|
|
226
|
+
let settled = false;
|
|
227
|
+
const finish = (index) => {
|
|
228
|
+
settled = true;
|
|
229
|
+
readline.close();
|
|
230
|
+
resolve(index);
|
|
231
|
+
};
|
|
232
|
+
const ask = () => {
|
|
233
|
+
const currentAvailable = choices.some((choice) => choice.name === currentAgent);
|
|
234
|
+
readline.question(cliText(`Enter a number or Agent name${currentAvailable ? ` [${currentAgent}]` : ""}: `, `请输入编号或 Agent 标准名${currentAvailable ? ` [${currentAgent}]` : ""}:`), (answer) => {
|
|
235
|
+
const index = resolveDefaultAgentChoice(answer, choices, currentAgent);
|
|
236
|
+
if (index !== undefined) {
|
|
237
|
+
finish(index);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
process.stderr.write(cliText(`Enter a number from 1 to ${choices.length} or an Agent standard name.\n`, `请输入 1 到 ${choices.length} 之间的编号,或 Agent 标准名。\n`));
|
|
241
|
+
ask();
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
listenForPromptCancellation(readline, () => {
|
|
245
|
+
settled = true;
|
|
246
|
+
reject(new Error(cliText("Initialization was cancelled.", "初始化已取消。")));
|
|
247
|
+
}, () => settled);
|
|
248
|
+
ask();
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
function listenForPromptCancellation(readline, cancel, isSettled) {
|
|
252
|
+
readline.once("SIGINT", () => {
|
|
253
|
+
if (!isSettled())
|
|
254
|
+
cancel();
|
|
255
|
+
readline.close();
|
|
256
|
+
});
|
|
257
|
+
readline.once("close", () => {
|
|
258
|
+
if (!isSettled())
|
|
259
|
+
cancel();
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
function printAgentInspection(inspection, output) {
|
|
263
|
+
if (inspection.state === "missing") {
|
|
264
|
+
output.write(cliText(` ${inspection.name}: not installed\n`, ` ${inspection.name}:未安装\n`));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (inspection.state === "outdated") {
|
|
268
|
+
output.write(cliText(` ${inspection.name}: ${inspection.installedVersion}; update available (${inspection.latestVersion})\n`, ` ${inspection.name}:${inspection.installedVersion};可升级到 ${inspection.latestVersion}\n`));
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (inspection.latestCheckFailed) {
|
|
272
|
+
output.write(cliText(` ${inspection.name}: ${inspection.installedVersion}; latest-version check unavailable\n`, ` ${inspection.name}:${inspection.installedVersion};无法检查最新版本\n`));
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
output.write(cliText(` ${inspection.name}: ${inspection.installedVersion} (up to date)\n`, ` ${inspection.name}:${inspection.installedVersion}(已是最新)\n`));
|
|
276
|
+
}
|
|
277
|
+
function refreshCurrentProcessPath() {
|
|
278
|
+
const refreshed = refreshedSystemEnvironment();
|
|
279
|
+
if (!refreshed.refreshed)
|
|
280
|
+
return;
|
|
281
|
+
const pathEntry = Object.entries(refreshed.environment)
|
|
282
|
+
.find(([name]) => name.toLowerCase() === "path");
|
|
283
|
+
if (pathEntry?.[1])
|
|
284
|
+
process.env.PATH = pathEntry[1];
|
|
285
|
+
}
|
|
102
286
|
async function initializeFeishu(paths, options) {
|
|
103
287
|
const existing = readFeishuCredentials(paths.env.path);
|
|
104
288
|
if (options.skipFeishu) {
|
|
@@ -107,6 +291,9 @@ async function initializeFeishu(paths, options) {
|
|
|
107
291
|
...(existing.appId ? { appId: existing.appId } : {}),
|
|
108
292
|
};
|
|
109
293
|
}
|
|
294
|
+
if (!options.json) {
|
|
295
|
+
process.stdout.write(cliText("\nLark setup\n", "\n飞书设置\n"));
|
|
296
|
+
}
|
|
110
297
|
const controller = new AbortController();
|
|
111
298
|
const onInterrupt = () => controller.abort(new Error(cliText("Initialization was cancelled.", "初始化已取消。")));
|
|
112
299
|
process.once("SIGINT", onInterrupt);
|
|
@@ -134,7 +321,7 @@ async function initializeFeishu(paths, options) {
|
|
|
134
321
|
status = "created";
|
|
135
322
|
}
|
|
136
323
|
if (!options.json) {
|
|
137
|
-
process.stdout.write(cliText("
|
|
324
|
+
process.stdout.write(cliText("Checking app permissions, events, and callbacks...\n", "正在检查应用权限、事件和回调...\n"));
|
|
138
325
|
}
|
|
139
326
|
const manualPermissionSkip = new AbortController();
|
|
140
327
|
const optionalSkip = new AbortController();
|
|
@@ -528,7 +715,7 @@ function printSkillStatus(status) {
|
|
|
528
715
|
}
|
|
529
716
|
}
|
|
530
717
|
function printInitializationPaths(result) {
|
|
531
|
-
process.stdout.write(cliText("
|
|
718
|
+
process.stdout.write(cliText("Profile setup\n", "Profile 设置\n"));
|
|
532
719
|
if (result.reset) {
|
|
533
720
|
process.stdout.write(`${cliText("Reset backup: ", "重置备份:")}${result.reset.backupPath}\n`);
|
|
534
721
|
}
|
|
@@ -540,6 +727,7 @@ function printInitializationPaths(result) {
|
|
|
540
727
|
}
|
|
541
728
|
function printInitializationResult(result) {
|
|
542
729
|
process.stdout.write(cliText("\nAgent Bot initialization completed.\n", "\nAgent Bot 初始化完成。\n"));
|
|
730
|
+
process.stdout.write(`${cliText("Default Agent: ", "默认 Agent:")}${result.defaultAgent.name}\n`);
|
|
543
731
|
if (result.feishu.status === "created") {
|
|
544
732
|
process.stdout.write(cliText(`Lark app: created and credentials saved (${result.feishu.appId})\n`, `飞书应用:已创建并保存凭据 (${result.feishu.appId})\n`));
|
|
545
733
|
}
|
|
@@ -671,6 +859,8 @@ function feishuFeatureWarnings(missing) {
|
|
|
671
859
|
function initializationStatusLabel(status) {
|
|
672
860
|
if (status === "created")
|
|
673
861
|
return cliText("created", "已创建");
|
|
862
|
+
if (status === "updated")
|
|
863
|
+
return cliText("updated with missing settings", "已补全缺失配置");
|
|
674
864
|
if (status === "reset")
|
|
675
865
|
return cliText("reset from template", "已从模板重置");
|
|
676
866
|
return cliText("already exists; unchanged", "已存在,未修改");
|