@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,48 @@
|
|
|
1
|
+
# im +feed-shortcut-remove
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
|
|
4
|
+
|
|
5
|
+
This skill maps to shortcut: `lark-cli im +feed-shortcut-remove`. Underlying API: `POST /open-apis/im/v2/feed_shortcuts/remove`.
|
|
6
|
+
|
|
7
|
+
## What it does
|
|
8
|
+
|
|
9
|
+
Removes one or more chats from the **current user's** feed shortcuts.
|
|
10
|
+
|
|
11
|
+
- Only **CHAT-type** shortcuts are supported (`feed_card_id` must be an `oc_xxx`).
|
|
12
|
+
- Batch up to **10 chat IDs per call**.
|
|
13
|
+
- Currently only supports **user identity** (`--as user`).
|
|
14
|
+
- Removing a chat that is not currently in the shortcut list is idempotent success: the call returns `ok:true`, `failure_count=0`, and no `failed_shortcuts` entry for that chat.
|
|
15
|
+
|
|
16
|
+
## Commands
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Remove a single feed shortcut
|
|
20
|
+
lark-cli im +feed-shortcut-remove --as user --chat-id oc_xxx
|
|
21
|
+
|
|
22
|
+
# Remove multiple feed shortcuts in one call
|
|
23
|
+
lark-cli im +feed-shortcut-remove --as user --chat-id oc_a,oc_b
|
|
24
|
+
lark-cli im +feed-shortcut-remove --as user --chat-id oc_a --chat-id oc_b
|
|
25
|
+
|
|
26
|
+
# Preview the request
|
|
27
|
+
lark-cli im +feed-shortcut-remove --as user --chat-id oc_xxx --dry-run
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Required | Description |
|
|
33
|
+
|------|------|------|
|
|
34
|
+
| `--chat-id <oc_xxx>` | yes | open_chat_id to remove from feed shortcuts; repeatable or comma-separated; max 10 per call |
|
|
35
|
+
| `--as user` | yes | Server only accepts user_access_token for this API |
|
|
36
|
+
|
|
37
|
+
## Response
|
|
38
|
+
|
|
39
|
+
The response uses the same batch ledger as [`+feed-shortcut-create`](lark-im-feed-shortcut-create.md#response): `total`, `success_count`, `failure_count`, `succeeded_shortcuts`, and `failed_shortcuts`. A non-empty `failed_shortcuts` is a partial failure: stdout carries `ok:false` with the full ledger and the process exits non-zero (currently exit `1`).
|
|
40
|
+
|
|
41
|
+
## Permissions
|
|
42
|
+
|
|
43
|
+
- Required scope: `im:feed.shortcut:write`
|
|
44
|
+
- Only available with user identity (`--as user`).
|
|
45
|
+
|
|
46
|
+
## Note
|
|
47
|
+
|
|
48
|
+
- To see what is currently in the shortcut list before removing, run [`+feed-shortcut-list`](lark-im-feed-shortcut-list.md). Use `--no-detail` when you only need the `feed_card_id` values.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# im +flag-cancel
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
|
|
4
|
+
|
|
5
|
+
This skill maps to shortcut: `lark-cli im +flag-cancel`. Underlying API: `POST /open-apis/im/v1/flags/cancel`.
|
|
6
|
+
|
|
7
|
+
## Double-Cancel Behavior (Important)
|
|
8
|
+
|
|
9
|
+
A message can have flags on both layers simultaneously:
|
|
10
|
+
- Message layer: `(default, message)`
|
|
11
|
+
- Feed layer: `(thread, feed)` or `(msg_thread, feed)` depending on chat type
|
|
12
|
+
|
|
13
|
+
**When no `--flag-type` is specified, the shortcut performs best-effort double-cancel**: the message-layer flag is always removed; the feed-layer flag is also removed when the chat type can be determined (otherwise a warning is printed on stderr and the feed layer is skipped). The server handles cancel requests for non-existent flags idempotently, so this is safe.
|
|
14
|
+
|
|
15
|
+
**Feed layer item_type is determined by chat_mode**:
|
|
16
|
+
- Topic-style chat (`chat_mode=topic`) → `item_type=thread`
|
|
17
|
+
- Regular chat (`chat_mode=group`) → `item_type=msg_thread`
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Double-cancel both layers (recommended default)
|
|
23
|
+
lark-cli im +flag-cancel --as user --message-id om_xxx
|
|
24
|
+
|
|
25
|
+
# Only cancel message layer
|
|
26
|
+
lark-cli im +flag-cancel --as user --message-id om_xxx --flag-type message
|
|
27
|
+
|
|
28
|
+
# Only cancel feed layer (need to specify item-type)
|
|
29
|
+
lark-cli im +flag-cancel --as user --message-id om_xxx --item-type thread --flag-type feed
|
|
30
|
+
|
|
31
|
+
# Preview request
|
|
32
|
+
lark-cli im +flag-cancel --as user --message-id om_xxx --dry-run
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Parameters
|
|
36
|
+
|
|
37
|
+
| Parameter | Required | Description |
|
|
38
|
+
|------|------|------|
|
|
39
|
+
| `--message-id <om_xxx>` | Required | Message ID |
|
|
40
|
+
| `--flag-type <name>` | No | `message` or `feed`; **when omitted, best-effort double-cancel of both layers** |
|
|
41
|
+
| `--item-type <name>` | No | `default\|thread\|msg_thread`; required when `--flag-type feed` |
|
|
42
|
+
| `--as user` | Required | Currently only supports user identity |
|
|
43
|
+
|
|
44
|
+
## Idempotency
|
|
45
|
+
|
|
46
|
+
The server doesn't return an error for cancel requests when the flag doesn't exist, so repeated `+cancel` calls are idempotent.
|
|
47
|
+
|
|
48
|
+
## Permissions
|
|
49
|
+
|
|
50
|
+
- Required scopes: `im:feed.flag:write`, `im:message.group_msg:get_as_user`, `im:message.p2p_msg:get_as_user`, `im:chat:read`
|
|
51
|
+
- The message/chat read scopes are used by the default double-cancel path to auto-detect the feed-layer item type.
|
|
52
|
+
|
|
53
|
+
## Note
|
|
54
|
+
|
|
55
|
+
- **Do not call +flag-list for verification**: If the cancel API returns success, the flag is removed. Calling +flag-list to verify is expensive (requires full pagination) and unnecessary.
|
|
56
|
+
|
|
57
|
+
## Finding Message ID Efficiently
|
|
58
|
+
|
|
59
|
+
If you have message content but not the message ID:
|
|
60
|
+
|
|
61
|
+
1. **Use `+messages-search`** to find the message by content, then extract `message_id` from the result
|
|
62
|
+
2. **Do NOT use `+flag-list`** to find the message — it requires full pagination and is very inefficient
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Search by message content to find message_id
|
|
66
|
+
lark-cli im +messages-search --as user --query "message content here" -q '.data.items[0].message_id'
|
|
67
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# im +flag-create
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
|
|
4
|
+
|
|
5
|
+
This skill maps to shortcut: `lark-cli im +flag-create`. Underlying API: `POST /open-apis/im/v1/flags`.
|
|
6
|
+
|
|
7
|
+
## Default Behavior
|
|
8
|
+
|
|
9
|
+
- **Message-layer flag** (default): `item_type=default, flag_type=message`
|
|
10
|
+
- **Feed-layer flag**: Use `--flag-type feed` — automatically detects chat type to determine `item_type`:
|
|
11
|
+
- Topic-style chat (`chat_mode=topic`) → `item_type=thread`
|
|
12
|
+
- Regular chat (`chat_mode=group`) → `item_type=msg_thread`
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Flag a message (default: message-layer)
|
|
18
|
+
lark-cli im +flag-create --as user --message-id om_xxx
|
|
19
|
+
|
|
20
|
+
# Create feed-layer flag (auto-detects chat type)
|
|
21
|
+
lark-cli im +flag-create --as user --message-id om_xxx --flag-type feed
|
|
22
|
+
|
|
23
|
+
# Explicit item-type override (rarely needed)
|
|
24
|
+
lark-cli im +flag-create --as user --message-id om_xxx --item-type thread --flag-type feed
|
|
25
|
+
|
|
26
|
+
# Preview request (dry-run, doesn't send)
|
|
27
|
+
lark-cli im +flag-create --as user --message-id om_xxx --dry-run
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Required | Description |
|
|
33
|
+
|------|------|------|
|
|
34
|
+
| `--message-id <om_xxx>` | Required | Message ID |
|
|
35
|
+
| `--flag-type <name>` | No | `message` (default) or `feed` |
|
|
36
|
+
| `--item-type <name>` | No | Override auto-detection: `default\|thread\|msg_thread` (rarely needed) |
|
|
37
|
+
| `--as user` | Required | Currently only supports user identity |
|
|
38
|
+
|
|
39
|
+
## Valid Combinations
|
|
40
|
+
|
|
41
|
+
The server only accepts these `(item_type, flag_type)` pairs:
|
|
42
|
+
|
|
43
|
+
- `(default, message)` — regular message flag
|
|
44
|
+
- `(thread, feed)` — feed flag in topic-style chat
|
|
45
|
+
- `(msg_thread, feed)` — feed flag in regular chat
|
|
46
|
+
|
|
47
|
+
## Permissions
|
|
48
|
+
|
|
49
|
+
- Required scopes: `im:feed.flag:write`, `im:message.group_msg:get_as_user`, `im:message.p2p_msg:get_as_user`, `im:chat:read`
|
|
50
|
+
- The message/chat read scopes are used when `--flag-type feed` is used without explicit `--item-type` so the CLI can auto-detect chat type.
|
|
51
|
+
- If missing, CLI will prompt with `lark-cli auth login --scope "..."`
|
|
52
|
+
|
|
53
|
+
## Note
|
|
54
|
+
|
|
55
|
+
- **Do not call +flag-list for verification**: If the create API returns success, the flag is created. Calling +flag-list to verify is expensive (requires full pagination) and unnecessary.
|
|
56
|
+
|
|
57
|
+
## Finding Message ID Efficiently
|
|
58
|
+
|
|
59
|
+
If you have message content but not the message ID:
|
|
60
|
+
|
|
61
|
+
1. **Use `+messages-search`** to find the message by content, then extract `message_id` from the result
|
|
62
|
+
2. **Do NOT use `+flag-list`** to find the message — it requires full pagination and is very inefficient
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Search by message content to find message_id
|
|
66
|
+
lark-cli im +messages-search --as user --query "message content here" -q '.data.items[0].message_id'
|
|
67
|
+
```
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# im +flag-list
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
|
|
4
|
+
|
|
5
|
+
This skill maps to shortcut: `lark-cli im +flag-list`. Underlying API: `GET /open-apis/im/v1/flags`.
|
|
6
|
+
|
|
7
|
+
## Sorting Rules (Important)
|
|
8
|
+
|
|
9
|
+
The API returns data sorted by `update_time` in **ascending order**, meaning **oldest first, newest last**. When `has_more=true`, you cannot simply take the first page's items as the latest flags — you must paginate through all pages and take the last item on the last page as the newest.
|
|
10
|
+
|
|
11
|
+
Recommended: use `--page-all` for auto-pagination to get the complete list, then use `-q '.data.flag_items[-1]'` to get the latest item.
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Fetch first page (default page-size=50)
|
|
17
|
+
lark-cli im +flag-list --as user
|
|
18
|
+
|
|
19
|
+
# Manual pagination with custom page size
|
|
20
|
+
lark-cli im +flag-list --as user --page-size 30 --page-token <page_token>
|
|
21
|
+
|
|
22
|
+
# Auto-paginate to get all flags (recommended)
|
|
23
|
+
lark-cli im +flag-list --as user --page-all
|
|
24
|
+
|
|
25
|
+
# Auto-paginate + get the latest flag
|
|
26
|
+
lark-cli im +flag-list --as user --page-all -q '.data.flag_items[-1]'
|
|
27
|
+
|
|
28
|
+
# Auto-paginate + get only item_id list
|
|
29
|
+
lark-cli im +flag-list --as user --page-all -q '.data.flag_items[].item_id'
|
|
30
|
+
|
|
31
|
+
# Disable auto-enrichment of message content (enabled by default)
|
|
32
|
+
lark-cli im +flag-list --as user --page-all --enrich-feed-thread=false
|
|
33
|
+
|
|
34
|
+
# Limit max pages (default 20, max 1000)
|
|
35
|
+
lark-cli im +flag-list --as user --page-all --page-limit 10
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Parameters
|
|
39
|
+
|
|
40
|
+
| Parameter | Default | Description |
|
|
41
|
+
|------|------|------|
|
|
42
|
+
| `--page-size <n>` | 50 | Range 1-50 (server max is 50) |
|
|
43
|
+
| `--page-token <token>` | empty | Pagination token from previous page; empty string must still be provided |
|
|
44
|
+
| `--page-all` | false | Auto-paginate to fetch all pages and merge results |
|
|
45
|
+
| `--page-limit <n>` | 20 | Max pages in `--page-all` mode (max 1000) |
|
|
46
|
+
| `--enrich-feed-thread` | true | Auto-enrich feed-layer thread entries with message content (calls `im.messages.mget`) |
|
|
47
|
+
| `--as user` | Required | Currently only supports user identity |
|
|
48
|
+
|
|
49
|
+
## Response Structure
|
|
50
|
+
|
|
51
|
+
The response has `data` as the main body, with fields described below:
|
|
52
|
+
|
|
53
|
+
| Field | Type | Description |
|
|
54
|
+
|------|------|------|
|
|
55
|
+
| `flag_items` | array | List of currently existing (not canceled) flags, sorted by `update_time` ascending |
|
|
56
|
+
| `delete_flag_items` | array | List of previously canceled flags, sorted by `update_time` ascending |
|
|
57
|
+
| `messages` | array | Message content inlined by the server for `(default, message)` type flags |
|
|
58
|
+
| `has_more` | boolean | Whether there's a next page |
|
|
59
|
+
| `page_token` | string | Pagination token for the next page |
|
|
60
|
+
|
|
61
|
+
Note: `(thread, feed)` / `(msg_thread, feed)` entries are automatically enriched via `mget` by the shortcut, and written to the corresponding entry's `message` field.
|
|
62
|
+
|
|
63
|
+
## Limitations
|
|
64
|
+
|
|
65
|
+
- **delete_flag_items are not enriched**: Message content is only fetched for active flags (`flag_items`), not canceled flags (`delete_flag_items`). If you need message content for a canceled flag, query the message separately using `+messages-mget --message-ids <item_id>`.
|
|
66
|
+
|
|
67
|
+
## Response Example (Sanitized)
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"data": {
|
|
72
|
+
"delete_flag_items": [
|
|
73
|
+
{
|
|
74
|
+
"create_time": "xxx",
|
|
75
|
+
"flag_type": "xxx",
|
|
76
|
+
"item_id": "xxx",
|
|
77
|
+
"item_type": "xxx",
|
|
78
|
+
"update_time": "xxx"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"flag_items": [
|
|
82
|
+
{
|
|
83
|
+
"create_time": "xxx",
|
|
84
|
+
"flag_type": "xxx",
|
|
85
|
+
"item_id": "xxx",
|
|
86
|
+
"item_type": "xxx",
|
|
87
|
+
"update_time": "xxx"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"has_more": false,
|
|
91
|
+
"messages": [],
|
|
92
|
+
"page_token": "xxx"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Permissions
|
|
98
|
+
|
|
99
|
+
- Base scope: `im:feed.flag:read`
|
|
100
|
+
- Additional scopes only when `--enrich-feed-thread=true` needs to fetch missing message content: `im:message.group_msg:get_as_user`, `im:message.p2p_msg:get_as_user`
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# im default message enrichment (reactions / update_time)
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
This is the single source of truth for the automatic message-enrichment contract shared by the four message-pulling shortcuts — [`+messages-mget`](lark-im-messages-mget.md), [`+chat-messages-list`](lark-im-chat-messages-list.md), [`+messages-search`](lark-im-messages-search.md), [`+threads-messages-list`](lark-im-threads-messages-list.md). They automatically attach `reactions` and `update_time` to each returned message, so callers do **not** need to invoke the raw [`im.reactions.batch_query`](lark-im-reactions.md) API separately.
|
|
6
|
+
|
|
7
|
+
- **`reactions`** — populated from `im.reactions.batch_query` as `{counts, details}`. The field is only attached when the server actually returns data; messages with no reactions omit it. Replies inside `thread_replies` are enriched alongside their parent (collected into the same id set), so outer and inner messages follow identical semantics. The id set is split into batches of <= 20 (server-side cap) and the batches are dispatched with bounded concurrency (up to 4 in flight), so high-N pulls — e.g. page 50 + ~500 expanded thread replies = 550 ids → ⌈550 / 20⌉ = **28 batches** — finish in a few round-trips instead of serializing into tens of seconds.
|
|
8
|
+
- **`update_time`** — emitted only when `updated == true` (message was actually edited). The server echoes `update_time == create_time` for unedited messages too, but the CLI gates that output away so consumers don't misread every message as "edited".
|
|
9
|
+
- **Opt-out** — each shortcut accepts `--no-reactions` to skip the extra round-trip when the caller only needs message bodies.
|
|
10
|
+
|
|
11
|
+
## Thread replies expansion
|
|
12
|
+
|
|
13
|
+
`+messages-mget` and `+chat-messages-list` also auto-expand thread replies: any returned message that carries a `thread_id` triggers a fetch of that thread's replies, which are attached as a `thread_replies` array on the host. Fetches across distinct threads run with bounded concurrency (up to 4 in flight). Two caps gate the result:
|
|
14
|
+
|
|
15
|
+
- **`perThread` (default 50)** — max replies fetched for any single thread.
|
|
16
|
+
- **`totalLimit` (default 500)** — max cumulative replies across all threads on the page.
|
|
17
|
+
|
|
18
|
+
`totalLimit` is enforced **post-fetch against actual returned reply counts**, not against the planned per-thread ceiling — so a chat with many short threads (e.g. 12 threads × 3 actual replies = 36 ≪ 500) attaches every thread, even though the planned sum (12 × 50 = 600) would exceed the budget. When a thread's actual replies push the running total across `totalLimit`, that thread is truncated to fit the remaining budget and its host is flagged with `thread_has_more: true` so consumers know the server has more.
|
|
19
|
+
|
|
20
|
+
On per-thread fetch failure the host gets `thread_replies_error: true` (mirrors the reactions data contract); budget-truncated or budget-skipped threads do NOT carry that flag.
|
|
21
|
+
|
|
22
|
+
## Resource auto-download (`--download-resources`, opt-in)
|
|
23
|
+
|
|
24
|
+
`+chat-messages-list`, `+messages-mget`, and `+threads-messages-list` accept an **opt-in** `--download-resources` flag. It is **off by default** — when omitted, output and the request count are identical to before (no `resources` block, no extra round-trips).
|
|
25
|
+
|
|
26
|
+
When enabled:
|
|
27
|
+
|
|
28
|
+
- Each message that carries downloadable resources gets a `resources` array. Eligible types: `image`, `file`, `audio`, `video`, `media`, and post-embedded `img` / `media`. **Stickers are excluded** (Feishu does not support fetching sticker resources).
|
|
29
|
+
- Each ref is `{message_id, key, type, local_path, size_bytes}` — `type` is `image` or `file`; `message_id` is the id used to fetch the resource. For a standalone message that is its own id; for a resource inside a **merge_forward** it is the **top-level container** `message_id`, not the sub-item's own id (the download endpoint rejects sub-item ids with `234003 File not in msg` and can only fetch a forwarded resource through the container). Thread replies each get their own block.
|
|
30
|
+
- Files download into `./lark-im-resources/` under the current working directory. Each distinct `(message_id, file_key)` is downloaded once (deduped) with bounded concurrency (up to 3 in flight).
|
|
31
|
+
- **Fail-silent isolation**: a single resource that fails to download is flagged `"error": true` with one stderr line (`warning: resource_download_failed: <message_id>/<key>: ...`); the main message and the other resources are unaffected.
|
|
32
|
+
- Output paths are confined to `./lark-im-resources/` by the same guards as [`+messages-resources-download`](lark-im-messages-resources-download.md) (abnormal `file_key` with path separators / `..` / absolute paths is rejected).
|
|
33
|
+
- **Scope**: the download uses `GET /open-apis/im/v1/messages/:message_id/resources/:file_key`, which requires `im:message:readonly` — already declared in each listing command's `Scopes`, so `--download-resources` needs **no extra scope** beyond what's required to read the messages (user identity also needs `im:message.group_msg:get_as_user` / `im:message.p2p_msg:get_as_user`; bot identity needs `im:message.group_msg` / `im:message.p2p_msg:readonly`, all already declared). Works under both user and bot identity. If a bot was registered before `im:message:readonly` was granted, a single resource will fail-silently (`error: true` + stderr warning) rather than aborting the pull.
|
|
34
|
+
|
|
35
|
+
Use `--download-resources` when you want the binaries on disk in one pass; otherwise the message content keeps the inline resource markers (e.g. ``, `<file .../>`, `<audio key="..." duration="Xs"/>`) and you can fetch individual resources later with [`+messages-resources-download`](lark-im-messages-resources-download.md).
|
|
36
|
+
|
|
37
|
+
## Scope requirement
|
|
38
|
+
|
|
39
|
+
The default enrichment requires `im:message.reactions:read`, already declared in each shortcut's `UserScopes` / `BotScopes` (or `Scopes` for the user-only search command), so the framework's pre-flight check surfaces a `missing_scope` error before the request is sent. Bots that were registered before this scope was added need an incremental authorization in the Feishu developer console; users can run:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
lark-cli auth login --scope "im:message.reactions:read"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Data contract — missing field ≠ fetch failure
|
|
46
|
+
|
|
47
|
+
| Situation | Output |
|
|
48
|
+
|---|---|
|
|
49
|
+
| Message has no reactions | `reactions` field is omitted (not `{}`, not an empty list) |
|
|
50
|
+
| Message was never edited | `update_time` field is omitted |
|
|
51
|
+
| Whole batch failed | Messages in that batch carry no `reactions`; one line on stderr: `warning: reactions_batch_query_failed: ...` |
|
|
52
|
+
| Some message IDs failed | Failed IDs go to stderr: `warning: reactions_partial_failed: N message(s) failed (...)` |
|
|
53
|
+
|
|
54
|
+
When deciding "has the user already reacted?", branch on the **presence of the `reactions` field plus its `counts` contents**, not on whether a value is `null` — the field's absence means "no data attached" (which usually means "no reactions exist"), not "fetch failed".
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# im +messages-mget
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Fetch message details in batch. Given a list of message IDs, this returns the full content for multiple messages in one call and automatically resolves sender names.
|
|
6
|
+
|
|
7
|
+
By default the response also carries a `reactions` block (counts + details from `im.reactions.batch_query`) on every message that has reactions, and `update_time` on messages that were actually edited. Replies inside `thread_replies` participate in the same batched enrichment. Pass `--no-reactions` to skip the extra round-trip. Pass `--download-resources` to additionally download message resources (image/file/audio/video/media + post-embedded, excluding stickers) into `./lark-im-resources/` and attach a `resources` block — off by default, no extra requests when omitted. See [message enrichment](lark-im-message-enrichment.md) for the full contract.
|
|
8
|
+
|
|
9
|
+
> **Supports both `--as user` (default) and `--as bot`.**
|
|
10
|
+
|
|
11
|
+
This skill maps to the shortcut: `lark-cli im +messages-mget` (internally calls `GET /open-apis/im/v1/messages/mget`).
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Fetch a single message
|
|
17
|
+
lark-cli im +messages-mget --message-ids om_xxx
|
|
18
|
+
|
|
19
|
+
# Fetch multiple messages in batch (comma-separated)
|
|
20
|
+
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb,om_ccc"
|
|
21
|
+
|
|
22
|
+
# JSON output
|
|
23
|
+
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb" --format json
|
|
24
|
+
|
|
25
|
+
# Preview the request without executing it
|
|
26
|
+
lark-cli im +messages-mget --message-ids "om_aaa" --dry-run
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Parameters
|
|
30
|
+
|
|
31
|
+
| Parameter | Required | Limits | Description |
|
|
32
|
+
|------|------|------|------|
|
|
33
|
+
| `--message-ids <ids>` | Yes | At least one, max 50, `om_xxx` format, comma-separated | Message ID list |
|
|
34
|
+
| `--no-reactions` | No | — | Skip auto-fetching the `reactions` block |
|
|
35
|
+
| `--download-resources` | No | — | Download message resources (image/file/audio/video/media + post-embedded, excluding stickers) into `./lark-im-resources/` and attach a `resources` block. Off by default |
|
|
36
|
+
|
|
37
|
+
## Output Fields
|
|
38
|
+
|
|
39
|
+
| Field | Description |
|
|
40
|
+
|------|------|
|
|
41
|
+
| `messages` | Message array |
|
|
42
|
+
| `total` | Number of messages returned |
|
|
43
|
+
|
|
44
|
+
Each message contains:
|
|
45
|
+
|
|
46
|
+
| Field | Description |
|
|
47
|
+
|------|------|
|
|
48
|
+
| `message_id` | Message ID |
|
|
49
|
+
| `msg_type` | Message type (`text`, `image`, `file`, etc.) |
|
|
50
|
+
| `create_time` | Creation time |
|
|
51
|
+
| `sender` | Sender information (includes `name`) |
|
|
52
|
+
| `content` | Message content |
|
|
53
|
+
|
|
54
|
+
## Usage Scenarios
|
|
55
|
+
|
|
56
|
+
### Scenario 1: Fetch the full content of a specific message
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
lark-cli im +messages-mget --message-ids om_xxx --format json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Scenario 2: Fetch multiple messages in one batch
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb,om_ccc"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Scenario 3: Use together with the message list command
|
|
69
|
+
|
|
70
|
+
First get message IDs via `+chat-messages-list`, then fetch full content via `+messages-mget`:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Get the message list
|
|
74
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --format json
|
|
75
|
+
|
|
76
|
+
# Fetch specific message details
|
|
77
|
+
lark-cli im +messages-mget --message-ids "om_aaa,om_bbb"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Common Errors and Troubleshooting
|
|
81
|
+
|
|
82
|
+
| Symptom | Root Cause | Solution |
|
|
83
|
+
|---------|---------|---------|
|
|
84
|
+
| `--message-ids requires at least one message ID` | No message ID was provided | Provide at least one message ID |
|
|
85
|
+
| `invalid message ID: must start with om_` | Invalid message ID format | Message IDs must start with `om_` |
|
|
86
|
+
| Permission denied | Message read permission is missing | Ensure the app has `im:message:readonly` and `contact:user.base:readonly` enabled |
|
|
87
|
+
| Empty result | Message IDs do not exist or are not accessible | Verify the IDs and access permissions |
|
|
88
|
+
|
|
89
|
+
## AI Usage Guidance
|
|
90
|
+
|
|
91
|
+
1. **Use JSON for full content:** table output truncates content. Use `--format json` when the full body matters.
|
|
92
|
+
2. **Sender names are already enriched:** the command resolves sender names automatically, so no extra lookup is required.
|
|
93
|
+
3. **Images are rendered as placeholders:** image messages appear as placeholders such as ``. Use `+messages-resources-download` when you need the binary resource.
|
|
94
|
+
4. **Batching is more efficient:** fetching multiple IDs in one request is better than calling the API repeatedly.
|
|
95
|
+
|
|
96
|
+
## References
|
|
97
|
+
|
|
98
|
+
- [lark-im](../SKILL.md) - all IM commands
|
|
99
|
+
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|