@wagemule/daemon 0.1.2 → 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 -1
- package/dist/main.cjs +91 -32
- package/dist/main.cjs.map +2 -2
- 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,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lark-im
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据时使用。"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["lark-cli"]
|
|
8
|
+
cliHelp: "lark-cli im --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# im (v1)
|
|
12
|
+
|
|
13
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**
|
|
14
|
+
|
|
15
|
+
## Core Concepts
|
|
16
|
+
|
|
17
|
+
- **Message**: A single message in a chat, identified by `message_id` (om_xxx). Supports types: text, post, image, file, audio, video, sticker, interactive (card), share_chat, share_user, merge_forward, etc.
|
|
18
|
+
- **Chat**: A group chat or P2P conversation, identified by `chat_id` (oc_xxx).
|
|
19
|
+
- **Thread**: A reply thread under a message, identified by `thread_id` (om_xxx or omt_xxx).
|
|
20
|
+
- **Reaction**: An emoji reaction on a message.
|
|
21
|
+
- **Flag**: A bookmark on a message or thread.
|
|
22
|
+
|
|
23
|
+
## Resource Relationships
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Chat (oc_xxx)
|
|
27
|
+
├── Message (om_xxx)
|
|
28
|
+
│ ├── Thread (reply thread)
|
|
29
|
+
│ ├── Reaction (emoji)
|
|
30
|
+
│ └── Resource (image / file / video / audio)
|
|
31
|
+
└── Member (user / bot)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Important Notes
|
|
35
|
+
|
|
36
|
+
### Identity and Token Mapping
|
|
37
|
+
|
|
38
|
+
- `--as user` means **user identity** and uses `user_access_token`. Calls run as the authorized end user, so permissions depend on both the app scopes and that user's own access to the target chat/message/resource.
|
|
39
|
+
- `--as bot` means **bot identity** and uses `tenant_access_token`. Calls run as the app bot, so behavior depends on the bot's membership, app visibility, availability range, and bot-specific scopes.
|
|
40
|
+
- If an IM API says it supports both `user` and `bot`, the token type changes who the operator is. The same API can succeed with one identity and fail with the other because owner/admin status, chat membership, tenant boundary, or app availability are checked against the current caller.
|
|
41
|
+
|
|
42
|
+
### Sender Name Resolution with Bot Identity
|
|
43
|
+
|
|
44
|
+
When using bot identity (`--as bot`) to fetch messages (e.g. `+chat-messages-list`, `+threads-messages-list`, `+messages-mget`), sender names may not be resolved (shown as open_id instead of display name). This happens when the bot cannot access the user's contact info.
|
|
45
|
+
|
|
46
|
+
**Root cause**: The bot's app visibility settings do not include the message sender, so the contact API returns no name.
|
|
47
|
+
|
|
48
|
+
**Solution**: Check the app's visibility settings in the Lark Developer Console — ensure the app's visible range covers the users whose names need to be resolved. Alternatively, use `--as user` to fetch messages with user identity, which typically has broader contact access.
|
|
49
|
+
|
|
50
|
+
### Card Messages (Interactive)
|
|
51
|
+
|
|
52
|
+
Card messages (`interactive` type) are not yet supported for compact conversion in event subscriptions. The raw event data will be returned instead, with a hint printed to stderr.
|
|
53
|
+
|
|
54
|
+
### Flag Types
|
|
55
|
+
|
|
56
|
+
Flags support two layers:
|
|
57
|
+
|
|
58
|
+
- **Message-layer flag**: `(ItemTypeDefault, FlagTypeMessage)` — regular message bookmark
|
|
59
|
+
- **Feed-layer flag**: `(ItemTypeThread/ItemTypeMsgThread, FlagTypeFeed)` — thread as feed-layer bookmark
|
|
60
|
+
|
|
61
|
+
Item types for feed-layer flags:
|
|
62
|
+
- **ItemTypeThread** (4) = thread in a topic-style chat
|
|
63
|
+
- **ItemTypeMsgThread** (11) = thread in a regular chat
|
|
64
|
+
|
|
65
|
+
## Shortcuts(推荐优先使用)
|
|
66
|
+
|
|
67
|
+
Shortcut 是对常用操作的高级封装(`lark-cli im +<verb> [flags]`)。有 Shortcut 的操作优先使用。
|
|
68
|
+
|
|
69
|
+
| Shortcut | 说明 |
|
|
70
|
+
|----------|------|
|
|
71
|
+
| [`+chat-create`](references/lark-im-chat-create.md) | Create a group chat or topic chat; user/bot; --chat-mode group|topic; private/public; invites users/bots; optionally sets bot manager |
|
|
72
|
+
| [`+chat-list`](references/lark-im-chat-list.md) | List groups the current user/bot is a member of; user/bot; supports sorting, pagination, and --exclude-muted (user identity only) |
|
|
73
|
+
| [`+chat-messages-list`](references/lark-im-chat-messages-list.md) | List messages in a chat or P2P conversation; user/bot; accepts --chat-id or --user-id, resolves P2P chat_id, supports time range/sort/pagination |
|
|
74
|
+
| [`+chat-search`](references/lark-im-chat-search.md) | Search visible group chats by --query keyword and/or --member-ids; user/bot; e.g. look up chat_id by group name; supports type filters, sorting, pagination, and --exclude-muted (user identity only) |
|
|
75
|
+
| [`+chat-update`](references/lark-im-chat-update.md) | Update group chat name or description; user/bot; updates a chat's name or description |
|
|
76
|
+
| [`+messages-mget`](references/lark-im-messages-mget.md) | Batch get messages by IDs; user/bot; fetches up to 50 om_ message IDs, formats sender names, expands thread replies |
|
|
77
|
+
| [`+messages-reply`](references/lark-im-messages-reply.md) | Reply to a message (supports thread replies); user/bot; supports text/markdown/post/media replies, reply-in-thread, idempotency key |
|
|
78
|
+
| [`+messages-resources-download`](references/lark-im-messages-resources-download.md) | Download images/files from a message; user/bot; supports automatic chunked download for large files (8MB chunks), auto-detects file extension from Content-Type |
|
|
79
|
+
| [`+messages-search`](references/lark-im-messages-search.md) | Search messages across chats (supports keyword, sender, time range filters) with user identity; user-only; filters by chat/sender/attachment/time, supports auto-pagination via `--page-all` / `--page-limit`, enriches results via batched mget and chats batch_query |
|
|
80
|
+
| [`+messages-send`](references/lark-im-messages-send.md) | Send a message to a chat or direct message; user/bot; sends to chat-id or user-id with text/markdown/post/media, supports idempotency key |
|
|
81
|
+
| [`+threads-messages-list`](references/lark-im-threads-messages-list.md) | List messages in a thread; user/bot; accepts om_/omt_ input, resolves message IDs to thread_id, supports sort/pagination |
|
|
82
|
+
| [`+flag-create`](references/lark-im-flag-create.md) | Create a bookmark on a message or thread; user-only; defaults to message-layer flag; feed-layer flag requires explicit --item-type + --flag-type |
|
|
83
|
+
| [`+flag-cancel`](references/lark-im-flag-cancel.md) | Cancel (remove) a bookmark. When no --flag-type is given, checks if the message is a thread root message; if so, cancels both message and feed layers |
|
|
84
|
+
| [`+flag-list`](references/lark-im-flag-list.md) | List bookmarks; user-only; auto-enriches feed-type thread entries with message content; supports `--page-all` auto-pagination |
|
|
85
|
+
|
|
86
|
+
## API Resources
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
lark-cli schema im.<resource>.<method> # 调用 API 前必须先查看参数结构
|
|
90
|
+
lark-cli im <resource> <method> [flags] # 调用 API
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
> **重要**:使用原生 API 时,必须先运行 `schema` 查看 `--data` / `--params` 参数结构,不要猜测字段格式。
|
|
94
|
+
|
|
95
|
+
### chats
|
|
96
|
+
|
|
97
|
+
- `create` — 创建群。Identity: `bot` only (`tenant_access_token`).
|
|
98
|
+
- `get` — 获取群信息。Identity: supports `user` and `bot`; the caller must be in the target chat to get full details, and must belong to the same tenant for internal chats.
|
|
99
|
+
- `link` — 获取群分享链接。Identity: supports `user` and `bot`; the caller must be in the target chat, must be an owner or admin when chat sharing is restricted to owners/admins, and must belong to the same tenant for internal chats.
|
|
100
|
+
- `update` — 更新群信息。Identity: supports `user` and `bot`.
|
|
101
|
+
|
|
102
|
+
### chat.members
|
|
103
|
+
|
|
104
|
+
- `bots` — 获取群内机器人列表。Identity: supports `user` and `bot`; the caller must be in the target chat and must belong to the same tenant for internal chats.
|
|
105
|
+
- `create` — 将用户或机器人拉入群聊。Identity: supports `user` and `bot`; the caller must be in the target chat; for `bot` calls, added users must be within the app's availability; for internal chats the operator must belong to the same tenant; if only owners/admins can add members, the caller must be an owner/admin, or a chat-creator bot with `im:chat:operate_as_owner`.
|
|
106
|
+
- `delete` — 将用户或机器人移出群聊。Identity: supports `user` and `bot`; only group owner, admin, or creator bot can remove others; max 50 users or 5 bots per request.
|
|
107
|
+
- `get` — 获取群成员列表。Identity: supports `user` and `bot`; the caller must be in the target chat and must belong to the same tenant for internal chats.
|
|
108
|
+
|
|
109
|
+
### messages
|
|
110
|
+
|
|
111
|
+
- `delete` — 撤回消息。Identity: supports `user` and `bot`; for `bot` calls, the bot must be in the chat to revoke group messages; to revoke another user's group message, the bot must be the owner, an admin, or the creator; for user P2P recalls, the target user must be within the bot's availability.
|
|
112
|
+
- `forward` — 转发消息。Identity: supports `user` and `bot`.
|
|
113
|
+
- `merge_forward` — 合并转发消息。Identity: `bot` only (`tenant_access_token`).
|
|
114
|
+
- `read_users` — 查询消息已读信息。Identity: `bot` only (`tenant_access_token`); the bot must be in the chat, and can only query read status for messages it sent within the last 7 days.
|
|
115
|
+
|
|
116
|
+
### reactions
|
|
117
|
+
|
|
118
|
+
- `batch_query` — 批量获取消息表情。Identity: supports `user` and `bot`.[Must-read](references/lark-im-reactions.md)
|
|
119
|
+
- `create` — 添加消息表情回复。Identity: supports `user` and `bot`; the caller must be in the conversation that contains the message.[Must-read](references/lark-im-reactions.md)
|
|
120
|
+
- `delete` — 删除消息表情回复。Identity: supports `user` and `bot`; the caller must be in the conversation that contains the message, and can only delete reactions added by itself.[Must-read](references/lark-im-reactions.md)
|
|
121
|
+
- `list` — 获取消息表情回复。Identity: supports `user` and `bot`; the caller must be in the conversation that contains the message.[Must-read](references/lark-im-reactions.md)
|
|
122
|
+
|
|
123
|
+
### threads
|
|
124
|
+
|
|
125
|
+
- `forward` — 转发话题。Identity: supports `user` and `bot`.
|
|
126
|
+
|
|
127
|
+
### images
|
|
128
|
+
|
|
129
|
+
- `create` — 上传图片。Identity: `bot` only (`tenant_access_token`).
|
|
130
|
+
|
|
131
|
+
### pins
|
|
132
|
+
|
|
133
|
+
- `create` — Pin 消息。Identity: supports `user` and `bot`.
|
|
134
|
+
- `delete` — 移除 Pin 消息。Identity: supports `user` and `bot`.
|
|
135
|
+
- `list` — 获取群内 Pin 消息。Identity: supports `user` and `bot`.
|
|
136
|
+
|
|
137
|
+
## 权限表
|
|
138
|
+
|
|
139
|
+
| 方法 | 所需 scope |
|
|
140
|
+
|------|-----------|
|
|
141
|
+
| `chats.create` | `im:chat:create` |
|
|
142
|
+
| `chats.get` | `im:chat:read` |
|
|
143
|
+
| `chats.link` | `im:chat:read` |
|
|
144
|
+
| `chats.update` | `im:chat:update` |
|
|
145
|
+
| `chat.members.bots` | `im:chat.members:read` |
|
|
146
|
+
| `chat.members.create` | `im:chat.members:write_only` |
|
|
147
|
+
| `chat.members.delete` | `im:chat.members:write_only` |
|
|
148
|
+
| `chat.members.get` | `im:chat.members:read` |
|
|
149
|
+
| `messages.delete` | `im:message:recall` |
|
|
150
|
+
| `messages.forward` | `im:message` |
|
|
151
|
+
| `messages.merge_forward` | `im:message` |
|
|
152
|
+
| `messages.read_users` | `im:message:readonly` |
|
|
153
|
+
| `threads.forward` | `im:message` |
|
|
154
|
+
| `reactions.batch_query` | `im:message.reactions:read` |
|
|
155
|
+
| `reactions.create` | `im:message.reactions:write_only` |
|
|
156
|
+
| `reactions.delete` | `im:message.reactions:write_only` |
|
|
157
|
+
| `reactions.list` | `im:message.reactions:read` |
|
|
158
|
+
| `images.create` | `im:resource` |
|
|
159
|
+
| `pins.create` | `im:message.pins:write_only` |
|
|
160
|
+
| `pins.delete` | `im:message.pins:write_only` |
|
|
161
|
+
| `pins.list` | `im:message.pins:read` |
|
|
162
|
+
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# im +chat-create
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Create a group chat. Supports both user identity (`--as user`) and bot identity (`--as bot`). You can specify the group name, description, members (users/bots), owner, chat type (private/public), and group mode. Set `--chat-mode topic` to create a topic chat.
|
|
6
|
+
|
|
7
|
+
This skill maps to the shortcut: `lark-cli im +chat-create` (internally calls `POST /open-apis/im/v1/chats`).
|
|
8
|
+
|
|
9
|
+
- `--as bot` requires the `im:chat:create` scope.
|
|
10
|
+
- `--as user` requires the `im:chat:create_by_user` scope.
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Create a private group (default)
|
|
16
|
+
lark-cli im +chat-create --name "My Group"
|
|
17
|
+
|
|
18
|
+
# Create a public group (name is required and must be at least 2 characters)
|
|
19
|
+
lark-cli im +chat-create --name "Public Group" --type public
|
|
20
|
+
|
|
21
|
+
# Create a topic chat
|
|
22
|
+
lark-cli im +chat-create --name "Topic Group" --chat-mode topic
|
|
23
|
+
|
|
24
|
+
# Specify the group owner
|
|
25
|
+
lark-cli im +chat-create --name "My Group" --owner ou_xxx
|
|
26
|
+
|
|
27
|
+
# Invite user members (comma-separated open_ids, up to 50)
|
|
28
|
+
lark-cli im +chat-create --name "My Group" --users "ou_aaa,ou_bbb"
|
|
29
|
+
|
|
30
|
+
# Invite bot members (comma-separated app IDs, up to 5)
|
|
31
|
+
lark-cli im +chat-create --name "My Group" --bots "cli_aaa,cli_bbb"
|
|
32
|
+
|
|
33
|
+
# Invite both users and bots
|
|
34
|
+
lark-cli im +chat-create --name "My Group" --users "ou_aaa" --bots "cli_aaa"
|
|
35
|
+
|
|
36
|
+
# Make the creating bot a group manager (bot identity only)
|
|
37
|
+
lark-cli im +chat-create --name "My Group" --set-bot-manager --as bot
|
|
38
|
+
|
|
39
|
+
# JSON output
|
|
40
|
+
lark-cli im +chat-create --name "My Group" --format json
|
|
41
|
+
|
|
42
|
+
# Create a group with bot identity
|
|
43
|
+
lark-cli im +chat-create --name "My Group" --users "ou_aaa" --as bot
|
|
44
|
+
|
|
45
|
+
# Create a group with user identity
|
|
46
|
+
lark-cli im +chat-create --name "My Group" --users "ou_aaa,ou_bbb" --as user
|
|
47
|
+
|
|
48
|
+
# Preview the request without creating anything
|
|
49
|
+
lark-cli im +chat-create --name "My Group" --dry-run
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Parameters
|
|
53
|
+
|
|
54
|
+
| Parameter | Required | Limits | Description |
|
|
55
|
+
|------|------|------|------|
|
|
56
|
+
| `--name <name>` | Required for public groups | Max 60 characters; at least 2 characters for public groups | Group name (`"(no subject)"` for private groups if omitted) |
|
|
57
|
+
| `--description <text>` | No | Max 100 characters | Group description |
|
|
58
|
+
| `--users <ids>` | No | Up to 50, format `ou_xxx` | Comma-separated user open_ids |
|
|
59
|
+
| `--bots <ids>` | No | Up to 5, format `cli_xxx` | Comma-separated bot app IDs |
|
|
60
|
+
| `--owner <open_id>` | No | Format `ou_xxx` | Owner open_id (defaults to the bot when using `--as bot`, or the authorized user when using `--as user`) |
|
|
61
|
+
| `--type <type>` | No | `private` (default) or `public` | Group type. Default to `private`; pass `public` only when the user explicitly asks for a discoverable/public group. |
|
|
62
|
+
| `--chat-mode <mode>` | No | `group` (default) or `topic` | Group mode; `topic` creates a topic chat (not the same as `group_message_type=thread`). When the user asks for a topic chat, pass `topic` explicitly — do not rely on the default. |
|
|
63
|
+
| `--set-bot-manager` | No | - | Set the creating bot as a group manager (only effective with `--as bot`) |
|
|
64
|
+
| `--format json` | No | - | Output as JSON |
|
|
65
|
+
| `--as <identity>` | No | `bot` or `user` | Identity type |
|
|
66
|
+
| `--dry-run` | No | - | Preview the request without executing it |
|
|
67
|
+
|
|
68
|
+
> **`--chat-mode topic` vs "normal group with topic-message mode"**: `--chat-mode topic` here creates a 话题群 — the entire group is a topic chat. This is different from "normal group (`chat_mode=group`) + topic-message mode (`group_message_type=thread`)". This CLI exposes only `chat_mode`; `group_message_type` is intentionally not surfaced.
|
|
69
|
+
|
|
70
|
+
## AI Usage Guidance
|
|
71
|
+
|
|
72
|
+
### When using `--as bot`
|
|
73
|
+
|
|
74
|
+
Bot may fail to invite users who are mutually invisible to it during group creation (error 232043). To avoid this, use the **two-step flow** below instead of passing other users' open_ids in `--users`.
|
|
75
|
+
|
|
76
|
+
1. **Get the current user's open_id:** Run `lark-cli contact +search-user --query "<name or email>"` to retrieve it.
|
|
77
|
+
2. **Create the group — by default include the current user:**
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
lark-cli im +chat-create --name "<group name>" \
|
|
81
|
+
--users "<current user open_id>" --as bot
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Default behavior:** Always add the current user to the group, unless the user explicitly says "do not add me" or "bot-only group" — only then omit `--users`.
|
|
85
|
+
|
|
86
|
+
3. **Add other members via user identity** (requires the current user to be in the group):
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
lark-cli im chat.members create \
|
|
90
|
+
--params '{"chat_id":"<chat_id from step 2>","member_id_type":"open_id","succeed_type":1}' \
|
|
91
|
+
--data '{"id_list":["ou_aaa","ou_bbb"]}' \
|
|
92
|
+
--as user
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`succeed_type=1` ensures reachable users are added successfully; unreachable ones are returned in `invalid_id_list` instead of failing the whole request.
|
|
96
|
+
|
|
97
|
+
4. **Check `invalid_id_list`** in the response. If non-empty, report to the user which members could not be added.
|
|
98
|
+
|
|
99
|
+
### When using `--as user`
|
|
100
|
+
|
|
101
|
+
User identity does not have the bot visibility limitation, so you can create the group and invite members in one step:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
lark-cli im +chat-create --name "<group name>" --users "ou_aaa,ou_bbb" --as user
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The authorized user is automatically the group creator and member.
|
|
108
|
+
|
|
109
|
+
## Output Fields
|
|
110
|
+
|
|
111
|
+
| Field | Description |
|
|
112
|
+
|------|------|
|
|
113
|
+
| `chat_id` | The new group's ID (`oc_xxx` format) |
|
|
114
|
+
| `name` | Group name |
|
|
115
|
+
| `chat_type` | Group type (`private` / `public`) |
|
|
116
|
+
| `owner_id` | Owner ID (may be empty when a bot creates the group and `--owner` is not specified) |
|
|
117
|
+
| `external` | Whether the group is external |
|
|
118
|
+
| `share_link` | Group share link (omitted if retrieval fails) |
|
|
119
|
+
|
|
120
|
+
## Usage Scenarios
|
|
121
|
+
|
|
122
|
+
### Scenario 1: Create a group and specify the owner
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
lark-cli im +chat-create --name "Project Discussion Group" --owner ou_xxx
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Scenario 2: Create a group and invite users and a bot
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
lark-cli im +chat-create --name "Project Discussion Group" \
|
|
132
|
+
--owner ou_xxx \
|
|
133
|
+
--users "ou_aaa,ou_bbb" \
|
|
134
|
+
--bots "cli_aaa"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Scenario 3: Create a group and send a welcome message
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
CHAT_ID=$(lark-cli im +chat-create --name "New Group" --format json | jq -r '.data.chat_id')
|
|
141
|
+
lark-cli im +messages-send --chat-id "$CHAT_ID" --text "Welcome, everyone!"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Common Errors and Troubleshooting
|
|
145
|
+
|
|
146
|
+
| Symptom | Root Cause | Solution |
|
|
147
|
+
|---------|---------|---------|
|
|
148
|
+
| Permission denied (99991672) | The app does not have `im:chat:create` (bot) or `im:chat:create_by_user` (user) permission enabled | Enable the required permission for the app in the Open Platform console |
|
|
149
|
+
| `--name is required for public groups and must be at least 2 characters` | A public group was created without a name or with a name shorter than 2 characters | Provide a name with at least 2 characters |
|
|
150
|
+
| `--name exceeds the maximum of 60 characters` | The group name is too long | Shorten the name to 60 characters or fewer |
|
|
151
|
+
| `--description exceeds the maximum of 100 characters` | The group description is too long | Shorten the description to 100 characters or fewer |
|
|
152
|
+
| `--users exceeds the maximum of 50` | Too many user members were provided | Split the operation into batches and add more members later |
|
|
153
|
+
| `--bots exceeds the maximum of 5` | Too many bot members were provided | Invite at most 5 bots at once |
|
|
154
|
+
| `invalid user id: expected open_id (ou_xxx)` | Invalid user ID format | Use the `ou_xxx` format for users |
|
|
155
|
+
| `invalid bot id: expected app ID (cli_xxx)` | Invalid bot ID format | Use the `cli_xxx` format for bots |
|
|
156
|
+
| `invalid --owner: expected open_id (ou_xxx)` | Invalid owner ID format | Use the `ou_xxx` format for the owner |
|
|
157
|
+
| `bot is invisible to user` (232043) | The bot and target users are mutually invisible | Follow the two-step flow in AI Usage Guidance above — do not pass other users in `--users` during creation |
|
|
158
|
+
|
|
159
|
+
## References
|
|
160
|
+
|
|
161
|
+
- [lark-im](../SKILL.md) - all IM commands
|
|
162
|
+
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Group Chat Identity Rules
|
|
2
|
+
|
|
3
|
+
> Warning: The most common source of failure in group operations is choosing the wrong identity. Confirm the identity before performing the action.
|
|
4
|
+
|
|
5
|
+
Group-chat operations support both `--as user` (UAT user identity) and `--as bot` (TAT bot identity). Choosing the correct identity is critical for success.
|
|
6
|
+
|
|
7
|
+
## Basic Principles
|
|
8
|
+
|
|
9
|
+
- **If the user explicitly specifies an identity:** use exactly what the user requested (`--as user` or `--as bot`) without guessing.
|
|
10
|
+
- **If the user does not specify an identity:** infer the correct identity from context instead of relying on the default.
|
|
11
|
+
|
|
12
|
+
## Identity Selection by Operation
|
|
13
|
+
|
|
14
|
+
| Operation | Recommended Identity | Why |
|
|
15
|
+
|------|---------|-----------------------------------|
|
|
16
|
+
| Create group (`+chat-create`) | Depends on the scenario | Infer from context |
|
|
17
|
+
| Add members (member-management flow) | `--as user` | Bot visibility is limited and often fails when the target user is mutually invisible to the bot (232024) |
|
|
18
|
+
| Update group (`+chat-update`) | Owner identity | Permission changes require owner/admin privileges; owner transfer requires owner identity |
|
|
19
|
+
|
|
20
|
+
## Inferring the Owner
|
|
21
|
+
|
|
22
|
+
When an owner-level action is needed and the owner is unknown, infer in this order:
|
|
23
|
+
|
|
24
|
+
1. A bot created the group and `--owner` was **not** specified -> the owner is the bot (`--as bot`)
|
|
25
|
+
2. A bot created the group and `--owner ou_xxx` **was** specified -> the owner is that user (`--as user`)
|
|
26
|
+
3. A user created the group and `--owner` was **not** specified -> the owner is the current user (`--as user`)
|
|
27
|
+
4. Still unclear -> ask the user to confirm who owns the group before making owner-level changes
|
|
28
|
+
|
|
29
|
+
### When the Owner Is Neither the Current User Nor the Bot
|
|
30
|
+
|
|
31
|
+
If the query shows that the owner is a third-party user (`owner_id` is neither the currently authorized user nor the bot), the current identity does not have owner privileges. In that case:
|
|
32
|
+
|
|
33
|
+
- **Permission/setting changes:** if the bot is an admin of the group, `--as bot` can still perform admin-level operations such as renaming the group or changing permissions.
|
|
34
|
+
- **Owner-only actions such as owner transfer:** require the actual owner to complete UAT authorization via `lark-cli auth login`, then perform the action as that owner.
|
|
35
|
+
- Explain the limitation clearly to the user instead of retrying blindly.
|
|
36
|
+
|
|
37
|
+
## Common Pitfalls
|
|
38
|
+
|
|
39
|
+
### Inviting Members During Group Creation
|
|
40
|
+
|
|
41
|
+
If a bot creates a group and `--users` includes users who are mutually invisible to the bot, the entire request fails with 232043. Use two steps instead:
|
|
42
|
+
|
|
43
|
+
1. Create the group with the bot first, excluding invisible users: `lark-cli im +chat-create --name "Group Name"`
|
|
44
|
+
2. Add users later with a user-identity member-management flow
|
|
45
|
+
|
|
46
|
+
### Insufficient Privileges
|
|
47
|
+
|
|
48
|
+
- **232016 / 232002 / 232017:** the current identity is not the owner or an admin -> switch to the owner identity
|
|
49
|
+
- **232011:** the current user is not in the group -> use a group-member identity, or join the group first
|
|
50
|
+
- **232024:** the bot and the target user are mutually invisible -> switch to `--as user`
|
|
51
|
+
|
|
52
|
+
## References
|
|
53
|
+
|
|
54
|
+
- [lark-im](../SKILL.md) - all IM commands
|
|
55
|
+
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# im +chat-list
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
List groups the current user (or bot, with `--as bot`) is a member of. Useful for enumerating "my chats" without a search keyword, or for bulk operations against the caller's chats. Supports pagination, sort order, and (user identity only) muted-chat filtering.
|
|
6
|
+
|
|
7
|
+
This skill maps to the shortcut: `lark-cli im +chat-list` (internally calls `GET /open-apis/im/v1/chats`).
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# List the user's chats (default sort: ByCreateTimeAsc)
|
|
13
|
+
lark-cli im +chat-list
|
|
14
|
+
|
|
15
|
+
# Sort by recent activity (most recently active first)
|
|
16
|
+
lark-cli im +chat-list --sort-type ByActiveTimeDesc
|
|
17
|
+
|
|
18
|
+
# Limit page size
|
|
19
|
+
lark-cli im +chat-list --page-size 50
|
|
20
|
+
|
|
21
|
+
# Pagination
|
|
22
|
+
lark-cli im +chat-list --page-token "xxx"
|
|
23
|
+
|
|
24
|
+
# Drop muted chats (user identity only)
|
|
25
|
+
lark-cli im +chat-list --exclude-muted
|
|
26
|
+
|
|
27
|
+
# JSON output
|
|
28
|
+
lark-cli im +chat-list --format json
|
|
29
|
+
|
|
30
|
+
# Preview the request without executing it
|
|
31
|
+
lark-cli im +chat-list --dry-run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Parameters
|
|
35
|
+
|
|
36
|
+
| Parameter | Required | Limits | Description |
|
|
37
|
+
|------|------|------|------|
|
|
38
|
+
| `--user-id-type <type>` | No | `open_id` (default), `union_id`, `user_id` | ID type used for `owner_id` in the response |
|
|
39
|
+
| `--sort-type <type>` | No | `ByCreateTimeAsc` (default), `ByActiveTimeDesc` | Result ordering |
|
|
40
|
+
| `--page-size <n>` | No | 1-100, default 20 | Number of results per page |
|
|
41
|
+
| `--page-token <token>` | No | - | Pagination token from the previous response |
|
|
42
|
+
| `--exclude-muted` | No | User identity only | Drop chats the current user has muted (do-not-disturb). Under `--as bot`, the flag is silently inactive; see "Filtering muted chats" below |
|
|
43
|
+
| `--format json` | No | - | Output as JSON |
|
|
44
|
+
| `--dry-run` | No | - | Preview the request without executing it |
|
|
45
|
+
|
|
46
|
+
> **Note:** Supports both `--as user` (default) and `--as bot`. When using bot identity, the app must have bot capability enabled.
|
|
47
|
+
|
|
48
|
+
## Output Fields
|
|
49
|
+
|
|
50
|
+
| Field | Description |
|
|
51
|
+
|------|------|
|
|
52
|
+
| `chat_id` | Chat ID (`oc_xxx` format) |
|
|
53
|
+
| `name` | Chat name |
|
|
54
|
+
| `description` | Chat description |
|
|
55
|
+
| `owner_id` | Owner ID (type controlled by `--user-id-type`) |
|
|
56
|
+
| `external` | Whether the chat is external |
|
|
57
|
+
| `chat_status` | Chat status (`normal` / `dissolved` / `dissolved_save`) |
|
|
58
|
+
|
|
59
|
+
## Filtering muted chats
|
|
60
|
+
|
|
61
|
+
`--exclude-muted` (user identity only) drops chats the current user has set to do-not-disturb. After the list call, the CLI batches the page's chat_ids through `POST /open-apis/im/v1/chat_user_setting/batch_get_mute_status` and filters client-side. Under `--as bot`, the mute API is UAT-only and the filter is silently skipped.
|
|
62
|
+
|
|
63
|
+
When the flag is set, the JSON envelope gains a `filter` sub-object (absent otherwise, so existing consumers are unaffected); `fetched_count == returned_count + filtered_count` always holds:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"chats": [...],
|
|
68
|
+
"filter": {
|
|
69
|
+
"applied": "exclude_muted",
|
|
70
|
+
"fetched_count": 20,
|
|
71
|
+
"returned_count": 17,
|
|
72
|
+
"filtered_count": 3,
|
|
73
|
+
"hint": "Filtered out 3 muted chat(s) on this page (17 remaining); use --page-token to fetch more."
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Usage Scenarios
|
|
79
|
+
|
|
80
|
+
### Scenario 1: List my recent chats
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
lark-cli im +chat-list --sort-type ByActiveTimeDesc --page-size 10
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Scenario 2: List my non-muted chats sorted by activity
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
lark-cli im +chat-list --sort-type ByActiveTimeDesc --exclude-muted
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Scenario 3: Iterate all my chats programmatically
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
TOKEN=""
|
|
96
|
+
while :; do
|
|
97
|
+
RESP=$(lark-cli im +chat-list --page-size 100 --page-token "$TOKEN" --format json)
|
|
98
|
+
echo "$RESP" | jq -r '.data.chats[].chat_id'
|
|
99
|
+
HAS_MORE=$(echo "$RESP" | jq -r '.data.has_more')
|
|
100
|
+
[ "$HAS_MORE" = "true" ] || break
|
|
101
|
+
TOKEN=$(echo "$RESP" | jq -r '.data.page_token')
|
|
102
|
+
done
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Common Errors and Troubleshooting
|
|
106
|
+
|
|
107
|
+
| Symptom | Root Cause | Solution |
|
|
108
|
+
|---------|---------|---------|
|
|
109
|
+
| `--page-size must be an integer between 1 and 100` | page-size is out of range or not an integer | Use an integer between 1 and 100 |
|
|
110
|
+
| Permission denied (99991672) | The bot app does not have `im:chat:read` TAT permission enabled | Enable the permission for the app in the Open Platform console |
|
|
111
|
+
| Permission denied (99991679) with `--as user` | UAT is not authorized for `im:chat:read` | Run `lark-cli auth login --scope "im:chat:read"` |
|
|
112
|
+
| `Bot ability is not activated` (232025) | The app does not have bot capability enabled | Enable bot capability in the Open Platform console |
|
|
113
|
+
| `--exclude-muted` returns all chats unfiltered and `hint` says "no effect under bot identity" | Running under `--as bot` (mute API is UAT-only) | Switch to `--as user` for mute filtering |
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# im +chat-messages-list
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
|
|
4
|
+
|
|
5
|
+
Fetch the message list for a conversation. Supports both group chats and direct messages.
|
|
6
|
+
|
|
7
|
+
This skill maps to the shortcut: `lark-cli im +chat-messages-list` (internally calls `GET /open-apis/im/v1/messages`, and automatically resolves the p2p chat_id when needed).
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Get group chat messages (json output by default)
|
|
13
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx
|
|
14
|
+
|
|
15
|
+
# Get direct messages with a user (pass open_id and resolve p2p chat_id automatically)
|
|
16
|
+
lark-cli im +chat-messages-list --user-id ou_xxx
|
|
17
|
+
|
|
18
|
+
# Specify a time range (ISO 8601)
|
|
19
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --start "2026-03-10T00:00:00+08:00" --end "2026-03-11T00:00:00+08:00"
|
|
20
|
+
|
|
21
|
+
# Specify a time range (date only)
|
|
22
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --start 2026-03-10 --end 2026-03-11
|
|
23
|
+
|
|
24
|
+
# Control sort order and page size (max 50)
|
|
25
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --sort asc --page-size 20
|
|
26
|
+
|
|
27
|
+
# Pagination
|
|
28
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --page-token "xxx"
|
|
29
|
+
|
|
30
|
+
# JSON output
|
|
31
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --format json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Parameters
|
|
35
|
+
|
|
36
|
+
| Parameter | Required | Description |
|
|
37
|
+
|------|------|------|
|
|
38
|
+
| `--chat-id <id>` | One of two | Specify the conversation by its chat_id directly (e.g., group chat `oc_xxx`) |
|
|
39
|
+
| `--user-id <id>` | One of two | Specify a DM conversation by the other user's open_id (`ou_xxx`); p2p chat_id is resolved automatically. Requires user identity (`--as user`); not supported with bot identity |
|
|
40
|
+
| `--start <time>` | No | Start time (ISO 8601 or date only) |
|
|
41
|
+
| `--end <time>` | No | End time (ISO 8601 or date only) |
|
|
42
|
+
| `--sort <order>` | No | Sort order: `asc` / `desc` (default `desc`) |
|
|
43
|
+
| `--page-size <n>` | No | Page size (default 50, max 50) |
|
|
44
|
+
| `--page-token <token>` | No | Pagination token |
|
|
45
|
+
|
|
46
|
+
> Rule: `--chat-id` and `--user-id` are mutually exclusive. You must provide exactly one of them.
|
|
47
|
+
|
|
48
|
+
## Resource Rendering
|
|
49
|
+
|
|
50
|
+
Messages are rendered into human-readable text for inspection. Image messages are shown as placeholders such as `[Image: img_xxx]`; files and videos are rendered with resource keys in the content. Resource binaries are **not** downloaded automatically by this command.
|
|
51
|
+
|
|
52
|
+
Use [lark-im-messages-resources-download](lark-im-messages-resources-download.md) when you need to download an image or file from a specific message.
|
|
53
|
+
|
|
54
|
+
| Resource Type | Marker in Content | Behavior |
|
|
55
|
+
|---------|-------------|------|
|
|
56
|
+
| Image | `[Image: img_xxx]` | Download manually with `im +messages-resources-download --type image` |
|
|
57
|
+
| File | `<file key="file_xxx" .../>` | Download manually with `im +messages-resources-download --type file` |
|
|
58
|
+
| Audio | `<audio key="file_xxx" .../>` | Download manually with `im +messages-resources-download --type file` |
|
|
59
|
+
| Video | `<video key="file_xxx" .../>` | Download manually with `im +messages-resources-download --type file` |
|
|
60
|
+
|
|
61
|
+
## Thread Expansion (`thread_id`)
|
|
62
|
+
|
|
63
|
+
In JSON output, a message may contain a `thread_id` (`omt_xxx`) field, which means the message has replies in a thread. Use [`im +threads-messages-list`](lark-im-threads-messages-list.md) to inspect replies in that thread:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
lark-cli im +threads-messages-list --thread omt_xxx
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
| Scenario | Recommendation |
|
|
70
|
+
|------|------|
|
|
71
|
+
| You need context | Call `im +threads-messages-list --sort desc --page-size 10` for the discovered thread_id to inspect recent replies |
|
|
72
|
+
| The user asks for the "full discussion" | Use `im +threads-messages-list --sort asc --page-size 50`, then paginate if needed |
|
|
73
|
+
| You only need an overview | Skip thread expansion |
|
|
74
|
+
|
|
75
|
+
## Output Fields
|
|
76
|
+
|
|
77
|
+
| Field | Description |
|
|
78
|
+
|------|------|
|
|
79
|
+
| `messages` | Message array |
|
|
80
|
+
| `total` | Number of messages in the current page |
|
|
81
|
+
| `has_more` | Whether additional pages are available |
|
|
82
|
+
| `page_token` | Pagination token for the next page |
|
|
83
|
+
|
|
84
|
+
Each message contains:
|
|
85
|
+
|
|
86
|
+
| Field | Description |
|
|
87
|
+
|------|------|
|
|
88
|
+
| `message_id` | Message ID |
|
|
89
|
+
| `msg_type` | Message type: `text`, `image`, `file`, `interactive`, `post`, `audio`, `video`, `system`, etc. |
|
|
90
|
+
| `create_time` | Creation time |
|
|
91
|
+
| `sender` | Sender information (includes `name` for user senders) |
|
|
92
|
+
| `content` | Message content |
|
|
93
|
+
| `deleted` | Whether the message has been recalled (always present, `true` = recalled) |
|
|
94
|
+
| `updated` | Whether the message has been edited after sending |
|
|
95
|
+
| `mentions` | Array of @mentions in the message; each item contains `{id, key, name}`. Present only when the message contains @mentions |
|
|
96
|
+
| `thread_id` | Thread ID (`omt_xxx`) if the message has replies in a thread. Present only when replies exist |
|
|
97
|
+
|
|
98
|
+
## Pagination (`has_more` / `page_token`)
|
|
99
|
+
|
|
100
|
+
`im +chat-messages-list` returns `has_more` and `page_token` when more data is available. Use `--page-token` to continue:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
lark-cli im +chat-messages-list --chat-id oc_xxx --page-token <PAGE_TOKEN>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
You can also fall back to the generic API:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
lark-cli api GET /open-apis/im/v1/messages \
|
|
110
|
+
--params 'container_id_type=chat&container_id=oc_xxx&page_size=50&page_token=<PAGE_TOKEN>'
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Common Errors and Troubleshooting
|
|
114
|
+
|
|
115
|
+
| Symptom | Root Cause | Solution |
|
|
116
|
+
|---------|---------|---------|
|
|
117
|
+
| `specify --chat-id <chat_id> or --user-id <open_id>` | Neither `--chat-id` nor `--user-id` was provided | You must provide exactly one |
|
|
118
|
+
| `--chat-id and --user-id cannot be specified together` | Both parameters were provided | Use only one |
|
|
119
|
+
| `--user-id requires user identity (--as user); use --chat-id when calling with bot identity` | `--user-id` was used with bot identity | The p2p resolution endpoint requires user identity. Either pass `--as user` or look up the p2p `chat_id` separately and pass it via `--chat-id` |
|
|
120
|
+
| `P2P chat not found for this user` | `--user-id` was used but no p2p chat exists for the current identity and that user | Confirm the target direct-message relationship exists for the current identity |
|
|
121
|
+
| `--start: invalid time format` | Invalid time format | Use ISO 8601 or date-only format such as `2026-03-10` |
|
|
122
|
+
| Permission denied | Message read permissions are missing | Ensure the app has `im:message:readonly` and `im:chat:read` enabled |
|
|
123
|
+
|
|
124
|
+
## AI Usage Guidance
|
|
125
|
+
|
|
126
|
+
1. **Resolving chat_id from a chat name:** When the user refers to a chat by name and you don't have the `chat_id`, use [`+chat-search`](lark-im-chat-search.md) first:
|
|
127
|
+
```bash
|
|
128
|
+
# Find chat_id by name, then list messages
|
|
129
|
+
lark-cli im +chat-search --query "<chat name keyword>" --format json
|
|
130
|
+
lark-cli im +chat-messages-list --chat-id <chat_id>
|
|
131
|
+
```
|
|
132
|
+
**Do not use `im chats search` or `+chat-list` — always use the `+chat-search` shortcut.**
|
|
133
|
+
2. **Prefer `--chat-id` when available:** if the chat_id is already known, use it directly to avoid extra API calls.
|
|
134
|
+
3. **For direct messages:** use `--user-id` to resolve the p2p chat automatically instead of looking it up manually. This requires user identity (`--as user`); with bot identity, resolve the p2p `chat_id` yourself and pass it via `--chat-id`.
|
|
135
|
+
4. **For time ranges:** both ISO 8601 and date-only inputs are supported. Date-only is usually simpler.
|
|
136
|
+
5. **For full content:** table output truncates content. Use `--format json` when you need the complete message body.
|
|
137
|
+
6. **For sender info:** the command already resolves sender names, so you do not need a separate lookup.
|
|
138
|
+
|
|
139
|
+
## References
|
|
140
|
+
|
|
141
|
+
- [lark-im](../SKILL.md) - all IM commands
|
|
142
|
+
- [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
|