@yandy0725/pi-lark 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/README.zh.md +30 -0
- package/package.json +36 -0
- package/skills/lark-approval/SKILL.md +56 -0
- package/skills/lark-approval/references/lark-approval-initiate.md +196 -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-apps/SKILL.md +78 -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-cloud-dev.md +120 -0
- package/skills/lark-apps/references/lark-apps-create.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-env-create.md +31 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +40 -0
- package/skills/lark-apps/references/lark-apps-db-table-get.md +29 -0
- package/skills/lark-apps/references/lark-apps-db-table-list.md +31 -0
- package/skills/lark-apps/references/lark-apps-env-pull.md +35 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +57 -0
- package/skills/lark-apps/references/lark-apps-init.md +37 -0
- package/skills/lark-apps/references/lark-apps-list.md +37 -0
- package/skills/lark-apps/references/lark-apps-local-dev.md +76 -0
- package/skills/lark-apps/references/lark-apps-release-create.md +30 -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-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 +157 -0
- package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
- package/skills/lark-base/references/formula-field-guide.md +737 -0
- package/skills/lark-base/references/lark-base-cell-value.md +153 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
- package/skills/lark-base/references/lark-base-dashboard.md +238 -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 +452 -0
- package/skills/lark-base/references/lark-base-field-create.md +103 -0
- package/skills/lark-base/references/lark-base-field-json.md +489 -0
- package/skills/lark-base/references/lark-base-field-update.md +171 -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 +189 -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 +137 -0
- package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +106 -0
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
- package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +113 -0
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
- package/skills/lark-calendar/references/lark-calendar-search-event.md +29 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
- package/skills/lark-contact/SKILL.md +59 -0
- package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
- package/skills/lark-contact/references/lark-contact-search-user.md +124 -0
- package/skills/lark-doc/SKILL.md +79 -0
- package/skills/lark-doc/references/lark-doc-create.md +79 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +138 -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-resource-cover.md +70 -0
- package/skills/lark-doc/references/lark-doc-update.md +259 -0
- package/skills/lark-doc/references/lark-doc-whiteboard.md +154 -0
- package/skills/lark-doc/references/lark-doc-xml.md +181 -0
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +59 -0
- package/skills/lark-doc/references/style/lark-doc-style.md +86 -0
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +55 -0
- package/skills/lark-drive/SKILL.md +215 -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 +193 -0
- package/skills/lark-drive/references/lark-drive-comments-guide.md +72 -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 +79 -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 +145 -0
- package/skills/lark-drive/references/lark-drive-files-list.md +158 -0
- package/skills/lark-drive/references/lark-drive-import.md +170 -0
- package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
- package/skills/lark-drive/references/lark-drive-move.md +120 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +41 -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 +162 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
- package/skills/lark-drive/references/lark-drive-search.md +269 -0
- package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
- package/skills/lark-drive/references/lark-drive-status.md +137 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +302 -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 +226 -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 +130 -0
- package/skills/lark-event/SKILL.md +154 -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 +94 -0
- package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
- package/skills/lark-im/SKILL.md +247 -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-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 +267 -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 +267 -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 +287 -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.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 +69 -0
- package/skills/lark-markdown/references/lark-markdown-create.md +94 -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 +192 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
- package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
- package/skills/lark-minutes/references/lark-minutes-search.md +204 -0
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
- package/skills/lark-minutes/references/lark-minutes-summary.md +122 -0
- package/skills/lark-minutes/references/lark-minutes-todo.md +138 -0
- package/skills/lark-minutes/references/lark-minutes-update.md +41 -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 +115 -0
- package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
- package/skills/lark-okr/references/lark-okr-contentblock.md +359 -0
- package/skills/lark-okr/references/lark-okr-cycle-detail.md +84 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +90 -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-progress-create.md +81 -0
- package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
- package/skills/lark-okr/references/lark-okr-progress-get.md +62 -0
- package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
- package/skills/lark-okr/references/lark-okr-progress-update.md +81 -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 +168 -0
- package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
- package/skills/lark-sheets/SKILL.md +165 -0
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +191 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +330 -0
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +179 -0
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +103 -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 +267 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +166 -0
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +267 -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 +395 -0
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +565 -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 +293 -0
- package/skills/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
- package/skills/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
- package/skills/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
- package/skills/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
- package/skills/lark-slides/assets/templates/hr--employee_training.xml +912 -0
- package/skills/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
- package/skills/lark-slides/assets/templates/hr--onboarding.xml +933 -0
- package/skills/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
- package/skills/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
- package/skills/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
- package/skills/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
- package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
- package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
- package/skills/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
- package/skills/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
- package/skills/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
- package/skills/lark-slides/assets/templates/office--dark_general.xml +3763 -0
- package/skills/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
- package/skills/lark-slides/assets/templates/office--light_general.xml +3378 -0
- package/skills/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
- package/skills/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
- package/skills/lark-slides/assets/templates/office--work_report.xml +1099 -0
- package/skills/lark-slides/assets/templates/office--work_summary.xml +4420 -0
- package/skills/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
- package/skills/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
- package/skills/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
- package/skills/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
- package/skills/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
- package/skills/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
- package/skills/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
- package/skills/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
- package/skills/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
- package/skills/lark-slides/assets/templates/personal--self_intro.xml +696 -0
- package/skills/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
- package/skills/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
- package/skills/lark-slides/assets/templates/product--market_analysis.xml +898 -0
- package/skills/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
- package/skills/lark-slides/assets/templates/product--product_intro.xml +2838 -0
- package/skills/lark-slides/assets/templates/product--product_promotion.xml +687 -0
- package/skills/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
- package/skills/lark-slides/references/asset-planning.md +124 -0
- package/skills/lark-slides/references/examples.md +261 -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 +137 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +128 -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 +94 -0
- package/skills/lark-slides/references/lark-slides-whiteboard.md +330 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +220 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -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 +187 -0
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
- package/skills/lark-slides/references/planning-layer.md +219 -0
- package/skills/lark-slides/references/slide-templates.md +201 -0
- package/skills/lark-slides/references/slides_demo.xml +226 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3049 -0
- package/skills/lark-slides/references/template-catalog.md +463 -0
- package/skills/lark-slides/references/template-index.json +1853 -0
- package/skills/lark-slides/references/troubleshooting.md +63 -0
- package/skills/lark-slides/references/validation-checklist.md +110 -0
- package/skills/lark-slides/references/visual-planning.md +254 -0
- package/skills/lark-slides/references/xml-format-guide.md +369 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +245 -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/template_tool.py +970 -0
- package/skills/lark-slides/scripts/template_tool_test.py +177 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +367 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +263 -0
- package/skills/lark-task/SKILL.md +167 -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 +57 -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 +202 -0
- package/skills/lark-vc/references/lark-vc-detail.md +44 -0
- package/skills/lark-vc/references/lark-vc-recording.md +154 -0
- package/skills/lark-vc/references/lark-vc-search.md +163 -0
- package/skills/lark-vc/references/vc-domain-boundaries.md +188 -0
- package/skills/lark-vc-agent/SKILL.md +169 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +287 -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-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 +94 -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 +110 -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.md +183 -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 +88 -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,243 @@
|
|
|
1
|
+
# mail +lint-html
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解通用安全规则。
|
|
4
|
+
|
|
5
|
+
## 作用
|
|
6
|
+
|
|
7
|
+
`+lint-html` 是邮件 HTML 正文的本地预检工具(read-only,无网络 IO)。
|
|
8
|
+
|
|
9
|
+
- 校验 HTML 是否符合飞书邮箱的兼容性 / 安全 / 原生写法要求;
|
|
10
|
+
- 自动修复非法或不规范写法(autofix 始终启用),输出 `cleaned_html`;
|
|
11
|
+
- 不写入任何邮箱状态,不调用任何 OAPI。
|
|
12
|
+
|
|
13
|
+
写信链路(`+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` / `+draft-edit` body op)已**强制内置**同一份 lint,提交前会自动净化 HTML。默认 envelope 不携带任何 lint 字段以保持响应小巧;加 `--show-lint-details` 可拿到完整 `lint_applied[]` / `original_blocked[]` 两个 Finding 数组(不再返回任何 `*_count` 字段,调用方需要 count 时 `len(arr)` 即可,详见 [邮件 HTML 写法指南](./lark-mail-html.md#写信-shortcut-的-lint-返回值))。本命令是写信链路 lint 的预览版,行为一致,调用更轻量,适合:
|
|
14
|
+
|
|
15
|
+
- AI / 用户在创建草稿前自检 HTML 会被怎么改写;
|
|
16
|
+
- CI 流水线把 HTML 模板当作产物校验。
|
|
17
|
+
|
|
18
|
+
## 命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 直接传 HTML
|
|
22
|
+
lark-cli mail +lint-html --body '<p>正文</p>'
|
|
23
|
+
|
|
24
|
+
# 从文件读 HTML(路径必须在 cwd 子树内)
|
|
25
|
+
lark-cli mail +lint-html --body-file ./template.html
|
|
26
|
+
|
|
27
|
+
# 查看完整 lint 详情
|
|
28
|
+
lark-cli mail +lint-html --body-file ./template.html --show-lint-details
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 参数
|
|
32
|
+
|
|
33
|
+
| 参数 | 必填 | 说明 |
|
|
34
|
+
|------|------|------|
|
|
35
|
+
| `--body <html>` | 二选一 | 待检查的 HTML 内容 |
|
|
36
|
+
| `--body-file <path>` | 二选一 | 从文件读取 HTML,仅支持 cwd 子树(绝对路径 / `..` 越出 cwd 会被拒) |
|
|
37
|
+
| `--show-lint-details` | 否 | 默认 `false`。`true` 时 envelope 同时返回 `warnings[]` / `errors[]` 完整 Finding 数组;默认仅返回 `cleaned_html`,避免复杂模板触发数十条装饰性 warning 把响应撑大几千 token |
|
|
38
|
+
| `--format <fmt>` | 否 | `json`(默认)/ `pretty` / `table` / `csv` / `ndjson` |
|
|
39
|
+
| `--jq <expr>` | 否 | 对返回 JSON 用 jq 表达式过滤 |
|
|
40
|
+
| `--dry-run` | 否 | 不执行 lint,仅返回 dry-run 描述 |
|
|
41
|
+
|
|
42
|
+
## 返回值
|
|
43
|
+
|
|
44
|
+
**默认 envelope**(仅 `cleaned_html`,token-frugal):
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"ok": true,
|
|
49
|
+
"data": {
|
|
50
|
+
"cleaned_html": "<p>...</p>"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**加 `--show-lint-details` 后**:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"ok": true,
|
|
60
|
+
"data": {
|
|
61
|
+
"cleaned_html": "<p>...</p>",
|
|
62
|
+
"warnings": [
|
|
63
|
+
{ "rule_id": "...", "severity": "warning", "tag_or_attr": "...", "excerpt": "...", "hint": "..." }
|
|
64
|
+
],
|
|
65
|
+
"errors": [
|
|
66
|
+
{ "rule_id": "...", "severity": "error", "tag_or_attr": "...", "excerpt": "...", "hint": "..." }
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
| 字段 | 说明 |
|
|
73
|
+
|------|------|
|
|
74
|
+
| `cleaned_html` | 修复后的 HTML(autofix 始终启用);warning 已自动改写,error 已删除 |
|
|
75
|
+
| `warnings[]` | 警告级 finding 数组(**仅 `--show-lint-details` 时返回**)。无违规时输出 `[]` |
|
|
76
|
+
| `errors[]` | 错误级 finding 数组(**仅 `--show-lint-details` 时返回**)。无违规时输出 `[]` |
|
|
77
|
+
|
|
78
|
+
每条 finding 含:
|
|
79
|
+
|
|
80
|
+
| 字段 | 说明 |
|
|
81
|
+
|------|------|
|
|
82
|
+
| `rule_id` | 规则编号(UPPER_SNAKE_CASE) |
|
|
83
|
+
| `severity` | `"warning"` 或 `"error"` |
|
|
84
|
+
| `tag_or_attr` | 触发规则的 tag / attribute / `style.<property>` |
|
|
85
|
+
| `excerpt` | HTML 片段(最多 200 字节,超出截断) |
|
|
86
|
+
| `hint` | 可读的修复说明 |
|
|
87
|
+
|
|
88
|
+
## 调用示例
|
|
89
|
+
|
|
90
|
+
下面是用 `lark-cli mail +lint-html --body '<INPUT>' --show-lint-details` 实跑得到的典型 case(加 `--show-lint-details` 才能看到 finding;默认只返回 `cleaned_html`),覆盖 error 类(强制删)和 warning 类(自动修复)。
|
|
91
|
+
|
|
92
|
+
### Error 类(强制删除,写信链路也会拒)
|
|
93
|
+
|
|
94
|
+
#### 1. `<script>` 整段删除
|
|
95
|
+
|
|
96
|
+
输入:
|
|
97
|
+
|
|
98
|
+
```html
|
|
99
|
+
<script>alert(1)</script>正文
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
输出:
|
|
103
|
+
|
|
104
|
+
```html
|
|
105
|
+
正文
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
原因:`<script>` 有 XSS 风险,整段丢弃。
|
|
109
|
+
|
|
110
|
+
#### 2. `javascript:` URL 删除
|
|
111
|
+
|
|
112
|
+
输入:
|
|
113
|
+
|
|
114
|
+
```html
|
|
115
|
+
<a href="javascript:void(0)">click</a>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
输出:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<a class="not-doclink" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">click</a>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
原因:`javascript:` scheme 是 XSS 入口,`href` 属性被剥。
|
|
125
|
+
|
|
126
|
+
#### 3. `on*` 事件 handler 删除
|
|
127
|
+
|
|
128
|
+
输入:
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<p onclick="alert(1)">hi</p>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
输出:
|
|
135
|
+
|
|
136
|
+
```html
|
|
137
|
+
<div style="margin-top:4px;margin-bottom:4px;line-height:1.6"><div dir="auto" style="font-size:14px">hi</div></div>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
原因:inline event handler(`onclick` / `onerror` 等)是脚本注入入口,属性被剥。
|
|
141
|
+
|
|
142
|
+
### Warning 类(自动修复,视觉无差异)
|
|
143
|
+
|
|
144
|
+
#### 4. `<font>` → `<span style>`
|
|
145
|
+
|
|
146
|
+
输入:
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<font color="red" size="3">字</font>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
输出:
|
|
153
|
+
|
|
154
|
+
```html
|
|
155
|
+
<span style="color:red; font-size:16px">字</span>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
原因:`<font>` 是 HTML4 过时标签,飞书 mail-editor 用 inline style 表达字号 / 颜色。
|
|
159
|
+
|
|
160
|
+
#### 5. `<p>` 段落容器原生化
|
|
161
|
+
|
|
162
|
+
输入:
|
|
163
|
+
|
|
164
|
+
```html
|
|
165
|
+
<p>正文</p>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
输出:
|
|
169
|
+
|
|
170
|
+
```html
|
|
171
|
+
<div style="margin-top:4px;margin-bottom:4px;line-height:1.6"><div dir="auto" style="font-size:14px">正文</div></div>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
原因:飞书 mail-editor 段落实际是双层 div(外层定 margin / line-height,内层定 font-size)。
|
|
175
|
+
|
|
176
|
+
#### 6. `<ul>/<li>` 列表原生化
|
|
177
|
+
|
|
178
|
+
输入:
|
|
179
|
+
|
|
180
|
+
```html
|
|
181
|
+
<ul><li>第一项</li></ul>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
输出:
|
|
185
|
+
|
|
186
|
+
```html
|
|
187
|
+
<ul style="margin-top:0px;margin-bottom:0px;margin-left:0px;padding-left:0px;list-style-position:inside" data-list-bullet="true"><li class="temp-li bullet1" data-li-line="true" data-list="bullet1" style="line-height:1.6;margin-top:0px;margin-bottom:0px;padding-left:0px;display:list-item;list-style-type:disc;font-family:inherit;font-size:14px;margin-left:0px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(0,0,0)">第一项</span></span></li></ul>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
原因:飞书 native list-block 要求 `<ul>` / `<li>` 补全 class + data marker + 双层 span 包裹,否则 li 之间会出现可见空行。
|
|
191
|
+
|
|
192
|
+
#### 7. `<blockquote>` 加灰边 + 灰文字
|
|
193
|
+
|
|
194
|
+
输入:
|
|
195
|
+
|
|
196
|
+
```html
|
|
197
|
+
<blockquote>引用</blockquote>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
输出:
|
|
201
|
+
|
|
202
|
+
```html
|
|
203
|
+
<blockquote style="padding-left:0px;color:rgb(100,106,115);border-left:2px solid rgb(187,191,196);margin:0px">引用</blockquote>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
原因:补飞书原生引用样式(左侧 2px 灰边 + 灰色文字)。
|
|
207
|
+
|
|
208
|
+
#### 8. `<a>` 链接补 not-doclink + LarkSuite 蓝
|
|
209
|
+
|
|
210
|
+
输入:
|
|
211
|
+
|
|
212
|
+
```html
|
|
213
|
+
<a href="https://example.com">link</a>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
输出:
|
|
217
|
+
|
|
218
|
+
```html
|
|
219
|
+
<a href="https://example.com" class="not-doclink" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">link</a>
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
原因:补 `not-doclink` class(防误识为内部 doc share)+ LarkSuite 品牌蓝 + 无下划线。
|
|
223
|
+
|
|
224
|
+
#### 9. 非白名单 CSS property 删除
|
|
225
|
+
|
|
226
|
+
输入:
|
|
227
|
+
|
|
228
|
+
```html
|
|
229
|
+
<p style="position:absolute;color:red">x</p>
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
输出:
|
|
233
|
+
|
|
234
|
+
```html
|
|
235
|
+
<div style="color:red;margin-top:4px;margin-bottom:4px;line-height:1.6"><div dir="auto" style="font-size:14px">x</div></div>
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
原因:`position` 不在 inline style 白名单内被剔除,`color` 保留。
|
|
239
|
+
|
|
240
|
+
## 相关命令
|
|
241
|
+
|
|
242
|
+
- 写信 shortcut(已内置同一份 lint):[`+send`](./lark-mail-send.md) / [`+draft-create`](./lark-mail-draft-create.md) / [`+reply`](./lark-mail-reply.md) / [`+reply-all`](./lark-mail-reply-all.md) / [`+forward`](./lark-mail-forward.md) / [`+draft-edit`](./lark-mail-draft-edit.md)
|
|
243
|
+
- 知识文档:[邮件 HTML 写法指南](./lark-mail-html.md)
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# mail +message
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
+
|
|
5
|
+
读取指定邮件的完整内容,包括邮件头、正文(纯文本 + 可选 HTML)以及统一的 `attachments` 列表(涵盖普通附件和内嵌图片)。
|
|
6
|
+
|
|
7
|
+
`mail +message` 只适合读取一封邮件、一个 `message_id`。如果手上已有多个 `message_id`,请使用 `mail +messages --message-ids <id1>,<id2>,<id3>`;不要循环调用 `mail +message`。
|
|
8
|
+
|
|
9
|
+
CLI 分两阶段构建最终 JSON:
|
|
10
|
+
- 安全的邮件元数据字段直接透传
|
|
11
|
+
- 正文、附件和辅助字段由 shortcut 派生
|
|
12
|
+
|
|
13
|
+
本 skill 对应 shortcut `lark-cli mail +message`,内部步骤:
|
|
14
|
+
1. `GET /open-apis/mail/v1/user_mailboxes/{mailbox}/messages/{message_id}` — 获取完整邮件内容
|
|
15
|
+
|
|
16
|
+
## 命令
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 读取一封邮件(默认包含 HTML 正文)
|
|
20
|
+
lark-cli mail +message --message-id <message-id>
|
|
21
|
+
|
|
22
|
+
# 仅纯文本正文(更小的负载,适合 AI 处理)
|
|
23
|
+
lark-cli mail +message --message-id <message-id> --html=false
|
|
24
|
+
|
|
25
|
+
# 指定邮箱
|
|
26
|
+
lark-cli mail +message --mailbox user@example.com --message-id <message-id>
|
|
27
|
+
|
|
28
|
+
# JSON 输出(脚本友好)
|
|
29
|
+
lark-cli mail +message --message-id <message-id> --format json
|
|
30
|
+
|
|
31
|
+
# Dry Run
|
|
32
|
+
lark-cli mail +message --message-id <message-id> --dry-run
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 参数
|
|
36
|
+
|
|
37
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
38
|
+
|------|------|--------|------|
|
|
39
|
+
| `--message-id <id>` | 是 | — | 单个邮件 ID;多个 ID 使用 `mail +messages --message-ids` |
|
|
40
|
+
| `--mailbox <email>` | 否 | 当前用户 | 邮箱地址(`user_mailbox_id`) |
|
|
41
|
+
| `--html` | 否 | true | 是否返回 HTML 正文(`false` 仅返回纯文本,减少带宽) |
|
|
42
|
+
| `--format <mode>` | 否 | json | 输出格式:`json`(默认)/ `pretty` / `table` / `ndjson` / `csv` |
|
|
43
|
+
| `--dry-run` | 否 | — | 仅打印请求,不执行 |
|
|
44
|
+
|
|
45
|
+
## 返回值
|
|
46
|
+
|
|
47
|
+
成功时返回 `{"ok": true, "data": ...}` 结构,`data` 字段包含:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"message_id": "邮件 ID",
|
|
52
|
+
"thread_id": "会话 ID",
|
|
53
|
+
"smtp_message_id": "RFC 2822 Message-ID",
|
|
54
|
+
"subject": "邮件主题",
|
|
55
|
+
"head_from": {"mail_address": "alice@example.com", "name": "Alice"},
|
|
56
|
+
"to": [{"mail_address": "bob@example.com", "name": "Bob"}],
|
|
57
|
+
"cc": [{"mail_address": "carol@example.com", "name": "Carol"}],
|
|
58
|
+
"bcc": [],
|
|
59
|
+
"date": "Thu, 19 Mar 2026 16:33:02 +0800",
|
|
60
|
+
"in_reply_to": "<original@domain>",
|
|
61
|
+
"reply_to": "reply-to@domain",
|
|
62
|
+
"reply_to_smtp_message_id": "reply-to@domain",
|
|
63
|
+
"references": ["<a@domain>", "<b@domain>"],
|
|
64
|
+
"internal_date": "1748000000000",
|
|
65
|
+
"date_formatted": "2026-03-19 16:33",
|
|
66
|
+
"message_state": 1,
|
|
67
|
+
"message_state_text": "received",
|
|
68
|
+
"folder_id": "INBOX",
|
|
69
|
+
"label_ids": ["UNREAD"],
|
|
70
|
+
"priority_type": "1",
|
|
71
|
+
"priority_type_text": "high",
|
|
72
|
+
"security_level": {
|
|
73
|
+
"is_risk": true,
|
|
74
|
+
"risk_banner_level": "DANGER",
|
|
75
|
+
"risk_banner_reason": "UNAUTH_EXTERNAL",
|
|
76
|
+
"is_header_from_external": true,
|
|
77
|
+
"via_domain": "example.com",
|
|
78
|
+
"spam_banner_type": "USER_RULE",
|
|
79
|
+
"spam_user_rule_id": "76180000000025388",
|
|
80
|
+
"spam_banner_info": "blocked.example.com"
|
|
81
|
+
},
|
|
82
|
+
"body_plain_text": "Hi Bob, ...",
|
|
83
|
+
"body_preview": "Hi Bob, ...",
|
|
84
|
+
"body_html": "<html>...</html>",
|
|
85
|
+
"attachments": [
|
|
86
|
+
{
|
|
87
|
+
"id": "att_xxx",
|
|
88
|
+
"filename": "report.pdf",
|
|
89
|
+
"attachment_type": 1,
|
|
90
|
+
"is_inline": false
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "att_yyy",
|
|
94
|
+
"filename": "logo.png",
|
|
95
|
+
"content_type": "image/png",
|
|
96
|
+
"is_inline": true,
|
|
97
|
+
"cid": "logo@cid"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 字段说明
|
|
104
|
+
|
|
105
|
+
> 注意:使用 `--format json` 获取结构化输出。所有 JSON 输出统一包裹在 `{"ok": true, "data": ...}` 结构中。
|
|
106
|
+
|
|
107
|
+
| 字段 | 说明 |
|
|
108
|
+
|------|------|
|
|
109
|
+
| `message_id` | 邮件 ID |
|
|
110
|
+
| `thread_id` | 会话 ID |
|
|
111
|
+
| `subject` | 邮件主题 |
|
|
112
|
+
| `head_from` | 发件人对象:`{mail_address, name}` |
|
|
113
|
+
| `to` | 收件人列表:`[{mail_address, name}]` |
|
|
114
|
+
| `cc` | 抄送列表:`[{mail_address, name}]` |
|
|
115
|
+
| `bcc` | 密送列表:`[{mail_address, name}]` |
|
|
116
|
+
| `date` | EML 中的时间(毫秒) |
|
|
117
|
+
| `date_formatted` | 可读的发送时间,如 `"2026-03-19 16:33"` |
|
|
118
|
+
| `smtp_message_id` | 符合 RFC 2822 的 SMTP Message-ID |
|
|
119
|
+
| `in_reply_to` | In-Reply-To 邮件头 |
|
|
120
|
+
| `references` | References 邮件头,祖先 SMTP message ID 列表 |
|
|
121
|
+
| `internal_date` | 创建/接收/发送时间(毫秒) |
|
|
122
|
+
| `message_state` | 邮件状态:`1` = 已接收,`2` = 已发送,`3` = 草稿 |
|
|
123
|
+
| `message_state_text` | `"unknown"` / `"received"` / `"sent"` / `"draft"` |
|
|
124
|
+
| `folder_id` | 文件夹 ID。值:`INBOX`、`SENT`、`SPAM`、`ARCHIVED`、`STRANGER`,或自定义文件夹 ID |
|
|
125
|
+
| `label_ids` | 标签 ID 列表 |
|
|
126
|
+
| `priority_type` | 优先级值:`0` = 无优先级,`1` = 高,`3` = 普通,`5` = 低 |
|
|
127
|
+
| `priority_type_text` | `"unknown"` / `"high"` / `"normal"` / `"low"` |
|
|
128
|
+
| `draft_id` | 草稿 ID,可通过列出草稿 API 获取 |
|
|
129
|
+
| `reply_to` | Reply-To 邮件头 |
|
|
130
|
+
| `reply_to_smtp_message_id` | Reply-To SMTP Message-ID |
|
|
131
|
+
| `body_plain_text` | **LLM 阅读推荐的正文字段**;已 base64url 解码并清理 ANSI 转义 |
|
|
132
|
+
| `body_preview` | 纯文本正文前 100 字符,用于快速预览 |
|
|
133
|
+
| `body_html` | 原始 HTML 正文;`--html=false` 时省略 |
|
|
134
|
+
| `attachments` | 普通附件和内嵌图片的统一列表 |
|
|
135
|
+
| `attachments[].id` | 附件 ID(用于下载 URL API) |
|
|
136
|
+
| `attachments[].filename` | 附件文件名 |
|
|
137
|
+
| `attachments[].content_type` | 附件 MIME 类型 |
|
|
138
|
+
| `attachments[].attachment_type` | 附件类型:`1` = 普通附件,`2` = 超大附件 |
|
|
139
|
+
| `attachments[].is_inline` | `true` = 内嵌图片,`false` = 普通附件 |
|
|
140
|
+
| `attachments[].cid` | 内嵌图片的 Content-ID(对应 HTML 正文中 `<img src="cid:...">` 的引用) |
|
|
141
|
+
|
|
142
|
+
### security_level
|
|
143
|
+
|
|
144
|
+
当服务端有该邮件的风险元数据时返回。
|
|
145
|
+
|
|
146
|
+
| 字段 | 说明 |
|
|
147
|
+
|------|------|
|
|
148
|
+
| `is_risk` | 布尔值。`true` 表示邮件被标记为有风险 |
|
|
149
|
+
| `risk_banner_level` | 风险等级。值:`WARNING`、`DANGER`、`INFO` |
|
|
150
|
+
| `risk_banner_reason` | 风险原因。值:`NO_REASON`、`IMPERSONATE_DOMAIN`(相似域名仿冒)、`IMPERSONATE_KP_NAME`(关键人物姓名仿冒)、`UNAUTH_EXTERNAL`(未认证的外部域名)、`MALICIOUS_URL`、`MALICIOUS_ATTACHMENT`、`PHISHING`、`IMPERSONATE_PARTNER`(合作伙伴仿冒)、`EXTERNAL_ENCRYPTION_ATTACHMENT`(外部加密附件) |
|
|
151
|
+
| `is_header_from_external` | 布尔值。`true` 表示发件人来自外部域名 |
|
|
152
|
+
| `via_domain` | 当邮件代发或伪造时显示的 SPF/DKIM 域名,如 `"larksuite.com"` |
|
|
153
|
+
| `spam_banner_type` | 垃圾邮件原因。值:`USER_REPORT`(用户举报)、`USER_BLOCK`(被用户屏蔽)、`ANTI_SPAM`(系统判定为垃圾邮件)、`USER_RULE`(匹配收件箱规则)、`BLOCK_DOMIN`(域名被用户屏蔽)、`BLOCK_ADDRESS`(地址被用户屏蔽) |
|
|
154
|
+
| `spam_user_rule_id` | 匹配的收件箱规则 ID |
|
|
155
|
+
| `spam_banner_info` | 匹配用户黑名单的地址或域名,如 `"larksuite.com"` |
|
|
156
|
+
|
|
157
|
+
## 注意事项
|
|
158
|
+
|
|
159
|
+
- **JSON 输出可直接使用** — 默认输出合法 UTF-8 JSON,可直接读取,无需额外编码转换。
|
|
160
|
+
- **单封读取专用** — `mail +message` 只接收一个 `message_id`。多个 ID 使用 `mail +messages --message-ids <id1>,<id2>,<id3>`,避免逐封循环调用。
|
|
161
|
+
- JSON 输出中 `body_html` 里的 `<` / `>` 可能显示为 `\u003c` / `\u003e`(JSON 安全转义,内容不变,`jq -r` 可还原)。
|
|
162
|
+
- `mail +message` 默认不再获取附件/图片下载 URL。这样可以保持邮件详情读取更轻量,调用方可按需单独请求 URL。
|
|
163
|
+
- 查看原始 HTML:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# jq -r 自动处理 JSON 转义,输出原始 HTML
|
|
167
|
+
lark-cli mail +message --message-id <id> --format json | jq -r '.data.body_html'
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 典型场景
|
|
171
|
+
|
|
172
|
+
### 读取邮件 → 摘要 → 回复
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# 1. 读取邮件(仅纯文本,更小负载)
|
|
176
|
+
lark-cli mail +message --message-id <id> --html=false --format json
|
|
177
|
+
|
|
178
|
+
# 2. 让 LLM 分析 body_plain_text 并起草回复
|
|
179
|
+
|
|
180
|
+
# 3. 发送回复
|
|
181
|
+
lark-cli mail +reply --message-id <id> --body "..."
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 按需获取附件或内嵌图片下载 URL
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# 1. 读取邮件,从 .data.attachments[] 中获取附件 ID
|
|
188
|
+
lark-cli mail +message --message-id <id> --format json
|
|
189
|
+
|
|
190
|
+
# 2. 仅为需要的 ID 获取下载 URL
|
|
191
|
+
lark-cli schema mail.user_mailbox.message.attachments.download_url
|
|
192
|
+
lark-cli mail user_mailbox.message.attachments download_url \
|
|
193
|
+
--params '{"user_mailbox_id":"me","message_id":"<id>","attachment_ids":["att_xxx","att_yyy"]}'
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
普通附件和内嵌图片使用同一个 `user_mailbox.message.attachments download_url` 原生 API(无 shortcut 封装),传入 `attachments[].id` 即可。
|
|
197
|
+
|
|
198
|
+
## 日程邀请邮件
|
|
199
|
+
|
|
200
|
+
当邮件包含日程邀请(`text/calendar`)时,输出中会包含 `calendar_event` 对象:
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"calendar_event": {
|
|
205
|
+
"method": "REQUEST",
|
|
206
|
+
"uid": "abc123",
|
|
207
|
+
"summary": "产品评审",
|
|
208
|
+
"start": "2026-04-20T14:00:00+08:00",
|
|
209
|
+
"end": "2026-04-20T15:00:00+08:00",
|
|
210
|
+
"location": "5F-大会议室",
|
|
211
|
+
"organizer": "sender@example.com",
|
|
212
|
+
"attendees": ["alice@example.com", "bob@example.com"]
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
字段说明:
|
|
218
|
+
|
|
219
|
+
- `method`:ICS `METHOD`,通常为 `REQUEST` / `REPLY` / `CANCEL`。
|
|
220
|
+
- `uid`:日程 UID。
|
|
221
|
+
- `summary`:日程标题。
|
|
222
|
+
- `start` / `end`:开始 / 结束时间(RFC 3339 UTC)。
|
|
223
|
+
- `location`:地点(可能为空)。
|
|
224
|
+
- `organizer`:组织者邮箱。
|
|
225
|
+
- `attendees`:参会人邮箱列表。
|
|
226
|
+
|
|
227
|
+
## 相关命令
|
|
228
|
+
|
|
229
|
+
- `lark-cli mail +thread` — 读取会话中所有邮件
|
|
230
|
+
- `lark-cli mail +reply` — 回复邮件
|
|
231
|
+
- `lark-cli mail +forward` — 转发邮件
|
|
232
|
+
- `lark-cli mail user_mailbox.message.attachments download_url` — 按需获取邮件附件/图片下载 URL
|
|
233
|
+
- `lark-cli mail user_mailbox.messages list` — 列出收件箱邮件(获取 `message_id`)
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# mail +messages
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
+
|
|
5
|
+
通过传入逗号分隔的 `message_id` 列表,一次性读取多封邮件的完整内容。
|
|
6
|
+
|
|
7
|
+
超过 20 个 ID 可以直接传入 CLI;CLI 会按 20 个 ID 自动拆批并合并输出,不需要手动拆批,也不要逐封循环调用 `+message`。
|
|
8
|
+
|
|
9
|
+
本 shortcut 是 `mail +message` 的批量版本。每个返回的 `messages[]` 项使用与 `+message` 相同的归一化结构:安全元数据字段直接透传,正文和辅助字段由 shortcut 派生。
|
|
10
|
+
|
|
11
|
+
优先使用本 shortcut,因为:
|
|
12
|
+
- 正文字段已 base64url 解码
|
|
13
|
+
- 每条邮件的输出结构已归一化
|
|
14
|
+
- 不可用的 message ID 会被显式列出
|
|
15
|
+
|
|
16
|
+
本 skill 对应 shortcut `lark-cli mail +messages`;每条返回的邮件使用与 `+message` 相同的规则归一化输出。
|
|
17
|
+
|
|
18
|
+
## 命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 读取多封邮件(默认包含 HTML 正文)
|
|
22
|
+
lark-cli mail +messages --message-ids <id1>,<id2>,<id3>
|
|
23
|
+
|
|
24
|
+
# 仅纯文本正文(更小的负载,适合 AI 处理)
|
|
25
|
+
lark-cli mail +messages --message-ids <id1>,<id2>,<id3> --html=false
|
|
26
|
+
|
|
27
|
+
# 指定邮箱
|
|
28
|
+
lark-cli mail +messages --mailbox user@example.com --message-ids <id1>,<id2>
|
|
29
|
+
|
|
30
|
+
# JSON 输出
|
|
31
|
+
lark-cli mail +messages --message-ids <id1>,<id2> --format json
|
|
32
|
+
|
|
33
|
+
# Dry Run
|
|
34
|
+
lark-cli mail +messages --message-ids <id1>,<id2> --dry-run
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 参数
|
|
38
|
+
|
|
39
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
40
|
+
|------|------|--------|------|
|
|
41
|
+
| `--message-ids <id1>,<id2>,<id3>` | 是 | — | 逗号分隔的邮件 ID 列表;超过 20 个 ID 时 CLI 自动按 20 拆批并合并输出 |
|
|
42
|
+
| `--mailbox <email>` | 否 | 当前用户 | 邮箱地址(`user_mailbox_id`) |
|
|
43
|
+
| `--html` | 否 | true | 是否返回 HTML 正文(`false` 仅返回纯文本,减少带宽) |
|
|
44
|
+
| `--format <mode>` | 否 | json | 输出格式:`json`(默认)/ `pretty` / `table` / `ndjson` / `csv` |
|
|
45
|
+
| `--dry-run` | 否 | — | 仅打印请求,不执行 |
|
|
46
|
+
|
|
47
|
+
## 返回值
|
|
48
|
+
|
|
49
|
+
成功时返回 `{"ok": true, "data": ...}` 结构,`data` 字段包含:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"messages": [
|
|
54
|
+
{ "...与 +message 输出结构相同..." }
|
|
55
|
+
],
|
|
56
|
+
"total": 1,
|
|
57
|
+
"unavailable_message_ids": ["msg-2"]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
顶层字段:
|
|
62
|
+
|
|
63
|
+
| 字段 | 说明 |
|
|
64
|
+
|------|------|
|
|
65
|
+
| `messages` | 返回的邮件列表,顺序与请求的 `--message-ids` 一致,排除 API 未返回的 ID |
|
|
66
|
+
| `total` | 成功返回的邮件数量 |
|
|
67
|
+
| `unavailable_message_ids` | 请求了但 Mail API 未返回详情的 ID 列表 |
|
|
68
|
+
|
|
69
|
+
每个 `messages[]` 项使用与 [`mail +message`](./lark-mail-message.md#返回值) 相同的结构。完整字段列表参见 [`+message` 字段说明](./lark-mail-message.md#字段说明) 和 [`+message` security_level](./lark-mail-message.md#security_level)。
|
|
70
|
+
|
|
71
|
+
> 注意:使用 `--format json` 获取结构化输出。所有 JSON 输出统一包裹在 `{"ok": true, "data": ...}` 结构中。
|
|
72
|
+
|
|
73
|
+
## 注意事项
|
|
74
|
+
|
|
75
|
+
- **JSON 输出可直接使用**,可直接读取,无需额外编码转换。
|
|
76
|
+
- 只需读取一封邮件时请使用 `+message`。
|
|
77
|
+
- CLI 每 20 个 ID 拆成一次调用并合并输出,不需要为大列表手动拆请求。
|
|
78
|
+
- JSON 输出中 `messages[].body_html` 里的 `<` / `>` 可能显示为 `\u003c` / `\u003e`(JSON 安全转义,内容不变,`jq -r` 可还原)。
|
|
79
|
+
- `mail +messages` 仅返回附件元数据。如后续步骤需要下载 URL,请针对特定的 `message_id` 和 `attachment_ids` 调用原生附件 URL API。
|
|
80
|
+
- 与 `+message` 一样,普通附件和内嵌图片都出现在 `messages[].attachments[]` 中,使用同一个 `user_mailbox.message.attachments download_url` API。
|
|
81
|
+
|
|
82
|
+
## 典型场景
|
|
83
|
+
|
|
84
|
+
### 批量摘要多封已知邮件
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# 一次性读取多封邮件
|
|
88
|
+
lark-cli mail +messages --message-ids <id1>,<id2>,<id3> --html=false --format json
|
|
89
|
+
|
|
90
|
+
# 让 LLM 分析 .data.messages[].body_plain_text 并生成分组摘要
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 对比多封邮件内容后决策
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# 获取多封邮件的归一化输出
|
|
97
|
+
lark-cli mail +messages --message-ids <id1>,<id2> --html=false --format json
|
|
98
|
+
|
|
99
|
+
# 检查 subject/from/body_preview 或 body_plain_text,对比意图和下一步操作
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 相关命令
|
|
103
|
+
|
|
104
|
+
- `lark-cli mail +message` — 读取单封邮件
|
|
105
|
+
- `lark-cli mail +thread` — 读取会话中所有邮件
|
|
106
|
+
- `lark-cli mail +reply` — 回复邮件
|
|
107
|
+
- `lark-cli mail +forward` — 转发邮件
|
|
108
|
+
- `lark-cli mail user_mailbox.message.attachments download_url` — 按需获取邮件附件/图片下载 URL
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# mail sent_messages recall
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
+
|
|
5
|
+
撤回已发送邮件,并查询异步撤回结果。
|
|
6
|
+
|
|
7
|
+
## 何时使用
|
|
8
|
+
|
|
9
|
+
发送成功后,若发送响应中包含 `recall_available: true`,说明该邮件支持撤回(通常为 24 小时内已投递的邮件)。
|
|
10
|
+
|
|
11
|
+
- 只有用户明确要求撤回时才执行。
|
|
12
|
+
- 若响应中无 `recall_available` 字段,不要主动提及撤回。
|
|
13
|
+
- 定时发送中、尚未真正发出的邮件不能用撤回;应使用 `user_mailbox.drafts cancel_scheduled_send` 取消定时发送。
|
|
14
|
+
- 撤回是异步操作,`recall` 返回成功只表示请求已受理,实际结果必须通过 `get_recall_detail` 查询。
|
|
15
|
+
|
|
16
|
+
## 命令
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 发起撤回
|
|
20
|
+
lark-cli mail user_mailbox.sent_messages recall --as user \
|
|
21
|
+
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
|
|
22
|
+
|
|
23
|
+
# 查询撤回进度
|
|
24
|
+
lark-cli mail user_mailbox.sent_messages get_recall_detail --as user \
|
|
25
|
+
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 返回值解读
|
|
29
|
+
|
|
30
|
+
`recall` 返回:
|
|
31
|
+
|
|
32
|
+
- `recall_status: available` — 撤回请求已受理,稍后查询进度。
|
|
33
|
+
- `recall_status: unavailable` — 不可撤回,查看 `recall_restriction_reason`。
|
|
34
|
+
|
|
35
|
+
`get_recall_detail` 返回:
|
|
36
|
+
|
|
37
|
+
- `recall_status: in_progress` — 撤回进行中,可稍后再查。
|
|
38
|
+
- `recall_status: done` — 撤回完成,查看 `recall_result` 和每个收件人的详情。
|
|
39
|
+
|
|
40
|
+
具体字段和枚举以 schema 为准:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
lark-cli schema mail.user_mailbox.sent_messages.get_recall_detail
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 典型流程
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 1. 发送结果中确认可撤回
|
|
50
|
+
# data.recall_available == true
|
|
51
|
+
|
|
52
|
+
# 2. 用户确认要撤回后发起
|
|
53
|
+
lark-cli mail user_mailbox.sent_messages recall --as user \
|
|
54
|
+
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
|
|
55
|
+
|
|
56
|
+
# 3. 查询最终结果
|
|
57
|
+
lark-cli mail user_mailbox.sent_messages get_recall_detail --as user \
|
|
58
|
+
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 相关命令
|
|
62
|
+
|
|
63
|
+
- `lark-cli mail +send --confirm-send` — 发送新邮件,响应中可能包含 `recall_available`。
|
|
64
|
+
- `lark-cli mail +reply --confirm-send` — 发送回复,响应中可能包含 `recall_available`。
|
|
65
|
+
- `lark-cli mail +forward --confirm-send` — 发送转发,响应中可能包含 `recall_available`。
|
|
66
|
+
- `lark-cli mail user_mailbox.messages send_status` — 查询发送投递状态。
|