@aigne/doc-smith 0.8.12-beta.8 → 0.8.12

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 (264) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/agents/publish/index.yaml +4 -0
  3. package/agents/publish/publish-docs.mjs +77 -5
  4. package/agents/publish/translate-meta.mjs +103 -0
  5. package/agents/update/generate-document.yaml +30 -28
  6. package/agents/update/update-document-detail.yaml +3 -1
  7. package/agents/utils/update-branding.mjs +69 -0
  8. package/package.json +16 -2
  9. package/prompts/common/document/role-and-personality.md +3 -1
  10. package/prompts/detail/d2-diagram/guide.md +7 -1
  11. package/prompts/detail/d2-diagram/user-prompt.md +3 -0
  12. package/prompts/detail/generate/system-prompt.md +6 -7
  13. package/prompts/detail/generate/user-prompt.md +12 -3
  14. package/prompts/detail/update/user-prompt.md +0 -2
  15. package/prompts/structure/update/user-prompt.md +0 -4
  16. package/utils/file-utils.mjs +69 -24
  17. package/utils/markdown-checker.mjs +0 -20
  18. package/utils/request.mjs +7 -0
  19. package/utils/upload-files.mjs +231 -0
  20. package/utils/utils.mjs +11 -1
  21. package/.aigne/doc-smith/config.yaml +0 -77
  22. package/.aigne/doc-smith/history.yaml +0 -37
  23. package/.aigne/doc-smith/media-description.yaml +0 -91
  24. package/.aigne/doc-smith/output/structure-plan.json +0 -162
  25. package/.aigne/doc-smith/preferences.yml +0 -97
  26. package/.aigne/doc-smith/upload-cache.yaml +0 -1830
  27. package/.github/PULL_REQUEST_TEMPLATE.md +0 -28
  28. package/.github/workflows/ci.yml +0 -54
  29. package/.github/workflows/create-release-pr.yaml +0 -21
  30. package/.github/workflows/publish-docs.yml +0 -65
  31. package/.github/workflows/release.yml +0 -49
  32. package/.github/workflows/reviewer.yml +0 -54
  33. package/.release-please-manifest.json +0 -3
  34. package/RELEASE.md +0 -9
  35. package/assets/screenshots/doc-complete-setup.png +0 -0
  36. package/assets/screenshots/doc-generate-docs.png +0 -0
  37. package/assets/screenshots/doc-generate.png +0 -0
  38. package/assets/screenshots/doc-generated-successfully.png +0 -0
  39. package/assets/screenshots/doc-publish.png +0 -0
  40. package/assets/screenshots/doc-regenerate.png +0 -0
  41. package/assets/screenshots/doc-translate-langs.png +0 -0
  42. package/assets/screenshots/doc-translate.png +0 -0
  43. package/assets/screenshots/doc-update.png +0 -0
  44. package/biome.json +0 -73
  45. package/codecov.yml +0 -15
  46. package/docs/_sidebar.md +0 -15
  47. package/docs/configuration-initial-setup.ja.md +0 -179
  48. package/docs/configuration-initial-setup.md +0 -198
  49. package/docs/configuration-initial-setup.zh-TW.md +0 -179
  50. package/docs/configuration-initial-setup.zh.md +0 -179
  51. package/docs/configuration-managing-preferences.ja.md +0 -100
  52. package/docs/configuration-managing-preferences.md +0 -100
  53. package/docs/configuration-managing-preferences.zh-TW.md +0 -100
  54. package/docs/configuration-managing-preferences.zh.md +0 -100
  55. package/docs/configuration.ja.md +0 -69
  56. package/docs/configuration.md +0 -69
  57. package/docs/configuration.zh-TW.md +0 -69
  58. package/docs/configuration.zh.md +0 -69
  59. package/docs/getting-started.ja.md +0 -107
  60. package/docs/getting-started.md +0 -107
  61. package/docs/getting-started.zh-TW.md +0 -107
  62. package/docs/getting-started.zh.md +0 -107
  63. package/docs/guides-cleaning-up.ja.md +0 -51
  64. package/docs/guides-cleaning-up.md +0 -52
  65. package/docs/guides-cleaning-up.zh-TW.md +0 -51
  66. package/docs/guides-cleaning-up.zh.md +0 -51
  67. package/docs/guides-evaluating-documents.ja.md +0 -66
  68. package/docs/guides-evaluating-documents.md +0 -107
  69. package/docs/guides-evaluating-documents.zh-TW.md +0 -66
  70. package/docs/guides-evaluating-documents.zh.md +0 -66
  71. package/docs/guides-generating-documentation.ja.md +0 -151
  72. package/docs/guides-generating-documentation.md +0 -89
  73. package/docs/guides-generating-documentation.zh-TW.md +0 -151
  74. package/docs/guides-generating-documentation.zh.md +0 -151
  75. package/docs/guides-interactive-chat.ja.md +0 -85
  76. package/docs/guides-interactive-chat.md +0 -93
  77. package/docs/guides-interactive-chat.zh-TW.md +0 -85
  78. package/docs/guides-interactive-chat.zh.md +0 -85
  79. package/docs/guides-managing-history.ja.md +0 -48
  80. package/docs/guides-managing-history.md +0 -53
  81. package/docs/guides-managing-history.zh-TW.md +0 -48
  82. package/docs/guides-managing-history.zh.md +0 -48
  83. package/docs/guides-publishing-your-docs.ja.md +0 -78
  84. package/docs/guides-publishing-your-docs.md +0 -83
  85. package/docs/guides-publishing-your-docs.zh-TW.md +0 -78
  86. package/docs/guides-publishing-your-docs.zh.md +0 -78
  87. package/docs/guides-translating-documentation.ja.md +0 -95
  88. package/docs/guides-translating-documentation.md +0 -100
  89. package/docs/guides-translating-documentation.zh-TW.md +0 -95
  90. package/docs/guides-translating-documentation.zh.md +0 -95
  91. package/docs/guides-updating-documentation.ja.md +0 -77
  92. package/docs/guides-updating-documentation.md +0 -79
  93. package/docs/guides-updating-documentation.zh-TW.md +0 -77
  94. package/docs/guides-updating-documentation.zh.md +0 -77
  95. package/docs/guides.ja.md +0 -32
  96. package/docs/guides.md +0 -32
  97. package/docs/guides.zh-TW.md +0 -32
  98. package/docs/guides.zh.md +0 -32
  99. package/docs/overview.ja.md +0 -61
  100. package/docs/overview.md +0 -61
  101. package/docs/overview.zh-TW.md +0 -61
  102. package/docs/overview.zh.md +0 -61
  103. package/docs/release-notes.ja.md +0 -255
  104. package/docs/release-notes.md +0 -288
  105. package/docs/release-notes.zh-TW.md +0 -255
  106. package/docs/release-notes.zh.md +0 -255
  107. package/prompts/common/afs/afs-tools-usage.md +0 -5
  108. package/prompts/common/afs/use-afs-instruction.md +0 -1
  109. package/release-please-config.json +0 -14
  110. package/tests/agents/chat/chat.test.mjs +0 -46
  111. package/tests/agents/clear/choose-contents.test.mjs +0 -284
  112. package/tests/agents/clear/clear-auth-tokens.test.mjs +0 -268
  113. package/tests/agents/clear/clear-document-config.test.mjs +0 -167
  114. package/tests/agents/clear/clear-document-structure.test.mjs +0 -380
  115. package/tests/agents/clear/clear-generated-docs.test.mjs +0 -222
  116. package/tests/agents/evaluate/code-snippet.test.mjs +0 -163
  117. package/tests/agents/evaluate/fixtures/api-services.md +0 -87
  118. package/tests/agents/evaluate/fixtures/js-sdk.md +0 -94
  119. package/tests/agents/evaluate/generate-report.test.mjs +0 -312
  120. package/tests/agents/generate/check-document-structure.test.mjs +0 -45
  121. package/tests/agents/generate/check-need-generate-structure.test.mjs +0 -279
  122. package/tests/agents/generate/document-structure-tools/add-document.test.mjs +0 -449
  123. package/tests/agents/generate/document-structure-tools/delete-document.test.mjs +0 -410
  124. package/tests/agents/generate/document-structure-tools/generate-sub-structure.test.mjs +0 -277
  125. package/tests/agents/generate/document-structure-tools/move-document.test.mjs +0 -476
  126. package/tests/agents/generate/document-structure-tools/update-document.test.mjs +0 -548
  127. package/tests/agents/generate/generate-structure.test.mjs +0 -45
  128. package/tests/agents/generate/user-review-document-structure.test.mjs +0 -319
  129. package/tests/agents/history/view.test.mjs +0 -97
  130. package/tests/agents/init/init.test.mjs +0 -1657
  131. package/tests/agents/prefs/prefs.test.mjs +0 -431
  132. package/tests/agents/publish/publish-docs.test.mjs +0 -787
  133. package/tests/agents/translate/choose-language.test.mjs +0 -311
  134. package/tests/agents/translate/translate-document.test.mjs +0 -51
  135. package/tests/agents/update/check-document.test.mjs +0 -463
  136. package/tests/agents/update/check-update-is-single.test.mjs +0 -300
  137. package/tests/agents/update/document-tools/update-document-content.test.mjs +0 -329
  138. package/tests/agents/update/generate-document.test.mjs +0 -51
  139. package/tests/agents/update/save-and-translate-document.test.mjs +0 -369
  140. package/tests/agents/update/user-review-document.test.mjs +0 -582
  141. package/tests/agents/utils/action-success.test.mjs +0 -54
  142. package/tests/agents/utils/check-detail-result.test.mjs +0 -743
  143. package/tests/agents/utils/check-feedback-refiner.test.mjs +0 -478
  144. package/tests/agents/utils/choose-docs.test.mjs +0 -406
  145. package/tests/agents/utils/exit.test.mjs +0 -70
  146. package/tests/agents/utils/feedback-refiner.test.mjs +0 -51
  147. package/tests/agents/utils/find-item-by-path.test.mjs +0 -517
  148. package/tests/agents/utils/find-user-preferences-by-path.test.mjs +0 -382
  149. package/tests/agents/utils/format-document-structure.test.mjs +0 -364
  150. package/tests/agents/utils/fs.test.mjs +0 -267
  151. package/tests/agents/utils/load-sources.test.mjs +0 -1470
  152. package/tests/agents/utils/save-docs.test.mjs +0 -109
  153. package/tests/agents/utils/save-output.test.mjs +0 -315
  154. package/tests/agents/utils/save-single-doc.test.mjs +0 -364
  155. package/tests/agents/utils/transform-detail-datasources.test.mjs +0 -320
  156. package/tests/utils/auth-utils.test.mjs +0 -596
  157. package/tests/utils/blocklet.test.mjs +0 -336
  158. package/tests/utils/conflict-detector.test.mjs +0 -355
  159. package/tests/utils/constants.test.mjs +0 -295
  160. package/tests/utils/d2-utils.test.mjs +0 -437
  161. package/tests/utils/deploy.test.mjs +0 -399
  162. package/tests/utils/docs-finder-utils.test.mjs +0 -650
  163. package/tests/utils/file-utils.test.mjs +0 -521
  164. package/tests/utils/history-utils.test.mjs +0 -206
  165. package/tests/utils/kroki-utils.test.mjs +0 -646
  166. package/tests/utils/linter/fixtures/css/keyword-error.css +0 -1
  167. package/tests/utils/linter/fixtures/css/missing-semicolon.css +0 -1
  168. package/tests/utils/linter/fixtures/css/syntax-error.css +0 -1
  169. package/tests/utils/linter/fixtures/css/undeclare-variable.css +0 -1
  170. package/tests/utils/linter/fixtures/css/unused-variable.css +0 -2
  171. package/tests/utils/linter/fixtures/css/valid-code.css +0 -1
  172. package/tests/utils/linter/fixtures/dockerfile/keyword-error.dockerfile +0 -1
  173. package/tests/utils/linter/fixtures/dockerfile/missing-semicolon.dockerfile +0 -2
  174. package/tests/utils/linter/fixtures/dockerfile/syntax-error.dockerfile +0 -2
  175. package/tests/utils/linter/fixtures/dockerfile/undeclare-variable.dockerfile +0 -1
  176. package/tests/utils/linter/fixtures/dockerfile/unused-variable.dockerfile +0 -1
  177. package/tests/utils/linter/fixtures/dockerfile/valid-code.dockerfile +0 -2
  178. package/tests/utils/linter/fixtures/go/keyword-error.go +0 -5
  179. package/tests/utils/linter/fixtures/go/missing-semicolon.go +0 -5
  180. package/tests/utils/linter/fixtures/go/syntax-error.go +0 -6
  181. package/tests/utils/linter/fixtures/go/undeclare-variable.go +0 -5
  182. package/tests/utils/linter/fixtures/go/unused-variable.go +0 -5
  183. package/tests/utils/linter/fixtures/go/valid-code.go +0 -7
  184. package/tests/utils/linter/fixtures/js/keyword-error.js +0 -3
  185. package/tests/utils/linter/fixtures/js/missing-semicolon.js +0 -6
  186. package/tests/utils/linter/fixtures/js/syntax-error.js +0 -4
  187. package/tests/utils/linter/fixtures/js/undeclare-variable.js +0 -3
  188. package/tests/utils/linter/fixtures/js/unused-variable.js +0 -7
  189. package/tests/utils/linter/fixtures/js/valid-code.js +0 -15
  190. package/tests/utils/linter/fixtures/json/keyword-error.json +0 -1
  191. package/tests/utils/linter/fixtures/json/missing-semicolon.json +0 -1
  192. package/tests/utils/linter/fixtures/json/syntax-error.json +0 -1
  193. package/tests/utils/linter/fixtures/json/undeclare-variable.json +0 -1
  194. package/tests/utils/linter/fixtures/json/unused-variable.json +0 -1
  195. package/tests/utils/linter/fixtures/json/valid-code.json +0 -1
  196. package/tests/utils/linter/fixtures/jsx/keyword-error.jsx +0 -5
  197. package/tests/utils/linter/fixtures/jsx/missing-semicolon.jsx +0 -5
  198. package/tests/utils/linter/fixtures/jsx/syntax-error.jsx +0 -5
  199. package/tests/utils/linter/fixtures/jsx/undeclare-variable.jsx +0 -5
  200. package/tests/utils/linter/fixtures/jsx/unused-variable.jsx +0 -4
  201. package/tests/utils/linter/fixtures/jsx/valid-code.jsx +0 -5
  202. package/tests/utils/linter/fixtures/python/keyword-error.py +0 -3
  203. package/tests/utils/linter/fixtures/python/missing-semicolon.py +0 -2
  204. package/tests/utils/linter/fixtures/python/syntax-error.py +0 -3
  205. package/tests/utils/linter/fixtures/python/undeclare-variable.py +0 -3
  206. package/tests/utils/linter/fixtures/python/unused-variable.py +0 -6
  207. package/tests/utils/linter/fixtures/python/valid-code.py +0 -12
  208. package/tests/utils/linter/fixtures/ruby/keyword-error.rb +0 -2
  209. package/tests/utils/linter/fixtures/ruby/missing-semicolon.rb +0 -1
  210. package/tests/utils/linter/fixtures/ruby/syntax-error.rb +0 -2
  211. package/tests/utils/linter/fixtures/ruby/undeclare-variable.rb +0 -1
  212. package/tests/utils/linter/fixtures/ruby/unused-variable.rb +0 -2
  213. package/tests/utils/linter/fixtures/ruby/valid-code.rb +0 -1
  214. package/tests/utils/linter/fixtures/sass/keyword-error.sass +0 -2
  215. package/tests/utils/linter/fixtures/sass/missing-semicolon.sass +0 -3
  216. package/tests/utils/linter/fixtures/sass/syntax-error.sass +0 -3
  217. package/tests/utils/linter/fixtures/sass/undeclare-variable.sass +0 -2
  218. package/tests/utils/linter/fixtures/sass/unused-variable.sass +0 -4
  219. package/tests/utils/linter/fixtures/sass/valid-code.sass +0 -2
  220. package/tests/utils/linter/fixtures/scss/keyword-error.scss +0 -1
  221. package/tests/utils/linter/fixtures/scss/missing-semicolon.scss +0 -1
  222. package/tests/utils/linter/fixtures/scss/syntax-error.scss +0 -1
  223. package/tests/utils/linter/fixtures/scss/undeclare-variable.scss +0 -1
  224. package/tests/utils/linter/fixtures/scss/unused-variable.scss +0 -2
  225. package/tests/utils/linter/fixtures/scss/valid-code.scss +0 -1
  226. package/tests/utils/linter/fixtures/shell/keyword-error.sh +0 -5
  227. package/tests/utils/linter/fixtures/shell/missing-semicolon.sh +0 -3
  228. package/tests/utils/linter/fixtures/shell/syntax-error.sh +0 -4
  229. package/tests/utils/linter/fixtures/shell/undeclare-variable.sh +0 -3
  230. package/tests/utils/linter/fixtures/shell/unused-variable.sh +0 -4
  231. package/tests/utils/linter/fixtures/shell/valid-code.sh +0 -3
  232. package/tests/utils/linter/fixtures/ts/keyword-error.ts +0 -1
  233. package/tests/utils/linter/fixtures/ts/missing-semicolon.ts +0 -1
  234. package/tests/utils/linter/fixtures/ts/syntax-error.ts +0 -1
  235. package/tests/utils/linter/fixtures/ts/undeclare-variable.ts +0 -1
  236. package/tests/utils/linter/fixtures/ts/unused-variable.ts +0 -3
  237. package/tests/utils/linter/fixtures/ts/valid-code.ts +0 -3
  238. package/tests/utils/linter/fixtures/tsx/keyword-error.tsx +0 -5
  239. package/tests/utils/linter/fixtures/tsx/missing-semicolon.tsx +0 -5
  240. package/tests/utils/linter/fixtures/tsx/syntax-error.tsx +0 -5
  241. package/tests/utils/linter/fixtures/tsx/undeclare-variable.tsx +0 -6
  242. package/tests/utils/linter/fixtures/tsx/unused-variable.tsx +0 -6
  243. package/tests/utils/linter/fixtures/tsx/valid-code.tsx +0 -5
  244. package/tests/utils/linter/fixtures/vue/keyword-error.vue +0 -6
  245. package/tests/utils/linter/fixtures/vue/missing-semicolon.vue +0 -6
  246. package/tests/utils/linter/fixtures/vue/syntax-error.vue +0 -6
  247. package/tests/utils/linter/fixtures/vue/undeclare-variable.vue +0 -6
  248. package/tests/utils/linter/fixtures/vue/unused-variable.vue +0 -7
  249. package/tests/utils/linter/fixtures/vue/valid-code.vue +0 -6
  250. package/tests/utils/linter/fixtures/yaml/keyword-error.yml +0 -1
  251. package/tests/utils/linter/fixtures/yaml/missing-semicolon.yml +0 -2
  252. package/tests/utils/linter/fixtures/yaml/syntax-error.yml +0 -1
  253. package/tests/utils/linter/fixtures/yaml/undeclare-variable.yml +0 -1
  254. package/tests/utils/linter/fixtures/yaml/unused-variable.yml +0 -2
  255. package/tests/utils/linter/fixtures/yaml/valid-code.yml +0 -3
  256. package/tests/utils/linter/index.test.mjs +0 -440
  257. package/tests/utils/linter/scan-results.mjs +0 -42
  258. package/tests/utils/load-config.test.mjs +0 -141
  259. package/tests/utils/markdown/index.test.mjs +0 -478
  260. package/tests/utils/mermaid-validator.test.mjs +0 -541
  261. package/tests/utils/mock-chat-model.mjs +0 -12
  262. package/tests/utils/preferences-utils.test.mjs +0 -465
  263. package/tests/utils/save-value-to-config.test.mjs +0 -483
  264. package/tests/utils/utils.test.mjs +0 -941
@@ -1,255 +0,0 @@
1
- # 发行说明
2
-
3
- 本文档总结了该工具每个版本的新功能、改进和错误修复。所有变更均按时间倒序排列。
4
-
5
- ## 版本 0.8.12-beta.3 (2025-10-09)
6
-
7
- ### 错误修复
8
-
9
- - 解决了发布到云端时错误地要求管理员权限的问题。
10
-
11
- ## 版本 0.8.12-beta.2 (2025-10-09)
12
-
13
- ### 错误修复
14
-
15
- - 修正了更新文档时文件路径的错误。
16
- - 修复了可能导致文档生成和更新失败的问题。
17
-
18
- ## 版本 0.8.12-beta.1 (2025-10-08)
19
-
20
- ### 新功能
21
-
22
- - 引入了历史记录跟踪功能,允许您查看文档的过往变更。
23
- - 在文档更新过程中,翻译现在是一个可选步骤,提供了更大的灵活性。
24
-
25
- ### 改进
26
-
27
- - 优化了文档生成和更新流程,以提高可靠性。
28
-
29
- ## 版本 0.8.12-beta (2025-10-07)
30
-
31
- ### 错误修复
32
-
33
- - 内部文件读取工具现在可以正确支持相对路径。
34
-
35
- ## 版本 0.8.11 (2025-10-05)
36
-
37
- 此版本包含常规维护和稳定性改进。
38
-
39
- ## 版本 0.8.11-beta.7 (2025-10-03)
40
-
41
- ### 新功能
42
-
43
- - 增强了文档生成器和更新器,以获得更好的性能。
44
- - 通过使用共享上下文,提高了文档结构分析和内容优化的速度。
45
-
46
- ### 错误修复
47
-
48
- - 更新了内部文档并优化了自定义组件的提示,以提高准确性。
49
-
50
- ## 版本 0.8.11-beta.5 (2025-10-01)
51
-
52
- ### 新功能
53
-
54
- - 新增了对发布时的用户角色要求和自定义规则配置的支持。
55
- - 将 D2 图表生成功能分离为一个独立的工具,以实现更专注的功能。
56
-
57
- ## 版本 0.8.11-beta.4 (2025-09-30)
58
-
59
- ### 新功能
60
-
61
- - 为使用选择输入的 Agent 添加了“仅检查”选项。
62
-
63
- ### 错误修复
64
-
65
- - 改进了文档选择实用程序中的错误处理。
66
- - 调整了翻译提示;现在代码块内的注释可以被正确翻译。
67
-
68
- ## 版本 0.8.11-beta.3 (2025-09-29)
69
-
70
- ### 错误修复
71
-
72
- - 为评估 Agent 添加了命令行入口。
73
-
74
- ## 版本 0.8.11-beta.2 (2025-09-27)
75
-
76
- ### 错误修复
77
-
78
- - 解决了依赖冲突,以确保更平稳的运行。
79
-
80
- ## 版本 0.8.11-beta.1 (2025-09-27)
81
-
82
- ### 新功能
83
-
84
- - 引入了文档评估功能,以生成质量报告。
85
- - 通过改进的工具增强了文档和结构的更新流程。
86
- - 改进了发布过程中的供应商处理和调试能力。
87
-
88
- ### 错误修复
89
-
90
- - 修复了组件描述被当作属性而非文本处理的问题,从而改进了自定义组件的渲染。
91
-
92
- ## 版本 0.8.10 (2025-09-20)
93
-
94
- 此版本包含常规维护和稳定性改进。
95
-
96
- ## 版本 0.8.10-beta.3 (2025-09-19)
97
-
98
- ### 错误修复
99
-
100
- - 添加了与企业部署相关的链接。
101
- - 优化了文档审查提示的文案。
102
-
103
- ## 版本 0.8.10-beta.2 (2025-09-18)
104
-
105
- ### 错误修复
106
-
107
- - 改进了文档结构审查的提示和显示。
108
- - 更新了字段元素的使用规则,以确保正确渲染。
109
-
110
- ## 版本 0.8.10-beta.1 (2025-09-18)
111
-
112
- ### 新功能
113
-
114
- - 新增了在生成前审查文档结构的工作流。
115
-
116
- ### 错误修复
117
-
118
- - 提高了用户界面中英文文本的一致性和清晰度。
119
- - 更新了 DocSmith 徽标。
120
-
121
- ## 版本 0.8.9 (2025-09-15)
122
-
123
- ### 错误修复
124
-
125
- - 更新了 D2 图表的主题颜色,以获得更好的视觉一致性。
126
-
127
- ## 版本 0.8.8 (2025-09-13)
128
-
129
- ### 错误修复
130
-
131
- - 优化了问询反馈的文案,使其更清晰、更有帮助。
132
-
133
- ## 版本 0.8.7 (2025-09-12)
134
-
135
- ### 新功能
136
-
137
- - 新增了使用 `<x-field>` 自定义组件定义 API 参数的支持。
138
-
139
- ## 版本 0.8.6 (2025-09-11)
140
-
141
- ### 新功能
142
-
143
- - 成功发布后,现在默认显示 URL。
144
-
145
- ### 错误修复
146
-
147
- - 确保在部署过程中正确保存日志,以防止数据丢失。
148
-
149
- ## 版本 0.8.5 (2025-09-10)
150
-
151
- ### 新功能
152
-
153
- - 新增了对将文档发布到企业空间的支持。
154
-
155
- ## 版本 0.8.4 (2025-09-09)
156
-
157
- ### 错误修复
158
-
159
- - Markdown 代码块现在被解析为自定义的 `<x-code>` 元素,并支持标题和图标等增强属性。
160
- - 将 D2 图表的背景设置为透明,以便更好地与不同主题集成。
161
-
162
- ## 版本 0.8.3 (2025-09-05)
163
-
164
- ### 错误修复
165
-
166
- - 为本地图片添加了自动尺寸检测功能,以确保其正确显示。
167
-
168
- ## 版本 0.8.1 (2025-09-03)
169
-
170
- ### 新功能
171
-
172
- - 通过更全面的示例调整了 D2 图表生成,以提高输出质量。
173
-
174
- ## 版本 0.8.0 (2025-09-03)
175
-
176
- ### 新功能
177
-
178
- - 更新了自定义组件的指南,增加了新的格式限制。
179
-
180
- ## 版本 0.7.1 (2025-08-31)
181
-
182
- ### 错误修复
183
-
184
- - 修复了使用 Tab 键进行路径选择时无法正常工作的错误。
185
-
186
- ## 版本 0.7.0 (2025-08-30)
187
-
188
- ### 新功能
189
-
190
- - 新增了用于生成和管理文档的交互式聊天模式。
191
- - 在文档生成和发布工作流中引入了对 D2 图表的支持。
192
- - 启用了对自定义组件和更强大的配置处理的支持。
193
-
194
- ## 版本 0.6.0 (2025-08-27)
195
-
196
- ### 新功能
197
-
198
- - 实现了在发布文档前对媒体进行处理的完整支持。
199
-
200
- ## 版本 0.5.0 (2025-08-26)
201
-
202
- ### 新功能
203
-
204
- - 用户反馈现在可以作为持久化偏好保存,供未来会话使用。
205
-
206
- ### 错误修复
207
-
208
- - 优化了初始设置过程中提问的文本。
209
-
210
- ## 版本 0.4.4 (2025-08-22)
211
-
212
- ### 错误修复
213
-
214
- - 新增了在发布过程中分配看板 ID 的支持。
215
-
216
- ## 版本 0.4.1 (2025-08-21)
217
-
218
- ### 错误修复
219
-
220
- - 新增了对更新看板信息的支持。
221
-
222
- ## 版本 0.4.0 (2025-08-20)
223
-
224
- ### 新功能
225
-
226
- - 引入了用于翻译文档的新命令 `translate`。
227
-
228
- ## 版本 0.3.0 (2025-08-19)
229
-
230
- ### 新功能
231
-
232
- - 优化了在文档生成期间收集上下文的工作流。
233
-
234
- ### 错误修复
235
-
236
- - 优化了为运行自托管 Discuss Kit 实例的用户提供的帮助文本。
237
-
238
- ## 版本 0.2.11 (2025-08-15)
239
-
240
- ### 错误修复
241
-
242
- - 更换了默认语言模型以提高生成质量。
243
-
244
- ## 版本 0.2.5 (2025-08-08)
245
-
246
- ### 错误修复
247
-
248
- - 优化了命令行界面流程,以提供更流畅的用户体验。
249
-
250
- ## 版本 0.2.0 (2025-08-05)
251
-
252
- ### 新功能
253
-
254
- - 现在,当运行命令时,如果配置缺失,工具将自动初始化配置。
255
- - 新增了 `update` 命令,用于在源文件发生更改时刷新文档。
@@ -1,5 +0,0 @@
1
- <afs-tool-usage>
2
- When to use Tools:
3
- - During document generation, if the given context is missing or lacks referenced content, use afs_list/afs_search/afs_read to obtain more context
4
- - Code examples in generated documents must use APIs and packages defined in the input data sources. Do not generate non-existent code out of thin air. Use afs_list/afs_search/afs_read to query related code or references
5
- </afs-tool-usage>
@@ -1 +0,0 @@
1
- Use AFS tools to list/search/read files to obtain more context or references. Ensure all content is accurate, relevant, and well-structured.
@@ -1,14 +0,0 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3
- "release-type": "node",
4
- "prerelease": true,
5
- "versioning": "prerelease",
6
- "packages": {
7
- ".": {
8
- "bump-minor-pre-major": true,
9
- "bump-patch-for-minor-pre-major": true,
10
- "include-component-in-tag": false,
11
- "prerelease-type": "beta"
12
- }
13
- }
14
- }
@@ -1,46 +0,0 @@
1
- import { afterAll, beforeAll, describe, expect, test } from "bun:test";
2
- import { join } from "node:path";
3
- import { AIAgent } from "@aigne/core";
4
- import { loadAgent } from "@aigne/core/loader/index.js";
5
- import { loadModel } from "../../utils/mock-chat-model.mjs";
6
-
7
- describe("chat Agent", () => {
8
- beforeAll(() => {
9
- process.env.AIGNE_OBSERVABILITY_DISABLED = "true";
10
- });
11
-
12
- afterAll(() => {
13
- delete process.env.AIGNE_OBSERVABILITY_DISABLED;
14
- });
15
- test("should load agent correctly with proper configuration", async () => {
16
- const agent = await loadAgent(join(import.meta.dirname, "../../../agents/chat/index.yaml"), {
17
- model: loadModel,
18
- });
19
-
20
- expect(agent).toBeDefined();
21
-
22
- // Verify agent exists and is correct type
23
- expect(agent).toBeDefined();
24
- expect(agent).toBeInstanceOf(AIAgent);
25
- expect(agent.name).toBe("chat");
26
- });
27
-
28
- test("should have instructions loaded correctly", async () => {
29
- const agent = await loadAgent(join(import.meta.dirname, "../../../agents/chat/index.yaml"), {
30
- model: loadModel,
31
- });
32
-
33
- expect(agent).toBeDefined();
34
-
35
- // Verify instructions are loaded
36
- expect(agent.instructions).toBeDefined();
37
- const instructions = await agent.instructions.build({});
38
- expect(instructions.messages).toBeDefined();
39
- expect(instructions.messages.length).toBeGreaterThan(0);
40
-
41
- // The instructions should contain content from the inline instructions
42
- const systemMessage = instructions.messages.find((m) => m.role === "system");
43
- expect(systemMessage).toBeDefined();
44
- expect(systemMessage.content).toContain("document generation assistant");
45
- });
46
- });
@@ -1,284 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
2
- import chooseContents from "../../../agents/clear/choose-contents.mjs";
3
-
4
- describe("choose-contents", () => {
5
- let mockOptions;
6
- let mockContext;
7
- let mockClearAgents;
8
-
9
- beforeEach(() => {
10
- // Create mock clear agents
11
- mockClearAgents = {
12
- clearGeneratedDocs: mock(async () => ({
13
- message: "Generated docs cleared",
14
- cleared: true,
15
- path: "/test/docs",
16
- })),
17
- clearDocumentStructure: mock(async () => ({
18
- message: "Documentation Structure cleared",
19
- cleared: true,
20
- path: "/test/structure.json",
21
- })),
22
- clearDocumentConfig: mock(async () => ({
23
- message: "Document config cleared",
24
- cleared: true,
25
- path: "/test/config.yaml",
26
- suggestions: ["Run `aigne doc init` to generate a fresh configuration file."],
27
- })),
28
- clearAuthTokens: mock(async () => ({
29
- message: "Auth tokens cleared",
30
- clearedCount: 2,
31
- clearedSites: ["example.com", "test.com"],
32
- })),
33
- };
34
-
35
- mockContext = {
36
- agents: mockClearAgents,
37
- invoke: mock(async (agent, input) => {
38
- return await agent(input);
39
- }),
40
- };
41
-
42
- mockOptions = {
43
- prompts: {
44
- checkbox: mock(async () => ["generatedDocs", "documentConfig"]),
45
- },
46
- context: mockContext,
47
- };
48
-
49
- // Clear mock call history
50
- mockOptions.prompts.checkbox.mockClear();
51
- mockContext.invoke.mockClear();
52
- Object.values(mockClearAgents).forEach((agent) => {
53
- agent.mockClear();
54
- });
55
- });
56
-
57
- afterEach(() => {
58
- // Note: Not using mock.restore() to avoid affecting other tests
59
- });
60
-
61
- test("should process provided targets correctly", async () => {
62
- const result = await chooseContents(
63
- { targets: ["generatedDocs", "documentConfig"] },
64
- mockOptions,
65
- );
66
-
67
- expect(mockContext.invoke).toHaveBeenCalledTimes(2);
68
- expect(mockClearAgents.clearGeneratedDocs).toHaveBeenCalled();
69
- expect(mockClearAgents.clearDocumentConfig).toHaveBeenCalled();
70
- expect(result.message).toContain("Cleanup completed successfully!");
71
- });
72
-
73
- test("should normalize target names case-insensitively", async () => {
74
- const result = await chooseContents(
75
- { targets: ["GeneratedDocs", "DOCUMENTCONFIG"] },
76
- mockOptions,
77
- );
78
-
79
- expect(mockContext.invoke).toHaveBeenCalledTimes(2);
80
- expect(mockClearAgents.clearGeneratedDocs).toHaveBeenCalled();
81
- expect(mockClearAgents.clearDocumentConfig).toHaveBeenCalled();
82
- expect(result.message).toContain("Cleanup completed successfully!");
83
- });
84
-
85
- test("should prompt user when no targets provided", async () => {
86
- mockOptions.prompts.checkbox.mockResolvedValue(["generatedDocs"]);
87
-
88
- await chooseContents({ docsDir: "/test/docs", workDir: "/test" }, mockOptions);
89
-
90
- expect(mockOptions.prompts.checkbox).toHaveBeenCalledWith({
91
- message: "Select items to clear:",
92
- choices: expect.arrayContaining([
93
- expect.objectContaining({
94
- name: "generated documents",
95
- value: "generatedDocs",
96
- }),
97
- ]),
98
- validate: expect.any(Function),
99
- });
100
- expect(mockClearAgents.clearGeneratedDocs).toHaveBeenCalled();
101
- });
102
-
103
- test("should handle empty selection from prompts", async () => {
104
- mockOptions.prompts.checkbox.mockResolvedValue([]);
105
-
106
- const result = await chooseContents({ docsDir: "/test/docs", workDir: "/test" }, mockOptions);
107
-
108
- expect(result.message).toBe("No items selected to clear.");
109
- expect(mockContext.invoke).not.toHaveBeenCalled();
110
- });
111
-
112
- test("should return available options when no prompts available", async () => {
113
- const optionsWithoutPrompts = { context: mockContext };
114
-
115
- const result = await chooseContents(
116
- { docsDir: "/test/docs", workDir: "/test" },
117
- optionsWithoutPrompts,
118
- );
119
-
120
- expect(result.message).toBe(
121
- "Available options to clear: generatedDocs, documentStructure, documentConfig, authTokens, deploymentConfig",
122
- );
123
- expect(result.availableTargets).toEqual([
124
- "generatedDocs",
125
- "documentStructure",
126
- "documentConfig",
127
- "authTokens",
128
- "deploymentConfig",
129
- ]);
130
- });
131
-
132
- test("should handle agent errors gracefully", async () => {
133
- mockClearAgents.clearGeneratedDocs.mockResolvedValue({
134
- error: true,
135
- message: "Failed to clear docs",
136
- });
137
-
138
- const result = await chooseContents({ targets: ["generatedDocs"] }, mockOptions);
139
-
140
- expect(result.message).toContain("Cleanup finished with some issues.");
141
- expect(result.message).toContain("Failed to clear docs");
142
- });
143
-
144
- test("should collect suggestions from agents", async () => {
145
- const result = await chooseContents({ targets: ["documentConfig"] }, mockOptions);
146
-
147
- expect(result.message).toContain(
148
- "Run `aigne doc init` to generate a fresh configuration file.",
149
- );
150
- });
151
-
152
- test("should handle all valid targets", async () => {
153
- const result = await chooseContents(
154
- { targets: ["generatedDocs", "documentStructure", "documentConfig", "authTokens"] },
155
- mockOptions,
156
- );
157
-
158
- expect(mockContext.invoke).toHaveBeenCalledTimes(4);
159
- expect(result.message).toContain("Cleanup completed successfully!");
160
- });
161
-
162
- test("should have correct input schema", () => {
163
- expect(chooseContents.input_schema).toBeDefined();
164
- expect(chooseContents.input_schema.type).toBe("object");
165
- expect(chooseContents.input_schema.properties.targets.type).toBe("array");
166
- });
167
-
168
- test("should have correct task metadata", () => {
169
- expect(chooseContents.taskTitle).toBe("Choose contents to clear");
170
- expect(chooseContents.description).toBe(
171
- "Choose contents to clear and execute the appropriate clearing operations",
172
- );
173
- });
174
-
175
- test("should handle unknown targets by filtering them out", async () => {
176
- // Test that unknown targets are filtered out and valid ones are processed
177
- // Mix unknown targets with valid ones
178
- const result = await chooseContents(
179
- { targets: ["unknownTarget1", "generatedDocs", "invalidTarget", "documentConfig"] },
180
- mockOptions,
181
- );
182
-
183
- // Should process only the valid targets and succeed
184
- expect(result.message).toContain("Cleanup completed successfully!");
185
- expect(mockContext.invoke).toHaveBeenCalledTimes(2); // Only valid targets processed
186
- expect(mockClearAgents.clearGeneratedDocs).toHaveBeenCalled();
187
- expect(mockClearAgents.clearDocumentConfig).toHaveBeenCalled();
188
- });
189
-
190
- test("should handle missing clear agent in context", async () => {
191
- const optionsWithoutAgent = {
192
- context: {
193
- agents: {},
194
- invoke: mockContext.invoke,
195
- },
196
- };
197
-
198
- const result = await chooseContents({ targets: ["generatedDocs"] }, optionsWithoutAgent);
199
-
200
- expect(result.message).toContain("Cleanup finished with some issues.");
201
- expect(result.message).toContain("Clear agent 'clearGeneratedDocs' not found in context");
202
- });
203
-
204
- test("should handle agent execution errors", async () => {
205
- const errorContext = {
206
- agents: mockClearAgents,
207
- invoke: mock(async () => {
208
- throw new Error("Agent execution failed");
209
- }),
210
- };
211
-
212
- const optionsWithError = {
213
- context: errorContext,
214
- };
215
-
216
- const result = await chooseContents({ targets: ["generatedDocs"] }, optionsWithError);
217
-
218
- expect(result.message).toContain("Cleanup finished with some issues.");
219
- expect(result.message).toContain("Failed to clear generated documents: Agent execution failed");
220
- });
221
-
222
- test("should handle duplicate targets", async () => {
223
- await chooseContents(
224
- { targets: ["generatedDocs", "generatedDocs", "documentConfig"] },
225
- mockOptions,
226
- );
227
-
228
- // Should only invoke each agent once due to deduplication
229
- expect(mockContext.invoke).toHaveBeenCalledTimes(2);
230
- expect(mockClearAgents.clearGeneratedDocs).toHaveBeenCalledTimes(1);
231
- expect(mockClearAgents.clearDocumentConfig).toHaveBeenCalledTimes(1);
232
- });
233
-
234
- test("should handle empty and whitespace targets", async () => {
235
- await chooseContents({ targets: ["", " ", "generatedDocs", null, undefined] }, mockOptions);
236
-
237
- // Should only process the valid target
238
- expect(mockContext.invoke).toHaveBeenCalledTimes(1);
239
- expect(mockClearAgents.clearGeneratedDocs).toHaveBeenCalled();
240
- });
241
-
242
- test("should add default suggestion when config is cleared", async () => {
243
- // Mock clearDocumentConfig to return cleared: true but no suggestions
244
- mockClearAgents.clearDocumentConfig.mockResolvedValue({
245
- message: "Document config cleared",
246
- cleared: true,
247
- path: "/test/config.yaml",
248
- });
249
-
250
- const result = await chooseContents({ targets: ["documentConfig"] }, mockOptions);
251
-
252
- expect(result.message).toContain(
253
- "Run `aigne doc init` to generate a fresh configuration file.",
254
- );
255
- });
256
-
257
- test("should not duplicate default suggestion when already present", async () => {
258
- // Mock clearDocumentConfig to return the default suggestion
259
- mockClearAgents.clearDocumentConfig.mockResolvedValue({
260
- message: "Document config cleared",
261
- cleared: true,
262
- path: "/test/config.yaml",
263
- suggestions: ["Run `aigne doc init` to generate a fresh configuration file."],
264
- });
265
-
266
- const result = await chooseContents({ targets: ["documentConfig"] }, mockOptions);
267
-
268
- // Should only appear once in the message
269
- const suggestionCount = (result.message.match(/Run `aigne doc init`/g) || []).length;
270
- expect(suggestionCount).toBe(1);
271
- });
272
-
273
- test("should handle agents that return no cleared status", async () => {
274
- mockClearAgents.clearGeneratedDocs.mockResolvedValue({
275
- message: "No docs to clear",
276
- // No cleared property
277
- });
278
-
279
- const result = await chooseContents({ targets: ["generatedDocs"] }, mockOptions);
280
-
281
- expect(result.message).toContain("Cleanup completed successfully!");
282
- expect(result.message).toContain("No docs to clear");
283
- });
284
- });