pi-feishu-cli 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/LICENSE +21 -0
- package/README.md +111 -0
- package/dist/src/bot.d.ts +29 -0
- package/dist/src/bot.js +75 -0
- package/dist/src/cards.d.ts +6 -0
- package/dist/src/cards.js +87 -0
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.js +28 -0
- package/dist/src/daemon.d.ts +2 -0
- package/dist/src/daemon.js +151 -0
- package/dist/src/extension.d.ts +2 -0
- package/dist/src/extension.js +124 -0
- package/dist/src/poller.d.ts +33 -0
- package/dist/src/poller.js +94 -0
- package/dist/src/renderer.d.ts +8 -0
- package/dist/src/renderer.js +31 -0
- package/dist/src/session-registry.d.ts +15 -0
- package/dist/src/session-registry.js +82 -0
- package/dist/src/types.d.ts +25 -0
- package/dist/src/types.js +1 -0
- package/dist/tests/bot.test.d.ts +1 -0
- package/dist/tests/bot.test.js +89 -0
- package/dist/tests/cards.test.d.ts +1 -0
- package/dist/tests/cards.test.js +39 -0
- package/dist/tests/config.test.d.ts +1 -0
- package/dist/tests/config.test.js +59 -0
- package/dist/tests/renderer.test.d.ts +1 -0
- package/dist/tests/renderer.test.js +61 -0
- package/dist/tests/session-registry.test.d.ts +1 -0
- package/dist/tests/session-registry.test.js +92 -0
- package/dist/tests/types.test.d.ts +1 -0
- package/dist/tests/types.test.js +30 -0
- package/package.json +35 -0
- package/skills/lark-approval/SKILL.md +56 -0
- package/skills/lark-apps/SKILL.md +92 -0
- package/skills/lark-apps/references/lark-apps-access-scope-get.md +104 -0
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +126 -0
- package/skills/lark-apps/references/lark-apps-create.md +112 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +151 -0
- package/skills/lark-apps/references/lark-apps-list.md +95 -0
- package/skills/lark-apps/references/lark-apps-update.md +86 -0
- package/skills/lark-attendance/SKILL.md +57 -0
- package/skills/lark-base/SKILL.md +359 -0
- package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
- package/skills/lark-base/references/examples.md +140 -0
- package/skills/lark-base/references/formula-field-guide.md +737 -0
- package/skills/lark-base/references/lark-base-advperm-disable.md +83 -0
- package/skills/lark-base/references/lark-base-advperm-enable.md +80 -0
- package/skills/lark-base/references/lark-base-base-copy.md +74 -0
- package/skills/lark-base/references/lark-base-base-create.md +68 -0
- package/skills/lark-base/references/lark-base-base-get.md +39 -0
- package/skills/lark-base/references/lark-base-cell-value.md +151 -0
- package/skills/lark-base/references/lark-base-dashboard-arrange.md +83 -0
- package/skills/lark-base/references/lark-base-dashboard-block-create.md +108 -0
- package/skills/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get.md +57 -0
- package/skills/lark-base/references/lark-base-dashboard-block-list.md +53 -0
- package/skills/lark-base/references/lark-base-dashboard-block-update.md +84 -0
- package/skills/lark-base/references/lark-base-dashboard-create.md +73 -0
- package/skills/lark-base/references/lark-base-dashboard-delete.md +44 -0
- package/skills/lark-base/references/lark-base-dashboard-get.md +59 -0
- package/skills/lark-base/references/lark-base-dashboard-list.md +52 -0
- package/skills/lark-base/references/lark-base-dashboard-update.md +69 -0
- package/skills/lark-base/references/lark-base-dashboard.md +240 -0
- package/skills/lark-base/references/lark-base-data-analysis-sop.md +88 -0
- package/skills/lark-base/references/lark-base-data-query.md +375 -0
- package/skills/lark-base/references/lark-base-field-create.md +104 -0
- package/skills/lark-base/references/lark-base-field-delete.md +51 -0
- package/skills/lark-base/references/lark-base-field-get.md +42 -0
- package/skills/lark-base/references/lark-base-field-list.md +44 -0
- package/skills/lark-base/references/lark-base-field-search-options.md +48 -0
- package/skills/lark-base/references/lark-base-field-update.md +97 -0
- package/skills/lark-base/references/lark-base-field.md +22 -0
- package/skills/lark-base/references/lark-base-form-create.md +87 -0
- package/skills/lark-base/references/lark-base-form-delete.md +64 -0
- package/skills/lark-base/references/lark-base-form-detail.md +198 -0
- package/skills/lark-base/references/lark-base-form-get.md +68 -0
- package/skills/lark-base/references/lark-base-form-list.md +73 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
- package/skills/lark-base/references/lark-base-form-questions-delete.md +68 -0
- package/skills/lark-base/references/lark-base-form-questions-list.md +84 -0
- package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
- package/skills/lark-base/references/lark-base-form-questions.md +23 -0
- package/skills/lark-base/references/lark-base-form-submit.md +171 -0
- package/skills/lark-base/references/lark-base-form-update.md +82 -0
- package/skills/lark-base/references/lark-base-form.md +25 -0
- package/skills/lark-base/references/lark-base-history.md +16 -0
- package/skills/lark-base/references/lark-base-record-batch-create.md +58 -0
- package/skills/lark-base/references/lark-base-record-batch-update.md +53 -0
- package/skills/lark-base/references/lark-base-record-delete.md +62 -0
- package/skills/lark-base/references/lark-base-record-history-list.md +86 -0
- package/skills/lark-base/references/lark-base-record-share-link-create.md +72 -0
- package/skills/lark-base/references/lark-base-record-upsert.md +64 -0
- package/skills/lark-base/references/lark-base-record.md +31 -0
- package/skills/lark-base/references/lark-base-role-create.md +89 -0
- package/skills/lark-base/references/lark-base-role-delete.md +83 -0
- package/skills/lark-base/references/lark-base-role-get.md +87 -0
- package/skills/lark-base/references/lark-base-role-list.md +81 -0
- package/skills/lark-base/references/lark-base-role-update.md +94 -0
- package/skills/lark-base/references/lark-base-shortcut-field-properties.md +481 -0
- package/skills/lark-base/references/lark-base-table-create.md +62 -0
- package/skills/lark-base/references/lark-base-table-delete.md +51 -0
- package/skills/lark-base/references/lark-base-table-get.md +46 -0
- package/skills/lark-base/references/lark-base-table-list.md +43 -0
- package/skills/lark-base/references/lark-base-table-update.md +49 -0
- package/skills/lark-base/references/lark-base-table.md +20 -0
- package/skills/lark-base/references/lark-base-view-create.md +50 -0
- package/skills/lark-base/references/lark-base-view-delete.md +48 -0
- package/skills/lark-base/references/lark-base-view-get-card.md +38 -0
- package/skills/lark-base/references/lark-base-view-get-filter.md +38 -0
- package/skills/lark-base/references/lark-base-view-get-group.md +38 -0
- package/skills/lark-base/references/lark-base-view-get-sort.md +38 -0
- package/skills/lark-base/references/lark-base-view-get-timebar.md +38 -0
- package/skills/lark-base/references/lark-base-view-get-visible-fields.md +28 -0
- package/skills/lark-base/references/lark-base-view-get.md +38 -0
- package/skills/lark-base/references/lark-base-view-list.md +44 -0
- package/skills/lark-base/references/lark-base-view-rename.md +44 -0
- package/skills/lark-base/references/lark-base-view-set-card.md +55 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +181 -0
- package/skills/lark-base/references/lark-base-view-set-group.md +65 -0
- package/skills/lark-base/references/lark-base-view-set-sort.md +63 -0
- package/skills/lark-base/references/lark-base-view-set-timebar.md +51 -0
- package/skills/lark-base/references/lark-base-view-set-visible-fields.md +46 -0
- package/skills/lark-base/references/lark-base-view.md +44 -0
- package/skills/lark-base/references/lark-base-workflow-create.md +180 -0
- package/skills/lark-base/references/lark-base-workflow-disable.md +94 -0
- package/skills/lark-base/references/lark-base-workflow-enable.md +94 -0
- package/skills/lark-base/references/lark-base-workflow-get.md +147 -0
- package/skills/lark-base/references/lark-base-workflow-guide.md +718 -0
- package/skills/lark-base/references/lark-base-workflow-list.md +124 -0
- package/skills/lark-base/references/lark-base-workflow-schema.md +935 -0
- package/skills/lark-base/references/lark-base-workflow-update.md +167 -0
- package/skills/lark-base/references/lark-base-workflow.md +23 -0
- package/skills/lark-base/references/lark-base-workspace.md +18 -0
- package/skills/lark-base/references/lookup-field-guide.md +512 -0
- package/skills/lark-base/references/role-config.md +539 -0
- package/skills/lark-calendar/SKILL.md +154 -0
- package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +109 -0
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -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-suggestion.md +125 -0
- package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
- package/skills/lark-contact/SKILL.md +45 -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 +65 -0
- package/skills/lark-doc/references/lark-doc-create.md +89 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +141 -0
- package/skills/lark-doc/references/lark-doc-md.md +71 -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-update.md +252 -0
- package/skills/lark-doc/references/lark-doc-whiteboard.md +100 -0
- package/skills/lark-doc/references/lark-doc-xml.md +169 -0
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +56 -0
- package/skills/lark-doc/references/style/lark-doc-style.md +106 -0
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +54 -0
- package/skills/lark-drive/SKILL.md +369 -0
- package/skills/lark-drive/references/lark-drive-add-comment.md +182 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -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 +119 -0
- package/skills/lark-drive/references/lark-drive-import.md +159 -0
- package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
- package/skills/lark-drive/references/lark-drive-move.md +120 -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 +266 -0
- package/skills/lark-drive/references/lark-drive-status.md +198 -0
- package/skills/lark-drive/references/lark-drive-task-result.md +302 -0
- package/skills/lark-drive/references/lark-drive-upload.md +67 -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 +198 -0
- package/skills/lark-event/SKILL.md +145 -0
- package/skills/lark-event/references/lark-event-im.md +86 -0
- package/skills/lark-im/SKILL.md +162 -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 +198 -0
- package/skills/lark-im/references/lark-im-chat-messages-list.md +148 -0
- package/skills/lark-im/references/lark-im-chat-search.md +136 -0
- package/skills/lark-im/references/lark-im-chat-update.md +84 -0
- package/skills/lark-im/references/lark-im-flag-cancel.md +198 -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-messages-mget.md +95 -0
- package/skills/lark-im/references/lark-im-messages-reply.md +228 -0
- package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
- package/skills/lark-im/references/lark-im-messages-search.md +232 -0
- package/skills/lark-im/references/lark-im-messages-send.md +229 -0
- package/skills/lark-im/references/lark-im-reactions.md +297 -0
- package/skills/lark-im/references/lark-im-threads-messages-list.md +111 -0
- package/skills/lark-mail/SKILL.md +648 -0
- package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
- package/skills/lark-mail/references/lark-mail-draft-create.md +123 -0
- package/skills/lark-mail/references/lark-mail-draft-edit.md +400 -0
- package/skills/lark-mail/references/lark-mail-forward.md +173 -0
- package/skills/lark-mail/references/lark-mail-message.md +230 -0
- package/skills/lark-mail/references/lark-mail-messages.md +108 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +206 -0
- package/skills/lark-mail/references/lark-mail-reply.md +242 -0
- package/skills/lark-mail/references/lark-mail-send-receipt.md +198 -0
- package/skills/lark-mail/references/lark-mail-send.md +216 -0
- package/skills/lark-mail/references/lark-mail-share-to-chat.md +198 -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 +198 -0
- package/skills/lark-mail/references/lark-mail-thread.md +111 -0
- package/skills/lark-mail/references/lark-mail-triage.md +122 -0
- package/skills/lark-mail/references/lark-mail-watch.md +94 -0
- package/skills/lark-minutes/SKILL.md +139 -0
- package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
- package/skills/lark-minutes/references/lark-minutes-search.md +206 -0
- package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
- package/skills/lark-okr/SKILL.md +133 -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-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-openapi-explorer/SKILL.md +153 -0
- package/skills/lark-shared/SKILL.md +144 -0
- package/skills/lark-sheets/SKILL.md +343 -0
- package/skills/lark-sheets/references/lark-sheets-cell-data.md +197 -0
- package/skills/lark-sheets/references/lark-sheets-cell-images.md +59 -0
- package/skills/lark-sheets/references/lark-sheets-cell-style-and-merge.md +141 -0
- package/skills/lark-sheets/references/lark-sheets-dropdown.md +133 -0
- package/skills/lark-sheets/references/lark-sheets-filter-views.md +193 -0
- package/skills/lark-sheets/references/lark-sheets-float-images.md +125 -0
- package/skills/lark-sheets/references/lark-sheets-formula.md +88 -0
- package/skills/lark-sheets/references/lark-sheets-row-column-management.md +151 -0
- package/skills/lark-sheets/references/lark-sheets-sheet-management.md +164 -0
- package/skills/lark-sheets/references/lark-sheets-spreadsheet-management.md +140 -0
- package/skills/lark-skill-maker/SKILL.md +85 -0
- package/skills/lark-slides/SKILL.md +296 -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 +198 -0
- package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
- package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +198 -0
- package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
- package/skills/lark-slides/assets/templates/misc--book_sharing.xml +198 -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 +198 -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/lark-slides-create.md +137 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +142 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +128 -0
- package/skills/lark-slides/references/lark-slides-replace-slide.md +239 -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 +186 -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 +3004 -0
- package/skills/lark-slides/references/template-catalog.md +463 -0
- package/skills/lark-slides/references/template-index.json +198 -0
- package/skills/lark-slides/references/troubleshooting.md +198 -0
- package/skills/lark-slides/references/validation-checklist.md +102 -0
- package/skills/lark-slides/references/visual-planning.md +250 -0
- package/skills/lark-slides/references/xml-format-guide.md +369 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +215 -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 +165 -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 +55 -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-subscribe-event.md +86 -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 +168 -0
- package/skills/lark-vc/references/lark-vc-notes.md +126 -0
- package/skills/lark-vc/references/lark-vc-recording.md +153 -0
- package/skills/lark-vc/references/lark-vc-search.md +193 -0
- package/skills/lark-vc-agent/SKILL.md +121 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +247 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +133 -0
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +111 -0
- package/skills/lark-whiteboard/SKILL.md +144 -0
- package/skills/lark-whiteboard/references/connectors.md +102 -0
- package/skills/lark-whiteboard/references/content.md +40 -0
- package/skills/lark-whiteboard/references/image.md +80 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +100 -0
- package/skills/lark-whiteboard/references/layout.md +374 -0
- package/skills/lark-whiteboard/references/schema.md +357 -0
- package/skills/lark-whiteboard/references/style.md +318 -0
- package/skills/lark-whiteboard/references/typography.md +73 -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.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 +198 -0
- package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
- package/skills/lark-whiteboard/scenes/funnel.md +198 -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 +198 -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 +198 -0
- package/skills/lark-wiki/SKILL.md +119 -0
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
- package/skills/lark-wiki/references/lark-wiki-member-add.md +66 -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 +56 -0
- package/skills/lark-wiki/references/lark-wiki-node-list.md +198 -0
- package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
- package/skills/lark-wiki/references/lark-wiki-space-list.md +198 -0
- package/skills/lark-workflow-meeting-summary/SKILL.md +104 -0
- package/skills/lark-workflow-standup-report/SKILL.md +120 -0
- package/skills/mmx-cli/SKILL.md +440 -0
- package/src/bot.ts +109 -0
- package/src/cards.ts +105 -0
- package/src/config.ts +33 -0
- package/src/daemon.ts +217 -0
- package/src/extension.ts +132 -0
- package/src/poller.ts +135 -0
- package/src/renderer.ts +47 -0
- package/src/session-registry.ts +90 -0
- package/src/types.ts +29 -0
- package/tests/bot.test.ts +104 -0
- package/tests/cards.test.ts +48 -0
- package/tests/config.test.ts +59 -0
- package/tests/renderer.test.ts +74 -0
- package/tests/session-registry.test.ts +94 -0
- package/tests/types.test.ts +35 -0
- package/tsconfig.json +16 -0
- package/vitest.config.ts +7 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" href="favicon.ico" />
|
|
7
|
+
<title></title>
|
|
8
|
+
<style>
|
|
9
|
+
* {
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
padding: 0;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.open-platform-wrapper {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
height: 100vh;
|
|
21
|
+
background-color: #ffffff;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.open-platform-icon {
|
|
25
|
+
width: 120px;
|
|
26
|
+
height: 120px;
|
|
27
|
+
display: block;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.open-platform-desc {
|
|
31
|
+
margin-top: 16px;
|
|
32
|
+
line-height: 22px;
|
|
33
|
+
font-size: 14px;
|
|
34
|
+
color: #646a73;
|
|
35
|
+
text-align: center
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.open-platform-back {
|
|
39
|
+
border-radius: 6px;
|
|
40
|
+
font-size: 14px;
|
|
41
|
+
height: 32px;
|
|
42
|
+
line-height: 22px;
|
|
43
|
+
min-width: 80px;
|
|
44
|
+
padding: 4px 11px;
|
|
45
|
+
text-align: center;
|
|
46
|
+
text-decoration: none;
|
|
47
|
+
touch-action: manipulation;
|
|
48
|
+
transition: color .1s ease-in, background-color .1s ease-in, border-color .1s ease-in, width .2s ease-in;
|
|
49
|
+
user-select: none;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
background: #1456f0;
|
|
52
|
+
border: 1px solid #1456f0;
|
|
53
|
+
color: #ffffff;
|
|
54
|
+
margin-top: 16px;
|
|
55
|
+
}
|
|
56
|
+
</style>
|
|
57
|
+
</head>
|
|
58
|
+
<body>
|
|
59
|
+
<div class="open-platform-wrapper">
|
|
60
|
+
<img class="open-platform-icon"
|
|
61
|
+
src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEyMCAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjkxMyA1NS4yNDRjLTUuNjMyIDIuOTUtOC4yNDYgNi4yODQtOC4yNDYgOS40NHY5LjcyYzAtMy4xNTYgMi42MTQtNi40OSA4LjI0Ni05LjQ0di05LjcyWm05NC4xNjMtMTIuMDg0di05LjcyNmM1LjkzNC0zLjE5IDguOTgxLTYuODkxIDguOTgxLTEwLjcyNXY5LjcyYzAgMy44NC0zLjA0NyA3LjU0My04Ljk4MSAxMC43MzJaIiBmaWxsPSIjMEMyOTZFIi8+PHBhdGggZD0iTTYwLjIyOSAxOS4wNTkgNDguNzMgNDkuOTIyIDYwLjM2NSA3Mi45MmwtOC40NzQgMjMuODczSDE2LjkyM2E0IDQgMCAwIDEtNC00VjIzLjA2YTQgNCAwIDAgMSA0LTRINjAuMjNaIiBmaWxsPSIjQkJCRkM0IiBmaWxsLW9wYWNpdHk9Ii40NSIvPjxwYXRoIGQ9Ik03MS40MDggMTkuMDU5IDYwLjAxMyA0OS45MjIgNzEuNDYgNzIuOTJsLTguMzI1IDIzLjg3M2gzOS45NDNhNCA0IDAgMCAwIDQtNFYyMy4wNmE0IDQgMCAwIDAtNC00aC0zMS42N1oiIGZpbGw9IiNCQkJGQzQiIGZpbGwtb3BhY2l0eT0iLjQ1Ii8+PHBhdGggZD0iTTIxLjkyMyAyNi4xYTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptMyAyYTMgMyAwIDEgMC02IDAgMyAzIDAgMCAwIDYgMFptNi45MTUtMmEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRabTMgMmEzIDMgMCAxIDAtNiAwIDMgMyAwIDAgMCA2IDBabS0xNS43NjMgNy4zOTRhLjUuNSAwIDAgMSAuNS0uNWgzMS41ODFhLjUuNSAwIDAgMSAwIDFIMTkuNTc1YS41LjUgMCAwIDEtLjUtLjVabTQ4LjQ3NyAwYS41LjUgMCAwIDEgLjUtLjVoMzIuNDY1YS41LjUgMCAwIDEgMCAxSDY4LjA1MmEuNS41IDAgMCAxLS41LS41WiIgZmlsbD0iIzhGOTU5RSIvPjxwYXRoIGQ9Ik05OCAxMTFjOS45NDEgMCAxOC04LjA1OSAxOC0xOHMtOC4wNTktMTgtMTgtMThjLTkuOTQyIDAtMTggOC4wNTktMTggMThzOC4wNTggMTggMTggMThaIiBmaWxsPSIjRjgwIi8+PHBhdGggZD0iTTk3LjE4MSA4NC44MThhLjgxOC44MTggMCAwIDAtLjgxOC44MTl2OS44MThjMCAuNDUyLjM2Ni44MTguODE4LjgxOGgxLjYzN2EuODE4LjgxOCAwIDAgMCAuODE4LS44MTh2LTkuODE5YS44MTguODE4IDAgMCAwLS44MTgtLjgxOEg5Ny4xOFptMCAxMy4wOTJhLjgxOC44MTggMCAwIDAtLjgxOC44MTh2MS42MzZjMCAuNDUyLjM2Ni44MTguODE4LjgxOGgxLjYzN2EuODE4LjgxOCAwIDAgMCAuODE4LS44MTh2LTEuNjM2YS44MTguODE4IDAgMCAwLS44MTgtLjgxOUg5Ny4xOFoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNC4wMjcgODUuMzFjMi40OSA1LjUxIDE0Ljc3IDkuOTQgNDEuNDUgOS45M3Y5LjcyMWMtMjYuNjguMDEtMzguOTYtNC40Mi00MS40NS05Ljkzdi05LjcyWm04NC44MS0yNy4yN2MxNy41Mi0yLjY5IDI1LjgwNy03LjAyNiAyNy4yLTExLjcxdjkuNzJjLS4zMyA0LjY3LTkuNjggOS4wMi0yNy4yIDExLjcxdi05LjcyWiIgZmlsbD0iIzMzNzBGRiIvPjxwYXRoIGQ9Ik04OS4yMzcgMTMuMDFjMTguMDU4IDAgMjYuOCAzLjI1IDI2LjggOS43MnY5LjcyYzAtNi40Ny04Ljc0Mi05LjcyLTI2LjgtOS43MnYtOS43MlptLTg0LjU3IDUxLjdjMCA2LjYgMTEuMzcgMTIuNDUgMzAuNDcgMTIuNDR2OS43MmMtMTkuMSAwLTMwLjQ3LTUuODQtMzAuNDctMTIuNDR2LTkuNzJaIiBmaWxsPSIjMDBENkI5Ii8+PC9zdmc+"
|
|
62
|
+
alt="">
|
|
63
|
+
<div class="open-platform-desc">The page does not exist.</div>
|
|
64
|
+
<a class="open-platform-back" href="/">Go to homepage</a>
|
|
65
|
+
</div>
|
|
66
|
+
<script>window.gfdatav1={"env":"prod","ver":"1.0.0.13","canary":0,"garrModules":null,"envName":"prod","region":"CN","idc":"lf","webServerCodeType":"DeployServerlessWebServer","runtime":"node","extra":{"canaryType":null}}</script><script>
|
|
67
|
+
|
|
68
|
+
function parseQueryString(queryString) {
|
|
69
|
+
// 移除开头的 "?"
|
|
70
|
+
if (queryString.charAt(0) === '?') {
|
|
71
|
+
queryString = queryString.substring(1);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var params = {};
|
|
75
|
+
if (!queryString) return params;
|
|
76
|
+
|
|
77
|
+
// 分割参数对
|
|
78
|
+
var paramPairs = queryString.split('&');
|
|
79
|
+
|
|
80
|
+
for (var i = 0; i < paramPairs.length; i++) {
|
|
81
|
+
var paramPair = paramPairs[i].split('=');
|
|
82
|
+
var key = decodeURIComponent(paramPair[0]);
|
|
83
|
+
var value = paramPair.length > 1 ? decodeURIComponent(paramPair[1]) : '';
|
|
84
|
+
|
|
85
|
+
// 处理重复参数(转为数组)
|
|
86
|
+
if (params[key] === undefined) {
|
|
87
|
+
params[key] = value;
|
|
88
|
+
} else if (!Array.isArray(params[key])) {
|
|
89
|
+
params[key] = [params[key], value];
|
|
90
|
+
} else {
|
|
91
|
+
params[key].push(value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return params;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function getLocale() {
|
|
99
|
+
var zhLang = 'zh-CN';
|
|
100
|
+
var enLang = 'en-US';
|
|
101
|
+
|
|
102
|
+
var queryLang = parseQueryString(window.location.search).lang;
|
|
103
|
+
var cookieLang = getCookieLocale();
|
|
104
|
+
var lang = enLang;
|
|
105
|
+
|
|
106
|
+
<!--从cookie中取值-->
|
|
107
|
+
function getCookieLocale() {
|
|
108
|
+
var locale = '';
|
|
109
|
+
var cookies = document.cookie.split('; ');
|
|
110
|
+
var loclaeKey = 'open_locale';
|
|
111
|
+
|
|
112
|
+
for (var i = 0; i < cookies.length; i++) {
|
|
113
|
+
var cookie = cookies[i].trim();
|
|
114
|
+
var cookieArr = cookie.split('=');
|
|
115
|
+
if (cookieArr[0] === loclaeKey) {
|
|
116
|
+
locale = cookieArr[1];
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return locale;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function setLocaleCookie(lang) {
|
|
124
|
+
var date = new Date();
|
|
125
|
+
// 300天到期
|
|
126
|
+
date.setTime(date.getTime() + (300 * 24 * 60 * 60 * 1000));
|
|
127
|
+
var expires = 'expires=' + date.toUTCString();
|
|
128
|
+
document.cookie = 'open_locale=' + lang + '; ' + expires + '; path=/;';
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// 获取浏览器默认语言
|
|
132
|
+
if (navigator.language.indexOf('en') !== -1) {
|
|
133
|
+
lang = enLang;
|
|
134
|
+
} else if (navigator.language.indexOf('zh') !== -1) {
|
|
135
|
+
lang = zhLang;
|
|
136
|
+
}
|
|
137
|
+
if (cookieLang === enLang) {
|
|
138
|
+
lang = enLang;
|
|
139
|
+
} else if (cookieLang === zhLang) {
|
|
140
|
+
lang = zhLang;
|
|
141
|
+
}
|
|
142
|
+
if (queryLang === enLang) {
|
|
143
|
+
lang = enLang;
|
|
144
|
+
} else if (queryLang === zhLang) {
|
|
145
|
+
lang = zhLang;
|
|
146
|
+
}
|
|
147
|
+
// 设置cookie
|
|
148
|
+
setLocaleCookie(lang);
|
|
149
|
+
return lang;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 根据域名获取当前brand
|
|
153
|
+
function isLarkDomain() {
|
|
154
|
+
var defaultBrandMap = {
|
|
155
|
+
lark: ['larksuite'],
|
|
156
|
+
feishu: ['feishu', 'larkoffice', 'larkenterprise'],
|
|
157
|
+
};
|
|
158
|
+
const { hostname } = window.location;
|
|
159
|
+
|
|
160
|
+
if (defaultBrandMap.feishu.some((item) => hostname.includes(item))) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (defaultBrandMap.lark.some((item) => hostname.includes(item))) {
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (window.domainBrand) {
|
|
169
|
+
return window.domainBrand === 'lark';
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var isLarkBrand = isLarkDomain();
|
|
176
|
+
|
|
177
|
+
var config = {
|
|
178
|
+
'zh-CN': {
|
|
179
|
+
'desc': '抱歉,您访问的页面不存在',
|
|
180
|
+
'back': '返回首页',
|
|
181
|
+
'title': (isLarkBrand ? 'Lark' : '飞书') + '开放平台',
|
|
182
|
+
},
|
|
183
|
+
'en-US': {
|
|
184
|
+
'desc': 'The page does not exist.',
|
|
185
|
+
'back': 'Go to homepage',
|
|
186
|
+
'title': (isLarkBrand ? 'Lark': 'Feishu') + ' Open Platform',
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
var locale = getLocale();
|
|
190
|
+
var descObj = document.querySelector('.open-platform-desc');
|
|
191
|
+
var backObj = document.querySelector('.open-platform-back');
|
|
192
|
+
descObj.innerHTML = config[locale].desc;
|
|
193
|
+
backObj.innerHTML = config[locale].back;
|
|
194
|
+
document.title = config[locale].title;
|
|
195
|
+
|
|
196
|
+
</script>
|
|
197
|
+
</body>
|
|
198
|
+
</html>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# lark-wiki +space-create
|
|
2
|
+
|
|
3
|
+
Create a wiki space. OpenAPI: `POST /open-apis/wiki/v2/spaces`. This is the project-initialization entry point — the alternative is hand-writing `wiki spaces create --params '{...}'`.
|
|
4
|
+
|
|
5
|
+
> The underlying `spaces.create` API is flagged `danger: true` in the schema browser, but it is **not** confirmation-gated (no `--yes`). A space created by mistake is recoverable via `wiki +delete-space`.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
lark-cli wiki +space-create \
|
|
11
|
+
--name <space_name> \
|
|
12
|
+
[--description <text>] \
|
|
13
|
+
[--as user]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Flags
|
|
17
|
+
|
|
18
|
+
| Flag | Type | Required | Default | Description |
|
|
19
|
+
|------|------|----------|---------|-------------|
|
|
20
|
+
| `--name` | string | **Yes** | — | Wiki space name. Blank/whitespace is rejected (an unnamed space is almost always an accident) |
|
|
21
|
+
| `--description` | string | No | — | Wiki space description |
|
|
22
|
+
| `--as` | enum | No | `user` | **User identity only** — the create API does not accept a tenant/bot token; `--as bot` is rejected upfront |
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"space_id": "7160145948494381236",
|
|
29
|
+
"name": "Engineering Wiki",
|
|
30
|
+
"description": "team docs",
|
|
31
|
+
"space_type": "team",
|
|
32
|
+
"visibility": "private",
|
|
33
|
+
"open_sharing": "closed"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
There is no `url` field — the create API does not return one.
|
|
38
|
+
|
|
39
|
+
## Notes
|
|
40
|
+
|
|
41
|
+
- Only `--as user` is supported; this command declares `AuthTypes: ["user"]` and the framework rejects `--as bot` with a clear message.
|
|
42
|
+
- `--dry-run` previews the `POST /open-apis/wiki/v2/spaces` request (and surfaces the blank-name validation error early).
|
|
43
|
+
|
|
44
|
+
## Required Scope
|
|
45
|
+
|
|
46
|
+
`wiki:space:write_only`
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" href="favicon.ico" />
|
|
7
|
+
<title></title>
|
|
8
|
+
<style>
|
|
9
|
+
* {
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
padding: 0;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.open-platform-wrapper {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
height: 100vh;
|
|
21
|
+
background-color: #ffffff;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.open-platform-icon {
|
|
25
|
+
width: 120px;
|
|
26
|
+
height: 120px;
|
|
27
|
+
display: block;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.open-platform-desc {
|
|
31
|
+
margin-top: 16px;
|
|
32
|
+
line-height: 22px;
|
|
33
|
+
font-size: 14px;
|
|
34
|
+
color: #646a73;
|
|
35
|
+
text-align: center
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.open-platform-back {
|
|
39
|
+
border-radius: 6px;
|
|
40
|
+
font-size: 14px;
|
|
41
|
+
height: 32px;
|
|
42
|
+
line-height: 22px;
|
|
43
|
+
min-width: 80px;
|
|
44
|
+
padding: 4px 11px;
|
|
45
|
+
text-align: center;
|
|
46
|
+
text-decoration: none;
|
|
47
|
+
touch-action: manipulation;
|
|
48
|
+
transition: color .1s ease-in, background-color .1s ease-in, border-color .1s ease-in, width .2s ease-in;
|
|
49
|
+
user-select: none;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
background: #1456f0;
|
|
52
|
+
border: 1px solid #1456f0;
|
|
53
|
+
color: #ffffff;
|
|
54
|
+
margin-top: 16px;
|
|
55
|
+
}
|
|
56
|
+
</style>
|
|
57
|
+
</head>
|
|
58
|
+
<body>
|
|
59
|
+
<div class="open-platform-wrapper">
|
|
60
|
+
<img class="open-platform-icon"
|
|
61
|
+
src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEyMCAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjkxMyA1NS4yNDRjLTUuNjMyIDIuOTUtOC4yNDYgNi4yODQtOC4yNDYgOS40NHY5LjcyYzAtMy4xNTYgMi42MTQtNi40OSA4LjI0Ni05LjQ0di05LjcyWm05NC4xNjMtMTIuMDg0di05LjcyNmM1LjkzNC0zLjE5IDguOTgxLTYuODkxIDguOTgxLTEwLjcyNXY5LjcyYzAgMy44NC0zLjA0NyA3LjU0My04Ljk4MSAxMC43MzJaIiBmaWxsPSIjMEMyOTZFIi8+PHBhdGggZD0iTTYwLjIyOSAxOS4wNTkgNDguNzMgNDkuOTIyIDYwLjM2NSA3Mi45MmwtOC40NzQgMjMuODczSDE2LjkyM2E0IDQgMCAwIDEtNC00VjIzLjA2YTQgNCAwIDAgMSA0LTRINjAuMjNaIiBmaWxsPSIjQkJCRkM0IiBmaWxsLW9wYWNpdHk9Ii40NSIvPjxwYXRoIGQ9Ik03MS40MDggMTkuMDU5IDYwLjAxMyA0OS45MjIgNzEuNDYgNzIuOTJsLTguMzI1IDIzLjg3M2gzOS45NDNhNCA0IDAgMCAwIDQtNFYyMy4wNmE0IDQgMCAwIDAtNC00aC0zMS42N1oiIGZpbGw9IiNCQkJGQzQiIGZpbGwtb3BhY2l0eT0iLjQ1Ii8+PHBhdGggZD0iTTIxLjkyMyAyNi4xYTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNFptMyAyYTMgMyAwIDEgMC02IDAgMyAzIDAgMCAwIDYgMFptNi45MTUtMmEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRabTMgMmEzIDMgMCAxIDAtNiAwIDMgMyAwIDAgMCA2IDBabS0xNS43NjMgNy4zOTRhLjUuNSAwIDAgMSAuNS0uNWgzMS41ODFhLjUuNSAwIDAgMSAwIDFIMTkuNTc1YS41LjUgMCAwIDEtLjUtLjVabTQ4LjQ3NyAwYS41LjUgMCAwIDEgLjUtLjVoMzIuNDY1YS41LjUgMCAwIDEgMCAxSDY4LjA1MmEuNS41IDAgMCAxLS41LS41WiIgZmlsbD0iIzhGOTU5RSIvPjxwYXRoIGQ9Ik05OCAxMTFjOS45NDEgMCAxOC04LjA1OSAxOC0xOHMtOC4wNTktMTgtMTgtMThjLTkuOTQyIDAtMTggOC4wNTktMTggMThzOC4wNTggMTggMTggMThaIiBmaWxsPSIjRjgwIi8+PHBhdGggZD0iTTk3LjE4MSA4NC44MThhLjgxOC44MTggMCAwIDAtLjgxOC44MTl2OS44MThjMCAuNDUyLjM2Ni44MTguODE4LjgxOGgxLjYzN2EuODE4LjgxOCAwIDAgMCAuODE4LS44MTh2LTkuODE5YS44MTguODE4IDAgMCAwLS44MTgtLjgxOEg5Ny4xOFptMCAxMy4wOTJhLjgxOC44MTggMCAwIDAtLjgxOC44MTh2MS42MzZjMCAuNDUyLjM2Ni44MTguODE4LjgxOGgxLjYzN2EuODE4LjgxOCAwIDAgMCAuODE4LS44MTh2LTEuNjM2YS44MTguODE4IDAgMCAwLS44MTgtLjgxOUg5Ny4xOFoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNC4wMjcgODUuMzFjMi40OSA1LjUxIDE0Ljc3IDkuOTQgNDEuNDUgOS45M3Y5LjcyMWMtMjYuNjguMDEtMzguOTYtNC40Mi00MS40NS05Ljkzdi05LjcyWm04NC44MS0yNy4yN2MxNy41Mi0yLjY5IDI1LjgwNy03LjAyNiAyNy4yLTExLjcxdjkuNzJjLS4zMyA0LjY3LTkuNjggOS4wMi0yNy4yIDExLjcxdi05LjcyWiIgZmlsbD0iIzMzNzBGRiIvPjxwYXRoIGQ9Ik04OS4yMzcgMTMuMDFjMTguMDU4IDAgMjYuOCAzLjI1IDI2LjggOS43MnY5LjcyYzAtNi40Ny04Ljc0Mi05LjcyLTI2LjgtOS43MnYtOS43MlptLTg0LjU3IDUxLjdjMCA2LjYgMTEuMzcgMTIuNDUgMzAuNDcgMTIuNDR2OS43MmMtMTkuMSAwLTMwLjQ3LTUuODQtMzAuNDctMTIuNDR2LTkuNzJaIiBmaWxsPSIjMDBENkI5Ii8+PC9zdmc+"
|
|
62
|
+
alt="">
|
|
63
|
+
<div class="open-platform-desc">The page does not exist.</div>
|
|
64
|
+
<a class="open-platform-back" href="/">Go to homepage</a>
|
|
65
|
+
</div>
|
|
66
|
+
<script>window.gfdatav1={"env":"prod","ver":"1.0.0.13","canary":0,"garrModules":null,"envName":"prod","region":"CN","idc":"hl","webServerCodeType":"DeployServerlessWebServer","runtime":"node","extra":{"canaryType":null}}</script><script>
|
|
67
|
+
|
|
68
|
+
function parseQueryString(queryString) {
|
|
69
|
+
// 移除开头的 "?"
|
|
70
|
+
if (queryString.charAt(0) === '?') {
|
|
71
|
+
queryString = queryString.substring(1);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var params = {};
|
|
75
|
+
if (!queryString) return params;
|
|
76
|
+
|
|
77
|
+
// 分割参数对
|
|
78
|
+
var paramPairs = queryString.split('&');
|
|
79
|
+
|
|
80
|
+
for (var i = 0; i < paramPairs.length; i++) {
|
|
81
|
+
var paramPair = paramPairs[i].split('=');
|
|
82
|
+
var key = decodeURIComponent(paramPair[0]);
|
|
83
|
+
var value = paramPair.length > 1 ? decodeURIComponent(paramPair[1]) : '';
|
|
84
|
+
|
|
85
|
+
// 处理重复参数(转为数组)
|
|
86
|
+
if (params[key] === undefined) {
|
|
87
|
+
params[key] = value;
|
|
88
|
+
} else if (!Array.isArray(params[key])) {
|
|
89
|
+
params[key] = [params[key], value];
|
|
90
|
+
} else {
|
|
91
|
+
params[key].push(value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return params;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function getLocale() {
|
|
99
|
+
var zhLang = 'zh-CN';
|
|
100
|
+
var enLang = 'en-US';
|
|
101
|
+
|
|
102
|
+
var queryLang = parseQueryString(window.location.search).lang;
|
|
103
|
+
var cookieLang = getCookieLocale();
|
|
104
|
+
var lang = enLang;
|
|
105
|
+
|
|
106
|
+
<!--从cookie中取值-->
|
|
107
|
+
function getCookieLocale() {
|
|
108
|
+
var locale = '';
|
|
109
|
+
var cookies = document.cookie.split('; ');
|
|
110
|
+
var loclaeKey = 'open_locale';
|
|
111
|
+
|
|
112
|
+
for (var i = 0; i < cookies.length; i++) {
|
|
113
|
+
var cookie = cookies[i].trim();
|
|
114
|
+
var cookieArr = cookie.split('=');
|
|
115
|
+
if (cookieArr[0] === loclaeKey) {
|
|
116
|
+
locale = cookieArr[1];
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return locale;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function setLocaleCookie(lang) {
|
|
124
|
+
var date = new Date();
|
|
125
|
+
// 300天到期
|
|
126
|
+
date.setTime(date.getTime() + (300 * 24 * 60 * 60 * 1000));
|
|
127
|
+
var expires = 'expires=' + date.toUTCString();
|
|
128
|
+
document.cookie = 'open_locale=' + lang + '; ' + expires + '; path=/;';
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// 获取浏览器默认语言
|
|
132
|
+
if (navigator.language.indexOf('en') !== -1) {
|
|
133
|
+
lang = enLang;
|
|
134
|
+
} else if (navigator.language.indexOf('zh') !== -1) {
|
|
135
|
+
lang = zhLang;
|
|
136
|
+
}
|
|
137
|
+
if (cookieLang === enLang) {
|
|
138
|
+
lang = enLang;
|
|
139
|
+
} else if (cookieLang === zhLang) {
|
|
140
|
+
lang = zhLang;
|
|
141
|
+
}
|
|
142
|
+
if (queryLang === enLang) {
|
|
143
|
+
lang = enLang;
|
|
144
|
+
} else if (queryLang === zhLang) {
|
|
145
|
+
lang = zhLang;
|
|
146
|
+
}
|
|
147
|
+
// 设置cookie
|
|
148
|
+
setLocaleCookie(lang);
|
|
149
|
+
return lang;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 根据域名获取当前brand
|
|
153
|
+
function isLarkDomain() {
|
|
154
|
+
var defaultBrandMap = {
|
|
155
|
+
lark: ['larksuite'],
|
|
156
|
+
feishu: ['feishu', 'larkoffice', 'larkenterprise'],
|
|
157
|
+
};
|
|
158
|
+
const { hostname } = window.location;
|
|
159
|
+
|
|
160
|
+
if (defaultBrandMap.feishu.some((item) => hostname.includes(item))) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (defaultBrandMap.lark.some((item) => hostname.includes(item))) {
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (window.domainBrand) {
|
|
169
|
+
return window.domainBrand === 'lark';
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var isLarkBrand = isLarkDomain();
|
|
176
|
+
|
|
177
|
+
var config = {
|
|
178
|
+
'zh-CN': {
|
|
179
|
+
'desc': '抱歉,您访问的页面不存在',
|
|
180
|
+
'back': '返回首页',
|
|
181
|
+
'title': (isLarkBrand ? 'Lark' : '飞书') + '开放平台',
|
|
182
|
+
},
|
|
183
|
+
'en-US': {
|
|
184
|
+
'desc': 'The page does not exist.',
|
|
185
|
+
'back': 'Go to homepage',
|
|
186
|
+
'title': (isLarkBrand ? 'Lark': 'Feishu') + ' Open Platform',
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
var locale = getLocale();
|
|
190
|
+
var descObj = document.querySelector('.open-platform-desc');
|
|
191
|
+
var backObj = document.querySelector('.open-platform-back');
|
|
192
|
+
descObj.innerHTML = config[locale].desc;
|
|
193
|
+
backObj.innerHTML = config[locale].back;
|
|
194
|
+
document.title = config[locale].title;
|
|
195
|
+
|
|
196
|
+
</script>
|
|
197
|
+
</body>
|
|
198
|
+
</html>
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lark-workflow-meeting-summary
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "会议纪要整理工作流:汇总指定时间范围内的会议纪要并生成结构化报告。当用户需要整理会议纪要、生成会议周报、回顾一段时间内的会议内容时使用。"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["lark-cli"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 会议纪要汇总工作流
|
|
11
|
+
|
|
12
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**。然后阅读 [`../lark-vc/SKILL.md`](../lark-vc/SKILL.md),了解会议纪要相关操作。
|
|
13
|
+
|
|
14
|
+
## 适用场景
|
|
15
|
+
|
|
16
|
+
- "帮我整理这周的会议纪要" / "总结最近的会议" / "生成会议周报"
|
|
17
|
+
- "看看今天开了哪些会" / "回顾过去一周开了哪些会"
|
|
18
|
+
|
|
19
|
+
## 前置条件
|
|
20
|
+
|
|
21
|
+
仅支持 **user 身份**。执行前确保已授权:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
lark-cli auth login --domain vc # 基础(查询+纪要)
|
|
25
|
+
lark-cli auth login --domain vc,drive # 含读取纪要文档正文、生成文档
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 工作流
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
{时间范围} ─► vc +search ──► 会议列表 (meeting_ids)
|
|
32
|
+
│
|
|
33
|
+
▼
|
|
34
|
+
vc +notes ──► 纪要文档 tokens
|
|
35
|
+
│
|
|
36
|
+
▼
|
|
37
|
+
drive metas batch_query 纪要元数据
|
|
38
|
+
│
|
|
39
|
+
▼
|
|
40
|
+
结构化报告
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Step 1: 确定时间范围
|
|
44
|
+
|
|
45
|
+
默认**过去 7 天**。推断规则:"今天"→当天,"这周"→本周一~now,"上周"→上周一~上周日,"这个月"→1日~now。
|
|
46
|
+
|
|
47
|
+
> **注意**:日期转换必须调用系统命令(如 `date`),不要心算。时间范围参数需根据 CLI 实际要求格式化(通常为 `YYYY-MM-DD` 或 ISO 8601)。
|
|
48
|
+
|
|
49
|
+
### Step 2: 查询会议记录
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# page-size 最大为 30
|
|
53
|
+
lark-cli vc +search --start "<YYYY-MM-DD>" --end "<YYYY-MM-DD>" --format json --page-size 30
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- 时间范围拆分:搜索的时间范围最大为 1 个月。搜索更长时间范围的会议,需要拆分为多次时间范围为一个月查询。
|
|
57
|
+
- `--end` 为**包含当天**的日期(即查"今天"时 start 和 end 都填今天)
|
|
58
|
+
- `--format json` 输出 JSON 格式,你更佳擅长解析 JSON 数据。
|
|
59
|
+
- `--page-size 30` 每页最多 30 条。
|
|
60
|
+
- 有 `page_token` 时必须继续翻页,收集所有 `id` 字段(meeting-id)
|
|
61
|
+
|
|
62
|
+
### Step 3: 获取纪要元数据
|
|
63
|
+
|
|
64
|
+
1. 查询会议关联的纪要信息
|
|
65
|
+
```bash
|
|
66
|
+
lark-cli vc +notes --meeting-ids "id1,id2,...,idN"
|
|
67
|
+
```
|
|
68
|
+
- 根据上一步搜集到的 `meeting-id` 查询会议纪要。
|
|
69
|
+
- 单次最多查询 50 个纪要信息,超过 50 个需分批调用。
|
|
70
|
+
- 部分会议返回 `no notes available`,在最终输出中标注"无纪要"
|
|
71
|
+
- 记录每个会议的 `note_doc_token`(纪要文档 Token)和 `verbatim_doc_token`(逐字稿文档 Token)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
2. 获取纪要文档和逐字稿文档链接
|
|
75
|
+
```bash
|
|
76
|
+
# 学习命令使用方式
|
|
77
|
+
lark-cli schema drive.metas.batch_query
|
|
78
|
+
|
|
79
|
+
# 批量获取纪要文档与逐字稿链接: 一次最多查询 10 个文档
|
|
80
|
+
lark-cli drive metas batch_query --data '{"request_docs": [{"doc_type": "docx", "doc_token": "<doc_token>"}], "with_url": true}'
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 4: 整理纪要报告
|
|
84
|
+
|
|
85
|
+
根据时间跨度选择输出格式:
|
|
86
|
+
|
|
87
|
+
- **单日汇总**("今天"/"昨天"):用"今日会议概览"标题,逐会议列出会议时间、主题、纪要链接、逐字稿链接。
|
|
88
|
+
- **多日/周报**("这周"/"过去 7 天"等):用"会议纪要周报"标题,含概览统计、逐会议详情。
|
|
89
|
+
|
|
90
|
+
### Step 5: 生成文档(可选,用户要求时)
|
|
91
|
+
|
|
92
|
+
阅读 [`../lark-doc/SKILL.md`](../lark-doc/SKILL.md) 学习云文档技能。
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
lark-cli docs +create --api-version v2 --doc-format markdown --content $'<title>会议纪要汇总 (<start> - <end>)</title>\n<内容>'
|
|
96
|
+
# 或追加到已有文档
|
|
97
|
+
lark-cli docs +update --api-version v2 --doc "<url_or_token>" --command append --doc-format markdown --content $'<内容>'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 参考
|
|
101
|
+
|
|
102
|
+
- [lark-shared](../lark-shared/SKILL.md) — 认证、权限(必读)
|
|
103
|
+
- [lark-vc](../lark-vc/SKILL.md) — `+search`、`+notes` 详细用法
|
|
104
|
+
- [lark-doc](../lark-doc/SKILL.md) — `+fetch`、`+create`、`+update` 详细用法
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lark-workflow-standup-report
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "日程待办摘要:编排 calendar +agenda 和 task +get-my-tasks,生成指定日期的日程与未完成任务摘要。适用于了解今天/明天/本周的安排。"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["lark-cli"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 日程待办摘要工作流
|
|
11
|
+
|
|
12
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**
|
|
13
|
+
|
|
14
|
+
## 适用场景
|
|
15
|
+
|
|
16
|
+
- "今天有什么安排" / "今天的日程和待办"
|
|
17
|
+
- "明天有什么会" / "明日日程与未完成任务"
|
|
18
|
+
- "帮我看看今天要做什么" / "早报摘要"
|
|
19
|
+
- "开工摘要" / "standup report"
|
|
20
|
+
- "这周还有哪些安排"
|
|
21
|
+
|
|
22
|
+
## 前置条件
|
|
23
|
+
|
|
24
|
+
仅支持 **user 身份**。执行前确保已授权:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
lark-cli auth login --domain calendar,task
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 工作流
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
{date} ─┬─► calendar +agenda [--start/--end] ──► 日程列表(会议/事件)
|
|
34
|
+
└─► task +get-my-tasks [--due-end] ──► 未完成待办列表
|
|
35
|
+
│
|
|
36
|
+
▼
|
|
37
|
+
AI 汇总(时间转换 + 冲突检测 + 排序)──► 摘要
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Step 1: 获取日程
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# 今天(默认,无需额外参数)
|
|
44
|
+
lark-cli calendar +agenda
|
|
45
|
+
|
|
46
|
+
# 指定日期范围(必须使用 ISO 8601 格式,不支持 "tomorrow" 等自然语言)
|
|
47
|
+
lark-cli calendar +agenda --start "2026-03-26T00:00:00+08:00" --end "2026-03-26T23:59:59+08:00"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> **注意**:`--start` / `--end` 仅支持 ISO 8601 格式(如 `2026-01-01` 或 `2026-01-01T15:04:05+08:00`)和 Unix timestamp,**不支持** `"tomorrow"`、`"next monday"` 等自然语言。需要 AI 根据当前日期自行计算目标日期。
|
|
51
|
+
|
|
52
|
+
输出包含:event\_id、summary、start\_time(含 timestamp + timezone)、end\_time、free\_busy\_status、self\_rsvp\_status。
|
|
53
|
+
|
|
54
|
+
### Step 2: 获取未完成待办
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# 默认:返回分配给当前用户的未完成任务(最多 20 条)
|
|
58
|
+
lark-cli task +get-my-tasks
|
|
59
|
+
|
|
60
|
+
# 只看指定日期前到期的(推荐用于摘要场景,减少数据量)
|
|
61
|
+
lark-cli task +get-my-tasks --due-end "2026-03-27T23:59:59+08:00"
|
|
62
|
+
|
|
63
|
+
# 获取全部(超过 20 条时)
|
|
64
|
+
lark-cli task +get-my-tasks --page-all
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
> **注意**:不带过滤条件时可能返回大量历史待办(实测 30+ 条、100KB+),容易超出上下文限制。摘要场景建议:
|
|
68
|
+
> - 用 `--due-end` 过滤出目标日期前到期的任务
|
|
69
|
+
> - 如果也需要无截止日期的任务,可不加过滤,但 AI 汇总时只展示**近 30 天内创建的**,其余折叠为"其他 N 项历史待办"
|
|
70
|
+
|
|
71
|
+
### Step 3: AI 汇总
|
|
72
|
+
|
|
73
|
+
将 Step 1 和 Step 2 的结果整合,按以下结构输出:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
## {日期}摘要({YYYY-MM-DD 星期X})
|
|
77
|
+
|
|
78
|
+
### 日程安排
|
|
79
|
+
| 时间 | 事件 | 组织者 | 状态 |
|
|
80
|
+
|------|------|--------|------|
|
|
81
|
+
| 09:00-10:00 | 产品需求评审 | 张三 | 已接受 |
|
|
82
|
+
| 14:00-15:00 | 技术方案讨论 | 李四 | 待确认 |
|
|
83
|
+
|
|
84
|
+
### 待办事项
|
|
85
|
+
- [ ] {task_summary}(截止:{due_date})
|
|
86
|
+
- [ ] {task_summary}
|
|
87
|
+
|
|
88
|
+
### 小结
|
|
89
|
+
- 共 {n} 场会议,{m} 项待办
|
|
90
|
+
- 冲突提醒:{列出时间重叠的日程}
|
|
91
|
+
- 空闲时段:{free_slots}(根据日程推算)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**数据处理规则:**
|
|
95
|
+
|
|
96
|
+
1. **时间转换**:API 返回 Unix timestamp,需根据 `timezone` 字段(通常为 `Asia/Shanghai`)转换为 `HH:mm` 格式
|
|
97
|
+
2. **RSVP 状态映射**:
|
|
98
|
+
| API 值 | 显示文案 |
|
|
99
|
+
|--------|---------|
|
|
100
|
+
| `accept` | 已接受 |
|
|
101
|
+
| `decline` | 已拒绝 |
|
|
102
|
+
| `needs_action` | 待确认 |
|
|
103
|
+
| `tentative` | 暂定 |
|
|
104
|
+
3. **日程排序**:按开始时间升序排列
|
|
105
|
+
4. **冲突检测**:按时间排序后,检查相邻日程是否有时间重叠(前一个 end\_time > 后一个 start\_time),有则在小结中列出冲突组
|
|
106
|
+
5. **已拒绝日程**:标注"已拒绝"但不计入忙碌时段和冲突检测
|
|
107
|
+
6. **待办排序**:按截止时间升序,已过期的标注"已过期",无截止时间的排在最后
|
|
108
|
+
|
|
109
|
+
## 权限表
|
|
110
|
+
|
|
111
|
+
| 命令 | 所需 scope |
|
|
112
|
+
|------|-----------|
|
|
113
|
+
| `calendar +agenda` | `calendar:calendar.event:read` |
|
|
114
|
+
| `task +get-my-tasks` | `task:task:read` |
|
|
115
|
+
|
|
116
|
+
## 参考
|
|
117
|
+
|
|
118
|
+
- [lark-shared](../lark-shared/SKILL.md) — 认证、权限(必读)
|
|
119
|
+
- [lark-calendar](../lark-calendar/SKILL.md) — `+agenda` 详细用法
|
|
120
|
+
- [lark-task](../lark-task/SKILL.md) — `+get-my-tasks` 详细用法
|