weaver-work-cli 0.1.23 → 0.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -3
- package/dist/core/output.js +53 -1
- package/dist/internal/e10/auth/commands.js +210 -17
- package/dist/internal/e10/auth/crypto.js +52 -12
- package/dist/internal/e10/auth/xiaoe.js +117 -35
- package/dist/internal/e10/context.js +3 -3
- package/dist/internal/e10/request-runtime.js +46 -4
- package/dist/shortcuts/caizhilian/file-upload/metadata.js +124 -0
- package/dist/shortcuts/caizhilian/file-upload/multipart.js +47 -0
- package/dist/shortcuts/caizhilian/file-upload/protocol.js +116 -0
- package/dist/shortcuts/caizhilian/file-upload/receipt.js +37 -0
- package/dist/shortcuts/caizhilian/host.js +13 -5
- package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +72 -179
- package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
- package/dist/shortcuts/caizhilian/operations/handlers/folder.js +701 -4
- package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
- package/dist/shortcuts/caizhilian/operations/registry.js +5 -1
- package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
- package/dist/shortcuts/caizhilian/operations/specs.js +67 -0
- package/dist/shortcuts/workflow/continuation.js +14 -9
- package/dist/shortcuts/workflow/endpoints.js +11 -1
- package/dist/shortcuts/workflow/index.js +55 -1
- package/dist/shortcuts/workflow/operations/flow-status.js +63 -0
- package/dist/shortcuts/workflow/operations/form.js +1822 -547
- package/dist/shortcuts/workflow/operations/read.js +414 -13
- package/dist/shortcuts/workflow/operations/shared.js +28 -0
- package/dist/shortcuts/workflow/operations/write.js +5 -5
- package/dist/shortcuts/workflow/operations.js +8 -6
- package/dist/shortcuts/workflow/stdout-compact.js +33 -0
- package/docs/caizhilian.md +12 -5
- package/docs/e10-auth.md +25 -3
- package/node_modules/@napi-rs/keyring/LICENSE +21 -0
- package/node_modules/@napi-rs/keyring/README.md +19 -0
- package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
- package/node_modules/@napi-rs/keyring/index.js +514 -0
- package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
- package/node_modules/@napi-rs/keyring/keytar.js +26 -0
- package/node_modules/@napi-rs/keyring/package.json +125 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/Readme.md +1149 -0
- package/node_modules/commander/esm.mjs +16 -0
- package/node_modules/commander/index.js +24 -0
- package/node_modules/commander/lib/argument.js +149 -0
- package/node_modules/commander/lib/command.js +2662 -0
- package/node_modules/commander/lib/error.js +39 -0
- package/node_modules/commander/lib/help.js +709 -0
- package/node_modules/commander/lib/option.js +367 -0
- package/node_modules/commander/lib/suggestSimilar.js +101 -0
- package/node_modules/commander/package-support.json +16 -0
- package/node_modules/commander/package.json +82 -0
- package/node_modules/commander/typings/esm.d.mts +3 -0
- package/node_modules/commander/typings/index.d.ts +1045 -0
- package/package.json +5 -1
- package/skills/weaver-e10-builder/SKILL.md +281 -0
- package/skills/weaver-e10-builder/_catalog.md +94 -0
- package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
- package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
- package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
- package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
- package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
- package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
- package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
- package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
- package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
- package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
- package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
- package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
- package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
- package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
- package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
- package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
- package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
- package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
- package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
- package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
- package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
- package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
- package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
- package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
- package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
- package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
- package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
- package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
- package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
- package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
- package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
- package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
- package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
- package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
- package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
- package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
- package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
- package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
- package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
- package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
- package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
- package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
- package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
- package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
- package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
- package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
- package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
- package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
- package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
- package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
- package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
- package/skills/weaver-e10-builder/assets/icons.db +0 -0
- package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
- package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
- package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
- package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
- package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
- package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
- package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
- package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
- package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
- package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
- package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
- package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
- package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
- package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
- package/skills/weaver-e10-builder/references/common/map.md +153 -0
- package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
- package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
- package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
- package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
- package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
- package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
- package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
- package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
- package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
- package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
- package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
- package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
- package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
- package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
- package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
- package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
- package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
- package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
- package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
- package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
- package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
- package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
- package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
- package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
- package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
- package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
- package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
- package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
- package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
- package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
- package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
- package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
- package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
- package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
- package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
- package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
- package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
- package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
- package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
- package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
- package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
- package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
- package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
- package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
- package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
- package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
- package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
- package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
- package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
- package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
- package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
- package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
- package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
- package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
- package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
- package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
- package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
- package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
- package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
- package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
- package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
- package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
- package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
- package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
- package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
- package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
- package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
- package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
- package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
- package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
- package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
- package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
- package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
- package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
- package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
- package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
- package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
- package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
- package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
- package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
- package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
- package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
- package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
- package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
- package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
- package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
- package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
- package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
- package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
- package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
- package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
- package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
- package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
- package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
- package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
- package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
- package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
- package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
- package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
- package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
- package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
- package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
- package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
- package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
- package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
- package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
- package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
- package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
- package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
- package/skills/weaver-e10-caizhilian/SKILL.md +14 -4
- package/skills/weaver-e10-caizhilian/references/file-upload.md +100 -295
- package/skills/weaver-e10-caizhilian/references/files.md +15 -0
- package/skills/weaver-e10-caizhilian/references/folder.md +31 -3
- package/skills/weaver-e10-caizhilian/references/setting-attach.md +48 -3
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +634 -25
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +9 -1
- package/skills/weaver-e10-shared/SKILL.md +19 -5
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +25 -5
- package/skills/weaver-e10-workflow/SKILL.md +28 -47
- package/skills/weaver-e10-workflow/references/source-manifest.json +46 -36
- package/skills/weaver-e10-workflow/references/workflow-batch.md +2 -4
- package/skills/weaver-e10-workflow/references/workflow-create.md +261 -86
- package/skills/weaver-e10-workflow/references/workflow-edit.md +2 -1
- package/skills/weaver-e10-workflow/references/workflow-memory.md +3 -6
- package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -1
- package/skills/weaver-e10-workflow/references/workflow-query.md +11 -9
- package/skills/weaver-e10-workflow/references/workflow-share.md +2 -0
|
@@ -110,9 +110,13 @@ export function createCaizhilianHost(ctx, dependencies = {}) {
|
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
async function doRequest(request, binary) {
|
|
113
|
-
const { method, path, query, body, operation, form, multipart, headers: extraHeaders = {}, timeoutMs = CAIZHILAN_TIMEOUT_MS, } = request;
|
|
113
|
+
const { method, path, query, body, operation, form, multipart, streamMultipart, maxResponseBytes, headers: extraHeaders = {}, timeoutMs = CAIZHILAN_TIMEOUT_MS, } = request;
|
|
114
114
|
assertCaizhilianPath(path);
|
|
115
|
-
const resolvedMethod = method || (body === undefined && form === undefined && multipart === undefined
|
|
115
|
+
const resolvedMethod = method || (body === undefined && form === undefined && multipart === undefined
|
|
116
|
+
&& streamMultipart === undefined ? 'GET' : 'POST');
|
|
117
|
+
const headers = { 'X-Requested-With': 'XMLHttpRequest', ...extraHeaders, ...(streamMultipart ? {
|
|
118
|
+
'Content-Type': streamMultipart.contentType, 'Content-Length': String(streamMultipart.contentLength),
|
|
119
|
+
} : {}) };
|
|
116
120
|
const rt = await runtime();
|
|
117
121
|
const response = binary
|
|
118
122
|
? await rt.requestBinary({
|
|
@@ -124,7 +128,9 @@ export function createCaizhilianHost(ctx, dependencies = {}) {
|
|
|
124
128
|
body: multipart === undefined ? body : undefined,
|
|
125
129
|
form: multipart === undefined && form === undefined ? undefined : formBody(form ?? {}),
|
|
126
130
|
formData: multipart,
|
|
127
|
-
|
|
131
|
+
streamBody: streamMultipart?.body,
|
|
132
|
+
maxResponseBytes,
|
|
133
|
+
headers,
|
|
128
134
|
timeoutMs,
|
|
129
135
|
})
|
|
130
136
|
: await rt.requestJson({
|
|
@@ -136,7 +142,9 @@ export function createCaizhilianHost(ctx, dependencies = {}) {
|
|
|
136
142
|
body: multipart === undefined ? body : undefined,
|
|
137
143
|
form: multipart === undefined && form === undefined ? undefined : formBody(form ?? {}),
|
|
138
144
|
formData: multipart,
|
|
139
|
-
|
|
145
|
+
streamBody: streamMultipart?.body,
|
|
146
|
+
maxResponseBytes,
|
|
147
|
+
headers,
|
|
140
148
|
timeoutMs,
|
|
141
149
|
});
|
|
142
150
|
return response;
|
|
@@ -156,7 +164,7 @@ export function createCaizhilianHost(ctx, dependencies = {}) {
|
|
|
156
164
|
}
|
|
157
165
|
throw caizhilianNetworkError('protocol', `接口返回不是合法 JSON(HTTP ${response.status})`, { retryable: false });
|
|
158
166
|
}
|
|
159
|
-
if (response.status < 200 || response.status >= 300) {
|
|
167
|
+
if (response.status < 200 || response.status >= 300 || (request.requireHttp200 && response.status !== 200)) {
|
|
160
168
|
throw new CaizhilianCliError('api', 'http_error', `采知连接口 HTTP ${response.status}`, {
|
|
161
169
|
code: response.status,
|
|
162
170
|
details: { status: response.status, message: caizhilianBusinessMessage(response.value) },
|
|
@@ -1,192 +1,85 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
/** Weaver file upload integrated with the existing CLI confirmation and authentication boundary. */
|
|
2
|
+
import { caizhilianConfirmationError, caizhilianValidationError } from '../../errors.js';
|
|
3
|
+
import { inspectUploadFile, readUploadContext, RESERVED_CONTEXT_FIELDS, uploadChatId, uploadModule, uploadTimeout } from '../../file-upload/metadata.js';
|
|
4
|
+
import { uploadToFileService } from '../../file-upload/protocol.js';
|
|
5
|
+
import { writeUploadReceipt } from '../../file-upload/receipt.js';
|
|
6
|
+
import { issueWriteLease } from '../confirm.js';
|
|
7
|
+
import { caizhilianPrepared, caizhilianSuccess } from '../types.js';
|
|
8
|
+
const PREFIX = 'caizhilian.file-upload';
|
|
9
|
+
const COMMAND = 'weaver-work-cli --json caizhilian run';
|
|
10
|
+
const CONTEXT_PURPOSES = {
|
|
11
|
+
source: '上传来源场景', fieldId: '附件字段或控件 ID', sourceRefId: '来源业务对象引用 ID',
|
|
12
|
+
authModule: '服务端权限校验模块', customParam: '模块扩展参数', refId: '最终关联对象 ID',
|
|
13
|
+
commonText: '通用场景参数', folderId: '目标文件夹 ID',
|
|
14
|
+
};
|
|
15
|
+
async function getContract() {
|
|
16
|
+
return caizhilianSuccess(`${PREFIX}.contract`, { contract: {
|
|
17
|
+
version: 'agent_callable_interface_contract.v1', authentication: 'weaver-work-cli', automatic_fallback: false,
|
|
18
|
+
upload_strategies: ['second', 'common', 'chunk'],
|
|
19
|
+
actions: ['contract', 'prepare', 'upload.prepare', 'upload.apply'],
|
|
20
|
+
canonical_commands: ['contract', 'prepare', 'upload.prepare', 'upload.apply'].map((name) => `${COMMAND} ${PREFIX}.${name}${name === 'contract' ? '' : ' --input-json <businessInputJson>'}`
|
|
21
|
+
+ (name === 'upload.apply' ? ' --continuation <token> --yes' : '')),
|
|
22
|
+
required: { prepare: ['file_path', 'module'], 'upload.prepare': ['file_path', 'module', 'user_confirmed'],
|
|
23
|
+
'upload.apply': ['file_path', 'module', 'user_confirmed', 'continuation', 'confirm'] },
|
|
24
|
+
optional: { prepare: ['context_file', 'chat_id', 'timeout_seconds'],
|
|
25
|
+
'upload.prepare': ['context_file', 'chat_id', 'timeout_seconds'],
|
|
26
|
+
'upload.apply': ['context_file', 'chat_id', 'timeout_seconds'] },
|
|
27
|
+
user_input_guide: { required: [
|
|
28
|
+
{ name: 'file_path', purpose: '需要上传的本地普通文件绝对路径,直接复用宿主附件路径' },
|
|
29
|
+
{ name: 'module', purpose: '真实业务模块;不得猜测或使用默认模块' },
|
|
30
|
+
], conditionally_required: [], optional: [
|
|
31
|
+
{ name: 'context_file', purpose: '可选业务上下文 JSON 文件绝对路径,最多 64 KiB' },
|
|
32
|
+
{ name: 'chat_id', purpose: '隔离对话回执;默认 cli,由宿主注入' },
|
|
33
|
+
{ name: 'timeout_seconds', purpose: '上传请求及响应读取超时(1–3600 秒,默认 300)' },
|
|
34
|
+
...Object.entries(CONTEXT_PURPOSES).map(([name, purpose]) => ({ name: `context_file.${name}`, purpose })),
|
|
35
|
+
] }, reserved_context_fields: RESERVED_CONTEXT_FIELDS,
|
|
36
|
+
success_evidence: ['business_verified', 'file.file_id', 'receipt_ref', 'receipt_sha256'],
|
|
37
|
+
login: '登录由 weaver-work-cli auth 托管,本模块不读取其他 Skill 登录态或启动独立浏览器',
|
|
38
|
+
} });
|
|
26
39
|
}
|
|
27
|
-
function
|
|
28
|
-
|
|
40
|
+
function requireUploadAuthorization(args) {
|
|
41
|
+
if (args.user_confirmed !== true) {
|
|
42
|
+
throw caizhilianConfirmationError(`${PREFIX}.upload`, { hint: '上传必须来自当前用户明确授权,并传 user_confirmed=true' });
|
|
43
|
+
}
|
|
29
44
|
}
|
|
30
|
-
function
|
|
31
|
-
const
|
|
32
|
-
|
|
45
|
+
async function inspect(args) {
|
|
46
|
+
const module = uploadModule(args.module);
|
|
47
|
+
const chatId = uploadChatId(args.chat_id);
|
|
48
|
+
const timeoutMs = uploadTimeout(args.timeout_seconds);
|
|
49
|
+
const context = await readUploadContext(args.context_file);
|
|
50
|
+
const file = await inspectUploadFile(args.file_path);
|
|
51
|
+
return { file, context, module, chatId, timeoutMs };
|
|
33
52
|
}
|
|
34
|
-
function
|
|
35
|
-
const
|
|
36
|
-
return
|
|
53
|
+
function metadataPreview(prepared) {
|
|
54
|
+
const { file, context, module, chatId } = prepared;
|
|
55
|
+
return { file_path: file.path, file_name: file.name, ext: file.extension, size: file.size,
|
|
56
|
+
md5: file.md5, sha256: file.sha256, module, chat_id: chatId, context_keys: context.keys,
|
|
57
|
+
context_sha256: context.sha256 };
|
|
37
58
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return caizhilianSuccess(ACTION, {
|
|
41
|
-
contract: {
|
|
42
|
-
version: 'agent_callable_interface_contract.v1',
|
|
43
|
-
actions: ['contract', 'prepare', 'upload'],
|
|
44
|
-
required: {
|
|
45
|
-
prepare: ['file_path', 'module'],
|
|
46
|
-
upload: ['file_path', 'module', 'user_confirmed'],
|
|
47
|
-
},
|
|
48
|
-
optional: {
|
|
49
|
-
prepare: ['context_file'],
|
|
50
|
-
upload: ['context_file', 'login_mode'],
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
});
|
|
59
|
+
async function prepareLocal(args) {
|
|
60
|
+
return caizhilianSuccess(`${PREFIX}.prepare`, metadataPreview(await inspect(args)));
|
|
54
61
|
}
|
|
55
|
-
// ── 准备上传(prepare/apply)──────────────────────────────────────
|
|
56
62
|
async function prepareUpload(args, env) {
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
try {
|
|
62
|
-
stat = statSync(filePath);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
throw caizhilianValidationError('file_not_found', `文件不存在: ${filePath}`);
|
|
66
|
-
}
|
|
67
|
-
if (!stat.isFile()) {
|
|
68
|
-
throw caizhilianValidationError('file_not_regular', `不是普通文件: ${filePath}`);
|
|
69
|
-
}
|
|
70
|
-
// 计算元数据
|
|
71
|
-
const fileName = basename(filePath);
|
|
72
|
-
const ext = extname(filePath).slice(1).toLowerCase();
|
|
73
|
-
const size = stat.size;
|
|
74
|
-
const md5 = md5File(filePath);
|
|
75
|
-
const sha256 = sha256File(filePath);
|
|
76
|
-
// 签发 continuation
|
|
77
|
-
const continuation = await env.continuation.issue({
|
|
78
|
-
operation: 'caizhilian.file-upload.upload.apply',
|
|
79
|
-
filePath,
|
|
80
|
-
module,
|
|
81
|
-
fileName,
|
|
82
|
-
ext,
|
|
83
|
-
size,
|
|
84
|
-
md5,
|
|
85
|
-
sha256,
|
|
86
|
-
});
|
|
87
|
-
return caizhilianSuccess('caizhilian.file-upload.prepare', {
|
|
88
|
-
file_path: filePath,
|
|
89
|
-
file_name: fileName,
|
|
90
|
-
ext,
|
|
91
|
-
size,
|
|
92
|
-
md5,
|
|
93
|
-
sha256,
|
|
94
|
-
module,
|
|
95
|
-
continuation,
|
|
96
|
-
});
|
|
63
|
+
const prepared = await inspect(args);
|
|
64
|
+
const lease = await issueWriteLease(env, `${PREFIX}.upload.apply`, args, { file_path: prepared.file.path,
|
|
65
|
+
module: prepared.module, file: prepared.file, context_sha256: prepared.context.sha256 });
|
|
66
|
+
return caizhilianPrepared(`${PREFIX}.upload.prepare`, metadataPreview(prepared), lease);
|
|
97
67
|
}
|
|
98
68
|
async function uploadApply(args, env, lease) {
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const ext = lease.payload?.ext;
|
|
103
|
-
const size = lease.payload?.size;
|
|
104
|
-
const md5 = lease.payload?.md5;
|
|
105
|
-
const sha256 = lease.payload?.sha256;
|
|
106
|
-
// 预检查
|
|
107
|
-
const preCheckResponse = await env.host.request({
|
|
108
|
-
method: 'POST',
|
|
109
|
-
path: PRE_UPLOAD_CHECK_PATH,
|
|
110
|
-
body: {
|
|
111
|
-
fileName,
|
|
112
|
-
fileSize: size,
|
|
113
|
-
module,
|
|
114
|
-
md5,
|
|
115
|
-
},
|
|
116
|
-
operation: 'caizhilian.file-upload.upload.apply',
|
|
117
|
-
});
|
|
118
|
-
const preCheckData = asRecord(preCheckResponse);
|
|
119
|
-
if (!preCheckData.status && !preCheckData.success) {
|
|
120
|
-
throw new CaizhilianCliError('api', 'business_error', String(preCheckData.msg || preCheckData.message || '预检查失败'), {
|
|
121
|
-
code: preCheckData.code ?? preCheckData.status,
|
|
122
|
-
details: { action: 'caizhilian.file-upload.upload.apply', message: String(preCheckData.msg || preCheckData.message || '预检查失败') },
|
|
123
|
-
exitCode: 1,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
const preCheckResult = asRecord(preCheckData.data);
|
|
127
|
-
// 判断上传策略
|
|
128
|
-
const uploadType = preCheckResult.uploadType || 'common';
|
|
129
|
-
const preUploadId = preCheckResult.preUploadId;
|
|
130
|
-
// 如果是 second 策略,直接返回已有 file ID
|
|
131
|
-
if (uploadType === 'second') {
|
|
132
|
-
const fileId = preCheckResult.fileId || preCheckResult.fileid || preCheckResult.uploadModuleDto?.fileObj?.fileId;
|
|
133
|
-
if (!fileId) {
|
|
134
|
-
throw new CaizhilianCliError('api', 'business_error', 'second 策略未返回 file ID', {
|
|
135
|
-
details: { action: 'caizhilian.file-upload.upload.apply' },
|
|
136
|
-
exitCode: 1,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
return caizhilianSuccess('caizhilian.file-upload.upload.apply', {
|
|
140
|
-
file_id: String(fileId),
|
|
141
|
-
file_name: fileName,
|
|
142
|
-
size,
|
|
143
|
-
ext,
|
|
144
|
-
upload_type: uploadType,
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
// common/chunk 策略:上传文件
|
|
148
|
-
const fileContent = readFileSync(filePath);
|
|
149
|
-
const formData = new FormData();
|
|
150
|
-
formData.append('file', new Blob([fileContent]), fileName);
|
|
151
|
-
formData.append('preUploadId', preUploadId || '');
|
|
152
|
-
formData.append('module', module);
|
|
153
|
-
const uploadResponse = await env.host.request({
|
|
154
|
-
method: 'POST',
|
|
155
|
-
path: UPLOAD_PATH,
|
|
156
|
-
body: formData,
|
|
157
|
-
operation: 'caizhilian.file-upload.upload.apply',
|
|
158
|
-
});
|
|
159
|
-
const uploadData = asRecord(uploadResponse);
|
|
160
|
-
if (!uploadData.status && !uploadData.success) {
|
|
161
|
-
throw new CaizhilianCliError('api', 'business_error', String(uploadData.msg || uploadData.message || '上传失败'), {
|
|
162
|
-
code: uploadData.code ?? uploadData.status,
|
|
163
|
-
details: { action: 'caizhilian.file-upload.upload.apply', message: String(uploadData.msg || uploadData.message || '上传失败') },
|
|
164
|
-
exitCode: 1,
|
|
165
|
-
});
|
|
69
|
+
const prepared = await inspect(args);
|
|
70
|
+
if (prepared.file.sha256 !== lease.file?.sha256 || prepared.file.size !== lease.file?.size) {
|
|
71
|
+
throw caizhilianValidationError('file_changed', '文件与已确认内容不一致,请重新准备上传');
|
|
166
72
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (!fileId) {
|
|
170
|
-
throw new CaizhilianCliError('api', 'business_error', '上传未返回 file ID', {
|
|
171
|
-
details: { action: 'caizhilian.file-upload.upload.apply' },
|
|
172
|
-
exitCode: 1,
|
|
173
|
-
});
|
|
73
|
+
if (prepared.context.sha256 !== lease.context_sha256) {
|
|
74
|
+
throw caizhilianValidationError('context_changed', '业务上下文与已确认内容不一致,请重新准备上传');
|
|
174
75
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
size,
|
|
179
|
-
ext,
|
|
180
|
-
upload_type: uploadType,
|
|
181
|
-
});
|
|
76
|
+
const verified = await uploadToFileService(env.host, prepared.file, prepared.module, prepared.context, prepared.timeoutMs);
|
|
77
|
+
const result = await writeUploadReceipt(env, prepared.chatId, prepared.module, prepared.file, prepared.context, verified);
|
|
78
|
+
return caizhilianSuccess(`${PREFIX}.upload.apply`, result);
|
|
182
79
|
}
|
|
183
|
-
// ── 处理器汇总 ────────────────────────────────────────────
|
|
184
80
|
export const caizhilianFileUploadHandlers = {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
apply: uploadApply,
|
|
190
|
-
targetKeys: ['file_path', 'module'],
|
|
191
|
-
},
|
|
81
|
+
[`${PREFIX}.contract`]: { execute: getContract },
|
|
82
|
+
[`${PREFIX}.prepare`]: { execute: prepareLocal },
|
|
83
|
+
[`${PREFIX}.upload`]: { validateInput: requireUploadAuthorization, prepare: prepareUpload,
|
|
84
|
+
apply: uploadApply, targetKeys: ['file_path', 'module'] },
|
|
192
85
|
};
|
|
@@ -3,7 +3,7 @@ import { caizhilianValidationError } from '../../errors.js';
|
|
|
3
3
|
import { updateDocBasicField } from '../api.js';
|
|
4
4
|
import { issueWriteLease } from '../confirm.js';
|
|
5
5
|
import { IMAGE_ALLOWED_EXT, assertAllowedExt, assertFileUnchanged, downloadAttachment, readFileMetadata, resolveSavePathArg, uploadFileToServer, } from '../files.js';
|
|
6
|
-
import { fingerprint, isPlainObject, pyBool, timestampToDateStr, validateRequiredParams } from '../shared.js';
|
|
6
|
+
import { fingerprint, formatVersionTimestamp, isPlainObject, pyBool, timestampToDateStr, validateRequiredParams, } from '../shared.js';
|
|
7
7
|
import { caizhilianPrepared, caizhilianSuccess } from '../types.js';
|
|
8
8
|
/**
|
|
9
9
|
* 文件域操作(1:1 对应源 scripts/document_plugins.py 的附件/封面部分
|
|
@@ -32,6 +32,8 @@ const QUERY_FILE_OBJECTS_PATH = '/api/file/queryFileObjects';
|
|
|
32
32
|
const COMPARE_SUBMIT_PATH = '/api/docCompare/uploadCompared';
|
|
33
33
|
const TO_PDF_CHECK_PATH = '/api/file/download/toPdf';
|
|
34
34
|
const DOC_UPDATE_PATH = '/api/doc/document/update';
|
|
35
|
+
/** 源 filePreview 页「附件历史版本」抽屉接口(抓包 findVersionList)。 */
|
|
36
|
+
const FIND_VERSION_LIST_PATH = '/api/file/base/upload/findVersionList';
|
|
35
37
|
/** 源 doc_compare_plugins._COMPARE_OPTIONS:13 个比对选项全部固定为 0(键序与源一致)。 */
|
|
36
38
|
const COMPARE_OPTIONS = {
|
|
37
39
|
ignoreImages: 0,
|
|
@@ -50,6 +52,7 @@ const COMPARE_OPTIONS = {
|
|
|
50
52
|
};
|
|
51
53
|
const ATTACHMENT_UPLOAD_APPLY = 'caizhilian.attachment.upload.apply';
|
|
52
54
|
const ATTACHMENT_REPLACE_APPLY = 'caizhilian.attachment.replace.apply';
|
|
55
|
+
const ATTACHMENT_VERSIONS_ACTION = 'caizhilian.attachment.list-versions';
|
|
53
56
|
const COVER_UPLOAD_APPLY = 'caizhilian.cover.upload.apply';
|
|
54
57
|
const COVER_SET_APPLY = 'caizhilian.cover.set.apply';
|
|
55
58
|
const COVER_REMOVE_APPLY = 'caizhilian.cover.remove.apply';
|
|
@@ -455,6 +458,68 @@ async function listFileObjectsHandler(args, env) {
|
|
|
455
458
|
}
|
|
456
459
|
return caizhilianSuccess(LIST_FILE_OBJECTS_ACTION, { attachments }, { doc_id: docId });
|
|
457
460
|
}
|
|
461
|
+
// ── caizhilian.attachment.list-versions ───────────────────
|
|
462
|
+
/** 源 filePreview 页「附件历史版本」抽屉请求体(抓包 findVersionList,逐字段一致)。 */
|
|
463
|
+
function buildFindVersionListBody(attachmentId, docId, pageNo, pageSize) {
|
|
464
|
+
return {
|
|
465
|
+
pageNo,
|
|
466
|
+
pageSize,
|
|
467
|
+
id: attachmentId,
|
|
468
|
+
docId,
|
|
469
|
+
startTime: '',
|
|
470
|
+
endTime: '',
|
|
471
|
+
userIds: '',
|
|
472
|
+
pauuid: randomUUID().replace(/-/gu, ''),
|
|
473
|
+
endType: process.platform === 'win32' ? 'Windows' : process.platform === 'darwin' ? 'Mac' : '',
|
|
474
|
+
module: 'document',
|
|
475
|
+
maxUploadSize: '10000',
|
|
476
|
+
mobile: false,
|
|
477
|
+
enterprisePan: false,
|
|
478
|
+
customParam: FROM_PC_DOC_PARAM,
|
|
479
|
+
authModule: 'document',
|
|
480
|
+
notLoggedIn: false,
|
|
481
|
+
autoSelect: false,
|
|
482
|
+
coordinateFlag: false,
|
|
483
|
+
deepClean: false,
|
|
484
|
+
publicFileHost: '',
|
|
485
|
+
tempFileType: '1',
|
|
486
|
+
create: false,
|
|
487
|
+
batchCollaboration: false,
|
|
488
|
+
fileId: attachmentId,
|
|
489
|
+
imgType: 'imgPlug',
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
async function listAttachmentVersionsHandler(args, env) {
|
|
493
|
+
const action = ATTACHMENT_VERSIONS_ACTION;
|
|
494
|
+
validateRequiredParams(args, ['attachment_id']);
|
|
495
|
+
const attachmentId = pyArgStripped(args, 'attachment_id');
|
|
496
|
+
const docId = pyArgStripped(args, 'doc_id');
|
|
497
|
+
const pageNo = Number(args.page_no ?? 1);
|
|
498
|
+
const pageSize = Number(args.page_size ?? 10);
|
|
499
|
+
const response = await env.host.request({
|
|
500
|
+
method: 'POST',
|
|
501
|
+
path: FIND_VERSION_LIST_PATH,
|
|
502
|
+
body: buildFindVersionListBody(attachmentId, docId, pageNo, pageSize),
|
|
503
|
+
operation: action,
|
|
504
|
+
});
|
|
505
|
+
const rawPage = nestedValue(response, 'data', 'page');
|
|
506
|
+
const rawList = Array.isArray(nestedValue(rawPage, 'result')) ? nestedValue(rawPage, 'result') : [];
|
|
507
|
+
const hasNext = pyBool(nestedValue(rawPage, 'hasNext'));
|
|
508
|
+
const versions = [];
|
|
509
|
+
for (const item of rawList) {
|
|
510
|
+
if (!isPlainObject(item))
|
|
511
|
+
continue;
|
|
512
|
+
versions.push({
|
|
513
|
+
id: item.id ?? null,
|
|
514
|
+
name: item.name ?? null,
|
|
515
|
+
versionNumber: item.versionNumber ?? null,
|
|
516
|
+
updateTime: formatVersionTimestamp(item.updateTime),
|
|
517
|
+
describe: item.describe ?? null,
|
|
518
|
+
extName: item.extName ?? null,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
return caizhilianSuccess(action, { versions, has_next: hasNext }, { attachment_id: attachmentId, doc_id: docId });
|
|
522
|
+
}
|
|
458
523
|
// ── caizhilian.compare.upload-file ────────────────────────
|
|
459
524
|
/** 源 DocCompareUploadFilePlugin.execute 的入参解析。 */
|
|
460
525
|
async function planCompareUpload(args) {
|
|
@@ -561,6 +626,7 @@ export const caizhilianFileopsHandlers = {
|
|
|
561
626
|
'caizhilian.attachment.replace': attachmentReplaceHandler,
|
|
562
627
|
'caizhilian.attachment.download': { execute: downloadAttachmentHandler },
|
|
563
628
|
'caizhilian.attachment.download-as-pdf': { execute: downloadAsPdfHandler },
|
|
629
|
+
'caizhilian.attachment.list-versions': { execute: listAttachmentVersionsHandler },
|
|
564
630
|
'caizhilian.cover.upload': coverUploadHandler,
|
|
565
631
|
'caizhilian.cover.set': coverSetHandler,
|
|
566
632
|
'caizhilian.cover.remove': coverRemoveHandler,
|