@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,281 @@
|
|
|
1
|
+
# Card Style Guide
|
|
2
|
+
|
|
3
|
+
选择组件组合和视觉样式的决策指南。字段写法见 `card-2.0-schema.md`。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 好看的标准(P0–P7,唯一裁判基准)
|
|
8
|
+
|
|
9
|
+
**先读这一节。** 下面的「意图→组件」表和「视觉规范」都是为这套标准服务的手段;构造和自检卡片时**以 P0–P7 为准**。
|
|
10
|
+
|
|
11
|
+
**目标函数**:一张好卡片 = 让收件人在**约 2 秒一瞥**内 get 到「这是什么 + 最重要的是什么 + 要不要操作」,且观感**有序、克制、不嘈杂**。高效传达与视觉舒适在此统一。
|
|
12
|
+
|
|
13
|
+
**用力分配**:P0 必过(前置闸)→ P1–P3 强约束(阻断)→ P4–P5 基础卫生 → P6–P7 加分。
|
|
14
|
+
|
|
15
|
+
每条都附**结构化验证句**——卡片不能渲染成图,只能对 JSON 结构推理,所以验证靠「数结构」而非「眯眼看」。
|
|
16
|
+
|
|
17
|
+
| | 准则 | 可操作要求 | 结构化验证(自检句) |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| **P0** | **符合诉求**(前置闸·阻断) | 精确承载用户要的信息/意图/操作,不缺、不多、不跑题;意图类型与组件组合匹配 | 把诉求拆成信息点清单,逐点在 JSON 里找到承载组件;操作诉求逐个找到交互组件。有缺=不过 |
|
|
20
|
+
| **P1** | **层级**(强约束·阻断) | header 承载「这是什么」;body 内**有且仅有一个**最强焦点(最大字号/最重色/指标卡大数字),其余为支撑;标题用 `**加粗**`、次要信息用 grey | 列出所有文本的「字号+粗细+颜色」三元组,能否排出主>次>辅三层;焦点是否唯一 |
|
|
21
|
+
| **P2** | **分组**(强约束·阻断) | 同主题字段收进同一容器(`column_set`/`interactive_container`/背景块),不同主题分容器;块边界靠容器底色/描边/间距,**而非一路 `hr` 平铺** | 数顶层视觉块个数;是否存在「多主题挤在同一无分隔 markdown / 一路 hr 平铺」反模式 |
|
|
22
|
+
| **P3** | **复杂度适中**(强约束·阻断·双边带) | 下限:不得纯文字流水账,至少有分块+层级+适度色彩/图标;上限:视觉块 2–5、主色系 ≤3、组件不堆砌、焦点唯一 | ①是否 >1 个视觉块且含≥1 个非纯文本结构元素(背景块/指标卡/图标/表格);②块数 ≤5、主色系 ≤3。两端都满足才过 |
|
|
23
|
+
| **P4** | **对比**(基础卫生) | 标题与正文字号或粗细至少差一档;强调用色/放大;正文不滥用 `#/##/###`(数值焦点放大除外,见 P1) | 标题与正文是否在「字号或粗细」上至少差一档 |
|
|
24
|
+
| **P5** | **对齐**(基础卫生) | 间距优先交容器 `vertical_spacing`/`horizontal_spacing`/`padding`,**不滥用散设 margin 造成疏密无规律**;间距值收敛到一套档位(2/4/8/12px);顶层容器间距一致 | 是否存在无规律的散落 margin;间距取值种类是否 ≤4 |
|
|
25
|
+
| **P6** | **语义一致**(加分) | 红=降/警/失败、绿=升/成/通过、grey=次要;主色系起始色由 header 决定、取邻近色环;同色同义 | 同一颜色是否对应同一语义;header 模板色与块色是否同色系 |
|
|
26
|
+
| **P7** | **健壮**(加分) | 并列/指标列默认 `weighted` 或 `none`、**慎用 `stretch`**(防移动端拉伸);需要时配 `config.style.color` 的 light/dark;不靠固定像素宽硬排 | 是否存在 stretch 拉伸风险;深浅色是否都可读 |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 意图 → 组件组合
|
|
31
|
+
|
|
32
|
+
### 通知类(无交互或只读)
|
|
33
|
+
|
|
34
|
+
| 用户意图 | 推荐组件组合 | header.template |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| 纯文字通知 / 系统公告 | `column_set`(通知正文,带 `blue-50` 背景)+ `button(open_url)` | `blue` |
|
|
37
|
+
| 活动公告(带主视觉图) | `img`(主图)+ `markdown`(时间/地点)+ `column_set`(详情对)+ `button(open_url)` | `turquoise` / `blue` |
|
|
38
|
+
| 成功 / 完成状态通知 | `column_set`(关键字段,带 `green-50` 背景)+ `markdown`(结论加粗) | `green` |
|
|
39
|
+
| 审批结果反馈(已通过 / 已拒绝) | `column_set`(申请信息)+ `column_set`(审批结论 + icon,带 `green-50`/`red-50` 背景) | `green` / `red` |
|
|
40
|
+
| 生日 / 节日祝福 | `img`(主图)+ `column_set`(人名/日期)+ `button(open_url)` | `orange` |
|
|
41
|
+
| 产品 / 功能上线推广 | `img`(主图)+ `markdown`(亮点)+ `column_set`(功能高亮块)+ `button(open_url)` | `blue` / `violet` |
|
|
42
|
+
| 多图展示(图集、AI 生成图) | `img_combination` 或 多个 `img` + `markdown`(说明)+ `button(callback)` | `default` |
|
|
43
|
+
|
|
44
|
+
### 提醒 + 操作类
|
|
45
|
+
|
|
46
|
+
| 用户意图 | 推荐组件组合 | header.template |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| 提醒 + 一键操作 | `column_set`(详情,带 `yellow-50` 背景)+ `button(callback)` | `yellow` |
|
|
49
|
+
| 任务清单 / 待办跟踪 | `checker` × N(每项带 `behaviors: callback`)+ `button(callback)`(全部完成操作) | `blue` |
|
|
50
|
+
| 告警触发(需立即处理) | `column_set`(告警指标,带 `red-50` 背景)+ `column_set`(描述 + input 快速备注)+ `button(callback)` | `red` |
|
|
51
|
+
| 告警已解决 / 状态变更 | `column_set`(解决时间 / 负责人,带 `green-50` 背景)+ `markdown`(结论加粗) | `green` |
|
|
52
|
+
| 审批待处理(含备注输入) | `column_set`(申请信息,带 `grey-50` 背景)+ `column_set`(input 审批意见)+ `button(callback)` × 2(通过 / 拒绝) | `default` |
|
|
53
|
+
| 日历 / 日程提醒(含参与人) | `column_set`(时间 / 地点,带 `yellow-50` 背景)+ `person_list`(参与人)+ `button(callback)` | `yellow` |
|
|
54
|
+
| 危险操作确认 | `column_set`(说明,带 `red-50` 背景)+ `button(callback)` + `confirm` 弹窗配置 | `red` |
|
|
55
|
+
|
|
56
|
+
### 数据 / 报告类
|
|
57
|
+
|
|
58
|
+
| 用户意图 | 推荐组件组合 | header.template |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| 日报 / 工作汇报 | `column_set`(指标,带背景色)+ `interactive_container`(进展分块,带描边)× N;内容过长的块用 `collapsible_panel` 折叠次要细节 | `blue` / `default` |
|
|
61
|
+
| 数据看板(含图表) | `column_set`(指标,带 `blue-50` 背景)+ `chart` + `table`(根节点,不可嵌套)+ `markdown`(说明) | `blue` |
|
|
62
|
+
| 排行榜 | `column_set` 固定列宽(序号 + 头像 `img` + 名字 + 指标)循环条目 | `grey` |
|
|
63
|
+
| 订单 / 工单详情 | `div.fields`(字段对)或 `column_set`(需彩色背景块时)+ `button(callback)` | `orange` |
|
|
64
|
+
|
|
65
|
+
### 表单 / 收集类
|
|
66
|
+
|
|
67
|
+
| 用户意图 | 推荐组件组合 | header.template |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| 纯文字表单收集 | `form`(内含 `input` + `button(form_action_type: submit)`) | `blue` |
|
|
70
|
+
| 带下拉选择的表单(单选) | `form`(内含 `select_static` / `select_person` + `input` + `button`) | `wathet` |
|
|
71
|
+
| 带多选的表单 | `form`(内含 `multi_select_static` / `multi_select_person` + `input` + `button`) | `wathet` |
|
|
72
|
+
| 含日期 / 时间的表单 | `form`(内含 `date_picker` / `picker_time` / `picker_datetime` + `input` + `button`) | `blue` |
|
|
73
|
+
| 设备 / 服务反馈 | `form`(内含 `select_static`(满意度)+ `input`(备注)+ `button`) | `yellow` |
|
|
74
|
+
| 多步骤进度 / 引导 | `column_set`(横向步骤,带 `blue-50` 背景)+ `markdown`(当前状态)+ `button` | `blue` |
|
|
75
|
+
|
|
76
|
+
### 推荐 / 选择类
|
|
77
|
+
|
|
78
|
+
| 用户意图 | 推荐组件组合 | header.template |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| 推荐列表(带图卡片,可点击) | `interactive_container`(内含 `img` + `markdown`)× N + `button(open_url)` | `blue` |
|
|
81
|
+
| AI 引导选项 / 功能菜单 | `markdown`(欢迎语)+ `interactive_container`(内含 `markdown` 选项说明)× N | 无 header |
|
|
82
|
+
| Bot 功能引导 / 教程 | `column_set`(步骤说明,带背景)+ `button` × 2(主操作 / 次操作) | `blue` |
|
|
83
|
+
| 服务台 / 多操作入口 | `column_set`(说明,带背景)+ `button` × N(≤3 个主操作,`type` 区分主次);次要操作超过 3 个时改用 `overflow`(折叠菜单) | 无 header |
|
|
84
|
+
|
|
85
|
+
### 社交 / 互动类
|
|
86
|
+
|
|
87
|
+
| 用户意图 | 推荐组件组合 | header.template |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| 工作圈 / 社交分享 | `img_combination`(多图)+ `markdown`(正文)+ `button(open_url)` × 2 | `blue` |
|
|
90
|
+
| 成交 / 业绩公告 | `img`(庆祝图)+ `markdown`(成绩)+ `column_set`(关键数字) | `green` |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 视觉规范(实现 P0–P7 的具体战术)
|
|
95
|
+
|
|
96
|
+
组件选型只解决「有没有」,下面各条是落地上面 P0–P7 的具体手段,括号标注它主要服务的原则。
|
|
97
|
+
|
|
98
|
+
> **P3 特例 — 数据看板类**:`chart + table + column_set + markdown` 是四种不同组件各出现一次,不算「堆砌」,P3 上限照常满足;但仍须保证每类只出现一次。
|
|
99
|
+
|
|
100
|
+
### 0. Header 图标(服务 P3 · 视觉质感底线)
|
|
101
|
+
|
|
102
|
+
**几乎所有卡片都应配 header icon**——这是提升「精致感」成本最低的一步,缺失会让 header 显得空洞、平价。
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
"header": {
|
|
106
|
+
"title": { "tag": "plain_text", "content": "卡片标题" },
|
|
107
|
+
"template": "blue",
|
|
108
|
+
"icon": { "tag": "standard_icon", "token": "mail_colorful" }
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- `token` 从 `resource/icons.md` 按场景选取;彩色图标用 `*_colorful` 后缀,单色用普通名称。
|
|
113
|
+
- 常用速查:通知 `notice_colorful`、告警 `warning_colorful`、审批 `approve_colorful`、日历 `calendar_colorful`、数据 `chart_colorful`、任务 `todo_colorful`、AI `myai_colorful`。
|
|
114
|
+
|
|
115
|
+
### 1. 配色纪律(服务 P6 语义一致)
|
|
116
|
+
|
|
117
|
+
- **邻近色环**:`Red → Carmine → Orange → Yellow → Green → Turquoise → Wathet → Blue → Violet → Purple →(回到)Red`。一张卡只能取色环上**相邻**的颜色,严禁跳跃(❌ blue + green + red)。
|
|
118
|
+
- **最多 3 种主色系**(不含 grey / white)。
|
|
119
|
+
- **起始色由 header 决定**:
|
|
120
|
+
- header `blue` → blue / violet / purple
|
|
121
|
+
- header `green` → green / turquoise / wathet
|
|
122
|
+
- header `red` → red / carmine / orange
|
|
123
|
+
- 无 header → 默认 blue / violet / purple
|
|
124
|
+
- **深浅语义**(写法 `blue-50`、`blue-600`、`grey-500`):
|
|
125
|
+
- `-50` 区块背景 · `-100` 标签背景 · `-500` 正文文字 · `-600`/`-700` 强调文字
|
|
126
|
+
|
|
127
|
+
### 2. 间距纪律(服务 P5 对齐 · 视觉决定性因素)
|
|
128
|
+
|
|
129
|
+
- **body padding 推荐**:`"padding": "12px 12px 20px 12px"`(上右下左;底部 20px 留白更舒适)。
|
|
130
|
+
- **优先不用 `markdown` / `column` 的 `margin` 控间距**:交给父容器的 `vertical_spacing` / `horizontal_spacing` / `padding` 统一管理,多数情况显式置 `0px`;仅在需要精细缩进(如层级左缩进)时才设非零值。
|
|
131
|
+
- 容器内 `vertical_spacing` 推荐值:`2px`(高亮块内标题↔正文)/ `4px`(正文段落、列表项)/ `8px`(需拉开的元素)。
|
|
132
|
+
- **容器间智能 margin**:某个顶级容器若**不是** body 最后一个元素 → 设 `"margin": "0px 0px 12px 0px"`;若**是**最后一个 → `"0px"` 或不设,避免卡片底部多余留白。
|
|
133
|
+
|
|
134
|
+
### 3. 指标卡模式(服务 P1 焦点 · 出现 KPI / 数值 / 统计词时强制使用)
|
|
135
|
+
|
|
136
|
+
触发:内容含 `KPI/ROI/CTR/UV/PV/DAU/GMV/转化率/增长率/总数/营收` 等数值类信息。
|
|
137
|
+
|
|
138
|
+
- 多个指标并列放进一个 `column_set`,`flex_mode` **默认用 `"none"`、慎用 `"stretch"`**(防移动端拉伸变形,P7);仅在各列内容等宽、确认移动端不变形时才用 stretch。
|
|
139
|
+
- 数值:用 `##` 放大(**唯一允许用 markdown 标题的特例**),可配 `<font>` 上色。
|
|
140
|
+
- 描述:`<font color='grey'>` + `text_size: "notation"`。
|
|
141
|
+
- 居中 `text_align: "center"`;列背景 `background_style: "grey-50"`;`padding: "12px"`;`vertical_spacing: "2px"`。
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"tag": "column_set",
|
|
146
|
+
"flex_mode": "none",
|
|
147
|
+
"horizontal_spacing": "12px",
|
|
148
|
+
"columns": [
|
|
149
|
+
{ "tag": "column", "width": "weighted", "weight": 1,
|
|
150
|
+
"background_style": "grey-50", "corner_radius": "8px",
|
|
151
|
+
"padding": "12px", "vertical_spacing": "2px",
|
|
152
|
+
"elements": [
|
|
153
|
+
{ "tag": "markdown", "content": "## <font color='blue'>5,483</font>", "text_align": "center" },
|
|
154
|
+
{ "tag": "markdown", "content": "<font color='grey'>GMV($)</font>", "text_align": "center", "text_size": "notation" }
|
|
155
|
+
] }
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 4. 描边卡片模式(服务 P2 分组 · 进展 / 事项 / 列表项分块展示)
|
|
161
|
+
|
|
162
|
+
用 `interactive_container` 给每个事项块加描边 + 圆角,视觉上比彩色底色更轻盈,适合进展/工单/任务列表等「多条目」场景。
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"tag": "interactive_container",
|
|
167
|
+
"width": "fill",
|
|
168
|
+
"has_border": true,
|
|
169
|
+
"border_color": "blue-100",
|
|
170
|
+
"corner_radius": "8px",
|
|
171
|
+
"background_style": "blue-50",
|
|
172
|
+
"padding": "12px 12px 12px 12px",
|
|
173
|
+
"vertical_spacing": "4px",
|
|
174
|
+
"margin": "0px 0px 12px 0px",
|
|
175
|
+
"elements": [
|
|
176
|
+
{
|
|
177
|
+
"tag": "markdown",
|
|
178
|
+
"content": "**<font color='blue'>事项标题</font>**"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"tag": "markdown",
|
|
182
|
+
"content": "事项正文内容……",
|
|
183
|
+
"text_size": "normal"
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
- `border_color` 跟随主色系(蓝系用 `blue-100`,绿系用 `green-100`)。
|
|
190
|
+
- 不需要交互时可省略 `behaviors`;需要点击回调时加 `"behaviors": [{"type":"callback","value":{...}}]`。
|
|
191
|
+
- **不能在内部放 `form` 或 `table`**。
|
|
192
|
+
|
|
193
|
+
### 5. 高亮块模式(服务 P2 分组 · 多分类信息成块展示)
|
|
194
|
+
|
|
195
|
+
两层结构:外层 `column_set` 管布局,内层 `column` 管样式(彩色背景)。
|
|
196
|
+
|
|
197
|
+
- 每个 `column` 设 `background_style` 用浅色(如 `blue-50` / `green-50`),`padding: "12px 12px 12px 12px"`,`vertical_spacing: "4px"`,`weight: 1`。
|
|
198
|
+
- 块内首行用 `**<font color='blue'>分类标题</font>**` 着色加粗,正文紧随。
|
|
199
|
+
- **布局选择**:分类 ≤ 3 个且内容简短 → 水平,优先用 `flex_mode: "bisect"`(2 列)或 `"trisect"`(3 列);各列字数严格等宽且已确认移动端不变形时才用 `stretch`(慎用,见 §9);**分类 ≥ 4 个、奇数、或任一块内容 > 3 行 → 垂直**(每块独占一行)。配色按上面第 1 条邻近色环依次取色。
|
|
200
|
+
- ⚠️ **版本依赖**:`column.background_style` 需客户端 **≥ v7.9**,旧版静默丢背景。要求强健壮性时改用 `interactive_container` 的 `background_style`(无版本限制)替代 column 背景色。
|
|
201
|
+
|
|
202
|
+
### 6. Header 三件套(服务 P1 层级 · 语境补全)
|
|
203
|
+
|
|
204
|
+
header 有三层能力,**尽量用满**(至少用 `title` + `icon`;`subtitle` 和 `text_tag_list` 按实际诉求取舍)——这是成本最低、语境最清晰的一步:
|
|
205
|
+
|
|
206
|
+
- `title`:这是什么(必填)
|
|
207
|
+
- `subtitle`:一句上下文(谁发 / 什么时间 / 什么状态),≤1 行,`plain_text`
|
|
208
|
+
- `text_tag_list`:状态标签,≤3 个,颜色语义与 P6 保持一致(`blue`=信息、`yellow`=待处理、`red`=紧急、`green`=完成)
|
|
209
|
+
|
|
210
|
+
```json
|
|
211
|
+
"header": {
|
|
212
|
+
"title": { "tag": "plain_text", "content": "发版审批" },
|
|
213
|
+
"subtitle": { "tag": "plain_text", "content": "2026-06-25 · 后端服务" },
|
|
214
|
+
"template": "blue",
|
|
215
|
+
"icon": { "tag": "standard_icon", "token": "approve_colorful" },
|
|
216
|
+
"text_tag_list": [
|
|
217
|
+
{ "tag": "text_tag", "text": { "tag": "plain_text", "content": "待审批" }, "color": "yellow" }
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**禁止**:在 `header.title` 里写 emoji;把 subtitle 信息改塞进 body 第一行 markdown,让 header 空洞;严肃场景(审批/告警/财务)在 title 或 body 标题里用装饰性 emoji。
|
|
223
|
+
|
|
224
|
+
### 7. 字段对用 `div.fields`,不要用 `column_set` 模拟(服务 P5 对齐)
|
|
225
|
+
|
|
226
|
+
详情型"label: value"(订单字段、审批信息、日程详情)首选 `div.fields`——原生对齐,结构更轻:
|
|
227
|
+
|
|
228
|
+
```json
|
|
229
|
+
{
|
|
230
|
+
"tag": "div",
|
|
231
|
+
"fields": [
|
|
232
|
+
{ "is_short": true, "text": { "tag": "lark_md", "content": "**提交人**\n张三" } },
|
|
233
|
+
{ "is_short": true, "text": { "tag": "lark_md", "content": "**部门**\n研发中台" } },
|
|
234
|
+
{ "is_short": true, "text": { "tag": "lark_md", "content": "**提交时间**\n2026-06-25 10:30" } },
|
|
235
|
+
{ "is_short": true, "text": { "tag": "lark_md", "content": "**优先级**\n<font color='red'>P0</font>" } }
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
`is_short: true` 的字段自动两两并排,对齐由组件保证。`column_set` 留给**需要彩色背景块 / 不等宽 / 嵌套复杂结构**的场景,不要用它模拟简单字段对。
|
|
241
|
+
|
|
242
|
+
### 8. 长文本必须设 `lines` 截断(服务 P3 复杂度上限)
|
|
243
|
+
|
|
244
|
+
凡接收动态数据的文本字段,必须设最大行数避免卡片被撑爆:
|
|
245
|
+
|
|
246
|
+
| 位置 | 字段 | 推荐上限 |
|
|
247
|
+
|---|---|---|
|
|
248
|
+
| `div.text` | `lines` | 正文 ≤4,次要说明 ≤2 |
|
|
249
|
+
| `person_list` | `lines` | ≤2 |
|
|
250
|
+
| `table.header_style` | `lines` | ≤1 |
|
|
251
|
+
| `collapsible_panel` | 默认折叠 | 长文本优先用折叠面板而非截断 |
|
|
252
|
+
|
|
253
|
+
不设 `lines` 的动态文本 = P3 上限的隐患。
|
|
254
|
+
|
|
255
|
+
### 9. `flex_mode` 决策表(服务 P7 健壮)
|
|
256
|
+
|
|
257
|
+
| 场景 | 推荐 flex_mode | 原因 |
|
|
258
|
+
|---|---|---|
|
|
259
|
+
| 指标卡并列(内容不等长) | `none` + `width: weighted` | 防移动端拉伸;各列按比例压缩 |
|
|
260
|
+
| 2 列等宽内容(字数相近) | `bisect` | 语义最清晰的两等分 |
|
|
261
|
+
| 3 列等宽内容 | `trisect` | 三等分,不写 weight |
|
|
262
|
+
| 多 tag / 多图标横排,允许换行 | `flow` | 窄屏自动折行,不挤压 |
|
|
263
|
+
| 明确要求两端对齐撑满且内容等宽 | `stretch` | 慎用:移动端窄屏内容过长时会拉伸变形 |
|
|
264
|
+
|
|
265
|
+
> `stretch` 只在各列字数高度相近、且已确认移动端不变形时使用;其余场景默认 `none`。
|
|
266
|
+
|
|
267
|
+
### 10. `chart` 配色纳入 P6 纪律
|
|
268
|
+
|
|
269
|
+
`chart.color_theme` 必须与全卡色系保持一致:
|
|
270
|
+
|
|
271
|
+
- **默认**:`brand`(单色系,跟随飞书品牌色)或 `primary`(主色单色系),安全选项。
|
|
272
|
+
- **禁止**:`rainbow`——会把色环上的跳跃色全打进图表,直接击穿 P6 的"主色系 ≤3 + 邻近色环"约束。
|
|
273
|
+
- **例外**:数据维度 ≥4 个系列、且各系列无主次关系(如区域对比图)时,可用 `complementary` 或在 `chart_spec` 里自定义与主色系邻近的颜色数组。
|
|
274
|
+
|
|
275
|
+
### 11. `laser` 样式的克制规则(服务 P6 语义一致)
|
|
276
|
+
|
|
277
|
+
`button.type: "laser"` 和 `background_style: "laser"` 是高饱和渐变效果:
|
|
278
|
+
|
|
279
|
+
- **允许**:AI 生成类、节日庆祝类、营销推广类,每卡 **≤1 处**,且位置在主操作按钮或视觉焦点块。
|
|
280
|
+
- **禁止**:审批、告警、财务、工单、日程等严肃场景——laser 在这些场景里显得轻浮廉价。
|
|
281
|
+
- **默认不用**;Step 1 设计方案里若要用,需显式说明"×× 场景适合 laser 风格"并得到确认。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 颜色枚举
|
|
2
|
+
|
|
3
|
+
卡片所有颜色字段(`font_color` / `text_color` / `background_style` / `border_color` / icon `color` 等)共用同一套枚举,按属性名区分用途,无单独的文字/背景色表。
|
|
4
|
+
|
|
5
|
+
## 基础色名(14 色系)
|
|
6
|
+
|
|
7
|
+
`blue` `carmine` `green` `indigo` `lime` `orange` `purple` `red` `sunflower` `turquoise` `violet` `wathet` `yellow` `grey`
|
|
8
|
+
|
|
9
|
+
> **标签例外**:`text_tag` / `<text_tag>` 的灰色用 `neutral`(不是 `grey`);标签枚举无 `grey`。
|
|
10
|
+
|
|
11
|
+
## 深浅后缀
|
|
12
|
+
|
|
13
|
+
- 彩色系(13 个非 grey):`-50 -100 -200 -300 -350 -400 -500 -600 -700 -800 -900`,数字越大越深。
|
|
14
|
+
- **无后缀基础名(如 `blue`)= `-600`**(同色值)。
|
|
15
|
+
- grey 范围更细:`-00 -50 -100 … -650 … -950 -1000`。
|
|
16
|
+
- 用法语义:`-50` 区块背景 · `-100` 标签背景 · `-500` 正文 · `-600/-700` 强调文字。
|
|
17
|
+
|
|
18
|
+
## 特殊值
|
|
19
|
+
|
|
20
|
+
`white`(白)· `bg-white`(背景白:浅色 #ffffff / 深色 #1A1A1A)。无 `transparent` 枚举。
|
|
21
|
+
|
|
22
|
+
## 自定义 RGBA
|
|
23
|
+
|
|
24
|
+
在 `config.style.color` 定义 token 再引用:
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
"config": { "style": { "color": {
|
|
28
|
+
"cus-0": { "light_mode": "rgba(5,157,178,0.52)", "dark_mode": "rgba(...)" }
|
|
29
|
+
} } }
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
组件里写 `"font_color": "cus-0"`。RGBA 支持的属性同枚举(font/text_color、background_style、border_color、icon color 等)。
|
|
33
|
+
|
|
34
|
+
> `column` 的 `background_style` 需客户端 v7.9+。配色搭配规则见 `../lark-im-card-style.md` 视觉规范。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 图标枚举
|
|
2
|
+
|
|
3
|
+
用于 `header.icon`、`div.icon`、`markdown` 的 `<link icon=...>` 等。
|
|
4
|
+
|
|
5
|
+
## 结构
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
// 系统图标(推荐):用 token
|
|
9
|
+
{ "tag": "standard_icon", "token": "info_outlined", "color": "blue" }
|
|
10
|
+
// 自定义图标:用上传的 img_key
|
|
11
|
+
{ "tag": "custom_icon", "img_key": "img_v3_xxx" }
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
`color` 取颜色枚举(见 `colors.md`),仅对 `standard_icon` 生效。
|
|
15
|
+
|
|
16
|
+
## token 命名
|
|
17
|
+
|
|
18
|
+
- 线性:后缀 `_outlined`;面性(实心):后缀 `_filled`。
|
|
19
|
+
- 主体 kebab-case,如 `calendar-add_outlined`、`delete-trash_outlined`。
|
|
20
|
+
|
|
21
|
+
## 常用 token(业务卡片)
|
|
22
|
+
|
|
23
|
+
| 含义 | token | 含义 | token |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| 完成/对勾 | `done_outlined` | 关闭/叉 | `close_outlined` |
|
|
26
|
+
| 新增 | `add_outlined` | 编辑 | `edit_outlined` |
|
|
27
|
+
| 删除 | `delete-trash_outlined` | 搜索 | `search_outlined` |
|
|
28
|
+
| 设置 | `setting_outlined` | 信息 | `info_outlined` |
|
|
29
|
+
| 警告 | `warning_outlined` | 时间 | `time_outlined` |
|
|
30
|
+
| 日历 | `calendar_outlined` | 成员 | `member_outlined` |
|
|
31
|
+
| 群组 | `group_outlined` | 会话 | `chat_outlined` |
|
|
32
|
+
| 邮件 | `mail_outlined` | 链接 | `link-copy_outlined` |
|
|
33
|
+
| 分享 | `share_outlined` | 下载 | `download_outlined` |
|
|
34
|
+
| 通知/铃铛 | `bell_outlined` | 定位 | `pin_outlined` |
|
|
35
|
+
| 附件 | `attachment_outlined` | 审批 | `approval_outlined` |
|
|
36
|
+
|
|
37
|
+
> token 必须与官方完全一致,否则图标不渲染。上表为常用项,全量(数百个,分系统/商务/沟通/用户/媒体/文档等类目)以官方图标库为准:
|
|
38
|
+
> https://open.larkoffice.com/document/feishu-cards/enumerations-for-icons
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# card.action.trigger
|
|
2
|
+
|
|
3
|
+
> **Prerequisite:** Read [`../../lark-event/SKILL.md`](../../lark-event/SKILL.md) first for `event consume` essentials.
|
|
4
|
+
|
|
5
|
+
Fires when a user interacts with an interactive card — button click, form submit, dropdown select,
|
|
6
|
+
checkbox toggle, date/time pick, etc.
|
|
7
|
+
|
|
8
|
+
## Setup (required)
|
|
9
|
+
|
|
10
|
+
> **Console configuration required**: In the Feishu Developer Console, go to
|
|
11
|
+
> **App → Events & Callbacks → Callback Configuration** (应用--事件与回调--回调配置) and enable it.
|
|
12
|
+
> The consumer starts without errors even when not configured, but **no events will be received**.
|
|
13
|
+
> There is no preflight check for this setting.
|
|
14
|
+
|
|
15
|
+
After enabling, events are delivered over the existing WebSocket long connection — no additional
|
|
16
|
+
URL configuration needed.
|
|
17
|
+
|
|
18
|
+
## Scopes & auth
|
|
19
|
+
|
|
20
|
+
| Scope | Required for |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `im:message:readonly` | Auto-fetch `card_content` via message get API (covers both p2p and group messages) |
|
|
23
|
+
|
|
24
|
+
Auth: `bot` only.
|
|
25
|
+
|
|
26
|
+
## Output fields
|
|
27
|
+
|
|
28
|
+
| Field | Type | Description |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| `type` | string | Always `card.action.trigger` |
|
|
31
|
+
| `event_id` | string | Unique event ID; safe for deduplication |
|
|
32
|
+
| `timestamp` | string (timestamp_ms) | Event delivery time (ms since epoch) |
|
|
33
|
+
| `operator_id` | string (open_id) | Open ID of the user who interacted |
|
|
34
|
+
| `message_id` | string (message_id) | Message ID of the card (`om_xxx`) |
|
|
35
|
+
| `chat_id` | string (chat_id) | Chat ID (`oc_xxx`) |
|
|
36
|
+
| `host` | string | `im_message` (chat card) or `im_top_notice` (top banner) |
|
|
37
|
+
| `token` | string | Delayed-update token; valid 30 min, max 2 uses |
|
|
38
|
+
| `action_tag` | string | Component type that was triggered (see decision table) |
|
|
39
|
+
| `action_value` | string | Developer-defined value on the component; serialized to JSON string |
|
|
40
|
+
| `action_name` | string | `name` attribute of the component |
|
|
41
|
+
| `timezone` | string | User timezone, e.g. `Asia/Shanghai`; only populated for date/time picker interactions |
|
|
42
|
+
| `form_value` | string (JSON) | All form field values as JSON string, keyed by component `name`; only present when a button inside a form container is clicked |
|
|
43
|
+
| `input_value` | string | Input text; only for standalone `input` components (not inside a form) |
|
|
44
|
+
| `option` | string | Selected value for standalone single-select: `select_static`, `select_person`, `overflow`, `date_picker`, `picker_time`, `picker_datetime` |
|
|
45
|
+
| `options` | string | Comma-separated selected values for standalone multi-select: `multi_select_static`, `multi_select_person` |
|
|
46
|
+
| `checked` | bool | Checkbox state for standalone `checker` elements |
|
|
47
|
+
| `card_content` | string | Original card content (userDSL text format) from when the card was sent; auto-fetched via message get API at consume time; empty if `message_id` absent or fetch fails — skip if empty |
|
|
48
|
+
|
|
49
|
+
## `card_content` — what it is and how to use it
|
|
50
|
+
|
|
51
|
+
`card_content` is the `user_dsl` field extracted from the card message content, auto-fetched
|
|
52
|
+
at event consume time. It represents the card's original definition — use it as the starting
|
|
53
|
+
point to understand the current card structure and construct the updated card JSON.
|
|
54
|
+
|
|
55
|
+
No extra API call is needed — the consumer fetches it automatically. If empty, skip — no fallback required.
|
|
56
|
+
|
|
57
|
+
## action_tag decision table
|
|
58
|
+
|
|
59
|
+
> **Form container rule**: when a component is inside a `form` container, its value appears in
|
|
60
|
+
> `form_value[name]` instead of the standalone fields (`option`, `options`, `input_value`,
|
|
61
|
+
> `checked`). There is no `form_submit` tag — form submission comes through as `button` with
|
|
62
|
+
> `form_value` populated.
|
|
63
|
+
|
|
64
|
+
| `action_tag` | Read field(s) | Notes |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `button` | `action_value` (fromjson if object); `form_value` if inside a form | Most common; `form_value` non-empty = form submit |
|
|
67
|
+
| `overflow` | `option` | Collapsible button group selection |
|
|
68
|
+
| `select_static` | `option` (standalone) or `form_value[name]` (in form) | Single-select dropdown |
|
|
69
|
+
| `multi_select_static` | `options` (standalone) or `form_value[name]` (in form) | Multi-select dropdown |
|
|
70
|
+
| `select_person` | `option` — open_id of selected user | Single-select person |
|
|
71
|
+
| `multi_select_person` | `options` — comma-separated open_ids | Multi-select person |
|
|
72
|
+
| `input` | `input_value` (standalone) or `form_value[name]` (in form) | Text input |
|
|
73
|
+
| `checker` | `checked` (standalone) or `form_value[name]` (in form) | Checkbox |
|
|
74
|
+
| `date_picker` | `option` (date string) + `timezone` | e.g. `"2024-04-01 +0800"` |
|
|
75
|
+
| `picker_time` | `option` (time string) + `timezone` | e.g. `"08:30 +0800"` |
|
|
76
|
+
| `picker_datetime` | `option` (datetime string) + `timezone` | e.g. `"2024-04-29 07:07 +0800"` |
|
|
77
|
+
| `select_img` | `option` (single) or `options` (multi) | Image picker |
|
|
78
|
+
|
|
79
|
+
## Key constraints
|
|
80
|
+
|
|
81
|
+
1. Token **valid 30 minutes**, **max 2 uses** — if update fails after exhaustion, inform the user
|
|
82
|
+
2. Delayed-update API requires **complete new card JSON** — partial updates are not supported
|
|
83
|
+
3. SDK auto-responds `{"code":200}` within 3 s — your update call can be sent any time within 30 min
|
|
84
|
+
4. `card_content` is auto-populated — no extra API call needed; if empty, skip it
|
|
85
|
+
|
|
86
|
+
## After starting the listener
|
|
87
|
+
|
|
88
|
+
Once the listener is running, check whether your agent runtime supports background event
|
|
89
|
+
monitoring (i.e. can receive and process stdout lines from a running subprocess while
|
|
90
|
+
continuing to respond to the user). If it does, prompt the user:
|
|
91
|
+
|
|
92
|
+
> "Card callback listener is now active. Do you want me to automatically handle card
|
|
93
|
+
> interactions and update the card based on user actions?"
|
|
94
|
+
|
|
95
|
+
Only enter the auto-update workflow below if the user confirms. If your runtime does not
|
|
96
|
+
support background monitoring, inform the user that automatic card updates are not available
|
|
97
|
+
and they will need to handle interactions manually.
|
|
98
|
+
|
|
99
|
+
## Agent workflow
|
|
100
|
+
|
|
101
|
+
When a `card.action.trigger` event arrives (**each stdout JSON line is one event — process it immediately**):
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
1. Read action fields to understand what the user did:
|
|
105
|
+
- action_tag: which component was triggered
|
|
106
|
+
- action_value / option / options / checked / input_value / form_value: what value was set
|
|
107
|
+
|
|
108
|
+
2. Decide: does this interaction require a card update?
|
|
109
|
+
- e.g. button click with a business action → yes
|
|
110
|
+
- e.g. navigation / pagination → no (just record, no update needed)
|
|
111
|
+
- Not every callback requires a card update — decide based on business semantics
|
|
112
|
+
- Before updating, explicitly state what visual change the action requires. If you cannot articulate one, skip the update.
|
|
113
|
+
|
|
114
|
+
3. If update is needed:
|
|
115
|
+
a. If card_content is empty: inform the user that the original card could not be fetched,
|
|
116
|
+
so it is not possible to determine whether an update is needed — do not guess
|
|
117
|
+
b. Determine the new card state based on the action
|
|
118
|
+
c. Use card_content as the structural basis to construct the updated card JSON
|
|
119
|
+
d. Detect card version: if card_content contains `"schema":"2.0"` or `"schema": "2.0"` it is Card 2.0; otherwise assume Card 1.0
|
|
120
|
+
e. For Card 1.0: include `"open_ids": ["<operator_id>"]` inside the `card` object, or the API returns code 300090
|
|
121
|
+
f. Call the delayed update API with the token and new card JSON
|
|
122
|
+
|
|
123
|
+
4. If no update: end (the SDK has already acknowledged the callback)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Updating the card
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
lark-cli api POST /open-apis/interactive/v1/card/update --as bot \
|
|
130
|
+
--data '{"token":"<token>","card":<new_card_json>}'
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
`--data` parameters:
|
|
134
|
+
|
|
135
|
+
| Field | Required | Description |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| `token` | Yes | Delayed-update token from the event |
|
|
138
|
+
| `card` | Yes | Complete new card JSON — construct based on `card_content` from the event, modified to reflect the new state |
|
|
139
|
+
| `card.open_ids` | No | **Card 1.0 only.** Array of `open_id`s defining which users see the updated card. Must contain at least one open_id (e.g. the operator's); passing `[]` or omitting the key both cause "openid empty" (code 300090). |
|
|
140
|
+
|
|
141
|
+
## Examples
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Stream all card interactions
|
|
145
|
+
lark-cli event consume card.action.trigger --as bot
|
|
146
|
+
|
|
147
|
+
# Grab one callback to inspect shape (debugging only — do not use in production workflows)
|
|
148
|
+
lark-cli event consume card.action.trigger --as bot --max-events 1 --timeout 60s
|
|
149
|
+
|
|
150
|
+
# Button clicks only (not form submit), with action value
|
|
151
|
+
lark-cli event consume card.action.trigger --as bot \
|
|
152
|
+
--jq 'select(.action_tag == "button" and .form_value == "") | {op: .operator_id, val: (.action_value | fromjson?), token: .token}'
|
|
153
|
+
|
|
154
|
+
# Form submits (button with form_value present)
|
|
155
|
+
lark-cli event consume card.action.trigger --as bot \
|
|
156
|
+
--jq 'select(.action_tag == "button" and .form_value != "") | {op: .operator_id, form: (.form_value | fromjson), token: .token}'
|
|
157
|
+
|
|
158
|
+
# Date picker interactions
|
|
159
|
+
lark-cli event consume card.action.trigger --as bot \
|
|
160
|
+
--jq 'select(.action_tag == "date_picker") | {op: .operator_id, date: .option, tz: .timezone}'
|
|
161
|
+
|
|
162
|
+
# Filter to one chat
|
|
163
|
+
lark-cli event consume card.action.trigger --as bot \
|
|
164
|
+
--jq 'select(.chat_id == "oc_xxx")'
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Gotchas
|
|
168
|
+
|
|
169
|
+
- **No `form_submit` tag**: form submission comes as `action_tag = "button"` with `form_value`
|
|
170
|
+
populated. Check `form_value != ""` to distinguish from a standalone button click.
|
|
171
|
+
- **`action_value` type is developer-defined**: the original may be an object or a plain string.
|
|
172
|
+
Use `fromjson?` (with `?` to swallow errors) or check before parsing.
|
|
173
|
+
- **Standalone vs form fields**: `input_value`, `option`, `options`, `checked` are only populated
|
|
174
|
+
for components **not** inside a form container. Inside a form, all values appear in `form_value`.
|
|
175
|
+
- **WebSocket delivery**: no separate callback URL needed; uses the existing WS connection.
|