@aigne/doc-smith 0.9.10 → 0.9.11-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +189 -219
- package/README.zh.md +270 -0
- package/agents/bash-executor/index.mjs +347 -0
- package/agents/clear/ai/intent.md +142 -0
- package/agents/clear/choose-contents.mjs +13 -65
- package/agents/clear/clear-auth-tokens.mjs +17 -21
- package/agents/clear/clear-deployment-config.mjs +33 -24
- package/agents/clear/index.yaml +1 -9
- package/agents/content-checker/ai/intent.md +209 -0
- package/agents/content-checker/clean-invalid-docs.mjs +254 -0
- package/agents/content-checker/index.mjs +191 -0
- package/agents/content-checker/validate-content.mjs +983 -0
- package/agents/generate-images/generate-image.yaml +75 -0
- package/agents/generate-images/generate-summary.mjs +213 -0
- package/agents/generate-images/index.yaml +39 -0
- package/agents/generate-images/prepare-generation.mjs +286 -0
- package/agents/generate-images/prepare-image-generation.mjs +130 -0
- package/{prompts/detail/diagram/generate-image-system.md → agents/generate-images/prompts/system.md} +22 -56
- package/agents/generate-images/prompts/user.md +85 -0
- package/agents/generate-images/save-image-result.mjs +247 -0
- package/agents/generate-images/scan-image-slots.mjs +247 -0
- package/agents/localize/index.yaml +19 -42
- package/{prompts/translate → agents/localize/prompts}/translate-document.md +0 -139
- package/agents/localize/translate-documents/generate-summary.mjs +163 -0
- package/agents/localize/translate-documents/load-glossary.mjs +52 -0
- package/agents/localize/translate-documents/prepare-translation.mjs +249 -0
- package/agents/localize/translate-documents/save-translation.mjs +171 -0
- package/agents/localize/translate-documents/translate-document-to-language.mjs +209 -0
- package/agents/localize/translate-documents/translate-document.yaml +23 -0
- package/agents/localize/translate-documents/translate-to-languages.yaml +10 -0
- package/agents/localize/translate-images/check-image-translation.mjs +225 -0
- package/agents/localize/translate-images/detect-text/detect-and-update-shared.mjs +148 -0
- package/agents/localize/translate-images/detect-text/detect-image-text.yaml +44 -0
- package/agents/localize/translate-images/detect-text/detect-images-text.yaml +21 -0
- package/agents/localize/translate-images/detect-text/prompts/detect-image-text-system.md +43 -0
- package/agents/localize/translate-images/detect-text/prompts/detect-image-text-user.md +14 -0
- package/agents/localize/translate-images/detect-text/save-text-detection.mjs +105 -0
- package/agents/localize/translate-images/prepare-image-input.mjs +124 -0
- package/agents/localize/translate-images/save-image-translation.mjs +172 -0
- package/agents/localize/translate-images/scan-doc-images.mjs +165 -0
- package/agents/localize/translate-images/translate-doc-images.yaml +24 -0
- package/agents/localize/{translate-diagram.yaml → translate-images/translate-image.yaml} +25 -14
- package/agents/publish/ai/intent.md +182 -0
- package/agents/publish/check.mjs +107 -0
- package/agents/publish/index.yaml +9 -14
- package/agents/publish/publish-docs.mjs +81 -61
- package/agents/publish/translate-meta.mjs +79 -58
- package/agents/save-document/index.mjs +260 -0
- package/agents/structure-checker/index.mjs +307 -0
- package/agents/structure-checker/validate-structure.mjs +477 -0
- package/agents/update-image/analyze-feedback.yaml +37 -0
- package/agents/update-image/index.yaml +78 -0
- package/agents/update-image/load-existing-image.mjs +211 -0
- package/agents/update-image/prompts/analyze-feedback-system.md +43 -0
- package/agents/update-image/prompts/analyze-feedback-user.md +15 -0
- package/aigne.yaml +26 -139
- package/package.json +16 -48
- package/scripts/README.md +90 -0
- package/scripts/install.sh +86 -0
- package/scripts/uninstall.sh +52 -0
- package/skills/doc-smith/SKILL.md +285 -0
- package/skills/doc-smith/ai/intent/sources-improve.md +290 -0
- package/skills/doc-smith/references/changeset-guide.md +171 -0
- package/skills/doc-smith/references/document-content-guide.md +214 -0
- package/skills/doc-smith/references/document-structure-schema.md +138 -0
- package/skills/doc-smith/references/patch-guide.md +96 -0
- package/skills/doc-smith/references/structure-confirmation-guide.md +133 -0
- package/skills/doc-smith/references/structure-planning-guide.md +149 -0
- package/skills/doc-smith/references/update-workflow.md +108 -0
- package/skills/doc-smith/references/user-intent-guide.md +175 -0
- package/skills/doc-smith/references/workspace-initialization.md +376 -0
- package/skills/doc-smith-docs-detail/SKILL.md +356 -0
- package/skills/doc-smith-docs-detail/ai/intent.md +271 -0
- package/skills-entry/doc-smith/ai/intent.md +260 -0
- package/skills-entry/doc-smith/index.mjs +66 -0
- package/skills-entry/doc-smith/prompt.md +57 -0
- package/skills-entry/doc-smith/utils.mjs +27 -0
- package/skills-entry/doc-smith-docs-detail/batch.yaml +56 -0
- package/skills-entry/doc-smith-docs-detail/index.mjs +95 -0
- package/skills-entry/doc-smith-docs-detail/prompt.md +64 -0
- package/utils/afs-factory.mjs +183 -0
- package/utils/agent-constants.mjs +97 -0
- package/utils/{auth-utils.mjs → auth.mjs} +6 -9
- package/{agents/utils/update-branding.mjs → utils/branding.mjs} +3 -4
- package/utils/config.mjs +261 -0
- package/utils/constants.mjs +32 -0
- package/utils/deploy.mjs +3 -3
- package/utils/docs-converter.mjs +454 -0
- package/utils/docs.mjs +212 -0
- package/utils/document-paths.mjs +172 -0
- package/utils/files.mjs +74 -0
- package/utils/git.mjs +65 -0
- package/utils/{blocklet.mjs → http.mjs} +18 -0
- package/utils/image-slots.mjs +57 -0
- package/utils/image-utils.mjs +114 -0
- package/utils/project.mjs +95 -0
- package/utils/sources-path-resolver.mjs +76 -0
- package/utils/{upload-files.mjs → upload.mjs} +3 -3
- package/utils/workspace.mjs +371 -0
- package/agents/chat/chat-system.md +0 -38
- package/agents/chat/index.mjs +0 -59
- package/agents/chat/skills/generate-document.yaml +0 -15
- package/agents/chat/skills/list-documents.mjs +0 -15
- package/agents/chat/skills/update-document.yaml +0 -24
- package/agents/clear/clear-document-config.mjs +0 -36
- package/agents/clear/clear-document-structure.mjs +0 -102
- package/agents/clear/clear-generated-docs.mjs +0 -142
- package/agents/clear/clear-media-description.mjs +0 -129
- package/agents/create/aggregate-document-structure.mjs +0 -21
- package/agents/create/analyze-diagram-type-llm.yaml +0 -159
- package/agents/create/analyze-diagram-type.mjs +0 -455
- package/agents/create/check-document-structure.yaml +0 -30
- package/agents/create/check-need-generate-structure.mjs +0 -138
- package/agents/create/document-structure-tools/add-document.mjs +0 -85
- package/agents/create/document-structure-tools/delete-document.mjs +0 -116
- package/agents/create/document-structure-tools/move-document.mjs +0 -109
- package/agents/create/document-structure-tools/update-document.mjs +0 -84
- package/agents/create/generate-diagram-image.yaml +0 -91
- package/agents/create/generate-structure.yaml +0 -106
- package/agents/create/index.yaml +0 -45
- package/agents/create/refine-document-structure.yaml +0 -12
- package/agents/create/replace-d2-with-image.mjs +0 -610
- package/agents/create/update-document-structure.yaml +0 -54
- package/agents/create/user-add-document/add-documents-to-structure.mjs +0 -90
- package/agents/create/user-add-document/find-documents-to-add-links.yaml +0 -47
- package/agents/create/user-add-document/index.yaml +0 -46
- package/agents/create/user-add-document/prepare-documents-to-translate.mjs +0 -22
- package/agents/create/user-add-document/print-add-document-summary.mjs +0 -63
- package/agents/create/user-add-document/review-documents-with-new-links.mjs +0 -110
- package/agents/create/user-remove-document/find-documents-with-invalid-links.mjs +0 -78
- package/agents/create/user-remove-document/index.yaml +0 -40
- package/agents/create/user-remove-document/prepare-documents-to-translate.mjs +0 -22
- package/agents/create/user-remove-document/print-remove-document-summary.mjs +0 -53
- package/agents/create/user-remove-document/remove-documents-from-structure.mjs +0 -99
- package/agents/create/user-remove-document/review-documents-with-invalid-links.mjs +0 -115
- package/agents/create/user-review-document-structure.mjs +0 -139
- package/agents/create/utils/init-current-content.mjs +0 -34
- package/agents/create/utils/merge-document-structures.mjs +0 -36
- package/agents/evaluate/code-snippet.mjs +0 -97
- package/agents/evaluate/document-structure.yaml +0 -67
- package/agents/evaluate/document.yaml +0 -82
- package/agents/evaluate/generate-report.mjs +0 -85
- package/agents/evaluate/index.yaml +0 -46
- package/agents/history/index.yaml +0 -6
- package/agents/history/view.mjs +0 -78
- package/agents/init/check.mjs +0 -16
- package/agents/init/index.mjs +0 -643
- package/agents/init/validate.mjs +0 -16
- package/agents/localize/choose-language.mjs +0 -107
- package/agents/localize/record-translation-history.mjs +0 -23
- package/agents/localize/save-doc-translation-or-skip.mjs +0 -18
- package/agents/localize/set-review-content.mjs +0 -58
- package/agents/localize/translate-document-wrapper.mjs +0 -34
- package/agents/localize/translate-document.yaml +0 -24
- package/agents/localize/translate-multilingual.yaml +0 -57
- package/agents/localize/translate-or-skip-diagram.mjs +0 -52
- package/agents/media/batch-generate-media-description.yaml +0 -46
- package/agents/media/generate-media-description.yaml +0 -50
- package/agents/media/load-media-description.mjs +0 -454
- package/agents/prefs/index.mjs +0 -203
- package/agents/schema/document-structure-item.yaml +0 -26
- package/agents/schema/document-structure-refine-item.yaml +0 -23
- package/agents/schema/document-structure.yaml +0 -29
- package/agents/update/batch-generate-document.yaml +0 -27
- package/agents/update/batch-update-document.yaml +0 -7
- package/agents/update/check-diagram-flag.mjs +0 -116
- package/agents/update/check-document.mjs +0 -162
- package/agents/update/check-generate-diagram.mjs +0 -106
- package/agents/update/check-update-is-single.mjs +0 -53
- package/agents/update/document-tools/update-document-content.mjs +0 -303
- package/agents/update/generate-diagram.yaml +0 -80
- package/agents/update/generate-document.yaml +0 -70
- package/agents/update/handle-document-update.yaml +0 -103
- package/agents/update/index.yaml +0 -69
- package/agents/update/pre-check-generate-diagram.yaml +0 -44
- package/agents/update/save-and-translate-document.mjs +0 -80
- package/agents/update/update-document-detail.yaml +0 -71
- package/agents/update/update-single/update-single-document-detail.mjs +0 -322
- package/agents/update/update-single-document.yaml +0 -7
- package/agents/update/user-review-document.mjs +0 -272
- package/agents/utils/action-success.mjs +0 -16
- package/agents/utils/analyze-document-feedback-intent.yaml +0 -32
- package/agents/utils/analyze-feedback-intent.mjs +0 -253
- package/agents/utils/analyze-structure-feedback-intent.yaml +0 -29
- package/agents/utils/check-detail-result.mjs +0 -51
- package/agents/utils/check-feedback-refiner.mjs +0 -81
- package/agents/utils/choose-docs.mjs +0 -251
- package/agents/utils/document-icon-generate.yaml +0 -52
- package/agents/utils/document-title-streamline.yaml +0 -48
- package/agents/utils/ensure-document-icons.mjs +0 -129
- package/agents/utils/exit.mjs +0 -6
- package/agents/utils/feedback-refiner.yaml +0 -50
- package/agents/utils/find-item-by-path.mjs +0 -114
- package/agents/utils/find-user-preferences-by-path.mjs +0 -37
- package/agents/utils/format-document-structure.mjs +0 -35
- package/agents/utils/generate-document-or-skip.mjs +0 -41
- package/agents/utils/handle-diagram-operations.mjs +0 -263
- package/agents/utils/load-all-document-content.mjs +0 -30
- package/agents/utils/load-document-all-content.mjs +0 -96
- package/agents/utils/load-sources.mjs +0 -405
- package/agents/utils/map-reasoning-effort-level.mjs +0 -15
- package/agents/utils/post-generate.mjs +0 -133
- package/agents/utils/read-current-document-content.mjs +0 -46
- package/agents/utils/save-doc-translation.mjs +0 -30
- package/agents/utils/save-doc.mjs +0 -54
- package/agents/utils/save-output.mjs +0 -26
- package/agents/utils/save-sidebar.mjs +0 -38
- package/agents/utils/skip-if-content-exists.mjs +0 -27
- package/agents/utils/streamline-document-titles-if-needed.mjs +0 -88
- package/agents/utils/transform-detail-data-sources.mjs +0 -45
- package/assets/report-template/report.html +0 -198
- package/docs-mcp/analyze-content-relevance.yaml +0 -50
- package/docs-mcp/analyze-docs-relevance.yaml +0 -59
- package/docs-mcp/docs-search.yaml +0 -42
- package/docs-mcp/get-docs-detail.mjs +0 -41
- package/docs-mcp/get-docs-structure.mjs +0 -16
- package/docs-mcp/read-doc-content.mjs +0 -119
- package/prompts/common/document/content-rules-core.md +0 -20
- package/prompts/common/document/markdown-syntax-rules.md +0 -65
- package/prompts/common/document/media-file-list-usage-rules.md +0 -18
- package/prompts/common/document/openapi-usage-rules.md +0 -189
- package/prompts/common/document/role-and-personality.md +0 -16
- package/prompts/common/document/user-preferences.md +0 -9
- package/prompts/common/document-structure/conflict-resolution-guidance.md +0 -16
- package/prompts/common/document-structure/document-icon-generate.md +0 -116
- package/prompts/common/document-structure/document-structure-rules.md +0 -43
- package/prompts/common/document-structure/document-title-streamline.md +0 -86
- package/prompts/common/document-structure/glossary.md +0 -7
- package/prompts/common/document-structure/intj-traits.md +0 -5
- package/prompts/common/document-structure/openapi-usage-rules.md +0 -28
- package/prompts/common/document-structure/output-constraints.md +0 -18
- package/prompts/common/document-structure/user-locale-rules.md +0 -10
- package/prompts/common/document-structure/user-preferences.md +0 -9
- package/prompts/detail/custom/admonition-usage-rules.md +0 -94
- package/prompts/detail/custom/code-block-usage-rules.md +0 -163
- package/prompts/detail/custom/custom-components/x-card-usage-rules.md +0 -63
- package/prompts/detail/custom/custom-components/x-cards-usage-rules.md +0 -83
- package/prompts/detail/custom/custom-components/x-field-desc-usage-rules.md +0 -120
- package/prompts/detail/custom/custom-components/x-field-group-usage-rules.md +0 -80
- package/prompts/detail/custom/custom-components/x-field-usage-rules.md +0 -189
- package/prompts/detail/custom/custom-components-usage-rules.md +0 -18
- package/prompts/detail/diagram/generate-image-user.md +0 -81
- package/prompts/detail/diagram/guide.md +0 -29
- package/prompts/detail/diagram/official-examples.md +0 -712
- package/prompts/detail/diagram/pre-check.md +0 -23
- package/prompts/detail/diagram/role-and-personality.md +0 -2
- package/prompts/detail/diagram/rules.md +0 -46
- package/prompts/detail/diagram/system-prompt.md +0 -1139
- package/prompts/detail/diagram/user-prompt.md +0 -43
- package/prompts/detail/generate/detail-example.md +0 -457
- package/prompts/detail/generate/document-rules.md +0 -45
- package/prompts/detail/generate/system-prompt.md +0 -61
- package/prompts/detail/generate/user-prompt.md +0 -99
- package/prompts/detail/jsx/rules.md +0 -6
- package/prompts/detail/update/system-prompt.md +0 -121
- package/prompts/detail/update/user-prompt.md +0 -41
- package/prompts/evaluate/document-structure.md +0 -93
- package/prompts/evaluate/document.md +0 -149
- package/prompts/media/media-description/system-prompt.md +0 -43
- package/prompts/media/media-description/user-prompt.md +0 -17
- package/prompts/structure/check-document-structure.md +0 -93
- package/prompts/structure/document-rules.md +0 -21
- package/prompts/structure/find-documents-to-add-links.md +0 -52
- package/prompts/structure/generate/system-prompt.md +0 -13
- package/prompts/structure/generate/user-prompt.md +0 -137
- package/prompts/structure/review/structure-review-system.md +0 -81
- package/prompts/structure/structure-example.md +0 -89
- package/prompts/structure/structure-getting-started.md +0 -10
- package/prompts/structure/update/system-prompt.md +0 -93
- package/prompts/structure/update/user-prompt.md +0 -43
- package/prompts/translate/admonition.md +0 -20
- package/prompts/translate/code-block.md +0 -33
- package/prompts/utils/analyze-document-feedback-intent.md +0 -54
- package/prompts/utils/analyze-structure-feedback-intent.md +0 -43
- package/prompts/utils/feedback-refiner.md +0 -105
- package/types/document-schema.mjs +0 -55
- package/types/document-structure-schema.mjs +0 -261
- package/utils/check-document-has-diagram.mjs +0 -95
- package/utils/conflict-detector.mjs +0 -149
- package/utils/constants/index.mjs +0 -620
- package/utils/constants/linter.mjs +0 -102
- package/utils/d2-utils.mjs +0 -205
- package/utils/debug.mjs +0 -3
- package/utils/delete-diagram-images.mjs +0 -99
- package/utils/diagram-version-utils.mjs +0 -14
- package/utils/docs-finder-utils.mjs +0 -548
- package/utils/evaluate/report-utils.mjs +0 -132
- package/utils/extract-api.mjs +0 -32
- package/utils/file-utils.mjs +0 -960
- package/utils/history-utils.mjs +0 -203
- package/utils/icon-map.mjs +0 -26
- package/utils/image-compress.mjs +0 -154
- package/utils/kroki-utils.mjs +0 -173
- package/utils/linter/index.mjs +0 -50
- package/utils/load-config.mjs +0 -78
- package/utils/markdown/index.mjs +0 -26
- package/utils/markdown-checker.mjs +0 -694
- package/utils/mermaid-validator.mjs +0 -140
- package/utils/mermaid-worker-pool.mjs +0 -250
- package/utils/mermaid-worker.mjs +0 -233
- package/utils/openapi/index.mjs +0 -28
- package/utils/preferences-utils.mjs +0 -175
- package/utils/request.mjs +0 -10
- package/utils/sync-diagram-to-translations.mjs +0 -272
- package/utils/translate-diagram-images.mjs +0 -807
- package/utils/utils.mjs +0 -1354
- /package/{prompts/translate → agents/localize/prompts}/glossary.md +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# 用户意图推断指南
|
|
2
|
+
|
|
3
|
+
**文件位置**: `intent/user-intent.md`
|
|
4
|
+
**权限**: 仅在用户确认后写入,AI 可起草但不可直接修改
|
|
5
|
+
|
|
6
|
+
本文档提供如何推断和生成用户意图的详细指南。
|
|
7
|
+
|
|
8
|
+
## 推断内容
|
|
9
|
+
|
|
10
|
+
基于工作区内容推断以下三个方面:
|
|
11
|
+
|
|
12
|
+
### 1. 目标用户
|
|
13
|
+
|
|
14
|
+
判断文档的主要受众(技术开发者、最终用户、运维人员、产品经理等)。
|
|
15
|
+
|
|
16
|
+
### 2. 主要使用场景
|
|
17
|
+
|
|
18
|
+
推断用户查阅文档的场景(首次接触、开发集成、问题排查、深入学习等)。
|
|
19
|
+
|
|
20
|
+
### 3. 文档侧重点
|
|
21
|
+
|
|
22
|
+
确定文档类型(使用指南型、参考手册型、快速上手型、架构说明型)。
|
|
23
|
+
|
|
24
|
+
## user-intent.md 模板
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
# 用户意图
|
|
28
|
+
|
|
29
|
+
## 目标用户
|
|
30
|
+
[描述主要受众是谁,需要什么类型的信息]
|
|
31
|
+
|
|
32
|
+
## 使用场景
|
|
33
|
+
- [场景 1:用户在什么情况下查阅文档]
|
|
34
|
+
- [场景 2:...]
|
|
35
|
+
- [场景 3:...]
|
|
36
|
+
|
|
37
|
+
## 文档侧重点
|
|
38
|
+
本文档采用**[文档类型]**的形式:
|
|
39
|
+
- [侧重点 1]
|
|
40
|
+
- [侧重点 2]
|
|
41
|
+
- [侧重点 3]
|
|
42
|
+
|
|
43
|
+
[可选:说明不需要的内容,帮助聚焦]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 示例
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
# 用户意图
|
|
50
|
+
|
|
51
|
+
## 目标用户
|
|
52
|
+
本文档主要面向希望集成本项目 API 的开发者。
|
|
53
|
+
|
|
54
|
+
## 使用场景
|
|
55
|
+
- 开发者首次接触项目时,需要快速了解核心功能和如何开始
|
|
56
|
+
- 开发过程中查阅具体 API 的使用方法和参数说明
|
|
57
|
+
|
|
58
|
+
## 文档侧重点
|
|
59
|
+
本文档采用**使用指南 + API 参考**的组合形式:
|
|
60
|
+
- 提供清晰的快速开始指南
|
|
61
|
+
- 提供完整的 API 参考文档
|
|
62
|
+
|
|
63
|
+
不需要过多的架构设计说明。
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 交互策略
|
|
67
|
+
|
|
68
|
+
### 默认流程
|
|
69
|
+
|
|
70
|
+
1. **自动生成**:基于工作区分析,自动推断用户意图并生成 user-intent.md
|
|
71
|
+
2. **展示意图**:向用户展示推断的完整意图
|
|
72
|
+
3. **使用 AskUserQuestion 工具确认**:
|
|
73
|
+
- 问题:"用户意图是否符合您的需求?"
|
|
74
|
+
- 选项:"✅ 确认,开始规划文档结构"
|
|
75
|
+
4. **接收反馈**:如果用户选择调整或通过 Other 提供具体需求,更新 user-intent.md
|
|
76
|
+
5. **重新展示**:展示更新后的完整意图
|
|
77
|
+
6. **循环确认**:重复步骤 3-5,直到用户确认
|
|
78
|
+
7. **进入下一步**:用户确认后,才开始规划文档结构
|
|
79
|
+
|
|
80
|
+
### 展示格式
|
|
81
|
+
|
|
82
|
+
向用户展示推断的意图时,应清晰展示三个部分:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
📝 用户意图推断
|
|
86
|
+
|
|
87
|
+
## 目标用户
|
|
88
|
+
[具体描述]
|
|
89
|
+
|
|
90
|
+
## 使用场景
|
|
91
|
+
- [场景 1]
|
|
92
|
+
- [场景 2]
|
|
93
|
+
- [场景 3]
|
|
94
|
+
|
|
95
|
+
## 文档侧重点
|
|
96
|
+
本文档采用**[文档类型]**的形式:
|
|
97
|
+
- [侧重点 1]
|
|
98
|
+
- [侧重点 2]
|
|
99
|
+
|
|
100
|
+
[可选:不需要的内容]
|
|
101
|
+
|
|
102
|
+
这个意图是否符合您的需求?您可以提出调整建议。
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 示例交互
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
Agent: 📝 用户意图推断
|
|
109
|
+
|
|
110
|
+
## 目标用户
|
|
111
|
+
本文档主要面向希望集成本项目 API 的开发者。
|
|
112
|
+
|
|
113
|
+
## 使用场景
|
|
114
|
+
- 开发者首次接触项目时,需要快速了解核心功能
|
|
115
|
+
- 开发过程中查阅具体 API 的使用方法
|
|
116
|
+
|
|
117
|
+
## 文档侧重点
|
|
118
|
+
本文档采用**使用指南 + API 参考**的组合形式:
|
|
119
|
+
- 提供清晰的快速开始指南
|
|
120
|
+
- 提供完整的 API 参考文档
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
[Agent 使用 AskUserQuestion 工具]
|
|
125
|
+
问题:用户意图是否符合您的需求?
|
|
126
|
+
选项:✅ 确认,开始规划文档结构
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
User: [选择 ✏️ Other] 其实主要是给运维人员看的,重点是部署和配置说明
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
Agent: 已更新目标用户和文档侧重点。
|
|
135
|
+
|
|
136
|
+
📝 更新后的用户意图
|
|
137
|
+
|
|
138
|
+
## 目标用户
|
|
139
|
+
本文档主要面向需要部署和维护系统的运维人员。
|
|
140
|
+
|
|
141
|
+
## 使用场景
|
|
142
|
+
- 运维人员首次部署时,需要了解系统要求和部署步骤
|
|
143
|
+
- 日常维护中查阅配置选项和最佳实践
|
|
144
|
+
|
|
145
|
+
## 文档侧重点
|
|
146
|
+
本文档采用**运维指南**的形式:
|
|
147
|
+
- 提供详细的部署和配置说明
|
|
148
|
+
- 提供系统要求和环境配置指南
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
[Agent 使用 AskUserQuestion 工具]
|
|
153
|
+
问题:用户意图是否符合您的需求?
|
|
154
|
+
选项:✅ 确认,开始规划文档结构
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
User: ✅ 确认,开始规划文档结构
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
Agent: 收到确认,开始规划文档结构...
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 处理反馈
|
|
166
|
+
|
|
167
|
+
根据用户反馈更新 user-intent.md 的对应部分(目标用户、使用场景、文档侧重点),必要时完全重写。每次修改后必须重新展示完整意图并询问确认。
|
|
168
|
+
|
|
169
|
+
## 关键原则
|
|
170
|
+
|
|
171
|
+
1. **基于证据推断**:从工作区内容(代码结构、README、配置文件)中寻找线索
|
|
172
|
+
2. **保持简洁**:user-intent.md 应该简洁明了,避免冗长
|
|
173
|
+
3. **可修改性**:用自然语言编写,用户易于理解和调整
|
|
174
|
+
4. **多轮确认**:支持用户多轮调整,每次修改后重新展示完整意图并确认
|
|
175
|
+
5. **用户确认后才继续**:绝对不要在用户确认前开始规划文档结构
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
# Workspace 初始化流程
|
|
2
|
+
|
|
3
|
+
**用途**: 本文档定义 DocSmith workspace 的验证和数据源管理流程
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、执行层目录结构
|
|
8
|
+
|
|
9
|
+
执行层始终看到统一的目录结构:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
modules/
|
|
13
|
+
/workspace # doc-smith 工作空间
|
|
14
|
+
├── config.yaml # 配置文件
|
|
15
|
+
├── intent/ # 意图文件
|
|
16
|
+
├── planning/ # 规划文件
|
|
17
|
+
└── docs/ # 生成的文档
|
|
18
|
+
/sources # 数据源目录
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**目录说明**:
|
|
22
|
+
- `/workspace`:DocSmith 的工作空间,存放配置和生成的文档
|
|
23
|
+
- `/sources`:数据源目录,存放源代码仓库
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 二、Config.yaml Schema
|
|
28
|
+
|
|
29
|
+
config.yaml 位于 `/workspace/config.yaml`,包含以下字段:
|
|
30
|
+
|
|
31
|
+
```yaml
|
|
32
|
+
# Workspace metadata
|
|
33
|
+
workspaceVersion: "1.0"
|
|
34
|
+
createdAt: "2025-01-13T10:00:00Z"
|
|
35
|
+
|
|
36
|
+
# Project information
|
|
37
|
+
projectName: "my-project"
|
|
38
|
+
projectDesc: "项目描述"
|
|
39
|
+
locale: "zh"
|
|
40
|
+
|
|
41
|
+
# Documentation settings (for publish)
|
|
42
|
+
projectLogo: ""
|
|
43
|
+
translateLanguages: []
|
|
44
|
+
|
|
45
|
+
# 数据源配置(数组)
|
|
46
|
+
sources:
|
|
47
|
+
# local-path 类型
|
|
48
|
+
- name: "main"
|
|
49
|
+
type: local-path
|
|
50
|
+
path: "../../" # 相对于 workspace 的路径
|
|
51
|
+
|
|
52
|
+
# git-clone 类型
|
|
53
|
+
- name: "aigne-framework"
|
|
54
|
+
type: git-clone
|
|
55
|
+
url: "https://github.com/ArcBlock/aigne-framework.git"
|
|
56
|
+
branch: "main" # 分支名(用于恢复)
|
|
57
|
+
commit: "a1b2c3d4e5f6789..." # 完整的 commit hash
|
|
58
|
+
clonedAt: "2025-01-13T10:00:00Z" # 克隆/更新时间
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 字段说明
|
|
62
|
+
|
|
63
|
+
| 字段 | 类型 | 说明 |
|
|
64
|
+
|------|------|------|
|
|
65
|
+
| `workspaceVersion` | string | 固定为 "1.0" |
|
|
66
|
+
| `createdAt` | string | 创建时间,ISO 8601 格式 |
|
|
67
|
+
| `projectName` | string | 项目名称 |
|
|
68
|
+
| `projectDesc` | string | 项目描述 |
|
|
69
|
+
| `locale` | string | 输出语言代码 |
|
|
70
|
+
| `projectLogo` | string | 项目 Logo 路径 |
|
|
71
|
+
| `translateLanguages` | array | 翻译目标语言列表 |
|
|
72
|
+
| `sources` | array | 数据源配置数组 |
|
|
73
|
+
|
|
74
|
+
### Sources 配置
|
|
75
|
+
|
|
76
|
+
**local-path 类型**:
|
|
77
|
+
| 字段 | 说明 |
|
|
78
|
+
|------|------|
|
|
79
|
+
| `name` | 数据源名称 |
|
|
80
|
+
| `type` | 固定为 `local-path` |
|
|
81
|
+
| `path` | 相对于 workspace 的路径 |
|
|
82
|
+
|
|
83
|
+
**git-clone 类型**:
|
|
84
|
+
| 字段 | 说明 |
|
|
85
|
+
|------|------|
|
|
86
|
+
| `name` | 数据源名称 |
|
|
87
|
+
| `type` | 固定为 `git-clone` |
|
|
88
|
+
| `url` | 仓库 URL |
|
|
89
|
+
| `branch` | 分支名,用于在新环境中恢复 |
|
|
90
|
+
| `commit` | 完整 commit hash,记录精确版本 |
|
|
91
|
+
| `clonedAt` | 克隆/更新时间 |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 三、收集必要信息
|
|
96
|
+
|
|
97
|
+
在对话开始时,如果用户未明确提供,需要询问:
|
|
98
|
+
|
|
99
|
+
### 3.1 输出语言
|
|
100
|
+
|
|
101
|
+
**检查条件**:config.yaml 中 `locale` 为空
|
|
102
|
+
|
|
103
|
+
**处理逻辑**:
|
|
104
|
+
- 如果用户在请求中已指定语言(如"生成中文文档")→ 直接使用,并保存到 config.yaml 中的 locale 字段
|
|
105
|
+
- 否则询问用户选择
|
|
106
|
+
|
|
107
|
+
**询问用户**:
|
|
108
|
+
```
|
|
109
|
+
请选择文档输出语言:
|
|
110
|
+
1. English (en)
|
|
111
|
+
2. 简体中文 (zh)
|
|
112
|
+
3. 繁體中文 (zh-TW)
|
|
113
|
+
4. 日本語 (ja)
|
|
114
|
+
5. 한국어 (ko)
|
|
115
|
+
6. Español (es)
|
|
116
|
+
7. Français (fr)
|
|
117
|
+
8. Deutsch (de)
|
|
118
|
+
9. Português (pt)
|
|
119
|
+
10. Русский (ru)
|
|
120
|
+
11. Italiano (it)
|
|
121
|
+
12. العربية (ar)
|
|
122
|
+
13. 其他 (请输入语言代码)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**后续操作**:更新 config.yaml 中的 `locale` 字段
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 四、验证 Workspace
|
|
130
|
+
|
|
131
|
+
### 4.1 配置完整性检查
|
|
132
|
+
|
|
133
|
+
使用 Read 工具读取 `/workspace/config.yaml`,验证必要字段:
|
|
134
|
+
|
|
135
|
+
**必须存在的字段**:
|
|
136
|
+
- `workspaceVersion`
|
|
137
|
+
- `locale` (为空需要向用户询问并保存)
|
|
138
|
+
- `projectName`(为空需要分析项目信息,生成并保存,使用 `config.yaml` 中 `local` 指定的语言)
|
|
139
|
+
- `projectDesc` (为空需要分析项目信息,生成并保存,使用 `config.yaml` 中 `local` 指定的语言)
|
|
140
|
+
- `sources`(可为空数组,后续添加)
|
|
141
|
+
|
|
142
|
+
**如果字段缺失**:
|
|
143
|
+
- 提示用户:`config.yaml 缺少必要字段: <字段名>`
|
|
144
|
+
- 询问是否重新初始化
|
|
145
|
+
|
|
146
|
+
### 4.2 数据源有效性检查
|
|
147
|
+
|
|
148
|
+
对 sources 数组中的每个数据源进行检查:
|
|
149
|
+
|
|
150
|
+
**local-path 类型**:
|
|
151
|
+
- 只要 sources 下不为空,即认为数据源存在
|
|
152
|
+
- 不存在则报错
|
|
153
|
+
|
|
154
|
+
**git-clone 类型**:
|
|
155
|
+
- 检查 `/sources/<name>/` 目录是否存在
|
|
156
|
+
- 不存在则执行恢复流程(见第五节)
|
|
157
|
+
- 可选:验证当前 commit 是否与配置一致,不一致则警告
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 五、数据源管理
|
|
162
|
+
|
|
163
|
+
### 5.1 数据源检查流程
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
读取 config.yaml 中的 sources 配置
|
|
167
|
+
↓
|
|
168
|
+
├─ sources 为空或不存在 → 询问用户提供仓库 URL(5.2)
|
|
169
|
+
└─ sources 存在 → 检查 /sources/ 目录
|
|
170
|
+
├─ 目录存在 → 跳过,继续后续流程
|
|
171
|
+
└─ 目录不存在 → 执行恢复流程(5.3)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 5.2 添加数据源
|
|
175
|
+
|
|
176
|
+
**触发条件**:sources 配置为空或不存在
|
|
177
|
+
|
|
178
|
+
**步骤**:
|
|
179
|
+
1. 询问用户提供仓库 URL
|
|
180
|
+
2. 验证 URL 格式
|
|
181
|
+
3. 询问分支名(默认 main)
|
|
182
|
+
4. 从 URL 提取项目名
|
|
183
|
+
5. 克隆到 `sources/<项目名>/`
|
|
184
|
+
6. 获取当前 HEAD 的 commit hash
|
|
185
|
+
7. 更新 config.yaml 的 sources 数组
|
|
186
|
+
|
|
187
|
+
**询问用户**:
|
|
188
|
+
```
|
|
189
|
+
请提供源代码仓库的 Git URL
|
|
190
|
+
示例: https://github.com/user/repo.git
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**验证 URL 格式**:
|
|
194
|
+
- 检查是否包含 `.git` 或符合 git URL 格式
|
|
195
|
+
- 如果格式不对,重新询问
|
|
196
|
+
|
|
197
|
+
**执行命令**:
|
|
198
|
+
```bash
|
|
199
|
+
git clone -b <branch> <url> sources/<project-name>
|
|
200
|
+
cd /sources/<project-name>
|
|
201
|
+
git rev-parse HEAD # 获取 commit hash
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**更新 config.yaml**:
|
|
205
|
+
```yaml
|
|
206
|
+
sources:
|
|
207
|
+
- name: "<project-name>"
|
|
208
|
+
type: git-clone
|
|
209
|
+
url: "<url>"
|
|
210
|
+
branch: "<branch>"
|
|
211
|
+
commit: "<commit-hash>"
|
|
212
|
+
clonedAt: "<current-timestamp>"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 5.3 恢复数据源
|
|
216
|
+
|
|
217
|
+
**触发条件**:sources 配置存在,但 `/sources/<name>/` 目录不存在
|
|
218
|
+
|
|
219
|
+
**步骤**:
|
|
220
|
+
1. 读取 sources 配置中的 url、branch、commit
|
|
221
|
+
2. 克隆仓库到 `sources/<name>/`
|
|
222
|
+
3. 切换到记录的 commit
|
|
223
|
+
4. 提示用户恢复完成
|
|
224
|
+
|
|
225
|
+
**执行命令**:
|
|
226
|
+
```bash
|
|
227
|
+
git clone -b <branch> <url> sources/<name>
|
|
228
|
+
cd /sources/<name>
|
|
229
|
+
git checkout <commit> # 切换到精确版本
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**输出提示**:
|
|
233
|
+
```
|
|
234
|
+
✓ 数据源已恢复: <name>
|
|
235
|
+
分支: <branch>
|
|
236
|
+
版本: <commit>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 5.4 更新数据源
|
|
240
|
+
|
|
241
|
+
**触发条件**:用户请求更新,或询问用户确认
|
|
242
|
+
|
|
243
|
+
**询问用户**:
|
|
244
|
+
```
|
|
245
|
+
是否更新数据源到最新版本? (Y/n)
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**步骤**:
|
|
249
|
+
1. 读取 config.yaml 获取 sources 配置
|
|
250
|
+
2. 对每个 git-clone 类型的数据源:
|
|
251
|
+
- 进入 `/sources/<name>/` 目录
|
|
252
|
+
- 执行 git fetch 和 pull
|
|
253
|
+
- 获取新的 commit hash
|
|
254
|
+
- 更新 config.yaml 中的 commit 和 clonedAt(branch 保持不变)
|
|
255
|
+
|
|
256
|
+
**执行命令**:
|
|
257
|
+
```bash
|
|
258
|
+
cd sources/<name>
|
|
259
|
+
git fetch origin
|
|
260
|
+
git pull origin <branch>
|
|
261
|
+
git rev-parse HEAD # 获取新的 commit hash
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**输出提示**:
|
|
265
|
+
```
|
|
266
|
+
✓ 数据源已更新: <name>
|
|
267
|
+
分支: <branch>
|
|
268
|
+
新版本: <new-commit>
|
|
269
|
+
旧版本: <old-commit>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 六、错误处理
|
|
275
|
+
|
|
276
|
+
### 错误 1: Git 未安装
|
|
277
|
+
|
|
278
|
+
**症状**: `git` 命令不存在
|
|
279
|
+
|
|
280
|
+
**提示**:
|
|
281
|
+
```
|
|
282
|
+
错误: 未检测到 Git
|
|
283
|
+
|
|
284
|
+
DocSmith 需要 Git 来管理数据源。
|
|
285
|
+
请先安装 Git: https://git-scm.com/downloads
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### 错误 2: 数据源克隆失败
|
|
289
|
+
|
|
290
|
+
**症状**: `git clone` 失败
|
|
291
|
+
|
|
292
|
+
**提示**:
|
|
293
|
+
```
|
|
294
|
+
错误: 无法克隆数据源
|
|
295
|
+
|
|
296
|
+
可能原因:
|
|
297
|
+
1. URL 不正确或无法访问
|
|
298
|
+
2. 没有 git 访问权限
|
|
299
|
+
3. 网络连接问题
|
|
300
|
+
|
|
301
|
+
建议:
|
|
302
|
+
1. 检查 URL 是否正确
|
|
303
|
+
2. 检查是否有访问权限 (SSH key 或 token)
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### 错误 3: 数据源恢复失败
|
|
307
|
+
|
|
308
|
+
**症状**: 恢复时 `git checkout <commit>` 失败
|
|
309
|
+
|
|
310
|
+
**提示**:
|
|
311
|
+
```
|
|
312
|
+
错误: 无法恢复到指定版本
|
|
313
|
+
|
|
314
|
+
可能原因:
|
|
315
|
+
1. commit hash 不存在(仓库历史被重写)
|
|
316
|
+
2. 网络问题导致未能获取完整历史
|
|
317
|
+
|
|
318
|
+
建议:
|
|
319
|
+
1. 尝试更新数据源到最新版本
|
|
320
|
+
2. 检查 config.yaml 中的 commit 是否正确
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### 错误 4: config.yaml 格式错误
|
|
324
|
+
|
|
325
|
+
**症状**: YAML 解析失败
|
|
326
|
+
|
|
327
|
+
**提示**:
|
|
328
|
+
```
|
|
329
|
+
错误: config.yaml 格式不正确
|
|
330
|
+
|
|
331
|
+
请检查 YAML 语法,或删除 config.yaml 重新初始化。
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### 错误 5: 目录权限问题
|
|
335
|
+
|
|
336
|
+
**症状**: 无法创建目录或文件
|
|
337
|
+
|
|
338
|
+
**提示**:
|
|
339
|
+
```
|
|
340
|
+
错误: 没有目录写入权限
|
|
341
|
+
|
|
342
|
+
请检查当前目录的权限设置,确保有读写权限。
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 七、关键约束
|
|
348
|
+
|
|
349
|
+
1. **版本精确记录**:git-clone 类型必须记录 branch 和 commit,确保可恢复
|
|
350
|
+
2. **配置优先**:sources 配置存在时不重复询问 URL,仅在目录缺失时恢复
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 八、完整流程示意图
|
|
355
|
+
|
|
356
|
+
```
|
|
357
|
+
对话开始
|
|
358
|
+
↓
|
|
359
|
+
读取 config.yaml
|
|
360
|
+
↓
|
|
361
|
+
检查 locale
|
|
362
|
+
├─ 为空 → 询问语言 → 更新 config.yaml
|
|
363
|
+
└─ 已设置 → 继续
|
|
364
|
+
↓
|
|
365
|
+
检查 sources 配置
|
|
366
|
+
├─ 为空 → 询问 URL → 克隆仓库 → 更新 config.yaml
|
|
367
|
+
└─ 存在 → 检查 /sources/ 目录
|
|
368
|
+
├─ 存在 → 继续
|
|
369
|
+
└─ 不存在 → 恢复数据源
|
|
370
|
+
↓
|
|
371
|
+
询问是否更新数据源 (可选)
|
|
372
|
+
├─ 是 → 执行更新
|
|
373
|
+
└─ 否 → 跳过
|
|
374
|
+
↓
|
|
375
|
+
进入文档生成流程
|
|
376
|
+
```
|