@amaster.ai/pi-lark 0.1.4 → 0.1.6
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/package.json +3 -3
- package/skills/lark-approval/SKILL.md +99 -0
- package/skills/lark-approval/references/lark-approval-approvals-get.md +128 -0
- package/skills/lark-approval/references/lark-approval-approvals-search.md +103 -0
- package/skills/lark-approval/references/lark-approval-initiate.md +221 -0
- package/skills/lark-approval/references/lark-approval-instance-form-control-parameters.md +606 -0
- package/skills/lark-approval/references/lark-approval-instance-value-sourcing.md +108 -0
- package/skills/lark-approval/references/lark-approval-instances-cancel.md +78 -0
- package/skills/lark-approval/references/lark-approval-instances-cc.md +105 -0
- package/skills/lark-approval/references/lark-approval-instances-get.md +145 -0
- package/skills/lark-approval/references/lark-approval-instances-initiated.md +128 -0
- package/skills/lark-approval/references/lark-approval-tasks-add-sign.md +120 -0
- package/skills/lark-approval/references/lark-approval-tasks-approve.md +81 -0
- package/skills/lark-approval/references/lark-approval-tasks-query.md +85 -0
- package/skills/lark-approval/references/lark-approval-tasks-reject.md +73 -0
- package/skills/lark-approval/references/lark-approval-tasks-remind.md +82 -0
- package/skills/lark-approval/references/lark-approval-tasks-rollback.md +89 -0
- package/skills/lark-approval/references/lark-approval-tasks-transfer.md +91 -0
- package/skills/lark-apps/SKILL.md +110 -0
- package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
- package/skills/lark-apps/references/lark-apps-automation.md +164 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
- package/skills/lark-apps/references/lark-apps-create.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +228 -0
- package/skills/lark-apps/references/lark-apps-db.md +162 -0
- package/skills/lark-apps/references/lark-apps-env-pull.md +37 -0
- package/skills/lark-apps/references/lark-apps-env.md +48 -0
- package/skills/lark-apps/references/lark-apps-file.md +96 -0
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +62 -0
- package/skills/lark-apps/references/lark-apps-init.md +36 -0
- package/skills/lark-apps/references/lark-apps-list.md +37 -0
- package/skills/lark-apps/references/lark-apps-local-dev.md +78 -0
- package/skills/lark-apps/references/lark-apps-observability.md +48 -0
- package/skills/lark-apps/references/lark-apps-openapi-key.md +79 -0
- package/skills/lark-apps/references/lark-apps-plugin-install.md +36 -0
- package/skills/lark-apps/references/lark-apps-plugin-list.md +23 -0
- package/skills/lark-apps/references/lark-apps-plugin-uninstall.md +25 -0
- package/skills/lark-apps/references/lark-apps-release-create.md +32 -0
- package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
- package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
- package/skills/lark-apps/references/lark-apps-update.md +30 -0
- package/skills/lark-attendance/SKILL.md +57 -0
- package/skills/lark-base/SKILL.md +161 -0
- package/skills/lark-base/references/dashboard-block-data-config.md +376 -0
- package/skills/lark-base/references/formula-field-guide.md +737 -0
- package/skills/lark-base/references/lark-base-cell-value.md +158 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
- package/skills/lark-base/references/lark-base-dashboard.md +247 -0
- package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
- package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
- package/skills/lark-base/references/lark-base-data-query.md +454 -0
- package/skills/lark-base/references/lark-base-field-create.md +105 -0
- package/skills/lark-base/references/lark-base-field-json.md +527 -0
- package/skills/lark-base/references/lark-base-field-update.md +173 -0
- package/skills/lark-base/references/lark-base-form-detail.md +71 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/skills/lark-base/references/lark-base-form-submit.md +170 -0
- package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
- package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
- package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
- package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
- package/skills/lark-base/references/lark-base-role-guide.md +65 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +191 -0
- package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
- package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
- package/skills/lark-base/references/lookup-field-guide.md +512 -0
- package/skills/lark-base/references/role-config.md +549 -0
- package/skills/lark-calendar/SKILL.md +198 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +83 -0
- package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
- package/skills/lark-calendar/references/lark-calendar-recurring.md +90 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +109 -0
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +38 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +122 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +121 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +100 -0
- package/skills/lark-contact/SKILL.md +55 -0
- package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
- package/skills/lark-contact/references/lark-contact-search-user.md +123 -0
- package/skills/lark-doc/SKILL.md +84 -0
- package/skills/lark-doc/references/lark-doc-create.md +80 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +140 -0
- package/skills/lark-doc/references/lark-doc-history.md +107 -0
- package/skills/lark-doc/references/lark-doc-md.md +76 -0
- package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
- package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
- package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
- package/skills/lark-doc/references/lark-doc-mindnote.md +128 -0
- package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
- package/skills/lark-doc/references/lark-doc-update.md +260 -0
- package/skills/lark-doc/references/lark-doc-whiteboard.md +158 -0
- package/skills/lark-doc/references/lark-doc-word-stat.md +93 -0
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
- package/skills/lark-doc/references/lark-doc-xml.md +182 -0
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +47 -0
- package/skills/lark-doc/references/style/lark-doc-style.md +68 -0
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +48 -0
- package/skills/lark-doc/scripts/doc_word_stat.py +1243 -0
- package/skills/lark-drive/SKILL.md +232 -0
- package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +205 -0
- package/skills/lark-drive/references/lark-drive-comments-guide.md +80 -0
- package/skills/lark-drive/references/lark-drive-cover.md +79 -0
- package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
- package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
- package/skills/lark-drive/references/lark-drive-delete.md +103 -0
- package/skills/lark-drive/references/lark-drive-download.md +31 -0
- package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
- package/skills/lark-drive/references/lark-drive-export.md +174 -0
- package/skills/lark-drive/references/lark-drive-files-list.md +183 -0
- package/skills/lark-drive/references/lark-drive-import.md +178 -0
- package/skills/lark-drive/references/lark-drive-inspect.md +52 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
- package/skills/lark-drive/references/lark-drive-move.md +122 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +53 -0
- package/skills/lark-drive/references/lark-drive-preview.md +87 -0
- package/skills/lark-drive/references/lark-drive-pull.md +137 -0
- package/skills/lark-drive/references/lark-drive-push.md +189 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
- package/skills/lark-drive/references/lark-drive-search.md +273 -0
- package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
- package/skills/lark-drive/references/lark-drive-status.md +135 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +355 -0
- package/skills/lark-drive/references/lark-drive-upload.md +101 -0
- package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
- package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
- package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
- package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +232 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +131 -0
- package/skills/lark-event/SKILL.md +155 -0
- package/skills/lark-event/references/lark-event-approval.md +170 -0
- package/skills/lark-event/references/lark-event-im.md +87 -0
- package/skills/lark-event/references/lark-event-minutes.md +54 -0
- package/skills/lark-event/references/lark-event-task.md +78 -0
- package/skills/lark-event/references/lark-event-vc.md +106 -0
- package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
- package/skills/lark-im/SKILL.md +249 -0
- package/skills/lark-im/references/card/card-2.0-schema.md +107 -0
- package/skills/lark-im/references/card/components/button.md +63 -0
- package/skills/lark-im/references/card/components/chart.md +57 -0
- package/skills/lark-im/references/card/components/checker.md +38 -0
- package/skills/lark-im/references/card/components/collapsible_panel.md +46 -0
- package/skills/lark-im/references/card/components/column_set.md +53 -0
- package/skills/lark-im/references/card/components/date_picker.md +34 -0
- package/skills/lark-im/references/card/components/div.md +36 -0
- package/skills/lark-im/references/card/components/form.md +51 -0
- package/skills/lark-im/references/card/components/header.md +34 -0
- package/skills/lark-im/references/card/components/hr.md +17 -0
- package/skills/lark-im/references/card/components/img.md +34 -0
- package/skills/lark-im/references/card/components/img_combination.md +30 -0
- package/skills/lark-im/references/card/components/input.md +43 -0
- package/skills/lark-im/references/card/components/interactive_container.md +46 -0
- package/skills/lark-im/references/card/components/markdown.md +56 -0
- package/skills/lark-im/references/card/components/multi_select_person.md +40 -0
- package/skills/lark-im/references/card/components/multi_select_static.md +40 -0
- package/skills/lark-im/references/card/components/overflow.md +36 -0
- package/skills/lark-im/references/card/components/person.md +30 -0
- package/skills/lark-im/references/card/components/person_list.md +31 -0
- package/skills/lark-im/references/card/components/picker_datetime.md +34 -0
- package/skills/lark-im/references/card/components/picker_time.md +34 -0
- package/skills/lark-im/references/card/components/recycling_container.md +35 -0
- package/skills/lark-im/references/card/components/select_img.md +42 -0
- package/skills/lark-im/references/card/components/select_person.md +39 -0
- package/skills/lark-im/references/card/components/select_static.md +43 -0
- package/skills/lark-im/references/card/components/table.md +53 -0
- package/skills/lark-im/references/card/lark-im-card-create.md +180 -0
- package/skills/lark-im/references/card/lark-im-card-style.md +281 -0
- package/skills/lark-im/references/card/resource/colors.md +34 -0
- package/skills/lark-im/references/card/resource/icons.md +38 -0
- package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
- package/skills/lark-im/references/lark-im-chat-create.md +162 -0
- package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
- package/skills/lark-im/references/lark-im-chat-list.md +166 -0
- package/skills/lark-im/references/lark-im-chat-members-list.md +83 -0
- package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
- package/skills/lark-im/references/lark-im-chat-search.md +142 -0
- package/skills/lark-im/references/lark-im-chat-update.md +84 -0
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
- package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
- package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
- package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
- package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
- package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
- package/skills/lark-im/references/lark-im-flag-create.md +67 -0
- package/skills/lark-im/references/lark-im-flag-list.md +100 -0
- package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
- package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
- package/skills/lark-im/references/lark-im-messages-reply.md +277 -0
- package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/skills/lark-im/references/lark-im-messages-search.md +234 -0
- package/skills/lark-im/references/lark-im-messages-send.md +279 -0
- package/skills/lark-im/references/lark-im-reactions.md +299 -0
- package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
- package/skills/lark-mail/SKILL.md +290 -0
- package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
- package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
- package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
- package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
- package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
- package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
- package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
- package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
- package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
- package/skills/lark-mail/references/lark-mail-forward.md +239 -0
- package/skills/lark-mail/references/lark-mail-html.md +333 -0
- package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
- package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
- package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
- package/skills/lark-mail/references/lark-mail-message.md +233 -0
- package/skills/lark-mail/references/lark-mail-messages.md +108 -0
- package/skills/lark-mail/references/lark-mail-recall.md +66 -0
- package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
- package/skills/lark-mail/references/lark-mail-reply.md +249 -0
- package/skills/lark-mail/references/lark-mail-rules.md +31 -0
- package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
- package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
- package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
- package/skills/lark-mail/references/lark-mail-send.md +222 -0
- package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
- package/skills/lark-mail/references/lark-mail-signature.md +98 -0
- package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
- package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
- package/skills/lark-mail/references/lark-mail-template.md +54 -0
- package/skills/lark-mail/references/lark-mail-thread.md +111 -0
- package/skills/lark-mail/references/lark-mail-triage.md +131 -0
- package/skills/lark-mail/references/lark-mail-watch.md +94 -0
- package/skills/lark-markdown/SKILL.md +70 -0
- package/skills/lark-markdown/references/lark-markdown-create.md +114 -0
- package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
- package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
- package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
- package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
- package/skills/lark-minutes/SKILL.md +207 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
- package/skills/lark-minutes/references/lark-minutes-download.md +135 -0
- package/skills/lark-minutes/references/lark-minutes-search.md +202 -0
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
- package/skills/lark-minutes/references/lark-minutes-summary.md +120 -0
- package/skills/lark-minutes/references/lark-minutes-todo.md +136 -0
- package/skills/lark-minutes/references/lark-minutes-update.md +39 -0
- package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
- package/skills/lark-note/SKILL.md +94 -0
- package/skills/lark-note/references/lark-note-detail.md +26 -0
- package/skills/lark-note/references/lark-note-transcript.md +23 -0
- package/skills/lark-okr/SKILL.md +122 -0
- package/skills/lark-okr/references/lark-okr-alignments.md +180 -0
- package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
- package/skills/lark-okr/references/lark-okr-contentblock.md +427 -0
- package/skills/lark-okr/references/lark-okr-cycle-detail.md +91 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +93 -0
- package/skills/lark-okr/references/lark-okr-entities.md +329 -0
- package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
- package/skills/lark-okr/references/lark-okr-indicators.md +223 -0
- package/skills/lark-okr/references/lark-okr-patch.md +104 -0
- package/skills/lark-okr/references/lark-okr-progress-create.md +85 -0
- package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/skills/lark-okr/references/lark-okr-progress-get.md +93 -0
- package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/skills/lark-okr/references/lark-okr-progress-update.md +85 -0
- package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
- package/skills/lark-okr/references/lark-okr-weight.md +96 -0
- package/skills/lark-openapi-explorer/SKILL.md +153 -0
- package/skills/lark-shared/SKILL.md +211 -0
- package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
- package/skills/lark-sheets/SKILL.md +234 -0
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +200 -0
- package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +332 -0
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +181 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
- package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
- package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +276 -0
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
- package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +171 -0
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +297 -0
- package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
- package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
- package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
- package/skills/lark-sheets/references/lark-sheets-workbook.md +420 -0
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +575 -0
- package/skills/lark-sheets/scripts/sheets_df.py +32 -0
- package/skills/lark-skill-maker/SKILL.md +85 -0
- package/skills/lark-slides/SKILL.md +285 -0
- package/skills/lark-slides/references/asset-planning.md +135 -0
- package/skills/lark-slides/references/examples.md +91 -0
- package/skills/lark-slides/references/iconpark-index.json +41901 -0
- package/skills/lark-slides/references/iconpark.md +46 -0
- package/skills/lark-slides/references/lark-slides-create.md +156 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +127 -0
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
- package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
- package/skills/lark-slides/references/lark-slides-screenshot.md +97 -0
- package/skills/lark-slides/references/lark-slides-whiteboard.md +331 -0
- package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +125 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +189 -0
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +99 -0
- package/skills/lark-slides/references/planning-layer.md +246 -0
- package/skills/lark-slides/references/slide-templates.md +201 -0
- package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
- package/skills/lark-slides/references/slides_demo.xml +226 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3054 -0
- package/skills/lark-slides/references/troubleshooting.md +45 -0
- package/skills/lark-slides/references/validation-checklist.md +119 -0
- package/skills/lark-slides/references/visual-planning.md +255 -0
- package/skills/lark-slides/references/xml-format-guide.md +433 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +249 -0
- package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
- package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1220 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +1170 -0
- package/skills/lark-task/SKILL.md +168 -0
- package/skills/lark-task/references/lark-task-assign.md +38 -0
- package/skills/lark-task/references/lark-task-comment.md +28 -0
- package/skills/lark-task/references/lark-task-complete.md +27 -0
- package/skills/lark-task/references/lark-task-create.md +70 -0
- package/skills/lark-task/references/lark-task-followers.md +35 -0
- package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
- package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
- package/skills/lark-task/references/lark-task-reminder.md +36 -0
- package/skills/lark-task/references/lark-task-reopen.md +27 -0
- package/skills/lark-task/references/lark-task-search.md +41 -0
- package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
- package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
- package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
- package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
- package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
- package/skills/lark-task/references/lark-task-update.md +37 -0
- package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
- package/skills/lark-vc/SKILL.md +205 -0
- package/skills/lark-vc/references/lark-vc-detail.md +44 -0
- package/skills/lark-vc/references/lark-vc-recording.md +152 -0
- package/skills/lark-vc/references/lark-vc-search.md +163 -0
- package/skills/lark-vc/references/vc-domain-boundaries.md +196 -0
- package/skills/lark-vc-agent/SKILL.md +201 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +315 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-message-send.md +134 -0
- package/skills/lark-whiteboard/SKILL.md +47 -0
- package/skills/lark-whiteboard/elements/connectors.md +102 -0
- package/skills/lark-whiteboard/elements/content.md +40 -0
- package/skills/lark-whiteboard/elements/image.md +80 -0
- package/skills/lark-whiteboard/elements/layout.md +374 -0
- package/skills/lark-whiteboard/elements/schema.md +357 -0
- package/skills/lark-whiteboard/elements/style.md +318 -0
- package/skills/lark-whiteboard/elements/typography.md +73 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +97 -0
- package/skills/lark-whiteboard/routes/dsl.md +107 -0
- package/skills/lark-whiteboard/routes/mermaid.md +27 -0
- package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
- package/skills/lark-whiteboard/routes/svg.md +54 -0
- package/skills/lark-whiteboard/scenes/architecture.md +433 -0
- package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
- package/skills/lark-whiteboard/scenes/comparison.md +135 -0
- package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
- package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
- package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
- package/skills/lark-whiteboard/scenes/funnel.md +101 -0
- package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
- package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
- package/skills/lark-whiteboard/scenes/milestone.md +139 -0
- package/skills/lark-whiteboard/scenes/organization.md +173 -0
- package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
- package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
- package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
- package/skills/lark-whiteboard/scenes/treemap.md +216 -0
- package/skills/lark-wiki/SKILL.md +114 -0
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
- package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
- package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
- package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +185 -0
- package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
- package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
- package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
- package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
- package/skills/lark-wiki/references/lark-wiki-node-list.md +95 -0
- package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
- package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
- package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
- package/skills/lark-workflow-standup-report/SKILL.md +122 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Approval Events
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first for the `event consume` essentials (commands, subprocess contract, jq usage).
|
|
4
|
+
|
|
5
|
+
## Key catalog (2)
|
|
6
|
+
|
|
7
|
+
| EventKey | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `approval.instance.status_changed_v4` | An approval instance status changed |
|
|
10
|
+
| `approval.task.status_changed_v4` | An approval task status changed |
|
|
11
|
+
|
|
12
|
+
Both keys use a **Custom schema**. The raw Lark schema 2.0 envelope is flattened: event metadata is exposed as `type`, `event_id`, and `timestamp`, while approval business fields are exposed at the top level.
|
|
13
|
+
|
|
14
|
+
Both keys carry a **PreConsume hook** that subscribes the current authorized user through the Approval subscription APIs before listening. The consumer intentionally does **not** unsubscribe on exit; the server-side Approval subscription relation remains until it is canceled outside `event consume`. These keys require `--as user`.
|
|
15
|
+
|
|
16
|
+
## Listener and subscription selection
|
|
17
|
+
|
|
18
|
+
At the raw CLI level, each `event consume` process accepts exactly one EventKey. `approval.instance.status_changed_v4` and `approval.task.status_changed_v4` have different output shapes, so listening to both still means two processes.
|
|
19
|
+
|
|
20
|
+
For Approval only, `subscription_type` is an optional setup param used by PreConsume to register server-side Approval subscription relations before the local listener starts. It is **not** an output field, a local event filter, or a local subscription identity. The pushed event does not say which subscription relation caused delivery, and one business event can match both relations; deduplicate with `event_id` when needed.
|
|
21
|
+
|
|
22
|
+
`subscription_type` may be omitted, a single value, a comma-separated list, or a JSON string array:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Omitted: register both INVOLVED_APPROVAL and MANAGED_APPROVAL for this EventKey
|
|
26
|
+
lark-cli event consume approval.instance.status_changed_v4 --as user
|
|
27
|
+
|
|
28
|
+
# Single relation
|
|
29
|
+
lark-cli event consume approval.instance.status_changed_v4 \
|
|
30
|
+
-p subscription_type=INVOLVED_APPROVAL \
|
|
31
|
+
--as user
|
|
32
|
+
|
|
33
|
+
# Explicit multi-relation registration for one local consumer
|
|
34
|
+
lark-cli event consume approval.task.status_changed_v4 \
|
|
35
|
+
-p subscription_type=INVOLVED_APPROVAL,MANAGED_APPROVAL \
|
|
36
|
+
--as user
|
|
37
|
+
|
|
38
|
+
# JSON array form; quote it for the shell
|
|
39
|
+
lark-cli event consume approval.task.status_changed_v4 \
|
|
40
|
+
-p 'subscription_type=["INVOLVED_APPROVAL","MANAGED_APPROVAL"]' \
|
|
41
|
+
--as user
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
| Value | Meaning |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `INVOLVED_APPROVAL` | Receive events where the current user is the approval requester or approver |
|
|
47
|
+
| `MANAGED_APPROVAL` | Receive events under approval definitions managed by the current user |
|
|
48
|
+
|
|
49
|
+
User-intent inference:
|
|
50
|
+
|
|
51
|
+
| User intent | EventKey(s) | `subscription_type` |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| Mentions approval instances, approval forms, approval order/status, or "instance status" | `approval.instance.status_changed_v4` | infer from relation words below |
|
|
54
|
+
| Mentions approval tasks, approval todo items, approver operations, or "task status" | `approval.task.status_changed_v4` | infer from relation words below |
|
|
55
|
+
| Says "approval status changes/events" without saying task vs instance | both EventKeys | infer from relation words below |
|
|
56
|
+
| Says "my approvals", "approvals involving me", "I requested/approved", "待我审批", "我发起/我参与" | requested EventKey(s) | `INVOLVED_APPROVAL` |
|
|
57
|
+
| Says "approvals I manage", "managed definitions", "definitions managed by me", "我管理的审批定义" | requested EventKey(s) | `MANAGED_APPROVAL` |
|
|
58
|
+
| Explicitly asks for both involved and managed, or says "all approval subscriptions" | requested EventKey(s), or both if EventKey is also ambiguous | omit `subscription_type`, or pass both values in one `-p` |
|
|
59
|
+
| Relation is ambiguous and the user wants broad coverage | requested EventKey(s), or both if EventKey is also ambiguous | omit `subscription_type` so PreConsume registers both |
|
|
60
|
+
|
|
61
|
+
If the user's wording omits the relation and broad listening is acceptable, omit `subscription_type`. Ask only when registering both relations would be materially harmful.
|
|
62
|
+
|
|
63
|
+
## Scopes & auth
|
|
64
|
+
|
|
65
|
+
| EventKey | Scope | Auth |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| `approval.instance.status_changed_v4` | `approval:instance:read` | user |
|
|
68
|
+
| `approval.task.status_changed_v4` | `approval:task:read` | user |
|
|
69
|
+
|
|
70
|
+
## Subscription behavior
|
|
71
|
+
|
|
72
|
+
Startup calls the endpoint for the selected EventKey:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
POST /open-apis/approval/v4/instances/subscription
|
|
76
|
+
POST /open-apis/approval/v4/tasks/subscription
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
For each resolved `subscription_type`, PreConsume sends one request body:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{"subscription_type":"INVOLVED_APPROVAL"}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
If `subscription_type` is omitted, PreConsume sends two registration requests for that EventKey: one with `INVOLVED_APPROVAL`, then one with `MANAGED_APPROVAL`. If listening to both instance and task events, run two consumers; each consumer may omit `subscription_type` to register both relations for its own EventKey.
|
|
86
|
+
|
|
87
|
+
Do not start two consumers for the same Approval EventKey merely to split `INVOLVED_APPROVAL` and `MANAGED_APPROVAL`. The server push and flattened output are keyed by EventKey and cannot be distinguished by subscription relation.
|
|
88
|
+
|
|
89
|
+
Shutdown behavior:
|
|
90
|
+
|
|
91
|
+
`event consume` does not call the Approval unsubscribe APIs when it exits. This applies to graceful exit, Ctrl+C / SIGTERM, stdin EOF, `--timeout`, and `--max-events`.
|
|
92
|
+
|
|
93
|
+
To stop future delivery for a user, cancel the Approval subscription relation outside this consumer. The unsubscribe APIs are separate operations and are not called by `event consume`.
|
|
94
|
+
|
|
95
|
+
## Output fields
|
|
96
|
+
|
|
97
|
+
Common fields:
|
|
98
|
+
|
|
99
|
+
| Field | Type | Description |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| `type` | string | Event type |
|
|
102
|
+
| `event_id` | string | Globally unique event ID; use for deduplication |
|
|
103
|
+
| `timestamp` | string (timestamp_ms) | Event delivery time in milliseconds, taken from `header.create_time` |
|
|
104
|
+
|
|
105
|
+
Instance event fields:
|
|
106
|
+
|
|
107
|
+
| Field | Type | Description |
|
|
108
|
+
|---|---|---|
|
|
109
|
+
| `approval_code` | string | Approval definition code; not a subscription dimension |
|
|
110
|
+
| `instance_code` | string | Approval instance code |
|
|
111
|
+
| `external_id` | string | Third-party approval instance id, when present |
|
|
112
|
+
| `status` | string enum | `PENDING`, `APPROVED`, `REJECTED`, `CANCELED`, `DELETED`, `REVERTED`, `OVERTIME_CLOSE`, `OVERTIME_RECOVER` |
|
|
113
|
+
| `operate_time` | string (timestamp_ms) | Status change time |
|
|
114
|
+
| `start_user` | object | Instance starter user IDs, omitted when unavailable |
|
|
115
|
+
| `start_user.open_id` | string (open_id) | Instance starter open_id, when present |
|
|
116
|
+
| `start_user.union_id` | string (union_id) | Instance starter union_id, when present |
|
|
117
|
+
| `start_user.user_id` | string (user_id) | Instance starter tenant user_id, when present |
|
|
118
|
+
|
|
119
|
+
Task event fields:
|
|
120
|
+
|
|
121
|
+
| Field | Type | Description |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| `approval_code` | string | Approval definition code; not a subscription dimension |
|
|
124
|
+
| `instance_code` | string | Approval instance code |
|
|
125
|
+
| `task_id` | string | Approval task id |
|
|
126
|
+
| `external_id` | string | Third-party approval external id, when present |
|
|
127
|
+
| `task_external_id` | string | Third-party task external id, when emitted |
|
|
128
|
+
| `assigned_user` | object | Task assignee or operator user IDs, omitted for automatic flows without an operator |
|
|
129
|
+
| `assigned_user.open_id` | string (open_id) | Task assignee or operator open_id, when present |
|
|
130
|
+
| `assigned_user.union_id` | string (union_id) | Task assignee or operator union_id, when present |
|
|
131
|
+
| `assigned_user.user_id` | string (user_id) | Task assignee or operator tenant user_id, when present |
|
|
132
|
+
| `status` | string enum | `REVERTED`, `PENDING`, `APPROVED`, `REJECTED`, `TRANSFERRED`, `ROLLBACK`, `DONE`, `OVERTIME_CLOSE`, `OVERTIME_RECOVER` |
|
|
133
|
+
| `operate_time` | string (timestamp_ms) | Status change time |
|
|
134
|
+
|
|
135
|
+
## Examples
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Stream approval instance updates broadly; registers both involved and managed relations
|
|
139
|
+
lark-cli event consume approval.instance.status_changed_v4 \
|
|
140
|
+
--as user
|
|
141
|
+
|
|
142
|
+
# Stream approval instance updates only for approvals involving the current user
|
|
143
|
+
lark-cli event consume approval.instance.status_changed_v4 \
|
|
144
|
+
-p subscription_type=INVOLVED_APPROVAL \
|
|
145
|
+
--as user
|
|
146
|
+
|
|
147
|
+
# Stream approval task updates for definitions managed by the current user
|
|
148
|
+
lark-cli event consume approval.task.status_changed_v4 \
|
|
149
|
+
-p subscription_type=MANAGED_APPROVAL \
|
|
150
|
+
--as user
|
|
151
|
+
|
|
152
|
+
# Broad approval status listening:
|
|
153
|
+
# run both EventKeys as separate processes; omit subscription_type so each registers both relations.
|
|
154
|
+
lark-cli event consume approval.instance.status_changed_v4 \
|
|
155
|
+
--as user > approval-instance.ndjson &
|
|
156
|
+
lark-cli event consume approval.task.status_changed_v4 \
|
|
157
|
+
--as user > approval-task.ndjson &
|
|
158
|
+
wait
|
|
159
|
+
|
|
160
|
+
# Listen to both involved and managed task subscriptions with one local consumer.
|
|
161
|
+
lark-cli event consume approval.task.status_changed_v4 \
|
|
162
|
+
-p subscription_type=INVOLVED_APPROVAL,MANAGED_APPROVAL \
|
|
163
|
+
--as user > approval-task.ndjson
|
|
164
|
+
|
|
165
|
+
# Project a compact approval-task record
|
|
166
|
+
lark-cli event consume approval.task.status_changed_v4 \
|
|
167
|
+
-p subscription_type=INVOLVED_APPROVAL \
|
|
168
|
+
--as user \
|
|
169
|
+
--jq '{event_id, task_id, status, at: .operate_time}'
|
|
170
|
+
```
|
|
@@ -0,0 +1,87 @@
|
|
|
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 (12)
|
|
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
|
+
| `card.action.trigger` | Interactive card callback — button click, form submit, dropdown, etc. → see [`lark-im-card-action-reply.md`](../../lark-im/references/lark-im-card-action-reply.md) |
|
|
23
|
+
|
|
24
|
+
> **Shape**: All 12 events have a V2-enveloped raw payload. `lark-cli` flattens two of them — `im.message.receive_v1` and `card.action.trigger` — so their consumed output is flat (fields at `.xxx`). The other 10 are passed through as-is; use `.event.xxx` to access their fields.
|
|
25
|
+
|
|
26
|
+
## Gotchas (`im.message.receive_v1`)
|
|
27
|
+
|
|
28
|
+
**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.
|
|
29
|
+
|
|
30
|
+
**`.content` shape depends on `message_type`** (this key uses a flat Custom schema; see [`events/im/message_receive.go`](../../../events/im/message_receive.go)):
|
|
31
|
+
|
|
32
|
+
| message_type | `.content` shape | How to read |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `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 |
|
|
35
|
+
| `interactive` (card) | Raw card JSON string (structured actions can't be losslessly flattened) | `.content \| fromjson` to get the card object |
|
|
36
|
+
|
|
37
|
+
**Do not blindly `fromjson`** — for non-interactive messages it fails with `jq: fromjson cannot be applied to "hello"` because `.content` isn't JSON-encoded.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# text: .content is plain text — no fromjson needed
|
|
41
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
42
|
+
--jq 'select(.message_type=="text") | .content'
|
|
43
|
+
|
|
44
|
+
# interactive: .content is a JSON string — fromjson to parse
|
|
45
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
46
|
+
--jq 'select(.message_type=="interactive") | .content | fromjson'
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## On-demand filter recipes
|
|
50
|
+
|
|
51
|
+
> **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.
|
|
52
|
+
|
|
53
|
+
### 1. Filter by chat type (p2p vs group)
|
|
54
|
+
|
|
55
|
+
`chat_type` is an enum with values `p2p` / `group`.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# p2p only (direct messages)
|
|
59
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
60
|
+
--jq 'select(.chat_type=="p2p") | {from: .sender_id, msg: .content}'
|
|
61
|
+
|
|
62
|
+
# group only
|
|
63
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
64
|
+
--jq 'select(.chat_type=="group") | {chat: .chat_id, from: .sender_id, msg: .content}'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Filter by message type
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# text only — content is plain human-readable text
|
|
71
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
72
|
+
--jq 'select(.message_type=="text") | .content'
|
|
73
|
+
|
|
74
|
+
# interactive (card) only — parse the card body
|
|
75
|
+
lark-cli event consume im.message.receive_v1 --as bot \
|
|
76
|
+
--jq 'select(.message_type=="interactive") | .content | fromjson'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Filter by sender (only one user's messages)
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# example: only messages from the given open_id
|
|
83
|
+
lark-cli event consume im.message.receive_v1 --as bot\
|
|
84
|
+
--jq 'select(.sender_id=="ou_xxxxxxxxxxxxxxxxxxxxxxxxxx") | {msg_id: .message_id, text: .content}'
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Get your own open_id via `lark-cli contact +get-user --as user`; other users' via `lark-cli contact +search-user`.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Minutes Events
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first for the `event consume` essentials (commands, subprocess contract, jq usage).
|
|
4
|
+
|
|
5
|
+
## Key catalog (1)
|
|
6
|
+
|
|
7
|
+
| EventKey | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `minutes.minute.generated_v1` | A minute (妙记) has been generated |
|
|
10
|
+
|
|
11
|
+
This key uses a **Custom schema** (flat output at `.xxx`) and carries a **PreConsume hook** that auto-subscribes / unsubscribes via OAPI on first / last consumer.
|
|
12
|
+
|
|
13
|
+
## Scopes & auth
|
|
14
|
+
|
|
15
|
+
| EventKey | Scope | Auth |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `minutes.minute.generated_v1` | `minutes:minutes.basic:read` | user |
|
|
18
|
+
|
|
19
|
+
Requires `--as user`.
|
|
20
|
+
|
|
21
|
+
## `minutes.minute.generated_v1`
|
|
22
|
+
|
|
23
|
+
### Output fields
|
|
24
|
+
|
|
25
|
+
| Field | Type | Description |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `type` | string | Event type; always `minutes.minute.generated_v1` |
|
|
28
|
+
| `event_id` | string | Globally unique event ID; safe for deduplication |
|
|
29
|
+
| `timestamp` | string (timestamp_ms) | Event delivery time (ms timestamp string) |
|
|
30
|
+
| `minute_token` | string | Minute token |
|
|
31
|
+
| `title` | string | Minute title (enriched via detail API) |
|
|
32
|
+
| `minute_source` | object | Minute source metadata; only present when the source is a meeting |
|
|
33
|
+
| `minute_source.source_type` | string | Source type; only present when the source is a meeting (value: `meeting`) |
|
|
34
|
+
| `minute_source.source_entity_id` | string | Source entity ID (meeting ID); only present when the source is a meeting |
|
|
35
|
+
|
|
36
|
+
### Enrichment & degradation
|
|
37
|
+
|
|
38
|
+
The Process hook calls `GET /open-apis/minutes/v1/minutes/{minute_token}` to enrich `title`. If the detail API fails, this field is left empty — the base fields (`type`, `event_id`, `timestamp`, `minute_token`, `minute_source`) are always present.
|
|
39
|
+
|
|
40
|
+
`minute_source` is populated from the event payload directly (not the detail API), so it survives enrichment failures. Note: `minute_source` is only present when the minute originates from a meeting; for other sources (e.g. recording, local upload) this field is absent.
|
|
41
|
+
|
|
42
|
+
### Example
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
lark-cli event consume minutes.minute.generated_v1 --as user
|
|
46
|
+
|
|
47
|
+
# Project title and token only (skip events where enrichment failed)
|
|
48
|
+
lark-cli event consume minutes.minute.generated_v1 --as user \
|
|
49
|
+
--jq 'select(.title != "") | {minute_token, title}'
|
|
50
|
+
|
|
51
|
+
# Filter by source type
|
|
52
|
+
lark-cli event consume minutes.minute.generated_v1 --as user \
|
|
53
|
+
--jq 'select(.minute_source.source_type == "meeting") | {minute_token, title}'
|
|
54
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Task Events
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first for the `event consume` essentials (commands, subprocess contract, jq usage).
|
|
4
|
+
|
|
5
|
+
## Key catalog (1)
|
|
6
|
+
|
|
7
|
+
| EventKey | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `task.task.update_user_access_v2` | A visible task has been created, deleted, or updated |
|
|
10
|
+
|
|
11
|
+
This key uses a **Native schema** (V2 envelope; output rooted at `.event`) and carries a **PreConsume hook** that calls the Task event subscription API before listening.
|
|
12
|
+
|
|
13
|
+
## Scopes & auth
|
|
14
|
+
|
|
15
|
+
| EventKey | Scope | Auth |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `task.task.update_user_access_v2` | `task:task:read` | user, bot |
|
|
18
|
+
|
|
19
|
+
Supports `--as user` or `--as bot`.
|
|
20
|
+
|
|
21
|
+
- `--as user`: receive task updates visible to the current user through authorship, assignment, following, or other access.
|
|
22
|
+
- `--as bot`: receive task updates for tasks the application is responsible for.
|
|
23
|
+
|
|
24
|
+
## `task.task.update_user_access_v2`
|
|
25
|
+
|
|
26
|
+
### Subscription behavior
|
|
27
|
+
|
|
28
|
+
On startup, `event consume` calls:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
POST /open-apis/task/v2/task_v2/task_subscription?user_id_type=open_id
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The Task subscription API has no matching unsubscribe endpoint in the current CLI metadata, so graceful exit has no cleanup call for this EventKey. Re-running the consumer repeats the subscribe call for the selected identity.
|
|
35
|
+
|
|
36
|
+
This EventKey is single-consumer per local bus subscription: start one `event consume task.task.update_user_access_v2` process for a given app/profile/identity at a time.
|
|
37
|
+
|
|
38
|
+
### Output fields (V2 envelope; root path `.event`)
|
|
39
|
+
|
|
40
|
+
| Field | Type | Description |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `.header.event_id` | string | Globally unique event ID; safe for deduplication |
|
|
43
|
+
| `.header.create_time` | string (timestamp_ms) | Event creation time in milliseconds |
|
|
44
|
+
| `.event.event_types[]` | string enum | Task commit types included in this event |
|
|
45
|
+
| `.event.task_guid` | string (kind=task_guid) | Task GUID that changed |
|
|
46
|
+
|
|
47
|
+
Commit types:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
task_assignees_update
|
|
51
|
+
task_completed_update
|
|
52
|
+
task_create
|
|
53
|
+
task_deleted
|
|
54
|
+
task_desc_update
|
|
55
|
+
task_followers_update
|
|
56
|
+
task_reminders_update
|
|
57
|
+
task_start_due_update
|
|
58
|
+
task_summary_update
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Example
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Stream task update events for the current user
|
|
65
|
+
lark-cli event consume task.task.update_user_access_v2 --as user
|
|
66
|
+
|
|
67
|
+
# Sample one event for payload inspection
|
|
68
|
+
lark-cli event consume task.task.update_user_access_v2 \
|
|
69
|
+
--as user --max-events 1 --timeout 2m
|
|
70
|
+
|
|
71
|
+
# Project to a compact task-update record
|
|
72
|
+
lark-cli event consume task.task.update_user_access_v2 \
|
|
73
|
+
--as user \
|
|
74
|
+
--jq '{event_id: .header.event_id, task_guid: .event.task_guid, event_types: .event.event_types, timestamp: .header.create_time}'
|
|
75
|
+
|
|
76
|
+
# Consume as the app identity
|
|
77
|
+
lark-cli event consume task.task.update_user_access_v2 --as bot
|
|
78
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# VC Events
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first for the `event consume` essentials (commands, subprocess contract, jq usage).
|
|
4
|
+
|
|
5
|
+
## Key catalog (4)
|
|
6
|
+
|
|
7
|
+
| EventKey | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `vc.meeting.participant_meeting_started_v1` | A meeting the current user participates in has started |
|
|
10
|
+
| `vc.meeting.participant_meeting_joined_v1` | The current user has joined a meeting |
|
|
11
|
+
| `vc.meeting.participant_meeting_ended_v1` | A meeting the current user participates in has ended |
|
|
12
|
+
| `vc.note.generated_v1` | A note has been generated (meeting, recording, upload, etc.) |
|
|
13
|
+
|
|
14
|
+
All four keys use a **Custom schema** (flat output) and carry a **PreConsume hook** that auto-subscribes / unsubscribes via OAPI on first / last consumer. All require `--as user`.
|
|
15
|
+
|
|
16
|
+
## Scopes & auth
|
|
17
|
+
|
|
18
|
+
| EventKey | Scope | Auth |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| `vc.meeting.participant_meeting_started_v1` | `vc:meeting.meetingevent:read` | user |
|
|
21
|
+
| `vc.meeting.participant_meeting_joined_v1` | `vc:meeting.meetingevent:read` | user |
|
|
22
|
+
| `vc.meeting.participant_meeting_ended_v1` | `vc:meeting.meetingevent:read` | user |
|
|
23
|
+
| `vc.note.generated_v1` | `vc:note:read` | user |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Meeting participant events
|
|
28
|
+
|
|
29
|
+
Covered keys:
|
|
30
|
+
|
|
31
|
+
- `vc.meeting.participant_meeting_started_v1`
|
|
32
|
+
- `vc.meeting.participant_meeting_joined_v1`
|
|
33
|
+
- `vc.meeting.participant_meeting_ended_v1`
|
|
34
|
+
|
|
35
|
+
### Output fields
|
|
36
|
+
|
|
37
|
+
| Field | Type | Description |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `type` | string | Event type; one of the covered meeting participant EventKeys |
|
|
40
|
+
| `event_id` | string | Globally unique event ID; safe for deduplication |
|
|
41
|
+
| `timestamp` | string (timestamp_ms) | Event delivery time (ms timestamp string) |
|
|
42
|
+
| `meeting_id` | string | Meeting ID |
|
|
43
|
+
| `topic` | string | Meeting topic |
|
|
44
|
+
| `meeting_no` | string | Meeting number |
|
|
45
|
+
| `start_time` | string | Meeting start time in RFC3339, converted to the local timezone |
|
|
46
|
+
| `calendar_event_id` | string | Calendar event ID associated with the meeting |
|
|
47
|
+
| `end_time` | string | Meeting end time in RFC3339, converted to the local timezone; only present for `vc.meeting.participant_meeting_ended_v1` |
|
|
48
|
+
|
|
49
|
+
### Gotchas
|
|
50
|
+
|
|
51
|
+
- `start_time` / `end_time` are **not** the raw unix-seconds from OAPI — the Process hook converts them to local-timezone RFC3339. If the raw value is empty or non-numeric, the field is left empty. `end_time` is emitted only for `vc.meeting.participant_meeting_ended_v1`.
|
|
52
|
+
- No detail API call is made; all fields come from the event payload itself.
|
|
53
|
+
|
|
54
|
+
### Example
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
lark-cli event consume vc.meeting.participant_meeting_started_v1 --as user
|
|
58
|
+
lark-cli event consume vc.meeting.participant_meeting_joined_v1 --as user
|
|
59
|
+
lark-cli event consume vc.meeting.participant_meeting_ended_v1 --as user
|
|
60
|
+
|
|
61
|
+
# Project meeting topic and end time only
|
|
62
|
+
lark-cli event consume vc.meeting.participant_meeting_ended_v1 --as user \
|
|
63
|
+
--jq '{meeting: .meeting_id, topic: .topic, ended: .end_time}'
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## `vc.note.generated_v1`
|
|
69
|
+
|
|
70
|
+
Fires when a note is generated — not just from meetings, but also from realtime recordings and local file uploads.
|
|
71
|
+
|
|
72
|
+
### Output fields
|
|
73
|
+
|
|
74
|
+
| Field | Type | Description |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `type` | string | Event type; always `vc.note.generated_v1` |
|
|
77
|
+
| `event_id` | string | Globally unique event ID; safe for deduplication |
|
|
78
|
+
| `timestamp` | string (timestamp_ms) | Event delivery time (ms timestamp string) |
|
|
79
|
+
| `note_id` | string | Note ID |
|
|
80
|
+
| `note_token` | string | Note document token; may be empty if detail is not yet available |
|
|
81
|
+
| `verbatim_token` | string | Verbatim document token; may be empty if detail is not yet available |
|
|
82
|
+
| `note_source` | object | Source metadata; only present when source is a meeting |
|
|
83
|
+
| `note_source.source_type` | string | Source type; only present when source is a meeting (value: `meeting`) |
|
|
84
|
+
| `note_source.source_entity_id` | string | Source entity ID (meeting ID); only present when source is a meeting |
|
|
85
|
+
|
|
86
|
+
### Source type semantics
|
|
87
|
+
|
|
88
|
+
| `source_type` | Trigger |
|
|
89
|
+
|---|---|
|
|
90
|
+
| `meeting` | Note generated from a meeting |
|
|
91
|
+
|
|
92
|
+
`note_source` (and its sub-fields) are only populated when `source_type` is `meeting`. For other sources the field is absent.
|
|
93
|
+
|
|
94
|
+
### Example
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
lark-cli event consume vc.note.generated_v1 --as user
|
|
98
|
+
|
|
99
|
+
# Only notes with enriched tokens, skip incomplete ones
|
|
100
|
+
lark-cli event consume vc.note.generated_v1 --as user \
|
|
101
|
+
--jq 'select(.note_token != "") | {note_id, note_token, verbatim_token}'
|
|
102
|
+
|
|
103
|
+
# Filter to meeting-sourced notes only
|
|
104
|
+
lark-cli event consume vc.note.generated_v1 --as user \
|
|
105
|
+
--jq 'select(.note_source.source_type == "meeting") | {note_id, meeting_id: .note_source.source_entity_id}'
|
|
106
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Whiteboard Events
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../SKILL.md`](../SKILL.md) first for the `event consume` essentials (commands, subprocess contract, jq usage).
|
|
4
|
+
|
|
5
|
+
## Key catalog (1)
|
|
6
|
+
|
|
7
|
+
| EventKey | Purpose |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `board.whiteboard.updated_v1` | A whiteboard has been edited |
|
|
10
|
+
|
|
11
|
+
This key uses a **Native schema** (V2 envelope; output rooted at `.event`) and carries a **PreConsume hook** that auto-subscribes / unsubscribes via OAPI on first / last consumer.
|
|
12
|
+
|
|
13
|
+
## Scopes & auth
|
|
14
|
+
|
|
15
|
+
| EventKey | Scope | Auth |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `board.whiteboard.updated_v1` | `board:whiteboard:node:read` | user, bot |
|
|
18
|
+
|
|
19
|
+
Supports `--as user` or `--as bot`. The caller must have **manage** access to the target whiteboard, otherwise the subscribe OAPI returns 403 and `event consume` exits with an auth error before listening.
|
|
20
|
+
|
|
21
|
+
## `board.whiteboard.updated_v1`
|
|
22
|
+
|
|
23
|
+
### Per-whiteboard subscription
|
|
24
|
+
|
|
25
|
+
Unlike global event keys (e.g. minutes / im), this key subscribes **per whiteboard**: `event consume` calls `POST /open-apis/board/v1/whiteboards/{whiteboard_id}/subscribe` on startup with the `whiteboard_id` you pass via `-p`. **Required parameter**: `-p whiteboard_id=<whiteboard_token>`. Missing this param fails param validation up-front with `required param "whiteboard_id" missing for EventKey board.whiteboard.updated_v1` before any subscription happens.
|
|
26
|
+
|
|
27
|
+
Whiteboard token can be obtained via the docs OAPI [list document blocks](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/document-docx/docx-v1/document-block/list): the block whose `block_type=43` is a whiteboard, and `block.token` is the whiteboard token.
|
|
28
|
+
|
|
29
|
+
### Output fields (V2 envelope; root path `.event`)
|
|
30
|
+
|
|
31
|
+
| Field | Type | Description |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| `.event.whiteboard_id` | string (kind=whiteboard_id) | Whiteboard token |
|
|
34
|
+
| `.event.operator_ids[].open_id` | string (kind=open_id) | Editor's open_id (`ou_` prefix) |
|
|
35
|
+
| `.event.operator_ids[].union_id` | string (kind=union_id) | Editor's union_id |
|
|
36
|
+
| `.event.operator_ids[].user_id` | string (kind=user_id) | Editor's user_id (only present when the caller's app has the user_id-related contact scope granted by the OAPI side) |
|
|
37
|
+
|
|
38
|
+
`operator_ids` is an array — multi-user collaborative editing within one tick collapses into a single event with multiple entries.
|
|
39
|
+
|
|
40
|
+
### Subscription lifecycle
|
|
41
|
+
|
|
42
|
+
| Phase | Behavior |
|
|
43
|
+
|---|---|
|
|
44
|
+
| Startup | `event consume` calls `subscribe` OAPI; on success stderr emits `[event] consuming as ...`, `[event] running pre-consume setup...`, `[event] listening for events (key=board.whiteboard.updated_v1)...`, then the AI-facing ready marker `[event] ready event_key=board.whiteboard.updated_v1` |
|
|
45
|
+
| Running | Edits to the whiteboard stream as NDJSON to stdout |
|
|
46
|
+
| Graceful exit (Ctrl+C / SIGTERM / `--max-events` / `--timeout` / stdin EOF) | `event consume` calls `unsubscribe` OAPI |
|
|
47
|
+
| `kill -9` | **Skips unsubscribe → server-side subscription leaks**, may cause `subscription already exists` or duplicate delivery on next consume. See SKILL.md "Never `kill -9`". |
|
|
48
|
+
|
|
49
|
+
### Example
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Stream every edit on whiteboard <token> until Ctrl+C
|
|
53
|
+
lark-cli event consume board.whiteboard.updated_v1 \
|
|
54
|
+
-p whiteboard_id=<whiteboard_token> \
|
|
55
|
+
--as user
|
|
56
|
+
|
|
57
|
+
# Sample one event for payload inspection
|
|
58
|
+
lark-cli event consume board.whiteboard.updated_v1 \
|
|
59
|
+
-p whiteboard_id=<whiteboard_token> \
|
|
60
|
+
--as user --max-events 1 --timeout 2m
|
|
61
|
+
|
|
62
|
+
# Project to "edit summary": who edited which whiteboard
|
|
63
|
+
lark-cli event consume board.whiteboard.updated_v1 \
|
|
64
|
+
-p whiteboard_id=<whiteboard_token> \
|
|
65
|
+
--as user \
|
|
66
|
+
--jq '{whiteboard: .event.whiteboard_id, editors: (.event.operator_ids | map(.open_id))}'
|
|
67
|
+
```
|