weaver-work-cli 0.1.40 → 0.1.44
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 +17 -0
- package/dist/chunks/{archive-JHTONRST.js → archive-P6TBQGKL.js} +13 -5
- package/dist/chunks/{archive-oa-FCHLCPHC.js → archive-oa-7TQ2NXOH.js} +12 -5
- package/dist/chunks/{asset-RLIHC7DB.js → asset-3ELRG37G.js} +11 -4
- package/dist/chunks/{asset-idle-KVOFTLCP.js → asset-idle-WIGMUFMD.js} +7 -3
- package/dist/chunks/{attachment-content-RZYDB3MB.js → attachment-content-E3276UOV.js} +5 -4
- package/dist/chunks/{blog-42OZTJNP.js → blog-C5NMZAAC.js} +11 -4
- package/dist/chunks/{caizhilian-KRK547K5.js → caizhilian-5XSM2DFP.js} +13 -6
- package/dist/chunks/{calendar-RTWAMKHD.js → calendar-FI2WNSBO.js} +71 -26
- package/dist/chunks/{chunk-CXRQWOZ5.js → chunk-3YBDYOC4.js} +3 -3
- package/dist/chunks/{chunk-OOUTBLZ4.js → chunk-56EZERK4.js} +1 -1
- package/dist/chunks/chunk-6N4JPNFL.js +76 -0
- package/dist/chunks/{chunk-ZUX3P6BQ.js → chunk-727FH2NI.js} +1 -1
- package/dist/chunks/chunk-7BDPM5ST.js +11 -0
- package/dist/chunks/{chunk-LN447PY2.js → chunk-BCVYBYYT.js} +432 -2247
- package/dist/chunks/{chunk-7E6MUOEK.js → chunk-CWYGFU5B.js} +2 -2
- package/dist/chunks/{chunk-NOODWMCL.js → chunk-D4ADSZ7H.js} +1 -1
- package/dist/chunks/{chunk-WFFNM65B.js → chunk-ETNJSKMM.js} +281 -29
- package/dist/chunks/{chunk-CAQNBBQA.js → chunk-F4E4EM35.js} +3 -3
- package/dist/chunks/{chunk-4CTESSKI.js → chunk-FAZTGX7S.js} +6 -6
- package/dist/chunks/chunk-FRZKBMSW.js +2562 -0
- package/dist/chunks/{chunk-BYBSCN4X.js → chunk-G7PQWD4L.js} +6 -3
- package/dist/chunks/{chunk-NJKREDA3.js → chunk-GAMZLAG2.js} +1 -1
- package/dist/chunks/{chunk-FLS4DPGP.js → chunk-GM6J7Q4B.js} +28 -15
- package/dist/chunks/{chunk-NETCCARD.js → chunk-GRDRG6HP.js} +3 -3
- package/dist/chunks/chunk-HIT4Y6OI.js +1238 -0
- package/dist/chunks/{chunk-EZALDOQH.js → chunk-HP7JIYMT.js} +5 -2
- package/dist/chunks/{chunk-IZSSVYAG.js → chunk-IAZ3UPY6.js} +3 -3
- package/dist/chunks/{chunk-ZEDWSH32.js → chunk-IC62NFM5.js} +1 -1
- package/dist/chunks/{chunk-P26ZWSKU.js → chunk-KIHNAS25.js} +5 -2
- package/dist/chunks/{chunk-57IECMWX.js → chunk-N4M2DDFE.js} +29 -15
- package/dist/chunks/{chunk-JWRZM2H2.js → chunk-OF4S23UB.js} +4 -4
- package/dist/chunks/{chunk-VNBU55SL.js → chunk-PC7VKEB5.js} +80 -2458
- package/dist/chunks/{chunk-G2JSIUWF.js → chunk-PUQS5MWL.js} +91 -2
- package/dist/chunks/{chunk-E7OK5WD5.js → chunk-Q4OYAQYH.js} +5 -5
- package/dist/chunks/{chunk-7BRU4EFH.js → chunk-QVSWRLLU.js} +35 -6
- package/dist/chunks/{chunk-T6EGVBKU.js → chunk-TA7FXXJD.js} +6 -3
- package/dist/chunks/{chunk-GPMFD4RD.js → chunk-TXUG266F.js} +1 -1
- package/dist/chunks/{chunk-4TEDNCON.js → chunk-UFIT2UU3.js} +354 -56
- package/dist/chunks/{chunk-LUSPKZKY.js → chunk-UG5G54VL.js} +1 -0
- package/dist/chunks/{chunk-NIAJ5ZCG.js → chunk-UL5XUQ25.js} +5 -2
- package/dist/chunks/{chunk-FMPJJYYI.js → chunk-WRXSAVKO.js} +1 -1
- package/dist/chunks/{chunk-7U577Q7U.js → chunk-WSF4NNMR.js} +3 -3
- package/dist/chunks/chunk-XHK4MDR5.js +2497 -0
- package/dist/chunks/{chunk-LFMSDBZN.js → chunk-XNIK66I4.js} +326 -161
- package/dist/chunks/{chunk-3SO6QL6U.js → chunk-YWX377BY.js} +5 -2
- package/dist/chunks/{chunk-BYATLLEF.js → chunk-Z3GDFVJR.js} +1 -1
- package/dist/chunks/{chunk-I566ZYNF.js → chunk-Z7VYWPZV.js} +1 -1
- package/dist/chunks/{conflict-VR55AOOO.js → conflict-ARLSZJ6V.js} +4 -3
- package/dist/chunks/{continuation-2CKSBLA6.js → continuation-3S37AUSH.js} +4 -3
- package/dist/chunks/{continuation-RN6PZN2M.js → continuation-3XLYYTKV.js} +4 -3
- package/dist/chunks/{continuation-HZIZRZBX.js → continuation-HFW2YT5S.js} +4 -3
- package/dist/chunks/{continuation-NLECEJPX.js → continuation-KI7DRRZN.js} +4 -3
- package/dist/chunks/{contract-HI4FNPYE.js → contract-DNIIW5VJ.js} +13 -5
- package/dist/chunks/{cowork-HJLI353D.js → cowork-GMLRGVIW.js} +31 -14
- package/dist/chunks/create-flow-J22BO65E.js +56 -0
- package/dist/chunks/{ebuilder-form-HTGI63UU.js → ebuilder-form-ANV2FHYV.js} +12 -7
- package/dist/chunks/{ehr-GYXIYH3A.js → ehr-GSTGAIY3.js} +695 -1255
- package/dist/chunks/{employee-SAK2QYXX.js → employee-22BGJ3QS.js} +3 -3
- package/dist/chunks/{env-DW3G4HUO.js → env-BX3VRFS7.js} +4 -3
- package/dist/chunks/{esb-I5INCEFE.js → esb-ATAIASX2.js} +12 -7
- package/dist/chunks/{factory-TKXGXS6L.js → factory-PETTFME6.js} +3 -2
- package/dist/chunks/{fna-K2MHTQ24.js → fna-YEKBSFSX.js} +14 -8
- package/dist/chunks/{group-chat-VYBNMJLG.js → group-chat-BFVXAYFX.js} +7 -4
- package/dist/chunks/{host-D5SERMAJ.js → host-HRBXEPDQ.js} +5 -5
- package/dist/chunks/{host-JM4YVHFM.js → host-LR55CTHP.js} +5 -5
- package/dist/chunks/{host-L3VLITMT.js → host-SUOY6VYQ.js} +5 -5
- package/dist/chunks/{host-ZUQTJYYK.js → host-SZGV4UNT.js} +5 -5
- package/dist/chunks/{host-256GVCAH.js → host-WIKN2EJ5.js} +5 -5
- package/dist/chunks/{hrm-VLRBKTZB.js → hrm-NRDO4W5G.js} +11 -7
- package/dist/chunks/{im-QK3VTLXK.js → im-IQ2HN23S.js} +11 -10
- package/dist/chunks/{invoice-T5JTA32H.js → invoice-MNRW76PP.js} +636 -1768
- package/dist/chunks/{jiuchuanhui-P2FNEQVZ.js → jiuchuanhui-DTRBAX4N.js} +14 -6
- package/dist/chunks/{lazy-dispatch-XRRI46M6.js → lazy-dispatch-ZVWAI25B.js} +7 -6
- package/dist/chunks/{mail-3Y7MJ6PS.js → mail-ZVAUXOJA.js} +16 -14
- package/dist/chunks/{meeting-M7LTXGJE.js → meeting-FEVPZ67S.js} +21 -13
- package/dist/chunks/{okr-OBC6S67L.js → okr-SDH3E5RA.js} +12 -5
- package/dist/chunks/{operations-5QL3AECO.js → operations-62N6EP3C.js} +4 -3
- package/dist/chunks/{plan-5H6I53SK.js → plan-E35JFDI7.js} +12 -5
- package/dist/chunks/{project-L75QZV4S.js → project-73QXBAB2.js} +49 -25
- package/dist/chunks/reception-UWZVACBN.js +1899 -0
- package/dist/chunks/recruit-stage-4MAOCKFY.js +4770 -0
- package/dist/chunks/registry-IM5G23LS.js +24 -0
- package/dist/chunks/{registry-UGRBCBHO.js → registry-JDUS4E7D.js} +7 -6
- package/dist/chunks/{registry-RXPN6BBT.js → registry-KNKSCJNT.js} +7 -6
- package/dist/chunks/{registry-NYPYMZXG.js → registry-PO7SI256.js} +4 -4
- package/dist/chunks/{registry-QGHFNUWS.js → registry-PVUZQDDQ.js} +3 -3
- package/dist/chunks/{room-recommend-A3UDC3CA.js → room-recommend-H7KLXA5R.js} +6 -5
- package/dist/chunks/{schedule-5GCACCK7.js → schedule-ESZIBAUO.js} +6 -5
- package/dist/chunks/{workflow-M5ZJ7DWF.js → workflow-CWJFJLQU.js} +15 -10
- package/dist/cmd/action.js +6 -0
- package/dist/cmd/identity/index.js +45 -0
- package/dist/cmd/index.js +2 -0
- package/dist/core/continuation-ttl.js +18 -0
- package/dist/core/error-codes.js +85 -0
- package/dist/core/logger.js +11 -0
- package/dist/index.js +41 -30
- package/dist/internal/e10/auth/commands.js +164 -8
- package/dist/internal/e10/auth/error-log.js +182 -0
- package/dist/internal/e10/auth/messages.js +6 -0
- package/dist/internal/e10/auth/session.js +34 -3
- package/dist/internal/e10/auth/xiaoe.js +286 -44
- package/dist/internal/e10/auth-recovery.js +72 -14
- package/dist/internal/e10/context.js +72 -13
- package/dist/internal/e10/index.js +1 -1
- package/dist/internal/e10/network-error.js +93 -0
- package/dist/internal/e10/request-runtime.js +6 -0
- package/dist/internal/skills/install.js +9 -1
- package/dist/shortcuts/archive/continuation.js +2 -1
- package/dist/shortcuts/archive/index.js +3 -0
- package/dist/shortcuts/archive/operations/confirm.js +2 -1
- package/dist/shortcuts/archive-oa/continuation.js +2 -1
- package/dist/shortcuts/archive-oa/index.js +2 -0
- package/dist/shortcuts/archive-oa/operations/confirm.js +2 -1
- package/dist/shortcuts/asset/continuation.js +2 -1
- package/dist/shortcuts/asset/index.js +2 -0
- package/dist/shortcuts/asset-idle/index.js +2 -0
- package/dist/shortcuts/blog/continuation.js +2 -1
- package/dist/shortcuts/blog/index.js +2 -0
- package/dist/shortcuts/caizhilian/continuation.js +2 -1
- package/dist/shortcuts/caizhilian/index.js +2 -0
- package/dist/shortcuts/caizhilian/operations/confirm.js +3 -2
- package/dist/shortcuts/calendar/continuation.js +2 -1
- package/dist/shortcuts/calendar/index.js +2 -0
- package/dist/shortcuts/calendar/operations/read.js +31 -22
- package/dist/shortcuts/calendar/operations/write.js +46 -2
- package/dist/shortcuts/contract/continuation.js +2 -1
- package/dist/shortcuts/contract/index.js +2 -0
- package/dist/shortcuts/contract/operations/write.js +2 -1
- package/dist/shortcuts/cowork/continuation.js +2 -1
- package/dist/shortcuts/cowork/index.js +2 -0
- package/dist/shortcuts/cowork/operations/discuss-write.js +5 -1
- package/dist/shortcuts/cowork/operations/item-write.js +1 -7
- package/dist/shortcuts/cowork/operations/member-write.js +3 -1
- package/dist/shortcuts/cowork/operations/permission-write.js +5 -1
- package/dist/shortcuts/cowork/operations/shared.js +7 -0
- package/dist/shortcuts/ebuilder-form/continuation.js +2 -1
- package/dist/shortcuts/ebuilder-form/index.js +2 -0
- package/dist/shortcuts/ebuilder-form/operations/write.js +3 -2
- package/dist/shortcuts/ehr/continuation.js +2 -1
- package/dist/shortcuts/ehr/index.js +2 -0
- package/dist/shortcuts/ehr/operations/attend-write.js +44 -2
- package/dist/shortcuts/ehr/operations/hr-contact.js +7 -4
- package/dist/shortcuts/ehr/operations/hr-report.js +13 -7
- package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +317 -63
- package/dist/shortcuts/ehr/operations/recruit-position.js +134 -2
- package/dist/shortcuts/ehr/operations/recruit-write.js +263 -18
- package/dist/shortcuts/ehr/operations/recruit.js +10 -4
- package/dist/shortcuts/ehr/operations/shared.js +47 -0
- package/dist/shortcuts/esb/continuation.js +2 -1
- package/dist/shortcuts/esb/index.js +2 -0
- package/dist/shortcuts/esb/operations/trigger.js +2 -1
- package/dist/shortcuts/fna/continuation.js +2 -1
- package/dist/shortcuts/fna/index.js +2 -0
- package/dist/shortcuts/fna/operations/invoice-writeoff.js +1 -1
- package/dist/shortcuts/fna/operations/loan.js +1 -1
- package/dist/shortcuts/hrm/index.js +2 -0
- package/dist/shortcuts/hrm/operations/org.js +118 -0
- package/dist/shortcuts/im/continuation.js +2 -1
- package/dist/shortcuts/index.js +10 -0
- package/dist/shortcuts/invoice/continuation.js +2 -1
- package/dist/shortcuts/invoice/index.js +14 -15
- package/dist/shortcuts/invoice/invoice-record.js +93 -0
- package/dist/shortcuts/invoice/manifest.js +190 -393
- package/dist/shortcuts/invoice/operations/add.js +2 -1
- package/dist/shortcuts/invoice/operations/delete.js +2 -1
- package/dist/shortcuts/invoice/operations/import.js +2 -1
- package/dist/shortcuts/invoice/operations/issuing-contract-detail.js +86 -0
- package/dist/shortcuts/invoice/operations/issuing-contracts.js +210 -0
- package/dist/shortcuts/invoice/operations/registry.js +17 -17
- package/dist/shortcuts/invoice/operations/reim-auto.js +4 -569
- package/dist/shortcuts/invoice/operations/reim.js +52 -341
- package/dist/shortcuts/invoice/operations/shared.js +21 -4
- package/dist/shortcuts/invoice/operations/update.js +2 -1
- package/dist/shortcuts/invoice/projection.js +10 -62
- package/dist/shortcuts/jiuchuanhui/continuation.js +2 -1
- package/dist/shortcuts/jiuchuanhui/index.js +2 -0
- package/dist/shortcuts/jiuchuanhui/operations/datajson.js +2 -1
- package/dist/shortcuts/jiuchuanhui/operations/esb.js +2 -1
- package/dist/shortcuts/mail/continuation.js +2 -1
- package/dist/shortcuts/mail/index.js +2 -0
- package/dist/shortcuts/mail/operations/mail-blacklist.js +1 -1
- package/dist/shortcuts/mail/operations/mail-contacts.js +1 -1
- package/dist/shortcuts/mail/operations/mail-send.js +1 -1
- package/dist/shortcuts/mail/operations/mail-sign.js +1 -1
- package/dist/shortcuts/mail/operations/mail-template.js +1 -1
- package/dist/shortcuts/meeting/continuation.js +2 -1
- package/dist/shortcuts/meeting/index.js +2 -0
- package/dist/shortcuts/meeting/operations/change.js +1 -1
- package/dist/shortcuts/meeting/operations/create.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/catalog.js +4 -1
- package/dist/shortcuts/meeting/operations/eb/create-flow.js +101 -35
- package/dist/shortcuts/meeting/operations/eb/decision.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/factory.js +34 -1
- package/dist/shortcuts/meeting/operations/eb/group-chat.js +25 -3
- package/dist/shortcuts/meeting/operations/eb/person-cache.js +96 -0
- package/dist/shortcuts/meeting/operations/eb/room-recommend.js +33 -11
- package/dist/shortcuts/meeting/operations/lifecycle.js +1 -1
- package/dist/shortcuts/meeting/operations/receipts.js +1 -1
- package/dist/shortcuts/meeting/operations/signs.js +1 -1
- package/dist/shortcuts/okr/continuation.js +2 -1
- package/dist/shortcuts/okr/index.js +2 -0
- package/dist/shortcuts/okr/operations/write.js +1 -1
- package/dist/shortcuts/plan/continuation.js +2 -1
- package/dist/shortcuts/plan/index.js +2 -0
- package/dist/shortcuts/plan/operations/write.js +1 -1
- package/dist/shortcuts/project/continuation.js +2 -1
- package/dist/shortcuts/project/index.js +2 -0
- package/dist/shortcuts/project/operations/read.js +6 -25
- package/dist/shortcuts/project/operations/shared.js +22 -0
- package/dist/shortcuts/project/operations/write.js +28 -2
- package/dist/shortcuts/reception/constants.js +53 -0
- package/dist/shortcuts/reception/errors.js +54 -0
- package/dist/shortcuts/reception/host.js +125 -0
- package/dist/shortcuts/reception/index.js +198 -0
- package/dist/shortcuts/reception/manifest.js +177 -0
- package/dist/shortcuts/reception/operations/ask.js +71 -0
- package/dist/shortcuts/reception/operations/browsertool.js +58 -0
- package/dist/shortcuts/reception/operations/compose.js +129 -0
- package/dist/shortcuts/reception/operations/customparams.js +74 -0
- package/dist/shortcuts/reception/operations/doc.js +238 -0
- package/dist/shortcuts/reception/operations/docrender.js +36 -0
- package/dist/shortcuts/reception/operations/panels.js +179 -0
- package/dist/shortcuts/reception/operations/registry.js +26 -0
- package/dist/shortcuts/reception/operations/render-assets.js +184 -0
- package/dist/shortcuts/reception/operations/render.js +123 -0
- package/dist/shortcuts/reception/operations/runs.js +38 -0
- package/dist/shortcuts/reception/operations/schedule.js +127 -0
- package/dist/shortcuts/reception/operations/shared.js +196 -0
- package/dist/shortcuts/reception/operations/snapshot.js +68 -0
- package/dist/shortcuts/reception/operations/types.js +1 -0
- package/dist/shortcuts/reception/operations.js +33 -0
- package/dist/shortcuts/reception/upload.js +218 -0
- package/dist/shortcuts/recruit-stage/context.js +231 -0
- package/dist/shortcuts/recruit-stage/continuation.js +74 -0
- package/dist/shortcuts/recruit-stage/errors.js +65 -0
- package/dist/shortcuts/recruit-stage/host.js +109 -0
- package/dist/shortcuts/recruit-stage/index.js +115 -0
- package/dist/shortcuts/recruit-stage/manifest.js +29 -0
- package/dist/shortcuts/recruit-stage/operations/interview-arrange.js +722 -0
- package/dist/shortcuts/recruit-stage/operations/interview-feedback.js +269 -0
- package/dist/shortcuts/recruit-stage/operations/jd-create.js +719 -0
- package/dist/shortcuts/recruit-stage/operations/list.js +431 -0
- package/dist/shortcuts/recruit-stage/operations/registry.js +38 -0
- package/dist/shortcuts/recruit-stage/operations/resume-import.js +1354 -0
- package/dist/shortcuts/recruit-stage/operations/search.js +158 -0
- package/dist/shortcuts/recruit-stage/operations/types.js +25 -0
- package/dist/shortcuts/recruit-stage/school-tiers.json +318 -0
- package/dist/shortcuts/recruit-stage/shared.js +608 -0
- package/dist/shortcuts/workflow/continuation.js +2 -1
- package/dist/shortcuts/workflow/index.js +2 -0
- package/dist/shortcuts/workflow/operations/form.js +32 -8
- package/dist/shortcuts/workflow/operations/todoSmartConvert/detailFieldRules.js +4 -2
- package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +13 -6
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailCache.js +17 -24
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailFetcher.js +14 -9
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +50 -8
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +2 -1
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.detail.js +17 -11
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +7 -39
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.groupSummary.js +3 -2
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +51 -15
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.pipeline.js +16 -1
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.smartGroup.js +151 -63
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.subGroup.js +56 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +39 -14
- package/dist/shortcuts/workflow/operations/write.js +1 -1
- package/docs/_catalog.md +3 -0
- package/docs/agent-invoice.md +1 -1
- package/docs/archive-oa.md +1 -1
- package/docs/caizhilian.md +1 -1
- package/docs/calendar.md +1 -1
- package/docs/contract.md +1 -1
- package/docs/e10-auth.md +23 -1
- package/docs/ehr.md +2 -2
- package/docs/esb.md +1 -1
- package/docs/im.md +1 -1
- package/docs/invoice.md +8 -12
- package/docs/okr.md +1 -1
- package/docs/operation-manual.md +8 -0
- package/docs/reception.md +119 -0
- package/package.json +1 -1
- package/scripts/clean.mjs +43 -2
- package/scripts/install-skill-to-xiaoe.mjs +105 -0
- package/scripts/package-skill.mjs +4 -2
- package/skill-template/business-info.json +42 -2
- package/skill-template/domains/caizhilian.md +1 -1
- package/skill-template/domains/reception-flow.md +18 -0
- package/skill-template/domains/recruit-stage.md +29 -0
- package/skill-template/domains/yepiaotong.md +4 -7
- package/skills/weaver-e10-archive-oa/references/source-manifest.json +14 -14
- package/skills/weaver-e10-blog/references/blog-publish.md +1 -1
- package/skills/weaver-e10-blog/references/source-manifest.json +7 -7
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +21 -21
- package/skills/weaver-e10-caizhilian/references/write-protocol.md +2 -2
- package/skills/weaver-e10-calendar/SKILL.md +2 -1
- package/skills/weaver-e10-calendar/references/calendar-write.md +55 -1
- package/skills/weaver-e10-cowork/SKILL.md +1 -1
- package/skills/weaver-e10-cowork/references/cowork-write.md +3 -1
- package/skills/weaver-e10-ebuilder-form/SKILL.md +1 -1
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -1
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -1
- package/skills/weaver-e10-esb/SKILL.md +2 -2
- package/skills/weaver-e10-esb/references/source-manifest.json +22 -22
- package/skills/weaver-e10-esb/references/trigger.md +2 -2
- package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +1 -1
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +1 -1
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +1 -1
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +29 -29
- package/skills/weaver-e10-jucailin/SKILL.md +1 -1
- package/skills/weaver-e10-jucailin/references/attend-write.md +10 -2
- package/skills/weaver-e10-jucailin/references/hr-contact.md +8 -0
- package/skills/weaver-e10-jucailin/references/hr-report.md +8 -0
- package/skills/weaver-e10-jucailin/references/recruit-create.md +14 -5
- package/skills/weaver-e10-jucailin/references/recruit-read.md +1 -1
- package/skills/weaver-e10-jucailin/references/recruit-write.md +5 -4
- package/skills/weaver-e10-mail/SKILL.md +1 -1
- package/skills/weaver-e10-meeting/SKILL.md +39 -7
- package/skills/weaver-e10-meeting/references/meeting-change.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-create.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +1 -1
- package/skills/weaver-e10-meeting/references/meeting-verification.md +1 -1
- package/skills/weaver-e10-okr/references/okr-align.md +1 -1
- package/skills/weaver-e10-okr/references/okr-keyresult.md +1 -1
- package/skills/weaver-e10-okr/references/okr-write.md +1 -1
- package/skills/weaver-e10-okr/references/source-manifest.json +8 -8
- package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
- package/skills/weaver-e10-qiyecheng/references/loan-management.md +1 -1
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +18 -18
- package/skills/weaver-e10-reception-flow/SKILL.md +173 -0
- package/skills/weaver-e10-reception-flow/assets//350/241/214/347/250/213/345/215/225/346/250/241/346/235/277-/346/263/233/345/276/256.docx +0 -0
- package/skills/weaver-e10-reception-flow/data/fields-snapshot.json +213 -0
- package/skills/weaver-e10-reception-flow/references/browsertool.md +68 -0
- package/skills/weaver-e10-reception-flow/references/env-pitfalls.md +51 -0
- package/skills/weaver-e10-reception-flow/references/fields-snapshot.md +227 -0
- package/skills/weaver-e10-reception-flow/references/guide.md +179 -0
- package/skills/weaver-e10-reception-flow/scripts/locate.sh +14 -0
- package/skills/weaver-e10-reception-flow/scripts/render.py +724 -0
- package/skills/weaver-e10-recruit-stage/SKILL.md +230 -0
- package/skills/weaver-e10-recruit-stage/agents/openai.yaml +119 -0
- package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +188 -0
- package/skills/weaver-e10-recruit-stage/lib/xiaoe-session.mjs +66 -0
- package/skills/weaver-e10-recruit-stage/references/position-templates.md +202 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-arrange-interview.md +322 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-capability-check.md +127 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-check-install.md +65 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-detail-process.md +63 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-edit-interview-feedback.md +142 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-jd-create.md +95 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-jd-template.md +56 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-list-candidate.md +101 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-list-interview.md +148 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-match-candidates.md +77 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-output-links.md +59 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resolve-creator.md +69 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resolve-metadata.md +241 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +451 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resume-parse.md +128 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-search-candidate.md +146 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-urge-feedback.md +69 -0
- package/skills/weaver-e10-shared/SKILL.md +1 -1
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +10 -2
- package/skills/weaver-e10-shijingran/SKILL.md +7 -6
- package/skills/weaver-e10-shijingran/references/operations.md +3 -1
- package/skills/weaver-e10-shijingran/references/source-manifest.json +30 -28
- package/skills/weaver-e10-shijingran/references/write-operations.md +2 -0
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +2 -0
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
- package/skills/weaver-e10-workflow/SKILL.md +4 -2
- package/skills/weaver-e10-workflow/aigroup/default.json +11 -9
- package/skills/weaver-e10-workflow/references/source-manifest.json +32 -32
- package/skills/weaver-e10-workflow/references/todo-smart-convert.md +23 -13
- package/skills/weaver-e10-workflow/tools/todo-summary.cjs +62 -20
- package/skills/weaver-e10-yepiaotong/SKILL.md +28 -36
- package/skills/weaver-e10-yepiaotong/references/invoice-agent-entry.md +6 -3
- package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +13 -10
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +2 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +194 -155
- package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +28 -32
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +5 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +8 -10
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +211 -616
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +149 -117
- package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +17 -20
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +20 -39
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +55 -22
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -17
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +88 -92
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +144 -354
- package/skills/weaver-e10-yimiaoban/SKILL.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/msg-write.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +1 -1
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +7 -7
- package/dist/chunks/chunk-SPRHHSVC.js +0 -465
- package/dist/chunks/registry-KMHCPAAD.js +0 -22
- package/dist/shortcuts/invoice/markdown.js +0 -172
- package/dist/shortcuts/invoice/operations/issuing-qys.js +0 -424
- package/skills/weaver-e10-meeting.zip +0 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +0 -131
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +0 -179
|
@@ -2,13 +2,13 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
|
2
2
|
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
meetingStateDir
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GAMZLAG2.js";
|
|
6
6
|
import {
|
|
7
7
|
SCHEMA_ID,
|
|
8
8
|
meetingSuccess,
|
|
9
9
|
meetingValidationError,
|
|
10
10
|
schemaOf
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QVSWRLLU.js";
|
|
12
12
|
|
|
13
13
|
// src/shortcuts/meeting/operations/attachment-content.ts
|
|
14
14
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
@@ -2,7 +2,7 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
|
2
2
|
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
hrmValidationError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-56EZERK4.js";
|
|
6
6
|
|
|
7
7
|
// src/shortcuts/hrm/operations/types.ts
|
|
8
8
|
var READ = "read";
|
|
@@ -3,18 +3,173 @@ const require = __esbuildCreateRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
E10AuthSession,
|
|
5
5
|
E10_AUTH_REQUIRED_MESSAGE,
|
|
6
|
+
E10_XIAOE_HOST_CREDENTIAL_MISSING_MESSAGE,
|
|
7
|
+
E10_XIAOE_NETWORK_UNAVAILABLE_MESSAGE,
|
|
6
8
|
E10_XIAOE_RECOVERY_FAILED_MESSAGE,
|
|
7
9
|
getActiveProfile,
|
|
10
|
+
getE10AuthRoot,
|
|
8
11
|
hasXiaoEEnv,
|
|
9
12
|
isXiaoERuntimeAgent,
|
|
13
|
+
lastXiaoEFailure,
|
|
14
|
+
readErrorCauseCode,
|
|
10
15
|
readProfileConfig,
|
|
11
16
|
resolveXiaoEPreferredBaseUrl,
|
|
12
17
|
startFetchTiming,
|
|
18
|
+
summarizeXiaoEFailureKind,
|
|
13
19
|
tryXiaoEUnifiedLogin
|
|
14
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UFIT2UU3.js";
|
|
15
21
|
import {
|
|
16
|
-
CliError
|
|
17
|
-
|
|
22
|
+
CliError,
|
|
23
|
+
toErrorEnvelope
|
|
24
|
+
} from "./chunk-UG5G54VL.js";
|
|
25
|
+
|
|
26
|
+
// src/internal/e10/auth/error-log.ts
|
|
27
|
+
import { randomUUID } from "node:crypto";
|
|
28
|
+
import { appendFile, chmod, mkdir, readFile, unlink } from "node:fs/promises";
|
|
29
|
+
import { dirname, resolve } from "node:path";
|
|
30
|
+
var XIAOE_AUTH_ERROR_LOG_NAME = "xiaoe-auth-errors.ndjson";
|
|
31
|
+
var DEFAULT_LOG_LIMIT = 50;
|
|
32
|
+
var MAX_XIAOE_AUTH_ERROR_LOG_LIMIT = 500;
|
|
33
|
+
function getXiaoEAuthErrorLogPath() {
|
|
34
|
+
return resolve(getE10AuthRoot(), "logs", XIAOE_AUTH_ERROR_LOG_NAME);
|
|
35
|
+
}
|
|
36
|
+
function xiaoEAuthLogSecrets(env) {
|
|
37
|
+
return Object.entries(env).filter(([key, value]) => Boolean(
|
|
38
|
+
value && (key.startsWith("XIAOE_") || key.startsWith("WEAVER_XIAOE_")) && /(?:TOKEN|AUTH|ETEAMSID|COOKIE|SESSION|SECRET|PASSWORD)/iu.test(key)
|
|
39
|
+
)).map(([, value]) => value);
|
|
40
|
+
}
|
|
41
|
+
function redactSensitiveText(value, secrets = []) {
|
|
42
|
+
let text = value;
|
|
43
|
+
for (const secret of secrets) {
|
|
44
|
+
if (secret && secret.length >= 6) text = text.split(secret).join("<redacted>");
|
|
45
|
+
}
|
|
46
|
+
return text.replace(/(https?:\/\/[^\s?#]+)\?[^\s#]*/giu, "$1?<redacted>").replace(/\b(Bearer\s+)[A-Za-z0-9._~+/=-]+/giu, "$1<redacted>").replace(
|
|
47
|
+
/((?:eteamsid|access[_-]?token|refresh[_-]?token|auth(?:orization)?|cookie|session[_-]?id|secret|password)\s*[:=]\s*)(["']?)[^\s,;}"']+/giu,
|
|
48
|
+
"$1$2<redacted>"
|
|
49
|
+
).replace(
|
|
50
|
+
/(["'](?:eteamsid|access[_-]?token|refresh[_-]?token|authorization|cookie|session[_-]?id|secret|password)["']\s*:\s*["'])[^"']*(["'])/giu,
|
|
51
|
+
"$1<redacted>$2"
|
|
52
|
+
).replace(/\b[A-Za-z0-9_-]{48,}\b/gu, "<redacted>");
|
|
53
|
+
}
|
|
54
|
+
function sanitizeBaseUrl(value, secrets) {
|
|
55
|
+
if (!value) return void 0;
|
|
56
|
+
try {
|
|
57
|
+
const url = new URL(value);
|
|
58
|
+
url.username = "";
|
|
59
|
+
url.password = "";
|
|
60
|
+
url.search = "";
|
|
61
|
+
url.hash = "";
|
|
62
|
+
return redactSensitiveText(url.toString().replace(/\/$/u, ""), secrets);
|
|
63
|
+
} catch {
|
|
64
|
+
return redactSensitiveText(value, secrets);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function sanitizeFailure(failure, secrets) {
|
|
68
|
+
return {
|
|
69
|
+
stage: failure.stage,
|
|
70
|
+
kind: failure.kind,
|
|
71
|
+
message: redactSensitiveText(failure.message, secrets),
|
|
72
|
+
...failure.causeCode ? { causeCode: redactSensitiveText(failure.causeCode, secrets) } : {},
|
|
73
|
+
...failure.httpStatus === void 0 ? {} : { httpStatus: failure.httpStatus }
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function sanitizeError(error, secrets) {
|
|
77
|
+
if (error === void 0) return void 0;
|
|
78
|
+
const envelope = toErrorEnvelope(error);
|
|
79
|
+
return {
|
|
80
|
+
...envelope,
|
|
81
|
+
message: redactSensitiveText(envelope.message, secrets),
|
|
82
|
+
// Error details can contain arbitrary server payloads. The normalized
|
|
83
|
+
// diagnostics fields above are the only details persisted to disk.
|
|
84
|
+
...envelope.details === void 0 ? {} : { details: "<omitted from persistent auth log>" }
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function createEntry(input) {
|
|
88
|
+
const secrets = input.secrets || [];
|
|
89
|
+
const diagnostics = input.diagnostics;
|
|
90
|
+
const baseUrl = sanitizeBaseUrl(input.baseUrl || diagnostics?.baseUrl, secrets);
|
|
91
|
+
const lastError = diagnostics?.lastError ? redactSensitiveText(diagnostics.lastError, secrets) : void 0;
|
|
92
|
+
const failures = diagnostics?.failures?.map((failure) => sanitizeFailure(failure, secrets));
|
|
93
|
+
const error = sanitizeError(input.error, secrets);
|
|
94
|
+
return {
|
|
95
|
+
schemaVersion: 1,
|
|
96
|
+
id: randomUUID(),
|
|
97
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
98
|
+
source: input.source,
|
|
99
|
+
...input.profile ? { profile: redactSensitiveText(input.profile, secrets) } : {},
|
|
100
|
+
...baseUrl ? { baseUrl } : {},
|
|
101
|
+
...diagnostics?.clientType ? { clientType: diagnostics.clientType } : {},
|
|
102
|
+
...diagnostics?.platformCredentialDetected === void 0 ? {} : { platformCredentialDetected: diagnostics.platformCredentialDetected },
|
|
103
|
+
attemptedSteps: (diagnostics?.attemptedSteps || []).map((step) => redactSensitiveText(step, secrets)),
|
|
104
|
+
...lastError ? { lastError } : {},
|
|
105
|
+
...failures?.length ? { failures } : {},
|
|
106
|
+
...input.resultSessionExpired ? { resultSessionExpired: true } : {},
|
|
107
|
+
...error ? { error } : {}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
async function appendXiaoEAuthErrorLog(input) {
|
|
111
|
+
const path = getXiaoEAuthErrorLogPath();
|
|
112
|
+
await mkdir(dirname(path), { recursive: true, mode: 448 });
|
|
113
|
+
await chmod(dirname(path), 448).catch(() => void 0);
|
|
114
|
+
const entry = createEntry(input);
|
|
115
|
+
await appendFile(path, `${JSON.stringify(entry)}
|
|
116
|
+
`, { encoding: "utf8", mode: 384 });
|
|
117
|
+
await chmod(path, 384).catch(() => void 0);
|
|
118
|
+
return entry;
|
|
119
|
+
}
|
|
120
|
+
function isLogEntry(value) {
|
|
121
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
122
|
+
const candidate = value;
|
|
123
|
+
return candidate.schemaVersion === 1 && typeof candidate.id === "string" && typeof candidate.timestamp === "string" && (candidate.source === "login" || candidate.source === "recovery") && Array.isArray(candidate.attemptedSteps);
|
|
124
|
+
}
|
|
125
|
+
function normalizeXiaoEAuthErrorLogLimit(value) {
|
|
126
|
+
if (value === void 0 || value === null || value === "") return DEFAULT_LOG_LIMIT;
|
|
127
|
+
const limit = Number(value);
|
|
128
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > MAX_XIAOE_AUTH_ERROR_LOG_LIMIT) {
|
|
129
|
+
throw new RangeError(`limit must be an integer between 1 and ${MAX_XIAOE_AUTH_ERROR_LOG_LIMIT}`);
|
|
130
|
+
}
|
|
131
|
+
return limit;
|
|
132
|
+
}
|
|
133
|
+
async function readXiaoEAuthErrorLog(limit = DEFAULT_LOG_LIMIT) {
|
|
134
|
+
const normalizedLimit = normalizeXiaoEAuthErrorLogLimit(limit);
|
|
135
|
+
const path = getXiaoEAuthErrorLogPath();
|
|
136
|
+
let content = "";
|
|
137
|
+
try {
|
|
138
|
+
content = await readFile(path, "utf8");
|
|
139
|
+
} catch (error) {
|
|
140
|
+
if (error?.code !== "ENOENT") throw error;
|
|
141
|
+
}
|
|
142
|
+
let invalidLines = 0;
|
|
143
|
+
const entries = [];
|
|
144
|
+
for (const line of content.split(/\r?\n/u)) {
|
|
145
|
+
if (!line.trim()) continue;
|
|
146
|
+
try {
|
|
147
|
+
const value = JSON.parse(line);
|
|
148
|
+
if (isLogEntry(value)) entries.push(value);
|
|
149
|
+
else invalidLines += 1;
|
|
150
|
+
} catch {
|
|
151
|
+
invalidLines += 1;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const recent = entries.slice(-normalizedLimit).reverse();
|
|
155
|
+
return {
|
|
156
|
+
path,
|
|
157
|
+
total: entries.length,
|
|
158
|
+
returned: recent.length,
|
|
159
|
+
invalidLines,
|
|
160
|
+
entries: recent
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
async function clearXiaoEAuthErrorLog() {
|
|
164
|
+
const path = getXiaoEAuthErrorLogPath();
|
|
165
|
+
try {
|
|
166
|
+
await unlink(path);
|
|
167
|
+
return { path, cleared: true };
|
|
168
|
+
} catch (error) {
|
|
169
|
+
if (error?.code === "ENOENT") return { path, cleared: false };
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
18
173
|
|
|
19
174
|
// src/internal/e10/auth-recovery.ts
|
|
20
175
|
var AUTH_REQUIRED_CODES = /* @__PURE__ */ new Set(["-2", "401"]);
|
|
@@ -165,8 +320,31 @@ function canAutomaticallyRecoverXiaoE(ctx, currentSession) {
|
|
|
165
320
|
if (options.auth) return false;
|
|
166
321
|
return hasXiaoEEnv(ctx.env || process.env, options) || currentSession?.loginSource === "xiaoe-unified" || isXiaoERuntimeAgent(currentSession?.agentType);
|
|
167
322
|
}
|
|
323
|
+
function recoveryLogger(ctx) {
|
|
324
|
+
const options = globalOptions(ctx);
|
|
325
|
+
if (options.json || options.quiet || options.verbose !== true) return void 0;
|
|
326
|
+
const adapter = ctx.logger;
|
|
327
|
+
if (!adapter || typeof adapter.debug !== "function") return void 0;
|
|
328
|
+
return {
|
|
329
|
+
info: (message) => adapter.debug(message),
|
|
330
|
+
warn: (message) => adapter.debug(message)
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
function reportAuthLogWriteFailure(ctx, error) {
|
|
334
|
+
const logger = ctx.logger;
|
|
335
|
+
logger?.debug?.(
|
|
336
|
+
`Could not persist XiaoE auth error log: ${error instanceof Error ? error.message : String(error)}`
|
|
337
|
+
);
|
|
338
|
+
}
|
|
168
339
|
async function recoverXiaoEAuthSession(ctx, currentSession) {
|
|
169
|
-
|
|
340
|
+
return (await recoverXiaoEAuthSessionWithDiagnostics(ctx, currentSession)).session;
|
|
341
|
+
}
|
|
342
|
+
async function recoverXiaoEAuthSessionWithDiagnostics(ctx, currentSession) {
|
|
343
|
+
const emptyOutcome = () => ({
|
|
344
|
+
session: null,
|
|
345
|
+
diagnostics: { attemptedSteps: [] }
|
|
346
|
+
});
|
|
347
|
+
if (!canAutomaticallyRecoverXiaoE(ctx, currentSession)) return emptyOutcome();
|
|
170
348
|
const options = globalOptions(ctx);
|
|
171
349
|
const profile = options.profile || getActiveProfile();
|
|
172
350
|
const config = readProfileConfig(profile);
|
|
@@ -179,19 +357,41 @@ async function recoverXiaoEAuthSession(ctx, currentSession) {
|
|
|
179
357
|
${baseUrl}`;
|
|
180
358
|
const existing = recoveryInFlight.get(key);
|
|
181
359
|
if (existing) return existing;
|
|
360
|
+
const diagnostics = { attemptedSteps: [] };
|
|
182
361
|
const recovery = (async () => {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
362
|
+
try {
|
|
363
|
+
const login = await tryXiaoEUnifiedLogin({
|
|
364
|
+
env: ctx.env,
|
|
365
|
+
baseUrl,
|
|
366
|
+
profileBaseUrl: baseUrl,
|
|
367
|
+
allowBundledEnvScript: true,
|
|
368
|
+
allowTokenScript: true,
|
|
369
|
+
tenantKeyFallback: currentSession?.tenantKey || config.tenantKey,
|
|
370
|
+
profileHint: profile,
|
|
371
|
+
diagnostics,
|
|
372
|
+
logger: recoveryLogger(ctx)
|
|
373
|
+
});
|
|
374
|
+
if (!login) {
|
|
375
|
+
await appendXiaoEAuthErrorLog({
|
|
376
|
+
source: "recovery",
|
|
377
|
+
profile,
|
|
378
|
+
baseUrl,
|
|
379
|
+
diagnostics,
|
|
380
|
+
secrets: xiaoEAuthLogSecrets(ctx.env)
|
|
381
|
+
}).catch((error) => reportAuthLogWriteFailure(ctx, error));
|
|
382
|
+
}
|
|
383
|
+
return { session: login?.session || null, diagnostics };
|
|
384
|
+
} catch (error) {
|
|
385
|
+
await appendXiaoEAuthErrorLog({
|
|
386
|
+
source: "recovery",
|
|
387
|
+
profile,
|
|
388
|
+
baseUrl,
|
|
389
|
+
diagnostics,
|
|
390
|
+
error,
|
|
391
|
+
secrets: xiaoEAuthLogSecrets(ctx.env)
|
|
392
|
+
}).catch((logError) => reportAuthLogWriteFailure(ctx, logError));
|
|
393
|
+
throw error;
|
|
394
|
+
}
|
|
195
395
|
})();
|
|
196
396
|
recoveryInFlight.set(key, recovery);
|
|
197
397
|
try {
|
|
@@ -208,28 +408,70 @@ function sameE10SessionIdentity(current, recovered) {
|
|
|
208
408
|
}
|
|
209
409
|
|
|
210
410
|
// src/internal/e10/context.ts
|
|
211
|
-
function xiaoERecoveryFailedError() {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
411
|
+
function xiaoERecoveryFailedError(diagnostics, resultSessionExpired = false) {
|
|
412
|
+
const failureKind = summarizeXiaoEFailureKind(diagnostics);
|
|
413
|
+
const lastFailure = lastXiaoEFailure(diagnostics);
|
|
414
|
+
const networkUnavailable = failureKind === "network";
|
|
415
|
+
const hostCredentialMissing = diagnostics?.clientType === "cloud" && diagnostics.platformCredentialDetected === false && diagnostics.attemptedSteps.includes("platform_token:missing") && diagnostics.attemptedSteps.includes("environment_map:empty");
|
|
416
|
+
const details = diagnostics ? {
|
|
417
|
+
...diagnostics.baseUrl ? { baseUrl: diagnostics.baseUrl } : {},
|
|
418
|
+
...diagnostics.clientType ? { clientType: diagnostics.clientType } : {},
|
|
419
|
+
...diagnostics.platformCredentialDetected === void 0 ? {} : { platformCredentialDetected: diagnostics.platformCredentialDetected },
|
|
420
|
+
attemptedSteps: diagnostics.attemptedSteps,
|
|
421
|
+
...diagnostics.lastError ? { lastError: diagnostics.lastError } : {},
|
|
422
|
+
...failureKind ? { errorKind: failureKind } : {},
|
|
423
|
+
...lastFailure ? { failureStage: lastFailure.stage } : {},
|
|
424
|
+
...diagnostics.failures?.length ? { failures: diagnostics.failures } : {},
|
|
425
|
+
...hostCredentialMissing ? { reason: "host_credential_not_injected" } : {},
|
|
426
|
+
...resultSessionExpired ? { resultSessionExpired: true } : {}
|
|
427
|
+
} : void 0;
|
|
428
|
+
return Object.assign(
|
|
429
|
+
new CliError(
|
|
430
|
+
networkUnavailable ? E10_XIAOE_NETWORK_UNAVAILABLE_MESSAGE : hostCredentialMissing ? E10_XIAOE_HOST_CREDENTIAL_MISSING_MESSAGE : E10_XIAOE_RECOVERY_FAILED_MESSAGE,
|
|
431
|
+
3 /* AuthError */
|
|
432
|
+
),
|
|
433
|
+
{
|
|
434
|
+
type: "authentication",
|
|
435
|
+
subtype: networkUnavailable ? "xiaoe_network_unavailable" : "xiaoe_credential_unavailable",
|
|
436
|
+
// 网络错误是可重试的;凭证缺失/被拒重试也一样失败,不能让调用方空转。
|
|
437
|
+
retryable: networkUnavailable,
|
|
438
|
+
stage: lastFailure?.stage || "xiaoe_unified_login",
|
|
439
|
+
...details ? { details } : {}
|
|
440
|
+
}
|
|
441
|
+
);
|
|
218
442
|
}
|
|
219
443
|
async function getE10Session(ctx, load = {}) {
|
|
220
444
|
const options = ctx.getGlobalOptions();
|
|
221
445
|
return E10AuthSession.fromOptions(options, ctx.cwd, load);
|
|
222
446
|
}
|
|
223
447
|
async function requireE10Session(ctx, load = {}) {
|
|
448
|
+
const options = ctx.getGlobalOptions();
|
|
224
449
|
let session = await getE10Session(ctx, load);
|
|
225
450
|
if (session?.isExpired() && canAutomaticallyRecoverXiaoE(ctx, session)) {
|
|
226
|
-
|
|
227
|
-
|
|
451
|
+
const outcome = await recoverXiaoEAuthSessionWithDiagnostics(ctx, session).catch(() => null);
|
|
452
|
+
session = outcome?.session || null;
|
|
453
|
+
if (!session || session.isExpired()) {
|
|
454
|
+
const resultSessionExpired = session?.isExpired() === true;
|
|
455
|
+
const error = xiaoERecoveryFailedError(outcome?.diagnostics, resultSessionExpired);
|
|
456
|
+
if (resultSessionExpired) {
|
|
457
|
+
await appendXiaoEAuthErrorLog({
|
|
458
|
+
source: "recovery",
|
|
459
|
+
profile: options.profile || getActiveProfile(),
|
|
460
|
+
baseUrl: session?.getBaseUrl(),
|
|
461
|
+
diagnostics: outcome?.diagnostics,
|
|
462
|
+
resultSessionExpired: true,
|
|
463
|
+
error,
|
|
464
|
+
secrets: xiaoEAuthLogSecrets(ctx.env)
|
|
465
|
+
}).catch(() => void 0);
|
|
466
|
+
}
|
|
467
|
+
throw error;
|
|
468
|
+
}
|
|
228
469
|
}
|
|
229
470
|
if (!session && canAutomaticallyRecoverXiaoE(ctx)) {
|
|
230
|
-
|
|
471
|
+
const outcome = await recoverXiaoEAuthSessionWithDiagnostics(ctx).catch(() => null);
|
|
472
|
+
session = outcome?.session || null;
|
|
231
473
|
if (!session) {
|
|
232
|
-
throw xiaoERecoveryFailedError();
|
|
474
|
+
throw xiaoERecoveryFailedError(outcome?.diagnostics);
|
|
233
475
|
}
|
|
234
476
|
}
|
|
235
477
|
if (!session) {
|
|
@@ -540,13 +782,16 @@ var E10RequestRuntime = class {
|
|
|
540
782
|
if (error instanceof Error && error.name === "AbortError") {
|
|
541
783
|
throw new E10ApiError("network", "timeout", `\u8BF7\u6C42\u8D85\u65F6\uFF08${timeoutMs}ms\uFF09`, {
|
|
542
784
|
retryable: false,
|
|
543
|
-
exitCode: 4 /* NetworkError
|
|
785
|
+
exitCode: 4 /* NetworkError */,
|
|
786
|
+
details: { timeoutMs }
|
|
544
787
|
});
|
|
545
788
|
}
|
|
546
789
|
const message = error instanceof Error ? error.message : String(error);
|
|
790
|
+
const causeCode = readErrorCauseCode(error);
|
|
547
791
|
throw new E10ApiError("network", "transport", `\u8BF7\u6C42\u5931\u8D25\uFF1A${message}`, {
|
|
548
792
|
retryable: true,
|
|
549
|
-
exitCode: 4 /* NetworkError
|
|
793
|
+
exitCode: 4 /* NetworkError */,
|
|
794
|
+
...causeCode ? { details: { causeCode } } : {}
|
|
550
795
|
});
|
|
551
796
|
} finally {
|
|
552
797
|
clearTimeout(timer);
|
|
@@ -706,8 +951,15 @@ function cloneForHook(value) {
|
|
|
706
951
|
}
|
|
707
952
|
|
|
708
953
|
export {
|
|
954
|
+
getXiaoEAuthErrorLogPath,
|
|
955
|
+
xiaoEAuthLogSecrets,
|
|
956
|
+
appendXiaoEAuthErrorLog,
|
|
957
|
+
normalizeXiaoEAuthErrorLogLimit,
|
|
958
|
+
readXiaoEAuthErrorLog,
|
|
959
|
+
clearXiaoEAuthErrorLog,
|
|
709
960
|
isE10SessionExpiredResponse,
|
|
710
961
|
isE10AuthenticationRequired,
|
|
962
|
+
getE10Session,
|
|
711
963
|
requireE10Session,
|
|
712
964
|
E10ApiError,
|
|
713
965
|
createE10RequestRuntime
|
|
@@ -8,17 +8,17 @@ import {
|
|
|
8
8
|
esbPermissionError,
|
|
9
9
|
esbValidationError,
|
|
10
10
|
esbWriteUncertain
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TXUG266F.js";
|
|
12
12
|
import {
|
|
13
13
|
E10ApiError,
|
|
14
14
|
createE10RequestRuntime,
|
|
15
15
|
isE10SessionExpiredResponse,
|
|
16
16
|
requireE10Session
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-ETNJSKMM.js";
|
|
18
18
|
import {
|
|
19
19
|
E10_SESSION_EXPIRED_MESSAGE,
|
|
20
20
|
getActiveProfile
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-UFIT2UU3.js";
|
|
22
22
|
|
|
23
23
|
// src/shortcuts/esb/host.ts
|
|
24
24
|
var ESB_PATHS = {
|
|
@@ -3,13 +3,13 @@ const require = __esbuildCreateRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
readCache,
|
|
5
5
|
writeCache
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Z7VYWPZV.js";
|
|
7
7
|
import {
|
|
8
8
|
SCHEMA_DATETIME_MINUTE,
|
|
9
9
|
meetingSuccess,
|
|
10
10
|
meetingValidationError,
|
|
11
11
|
schemaOf
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QVSWRLLU.js";
|
|
13
13
|
|
|
14
14
|
// src/shortcuts/meeting/operations/eb/schedule.ts
|
|
15
15
|
var SCHEDULE_TYPE_PATH = "/api/ebuilder/form/formdata/v2/getFormDataList/queryAgendaType";
|
|
@@ -110,9 +110,9 @@ async function runScheduleConflictFlow(env, input) {
|
|
|
110
110
|
if (!employeeId) {
|
|
111
111
|
throw meetingValidationError("schedule_employee_required", "\u53D6\u4E0D\u5230\u5F53\u524D\u767B\u5F55\u7528\u6237 id\uFF0C\u65E0\u6CD5\u89E6\u53D1 ESB \u65E5\u7A0B\u67E5\u8BE2");
|
|
112
112
|
}
|
|
113
|
-
const { createEsbHost } = await import("./host-
|
|
114
|
-
const { createEsbContinuationSigner } = await import("./continuation-
|
|
115
|
-
const { getEsbOperation } = await import("./registry-
|
|
113
|
+
const { createEsbHost } = await import("./host-WIKN2EJ5.js");
|
|
114
|
+
const { createEsbContinuationSigner } = await import("./continuation-KI7DRRZN.js");
|
|
115
|
+
const { getEsbOperation } = await import("./registry-KNKSCJNT.js");
|
|
116
116
|
const esbEnv = {
|
|
117
117
|
ctx: env.ctx,
|
|
118
118
|
host: createEsbHost(env.ctx),
|
|
@@ -331,7 +331,7 @@ async function resolveMemberIdsByName(env, names) {
|
|
|
331
331
|
const unique = [...new Set(names)].filter((name) => name !== "");
|
|
332
332
|
if (unique.length === 0) return map;
|
|
333
333
|
try {
|
|
334
|
-
const { hrmEmployeeOperations } = await import("./employee-
|
|
334
|
+
const { hrmEmployeeOperations } = await import("./employee-22BGJ3QS.js");
|
|
335
335
|
const query = hrmEmployeeOperations.find((operation) => operation.name === "hrm.employee.query");
|
|
336
336
|
if (!query) return map;
|
|
337
337
|
for (const name of unique) {
|