weaver-work-cli 0.1.42 → 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-J4I6MCKF.js → archive-P6TBQGKL.js} +13 -5
- package/dist/chunks/{archive-oa-BRZKKTO4.js → archive-oa-7TQ2NXOH.js} +12 -5
- package/dist/chunks/{asset-L7D4FAOZ.js → asset-3ELRG37G.js} +11 -4
- package/dist/chunks/{asset-idle-DADLLV75.js → asset-idle-WIGMUFMD.js} +7 -3
- package/dist/chunks/{attachment-content-K4C7VLWQ.js → attachment-content-E3276UOV.js} +5 -4
- package/dist/chunks/{blog-BVGQ7NZL.js → blog-C5NMZAAC.js} +11 -4
- package/dist/chunks/{caizhilian-SAADNFD6.js → caizhilian-5XSM2DFP.js} +13 -6
- package/dist/chunks/{calendar-Q7NQY5Z2.js → calendar-FI2WNSBO.js} +12 -5
- package/dist/chunks/{chunk-YRSZQUD2.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-EKWAQSLU.js → chunk-BCVYBYYT.js} +432 -2248
- package/dist/chunks/{chunk-W7BEHOSR.js → chunk-CWYGFU5B.js} +2 -2
- package/dist/chunks/{chunk-NOODWMCL.js → chunk-D4ADSZ7H.js} +1 -1
- package/dist/chunks/{chunk-SA6VBIHY.js → chunk-ETNJSKMM.js} +214 -16
- package/dist/chunks/{chunk-BBKDXQEC.js → chunk-F4E4EM35.js} +3 -3
- package/dist/chunks/{chunk-IZ7S7QUS.js → chunk-FAZTGX7S.js} +6 -6
- package/dist/chunks/{chunk-NKZRQXST.js → chunk-FRZKBMSW.js} +52 -36
- package/dist/chunks/{chunk-BYBSCN4X.js → chunk-G7PQWD4L.js} +6 -3
- package/dist/chunks/{chunk-GEWYMQME.js → chunk-GAMZLAG2.js} +1 -1
- package/dist/chunks/{chunk-R4CHUSKC.js → chunk-GM6J7Q4B.js} +4 -4
- package/dist/chunks/{chunk-APVFJUQH.js → chunk-GRDRG6HP.js} +3 -3
- package/dist/chunks/{chunk-LDZQPUIA.js → chunk-HIT4Y6OI.js} +1 -1
- package/dist/chunks/{chunk-EZALDOQH.js → chunk-HP7JIYMT.js} +5 -2
- package/dist/chunks/{chunk-LADPYOWC.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-BIPYLLVS.js → chunk-N4M2DDFE.js} +15 -15
- package/dist/chunks/{chunk-QKNKR4RH.js → chunk-OF4S23UB.js} +4 -4
- package/dist/chunks/{chunk-JPRO6ER2.js → chunk-PC7VKEB5.js} +57 -60
- package/dist/chunks/{chunk-4PD5NWAX.js → chunk-PUQS5MWL.js} +2 -2
- package/dist/chunks/{chunk-2LV74IWP.js → chunk-Q4OYAQYH.js} +1 -1
- package/dist/chunks/{chunk-72CKAUAG.js → chunk-QVSWRLLU.js} +7 -5
- package/dist/chunks/{chunk-4RAE6JXP.js → chunk-TA7FXXJD.js} +6 -3
- package/dist/chunks/{chunk-GPMFD4RD.js → chunk-TXUG266F.js} +1 -1
- package/dist/chunks/{chunk-FOAA27U5.js → chunk-UFIT2UU3.js} +16 -4
- 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-G4UR6NXN.js → chunk-WSF4NNMR.js} +3 -3
- package/dist/chunks/chunk-XHK4MDR5.js +2497 -0
- package/dist/chunks/{chunk-3KTFS4IA.js → chunk-XNIK66I4.js} +19 -9
- 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-GHXCDPTM.js → chunk-Z7VYWPZV.js} +1 -1
- package/dist/chunks/{conflict-F2OMZRTO.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-5BETHRSG.js → contract-DNIIW5VJ.js} +13 -5
- package/dist/chunks/{cowork-3MN6EQQO.js → cowork-GMLRGVIW.js} +11 -4
- package/dist/chunks/{create-flow-5FQNNMVO.js → create-flow-J22BO65E.js} +8 -7
- package/dist/chunks/{ebuilder-form-SBHOYBUD.js → ebuilder-form-ANV2FHYV.js} +12 -7
- package/dist/chunks/{ehr-KMOJULKG.js → ehr-GSTGAIY3.js} +266 -24
- package/dist/chunks/{employee-SAK2QYXX.js → employee-22BGJ3QS.js} +3 -3
- package/dist/chunks/{env-LB7NBL2O.js → env-BX3VRFS7.js} +4 -3
- package/dist/chunks/{esb-W2PJCFCX.js → esb-ATAIASX2.js} +12 -7
- package/dist/chunks/{factory-6ZFQXQ46.js → factory-PETTFME6.js} +3 -2
- package/dist/chunks/{fna-ZQPCUV4R.js → fna-YEKBSFSX.js} +14 -8
- package/dist/chunks/{group-chat-2HHAJN46.js → group-chat-BFVXAYFX.js} +5 -4
- package/dist/chunks/{host-ATKVNZAT.js → host-HRBXEPDQ.js} +5 -5
- package/dist/chunks/{host-BQH22NTQ.js → host-LR55CTHP.js} +5 -5
- package/dist/chunks/{host-X2CSLFM6.js → host-SUOY6VYQ.js} +5 -5
- package/dist/chunks/{host-4CBHGOHT.js → host-SZGV4UNT.js} +5 -5
- package/dist/chunks/{host-YTODKMSL.js → host-WIKN2EJ5.js} +5 -5
- package/dist/chunks/{hrm-FFM4UJFS.js → hrm-NRDO4W5G.js} +11 -7
- package/dist/chunks/{im-VEHKDQPB.js → im-IQ2HN23S.js} +8 -7
- package/dist/chunks/{invoice-LVIKSIIF.js → invoice-MNRW76PP.js} +636 -1768
- package/dist/chunks/{jiuchuanhui-X6DINO5P.js → jiuchuanhui-DTRBAX4N.js} +14 -6
- package/dist/chunks/{lazy-dispatch-KSWTN5L6.js → lazy-dispatch-ZVWAI25B.js} +7 -6
- package/dist/chunks/{mail-VDKRGUD3.js → mail-ZVAUXOJA.js} +16 -14
- package/dist/chunks/{meeting-CLC6HP3Z.js → meeting-FEVPZ67S.js} +21 -14
- package/dist/chunks/{okr-CHG4OO3U.js → okr-SDH3E5RA.js} +12 -5
- package/dist/chunks/{operations-5QL3AECO.js → operations-62N6EP3C.js} +4 -3
- package/dist/chunks/{plan-XWR75667.js → plan-E35JFDI7.js} +12 -5
- package/dist/chunks/{project-5BXOOKMG.js → project-73QXBAB2.js} +11 -4
- package/dist/chunks/reception-UWZVACBN.js +1899 -0
- package/dist/chunks/{recruit-stage-DGMFNNDE.js → recruit-stage-4MAOCKFY.js} +320 -57
- package/dist/chunks/registry-IM5G23LS.js +24 -0
- package/dist/chunks/{registry-RHMW6ANW.js → registry-JDUS4E7D.js} +7 -6
- package/dist/chunks/{registry-7FFOXIAW.js → registry-KNKSCJNT.js} +7 -6
- package/dist/chunks/{registry-Z43434VG.js → registry-PO7SI256.js} +4 -4
- package/dist/chunks/{registry-OZSMDVPP.js → registry-PVUZQDDQ.js} +3 -3
- package/dist/chunks/{room-recommend-62H7ZQQ6.js → room-recommend-H7KLXA5R.js} +6 -5
- package/dist/chunks/{schedule-FNXKH3DQ.js → schedule-ESZIBAUO.js} +6 -5
- package/dist/chunks/{workflow-ADHKCAJK.js → workflow-CWJFJLQU.js} +13 -8
- 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 +37 -31
- package/dist/internal/e10/auth/commands.js +163 -8
- package/dist/internal/e10/auth/error-log.js +182 -0
- package/dist/internal/e10/auth/session.js +17 -3
- package/dist/internal/e10/auth-recovery.js +39 -12
- package/dist/internal/e10/context.js +17 -2
- 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/write.js +1 -1
- 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/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 +1 -1
- package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +182 -3
- package/dist/shortcuts/ehr/operations/recruit-position.js +134 -2
- package/dist/shortcuts/ehr/operations/recruit-write.js +1 -1
- 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/im/continuation.js +2 -1
- package/dist/shortcuts/index.js +5 -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/create-flow.js +16 -7
- package/dist/shortcuts/meeting/operations/eb/decision.js +1 -1
- package/dist/shortcuts/meeting/operations/eb/factory.js +1 -1
- 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/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 +145 -33
- package/dist/shortcuts/recruit-stage/continuation.js +2 -1
- package/dist/shortcuts/recruit-stage/operations/jd-create.js +106 -17
- package/dist/shortcuts/recruit-stage/operations/resume-import.js +166 -10
- 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/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 +16 -0
- 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/reception.md +119 -0
- package/package.json +1 -1
- package/scripts/clean.mjs +43 -2
- package/skill-template/business-info.json +18 -2
- package/skill-template/domains/caizhilian.md +1 -1
- package/skill-template/domains/reception-flow.md +18 -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/references/calendar-write.md +1 -1
- package/skills/weaver-e10-cowork/SKILL.md +1 -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 +2 -2
- package/skills/weaver-e10-jucailin/references/recruit-create.md +12 -3
- package/skills/weaver-e10-jucailin/references/recruit-write.md +1 -1
- package/skills/weaver-e10-meeting/SKILL.md +8 -6
- 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 +9 -5
- package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +1 -1
- 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-jd-create.md +22 -0
- package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +14 -1
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +6 -0
- package/skills/weaver-e10-shijingran/SKILL.md +5 -5
- package/skills/weaver-e10-shijingran/references/source-manifest.json +37 -36
- 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/references/source-manifest.json +32 -32
- package/skills/weaver-e10-yepiaotong/SKILL.md +19 -26
- 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-TTPJJJC4.js +0 -465
- package/dist/chunks/registry-BKBZPBAJ.js +0 -23
- 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,22 +2,25 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
|
2
2
|
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
createRecruitContextLoader
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HIT4Y6OI.js";
|
|
6
|
+
import {
|
|
7
|
+
CONTINUATION_TTL_MS
|
|
8
|
+
} from "./chunk-7BDPM5ST.js";
|
|
6
9
|
import {
|
|
7
10
|
E10ApiError,
|
|
8
11
|
createE10RequestRuntime,
|
|
9
12
|
isE10SessionExpiredResponse,
|
|
10
13
|
requireE10Session
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ETNJSKMM.js";
|
|
12
15
|
import {
|
|
13
16
|
E10_SESSION_EXPIRED_MESSAGE,
|
|
14
17
|
getActiveProfile
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UFIT2UU3.js";
|
|
16
19
|
import {
|
|
17
20
|
CliError,
|
|
18
21
|
isCliError,
|
|
19
22
|
toErrorEnvelope
|
|
20
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-UG5G54VL.js";
|
|
21
24
|
import "./chunk-BUSC6UAE.js";
|
|
22
25
|
|
|
23
26
|
// src/shortcuts/recruit-stage/index.ts
|
|
@@ -111,7 +114,7 @@ function signature(payload, key) {
|
|
|
111
114
|
}
|
|
112
115
|
function createRecruitStageContinuationSigner(ctx) {
|
|
113
116
|
return {
|
|
114
|
-
async issue(payload, ttlMs =
|
|
117
|
+
async issue(payload, ttlMs = CONTINUATION_TTL_MS) {
|
|
115
118
|
const issuedAt = Date.now();
|
|
116
119
|
const body = encode({ ...payload, issuedAt, expiresAt: issuedAt + ttlMs });
|
|
117
120
|
const sig = signature(body, await loadKey(ctx));
|
|
@@ -765,9 +768,7 @@ var DEF_FROM_REF = [
|
|
|
765
768
|
"job_category",
|
|
766
769
|
"education",
|
|
767
770
|
"work_years",
|
|
768
|
-
"work_location"
|
|
769
|
-
"salary_min",
|
|
770
|
-
"salary_max"
|
|
771
|
+
"work_location"
|
|
771
772
|
];
|
|
772
773
|
var DEF_STATUS = "\u62DB\u8058\u4E2D";
|
|
773
774
|
var NUM_KEYS = /* @__PURE__ */ new Set(["recruit_count", "number_of_pay_months", "salary_min", "salary_max", "internship_duration", "working_days"]);
|
|
@@ -842,13 +843,45 @@ function refToSubmit(d) {
|
|
|
842
843
|
else return null;
|
|
843
844
|
return o;
|
|
844
845
|
}
|
|
846
|
+
var WORK_PLACE_NAMES = ["\u529E\u516C\u5730\u70B9", "\u5DE5\u4F5C\u5730\u70B9"];
|
|
847
|
+
async function findWorkPlaceMenu(ctx) {
|
|
848
|
+
const { host, appId, cache } = ctx;
|
|
849
|
+
const ok = (m) => m && m.listId;
|
|
850
|
+
const allSearch = (cache.lists || {}).all_search || [];
|
|
851
|
+
const hit1 = allSearch.find((m) => ok(m) && WORK_PLACE_NAMES.some((n) => String(m.menuName || "").includes(n)));
|
|
852
|
+
if (hit1) return { listId: String(hit1.listId), cusMenuId: String(hit1.cusMenuId || ""), menuName: String(hit1.menuName || "") };
|
|
853
|
+
const hit2 = findMenuNode(cache.menus || [], WORK_PLACE_NAMES, (m) => ok(m));
|
|
854
|
+
if (hit2) return { listId: String(hit2.listId), cusMenuId: String(hit2.cusMenuId || ""), menuName: String(hit2.menuName || "") };
|
|
855
|
+
try {
|
|
856
|
+
const r = await host.request({ path: `/api/cusapp/app/allMenus?isFront=1&appId=${appId}&terminalType=PC`, method: "GET" });
|
|
857
|
+
const flat = [];
|
|
858
|
+
(function walk(ns) {
|
|
859
|
+
for (const n of ns || []) if (n && typeof n === "object") {
|
|
860
|
+
flat.push(n);
|
|
861
|
+
walk(n.children || n.childs);
|
|
862
|
+
}
|
|
863
|
+
})(r?.data?.cusAppMenus || r?.data);
|
|
864
|
+
const hit3 = findMenuNode(flat, WORK_PLACE_NAMES, (m) => ok(m));
|
|
865
|
+
if (hit3) return { listId: String(hit3.listId), cusMenuId: String(hit3.cusMenuId || ""), menuName: String(hit3.menuName || "") };
|
|
866
|
+
} catch {
|
|
867
|
+
}
|
|
868
|
+
return null;
|
|
869
|
+
}
|
|
845
870
|
async function resolveWorkLocation(ctx, value) {
|
|
846
871
|
const { host, appId, cache } = ctx;
|
|
847
|
-
const
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
872
|
+
const v = String(value).trim();
|
|
873
|
+
if (!v) return null;
|
|
874
|
+
let pObj = "";
|
|
875
|
+
try {
|
|
876
|
+
const t = await host.request({ path: `/api/ebuilder/form/obj/getObjsByTag?appId=${appId}&tag=uf_rcrt_work_place`, method: "GET" });
|
|
877
|
+
const d = t?.data;
|
|
878
|
+
if (Array.isArray(d) && d[0]) pObj = String(d[0].id || "");
|
|
879
|
+
} catch {
|
|
880
|
+
}
|
|
881
|
+
const menu = await findWorkPlaceMenu(ctx);
|
|
882
|
+
if (!menu) return null;
|
|
883
|
+
if (!pObj) pObj = String(menu.objId || "");
|
|
884
|
+
if (!pObj) return null;
|
|
852
885
|
const body = {
|
|
853
886
|
current: 1,
|
|
854
887
|
pageSize: 200,
|
|
@@ -868,10 +901,11 @@ async function resolveWorkLocation(ctx, value) {
|
|
|
868
901
|
menuName: menu.menuName
|
|
869
902
|
};
|
|
870
903
|
const r = await host.request({ path: `/api/ebuilder/form/list/getListDatas?passid=${pObj}&cid=${pObj}`, body, headers: { ebBusinessId: menu.listId } });
|
|
871
|
-
const rows = r?.data?.data || [];
|
|
872
|
-
const v = String(value).trim();
|
|
904
|
+
const rows = r?.data?.data || r?.data?.displayData || [];
|
|
873
905
|
const hit = rows.find((x) => {
|
|
874
|
-
const name = String(x.name ||
|
|
906
|
+
const name = String(x.name || x.detail_location || "");
|
|
907
|
+
const detail = String(x.detail_location || "");
|
|
908
|
+
const area = String(x.area_text || "");
|
|
875
909
|
return name.includes(v) || detail.includes(v) || area.includes(v) || detail && v.includes(detail);
|
|
876
910
|
});
|
|
877
911
|
return hit ? { id: String(hit.form_data_id || hit.id), name: String(hit.detail_location || hit.name || v) } : null;
|
|
@@ -1109,6 +1143,7 @@ async function buildJd(opts) {
|
|
|
1109
1143
|
}
|
|
1110
1144
|
}
|
|
1111
1145
|
}
|
|
1146
|
+
const inheritedFromRef = [];
|
|
1112
1147
|
for (const k of DEF_FROM_REF) {
|
|
1113
1148
|
const id = fid(k);
|
|
1114
1149
|
if (id && !map.has(String(id)) && refByFid[String(id)]) {
|
|
@@ -1116,6 +1151,7 @@ async function buildJd(opts) {
|
|
|
1116
1151
|
if (d) {
|
|
1117
1152
|
put(d);
|
|
1118
1153
|
filled.push(k);
|
|
1154
|
+
inheritedFromRef.push({ field: k, value: detailValueId(refByFid[String(id)]) });
|
|
1119
1155
|
}
|
|
1120
1156
|
}
|
|
1121
1157
|
}
|
|
@@ -1134,10 +1170,15 @@ async function buildJd(opts) {
|
|
|
1134
1170
|
requestLen: (requestText || "").length,
|
|
1135
1171
|
demand: demandId ? demandName || demandId : "\uFF08\u672A\u5173\u8054\u9700\u6C42\uFF09",
|
|
1136
1172
|
status: DEF_STATUS,
|
|
1137
|
-
|
|
1173
|
+
// 解析不到环境默认流程时不写该字段,表单自身默认值生效;文案按实际行为表述,避免误导。
|
|
1174
|
+
recruitFlow: defFlow && defFlow.id ? defFlow.name : "\uFF08\u6CBF\u7528\u8868\u5355\u9ED8\u8BA4\u503C\uFF09",
|
|
1138
1175
|
currentUser: currentUser ? currentUser.name : null,
|
|
1139
1176
|
setApplied: appliedSets,
|
|
1140
1177
|
setSkipped: skippedSets,
|
|
1178
|
+
// 明示哪些字段值继承自「环境内最近一条职位记录」——这些不是用户指定的,可能来自脏数据,
|
|
1179
|
+
// 必须在确认摘要里人工核对(尤其 work_location)
|
|
1180
|
+
inheritedFromRef: inheritedFromRef.length ? inheritedFromRef : void 0,
|
|
1181
|
+
inheritedNote: inheritedFromRef.length ? "\u4EE5\u4E0A\u5B57\u6BB5\u672A\u6307\u5B9A\uFF0C\u503C\u7EE7\u627F\u81EA\u73AF\u5883\u5185\u6700\u8FD1\u4E00\u6761\u804C\u4F4D\u8BB0\u5F55\uFF0C\u53EF\u80FD\u542B\u5386\u53F2\u810F\u6570\u636E\uFF08\u5982\u91CD\u590D\u5730\u70B9\uFF09\uFF0C\u8BF7\u6838\u5BF9\u540E\u518D\u63D0\u4EA4" : void 0,
|
|
1141
1182
|
requiredDefaultsFilled
|
|
1142
1183
|
}
|
|
1143
1184
|
};
|
|
@@ -1175,16 +1216,32 @@ async function prepare(args, env) {
|
|
|
1175
1216
|
demandName: args.demandName ? String(args.demandName) : void 0,
|
|
1176
1217
|
sets: setsOf(args)
|
|
1177
1218
|
});
|
|
1178
|
-
const refs = await fetchRecentReferences(ctx, jd, String(args.referenceKeyword
|
|
1219
|
+
const refs = args.referenceKeyword ? await fetchRecentReferences(ctx, jd, String(args.referenceKeyword)).catch((e) => ({ available: false, reason: e.message, items: [] })) : {
|
|
1220
|
+
available: false,
|
|
1221
|
+
skipped: true,
|
|
1222
|
+
reason: "\u672A\u663E\u5F0F\u6307\u5B9A referenceKeyword\uFF0C\u5DF2\u8DF3\u8FC7\u540C\u7C7B\u804C\u4F4D\u53C2\u8003\u68C0\u7D22\uFF08\u6539\u7528 references/position-templates.md \u7684\u5C97\u4F4D\u6A21\u677F\uFF09",
|
|
1223
|
+
items: []
|
|
1224
|
+
};
|
|
1179
1225
|
const willSubmit = { formId: jd.formId, objId: jd.objId, dataDetails: jd.dataDetails };
|
|
1180
1226
|
const fp = fingerprint(willSubmit);
|
|
1181
1227
|
const continuation = await env.continuation.issue({ operation: "recruit-stage.jd.create.apply", fingerprint: fp });
|
|
1228
|
+
const invFieldKeys = {};
|
|
1229
|
+
for (const [k, v] of Object.entries(ctx.cache.fields[jd.objId] || {})) invFieldKeys[String(v)] = k;
|
|
1182
1230
|
return rsSuccess("recruit-stage.jd.create.prepare", {
|
|
1183
1231
|
mode: "prepare",
|
|
1232
|
+
continuation,
|
|
1233
|
+
fingerprint: fp,
|
|
1184
1234
|
...jd.summary,
|
|
1185
1235
|
recentReferences: refs.items,
|
|
1186
|
-
recentReferencesNote: refs.available ? `\u5DF2\u6309\u300C${refs.keyword}\u300D\u5728\u5F53\u524D\u73AF\u5883\u804C\u4F4D\u5217\u8868\u4E2D\u68C0\u7D22\uFF08\u626B\u63CF ${refs.scanned} \u6761\uFF0C\u547D\u4E2D ${refs.items.length} \u6761\uFF09\u2014\u2014\u8BF7\u5BF9\u6807\u8FD9\u4E9B\u540C\u7C7B\u804C\u4F4D\u7684\u85AA\u916C/\u4EBA\u6570/\u8981\u6C42\u7ED9\u51FA\u63A8\u8350\u503C\uFF0C\u4E00\u5E76\u653E\u8FDB\u786E\u8BA4\u6458\u8981\uFF0C\u4E0D\u8981\u9010\u5B57\u6BB5\u8BE2\u95EE\u7528\u6237` : "\u53C2\u8003\u68C0\u7D22\u4E0D\u53EF\u7528\uFF1A" + (refs.reason || ""),
|
|
1187
|
-
willSubmit
|
|
1236
|
+
recentReferencesNote: refs.skipped ? refs.reason : refs.available ? `\u5DF2\u6309\u300C${refs.keyword}\u300D\u5728\u5F53\u524D\u73AF\u5883\u804C\u4F4D\u5217\u8868\u4E2D\u68C0\u7D22\uFF08\u626B\u63CF ${refs.scanned} \u6761\uFF0C\u547D\u4E2D ${refs.items.length} \u6761\uFF09\u2014\u2014\u8BF7\u5BF9\u6807\u8FD9\u4E9B\u540C\u7C7B\u804C\u4F4D\u7684\u85AA\u916C/\u4EBA\u6570/\u8981\u6C42\u7ED9\u51FA\u63A8\u8350\u503C\uFF0C\u4E00\u5E76\u653E\u8FDB\u786E\u8BA4\u6458\u8981\uFF0C\u4E0D\u8981\u9010\u5B57\u6BB5\u8BE2\u95EE\u7528\u6237` : "\u53C2\u8003\u68C0\u7D22\u4E0D\u53EF\u7528\uFF1A" + (refs.reason || ""),
|
|
1237
|
+
willSubmit: {
|
|
1238
|
+
formId: willSubmit.formId,
|
|
1239
|
+
objId: willSubmit.objId,
|
|
1240
|
+
fieldCount: willSubmit.dataDetails.length,
|
|
1241
|
+
fields: willSubmit.dataDetails.map(
|
|
1242
|
+
(d) => invFieldKeys[String(d.formField && d.formField.id)] || String(d.formField && d.formField.id)
|
|
1243
|
+
)
|
|
1244
|
+
}
|
|
1188
1245
|
}, {
|
|
1189
1246
|
continuation,
|
|
1190
1247
|
fingerprint: fp,
|
|
@@ -1832,9 +1889,9 @@ function buildSubDetails(structured, subs, cache) {
|
|
|
1832
1889
|
const parts = Array.isArray(v) ? v : String(v).split(/[,~]/);
|
|
1833
1890
|
const s = String(parts[0] || "").trim();
|
|
1834
1891
|
const e = String(parts[1] || "").trim();
|
|
1835
|
-
if (
|
|
1836
|
-
row[col.
|
|
1837
|
-
|
|
1892
|
+
if (s) row[col.startKey] = s;
|
|
1893
|
+
if (e) row[col.endKey] = e;
|
|
1894
|
+
if (!s && !e) continue;
|
|
1838
1895
|
continue;
|
|
1839
1896
|
}
|
|
1840
1897
|
const scalar = typeof v === "object" ? String(v.optionId ?? v.content ?? "") : String(v);
|
|
@@ -2191,6 +2248,100 @@ function normalizeTextStructured(cache, s, warnings) {
|
|
|
2191
2248
|
fixRows(s.languageAbilities, ["mastery", "ls_ability", "literacy"]);
|
|
2192
2249
|
return s;
|
|
2193
2250
|
}
|
|
2251
|
+
var DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
2252
|
+
var ONGOING_RE = /至今|现在|今|now|present/i;
|
|
2253
|
+
var RE_RANGE_FULL = /^\s*(\d{4}[.\-/年]\d{1,2}[.\-/月]\d{1,2}\s*日?)\s*[-–—~至,,]\s*(\d{4}[.\-/年]\d{1,2}[.\-/月]\d{1,2}\s*日?|至今|现在|今)\s*$/;
|
|
2254
|
+
var RE_RANGE_YM = /^\s*(\d{4}[.\-/年]\d{1,2})\s*[-–—~至,,]\s*(\d{4}[.\-/年]\d{1,2}|至今|现在|今)\s*$/;
|
|
2255
|
+
function normDatePart(raw, isEnd) {
|
|
2256
|
+
const s = String(raw ?? "").trim();
|
|
2257
|
+
if (!s) return "";
|
|
2258
|
+
if (ONGOING_RE.test(s)) return "";
|
|
2259
|
+
if (DATE_ONLY_RE.test(s)) return s;
|
|
2260
|
+
const m = s.match(/^(\d{4})\s*[.\-/年]?\s*(\d{1,2})?\s*[.\-/月]?\s*(\d{1,2})?\s*日?$/);
|
|
2261
|
+
if (!m) return "";
|
|
2262
|
+
const y = Number(m[1]);
|
|
2263
|
+
const mo = m[2] ? Number(m[2]) : 1;
|
|
2264
|
+
if (!y || mo < 1 || mo > 12) return "";
|
|
2265
|
+
const lastDay = new Date(y, mo, 0).getDate();
|
|
2266
|
+
let d;
|
|
2267
|
+
if (m[3]) {
|
|
2268
|
+
d = Number(m[3]);
|
|
2269
|
+
if (d < 1 || d > lastDay) return "";
|
|
2270
|
+
} else {
|
|
2271
|
+
d = isEnd ? lastDay : 1;
|
|
2272
|
+
}
|
|
2273
|
+
return y + "-" + String(mo).padStart(2, "0") + "-" + String(d).padStart(2, "0");
|
|
2274
|
+
}
|
|
2275
|
+
function normDateRange(raw) {
|
|
2276
|
+
const s = Array.isArray(raw) ? raw.map((x) => String(x ?? "").trim()).filter(Boolean).join(",") : String(raw ?? "").trim();
|
|
2277
|
+
if (!s) return "";
|
|
2278
|
+
const m = s.match(RE_RANGE_FULL) || s.match(RE_RANGE_YM);
|
|
2279
|
+
if (m) {
|
|
2280
|
+
const a = normDatePart(m[1], false);
|
|
2281
|
+
if (!a) return "";
|
|
2282
|
+
const b = normDatePart(m[2], true);
|
|
2283
|
+
return b ? a + "," + b : a;
|
|
2284
|
+
}
|
|
2285
|
+
return normDatePart(s, false);
|
|
2286
|
+
}
|
|
2287
|
+
function normalizeDates(s, warnings) {
|
|
2288
|
+
if (!s || typeof s !== "object") return;
|
|
2289
|
+
const one = (label, val, isEnd = false) => {
|
|
2290
|
+
const before = String(val ?? "").trim();
|
|
2291
|
+
if (!before) return "";
|
|
2292
|
+
if (ONGOING_RE.test(before)) return "";
|
|
2293
|
+
const after = normDatePart(before, isEnd);
|
|
2294
|
+
if (!after) {
|
|
2295
|
+
warnings.push("\u65E5\u671F\u65E0\u6CD5\u8BC6\u522B\uFF0C\u5DF2\u8DF3\u8FC7\u8BE5\u5B57\u6BB5\uFF08\u907F\u514D\u63A5\u53E3\u6574\u6279\u6821\u9A8C\u5931\u8D25\uFF09\uFF1A" + label + " = \u300C" + before + "\u300D");
|
|
2296
|
+
return "";
|
|
2297
|
+
}
|
|
2298
|
+
if (after !== before) warnings.push("\u65E5\u671F\u5DF2\u89C4\u8303\u5316\uFF1A" + label + " \u300C" + before + "\u300D\u2192\u300C" + after + "\u300D");
|
|
2299
|
+
return after;
|
|
2300
|
+
};
|
|
2301
|
+
for (const k of ["joinworkdate", "graduate_date", "birthday"]) {
|
|
2302
|
+
if (s[k] === void 0 || s[k] === null) continue;
|
|
2303
|
+
s[k] = one(k, s[k], false);
|
|
2304
|
+
}
|
|
2305
|
+
if (Array.isArray(s.academicInformations)) {
|
|
2306
|
+
for (let i = 0; i < s.academicInformations.length; i++) {
|
|
2307
|
+
const r = s.academicInformations[i];
|
|
2308
|
+
if (!r || typeof r !== "object" || r.study_date === void 0) continue;
|
|
2309
|
+
const before = String(r.study_date ?? "").trim();
|
|
2310
|
+
if (!before) continue;
|
|
2311
|
+
const after = normDateRange(before);
|
|
2312
|
+
if (!after) {
|
|
2313
|
+
warnings.push("\u65E5\u671F\u533A\u95F4\u65E0\u6CD5\u8BC6\u522B\uFF0C\u5DF2\u8DF3\u8FC7\uFF08\u907F\u514D\u63A5\u53E3\u6574\u6279\u6821\u9A8C\u5931\u8D25\uFF09\uFF1AacademicInformations[" + i + "].study_date = \u300C" + before + "\u300D");
|
|
2314
|
+
r.study_date = "";
|
|
2315
|
+
} else {
|
|
2316
|
+
if (after !== before) warnings.push("\u65E5\u671F\u5DF2\u89C4\u8303\u5316\uFF1AacademicInformations[" + i + "].study_date \u300C" + before + "\u300D\u2192\u300C" + after + "\u300D");
|
|
2317
|
+
r.study_date = after;
|
|
2318
|
+
}
|
|
2319
|
+
}
|
|
2320
|
+
}
|
|
2321
|
+
for (const key of ["jobInformations", "workExperiences", "projectExperiences"]) {
|
|
2322
|
+
const arr = s[key];
|
|
2323
|
+
if (!Array.isArray(arr)) continue;
|
|
2324
|
+
for (let i = 0; i < arr.length; i++) {
|
|
2325
|
+
const r = arr[i];
|
|
2326
|
+
if (!r || typeof r !== "object") continue;
|
|
2327
|
+
if (r.start_date !== void 0 && r.start_date !== null) {
|
|
2328
|
+
r.start_date = one(key + "[" + i + "].start_date", r.start_date, false);
|
|
2329
|
+
}
|
|
2330
|
+
if (r.end_date !== void 0 && r.end_date !== null) {
|
|
2331
|
+
r.end_date = one(key + "[" + i + "].end_date", r.end_date, true);
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
}
|
|
2335
|
+
for (const [key, field] of [["internshipExperiences", "entry_time"], ["awardExperiences", "award_date"]]) {
|
|
2336
|
+
const arr = s[key];
|
|
2337
|
+
if (!Array.isArray(arr)) continue;
|
|
2338
|
+
for (let i = 0; i < arr.length; i++) {
|
|
2339
|
+
const r = arr[i];
|
|
2340
|
+
if (!r || typeof r !== "object") continue;
|
|
2341
|
+
if (r[field] !== void 0 && r[field] !== null) r[field] = one(key + "[" + i + "]." + field, r[field], false);
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
}
|
|
2194
2345
|
async function verifySubRows(ctx, formId, objId, dataId) {
|
|
2195
2346
|
const L = await getFormLayoutMeta(ctx.host, formId);
|
|
2196
2347
|
const r = await ctx.host.request({
|
|
@@ -2236,7 +2387,9 @@ async function loadStructured(ctx, args) {
|
|
|
2236
2387
|
if (!String(s.telephone || "").trim() && !String(s.candidateName || "").trim()) {
|
|
2237
2388
|
throw rsValidationError("structured_invalid", "\u7ED3\u6784\u5316\u7B80\u5386\u7F3A\u5C11 telephone \u4E0E candidateName\uFF08\u81F3\u5C11\u8981\u6709\u624B\u673A\u53F7\u6216\u59D3\u540D\uFF0C\u5426\u5219\u65E0\u6CD5\u67E5\u91CD\u5EFA\u6863\uFF09");
|
|
2238
2389
|
}
|
|
2239
|
-
|
|
2390
|
+
const normalizedInline = normalizeTextStructured(ctx.cache, s, warnings);
|
|
2391
|
+
normalizeDates(normalizedInline, warnings);
|
|
2392
|
+
return { structured: normalizedInline, textMode: true, warnings };
|
|
2240
2393
|
}
|
|
2241
2394
|
if (args.structuredFile) {
|
|
2242
2395
|
const p = path.resolve(String(args.structuredFile));
|
|
@@ -2245,7 +2398,9 @@ async function loadStructured(ctx, args) {
|
|
|
2245
2398
|
if (!String(s.telephone || "").trim() && !String(s.candidateName || "").trim()) {
|
|
2246
2399
|
throw rsValidationError("structured_invalid", "\u7ED3\u6784\u5316\u7B80\u5386\u7F3A\u5C11 telephone \u4E0E candidateName");
|
|
2247
2400
|
}
|
|
2248
|
-
|
|
2401
|
+
const normalizedFile = normalizeTextStructured(ctx.cache, s, warnings);
|
|
2402
|
+
normalizeDates(normalizedFile, warnings);
|
|
2403
|
+
return { structured: normalizedFile, textMode: true, warnings };
|
|
2249
2404
|
}
|
|
2250
2405
|
return { structured: null, textMode: false, warnings };
|
|
2251
2406
|
}
|
|
@@ -2600,11 +2755,11 @@ async function apply2(args, env) {
|
|
|
2600
2755
|
verifyWarnings = checkAfter(after);
|
|
2601
2756
|
}
|
|
2602
2757
|
return rsSuccess("recruit-stage.resume.import.apply", {
|
|
2758
|
+
// 更新模式同理:明细行/格数对不上时只能报 partial,不能因主表写入成功就报 success
|
|
2603
2759
|
mode: "update",
|
|
2604
|
-
result: "success",
|
|
2760
|
+
result: verifyWarnings.length ? "partial" : "success",
|
|
2761
|
+
detailsState: verifyWarnings.length ? "missing" : "complete",
|
|
2605
2762
|
talentId: updateTalentId,
|
|
2606
|
-
applied: verifyWarnings,
|
|
2607
|
-
// placeholder replaced below
|
|
2608
2763
|
afterSummary: { mainFieldCount: Object.keys(after.main).length, subRows: after.subRows, subCells: after.subCells },
|
|
2609
2764
|
verifyWarnings: verifyWarnings.length ? verifyWarnings : void 0,
|
|
2610
2765
|
talentCardUrl: resolveTalentCardUrl(ctx, updateTalentId),
|
|
@@ -2680,8 +2835,16 @@ async function apply2(args, env) {
|
|
|
2680
2835
|
)
|
|
2681
2836
|
]);
|
|
2682
2837
|
const subTableVerify = verifyRes.ok ? verifyRes.v : { error: verifyRes.e?.message };
|
|
2683
|
-
|
|
2684
|
-
|
|
2838
|
+
let detailsState = "complete";
|
|
2839
|
+
if (!verifyRes.ok) {
|
|
2840
|
+
detailsState = "unverified";
|
|
2841
|
+
writeWarnings.push("\u660E\u7EC6\u8BFB\u56DE\u6821\u9A8C\u5931\u8D25\uFF08\u65E0\u6CD5\u786E\u8BA4\u660E\u7EC6\u662F\u5426\u843D\u5E93\uFF09\uFF1A" + (verifyRes.e?.message || ""));
|
|
2842
|
+
} else if (built.subRowTotal > 0) {
|
|
2843
|
+
const gotRows = Number(subTableVerify?.rowTotal || 0);
|
|
2844
|
+
if (gotRows < built.subRowTotal) {
|
|
2845
|
+
detailsState = "missing";
|
|
2846
|
+
writeWarnings.push("\u660E\u7EC6\u884C\u672A\u5B8C\u6574\u843D\u5E93\uFF08\u671F\u671B " + built.subRowTotal + " \u884C\uFF0C\u8BFB\u56DE " + gotRows + " \u884C\uFF09\uFF1A\u4E3B\u8868\u5DF2\u5199\u5165\uFF0C\u8BF7\u6309 writeWarnings \u4FEE\u6B63\u540E\u8D70 updateTalentId \u8865\u660E\u7EC6");
|
|
2847
|
+
}
|
|
2685
2848
|
}
|
|
2686
2849
|
const saveEsbActions = esbRes.ok ? esbRes.v : { error: esbRes.e?.message };
|
|
2687
2850
|
const labelMatch = labelRes.ok ? labelRes.v : "ERR:" + (labelRes.e?.message || "");
|
|
@@ -2691,7 +2854,8 @@ async function apply2(args, env) {
|
|
|
2691
2854
|
const talentListLocateUrl = resolveTalentListLocateUrl(ctx, talentId);
|
|
2692
2855
|
return rsSuccess("recruit-stage.resume.import.apply", {
|
|
2693
2856
|
mode: "apply",
|
|
2694
|
-
result: "success",
|
|
2857
|
+
result: detailsState === "complete" ? "success" : "partial",
|
|
2858
|
+
detailsState,
|
|
2695
2859
|
newCandidateFormDataId: newId,
|
|
2696
2860
|
talentId,
|
|
2697
2861
|
writeChannel,
|
|
@@ -4319,6 +4483,11 @@ import { existsSync as existsSync2 } from "node:fs";
|
|
|
4319
4483
|
import { readFile as readFile2 } from "node:fs/promises";
|
|
4320
4484
|
import { homedir as homedir2 } from "node:os";
|
|
4321
4485
|
var flowMemo = /* @__PURE__ */ new Map();
|
|
4486
|
+
var SELFUSE_DEFAULT_FLOW = {
|
|
4487
|
+
selfUseHost: "www.e-cology.com.cn",
|
|
4488
|
+
id: "874896524979806209",
|
|
4489
|
+
name: "\u521D\u7B5B+\u9762\u8BD5+offer\u9636\u6BB5"
|
|
4490
|
+
};
|
|
4322
4491
|
var digitalMenuMemo = /* @__PURE__ */ new Map();
|
|
4323
4492
|
function cacheDirFor(baseUrl) {
|
|
4324
4493
|
const url = new URL(baseUrl);
|
|
@@ -4332,22 +4501,52 @@ async function readLegacyCacheExtra(baseUrl) {
|
|
|
4332
4501
|
try {
|
|
4333
4502
|
const dir = cacheDirFor(baseUrl);
|
|
4334
4503
|
if (!existsSync2(dir)) return { defaultRecruitFlow: null, digitalHumanMenu: null };
|
|
4335
|
-
const files = (await import("node:fs/promises")).readdir(dir);
|
|
4336
|
-
const jsonFiles =
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
|
|
4504
|
+
const files = await (await import("node:fs/promises")).readdir(dir);
|
|
4505
|
+
const jsonFiles = files.filter((f) => f.endsWith(".json"));
|
|
4506
|
+
let flow = null;
|
|
4507
|
+
let dh = null;
|
|
4508
|
+
for (const f of jsonFiles) {
|
|
4509
|
+
let raw;
|
|
4510
|
+
try {
|
|
4511
|
+
raw = JSON.parse(await readFile2(join(dir, f), "utf8"));
|
|
4512
|
+
} catch {
|
|
4513
|
+
continue;
|
|
4514
|
+
}
|
|
4515
|
+
if (!flow && raw?.defaultRecruitFlow && raw.defaultRecruitFlow.id) {
|
|
4516
|
+
flow = { id: String(raw.defaultRecruitFlow.id), name: String(raw.defaultRecruitFlow.name || "") };
|
|
4517
|
+
}
|
|
4518
|
+
if (!dh && raw?.lists?.digital_human?.listId) {
|
|
4519
|
+
dh = {
|
|
4520
|
+
menuName: String(raw.lists.digital_human.menuName || "\u9762\u8BD5\u6570\u5B57\u4EBA\u914D\u7F6E"),
|
|
4521
|
+
listId: String(raw.lists.digital_human.listId),
|
|
4522
|
+
cusMenuId: String(raw.lists.digital_human.cusMenuId || "")
|
|
4523
|
+
};
|
|
4524
|
+
}
|
|
4525
|
+
if (flow && dh) break;
|
|
4526
|
+
}
|
|
4345
4527
|
return { defaultRecruitFlow: flow, digitalHumanMenu: dh };
|
|
4346
4528
|
} catch {
|
|
4347
4529
|
return { defaultRecruitFlow: null, digitalHumanMenu: null };
|
|
4348
4530
|
}
|
|
4349
4531
|
}
|
|
4350
|
-
|
|
4532
|
+
function findFlowMenu(cache) {
|
|
4533
|
+
const all = (cache.lists || {}).all_search || [];
|
|
4534
|
+
const hit = all.find((m) => m && m.listId && /招聘流程/.test(String(m.menuName || "")));
|
|
4535
|
+
if (hit) {
|
|
4536
|
+
return { listId: String(hit.listId), cusMenuId: String(hit.cusMenuId || ""), menuName: String(hit.menuName || "\u62DB\u8058\u6D41\u7A0B") };
|
|
4537
|
+
}
|
|
4538
|
+
return null;
|
|
4539
|
+
}
|
|
4540
|
+
function isDefaultFlowRow(x) {
|
|
4541
|
+
if (!x) return false;
|
|
4542
|
+
const cands = [x.is_default, x.isDefault, x.default_flow, x.defaultFlow, x.is_enable, x.enabled, x.status];
|
|
4543
|
+
for (const v of cands) {
|
|
4544
|
+
if (v === true || v === 1 || v === "1") return true;
|
|
4545
|
+
if (String(v) === "\u662F" || String(v) === "\u542F\u7528" || String(v) === "\u9ED8\u8BA4") return true;
|
|
4546
|
+
}
|
|
4547
|
+
return false;
|
|
4548
|
+
}
|
|
4549
|
+
async function resolveDefaultRecruitFlow(host, baseUrl, appId, cache) {
|
|
4351
4550
|
const memoKey = baseUrl;
|
|
4352
4551
|
if (flowMemo.has(memoKey)) return flowMemo.get(memoKey) ?? null;
|
|
4353
4552
|
const legacy = await readLegacyCacheExtra(baseUrl);
|
|
@@ -4356,22 +4555,86 @@ async function resolveDefaultRecruitFlow(host, baseUrl, appId) {
|
|
|
4356
4555
|
return legacy.defaultRecruitFlow;
|
|
4357
4556
|
}
|
|
4358
4557
|
let result = null;
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4558
|
+
const menu = findFlowMenu(cache);
|
|
4559
|
+
if (menu) {
|
|
4560
|
+
try {
|
|
4561
|
+
let flowObjId = "";
|
|
4562
|
+
try {
|
|
4563
|
+
const liBody = {
|
|
4564
|
+
cusMenuId: menu.cusMenuId,
|
|
4565
|
+
listId: menu.listId,
|
|
4566
|
+
urlPageTitle: menu.menuName
|
|
4567
|
+
};
|
|
4568
|
+
liBody["appId_" + menu.listId] = appId;
|
|
4569
|
+
const li = await host.request({ path: "/api/ebuilder/form/list/listInit", body: liBody });
|
|
4570
|
+
flowObjId = String(li?.data?.objid || "");
|
|
4571
|
+
} catch {
|
|
4572
|
+
}
|
|
4573
|
+
if (flowObjId) {
|
|
4574
|
+
const body = {
|
|
4575
|
+
current: 1,
|
|
4576
|
+
pageSize: 50,
|
|
4577
|
+
tableuid: Math.random().toString(16).slice(2, 34),
|
|
4578
|
+
listId: menu.listId,
|
|
4579
|
+
searchParamData: { searchType: "3", type: "and" },
|
|
4580
|
+
terminal: "PC",
|
|
4581
|
+
browser: "Chrome",
|
|
4582
|
+
requiredMatch: 1,
|
|
4583
|
+
mapResult: 1,
|
|
4584
|
+
recheckQuery: 1,
|
|
4585
|
+
isFollow: 0,
|
|
4586
|
+
isShareToMe: 0,
|
|
4587
|
+
filterCondition: {},
|
|
4588
|
+
cusMenuId: menu.cusMenuId,
|
|
4589
|
+
urlPageTitle: menu.menuName,
|
|
4590
|
+
menuName: menu.menuName
|
|
4591
|
+
};
|
|
4592
|
+
const r = await host.request({
|
|
4593
|
+
path: `/api/ebuilder/form/list/getListDatas?passid=${flowObjId}&cid=${flowObjId}`,
|
|
4594
|
+
body,
|
|
4595
|
+
headers: { ebBusinessId: menu.listId }
|
|
4596
|
+
});
|
|
4597
|
+
const rows = r?.data?.data || r?.data?.displayData || [];
|
|
4598
|
+
const pick = rows.find(isDefaultFlowRow) || (rows.length === 1 ? rows[0] : null);
|
|
4599
|
+
if (pick) {
|
|
4600
|
+
const id = String(pick.form_data_id || pick.id || "");
|
|
4601
|
+
const name = String(pick.name || pick.flow_name || pick.content || "");
|
|
4602
|
+
if (id && name) result = { id, name };
|
|
4603
|
+
}
|
|
4604
|
+
}
|
|
4605
|
+
} catch {
|
|
4606
|
+
}
|
|
4607
|
+
}
|
|
4608
|
+
if (!result) {
|
|
4609
|
+
try {
|
|
4610
|
+
const r = await host.request({
|
|
4611
|
+
path: "/api/recruit/position/recruitFlow/list",
|
|
4612
|
+
method: "POST",
|
|
4613
|
+
body: { appId, current: 1, pageSize: 50 },
|
|
4614
|
+
operation: "context.defaultRecruitFlow"
|
|
4615
|
+
});
|
|
4616
|
+
const rows = r?.data?.list || r?.data?.rows || r?.data || [];
|
|
4617
|
+
const list = Array.isArray(rows) ? rows : [];
|
|
4618
|
+
const enabled = list.find(isDefaultFlowRow) || null;
|
|
4619
|
+
if (enabled?.id) {
|
|
4620
|
+
result = { id: String(enabled.id), name: String(enabled.name || enabled.flow_name || "") };
|
|
4621
|
+
}
|
|
4622
|
+
} catch {
|
|
4623
|
+
}
|
|
4624
|
+
}
|
|
4625
|
+
if (!result) {
|
|
4626
|
+
const isSelfUse = String(cache?.selfUse || "") === "1";
|
|
4627
|
+
let host2 = "";
|
|
4628
|
+
try {
|
|
4629
|
+
host2 = new URL(baseUrl).hostname;
|
|
4630
|
+
} catch {
|
|
4631
|
+
host2 = "";
|
|
4632
|
+
}
|
|
4633
|
+
if (isSelfUse && host2 === SELFUSE_DEFAULT_FLOW.selfUseHost) {
|
|
4634
|
+
result = { id: SELFUSE_DEFAULT_FLOW.id, name: SELFUSE_DEFAULT_FLOW.name };
|
|
4371
4635
|
}
|
|
4372
|
-
} catch {
|
|
4373
4636
|
}
|
|
4374
|
-
flowMemo.set(memoKey, result);
|
|
4637
|
+
if (result) flowMemo.set(memoKey, result);
|
|
4375
4638
|
return result;
|
|
4376
4639
|
}
|
|
4377
4640
|
async function resolveDigitalHumanMenu(host, baseUrl, cache) {
|
|
@@ -4396,7 +4659,7 @@ function createRecruitStageContext() {
|
|
|
4396
4659
|
const cache = await loaders.get(loaderKey).load(host);
|
|
4397
4660
|
const baseUrl = (await host.getSession()).baseUrl.replace(/\/+$/, "");
|
|
4398
4661
|
const [defaultRecruitFlow, digitalHumanMenu] = await Promise.all([
|
|
4399
|
-
resolveDefaultRecruitFlow(host, baseUrl, cache.appId),
|
|
4662
|
+
resolveDefaultRecruitFlow(host, baseUrl, cache.appId, cache),
|
|
4400
4663
|
resolveDigitalHumanMenu(host, baseUrl, cache)
|
|
4401
4664
|
]);
|
|
4402
4665
|
return { ...cache, defaultRecruitFlow, digitalHumanMenu };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequire as __esbuildCreateRequire } from 'node:module';
|
|
2
|
+
const require = __esbuildCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
getMeetingOperation,
|
|
5
|
+
hasMeetingOperation,
|
|
6
|
+
meetingOperationDefinitions
|
|
7
|
+
} from "./chunk-PC7VKEB5.js";
|
|
8
|
+
import "./chunk-N4M2DDFE.js";
|
|
9
|
+
import "./chunk-FRZKBMSW.js";
|
|
10
|
+
import "./chunk-GM6J7Q4B.js";
|
|
11
|
+
import "./chunk-FAZTGX7S.js";
|
|
12
|
+
import "./chunk-Z7VYWPZV.js";
|
|
13
|
+
import "./chunk-OF4S23UB.js";
|
|
14
|
+
import "./chunk-CWYGFU5B.js";
|
|
15
|
+
import "./chunk-GAMZLAG2.js";
|
|
16
|
+
import "./chunk-QVSWRLLU.js";
|
|
17
|
+
import "./chunk-7BDPM5ST.js";
|
|
18
|
+
import "./chunk-UG5G54VL.js";
|
|
19
|
+
import "./chunk-BUSC6UAE.js";
|
|
20
|
+
export {
|
|
21
|
+
getMeetingOperation,
|
|
22
|
+
hasMeetingOperation,
|
|
23
|
+
meetingOperationDefinitions
|
|
24
|
+
};
|
|
@@ -4,13 +4,14 @@ import {
|
|
|
4
4
|
getWorkflowOperation,
|
|
5
5
|
hasWorkflowOperation,
|
|
6
6
|
workflowOperationDefinitions
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-XNIK66I4.js";
|
|
8
|
+
import "./chunk-HP7JIYMT.js";
|
|
9
|
+
import "./chunk-WRXSAVKO.js";
|
|
10
|
+
import "./chunk-727FH2NI.js";
|
|
11
11
|
import "./chunk-AJ62BGAW.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-7BDPM5ST.js";
|
|
13
|
+
import "./chunk-UFIT2UU3.js";
|
|
14
|
+
import "./chunk-UG5G54VL.js";
|
|
14
15
|
import "./chunk-BUSC6UAE.js";
|
|
15
16
|
export {
|
|
16
17
|
getWorkflowOperation,
|
|
@@ -4,12 +4,13 @@ import {
|
|
|
4
4
|
esbOperationDefinitions,
|
|
5
5
|
getEsbOperation,
|
|
6
6
|
hasEsbOperation
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-TA7FXXJD.js";
|
|
8
|
+
import "./chunk-F4E4EM35.js";
|
|
9
|
+
import "./chunk-TXUG266F.js";
|
|
10
|
+
import "./chunk-7BDPM5ST.js";
|
|
11
|
+
import "./chunk-ETNJSKMM.js";
|
|
12
|
+
import "./chunk-UFIT2UU3.js";
|
|
13
|
+
import "./chunk-UG5G54VL.js";
|
|
13
14
|
import "./chunk-BUSC6UAE.js";
|
|
14
15
|
export {
|
|
15
16
|
esbOperationDefinitions,
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
getHrmOperation,
|
|
5
5
|
hasHrmOperation,
|
|
6
6
|
hrmOperationDefinitions
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-PUQS5MWL.js";
|
|
8
|
+
import "./chunk-D4ADSZ7H.js";
|
|
9
|
+
import "./chunk-56EZERK4.js";
|
|
10
|
+
import "./chunk-UG5G54VL.js";
|
|
11
11
|
import "./chunk-BUSC6UAE.js";
|
|
12
12
|
export {
|
|
13
13
|
getHrmOperation,
|
|
@@ -3,10 +3,10 @@ const require = __esbuildCreateRequire(import.meta.url);
|
|
|
3
3
|
import {
|
|
4
4
|
getImOperation,
|
|
5
5
|
imOperationDefinitions
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-Q4OYAQYH.js";
|
|
7
|
+
import "./chunk-IC62NFM5.js";
|
|
8
8
|
import "./chunk-YLCYX7LE.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-UG5G54VL.js";
|
|
10
10
|
import "./chunk-BUSC6UAE.js";
|
|
11
11
|
export {
|
|
12
12
|
getImOperation,
|
|
@@ -6,11 +6,12 @@ import {
|
|
|
6
6
|
loadRooms,
|
|
7
7
|
recommendRooms,
|
|
8
8
|
rememberFrequentRoom
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-GM6J7Q4B.js";
|
|
10
|
+
import "./chunk-Z7VYWPZV.js";
|
|
11
|
+
import "./chunk-GAMZLAG2.js";
|
|
12
|
+
import "./chunk-QVSWRLLU.js";
|
|
13
|
+
import "./chunk-7BDPM5ST.js";
|
|
14
|
+
import "./chunk-UG5G54VL.js";
|
|
14
15
|
import "./chunk-BUSC6UAE.js";
|
|
15
16
|
export {
|
|
16
17
|
ebRoomRecommendOperation,
|