@yandy0725/pi-lark 0.1.0
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/README.md +30 -0
- package/README.zh.md +30 -0
- package/package.json +36 -0
- package/skills/lark-approval/SKILL.md +56 -0
- package/skills/lark-approval/references/lark-approval-initiate.md +196 -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-apps/SKILL.md +78 -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-cloud-dev.md +120 -0
- package/skills/lark-apps/references/lark-apps-create.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-env-create.md +31 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-table-get.md +29 -0
- package/skills/lark-apps/references/lark-apps-db-table-list.md +31 -0
- package/skills/lark-apps/references/lark-apps-env-pull.md +35 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +57 -0
- package/skills/lark-apps/references/lark-apps-init.md +37 -0
- package/skills/lark-apps/references/lark-apps-list.md +37 -0
- package/skills/lark-apps/references/lark-apps-local-dev.md +76 -0
- package/skills/lark-apps/references/lark-apps-release-create.md +30 -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-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 +157 -0
- package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
- package/skills/lark-base/references/formula-field-guide.md +737 -0
- package/skills/lark-base/references/lark-base-cell-value.md +153 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
- package/skills/lark-base/references/lark-base-dashboard.md +238 -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 +452 -0
- package/skills/lark-base/references/lark-base-field-create.md +103 -0
- package/skills/lark-base/references/lark-base-field-json.md +489 -0
- package/skills/lark-base/references/lark-base-field-update.md +171 -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 +189 -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 +137 -0
- package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +106 -0
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
- package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +113 -0
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
- package/skills/lark-calendar/references/lark-calendar-search-event.md +29 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
- package/skills/lark-contact/SKILL.md +59 -0
- package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
- package/skills/lark-contact/references/lark-contact-search-user.md +124 -0
- package/skills/lark-doc/SKILL.md +79 -0
- package/skills/lark-doc/references/lark-doc-create.md +79 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +138 -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-resource-cover.md +70 -0
- package/skills/lark-doc/references/lark-doc-update.md +259 -0
- package/skills/lark-doc/references/lark-doc-whiteboard.md +154 -0
- package/skills/lark-doc/references/lark-doc-xml.md +181 -0
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +59 -0
- package/skills/lark-doc/references/style/lark-doc-style.md +86 -0
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +55 -0
- package/skills/lark-drive/SKILL.md +215 -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 +193 -0
- package/skills/lark-drive/references/lark-drive-comments-guide.md +72 -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 +79 -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 +145 -0
- package/skills/lark-drive/references/lark-drive-files-list.md +158 -0
- package/skills/lark-drive/references/lark-drive-import.md +170 -0
- package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
- package/skills/lark-drive/references/lark-drive-move.md +120 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +41 -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 +162 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
- package/skills/lark-drive/references/lark-drive-search.md +269 -0
- package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
- package/skills/lark-drive/references/lark-drive-status.md +137 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +302 -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 +226 -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 +130 -0
- package/skills/lark-event/SKILL.md +154 -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 +94 -0
- package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
- package/skills/lark-im/SKILL.md +247 -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-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 +267 -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 +267 -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 +287 -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.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 +69 -0
- package/skills/lark-markdown/references/lark-markdown-create.md +94 -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 +192 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
- package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
- package/skills/lark-minutes/references/lark-minutes-search.md +204 -0
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
- package/skills/lark-minutes/references/lark-minutes-summary.md +122 -0
- package/skills/lark-minutes/references/lark-minutes-todo.md +138 -0
- package/skills/lark-minutes/references/lark-minutes-update.md +41 -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 +115 -0
- package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
- package/skills/lark-okr/references/lark-okr-contentblock.md +359 -0
- package/skills/lark-okr/references/lark-okr-cycle-detail.md +84 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +90 -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-progress-create.md +81 -0
- package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/skills/lark-okr/references/lark-okr-progress-get.md +62 -0
- package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/skills/lark-okr/references/lark-okr-progress-update.md +81 -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 +168 -0
- package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
- package/skills/lark-sheets/SKILL.md +165 -0
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +191 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +330 -0
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +179 -0
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +103 -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 +267 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +166 -0
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +267 -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 +395 -0
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +565 -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 +293 -0
- package/skills/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
- package/skills/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
- package/skills/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
- package/skills/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
- package/skills/lark-slides/assets/templates/hr--employee_training.xml +912 -0
- package/skills/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
- package/skills/lark-slides/assets/templates/hr--onboarding.xml +933 -0
- package/skills/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
- package/skills/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
- package/skills/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
- package/skills/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
- package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
- package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
- package/skills/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
- package/skills/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
- package/skills/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
- package/skills/lark-slides/assets/templates/office--dark_general.xml +3763 -0
- package/skills/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
- package/skills/lark-slides/assets/templates/office--light_general.xml +3378 -0
- package/skills/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
- package/skills/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
- package/skills/lark-slides/assets/templates/office--work_report.xml +1099 -0
- package/skills/lark-slides/assets/templates/office--work_summary.xml +4420 -0
- package/skills/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
- package/skills/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
- package/skills/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
- package/skills/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
- package/skills/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
- package/skills/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
- package/skills/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
- package/skills/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
- package/skills/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
- package/skills/lark-slides/assets/templates/personal--self_intro.xml +696 -0
- package/skills/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
- package/skills/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
- package/skills/lark-slides/assets/templates/product--market_analysis.xml +898 -0
- package/skills/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
- package/skills/lark-slides/assets/templates/product--product_intro.xml +2838 -0
- package/skills/lark-slides/assets/templates/product--product_promotion.xml +687 -0
- package/skills/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
- package/skills/lark-slides/references/asset-planning.md +124 -0
- package/skills/lark-slides/references/examples.md +261 -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 +137 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +128 -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 +94 -0
- package/skills/lark-slides/references/lark-slides-whiteboard.md +330 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +220 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -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 +187 -0
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
- package/skills/lark-slides/references/planning-layer.md +219 -0
- package/skills/lark-slides/references/slide-templates.md +201 -0
- package/skills/lark-slides/references/slides_demo.xml +226 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3049 -0
- package/skills/lark-slides/references/template-catalog.md +463 -0
- package/skills/lark-slides/references/template-index.json +1853 -0
- package/skills/lark-slides/references/troubleshooting.md +63 -0
- package/skills/lark-slides/references/validation-checklist.md +110 -0
- package/skills/lark-slides/references/visual-planning.md +254 -0
- package/skills/lark-slides/references/xml-format-guide.md +369 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +245 -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/template_tool.py +970 -0
- package/skills/lark-slides/scripts/template_tool_test.py +177 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +367 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +263 -0
- package/skills/lark-task/SKILL.md +167 -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 +57 -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 +202 -0
- package/skills/lark-vc/references/lark-vc-detail.md +44 -0
- package/skills/lark-vc/references/lark-vc-recording.md +154 -0
- package/skills/lark-vc/references/lark-vc-search.md +163 -0
- package/skills/lark-vc/references/vc-domain-boundaries.md +188 -0
- package/skills/lark-vc-agent/SKILL.md +169 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +287 -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-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 +94 -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 +110 -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.md +183 -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 +88 -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,193 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +add-comment
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
给文档、受支持的 Drive 普通文件、电子表格、飞书幻灯片或 Base 添加评论。未指定位置时创建全文评论,但仅适用于 doc/docx、白名单 Drive file,以及解析为这些类型的 wiki;sheet、slides、Base(bitable) 必须指定 `--block-id`。不同类型的 `--block-id` 格式见下文。支持直接传 docx URL/token、旧版 doc URL(仅全文评论)、Drive file URL/token(**仅支持白名单扩展名,且只支持全文评论**)、sheet URL、slides URL、base/bitable URL,也支持传最终可解析为 doc/docx/file/sheet/slides/base(bitable) 的 wiki URL。
|
|
7
|
+
|
|
8
|
+
## 命令
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
# 默认:未指定位置时添加全文评论
|
|
12
|
+
lark-cli drive +add-comment \
|
|
13
|
+
--doc "https://example.larksuite.com/docx/<DOC_ID>" \
|
|
14
|
+
--content '[{"type":"text","text":"请补充发布说明"}]'
|
|
15
|
+
|
|
16
|
+
# 也可以显式指定为全文评论;旧版 doc URL 仅支持全文评论
|
|
17
|
+
lark-cli drive +add-comment \
|
|
18
|
+
--doc "https://example.larksuite.com/doc/<DOC_ID>" \
|
|
19
|
+
--full-comment \
|
|
20
|
+
--content '[{"type":"text","text":"请补充旧版文档的背景信息"}]'
|
|
21
|
+
|
|
22
|
+
# wiki 链接也可以,shortcut 会先解析到真实 doc/docx token
|
|
23
|
+
lark-cli drive +add-comment \
|
|
24
|
+
--doc "https://example.larksuite.com/wiki/<WIKI_TOKEN>" \
|
|
25
|
+
--content '[{"type":"text","text":"这里需要一段全文评论"}]'
|
|
26
|
+
|
|
27
|
+
# 给受支持的 Drive 普通文件添加全文评论
|
|
28
|
+
# 注意:CLI 会先查询 drive metas,只有白名单扩展名才允许评论
|
|
29
|
+
lark-cli drive +add-comment \
|
|
30
|
+
--doc "https://example.larksuite.com/file/<FILE_TOKEN>" \
|
|
31
|
+
--content '[{"type":"text","text":"请补充文件说明"}]'
|
|
32
|
+
|
|
33
|
+
# 裸 token 也支持,但必须显式声明 --type file
|
|
34
|
+
lark-cli drive +add-comment \
|
|
35
|
+
--doc "<FILE_TOKEN>" --type file \
|
|
36
|
+
--content '[{"type":"text","text":"请补充目录说明"}]'
|
|
37
|
+
|
|
38
|
+
# 给 docx 文档的指定 block 添加局部评论(block_id 可通过 docs +fetch --detail with-ids 获取)
|
|
39
|
+
lark-cli drive +add-comment \
|
|
40
|
+
--doc "https://example.larksuite.com/docx/<DOC_ID>" \
|
|
41
|
+
--block-id "<BLOCK_ID>" \
|
|
42
|
+
--content '[{"type":"text","text":"请补充流程说明"}]'
|
|
43
|
+
|
|
44
|
+
# wiki 链接也支持局部评论;解析结果可以是 docx/sheet/slides,block-id 格式按目标类型传
|
|
45
|
+
lark-cli drive +add-comment \
|
|
46
|
+
--doc "https://example.larksuite.com/wiki/<WIKI_TOKEN>" \
|
|
47
|
+
--block-id "<BLOCK_ID>" \
|
|
48
|
+
--content '[{"type":"text","text":"请补充更细的开发步骤"}]'
|
|
49
|
+
|
|
50
|
+
# 组合文本、@用户、链接元素
|
|
51
|
+
lark-cli drive +add-comment \
|
|
52
|
+
--doc "https://example.larksuite.com/docx/<DOC_ID>" \
|
|
53
|
+
--block-id "<BLOCK_ID>" \
|
|
54
|
+
--content '[{"type":"text","text":"请 "},{"type":"mention_user","text":"ou_xxx"},{"type":"text","text":" 处理,参考 "},{"type":"link","text":"https://example.com"}]'
|
|
55
|
+
|
|
56
|
+
# 给电子表格单元格添加评论(--block-id 格式为 <sheetId>!<cell>)
|
|
57
|
+
lark-cli drive +add-comment \
|
|
58
|
+
--doc "https://example.larksuite.com/sheets/<SHEET_TOKEN>" \
|
|
59
|
+
--block-id "<SHEET_ID>!D6" \
|
|
60
|
+
--content '[{"type":"text","text":"请检查此单元格数据"}]'
|
|
61
|
+
|
|
62
|
+
# wiki 链接指向的 sheet 也支持
|
|
63
|
+
lark-cli drive +add-comment \
|
|
64
|
+
--doc "https://example.larksuite.com/wiki/<WIKI_TOKEN>" \
|
|
65
|
+
--block-id "<SHEET_ID>!A1" \
|
|
66
|
+
--content '[{"type":"text","text":"请 "},{"type":"mention_user","text":"ou_xxx"},{"type":"text","text":" 确认"}]'
|
|
67
|
+
|
|
68
|
+
# 给幻灯片元素添加评论(--block-id 格式为 <slide-block-type>!<xml-id>)
|
|
69
|
+
lark-cli drive +add-comment \
|
|
70
|
+
--doc "https://example.larksuite.com/slides/<PRESENTATION_ID>" \
|
|
71
|
+
--block-id "<SLIDE_BLOCK_TYPE>!<XML_ELEMENT_ID>" \
|
|
72
|
+
--content '[{"type":"text","text":"请调整这个元素的位置"}]'
|
|
73
|
+
|
|
74
|
+
# 例如:给整页 slide 添加评论
|
|
75
|
+
# <slide id="pkk"> ... </slide> => --block-id slide!pkk
|
|
76
|
+
lark-cli drive +add-comment \
|
|
77
|
+
--doc "https://example.larksuite.com/slides/<PRESENTATION_ID>" \
|
|
78
|
+
--block-id "slide!pkk" \
|
|
79
|
+
--content '[{"type":"text","text":"这一页需要补充过渡说明"}]'
|
|
80
|
+
|
|
81
|
+
# 例如:给图片元素添加评论
|
|
82
|
+
# <img id="bPk" ... /> => --block-id img!bPk
|
|
83
|
+
lark-cli drive +add-comment \
|
|
84
|
+
--doc "https://example.larksuite.com/slides/<PRESENTATION_ID>" \
|
|
85
|
+
--block-id "img!bPk" \
|
|
86
|
+
--content '[{"type":"text","text":"这张图片建议换成更清晰的版本"}]'
|
|
87
|
+
|
|
88
|
+
# 例如:给文本 shape 添加评论
|
|
89
|
+
# <shape type="text" id="bPq"> ... </shape> => --block-id shape!bPq
|
|
90
|
+
lark-cli drive +add-comment \
|
|
91
|
+
--doc "https://example.larksuite.com/slides/<PRESENTATION_ID>" \
|
|
92
|
+
--block-id "shape!bPq" \
|
|
93
|
+
--content '[{"type":"text","text":"这段文案可以再精简"}]'
|
|
94
|
+
|
|
95
|
+
# wiki 链接指向的 slides 也支持
|
|
96
|
+
lark-cli drive +add-comment \
|
|
97
|
+
--doc "https://example.larksuite.com/wiki/<WIKI_TOKEN>" \
|
|
98
|
+
--block-id "<SLIDE_BLOCK_TYPE>!<XML_ELEMENT_ID>" \
|
|
99
|
+
--content '[{"type":"text","text":"这里需要补充说明"}]'
|
|
100
|
+
|
|
101
|
+
# 传裸 token 时需要 --type 指定文档类型
|
|
102
|
+
lark-cli drive +add-comment \
|
|
103
|
+
--doc "<SHEET_TOKEN>" --type sheet \
|
|
104
|
+
--block-id "<SHEET_ID>!D6" \
|
|
105
|
+
--content '[{"type":"text","text":"请检查"}]'
|
|
106
|
+
|
|
107
|
+
lark-cli drive +add-comment \
|
|
108
|
+
--doc "<DOCX_TOKEN>" --type docx \
|
|
109
|
+
--content '[{"type":"text","text":"全文评论"}]'
|
|
110
|
+
|
|
111
|
+
# 裸 token + 已知 block_id 的局部评论
|
|
112
|
+
lark-cli drive +add-comment \
|
|
113
|
+
--doc "<PRESENTATION_ID>" --type slides \
|
|
114
|
+
--block-id "<SLIDE_BLOCK_TYPE>!<XML_ELEMENT_ID>" \
|
|
115
|
+
--content '[{"type":"text","text":"slide block comment"}]'
|
|
116
|
+
|
|
117
|
+
# 裸 token + 已知 block_id 的局部评论
|
|
118
|
+
lark-cli drive +add-comment \
|
|
119
|
+
--doc "<DOCX_TOKEN>" --type docx \
|
|
120
|
+
--block-id "<BLOCK_ID>" \
|
|
121
|
+
--content '[{"type":"text","text":"请 "},{"type":"mention_user","text":"ou_xxx"},{"type":"text","text":" 处理,参考 "},{"type":"link","text":"https://example.com"}]'
|
|
122
|
+
|
|
123
|
+
# 如果需要更底层的原生 API,也可以直接调用 V2 协议
|
|
124
|
+
lark-cli schema drive.file.comments.create_v2
|
|
125
|
+
|
|
126
|
+
lark-cli drive file.comments create_v2 \
|
|
127
|
+
--params '{"file_token":"<DOC_TOKEN>"}' \
|
|
128
|
+
--data '{"file_type":"docx","reply_elements":[{"type":"text","text":"全文评论内容"}]}'
|
|
129
|
+
|
|
130
|
+
# Base 记录局部评论;原生 file_type 传 bitable。
|
|
131
|
+
lark-cli drive +add-comment \
|
|
132
|
+
--doc "<BASE_TOKEN>" --type bitable \
|
|
133
|
+
--block-id "<TABLE_ID>!<RECORD_ID>!<VIEW_ID>" \
|
|
134
|
+
--content '[{"type":"text","text":"Base record-local comment"}]'
|
|
135
|
+
|
|
136
|
+
# `base` 也可作为裸 token 类型别名;/base/ 与 /bitable/ URL 都会自动识别为 Base。
|
|
137
|
+
lark-cli drive +add-comment \
|
|
138
|
+
--doc "<BASE_TOKEN>" --type base \
|
|
139
|
+
--block-id "<TABLE_ID>!<RECORD_ID>!<VIEW_ID>" \
|
|
140
|
+
--content '[{"type":"text","text":"Base alias comment"}]'
|
|
141
|
+
|
|
142
|
+
# 预览底层调用链
|
|
143
|
+
lark-cli drive +add-comment \
|
|
144
|
+
--doc "https://example.larksuite.com/docx/<DOC_ID>" \
|
|
145
|
+
--block-id "<BLOCK_ID>" \
|
|
146
|
+
--content '[{"type":"text","text":"请补充流程说明"}]' \
|
|
147
|
+
--dry-run
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 参数
|
|
151
|
+
|
|
152
|
+
| 参数 | 必填 | 说明 |
|
|
153
|
+
|------|------|------|
|
|
154
|
+
| `--doc` | 是 | 文档 URL / token、file / sheet / slides / base / bitable URL,或可解析到 `doc`/`docx`/`file`/`sheet`/`slides`/`base(bitable)` 的 wiki URL |
|
|
155
|
+
| `--type` | 裸 token 时必填 | 文档类型:`doc`、`docx`、`file`、`sheet`、`slides`、`bitable`、`base`;评论 Base 文档推荐传 `bitable`,`base` 仅作为兼容别名兜底。URL 输入时自动识别,无需传 |
|
|
156
|
+
| `--content` | 是 | `reply_elements` JSON 数组字符串。示例:`'[{"type":"text","text":"文本"},{"type":"mention_user","text":"ou_xxx"},{"type":"link","text":"https://example.com"}]'` |
|
|
157
|
+
| `--full-comment` | 否 | 显式指定创建全文评论;未传 `--block-id` 时也会默认走全文评论(仅适用于 doc/docx、白名单 Drive file,以及解析为这些类型的 wiki;不适用于 sheet、slides、Base / bitable) |
|
|
158
|
+
| `--block-id` | 局部评论时必填 | 目标块 ID,可通过 `docs +fetch --detail with-ids` 获取;sheet 用 `<sheetId>!<cell>`,slides 用 `<slide-block-type>!<xml-id>`,Base 用 `<table-id>!<record-id>!<view-id>` |
|
|
159
|
+
|
|
160
|
+
## 行为说明
|
|
161
|
+
|
|
162
|
+
- **局部评论需要先获取 block ID**:先调用 `docs +fetch --doc <TOKEN> --detail with-ids` 获取带有 block ID 的文档内容,然后使用 `--block-id` 指定目标块。
|
|
163
|
+
- **Review 场景优先局部评论**:审阅、校对、逐条指出问题时,必须先尝试定位到具体 block / 单元格 / slide 元素,并逐问题创建局部评论;不要把所有问题合并成一条全文评论。
|
|
164
|
+
- 未传 `--block-id` 时,shortcut 默认创建**全文评论**;也可以显式传 `--full-comment`。全文评论支持 `docx`、旧版 `doc` URL、白名单扩展名的 Drive file,以及最终可解析为 `doc`/`docx`/`file` 的 wiki URL。
|
|
165
|
+
- **Drive file 评论**:仅支持白名单扩展名的普通文件。当前支持:`.md`、`.txt`、`.json`、`.csv`、`.go`、`.js`、`.py`、`.pptx`、`.png`、`.jpg`、`.jpeg`、`.zip`、`.mp3`、`.mp4`。
|
|
166
|
+
- **Drive file 暂不支持**:`.pdf`、`.docx`、`.xlsx` 等未在白名单内的普通文件会被 CLI 拒绝,并提示“当前还不支持这种类型的评论”。这些类型虽然可能接受 OpenAPI 请求,但在页面评论展示上存在问题。
|
|
167
|
+
- **Drive file 只支持全文评论**:file 目标不支持局部评论,不允许传 `--block-id` 或 `--selection-with-ellipsis`。
|
|
168
|
+
- 传 `--block-id` 时,shortcut 创建**局部评论(划词评论)**;该模式支持 `docx`、`sheet`、`slides`、Base / bitable,以及最终可解析为这些类型的 wiki URL。
|
|
169
|
+
- **Sheet 评论**:当 `--doc` 为 sheet URL 或 wiki 解析为 sheet 时,使用 `--block-id "<sheetId>!<cell>"` 指定单元格(如 `a281f9!D6`);sheet 没有全文评论,`--full-comment` 不可用。
|
|
170
|
+
- **Slide 评论**:当 `--doc` 为 slides URL、`--type slides`,或 wiki 解析为 slides 时,必须传 `--block-id "<SLIDE_BLOCK_TYPE>!<XML_ELEMENT_ID>"`。此时 `--full-comment` 和 `--selection-with-ellipsis` 不可用。
|
|
171
|
+
- **Base 记录局部评论**:Base 不支持全局评论,所有评论都挂在记录上;裸 token 可传 `--type bitable` 或 `--type base`,推荐 `bitable`。定位信息必须是 file token(base token)+ `--block-id "<table-id>!<record-id>!<view-id>"`,其中 table/record/view ID 通常分别以 `tbl`/`rec`/`vew` 开头;view_id 只决定被提及时点击通知打开哪个视图,不影响评论挂载点,但必须传。ID 获取参考 [`lark-base`](../../lark-base/SKILL.md)。
|
|
172
|
+
- **Slide 参数映射示例**:`--block-id` 由 PPT XML 元素类型和元素 `id` 组成。例如:
|
|
173
|
+
- `<slide id="pkk">` 对应 `--block-id slide!pkk`,表示给整页评论。
|
|
174
|
+
- `<img id="bPk" ... />` 对应 `--block-id img!bPk`,表示给图片元素评论。
|
|
175
|
+
- `<shape type="text" id="bPq">...</shape>` 对应 `--block-id shape!bPq`,表示给文本 shape 评论。
|
|
176
|
+
|
|
177
|
+
- `--content` 接收结构化评论元素数组;`type` 支持 `text`、`mention_user`、`link`。为便于书写,`mention_user` / `link` 元素可以直接把用户 ID 或链接地址放在 `text` 字段中,shortcut 会转换成 OpenAPI 所需字段。
|
|
178
|
+
- `type=text` 的评论文本不能直接包含 `<`、`>`;应优先传 `<`、`>`。shortcut 在发送前也会自动将 `<`、`>` 转义为 `<`、`>` 作为兜底。
|
|
179
|
+
- **所有 `type=text` 元素的字符总和 ≤ 10000**(按字符算,中英文 / 符号一视同仁)。超过会被 shortcut 在发送前拒绝,并指出累计超长的元素。**拆成多个 text element 不能绕过这个上限**——上限是总额,不是每元素。需要更长内容就缩短或拆成多条评论。
|
|
180
|
+
- 长度限制只对 `type=text` 生效,`mention_user` / `link` 不计入。
|
|
181
|
+
- 写入评论前会自动生成符合 OpenAPI 定义的请求体;shortcut 用户只需要传 `--doc`、`--content`,局部评论再传对应格式的 `--block-id`。
|
|
182
|
+
- `--dry-run` 仅预览调用链和请求体,不会实际写入。
|
|
183
|
+
- 如果需要更底层的控制,仍可改用 `lark-cli schema drive.file.comments.create_v2` + `lark-cli drive file.comments create_v2`。
|
|
184
|
+
- 直接调用原生 `drive.file.comments.create_v2` 时,全文评论省略 `anchor`;docx/sheet/slides 局部评论传 `anchor.block_id`,Base 记录局部评论传 `anchor.block_id`(table_id)、`anchor.base_record_id`、`anchor.base_view_id`。
|
|
185
|
+
- 直接调用原生 `drive.file.comments.*` / `drive.file.comment.replys.*` 评论 Base 文档时,`file_type` 填 `bitable`,不要填 `base`。
|
|
186
|
+
|
|
187
|
+
> [!CAUTION]
|
|
188
|
+
> 这是**写入操作** —— 执行前必须确认用户意图。
|
|
189
|
+
|
|
190
|
+
## 参考
|
|
191
|
+
|
|
192
|
+
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
193
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +apply-permission(申请文档权限)
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
本 skill 对应 shortcut:`lark-cli drive +apply-permission`。
|
|
7
|
+
|
|
8
|
+
向云文档 **Owner** 发起 `view` 或 `edit` 权限申请。申请会以卡片形式推送给 Owner,由 Owner 决定是否通过。
|
|
9
|
+
|
|
10
|
+
> [!CAUTION]
|
|
11
|
+
> 这是**写入操作** —— 会给 Owner 发推送通知,不要批量或自动化调用。可以先用 `--dry-run` 预览。
|
|
12
|
+
|
|
13
|
+
## 身份要求
|
|
14
|
+
|
|
15
|
+
- **仅支持 `user` 身份**(使用 `user_access_token`),不支持 `bot` / `tenant_access_token`;shortcut 已在 `AuthTypes` 中强制限定为 `user`,使用 bot 会被拒。
|
|
16
|
+
- 所需 scope:`docs:permission.member:apply`(若用户缺权限会走统一的 permission 错误路径)。
|
|
17
|
+
|
|
18
|
+
## 命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 通过 URL 申请(type 自动从 URL 推断)
|
|
22
|
+
lark-cli drive +apply-permission \
|
|
23
|
+
--token "https://example.larksuite.com/docx/doxcnxxxxxxxxx" \
|
|
24
|
+
--perm view \
|
|
25
|
+
--remark "安全评估:需查看需求文档内容" --as user
|
|
26
|
+
|
|
27
|
+
# 通过 bare token + 显式 --type
|
|
28
|
+
lark-cli drive +apply-permission \
|
|
29
|
+
--token "doxcnxxxxxxxxx" --type docx \
|
|
30
|
+
--perm edit --as user
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 参数
|
|
34
|
+
|
|
35
|
+
| 参数 | 必填 | 说明 |
|
|
36
|
+
|------|------|------|
|
|
37
|
+
| `--token` | 是 | 目标文档 token 或完整 URL(`/docx/`、`/sheets/`、`/base/`、`/bitable/`、`/file/`、`/wiki/`、`/doc/`、`/mindnote/`、`/slides/` 路径里的 token 会被自动提取) |
|
|
38
|
+
| `--type` | 否 | 目标类型,可选值 `doc` / `sheet` / `file` / `wiki` / `bitable` / `docx` / `mindnote` / `slides`。传 URL 时可由 shortcut 自动推断;bare token 必须显式传 |
|
|
39
|
+
| `--perm` | 是 | 申请的权限,仅支持 `view` 或 `edit`(**不支持 `full_access`**,CLI 侧会直接拒绝) |
|
|
40
|
+
| `--remark` | 否 | 备注,会显示在权限申请卡片上 |
|
|
41
|
+
| `--dry-run` | 否 | 仅打印请求内容,不实际发送 |
|
|
42
|
+
|
|
43
|
+
## 输出
|
|
44
|
+
|
|
45
|
+
API 成功时返回空 `data`(仅 `code: 0, msg: "success"`),对应 CLI 输出:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"ok": true,
|
|
50
|
+
"identity": "user",
|
|
51
|
+
"data": {}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 频率限制
|
|
56
|
+
|
|
57
|
+
- **应用级**:每应用每租户每分钟最多 10 次。
|
|
58
|
+
- **用户级**:同一用户对**同一篇文档**一天不超过 5 次。
|
|
59
|
+
|
|
60
|
+
## 常见错误
|
|
61
|
+
|
|
62
|
+
| 错误码 | 含义 | CLI 处理 |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| `1063006` | 申请次数已达上限(5 次/日) | CLI 自动加 hint:`permission-apply quota reached: each user may request access on the same document at most 5 times per day` |
|
|
65
|
+
| `1063007` | 当前文档无法申请(如:文档禁用外部申请、申请者已拥有对应权限、目标类型不支持 apply) | CLI 自动加 hint:`this document does not accept a permission-apply request ... contact the owner directly` |
|
|
66
|
+
| `1063002` | 无操作权限(如该租户关闭了外部申请) | 由统一 permission 错误路径处理 |
|
|
67
|
+
| `1063004` | 用户所在组织无分享权限 | 由统一 permission 错误路径处理 |
|
|
68
|
+
| `1063005` | 资源已删除 | 需要确认目标文档/节点是否仍存在 |
|
|
69
|
+
| `1066001/1066002` | 服务端异常 / 并发冲突 | 稍后重试 |
|
|
70
|
+
|
|
71
|
+
## 与 wiki URL 的关系
|
|
72
|
+
|
|
73
|
+
传入 `/wiki/<node_token>` 时,shortcut 会直接用 `node_token` 作为路径参数并以 `type=wiki` 调用接口。如果需要先把 wiki 节点解析成 `obj_token`(例如想显式对底层 docx 申请),自行先调 `wiki spaces get_node` 拿 `obj_token + obj_type`,再用 bare token + `--type docx` 调本命令。
|
|
74
|
+
|
|
75
|
+
## 参考
|
|
76
|
+
|
|
77
|
+
- OpenAPI 端点:`POST /open-apis/drive/v1/permissions/:token/members/apply`
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# 文档评论定位字段
|
|
2
|
+
|
|
3
|
+
当用户需要根据评论定位文档正文位置、对文档做 review、区分多处相同引用文本,或把评论落点映射到 `docs +fetch --detail with-ids` 的内容时,docx 文档的评论查询必须带 `need_relation=true`。
|
|
4
|
+
|
|
5
|
+
## 适用范围
|
|
6
|
+
|
|
7
|
+
- 当前只有 `file_type=docx` 支持通过 `need_relation=true` 查询评论的位置,并返回可用于定位正文 block 的 `relation`、`parent_type`、`parent_token` 等字段。
|
|
8
|
+
- 其他文件类型暂不支持通过 `need_relation` 查询评论位置。遇到 sheet、bitable、slides、普通文件等类型的评论时,不要承诺可以用 `need_relation` 精确定位正文位置,应退回普通评论字段、对应资源能力下钻或人工确认。
|
|
9
|
+
|
|
10
|
+
## 调用方式
|
|
11
|
+
|
|
12
|
+
分页列出评论时,把 `need_relation` 放在 query params:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
lark-cli drive file.comments list \
|
|
16
|
+
--params '{"file_token":"<doc_token>","file_type":"docx","is_solved":false,"need_relation":true}'
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
已知评论 ID 批量查询时,把 `need_relation` 放在请求体里:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
lark-cli drive file.comments batch_query \
|
|
23
|
+
--params '{"file_token":"<doc_token>","file_type":"docx"}' \
|
|
24
|
+
--data '{"comment_ids":["<comment_id>"],"need_relation":true}'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
同时获取文档内容,并要求返回 block id:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
lark-cli docs +fetch --doc '<doc_token_or_url>' --detail with-ids
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 字段含义
|
|
34
|
+
|
|
35
|
+
- `relation`:评论在文档内容中的结构化位置。`relation.relation` 是一个 JSON 字符串,需要再解析一次;其中 `positionInfo.blockID` 是最关键字段,用于匹配 `docs +fetch --detail with-ids` 返回的文档 block。
|
|
36
|
+
- `relation.content_deleted`:评论引用的内容是否已被删除。为 `true` 时,不要假设还能在当前正文中找到原位置。
|
|
37
|
+
- `parent_type`:评论所在的父级嵌入资源类型。常见值包括 `SHEET_BLOCK`、`BITABLE_BLOCK`、`WHITEBOARD_BLOCK`,表示评论落在文档内嵌电子表格、多维表格或画板内部。
|
|
38
|
+
- `parent_token`:父级嵌入资源 token。对 sheet / bitable / whiteboard 内部评论,服务端可能无法给出内部单元格、记录或画板节点的文档 block 级 `relation`,但可以通过 `parent_type` + `parent_token` 定位到文档里的父级嵌入 block。
|
|
39
|
+
|
|
40
|
+
## 准确度分级
|
|
41
|
+
|
|
42
|
+
输出定位结论时,必须区分以下三类,不要把弱推断说成精确定位:
|
|
43
|
+
|
|
44
|
+
| 等级 | 判定条件 | 输出口径 |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| `relation 精确` | `relation.relation` 中有 `positionInfo.blockID`,且能在 `docs +fetch --detail with-ids` 中匹配到同一 block | 可说“准确定位到 block” |
|
|
47
|
+
| `父级资源精确,内部需下钻` | 只有父级嵌入资源的 `blockID` / `parent_type` / `parent_token`,或内部资源的 `positionInfo` 为空 | 可说“准确定位到嵌入资源;内部单元格/记录/节点需用对应 skill 下钻确认” |
|
|
48
|
+
| `弱匹配/推断` | 只能依赖 `quote`、序号、当前展示顺序或文本搜索 | 必须标明“推断”,说明歧义来源和需要的补充信息 |
|
|
49
|
+
|
|
50
|
+
## 返回示例
|
|
51
|
+
|
|
52
|
+
普通 docx block 上的评论会返回 `relation`。注意 `relation.relation` 本身是字符串,需要再 JSON parse 一次:
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"comment_id": "7646774324967295982",
|
|
57
|
+
"quote": "code2",
|
|
58
|
+
"relation": {
|
|
59
|
+
"content_deleted": false,
|
|
60
|
+
"relation": "{\"22-doc_token_xxx\":{\"objType\":22,\"index\":2,\"objVersion\":10,\"positionInfo\":{\"blockID\":\"block_id_xxx\"}}}"
|
|
61
|
+
},
|
|
62
|
+
"parent_type": null,
|
|
63
|
+
"parent_token": null
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
把 `relation.relation` 再解析后,取 `positionInfo.blockID`:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"22-doc_token_xxx": {
|
|
72
|
+
"objType": 22,
|
|
73
|
+
"index": 2,
|
|
74
|
+
"objVersion": 10,
|
|
75
|
+
"positionInfo": {
|
|
76
|
+
"blockID": "block_id_xxx"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
然后在 `docs +fetch --detail with-ids` 的结果里查找同一个 block id,例如:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"block_id": "block_id_xxx",
|
|
87
|
+
"block_type": "code",
|
|
88
|
+
"text": "code1\ncode2"
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
嵌入 sheet / bitable / whiteboard 内部评论可能没有可用 `relation`,但会返回父级标记:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"comment_id": "7646775036988148672",
|
|
97
|
+
"quote": "记录 2",
|
|
98
|
+
"relation": null,
|
|
99
|
+
"parent_type": "BITABLE_BLOCK",
|
|
100
|
+
"parent_token": "bitable_app_token_xxx_table_id_xxx"
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
这种情况下,用 `parent_type` 判断目标是嵌入资源,再用 `parent_token` 匹配 `docs +fetch --detail with-ids` 中的 bitable / sheet block。定位粒度是文档里的父级嵌入 block,不是内部记录、字段或单元格。
|
|
105
|
+
|
|
106
|
+
画板内部评论的返回形态类似:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"comment_id": "7646775036988148673",
|
|
111
|
+
"quote": "画板节点文本",
|
|
112
|
+
"relation": null,
|
|
113
|
+
"parent_type": "WHITEBOARD_BLOCK",
|
|
114
|
+
"parent_token": "whiteboard_token_xxx"
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
此时 `parent_token` 对应 `docs +fetch --detail with-ids` 结果中 `<whiteboard>` 的 `token` 属性,例如:
|
|
119
|
+
|
|
120
|
+
```xml
|
|
121
|
+
<whiteboard id="whiteboard_block_id_xxx" token="whiteboard_token_xxx"></whiteboard>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
匹配到这个 `<whiteboard>` 后,`id` 就是文档正文里的父级画板 block id。定位粒度是文档里的画板 block;如果需要继续定位到画板内部具体节点,需要再用画板能力读取画板内部结构。
|
|
125
|
+
|
|
126
|
+
## 定位流程
|
|
127
|
+
|
|
128
|
+
1. 确认目标是 `file_type=docx`;只有 docx 文档支持通过 `need_relation` 查询评论位置。
|
|
129
|
+
2. 用 `drive file.comments list` 或 `drive file.comments batch_query` 获取评论,并带 `need_relation=true`。
|
|
130
|
+
3. 用 `docs +fetch --detail with-ids` 获取文档内容。
|
|
131
|
+
4. 对每条评论先看 `relation`:
|
|
132
|
+
- 如果存在 `relation.relation`,解析这个 JSON 字符串。
|
|
133
|
+
- 从解析结果里取 `positionInfo.blockID`。
|
|
134
|
+
- 在 `docs +fetch` 结果中查找相同 block id,这就是评论对应的文档 block。
|
|
135
|
+
5. 如果没有可用 `relation`,但有 `parent_type` 和 `parent_token`:
|
|
136
|
+
- `SHEET_BLOCK`:定位到文档中的 sheet 嵌入 block;`parent_token` 通常包含 sheet token 和 sheet id,必要时取 `_` 前的 token 与文档 block 的嵌入资源 token 对比。
|
|
137
|
+
- `BITABLE_BLOCK`:定位到文档中的 bitable 嵌入 block;`parent_token` 通常包含 bitable app token 和 table id,必要时取 `_` 前的 token 与文档 block 的嵌入资源 token 对比。
|
|
138
|
+
- `WHITEBOARD_BLOCK`:定位到文档中的 whiteboard 嵌入 block;`parent_token` 对应 `docs +fetch --detail with-ids` 中 `<whiteboard>` 的 `token` 属性。
|
|
139
|
+
- 这种场景能定位到父级嵌入 block,但通常不能仅凭评论接口定位到嵌入资源内部的具体单元格、字段、记录或画板节点。
|
|
140
|
+
6. 只有在 `relation`、`parent_type`、`parent_token` 都缺失时,才退回使用 `quote` 文本做弱匹配;`quote` 是评论接口返回的引用文本字段。弱匹配不能区分多处相同文本。
|
|
141
|
+
|
|
142
|
+
## 嵌入资源内部定位
|
|
143
|
+
|
|
144
|
+
### Sheet 内部评论
|
|
145
|
+
|
|
146
|
+
- `parent_token` 常见格式是 `<spreadsheet_token>_<sheet_id>`;也可能在 `relation.relation` 中看到 `subToken` 为 `3-<spreadsheet_token>`。
|
|
147
|
+
- 评论接口通常只把 `positionInfo.blockID` 指到文档里的 `<sheet>` block,内部 sheet 的 `positionInfo` 可能为空。
|
|
148
|
+
- 如果 `quote` 是 `C3`、`A1` 这类单元格坐标,可拆出 `spreadsheet_token` / `sheet_id` 后用 `lark-sheets` 读取该单元格确认:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
lark-cli sheets +read \
|
|
152
|
+
--spreadsheet-token '<spreadsheet_token>' \
|
|
153
|
+
--sheet-id '<sheet_id>' \
|
|
154
|
+
--range '<cell>'
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
- 准确度口径:父级 sheet block 可由 relation/parent token 精确定位;单元格坐标若只来自 `quote`,应说明“单元格来自 quote,已通过 sheets 读取验证”,不要说它来自 `positionInfo`。
|
|
158
|
+
|
|
159
|
+
### Bitable / Base 内部评论
|
|
160
|
+
|
|
161
|
+
- `parent_token` 常见格式是 `<base_token>_<table_id>`,其中 `table_id` 通常以 `tbl` 开头。解析时优先按最后一个 `_tbl` 边界拆分,避免 base token 内出现 `_` 时误拆。
|
|
162
|
+
- 评论接口可能只返回 `parent_type=BITABLE_BLOCK` 和 `parent_token`,没有 `relation`;即使有 relation,也通常只足够定位到文档里的 `<bitable>` block。
|
|
163
|
+
- 下钻读取时切到 `lark-base`,最少确认表、字段、记录:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
lark-cli base +table-list --base-token '<base_token>'
|
|
167
|
+
lark-cli base +field-list --base-token '<base_token>' --table-id '<table_id>'
|
|
168
|
+
lark-cli base +record-list --base-token '<base_token>' --table-id '<table_id>' --limit 200 --format json
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
- 如果 `quote` 是某个稳定业务值,优先用字段/记录数据做精确匹配;如果 `quote` 只是“第 N 条”“第 N 行”这类 UI 序号,只能基于当前记录顺序推断对应记录,必须输出为“推断”,并说明评论接口没有返回 `record_id` / `field_id`。
|
|
172
|
+
- 如果 `record-list` 返回 `has_more=true`,不要基于第一页下全局结论;继续分页或说明只能覆盖已读取范围。
|
|
173
|
+
- 需要写入时,如果评论没有字段信息,不要自行猜字段;除非用户给出默认规则,否则请求用户确认字段,或明确说明将使用哪个字段作为默认。
|
|
174
|
+
|
|
175
|
+
### Whiteboard 内部评论
|
|
176
|
+
|
|
177
|
+
- `parent_token` 对应文档 XML 中 `<whiteboard token="...">`;先用它匹配文档里的 whiteboard block。
|
|
178
|
+
- 若要定位画板内部节点,切到 `lark-whiteboard` 读取 raw 节点结构:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
lark-cli whiteboard +query \
|
|
182
|
+
--whiteboard-token '<whiteboard_token>' \
|
|
183
|
+
--output_as raw
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
- 如果 raw 节点中存在唯一匹配 `quote` 的文本节点,可定位到该节点;如果有多个相同文本节点,仍然是弱匹配,需要结合位置、样式、用户描述或人工确认。
|
|
187
|
+
- 修改画板节点前,先说明匹配到的节点 id 和文本;复杂画板不要只凭 `quote` 批量替换全部同名节点。
|
|
188
|
+
|
|
189
|
+
## 使用原则
|
|
190
|
+
|
|
191
|
+
- Review 文档时,不要只依赖 `quote` 文本定位评论;多处相同文本会产生歧义。
|
|
192
|
+
- 能拿到 `relation.positionInfo.blockID` 时,以 block id 为准,再用 block 内容理解上下文。
|
|
193
|
+
- 对嵌入 sheet / bitable / whiteboard 内的评论,以父级嵌入 block 作为文档正文定位点;如需继续定位到表格单元格、多维表格记录或画板内部节点,需要再调用对应 sheet / bitable / whiteboard 能力读取内部数据。
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Drive 评论查询、统计与回复指南
|
|
2
|
+
|
|
3
|
+
> 前置条件:先阅读 [`../SKILL.md`](../SKILL.md) 的“评论能力入口”,添加评论参数细节见 [`lark-drive-add-comment.md`](lark-drive-add-comment.md),reaction 见 [`lark-drive-reactions.md`](lark-drive-reactions.md)。
|
|
4
|
+
|
|
5
|
+
## 评论模式
|
|
6
|
+
|
|
7
|
+
- `drive +add-comment` 支持全文评论和局部评论。
|
|
8
|
+
- 全文评论:未传 `--block-id` 时默认启用,也可显式传 `--full-comment`;支持 `docx`、旧版 `doc` URL、白名单扩展名的 Drive file,以及最终解析为 `doc` / `docx` / `file` 的 wiki URL。
|
|
9
|
+
- 局部评论:传 `--block-id` 时启用;`docx` 支持文本定位或 block id,`sheet` 支持 `<sheetId>!<cell>`,`slides` 支持 `<slide-block-type>!<xml-id>`,wiki URL 解析到这些类型时也支持对应局部评论。
|
|
10
|
+
- Drive file 只支持全文评论,不支持局部评论。支持扩展名:`.md`、`.txt`、`.json`、`.csv`、`.go`、`.js`、`.py`、`.pptx`、`.png`、`.jpg`、`.jpeg`、`.zip`、`.mp3`、`.mp4`。`.pdf`、`.docx`、`.xlsx` 等未在白名单内的普通文件暂不支持。
|
|
11
|
+
- Review / 审阅 / 校对 / 逐条指出问题场景优先使用局部评论,不要把多个可定位问题汇总成一条全文评论。
|
|
12
|
+
- `drive +add-comment` 的 `--content` 需要传 `reply_elements` JSON 数组字符串,例如 `--content '[{"type":"text","text":"正文"}]'`。
|
|
13
|
+
- `slides` 评论要求显式传 `--block-id <slide-block-type>!<xml-id>`;CLI 会将其拆分后写入 `anchor.block_id` 和 `anchor.slide_block_type`。其中 `<xml-id>` 是 PPT XML 协议中的元素 `id`;不支持 `--selection-with-ellipsis` 和 `--full-comment`。
|
|
14
|
+
- 评论写入内容里的文本不能直接出现 `<`、`>`;提交前应转义为 `<`、`>`。`drive +add-comment` 会对 `type=text` 文本元素自动兜底转义;直接调用原生评论 API 时需要自行转义。
|
|
15
|
+
- 如果 wiki 解析后不是 `doc` / `docx` / `file` / `sheet` / `slides`,不要用 `+add-comment`。
|
|
16
|
+
|
|
17
|
+
## 查询默认口径
|
|
18
|
+
|
|
19
|
+
`drive file.comments list` 默认必须传 `is_solved:false`,即仅查询未解决评论。即使用户说“所有评论”“全部评论”“把评论都列出来”,只要没有明确提到要包含已解决评论,仍然按默认口径查询未解决评论。仅当用户明确要求包含已解决评论时,才可省略 `is_solved` 参数。
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 默认查询:仅未解决评论
|
|
23
|
+
lark-cli drive file.comments list --params '{"file_token":"xxx","file_type":"docx","is_solved":false}'
|
|
24
|
+
|
|
25
|
+
# 包含已解决评论:仅当用户明确要求时使用
|
|
26
|
+
lark-cli drive file.comments list --params '{"file_token":"xxx","file_type":"docx"}'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 评论卡片与统计
|
|
30
|
+
|
|
31
|
+
- `drive file.comments list` 返回的 `items` 是评论卡片列表,每个 `item` 对应用户界面中的一张评论卡片,不是平铺的互动消息列表。
|
|
32
|
+
- 创建第一条评论时会同时创建该卡片里的第一条 reply;真正承载正文的是 `item.reply_list.replies`,其中第一条 reply 在用户视角下就是这张卡片里的“评论本身”。
|
|
33
|
+
- 统计“评论数”或“评论卡片数”:统计 `items` 长度;全量统计时对所有分页返回的 `items` 长度累加。
|
|
34
|
+
- 统计“回复数”:统计所有 `item.reply_list.replies` 长度之和,再减去 `items` 长度。
|
|
35
|
+
- 统计“总互动数”:统计所有 `item.reply_list.replies` 长度之和,包含每张评论卡片里的首条评论。
|
|
36
|
+
- 如果 `item.has_more=true`,说明该评论卡片下还有更多回复未包含在当前返回中;需要继续调用 `drive file.comment.replys list` 拉全后,再做全量回复数或总互动数统计。
|
|
37
|
+
|
|
38
|
+
## 排序
|
|
39
|
+
|
|
40
|
+
- 只有当用户明确提到“最新评论”“最后评论”“最早评论”时,才需要按 `create_time` 排序。
|
|
41
|
+
- 排序前必须拉完所有评论分页,不能只取第一页。
|
|
42
|
+
- “最新评论”/“最后评论”:按 `create_time` 降序取第一条。
|
|
43
|
+
- “最早评论”:按 `create_time` 升序取第一条。
|
|
44
|
+
- 用户只说“第一条评论”时,直接使用 `drive file.comments list` 返回的第一条,不需要额外排序。
|
|
45
|
+
|
|
46
|
+
## 回复限制
|
|
47
|
+
|
|
48
|
+
- 回复前先检查目标评论状态。
|
|
49
|
+
- `is_whole=true` 的全文评论不支持回复;遇到时提示“全文评论不支持回复”。
|
|
50
|
+
- `is_solved=true` 的已解决评论不支持回复;遇到时提示“该评论已被解决,无法回复”。
|
|
51
|
+
- 当目标评论不能回复时,只提示限制,不要自动替用户寻找其他可回复评论。
|
|
52
|
+
|
|
53
|
+
## batch_query 与 list
|
|
54
|
+
|
|
55
|
+
- `drive file.comments batch_query` 用于已知评论 ID 后的批量查询,需要传入具体评论 ID 列表。
|
|
56
|
+
- `drive file.comments list` 用于分页获取评论列表,适合统计评论总数、遍历所有评论、获取最新或最后 N 条评论等场景。
|
|
57
|
+
|
|
58
|
+
## 评论定位字段
|
|
59
|
+
|
|
60
|
+
- 需要根据评论定位到文档正文位置时(例如根据评论 review 文档、区分多处相同引用文本、把评论落点映射到 `docs +fetch` 的 block),先确认目标是 `file_type=docx`,再阅读 [`lark-drive-comment-location.md`](lark-drive-comment-location.md)。
|
|
61
|
+
- 其他文档类型暂不支持返回定位字段。
|
|
62
|
+
|
|
63
|
+
## 原生 API
|
|
64
|
+
|
|
65
|
+
需要更底层地直接调用评论 V2 协议时,先查看 schema,再调用原生命令。全文评论省略 `anchor`,局部评论传 `anchor.block_id`。
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
lark-cli schema drive.file.comments.create_v2
|
|
69
|
+
lark-cli drive file.comments create_v2 \
|
|
70
|
+
--params '{"file_token":"<DOC_TOKEN>"}' \
|
|
71
|
+
--data '{"file_type":"docx","reply_elements":[{"type":"text","text":"全文评论内容"}]}'
|
|
72
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
## `drive +cover`
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
|
|
4
|
+
|
|
5
|
+
列出或下载 Drive 文件的稳定封面预设。这个 shortcut 只暴露 `spec`,不暴露底层 `cover_option` 细节。
|
|
6
|
+
|
|
7
|
+
### 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 列出内置封面规格
|
|
11
|
+
lark-cli drive +cover \
|
|
12
|
+
--file-token "<FILE_TOKEN>" \
|
|
13
|
+
--list-only
|
|
14
|
+
|
|
15
|
+
# 下载 square 规格封面
|
|
16
|
+
lark-cli drive +cover \
|
|
17
|
+
--file-token "<FILE_TOKEN>" \
|
|
18
|
+
--spec square \
|
|
19
|
+
--output ./artifacts/report-cover
|
|
20
|
+
|
|
21
|
+
# 下载默认大图封面,并在文件冲突时覆盖
|
|
22
|
+
lark-cli drive +cover \
|
|
23
|
+
--file-token "<FILE_TOKEN>" \
|
|
24
|
+
--spec default \
|
|
25
|
+
--output ./artifacts/report-cover.png \
|
|
26
|
+
--if-exists overwrite
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 参数
|
|
30
|
+
|
|
31
|
+
| 参数 | 必填 | 说明 |
|
|
32
|
+
|------|------|------|
|
|
33
|
+
| `--file-token` | 是 | Drive 文件 token |
|
|
34
|
+
| `--spec` | 条件必填 | 封面预设:`default` / `icon` / `grid` / `small` / `middle` / `big` / `square` |
|
|
35
|
+
| `--version` | 否 | 文件版本号 |
|
|
36
|
+
| `--list-only` | 否 | 仅返回可选规格,不下载 |
|
|
37
|
+
| `--output` | 条件必填 | 下载到本地的输出路径 |
|
|
38
|
+
| `--if-exists` | 否 | 输出冲突策略:`error`(默认)/ `overwrite` / `rename` |
|
|
39
|
+
|
|
40
|
+
### 输出约定
|
|
41
|
+
|
|
42
|
+
- 查询态返回:
|
|
43
|
+
- `mode=list`
|
|
44
|
+
- `file_token`
|
|
45
|
+
- `candidates[]`
|
|
46
|
+
- `next_action`
|
|
47
|
+
- 下载态返回:
|
|
48
|
+
- `mode=download`
|
|
49
|
+
- `file_token`
|
|
50
|
+
- `selected_spec`
|
|
51
|
+
- `output_path`
|
|
52
|
+
- `status`
|
|
53
|
+
|
|
54
|
+
### 内置规格
|
|
55
|
+
|
|
56
|
+
- `default` -- 标准大图封面
|
|
57
|
+
- `icon` -- 列表小图标
|
|
58
|
+
- `grid` -- 网格/卡片流小封面
|
|
59
|
+
- `small` -- PC 小图
|
|
60
|
+
- `middle` -- 中等尺寸封面
|
|
61
|
+
- `big` -- 偏移动端的大图封面
|
|
62
|
+
- `square` -- 正方形裁剪封面
|
|
63
|
+
|
|
64
|
+
### 关键约束
|
|
65
|
+
|
|
66
|
+
- 不传 `--list-only` 时,必须显式传 `--spec` 和 `--output`
|
|
67
|
+
- `drive +cover` 只返回静态预设规格,不伪造后端“可下载状态”
|
|
68
|
+
- 不返回底层 `bus_type` / `platform` / `width` / `height` / `policy` 等实现细节
|
|
69
|
+
- 下载时直接调用 `preview_download`
|
|
70
|
+
- 未显式带扩展名时,会优先根据响应头补扩展名,缺失时回退到 `.png`
|
|
71
|
+
|
|
72
|
+
### 错误提示
|
|
73
|
+
|
|
74
|
+
- 下载某个 `--spec` 时如果返回 **HTTP 404**,表示这个文件**没有该规格对应的封面产物**,应视为“该规格不可用”,而不是默认按网络抖动或临时失败处理
|
|
75
|
+
|
|
76
|
+
### 参考
|
|
77
|
+
|
|
78
|
+
- [lark-drive](../SKILL.md) -- Drive 总入口
|
|
79
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|