@keyou007/agent-bot 0.1.17-alpha.1 → 0.1.17
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 +12 -0
- package/README.md +3 -1
- package/README.zh.md +3 -1
- package/config.example.yaml +12 -0
- package/dist/config/loadConfig.js +10 -0
- package/dist/config/loadConfig.js.map +1 -1
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/feishu/CardRenderer.js +6 -16
- package/dist/feishu/CardRenderer.js.map +1 -1
- package/dist/feishu/FeishuMarkdown.js +42 -13
- package/dist/feishu/FeishuMarkdown.js.map +1 -1
- package/dist/feishu/FeishuTurnPresenter.js +33 -10
- package/dist/feishu/FeishuTurnPresenter.js.map +1 -1
- package/dist/feishu/LocalImageMarkdown.js +16 -2
- package/dist/feishu/LocalImageMarkdown.js.map +1 -1
- package/dist/index.js +33 -5
- package/dist/index.js.map +1 -1
- package/dist/local-files/LocalFileViewerServer.js +1064 -0
- package/dist/local-files/LocalFileViewerServer.js.map +1 -0
- package/dist/local-files/NetworkAddressSelector.js +97 -0
- package/dist/local-files/NetworkAddressSelector.js.map +1 -0
- package/dist/proxy/ProxySessionController.js +81 -34
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/dist/startup/StartupNotifier.js +7 -4
- package/dist/startup/StartupNotifier.js.map +1 -1
- package/dist/supervision/SafeRestartScheduler.js +15 -2
- package/dist/supervision/SafeRestartScheduler.js.map +1 -1
- package/docs/technical-reference.md +10 -0
- package/docs/technical-reference.zh.md +10 -0
- package/npm-shrinkwrap.json +12 -2
- package/package.json +2 -1
- package/skills/agent-bot/SKILL.md +1 -1
- package/src/config/loadConfig.ts +10 -0
- package/src/config/schema.ts +9 -0
- package/src/feishu/CardRenderer.ts +6 -22
- package/src/feishu/FeishuMarkdown.ts +51 -12
- package/src/feishu/FeishuTurnPresenter.ts +41 -11
- package/src/feishu/LocalImageMarkdown.ts +23 -2
- package/src/index.ts +33 -4
- package/src/local-files/LocalFileViewerServer.ts +1142 -0
- package/src/local-files/NetworkAddressSelector.ts +111 -0
- package/src/proxy/ProxySessionController.ts +75 -24
- package/src/startup/StartupNotifier.ts +9 -4
- package/src/supervision/SafeRestartScheduler.ts +23 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@ The project follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.17] - 2026-08-31
|
|
10
|
+
|
|
11
|
+
- Use compact `/preview/<token>?path=<absolute-path>` local viewer URLs with readable forward-slash Windows paths and path-bound short tokens while preserving legacy links; add server-side highlighting, an enforced cross-platform monospace code font stack, copy-safe path selection, and header-aware highlighted line anchors that append the selected line number to the path, stream file changes through SSE without losing the reader's scroll position, reduce viewer spacing, and keep the absolute path visible in the header.
|
|
12
|
+
|
|
13
|
+
## [0.1.17-alpha.2] - 2026-08-29
|
|
14
|
+
|
|
15
|
+
- Add a signed, read-only local HTTP viewer for files and directories referenced by Agent replies, with content-based previews, downward directory browsing, persistent per-Profile ports, and automatic wired, Wi-Fi, physical, then VPN address selection for LAN links.
|
|
16
|
+
- Rewrite local file links in live, completed, detailed, and historical thinking cards through the local viewer without persisting temporary signed URLs, and classify file-browser entries from their content instead of filename extensions.
|
|
17
|
+
- Replace the protocol-level Turn interrupt acknowledgement with a concise user-facing stopping message that explains the thinking card will update when the task stops.
|
|
18
|
+
- Send the safe-restart card to the source task or configured private chat during `agentbot update`, and start the update immediately when the running service has no active tasks or pending final deliveries.
|
|
19
|
+
- Preserve Markdown descriptions while showing local file paths, and remove empty list markers when standalone local image links become Feishu image components.
|
|
20
|
+
|
|
9
21
|
## [0.1.17-alpha.1] - 2026-08-29
|
|
10
22
|
|
|
11
23
|
- Start App Server processes from the stable Agent Bot profile directory instead of an incidental working directory, and refresh the affected thread once when a reattached external volume leaves stale directory state behind.
|
package/README.md
CHANGED
|
@@ -125,7 +125,7 @@ The recommended way to update a global npm installation is:
|
|
|
125
125
|
agentbot update
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
Stable installations check the stable channel by default; Alpha installations stay on the Alpha channel. Use `--stable`, `--alpha`, or `--version <version>` to choose explicitly. When the service is running, Agent Bot waits for active tasks to finish, updates, and restores the service automatically. Source checkouts and `npm link` installations are never modified by self-update.
|
|
128
|
+
Stable installations check the stable channel by default; Alpha installations stay on the Alpha channel. Use `--stable`, `--alpha`, or `--version <version>` to choose explicitly. When the service is running, Agent Bot sends a safe-restart card, waits for active tasks to finish, updates, and restores the service automatically. If no task is active, the update restarts the service immediately. Source checkouts and `npm link` installations are never modified by self-update.
|
|
129
129
|
|
|
130
130
|
To replace the global package manually, stop the running service first:
|
|
131
131
|
|
|
@@ -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
|
+
Local non-image files and directories referenced in Agent replies become signed, read-only viewer links for source code, Markdown, logs, PDFs, common media files, or downward directory browsing. By default, links open only on the computer running Agent Bot. Setting `fileViewer.host` to `0.0.0.0` automatically selects a LAN address in wired, Wi-Fi, other physical, then VPN order. Use `fileViewer.publicBaseUrl` to override that address for a domain, HTTPS reverse proxy, or port mapping.
|
|
282
|
+
|
|
281
283
|
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
284
|
|
|
283
285
|
`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.
|
package/README.zh.md
CHANGED
|
@@ -125,7 +125,7 @@ agentbot server autostart disable
|
|
|
125
125
|
agentbot update
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
正式版默认检查稳定通道,Alpha 版默认检查 Alpha 通道。也可以使用 `--stable`、`--alpha` 或 `--version <版本>` 明确选择。服务正在运行时,Agent Bot
|
|
128
|
+
正式版默认检查稳定通道,Alpha 版默认检查 Alpha 通道。也可以使用 `--stable`、`--alpha` 或 `--version <版本>` 明确选择。服务正在运行时,Agent Bot 会发送安全重启卡片,等待当前任务完成后更新并自动恢复服务;如果没有任务在执行,则立即重启更新。源码目录和 `npm link` 安装不会被自更新命令修改。
|
|
129
129
|
|
|
130
130
|
如需手动替换全局包,请先停止正在运行的服务:
|
|
131
131
|
|
|
@@ -278,6 +278,8 @@ Agent Bot 将用户相关文件保存在仓库之外:
|
|
|
278
278
|
|
|
279
279
|
可通过 `AGENT_BOT_HOME` 修改用户数据目录。配置示例见 [config.example.yaml](config.example.yaml)。
|
|
280
280
|
|
|
281
|
+
回答中引用的本地非图片文件或目录会自动变成只读查看链接,可在浏览器中查看源码、Markdown、日志、PDF、常见媒体文件,或向下浏览目录内容。默认链接只在运行 Agent Bot 的电脑上打开;将 `fileViewer.host` 设为 `0.0.0.0` 后,会按有线、Wi-Fi、其他物理网卡、VPN 的顺序自动选择局域网地址。域名、HTTPS 反向代理或端口映射可通过 `fileViewer.publicBaseUrl` 覆盖自动地址。链接带有当前 Profile 独立的签名。
|
|
282
|
+
|
|
281
283
|
Provider、模型、思考强度和权限设置会作用于当前任务,同时保存到对应 Agent 的 `defaults` 中。以后创建没有同 Agent 设置可继承的新任务时,会使用这些默认值;每个已配置 Agent 分别保存自己的设置。
|
|
282
284
|
|
|
283
285
|
`feishu.groupNameFormat` 可分别设置 Project 与 Projectless 新群的名称模板,支持系统、Agent、项目、任务名和日期变量。完整格式说明见[技术参考](docs/technical-reference.zh.md#配置模型)。
|
package/config.example.yaml
CHANGED
|
@@ -18,6 +18,18 @@ feishu:
|
|
|
18
18
|
console:
|
|
19
19
|
enabled: true
|
|
20
20
|
|
|
21
|
+
# Signed, read-only pages for local files referenced in Agent replies.
|
|
22
|
+
fileViewer:
|
|
23
|
+
enabled: true
|
|
24
|
+
# The safe default only accepts connections from this computer.
|
|
25
|
+
# Use 0.0.0.0 to accept LAN connections. Generated links then prefer
|
|
26
|
+
# wired, Wi-Fi, other physical, and finally VPN interface addresses.
|
|
27
|
+
host: "127.0.0.1"
|
|
28
|
+
# 0 selects a free port once and reuses it for this Profile.
|
|
29
|
+
port: 0
|
|
30
|
+
# Override automatic selection for a domain, HTTPS proxy, or port mapping.
|
|
31
|
+
# publicBaseUrl: "https://agentbot.example.com/files"
|
|
32
|
+
|
|
21
33
|
agents:
|
|
22
34
|
codex:
|
|
23
35
|
kind: "app-server"
|
|
@@ -20,6 +20,16 @@ const DEFAULT_CONFIG = `feishu:
|
|
|
20
20
|
console:
|
|
21
21
|
enabled: true
|
|
22
22
|
|
|
23
|
+
fileViewer:
|
|
24
|
+
enabled: true
|
|
25
|
+
# Use 0.0.0.0 to accept LAN connections and automatically prefer
|
|
26
|
+
# wired, Wi-Fi, other physical, then VPN addresses in generated links.
|
|
27
|
+
host: "127.0.0.1"
|
|
28
|
+
# 0 selects a free port once and reuses it for this Profile.
|
|
29
|
+
port: 0
|
|
30
|
+
# Overrides the automatically selected URL for domains or reverse proxies.
|
|
31
|
+
# publicBaseUrl: "https://agentbot.example.com/files"
|
|
32
|
+
|
|
23
33
|
agents:
|
|
24
34
|
codex:
|
|
25
35
|
kind: "app-server"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/config/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAC3C,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/config/loadConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.js
CHANGED
|
@@ -56,6 +56,12 @@ export const appConfigSchema = z.object({
|
|
|
56
56
|
enabled: z.boolean().default(true),
|
|
57
57
|
})
|
|
58
58
|
.default({ enabled: true }),
|
|
59
|
+
fileViewer: z.object({
|
|
60
|
+
enabled: z.boolean().default(true),
|
|
61
|
+
host: z.string().min(1).default("127.0.0.1"),
|
|
62
|
+
port: z.number().int().min(0).max(65_535).default(0),
|
|
63
|
+
publicBaseUrl: z.string().url().refine((value) => ["http:", "https:"].includes(new URL(value).protocol), "fileViewer.publicBaseUrl must use http or https.").optional(),
|
|
64
|
+
}).default({ enabled: true, host: "127.0.0.1", port: 0 }),
|
|
59
65
|
feishu: z.object({
|
|
60
66
|
transport: z.enum(["auto", "sdk", "console"]).default("auto"),
|
|
61
67
|
appId: z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO,EAAE,kCAAkC;IAC3C,WAAW,EAAE,sBAAsB;IACnC,UAAU,EAAE,OAAO;CACX,CAAC;AAEX,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC3F,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IAC5E,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,sEAAsE;SAChF,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC7E,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;YAAE,SAAS;QAC9E,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,wCAAwC,KAAK,IAAI;SAC3D,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC;IAC3E,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC,yBAAyB,CAAC,WAAW,CAAC;IACnF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC;CACpF,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAEtC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACvB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,YAAqB,CAAC;CAC1D,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAElB,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,GAAG,EAAE,eAAe;IACpB,QAAQ,EAAE,4BAA4B;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KACnC,CAAC;SACD,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7C,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACpD,eAAe,EAAE,qBAAqB;QACtC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,gCAAgC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAC3D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAC1C,wCAAwC,CACzC;IACD,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;KAC7B,CAAC;SACD,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;KACpD,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACnF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACtD,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;CACtD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -690,7 +690,6 @@ export class CardRenderer {
|
|
|
690
690
|
const pages = grouped
|
|
691
691
|
? groupedActivityPagesFromGroups(usesHistoricalPrefixPages ? historyGroups : allGroups, state.projectCwd, {
|
|
692
692
|
fullActivityText: true,
|
|
693
|
-
includeReasoningHistory: true,
|
|
694
693
|
})
|
|
695
694
|
: activityPages(activities);
|
|
696
695
|
if (pages.length === 0) {
|
|
@@ -718,7 +717,6 @@ export class CardRenderer {
|
|
|
718
717
|
elements.push(...(grouped
|
|
719
718
|
? renderGroupedActivityGroups(pages[page] ?? [], state.projectCwd, {
|
|
720
719
|
fullActivityText: true,
|
|
721
|
-
includeReasoningHistory: true,
|
|
722
720
|
})
|
|
723
721
|
: renderActivities(pages[page] ?? [], state.projectCwd, true)));
|
|
724
722
|
return sectionCard(`思考活动历史 · ${page + 1}/${totalPages}`, elements.length > 0 ? elements : [markdown("无")]);
|
|
@@ -1108,7 +1106,6 @@ function renderGroupedTurnElements(state, assistantTextMode) {
|
|
|
1108
1106
|
const visible = groupedLiveActivityPage(livePages, state.projectCwd);
|
|
1109
1107
|
const historyPages = groupedActivityPagesFromGroups(visible.historyGroups, state.projectCwd, {
|
|
1110
1108
|
fullActivityText: true,
|
|
1111
|
-
includeReasoningHistory: true,
|
|
1112
1109
|
});
|
|
1113
1110
|
if (state.plan.length > 0)
|
|
1114
1111
|
elements.push(planPanel(state.plan));
|
|
@@ -1259,12 +1256,10 @@ function renderGroupedActivityGroups(groups, projectCwd, options = {}) {
|
|
|
1259
1256
|
return renderActivity(group.activity, projectCwd, options.fullActivityText === true);
|
|
1260
1257
|
}
|
|
1261
1258
|
if (group.tools.length === 0) {
|
|
1262
|
-
const reasonings =
|
|
1263
|
-
? group.reasonings
|
|
1264
|
-
: group.latestReasoning ? [group.latestReasoning] : [];
|
|
1259
|
+
const reasonings = group.latestReasoning ? [group.latestReasoning] : [];
|
|
1265
1260
|
return renderReasoningGroup(reasonings);
|
|
1266
1261
|
}
|
|
1267
|
-
return [executionActivityPanel(group, projectCwd
|
|
1262
|
+
return [executionActivityPanel(group, projectCwd)];
|
|
1268
1263
|
});
|
|
1269
1264
|
}
|
|
1270
1265
|
function groupTurnActivities(activities) {
|
|
@@ -1278,13 +1273,12 @@ function groupTurnActivities(activities) {
|
|
|
1278
1273
|
for (let index = 0; index < segment.length; index += 1) {
|
|
1279
1274
|
const activity = segment[index];
|
|
1280
1275
|
if (isRawReasoning(activity)) {
|
|
1281
|
-
execution ??= { kind: "execution", id: activity.id,
|
|
1282
|
-
execution.reasonings.push(activity);
|
|
1276
|
+
execution ??= { kind: "execution", id: activity.id, tools: [] };
|
|
1283
1277
|
execution.latestReasoning = activity;
|
|
1284
1278
|
executionPosition = index;
|
|
1285
1279
|
}
|
|
1286
1280
|
else if (activity.kind === "tool") {
|
|
1287
|
-
execution ??= { kind: "execution", id: activity.id,
|
|
1281
|
+
execution ??= { kind: "execution", id: activity.id, tools: [] };
|
|
1288
1282
|
execution.tools.push(activity.tool);
|
|
1289
1283
|
executionPosition = index;
|
|
1290
1284
|
}
|
|
@@ -1314,12 +1308,9 @@ function isCommentaryActivity(activity) {
|
|
|
1314
1308
|
return activity.kind === "assistant"
|
|
1315
1309
|
|| (activity.kind === "reasoning" && activity.id.startsWith("commentary:"));
|
|
1316
1310
|
}
|
|
1317
|
-
function executionActivityPanel(group, projectCwd
|
|
1311
|
+
function executionActivityPanel(group, projectCwd) {
|
|
1318
1312
|
const status = executionActivityStatus(group.tools);
|
|
1319
|
-
const elements =
|
|
1320
|
-
...(includeReasoningHistory ? renderReasoningGroup(group.reasonings) : []),
|
|
1321
|
-
...group.tools.map((tool) => toolPanel(tool, projectCwd)),
|
|
1322
|
-
];
|
|
1313
|
+
const elements = group.tools.map((tool) => toolPanel(tool, projectCwd));
|
|
1323
1314
|
return collapsiblePanel(executionActivityTitle(group, status), elements, {
|
|
1324
1315
|
elementId: executionActivityPanelElementId(group.id),
|
|
1325
1316
|
expanded: false,
|
|
@@ -1486,7 +1477,6 @@ function splitGroupedExecutionActivity(group) {
|
|
|
1486
1477
|
kind: "execution",
|
|
1487
1478
|
id: index === 0 ? group.id : tools[0]?.id ?? `${group.id}:${index}`,
|
|
1488
1479
|
...(isLast && group.latestReasoning ? { latestReasoning: group.latestReasoning } : {}),
|
|
1489
|
-
reasonings: isLast ? group.reasonings : [],
|
|
1490
1480
|
tools,
|
|
1491
1481
|
});
|
|
1492
1482
|
}
|