@fgbg/mdocs 0.8.15 → 0.8.16
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/agent-skills/changelog/SKILL.md +9 -1
- package/agent-skills/index/SKILL.md +1 -1
- package/agent-skills/index.json +2 -2
- package/agent-skills/usage-onboarding-ai/SKILL.md +33 -10
- package/dist/server/agent/Agent/run.js +33 -4
- package/dist/server/agent/Agent/run.js.map +1 -1
- package/dist/server/agent/Agent/session-manager.doc-scope.test.js +15 -0
- package/dist/server/agent/Agent/session-manager.doc-scope.test.js.map +1 -0
- package/dist/server/agent/Agent/session-manager.js +181 -37
- package/dist/server/agent/Agent/session-manager.js.map +1 -1
- package/dist/server/agent/Agent/system-prompt.js +18 -9
- package/dist/server/agent/Agent/system-prompt.js.map +1 -1
- package/dist/server/agent/Agent/tools-coding.get-working.test.js +29 -0
- package/dist/server/agent/Agent/tools-coding.get-working.test.js.map +1 -0
- package/dist/server/agent/Agent/tools-coding.js +72 -0
- package/dist/server/agent/Agent/tools-coding.js.map +1 -0
- package/dist/server/routes/agent.routes.js +76 -6
- package/dist/server/routes/agent.routes.js.map +1 -1
- package/dist/server/routes/assets.routes.js +58 -11
- package/dist/server/routes/assets.routes.js.map +1 -1
- package/dist/web/assets/{MergeView-0Q5K5-jO.js → MergeView-BqQuuHxp.js} +1 -1
- package/dist/web/assets/{_baseUniq-BISfv-Mh.js → _baseUniq-CTLDRefi.js} +1 -1
- package/dist/web/assets/{arc-C-3Bi1Jy.js → arc-C6HVu_cL.js} +1 -1
- package/dist/web/assets/{architectureDiagram-Q4EWVU46-CusFjwbL.js → architectureDiagram-Q4EWVU46-BGZyIwfI.js} +1 -1
- package/dist/web/assets/{blockDiagram-DXYQGD6D-B0jPfa7U.js → blockDiagram-DXYQGD6D-BnmQmYk5.js} +1 -1
- package/dist/web/assets/{c4Diagram-AHTNJAMY-Oe6MTT6L.js → c4Diagram-AHTNJAMY-D5ZSFyGW.js} +1 -1
- package/dist/web/assets/channel-ComR_5wI.js +1 -0
- package/dist/web/assets/{chunk-4BX2VUAB-CmxvxupC.js → chunk-4BX2VUAB-bB7dqglW.js} +1 -1
- package/dist/web/assets/{chunk-4TB4RGXK-Bzj2dbY7.js → chunk-4TB4RGXK-DLOuFWAV.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-CqfjDrYS.js → chunk-55IACEB6-F-vn8P_5.js} +1 -1
- package/dist/web/assets/{chunk-EDXVE4YY-CWoGAuuy.js → chunk-EDXVE4YY-DJggdpTr.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-WFLld2bI.js → chunk-FMBD7UC4-CGFWLCLP.js} +1 -1
- package/dist/web/assets/{chunk-OYMX7WX6-CSyOxg1H.js → chunk-OYMX7WX6-nDiR5vU7.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-Cyee_8uW.js → chunk-QZHKN3VN-D29FhQRL.js} +1 -1
- package/dist/web/assets/{chunk-YZCP3GAM-C7J3AIM1.js → chunk-YZCP3GAM-BmFALtIq.js} +1 -1
- package/dist/web/assets/classDiagram-6PBFFD2Q-CxGT_r56.js +1 -0
- package/dist/web/assets/classDiagram-v2-HSJHXN6E-CxGT_r56.js +1 -0
- package/dist/web/assets/clone-J85LHgdR.js +1 -0
- package/dist/web/assets/{cose-bilkent-S5V4N54A-BCHs5xNn.js → cose-bilkent-S5V4N54A-J4Iar7P4.js} +1 -1
- package/dist/web/assets/{dagre-KV5264BT-Cqyy62Ql.js → dagre-KV5264BT-Cg07vwKD.js} +1 -1
- package/dist/web/assets/{diagram-5BDNPKRD-BNlGWRfQ.js → diagram-5BDNPKRD-D0FP-ifV.js} +1 -1
- package/dist/web/assets/{diagram-G4DWMVQ6-Qtz-K4Lr.js → diagram-G4DWMVQ6-CNejTsu2.js} +1 -1
- package/dist/web/assets/{diagram-MMDJMWI5-D5yn6u63.js → diagram-MMDJMWI5-DEQjM6f7.js} +1 -1
- package/dist/web/assets/{diagram-TYMM5635-CR-RaIAP.js → diagram-TYMM5635-CRGZl6sR.js} +1 -1
- package/dist/web/assets/{erDiagram-SMLLAGMA-BccF6Qsp.js → erDiagram-SMLLAGMA-BGOATwuq.js} +1 -1
- package/dist/web/assets/{flowDiagram-DWJPFMVM-B0OEEMQt.js → flowDiagram-DWJPFMVM-DVHizH8q.js} +1 -1
- package/dist/web/assets/{ganttDiagram-T4ZO3ILL-B8kfqGyD.js → ganttDiagram-T4ZO3ILL-dLF_Rbaw.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-UUTBAWPF-BJntaoFE.js → gitGraphDiagram-UUTBAWPF-BNMxCpkL.js} +1 -1
- package/dist/web/assets/{graph-Dt01jPc-.js → graph-p7_cO2pv.js} +1 -1
- package/dist/web/assets/index-5eJ_7IuO.css +1 -0
- package/dist/web/assets/{index-CMSpZccR.js → index-DoJ58x_f.js} +174 -159
- package/dist/web/assets/{infoDiagram-42DDH7IO-YITqxZHx.js → infoDiagram-42DDH7IO-BDffsV8g.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-UXIWVN3A-B2HEjE4j.js → ishikawaDiagram-UXIWVN3A-C7fw-Hwt.js} +1 -1
- package/dist/web/assets/{journeyDiagram-VCZTEJTY-BfWiWY1h.js → journeyDiagram-VCZTEJTY-CuEYHG93.js} +1 -1
- package/dist/web/assets/{kanban-definition-6JOO6SKY-L7VcnCp4.js → kanban-definition-6JOO6SKY-iodYb2rc.js} +1 -1
- package/dist/web/assets/{layout-CN5HZPYy.js → layout-Dblo7Nv4.js} +1 -1
- package/dist/web/assets/{linear-J-E2mhNr.js → linear-Dj7ICVZv.js} +1 -1
- package/dist/web/assets/{min-DG8d4OWa.js → min-BC0MiAVU.js} +1 -1
- package/dist/web/assets/{mindmap-definition-QFDTVHPH-4QKB3LVg.js → mindmap-definition-QFDTVHPH-Bi8kR-nH.js} +1 -1
- package/dist/web/assets/{pieDiagram-DEJITSTG-BpbKNaYV.js → pieDiagram-DEJITSTG-DFXNJaaz.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-34T5L4WZ-BsJUNf_y.js → quadrantDiagram-34T5L4WZ-eG750Sg7.js} +1 -1
- package/dist/web/assets/{requirementDiagram-MS252O5E-CEEvTN62.js → requirementDiagram-MS252O5E-BOS23lbk.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-XADWPNL6-C-OIxGQH.js → sankeyDiagram-XADWPNL6-iuLPdF16.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-FGHM5R23-DYNvxdh-.js → sequenceDiagram-FGHM5R23-9dOhL1F_.js} +1 -1
- package/dist/web/assets/{stateDiagram-FHFEXIEX-Ct9mBbpM.js → stateDiagram-FHFEXIEX-DiYubp3u.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-C0u2afgY.js +1 -0
- package/dist/web/assets/{timeline-definition-GMOUNBTQ-CV15Blkv.js → timeline-definition-GMOUNBTQ-B7K2SCHF.js} +1 -1
- package/dist/web/assets/{vennDiagram-DHZGUBPP-DI7bqTnV.js → vennDiagram-DHZGUBPP-DwsDXISO.js} +1 -1
- package/dist/web/assets/wardley-RL74JXVD-DOtyNPcb.js +162 -0
- package/dist/web/assets/{wardleyDiagram-NUSXRM2D-CaAQ_aSA.js → wardleyDiagram-NUSXRM2D-IO3BUkVB.js} +1 -1
- package/dist/web/assets/{xychartDiagram-5P7HB3ND-Bw31tQmi.js → xychartDiagram-5P7HB3ND-B_eC9Ig0.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +2 -2
- package/dist/web/assets/channel-DB58qUXq.js +0 -1
- package/dist/web/assets/classDiagram-6PBFFD2Q-BlGKxrV2.js +0 -1
- package/dist/web/assets/classDiagram-v2-HSJHXN6E-BlGKxrV2.js +0 -1
- package/dist/web/assets/clone-rVZWwKcK.js +0 -1
- package/dist/web/assets/index-CPYNlnGV.css +0 -1
- package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-Bq3YuMeU.js +0 -1
- package/dist/web/assets/wardley-RL74JXVD-C6O53D0O.js +0 -162
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: changelog
|
|
3
3
|
name: "更新日志"
|
|
4
|
-
description: "-
|
|
4
|
+
description: "- **帮写(coding)**:编辑器顶栏 / 欢迎页入口进入全屏工作台;左 AI、右纯 Markdown;按段接受/拒绝提案后再写回(已有文进草稿,空白帮写可新建) - **帮写上下文**:每轮请求携带进场快照与当前工作稿;助手可「读取帮写工作稿」后再「设置帮写正文」,避免盲改 - **帮写会话**:独立于上手助手;按文档隔离(A 文 / B 文各自历史);空白帮写写回成文后会话绑到新文档 -"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: changelog.md
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# 更新日志
|
|
10
10
|
|
|
11
|
+
## v0.8.16
|
|
12
|
+
|
|
13
|
+
- **帮写(coding)**:编辑器顶栏 / 欢迎页入口进入全屏工作台;左 AI、右纯 Markdown;按段接受/拒绝提案后再写回(已有文进草稿,空白帮写可新建)
|
|
14
|
+
- **帮写上下文**:每轮请求携带进场快照与当前工作稿;助手可「读取帮写工作稿」后再「设置帮写正文」,避免盲改
|
|
15
|
+
- **帮写会话**:独立于上手助手;按文档隔离(A 文 / B 文各自历史);空白帮写写回成文后会话绑到新文档
|
|
16
|
+
- **附件上传**:支持 zip 与常见音频;单文件上限 55MB
|
|
17
|
+
- **编辑器依赖**:`@fgbg/lobe-editor@1.0.0-fork.17`
|
|
18
|
+
|
|
11
19
|
## v0.8.15
|
|
12
20
|
|
|
13
21
|
- **智能助手读文**:新增 `get_document` 工具,按当前访客读权限读取文档正文(与 HTTP 鉴权一致,无额外特权)
|
|
@@ -17,7 +17,7 @@ source: index.md
|
|
|
17
17
|
|
|
18
18
|
## AI 与 Agent
|
|
19
19
|
|
|
20
|
-
- [上手助手(AI)](./usage/onboarding-ai.md)
|
|
20
|
+
- [上手助手(AI)](./usage/onboarding-ai.md)——Ask 答疑 / 帮写改稿;共用 DeepSeek 配置
|
|
21
21
|
- [Agent 开发闭环](./usage/agent-dev-loop.md)——CLI + Skills 接入 Cursor / Claude
|
|
22
22
|
- [CLI Token](./usage/cli-token.md)——命令行与 Agent 身份令牌
|
|
23
23
|
|
package/agent-skills/index.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
{
|
|
3
3
|
"id": "changelog",
|
|
4
4
|
"name": "更新日志",
|
|
5
|
-
"description": "-
|
|
5
|
+
"description": "- **帮写(coding)**:编辑器顶栏 / 欢迎页入口进入全屏工作台;左 AI、右纯 Markdown;按段接受/拒绝提案后再写回(已有文进草稿,空白帮写可新建) - **帮写上下文**:每轮请求携带进场快照与当前工作稿;助手可「读取帮写工作稿」后再「设置帮写正文」,避免盲改 - **帮写会话**:独立于上手助手;按文档隔离(A 文 / B 文各自历史);空白帮写写回成文后会话绑到新文档 -",
|
|
6
6
|
"keywords": [],
|
|
7
7
|
"source": "changelog.md"
|
|
8
8
|
},
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
{
|
|
157
157
|
"id": "usage-onboarding-ai",
|
|
158
158
|
"name": "上手助手(AI)",
|
|
159
|
-
"description": "mdocs
|
|
159
|
+
"description": "mdocs 内置两种 AI 能力,共用设置页里的 DeepSeek 配置:",
|
|
160
160
|
"keywords": [],
|
|
161
161
|
"source": "usage/onboarding-ai.md"
|
|
162
162
|
},
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: usage-onboarding-ai
|
|
3
3
|
name: "上手助手(AI)"
|
|
4
|
-
description: "mdocs
|
|
4
|
+
description: "mdocs 内置两种 AI 能力,共用设置页里的 DeepSeek 配置:"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: usage/onboarding-ai.md
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# 上手助手(AI)
|
|
10
10
|
|
|
11
|
-
mdocs
|
|
11
|
+
mdocs 内置两种 AI 能力,共用设置页里的 DeepSeek 配置:
|
|
12
|
+
|
|
13
|
+
| 模式 | 入口 | 做什么 |
|
|
14
|
+
|------|------|--------|
|
|
15
|
+
| **上手助手(Ask)** | 左下角悬浮球 | 答疑 + 账号内结构操作(搜文、列树、读文、建空文档/文件夹等)。**不会**代写或改正文 |
|
|
16
|
+
| **帮写(Coding)** | 编辑器顶栏「帮写」/ 欢迎页「AI 帮写」 | 全屏工作台起草或改稿;右侧是纯 Markdown,按段接受后再写回 |
|
|
12
17
|
|
|
13
18
|
若你要用 Cursor / Claude 等**外部 Agent** 读写知识库、落开发契约,见 [Agent 开发闭环](./agent-dev-loop.md)。
|
|
14
19
|
|
|
15
|
-
##
|
|
20
|
+
## 入口(上手助手)
|
|
16
21
|
|
|
17
22
|
左下角有圆形 **上手助手** 悬浮按钮(不占用正文区)。点击后打开浮层 **「mdocs 智能助手」**,主编辑区仍保持打开,可边问边写。可**按住拖动**入口到任意位置(本地记住);挪过之后会出现「重置位置」。
|
|
18
23
|
|
|
@@ -25,6 +30,23 @@ mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草
|
|
|
25
30
|
- 底部输入框:占位「把你的问题告诉我…」
|
|
26
31
|
- 页脚提示:内容由 AI 生成,仅供参考
|
|
27
32
|
|
|
33
|
+
## 帮写(Coding)
|
|
34
|
+
|
|
35
|
+
需要代写、润色或改某一篇正文时,用 **帮写**,不要用上手助手浮层。
|
|
36
|
+
|
|
37
|
+
1. 打开一篇文档(或欢迎页点「AI 帮写」从空白开始)
|
|
38
|
+
2. 点顶栏 **帮写**(带 DeepSeek 标志)进入全屏层:左侧对话,右侧 Markdown
|
|
39
|
+
3. 描述要写/改的内容;助手会先读当前工作稿与进场快照,再提交完整 Markdown 提案
|
|
40
|
+
4. 右侧按变更段 **接受 / 拒绝**;也可继续手改
|
|
41
|
+
5. **完成并写回**:已有文档写入本地草稿(需你再发布);空白帮写则创建新文档
|
|
42
|
+
|
|
43
|
+
会话说明:
|
|
44
|
+
|
|
45
|
+
- 帮写会话与上手助手**分开存放**(`agent/coding-session/`)
|
|
46
|
+
- **按文档隔离**:文章 A 的历史看不到文章 B
|
|
47
|
+
- 左侧同样有 **+** / 历史;历史只回放对话文字,不恢复右侧稿
|
|
48
|
+
- 从空白帮写写回成文后,当前对话会绑到新文档,下次打开该文帮写可续聊
|
|
49
|
+
|
|
28
50
|
## 开始使用前:配置模型
|
|
29
51
|
|
|
30
52
|
1. 打开 **设置 → AI**(侧栏底部访客信息进入设置)
|
|
@@ -33,11 +55,11 @@ mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草
|
|
|
33
55
|
|
|
34
56
|

|
|
35
57
|
|
|
36
|
-
未配置 Key
|
|
58
|
+
未配置 Key 时,入口可用但无法发送消息,浮层 / 帮写会提示去设置页配置。
|
|
37
59
|
|
|
38
60
|
每人一份配置,仅本人可用;Key 在服务端按访客隔离存储,不会出现在别的访客界面上。配置页可查看配置名称、模型、脱敏后的 Key 与配置 ID;需要改时可点 **编辑**。
|
|
39
61
|
|
|
40
|
-
##
|
|
62
|
+
## 怎么问(上手助手)
|
|
41
63
|
|
|
42
64
|
可以直接问,例如:
|
|
43
65
|
|
|
@@ -49,7 +71,7 @@ mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草
|
|
|
49
71
|
|
|
50
72
|
助手会按需阅读 [mdocs 用户手册](https://xuhuafeifei.github.io/mdocs-site/) 相关章节,也可在你有权阅读的范围内读取知识库文档。工具结果(搜索表、域树、读文预览等)会出现在对话时间线中,**默认折叠**,展开可查看;历史会话重开后通常只保留文字、不再回放这些工具块。答完后通常会附带一两个可继续追问的示例。
|
|
51
73
|
|
|
52
|
-
##
|
|
74
|
+
## 会话(上手助手)
|
|
53
75
|
|
|
54
76
|
- 同一访客的对话会保存在数据目录 `tenant/<访客ID>/agent/session/` 下,刷新或重开浮层仍可续聊。
|
|
55
77
|
- 浮层标题栏 **「+」**:新建空会话并切换过去。
|
|
@@ -57,10 +79,11 @@ mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草
|
|
|
57
79
|
- 会话标题取自**第一条用户消息**(过长会截断),不是模型摘要。
|
|
58
80
|
- 删除、重命名、按天数自动清理尚未提供。
|
|
59
81
|
|
|
60
|
-
##
|
|
82
|
+
## 明确不会做(上手助手)
|
|
61
83
|
|
|
62
|
-
-
|
|
84
|
+
- 代写、润色、按选区改文档正文(请改用 **帮写**)
|
|
63
85
|
- 越权读取你无权查看的文档(与网页端同一套权限)
|
|
64
|
-
-
|
|
86
|
+
- 静默替你发布或改权限档(结构操作会走工具;写作类请求会拒绝并引导去帮写)
|
|
87
|
+
|
|
88
|
+
若你在上手助手里要求写作,助手会拒绝,并提示打开 **帮写**。
|
|
65
89
|
|
|
66
|
-
若你要求写作,助手会拒绝并引导你在编辑器里自行操作。
|
|
@@ -6,6 +6,7 @@ import { getSkillLoader } from "../Skill/skill-loader.js";
|
|
|
6
6
|
import { buildSystemPrompt } from "./system-prompt.js";
|
|
7
7
|
import { createSkillTools } from "./tools.js";
|
|
8
8
|
import { createAccountTools } from "./tools-account.js";
|
|
9
|
+
import { createCodingTools } from "./tools-coding.js";
|
|
9
10
|
import { AgentSessionManager, } from "./session-manager.js";
|
|
10
11
|
import { getAgentContextUsageForApi, mergeContextUsage, } from "./context-usage.js";
|
|
11
12
|
export { getAgentContextUsageForApi } from "./context-usage.js";
|
|
@@ -31,6 +32,7 @@ export function getAgentStatus(visitorId) {
|
|
|
31
32
|
*/
|
|
32
33
|
export async function runOnboardingChat(params) {
|
|
33
34
|
const { visitorId, message, onEvent, signal } = params;
|
|
35
|
+
const mode = params.mode === "coding" ? "coding" : "normal";
|
|
34
36
|
const cfg = getVisitorAgentConfig(visitorId);
|
|
35
37
|
if (!cfg?.apiKey)
|
|
36
38
|
throw new Error("missing_api_key");
|
|
@@ -38,10 +40,19 @@ export async function runOnboardingChat(params) {
|
|
|
38
40
|
if (!skills.isReady())
|
|
39
41
|
throw new Error("skills_missing");
|
|
40
42
|
const { models, model } = createDeepSeekModel(cfg);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const accountOrCoding = mode === "coding"
|
|
44
|
+
? createCodingTools(visitorId, {
|
|
45
|
+
documentId: params.documentId ?? null,
|
|
46
|
+
workingMarkdown: params.workingMarkdown ?? "",
|
|
47
|
+
baseMarkdown: params.baseMarkdown ?? "",
|
|
48
|
+
})
|
|
49
|
+
: createAccountTools(visitorId);
|
|
50
|
+
const tools = [...createSkillTools(skills), ...accountOrCoding];
|
|
51
|
+
const systemPrompt = buildSystemPrompt(mode);
|
|
52
|
+
const sessionManager = new AgentSessionManager(visitorId, {
|
|
53
|
+
kind: mode === "coding" ? "coding" : "normal",
|
|
54
|
+
});
|
|
55
|
+
const { sessionId, messages: history } = await sessionManager.loadLastOpenedMessages(mode === "coding" ? params.documentId ?? null : undefined);
|
|
45
56
|
const agent = new Agent({
|
|
46
57
|
initialState: {
|
|
47
58
|
systemPrompt,
|
|
@@ -300,6 +311,24 @@ function bindAgentEvents(opts) {
|
|
|
300
311
|
toolName: event.toolName,
|
|
301
312
|
text: path ? `已移动「${name}」→ ${path}` : `已移动「${name}」`,
|
|
302
313
|
});
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (event.toolName === "get_working_document") {
|
|
317
|
+
onEvent({
|
|
318
|
+
type: "tool_notice",
|
|
319
|
+
toolName: event.toolName,
|
|
320
|
+
text: "读取帮写工作稿",
|
|
321
|
+
});
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
if (event.toolName === "set_markdown_document") {
|
|
325
|
+
const markdown = String(details?.markdown ?? "");
|
|
326
|
+
onEvent({ type: "markdown_set", markdown });
|
|
327
|
+
onEvent({
|
|
328
|
+
type: "tool_notice",
|
|
329
|
+
toolName: event.toolName,
|
|
330
|
+
text: "设置帮写正文",
|
|
331
|
+
});
|
|
303
332
|
}
|
|
304
333
|
}
|
|
305
334
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { CODING_BLANK_DOC_KEY, docScopeKey } from "./session-manager.js";
|
|
3
|
+
describe("docScopeKey", () => {
|
|
4
|
+
it("maps blank to stable key", () => {
|
|
5
|
+
expect(docScopeKey(null)).toBe(CODING_BLANK_DOC_KEY);
|
|
6
|
+
expect(docScopeKey(undefined)).toBe(CODING_BLANK_DOC_KEY);
|
|
7
|
+
expect(docScopeKey("")).toBe(CODING_BLANK_DOC_KEY);
|
|
8
|
+
expect(docScopeKey(" ")).toBe(CODING_BLANK_DOC_KEY);
|
|
9
|
+
});
|
|
10
|
+
it("keeps document id", () => {
|
|
11
|
+
expect(docScopeKey("doc-a")).toBe("doc-a");
|
|
12
|
+
expect(docScopeKey(" doc-a ")).toBe("doc-a");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=session-manager.doc-scope.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.doc-scope.test.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/session-manager.doc-scope.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC1D,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -3,6 +3,8 @@ import path from "node:path";
|
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { getConfig } from "../../config/index.js";
|
|
5
5
|
const SESSION_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
6
|
+
/** 空白帮写(无 documentId)的 lastOpened 键 */
|
|
7
|
+
export const CODING_BLANK_DOC_KEY = "__blank__";
|
|
6
8
|
function safeString(v) {
|
|
7
9
|
if (typeof v !== "string")
|
|
8
10
|
return null;
|
|
@@ -21,15 +23,26 @@ function titleFromUserContent(content) {
|
|
|
21
23
|
return "新会话";
|
|
22
24
|
return oneLine.length > 36 ? `${oneLine.slice(0, 36)}…` : oneLine;
|
|
23
25
|
}
|
|
26
|
+
/** null/空 → 空白桶;有 id → 该文档 */
|
|
27
|
+
export function docScopeKey(documentId) {
|
|
28
|
+
const id = typeof documentId === "string" ? documentId.trim() : "";
|
|
29
|
+
return id || CODING_BLANK_DOC_KEY;
|
|
30
|
+
}
|
|
31
|
+
function entryDocKey(entry) {
|
|
32
|
+
return docScopeKey(entry.documentId);
|
|
33
|
+
}
|
|
24
34
|
export class AgentSessionManager {
|
|
25
35
|
visitorId;
|
|
26
36
|
sessionDir;
|
|
27
37
|
metaPath;
|
|
38
|
+
kind;
|
|
28
39
|
cachedSessionId = null;
|
|
29
|
-
constructor(visitorId) {
|
|
40
|
+
constructor(visitorId, opts) {
|
|
30
41
|
this.visitorId = visitorId;
|
|
31
42
|
const { dataDir } = getConfig();
|
|
32
|
-
this.
|
|
43
|
+
this.kind = opts?.kind === "coding" ? "coding" : "normal";
|
|
44
|
+
const kindDir = this.kind === "coding" ? "coding-session" : "session";
|
|
45
|
+
this.sessionDir = path.join(dataDir, "tenant", visitorId, "agent", kindDir);
|
|
33
46
|
this.metaPath = path.join(this.sessionDir, "session.json");
|
|
34
47
|
}
|
|
35
48
|
jsonlPath(sessionId) {
|
|
@@ -48,7 +61,10 @@ export class AgentSessionManager {
|
|
|
48
61
|
const sessions = Array.isArray(parsed?.sessions)
|
|
49
62
|
? parsed.sessions.filter((s) => s && isSessionId(String(s.id ?? "")))
|
|
50
63
|
: [];
|
|
51
|
-
|
|
64
|
+
const lastOpenedByDocument = parsed?.lastOpenedByDocument && typeof parsed.lastOpenedByDocument === "object"
|
|
65
|
+
? Object.fromEntries(Object.entries(parsed.lastOpenedByDocument).filter(([, id]) => typeof id === "string" && isSessionId(id)))
|
|
66
|
+
: undefined;
|
|
67
|
+
return { lastOpenedSessionId, sessions, lastOpenedByDocument };
|
|
52
68
|
}
|
|
53
69
|
catch (err) {
|
|
54
70
|
if (err && typeof err === "object" && "code" in err && err.code === "ENOENT") {
|
|
@@ -68,6 +84,7 @@ export class AgentSessionManager {
|
|
|
68
84
|
id: sessionId,
|
|
69
85
|
title: patch?.title,
|
|
70
86
|
updatedAt: now,
|
|
87
|
+
documentId: patch?.documentId !== undefined ? patch.documentId : undefined,
|
|
71
88
|
});
|
|
72
89
|
return;
|
|
73
90
|
}
|
|
@@ -76,17 +93,34 @@ export class AgentSessionManager {
|
|
|
76
93
|
...cur,
|
|
77
94
|
title: patch?.title !== undefined ? patch.title : cur.title,
|
|
78
95
|
updatedAt: patch?.touchUpdatedAt === false ? cur.updatedAt ?? now : now,
|
|
96
|
+
documentId: patch?.documentId !== undefined ? patch.documentId : cur.documentId,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
setLastOpenedForDoc(meta, documentId, sessionId) {
|
|
100
|
+
if (this.kind !== "coding")
|
|
101
|
+
return;
|
|
102
|
+
const key = docScopeKey(documentId);
|
|
103
|
+
meta.lastOpenedByDocument = {
|
|
104
|
+
...(meta.lastOpenedByDocument ?? {}),
|
|
105
|
+
[key]: sessionId,
|
|
79
106
|
};
|
|
80
107
|
}
|
|
81
108
|
sortSummaries(sessions) {
|
|
82
109
|
return sessions
|
|
83
110
|
.map((s) => ({
|
|
84
111
|
id: s.id,
|
|
85
|
-
title:
|
|
112
|
+
title: s.title?.trim() || "新会话",
|
|
86
113
|
updatedAt: s.updatedAt ?? nowIso(),
|
|
114
|
+
documentId: s.documentId ?? null,
|
|
87
115
|
}))
|
|
88
116
|
.sort((a, b) => (a.updatedAt < b.updatedAt ? 1 : a.updatedAt > b.updatedAt ? -1 : 0));
|
|
89
117
|
}
|
|
118
|
+
filterByDocument(sessions, documentId) {
|
|
119
|
+
if (this.kind !== "coding")
|
|
120
|
+
return sessions;
|
|
121
|
+
const key = docScopeKey(documentId);
|
|
122
|
+
return sessions.filter((s) => entryDocKey(s) === key);
|
|
123
|
+
}
|
|
90
124
|
async loadTranscript(sessionId) {
|
|
91
125
|
try {
|
|
92
126
|
const txt = await fs.promises.readFile(this.jsonlPath(sessionId), "utf8");
|
|
@@ -114,53 +148,109 @@ export class AgentSessionManager {
|
|
|
114
148
|
return [];
|
|
115
149
|
}
|
|
116
150
|
}
|
|
117
|
-
|
|
151
|
+
/**
|
|
152
|
+
* 确保有可用 lastOpened。
|
|
153
|
+
* coding + documentId:按文档维度;normal:全局 lastOpened。
|
|
154
|
+
*/
|
|
155
|
+
async ensureLastOpened(documentId) {
|
|
118
156
|
await this.ensureSessionDir();
|
|
119
|
-
if (this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
157
|
+
if (this.kind !== "coding") {
|
|
158
|
+
if (this.cachedSessionId)
|
|
159
|
+
return this.cachedSessionId;
|
|
160
|
+
const meta = await this.readMeta();
|
|
161
|
+
if (!meta) {
|
|
162
|
+
const sessionId = randomUUID();
|
|
163
|
+
await this.writeMeta({
|
|
164
|
+
lastOpenedSessionId: sessionId,
|
|
165
|
+
sessions: [{ id: sessionId, updatedAt: nowIso() }],
|
|
166
|
+
});
|
|
167
|
+
this.cachedSessionId = sessionId;
|
|
168
|
+
return sessionId;
|
|
169
|
+
}
|
|
170
|
+
this.ensureSessionEntry(meta, meta.lastOpenedSessionId, { touchUpdatedAt: false });
|
|
171
|
+
await this.writeMeta(meta);
|
|
172
|
+
this.cachedSessionId = meta.lastOpenedSessionId;
|
|
173
|
+
return meta.lastOpenedSessionId;
|
|
174
|
+
}
|
|
175
|
+
const key = docScopeKey(documentId);
|
|
176
|
+
const meta = (await this.readMeta()) ?? {
|
|
177
|
+
lastOpenedSessionId: "",
|
|
178
|
+
sessions: [],
|
|
179
|
+
lastOpenedByDocument: {},
|
|
180
|
+
};
|
|
181
|
+
const scoped = this.filterByDocument(meta.sessions, documentId);
|
|
182
|
+
const mapped = meta.lastOpenedByDocument?.[key];
|
|
183
|
+
const mappedOk = mapped &&
|
|
184
|
+
isSessionId(mapped) &&
|
|
185
|
+
scoped.some((s) => s.id === mapped);
|
|
186
|
+
if (mappedOk) {
|
|
187
|
+
meta.lastOpenedSessionId = mapped;
|
|
188
|
+
this.ensureSessionEntry(meta, mapped, { touchUpdatedAt: false });
|
|
189
|
+
await this.writeMeta(meta);
|
|
190
|
+
this.cachedSessionId = mapped;
|
|
191
|
+
return mapped;
|
|
192
|
+
}
|
|
193
|
+
if (scoped[0]) {
|
|
194
|
+
const sessionId = scoped[0].id;
|
|
195
|
+
meta.lastOpenedSessionId = sessionId;
|
|
196
|
+
this.setLastOpenedForDoc(meta, documentId, sessionId);
|
|
197
|
+
await this.writeMeta(meta);
|
|
128
198
|
this.cachedSessionId = sessionId;
|
|
129
199
|
return sessionId;
|
|
130
200
|
}
|
|
131
|
-
|
|
201
|
+
const sessionId = randomUUID();
|
|
202
|
+
meta.lastOpenedSessionId = sessionId;
|
|
203
|
+
this.ensureSessionEntry(meta, sessionId, {
|
|
204
|
+
touchUpdatedAt: true,
|
|
205
|
+
documentId: documentId?.trim() ? documentId.trim() : null,
|
|
206
|
+
});
|
|
207
|
+
this.setLastOpenedForDoc(meta, documentId, sessionId);
|
|
132
208
|
await this.writeMeta(meta);
|
|
133
|
-
this.cachedSessionId =
|
|
134
|
-
return
|
|
209
|
+
this.cachedSessionId = sessionId;
|
|
210
|
+
return sessionId;
|
|
135
211
|
}
|
|
136
|
-
async listSessions() {
|
|
137
|
-
const lastOpenedSessionId = await this.ensureLastOpened();
|
|
212
|
+
async listSessions(documentId) {
|
|
213
|
+
const lastOpenedSessionId = await this.ensureLastOpened(documentId);
|
|
138
214
|
const meta = (await this.readMeta());
|
|
215
|
+
const scoped = this.filterByDocument(meta.sessions, documentId);
|
|
139
216
|
return {
|
|
140
217
|
lastOpenedSessionId,
|
|
141
|
-
sessions: this.sortSummaries(
|
|
218
|
+
sessions: this.sortSummaries(scoped),
|
|
142
219
|
};
|
|
143
220
|
}
|
|
144
|
-
async loadLastOpenedMessages() {
|
|
145
|
-
const sessionId = await this.ensureLastOpened();
|
|
221
|
+
async loadLastOpenedMessages(documentId) {
|
|
222
|
+
const sessionId = await this.ensureLastOpened(documentId);
|
|
146
223
|
return { sessionId, messages: await this.loadTranscript(sessionId) };
|
|
147
224
|
}
|
|
148
|
-
/**
|
|
149
|
-
async createSession() {
|
|
225
|
+
/** 新建空会话并设为该文档(或空白桶)的 lastOpened */
|
|
226
|
+
async createSession(documentId) {
|
|
150
227
|
await this.ensureSessionDir();
|
|
151
228
|
const sessionId = randomUUID();
|
|
152
229
|
const meta = (await this.readMeta()) ?? {
|
|
153
230
|
lastOpenedSessionId: sessionId,
|
|
154
231
|
sessions: [],
|
|
232
|
+
lastOpenedByDocument: {},
|
|
155
233
|
};
|
|
156
234
|
meta.lastOpenedSessionId = sessionId;
|
|
157
|
-
this.
|
|
235
|
+
const doc = this.kind === "coding"
|
|
236
|
+
? documentId?.trim()
|
|
237
|
+
? documentId.trim()
|
|
238
|
+
: null
|
|
239
|
+
: undefined;
|
|
240
|
+
this.ensureSessionEntry(meta, sessionId, {
|
|
241
|
+
title: "新会话",
|
|
242
|
+
touchUpdatedAt: true,
|
|
243
|
+
documentId: doc,
|
|
244
|
+
});
|
|
245
|
+
if (this.kind === "coding") {
|
|
246
|
+
this.setLastOpenedForDoc(meta, documentId, sessionId);
|
|
247
|
+
}
|
|
158
248
|
await this.writeMeta(meta);
|
|
159
249
|
this.cachedSessionId = sessionId;
|
|
160
250
|
return { sessionId, messages: [] };
|
|
161
251
|
}
|
|
162
|
-
/** 切换 lastOpened
|
|
163
|
-
async openSession(sessionId) {
|
|
252
|
+
/** 切换 lastOpened;coding 时可校验属于同一 documentId */
|
|
253
|
+
async openSession(sessionId, documentId) {
|
|
164
254
|
if (!isSessionId(sessionId))
|
|
165
255
|
throw new Error("invalid_session_id");
|
|
166
256
|
await this.ensureSessionDir();
|
|
@@ -169,25 +259,76 @@ export class AgentSessionManager {
|
|
|
169
259
|
const hasFile = fs.existsSync(this.jsonlPath(sessionId));
|
|
170
260
|
if (!inMeta && !hasFile)
|
|
171
261
|
throw new Error("session_not_found");
|
|
172
|
-
const next = meta ?? { lastOpenedSessionId: sessionId, sessions: [] };
|
|
262
|
+
const next = meta ?? { lastOpenedSessionId: sessionId, sessions: [], lastOpenedByDocument: {} };
|
|
263
|
+
const entry = next.sessions.find((s) => s.id === sessionId);
|
|
264
|
+
if (this.kind === "coding" && documentId !== undefined) {
|
|
265
|
+
const want = docScopeKey(documentId);
|
|
266
|
+
const have = entry ? entryDocKey(entry) : CODING_BLANK_DOC_KEY;
|
|
267
|
+
if (want !== have)
|
|
268
|
+
throw new Error("session_document_mismatch");
|
|
269
|
+
}
|
|
173
270
|
next.lastOpenedSessionId = sessionId;
|
|
174
271
|
this.ensureSessionEntry(next, sessionId, { touchUpdatedAt: true });
|
|
272
|
+
if (this.kind === "coding") {
|
|
273
|
+
const bindDoc = entry?.documentId ?? (documentId !== undefined ? documentId : null);
|
|
274
|
+
this.setLastOpenedForDoc(next, bindDoc, sessionId);
|
|
275
|
+
}
|
|
175
276
|
await this.writeMeta(next);
|
|
176
277
|
this.cachedSessionId = sessionId;
|
|
177
278
|
return { sessionId, messages: await this.loadTranscript(sessionId) };
|
|
178
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* 空白帮写写回成文后:把 session 绑到新 documentId,并设为该文 lastOpened。
|
|
282
|
+
*/
|
|
283
|
+
async bindSessionDocument(sessionId, documentId) {
|
|
284
|
+
if (this.kind !== "coding")
|
|
285
|
+
throw new Error("bind_only_coding");
|
|
286
|
+
if (!isSessionId(sessionId))
|
|
287
|
+
throw new Error("invalid_session_id");
|
|
288
|
+
const doc = documentId.trim();
|
|
289
|
+
if (!doc)
|
|
290
|
+
throw new Error("document_id_required");
|
|
291
|
+
await this.ensureSessionDir();
|
|
292
|
+
const meta = (await this.readMeta()) ?? {
|
|
293
|
+
lastOpenedSessionId: sessionId,
|
|
294
|
+
sessions: [],
|
|
295
|
+
lastOpenedByDocument: {},
|
|
296
|
+
};
|
|
297
|
+
const inMeta = meta.sessions.some((s) => s.id === sessionId);
|
|
298
|
+
const hasFile = fs.existsSync(this.jsonlPath(sessionId));
|
|
299
|
+
if (!inMeta && !hasFile)
|
|
300
|
+
throw new Error("session_not_found");
|
|
301
|
+
this.ensureSessionEntry(meta, sessionId, {
|
|
302
|
+
documentId: doc,
|
|
303
|
+
touchUpdatedAt: true,
|
|
304
|
+
});
|
|
305
|
+
meta.lastOpenedSessionId = sessionId;
|
|
306
|
+
this.setLastOpenedForDoc(meta, doc, sessionId);
|
|
307
|
+
// 从空白桶 lastOpened 清掉自己(若仍指向本 session)
|
|
308
|
+
if (meta.lastOpenedByDocument?.[CODING_BLANK_DOC_KEY] === sessionId) {
|
|
309
|
+
delete meta.lastOpenedByDocument[CODING_BLANK_DOC_KEY];
|
|
310
|
+
}
|
|
311
|
+
await this.writeMeta(meta);
|
|
312
|
+
this.cachedSessionId = sessionId;
|
|
313
|
+
return { sessionId, documentId: doc };
|
|
314
|
+
}
|
|
179
315
|
async touchLastOpened(sessionId, patch) {
|
|
180
316
|
const meta = (await this.readMeta()) ?? {
|
|
181
317
|
lastOpenedSessionId: sessionId,
|
|
182
318
|
sessions: [],
|
|
319
|
+
lastOpenedByDocument: {},
|
|
183
320
|
};
|
|
184
321
|
meta.lastOpenedSessionId = sessionId;
|
|
185
322
|
const existing = meta.sessions.find((s) => s.id === sessionId);
|
|
186
|
-
const needTitle = patch?.titleIfEmpty &&
|
|
323
|
+
const needTitle = patch?.titleIfEmpty &&
|
|
324
|
+
!(existing?.title && existing.title.trim() && existing.title !== "新会话");
|
|
187
325
|
this.ensureSessionEntry(meta, sessionId, {
|
|
188
326
|
title: needTitle ? patch.titleIfEmpty : undefined,
|
|
189
327
|
touchUpdatedAt: true,
|
|
190
328
|
});
|
|
329
|
+
if (this.kind === "coding") {
|
|
330
|
+
this.setLastOpenedForDoc(meta, existing?.documentId ?? null, sessionId);
|
|
331
|
+
}
|
|
191
332
|
await this.writeMeta(meta);
|
|
192
333
|
this.cachedSessionId = sessionId;
|
|
193
334
|
}
|
|
@@ -204,16 +345,19 @@ export class AgentSessionManager {
|
|
|
204
345
|
await this.touchLastOpened(sessionId);
|
|
205
346
|
}
|
|
206
347
|
}
|
|
207
|
-
export async function getAgentSessionForApi(visitorId) {
|
|
208
|
-
return new AgentSessionManager(visitorId).loadLastOpenedMessages();
|
|
348
|
+
export async function getAgentSessionForApi(visitorId, kind = "normal", documentId) {
|
|
349
|
+
return new AgentSessionManager(visitorId, { kind }).loadLastOpenedMessages(kind === "coding" ? documentId : undefined);
|
|
350
|
+
}
|
|
351
|
+
export async function listAgentSessionsForApi(visitorId, kind = "normal", documentId) {
|
|
352
|
+
return new AgentSessionManager(visitorId, { kind }).listSessions(kind === "coding" ? documentId : undefined);
|
|
209
353
|
}
|
|
210
|
-
export async function
|
|
211
|
-
return new AgentSessionManager(visitorId).
|
|
354
|
+
export async function createAgentSessionForApi(visitorId, kind = "normal", documentId) {
|
|
355
|
+
return new AgentSessionManager(visitorId, { kind }).createSession(kind === "coding" ? documentId : undefined);
|
|
212
356
|
}
|
|
213
|
-
export async function
|
|
214
|
-
return new AgentSessionManager(visitorId).
|
|
357
|
+
export async function openAgentSessionForApi(visitorId, sessionId, kind = "normal", documentId) {
|
|
358
|
+
return new AgentSessionManager(visitorId, { kind }).openSession(sessionId, kind === "coding" ? documentId : undefined);
|
|
215
359
|
}
|
|
216
|
-
export async function
|
|
217
|
-
return new AgentSessionManager(visitorId).
|
|
360
|
+
export async function bindCodingSessionDocumentForApi(visitorId, sessionId, documentId) {
|
|
361
|
+
return new AgentSessionManager(visitorId, { kind: "coding" }).bindSessionDocument(sessionId, documentId);
|
|
218
362
|
}
|
|
219
363
|
//# sourceMappingURL=session-manager.js.map
|