@fgbg/mdocs 0.8.13 → 0.8.15

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.
Files changed (106) hide show
  1. package/agent-skills/changelog/SKILL.md +13 -1
  2. package/agent-skills/deployment-requirements/SKILL.md +1 -1
  3. package/agent-skills/getting-started-installation/SKILL.md +85 -2
  4. package/agent-skills/index.json +2 -2
  5. package/agent-skills/usage-onboarding-ai/SKILL.md +9 -8
  6. package/dist/server/agent/Agent/context-usage.js +71 -0
  7. package/dist/server/agent/Agent/context-usage.js.map +1 -0
  8. package/dist/server/agent/Agent/run.js +127 -3
  9. package/dist/server/agent/Agent/run.js.map +1 -1
  10. package/dist/server/agent/Agent/session-manager.js +131 -59
  11. package/dist/server/agent/Agent/session-manager.js.map +1 -1
  12. package/dist/server/agent/Agent/system-prompt.js +5 -4
  13. package/dist/server/agent/Agent/system-prompt.js.map +1 -1
  14. package/dist/server/agent/Agent/tools-account.js +12 -0
  15. package/dist/server/agent/Agent/tools-account.js.map +1 -0
  16. package/dist/server/agent/Agent/tools-documents.get-document.test.js +103 -0
  17. package/dist/server/agent/Agent/tools-documents.get-document.test.js.map +1 -0
  18. package/dist/server/agent/Agent/tools-documents.js +245 -0
  19. package/dist/server/agent/Agent/tools-documents.js.map +1 -0
  20. package/dist/server/agent/Agent/tools-domains.js +186 -0
  21. package/dist/server/agent/Agent/tools-domains.js.map +1 -0
  22. package/dist/server/agent/Agent/tools-visitors.js +29 -0
  23. package/dist/server/agent/Agent/tools-visitors.js.map +1 -0
  24. package/dist/server/agent/Config/config.js +20 -0
  25. package/dist/server/agent/Config/config.js.map +1 -1
  26. package/dist/server/db/repositories/agent-model-config.repo.js +19 -4
  27. package/dist/server/db/repositories/agent-model-config.repo.js.map +1 -1
  28. package/dist/server/db/repositories/document.repo.js +6 -0
  29. package/dist/server/db/repositories/document.repo.js.map +1 -1
  30. package/dist/server/db/schema.js +11 -0
  31. package/dist/server/db/schema.js.map +1 -1
  32. package/dist/server/documents/document.service.integration.test.js +94 -1
  33. package/dist/server/documents/document.service.integration.test.js.map +1 -1
  34. package/dist/server/documents/document.service.js +108 -2
  35. package/dist/server/documents/document.service.js.map +1 -1
  36. package/dist/server/documents/markdown-to-lexical.js +3 -1
  37. package/dist/server/documents/markdown-to-lexical.js.map +1 -1
  38. package/dist/server/documents/markdown-to-lexical.test.js +3 -1
  39. package/dist/server/documents/markdown-to-lexical.test.js.map +1 -1
  40. package/dist/server/routes/agent.routes.js +53 -3
  41. package/dist/server/routes/agent.routes.js.map +1 -1
  42. package/dist/server/routes/documents.routes.js +37 -1
  43. package/dist/server/routes/documents.routes.js.map +1 -1
  44. package/dist/server/routes/folders.routes.js +1 -1
  45. package/dist/server/routes/folders.routes.js.map +1 -1
  46. package/dist/server/storage/file-store.js +18 -0
  47. package/dist/server/storage/file-store.js.map +1 -1
  48. package/dist/web/assets/{MergeView-Da6W6Mwd.js → MergeView-0Q5K5-jO.js} +1 -1
  49. package/dist/web/assets/{_baseUniq-DIXaUG3P.js → _baseUniq-BISfv-Mh.js} +1 -1
  50. package/dist/web/assets/{arc-BdrqKgEt.js → arc-C-3Bi1Jy.js} +1 -1
  51. package/dist/web/assets/{architectureDiagram-Q4EWVU46-C7DbabmE.js → architectureDiagram-Q4EWVU46-CusFjwbL.js} +1 -1
  52. package/dist/web/assets/{blockDiagram-DXYQGD6D-xpzHPtBf.js → blockDiagram-DXYQGD6D-B0jPfa7U.js} +1 -1
  53. package/dist/web/assets/{c4Diagram-AHTNJAMY-C55XB-0p.js → c4Diagram-AHTNJAMY-Oe6MTT6L.js} +1 -1
  54. package/dist/web/assets/channel-DB58qUXq.js +1 -0
  55. package/dist/web/assets/{chunk-4BX2VUAB-Cw9cGcvA.js → chunk-4BX2VUAB-CmxvxupC.js} +1 -1
  56. package/dist/web/assets/{chunk-4TB4RGXK-Bb7TaNsp.js → chunk-4TB4RGXK-Bzj2dbY7.js} +1 -1
  57. package/dist/web/assets/{chunk-55IACEB6-ClfU0bTR.js → chunk-55IACEB6-CqfjDrYS.js} +1 -1
  58. package/dist/web/assets/{chunk-EDXVE4YY-DEYQg7so.js → chunk-EDXVE4YY-CWoGAuuy.js} +1 -1
  59. package/dist/web/assets/{chunk-FMBD7UC4-l0uxylnu.js → chunk-FMBD7UC4-WFLld2bI.js} +1 -1
  60. package/dist/web/assets/{chunk-OYMX7WX6-CTuAfYj2.js → chunk-OYMX7WX6-CSyOxg1H.js} +1 -1
  61. package/dist/web/assets/{chunk-QZHKN3VN-Cd5BdpCj.js → chunk-QZHKN3VN-Cyee_8uW.js} +1 -1
  62. package/dist/web/assets/{chunk-YZCP3GAM-C4AFz6HK.js → chunk-YZCP3GAM-C7J3AIM1.js} +1 -1
  63. package/dist/web/assets/classDiagram-6PBFFD2Q-BlGKxrV2.js +1 -0
  64. package/dist/web/assets/classDiagram-v2-HSJHXN6E-BlGKxrV2.js +1 -0
  65. package/dist/web/assets/clone-rVZWwKcK.js +1 -0
  66. package/dist/web/assets/{cose-bilkent-S5V4N54A-DPbGSIxQ.js → cose-bilkent-S5V4N54A-BCHs5xNn.js} +1 -1
  67. package/dist/web/assets/{dagre-KV5264BT-BAqCvioS.js → dagre-KV5264BT-Cqyy62Ql.js} +1 -1
  68. package/dist/web/assets/{diagram-5BDNPKRD-BVhjoylL.js → diagram-5BDNPKRD-BNlGWRfQ.js} +1 -1
  69. package/dist/web/assets/{diagram-G4DWMVQ6-BgdBEUo2.js → diagram-G4DWMVQ6-Qtz-K4Lr.js} +1 -1
  70. package/dist/web/assets/{diagram-MMDJMWI5-v3XiVR4L.js → diagram-MMDJMWI5-D5yn6u63.js} +1 -1
  71. package/dist/web/assets/{diagram-TYMM5635-Bnlc4JL7.js → diagram-TYMM5635-CR-RaIAP.js} +1 -1
  72. package/dist/web/assets/{erDiagram-SMLLAGMA-DZNfy5XO.js → erDiagram-SMLLAGMA-BccF6Qsp.js} +1 -1
  73. package/dist/web/assets/{flowDiagram-DWJPFMVM-CyNHaoXD.js → flowDiagram-DWJPFMVM-B0OEEMQt.js} +1 -1
  74. package/dist/web/assets/{ganttDiagram-T4ZO3ILL-D9XKVK6L.js → ganttDiagram-T4ZO3ILL-B8kfqGyD.js} +1 -1
  75. package/dist/web/assets/{gitGraphDiagram-UUTBAWPF-BsoJR5By.js → gitGraphDiagram-UUTBAWPF-BJntaoFE.js} +1 -1
  76. package/dist/web/assets/{graph-C6hZEMMA.js → graph-Dt01jPc-.js} +1 -1
  77. package/dist/web/assets/{index-BiYwrQhS.js → index-CMSpZccR.js} +98 -98
  78. package/dist/web/assets/index-CPYNlnGV.css +1 -0
  79. package/dist/web/assets/{infoDiagram-42DDH7IO-EsbSvvwg.js → infoDiagram-42DDH7IO-YITqxZHx.js} +1 -1
  80. package/dist/web/assets/{ishikawaDiagram-UXIWVN3A-opc9PUAq.js → ishikawaDiagram-UXIWVN3A-B2HEjE4j.js} +1 -1
  81. package/dist/web/assets/{journeyDiagram-VCZTEJTY-CGoqXdQp.js → journeyDiagram-VCZTEJTY-BfWiWY1h.js} +1 -1
  82. package/dist/web/assets/{kanban-definition-6JOO6SKY-BsMSOTEO.js → kanban-definition-6JOO6SKY-L7VcnCp4.js} +1 -1
  83. package/dist/web/assets/{layout-dka4PN3u.js → layout-CN5HZPYy.js} +1 -1
  84. package/dist/web/assets/{linear-C7358dWt.js → linear-J-E2mhNr.js} +1 -1
  85. package/dist/web/assets/{min-CkhEOvqb.js → min-DG8d4OWa.js} +1 -1
  86. package/dist/web/assets/{mindmap-definition-QFDTVHPH-Cw5Uw5sO.js → mindmap-definition-QFDTVHPH-4QKB3LVg.js} +1 -1
  87. package/dist/web/assets/{pieDiagram-DEJITSTG-D_2NhEs9.js → pieDiagram-DEJITSTG-BpbKNaYV.js} +1 -1
  88. package/dist/web/assets/{quadrantDiagram-34T5L4WZ-CCoI5QqP.js → quadrantDiagram-34T5L4WZ-BsJUNf_y.js} +1 -1
  89. package/dist/web/assets/{requirementDiagram-MS252O5E-DlRuHrpI.js → requirementDiagram-MS252O5E-CEEvTN62.js} +1 -1
  90. package/dist/web/assets/{sankeyDiagram-XADWPNL6-CqeHUQiU.js → sankeyDiagram-XADWPNL6-C-OIxGQH.js} +1 -1
  91. package/dist/web/assets/{sequenceDiagram-FGHM5R23-bAgSxA1M.js → sequenceDiagram-FGHM5R23-DYNvxdh-.js} +1 -1
  92. package/dist/web/assets/{stateDiagram-FHFEXIEX-BY710eMg.js → stateDiagram-FHFEXIEX-Ct9mBbpM.js} +1 -1
  93. package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-Bq3YuMeU.js +1 -0
  94. package/dist/web/assets/{timeline-definition-GMOUNBTQ-Dm1cJJzA.js → timeline-definition-GMOUNBTQ-CV15Blkv.js} +1 -1
  95. package/dist/web/assets/{vennDiagram-DHZGUBPP-x15pVuxW.js → vennDiagram-DHZGUBPP-DI7bqTnV.js} +1 -1
  96. package/dist/web/assets/{wardley-RL74JXVD-Baa2vTyp.js → wardley-RL74JXVD-C6O53D0O.js} +1 -1
  97. package/dist/web/assets/{wardleyDiagram-NUSXRM2D-DD4pCNVv.js → wardleyDiagram-NUSXRM2D-CaAQ_aSA.js} +1 -1
  98. package/dist/web/assets/{xychartDiagram-5P7HB3ND-Cj82t7kB.js → xychartDiagram-5P7HB3ND-Bw31tQmi.js} +1 -1
  99. package/dist/web/index.html +2 -2
  100. package/package.json +2 -2
  101. package/dist/web/assets/channel-R2F1bwis.js +0 -1
  102. package/dist/web/assets/classDiagram-6PBFFD2Q-D8Aoi_kK.js +0 -1
  103. package/dist/web/assets/classDiagram-v2-HSJHXN6E-D8Aoi_kK.js +0 -1
  104. package/dist/web/assets/clone-D3UTWyOI.js +0 -1
  105. package/dist/web/assets/index-C4tGH1XB.css +0 -1
  106. package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-BQw6J9EK.js +0 -1
@@ -1,16 +1,28 @@
1
1
  ---
2
2
  id: changelog
3
3
  name: "更新日志"
4
- description: "- **修复空文档白屏**:空 markdown / Lexical `children: []` 打开时补空段落,避免 editor 全局崩溃"
4
+ description: "- **智能助手读文**:新增 `get_document` 工具,按当前访客读权限读取文档正文(与 HTTP 鉴权一致,无额外特权) - **助手时间线 UI**:对话中按顺序插入工具结果(搜文/域树表格、读文预览卡等),默认折叠;历史重开不回放工具 UI - **代码块复制**:助手回复里的 Markdown 代码块支持一键复制"
5
5
  keywords: []
6
6
  source: changelog.md
7
7
  ---
8
8
 
9
9
  # 更新日志
10
10
 
11
+ ## v0.8.15
12
+
13
+ - **智能助手读文**:新增 `get_document` 工具,按当前访客读权限读取文档正文(与 HTTP 鉴权一致,无额外特权)
14
+ - **助手时间线 UI**:对话中按顺序插入工具结果(搜文/域树表格、读文预览卡等),默认折叠;历史重开不回放工具 UI
15
+ - **代码块复制**:助手回复里的 Markdown 代码块支持一键复制
16
+
17
+ ## v0.8.14
18
+
19
+ - **发布包修复**:`prepack` 现会执行完整 `pnpm build`,避免只升版本号却打出旧 `dist`(此前 0.8.12/0.8.13 缺文档拖拽移动、可拖动助手入口等)
20
+ - **手册**:补充[小服务器安装](./getting-started/installation.md#小服务器安装低内存--云主机)(Swap、`ENOTEMPTY`、低内存 `npm install -g`)
21
+
11
22
  ## v0.8.13
12
23
 
13
24
  - **修复空文档白屏**:空 markdown / Lexical `children: []` 打开时补空段落,避免 editor 全局崩溃
25
+ - **手册**:补充[小服务器安装](./getting-started/installation.md#小服务器安装低内存--云主机)(Swap、`ENOTEMPTY`、低内存 `npm install -g`)
14
26
 
15
27
  ## v0.8.12
16
28
 
@@ -15,7 +15,7 @@ source: deployment/requirements.md
15
15
  | 运行时 | Node.js 22+ |
16
16
  | 包管理器 | pnpm(推荐) |
17
17
  | CPU | 1 核(开发/小团队够用) |
18
- | 内存 | 512 MB 以上 |
18
+ | 内存 | 运行约 512 MB 以上;**安装阶段**建议 ≥1G 或配置 Swap(见[小服务器安装](../getting-started/installation.md#小服务器安装低内存--云主机)) |
19
19
  | 磁盘 | 视文档量而定 |
20
20
 
21
21
  ## 依赖
@@ -103,15 +103,98 @@ mdocs start
103
103
 
104
104
  启动后访问 `http://localhost:4000`(npm 安装)或 `http://localhost:5173`(开发模式),看到访客注册弹窗即表示运行成功。
105
105
 
106
+ ## 小服务器安装(低内存 / 云主机)
107
+
108
+ 1 核 / 1G 内存左右的机器(如轻量阿里云)上,`npm install -g` 很容易被内核 **`Killed`(OOM)**,或因半残目录报 `ENOTEMPTY`。按下面做更稳。
109
+
110
+ ### 1. 加 Swap(强烈建议)
111
+
112
+ ```bash
113
+ # 加 2G swap
114
+ fallocate -l 2G /swapfile || dd if=/dev/zero of=/swapfile bs=1M count=2048
115
+ chmod 600 /swapfile
116
+ mkswap /swapfile
117
+ swapon /swapfile
118
+ free -h
119
+ ```
120
+
121
+ 确认 `Swap` 一行不再是 `0B`。重启后若要长期保留,把 `/swapfile swap swap defaults 0 0` 写入 `/etc/fstab`。
122
+
123
+ ### 2. 清掉半残的全局目录
124
+
125
+ 上次安装被 `Killed` 或报 `ENOTEMPTY` 时必做:
126
+
127
+ ```bash
128
+ rm -rf /usr/lib/node_modules/@fgbg
129
+ npm cache clean --force
130
+ ```
131
+
132
+ ### 3. 限制内存与并发后再装
133
+
134
+ 优先走官方 registry(国内镜像可能尚未同步新版本):
135
+
136
+ ```bash
137
+ NODE_OPTIONS="--max-old-space-size=512" npm install -g @fgbg/mdocs@latest \
138
+ --registry=https://registry.npmjs.org/ \
139
+ --legacy-peer-deps \
140
+ --no-audit \
141
+ --no-fund \
142
+ --maxsockets=1
143
+ ```
144
+
145
+ 不要用 `npm install -g ... -force`:peer 警告可忽略,`-force` 只会更吃内存。
146
+
147
+ ### 4. 离线 tgz(网络差时)
148
+
149
+ 在网络较好的机器上打包,再拷到服务器:
150
+
151
+ ```bash
152
+ # 本机
153
+ npm pack @fgbg/mdocs@latest --registry=https://registry.npmjs.org/
154
+ # 得到 fgbg-mdocs-x.y.z.tgz,scp 到服务器后:
155
+ NODE_OPTIONS="--max-old-space-size=512" npm install -g ./fgbg-mdocs-*.tgz \
156
+ --legacy-peer-deps \
157
+ --no-audit \
158
+ --no-fund \
159
+ --maxsockets=1
160
+ ```
161
+
162
+ ### 5. 备选:不装全局,本地 + 软链
163
+
164
+ 全局仍 OOM 时,可装到当前目录再链出命令:
165
+
166
+ ```bash
167
+ cd /root # 或任意工作目录
168
+ NODE_OPTIONS="--max-old-space-size=512" npm install ./fgbg-mdocs-*.tgz \
169
+ --legacy-peer-deps --no-audit --no-fund --maxsockets=1
170
+ ln -sf "$(pwd)/node_modules/.bin/mdocs" /usr/local/bin/mdocs
171
+ mdocs --help
172
+ ```
173
+
174
+ 若出现 `Cannot find module '.../typebox/build/index.mjs'`,补装依赖即可:
175
+
176
+ ```bash
177
+ npm install typebox@1.1.38 --no-audit --no-fund
178
+ ```
179
+
180
+ ### 常见报错
181
+
182
+ | 现象 | 原因 | 处理 |
183
+ |------|------|------|
184
+ | 安装过程 `Killed` | OOM | 加 Swap,限制 `--maxsockets=1` |
185
+ | `ENOTEMPTY` rename `@fgbg/mdocs` | 上次半残目录 | `rm -rf /usr/lib/node_modules/@fgbg` 后重装 |
186
+ | `ETARGET` / No matching version | 镜像未同步 | `--registry=https://registry.npmjs.org/` 或改用 tgz |
187
+ | `mdocs: command not found` | 用了非 `-g` 安装 | 用全局安装,或软链 `node_modules/.bin/mdocs` |
188
+
106
189
  ## 升级
107
190
 
108
191
  通过 npm 安装的版本,直接重新安装即可升级:
109
192
 
110
193
  ```bash
111
- npm install -g @fgbg/mdocs@latest
194
+ npm install -g @fgbg/mdocs@latest --registry=https://registry.npmjs.org/
112
195
  ```
113
196
 
114
- 升级后重启服务即可。
197
+ 小服务器升级时建议仍按上面「清半残目录 + 限制并发」步骤执行,升级后重启服务即可。
115
198
 
116
199
  ## 下一步
117
200
 
@@ -2,7 +2,7 @@
2
2
  {
3
3
  "id": "changelog",
4
4
  "name": "更新日志",
5
- "description": "- **修复空文档白屏**:空 markdown / Lexical `children: []` 打开时补空段落,避免 editor 全局崩溃",
5
+ "description": "- **智能助手读文**:新增 `get_document` 工具,按当前访客读权限读取文档正文(与 HTTP 鉴权一致,无额外特权) - **助手时间线 UI**:对话中按顺序插入工具结果(搜文/域树表格、读文预览卡等),默认折叠;历史重开不回放工具 UI - **代码块复制**:助手回复里的 Markdown 代码块支持一键复制",
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 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(域、草稿、发布、权限等),**不会**帮你写正文或改文档。",
159
+ "description": "mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草稿、发布、权限等),也可在你的权限范围内代为执行**账号内结构操作**(搜文、列树、读文、建空文档/文件夹、移动文档等)。**不会**代写或改正文。",
160
160
  "keywords": [],
161
161
  "source": "usage/onboarding-ai.md"
162
162
  },
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  id: usage-onboarding-ai
3
3
  name: "上手助手(AI)"
4
- description: "mdocs 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(域、草稿、发布、权限等),**不会**帮你写正文或改文档。"
4
+ description: "mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草稿、发布、权限等),也可在你的权限范围内代为执行**账号内结构操作**(搜文、列树、读文、建空文档/文件夹、移动文档等)。**不会**代写或改正文。"
5
5
  keywords: []
6
6
  source: usage/onboarding-ai.md
7
7
  ---
8
8
 
9
9
  # 上手助手(AI)
10
10
 
11
- mdocs 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(域、草稿、发布、权限等),**不会**帮你写正文或改文档。
11
+ mdocs 内置 **「mdocs 智能助手」**:可解答怎么用 mdocs(域、草稿、发布、权限等),也可在你的权限范围内代为执行**账号内结构操作**(搜文、列树、读文、建空文档/文件夹、移动文档等)。**不会**代写或改正文。
12
12
 
13
13
  若你要用 Cursor / Claude 等**外部 Agent** 读写知识库、落开发契约,见 [Agent 开发闭环](./agent-dev-loop.md)。
14
14
 
@@ -21,7 +21,7 @@ mdocs 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(
21
21
  浮层内:
22
22
 
23
23
  - 顶部:**+** 新建会话、历史列表、关闭
24
- - 中间:对话与指引内容(可含步骤、表格等)
24
+ - 中间:对话与指引内容(可含步骤、表格、工具结果折叠块等);回复中的代码块可一键复制
25
25
  - 底部输入框:占位「把你的问题告诉我…」
26
26
  - 页脚提示:内容由 AI 生成,仅供参考
27
27
 
@@ -45,21 +45,22 @@ mdocs 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(
45
45
  - 草稿是什么?
46
46
  - 如何创建域?
47
47
  - 权限怎么设置?
48
+ - 帮我搜索 / 列出某域文档,并打开其中一篇说明要点
48
49
 
49
- 助手会按需阅读 [mdocs 用户手册](https://xuhuafeifei.github.io/mdocs-site/) 相关章节再回答,并在回复里展示「已阅读 N 个页面」与手册链接。答完后通常会附带一两个可继续追问的示例。
50
+ 助手会按需阅读 [mdocs 用户手册](https://xuhuafeifei.github.io/mdocs-site/) 相关章节,也可在你有权阅读的范围内读取知识库文档。工具结果(搜索表、域树、读文预览等)会出现在对话时间线中,**默认折叠**,展开可查看;历史会话重开后通常只保留文字、不再回放这些工具块。答完后通常会附带一两个可继续追问的示例。
50
51
 
51
52
  ## 会话
52
53
 
53
54
  - 同一访客的对话会保存在数据目录 `tenant/<访客ID>/agent/session/` 下,刷新或重开浮层仍可续聊。
54
55
  - 浮层标题栏 **「+」**:新建空会话并切换过去。
55
- - **历史图标**:按最近更新列出会话;点击即可切换并回放该会话。
56
+ - **历史图标**:按最近更新列出会话;点击即可切换并回放该会话(纯文本;工具 UI 不落盘)。
56
57
  - 会话标题取自**第一条用户消息**(过长会截断),不是模型摘要。
57
58
  - 删除、重命名、按天数自动清理尚未提供。
58
59
 
59
60
  ## 明确不会做
60
61
 
61
- - 代写、润色、按选区改文档
62
- - 替你点击发布或改权限(只会告诉你怎么操作)
62
+ - 代写、润色、按选区改文档正文
63
+ - 越权读取你无权查看的文档(与网页端同一套权限)
64
+ - 静默替你发布或改权限档(结构操作会走工具;写作类请求会拒绝并引导你在编辑器里自行操作)
63
65
 
64
66
  若你要求写作,助手会拒绝并引导你在编辑器里自行操作。
65
-
@@ -0,0 +1,71 @@
1
+ import { getVisitorAgentConfig, DEFAULT_AGENT_CONTEXT_WINDOW } from "../Config/config.js";
2
+ import { getSkillLoader } from "../Skill/skill-loader.js";
3
+ import { buildSystemPrompt } from "./system-prompt.js";
4
+ import { createSkillTools } from "./tools.js";
5
+ import { createAccountTools } from "./tools-account.js";
6
+ import { AgentSessionManager } from "./session-manager.js";
7
+ /** 粗估 token:CJK 约 1 字 1 token,其余约 4 字符 1 token */
8
+ export function estimateTokens(text) {
9
+ if (!text)
10
+ return 0;
11
+ let cjk = 0;
12
+ let other = 0;
13
+ for (const ch of text) {
14
+ const code = ch.codePointAt(0) ?? 0;
15
+ if ((code >= 0x4e00 && code <= 0x9fff) ||
16
+ (code >= 0x3400 && code <= 0x4dbf) ||
17
+ (code >= 0xf900 && code <= 0xfaff)) {
18
+ cjk += 1;
19
+ }
20
+ else {
21
+ other += 1;
22
+ }
23
+ }
24
+ return cjk + Math.ceil(other / 4);
25
+ }
26
+ function estimateToolsTokens(visitorId) {
27
+ const skills = getSkillLoader();
28
+ const tools = skills.isReady()
29
+ ? [...createSkillTools(skills), ...createAccountTools(visitorId)]
30
+ : createAccountTools(visitorId);
31
+ let total = 0;
32
+ for (const t of tools) {
33
+ total += estimateTokens(t.name);
34
+ total += estimateTokens(t.description ?? "");
35
+ try {
36
+ total += estimateTokens(JSON.stringify(t.parameters ?? {}));
37
+ }
38
+ catch {
39
+ /* ignore */
40
+ }
41
+ }
42
+ return total;
43
+ }
44
+ function resolveContextLimit(visitorId) {
45
+ return getVisitorAgentConfig(visitorId)?.contextWindow ?? DEFAULT_AGENT_CONTEXT_WINDOW;
46
+ }
47
+ /**
48
+ * 估算当前 lastOpened session 将占用的 context(system + tools + messages)。
49
+ * limit 来自访客 AI 配置的 contextWindow。
50
+ */
51
+ export async function getAgentContextUsageForApi(visitorId) {
52
+ const limit = resolveContextLimit(visitorId);
53
+ const systemTokens = estimateTokens(buildSystemPrompt());
54
+ const toolTokens = estimateToolsTokens(visitorId);
55
+ const { messages } = await new AgentSessionManager(visitorId).loadLastOpenedMessages();
56
+ let messageTokens = 0;
57
+ for (const m of messages) {
58
+ messageTokens += estimateTokens(m.content);
59
+ }
60
+ const used = Math.min(limit, systemTokens + toolTokens + messageTokens);
61
+ const percent = limit <= 0 ? 0 : Math.min(100, Math.round((used / limit) * 100));
62
+ return { percent, used, limit };
63
+ }
64
+ /** 合并估算与本轮 provider usage.input(取较大者,避免低估) */
65
+ export function mergeContextUsage(estimated, providerInputTokens) {
66
+ const limit = estimated.limit;
67
+ const used = Math.min(limit, Math.max(estimated.used, Math.max(0, Math.floor(providerInputTokens ?? 0))));
68
+ const percent = limit <= 0 ? 0 : Math.min(100, Math.round((used / limit) * 100));
69
+ return { percent, used, limit };
70
+ }
71
+ //# sourceMappingURL=context-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-usage.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/context-usage.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,10 @@ import { getVisitorAgentConfig, } from "../Config/config.js";
5
5
  import { getSkillLoader } from "../Skill/skill-loader.js";
6
6
  import { buildSystemPrompt } from "./system-prompt.js";
7
7
  import { createSkillTools } from "./tools.js";
8
+ import { createAccountTools } from "./tools-account.js";
8
9
  import { AgentSessionManager, } from "./session-manager.js";
10
+ import { getAgentContextUsageForApi, mergeContextUsage, } from "./context-usage.js";
11
+ export { getAgentContextUsageForApi } from "./context-usage.js";
9
12
  export function getAgentStatus(visitorId) {
10
13
  const cfg = getVisitorAgentConfig(visitorId);
11
14
  const skills = getSkillLoader();
@@ -35,7 +38,7 @@ export async function runOnboardingChat(params) {
35
38
  if (!skills.isReady())
36
39
  throw new Error("skills_missing");
37
40
  const { models, model } = createDeepSeekModel(cfg);
38
- const tools = createSkillTools(skills);
41
+ const tools = [...createSkillTools(skills), ...createAccountTools(visitorId)];
39
42
  const systemPrompt = buildSystemPrompt();
40
43
  const sessionManager = new AgentSessionManager(visitorId);
41
44
  const { sessionId, messages: history } = await sessionManager.loadLastOpenedMessages();
@@ -48,7 +51,7 @@ export async function runOnboardingChat(params) {
48
51
  },
49
52
  streamFn: models.streamSimple.bind(models),
50
53
  });
51
- const track = { emittedError: false };
54
+ const track = { emittedError: false, lastUsageInput: 0 };
52
55
  const unsub = agent.subscribe(bindAgentEvents({
53
56
  sessionId,
54
57
  sessionManager,
@@ -64,6 +67,14 @@ export async function runOnboardingChat(params) {
64
67
  if (leftover && !track.emittedError) {
65
68
  onEvent({ type: "error", message: leftover });
66
69
  }
70
+ const estimated = await getAgentContextUsageForApi(visitorId);
71
+ const usage = mergeContextUsage(estimated, track.lastUsageInput);
72
+ onEvent({
73
+ type: "context_usage",
74
+ percent: usage.percent,
75
+ used: usage.used,
76
+ limit: usage.limit,
77
+ });
67
78
  onEvent({ type: "done" });
68
79
  }
69
80
  catch (err) {
@@ -151,6 +162,9 @@ function bindAgentEvents(opts) {
151
162
  }
152
163
  if (event.message.role === "assistant") {
153
164
  const msg = event.message;
165
+ if (typeof msg.usage?.input === "number" && msg.usage.input > 0) {
166
+ track.lastUsageInput = Math.max(track.lastUsageInput, msg.usage.input);
167
+ }
154
168
  if ((msg.stopReason === "error" || msg.stopReason === "aborted") &&
155
169
  msg.errorMessage) {
156
170
  track.emittedError = true;
@@ -177,6 +191,116 @@ function bindAgentEvents(opts) {
177
191
  sourcesById.set(source.id, source);
178
192
  onEvent({ type: "sources", items: [...sourcesById.values()] });
179
193
  }
194
+ return;
195
+ }
196
+ if (event.type === "tool_execution_end" && !event.isError) {
197
+ const TREE_MUTATING_TOOLS = new Set([
198
+ "create_document",
199
+ "create_folder",
200
+ "move_document",
201
+ ]);
202
+ if (TREE_MUTATING_TOOLS.has(event.toolName)) {
203
+ onEvent({ type: "tree_changed", reason: event.toolName });
204
+ }
205
+ const details = event.result?.details;
206
+ if (event.toolName === "search_documents") {
207
+ const results = details?.results ?? [];
208
+ const rows = results
209
+ .map((r) => ({
210
+ documentId: String(r.documentId ?? "").trim(),
211
+ title: String(r.displayName ?? "").trim() || "未命名文档",
212
+ summary: String(r.snippet ?? "").trim(),
213
+ }))
214
+ .filter((r) => r.documentId);
215
+ onEvent({
216
+ type: "document_table",
217
+ title: `搜索结果(${rows.length})`,
218
+ rows,
219
+ });
220
+ return;
221
+ }
222
+ if (event.toolName === "list_my_documents") {
223
+ const documents = details?.documents ?? [];
224
+ const rows = documents
225
+ .map((d) => ({
226
+ documentId: String(d.documentId ?? "").trim(),
227
+ title: String(d.displayName ?? "").trim() || "未命名文档",
228
+ summary: String(d.relativePath ?? "").trim(),
229
+ }))
230
+ .filter((r) => r.documentId);
231
+ onEvent({
232
+ type: "document_table",
233
+ title: `我的文档(${rows.length})`,
234
+ rows,
235
+ });
236
+ return;
237
+ }
238
+ if (event.toolName === "list_tree") {
239
+ const items = details?.items ?? [];
240
+ const rows = items
241
+ .map((it) => {
242
+ const documentId = String(it.documentId ?? "").trim();
243
+ const title = String(it.displayName ?? "").trim() ||
244
+ String(it.name ?? "").trim() ||
245
+ "未命名";
246
+ const kind = it.type === "folder" ? "文件夹" : "文档";
247
+ const path = String(it.path ?? "").trim();
248
+ return {
249
+ documentId,
250
+ title: it.type === "folder" ? `[目录] ${title}` : title,
251
+ summary: path ? `${kind} · ${path}` : kind,
252
+ };
253
+ })
254
+ .filter((r) => r.documentId);
255
+ onEvent({
256
+ type: "document_table",
257
+ title: `域树(${rows.length}${details?.truncated ? "+" : ""})`,
258
+ rows,
259
+ });
260
+ return;
261
+ }
262
+ if (event.toolName === "get_document") {
263
+ const documentId = String(details?.documentId ?? "").trim();
264
+ if (!documentId)
265
+ return;
266
+ const content = String(details?.content ?? "");
267
+ const preview = content.length > 280 ? `${content.slice(0, 280)}…` : content;
268
+ onEvent({
269
+ type: "document_card",
270
+ documentId,
271
+ title: String(details?.displayName ?? "").trim() || "未命名文档",
272
+ path: String(details?.relativePath ?? "").trim(),
273
+ preview,
274
+ });
275
+ return;
276
+ }
277
+ if (event.toolName === "create_document") {
278
+ const name = String(details?.displayName ?? "").trim() || "未命名文档";
279
+ onEvent({
280
+ type: "tool_notice",
281
+ toolName: event.toolName,
282
+ text: `已创建空文档「${name}」`,
283
+ });
284
+ return;
285
+ }
286
+ if (event.toolName === "create_folder") {
287
+ const path = String(details?.path ?? "").trim();
288
+ onEvent({
289
+ type: "tool_notice",
290
+ toolName: event.toolName,
291
+ text: path ? `已创建文件夹「${path}」` : "已创建文件夹",
292
+ });
293
+ return;
294
+ }
295
+ if (event.toolName === "move_document") {
296
+ const name = String(details?.displayName ?? "").trim() || "文档";
297
+ const path = String(details?.relativePath ?? "").trim();
298
+ onEvent({
299
+ type: "tool_notice",
300
+ toolName: event.toolName,
301
+ text: path ? `已移动「${name}」→ ${path}` : `已移动「${name}」`,
302
+ });
303
+ }
180
304
  }
181
305
  };
182
306
  }
@@ -190,7 +314,7 @@ function createDeepSeekModel(cfg) {
190
314
  reasoning: false,
191
315
  input: ["text"],
192
316
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
193
- contextWindow: 128000,
317
+ contextWindow: cfg.contextWindow,
194
318
  maxTokens: 8192,
195
319
  compat: {
196
320
  supportsDeveloperRole: false,
@@ -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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"}