@amaster.ai/pi-lark 0.1.4 → 0.1.6
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/package.json +3 -3
- package/skills/lark-approval/SKILL.md +99 -0
- package/skills/lark-approval/references/lark-approval-approvals-get.md +128 -0
- package/skills/lark-approval/references/lark-approval-approvals-search.md +103 -0
- package/skills/lark-approval/references/lark-approval-initiate.md +221 -0
- package/skills/lark-approval/references/lark-approval-instance-form-control-parameters.md +606 -0
- package/skills/lark-approval/references/lark-approval-instance-value-sourcing.md +108 -0
- package/skills/lark-approval/references/lark-approval-instances-cancel.md +78 -0
- package/skills/lark-approval/references/lark-approval-instances-cc.md +105 -0
- package/skills/lark-approval/references/lark-approval-instances-get.md +145 -0
- package/skills/lark-approval/references/lark-approval-instances-initiated.md +128 -0
- package/skills/lark-approval/references/lark-approval-tasks-add-sign.md +120 -0
- package/skills/lark-approval/references/lark-approval-tasks-approve.md +81 -0
- package/skills/lark-approval/references/lark-approval-tasks-query.md +85 -0
- package/skills/lark-approval/references/lark-approval-tasks-reject.md +73 -0
- package/skills/lark-approval/references/lark-approval-tasks-remind.md +82 -0
- package/skills/lark-approval/references/lark-approval-tasks-rollback.md +89 -0
- package/skills/lark-approval/references/lark-approval-tasks-transfer.md +91 -0
- package/skills/lark-apps/SKILL.md +110 -0
- package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
- package/skills/lark-apps/references/lark-apps-automation.md +164 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
- package/skills/lark-apps/references/lark-apps-create.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +228 -0
- package/skills/lark-apps/references/lark-apps-db.md +162 -0
- package/skills/lark-apps/references/lark-apps-env-pull.md +37 -0
- package/skills/lark-apps/references/lark-apps-env.md +48 -0
- package/skills/lark-apps/references/lark-apps-file.md +96 -0
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +62 -0
- package/skills/lark-apps/references/lark-apps-init.md +36 -0
- package/skills/lark-apps/references/lark-apps-list.md +37 -0
- package/skills/lark-apps/references/lark-apps-local-dev.md +78 -0
- package/skills/lark-apps/references/lark-apps-observability.md +48 -0
- package/skills/lark-apps/references/lark-apps-openapi-key.md +79 -0
- package/skills/lark-apps/references/lark-apps-plugin-install.md +36 -0
- package/skills/lark-apps/references/lark-apps-plugin-list.md +23 -0
- package/skills/lark-apps/references/lark-apps-plugin-uninstall.md +25 -0
- package/skills/lark-apps/references/lark-apps-release-create.md +32 -0
- package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
- package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
- package/skills/lark-apps/references/lark-apps-update.md +30 -0
- package/skills/lark-attendance/SKILL.md +57 -0
- package/skills/lark-base/SKILL.md +161 -0
- package/skills/lark-base/references/dashboard-block-data-config.md +376 -0
- package/skills/lark-base/references/formula-field-guide.md +737 -0
- package/skills/lark-base/references/lark-base-cell-value.md +158 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
- package/skills/lark-base/references/lark-base-dashboard.md +247 -0
- package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
- package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
- package/skills/lark-base/references/lark-base-data-query.md +454 -0
- package/skills/lark-base/references/lark-base-field-create.md +105 -0
- package/skills/lark-base/references/lark-base-field-json.md +527 -0
- package/skills/lark-base/references/lark-base-field-update.md +173 -0
- package/skills/lark-base/references/lark-base-form-detail.md +71 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/skills/lark-base/references/lark-base-form-submit.md +170 -0
- package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
- package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
- package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
- package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
- package/skills/lark-base/references/lark-base-role-guide.md +65 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +191 -0
- package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
- package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
- package/skills/lark-base/references/lookup-field-guide.md +512 -0
- package/skills/lark-base/references/role-config.md +549 -0
- package/skills/lark-calendar/SKILL.md +198 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +83 -0
- package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
- package/skills/lark-calendar/references/lark-calendar-recurring.md +90 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +109 -0
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +38 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +122 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +121 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +100 -0
- package/skills/lark-contact/SKILL.md +55 -0
- package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
- package/skills/lark-contact/references/lark-contact-search-user.md +123 -0
- package/skills/lark-doc/SKILL.md +84 -0
- package/skills/lark-doc/references/lark-doc-create.md +80 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +140 -0
- package/skills/lark-doc/references/lark-doc-history.md +107 -0
- package/skills/lark-doc/references/lark-doc-md.md +76 -0
- package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
- package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
- package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
- package/skills/lark-doc/references/lark-doc-mindnote.md +128 -0
- package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
- package/skills/lark-doc/references/lark-doc-update.md +260 -0
- package/skills/lark-doc/references/lark-doc-whiteboard.md +158 -0
- package/skills/lark-doc/references/lark-doc-word-stat.md +93 -0
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
- package/skills/lark-doc/references/lark-doc-xml.md +182 -0
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +47 -0
- package/skills/lark-doc/references/style/lark-doc-style.md +68 -0
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +48 -0
- package/skills/lark-doc/scripts/doc_word_stat.py +1243 -0
- package/skills/lark-drive/SKILL.md +232 -0
- package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +205 -0
- package/skills/lark-drive/references/lark-drive-comments-guide.md +80 -0
- package/skills/lark-drive/references/lark-drive-cover.md +79 -0
- package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
- package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
- package/skills/lark-drive/references/lark-drive-delete.md +103 -0
- package/skills/lark-drive/references/lark-drive-download.md +31 -0
- package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
- package/skills/lark-drive/references/lark-drive-export.md +174 -0
- package/skills/lark-drive/references/lark-drive-files-list.md +183 -0
- package/skills/lark-drive/references/lark-drive-import.md +178 -0
- package/skills/lark-drive/references/lark-drive-inspect.md +52 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
- package/skills/lark-drive/references/lark-drive-move.md +122 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +53 -0
- package/skills/lark-drive/references/lark-drive-preview.md +87 -0
- package/skills/lark-drive/references/lark-drive-pull.md +137 -0
- package/skills/lark-drive/references/lark-drive-push.md +189 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
- package/skills/lark-drive/references/lark-drive-search.md +273 -0
- package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
- package/skills/lark-drive/references/lark-drive-status.md +135 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +355 -0
- package/skills/lark-drive/references/lark-drive-upload.md +101 -0
- package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
- package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
- package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
- package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +232 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +131 -0
- package/skills/lark-event/SKILL.md +155 -0
- package/skills/lark-event/references/lark-event-approval.md +170 -0
- package/skills/lark-event/references/lark-event-im.md +87 -0
- package/skills/lark-event/references/lark-event-minutes.md +54 -0
- package/skills/lark-event/references/lark-event-task.md +78 -0
- package/skills/lark-event/references/lark-event-vc.md +106 -0
- package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
- package/skills/lark-im/SKILL.md +249 -0
- package/skills/lark-im/references/card/card-2.0-schema.md +107 -0
- package/skills/lark-im/references/card/components/button.md +63 -0
- package/skills/lark-im/references/card/components/chart.md +57 -0
- package/skills/lark-im/references/card/components/checker.md +38 -0
- package/skills/lark-im/references/card/components/collapsible_panel.md +46 -0
- package/skills/lark-im/references/card/components/column_set.md +53 -0
- package/skills/lark-im/references/card/components/date_picker.md +34 -0
- package/skills/lark-im/references/card/components/div.md +36 -0
- package/skills/lark-im/references/card/components/form.md +51 -0
- package/skills/lark-im/references/card/components/header.md +34 -0
- package/skills/lark-im/references/card/components/hr.md +17 -0
- package/skills/lark-im/references/card/components/img.md +34 -0
- package/skills/lark-im/references/card/components/img_combination.md +30 -0
- package/skills/lark-im/references/card/components/input.md +43 -0
- package/skills/lark-im/references/card/components/interactive_container.md +46 -0
- package/skills/lark-im/references/card/components/markdown.md +56 -0
- package/skills/lark-im/references/card/components/multi_select_person.md +40 -0
- package/skills/lark-im/references/card/components/multi_select_static.md +40 -0
- package/skills/lark-im/references/card/components/overflow.md +36 -0
- package/skills/lark-im/references/card/components/person.md +30 -0
- package/skills/lark-im/references/card/components/person_list.md +31 -0
- package/skills/lark-im/references/card/components/picker_datetime.md +34 -0
- package/skills/lark-im/references/card/components/picker_time.md +34 -0
- package/skills/lark-im/references/card/components/recycling_container.md +35 -0
- package/skills/lark-im/references/card/components/select_img.md +42 -0
- package/skills/lark-im/references/card/components/select_person.md +39 -0
- package/skills/lark-im/references/card/components/select_static.md +43 -0
- package/skills/lark-im/references/card/components/table.md +53 -0
- package/skills/lark-im/references/card/lark-im-card-create.md +180 -0
- package/skills/lark-im/references/card/lark-im-card-style.md +281 -0
- package/skills/lark-im/references/card/resource/colors.md +34 -0
- package/skills/lark-im/references/card/resource/icons.md +38 -0
- package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
- package/skills/lark-im/references/lark-im-chat-create.md +162 -0
- package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
- package/skills/lark-im/references/lark-im-chat-list.md +166 -0
- package/skills/lark-im/references/lark-im-chat-members-list.md +83 -0
- package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
- package/skills/lark-im/references/lark-im-chat-search.md +142 -0
- package/skills/lark-im/references/lark-im-chat-update.md +84 -0
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
- package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
- package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
- package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
- package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
- package/skills/lark-im/references/lark-im-flag-create.md +67 -0
- package/skills/lark-im/references/lark-im-flag-list.md +100 -0
- package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
- package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
- package/skills/lark-im/references/lark-im-messages-reply.md +277 -0
- package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/skills/lark-im/references/lark-im-messages-search.md +234 -0
- package/skills/lark-im/references/lark-im-messages-send.md +279 -0
- package/skills/lark-im/references/lark-im-reactions.md +299 -0
- package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
- package/skills/lark-mail/SKILL.md +290 -0
- package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
- package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
- package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
- package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
- package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
- package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
- package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
- package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
- package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
- package/skills/lark-mail/references/lark-mail-forward.md +239 -0
- package/skills/lark-mail/references/lark-mail-html.md +333 -0
- package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
- package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
- package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
- package/skills/lark-mail/references/lark-mail-message.md +233 -0
- package/skills/lark-mail/references/lark-mail-messages.md +108 -0
- package/skills/lark-mail/references/lark-mail-recall.md +66 -0
- package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
- package/skills/lark-mail/references/lark-mail-reply.md +249 -0
- package/skills/lark-mail/references/lark-mail-rules.md +31 -0
- package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
- package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
- package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
- package/skills/lark-mail/references/lark-mail-send.md +222 -0
- package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
- package/skills/lark-mail/references/lark-mail-signature.md +98 -0
- package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
- package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
- package/skills/lark-mail/references/lark-mail-template.md +54 -0
- package/skills/lark-mail/references/lark-mail-thread.md +111 -0
- package/skills/lark-mail/references/lark-mail-triage.md +131 -0
- package/skills/lark-mail/references/lark-mail-watch.md +94 -0
- package/skills/lark-markdown/SKILL.md +70 -0
- package/skills/lark-markdown/references/lark-markdown-create.md +114 -0
- package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
- package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
- package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
- package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
- package/skills/lark-minutes/SKILL.md +207 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
- package/skills/lark-minutes/references/lark-minutes-download.md +135 -0
- package/skills/lark-minutes/references/lark-minutes-search.md +202 -0
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
- package/skills/lark-minutes/references/lark-minutes-summary.md +120 -0
- package/skills/lark-minutes/references/lark-minutes-todo.md +136 -0
- package/skills/lark-minutes/references/lark-minutes-update.md +39 -0
- package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
- package/skills/lark-note/SKILL.md +94 -0
- package/skills/lark-note/references/lark-note-detail.md +26 -0
- package/skills/lark-note/references/lark-note-transcript.md +23 -0
- package/skills/lark-okr/SKILL.md +122 -0
- package/skills/lark-okr/references/lark-okr-alignments.md +180 -0
- package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
- package/skills/lark-okr/references/lark-okr-contentblock.md +427 -0
- package/skills/lark-okr/references/lark-okr-cycle-detail.md +91 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +93 -0
- package/skills/lark-okr/references/lark-okr-entities.md +329 -0
- package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
- package/skills/lark-okr/references/lark-okr-indicators.md +223 -0
- package/skills/lark-okr/references/lark-okr-patch.md +104 -0
- package/skills/lark-okr/references/lark-okr-progress-create.md +85 -0
- package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/skills/lark-okr/references/lark-okr-progress-get.md +93 -0
- package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/skills/lark-okr/references/lark-okr-progress-update.md +85 -0
- package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
- package/skills/lark-okr/references/lark-okr-weight.md +96 -0
- package/skills/lark-openapi-explorer/SKILL.md +153 -0
- package/skills/lark-shared/SKILL.md +211 -0
- package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
- package/skills/lark-sheets/SKILL.md +234 -0
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +200 -0
- package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +332 -0
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +181 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
- package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
- package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +276 -0
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
- package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +171 -0
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +297 -0
- package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
- package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
- package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
- package/skills/lark-sheets/references/lark-sheets-workbook.md +420 -0
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +575 -0
- package/skills/lark-sheets/scripts/sheets_df.py +32 -0
- package/skills/lark-skill-maker/SKILL.md +85 -0
- package/skills/lark-slides/SKILL.md +285 -0
- package/skills/lark-slides/references/asset-planning.md +135 -0
- package/skills/lark-slides/references/examples.md +91 -0
- package/skills/lark-slides/references/iconpark-index.json +41901 -0
- package/skills/lark-slides/references/iconpark.md +46 -0
- package/skills/lark-slides/references/lark-slides-create.md +156 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +127 -0
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
- package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
- package/skills/lark-slides/references/lark-slides-screenshot.md +97 -0
- package/skills/lark-slides/references/lark-slides-whiteboard.md +331 -0
- package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +125 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +189 -0
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +99 -0
- package/skills/lark-slides/references/planning-layer.md +246 -0
- package/skills/lark-slides/references/slide-templates.md +201 -0
- package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
- package/skills/lark-slides/references/slides_demo.xml +226 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3054 -0
- package/skills/lark-slides/references/troubleshooting.md +45 -0
- package/skills/lark-slides/references/validation-checklist.md +119 -0
- package/skills/lark-slides/references/visual-planning.md +255 -0
- package/skills/lark-slides/references/xml-format-guide.md +433 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +249 -0
- package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
- package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1220 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +1170 -0
- package/skills/lark-task/SKILL.md +168 -0
- package/skills/lark-task/references/lark-task-assign.md +38 -0
- package/skills/lark-task/references/lark-task-comment.md +28 -0
- package/skills/lark-task/references/lark-task-complete.md +27 -0
- package/skills/lark-task/references/lark-task-create.md +70 -0
- package/skills/lark-task/references/lark-task-followers.md +35 -0
- package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
- package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
- package/skills/lark-task/references/lark-task-reminder.md +36 -0
- package/skills/lark-task/references/lark-task-reopen.md +27 -0
- package/skills/lark-task/references/lark-task-search.md +41 -0
- package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
- package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
- package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
- package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
- package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
- package/skills/lark-task/references/lark-task-update.md +37 -0
- package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
- package/skills/lark-vc/SKILL.md +205 -0
- package/skills/lark-vc/references/lark-vc-detail.md +44 -0
- package/skills/lark-vc/references/lark-vc-recording.md +152 -0
- package/skills/lark-vc/references/lark-vc-search.md +163 -0
- package/skills/lark-vc/references/vc-domain-boundaries.md +196 -0
- package/skills/lark-vc-agent/SKILL.md +201 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +315 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-message-send.md +134 -0
- package/skills/lark-whiteboard/SKILL.md +47 -0
- package/skills/lark-whiteboard/elements/connectors.md +102 -0
- package/skills/lark-whiteboard/elements/content.md +40 -0
- package/skills/lark-whiteboard/elements/image.md +80 -0
- package/skills/lark-whiteboard/elements/layout.md +374 -0
- package/skills/lark-whiteboard/elements/schema.md +357 -0
- package/skills/lark-whiteboard/elements/style.md +318 -0
- package/skills/lark-whiteboard/elements/typography.md +73 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +97 -0
- package/skills/lark-whiteboard/routes/dsl.md +107 -0
- package/skills/lark-whiteboard/routes/mermaid.md +27 -0
- package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
- package/skills/lark-whiteboard/routes/svg.md +54 -0
- package/skills/lark-whiteboard/scenes/architecture.md +433 -0
- package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
- package/skills/lark-whiteboard/scenes/comparison.md +135 -0
- package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
- package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
- package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
- package/skills/lark-whiteboard/scenes/funnel.md +101 -0
- package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
- package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
- package/skills/lark-whiteboard/scenes/milestone.md +139 -0
- package/skills/lark-whiteboard/scenes/organization.md +173 -0
- package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
- package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
- package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
- package/skills/lark-whiteboard/scenes/treemap.md +216 -0
- package/skills/lark-wiki/SKILL.md +114 -0
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
- package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
- package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
- package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +185 -0
- package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
- package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
- package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
- package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
- package/skills/lark-wiki/references/lark-wiki-node-list.md +95 -0
- package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
- package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
- package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
- package/skills/lark-workflow-standup-report/SKILL.md +122 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# drive +list-comments
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
|
|
4
|
+
|
|
5
|
+
列出 doc/docx/sheet/file/slides/base(bitable)/apps 的评论卡片。优先传用户给出的完整 URL,shortcut 会自动识别类型;apps 为妙搭类型,支持 `/page/<token>` URL;如果传 wiki URL 或 `--token <wiki_token> --type wiki`,会先解析到真实文档。
|
|
6
|
+
|
|
7
|
+
## 重要默认口径
|
|
8
|
+
|
|
9
|
+
- 默认只查未解决评论,即不额外传 `--solved-status` 或显式传 `--solved-status false`。即使用户说“所有评论”“全部评论”“把评论都列出来”,只要没有明确提到包含已解决评论,仍然按默认口径查询未解决评论。
|
|
10
|
+
- 仅当用户明确要求“包含已解决评论”“已解决和未解决都要”“全部历史评论”这类语义时,才传 `--solved-status all`。
|
|
11
|
+
- 是否还有下一页以输出里的 `has_more` 为准;`page_token` 只作为 `has_more=true` 时续跑下一页的游标。
|
|
12
|
+
|
|
13
|
+
## 命令
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# 推荐:直接传用户给出的完整 URL。默认只查未解决评论。
|
|
17
|
+
lark-cli drive +list-comments \
|
|
18
|
+
--url "<DOCUMENT_URL>"
|
|
19
|
+
|
|
20
|
+
# 只有用户明确要求包含已解决评论时,才查询已解决和未解决的全部评论。
|
|
21
|
+
lark-cli drive +list-comments \
|
|
22
|
+
--url "<DOCUMENT_URL>" \
|
|
23
|
+
--solved-status all
|
|
24
|
+
|
|
25
|
+
# 查询已解决评论。
|
|
26
|
+
lark-cli drive +list-comments \
|
|
27
|
+
--url "<DOCUMENT_URL>" \
|
|
28
|
+
--solved-status true
|
|
29
|
+
|
|
30
|
+
# 只查全文评论或局部评论。
|
|
31
|
+
lark-cli drive +list-comments \
|
|
32
|
+
--url "<DOCUMENT_URL>" \
|
|
33
|
+
--comment-scope whole
|
|
34
|
+
|
|
35
|
+
lark-cli drive +list-comments \
|
|
36
|
+
--url "<DOCUMENT_URL>" \
|
|
37
|
+
--comment-scope partial
|
|
38
|
+
|
|
39
|
+
# 电子表格 URL 保留 /sheets/ 路径,直接原样传入;不要把 sheet token 拼成 /docx/<token>。
|
|
40
|
+
lark-cli drive +list-comments \
|
|
41
|
+
--url "https://example.larksuite.com/sheets/<SHEET_TOKEN>"
|
|
42
|
+
|
|
43
|
+
# 妙搭 apps URL 使用 /page/<token>,shortcut 会识别为 file_type=apps。
|
|
44
|
+
lark-cli drive +list-comments \
|
|
45
|
+
--url "https://example.feishu.cn/page/<APPS_TOKEN>/"
|
|
46
|
+
|
|
47
|
+
# wiki URL 会自动解包。
|
|
48
|
+
lark-cli drive +list-comments \
|
|
49
|
+
--url "https://example.larksuite.com/wiki/<WIKI_TOKEN>"
|
|
50
|
+
|
|
51
|
+
# 裸 wiki token 也支持,但必须显式声明 --type wiki。
|
|
52
|
+
lark-cli drive +list-comments \
|
|
53
|
+
--token "<WIKI_TOKEN>" \
|
|
54
|
+
--type wiki
|
|
55
|
+
|
|
56
|
+
# 裸 token 需要声明 token 对应类型;不要默认当作 docx。这里以 sheet 为例。
|
|
57
|
+
lark-cli drive +list-comments \
|
|
58
|
+
--token "<DOCUMENT_TOKEN>" \
|
|
59
|
+
--type sheet \
|
|
60
|
+
--page-size 100
|
|
61
|
+
|
|
62
|
+
# 妙搭裸 apps token 需要显式声明 --type apps。
|
|
63
|
+
lark-cli drive +list-comments \
|
|
64
|
+
--token "<APPS_TOKEN>" \
|
|
65
|
+
--type apps
|
|
66
|
+
|
|
67
|
+
# docx 需要评论定位关系时再带 need-relation;非 docx 会静默忽略。
|
|
68
|
+
lark-cli drive +list-comments \
|
|
69
|
+
--url "https://example.larksuite.com/docx/<DOCX_TOKEN>" \
|
|
70
|
+
--need-relation
|
|
71
|
+
|
|
72
|
+
# 分页续跑。
|
|
73
|
+
# 先看上一页输出的 has_more;只有 has_more=true 时,才用返回的 page_token 继续。
|
|
74
|
+
lark-cli drive +list-comments \
|
|
75
|
+
--url "<DOCUMENT_URL>" \
|
|
76
|
+
--page-size 100 \
|
|
77
|
+
--page-token "<NEXT_PAGE_TOKEN>"
|
|
78
|
+
|
|
79
|
+
# 预览请求链路,不发真实请求。
|
|
80
|
+
lark-cli drive +list-comments \
|
|
81
|
+
--url "https://example.larksuite.com/wiki/<WIKI_TOKEN>" \
|
|
82
|
+
--dry-run
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 参数
|
|
86
|
+
|
|
87
|
+
| 参数 | 必填 | 说明 |
|
|
88
|
+
|------|------|------|
|
|
89
|
+
| `--url` | 与 `--token` 二选一 | 推荐入口。支持 doc/docx/sheet/file/slides/base/bitable/apps/wiki URL;apps 妙搭 URL 使用 `/page/<token>`;wiki URL 会自动解析到真实文档。 |
|
|
90
|
+
| `--token` | 与 `--url` 二选一 | 裸 token 或 URL。裸 token 必须搭配 `--type`;wiki token 使用 `--type wiki`。 |
|
|
91
|
+
| `--type` | 裸 token 时必填 | 传 token 对应类型:`doc`、`docx`、`sheet`、`file`、`slides`、`bitable`、`base`、`apps`、`wiki`。wiki token 使用 `wiki`;传 `base` 时,CLI 会按 `bitable` 类型处理。 |
|
|
92
|
+
| `--solved-status` | 否 | `false` / `true` / `all`,默认 `false`。`false` 查未解决评论;`true` 查已解决评论;`all` 查全部评论。 |
|
|
93
|
+
| `--comment-scope` | 否 | `all` / `whole` / `partial`,默认 `all`。`all` 查全部范围;`whole` 查全文评论;`partial` 查局部评论。 |
|
|
94
|
+
| `--need-reaction` | 否 | 是否返回评论卡片上的 reaction 数据;只有用户明确需要 reaction 时才带。 |
|
|
95
|
+
| `--need-relation` | 否 | docx 评论定位关系字段;仅 docx 生效,非 docx 静默忽略。需要定位正文时先读 [`lark-drive-comment-location.md`](lark-drive-comment-location.md)。 |
|
|
96
|
+
| `--page-size` | 否 | 默认 50,最大 100。 |
|
|
97
|
+
| `--page-token` | 否 | 分页游标;本 shortcut 不自动翻页,按返回的 `page_token` 继续请求下一页。 |
|
|
98
|
+
|
|
99
|
+
## 行为说明
|
|
100
|
+
|
|
101
|
+
- `--comment-scope all` 查全部范围;`whole` 查全文评论;`partial` 查局部/选区评论。
|
|
102
|
+
- 当用户已经给出完整 URL 时,原样传给 `--url`;不要先提取 token 再重组成其他类型 URL。比如 sheet 保留 `/sheets/<token>`,wiki 保留 `/wiki/<token>`,妙搭 apps 保留 `/page/<token>`。
|
|
103
|
+
- URL 输入时不需要传 `--type`;如果 URL 类型和显式 `--type` 冲突,shortcut 会返回 validation error,建议移除 `--type`。
|
|
104
|
+
- wiki 输入会自动解析到真实文档,再查询评论列表。JSON 输出不额外返回 wiki token 或 wiki node。
|
|
105
|
+
- 输出中的 `items` 保留评论卡片字段,外层补充 `file_token`、`file_type`、`has_more`、`page_token`、`count`;`count` 是当前页返回的评论卡片数。是否继续分页以 `has_more` 为准,而不是只看 `page_token` 是否存在。
|
|
106
|
+
- 如果需要批量按评论 ID 查询、获取更多回复、创建/编辑/删除回复,继续使用原生 `drive file.comments batch_query` 或 `drive file.comment.replys.*`。
|
|
107
|
+
|
|
108
|
+
## 输出
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"file_token": "docx_token",
|
|
113
|
+
"file_type": "docx",
|
|
114
|
+
"items": [],
|
|
115
|
+
"has_more": false,
|
|
116
|
+
"page_token": "",
|
|
117
|
+
"count": 0
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## 参考
|
|
122
|
+
|
|
123
|
+
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
124
|
+
- [lark-drive-comments-guide](lark-drive-comments-guide.md) -- 评论统计、回复限制和原生 API 说明
|
|
125
|
+
- [lark-drive-comment-location](lark-drive-comment-location.md) -- 使用 `need_relation` 定位 docx 正文
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# drive +member-add(添加协作者/授权成员权限)
|
|
2
|
+
|
|
3
|
+
> 这是高风险写操作。真实执行会修改文档权限,需要显式加 `--yes`
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
|
|
9
|
+
# 批量添加(同一 member-type 和 perm,最多 10 人)
|
|
10
|
+
lark-cli drive +member-add \
|
|
11
|
+
--token "<bare_token_or_url>" \
|
|
12
|
+
--type bitable \
|
|
13
|
+
--member-id "ou_a,ou_b" \
|
|
14
|
+
--member-type openid \
|
|
15
|
+
--perm view \
|
|
16
|
+
--yes
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 参数
|
|
20
|
+
|
|
21
|
+
| 参数 | 必填 | 说明 |
|
|
22
|
+
|------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
23
|
+
| `--token` | 是 | 裸 token 或完整 URL。路径支持 `/drive/folder/`、`/docx/`、`/doc/`、`/sheets/`、`/base/`、`/bitable/`、`/wiki/`、`/file/`、`/mindnotes/`、`/slides/`、`/minutes/`;URL 输入可从路径推断 `--type`,裸 token 不做前缀推断 |
|
|
24
|
+
| `--type` | 必填 | 目标资源类型:`docx` / `doc` / `sheet` / `bitable` / `file` / `folder` / `wiki` / `mindnote` / `slides` / `minutes`。传 URL 时可省略;裸 token 必须显式传;若同时传 URL 和 `--type`,显式 `--type` 覆盖 URL 推断 |
|
|
25
|
+
| `--member-id` | 是 | 协作者 ID;逗号分隔可批量添加,最多 10 个 |
|
|
26
|
+
| `--member-type` | 是 | member-id 的类型;支持 `email` / `openid` / `unionid` / `openchat` / `opendepartmentid` / `groupid` / `appid` / `wikispaceid`。在实际使用里,给当前应用授权仍优先推荐 bot `open_id` + `openid`。 |
|
|
27
|
+
| `--member-kind` | 条件必填 | 仅当 `--member-type=wikispaceid` 时填写,映射到请求 body 的 `type` 字段。取值:`wiki_space_member` / `wiki_space_viewer` / `wiki_space_editor`。其他 member-type 禁止传此参数。 |
|
|
28
|
+
| `--perm` | 否 | 授权角色:`view`(默认)/ `edit` / `full_access` |
|
|
29
|
+
| `--perm-type` | 否 | 只作用 wiki 节点权限范围:`container`(默认,当前页面+子页面)/ `single_page`(仅当前页面) |
|
|
30
|
+
| `--need-notification` | 否 | 是否通知对方。仅 `--as user` 可用;未传时不会写入 query,`--need-notification=false` 表示显式不通知 |
|
|
31
|
+
| `--dry-run` | 否 | 仅打印请求,不实际授权 |
|
|
32
|
+
| `--yes` | 真实执行时是 | 确认高风险写操作 |
|
|
33
|
+
|
|
34
|
+
## 输出
|
|
35
|
+
|
|
36
|
+
批量成功:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"ok": true,
|
|
41
|
+
"identity": "user",
|
|
42
|
+
"data": {
|
|
43
|
+
"resource_token": "doc_token_or_url",
|
|
44
|
+
"resource_type": "docx",
|
|
45
|
+
"requested_count": 2,
|
|
46
|
+
"succeeded_count": 2,
|
|
47
|
+
"partial": false,
|
|
48
|
+
"members": [
|
|
49
|
+
{"resource_token": "doc_token_or_url", "resource_type": "docx", "member_id": "ou_a", "member_type": "openid", "member_kind": "user", "perm": "view"},
|
|
50
|
+
{"resource_token": "doc_token_or_url", "resource_type": "docx", "member_id": "ou_b", "member_type": "openid", "member_kind": "user", "perm": "view"}
|
|
51
|
+
],
|
|
52
|
+
"missing_member_ids": []
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
批量部分失败时,`partial` 为 `true`,同一份结果以 `ok:false` 部分失败信封写到 **stdout**(stderr 不再输出单独的错误信封),CLI 以非零退出码结束。检查 `data` 中的 `requested_count`、`succeeded_count`、`members`、`missing_member_ids` 和可选的 `mismatched_member_ids`。响应顺序不影响匹配结果。
|
|
58
|
+
|
|
59
|
+
## 行为说明
|
|
60
|
+
|
|
61
|
+
- **身份支持**:`--as user` 和 `--as bot` 均可使用。
|
|
62
|
+
- **部门协作者**:`--member-type=opendepartmentid` 必须配合 `--as user`;bot 身份不支持添加部门协作者。
|
|
63
|
+
- **通知**:`--need-notification` 仅 `--as user` 时有效;`--as bot` 时传此参数会被拒绝。
|
|
64
|
+
- **批量约束**:批量请求共享同一 `--member-type`、`--perm` 和 `--perm-type`;混合用户/群组/部门的场景需拆分为多次调用。
|
|
65
|
+
- **Wiki 空间 ID**:`--member-type=wikispaceid` 时必须同时传 `--member-kind`,否则 API 会缺少必填的 body `type` 字段。`wiki_space_member` 对应知识库成员角色;若知识库已将成员拆分为可阅读/可编辑成员组,改用 `wiki_space_viewer` 或 `wiki_space_editor`。
|
|
66
|
+
- **ID 解析**:优先用 `open_id` + `--member-type openid`;仅在无法解析 `open_id` 时使用 `email`。群组优先用 `openchat`,部门用 `opendepartmentid`。
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +move
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
将文件或文件夹移动到用户云空间(云盘/云存储)的其他位置。
|
|
7
|
+
|
|
8
|
+
## 与 Wiki 移动 shortcut 的区别
|
|
9
|
+
|
|
10
|
+
- `drive +move` 只处理 **Drive 文件夹树内部** 的位置调整,目标位置用 `--folder-token` 表示
|
|
11
|
+
- `wiki +move` 处理的是 **Wiki 知识空间 / 页面层级**:要么移动已有 Wiki 节点,要么把 Drive 文档迁入 Wiki
|
|
12
|
+
- `wiki +move-to-drive` 把 **已有 Wiki 节点移出知识库**,放到 Drive 文件夹或“我的空间”根目录
|
|
13
|
+
- 如果用户说“移动到某个文件夹”“移动到我的空间根目录”,还要判断源对象:源对象已在 Drive 时使用 `drive +move`;源对象是 Wiki 节点时使用 `wiki +move-to-drive`
|
|
14
|
+
- 如果用户说“移动到某个知识库 / 页面下”“迁入 Wiki / 知识空间”,应使用 `wiki +move`
|
|
15
|
+
- 如果用户说“移动到我的文档库 / 我的知识库 / 个人知识库 / my_library”,不要使用 `drive +move`;先按 Wiki 目标处理
|
|
16
|
+
- `我的文档库` 不是 Drive root folder,也不是 `--folder-token` 省略后的默认目的地
|
|
17
|
+
- `drive +move` 不支持 Wiki 文档;Wiki 节点到 Drive 应使用 `wiki +move-to-drive`,目标是 Wiki 时使用 `wiki +move`
|
|
18
|
+
|
|
19
|
+
## 不要误用到 `我的文档库`
|
|
20
|
+
|
|
21
|
+
下面几种说法都**不应该**触发 `drive +move`:
|
|
22
|
+
|
|
23
|
+
- `移动到我的文档库`
|
|
24
|
+
- `放到我的知识库`
|
|
25
|
+
- `迁入个人知识库`
|
|
26
|
+
- `move to My Document Library`
|
|
27
|
+
|
|
28
|
+
这些目标都应该先走 Wiki 解析流程:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
lark-cli wiki spaces get --params '{"space_id":"my_library"}'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
拿到真实 `space_id` 后,再改用 `wiki +move`。不要因为 `drive +move` 可以省略 `--folder-token` 就把它当作“我的文档库”的近似目标。
|
|
35
|
+
|
|
36
|
+
## 命令
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# 移动文件到指定文件夹
|
|
40
|
+
lark-cli drive +move \
|
|
41
|
+
--file-token <FILE_TOKEN> \
|
|
42
|
+
--type file \
|
|
43
|
+
--folder-token <TARGET_FOLDER_TOKEN>
|
|
44
|
+
|
|
45
|
+
# 移动文档到指定文件夹
|
|
46
|
+
lark-cli drive +move \
|
|
47
|
+
--file-token <DOCX_TOKEN> \
|
|
48
|
+
--type docx \
|
|
49
|
+
--folder-token <TARGET_FOLDER_TOKEN>
|
|
50
|
+
|
|
51
|
+
# 移动文件夹(异步操作,会自动有限轮询任务状态)
|
|
52
|
+
lark-cli drive +move \
|
|
53
|
+
--file-token <FOLDER_TOKEN> \
|
|
54
|
+
--type folder \
|
|
55
|
+
--folder-token <TARGET_FOLDER_TOKEN>
|
|
56
|
+
|
|
57
|
+
# 移动到根文件夹(不指定 --folder-token)
|
|
58
|
+
lark-cli drive +move \
|
|
59
|
+
--file-token <FILE_TOKEN> \
|
|
60
|
+
--type file
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 参数
|
|
64
|
+
|
|
65
|
+
| 参数 | 必填 | 说明 |
|
|
66
|
+
|------|------|------|
|
|
67
|
+
| `--file-token` | 是 | 需要移动的文件或文件夹 token |
|
|
68
|
+
| `--type` | 是 | 文件类型,可选值:`file` (普通文件)、`docx` (新版文档)、`bitable` (多维表格)、`doc` (旧版文档)、`sheet` (电子表格)、`mindnote` (思维笔记)、`folder` (文件夹)、`slides` (幻灯片) |
|
|
69
|
+
| `--folder-token` | 否 | 目标文件夹 token,不指定则移动到根文件夹 |
|
|
70
|
+
|
|
71
|
+
## 文件类型说明
|
|
72
|
+
|
|
73
|
+
| 类型 | 说明 |
|
|
74
|
+
|------|------|
|
|
75
|
+
| `file` | 普通文件 |
|
|
76
|
+
| `docx` | 新版云文档 |
|
|
77
|
+
| `doc` | 旧版云文档 |
|
|
78
|
+
| `sheet` | 电子表格 |
|
|
79
|
+
| `bitable` | 多维表格 |
|
|
80
|
+
| `mindnote` | 思维笔记 |
|
|
81
|
+
| `slides` | 幻灯片 |
|
|
82
|
+
| `folder` | 文件夹(移动文件夹是异步操作) |
|
|
83
|
+
|
|
84
|
+
## 行为说明
|
|
85
|
+
|
|
86
|
+
- **普通文件移动**:同步操作,立即完成
|
|
87
|
+
- **文件夹移动**:异步操作,接口返回 `task_id`,shortcut 会先做有限轮询;如果在轮询窗口内完成,则直接返回成功结果
|
|
88
|
+
- **轮询超时不是失败**:文件夹移动内置最多轮询 30 次、每次间隔 2 秒;如果轮询结束任务仍未完成,会返回 `task_id`、`status`、`ready=false`、`timed_out=true` 和 `next_command`
|
|
89
|
+
- **继续查询**:当看到 `next_command` 时,改用 `lark-cli drive +task_result --scenario task_check --task-id <TASK_ID>` 继续查询
|
|
90
|
+
- **目标文件夹**:如果不指定 `--folder-token`,文件将被移动到用户的根文件夹("我的空间")
|
|
91
|
+
- **不要混淆产品概念**:这里的“根文件夹 / 我的空间”仅属于 Drive 文件夹树,不等于 Wiki 的“我的文档库”
|
|
92
|
+
- **权限要求**:需要被移动文件的可管理权限、被移动文件所在位置的编辑权限、目标位置的编辑权限
|
|
93
|
+
|
|
94
|
+
## 推荐续跑方式
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# 第一步:先直接移动文件夹
|
|
98
|
+
lark-cli drive +move \
|
|
99
|
+
--file-token <FOLDER_TOKEN> \
|
|
100
|
+
--type folder \
|
|
101
|
+
--folder-token <TARGET_FOLDER_TOKEN>
|
|
102
|
+
|
|
103
|
+
# 如果返回 ready=false / timed_out=true,再继续查
|
|
104
|
+
lark-cli drive +task_result \
|
|
105
|
+
--scenario task_check \
|
|
106
|
+
--task-id <TASK_ID>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 限制
|
|
110
|
+
|
|
111
|
+
- 被移动的文件不支持 wiki 文档
|
|
112
|
+
- 该接口不支持并发调用
|
|
113
|
+
- 调用频率上限为 5 QPS 且 10000 次/天
|
|
114
|
+
|
|
115
|
+
> [!CAUTION]
|
|
116
|
+
> 这是**写入操作** —— 执行前必须确认用户意图。
|
|
117
|
+
|
|
118
|
+
## 参考
|
|
119
|
+
|
|
120
|
+
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
121
|
+
- [wiki +move-to-drive](../../lark-wiki/references/lark-wiki-move-to-drive.md) -- 将 Wiki 节点移出知识库并放入 Drive
|
|
122
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Drive 权限与授权指南
|
|
2
|
+
|
|
3
|
+
> 前置条件:通用认证、scope 与 `--as` 规则见 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md)。
|
|
4
|
+
|
|
5
|
+
## 何时读取
|
|
6
|
+
|
|
7
|
+
- 用户要修改文档公开权限,尤其是 `drive permission.public patch` 返回 `91009` / `91010` / `91011` / `91012`。
|
|
8
|
+
- 用户要给文档、文件、文件夹、Wiki 或 slides 增加协作者权限,或把访问权限授予当前应用(bot)自身。
|
|
9
|
+
- 用户遇到 `permission denied`,但错误表现更像租户对外分享、安全策略或密级拦截,而不是普通 scope 缺失。
|
|
10
|
+
|
|
11
|
+
如果用户只是想向文档 owner 申请访问权限,优先使用 [`lark-drive-apply-permission.md`](lark-drive-apply-permission.md)。
|
|
12
|
+
|
|
13
|
+
## 公开权限修改前门槛
|
|
14
|
+
|
|
15
|
+
公开权限修改是高风险写操作。执行 `drive permission.public patch --yes` 前同时确认:
|
|
16
|
+
|
|
17
|
+
| 条件 | 可执行信号 |
|
|
18
|
+
|------|------------|
|
|
19
|
+
| 具体目标 | 单个 URL/token,或用户确认过的资源列表 |
|
|
20
|
+
| 公开范围 | 用户明确选择组织内/互联网、可读/可编辑等具体 `link_share_entity` 档位 |
|
|
21
|
+
| 执行确认 | 用户在本轮确认按该目标和范围执行 |
|
|
22
|
+
|
|
23
|
+
“开放一下”“共享给大家”“让大家能看”只表达目标状态,不包含具体公开范围。先列出可选范围并停止等待用户选择;公开档位必须来自用户选择,CLI 的 `--yes` 只表示已获得用户对该档位的执行确认。
|
|
24
|
+
|
|
25
|
+
## 公开权限错误码
|
|
26
|
+
|
|
27
|
+
调用 `lark-cli drive permission.public patch` 更新文档公开权限失败时,如果返回以下错误码,按表格给用户明确下一步。不要把这些错误简单归类为缺少 scope;它们通常表示租户、对外分享或文档密级策略拦截。
|
|
28
|
+
|
|
29
|
+
| 错误码 | 含义 | 给用户的引导 |
|
|
30
|
+
|--------|------|--------------|
|
|
31
|
+
| `91009` | 对外分享被租户安全策略管控,当前用户无法开启 | 提示用户:对外分享能力被租户安全策略统一管控,无法通过 API 或当前用户直接开启;需要联系租户管理员调整组织级对外分享策略。 |
|
|
32
|
+
| `91010` | 文档对外分享未打开 | 提示用户:当前文档尚未打开对外分享,请先在文档权限设置中打开对外分享,再重试 `permission.public.patch`。 |
|
|
33
|
+
| `91011` | 对外分享被文档密级管控 | 提示用户:对外分享被密级策略拦截,需要打开目标文档,在文档内发起密级豁免或进行密级降级后再重试;回复中必须给出目标文档 URL。 |
|
|
34
|
+
| `91012` | 权限设置被文档密级管控 | 提示用户:该权限设置被密级策略拦截,需要打开目标文档,在文档内发起密级豁免或进行密级降级后再重试;回复中必须给出目标文档 URL。 |
|
|
35
|
+
|
|
36
|
+
当用户最初提供的是文档 URL,遇到 `91011` 或 `91012` 时直接把该 URL 原样返回给用户作为操作入口;如果上下文只有 token,需要先尽量通过已有上下文、搜索结果或元数据恢复目标文档 URL,再给出可点击的文档 URL。
|
|
37
|
+
|
|
38
|
+
## 授权当前应用访问文档
|
|
39
|
+
|
|
40
|
+
需要将文档权限授予当前应用(bot)自身时:
|
|
41
|
+
|
|
42
|
+
1. 先执行 `lark-cli api GET /open-apis/bot/v3/info --as bot`,从返回值取 `bot.open_id`。
|
|
43
|
+
2. 再调用 `lark-cli drive permission.members create`,用 `member_type=openid`、`member_id=<bot_open_id>` 授权。
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
lark-cli drive permission.members create \
|
|
47
|
+
--params '{"token":"<doc_token>","type":"<resource_type>"}' \
|
|
48
|
+
--data '{"member_type":"openid","member_id":"<bot_open_id>","perm":"view","type":"user"}'
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
此方式仅适用于授权给当前应用。授权给其他用户时,直接使用对方的 open_id,无需调用 bot info 接口。
|
|
52
|
+
|
|
53
|
+
`<resource_type>` 可选值:`doc`、`docx`、`sheet`、`bitable`、`file`、`folder`、`wiki`、`slides`。
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
## `drive +preview`
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
|
|
4
|
+
|
|
5
|
+
列出或下载 Drive 文件可用的预览产物。这个 shortcut 不猜测默认类型:
|
|
6
|
+
|
|
7
|
+
- 只想看候选项时,用 `--list-only`
|
|
8
|
+
- 想下载时,必须显式传 `--type` 和 `--output`
|
|
9
|
+
- 如果某个候选项还在生成中,会返回结构化错误并提示先重新 `--list-only`
|
|
10
|
+
|
|
11
|
+
### 命令
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# 列出可用预览候选项
|
|
15
|
+
lark-cli drive +preview \
|
|
16
|
+
--file-token "<FILE_TOKEN>" \
|
|
17
|
+
--list-only
|
|
18
|
+
|
|
19
|
+
# 下载 PDF 预览
|
|
20
|
+
lark-cli drive +preview \
|
|
21
|
+
--file-token "<FILE_TOKEN>" \
|
|
22
|
+
--type pdf \
|
|
23
|
+
--output ./artifacts/report
|
|
24
|
+
|
|
25
|
+
# 下载文本预览,并在目标已存在时自动改名
|
|
26
|
+
lark-cli drive +preview \
|
|
27
|
+
--file-token "<FILE_TOKEN>" \
|
|
28
|
+
--type text \
|
|
29
|
+
--output ./artifacts/report \
|
|
30
|
+
--if-exists rename
|
|
31
|
+
|
|
32
|
+
# 指定版本号查询/下载
|
|
33
|
+
lark-cli drive +preview \
|
|
34
|
+
--file-token "<FILE_TOKEN>" \
|
|
35
|
+
--version "12" \
|
|
36
|
+
--type html \
|
|
37
|
+
--output ./artifacts/report.html
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 参数
|
|
41
|
+
|
|
42
|
+
| 参数 | 必填 | 说明 |
|
|
43
|
+
|------|------|------|
|
|
44
|
+
| `--file-token` | 是 | Drive 文件 token |
|
|
45
|
+
| `--type` | 条件必填 | 预览类型;优先使用 `--list-only` 返回的 `type`,如 `pdf` / `html` / `text` / `png` / `jpg` / `source_file` |
|
|
46
|
+
| `--version` | 否 | 文件版本号 |
|
|
47
|
+
| `--list-only` | 否 | 仅返回候选项,不下载 |
|
|
48
|
+
| `--output` | 条件必填 | 下载到本地的输出路径 |
|
|
49
|
+
| `--if-exists` | 否 | 输出冲突策略:`error`(默认)/ `overwrite` / `rename` |
|
|
50
|
+
|
|
51
|
+
### 输出约定
|
|
52
|
+
|
|
53
|
+
- 查询态返回:
|
|
54
|
+
- `mode=list`
|
|
55
|
+
- `file_token`
|
|
56
|
+
- `candidates[]`
|
|
57
|
+
- `next_action`
|
|
58
|
+
- 下载态返回:
|
|
59
|
+
- `mode=download`
|
|
60
|
+
- `file_token`
|
|
61
|
+
- `selected_type`
|
|
62
|
+
- `output_path`
|
|
63
|
+
- `status`
|
|
64
|
+
|
|
65
|
+
### 候选项字段
|
|
66
|
+
|
|
67
|
+
`candidates[]` 中每个对象包含:
|
|
68
|
+
|
|
69
|
+
- `type`
|
|
70
|
+
- `type_code`
|
|
71
|
+
- `label`
|
|
72
|
+
- `status`
|
|
73
|
+
- `status_code`
|
|
74
|
+
- `downloadable`
|
|
75
|
+
- `reason`(可选)
|
|
76
|
+
|
|
77
|
+
### 关键约束
|
|
78
|
+
|
|
79
|
+
- 不传 `--list-only` 时,必须显式传 `--type` 和 `--output`
|
|
80
|
+
- 不会隐式选择“第一个候选项”作为默认下载目标
|
|
81
|
+
- 候选项状态来自后端 `preview_status` 枚举,例如 `READY` / `PROCESSING` / `FAILED` / `NO_SUPPORT`
|
|
82
|
+
- 本地文件名在未显式带扩展名时,会结合响应头自动补扩展名
|
|
83
|
+
|
|
84
|
+
### 参考
|
|
85
|
+
|
|
86
|
+
- [lark-drive](../SKILL.md) -- Drive 总入口
|
|
87
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +pull
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
把飞书云空间(云盘/云存储)的某个文件夹**单向、文件级**镜像到本地目录(Drive → 本地)。命令递归列出 `--folder-token` 下所有 `type=file` 的文件,逐一下载到 `--local-dir` 对应的相对路径,子文件夹自动复刻为本地目录。
|
|
7
|
+
|
|
8
|
+
> ⚠️ **不是 directory-level mirror**:`--delete-local` 只删除本地"多余"的常规文件,不删除空目录。如果云端把整个子文件夹删了,对应的本地子目录会留空(里面的文件被清掉,目录本身保留);想精确同步目录结构请自己 `rmdir` 处理空壳。
|
|
9
|
+
|
|
10
|
+
输出按"动作"分类:
|
|
11
|
+
|
|
12
|
+
| 字段 | 含义 |
|
|
13
|
+
|------|------|
|
|
14
|
+
| `summary.downloaded` | 成功下载的文件数 |
|
|
15
|
+
| `summary.skipped` | 因 `--if-exists=skip` 或 `--if-exists=smart` 命中“无需下载”而跳过的文件数 |
|
|
16
|
+
| `summary.failed` | 下载或写盘失败的文件数 |
|
|
17
|
+
| `summary.deleted_local` | 启用 `--delete-local --yes` 时删除的本地文件数 |
|
|
18
|
+
| `items[]` | 每个文件的明细(`rel_path` / `file_token` / `source_id` / `action` / 失败时的 `error`) |
|
|
19
|
+
|
|
20
|
+
`summary.failed > 0` 时命令以 **非零状态码**(`exit=1`)退出:同一份 `summary + items` 会以 `ok:false` 部分失败信封写到 **stdout**(字段在 `data.summary` / `data.items`),stderr 不再输出单独的错误信封;脚本/agent 直接通过 exit code 判断成败即可,不需要再去解 `summary.failed`。
|
|
21
|
+
|
|
22
|
+
## 远端同名文件冲突
|
|
23
|
+
|
|
24
|
+
如果 Drive 中多个条目映射到同一个 `rel_path`,默认直接失败(stderr 类型化错误信封:`error.type=validation`、`error.subtype=failed_precondition`,`error.params[]` 逐条列出冲突的 `rel_path` 及碰撞条目),且不会下载、覆盖或删除任何本地文件。只有“多个 `type=file` 同名”的场景支持显式策略;`file-folder` 这类异构冲突始终直接失败。
|
|
25
|
+
|
|
26
|
+
| 策略 | 行为 |
|
|
27
|
+
|------|------|
|
|
28
|
+
| `fail` | 默认。返回所有冲突条目的完整信息,不写盘 |
|
|
29
|
+
| `rename` | 仅适用于 duplicate file。下载全部重复文件;第一个保留原名,后续文件使用稳定 hash 后缀生成唯一文件名;若短后缀目标已被占用,会自动升级到更强后缀 |
|
|
30
|
+
| `newest` | 只下载 `modified_time` 最新的远端文件 |
|
|
31
|
+
| `oldest` | 只下载 `created_time` 最早的远端文件 |
|
|
32
|
+
|
|
33
|
+
`rename` 命名规则稳定且可追溯:`report.pdf` 的后续重复项会落盘为 `report__lark_<hash>.pdf`,例如 `report__lark_3a2f4c5d6e7f.pdf`。如果这个短 hash 目标名已经被同目录下的其他远端对象占用,CLI 会自动改用更长的稳定 hash,必要时再追加序号后缀,直到目标名唯一。此模式下 `items[]` 不再返回可直接复用的 Drive `file_token`;CLI 会在 `source_id` 中返回稳定 hash 标识符,供日志、比对和人工排查使用。
|
|
34
|
+
|
|
35
|
+
## 命令
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 基础用法 —— 把云端 fldcXXX 镜像到 ./repo
|
|
39
|
+
lark-cli drive +pull --local-dir ./repo --folder-token fldcnxxxxxxxxx
|
|
40
|
+
|
|
41
|
+
# 推荐的重复同步用法:smart 会按 modified_time 跳过已经对齐的本地文件
|
|
42
|
+
lark-cli drive +pull --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
43
|
+
--if-exists smart
|
|
44
|
+
|
|
45
|
+
# 已存在的本地文件保持不动
|
|
46
|
+
lark-cli drive +pull --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
47
|
+
--if-exists skip
|
|
48
|
+
|
|
49
|
+
# 云端有多个同名二进制文件时,显式下载全部并用稳定 hash 后缀改名
|
|
50
|
+
lark-cli drive +pull --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
51
|
+
--on-duplicate-remote rename
|
|
52
|
+
|
|
53
|
+
# 文件级镜像:下载新文件 + 删除云端没有的本地文件(不删空目录)
|
|
54
|
+
# (--delete-local 必须搭配 --yes,否则会被 Validate 直接拒绝)
|
|
55
|
+
lark-cli drive +pull --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
56
|
+
--delete-local --yes
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 参数
|
|
60
|
+
|
|
61
|
+
| 标志 | 必填 | 类型 | 说明 |
|
|
62
|
+
|------|------|------|------|
|
|
63
|
+
| `--local-dir` | 是 | path | 本地根目录(**必须是 cwd 的相对路径**;绝对路径或逃出 cwd 的相对路径会被 CLI 直接拒绝) |
|
|
64
|
+
| `--folder-token` | 是 | string | 源 Drive 文件夹 token |
|
|
65
|
+
| `--if-exists` | 否 | enum | 本地文件已存在时的策略:`overwrite`(**默认**,Drive 作为权威源时使用)/ `smart`(**推荐用于重复增量同步**;当本地 mtime 已与远端 `modified_time` 匹配或更新时跳过下载)/ `skip` |
|
|
66
|
+
| `--on-duplicate-remote` | 否 | enum | 云端多个条目映射到同一个 `rel_path` 时的策略:`fail`(默认);如果冲突全是 `type=file`,还可选 `rename` / `newest` / `oldest` |
|
|
67
|
+
| `--delete-local` | 否 | bool | 删除本地"云端没有的常规文件"(**不删空目录**,因此是 file-level mirror);**必须配合 `--yes`** |
|
|
68
|
+
| `--yes` | 否 | bool | 确认 `--delete-local`;不传时该破坏性操作在 Validate 阶段被拒绝 |
|
|
69
|
+
|
|
70
|
+
## 比较与下载范围
|
|
71
|
+
|
|
72
|
+
- **只下载 Drive `type=file` 的二进制文件**。在线文档(`docx` / `sheet` / `bitable` / `mindnote` / `slides`)和快捷方式(`shortcut`)会被跳过 —— 它们没有等价的本地二进制可写盘,否则会变成产生噪声的"假"下载。
|
|
73
|
+
- 子文件夹会递归遍历;rel_path 形如 `sub1/sub2/file.txt`,本地缺失的父目录会被自动创建。
|
|
74
|
+
- 已存在的本地文件按 `--if-exists` 决定 `overwrite` / `smart` / `skip`。其中 **`smart` 是推荐的重复同步模式**:只要本地 mtime 在远端时间精度下已经等于或晚于远端 `modified_time`,就跳过下载;时间戳缺失/非法时会退回安全路径继续下载,不会盲跳。想做 `keep-both` 这类的仍需自己改名再 pull。
|
|
75
|
+
- 云端同名冲突默认失败;只有“冲突全是 `type=file`”且传了 `--on-duplicate-remote rename|newest|oldest` 时才会继续。
|
|
76
|
+
|
|
77
|
+
## --delete-local 的安全行为
|
|
78
|
+
|
|
79
|
+
`--delete-local` 是命令里**唯一的破坏性 flag**,会按"本地有但云端没有"清理本地常规文件。设计上把它跟 `--yes` 强绑定,且与下载阶段的失败联动:
|
|
80
|
+
|
|
81
|
+
- `--delete-local`(无 `--yes`)→ Validate 直接报错:`--delete-local requires --yes`,没有任何下载、列表请求或删除发生。
|
|
82
|
+
- `--delete-local --yes`,**且下载阶段全部成功** → 扫一遍 `--local-dir` 下所有常规文件,把不在云端清单里的逐个 `os.Remove`。**只删常规文件,不删目录**:远端文件夹被删除后,对应本地目录会保留空壳。
|
|
83
|
+
- `--delete-local --yes`,**但下载阶段有任何条目失败** → **跳过整个删除阶段**,命令以 `ok:false` 部分失败结果非零退出。设计意图:避免出现"前面下载失败、后面继续删本地文件"的半同步状态;操作者修好下载错误后再重跑即可。
|
|
84
|
+
- 远端同名文件冲突且使用默认 `fail` → 在下载阶段前失败,删除阶段不会运行。
|
|
85
|
+
- 不传 `--delete-local` → `summary.deleted_local` 永远是 0;命令对本地"多余"文件视而不见。
|
|
86
|
+
|
|
87
|
+
第 6 章里把 `+pull --delete-local` 标了 `high-risk-write`,CLI 这边的实现等价于"未传 `--yes` 时拒绝执行",符合该约束的精神。
|
|
88
|
+
|
|
89
|
+
## 输出 schema
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"summary": {
|
|
94
|
+
"downloaded": 0,
|
|
95
|
+
"skipped": 0,
|
|
96
|
+
"failed": 0,
|
|
97
|
+
"deleted_local": 0
|
|
98
|
+
},
|
|
99
|
+
"items": [
|
|
100
|
+
{"rel_path": "...", "file_token": "...", "action": "downloaded"},
|
|
101
|
+
{"rel_path": "...", "source_id": "hash_3a2f4c5d6e7f", "action": "downloaded"},
|
|
102
|
+
{"rel_path": "...", "source_id": "hash_3a2f4c5d6e7f", "action": "failed", "error": "..."},
|
|
103
|
+
{"rel_path": "...", "action": "deleted_local"},
|
|
104
|
+
{"rel_path": "...", "action": "delete_failed", "error": "..."}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
`rel_path` 始终用 `/` 作为分隔符(跨平台一致)。删除条目(`deleted_local` / `delete_failed`)没有 `file_token`。`rename` 模式下,duplicate 文件条目会返回 `source_id` 而不是可调用 API 的真实 `file_token`;其余模式仍返回真实 `file_token`。
|
|
110
|
+
|
|
111
|
+
## 性能注意
|
|
112
|
+
|
|
113
|
+
- 默认 `overwrite` 下,重复跑会重新下载所有命中的同名文件;`skip` 下则完全不碰已存在文件;**`smart` 下才会按 `modified_time` 跳过已经对齐的本地文件**,适合重复增量同步。
|
|
114
|
+
- 想更精细地控制下载量,可以先 `+status` 找出 `new_remote` 和 `modified`,再只对这些文件单独 `+download`;或者直接在整目录同步时使用 `--if-exists smart`。
|
|
115
|
+
- 大文件会用 SDK 的流式下载(不会把整个 body 读进内存),但本地磁盘空间需要够。
|
|
116
|
+
|
|
117
|
+
## 所需 scope
|
|
118
|
+
|
|
119
|
+
| 操作 | scope |
|
|
120
|
+
|------|-------|
|
|
121
|
+
| 列出文件夹 / 子目录 | `drive:drive.metadata:readonly` |
|
|
122
|
+
| 下载文件 | `drive:file:download` |
|
|
123
|
+
|
|
124
|
+
如果当前 token 缺这些 scope,命令会直接报 `missing_scope` 并提示重新登录。`drive:drive` 在部分企业被策略禁用,所以 +pull 故意只声明上面这两个细粒度 scope。
|
|
125
|
+
|
|
126
|
+
## 范围限制
|
|
127
|
+
|
|
128
|
+
`--local-dir` 只接受 cwd 内的相对路径。CLI 会先 `EvalSymlinks` 整条路径,再判断它是否仍落在 cwd 内 —— **指向 cwd 外的符号链接也会被拒**,"在 cwd 内放一条软链指向外面" 这条捷径走不通,会直接撞上 `unsafe file path`。
|
|
129
|
+
|
|
130
|
+
如果用户想 pull 到 cwd 之外的目录,**不要 agent 自己 `cd` 绕过**。可以选:让用户在外部把 agent 工作目录切换到目标的祖先后重启会话;或者把目标整体物理移动 / 拷贝到 cwd 内(不是软链);或者直接放弃这次同步,改用别的方式。
|
|
131
|
+
|
|
132
|
+
## 参考
|
|
133
|
+
|
|
134
|
+
- [lark-drive](../SKILL.md) —— 云空间(云盘/云存储)全部命令
|
|
135
|
+
- [lark-shared](../../lark-shared/SKILL.md) —— 认证和全局参数
|
|
136
|
+
- [lark-drive-status](lark-drive-status.md) —— 下载前先看差异
|
|
137
|
+
- [lark-drive-download](lark-drive-download.md) —— 单文件按需拉取
|