@wagemule/daemon 0.1.2 → 0.1.4
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 +246 -42
- 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,302 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +task_result
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
查询异步任务结果。该 shortcut 聚合了导入、导出、移动/删除文件夹、Wiki 节点 / 文档迁入 Wiki 等多种异步任务的结果查询,统一接口方便调用。
|
|
7
|
+
|
|
8
|
+
> [!IMPORTANT]
|
|
9
|
+
> 对于 `import` 场景,如果使用 `--as bot` 且这次查询**已经拿到最终在线文档目标**(`ready=true` 且返回了最终 `token` / `url`),CLI 会**再次尝试为当前 CLI 用户自动授予该资源的 `full_access`(可管理权限)**。
|
|
10
|
+
>
|
|
11
|
+
> 此时结果里会额外返回 `permission_grant` 字段,明确说明授权结果:
|
|
12
|
+
> - `status = granted`:当前 CLI 用户已获得该导入结果的可管理权限
|
|
13
|
+
> - `status = skipped`:本地没有可用的当前用户 `open_id`,或最终结果缺少可授权的在线文档目标,因此不会自动授权;可提示用户先完成 `lark-cli auth login`,再让 AI / agent 继续使用应用身份(bot)授予当前用户权限
|
|
14
|
+
> - `status = failed`:导入结果已就绪,但自动授权用户失败;会带上失败原因,并提示稍后重试或继续使用 bot 身份处理该文档
|
|
15
|
+
>
|
|
16
|
+
> `permission_grant.perm = full_access` 表示该资源已授予“可管理权限”。
|
|
17
|
+
>
|
|
18
|
+
> **不要擅自执行 owner 转移。** 如果用户需要把 owner 转给自己,必须单独确认。
|
|
19
|
+
|
|
20
|
+
## 命令
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# 查询导入任务结果
|
|
24
|
+
lark-cli drive +task_result \
|
|
25
|
+
--scenario import \
|
|
26
|
+
--ticket <IMPORT_TICKET>
|
|
27
|
+
|
|
28
|
+
# 查询导出任务结果
|
|
29
|
+
lark-cli drive +task_result \
|
|
30
|
+
--scenario export \
|
|
31
|
+
--ticket <EXPORT_TICKET> \
|
|
32
|
+
--file-token <SOURCE_DOC_TOKEN>
|
|
33
|
+
|
|
34
|
+
# 查询移动/删除文件夹任务状态
|
|
35
|
+
lark-cli drive +task_result \
|
|
36
|
+
--scenario task_check \
|
|
37
|
+
--task-id <TASK_ID>
|
|
38
|
+
|
|
39
|
+
# 查询 Wiki 移动任务结果(wiki +move 异步超时后的续跑)
|
|
40
|
+
lark-cli drive +task_result \
|
|
41
|
+
--scenario wiki_move \
|
|
42
|
+
--task-id <TASK_ID>
|
|
43
|
+
|
|
44
|
+
# 查询 Wiki 删除知识空间任务结果(wiki +delete-space 异步超时后的续跑)
|
|
45
|
+
lark-cli drive +task_result \
|
|
46
|
+
--scenario wiki_delete_space \
|
|
47
|
+
--task-id <TASK_ID>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 参数
|
|
51
|
+
|
|
52
|
+
| 参数 | 必填 | 说明 |
|
|
53
|
+
|------|------|------|
|
|
54
|
+
| `--scenario` | 是 | 任务场景,可选值:`import` (导入任务)、`export` (导出任务)、`task_check` (移动/删除文件夹任务)、`wiki_move` (Wiki 移动任务)、`wiki_delete_space` (Wiki 删除知识空间任务) |
|
|
55
|
+
| `--ticket` | 条件必填 | 异步任务 ticket,**import/export 场景必填** |
|
|
56
|
+
| `--task-id` | 条件必填 | 异步任务 ID,**task_check / wiki_move / wiki_delete_space 场景必填** |
|
|
57
|
+
| `--file-token` | 条件必填 | 导出任务对应的源文档 token,**export 场景必填** |
|
|
58
|
+
|
|
59
|
+
## 场景说明
|
|
60
|
+
|
|
61
|
+
| 场景 | 说明 | 所需参数 |
|
|
62
|
+
|------|------|----------|
|
|
63
|
+
| `import` | 文档导入任务(如将本地文件导入为云文档) | `--ticket` |
|
|
64
|
+
| `export` | 文档导出任务(如云文档导出为 PDF/Word) | `--ticket`、`--file-token` |
|
|
65
|
+
| `task_check` | 文件夹移动/删除任务 | `--task-id` |
|
|
66
|
+
| `wiki_move` | Wiki 移动任务(`wiki +move` 的 docs-to-wiki 异步流程,超时后续跑用) | `--task-id` |
|
|
67
|
+
| `wiki_delete_space` | Wiki 删除知识空间任务(`wiki +delete-space` 的异步流程,超时后续跑用) | `--task-id` |
|
|
68
|
+
|
|
69
|
+
## 返回结果
|
|
70
|
+
|
|
71
|
+
### Import 场景返回
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"scenario": "import",
|
|
76
|
+
"ticket": "<IMPORT_TICKET>",
|
|
77
|
+
"type": "sheet",
|
|
78
|
+
"ready": true,
|
|
79
|
+
"failed": false,
|
|
80
|
+
"job_status": 0,
|
|
81
|
+
"job_status_label": "success",
|
|
82
|
+
"job_error_msg": "success",
|
|
83
|
+
"token": "<IMPORTED_DOC_TOKEN>",
|
|
84
|
+
"url": "https://example.feishu.cn/sheets/<IMPORTED_DOC_TOKEN>",
|
|
85
|
+
"extra": ["2000"],
|
|
86
|
+
"permission_grant": {
|
|
87
|
+
"status": "granted",
|
|
88
|
+
"perm": "full_access",
|
|
89
|
+
"member_type": "openid",
|
|
90
|
+
"user_open_id": "<CURRENT_USER_OPEN_ID>",
|
|
91
|
+
"message": "Granted the current CLI user full_access (可管理权限) on the new spreadsheet."
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**字段说明:**
|
|
97
|
+
- `ready`: 是否已经导入完成,可直接使用 `token` / `url`
|
|
98
|
+
- `failed`: 是否已经失败
|
|
99
|
+
- `job_status`: 服务端返回的原始状态码
|
|
100
|
+
- `job_status_label`: 便于阅读的状态标签,例如 `success` / `processing`
|
|
101
|
+
- `token`: 导入后的文档 token
|
|
102
|
+
- `url`: 导入后的文档链接
|
|
103
|
+
- `permission_grant`: 仅 `--as bot` 且这次查询已经拿到最终在线文档目标时返回,用于说明是否已自动为当前 CLI 用户授予可管理权限;如果当前仍是 `ready=false`,则不会返回这个字段
|
|
104
|
+
|
|
105
|
+
### Export 场景返回
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"scenario": "export",
|
|
110
|
+
"ticket": "<EXPORT_TICKET>",
|
|
111
|
+
"ready": true,
|
|
112
|
+
"failed": false,
|
|
113
|
+
"file_extension": "pdf",
|
|
114
|
+
"type": "doc",
|
|
115
|
+
"file_name": "docName",
|
|
116
|
+
"file_token": "<EXPORTED_FILE_TOKEN>",
|
|
117
|
+
"file_size": 34356,
|
|
118
|
+
"job_error_msg": "success",
|
|
119
|
+
"job_status": 0,
|
|
120
|
+
"job_status_label": "success"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**字段说明:**
|
|
125
|
+
- `ready`: 是否已经完成导出,可直接使用 `file_token`
|
|
126
|
+
- `failed`: 是否已经失败
|
|
127
|
+
- `job_status`: 服务端返回的原始状态码
|
|
128
|
+
- `job_status_label`: 便于阅读的状态标签,例如 `success` / `processing`
|
|
129
|
+
- `file_token`: 导出文件的 token,用于下载
|
|
130
|
+
- `file_extension`: 导出文件扩展名
|
|
131
|
+
- `file_size`: 导出文件大小(字节)
|
|
132
|
+
|
|
133
|
+
### Task_check 场景返回
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"scenario": "task_check",
|
|
138
|
+
"task_id": "<TASK_ID>",
|
|
139
|
+
"status": "success",
|
|
140
|
+
"ready": true,
|
|
141
|
+
"failed": false
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**字段说明:**
|
|
146
|
+
- `status`: 任务状态,`success`=成功,`failed`=失败,`pending`=处理中
|
|
147
|
+
- `ready`: 是否已经完成
|
|
148
|
+
- `failed`: 是否已经失败
|
|
149
|
+
|
|
150
|
+
### Wiki_move 场景返回
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"scenario": "wiki_move",
|
|
155
|
+
"task_id": "<TASK_ID>",
|
|
156
|
+
"ready": true,
|
|
157
|
+
"failed": false,
|
|
158
|
+
"status": 0,
|
|
159
|
+
"status_msg": "success",
|
|
160
|
+
"wiki_token": "wikcnXXX",
|
|
161
|
+
"node_token": "wikcnXXX",
|
|
162
|
+
"space_id": "<TARGET_SPACE_ID>",
|
|
163
|
+
"obj_token": "<OBJ_TOKEN>",
|
|
164
|
+
"obj_type": "docx",
|
|
165
|
+
"parent_node_token": "",
|
|
166
|
+
"node_type": "origin",
|
|
167
|
+
"origin_node_token": "",
|
|
168
|
+
"title": "项目计划",
|
|
169
|
+
"has_child": false,
|
|
170
|
+
"node": {
|
|
171
|
+
"space_id": "<TARGET_SPACE_ID>",
|
|
172
|
+
"node_token": "wikcnXXX",
|
|
173
|
+
"obj_token": "<OBJ_TOKEN>",
|
|
174
|
+
"obj_type": "docx",
|
|
175
|
+
"parent_node_token": "",
|
|
176
|
+
"node_type": "origin",
|
|
177
|
+
"origin_node_token": "",
|
|
178
|
+
"title": "项目计划",
|
|
179
|
+
"has_child": false
|
|
180
|
+
},
|
|
181
|
+
"move_results": [
|
|
182
|
+
{
|
|
183
|
+
"status": 0,
|
|
184
|
+
"status_msg": "success",
|
|
185
|
+
"node": { "...": "同上" }
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**字段说明:**
|
|
192
|
+
- `ready`: 所有 `move_results[].status` 都为 `0` 时为 `true`
|
|
193
|
+
- `failed`: 任一 `move_results[].status` 小于 `0` 时为 `true`
|
|
194
|
+
- `status` / `status_msg`: 第一个 move_result 的状态码 / 标签(无结果时回退为 `1` / `processing`)
|
|
195
|
+
- `wiki_token` / `node_token`: 移入 Wiki 后的目标节点 token(首个结果有 `node.node_token` 时镜像到顶层,便于下游脚本使用)
|
|
196
|
+
- `space_id`、`obj_token`、`obj_type`、`title` 等:从首个 `move_results[0].node` 平铺到顶层,方便直接引用
|
|
197
|
+
- `move_results`: 保留完整列表(适用于一次任务移动多个文档的场景)
|
|
198
|
+
|
|
199
|
+
### Wiki_delete_space 场景返回
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{
|
|
203
|
+
"scenario": "wiki_delete_space",
|
|
204
|
+
"task_id": "<TASK_ID>",
|
|
205
|
+
"ready": true,
|
|
206
|
+
"failed": false,
|
|
207
|
+
"status": "success",
|
|
208
|
+
"status_msg": "success"
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**字段说明:**
|
|
213
|
+
- `ready`: `status=success` 时为 `true`
|
|
214
|
+
- `failed`: `status=failure` 或 `failed` 时为 `true`;未知非成功状态(如 `processing`)视为进行中
|
|
215
|
+
- `status`: 服务端返回的原始 `delete_space_result.status`
|
|
216
|
+
- `status_msg`: 优先使用 `delete_space_result.status_msg`,否则回落到 `status`,再回落到 `processing`
|
|
217
|
+
|
|
218
|
+
## 使用场景
|
|
219
|
+
|
|
220
|
+
### 配合 +import 使用
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# 1. 创建导入任务
|
|
224
|
+
lark-cli drive +import --file ./data.xlsx --type sheet
|
|
225
|
+
# 若任务很快完成:直接返回 token / url
|
|
226
|
+
# 若内置轮询超时:返回 ready=false、ticket 和 next_command
|
|
227
|
+
|
|
228
|
+
# 2. 轮询导入结果
|
|
229
|
+
lark-cli drive +task_result --scenario import --ticket <IMPORT_TICKET>
|
|
230
|
+
# 如果这里返回 ready=true 且使用 --as bot,结果还会包含 permission_grant
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 配合 +move 使用
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# 1. 移动文件夹(异步操作)
|
|
237
|
+
lark-cli drive +move --file-token <FOLDER_TOKEN> --type folder --folder-token <TARGET_FOLDER_TOKEN>
|
|
238
|
+
# 若轮询窗口内完成:直接返回 ready=true
|
|
239
|
+
# 若内置轮询结束仍未完成:返回 ready=false、task_id 和 next_command
|
|
240
|
+
|
|
241
|
+
# 2. 轮询移动结果
|
|
242
|
+
lark-cli drive +task_result --scenario task_check --task-id <TASK_ID>
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### 配合 wiki +move 使用
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# 1. 把 Drive 文档迁入 Wiki(异步任务可能返回 task_id)
|
|
249
|
+
lark-cli wiki +move --obj-type docx --obj-token <DOC_TOKEN> --target-space-id <TARGET_SPACE_ID>
|
|
250
|
+
# 若内置轮询窗口内完成:直接返回 ready=true 和 wiki_token
|
|
251
|
+
# 若轮询窗口结束仍未完成:返回 ready=false、task_id、timed_out=true 和 next_command
|
|
252
|
+
|
|
253
|
+
# 2. 续跑查询 Wiki 移动结果(next_command 即下面这条)
|
|
254
|
+
lark-cli drive +task_result --scenario wiki_move --task-id <TASK_ID> --as user
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
> **身份保持一致**:续跑命令的 `--as` 必须与原 `wiki +move` 调用一致;`wiki +move` 的 `next_command` 已自动带上正确的 `--as`。
|
|
258
|
+
|
|
259
|
+
### 配合 wiki +delete-space 使用
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
# 1. 删除知识空间(高风险写操作,必须显式带 --yes;接口可能同步返回空 task_id,也可能返回异步 task_id)
|
|
263
|
+
lark-cli wiki +delete-space --space-id <SPACE_ID> --yes
|
|
264
|
+
# 若同步返回:直接 ready=true
|
|
265
|
+
# 若轮询窗口结束仍未完成:返回 ready=false、task_id、timed_out=true 和 next_command
|
|
266
|
+
|
|
267
|
+
# 2. 续跑查询 Wiki 删除结果(next_command 即下面这条)
|
|
268
|
+
lark-cli drive +task_result --scenario wiki_delete_space --task-id <TASK_ID> --as user
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 配合 +export 使用
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# 1. 发起导出
|
|
275
|
+
lark-cli drive +export --token <SOURCE_DOC_TOKEN> --doc-type docx --file-extension pdf
|
|
276
|
+
# 若轮询窗口内完成:直接下载本地文件
|
|
277
|
+
# 若内置轮询结束仍未完成:返回 ready=false、ticket 和 next_command
|
|
278
|
+
|
|
279
|
+
# 2. 继续查询导出结果
|
|
280
|
+
lark-cli drive +task_result --scenario export --ticket <EXPORT_TICKET> --file-token <SOURCE_DOC_TOKEN>
|
|
281
|
+
|
|
282
|
+
# 3. 拿到 file_token 后下载
|
|
283
|
+
lark-cli drive +export-download --file-token <EXPORTED_FILE_TOKEN>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## 权限要求
|
|
287
|
+
|
|
288
|
+
| 场景 | 所需 scope |
|
|
289
|
+
|------|-----------|
|
|
290
|
+
| import | `drive:drive.metadata:readonly` |
|
|
291
|
+
| export | `drive:drive.metadata:readonly` |
|
|
292
|
+
| task_check | `drive:drive.metadata:readonly` |
|
|
293
|
+
| wiki_move | `wiki:space:read` |
|
|
294
|
+
| wiki_delete_space | `wiki:space:read` |
|
|
295
|
+
|
|
296
|
+
> [!NOTE]
|
|
297
|
+
> `import` 场景在 `--as bot` 且任务最终就绪时,还可能额外尝试一次协作者授权;如果 `permission_grant.status = failed`,请根据失败信息检查应用是否具备相应的文档协作者授权能力。
|
|
298
|
+
|
|
299
|
+
## 参考
|
|
300
|
+
|
|
301
|
+
- [lark-drive](../SKILL.md) -- 云空间全部命令
|
|
302
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +upload
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
上传本地文件到飞书云空间。目标位置可以是 Drive 文件夹,也可以是 wiki 节点。
|
|
7
|
+
|
|
8
|
+
## 快速决策
|
|
9
|
+
- 用户要在 Drive 里上传、创建、读取、覆盖更新**原生 `.md` 文件**(不是导入成 docx),切到 [`lark-markdown`](../../lark-markdown/SKILL.md)。
|
|
10
|
+
|
|
11
|
+
## 命令
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# 上传到 Drive 文件夹
|
|
15
|
+
lark-cli drive +upload --file ./report.pdf --folder-token fldbc_xxx
|
|
16
|
+
|
|
17
|
+
# 上传到 wiki 节点
|
|
18
|
+
lark-cli drive +upload --file ./report.pdf --wiki-token wikcn_xxx
|
|
19
|
+
|
|
20
|
+
# 不指定目标时,上传到调用者的 Drive 根目录
|
|
21
|
+
lark-cli drive +upload --file ./report.pdf
|
|
22
|
+
|
|
23
|
+
# 自定义上传后的文件名
|
|
24
|
+
lark-cli drive +upload --file ./report.pdf --name "季度总结.pdf"
|
|
25
|
+
|
|
26
|
+
# 覆盖已存在文件(原地覆盖,保留 file_token)
|
|
27
|
+
lark-cli drive +upload --file ./report.pdf --file-token boxcn_existing_file
|
|
28
|
+
|
|
29
|
+
# 原生命令(高级/分片上传):预上传 + 完成上传
|
|
30
|
+
lark-cli drive files upload_prepare --data '{
|
|
31
|
+
"file_name": "report.pdf",
|
|
32
|
+
"parent_type": "explorer",
|
|
33
|
+
"parent_node": "fldbc_xxx",
|
|
34
|
+
"size": 1048576,
|
|
35
|
+
"file_token": "boxcn_existing_file"
|
|
36
|
+
}'
|
|
37
|
+
lark-cli drive files upload_finish --data '{
|
|
38
|
+
"upload_id": "<UPLOAD_ID>",
|
|
39
|
+
"block_num": 1
|
|
40
|
+
}'
|
|
41
|
+
|
|
42
|
+
# 查看完整参数定义
|
|
43
|
+
lark-cli schema drive.files.upload_prepare
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
> [!IMPORTANT]
|
|
47
|
+
> 如果文件是**以应用身份(bot)新建上传**的,如 `lark-cli drive +upload --as bot` 在上传成功后,CLI 会**尝试为当前 CLI 用户自动授予该文件的 `full_access`(可管理权限)**。
|
|
48
|
+
>
|
|
49
|
+
> 如果这次调用传了 `--file-token`,表示是在**覆盖已有文件**,CLI **不会**额外修改该文件权限。
|
|
50
|
+
>
|
|
51
|
+
> 以应用身份上传时,结果里会额外返回 `permission_grant` 字段,明确说明授权结果:
|
|
52
|
+
> - `status = granted`:当前 CLI 用户已获得该文件的可管理权限
|
|
53
|
+
> - `status = skipped`:本地没有可用的当前用户 `open_id`,因此不会自动授权;可提示用户先完成 `lark-cli auth login`,再让 AI / agent 继续使用应用身份(bot)授予当前用户权限
|
|
54
|
+
> - `status = failed`:文件已上传成功,但自动授权用户失败;会带上失败原因,并提示稍后重试或继续使用 bot 身份处理该文件
|
|
55
|
+
>
|
|
56
|
+
> `permission_grant.perm = full_access` 表示该资源已授予“可管理权限”。
|
|
57
|
+
>
|
|
58
|
+
> **不要擅自执行 owner 转移。** 如果用户需要把 owner 转给自己,必须单独确认。
|
|
59
|
+
|
|
60
|
+
> [!TIP]
|
|
61
|
+
> 当底层上传接口返回版本号时,shortcut 会在结果里额外透出 `version`。
|
|
62
|
+
|
|
63
|
+
## 目标位置选择(关键)
|
|
64
|
+
|
|
65
|
+
- 上传到 Drive 文件夹:传 `--folder-token <folder_token>`,shortcut 会发送 `parent_type=explorer`
|
|
66
|
+
- 上传到 wiki 节点:传 `--wiki-token <wiki_token>`,shortcut 会发送 `parent_type=wiki`
|
|
67
|
+
- 上传到 Drive 根目录:`--folder-token` 和 `--wiki-token` 都不传
|
|
68
|
+
- 覆盖已有文件:额外传 `--file-token <existing_file_token>`;shortcut 会把它原样透传到底层 `upload_all` / `upload_prepare`,让后端按覆盖语义写入
|
|
69
|
+
- bot 模式下,`--file-token` 覆盖只改文件内容;不会额外给当前 CLI 用户补 `full_access`
|
|
70
|
+
- 不要传空目标值:`--folder-token ""` / `--wiki-token ""` 会被视为参数错误;如需上传到 Drive 根目录,应直接省略这两个参数
|
|
71
|
+
- 不要传空 `--file-token`:如需新建上传,直接省略该参数;显式传空字符串会报错
|
|
72
|
+
- `--folder-token` 和 `--wiki-token` 互斥,不要同时传
|
|
73
|
+
- `--wiki-token` 传的是 **wiki node token**,不是 `space_id`
|
|
74
|
+
|
|
75
|
+
Shortcut 参数:
|
|
76
|
+
|
|
77
|
+
| 参数 | 必填 | 说明 |
|
|
78
|
+
|------|------|------|
|
|
79
|
+
| `--file` | 是 | 本地文件路径 |
|
|
80
|
+
| `--file-token` | 否 | 已存在文件的 token;传入后按“覆盖已有文件”语义上传 |
|
|
81
|
+
| `--folder-token` | 否 | 目标文件夹 token;与 `--wiki-token` 互斥;省略时默认为 Drive 根目录;显式传空字符串会报错 |
|
|
82
|
+
| `--wiki-token` | 否 | 目标 wiki 节点 token;与 `--folder-token` 互斥;会映射为 `parent_type=wiki`、`parent_node=<wiki_token>`;显式传空字符串会报错 |
|
|
83
|
+
| `--name` | 否 | 上传后的文件名;默认使用本地文件名 |
|
|
84
|
+
|
|
85
|
+
参数(预上传 `--data` JSON body):
|
|
86
|
+
|
|
87
|
+
| 字段 | 必填 | 说明 |
|
|
88
|
+
|------|------|------|
|
|
89
|
+
| `file_name` | 是 | 文件名 |
|
|
90
|
+
| `parent_type` | 是 | 父节点类型;上传到文件夹 / 根目录时用 `"explorer"`,上传到 wiki 节点时用 `"wiki"` |
|
|
91
|
+
| `parent_node` | 是 | 父节点 token;`explorer` 时传文件夹 token(根目录可为空字符串),`wiki` 时传 wiki node token |
|
|
92
|
+
| `size` | 是 | 文件大小(字节) |
|
|
93
|
+
| `file_token` | 否 | 已存在文件 token;传入后覆盖该文件内容 |
|
|
94
|
+
|
|
95
|
+
> [!CAUTION]
|
|
96
|
+
> 这是**写入操作** —— 执行前必须确认用户意图。
|
|
97
|
+
|
|
98
|
+
## 参考
|
|
99
|
+
|
|
100
|
+
- [lark-drive](../SKILL.md) -- 云空间全部命令
|
|
101
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lark-event
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM message receive, reactions, chat member changes, etc.). Use for Lark bots, real-time message processing, long-running subscribers, streaming webhook/push handlers. Supports `--max-events` / `--timeout` bounded runs and a stderr ready-marker contract — designed for AI agents running as subprocesses."
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["lark-cli"]
|
|
8
|
+
cliHelp: "lark-cli event --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Lark Events
|
|
12
|
+
|
|
13
|
+
> **Prerequisite:** Read [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) first for authentication, `--as user/bot` switching, `Permission denied` handling, and safety rules.
|
|
14
|
+
|
|
15
|
+
## Core commands
|
|
16
|
+
|
|
17
|
+
| Command | Purpose |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `lark-cli event list [--json]` | List all subscribable EventKeys |
|
|
20
|
+
| `lark-cli event schema <EventKey> [--json]` | Show an EventKey's params and output schema |
|
|
21
|
+
| `lark-cli event consume <EventKey> [flags]` | Blocking consume; events → stdout NDJSON |
|
|
22
|
+
| `lark-cli event status [--json] [--fail-on-orphan]` | Inspect the local bus daemon status |
|
|
23
|
+
| `lark-cli event stop [--all] [--force]` | Stop the bus daemon |
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## Common flags
|
|
27
|
+
|
|
28
|
+
| Flag | Description |
|
|
29
|
+
|---|---|
|
|
30
|
+
| `--param key=value` / `-p` | Business params (repeatable; comma-separated for multi-value). Unknown keys fail with valid names listed inline |
|
|
31
|
+
| `--jq <expr>` | jq expression to filter / transform each event; empty output skips the event |
|
|
32
|
+
| `--max-events N` | Exit after N events. Default 0 = unlimited |
|
|
33
|
+
| `--timeout D` | Exit after duration D (e.g. `30s`, `2m`). Default 0 = no timeout. Whichever of `--max-events` / `--timeout` fires first wins |
|
|
34
|
+
| `--output-dir <dir>` | Write each event as a file (relative paths only; prevents traversal) |
|
|
35
|
+
| `--quiet` | Suppress stderr diagnostics. **AI should not use this** — it silences the ready marker |
|
|
36
|
+
| `--as user\|bot\|auto` | Identity for the session (see lark-shared) |
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Examples
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Default: stream every event for the key (no filter, no projection)
|
|
43
|
+
lark-cli event consume im.message.receive_v1 --as bot
|
|
44
|
+
|
|
45
|
+
# Grab one sample event to inspect payload shape
|
|
46
|
+
lark-cli event consume im.message.receive_v1 --max-events 1 --timeout 30s --as bot
|
|
47
|
+
|
|
48
|
+
# Run for 10 minutes then auto-exit
|
|
49
|
+
lark-cli event consume im.message.receive_v1 --timeout 10m --as bot
|
|
50
|
+
|
|
51
|
+
# Consume multiple EventKeys concurrently (one shape per process, no dispatcher)
|
|
52
|
+
lark-cli event consume im.message.receive_v1 --as bot > receive.ndjson &
|
|
53
|
+
lark-cli event consume im.message.reaction.created_v1 --as bot > reaction.ndjson &
|
|
54
|
+
wait
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Call flow
|
|
59
|
+
|
|
60
|
+
1. `lark-cli event list --json` → pick a legal key
|
|
61
|
+
2. `lark-cli event schema <key> --json` → read `resolved_output_schema` + `jq_root_path` to determine field paths
|
|
62
|
+
3. `lark-cli event consume <key> [--jq '<expr>']` → consume
|
|
63
|
+
|
|
64
|
+
## Subprocess contract
|
|
65
|
+
|
|
66
|
+
### Ready marker
|
|
67
|
+
|
|
68
|
+
`event consume`'s stderr emits a fixed line `[event] ready event_key=<key>`. **Parent processes should block on stderr until this line appears, then start reading stdout.** Do not fall back to `sleep`.
|
|
69
|
+
|
|
70
|
+
### stdin EOF = graceful exit
|
|
71
|
+
|
|
72
|
+
`event consume` treats stdin close as a shutdown signal (wired for AI subprocess callers). `< /dev/null` / `nohup` / systemd's default `StandardInput=null` will cause an immediate graceful exit (stderr `reason: signal`). To keep running:
|
|
73
|
+
|
|
74
|
+
- Feed stdin a source that never EOFs: `< <(tail -f /dev/null)`
|
|
75
|
+
- Or run bounded: `--max-events N` / `--timeout D`
|
|
76
|
+
|
|
77
|
+
### Exit codes & reason
|
|
78
|
+
|
|
79
|
+
On exit, the last stderr line is `[event] exited — received N event(s) in Xs (reason: ...)`.
|
|
80
|
+
|
|
81
|
+
| exit code | reason | Trigger |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| 0 | `reason: limit` | `--max-events` reached |
|
|
84
|
+
| 0 | `reason: timeout` | `--timeout` reached |
|
|
85
|
+
| 0 | `reason: signal` | Ctrl+C / SIGTERM / stdin EOF |
|
|
86
|
+
| non-0 | `Error: ...` (no `exited` line) | Startup / runtime failure (permissions, network, params, config) |
|
|
87
|
+
|
|
88
|
+
Orchestrators should treat `reason: limit/timeout/signal` (all exit 0) as "business completion" and non-zero as "failure".
|
|
89
|
+
|
|
90
|
+
### Never `kill -9`
|
|
91
|
+
|
|
92
|
+
**Avoid `kill -9` on consume processes**: for EventKeys with a **PreConsume hook** (those that register server-side subscriptions via OAPI), `kill -9` skips the OAPI unsubscribe and leaks server-side subscriptions (symptoms: "subscription already exists" on restart, duplicate event delivery). Prefer SIGTERM or closing stdin.
|
|
93
|
+
|
|
94
|
+
### One consume, one EventKey (multi-key = multi-shell)
|
|
95
|
+
|
|
96
|
+
The command takes exactly one positional argument; `k1,k2` and wildcards are unsupported. Listening to N keys means N subprocesses — this is **intentional**:
|
|
97
|
+
|
|
98
|
+
- One shape per process stdout; no dispatcher logic required in the AI
|
|
99
|
+
- Fault isolation (one key failing doesn't affect others)
|
|
100
|
+
- Independent `--as` / `--jq` / `--max-events` / `--timeout` per key
|
|
101
|
+
|
|
102
|
+
All N consumers share a single bus daemon (UDS local IPC), so the overhead is small
|
|
103
|
+
|
|
104
|
+
## Writing jq via schema
|
|
105
|
+
|
|
106
|
+
`event schema <key> --json` is the source of truth for writing `--jq`. Four things to look at:
|
|
107
|
+
|
|
108
|
+
**(1) Where fields start** — see `jq_root_path`
|
|
109
|
+
|
|
110
|
+
- Value `"."` → fields are at the top level, write `.chat_id`
|
|
111
|
+
- Value `".event"` → fields are inside a V2 envelope, write `.event.chat_id`
|
|
112
|
+
|
|
113
|
+
**(2) Field list and types** — see `resolved_output_schema.properties.<name>`
|
|
114
|
+
|
|
115
|
+
Each field carries `type` / `description`, and some also have `format`. Snippet (from `event schema im.message.receive_v1 --json`):
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"chat_id": {"type":"string", "format":"chat_id", "description":"Chat ID, prefixed with oc_"},
|
|
120
|
+
"sender_id": {"type":"string", "format":"open_id", "description":"Sender open_id, prefixed with ou_"},
|
|
121
|
+
"create_time": {"type":"string", "format":"timestamp_ms", "description":"Send time as ms-epoch string"}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**(3) Field semantics** — see the `format` tag
|
|
126
|
+
|
|
127
|
+
Lark-defined semantic tags (**not** JSON Schema's standard `format`). Common values: `open_id` / `chat_id` / `message_id` / `timestamp_ms` / `email`. Purpose: distinguish "same string type, different meanings" fields so you can reverse-lookup via API or convert formats.
|
|
128
|
+
|
|
129
|
+
**(4) Decoded state** — read the field's `description`
|
|
130
|
+
|
|
131
|
+
`event consume` runs Process hooks that may pre-decode some payload fields (flattening V2 envelopes, rendering `.content` to plain text, etc.) — behavior differs from raw OAPI. **Always read the field's `description` before writing jq**, especially for generic field names like `content` / `data` / `body` / `payload`.
|
|
132
|
+
|
|
133
|
+
**Why it matters**: blindly applying `fromjson` to an already-decoded text field makes jq error on every event and silently drop it — the consumer looks alive but emits nothing, with only a single `WARN` line buried on stderr. (This is the general behavior: any jq runtime error skips the event with a one-line WARN; the loop does not abort.)
|
|
134
|
+
|
|
135
|
+
**Don't shortcut the schema**: when projecting `event schema --json` with jq, do not strip `.description` from `properties` — that's the field that tells you whether a field is already decoded. Dump the full property objects, not just keys.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
**Aside**: `--param`'s valid parameters also live in the schema — the `params` section lists `name` / `type` / `required` / `enum` / `default` / `description`; **section missing = this key accepts no `--param`**.
|
|
140
|
+
|
|
141
|
+
## Topic index
|
|
142
|
+
|
|
143
|
+
| Topic | Reference | Coverage |
|
|
144
|
+
|---|---|---|
|
|
145
|
+
| IM | [`references/lark-event-im.md`](references/lark-event-im.md) | Catalog of 11 IM EventKeys + shape notes (flat vs V2 envelope) + `im.message.receive_v1` field gotchas (`sender_id` is open_id only; `.content` is plain text except for `interactive` cards) + common jq recipes (filter by chat_type / message_type / sender) |
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# IM Events
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first for the `event consume` essentials (commands, subprocess contract, jq usage).
|
|
4
|
+
>
|
|
5
|
+
> **Heads-up for AI agents**: this key's `.content` is **NOT** the raw OAPI payload shape your training data may suggest. `lark-cli` runs a Process hook (`convertlib`) that flattens the V2 envelope and **pre-renders** `.content` to human-readable text for `text` / `post` / `image` / `file` / `audio` / etc. Only `interactive` (cards) keeps the raw JSON string. Don't blindly `fromjson`.
|
|
6
|
+
|
|
7
|
+
## Key catalog (11)
|
|
8
|
+
|
|
9
|
+
| EventKey | Purpose |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `im.message.receive_v1` | Receive IM messages |
|
|
12
|
+
| `im.message.message_read_v1` | User read a bot's **p2p** message (group messages don't fire this) |
|
|
13
|
+
| `im.message.reaction.created_v1` | Reaction added to a message |
|
|
14
|
+
| `im.message.reaction.deleted_v1` | Reaction removed from a message |
|
|
15
|
+
| `im.chat.updated_v1` | Chat settings changed (owner, avatar, name, permissions, etc.) |
|
|
16
|
+
| `im.chat.disbanded_v1` | Chat disbanded |
|
|
17
|
+
| `im.chat.member.bot.added_v1` | Bot added to a chat |
|
|
18
|
+
| `im.chat.member.bot.deleted_v1` | Bot removed from a chat |
|
|
19
|
+
| `im.chat.member.user.added_v1` | User joined a chat (including topic chats) |
|
|
20
|
+
| `im.chat.member.user.deleted_v1` | User left voluntarily **or** was removed |
|
|
21
|
+
| `im.chat.member.user.withdrawn_v1` | Pending chat invite withdrawn (inviter canceled; user never actually joined) |
|
|
22
|
+
|
|
23
|
+
> **Shape**: `im.message.receive_v1` is the only flat key (fields at `.xxx`); the other 10 are V2-enveloped (fields at `.event.xxx`).
|
|
24
|
+
|
|
25
|
+
## Gotchas (`im.message.receive_v1`)
|
|
26
|
+
|
|
27
|
+
**sender_id is open_id only**: the event payload carries no display name. Call the contact API separately if you need the sender's name.
|
|
28
|
+
|
|
29
|
+
**`.content` shape depends on `message_type`** (this key uses a flat Custom schema; see [`events/im/message_receive.go`](../../../events/im/message_receive.go)):
|
|
30
|
+
|
|
31
|
+
| message_type | `.content` shape | How to read |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| `text` / `post` / `image` / `file` / `audio` / `sticker` / `share_chat` / `share_user` / `media` / `system` | Human-readable text (convertlib-processed; `@mentions` resolved to display names) | Use `.content` directly |
|
|
34
|
+
| `interactive` (card) | Raw card JSON string (structured actions can't be losslessly flattened) | `.content \| fromjson` to get the card object |
|
|
35
|
+
|
|
36
|
+
**Do not blindly `fromjson`** — for non-interactive messages it fails with `jq: fromjson cannot be applied to "hello"` because `.content` isn't JSON-encoded.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# text: .content is plain text — no fromjson needed
|
|
40
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
41
|
+
--jq 'select(.message_type=="text") | .content'
|
|
42
|
+
|
|
43
|
+
# interactive: .content is a JSON string — fromjson to parse
|
|
44
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
45
|
+
--jq 'select(.message_type=="interactive") | .content | fromjson'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## On-demand filter recipes
|
|
49
|
+
|
|
50
|
+
> **Default = no `--jq`.** Run `lark-cli event consume im.message.receive_v1 --as bot` to see every message. The recipes below are only for cases where the user has asked to narrow the stream.
|
|
51
|
+
|
|
52
|
+
### 1. Filter by chat type (p2p vs group)
|
|
53
|
+
|
|
54
|
+
`chat_type` is an enum with values `p2p` / `group`.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# p2p only (direct messages)
|
|
58
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
59
|
+
--jq 'select(.chat_type=="p2p") | {from: .sender_id, msg: .content}'
|
|
60
|
+
|
|
61
|
+
# group only
|
|
62
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
63
|
+
--jq 'select(.chat_type=="group") | {chat: .chat_id, from: .sender_id, msg: .content}'
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 2. Filter by message type
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# text only — content is plain human-readable text
|
|
70
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
71
|
+
--jq 'select(.message_type=="text") | .content'
|
|
72
|
+
|
|
73
|
+
# interactive (card) only — parse the card body
|
|
74
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
75
|
+
--jq 'select(.message_type=="interactive") | .content | fromjson'
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3. Filter by sender (only one user's messages)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# example: only messages from the given open_id
|
|
82
|
+
lark-cli event consume im.message.receive_v1 --as bot\
|
|
83
|
+
--jq 'select(.sender_id=="ou_xxxxxxxxxxxxxxxxxxxxxxxxxx") | {msg_id: .message_id, text: .content}'
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Get your own open_id via `lark-cli contact +get-user --as user`; other users' via `lark-cli contact +search-user`.
|