@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.
Files changed (308) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +189 -219
  3. package/README.zh.md +270 -0
  4. package/agents/bash-executor/index.mjs +347 -0
  5. package/agents/clear/ai/intent.md +142 -0
  6. package/agents/clear/choose-contents.mjs +13 -65
  7. package/agents/clear/clear-auth-tokens.mjs +17 -21
  8. package/agents/clear/clear-deployment-config.mjs +33 -24
  9. package/agents/clear/index.yaml +1 -9
  10. package/agents/content-checker/ai/intent.md +209 -0
  11. package/agents/content-checker/clean-invalid-docs.mjs +254 -0
  12. package/agents/content-checker/index.mjs +191 -0
  13. package/agents/content-checker/validate-content.mjs +983 -0
  14. package/agents/generate-images/generate-image.yaml +75 -0
  15. package/agents/generate-images/generate-summary.mjs +213 -0
  16. package/agents/generate-images/index.yaml +39 -0
  17. package/agents/generate-images/prepare-generation.mjs +286 -0
  18. package/agents/generate-images/prepare-image-generation.mjs +130 -0
  19. package/{prompts/detail/diagram/generate-image-system.md → agents/generate-images/prompts/system.md} +22 -56
  20. package/agents/generate-images/prompts/user.md +85 -0
  21. package/agents/generate-images/save-image-result.mjs +247 -0
  22. package/agents/generate-images/scan-image-slots.mjs +247 -0
  23. package/agents/localize/index.yaml +19 -42
  24. package/{prompts/translate → agents/localize/prompts}/translate-document.md +0 -139
  25. package/agents/localize/translate-documents/generate-summary.mjs +163 -0
  26. package/agents/localize/translate-documents/load-glossary.mjs +52 -0
  27. package/agents/localize/translate-documents/prepare-translation.mjs +249 -0
  28. package/agents/localize/translate-documents/save-translation.mjs +171 -0
  29. package/agents/localize/translate-documents/translate-document-to-language.mjs +209 -0
  30. package/agents/localize/translate-documents/translate-document.yaml +23 -0
  31. package/agents/localize/translate-documents/translate-to-languages.yaml +10 -0
  32. package/agents/localize/translate-images/check-image-translation.mjs +225 -0
  33. package/agents/localize/translate-images/detect-text/detect-and-update-shared.mjs +148 -0
  34. package/agents/localize/translate-images/detect-text/detect-image-text.yaml +44 -0
  35. package/agents/localize/translate-images/detect-text/detect-images-text.yaml +21 -0
  36. package/agents/localize/translate-images/detect-text/prompts/detect-image-text-system.md +43 -0
  37. package/agents/localize/translate-images/detect-text/prompts/detect-image-text-user.md +14 -0
  38. package/agents/localize/translate-images/detect-text/save-text-detection.mjs +105 -0
  39. package/agents/localize/translate-images/prepare-image-input.mjs +124 -0
  40. package/agents/localize/translate-images/save-image-translation.mjs +172 -0
  41. package/agents/localize/translate-images/scan-doc-images.mjs +165 -0
  42. package/agents/localize/translate-images/translate-doc-images.yaml +24 -0
  43. package/agents/localize/{translate-diagram.yaml → translate-images/translate-image.yaml} +25 -14
  44. package/agents/publish/ai/intent.md +182 -0
  45. package/agents/publish/check.mjs +107 -0
  46. package/agents/publish/index.yaml +9 -14
  47. package/agents/publish/publish-docs.mjs +81 -61
  48. package/agents/publish/translate-meta.mjs +79 -58
  49. package/agents/save-document/index.mjs +260 -0
  50. package/agents/structure-checker/index.mjs +307 -0
  51. package/agents/structure-checker/validate-structure.mjs +477 -0
  52. package/agents/update-image/analyze-feedback.yaml +37 -0
  53. package/agents/update-image/index.yaml +78 -0
  54. package/agents/update-image/load-existing-image.mjs +211 -0
  55. package/agents/update-image/prompts/analyze-feedback-system.md +43 -0
  56. package/agents/update-image/prompts/analyze-feedback-user.md +15 -0
  57. package/aigne.yaml +26 -139
  58. package/package.json +16 -48
  59. package/scripts/README.md +90 -0
  60. package/scripts/install.sh +86 -0
  61. package/scripts/uninstall.sh +52 -0
  62. package/skills/doc-smith/SKILL.md +285 -0
  63. package/skills/doc-smith/ai/intent/sources-improve.md +290 -0
  64. package/skills/doc-smith/references/changeset-guide.md +171 -0
  65. package/skills/doc-smith/references/document-content-guide.md +214 -0
  66. package/skills/doc-smith/references/document-structure-schema.md +138 -0
  67. package/skills/doc-smith/references/patch-guide.md +96 -0
  68. package/skills/doc-smith/references/structure-confirmation-guide.md +133 -0
  69. package/skills/doc-smith/references/structure-planning-guide.md +149 -0
  70. package/skills/doc-smith/references/update-workflow.md +108 -0
  71. package/skills/doc-smith/references/user-intent-guide.md +175 -0
  72. package/skills/doc-smith/references/workspace-initialization.md +376 -0
  73. package/skills/doc-smith-docs-detail/SKILL.md +356 -0
  74. package/skills/doc-smith-docs-detail/ai/intent.md +271 -0
  75. package/skills-entry/doc-smith/ai/intent.md +260 -0
  76. package/skills-entry/doc-smith/index.mjs +66 -0
  77. package/skills-entry/doc-smith/prompt.md +57 -0
  78. package/skills-entry/doc-smith/utils.mjs +27 -0
  79. package/skills-entry/doc-smith-docs-detail/batch.yaml +56 -0
  80. package/skills-entry/doc-smith-docs-detail/index.mjs +95 -0
  81. package/skills-entry/doc-smith-docs-detail/prompt.md +64 -0
  82. package/utils/afs-factory.mjs +183 -0
  83. package/utils/agent-constants.mjs +97 -0
  84. package/utils/{auth-utils.mjs → auth.mjs} +6 -9
  85. package/{agents/utils/update-branding.mjs → utils/branding.mjs} +3 -4
  86. package/utils/config.mjs +261 -0
  87. package/utils/constants.mjs +32 -0
  88. package/utils/deploy.mjs +3 -3
  89. package/utils/docs-converter.mjs +454 -0
  90. package/utils/docs.mjs +212 -0
  91. package/utils/document-paths.mjs +172 -0
  92. package/utils/files.mjs +74 -0
  93. package/utils/git.mjs +65 -0
  94. package/utils/{blocklet.mjs → http.mjs} +18 -0
  95. package/utils/image-slots.mjs +57 -0
  96. package/utils/image-utils.mjs +114 -0
  97. package/utils/project.mjs +95 -0
  98. package/utils/sources-path-resolver.mjs +76 -0
  99. package/utils/{upload-files.mjs → upload.mjs} +3 -3
  100. package/utils/workspace.mjs +371 -0
  101. package/agents/chat/chat-system.md +0 -38
  102. package/agents/chat/index.mjs +0 -59
  103. package/agents/chat/skills/generate-document.yaml +0 -15
  104. package/agents/chat/skills/list-documents.mjs +0 -15
  105. package/agents/chat/skills/update-document.yaml +0 -24
  106. package/agents/clear/clear-document-config.mjs +0 -36
  107. package/agents/clear/clear-document-structure.mjs +0 -102
  108. package/agents/clear/clear-generated-docs.mjs +0 -142
  109. package/agents/clear/clear-media-description.mjs +0 -129
  110. package/agents/create/aggregate-document-structure.mjs +0 -21
  111. package/agents/create/analyze-diagram-type-llm.yaml +0 -159
  112. package/agents/create/analyze-diagram-type.mjs +0 -455
  113. package/agents/create/check-document-structure.yaml +0 -30
  114. package/agents/create/check-need-generate-structure.mjs +0 -138
  115. package/agents/create/document-structure-tools/add-document.mjs +0 -85
  116. package/agents/create/document-structure-tools/delete-document.mjs +0 -116
  117. package/agents/create/document-structure-tools/move-document.mjs +0 -109
  118. package/agents/create/document-structure-tools/update-document.mjs +0 -84
  119. package/agents/create/generate-diagram-image.yaml +0 -91
  120. package/agents/create/generate-structure.yaml +0 -106
  121. package/agents/create/index.yaml +0 -45
  122. package/agents/create/refine-document-structure.yaml +0 -12
  123. package/agents/create/replace-d2-with-image.mjs +0 -610
  124. package/agents/create/update-document-structure.yaml +0 -54
  125. package/agents/create/user-add-document/add-documents-to-structure.mjs +0 -90
  126. package/agents/create/user-add-document/find-documents-to-add-links.yaml +0 -47
  127. package/agents/create/user-add-document/index.yaml +0 -46
  128. package/agents/create/user-add-document/prepare-documents-to-translate.mjs +0 -22
  129. package/agents/create/user-add-document/print-add-document-summary.mjs +0 -63
  130. package/agents/create/user-add-document/review-documents-with-new-links.mjs +0 -110
  131. package/agents/create/user-remove-document/find-documents-with-invalid-links.mjs +0 -78
  132. package/agents/create/user-remove-document/index.yaml +0 -40
  133. package/agents/create/user-remove-document/prepare-documents-to-translate.mjs +0 -22
  134. package/agents/create/user-remove-document/print-remove-document-summary.mjs +0 -53
  135. package/agents/create/user-remove-document/remove-documents-from-structure.mjs +0 -99
  136. package/agents/create/user-remove-document/review-documents-with-invalid-links.mjs +0 -115
  137. package/agents/create/user-review-document-structure.mjs +0 -139
  138. package/agents/create/utils/init-current-content.mjs +0 -34
  139. package/agents/create/utils/merge-document-structures.mjs +0 -36
  140. package/agents/evaluate/code-snippet.mjs +0 -97
  141. package/agents/evaluate/document-structure.yaml +0 -67
  142. package/agents/evaluate/document.yaml +0 -82
  143. package/agents/evaluate/generate-report.mjs +0 -85
  144. package/agents/evaluate/index.yaml +0 -46
  145. package/agents/history/index.yaml +0 -6
  146. package/agents/history/view.mjs +0 -78
  147. package/agents/init/check.mjs +0 -16
  148. package/agents/init/index.mjs +0 -643
  149. package/agents/init/validate.mjs +0 -16
  150. package/agents/localize/choose-language.mjs +0 -107
  151. package/agents/localize/record-translation-history.mjs +0 -23
  152. package/agents/localize/save-doc-translation-or-skip.mjs +0 -18
  153. package/agents/localize/set-review-content.mjs +0 -58
  154. package/agents/localize/translate-document-wrapper.mjs +0 -34
  155. package/agents/localize/translate-document.yaml +0 -24
  156. package/agents/localize/translate-multilingual.yaml +0 -57
  157. package/agents/localize/translate-or-skip-diagram.mjs +0 -52
  158. package/agents/media/batch-generate-media-description.yaml +0 -46
  159. package/agents/media/generate-media-description.yaml +0 -50
  160. package/agents/media/load-media-description.mjs +0 -454
  161. package/agents/prefs/index.mjs +0 -203
  162. package/agents/schema/document-structure-item.yaml +0 -26
  163. package/agents/schema/document-structure-refine-item.yaml +0 -23
  164. package/agents/schema/document-structure.yaml +0 -29
  165. package/agents/update/batch-generate-document.yaml +0 -27
  166. package/agents/update/batch-update-document.yaml +0 -7
  167. package/agents/update/check-diagram-flag.mjs +0 -116
  168. package/agents/update/check-document.mjs +0 -162
  169. package/agents/update/check-generate-diagram.mjs +0 -106
  170. package/agents/update/check-update-is-single.mjs +0 -53
  171. package/agents/update/document-tools/update-document-content.mjs +0 -303
  172. package/agents/update/generate-diagram.yaml +0 -80
  173. package/agents/update/generate-document.yaml +0 -70
  174. package/agents/update/handle-document-update.yaml +0 -103
  175. package/agents/update/index.yaml +0 -69
  176. package/agents/update/pre-check-generate-diagram.yaml +0 -44
  177. package/agents/update/save-and-translate-document.mjs +0 -80
  178. package/agents/update/update-document-detail.yaml +0 -71
  179. package/agents/update/update-single/update-single-document-detail.mjs +0 -322
  180. package/agents/update/update-single-document.yaml +0 -7
  181. package/agents/update/user-review-document.mjs +0 -272
  182. package/agents/utils/action-success.mjs +0 -16
  183. package/agents/utils/analyze-document-feedback-intent.yaml +0 -32
  184. package/agents/utils/analyze-feedback-intent.mjs +0 -253
  185. package/agents/utils/analyze-structure-feedback-intent.yaml +0 -29
  186. package/agents/utils/check-detail-result.mjs +0 -51
  187. package/agents/utils/check-feedback-refiner.mjs +0 -81
  188. package/agents/utils/choose-docs.mjs +0 -251
  189. package/agents/utils/document-icon-generate.yaml +0 -52
  190. package/agents/utils/document-title-streamline.yaml +0 -48
  191. package/agents/utils/ensure-document-icons.mjs +0 -129
  192. package/agents/utils/exit.mjs +0 -6
  193. package/agents/utils/feedback-refiner.yaml +0 -50
  194. package/agents/utils/find-item-by-path.mjs +0 -114
  195. package/agents/utils/find-user-preferences-by-path.mjs +0 -37
  196. package/agents/utils/format-document-structure.mjs +0 -35
  197. package/agents/utils/generate-document-or-skip.mjs +0 -41
  198. package/agents/utils/handle-diagram-operations.mjs +0 -263
  199. package/agents/utils/load-all-document-content.mjs +0 -30
  200. package/agents/utils/load-document-all-content.mjs +0 -96
  201. package/agents/utils/load-sources.mjs +0 -405
  202. package/agents/utils/map-reasoning-effort-level.mjs +0 -15
  203. package/agents/utils/post-generate.mjs +0 -133
  204. package/agents/utils/read-current-document-content.mjs +0 -46
  205. package/agents/utils/save-doc-translation.mjs +0 -30
  206. package/agents/utils/save-doc.mjs +0 -54
  207. package/agents/utils/save-output.mjs +0 -26
  208. package/agents/utils/save-sidebar.mjs +0 -38
  209. package/agents/utils/skip-if-content-exists.mjs +0 -27
  210. package/agents/utils/streamline-document-titles-if-needed.mjs +0 -88
  211. package/agents/utils/transform-detail-data-sources.mjs +0 -45
  212. package/assets/report-template/report.html +0 -198
  213. package/docs-mcp/analyze-content-relevance.yaml +0 -50
  214. package/docs-mcp/analyze-docs-relevance.yaml +0 -59
  215. package/docs-mcp/docs-search.yaml +0 -42
  216. package/docs-mcp/get-docs-detail.mjs +0 -41
  217. package/docs-mcp/get-docs-structure.mjs +0 -16
  218. package/docs-mcp/read-doc-content.mjs +0 -119
  219. package/prompts/common/document/content-rules-core.md +0 -20
  220. package/prompts/common/document/markdown-syntax-rules.md +0 -65
  221. package/prompts/common/document/media-file-list-usage-rules.md +0 -18
  222. package/prompts/common/document/openapi-usage-rules.md +0 -189
  223. package/prompts/common/document/role-and-personality.md +0 -16
  224. package/prompts/common/document/user-preferences.md +0 -9
  225. package/prompts/common/document-structure/conflict-resolution-guidance.md +0 -16
  226. package/prompts/common/document-structure/document-icon-generate.md +0 -116
  227. package/prompts/common/document-structure/document-structure-rules.md +0 -43
  228. package/prompts/common/document-structure/document-title-streamline.md +0 -86
  229. package/prompts/common/document-structure/glossary.md +0 -7
  230. package/prompts/common/document-structure/intj-traits.md +0 -5
  231. package/prompts/common/document-structure/openapi-usage-rules.md +0 -28
  232. package/prompts/common/document-structure/output-constraints.md +0 -18
  233. package/prompts/common/document-structure/user-locale-rules.md +0 -10
  234. package/prompts/common/document-structure/user-preferences.md +0 -9
  235. package/prompts/detail/custom/admonition-usage-rules.md +0 -94
  236. package/prompts/detail/custom/code-block-usage-rules.md +0 -163
  237. package/prompts/detail/custom/custom-components/x-card-usage-rules.md +0 -63
  238. package/prompts/detail/custom/custom-components/x-cards-usage-rules.md +0 -83
  239. package/prompts/detail/custom/custom-components/x-field-desc-usage-rules.md +0 -120
  240. package/prompts/detail/custom/custom-components/x-field-group-usage-rules.md +0 -80
  241. package/prompts/detail/custom/custom-components/x-field-usage-rules.md +0 -189
  242. package/prompts/detail/custom/custom-components-usage-rules.md +0 -18
  243. package/prompts/detail/diagram/generate-image-user.md +0 -81
  244. package/prompts/detail/diagram/guide.md +0 -29
  245. package/prompts/detail/diagram/official-examples.md +0 -712
  246. package/prompts/detail/diagram/pre-check.md +0 -23
  247. package/prompts/detail/diagram/role-and-personality.md +0 -2
  248. package/prompts/detail/diagram/rules.md +0 -46
  249. package/prompts/detail/diagram/system-prompt.md +0 -1139
  250. package/prompts/detail/diagram/user-prompt.md +0 -43
  251. package/prompts/detail/generate/detail-example.md +0 -457
  252. package/prompts/detail/generate/document-rules.md +0 -45
  253. package/prompts/detail/generate/system-prompt.md +0 -61
  254. package/prompts/detail/generate/user-prompt.md +0 -99
  255. package/prompts/detail/jsx/rules.md +0 -6
  256. package/prompts/detail/update/system-prompt.md +0 -121
  257. package/prompts/detail/update/user-prompt.md +0 -41
  258. package/prompts/evaluate/document-structure.md +0 -93
  259. package/prompts/evaluate/document.md +0 -149
  260. package/prompts/media/media-description/system-prompt.md +0 -43
  261. package/prompts/media/media-description/user-prompt.md +0 -17
  262. package/prompts/structure/check-document-structure.md +0 -93
  263. package/prompts/structure/document-rules.md +0 -21
  264. package/prompts/structure/find-documents-to-add-links.md +0 -52
  265. package/prompts/structure/generate/system-prompt.md +0 -13
  266. package/prompts/structure/generate/user-prompt.md +0 -137
  267. package/prompts/structure/review/structure-review-system.md +0 -81
  268. package/prompts/structure/structure-example.md +0 -89
  269. package/prompts/structure/structure-getting-started.md +0 -10
  270. package/prompts/structure/update/system-prompt.md +0 -93
  271. package/prompts/structure/update/user-prompt.md +0 -43
  272. package/prompts/translate/admonition.md +0 -20
  273. package/prompts/translate/code-block.md +0 -33
  274. package/prompts/utils/analyze-document-feedback-intent.md +0 -54
  275. package/prompts/utils/analyze-structure-feedback-intent.md +0 -43
  276. package/prompts/utils/feedback-refiner.md +0 -105
  277. package/types/document-schema.mjs +0 -55
  278. package/types/document-structure-schema.mjs +0 -261
  279. package/utils/check-document-has-diagram.mjs +0 -95
  280. package/utils/conflict-detector.mjs +0 -149
  281. package/utils/constants/index.mjs +0 -620
  282. package/utils/constants/linter.mjs +0 -102
  283. package/utils/d2-utils.mjs +0 -205
  284. package/utils/debug.mjs +0 -3
  285. package/utils/delete-diagram-images.mjs +0 -99
  286. package/utils/diagram-version-utils.mjs +0 -14
  287. package/utils/docs-finder-utils.mjs +0 -548
  288. package/utils/evaluate/report-utils.mjs +0 -132
  289. package/utils/extract-api.mjs +0 -32
  290. package/utils/file-utils.mjs +0 -960
  291. package/utils/history-utils.mjs +0 -203
  292. package/utils/icon-map.mjs +0 -26
  293. package/utils/image-compress.mjs +0 -154
  294. package/utils/kroki-utils.mjs +0 -173
  295. package/utils/linter/index.mjs +0 -50
  296. package/utils/load-config.mjs +0 -78
  297. package/utils/markdown/index.mjs +0 -26
  298. package/utils/markdown-checker.mjs +0 -694
  299. package/utils/mermaid-validator.mjs +0 -140
  300. package/utils/mermaid-worker-pool.mjs +0 -250
  301. package/utils/mermaid-worker.mjs +0 -233
  302. package/utils/openapi/index.mjs +0 -28
  303. package/utils/preferences-utils.mjs +0 -175
  304. package/utils/request.mjs +0 -10
  305. package/utils/sync-diagram-to-translations.mjs +0 -272
  306. package/utils/translate-diagram-images.mjs +0 -807
  307. package/utils/utils.mjs +0 -1354
  308. /package/{prompts/translate → agents/localize/prompts}/glossary.md +0 -0
@@ -0,0 +1,211 @@
1
+ import { readFile, access, constants } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { parse as yamlParse } from "yaml";
4
+ import { PATHS } from "../../utils/agent-constants.mjs";
5
+ import { parseSlots } from "../../utils/image-slots.mjs";
6
+ import { findImageFile, getImageMimeType, calculateContentHash } from "../../utils/image-utils.mjs";
7
+ import { loadLocale } from "../../utils/config.mjs";
8
+
9
+ /**
10
+ * Load existing image
11
+ * @param {Object} input - Input parameters
12
+ * @param {string} input.doc - Document path (e.g., "overview" or "/overview")
13
+ * @param {string} input.slotId - slot id
14
+ * @returns {Promise<Object>} - Load result
15
+ */
16
+ export default async function loadExistingImage(input) {
17
+ try {
18
+ const { doc, slotId } = input;
19
+
20
+ // Validate parameters
21
+ if (!doc || !slotId) {
22
+ throw new Error("Missing required parameters: doc and slotId");
23
+ }
24
+
25
+ // 1. Read main language
26
+ const locale = await loadLocale();
27
+
28
+ // 2. Build document file path
29
+ const normalizedPath = doc.startsWith("/") ? doc.slice(1) : doc;
30
+ const filePath = join(PATHS.DOCS_DIR, normalizedPath, `${locale}.md`);
31
+
32
+ // Check if file exists
33
+ try {
34
+ await access(filePath, constants.F_OK | constants.R_OK);
35
+ } catch (_error) {
36
+ throw new Error(
37
+ `Document does not exist or cannot be read: ${filePath}, please check if document path is in document-structure.yaml and document has been generated.`,
38
+ );
39
+ }
40
+
41
+ // 3. Read document content
42
+ const content = await readFile(filePath, "utf8");
43
+
44
+ // 4. Calculate document content hash
45
+ const hash = calculateContentHash(content);
46
+
47
+ // 5. Parse slots, find specified slotId
48
+ const slots = parseSlots(content, doc);
49
+ const targetSlot = slots.find((s) => s.id === slotId);
50
+
51
+ if (!targetSlot) {
52
+ throw new Error(`Image slot with slotId="${slotId}" not found in document ${doc}`);
53
+ }
54
+
55
+ const { key, desc } = targetSlot;
56
+
57
+ // 6. Load image file
58
+ const imagesDir = join(PATHS.ASSETS_DIR, key, "images");
59
+ const imagePath = await findImageFile(imagesDir, locale);
60
+
61
+ if (!imagePath) {
62
+ throw new Error(
63
+ `Image file for slot "${slotId}" not found (key: ${key}), please confirm with user whether to use generateImages Tool to generate image first.`,
64
+ );
65
+ }
66
+
67
+ // 7. Read .meta.yaml
68
+ const metaPath = join(PATHS.ASSETS_DIR, key, ".meta.yaml");
69
+ let meta = null;
70
+ try {
71
+ const metaContent = await readFile(metaPath, "utf8");
72
+ meta = yamlParse(metaContent);
73
+ } catch (_error) {
74
+ // meta file does not exist or cannot be read, continue execution
75
+ }
76
+
77
+ // 8. Build image info (for existingImage parameter)
78
+ const mimeType = getImageMimeType(imagePath);
79
+ const filename = imagePath.split("/").pop();
80
+
81
+ const existingImage = [
82
+ {
83
+ type: "local",
84
+ path: imagePath,
85
+ filename,
86
+ mimeType,
87
+ },
88
+ ];
89
+
90
+ // 9. Get current aspectRatio (from meta or use default)
91
+ const currentAspectRatio = meta?.generation?.aspectRatio || "4:3";
92
+
93
+ return {
94
+ success: true,
95
+ slotId,
96
+ key,
97
+ desc,
98
+ doc,
99
+ locale,
100
+ content,
101
+ hash,
102
+ existingImage,
103
+ currentAspectRatio,
104
+ imagePath,
105
+ meta,
106
+ message: `Successfully loaded image: ${imagePath}`,
107
+ };
108
+ } catch (error) {
109
+ throw new Error(
110
+ `Failed to load existing image: ${error.message}, please check document path and slotId are correct`,
111
+ );
112
+ }
113
+ }
114
+
115
+ // Add description
116
+ loadExistingImage.description =
117
+ "Load existing image based on document path and slotId, return image path and related metadata.";
118
+
119
+ // Define input schema
120
+ loadExistingImage.input_schema = {
121
+ type: "object",
122
+ properties: {
123
+ doc: {
124
+ type: "string",
125
+ description: "Document path (e.g., 'overview' or '/overview')",
126
+ },
127
+ slotId: {
128
+ type: "string",
129
+ description: "Image slot id",
130
+ },
131
+ },
132
+ required: ["doc", "slotId"],
133
+ };
134
+
135
+ // Define output schema
136
+ loadExistingImage.output_schema = {
137
+ type: "object",
138
+ required: ["success"],
139
+ properties: {
140
+ success: {
141
+ type: "boolean",
142
+ description: "Whether operation succeeded",
143
+ },
144
+ slotId: {
145
+ type: "string",
146
+ description: "slot id",
147
+ },
148
+ key: {
149
+ type: "string",
150
+ description: "Image key (directory name)",
151
+ },
152
+ desc: {
153
+ type: "string",
154
+ description: "slot description",
155
+ },
156
+ doc: {
157
+ type: "string",
158
+ description: "Document path",
159
+ },
160
+ locale: {
161
+ type: "string",
162
+ description: "Main language code",
163
+ },
164
+ content: {
165
+ type: "string",
166
+ description: "Document content",
167
+ },
168
+ hash: {
169
+ type: "string",
170
+ description: "SHA256 hash of document content",
171
+ },
172
+ existingImage: {
173
+ type: "array",
174
+ description: "Existing image info (for image-to-image generation)",
175
+ items: {
176
+ type: "object",
177
+ properties: {
178
+ type: { type: "string" },
179
+ path: { type: "string" },
180
+ filename: { type: "string" },
181
+ mimeType: { type: "string" },
182
+ },
183
+ },
184
+ },
185
+ currentAspectRatio: {
186
+ type: "string",
187
+ description: "Current image aspect ratio",
188
+ },
189
+ imagePath: {
190
+ type: "string",
191
+ description: "Image file path",
192
+ },
193
+ meta: {
194
+ type: "object",
195
+ nullable: true,
196
+ description: "Image metadata (.meta.yaml content)",
197
+ },
198
+ message: {
199
+ type: "string",
200
+ description: "Operation result description",
201
+ },
202
+ error: {
203
+ type: "string",
204
+ description: "Error code (present on failure)",
205
+ },
206
+ suggestion: {
207
+ type: "string",
208
+ description: "Suggested action (present on failure)",
209
+ },
210
+ },
211
+ };
@@ -0,0 +1,43 @@
1
+ 你是一个专门分析用户对图片编辑反馈的 AI 助手。
2
+
3
+ # 你的任务
4
+
5
+ 分析用户提供的反馈文本,提取以下信息:
6
+
7
+ 1. **宽高比修改意图**:用户是否想要修改图片的宽高比
8
+ 2. **目标宽高比**:如果用户想修改,新的宽高比是什么
9
+
10
+ # 支持的宽高比
11
+
12
+ 图片生成系统支持以下宽高比:
13
+ - `1:1` - 正方形
14
+ - `5:4` - 接近正方形
15
+ - `4:3` - 标准横向
16
+ - `3:2` - 宽屏横向
17
+ - `16:9` - 超宽屏
18
+ - `21:9` - 电影宽屏
19
+
20
+ # 分析规则
21
+
22
+ 1. **识别宽高比修改意图**
23
+ - 用户明确提到比例、宽高比、ratio、aspect ratio 等关键词
24
+ - 用户提到具体的比例数字(如 "16:9"、"16比9"、"16 9")
25
+ - 用户描述比例特征(如 "更宽"、"更方"、"正方形"、"宽屏")
26
+
27
+ 2. **提取目标宽高比**
28
+ - 如果用户明确给出数字(如 "改为 16:9"),直接使用该值
29
+ - 如果用户描述特征(如 "改为正方形"),映射到对应的宽高比:
30
+ - "正方形" → `1:1`
31
+ - "标准" → `4:3`
32
+ - "宽屏" → `16:9`
33
+ - "超宽" → `21:9`
34
+ - 只能返回支持的宽高比之一,不支持的比例使用最接近的
35
+
36
+ 3. **处理模糊情况**
37
+ - 如果用户只说"更宽一点"但没有给出具体比例,设置 `hasRatioChange: false`
38
+ - 如果用户给出的比例不在支持列表中,选择最接近的支持比例
39
+
40
+ # 重要规则
41
+
42
+ 1. 如果不确定用户是否要修改宽高比,设置 `hasRatioChange: false`
43
+ 2. 不要添加任何解释或额外文本,只返回 JSON 对象
@@ -0,0 +1,15 @@
1
+ # 用户反馈分析任务
2
+
3
+ 请分析以下用户对图片编辑的反馈,提取宽高比修改意图。
4
+
5
+ **当前图片宽高比:** {{ currentAspectRatio }}
6
+
7
+ **用户反馈:**
8
+ ```
9
+ {{ feedback }}
10
+ ```
11
+
12
+ **你的任务:**
13
+ 1. 分析用户反馈中是否包含宽高比修改意图
14
+ 2. 如果有修改意图,提取目标宽高比(必须是支持的值之一)
15
+ 3. 如果没有修改意图,使用当前宽高比
package/aigne.yaml CHANGED
@@ -1,145 +1,32 @@
1
1
  #!/usr/bin/env aigne
2
2
 
3
- model:
4
- # model: gemini-3-pro-preview
5
- model: gemini-2.5-pro
6
- temperature: 0.8
7
- # https://github.com/AIGNE-io/aigne-framework/blob/main/models/gemini/src/gemini-chat-model.ts#L115
8
- reasoning_effort:
9
- $get: reasoningEffort
3
+ model: anthropic/claude-sonnet-4-5
4
+ image_model:
5
+ model: google/gemini-3-pro-image-preview
10
6
  agents:
11
- # Initialization
12
- - ./agents/init/index.mjs
7
+ - skills-entry/doc-smith/index.mjs
8
+ - agents/publish/index.yaml
9
+ # - agents/preload-i18n.mjs
10
+ - agents/structure-checker/index.mjs
11
+ - agents/content-checker/index.mjs
12
+ - agents/localize/index.yaml
13
+ - agents/generate-images/index.yaml
14
+ - agents/update-image/index.yaml
15
+ - agents/localize/translate-documents/translate-document.yaml
16
+ - skills-entry/doc-smith-docs-detail/index.mjs
17
+ - agents/clear/index.yaml
18
+ - agents/clear/choose-contents.mjs
19
+ - agents/clear/clear-auth-tokens.mjs
20
+ - agents/clear/clear-deployment-config.mjs
13
21
 
14
- # Documentation Structure Generation
15
- - ./agents/create/generate-structure.yaml
16
- - ./agents/create/update-document-structure.yaml
17
- - ./agents/create/check-need-generate-structure.mjs
18
- - ./agents/create/refine-document-structure.yaml
19
- - ./agents/create/check-document-structure.yaml
20
- - ./agents/create/user-review-document-structure.mjs
21
- - ./agents/create/index.yaml
22
-
23
- # Documentation Structure Tools
24
- - ./agents/create/document-structure-tools/add-document.mjs
25
- - ./agents/create/document-structure-tools/delete-document.mjs
26
- - ./agents/create/document-structure-tools/update-document.mjs
27
- - ./agents/create/document-structure-tools/move-document.mjs
28
-
29
- # Document Content Generation & Updates
30
- - ./agents/update/batch-generate-document.yaml
31
- - ./agents/update/generate-document.yaml
32
- - ./agents/update/handle-document-update.yaml
33
- - ./agents/update/check-document.mjs
34
- - ./agents/update/update-document-detail.yaml
35
- - ./agents/update/user-review-document.mjs
36
- - ./agents/update/batch-update-document.yaml
37
- - ./agents/update/update-single-document.yaml
38
- - ./agents/update/check-update-is-single.mjs
39
- - ./agents/update/save-and-translate-document.mjs
40
- - ./agents/update/index.yaml
41
- - ./agents/update/update-single/update-single-document-detail.mjs
42
-
43
-
44
- # Translation
45
- - ./agents/localize/translate-document.yaml
46
- - ./agents/localize/translate-multilingual.yaml
47
- - ./agents/localize/choose-language.mjs
48
- - ./agents/localize/index.yaml
49
-
50
- # Publishing
51
- - ./agents/publish/publish-docs.mjs
52
- - ./agents/publish/translate-meta.mjs
53
- - ./agents/publish/index.yaml
54
-
55
- # Media
56
- - ./agents/media/load-media-description.mjs
57
- - ./agents/media/batch-generate-media-description.yaml
58
- - ./agents/media/generate-media-description.yaml
59
-
60
- # Clear/Cleanup
61
- - ./agents/clear/choose-contents.mjs
62
- - ./agents/clear/clear-document-structure.mjs
63
- - ./agents/clear/clear-generated-docs.mjs
64
- - ./agents/clear/clear-document-config.mjs
65
- - ./agents/clear/clear-auth-tokens.mjs
66
- - ./agents/clear/clear-deployment-config.mjs
67
- - ./agents/clear/clear-media-description.mjs
68
-
69
- # Utilities
70
- - ./agents/utils/load-sources.mjs
71
- - ./agents/utils/post-generate.mjs
72
- - ./agents/utils/save-sidebar.mjs
73
- - ./agents/utils/transform-detail-data-sources.mjs
74
- - ./agents/utils/save-doc.mjs
75
- - ./agents/utils/save-doc-translation.mjs
76
- - ./agents/utils/save-output.mjs
77
- - ./agents/utils/format-document-structure.mjs
78
- - ./agents/utils/find-item-by-path.mjs
79
- - ./agents/utils/check-feedback-refiner.mjs
80
- - ./agents/utils/feedback-refiner.yaml
81
- - ./agents/utils/analyze-structure-feedback-intent.yaml
82
- - ./agents/utils/analyze-document-feedback-intent.yaml
83
- - ./agents/utils/analyze-feedback-intent.mjs
84
-
85
- - ./agents/utils/document-title-streamline.yaml
86
- - ./agents/utils/streamline-document-titles-if-needed.mjs
87
- - ./agents/utils/document-icon-generate.yaml
88
-
89
- # User Preferences & Chat
90
- - ./agents/prefs/index.mjs
91
- - ./agents/chat/index.mjs
92
-
93
- # Documentation MCP Server
94
- - ./docs-mcp/get-docs-structure.mjs
95
- - ./docs-mcp/get-docs-detail.mjs
96
- - ./docs-mcp/docs-search.yaml
97
- - ./docs-mcp/analyze-docs-relevance.yaml
98
- - ./docs-mcp/read-doc-content.mjs
99
- - ./docs-mcp/analyze-content-relevance.yaml
100
-
101
- # Evaluation
102
- - ./agents/evaluate/index.yaml
103
- - ./agents/evaluate/generate-report.mjs
104
- - ./agents/evaluate/document-structure.yaml
105
- - ./agents/evaluate/document.yaml
106
- - ./agents/evaluate/code-snippet.mjs
107
-
108
- # Diagram
109
- - ./agents/create/analyze-diagram-type.mjs
110
- - ./agents/create/analyze-diagram-type-llm.yaml
111
- - ./agents/create/generate-diagram-image.yaml
112
- - ./agents/create/replace-d2-with-image.mjs
113
- - ./agents/update/generate-diagram.yaml
114
- - ./agents/update/check-generate-diagram.mjs
115
- - ./agents/update/pre-check-generate-diagram.yaml
116
- - ./agents/localize/translate-diagram.yaml
117
22
  cli:
118
- chat: ./agents/chat/index.mjs
119
- agents:
120
- - ./agents/init/index.mjs
121
- - ./agents/create/index.yaml
122
- - ./agents/update/index.yaml
123
- - ./agents/publish/index.yaml
124
- - ./agents/localize/index.yaml
125
- - ./agents/clear/index.yaml
126
- - ./agents/prefs/index.mjs
127
- - ./agents/evaluate/index.yaml
128
- - name: history
129
- description: View update history
130
- agents:
131
- - url: ./agents/history/view.mjs
132
- name: view
133
- alias: ["log", "list"]
134
- - name: add-document
135
- alias: ["add"]
136
- url: ./agents/create/user-add-document/index.yaml
137
- - name: remove-document
138
- alias: ["remove", "rm"]
139
- url: ./agents/create/user-remove-document/index.yaml
140
- - ./agents/clear/index.yaml
141
- mcp_server:
23
+ chat: skills-entry/doc-smith/index.mjs
142
24
  agents:
143
- - ./docs-mcp/get-docs-structure.mjs
144
- - ./docs-mcp/get-docs-detail.mjs
145
- # - ./docs-mcp/docs-search.yaml
25
+ - name: doc-smith
26
+ alias: ["create", "gen", "g"]
27
+ url: skills-entry/doc-smith/index.mjs
28
+ - name: publish
29
+ alias: ["pub", "p"]
30
+ url: agents/publish/index.yaml
31
+ - name: clear
32
+ url: agents/clear/index.yaml
package/package.json CHANGED
@@ -1,81 +1,49 @@
1
1
  {
2
2
  "name": "@aigne/doc-smith",
3
- "version": "0.9.10",
3
+ "version": "0.9.11-beta",
4
4
  "description": "AI-driven documentation generation tool built on the AIGNE Framework",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "files": [
9
9
  "agents",
10
- "assets/report-template",
11
- "docs-mcp",
12
- "prompts",
13
- "types",
14
10
  "utils",
11
+ "skills",
12
+ "skills-entry",
13
+ "scripts",
15
14
  "aigne.yaml",
16
15
  "LICENSE",
17
16
  "README.md",
18
17
  "CHANGELOG.md"
19
18
  ],
20
- "main": "index.js",
19
+ "main": "aigne.yaml",
21
20
  "type": "module",
22
21
  "bin": "aigne.yaml",
23
22
  "keywords": [],
24
23
  "author": "Arcblock <blocklet@arcblock.io> https://github.com/blocklet",
25
24
  "license": "Elastic-2.0",
26
25
  "dependencies": {
27
- "@aigne/cli": "^1.56.0",
28
- "@aigne/core": "^1.69.0",
29
- "@aigne/publish-docs": "^0.14.2",
30
- "@aigne/secrets": "^0.1.1-beta.3",
31
- "@blocklet/payment-broker-client": "^1.22.27",
26
+ "@aigne/cli": "^1.59.0-beta.27",
27
+ "@aigne/publish-docs": "^0.15.0",
28
+ "@aigne/secrets": "^0.1.5",
29
+ "@blocklet/payment-broker-client": "^1.24.1",
32
30
  "chalk": "^5.5.0",
33
- "debug": "^4.4.1",
34
- "diff": "^8.0.2",
35
- "dompurify": "^3.2.6",
36
- "fast-deep-equal": "^3.1.3",
37
- "file-type": "^21.0.0",
38
31
  "fs-extra": "^11.3.1",
39
- "glob": "^11.0.3",
40
- "gpt-tokenizer": "^3.2.0",
41
- "image-size": "^2.0.2",
42
- "sharp": "^0.33.0",
43
- "is-in-ci": "^2.0.0",
44
- "isbinaryfile": "^5.0.6",
45
- "jsdom": "^26.1.0",
46
- "marked": "^15.0.12",
47
- "marked-terminal": "^7.3.0",
48
- "mermaid": "^11.9.0",
49
- "minimatch": "^10.1.1",
50
32
  "open": "^10.2.0",
51
- "p-limit": "^7.1.1",
52
- "p-map": "^7.0.3",
53
- "p-retry": "^7.0.0",
54
- "remark-gfm": "^4.0.1",
55
- "remark-lint": "^10.0.1",
56
- "remark-parse": "^11.0.0",
57
- "typescript": "^5.9.3",
33
+ "p-limit": "^7.2.0",
58
34
  "ufo": "^1.6.1",
59
- "unified": "^11.0.5",
60
- "unist-util-visit": "^5.0.0",
61
- "vfile": "^6.0.3",
62
- "yaml": "^2.8.0",
63
- "zod": "^3.25.76",
64
- "zod-to-json-schema": "^3.24.6"
35
+ "yaml": "^2.8.0"
65
36
  },
66
37
  "devDependencies": {
67
38
  "@biomejs/biome": "^2.2.4"
68
39
  },
40
+ "overrides": {
41
+ "jaison": "2.0.2"
42
+ },
69
43
  "scripts": {
70
- "test": "bun test --preload ./tests/setup/mock-process-exit.mjs",
71
- "test:coverage2": "bun test --preload ./tests/setup/mock-process-exit.mjs --coverage",
72
- "test:coverage": "bun test --preload ./tests/setup/mock-process-exit.mjs --coverage --coverage-reporter=lcov --coverage-reporter=text",
73
- "test:deploy": "bun test --preload ./tests/setup/mock-process-exit.mjs tests/utils/deploy.test.mjs --coverage --coverage-reporter=text",
74
- "test:user-review": "bun test --preload ./tests/setup/mock-process-exit.mjs tests/agents/update/user-review-document.test.mjs --coverage --coverage-reporter=lcov --coverage-reporter=text",
75
- "test:watch": "bun test --preload ./tests/setup/mock-process-exit.mjs --watch",
76
44
  "lint": "biome lint && biome format",
45
+ "lint:fix": "biome lint --write && biome format --write",
77
46
  "update:deps": "npx -y taze major -r -w -f -n '/@abtnode|@aigne|@arcblock|@blocklet|@did-connect|@did-pay|@did-space|@nft-store|@nft-studio|@ocap/' && pnpm install && pnpm run deduplicate",
78
- "deduplicate": "pnpm dedupe",
79
- "lint:fix": "biome lint --write && biome format --write"
47
+ "deduplicate": "pnpm dedupe"
80
48
  }
81
49
  }
@@ -0,0 +1,90 @@
1
+ # DocSmith Skill 安装脚本
2
+
3
+ 这个目录包含用于安装和卸载 doc-smith skill 的脚本。
4
+
5
+ ## 脚本说明
6
+
7
+ ### install.sh
8
+ 将 doc-smith skill 安装到 Claude 的全局 skills 目录(`~/.claude/skills`),使其可以在任何项目中使用。
9
+
10
+ **功能:**
11
+ - 自动创建 `~/.claude/skills` 目录(如果不存在)
12
+ - 复制 doc-smith 文件夹到全局 skills 目录
13
+ - 检测并提示是否覆盖已存在的安装
14
+ - 验证安装是否成功
15
+
16
+ ### uninstall.sh
17
+ 从 Claude 的全局 skills 目录移除 doc-smith skill。
18
+
19
+ **功能:**
20
+ - 检查 skill 是否已安装
21
+ - 确认后删除 doc-smith skill
22
+ - 验证卸载是否成功
23
+
24
+ ## 使用方法
25
+
26
+ ### 安装
27
+
28
+ 在项目根目录执行:
29
+
30
+ ```bash
31
+ ./scripts/install.sh
32
+ ```
33
+
34
+ 或者从 scripts 目录执行:
35
+
36
+ ```bash
37
+ cd scripts
38
+ ./install.sh
39
+ ```
40
+
41
+ **自动确认安装(跳过提示):**
42
+
43
+ ```bash
44
+ ./scripts/install.sh -y
45
+ # 或
46
+ ./scripts/install.sh --yes
47
+ ```
48
+
49
+ 安装成功后,你可以在任何地方的 Claude Code 中使用:
50
+
51
+ ```
52
+ /doc-smith
53
+ ```
54
+
55
+ ### 卸载
56
+
57
+ ```bash
58
+ ./scripts/uninstall.sh
59
+ ```
60
+
61
+ ## 安装位置
62
+
63
+ - **源文件:** `doc-smith-skill/doc-smith/`
64
+ - **安装位置:** `~/.claude/skills/doc-smith/`
65
+
66
+ ## 注意事项
67
+
68
+ 1. 脚本会提示是否覆盖已存在的安装
69
+ 2. 卸载前会要求确认
70
+ 3. 所有操作都有彩色输出提示,便于识别状态
71
+ 4. 脚本执行失败时会返回非零退出码
72
+
73
+ ## 故障排查
74
+
75
+ **权限问题:**
76
+ ```bash
77
+ chmod +x scripts/install.sh
78
+ chmod +x scripts/uninstall.sh
79
+ ```
80
+
81
+ **手动安装:**
82
+ ```bash
83
+ mkdir -p ~/.claude/skills
84
+ cp -r doc-smith ~/.claude/skills/
85
+ ```
86
+
87
+ **手动卸载:**
88
+ ```bash
89
+ rm -rf ~/.claude/skills/doc-smith
90
+ ```