@wagemule/daemon 0.1.0 → 0.1.3
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 +9 -2
- package/dist/main.cjs +270 -101
- package/dist/main.cjs.map +3 -3
- package/dist/skills/larksuite/lark-approval/SKILL.md +56 -0
- package/dist/skills/larksuite/lark-attendance/SKILL.md +57 -0
- package/dist/skills/larksuite/lark-base/SKILL.md +349 -0
- package/dist/skills/larksuite/lark-base/references/dashboard-block-data-config.md +350 -0
- package/dist/skills/larksuite/lark-base/references/examples.md +140 -0
- package/dist/skills/larksuite/lark-base/references/formula-field-guide.md +735 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-advperm-disable.md +83 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-advperm-enable.md +80 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-base-copy.md +74 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-base-create.md +68 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-base-get.md +39 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-cell-value.md +151 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-arrange.md +83 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-create.md +108 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-get.md +57 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-list.md +53 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-update.md +84 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-create.md +73 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-delete.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-get.md +59 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-list.md +52 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-update.md +69 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-dashboard.md +240 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-data-analysis-sop.md +88 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-data-query.md +451 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-create.md +104 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-delete.md +51 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-get.md +42 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-list.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-search-options.md +48 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field-update.md +166 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-field.md +23 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-create.md +87 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-delete.md +64 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-get.md +68 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-list.md +73 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-delete.md +68 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-list.md +84 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-questions.md +23 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form-update.md +82 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-form.md +24 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-history.md +16 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-create.md +58 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-update.md +53 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-delete.md +62 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-history-list.md +86 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-share-link-create.md +72 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-upload-attachment.md +50 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record-upsert.md +64 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-record.md +29 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-create.md +89 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-delete.md +83 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-get.md +87 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-list.md +81 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-role-update.md +94 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-shortcut-field-properties.md +481 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-create.md +62 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-delete.md +51 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-get.md +46 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-list.md +43 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table-update.md +49 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-table.md +20 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-create.md +50 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-delete.md +48 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-card.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-filter.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-group.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-sort.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-timebar.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get-visible-fields.md +28 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-get.md +38 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-list.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-rename.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-card.md +55 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-filter.md +181 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-group.md +65 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-sort.md +63 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-timebar.md +51 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view-set-visible-fields.md +46 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-view.md +44 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-create.md +180 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-disable.md +94 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-enable.md +94 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-get.md +147 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-guide.md +718 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-list.md +124 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-schema.md +935 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow-update.md +167 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workflow.md +23 -0
- package/dist/skills/larksuite/lark-base/references/lark-base-workspace.md +18 -0
- package/dist/skills/larksuite/lark-base/references/lookup-field-guide.md +510 -0
- package/dist/skills/larksuite/lark-base/references/role-config.md +539 -0
- package/dist/skills/larksuite/lark-calendar/SKILL.md +154 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-create.md +109 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-freebusy.md +124 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-room-find.md +113 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-rsvp.md +42 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-suggestion.md +125 -0
- package/dist/skills/larksuite/lark-calendar/references/lark-calendar-update.md +105 -0
- package/dist/skills/larksuite/lark-contact/SKILL.md +45 -0
- package/dist/skills/larksuite/lark-contact/references/lark-contact-get-user.md +19 -0
- package/dist/skills/larksuite/lark-contact/references/lark-contact-search-user.md +124 -0
- package/dist/skills/larksuite/lark-doc/SKILL.md +69 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-create.md +89 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-fetch.md +141 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-md.md +71 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-media-download.md +50 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-media-insert.md +114 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-media-preview.md +41 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-search.md +217 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-update.md +252 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-whiteboard.md +100 -0
- package/dist/skills/larksuite/lark-doc/references/lark-doc-xml.md +169 -0
- package/dist/skills/larksuite/lark-doc/references/style/lark-doc-create-workflow.md +56 -0
- package/dist/skills/larksuite/lark-doc/references/style/lark-doc-style.md +106 -0
- package/dist/skills/larksuite/lark-doc/references/style/lark-doc-update-workflow.md +54 -0
- package/dist/skills/larksuite/lark-drive/SKILL.md +343 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-add-comment.md +169 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-apply-permission.md +77 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-create-folder.md +73 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-create-shortcut.md +103 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-delete.md +79 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-download.md +31 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-export-download.md +50 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-export.md +119 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-import.md +154 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-move.md +120 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-pull.md +137 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-push.md +162 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-reactions.md +113 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-search.md +239 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-status.md +137 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-task-result.md +302 -0
- package/dist/skills/larksuite/lark-drive/references/lark-drive-upload.md +101 -0
- package/dist/skills/larksuite/lark-event/SKILL.md +145 -0
- package/dist/skills/larksuite/lark-event/references/lark-event-im.md +86 -0
- package/dist/skills/larksuite/lark-im/SKILL.md +162 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-create.md +162 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-identity.md +55 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-list.md +113 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-messages-list.md +142 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-search.md +136 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-chat-update.md +84 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-flag-cancel.md +67 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-flag-create.md +67 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-flag-list.md +100 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-mget.md +95 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-reply.md +222 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-search.md +217 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-messages-send.md +223 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-reactions.md +297 -0
- package/dist/skills/larksuite/lark-im/references/lark-im-threads-messages-list.md +111 -0
- package/dist/skills/larksuite/lark-mail/SKILL.md +648 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-decline-receipt.md +115 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-create.md +123 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-edit.md +400 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-forward.md +232 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-message.md +230 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-messages.md +108 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-reply-all.md +206 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-reply.md +242 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-send-receipt.md +120 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-send.md +216 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-share-to-chat.md +87 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-signature.md +98 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-template-create.md +129 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-template-update.md +150 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-thread.md +111 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-triage.md +122 -0
- package/dist/skills/larksuite/lark-mail/references/lark-mail-watch.md +94 -0
- package/dist/skills/larksuite/lark-markdown/SKILL.md +46 -0
- package/dist/skills/larksuite/lark-markdown/references/lark-markdown-create.md +86 -0
- package/dist/skills/larksuite/lark-markdown/references/lark-markdown-fetch.md +79 -0
- package/dist/skills/larksuite/lark-markdown/references/lark-markdown-overwrite.md +85 -0
- package/dist/skills/larksuite/lark-minutes/SKILL.md +139 -0
- package/dist/skills/larksuite/lark-minutes/references/lark-minutes-download.md +137 -0
- package/dist/skills/larksuite/lark-minutes/references/lark-minutes-search.md +206 -0
- package/dist/skills/larksuite/lark-minutes/references/lark-minutes-upload.md +104 -0
- package/dist/skills/larksuite/lark-okr/SKILL.md +133 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-contentblock.md +359 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-detail.md +84 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-list.md +90 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-entities.md +329 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-image-upload.md +116 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-create.md +81 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-get.md +62 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-update.md +81 -0
- package/dist/skills/larksuite/lark-openapi-explorer/SKILL.md +153 -0
- package/dist/skills/larksuite/lark-shared/SKILL.md +138 -0
- package/dist/skills/larksuite/lark-sheets/SKILL.md +345 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-data.md +197 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-images.md +59 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-style-and-merge.md +141 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-dropdown.md +133 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-filter-views.md +193 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-float-images.md +125 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-formula.md +88 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-row-column-management.md +151 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-sheet-management.md +164 -0
- package/dist/skills/larksuite/lark-sheets/references/lark-sheets-spreadsheet-management.md +134 -0
- package/dist/skills/larksuite/lark-skill-maker/SKILL.md +85 -0
- package/dist/skills/larksuite/lark-slides/SKILL.md +525 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training.xml +912 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/hr--onboarding.xml +933 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--dark_general.xml +3763 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--light_general.xml +3378 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--work_report.xml +1099 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary.xml +4420 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--self_intro.xml +696 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--market_analysis.xml +898 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_intro.xml +2838 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion.xml +687 -0
- package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
- package/dist/skills/larksuite/lark-slides/references/examples.md +261 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-create.md +137 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-edit-workflows.md +142 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-media-upload.md +128 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-replace-slide.md +239 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-create.md +221 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +186 -0
- package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
- package/dist/skills/larksuite/lark-slides/references/slide-templates.md +201 -0
- package/dist/skills/larksuite/lark-slides/references/slides_demo.xml +226 -0
- package/dist/skills/larksuite/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
- package/dist/skills/larksuite/lark-slides/references/template-catalog.md +464 -0
- package/dist/skills/larksuite/lark-slides/references/template-index.json +1853 -0
- package/dist/skills/larksuite/lark-slides/references/xml-format-guide.md +369 -0
- package/dist/skills/larksuite/lark-slides/references/xml-schema-quick-ref.md +215 -0
- package/dist/skills/larksuite/lark-slides/scripts/layout_lint.py +349 -0
- package/dist/skills/larksuite/lark-slides/scripts/layout_lint_test.py +159 -0
- package/dist/skills/larksuite/lark-slides/scripts/template_tool.py +970 -0
- package/dist/skills/larksuite/lark-slides/scripts/template_tool_test.py +177 -0
- package/dist/skills/larksuite/lark-task/SKILL.md +165 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-assign.md +38 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-comment.md +28 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-complete.md +27 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-create.md +57 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-followers.md +35 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-get-my-tasks.md +55 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-get-related-tasks.md +53 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-reminder.md +36 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-reopen.md +27 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-search.md +41 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-set-ancestor.md +32 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-subscribe-event.md +86 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-create.md +35 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-members.md +36 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-search.md +38 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-task-add.md +38 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-update.md +37 -0
- package/dist/skills/larksuite/lark-task/references/lark-task-upload-attachment.md +59 -0
- package/dist/skills/larksuite/lark-vc/SKILL.md +168 -0
- package/dist/skills/larksuite/lark-vc/references/lark-vc-notes.md +126 -0
- package/dist/skills/larksuite/lark-vc/references/lark-vc-recording.md +153 -0
- package/dist/skills/larksuite/lark-vc/references/lark-vc-search.md +176 -0
- package/dist/skills/larksuite/lark-vc-agent/SKILL.md +121 -0
- package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-events.md +247 -0
- package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-join.md +133 -0
- package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +111 -0
- package/dist/skills/larksuite/lark-whiteboard/SKILL.md +144 -0
- package/dist/skills/larksuite/lark-whiteboard/references/connectors.md +102 -0
- package/dist/skills/larksuite/lark-whiteboard/references/content.md +40 -0
- package/dist/skills/larksuite/lark-whiteboard/references/image.md +80 -0
- package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
- package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-update.md +100 -0
- package/dist/skills/larksuite/lark-whiteboard/references/layout.md +374 -0
- package/dist/skills/larksuite/lark-whiteboard/references/schema.md +357 -0
- package/dist/skills/larksuite/lark-whiteboard/references/style.md +318 -0
- package/dist/skills/larksuite/lark-whiteboard/references/typography.md +73 -0
- package/dist/skills/larksuite/lark-whiteboard/routes/dsl.md +107 -0
- package/dist/skills/larksuite/lark-whiteboard/routes/mermaid.md +27 -0
- package/dist/skills/larksuite/lark-whiteboard/routes/svg.md +54 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/architecture.md +433 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/bar-chart.md +187 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/comparison.md +135 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/fishbone.md +238 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/flowchart.md +185 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/flywheel.md +195 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/funnel.md +101 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/line-chart.md +214 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/mermaid.md +130 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/milestone.md +139 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/organization.md +173 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/photo-showcase.md +126 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/pyramid.md +99 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/swimlane.md +371 -0
- package/dist/skills/larksuite/lark-whiteboard/scenes/treemap.md +216 -0
- package/dist/skills/larksuite/lark-wiki/SKILL.md +111 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-delete-space.md +205 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-move.md +183 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-copy.md +72 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-create.md +127 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-list.md +88 -0
- package/dist/skills/larksuite/lark-wiki/references/lark-wiki-space-list.md +68 -0
- package/dist/skills/larksuite/lark-workflow-meeting-summary/SKILL.md +104 -0
- package/dist/skills/larksuite/lark-workflow-standup-report/SKILL.md +120 -0
- package/package.json +2 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# im +messages-reply
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Reply to a specific message. Supports both user identity (`--as user`) and bot identity (`--as bot`). Also supports thread replies.
|
|
6
|
+
|
|
7
|
+
This skill maps to the shortcut: `lark-cli im +messages-reply` (internally calls `POST /open-apis/im/v1/messages/:message_id/reply`).
|
|
8
|
+
|
|
9
|
+
## Safety Constraints
|
|
10
|
+
|
|
11
|
+
Replies sent by this tool are visible to other people. Before calling it, you **must** confirm with the user:
|
|
12
|
+
|
|
13
|
+
1. Which message to reply to
|
|
14
|
+
2. The reply content
|
|
15
|
+
3. Which identity to use (user or bot)
|
|
16
|
+
|
|
17
|
+
**Do not** send a reply without explicit user approval.
|
|
18
|
+
|
|
19
|
+
When using `--as bot`, the reply is sent in the app's name, so make sure the app has already been added to the target chat.
|
|
20
|
+
|
|
21
|
+
When using `--as user`, the reply is sent as the authorized end user and requires the `im:message.send_as_user` and `im:message` scopes.
|
|
22
|
+
|
|
23
|
+
## Choose The Right Content Flag
|
|
24
|
+
|
|
25
|
+
| Need | Recommended flag | Why |
|
|
26
|
+
|------|------|------|
|
|
27
|
+
| Reply with plain text exactly as written | `--text` | Wrapped directly to `{"text":"..."}` |
|
|
28
|
+
| Reply with simple Markdown and accept conversion | `--markdown` | Automatically converted to `post` JSON |
|
|
29
|
+
| Precisely control the reply payload | `--content` | You provide the exact JSON |
|
|
30
|
+
| Reply with media | `--image` / `--file` / `--video` / `--audio` | Shortcut uploads local files automatically |
|
|
31
|
+
|
|
32
|
+
### `--text` vs `--markdown`
|
|
33
|
+
|
|
34
|
+
- Use `--text` when the reply should remain plain text and you want exact control over line breaks, spacing, indentation, code samples, or literal Markdown characters.
|
|
35
|
+
- Use `--markdown` when you want a lightweight formatted reply and you accept that the shortcut will normalize and rewrite parts of the content before sending.
|
|
36
|
+
- Use `--content` when you need exact `post` JSON, a card, a title, multiple locales, or any structure that `--markdown` cannot express reliably.
|
|
37
|
+
|
|
38
|
+
## What `--markdown` Really Does
|
|
39
|
+
|
|
40
|
+
`--markdown` does **not** send arbitrary raw Markdown to the API.
|
|
41
|
+
|
|
42
|
+
The shortcut:
|
|
43
|
+
|
|
44
|
+
1. Forces `msg_type=post`
|
|
45
|
+
2. Resolves remote Markdown images like ``
|
|
46
|
+
3. Normalizes the Markdown for Feishu post rendering
|
|
47
|
+
4. Wraps the final content as:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{"zh_cn":{"content":[[{"tag":"md","text":"..."}]]}}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
So `--markdown` is a convenience mode, not a full Markdown compatibility layer.
|
|
54
|
+
|
|
55
|
+
### Current Markdown Caveats
|
|
56
|
+
|
|
57
|
+
- It does **not** promise full CommonMark / GitHub Flavored Markdown support.
|
|
58
|
+
- It always becomes a `post` payload with a single `zh_cn` locale.
|
|
59
|
+
- It does **not** let you set a `post` title.
|
|
60
|
+
- Headings are rewritten:
|
|
61
|
+
- `# Title` becomes `#### Title`
|
|
62
|
+
- `##` to `######` are normalized to `#####` when the content contains H1-H3
|
|
63
|
+
- Consecutive headings are separated with blank lines after heading normalization.
|
|
64
|
+
- Block spacing and line breaks may be normalized during conversion.
|
|
65
|
+
- Code blocks are preserved as code blocks.
|
|
66
|
+
- Excess blank lines are compressed.
|
|
67
|
+
- Only remote `http://...`, `https://...`, or already-uploaded `img_xxx` Markdown images are kept reliably.
|
|
68
|
+
- Local paths in Markdown image syntax like `` are **not** auto-uploaded by `--markdown`.
|
|
69
|
+
- If remote Markdown image handling fails, that image is removed with a warning.
|
|
70
|
+
|
|
71
|
+
If you need exact output, use `--msg-type post --content ...` instead of `--markdown`.
|
|
72
|
+
|
|
73
|
+
## Preserving Formatting
|
|
74
|
+
|
|
75
|
+
If the reply contains multiple lines, code blocks, indentation, tabs, or a lot of escaping, prefer `$'...'`.
|
|
76
|
+
|
|
77
|
+
### When formatting must be preserved
|
|
78
|
+
|
|
79
|
+
Use `--text` plus `$'...'`:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
lark-cli im +messages-reply --message-id om_xxx --text $'Received\nI will check this today.\nOwner: alice'
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
lark-cli im +messages-reply --message-id om_xxx --text $'```sql\nselect * from jobs;\n```'
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
This keeps the reply as plain text instead of converting it to a `post`.
|
|
90
|
+
|
|
91
|
+
### When formatting does not need exact preservation
|
|
92
|
+
|
|
93
|
+
Use `--markdown`:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
lark-cli im +messages-reply --message-id om_xxx --markdown $'## Follow-up\n\n- I reproduced it\n- I am fixing it'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
This is better for quick readable formatting, but the final payload may still differ from the source text because headings and spacing are normalized before sending.
|
|
100
|
+
|
|
101
|
+
## Commands
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Reply to a message (plain text, --text is recommended for normal replies)
|
|
105
|
+
lark-cli im +messages-reply --message-id om_xxx --text "Received"
|
|
106
|
+
|
|
107
|
+
# Equivalent manual JSON
|
|
108
|
+
lark-cli im +messages-reply --message-id om_xxx --content '{"text":"Received"}'
|
|
109
|
+
|
|
110
|
+
# Reply as a bot
|
|
111
|
+
lark-cli im +messages-reply --message-id om_xxx --text "bot reply" --as bot
|
|
112
|
+
|
|
113
|
+
# Reply with preserved multi-line text
|
|
114
|
+
lark-cli im +messages-reply --message-id om_xxx --text $'Line 1\nLine 2\n indented line'
|
|
115
|
+
|
|
116
|
+
# Reply inside the thread (message appears in the target thread)
|
|
117
|
+
lark-cli im +messages-reply --message-id om_xxx --text "Let's discuss this" --reply-in-thread
|
|
118
|
+
|
|
119
|
+
# Reply with basic Markdown (will be converted to post JSON)
|
|
120
|
+
lark-cli im +messages-reply --message-id om_xxx --markdown $'## Reply\n\n- item 1\n- item 2'
|
|
121
|
+
|
|
122
|
+
# If you need exact post structure, send JSON directly
|
|
123
|
+
lark-cli im +messages-reply --message-id om_xxx --msg-type post --content '{"zh_cn":{"title":"Reply","content":[[{"tag":"text","text":"Detailed content"}]]}}'
|
|
124
|
+
|
|
125
|
+
# Reply with a local image (uploaded automatically before sending)
|
|
126
|
+
lark-cli im +messages-reply --message-id om_xxx --image ./photo.png
|
|
127
|
+
|
|
128
|
+
# Reply with a local file (uploaded automatically before sending)
|
|
129
|
+
lark-cli im +messages-reply --message-id om_xxx --file ./report.pdf
|
|
130
|
+
|
|
131
|
+
# Reply with a local video (--video-cover is required as the video cover)
|
|
132
|
+
lark-cli im +messages-reply --message-id om_xxx --video ./demo.mp4 --video-cover ./cover.png
|
|
133
|
+
|
|
134
|
+
# With an idempotency key
|
|
135
|
+
lark-cli im +messages-reply --message-id om_xxx --text "Received" --idempotency-key my-unique-id
|
|
136
|
+
|
|
137
|
+
# Preview the request without executing it
|
|
138
|
+
lark-cli im +messages-reply --message-id om_xxx --markdown $'## Test\n\nhello' --dry-run
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Parameters
|
|
142
|
+
|
|
143
|
+
| Parameter | Required | Description |
|
|
144
|
+
|------|------|------|
|
|
145
|
+
| `--message-id <id>` | Yes | ID of the message being replied to (`om_xxx`) |
|
|
146
|
+
| `--msg-type <type>` | No | Message type (default `text`). If you use `--text` / `--markdown` / media flags, the effective type is inferred automatically. Explicitly setting a conflicting `--msg-type` fails validation |
|
|
147
|
+
| `--content <json>` | One content option | Exact reply content as JSON. The JSON must match the effective `--msg-type` |
|
|
148
|
+
| `--text <string>` | One content option | Plain text reply. Best default when you need exact text and formatting preservation |
|
|
149
|
+
| `--markdown <string>` | One content option | Convenience Markdown input. Internally converted to `post` JSON with Feishu-specific normalization |
|
|
150
|
+
| `--image <path\|key>` | One content option | Local image path or `image_key` (`img_xxx`) |
|
|
151
|
+
| `--file <path\|key>` | One content option | Local file path or `file_key` (`file_xxx`) |
|
|
152
|
+
| `--video <path\|key>` | One content option | Local video path or `file_key`; **must be used together with `--video-cover`** |
|
|
153
|
+
| `--video-cover <path\|key>` | **Required with `--video`** | Video cover image path or `image_key` (`img_xxx`) |
|
|
154
|
+
| `--audio <path\|key>` | One content option | Local audio path or `file_key` |
|
|
155
|
+
| `--reply-in-thread` | No | Reply inside the thread. The reply appears in the target message's thread instead of the main chat stream |
|
|
156
|
+
| `--idempotency-key <key>` | No | Idempotency key; the same key sends only one reply within 1 hour |
|
|
157
|
+
| `--as <identity>` | No | Identity type: `bot` or `user` (default `bot`) |
|
|
158
|
+
| `--dry-run` | No | Print the request only, do not execute it |
|
|
159
|
+
|
|
160
|
+
> **Mutual exclusivity rule:** `--text`, `--markdown`, `--content`, and `--image`/`--file`/`--video`/`--audio` cannot be used together. Media flags are also mutually exclusive with each other.
|
|
161
|
+
>
|
|
162
|
+
> **Video cover rule:** `--video` **must** be accompanied by `--video-cover`. Omitting `--video-cover` when using `--video` will fail validation. `--video-cover` cannot be used without `--video`.
|
|
163
|
+
|
|
164
|
+
## Common Mistakes
|
|
165
|
+
|
|
166
|
+
- Choosing `--markdown` when you actually need exact plain text. If exact line breaks and spacing matter, use `--text`, usually with `$'...'`.
|
|
167
|
+
- Assuming `--markdown` supports all Markdown features. It does not; it is converted into a Feishu `post` payload and rewritten first.
|
|
168
|
+
- Putting local image paths inside Markdown like ``. `--markdown` does not auto-upload those paths.
|
|
169
|
+
- Using `--content` without making the JSON match the effective `--msg-type`.
|
|
170
|
+
- Explicitly setting `--msg-type` to something that conflicts with `--text`, `--markdown`, or media flags.
|
|
171
|
+
- Mixing `--text`, `--markdown`, or `--content` with media flags in one command.
|
|
172
|
+
|
|
173
|
+
## Return Value
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"message_id": "om_xxx",
|
|
178
|
+
"chat_id": "oc_xxx",
|
|
179
|
+
"create_time": "1234567890"
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Usage Scenarios
|
|
184
|
+
|
|
185
|
+
### Scenario 1: Reply in the main chat stream
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
lark-cli im +messages-reply --message-id om_xxx --text "OK, I will handle it"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
The reply appears in the main chat stream and references the target message.
|
|
192
|
+
|
|
193
|
+
### Scenario 2: Reply inside a thread
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
lark-cli im +messages-reply --message-id om_xxx --text "Let me take a look at this" --reply-in-thread
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
The reply appears in the target message's thread and does not show up in the main chat stream.
|
|
200
|
+
|
|
201
|
+
## @Mention Format (text / post)
|
|
202
|
+
|
|
203
|
+
- Recommended format: `<at user_id="ou_xxx">name</at>`
|
|
204
|
+
- @all: `<at user_id="all"></at>`
|
|
205
|
+
- The shortcut normalizes common variants like `<at id=...>` and `<at open_id=...>` into `user_id`, but `user_id` remains the recommended documented form
|
|
206
|
+
|
|
207
|
+
## Notes
|
|
208
|
+
|
|
209
|
+
- `--message-id` must be a valid message ID in `om_xxx` format
|
|
210
|
+
- `--content` must be valid JSON
|
|
211
|
+
- When using `--content`, you are responsible for making the JSON structure match the effective `msg_type`
|
|
212
|
+
- `--reply-in-thread` adds `reply_in_thread=true` to the API request
|
|
213
|
+
- `--reply-in-thread` is mainly meaningful in chats that support thread replies
|
|
214
|
+
- `--image`/`--file`/`--video`/`--audio`/`--video-cover` support local file paths; the shortcut uploads first and then sends the reply; both the upload and send steps use the same identity (UAT when `--as user`, TAT when `--as bot`)
|
|
215
|
+
- If the provided media value starts with `img_` or `file_`, it is treated as an existing key and used directly
|
|
216
|
+
- `--markdown` always sends `msg_type=post`
|
|
217
|
+
- If you explicitly set `--msg-type` and it conflicts with the chosen content flag, validation fails
|
|
218
|
+
- When using `--video`, `--video-cover` is required as the video cover
|
|
219
|
+
- `--dry-run` uses placeholder image keys for remote Markdown images and placeholder media keys for local uploads
|
|
220
|
+
- Failures return error codes and messages
|
|
221
|
+
- `--as user` uses a user access token (UAT) and requires the `im:message.send_as_user` and `im:message` scopes; the reply is sent as the authorized end user
|
|
222
|
+
- `--as bot` uses a tenant access token (TAT), and requires the `im:message:send_as_bot` scope
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# im +messages-resources-download
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Download image or file resources from a message. Supports **automatic chunked download for large files** using HTTP Range requests. Resources are identified by the combination of `message_id` + `file_key`, both of which come directly from message content returned by `im +chat-messages-list`.
|
|
6
|
+
|
|
7
|
+
> **Note:** read-only message commands render resource keys in message content, but they do not download binaries automatically. Use this command whenever you need to fetch the actual image/file bytes or save them to a specific path.
|
|
8
|
+
|
|
9
|
+
This skill maps to the shortcut: `lark-cli im +messages-resources-download` (internally calls `GET /open-apis/im/v1/messages/{message_id}/resources/{file_key}`).
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Download an image (save to the current directory)
|
|
15
|
+
lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image
|
|
16
|
+
|
|
17
|
+
# Download a file
|
|
18
|
+
lark-cli im +messages-resources-download --message-id om_xxx --file-key file_v3_xxx --type file
|
|
19
|
+
|
|
20
|
+
# Specify the output path
|
|
21
|
+
lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image --output ./photo.png
|
|
22
|
+
|
|
23
|
+
# Download as a bot
|
|
24
|
+
lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image --as bot
|
|
25
|
+
|
|
26
|
+
# Preview the request without executing it
|
|
27
|
+
lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image --dry-run
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Required | Description |
|
|
33
|
+
|------|------|------|
|
|
34
|
+
| `--message-id <id>` | Yes | Message ID (`om_xxx` format) |
|
|
35
|
+
| `--file-key <key>` | Yes | Resource key (`img_xxx` or `file_xxx`) |
|
|
36
|
+
| `--type <type>` | Yes | Resource type: `image` or `file` |
|
|
37
|
+
| `--output <path>` | No | Output path (relative paths only; `..` traversal is not allowed). When omitted, the server's original filename from `Content-Disposition` is used if available; otherwise defaults to `file_key`. File extension is automatically inferred from `Content-Disposition` or `Content-Type` if not provided |
|
|
38
|
+
| `--as <identity>` | No | Identity type: `user` (default) or `bot` |
|
|
39
|
+
| `--dry-run` | No | Print the request only, do not execute it |
|
|
40
|
+
|
|
41
|
+
## Large File Download (Auto Chunking)
|
|
42
|
+
|
|
43
|
+
When downloading large files, the command automatically uses **HTTP Range requests** for reliable chunked downloading:
|
|
44
|
+
|
|
45
|
+
| Behavior | Details |
|
|
46
|
+
|----------|---------|
|
|
47
|
+
| Probe chunk | First 128 KB to detect file size and Content-Type |
|
|
48
|
+
| Chunk size | 8 MB per subsequent request |
|
|
49
|
+
| Workers | Single-threaded sequential download (ensures reliability) |
|
|
50
|
+
| Retries | Up to 2 retries for transient request failures, with exponential backoff |
|
|
51
|
+
|
|
52
|
+
**Benefits:**
|
|
53
|
+
- Reduces the impact of transient request failures during large downloads
|
|
54
|
+
- Preserves the server's original filename via `Content-Disposition` (supports RFC 5987 UTF-8 encoding); falls back to `Content-Type`-based extension inference
|
|
55
|
+
- Validates file size integrity after download completion
|
|
56
|
+
|
|
57
|
+
## `file_key` Sources
|
|
58
|
+
|
|
59
|
+
Different resource markers in message content correspond to different `file_key` and `type` values:
|
|
60
|
+
|
|
61
|
+
| Message Type | Marker in Content | `file_key` Format | `--type` |
|
|
62
|
+
|---------|-------------|---------------|--------|
|
|
63
|
+
| Image | `img_xxx` | `img_xxx` | `image` |
|
|
64
|
+
| File | `file_xxx` | `file_xxx` | `file` |
|
|
65
|
+
| Audio | `file_xxx` | `file_xxx` | `file` |
|
|
66
|
+
| Video | `file_xxx` | `file_xxx` | `file` |
|
|
67
|
+
|
|
68
|
+
## Usage Scenario
|
|
69
|
+
|
|
70
|
+
### Scenario: Extract and download an image from a message
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Step 1: Fetch messages and find one containing an image
|
|
74
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx
|
|
75
|
+
# In the response you see: { "msg_type": "image", "content": "{\"image_key\":\"img_v3_xxx\"}" }
|
|
76
|
+
|
|
77
|
+
# Step 2: Download the image
|
|
78
|
+
lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Common Errors and Troubleshooting
|
|
82
|
+
|
|
83
|
+
| Symptom | Root Cause | Solution |
|
|
84
|
+
|---------|---------|---------|
|
|
85
|
+
| Download failed | `file_key` does not match the `message_id` | Make sure the `file_key` came from that message's content |
|
|
86
|
+
| Hit error code 234002 or 14005 | No permission, **not** missing API scope | no access to this chat or file was deleted — do not retry, return the error to the user |
|
|
87
|
+
| Permission denied | `im:message:readonly` is not authorized | Run `auth login --scope "im:message:readonly"` |
|
|
88
|
+
| File size mismatch | Chunked download integrity check failed | Network instability during download; retry the command |
|
|
89
|
+
| Content-Range error | Server returned invalid range header | Transient API issue; retry the command |
|
|
90
|
+
|
|
91
|
+
## References
|
|
92
|
+
|
|
93
|
+
- [lark-im](../SKILL.md) - all message-related commands
|
|
94
|
+
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# im +messages-search
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Search Feishu messages across conversations. This shortcut automatically performs a multi-step workflow: search for message IDs, batch fetch message details, then enrich the results with chat context.
|
|
6
|
+
|
|
7
|
+
> **User identity only** (`--as user`). Bot identity is not supported.
|
|
8
|
+
|
|
9
|
+
This skill maps to the shortcut: `lark-cli im +messages-search` (internally calls `POST /open-apis/im/v1/messages/search` + batched `GET /open-apis/im/v1/messages/mget`, then batch-fetches chat context).
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Search by keyword
|
|
15
|
+
lark-cli im +messages-search --query "project progress"
|
|
16
|
+
|
|
17
|
+
# Restrict search to a specific group chat
|
|
18
|
+
lark-cli im +messages-search --query "weekly report" --chat-id oc_xxx
|
|
19
|
+
|
|
20
|
+
# Filter by sender (comma-separated)
|
|
21
|
+
lark-cli im +messages-search --query "requirement" --sender ou_xxx,ou_yyy
|
|
22
|
+
|
|
23
|
+
# Filter by attachment type
|
|
24
|
+
lark-cli im +messages-search --query "report" --include-attachment-type file
|
|
25
|
+
|
|
26
|
+
# Filter by chat type (group / p2p)
|
|
27
|
+
lark-cli im +messages-search --query "progress" --chat-type group
|
|
28
|
+
|
|
29
|
+
# Filter by sender type (user / bot)
|
|
30
|
+
lark-cli im +messages-search --query "reminder" --sender-type bot
|
|
31
|
+
|
|
32
|
+
# Exclude bot senders
|
|
33
|
+
lark-cli im +messages-search --query "reminder" --exclude-sender-type bot
|
|
34
|
+
|
|
35
|
+
# Only messages that @me
|
|
36
|
+
lark-cli im +messages-search --query "announcement" --is-at-me
|
|
37
|
+
|
|
38
|
+
# Only messages that @mention specific users (results also include messages that @all)
|
|
39
|
+
lark-cli im +messages-search --query "release" --at-chatter-ids ou_xxx,ou_yyy
|
|
40
|
+
|
|
41
|
+
# Combined filters + time range
|
|
42
|
+
lark-cli im +messages-search --query "meeting" --sender ou_xxx --chat-type group --start "2026-03-13T00:00:00+08:00" --end "2026-03-20T23:59:59+08:00"
|
|
43
|
+
|
|
44
|
+
# Specific time range (ISO 8601)
|
|
45
|
+
lark-cli im +messages-search --query "release" --start "2026-03-01T00:00:00+08:00" --end "2026-03-10T00:00:00+08:00"
|
|
46
|
+
|
|
47
|
+
# Output format options
|
|
48
|
+
lark-cli im +messages-search --query "test" --format pretty
|
|
49
|
+
lark-cli im +messages-search --query "test" --format table
|
|
50
|
+
lark-cli im +messages-search --query "test" --format csv
|
|
51
|
+
|
|
52
|
+
# Pagination
|
|
53
|
+
lark-cli im +messages-search --query "test" --page-token <PAGE_TOKEN>
|
|
54
|
+
|
|
55
|
+
# Auto-pagination across multiple pages
|
|
56
|
+
lark-cli im +messages-search --query "test" --page-all --format json
|
|
57
|
+
|
|
58
|
+
# Auto-pagination with an explicit page cap
|
|
59
|
+
lark-cli im +messages-search --query "test" --page-limit 5 --format json
|
|
60
|
+
|
|
61
|
+
# Preview the request without executing it
|
|
62
|
+
lark-cli im +messages-search --query "test" --dry-run
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Parameters
|
|
66
|
+
|
|
67
|
+
| Parameter | Required | Description |
|
|
68
|
+
|------|------|------|
|
|
69
|
+
| `--query <text>` | No | Search keyword (may be empty when used with other filters) |
|
|
70
|
+
| `--chat-id <id>` | No | Restrict to chat IDs, comma-separated (`oc_xxx,oc_yyy`) |
|
|
71
|
+
| `--sender <ids>` | No | Sender open_ids, comma-separated (`ou_xxx`) |
|
|
72
|
+
| `--include-attachment-type <type>` | No | Attachment filter: `file` / `image` / `video` / `link` |
|
|
73
|
+
| `--chat-type <type>` | No | Chat type: `group` / `p2p` |
|
|
74
|
+
| `--sender-type <type>` | No | Sender type: `user` / `bot` |
|
|
75
|
+
| `--exclude-sender-type <type>` | No | Exclude messages from `user` or `bot` senders |
|
|
76
|
+
| `--is-at-me` | No | Only return messages that mention `@me` |
|
|
77
|
+
| `--at-chatter-ids <ids>` | No | Filter by @mentioned user open_ids, comma-separated (`ou_xxx,ou_yyy`). Matched results also include messages that `@all` |
|
|
78
|
+
| `--start <time>` | No | Start time with local timezone offset required (e.g. `2026-03-24T00:00:00+08:00`) |
|
|
79
|
+
| `--end <time>` | No | End time with local timezone offset required (e.g. `2026-03-25T23:59:59+08:00`) |
|
|
80
|
+
| `--page-size <n>` | No | Page size (default 20, range 1-50) |
|
|
81
|
+
| `--page-token <token>` | No | Pagination token for the next page |
|
|
82
|
+
| `--page-all` | No | Automatically paginate through all result pages (up to 40 pages) |
|
|
83
|
+
| `--page-limit <n>` | No | Max pages to fetch when auto-pagination is enabled (default 20, max 40). Setting it explicitly also enables auto-pagination |
|
|
84
|
+
| `--format <fmt>` | No | Output format: `json` (default) / `pretty` / `table` / `ndjson` / `csv` |
|
|
85
|
+
| `--as <identity>` | No | Identity type (defaults to and only supports `user`) |
|
|
86
|
+
| `--dry-run` | No | Print the request only, do not execute it |
|
|
87
|
+
|
|
88
|
+
## Core Constraints
|
|
89
|
+
|
|
90
|
+
### 1. Provide at least one filter whenever possible
|
|
91
|
+
|
|
92
|
+
All parameters are optional, but you should usually provide at least one filter (`--query`, `--sender`, `--chat-id`, etc.). Otherwise the search scope may be too broad and return low-signal results.
|
|
93
|
+
|
|
94
|
+
### 2. Two-step orchestration is automatic
|
|
95
|
+
|
|
96
|
+
The shortcut automatically performs:
|
|
97
|
+
|
|
98
|
+
1. The **search API** returns matching `message_id` values
|
|
99
|
+
2. The **mget API** fetches full message content for those message IDs in batch
|
|
100
|
+
3. Chat context lookup is fetched in batch and attached to each message
|
|
101
|
+
|
|
102
|
+
The user does not need to manage the orchestration manually. When search results span multiple pages, the shortcut can also paginate automatically with `--page-all` or `--page-limit`.
|
|
103
|
+
|
|
104
|
+
### 3. Conversation context is enriched automatically
|
|
105
|
+
|
|
106
|
+
In JSON output, each message automatically includes conversation context:
|
|
107
|
+
|
|
108
|
+
| Field | Description |
|
|
109
|
+
|------|------|
|
|
110
|
+
| `chat_type` | Conversation type: `p2p` / `group` |
|
|
111
|
+
| `chat_name` | Group name (for groups) or the other participant's name (for p2p chats) |
|
|
112
|
+
| `chat_partner` | For p2p only: the other participant's `open_id` and `name` |
|
|
113
|
+
|
|
114
|
+
In pretty output, the `chat` column shows the chat name for groups, or `"p2p"` for direct messages.
|
|
115
|
+
|
|
116
|
+
Each message in JSON output contains:
|
|
117
|
+
|
|
118
|
+
| Field | Description |
|
|
119
|
+
|------|------|
|
|
120
|
+
| `message_id` | Message ID |
|
|
121
|
+
| `msg_type` | Message type: `text`, `image`, `file`, `interactive`, `post`, `audio`, `video`, `system`, etc. |
|
|
122
|
+
| `create_time` | Creation time |
|
|
123
|
+
| `sender` | Sender information (includes `name` for user senders) |
|
|
124
|
+
| `content` | Message content |
|
|
125
|
+
| `chat_id` | ID of the conversation the message belongs to |
|
|
126
|
+
| `deleted` | Whether the message has been recalled (`true` = recalled) |
|
|
127
|
+
| `updated` | Whether the message has been edited after sending |
|
|
128
|
+
| `mentions` | Array of @mentions in the message; each item contains `{id, key, name}`. Present only when the message contains @mentions |
|
|
129
|
+
| `thread_id` | Thread ID (`omt_xxx`) if the message has replies in a thread. Present only when replies exist |
|
|
130
|
+
|
|
131
|
+
### 4. Pagination behavior
|
|
132
|
+
|
|
133
|
+
- Default behavior is still **single-page**.
|
|
134
|
+
- `--page-token` is the manual continuation mechanism when you already have a token from a previous response.
|
|
135
|
+
- `--page-all` enables auto-pagination and uses a default cap of **40 pages**.
|
|
136
|
+
- `--page-limit <n>` enables auto-pagination with an explicit cap. If you pass `--page-limit` without `--page-all`, auto-pagination is still enabled.
|
|
137
|
+
- When auto-pagination stops because of the configured page cap, the response still includes the last `has_more` / `page_token` so you can continue manually.
|
|
138
|
+
|
|
139
|
+
### 5. Search results contain follow-up clues
|
|
140
|
+
|
|
141
|
+
In JSON output, each message includes `chat_id` and `thread_id` (when present). Use them with other shortcuts for deeper inspection:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# View the full message stream for the conversation that contains the search result
|
|
145
|
+
lark-cli im +chat-messages-list --chat-id <chat_id>
|
|
146
|
+
|
|
147
|
+
# View replies in the thread that contains the search result
|
|
148
|
+
lark-cli im +threads-messages-list --thread <thread_id>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Resource Rendering
|
|
152
|
+
|
|
153
|
+
Search results reuse the same content formatter as other read commands. Image messages are rendered as placeholders such as `[Image: img_xxx]`; resource binaries are **not** downloaded automatically.
|
|
154
|
+
|
|
155
|
+
Use `im +messages-resources-download` if you need to fetch the underlying image or file bytes from a specific message.
|
|
156
|
+
|
|
157
|
+
## AI Usage Guidance
|
|
158
|
+
|
|
159
|
+
### Resolving chat_id from a chat name
|
|
160
|
+
|
|
161
|
+
When the user refers to a chat by name and you need its `chat_id` for the `--chat-id` filter, use [`+chat-search`](lark-im-chat-search.md) first:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Step 1: Find the chat_id by name
|
|
165
|
+
lark-cli im +chat-search --query "<chat name keyword>" --format json
|
|
166
|
+
|
|
167
|
+
# Step 2: Use the chat_id to narrow down message search
|
|
168
|
+
lark-cli im +messages-search --query "keyword" --chat-id <chat_id>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Do not use `im chats search` or `+chat-list` — always use the `+chat-search` shortcut.**
|
|
172
|
+
|
|
173
|
+
## Work Summary / Report Generation
|
|
174
|
+
|
|
175
|
+
When the user asks you to summarize work, generate a weekly report, or compile activity from chat messages, you should **paginate through all available results** to get a complete picture. A single page is rarely enough for thorough summarization.
|
|
176
|
+
|
|
177
|
+
### Strategy
|
|
178
|
+
|
|
179
|
+
1. **Start with targeted filters** — use `--chat-id`, `--sender`, `--start`, `--end` to narrow the scope as much as possible before paginating.
|
|
180
|
+
2. **Prefer auto-pagination** — for report and summary tasks, use `--page-all --format json` by default. If you need a bounded run, use `--page-limit <n> --format json`.
|
|
181
|
+
3. **Accumulate before summarizing** — collect all pages of messages first, then analyze and summarize. Do not summarize after the first page alone — you will miss important context.
|
|
182
|
+
4. **Fall back to `--page-token` when resuming** — if auto-pagination hits the configured page cap and the response still has `has_more=true`, continue from the returned `page_token`.
|
|
183
|
+
5. **Use `--format json`** — JSON output includes `has_more` and `page_token` fields needed for pagination. `pretty` and `table` formats are useful for reading but not for resuming pagination reliably.
|
|
184
|
+
|
|
185
|
+
### Example: Weekly work summary from a project chat
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Preferred: fetch automatically
|
|
189
|
+
lark-cli im +messages-search --query "" --chat-id oc_xxx --sender ou_me --start "2026-03-18T00:00:00+08:00" --end "2026-03-25T23:59:59+08:00" --page-size 50 --page-all --format json
|
|
190
|
+
|
|
191
|
+
# If you need to cap the run explicitly
|
|
192
|
+
lark-cli im +messages-search --query "" --chat-id oc_xxx --sender ou_me --start "2026-03-18T00:00:00+08:00" --end "2026-03-25T23:59:59+08:00" --page-size 50 --page-limit 5 --format json
|
|
193
|
+
|
|
194
|
+
# If the bounded run still returns has_more=true, continue manually
|
|
195
|
+
lark-cli im +messages-search --query "" --chat-id oc_xxx --sender ou_me --start "2026-03-18T00:00:00+08:00" --end "2026-03-25T23:59:59+08:00" --page-size 50 --page-token <token_from_previous_run> --format json
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Key points
|
|
199
|
+
|
|
200
|
+
- **Always paginate exhaustively** for summary tasks. A single page of 20-50 messages is usually insufficient for a meaningful work summary.
|
|
201
|
+
- Prefer `--page-all`; use `--page-limit` only when you need to bound runtime or output volume.
|
|
202
|
+
- If the user does not specify a time range, default to the current week (Monday to today) for weekly reports, or ask for clarification.
|
|
203
|
+
- When summarizing, group messages by topic/thread rather than by chronological order for better readability.
|
|
204
|
+
|
|
205
|
+
## Common Errors and Troubleshooting
|
|
206
|
+
|
|
207
|
+
| Symptom | Root Cause | Solution |
|
|
208
|
+
|---------|---------|---------|
|
|
209
|
+
| Too few results | The time range is too narrow or the keyword is too specific | Expand the time range and try broader keywords |
|
|
210
|
+
| No results | Missing permission or no match | Confirm `search:message` is authorized and relax the filters |
|
|
211
|
+
| Permission denied | Search scope not authorized | Run `auth login --scope "search:message"` |
|
|
212
|
+
|
|
213
|
+
## References
|
|
214
|
+
|
|
215
|
+
- [lark-im](../SKILL.md) - all message-related commands
|
|
216
|
+
- [lark-im-threads-messages-list](lark-im-threads-messages-list.md) - inspect thread replies
|
|
217
|
+
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|