@amaster.ai/pi-lark 0.1.5 → 0.1.7

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 (258) hide show
  1. package/README.md +5 -1
  2. package/dist/config.d.ts +1 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -2
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/package.json +4 -4
  10. package/skills/lark-approval/references/lark-approval-initiate.md +2 -5
  11. package/skills/lark-approval/references/lark-approval-instances-initiated.md +6 -0
  12. package/skills/lark-approval/references/lark-approval-tasks-query.md +9 -0
  13. package/skills/lark-approval/references/lark-approval-tasks-rollback.md +8 -2
  14. package/skills/lark-apps/SKILL.md +46 -16
  15. package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
  16. package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
  17. package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
  18. package/skills/lark-apps/creative-design/assets/index.html +27 -0
  19. package/skills/lark-apps/creative-design/creative-design.md +239 -0
  20. package/skills/lark-apps/creative-design/references/aily.md +39 -0
  21. package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
  22. package/skills/lark-apps/creative-design/references/charts.md +165 -0
  23. package/skills/lark-apps/creative-design/references/claude.md +36 -0
  24. package/skills/lark-apps/creative-design/references/codex.md +32 -0
  25. package/skills/lark-apps/creative-design/references/data-report.md +108 -0
  26. package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
  27. package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
  28. package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
  29. package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
  30. package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
  31. package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
  32. package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
  33. package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
  34. package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
  35. package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
  36. package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
  37. package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
  38. package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
  39. package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
  40. package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
  41. package/skills/lark-apps/references/lark-apps-automation.md +242 -0
  42. package/skills/lark-apps/references/lark-apps-cache.md +61 -0
  43. package/skills/lark-apps/references/lark-apps-cloud-dev.md +0 -1
  44. package/skills/lark-apps/references/lark-apps-create.md +1 -2
  45. package/skills/lark-apps/references/lark-apps-db-execute.md +186 -2
  46. package/skills/lark-apps/references/lark-apps-db.md +4 -4
  47. package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
  48. package/skills/lark-apps/references/lark-apps-file.md +2 -2
  49. package/skills/lark-apps/references/lark-apps-get.md +43 -0
  50. package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
  51. package/skills/lark-apps/references/lark-apps-html-publish.md +5 -4
  52. package/skills/lark-apps/references/lark-apps-init.md +2 -3
  53. package/skills/lark-apps/references/lark-apps-list.md +1 -1
  54. package/skills/lark-apps/references/lark-apps-local-dev.md +54 -11
  55. package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
  56. package/skills/lark-apps/references/lark-apps-release-create.md +5 -3
  57. package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
  58. package/skills/lark-apps/references/lark-apps-role.md +133 -0
  59. package/skills/lark-base/SKILL.md +26 -15
  60. package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
  61. package/skills/lark-base/references/lark-base-cell-value.md +12 -7
  62. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +7 -7
  63. package/skills/lark-base/references/lark-base-dashboard.md +11 -2
  64. package/skills/lark-base/references/lark-base-data-query.md +20 -11
  65. package/skills/lark-base/references/lark-base-field-create.md +8 -2
  66. package/skills/lark-base/references/lark-base-field-json.md +56 -19
  67. package/skills/lark-base/references/lark-base-field-update.md +21 -3
  68. package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
  69. package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
  70. package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
  71. package/skills/lark-base/references/lark-base-form-submit.md +16 -7
  72. package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
  73. package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
  74. package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
  75. package/skills/lark-base/references/lark-base-role-guide.md +11 -0
  76. package/skills/lark-base/references/lark-base-view-set-filter.md +14 -138
  77. package/skills/lark-base/references/role-config.md +31 -5
  78. package/skills/lark-calendar/SKILL.md +101 -37
  79. package/skills/lark-calendar/references/lark-calendar-create.md +13 -43
  80. package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
  81. package/skills/lark-calendar/references/lark-calendar-room-find.md +7 -10
  82. package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
  83. package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +60 -0
  84. package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
  85. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +67 -210
  86. package/skills/lark-calendar/references/lark-calendar-suggestion.md +2 -6
  87. package/skills/lark-calendar/references/lark-calendar-update.md +12 -11
  88. package/skills/lark-contact/SKILL.md +19 -3
  89. package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
  90. package/skills/lark-doc/SKILL.md +1 -1
  91. package/skills/lark-doc/references/lark-doc-fetch.md +14 -4
  92. package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
  93. package/skills/lark-doc/references/lark-doc-whiteboard.md +13 -8
  94. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +76 -0
  95. package/skills/lark-doc/references/lark-doc-xml.md +6 -4
  96. package/skills/lark-drive/SKILL.md +35 -43
  97. package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
  98. package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
  99. package/skills/lark-drive/references/lark-drive-apply-permission.md +2 -2
  100. package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
  101. package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
  102. package/skills/lark-drive/references/lark-drive-comment-location.md +18 -12
  103. package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
  104. package/skills/lark-drive/references/lark-drive-delete.md +35 -11
  105. package/skills/lark-drive/references/lark-drive-download.md +5 -1
  106. package/skills/lark-drive/references/lark-drive-export.md +39 -10
  107. package/skills/lark-drive/references/lark-drive-files-list.md +27 -2
  108. package/skills/lark-drive/references/lark-drive-inspect.md +2 -0
  109. package/skills/lark-drive/references/lark-drive-list-comments.md +82 -0
  110. package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
  111. package/skills/lark-drive/references/lark-drive-member-add.md +3 -3
  112. package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
  113. package/skills/lark-drive/references/lark-drive-move.md +5 -3
  114. package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
  115. package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
  116. package/skills/lark-drive/references/lark-drive-preview.md +11 -1
  117. package/skills/lark-drive/references/lark-drive-pull.md +3 -3
  118. package/skills/lark-drive/references/lark-drive-push.md +33 -6
  119. package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
  120. package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
  121. package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
  122. package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
  123. package/skills/lark-drive/references/lark-drive-search.md +7 -1
  124. package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
  125. package/skills/lark-drive/references/lark-drive-status.md +12 -14
  126. package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
  127. package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
  128. package/skills/lark-drive/references/lark-drive-upload.md +1 -0
  129. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
  130. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
  131. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
  132. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
  133. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
  134. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
  135. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
  136. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
  137. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
  138. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
  139. package/skills/lark-drive/references/lark-drive-workflow.md +5 -3
  140. package/skills/lark-event/SKILL.md +3 -1
  141. package/skills/lark-event/references/lark-event-application.md +38 -0
  142. package/skills/lark-event/references/lark-event-approval.md +170 -0
  143. package/skills/lark-im/SKILL.md +6 -5
  144. package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
  145. package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
  146. package/skills/lark-im/references/card/resource/icons.md +14 -0
  147. package/skills/lark-im/references/lark-im-flag-list.md +8 -7
  148. package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
  149. package/skills/lark-im/references/lark-im-messages-send.md +1 -1
  150. package/skills/lark-mail/SKILL.md +12 -9
  151. package/skills/lark-mail/references/lark-mail-forward.md +1 -1
  152. package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
  153. package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
  154. package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
  155. package/skills/lark-mail/references/lark-mail-reply.md +1 -1
  156. package/skills/lark-mail/references/lark-mail-watch.md +1 -1
  157. package/skills/lark-markdown/SKILL.md +3 -2
  158. package/skills/lark-markdown/references/lark-markdown-create.md +22 -2
  159. package/skills/lark-minutes/SKILL.md +19 -4
  160. package/skills/lark-minutes/references/lark-minutes-download.md +0 -2
  161. package/skills/lark-minutes/references/lark-minutes-search.md +0 -2
  162. package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +0 -2
  163. package/skills/lark-minutes/references/lark-minutes-summary.md +0 -2
  164. package/skills/lark-minutes/references/lark-minutes-todo.md +2 -4
  165. package/skills/lark-minutes/references/lark-minutes-update.md +0 -2
  166. package/skills/lark-minutes/references/lark-minutes-upload.md +10 -10
  167. package/skills/lark-okr/SKILL.md +71 -26
  168. package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
  169. package/skills/lark-okr/references/lark-okr-create.md +173 -0
  170. package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
  171. package/skills/lark-okr/references/lark-okr-entities.md +1 -0
  172. package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
  173. package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
  174. package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
  175. package/skills/lark-shared/SKILL.md +26 -8
  176. package/skills/lark-sheets/SKILL.md +98 -29
  177. package/skills/lark-sheets/references/lark-sheets-batch-update.md +18 -9
  178. package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
  179. package/skills/lark-sheets/references/lark-sheets-chart.md +4 -2
  180. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +2 -0
  181. package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
  182. package/skills/lark-sheets/references/lark-sheets-float-image.md +6 -6
  183. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +12 -3
  184. package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
  185. package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
  186. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +7 -2
  187. package/skills/lark-sheets/references/lark-sheets-range-operations.md +44 -14
  188. package/skills/lark-sheets/references/lark-sheets-read-data.md +3 -3
  189. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +4 -4
  190. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +4 -4
  191. package/skills/lark-sheets/references/lark-sheets-workbook.md +29 -4
  192. package/skills/lark-sheets/references/lark-sheets-write-cells.md +21 -11
  193. package/skills/lark-slides/SKILL.md +121 -63
  194. package/skills/lark-slides/references/asset-planning.md +18 -5
  195. package/skills/lark-slides/references/iconpark.md +3 -3
  196. package/skills/lark-slides/references/lark-slides-create.md +30 -3
  197. package/skills/lark-slides/references/lark-slides-history.md +132 -0
  198. package/skills/lark-slides/references/lark-slides-media-upload.md +1 -3
  199. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +85 -0
  200. package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
  201. package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -4
  202. package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
  203. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +5 -6
  204. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +5 -2
  205. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +5 -5
  206. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +14 -13
  207. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +67 -31
  208. package/skills/lark-slides/references/planning-layer.md +41 -10
  209. package/skills/lark-slides/references/slides_chart_demo.xml +1416 -0
  210. package/skills/lark-slides/references/slides_xml_schema_definition.xml +499 -78
  211. package/skills/lark-slides/references/troubleshooting.md +5 -5
  212. package/skills/lark-slides/references/validation-checklist.md +65 -19
  213. package/skills/lark-slides/references/visual-planning.md +26 -22
  214. package/skills/lark-slides/references/xml-schema-quick-ref.md +285 -45
  215. package/skills/lark-slides/scripts/sxsd_validator.py +908 -0
  216. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +2429 -91
  217. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +3567 -70
  218. package/skills/lark-task/SKILL.md +8 -0
  219. package/skills/lark-task/references/lark-task-complete.md +6 -2
  220. package/skills/lark-task/references/lark-task-create.md +23 -1
  221. package/skills/lark-task/references/lark-task-update.md +6 -2
  222. package/skills/lark-vc/SKILL.md +6 -3
  223. package/skills/lark-vc/references/lark-vc-recording.md +0 -2
  224. package/skills/lark-vc/references/vc-domain-boundaries.md +9 -1
  225. package/skills/lark-vc-agent/SKILL.md +25 -15
  226. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +65 -37
  227. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +1 -1
  228. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +8 -8
  229. package/skills/lark-whiteboard/SKILL.md +13 -12
  230. package/skills/lark-whiteboard/elements/layout.md +1 -1
  231. package/skills/lark-whiteboard/elements/schema.md +2 -2
  232. package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +15 -15
  233. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +3 -3
  234. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +12 -19
  235. package/skills/lark-whiteboard/routes/dsl.md +3 -3
  236. package/skills/lark-whiteboard/routes/mermaid.md +2 -2
  237. package/skills/lark-whiteboard/routes/svg-edit.md +4 -4
  238. package/skills/lark-whiteboard/routes/svg.md +11 -6
  239. package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
  240. package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
  241. package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
  242. package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
  243. package/skills/lark-whiteboard/scenes/treemap.md +1 -1
  244. package/skills/lark-wiki/SKILL.md +8 -3
  245. package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
  246. package/skills/lark-wiki/references/lark-wiki-move.md +5 -3
  247. package/skills/lark-wiki/references/lark-wiki-node-get.md +1 -1
  248. package/skills/lark-wiki/references/lark-wiki-node-list.md +9 -2
  249. package/skills/lark-calendar/references/lark-calendar-agenda.md +0 -78
  250. package/skills/lark-calendar/references/lark-calendar-freebusy.md +0 -124
  251. package/skills/lark-calendar/references/lark-calendar-search-event.md +0 -29
  252. package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -72
  253. package/skills/lark-sheets/references/lark-sheets-core-operations.md +0 -103
  254. package/skills/lark-slides/references/examples.md +0 -261
  255. package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -330
  256. package/skills/lark-slides/references/slide-templates.md +0 -201
  257. package/skills/lark-slides/references/slides_demo.xml +0 -226
  258. package/skills/lark-slides/references/xml-format-guide.md +0 -369
@@ -12,7 +12,7 @@ metadata:
12
12
 
13
13
  > [!IMPORTANT]
14
14
  > - 运行 `lark-cli --version`,确认可用,无需询问用户。
15
- > - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.12 -v`,确认可用,无需询问用户。
15
+ > - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 -v`,确认可用,无需询问用户。
16
16
 
17
17
  **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**
18
18
 
@@ -22,21 +22,22 @@ metadata:
22
22
 
23
23
  **身份**:画板操作默认使用 `--as user`。仅当需要以应用身份上传时使用 `--as bot`。
24
24
 
25
- | 用户需求 | 行动 |
26
- |-----------------------------------------|-----------------------------------------------------------------------------------------------|
27
- | 查看画板内容 / 导出图片 / 导出 SVG 矢量图 | [`+query --output_as image/svg`](references/lark-whiteboard-query.md) |
28
- | 获取画板的 Mermaid/PlantUML 代码 | [`+query --output_as code`](references/lark-whiteboard-query.md) |
29
- | 检查画板是否由代码绘制 | [`+query --output_as code`](references/lark-whiteboard-query.md) |
30
- | 仅微调节点文字/颜色 | `+query --output_as raw` → 手动改 JSON → `+update --input_format raw` |
25
+ | 用户需求 | 行动 |
26
+ |-----------------------------------------|---------------------------------------------------------------------------------------------------|
27
+ | 查看画板内容 / 导出图片 | [`+export --output-type preview`](references/lark-whiteboard-export.md) |
28
+ | 导出 SVG 矢量图 | [`+export --output-type svg`](references/lark-whiteboard-export.md) |
29
+ | 获取画板的 Mermaid/PlantUML 代码 | [`+export --output-type source`](references/lark-whiteboard-export.md) |
30
+ | 检查画板是否由代码绘制 | [`+export --output-type source`](references/lark-whiteboard-export.md) |
31
+ | 仅微调节点文字/颜色 | `+export --output-type raw` → 手动改 JSON → `+update --input_format raw` |
31
32
  | 用户**已提供** Mermaid/PlantUML/SVG 代码,或明确指定用该格式 | 自己生成/使用代码 → [`+update --input_format mermaid/plantuml/svg`](references/lark-whiteboard-update.md) |
32
- | 新建/创作复杂图表(架构/流程/组织等) | → **[§ 创作 Workflow](references/lark-whiteboard-workflow.md#创作-workflow)** |
33
- | 修改/重绘已有画板 | → **[§ 修改 Workflow](references/lark-whiteboard-workflow.md#修改-workflow)** |
33
+ | 新建/创作复杂图表(架构/流程/组织等) | → **[§ 创作 Workflow](references/lark-whiteboard-workflow.md#创作-workflow)** |
34
+ | 修改/重绘已有画板 | → **[§ 修改 Workflow](references/lark-whiteboard-workflow.md#修改-workflow)** |
34
35
 
35
36
  ## Shortcuts
36
37
 
37
- | Shortcut | 说明 |
38
- |---|---|
39
- | [`+query`](references/lark-whiteboard-query.md) | 查询画板,导出为预览图片、SVG 矢量图、代码或原始节点结构。 |
38
+ | Shortcut | 说明 |
39
+ |---------------------------------------------------|---|
40
+ | [`+export`](references/lark-whiteboard-export.md) | 导出画板为预览图片、SVG 矢量图、代码或原始节点结构。 |
40
41
  | [`+update`](references/lark-whiteboard-update.md) | 更新画板,支持 PlantUML、Mermaid、SVG 或 OpenAPI 原生格式 |
41
42
 
42
43
  ---
@@ -336,7 +336,7 @@ DSL 的语法是严格白名单,不能写原生 CSS 属性(不支持 `alignS
336
336
  先出骨架图导出坐标,再基于坐标补充连线和注解:
337
337
 
338
338
  ```bash
339
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i skeleton.json -o step1.png -l coords.json
339
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i skeleton.json -o step1.png -l coords.json
340
340
  ```
341
341
 
342
342
  `coords.json` 包含每个带 id 节点的精确坐标(absX, absY, width, height)。
@@ -272,14 +272,14 @@ SVG 通过 `image/svg+xml` Blob 加载到画布,**不在 HTML DOM 中**,因
272
272
  x?: number; y?: number;
273
273
  width?: WBSizeValue; // 默认 48
274
274
  height?: WBSizeValue; // 默认 48,保持正方形
275
- name: string; // 图标名称,从 npx -y @larksuite/whiteboard-cli@^0.2.12 --icons 输出中选取
275
+ name: string; // 图标名称,从 npx -y @larksuite/whiteboard-cli@^0.2.13 --icons 输出中选取
276
276
  color?: string; // 可选颜色覆盖,hex 格式如 '#FF6600'
277
277
  }
278
278
  ```
279
279
 
280
280
  **获取可用图标**:规划好内容和布局后,运行以下命令查看所有可用图标名,从中选取:
281
281
  ```bash
282
- npx -y @larksuite/whiteboard-cli@^0.2.12 --icons
282
+ npx -y @larksuite/whiteboard-cli@^0.2.13 --icons
283
283
  ```
284
284
 
285
285
  用法:
@@ -1,23 +1,23 @@
1
- # whiteboard +query(查询画板)
1
+ # whiteboard +export(导出画板)
2
2
 
3
3
  > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
- 查询画板内容,支持导出为预览图片、SVG 矢量图、提取 PlantUML/Mermaid 代码,或获取飞书 OpenAPI 原生画板节点格式。
5
+ 导出画板内容,支持导出为预览图片、SVG 矢量图、提取 PlantUML/Mermaid 代码,或获取飞书 OpenAPI 原生画板节点格式。
6
6
 
7
7
  ## 参数
8
8
 
9
9
  | 参数 | 必填 | 说明 |
10
10
  |----------------------|----|------------------------------------------------------------------------|
11
11
  | `--whiteboard-token` | 是 | 画板 token,需要拥有画板的读权限 |
12
- | `--output_as` | 是 | 输出格式:`image`(预览图片)、`svg`(SVG 矢量图)、`code`(PlantUML/Mermaid 代码)、`raw`(OpenAPI 原生画板节点格式) |
13
- | `--output` | 否 | 输出路径。当 `--output_as image` 时必填;当 `--output_as svg/code/raw` 时可选,不填则直接输出到终端 |
12
+ | `--output-type` | 是 | 输出格式:`preview`(预览图片)、`svg`(SVG 矢量图)、`source`(PlantUML/Mermaid 代码)、`raw`(OpenAPI 原生画板节点格式) |
13
+ | `--output` | 否 | 输出路径。当 `--output-type preview` 时必填,推荐传入无后缀文件路径(如 `./preview`);当 `--output-type svg/source/raw` 时可选,不填则直接输出到终端 |
14
14
  | `--overwrite` | 否 | 覆盖已存在的文件,默认为 false |
15
15
 
16
16
  ## 输出格式
17
17
 
18
- - `image`:预览图片
18
+ - `preview`:预览图片。推荐 `--output ./preview` 这类无后缀文件路径,CLI 会按实际图片类型保存为 `./preview.png` 或 `./preview.jpg`。如果 `--output` 是目录,会保存为该目录下的 `whiteboard_<whiteboard-token>.png/.jpg`;如果显式写了后缀,需要和实际图片类型匹配。`--overwrite` 检查的是补齐后缀后的最终路径,例如返回 PNG 时 `--output ./preview` 对应覆盖 `./preview.png`。
19
19
  - `svg`:导出画板为标准 SVG 矢量图。可用于 SVG 编辑后回写画板(见 [`routes/svg-edit.md`](../routes/svg-edit.md))。注意:导出为纯视觉快照,思维导图层级、表格结构、连接器绑定等语义信息会丢失。
20
- - `code`:PlantUML/Mermaid 代码。仅限画板内有且仅有一个 PlantUML/Mermaid 图时,才可导出代码,否则会在返回值中告知不存在/有多个节点。
20
+ - `source`:PlantUML/Mermaid 代码。仅限画板内有且仅有一个 PlantUML/Mermaid 图时,才可导出代码,否则会在返回值中告知不存在/有多个节点。
21
21
  - `raw`:飞书 OpenAPI 原生画板节点格式。这一 json 格式不适合直接编辑复杂布局或内容,建议仅限于需要修改简单的文本内容/颜色等细节时使用。需要进行更复杂的设计/修改时,建议参考 [§ 渲染 & 写入画板](../SKILL.md#渲染--写入画板)。
22
22
 
23
23
  ## 示例
@@ -25,26 +25,26 @@
25
25
  ### 示例 1:导出画板为预览图片
26
26
 
27
27
  ```bash
28
- lark-cli whiteboard +query \
28
+ lark-cli whiteboard +export \
29
29
  --whiteboard-token "wbcnxxxxxxxx" \
30
- --output_as image \
31
- --output ./preview.png
30
+ --output-type preview \
31
+ --output ./preview
32
32
  ```
33
33
 
34
34
  ### 示例 2:提取画板中的代码并直接输出
35
35
 
36
36
  ```bash
37
- lark-cli whiteboard +query \
37
+ lark-cli whiteboard +export \
38
38
  --whiteboard-token "wbcnxxxxxxxx" \
39
- --output_as code
39
+ --output-type source
40
40
  ```
41
41
 
42
42
  ### 示例 3:导出画板为 SVG 矢量图
43
43
 
44
44
  ```bash
45
- lark-cli whiteboard +query \
45
+ lark-cli whiteboard +export \
46
46
  --whiteboard-token "wbcnxxxxxxxx" \
47
- --output_as svg \
47
+ --output-type svg \
48
48
  --output ./whiteboard.svg \
49
49
  --as user
50
50
  ```
@@ -52,9 +52,9 @@ lark-cli whiteboard +query \
52
52
  ### 示例 4:导出画板原始节点结构到文件
53
53
 
54
54
  ```bash
55
- lark-cli whiteboard +query \
55
+ lark-cli whiteboard +export \
56
56
  --whiteboard-token "wbcnxxxxxxxx" \
57
- --output_as raw \
57
+ --output-type raw \
58
58
  --output ./nodes.json \
59
59
  --overwrite
60
60
  ```
@@ -16,7 +16,7 @@
16
16
  | 参数 | 必填 | 说明 |
17
17
  |----------------------|----|--------------------------------------------|
18
18
  | `--whiteboard-token` | 是 | 画板 token,需要拥有画板的编辑权限 |
19
- | `--idempotent-token` | 否 | 幂等 token,确保更新操作幂等,最小长度 10 个字符 |
19
+ | `--idempotent-token` | 否 | 幂等 token,确保更新操作幂等;最少 10 个字符,建议使用时间戳 + 场景标识拼接(如 `1744800000-board-1`)。同一次逻辑更新只生成一次该 token,重试时须原样复用;切勿在每次重试时重新生成时间戳或幂等 key,否则会重复写入 |
20
20
  | `--overwrite` | 否 | 覆盖更新,在更新前删除所有现有内容,默认为 false |
21
21
  | `--source` | 是 | 输入画板内容,支持使用 `@path` 从文件读取,或 `-` 从 stdin 读取 |
22
22
  | `--input_format` | 否 | 输入格式:`raw`、`plantuml`、`mermaid`、`svg`,默认为 `raw` |
@@ -75,7 +75,7 @@ whiteboard-cli 工具的具体用法请参考 [§ 渲染 & 写入画板](../SKIL
75
75
 
76
76
  ```bash
77
77
  # 使用 whiteboard-cli 生成 OpenAPI 格式并通过管道传递
78
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <产物文件> --to openapi --format json \
78
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <产物文件> --to openapi --format json \
79
79
  | lark-cli whiteboard +update \
80
80
  --whiteboard-token <画板Token> \
81
81
  --source - --input_format raw \
@@ -89,7 +89,7 @@ whiteboard-cli 工具的具体用法请参考 [§ 渲染 & 写入画板](../SKIL
89
89
 
90
90
  ```bash
91
91
  # 生成 OpenAPI 格式到文件
92
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <DSL 文件> --to openapi --format json -o ./temp.json
92
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <DSL 文件> --to openapi --format json -o ./temp.json
93
93
 
94
94
  # 从文件读取并更新
95
95
  lark-cli whiteboard +update \
@@ -26,12 +26,12 @@
26
26
  **Step 2:判断修改策略**
27
27
 
28
28
  ```
29
- +query --output_as code
29
+ +export --output-type source
30
30
  ├─ 返回 Mermaid/PlantUML 代码
31
31
  │ → 在原代码上修改 → +update --input_format mermaid/plantuml
32
32
  ├─ 无代码(SVG/DSL 或其他方式绘制的画板)
33
33
  │ ├─ 需纯新增(思维导图、流程图、时序图、类图、饼图、甘特图)图表节点
34
- │ │ → +query --output_as image → 看图 → +query --output_as raw → 确定新节点坐标和层级 → [§ 渲染 & 写入画板]
34
+ │ │ → +export --output-type preview → 看图 → +export --output-type raw → 确定新节点坐标和层级 → [§ 渲染 & 写入画板]
35
35
  │ └─ 其他改动(几何变动/增删元素/结构调整/混合编辑等)
36
36
  │ → [`../routes/svg-edit.md`](../routes/svg-edit.md)(视觉高保真还原,大部分场景适用)
37
37
  └─ 用户有明确要求 → 以用户要求优先
@@ -47,11 +47,14 @@
47
47
 
48
48
  **然后按图表类型 × 身份选路径**,读对应文件按其完整 workflow 执行(含读 scene 指南、生成内容、渲染审查、交付):
49
49
 
50
+ 按上到下匹配, 命中即停:
51
+
50
52
  | 图表类型 | 身份 | 路径 |
51
53
  |--------------------|-------------------------------------|------------------------------------------------|
52
54
  | 思维导图、时序图、类图、饼图、甘特图 | 任何身份 | [`../routes/mermaid.md`](../routes/mermaid.md) |
53
- | 其他图表 | `Claude` / `Gemini` / `GPT` / `GLM` | [`../routes/svg.md`](../routes/svg.md) |
54
- | 其他图表 | `Doubao` / `Seed` / `Other` | [`../routes/dsl.md`](../routes/dsl.md) |
55
+ | 鱼骨图、金字塔图、流程图 | `Doubao` / `Seed` | [`../routes/dsl.md`](../routes/dsl.md) |
56
+ | 其他图表 | `Claude` / `Gemini` / `GPT` / `GLM` / `Doubao` / `Seed` | [`../routes/svg.md`](../routes/svg.md) |
57
+ | 其他图表 | `Other` | [`../routes/dsl.md`](../routes/dsl.md) |
55
58
 
56
59
  > **⚠️ SVG 路径失败回退**:走 `routes/svg.md` 时,碰到以下情况之一 → **丢弃当前 SVG,改读 `routes/dsl.md` 从零重画,不要逐行修补**:
57
60
  > - 渲染命令直接报错(语法级崩溃,不是 `--check` 的 warn/error)
@@ -76,19 +79,9 @@ diagram.png ← 渲染结果
76
79
 
77
80
  ### 写入画板
78
81
 
79
- > 关于 --overwrite
80
- > 画板更新命令中,若不携带 --overwrite flag,则是增量更新画板内容,若画板内已有内容的话,新增内容可能会和已有内容重叠,导致问题。
81
- > 因此,若需要整体更新画板内容,需携带 --overwrite flag 覆盖式更新。
82
-
83
- ```bash
84
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <产物文件> --to openapi --format json \
85
- | lark-cli whiteboard +update \
86
- --whiteboard-token <Token> \
87
- --source - --input_format raw \
88
- --idempotent-token <10+字符唯一串> \
89
- --as user \
90
- --overwrite
91
- ```
82
+ 写入画板时按最终产物类型选择 `+update --input_format`:
83
+
84
+ - Mermaid / PlantUML / SVG 产物直接用对应的 `mermaid` / `plantuml` / `svg` 写入。
85
+ - 只有 DSL 产物或已明确需要 OpenAPI 原生节点格式时,才先用 `npx -y @larksuite/whiteboard-cli@^0.2.13 --to openapi --format json` 转换,再用 `raw` 写入。
92
86
 
93
- > `--idempotent-token` 最少 10 字符,建议用时间戳+标识拼接(如 `1744800000-board-1`),避免重试导致重复写入。
94
- > 如需应用身份上传,将 `--as user` 替换为 `--as bot`。
87
+ 具体命令示例、`--overwrite`、`--idempotent-token` 和 `--as user/bot` 的使用方式,统一参考 [`whiteboard +update`](./lark-whiteboard-update.md)。
@@ -13,7 +13,7 @@ Step 1: 路由 & 读取知识
13
13
  Step 2: 生成完整 DSL(含颜色)
14
14
  - 按 content.md 规划信息量和分组
15
15
  - 按 layout.md 选择布局模式和间距
16
- - 推荐使用图标让图表更直观,运行 `npx -y @larksuite/whiteboard-cli@^0.2.12 --icons` 查看可用图标
16
+ - 推荐使用图标让图表更直观,运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 --icons` 查看可用图标
17
17
  - 按 style.md 上色(用户没指定时用默认经典色板)
18
18
  - 按 schema.md 语法输出完整 JSON
19
19
  - 连线参考 connectors.md,排版参考 typography.md
@@ -25,12 +25,12 @@ Step 2: 生成完整 DSL(含颜色)
25
25
 
26
26
  Step 3: 渲染 & 审查 → 交付
27
27
  - 渲染前自查(见下方检查清单)
28
- - 渲染 PNG(仅用于预览验证,不是最终产物):npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.json -o diagram.png
28
+ - 渲染 PNG(仅用于预览验证,不是最终产物):npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json -o diagram.png
29
29
  - 检查:信息完整?布局合理?配色协调?文字无截断?连线无交叉?
30
30
  - 有问题 → 按症状表修复 → 重新渲染(最多 2 轮)
31
31
  - 2 轮后仍有严重问题 → 考虑走 Mermaid 路径兜底
32
32
  - 写入画板:用 whiteboard-cli 将 diagram.json 转换为 OpenAPI 格式并 pipe 给 +update:
33
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.json --to openapi --format json \
33
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json --to openapi --format json \
34
34
  | lark-cli whiteboard +update --whiteboard-token <board_token> \
35
35
  --source - --input_format raw --idempotent-token <时间戳+标识> --as user
36
36
  → 完整 dry-run / 确认流程见 SKILL.md [§ 写入画板](../SKILL.md#写入画板)
@@ -16,10 +16,10 @@ Step 3: 渲染验证 & 写入画板 & 交付
16
16
  1. 创建产物目录 ./diagrams/YYYY-MM-DDTHHMMSS/
17
17
  2. 保存为 diagram.mmd
18
18
  3. 渲染(仅用于预览验证,PNG 不是最终产物):
19
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.mmd -o diagram.png
19
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.mmd -o diagram.png
20
20
  4. 审查 PNG,有问题修改后重新渲染(最多 2 轮)
21
21
  5. 写入画板:用 whiteboard-cli 将 diagram.mmd 转换为 OpenAPI 格式并 pipe 给 +update:
22
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i diagram.mmd --to openapi --format json \
22
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.mmd --to openapi --format json \
23
23
  | lark-cli whiteboard +update --whiteboard-token <board_token> \
24
24
  --source - --input_format raw --idempotent-token <时间戳+标识> --as user
25
25
  → 完整 dry-run / 确认流程见 SKILL.md [§ 写入画板](../SKILL.md#写入画板)
@@ -25,9 +25,9 @@ SVG 导出是**纯视觉快照**,再次导入后画板语义(思维导图层
25
25
  ### 1. 导出当前画板 SVG
26
26
 
27
27
  ```bash
28
- lark-cli whiteboard +query \
28
+ lark-cli whiteboard +export \
29
29
  --whiteboard-token <TOKEN> \
30
- --output_as svg \
30
+ --output-type svg \
31
31
  --output <dir>/original.svg \
32
32
  --as user
33
33
  ```
@@ -53,10 +53,10 @@ lark-cli whiteboard +query \
53
53
 
54
54
  ```bash
55
55
  # 渲染 PNG 预览
56
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/edited.svg -o <dir>/edited.png -f svg
56
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/edited.svg -o <dir>/edited.png -f svg
57
57
 
58
58
  # 几何检查(text-overflow / node-overlap)
59
- npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/edited.svg -f svg --check
59
+ npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/edited.svg -f svg --check
60
60
  ```
61
61
 
62
62
  结合 PNG 视觉效果和 `--check` 报告进行调整,有问题则修改 SVG 后重新渲染(最多 2 轮)。
@@ -4,6 +4,7 @@
4
4
  最终交付是**画板跨越重排渲染的节点**(你写 SVG → 画板解析)
5
5
 
6
6
  **核心心智纠正 (重要)**:
7
+
7
8
  - 大多数 AI 如果只考虑“绝对不报错/完美映射”, 最终给出的都是全篇纯白底色加单层 `<rect>` 的方正卡片网格, 极其死板单调, **这将被视为不及格!**
8
9
  - **SVG 给你了完全的设计自由**, 请大胆使用你脑内的图标路径 (`<path>`), 连接指引 (`流畅的 <path>`), 各种环境氛围点缀, 大胆一点, 充分信任你的品味, 发挥出你的顶级艺术创造力!
9
10
 
@@ -20,6 +21,7 @@
20
21
  [!IMPORTANT] 布局, 配色, 信息密度, 装饰物——**全部由你判断**, 打破单调的 `<rect>` 牢笼, 严禁通篇用矩形和文字应付用户
21
22
 
22
23
  操作边界约束:
24
+
23
25
  - **语言跟随用户**:图表文字的语言与用户 prompt 保持一致, 技术术语用行业里通用的写法, 不机械翻译
24
26
  - 文字用 `<text>`(不是 `<path>`), 容器宽度留够——画板按 CJK ≈ 1em / Latin ≈ 0.6em 重排
25
27
  - 连线使用正交折线替代斜直线(`<polyline>` 带水平/垂直折点)视觉效果更好
@@ -30,16 +32,16 @@
30
32
  ```
31
33
  建目录 ./diagrams/YYYY-MM-DDTHHMMSS/ (例:./diagrams/2026-04-15T143022/)
32
34
  写文件 <dir>/diagram.svg
33
- 渲染 npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/diagram.svg -o <dir>/diagram.png -f svg
34
- 检查 npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/diagram.svg -f svg --check
35
- 导出 npx -y @larksuite/whiteboard-cli@^0.2.12 -i <dir>/diagram.svg -f svg --to openapi --format json > <dir>/diagram.json
35
+ 渲染 npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -o <dir>/diagram.png -f svg
36
+ 检查 npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -f svg --check
37
+ 导出 npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -f svg --to openapi --format json > <dir>/diagram.json
36
38
  ```
37
39
 
38
- `npx -y @larksuite/whiteboard-cli@^0.2.12 --check` 检测 `text-overflow` 和 `node-overlap`, 并结合视觉效果(查看 PNG)进行调整
40
+ `npx -y @larksuite/whiteboard-cli@^0.2.13 --check` 检测 `text-overflow` 和 `node-overlap`, 并结合视觉效果(查看 PNG)进行调整
39
41
 
40
42
  ## 画板怎么处理 SVG
41
43
 
42
- 画板的 svg-parser 把可识别元素转成可编辑节点, 其余降级为内嵌图片(渲染没问题, 虽然不可编辑, 但是可以正常显示);但 `<radialGradient>` / `<filter>` / `<clipPath>` 等装饰特性画板完全不支持,会导致渲染问题(见下方⚠️)
44
+ 画板的 svg-parser 把可识别元素转成可编辑节点, 其余降级为内嵌图片(渲染没问题, 虽然不可编辑, 但是可以正常显示);但非阴影用途的 `<filter>` / `<clipPath>` 等装饰特性画板不支持(见下方⚠️)
43
45
  **不需要所有元素都可编辑, 但必须避免使用不支持的装饰特性, 且要兼顾可编辑和美观漂亮**
44
46
 
45
47
  **可识别的元素**
@@ -49,6 +51,9 @@
49
51
  - 文本:`<text>` / `<tspan>` 画板硬编码 Noto Sans SC **文字必须用 `<text>`**
50
52
  - 分组:`<g>` / `<a>` / `<use>` 引用 `<symbol>`
51
53
  - 变换:`translate` / `rotate` / `scale` 正常;`skewX` / `skewY` / `matrix(...)` 降级
54
+ - 阴影:`<filter>` 里放 `<feDropShadow>` 或标准 drop/inner primitive 链 (`<feGaussianBlur in="SourceAlpha">` + `<feOffset>` + `<feFlood>` + `<feComposite>` + `<feMerge>`), 会被识别成节点阴影, drop 至多 1 个, inner 至多 1 个; 其余 filter 效果不识别
55
+ - 渐变:`<linearGradient>` / `<radialGradient>` 在 `<defs>` 中定义, 通过 `fill="url(#id)"` 引用 (载体限 `<rect>` / `<circle>` / `<ellipse>` / `<polygon>` / `<path>`), 需要至少 2 个 `<stop>`, `gradientUnits` 只支持默认的 `objectBoundingBox` (不写即可);
52
56
 
53
57
  **⚠️ [!IMPORTANT] 不支持的装饰特性**
54
- - `<radialGradient>` / `<filter>` / `<pattern>` / `<clipPath>` / `<mask>` → 画板都不支持,**请避免使用,否则会导致画板渲染问题**
58
+ - `<pattern>` / `<clipPath>` / `<mask>` / 非阴影用途的 `<filter>` (blur / hue-rotate / 复合合成 / `flood-color=url(...)` / 多个 `<feDropShadow>` 等) → 画板不支持,**请避免使用,否则会导致画板渲染问题**
59
+ - 渐变边界:`gradientUnits="userSpaceOnUse"` / `spreadMethod="reflect|repeat"` / stops 少于 2 个 / 复杂 `gradientTransform` 会变成不可编辑图片, 视觉正确但失去可编辑性, 若无必要请沿用默认 `objectBoundingBox`
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Layout 选型
10
10
 
11
- - **脚本生成坐标**(推荐):用 .cjs 脚本计算柱体位置和高度,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
11
+ - **脚本生成坐标**(推荐):用 .cjs 脚本计算柱体位置和高度,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
12
12
  - **绝对定位手写**:简单柱状图(≤ 5 个柱)可手写坐标
13
13
 
14
14
  ## Layout 规则
@@ -10,7 +10,7 @@
10
10
 
11
11
  ## Layout 选型
12
12
 
13
- - **脚本生成坐标**(必须):用 .cjs 脚本通过三角函数计算鱼骨坐标,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
13
+ - **脚本生成坐标**(必须):用 .cjs 脚本通过三角函数计算鱼骨坐标,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
14
14
 
15
15
  ## Layout 规则
16
16
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## Layout 选型
11
11
 
12
- - **脚本生成坐标**(必须):用 .cjs 脚本极坐标计算阶段标签位置、SVG 圆环切割,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
12
+ - **脚本生成坐标**(必须):用 .cjs 脚本极坐标计算阶段标签位置、SVG 圆环切割,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
13
13
 
14
14
  ## Layout 规则
15
15
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Layout 选型
10
10
 
11
- - **脚本生成坐标**(推荐):用 .cjs 脚本计算数据点坐标和折线路径,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
11
+ - **脚本生成坐标**(推荐):用 .cjs 脚本计算数据点坐标和折线路径,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
12
12
 
13
13
  ## Layout 规则
14
14
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Layout 选型
10
10
 
11
- - **脚本生成坐标**(推荐):Treemap 需要精确的面积比例计算,用 .cjs 脚本递归切分矩形,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.12` 渲染
11
+ - **脚本生成坐标**(推荐):Treemap 需要精确的面积比例计算,用 .cjs 脚本递归切分矩形,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.13` 渲染
12
12
  - 不适合手动心算坐标
13
13
 
14
14
  ## Layout 规则
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lark-wiki
3
- version: 1.0.1
3
+ version: 1.0.3
4
4
  description: "飞书知识库:管理知识空间、空间成员和文档节点。创建和查询知识空间、查看和管理空间成员、管理节点层级结构、在知识库中组织文档和快捷方式。当用户需要在知识库中查找或创建文档、浏览知识空间结构、查看或管理空间成员、移动或复制节点时使用。当用户给出 doubao.com 的 /wiki/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。不负责:上传文件到知识库节点下(走 lark-drive)、编辑文档/表格/Base 内容(走 lark-doc / lark-sheets / lark-base)。"
5
5
  metadata:
6
6
  requires:
@@ -24,7 +24,9 @@ metadata:
24
24
 
25
25
  ## 快速决策
26
26
 
27
- - 用户要**整理 / 盘点 / 归类 / 重构知识库、个人文档库、文档库目录或 Wiki 节点结构**,或要生成整理方案、目标目录树、移动计划时,不要只使用 Wiki 节点 API。必须先阅读 [`../lark-drive/references/lark-drive-workflow-knowledge-organize.md`](../lark-drive/references/lark-drive-workflow-knowledge-organize.md),该 workflow 负责 Drive / Wiki / 个人文档库的统一入口解析、资源盘点、分类计划、写前确认和结果验证。
27
+ - 用户要**按特定主题 / 关键词 / 内容线索查找资料并收集到知识库节点或新建知识库节点下**,必须先阅读 [`../lark-drive/references/lark-drive-workflow.md`](../lark-drive/references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`topic_move_collector`](../lark-drive/references/lark-drive-workflow-topic-move-collector.md) workflow。该 workflow 使用 Drive 全量搜索召回,再按 Wiki 目标解析、确认和移动;不要只用 Wiki 节点列表做局部遍历。
28
+ - 用户要**整理 / 盘点 / 归类 / 重构知识库、个人文档库、文档库目录或 Wiki 节点结构**,或要生成整理方案、目标目录树、移动计划时,不要只使用 Wiki 节点 API。必须先阅读 [`../lark-drive/references/lark-drive-workflow.md`](../lark-drive/references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`knowledge_organize`](../lark-drive/references/lark-drive-workflow-knowledge-organize.md) workflow;该 workflow 负责 Drive / Wiki / 个人文档库的统一入口解析、资源盘点、分类计划、写前确认和结果验证。
29
+ - 用户要把**已有 Wiki 节点移出知识库,放到 Drive 文件夹或“我的空间”根目录**:使用 `wiki +move-to-drive`,不要使用 `wiki +move` 或 `drive +move`。这是会改变节点归属和权限继承的写操作,执行前确认源节点与目标位置。
28
30
  - 用户给的是知识库 URL(`.../wiki/<token>`),且后续要查成员/加成员/删成员:先调用 `lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}'` 获取 `space_id`,后续成员接口统一使用 `space_id`。
29
31
  - 用户要**删除**知识空间(`wiki +delete-space`)但只给了名称或 URL:**不能**把名称 / URL 原样传给 `--space-id`,必须先解析出真实 `space_id`。解析方式:
30
32
  - URL(`.../wiki/<token>`):`lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}' --format json`,读 `data.node.space_id`。
@@ -34,6 +36,8 @@ metadata:
34
36
  - 用户明确选定后再执行 `lark-cli wiki +delete-space --space-id <ID> --yes`(高风险写操作,必须显式 `--yes`)。
35
37
  - 反例:不要把 wiki URL / 名称直接当 `--space-id`(如 `--space-id "https://.../wiki/<wiki_token>"`);务必先用 `wiki spaces get_node` 解析出 `data.node.space_id` 再传。
36
38
  - 用户要在知识库中创建新节点,优先使用 `lark-cli wiki +node-create`。
39
+ - 用户要列出 Wiki 节点:先用 `wiki +space-list --as user` 拿数字 `space_id`,再用 `wiki +node-list --space-id <space_id>`。不要把 wiki URL、node token、doc token、名称直接当 `--space-id`。钻子节点时 `--parent-node-token` 必须是 wiki node token;如果用户给的是 docx/sheet/base URL,先用 `wiki +node-get --node-token <url>` 解析出 `node_token`。
40
+ - `wiki +node-list` 命中 `invalid_parameters`、`not_found`、`permission_denied` 时,不要重复调用同一参数;按 hint 修 `space_id` / `parent_node_token` / 权限。只有 `rate_limit` 才做退避重试。
37
41
  - 用户说“给知识库添加成员/管理员”:先把目标解析成“用户 / 群 / 部门 / 应用”四类之一,再决定 `--member-type`,不要先调 `wiki +member-add` 再根据报错反推类型。
38
42
  - 用户说“部门 + bot”:这是已知不支持路径。不要继续尝试 `wiki +member-add --as bot`;直接提示必须改成 `--as user`,或明确告知当前要求无法完成。
39
43
  - 用户说“用户 / 群 / 应用 + 添加成员”:先解析对应 ID,再执行 `wiki +member-add`。
@@ -47,6 +51,7 @@ Shortcut 是对常用操作的高级封装(`lark-cli wiki +<verb> [flags]`)
47
51
  | Shortcut | 说明 |
48
52
  |----------|------|
49
53
  | [`+move`](references/lark-wiki-move.md) | Move a wiki node, or move a Drive document into Wiki |
54
+ | [`+move-to-drive`](references/lark-wiki-move-to-drive.md) | Move a wiki node to a Drive folder and poll the async task |
50
55
  | [`+node-create`](references/lark-wiki-node-create.md) | Create a wiki node with automatic space resolution |
51
56
  | [`+delete-space`](references/lark-wiki-delete-space.md) | Delete a wiki space, polling the async delete task when needed |
52
57
  | [`+space-list`](references/lark-wiki-space-list.md) | List all wiki spaces accessible to the caller |
@@ -74,7 +79,7 @@ Shortcut 是对常用操作的高级封装(`lark-cli wiki +<verb> [flags]`)
74
79
  - `我的文档库` / `My Document Library` / `我的知识库` / `个人知识库` / `my_library` 都应视为 **Wiki personal library**,不是 Drive 根目录
75
80
  - 处理这类目标时,先解析 `my_library` 对应的真实 `space_id`,再执行 `wiki +move`、`wiki +node-create` 或其他 Wiki 写操作
76
81
  - 不要因为缺少显式 `space_id` 就退化成 `drive +move`
77
- - 如果用户明确说的是 Drive 文件夹、云空间(云盘/云存储)根目录、`我的空间`,才进入 Drive 域处理
82
+ - 如果用户明确说的是 Drive 文件夹、云空间(云盘/云存储)根目录、`我的空间`,再按源对象分流:源对象是 Wiki 节点时用 `wiki +move-to-drive`,源对象已在 Drive 时用 `drive +move`
78
83
 
79
84
  ## API Resources
80
85
 
@@ -0,0 +1,122 @@
1
+ # wiki +move-to-drive
2
+
3
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+
5
+ 将已有 Wiki 节点移出知识库,并放到指定 Drive 文件夹;省略目标文件夹时放到当前调用身份的“我的空间”根目录。该操作始终创建异步任务,shortcut 会自动有限轮询。
6
+
7
+ ## 何时使用
8
+
9
+ | 源对象 | 目标位置 | 命令 |
10
+ |--------|----------|------|
11
+ | Wiki 节点 | Wiki 空间或 Wiki 父节点 | `wiki +move` |
12
+ | Drive 文档 | Wiki 空间或 Wiki 父节点 | `wiki +move` |
13
+ | Wiki 节点 | Drive 文件夹或“我的空间”根目录 | `wiki +move-to-drive` |
14
+ | Drive 文件 / 文件夹 | Drive 文件夹或根目录 | `drive +move` |
15
+
16
+ `--node-token` 必须是 Wiki 节点 token,不是底层文档的 `obj_token`。无法判断时,先执行 `wiki +node-get --node-token <URL_OR_TOKEN>`。
17
+
18
+ ## 命令
19
+
20
+ ```bash
21
+ # 移到指定 Drive 文件夹
22
+ lark-cli wiki +move-to-drive \
23
+ --node-token <WIKI_NODE_TOKEN> \
24
+ --folder-token <TARGET_FOLDER_TOKEN> \
25
+ --as user
26
+
27
+ # 移到当前调用身份的“我的空间”根目录
28
+ lark-cli wiki +move-to-drive \
29
+ --node-token <WIKI_NODE_TOKEN> \
30
+ --as user
31
+
32
+ # 预览提交任务和轮询任务两步请求
33
+ lark-cli wiki +move-to-drive \
34
+ --node-token <WIKI_NODE_TOKEN> \
35
+ --folder-token <TARGET_FOLDER_TOKEN> \
36
+ --dry-run
37
+ ```
38
+
39
+ ## 参数
40
+
41
+ | 参数 | 必填 | 说明 |
42
+ |------|------|------|
43
+ | `--node-token` | 是 | 要移出知识库的 Wiki 节点 token |
44
+ | `--folder-token` | 否 | 目标 Drive 文件夹 token;省略时移动到当前调用身份的“我的空间”根目录 |
45
+
46
+ ## 异步协议与续跑
47
+
48
+ shortcut 会按以下协议执行:
49
+
50
+ 1. `POST /open-apis/wiki/v2/nodes/{node_token}/move_wiki_to_docs`,取得完整、不可拆分的 `task_id`。
51
+ 2. `GET /open-apis/wiki/v2/tasks/{task_id}?task_type=move_wiki_to_docs`。
52
+ 3. 读取 `data.task.move_wiki_to_docs_result`:`status=1` 表示处理中,`status=0` 表示成功,`status=-1` 表示失败。
53
+
54
+ 任务查询必须使用 `task_type=move_wiki_to_docs`、`move_wiki_to_docs_result` 和数值状态;不要回退到其他 task type、result 字段或字符串状态。
55
+
56
+ - 最多轮询 30 次,每次间隔 2 秒。
57
+ - 轮询窗口内成功时返回 `ready=true`,并尽可能返回 `obj_token`、`obj_type` 和 `url`。
58
+ - 仍在处理中时返回 `ready=false`、`timed_out=true`、完整 `task_id` 和 `next_command`;超时不代表任务失败。
59
+ - 任务进入失败态时返回结构化错误。
60
+ - `task_id` 是服务端签名的 opaque ID,可能包含多个连字符;必须原样保存,不能自行切分。
61
+ - 续跑必须保持和初始移动相同的 `--profile` 与 `--as user|bot` 身份,否则可能收到权限错误;shortcut 返回的 `next_command` 会保留两者。
62
+
63
+ 手动续跑命令:
64
+
65
+ ```bash
66
+ lark-cli drive +task_result \
67
+ --scenario wiki_move_to_drive \
68
+ --task-id <COMPLETE_TASK_ID> \
69
+ --as user
70
+ ```
71
+
72
+ ## 典型返回
73
+
74
+ 成功:
75
+
76
+ ```json
77
+ {
78
+ "node_token": "wikcnXXX",
79
+ "folder_token": "fldcnXXX",
80
+ "task_id": "<OPAQUE_TASK_ID>",
81
+ "ready": true,
82
+ "failed": false,
83
+ "status": 0,
84
+ "status_msg": "success",
85
+ "obj_token": "doxcnXXX",
86
+ "obj_type": "docx",
87
+ "url": "https://example.feishu.cn/docx/doxcnXXX"
88
+ }
89
+ ```
90
+
91
+ 轮询窗口超时:
92
+
93
+ ```json
94
+ {
95
+ "node_token": "wikcnXXX",
96
+ "folder_token": "",
97
+ "task_id": "<OPAQUE_TASK_ID>",
98
+ "ready": false,
99
+ "failed": false,
100
+ "status": 1,
101
+ "status_msg": "processing",
102
+ "timed_out": true,
103
+ "next_command": "lark-cli drive +task_result --scenario wiki_move_to_drive --task-id <OPAQUE_TASK_ID> --as user"
104
+ }
105
+ ```
106
+
107
+ ## 权限与影响
108
+
109
+ - CLI 写操作预检查使用 `space:document:move`,任务轮询使用 `wiki:space:read`。
110
+ - 调用方必须能移动源 Wiki 节点并写入目标 Drive 文件夹。
111
+ - 成功后源节点会从 Wiki 树中消失,目标文档改用 Drive 目标位置的权限模型;原 Wiki 层级继承权限不再保留。
112
+ - 省略 `--folder-token` 时,“根目录”属于当前 `--as` 身份,user 与 bot 的可见资源范围可能不同。
113
+
114
+ > [!CAUTION]
115
+ > 这是会改变文档归属和权限继承的**写入操作**。执行前必须确认源 Wiki 节点、目标 Drive 位置和调用身份。
116
+
117
+ ## 参考
118
+
119
+ - [lark-wiki](../SKILL.md) -- 知识库全部命令
120
+ - [wiki +move](lark-wiki-move.md) -- Wiki 内移动与 Drive 文档迁入 Wiki
121
+ - [drive +task_result](../../lark-drive/references/lark-drive-task-result.md) -- 超时后的任务续跑
122
+ - [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
@@ -9,18 +9,19 @@
9
9
 
10
10
  当 `docs_to_wiki` 返回 `task_id` 时,shortcut 会先轮询一小段时间;如果轮询窗口内仍未完成,会返回 `next_command`,让调用方继续执行 `lark-cli drive +task_result --scenario wiki_move --task-id <TASK_ID>`。
11
11
 
12
- ## 与 `drive +move` 的区别
12
+ ## 与 `wiki +move-to-drive` / `drive +move` 的区别
13
13
 
14
14
  - `wiki +move` 的目标是 **知识空间或 Wiki 父节点**,使用 `--target-space-id` / `--target-parent-token`
15
+ - `wiki +move-to-drive` 把 **已有 Wiki 节点移出知识库,放入 Drive 文件夹或“我的空间”根目录**,使用 `--folder-token`
15
16
  - `drive +move` 的目标是 **Drive 文件夹**,使用 `--folder-token`
16
- - 如果源对象已经是 Wiki 节点,必须使用 `wiki +move`,而不是 `drive +move`
17
+ - 如果源对象已经是 Wiki 节点:目标仍是 Wiki 时使用 `wiki +move`;目标是 Drive 文件夹或根目录时使用 `wiki +move-to-drive`
17
18
  - 如果源对象还是 Drive 文档,但用户要“迁入知识库”“挂到某个 Wiki 页面下”,也应使用 `wiki +move`
18
19
  - 如果用户只是想整理云空间(云盘/云存储)文件夹,把文件/文件夹挪到另一个 Drive 文件夹,应使用 `drive +move`
19
20
 
20
21
  ## 口语目标识别
21
22
 
22
23
  - 当用户说“移动到某个知识库”“挂到某个页面下”“迁入 Wiki”时,按 **Wiki 目标** 处理,优先使用 `wiki +move`
23
- - 当用户说“移动到某个文件夹”“移动到云空间(云盘/云存储)根目录”时,按 **Drive 文件夹目标** 处理,优先使用 `drive +move`
24
+ - 当用户说“移动到某个文件夹”“移动到云空间(云盘/云存储)根目录”时,按 **Drive 文件夹目标** 处理;源对象是 Wiki 节点时使用 `wiki +move-to-drive`,源对象已在 Drive 时使用 `drive +move`
24
25
  - 当用户说“移动到我的文档库”“移动到我的知识库”“放到个人知识库”时,应先按 **Wiki 个人知识库目标** 理解,而不是直接退化成 `drive +move`
25
26
  - 遇到“我的文档库”这类表述时,可以把它理解成:先用 `my_library` 去查询用户个人知识库,再拿到真实 `space_id`
26
27
  - 推荐做法是先执行 `lark-cli wiki spaces get --params '{"space_id":"my_library"}'`,取回真实知识库 `space_id`,再把这个 `space_id` 用到 `wiki +move`
@@ -180,4 +181,5 @@ CLI 会在执行前做本地 scope 预检查;当前 shortcut 声明的权限
180
181
 
181
182
  - [lark-wiki](../SKILL.md) -- 知识库全部命令
182
183
  - [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
184
+ - [wiki +move-to-drive](lark-wiki-move-to-drive.md) -- 将 Wiki 节点移出知识库并放入 Drive
183
185
  - [drive +task_result](../../lark-drive/references/lark-drive-task-result.md) -- docs-to-wiki 异步任务的续跑查询命令
@@ -19,7 +19,7 @@ lark-cli wiki +node-get \
19
19
  |------|------|----------|---------|-------------|
20
20
  | `--node-token` | string | **Yes** | — | `node_token`, cloud-doc `obj_token`, or a Lark URL embedding one (e.g. `https://feishu.cn/wiki/<token>` or `https://feishu.cn/docx/<token>`). Matches the `--node-token` naming used by sibling `+node-delete` / `+node-copy` / `+move`. |
21
21
  | `--token` | string | — (deprecated) | — | Deprecated original name; still accepted for backward compatibility but emits a `Flag --token has been deprecated, use --node-token instead` warning on stderr. New scripts should use `--node-token`. |
22
- | `--obj-type` | enum | No | — | Needed when `--node-token` is a raw `obj_token`; auto-inferred from the URL path. Not allowed when the token looks like a `node_token` (`wik...`) |
22
+ | `--obj-type` | enum | No | — | Needed when `--node-token` is a raw `obj_token`; auto-inferred from typed Lark URLs. If omitted for a raw token, the shortcut treats it as a wiki `node_token`. |
23
23
  | `--space-id` | string | No | — | Optional cross-check: fail if the resolved node does not live in this space |
24
24
  | `--format` | enum | No | `json` | `json` / `pretty` / `table` / `csv` / `ndjson` |
25
25
  | `--as` | enum | No | `auto` | Identity `user`/`bot`; wiki is user-centric → pass `--as user` |