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,114 @@
|
|
|
1
|
+
|
|
2
|
+
# docs +media-insert(文档末尾插入图片/文件)
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
把"创建空 block → 上传文件 → 设置 token"三步合并成一个命令,在**文档末尾**插入本地图片或文件。
|
|
7
|
+
|
|
8
|
+
## 来源选择(Agent 必读)
|
|
9
|
+
|
|
10
|
+
> **最高优先级:用户明确指定了来源,就严格按用户的来。** 下面的启发式只在用户没表态时生效。
|
|
11
|
+
>
|
|
12
|
+
> - 用户说"把这张截图插进去"、"用剪切板里的图"、"我刚复制的" → 无条件走 `--from-clipboard`。
|
|
13
|
+
> - 用户说"用 `~/Downloads/foo.png`"、"插本地这个文件"、给了具体路径 → 无条件走 `--file`。
|
|
14
|
+
> - 用户两者都没说清 → 按下表的启发式推断。
|
|
15
|
+
>
|
|
16
|
+
> 即使推断看起来更"优"(比如用户说了路径但你觉得走剪切板更省事),也**不要自作主张**换来源。要换,先问。
|
|
17
|
+
|
|
18
|
+
按下列顺序判断,**不要反向做**:
|
|
19
|
+
|
|
20
|
+
| 用户的图片来源 | 命令 | 禁止做法 |
|
|
21
|
+
|----------------|------|----------|
|
|
22
|
+
| 图片已经在剪切板里(截图快捷键、从飞书/浏览器复制、从设计稿复制) | `--from-clipboard` | ❌ 不要先把剪切板存到本地文件再用 `--file`。多一步文件 I/O,还得清理临时文件。 |
|
|
23
|
+
| 图片是磁盘上的真实文件 | `--file <path>` | — |
|
|
24
|
+
| 图片是 URL | 先下载到本地 → `--file`;或用 `drive` 相关命令 | — |
|
|
25
|
+
|
|
26
|
+
`--from-clipboard` 走进程内存直传,不产生临时文件;macOS / Windows 内置支持,Linux 需要 `xclip` 或 `wl-paste` 或 `xsel` 任一。
|
|
27
|
+
|
|
28
|
+
### 剪切板为空时的 fallback
|
|
29
|
+
|
|
30
|
+
`--from-clipboard` 失败(剪切板里不是图片 / 没有图片 / Linux 上三个工具都没装)时,命令会返回 `clipboard contains no image data`(或类似的平台错误)。**这不是错误退出理由,而是 fallback 信号。**
|
|
31
|
+
|
|
32
|
+
**Agent 的标准处置顺序**(每一步失败再进下一步,不要并行):
|
|
33
|
+
|
|
34
|
+
1. 先用 `--from-clipboard` 试一次。
|
|
35
|
+
2. 如果返回"no image data"类错误,**向用户明确说明剪切板里没有可识别的图片**,请用户提供本地文件路径或重新复制一张图。
|
|
36
|
+
3. 拿到本地路径后,用 `--file <path>` 重试**同一条插入命令**(其他参数如 `--doc` / `--align` / `--caption` 保持不变)。
|
|
37
|
+
|
|
38
|
+
**禁止做法**:
|
|
39
|
+
- ❌ 不要悄悄把空剪切板当"成功但没插入"处理。必须提示用户。
|
|
40
|
+
- ❌ 不要在剪切板失败后自行瞎猜某个本地文件路径(比如最近修改的 png)。必须让用户给路径。
|
|
41
|
+
- ❌ 不要用"先让用户保存剪切板到磁盘再 `--file`"的建议绕过 `--from-clipboard`,当且仅当剪切板确实没图片时才退回本地路径。
|
|
42
|
+
|
|
43
|
+
## 命令
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 🟢 推荐:从剪切板直接插入(无需先存盘)
|
|
47
|
+
lark-cli docs +media-insert --doc doxcnXXX --from-clipboard
|
|
48
|
+
|
|
49
|
+
# 从本地文件插入
|
|
50
|
+
# 除了上传本地文件,还可以在 `docs +update` 时直接通过网络 URL 插入图片,无需先下载到本地:
|
|
51
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_insert_after \
|
|
52
|
+
--block-id "目标 block_id" \
|
|
53
|
+
--content '<img href="https://example.com/photo.png"/>'
|
|
54
|
+
|
|
55
|
+
# 插入图片(默认)
|
|
56
|
+
lark-cli docs +media-insert --doc doxcnXXX --file ./image.png
|
|
57
|
+
|
|
58
|
+
# doc 支持直接传 docx URL(自动提取 document_id)
|
|
59
|
+
lark-cli docs +media-insert --doc "https://xxx.feishu.cn/docx/doxcnXXX" --from-clipboard
|
|
60
|
+
|
|
61
|
+
# 如果上一步是 create-doc,优先传返回值里的 doc_id
|
|
62
|
+
# 不要把 /wiki/... 形式的 doc_url 直接传给 docs +media-insert
|
|
63
|
+
lark-cli docs +media-insert --doc doxcnReturnedByCreateDoc --file ./image.png
|
|
64
|
+
|
|
65
|
+
# 插入文件(非图片)
|
|
66
|
+
lark-cli docs +media-insert --doc doxcnXXX --file ./spec.pdf --type file
|
|
67
|
+
|
|
68
|
+
# 图片对齐与描述(caption)
|
|
69
|
+
lark-cli docs +media-insert --doc doxcnXXX --from-clipboard --align center --caption "架构图"
|
|
70
|
+
|
|
71
|
+
# Insert image with explicit display width (height auto-computed from aspect ratio)
|
|
72
|
+
lark-cli docs +media-insert --doc doxcnXXX --file ./banner.png --width 800 --align center
|
|
73
|
+
|
|
74
|
+
# Insert image with explicit width and height
|
|
75
|
+
lark-cli docs +media-insert --doc doxcnXXX --from-clipboard --width 800 --height 447 --caption "architecture diagram"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 参数
|
|
79
|
+
|
|
80
|
+
| 参数 | 必填 | 说明 |
|
|
81
|
+
|------|------|------|
|
|
82
|
+
| `--doc <id>` | 是 | 文档 ID 或 docx URL(仅支持 `/docx/<document_id>` 形式自动提取;**不支持 `/wiki/...` URL 自动提取**) |
|
|
83
|
+
| `--from-clipboard` | 二选一 | 从系统剪切板读取图片(与 `--file` 互斥)。macOS/Windows 内置支持,Linux 需要 `xclip` / `wl-paste` / `xsel` 之一。 |
|
|
84
|
+
| `--file <path>` | 二选一 | 本地文件路径(文件大于 20MB 时自动切换分片上传) |
|
|
85
|
+
| `--type <type>` | 否 | `image`(默认)或 `file`。`--from-clipboard` 目前只产出 image。 |
|
|
86
|
+
| `--align <align>` | 否 | 仅图片:`left` / `center`(默认)/ `right` |
|
|
87
|
+
| `--caption <text>` | 否 | 仅图片:图片描述 |
|
|
88
|
+
| `--width <px>` | 否 | Image display width in pixels (only for `--type=image`). If `--height` is omitted, it is auto-computed from the source image aspect ratio. Supported auto-detection formats: PNG, JPEG, GIF; other formats (WebP, BMP, etc.) require both `--width` and `--height`. |
|
|
89
|
+
| `--height <px>` | 否 | Image display height in pixels (only for `--type=image`). If `--width` is omitted, it is auto-computed from the source image aspect ratio. Supported auto-detection formats: PNG, JPEG, GIF; other formats (WebP, BMP, etc.) require both `--width` and `--height`. |
|
|
90
|
+
|
|
91
|
+
> [!IMPORTANT]
|
|
92
|
+
> 如果上一步是 [`lark-doc-create`](lark-doc-create.md),并且它在知识库/知识空间场景下返回的是 `/wiki/...` 形式的 `doc_url`,后续调用 `docs +media-insert` 时应优先传 `doc_id`,不要直接传这个 `doc_url`。
|
|
93
|
+
|
|
94
|
+
## 平台注意(仅 `--from-clipboard`)
|
|
95
|
+
|
|
96
|
+
| 平台 | 依赖 | 典型错误 |
|
|
97
|
+
|------|------|---------|
|
|
98
|
+
| macOS | osascript(内置) | 剪切板为空 / 不是图片 → "clipboard contains no image data" |
|
|
99
|
+
| Windows | PowerShell + System.Windows.Forms(内置) | 同上 |
|
|
100
|
+
| Linux | `xclip` 或 `wl-paste` 或 `xsel` 任一 | 都没安装 → 报错会提示用发行版包管理器安装 |
|
|
101
|
+
|
|
102
|
+
命令不支持读取 TIFF 等非 PNG/JPEG/GIF/WebP/BMP 的冷门格式;遇到这类剪切板会返回 "contains no image data",此时才考虑先用系统工具转成文件再 `--file`。
|
|
103
|
+
|
|
104
|
+
## 输出
|
|
105
|
+
|
|
106
|
+
命令成功后会输出 JSON,包含:`document_id`、`block_id`、`file_token`、`file_name`(剪切板路径下为 `clipboard.png`)、`type`。
|
|
107
|
+
|
|
108
|
+
> [!CAUTION]
|
|
109
|
+
> 这是**写入操作**(会修改文档内容)—— 执行前必须确认用户意图。
|
|
110
|
+
|
|
111
|
+
## 参考
|
|
112
|
+
|
|
113
|
+
- [lark-doc-fetch](lark-doc-fetch.md) — 获取文档内容(可用于确认插入后的结果、以及提取媒体 token)
|
|
114
|
+
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
# docs +media-preview(预览文档素材)
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
优先用于查看、预览文档中的图片或文件素材(`file_token`)。命令会把素材保存到本地路径,便于后续打开查看内容。
|
|
7
|
+
|
|
8
|
+
## 选择规则
|
|
9
|
+
|
|
10
|
+
- 用户说“看一下素材 / 图片 / 附件”“预览一下”时,优先使用 `docs +media-preview`
|
|
11
|
+
- 用户明确说“下载”时,使用 [`docs +media-download`](lark-doc-media-download.md)
|
|
12
|
+
- 如果目标明确是画板 / whiteboard / 画板缩略图,不要使用 `+media-preview`,改用 `docs +media-download --type whiteboard`
|
|
13
|
+
|
|
14
|
+
## 命令
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# 预览图片/文件素材
|
|
18
|
+
lark-cli docs +media-preview --token "Z1Fjxxxxxxxx" --output ./asset
|
|
19
|
+
|
|
20
|
+
# 指定输出文件名(带扩展名则不会自动补全)
|
|
21
|
+
lark-cli docs +media-preview --token "Z1Fjxxxxxxxx" --output ./asset.png
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 参数
|
|
25
|
+
|
|
26
|
+
| 参数 | 必填 | 说明 |
|
|
27
|
+
|------|------|------|
|
|
28
|
+
| `--token <token>` | 是 | 素材 token,即 `file_token` |
|
|
29
|
+
| `--output <path>` | 是 | 本地保存路径;不带扩展名会自动补全 |
|
|
30
|
+
|
|
31
|
+
## token 从哪里来
|
|
32
|
+
|
|
33
|
+
- 若你是从文档内容里提取:`lark-doc-fetch` 返回的 Markdown 里可能包含:
|
|
34
|
+
- 图片:`<image token="..." .../>`
|
|
35
|
+
- 文件:`<file token="..." name="..."/>`
|
|
36
|
+
|
|
37
|
+
## 参考
|
|
38
|
+
|
|
39
|
+
- [lark-doc-fetch](lark-doc-fetch.md) — 获取文档内容(用于提取 token)
|
|
40
|
+
- [lark-doc-media-download](lark-doc-media-download.md) — 明确下载素材,或下载画板缩略图
|
|
41
|
+
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
|
|
2
|
+
# docs +update(更新飞书云文档)
|
|
3
|
+
|
|
4
|
+
> **前置条件(MUST READ):** 生成文档内容前,必须先用 Read 工具读取以下文件,缺一不可:
|
|
5
|
+
> 1. [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) — 认证、全局参数和安全规则
|
|
6
|
+
> 2. [`lark-doc-xml.md`](lark-doc-xml.md) — XML 语法规则(使用 Markdown 格式时改读 [`lark-doc-md.md`](lark-doc-md.md))
|
|
7
|
+
> 3. [`lark-doc-style.md`](style/lark-doc-style.md) — 排版指南(元素选择、丰富度规则、颜色语义)
|
|
8
|
+
> 4. [`lark-doc-update-workflow.md`](style/lark-doc-update-workflow.md) — 改写增强工作流(Code-Act Loop、并行执行策略)
|
|
9
|
+
>
|
|
10
|
+
> **未读完以上文件就生成内容会导致格式错误或样式不达标。**
|
|
11
|
+
|
|
12
|
+
通过八种指令精确更新飞书云文档。支持字符串级别和 block 级别的操作。
|
|
13
|
+
|
|
14
|
+
> **⚠️ 格式选择规则:**
|
|
15
|
+
> - **局部精修**(`str_replace` / `block_insert_after` / `block_replace` / `block_delete` / `block_move_after`):优先使用 XML(默认)。XML 能稳定表达 block 结构和样式,精准编辑更可控;不要因为 Markdown 写起来更简单就自行切换。
|
|
16
|
+
> - **整段写入**(`append` / `overwrite`):XML 和 Markdown 都可以。用户提供 `.md` 本地文件或明确要求 Markdown 时直接用 Markdown;否则默认 XML。
|
|
17
|
+
>
|
|
18
|
+
> **Markdown 局限 & block ID 前提:** Markdown 不携带 block ID,也无样式(颜色、对齐、callout 等)。需要按 block ID 定位(`block_*` 指令的 `--block-id`)时,先 `docs +fetch --api-version v2 --detail with-ids` **配合 `--scope`(`outline` / `range` / `keyword` / `section`)局部获取**目标段落,不要全量 fetch。拿到 block ID 后 `--content` 仍可用 Markdown,只是写入内容不带样式。
|
|
19
|
+
|
|
20
|
+
## 参数
|
|
21
|
+
|
|
22
|
+
| 参数 | 必填 | 说明 |
|
|
23
|
+
|------|------|------|
|
|
24
|
+
| `--api-version` | 是 | 固定传 `v2` |
|
|
25
|
+
| `--doc` | 是 | 文档 URL 或 token |
|
|
26
|
+
| `--command` | 是 | 操作指令(见下方指令速查表) |
|
|
27
|
+
| `--doc-format` | 否 | 内容格式:`xml`(默认,始终优先使用)\| `markdown`(仅用户明确要求时) |
|
|
28
|
+
| `--content` | 视指令 | 写入内容(`str_replace` 传空字符串可实现删除) |
|
|
29
|
+
| `--pattern` | 视指令 | 匹配文本(str_replace) |
|
|
30
|
+
| `--block-id` | 视指令 | 目标 block ID(block_* 操作),-1 表示末尾 |
|
|
31
|
+
| `--src-block-ids` | 视指令 | 源 block ID(逗号分隔),用于 block_copy_insert_after / block_move_after |
|
|
32
|
+
| `--revision-id` | 否 | 基准版本号,-1 = 最新(默认 `-1`) |
|
|
33
|
+
|
|
34
|
+
## 指令速查表
|
|
35
|
+
|
|
36
|
+
| 指令 | 说明 | 必需参数 |
|
|
37
|
+
|------|------|----------|
|
|
38
|
+
| `str_replace` | 全文文本查找替换(replacement 支持富文本标签;`--content` 传空字符串即为删除) | `--pattern` `--content` |
|
|
39
|
+
| `block_insert_after` | 在指定 block 之后插入新内容 | `--block-id` `--content` |
|
|
40
|
+
| `block_copy_insert_after` | 复制源 block 并插入到锚点之后(源块不变) | `--block-id` `--src-block-ids` |
|
|
41
|
+
| `block_replace` | 替换指定 block(同一 block 仅限一次) | `--block-id` `--content` |
|
|
42
|
+
| `block_delete` | 删除指定 block(逗号分隔可批量) | `--block-id` |
|
|
43
|
+
| `overwrite` | ⚠️ 清空文档后全文重写(可能丢失图片、评论) | `--content` |
|
|
44
|
+
| `append` | 在文档末尾追加内容(等价于 `block_insert_after --block-id -1`) | `--content` |
|
|
45
|
+
| `block_move_after` | 移动已有 block 到指定位置 | `--block-id` + (`--content` 或 `--src-block-ids`) |
|
|
46
|
+
|
|
47
|
+
## 指令示例
|
|
48
|
+
|
|
49
|
+
### str_replace — 全文文本替换
|
|
50
|
+
|
|
51
|
+
> **匹配范围:**
|
|
52
|
+
> - **XML 模式(默认)**:`--pattern` 只支持**行内匹配**,不能跨 block / 跨段落匹配。涉及整段或多 block 的改动,请改用 `block_replace`。
|
|
53
|
+
> - **Markdown 模式**(`--doc-format markdown`):`--pattern` 同时支持**行内和跨行匹配**,可以用多行字符串匹配并替换一整段内容。
|
|
54
|
+
> - 还支持**`前缀...后缀` 省略号语法**:用 `...`(三个英文句点)串联起始与结束片段,匹配从前缀到后缀之间的全部内容(含中间被省略部分)。适合一段很长、但首尾特征明显的文本,避免把整段都塞进 `--pattern`。
|
|
55
|
+
> - 前缀、后缀本身仍遵循 Markdown 转义规则;省略号中间的内容**会被替换**为 `--content` 的完整文本,不会被保留。
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 简单文本替换
|
|
59
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
60
|
+
--pattern "张三" --content "李四"
|
|
61
|
+
|
|
62
|
+
# 替换为富文本(加粗 + 链接)
|
|
63
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
64
|
+
--pattern "旧链接" --content '<b>新链接</b> <a href="https://example.com">点击查看</a>'
|
|
65
|
+
|
|
66
|
+
# 仅当用户明确要求时才使用 Markdown
|
|
67
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
68
|
+
--doc-format markdown --pattern "旧内容" --content "新内容"
|
|
69
|
+
|
|
70
|
+
# Markdown 模式下支持跨行匹配(--pattern 与 --content 都需要真实换行;"..."/'...' 里的 \n 是字面量)
|
|
71
|
+
# 多行内容推荐 heredoc 或 --content @file.md,避免 shell 转义踩坑
|
|
72
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
73
|
+
--doc-format markdown \
|
|
74
|
+
--pattern "$(printf '## 旧标题\n\n第一段原文\n\n第二段原文')" \
|
|
75
|
+
--content - <<'EOF'
|
|
76
|
+
## 新标题
|
|
77
|
+
|
|
78
|
+
改写后的第一段
|
|
79
|
+
|
|
80
|
+
改写后的第二段
|
|
81
|
+
EOF
|
|
82
|
+
|
|
83
|
+
# Markdown 模式下使用 `前缀...后缀` 省略号匹配首尾特征明显的大段内容
|
|
84
|
+
# 下例会把「## 旧标题」到「结束语。」之间的所有内容整体替换
|
|
85
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
86
|
+
--doc-format markdown \
|
|
87
|
+
--pattern "## 旧标题...结束语。" \
|
|
88
|
+
--content - <<'EOF'
|
|
89
|
+
## 新标题
|
|
90
|
+
|
|
91
|
+
重写后的正文...
|
|
92
|
+
|
|
93
|
+
新的结束语。
|
|
94
|
+
EOF
|
|
95
|
+
|
|
96
|
+
# 删除文本:--content 传空字符串即可
|
|
97
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
98
|
+
--pattern "废弃的内容" --content ""
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### block_insert_after — 在指定 block 之后插入
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_insert_after \
|
|
105
|
+
--block-id "目标 block_id" \
|
|
106
|
+
--content '<h2>新章节</h2><ul><li>要点 1</li><li>要点 2</li></ul>'
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### block_replace — 替换指定 block
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_replace \
|
|
113
|
+
--block-id "目标 block_id" \
|
|
114
|
+
--content '<p>替换后的段落内容</p>'
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### block_delete — 删除指定 block
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_delete \
|
|
121
|
+
--block-id "目标 block_id"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### overwrite — 全文覆盖
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command overwrite \
|
|
128
|
+
--content '<title>全新文档</title><h1>概述</h1><p>新的内容</p>'
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
> ⚠️ 会清空文档后重写,可能丢失图片、评论等。仅在需要完全重建文档时使用。
|
|
132
|
+
|
|
133
|
+
### append — 在文档末尾追加
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command append \
|
|
137
|
+
--content '<h2>新增章节</h2><p>追加的内容</p>'
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
> 等价于 `block_insert_after --block-id -1`,无需先获取 block ID。
|
|
141
|
+
|
|
142
|
+
### block_copy_insert_after — 复制块并插入
|
|
143
|
+
|
|
144
|
+
将一个或多个源块复制到锚点块之后,源块保持不变。`--src-block-ids` 为逗号分隔的源块 ID,按顺序依次插入到锚点之后。
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# 复制多个块(按顺序插入:anchor → a → b → c)
|
|
148
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_copy_insert_after \
|
|
149
|
+
--block-id "锚点 block_id" \
|
|
150
|
+
--src-block-ids "block_a,block_b,block_c"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### block_move_after — 移动已有 block
|
|
154
|
+
|
|
155
|
+
将文档中已有的 block 移动到指定锚点之后。使用 `--src-block-ids` 指定要移动的块 ID,无需 `--content`。
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# 移动到页面末尾
|
|
159
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_move_after \
|
|
160
|
+
--block-id "-1表示末尾,page_id表示开头,blk" \
|
|
161
|
+
--src-block-ids "block_a,block_b"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 返回值
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"ok": true,
|
|
169
|
+
"identity": "user",
|
|
170
|
+
"data": {
|
|
171
|
+
"document": {
|
|
172
|
+
"revision_id": 13,
|
|
173
|
+
"new_blocks": [
|
|
174
|
+
{ "block_id": "blkcnXXXX", "block_type": "whiteboard", "block_token": "boardXXXX" }
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
"result": "success",
|
|
178
|
+
"updated_blocks_count": 3,
|
|
179
|
+
"warnings": []
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
| 字段 | 说明 |
|
|
185
|
+
|------|------|
|
|
186
|
+
| `result` | `success` \| `partial_success` \| `failed` |
|
|
187
|
+
| `updated_blocks_count` | 实际更新的 block 数量 |
|
|
188
|
+
| `warnings` | 警告信息列表 |
|
|
189
|
+
| `document.new_blocks` | 本次操作新增的 block 列表(如画板)。`block_id` 可用于后续精确编辑;`block_token` 是资源块 token(如画板)可交给 `lark-whiteboard` 等 skill 继续操作 |
|
|
190
|
+
|
|
191
|
+
## 典型工作流
|
|
192
|
+
|
|
193
|
+
### 精确 block 级更新
|
|
194
|
+
|
|
195
|
+
1. **获取文档内容和 block ID**:
|
|
196
|
+
```bash
|
|
197
|
+
lark-cli docs +fetch --api-version v2 --doc "<doc_id>" --detail with-ids
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
2. **定位目标 block**:从返回的 XML 中找到要修改的 block 及其 `id` 属性
|
|
201
|
+
|
|
202
|
+
3. **执行更新**:
|
|
203
|
+
```bash
|
|
204
|
+
# 替换特定 block
|
|
205
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_replace \
|
|
206
|
+
--block-id "blkcnXXXX" --content "<p>新内容</p>"
|
|
207
|
+
|
|
208
|
+
# 在某 block 后插入
|
|
209
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command block_insert_after \
|
|
210
|
+
--block-id "blkcnXXXX" --content "<h2>追加的章节</h2>"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 简单文本替换
|
|
214
|
+
|
|
215
|
+
不需要 block ID,直接匹配替换:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
lark-cli docs +update --api-version v2 --doc "<doc_id>" --command str_replace \
|
|
219
|
+
--pattern "v1.0" --content "v2.0"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## 画板处理
|
|
223
|
+
|
|
224
|
+
> **`docs +update` 不能直接编辑已有画板的内容。** 本命令只能**新增**画板块;要修改已有画板,先用 `docs +fetch --api-version v2` 取到 `<whiteboard token="...">`,再按 [`lark-doc-whiteboard.md`](lark-doc-whiteboard.md) 启动 SubAgent 读取 [`lark-whiteboard`](../../lark-whiteboard/SKILL.md) 并写入。
|
|
225
|
+
|
|
226
|
+
画板的语法选型与插入示例见 [`lark-doc-style.md`](style/lark-doc-style.md) 的「画板语法与插入」章节。
|
|
227
|
+
|
|
228
|
+
## 最佳实践
|
|
229
|
+
|
|
230
|
+
- **精确操作优于全文覆盖**:使用 `block_replace`/`block_insert_after` 精确修改,避免 `overwrite` 全文覆盖
|
|
231
|
+
- **str_replace 的匹配范围取决于格式**:
|
|
232
|
+
- **XML 模式(默认)**:`--pattern` 只支持**行内**匹配,不支持跨行 / 跨 block。段落、整块或容器级(列表、表格、分栏、引用块等)改动请改用 `block_replace` 指定 block_id 重建。
|
|
233
|
+
- **Markdown 模式**(`--doc-format markdown`):`--pattern` 同时支持**行内和跨行**匹配,还支持 `前缀...后缀` 省略号语法(用 `...` 串联首尾片段匹配一大段内容),可以一次替换多行文本;但仍建议优先按最小片段匹配,跨 block 容器级重写仍优先用 `block_replace`,避免副作用。
|
|
234
|
+
- **保护不可重建的内容**:图片、画板、电子表格等以 token 形式存储,替换时避开这些 block
|
|
235
|
+
- **str_replace 的 replacement 支持富文本**:可以用行内标签 `<b>`、`<a>`、`<cite>`、`<latex>` 等替换普通文本为富文本
|
|
236
|
+
- **同一 block 只能被 replace 一次**:多次修改同一 block 请合并为一次 block_replace
|
|
237
|
+
- **block_delete 支持批量**:用逗号分隔多个 block_id 一次删除
|
|
238
|
+
- **复杂结构重组**:将多个段落转换为 grid / table 等复杂布局时,分步操作比 overwrite 更安全:
|
|
239
|
+
1. 用 `block_insert_after` 在目标位置插入新的富文本结构
|
|
240
|
+
2. 用 `block_delete` 批量删除旧的 block
|
|
241
|
+
3. 这样可以保留文档中其他不相关的内容(图片、评论等)
|
|
242
|
+
- **视觉丰富度**:插入或替换内容时,同样遵循 [`lark-doc-style.md`](style/lark-doc-style.md) 中的样式指南,主动使用结构化 block
|
|
243
|
+
|
|
244
|
+
## 参考
|
|
245
|
+
|
|
246
|
+
- [`lark-doc-update-workflow.md`](style/lark-doc-update-workflow.md) — 改写增强工作流(Code-Act Loop、并行执行策略)
|
|
247
|
+
- [`lark-doc-style.md`](style/lark-doc-style.md) — 文档样式指南(元素选择 + 丰富度规则 + 颜色语义)
|
|
248
|
+
- [`lark-doc-xml.md`](lark-doc-xml.md) — XML 语法规范
|
|
249
|
+
- [`lark-doc-fetch.md`](lark-doc-fetch.md) — 获取文档
|
|
250
|
+
- [`lark-doc-create.md`](lark-doc-create.md) — 创建文档
|
|
251
|
+
- [`lark-doc-media-insert.md`](lark-doc-media-insert.md) — 插入图片/文件到文档
|
|
252
|
+
- [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# lark-doc 画板处理指南
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
+
|
|
5
|
+
## 两个 Skill 的职责边界
|
|
6
|
+
|
|
7
|
+
| Skill | 核心职责 | 约束 |
|
|
8
|
+
|------|------|------|
|
|
9
|
+
| `lark-doc` | 识别画板机会、判断简单/复杂、调度 SubAgent、插入简单 SVG 画板或复杂空白画板 | 主 Agent 不直接创作画板内容;简单图不需要读取 `lark-whiteboard` |
|
|
10
|
+
| `lark-whiteboard` | 查询/导出已有画板;复杂图表生成(Mermaid/DSL/SVG 路由、场景选型、渲染验证);写入已有/空白画板 | 仅复杂图或已有画板更新时由独立 SubAgent 读取 |
|
|
11
|
+
|
|
12
|
+
## 画板优先规则
|
|
13
|
+
|
|
14
|
+
写文档时,重要信息优先画板化。遇到核心流程、系统架构、方案对比、风险链路、里程碑、指标趋势、因果归因、组织关系、能力分层等内容,不要只用段落或表格承载;除非内容只是一次性补充说明,否则应规划为画板。
|
|
15
|
+
|
|
16
|
+
同一篇文档可以有多个画板。优先多个聚焦画板,而不是把所有信息塞进一张大图。
|
|
17
|
+
|
|
18
|
+
## 文档与画板协同流程
|
|
19
|
+
|
|
20
|
+
### 步骤 1:识别画板机会
|
|
21
|
+
|
|
22
|
+
| 场景 | 入口 |
|
|
23
|
+
|------|------|
|
|
24
|
+
| 文档中需要插入简单新画板 | 走步骤 2A |
|
|
25
|
+
| 文档中需要插入复杂新画板 | 走步骤 2B |
|
|
26
|
+
| 已有画板需要更新内容 | 先 `docs +fetch --api-version v2` 获取 `board_token`,跳至步骤 3B |
|
|
27
|
+
| 只查看 / 下载已有画板 | 切换至 `lark-whiteboard`,不走本流程 |
|
|
28
|
+
|
|
29
|
+
简单图判定:节点少、静态、布局可控、适合一个完整自包含 SVG 表达,例如小型流程、2-3 方对比、小型状态机、简单时间线或小型示意图。
|
|
30
|
+
|
|
31
|
+
复杂图判定:节点多、跨泳道/跨系统、需要自动布局或精细排版、包含数据图表、组织架构、复杂架构、复杂依赖、已有画板更新,或需要 `lark-whiteboard` 的渲染验证。
|
|
32
|
+
|
|
33
|
+
### 步骤 2A:简单图 — SubAgent 直接插入 SVG 画板
|
|
34
|
+
|
|
35
|
+
主 Agent 启动 SubAgent,让它用 `docs +create --api-version v2` / `docs +update --api-version v2` 插入:
|
|
36
|
+
|
|
37
|
+
```xml
|
|
38
|
+
<whiteboard type="svg"><svg ...>...</svg></whiteboard>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
简单图 SubAgent 的最小上下文:
|
|
42
|
+
- doc token、插入位置(标题 / block_id / command)
|
|
43
|
+
- 图表目标、受众、源段落或数据
|
|
44
|
+
- 要求读取 `lark-doc-xml.md`;不需要读取 `lark-whiteboard`
|
|
45
|
+
- SVG 必须完整自包含:包含 `<svg>` 根节点和 `viewBox`,不引用外部图片、脚本、远程资源
|
|
46
|
+
|
|
47
|
+
### 步骤 2B:复杂图 — 先创建空白画板
|
|
48
|
+
|
|
49
|
+
- 主 Agent 使用 `docs +create --api-version v2` / `docs +update --api-version v2` 插入 `<whiteboard type="blank"></whiteboard>`。
|
|
50
|
+
- 从 v2 响应的 `data.document.new_blocks[]` 中读取 `block_type == "whiteboard"` 的 `block_token` 作为 board_token。
|
|
51
|
+
|
|
52
|
+
### 步骤 3B:复杂图或已有画板 — 启动 lark-whiteboard SubAgent
|
|
53
|
+
|
|
54
|
+
复杂图和已有画板更新必须启动 SubAgent。主 Agent 只传最小上下文,不直接执行 `lark-whiteboard` 的渲染和写入流程。
|
|
55
|
+
|
|
56
|
+
复杂图 SubAgent 的最小上下文:
|
|
57
|
+
- board_token
|
|
58
|
+
- 图表目标、推荐画板类型、受众
|
|
59
|
+
- 与图表直接相关的源段落或数据
|
|
60
|
+
- 要求读取 [`../../lark-whiteboard/SKILL.md`](../../lark-whiteboard/SKILL.md),按其完整流程写入该 board_token
|
|
61
|
+
|
|
62
|
+
多个画板互不依赖时,可并行启动多个 SubAgent;每个 SubAgent 只负责一个画板或一个 SVG 插入点,不要互相复用上下文。
|
|
63
|
+
|
|
64
|
+
### 步骤 4:完成校验
|
|
65
|
+
|
|
66
|
+
- 简单 SVG:确认插入的是 `<whiteboard type="svg">`,且内容是完整 `<svg ...>...</svg>`
|
|
67
|
+
- 复杂画板:确认每个 token 对应的画板都已填充真实内容
|
|
68
|
+
- 不保留空白占位画板;复杂路径只有空白画板而无内容视为任务未完成
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 语义与画板类型映射
|
|
73
|
+
|
|
74
|
+
下表用于帮助主 Agent 判断简单/复杂路径,并给 SubAgent 指定推荐画板类型。
|
|
75
|
+
|
|
76
|
+
| 语义 | 画板类型 |
|
|
77
|
+
|------|------|
|
|
78
|
+
| 小型流程/状态机/简单时间线/小型对比/小型示意图 | SVG 画板(简单路径) |
|
|
79
|
+
| 架构/分层/技术方案/模块依赖/调用关系 | 架构图(复杂路径) |
|
|
80
|
+
| 流程/审批/部署/业务流转/状态机 | 流程图(按复杂度分流) |
|
|
81
|
+
| 跨角色流程/跨系统交互/端到端链路 | 泳道图(复杂路径) |
|
|
82
|
+
| 组织/层级/汇报关系 | 组织架构图 |
|
|
83
|
+
| 时间线/里程碑/版本规划 | 里程碑图 |
|
|
84
|
+
| 因果/复盘/根因分析 | 鱼骨图 |
|
|
85
|
+
| 方案对比/技术选型/功能矩阵 | 对比图 |
|
|
86
|
+
| 循环/飞轮/闭环/增长链路 | 飞轮图 |
|
|
87
|
+
| 层级占比/能力模型/需求层次 | 金字塔图 |
|
|
88
|
+
| 矩形树图/层级面积占比 | 树状图 |
|
|
89
|
+
| 转化漏斗/销售漏斗 | 漏斗图 |
|
|
90
|
+
| 分类梳理/知识体系/思维导图/时序图/类图 | Mermaid |
|
|
91
|
+
| 数据分布/占比/饼图 | Mermaid |
|
|
92
|
+
| 简单自定义图形/小型 SVG 示意图 | SVG 画板(简单路径) |
|
|
93
|
+
| 柱状图/条形图/数据对比 | 柱状图 |
|
|
94
|
+
| 折线图/趋势图/时序数据 | 折线图 |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 关联参考
|
|
99
|
+
|
|
100
|
+
- 画板查询/创作/修改/渲染写入:[`../../lark-whiteboard/SKILL.md`](../../lark-whiteboard/SKILL.md)
|