@keyou007/agent-bot 0.1.16 → 0.1.17-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 +8 -0
- package/README.md +4 -2
- package/README.zh.md +4 -2
- package/config.example.yaml +8 -0
- package/dist/cli/help.js +4 -4
- package/dist/cli/taskTarget.js +7 -0
- package/dist/cli/taskTarget.js.map +1 -1
- package/dist/cli.js +12 -12
- package/dist/cli.js.map +1 -1
- package/dist/codex/CodexRuntime.js +40 -12
- package/dist/codex/CodexRuntime.js.map +1 -1
- package/dist/config/AgentExecutionDefaultsStore.js +71 -0
- package/dist/config/AgentExecutionDefaultsStore.js.map +1 -0
- package/dist/config/loadConfig.js +8 -0
- package/dist/config/loadConfig.js.map +1 -1
- package/dist/config/schema.js +7 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/feishu/CardRenderer.js +29 -27
- package/dist/feishu/CardRenderer.js.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/proxy/ProxySessionController.js +255 -30
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/dist/state/StateStore.js +62 -9
- package/dist/state/StateStore.js.map +1 -1
- package/dist/supervision/restartNotificationTarget.js +9 -0
- package/dist/supervision/restartNotificationTarget.js.map +1 -0
- package/docs/technical-reference.md +7 -3
- package/docs/technical-reference.zh.md +7 -3
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/skills/agent-bot/SKILL.md +3 -1
- package/src/cli/help.ts +4 -4
- package/src/cli/taskTarget.ts +11 -0
- package/src/cli.ts +16 -20
- package/src/codex/CodexRuntime.ts +38 -10
- package/src/config/AgentExecutionDefaultsStore.ts +71 -0
- package/src/config/loadConfig.ts +8 -0
- package/src/config/schema.ts +13 -1
- package/src/feishu/CardRenderer.ts +30 -22
- package/src/index.ts +17 -2
- package/src/proxy/ProxySessionController.ts +330 -40
- package/src/runtime/types.ts +8 -0
- package/src/state/StateStore.ts +100 -9
- package/src/supervision/restartNotificationTarget.ts +12 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,14 @@ The project follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.17-alpha.0] - 2026-08-28
|
|
10
|
+
|
|
11
|
+
- Keep startup-card time formatting fast and deterministic on Windows Node.js 22 runners.
|
|
12
|
+
- Compact the Turns card into a Git-graph-style list, place subdued timestamps directly after Prompts, hide displayed Turn IDs, and reserve connector-only rows for real branch transitions.
|
|
13
|
+
- Return safe-restart status cards to the source task when invoked by an Agent, use the configured user's private chat for ordinary terminal requests, and preserve explicit `--task` overrides.
|
|
14
|
+
- Save Provider, model, reasoning effort, and permission defaults independently for each Agent whenever task settings change, and apply the selected Agent's saved defaults to new tasks without inherited settings.
|
|
15
|
+
- Preserve every completed source Turn in Fork and ForkGroup task history, and hydrate missing ancestry once when opening Turns for forks created by earlier Alpha builds.
|
|
16
|
+
|
|
9
17
|
## [0.1.16] - 2026-08-26
|
|
10
18
|
|
|
11
19
|
- Promote 0.1.16-alpha.4 to the stable release channel.
|
package/README.md
CHANGED
|
@@ -105,7 +105,7 @@ Safely restart the service:
|
|
|
105
105
|
agentbot server restart
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
It waits for currently running Agent tasks to finish before restarting, allowing every task to complete normally. When triggered from a Feishu topic, both restart status and the post-restart startup card return to that topic.
|
|
108
|
+
It waits for currently running Agent tasks to finish before restarting, allowing every task to complete normally. When an Agent invokes the CLI, the status card returns to its source task; from an ordinary terminal it goes to the configured user's private chat. Add `--task <task>` to override either destination. When triggered from a Feishu topic, both restart status and the post-restart startup card return to that topic.
|
|
109
109
|
|
|
110
110
|
To start Agent Bot automatically at user login:
|
|
111
111
|
|
|
@@ -214,7 +214,7 @@ agentbot task dismiss [task] --yes
|
|
|
214
214
|
|
|
215
215
|
Inside an Agent started by Agent Bot, `[task]` defaults to the current task; use `--task <task>` to target another task explicitly. A regular terminal must supply a task. `task current` shows the automatically detected task details. A task reference can be a number from `task list`, a task ID, or an unambiguous task-ID prefix. Every Feishu task, fork, queue, Agent, Provider, model, thinking, permission, Goal, historical Turn, Reset, group mute, group dismissal, directory, file, shell, and restart operation has a CLI counterpart. Run `agentbot --help` for the complete list and options.
|
|
216
216
|
|
|
217
|
-
`task newgroup` creates a Feishu group and a new task. By default, it inherits the source task's Agent and execution settings. `--agent <standard-name>` selects another configured Agent; the source project shape is still inherited, while Provider, model, reasoning effort, and permission mode use the target Agent's
|
|
217
|
+
`task newgroup` creates a Feishu group and a new task. By default, it inherits the source task's Agent and execution settings. `--agent <standard-name>` selects another configured Agent; the source project shape is still inherited, while Provider, model, reasoning effort, and permission mode use the target Agent's saved defaults. `--dir` overrides the project directory and supports `~`; `--nodir` forces a Projectless App Server task. Project and Projectless group names can be customized separately through `feishu.groupNameFormat`. `task forkgroup` forks from the source task's latest available completed turn without interrupting an active turn. Both commands require the Server to be running, invite the authorizing user saved in the Profile, leave the source conversation on its current task, and support `--json`.
|
|
218
218
|
|
|
219
219
|
## Feishu Commands
|
|
220
220
|
|
|
@@ -278,6 +278,8 @@ Agent Bot keeps user-owned files outside the repository:
|
|
|
278
278
|
|
|
279
279
|
Set `AGENT_BOT_HOME` to use another user-data directory. See [config.example.yaml](config.example.yaml) for configuration examples.
|
|
280
280
|
|
|
281
|
+
Provider, model, reasoning effort, and permission choices apply to the current task and are also saved under that Agent's `defaults`. Future tasks that have no same-Agent settings to inherit start with those saved defaults; each configured Agent keeps its own values.
|
|
282
|
+
|
|
281
283
|
`feishu.groupNameFormat` defines separate name templates for new Project and Projectless groups, with variables for the operating system, Agent, project, task name, and date. See the [technical reference](docs/technical-reference.md#configuration-model) for the complete format.
|
|
282
284
|
|
|
283
285
|
Agent processes inherit ordinary parent-process variables and their explicit `agents.<name>.env` settings. Before starting an Agent, Agent Bot removes inherited `FEISHU_*` credentials and internal `AGENT_BOT_*` state, then provides only namespaced, non-secret Profile and Lark identity context. `FEISHU_APP_SECRET` is never forwarded to an Agent process.
|
package/README.zh.md
CHANGED
|
@@ -105,7 +105,7 @@ agentbot server stop
|
|
|
105
105
|
agentbot server restart
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
它会等待当前运行中的 Agent
|
|
108
|
+
它会等待当前运行中的 Agent 任务完成后自动重启,确保所有任务都能正常执行。Agent 调用 CLI 时,状态卡返回其来源任务;普通终端调用时,状态卡发送到配置用户的私聊。传入 `--task <任务>` 可覆盖这两种默认目标。在飞书话题中触发时,重启状态和重启后的启动卡都会返回原话题。
|
|
109
109
|
|
|
110
110
|
如需在用户登录后自动启动 Agent Bot:
|
|
111
111
|
|
|
@@ -214,7 +214,7 @@ agentbot task dismiss [任务] --yes
|
|
|
214
214
|
|
|
215
215
|
在 Agent Bot 启动的 Agent 中,省略 `[任务]` 会自动使用当前任务;需要操作其他任务时可传入 `--task <任务>`。普通终端仍必须指定任务。`task current` 用于查看自动识别出的任务详情。任务引用可以是 `task list` 中的序号、任务 ID 或唯一的任务 ID 前缀。飞书中的任务、分支、排队、Agent、Provider、模型、思考强度、权限、Goal、历史 Turn、Reset、群静音、解散群、目录、文件、Shell 和重启能力都有对应的 CLI 命令;运行 `agentbot --help` 查看完整列表和参数。
|
|
216
216
|
|
|
217
|
-
`task newgroup` 会创建飞书群和新任务。默认继承源任务的 Agent 和运行设置;`--agent <标准名>` 可选择另一个已配置的 Agent,此时仍继承源任务的项目形态,但 Provider、模型、思考强度和权限模式使用目标 Agent
|
|
217
|
+
`task newgroup` 会创建飞书群和新任务。默认继承源任务的 Agent 和运行设置;`--agent <标准名>` 可选择另一个已配置的 Agent,此时仍继承源任务的项目形态,但 Provider、模型、思考强度和权限模式使用目标 Agent 已保存的默认值。`--dir` 可覆盖项目目录并支持 `~`,`--nodir` 会强制创建 Projectless App Server 任务。Project 与 Projectless 群名可在 `feishu.groupNameFormat` 中分别自定义。`task forkgroup` 从源任务最新可用的已完成 turn 创建分支,不会中断正在执行的 turn。两个命令都要求 Server 正在运行,邀请 Profile 中保存的授权用户,不会切换源会话的当前任务,并支持 `--json`。
|
|
218
218
|
|
|
219
219
|
## 飞书命令
|
|
220
220
|
|
|
@@ -278,6 +278,8 @@ Agent Bot 将用户相关文件保存在仓库之外:
|
|
|
278
278
|
|
|
279
279
|
可通过 `AGENT_BOT_HOME` 修改用户数据目录。配置示例见 [config.example.yaml](config.example.yaml)。
|
|
280
280
|
|
|
281
|
+
Provider、模型、思考强度和权限设置会作用于当前任务,同时保存到对应 Agent 的 `defaults` 中。以后创建没有同 Agent 设置可继承的新任务时,会使用这些默认值;每个已配置 Agent 分别保存自己的设置。
|
|
282
|
+
|
|
281
283
|
`feishu.groupNameFormat` 可分别设置 Project 与 Projectless 新群的名称模板,支持系统、Agent、项目、任务名和日期变量。完整格式说明见[技术参考](docs/technical-reference.zh.md#配置模型)。
|
|
282
284
|
|
|
283
285
|
Agent 进程会继承普通父进程变量及其显式配置的 `agents.<name>.env`。启动 Agent 前,Agent Bot 会移除继承的 `FEISHU_*` 凭据和内部 `AGENT_BOT_*` 状态,再仅提供带命名空间的非敏感 Profile 与 Lark 身份上下文;`FEISHU_APP_SECRET` 永远不会传入 Agent 进程。
|
package/config.example.yaml
CHANGED
|
@@ -30,6 +30,12 @@ agents:
|
|
|
30
30
|
- "--listen"
|
|
31
31
|
- "stdio://"
|
|
32
32
|
env: {}
|
|
33
|
+
# Updated automatically by the Provider, Model, Thinking, and Permission settings.
|
|
34
|
+
defaults:
|
|
35
|
+
# modelProvider: "openai"
|
|
36
|
+
# model: "gpt-5"
|
|
37
|
+
# reasoningEffort: "high"
|
|
38
|
+
permissionMode: "auto"
|
|
33
39
|
|
|
34
40
|
traex:
|
|
35
41
|
kind: "app-server"
|
|
@@ -40,6 +46,8 @@ agents:
|
|
|
40
46
|
- "--listen"
|
|
41
47
|
- "stdio://"
|
|
42
48
|
env: {}
|
|
49
|
+
defaults:
|
|
50
|
+
permissionMode: "auto"
|
|
43
51
|
|
|
44
52
|
defaults:
|
|
45
53
|
agent: "codex"
|
package/dist/cli/help.js
CHANGED
|
@@ -15,7 +15,7 @@ export function renderCliHelp(version, language = cliLanguage) {
|
|
|
15
15
|
server start 在后台启动 Agent Bot
|
|
16
16
|
server status 显示服务、飞书 App ID、Agent 进程和安全重启状态
|
|
17
17
|
server autostart <操作> 管理当前 Profile 的系统自启动
|
|
18
|
-
server restart [--task <任务>]
|
|
18
|
+
server restart [--task <任务>] 安排安全重启;Agent 内通知来源任务,终端内通知私聊
|
|
19
19
|
server stop 停止 Agent Bot
|
|
20
20
|
skills status 显示内置 Skill 状态
|
|
21
21
|
skills install 安装内置 Skill
|
|
@@ -70,7 +70,7 @@ export function renderCliHelp(version, language = cliLanguage) {
|
|
|
70
70
|
--allow-downgrade 明确允许安装较旧版本
|
|
71
71
|
|
|
72
72
|
重启选项:
|
|
73
|
-
--task <任务>
|
|
73
|
+
--task <任务> 覆盖自动识别的来源任务或默认私聊
|
|
74
74
|
--reason <原因> 设置重启原因
|
|
75
75
|
--immediate 立即重启,可能中断任务
|
|
76
76
|
|
|
@@ -106,7 +106,7 @@ Common commands:
|
|
|
106
106
|
server start Start Agent Bot in the background
|
|
107
107
|
server status Show the server, Lark App ID, Agent processes, and safe-restart status
|
|
108
108
|
server autostart <action> Manage OS autostart for the selected Profile
|
|
109
|
-
server restart [--task <task>]
|
|
109
|
+
server restart [--task <task>] Restart safely; notify the source task or private chat
|
|
110
110
|
server stop Stop Agent Bot
|
|
111
111
|
skills status Show the built-in Skill status
|
|
112
112
|
skills install Install the built-in Skill
|
|
@@ -161,7 +161,7 @@ Update options:
|
|
|
161
161
|
--allow-downgrade Explicitly allow an older version
|
|
162
162
|
|
|
163
163
|
Restart options:
|
|
164
|
-
--task <task>
|
|
164
|
+
--task <task> Override the inferred source task or default private chat
|
|
165
165
|
--reason <reason> Set the restart reason
|
|
166
166
|
--immediate Restart immediately and possibly interrupt tasks
|
|
167
167
|
|
package/dist/cli/taskTarget.js
CHANGED
|
@@ -44,6 +44,13 @@ export function resolveCurrentTaskFromEnvironment(sessions, env = process.env, l
|
|
|
44
44
|
throw new Error(cliText(`No AgentBot task matches the current App Server Thread ID (${resolution.threadIds.join(", ")}). Check that the correct Profile is selected.`, `没有 AgentBot 任务匹配当前 App Server Thread ID(${resolution.threadIds.join(",")})。请检查是否选择了正确的 Profile。`, language));
|
|
45
45
|
throw new Error(cliText("The current task is ambiguous because multiple injected Thread IDs match AgentBot tasks. Pass --task <task> with an explicit AgentBot task ID.", "当前任务存在歧义:多个注入的 Thread ID 匹配到了 AgentBot 任务。请通过 --task <任务> 传入明确的 AgentBot 任务 ID。", language));
|
|
46
46
|
}
|
|
47
|
+
export function resolveRestartNotificationTask(sessions, explicitReference, env = process.env, language = cliLanguage) {
|
|
48
|
+
if (explicitReference)
|
|
49
|
+
return resolveTask(sessions, explicitReference, language);
|
|
50
|
+
if (env.AGENT_BOT === "1")
|
|
51
|
+
return resolveCurrentTaskFromEnvironment(sessions, env, language);
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
47
54
|
export function resolveTask(sessions, reference, language = cliLanguage) {
|
|
48
55
|
if (/^\d+$/.test(reference)) {
|
|
49
56
|
const index = Number(reference) - 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskTarget.js","sourceRoot":"","sources":["../../src/cli/taskTarget.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taskTarget.js","sourceRoot":"","sources":["../../src/cli/taskTarget.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -25,7 +25,7 @@ import { printVerificationLink } from "./cli/VerificationOutput.js";
|
|
|
25
25
|
import { startInitializedServer, startServer, } from "./cli/ServerStarter.js";
|
|
26
26
|
import { taskChatRoute } from "./cli/taskChatRoute.js";
|
|
27
27
|
import { currentAppServerThreadIds, formatTaskList, taskStateLabel, } from "./cli/taskListOutput.js";
|
|
28
|
-
import { resolveCurrentTaskFromEnvironment, resolveTask, resolveTaskCommandTarget, } from "./cli/taskTarget.js";
|
|
28
|
+
import { resolveCurrentTaskFromEnvironment, resolveRestartNotificationTask, resolveTask, resolveTaskCommandTarget, } from "./cli/taskTarget.js";
|
|
29
29
|
import { isThreadContextKey } from "./feishu/contextKey.js";
|
|
30
30
|
import { refreshedSystemEnvironment } from "./supervision/systemEnvironment.js";
|
|
31
31
|
import { parseTaskForkGroupOptions, parseTaskNewOptions, parseTaskNewGroupOptions, } from "./cli/taskGroupOptions.js";
|
|
@@ -835,22 +835,22 @@ function resolveRestartNotificationSessionId(sqlitePath, args) {
|
|
|
835
835
|
const store = new StateStore(sqlitePath);
|
|
836
836
|
try {
|
|
837
837
|
const sessions = store.listAllSessions();
|
|
838
|
+
let explicitReference;
|
|
838
839
|
if (args.includes("--task")) {
|
|
839
840
|
const reference = optionValue(args, "--task")?.trim();
|
|
840
841
|
if (!reference || reference.startsWith("--"))
|
|
841
842
|
throw new Error(cliText("server restart --task requires a task number or task ID.", "server restart --task 需要任务序号或任务 ID。"));
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
843
|
+
explicitReference = reference;
|
|
844
|
+
}
|
|
845
|
+
const session = resolveRestartNotificationTask(sessions, explicitReference);
|
|
846
|
+
if (!session)
|
|
847
|
+
return undefined;
|
|
848
|
+
if (isThreadContextKey(session.contextKey)
|
|
849
|
+
&& !store.findLatestMessageIdForSession(session.localSessionId, session.contextKey)
|
|
850
|
+
&& !store.findLatestMessageIdForContext(session.contextKey)) {
|
|
851
|
+
throw new Error(cliText("The task topic has no message anchor for restart notifications. Send /restart in that topic instead.", "该任务话题没有可用于重启通知的消息锚点,请直接在该话题中发送 /restart。"));
|
|
849
852
|
}
|
|
850
|
-
|
|
851
|
-
if (runningContexts.size > 1)
|
|
852
|
-
throw new Error(cliText("Multiple conversations are running. Pass --task <task> so restart notifications return to the requester.", "当前有多个会话正在运行。请传入 --task <任务>,确保重启通知返回发起会话。"));
|
|
853
|
-
return undefined;
|
|
853
|
+
return session.localSessionId;
|
|
854
854
|
}
|
|
855
855
|
finally {
|
|
856
856
|
store.close();
|