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.
Files changed (401) hide show
  1. package/README.md +17 -0
  2. package/dist/chunks/{archive-JHTONRST.js → archive-P6TBQGKL.js} +13 -5
  3. package/dist/chunks/{archive-oa-FCHLCPHC.js → archive-oa-7TQ2NXOH.js} +12 -5
  4. package/dist/chunks/{asset-RLIHC7DB.js → asset-3ELRG37G.js} +11 -4
  5. package/dist/chunks/{asset-idle-KVOFTLCP.js → asset-idle-WIGMUFMD.js} +7 -3
  6. package/dist/chunks/{attachment-content-RZYDB3MB.js → attachment-content-E3276UOV.js} +5 -4
  7. package/dist/chunks/{blog-42OZTJNP.js → blog-C5NMZAAC.js} +11 -4
  8. package/dist/chunks/{caizhilian-KRK547K5.js → caizhilian-5XSM2DFP.js} +13 -6
  9. package/dist/chunks/{calendar-RTWAMKHD.js → calendar-FI2WNSBO.js} +71 -26
  10. package/dist/chunks/{chunk-CXRQWOZ5.js → chunk-3YBDYOC4.js} +3 -3
  11. package/dist/chunks/{chunk-OOUTBLZ4.js → chunk-56EZERK4.js} +1 -1
  12. package/dist/chunks/chunk-6N4JPNFL.js +76 -0
  13. package/dist/chunks/{chunk-ZUX3P6BQ.js → chunk-727FH2NI.js} +1 -1
  14. package/dist/chunks/chunk-7BDPM5ST.js +11 -0
  15. package/dist/chunks/{chunk-LN447PY2.js → chunk-BCVYBYYT.js} +432 -2247
  16. package/dist/chunks/{chunk-7E6MUOEK.js → chunk-CWYGFU5B.js} +2 -2
  17. package/dist/chunks/{chunk-NOODWMCL.js → chunk-D4ADSZ7H.js} +1 -1
  18. package/dist/chunks/{chunk-WFFNM65B.js → chunk-ETNJSKMM.js} +281 -29
  19. package/dist/chunks/{chunk-CAQNBBQA.js → chunk-F4E4EM35.js} +3 -3
  20. package/dist/chunks/{chunk-4CTESSKI.js → chunk-FAZTGX7S.js} +6 -6
  21. package/dist/chunks/chunk-FRZKBMSW.js +2562 -0
  22. package/dist/chunks/{chunk-BYBSCN4X.js → chunk-G7PQWD4L.js} +6 -3
  23. package/dist/chunks/{chunk-NJKREDA3.js → chunk-GAMZLAG2.js} +1 -1
  24. package/dist/chunks/{chunk-FLS4DPGP.js → chunk-GM6J7Q4B.js} +28 -15
  25. package/dist/chunks/{chunk-NETCCARD.js → chunk-GRDRG6HP.js} +3 -3
  26. package/dist/chunks/chunk-HIT4Y6OI.js +1238 -0
  27. package/dist/chunks/{chunk-EZALDOQH.js → chunk-HP7JIYMT.js} +5 -2
  28. package/dist/chunks/{chunk-IZSSVYAG.js → chunk-IAZ3UPY6.js} +3 -3
  29. package/dist/chunks/{chunk-ZEDWSH32.js → chunk-IC62NFM5.js} +1 -1
  30. package/dist/chunks/{chunk-P26ZWSKU.js → chunk-KIHNAS25.js} +5 -2
  31. package/dist/chunks/{chunk-57IECMWX.js → chunk-N4M2DDFE.js} +29 -15
  32. package/dist/chunks/{chunk-JWRZM2H2.js → chunk-OF4S23UB.js} +4 -4
  33. package/dist/chunks/{chunk-VNBU55SL.js → chunk-PC7VKEB5.js} +80 -2458
  34. package/dist/chunks/{chunk-G2JSIUWF.js → chunk-PUQS5MWL.js} +91 -2
  35. package/dist/chunks/{chunk-E7OK5WD5.js → chunk-Q4OYAQYH.js} +5 -5
  36. package/dist/chunks/{chunk-7BRU4EFH.js → chunk-QVSWRLLU.js} +35 -6
  37. package/dist/chunks/{chunk-T6EGVBKU.js → chunk-TA7FXXJD.js} +6 -3
  38. package/dist/chunks/{chunk-GPMFD4RD.js → chunk-TXUG266F.js} +1 -1
  39. package/dist/chunks/{chunk-4TEDNCON.js → chunk-UFIT2UU3.js} +354 -56
  40. package/dist/chunks/{chunk-LUSPKZKY.js → chunk-UG5G54VL.js} +1 -0
  41. package/dist/chunks/{chunk-NIAJ5ZCG.js → chunk-UL5XUQ25.js} +5 -2
  42. package/dist/chunks/{chunk-FMPJJYYI.js → chunk-WRXSAVKO.js} +1 -1
  43. package/dist/chunks/{chunk-7U577Q7U.js → chunk-WSF4NNMR.js} +3 -3
  44. package/dist/chunks/chunk-XHK4MDR5.js +2497 -0
  45. package/dist/chunks/{chunk-LFMSDBZN.js → chunk-XNIK66I4.js} +326 -161
  46. package/dist/chunks/{chunk-3SO6QL6U.js → chunk-YWX377BY.js} +5 -2
  47. package/dist/chunks/{chunk-BYATLLEF.js → chunk-Z3GDFVJR.js} +1 -1
  48. package/dist/chunks/{chunk-I566ZYNF.js → chunk-Z7VYWPZV.js} +1 -1
  49. package/dist/chunks/{conflict-VR55AOOO.js → conflict-ARLSZJ6V.js} +4 -3
  50. package/dist/chunks/{continuation-2CKSBLA6.js → continuation-3S37AUSH.js} +4 -3
  51. package/dist/chunks/{continuation-RN6PZN2M.js → continuation-3XLYYTKV.js} +4 -3
  52. package/dist/chunks/{continuation-HZIZRZBX.js → continuation-HFW2YT5S.js} +4 -3
  53. package/dist/chunks/{continuation-NLECEJPX.js → continuation-KI7DRRZN.js} +4 -3
  54. package/dist/chunks/{contract-HI4FNPYE.js → contract-DNIIW5VJ.js} +13 -5
  55. package/dist/chunks/{cowork-HJLI353D.js → cowork-GMLRGVIW.js} +31 -14
  56. package/dist/chunks/create-flow-J22BO65E.js +56 -0
  57. package/dist/chunks/{ebuilder-form-HTGI63UU.js → ebuilder-form-ANV2FHYV.js} +12 -7
  58. package/dist/chunks/{ehr-GYXIYH3A.js → ehr-GSTGAIY3.js} +695 -1255
  59. package/dist/chunks/{employee-SAK2QYXX.js → employee-22BGJ3QS.js} +3 -3
  60. package/dist/chunks/{env-DW3G4HUO.js → env-BX3VRFS7.js} +4 -3
  61. package/dist/chunks/{esb-I5INCEFE.js → esb-ATAIASX2.js} +12 -7
  62. package/dist/chunks/{factory-TKXGXS6L.js → factory-PETTFME6.js} +3 -2
  63. package/dist/chunks/{fna-K2MHTQ24.js → fna-YEKBSFSX.js} +14 -8
  64. package/dist/chunks/{group-chat-VYBNMJLG.js → group-chat-BFVXAYFX.js} +7 -4
  65. package/dist/chunks/{host-D5SERMAJ.js → host-HRBXEPDQ.js} +5 -5
  66. package/dist/chunks/{host-JM4YVHFM.js → host-LR55CTHP.js} +5 -5
  67. package/dist/chunks/{host-L3VLITMT.js → host-SUOY6VYQ.js} +5 -5
  68. package/dist/chunks/{host-ZUQTJYYK.js → host-SZGV4UNT.js} +5 -5
  69. package/dist/chunks/{host-256GVCAH.js → host-WIKN2EJ5.js} +5 -5
  70. package/dist/chunks/{hrm-VLRBKTZB.js → hrm-NRDO4W5G.js} +11 -7
  71. package/dist/chunks/{im-QK3VTLXK.js → im-IQ2HN23S.js} +11 -10
  72. package/dist/chunks/{invoice-T5JTA32H.js → invoice-MNRW76PP.js} +636 -1768
  73. package/dist/chunks/{jiuchuanhui-P2FNEQVZ.js → jiuchuanhui-DTRBAX4N.js} +14 -6
  74. package/dist/chunks/{lazy-dispatch-XRRI46M6.js → lazy-dispatch-ZVWAI25B.js} +7 -6
  75. package/dist/chunks/{mail-3Y7MJ6PS.js → mail-ZVAUXOJA.js} +16 -14
  76. package/dist/chunks/{meeting-M7LTXGJE.js → meeting-FEVPZ67S.js} +21 -13
  77. package/dist/chunks/{okr-OBC6S67L.js → okr-SDH3E5RA.js} +12 -5
  78. package/dist/chunks/{operations-5QL3AECO.js → operations-62N6EP3C.js} +4 -3
  79. package/dist/chunks/{plan-5H6I53SK.js → plan-E35JFDI7.js} +12 -5
  80. package/dist/chunks/{project-L75QZV4S.js → project-73QXBAB2.js} +49 -25
  81. package/dist/chunks/reception-UWZVACBN.js +1899 -0
  82. package/dist/chunks/recruit-stage-4MAOCKFY.js +4770 -0
  83. package/dist/chunks/registry-IM5G23LS.js +24 -0
  84. package/dist/chunks/{registry-UGRBCBHO.js → registry-JDUS4E7D.js} +7 -6
  85. package/dist/chunks/{registry-RXPN6BBT.js → registry-KNKSCJNT.js} +7 -6
  86. package/dist/chunks/{registry-NYPYMZXG.js → registry-PO7SI256.js} +4 -4
  87. package/dist/chunks/{registry-QGHFNUWS.js → registry-PVUZQDDQ.js} +3 -3
  88. package/dist/chunks/{room-recommend-A3UDC3CA.js → room-recommend-H7KLXA5R.js} +6 -5
  89. package/dist/chunks/{schedule-5GCACCK7.js → schedule-ESZIBAUO.js} +6 -5
  90. package/dist/chunks/{workflow-M5ZJ7DWF.js → workflow-CWJFJLQU.js} +15 -10
  91. package/dist/cmd/action.js +6 -0
  92. package/dist/cmd/identity/index.js +45 -0
  93. package/dist/cmd/index.js +2 -0
  94. package/dist/core/continuation-ttl.js +18 -0
  95. package/dist/core/error-codes.js +85 -0
  96. package/dist/core/logger.js +11 -0
  97. package/dist/index.js +41 -30
  98. package/dist/internal/e10/auth/commands.js +164 -8
  99. package/dist/internal/e10/auth/error-log.js +182 -0
  100. package/dist/internal/e10/auth/messages.js +6 -0
  101. package/dist/internal/e10/auth/session.js +34 -3
  102. package/dist/internal/e10/auth/xiaoe.js +286 -44
  103. package/dist/internal/e10/auth-recovery.js +72 -14
  104. package/dist/internal/e10/context.js +72 -13
  105. package/dist/internal/e10/index.js +1 -1
  106. package/dist/internal/e10/network-error.js +93 -0
  107. package/dist/internal/e10/request-runtime.js +6 -0
  108. package/dist/internal/skills/install.js +9 -1
  109. package/dist/shortcuts/archive/continuation.js +2 -1
  110. package/dist/shortcuts/archive/index.js +3 -0
  111. package/dist/shortcuts/archive/operations/confirm.js +2 -1
  112. package/dist/shortcuts/archive-oa/continuation.js +2 -1
  113. package/dist/shortcuts/archive-oa/index.js +2 -0
  114. package/dist/shortcuts/archive-oa/operations/confirm.js +2 -1
  115. package/dist/shortcuts/asset/continuation.js +2 -1
  116. package/dist/shortcuts/asset/index.js +2 -0
  117. package/dist/shortcuts/asset-idle/index.js +2 -0
  118. package/dist/shortcuts/blog/continuation.js +2 -1
  119. package/dist/shortcuts/blog/index.js +2 -0
  120. package/dist/shortcuts/caizhilian/continuation.js +2 -1
  121. package/dist/shortcuts/caizhilian/index.js +2 -0
  122. package/dist/shortcuts/caizhilian/operations/confirm.js +3 -2
  123. package/dist/shortcuts/calendar/continuation.js +2 -1
  124. package/dist/shortcuts/calendar/index.js +2 -0
  125. package/dist/shortcuts/calendar/operations/read.js +31 -22
  126. package/dist/shortcuts/calendar/operations/write.js +46 -2
  127. package/dist/shortcuts/contract/continuation.js +2 -1
  128. package/dist/shortcuts/contract/index.js +2 -0
  129. package/dist/shortcuts/contract/operations/write.js +2 -1
  130. package/dist/shortcuts/cowork/continuation.js +2 -1
  131. package/dist/shortcuts/cowork/index.js +2 -0
  132. package/dist/shortcuts/cowork/operations/discuss-write.js +5 -1
  133. package/dist/shortcuts/cowork/operations/item-write.js +1 -7
  134. package/dist/shortcuts/cowork/operations/member-write.js +3 -1
  135. package/dist/shortcuts/cowork/operations/permission-write.js +5 -1
  136. package/dist/shortcuts/cowork/operations/shared.js +7 -0
  137. package/dist/shortcuts/ebuilder-form/continuation.js +2 -1
  138. package/dist/shortcuts/ebuilder-form/index.js +2 -0
  139. package/dist/shortcuts/ebuilder-form/operations/write.js +3 -2
  140. package/dist/shortcuts/ehr/continuation.js +2 -1
  141. package/dist/shortcuts/ehr/index.js +2 -0
  142. package/dist/shortcuts/ehr/operations/attend-write.js +44 -2
  143. package/dist/shortcuts/ehr/operations/hr-contact.js +7 -4
  144. package/dist/shortcuts/ehr/operations/hr-report.js +13 -7
  145. package/dist/shortcuts/ehr/operations/recruit-candidate-import.js +317 -63
  146. package/dist/shortcuts/ehr/operations/recruit-position.js +134 -2
  147. package/dist/shortcuts/ehr/operations/recruit-write.js +263 -18
  148. package/dist/shortcuts/ehr/operations/recruit.js +10 -4
  149. package/dist/shortcuts/ehr/operations/shared.js +47 -0
  150. package/dist/shortcuts/esb/continuation.js +2 -1
  151. package/dist/shortcuts/esb/index.js +2 -0
  152. package/dist/shortcuts/esb/operations/trigger.js +2 -1
  153. package/dist/shortcuts/fna/continuation.js +2 -1
  154. package/dist/shortcuts/fna/index.js +2 -0
  155. package/dist/shortcuts/fna/operations/invoice-writeoff.js +1 -1
  156. package/dist/shortcuts/fna/operations/loan.js +1 -1
  157. package/dist/shortcuts/hrm/index.js +2 -0
  158. package/dist/shortcuts/hrm/operations/org.js +118 -0
  159. package/dist/shortcuts/im/continuation.js +2 -1
  160. package/dist/shortcuts/index.js +10 -0
  161. package/dist/shortcuts/invoice/continuation.js +2 -1
  162. package/dist/shortcuts/invoice/index.js +14 -15
  163. package/dist/shortcuts/invoice/invoice-record.js +93 -0
  164. package/dist/shortcuts/invoice/manifest.js +190 -393
  165. package/dist/shortcuts/invoice/operations/add.js +2 -1
  166. package/dist/shortcuts/invoice/operations/delete.js +2 -1
  167. package/dist/shortcuts/invoice/operations/import.js +2 -1
  168. package/dist/shortcuts/invoice/operations/issuing-contract-detail.js +86 -0
  169. package/dist/shortcuts/invoice/operations/issuing-contracts.js +210 -0
  170. package/dist/shortcuts/invoice/operations/registry.js +17 -17
  171. package/dist/shortcuts/invoice/operations/reim-auto.js +4 -569
  172. package/dist/shortcuts/invoice/operations/reim.js +52 -341
  173. package/dist/shortcuts/invoice/operations/shared.js +21 -4
  174. package/dist/shortcuts/invoice/operations/update.js +2 -1
  175. package/dist/shortcuts/invoice/projection.js +10 -62
  176. package/dist/shortcuts/jiuchuanhui/continuation.js +2 -1
  177. package/dist/shortcuts/jiuchuanhui/index.js +2 -0
  178. package/dist/shortcuts/jiuchuanhui/operations/datajson.js +2 -1
  179. package/dist/shortcuts/jiuchuanhui/operations/esb.js +2 -1
  180. package/dist/shortcuts/mail/continuation.js +2 -1
  181. package/dist/shortcuts/mail/index.js +2 -0
  182. package/dist/shortcuts/mail/operations/mail-blacklist.js +1 -1
  183. package/dist/shortcuts/mail/operations/mail-contacts.js +1 -1
  184. package/dist/shortcuts/mail/operations/mail-send.js +1 -1
  185. package/dist/shortcuts/mail/operations/mail-sign.js +1 -1
  186. package/dist/shortcuts/mail/operations/mail-template.js +1 -1
  187. package/dist/shortcuts/meeting/continuation.js +2 -1
  188. package/dist/shortcuts/meeting/index.js +2 -0
  189. package/dist/shortcuts/meeting/operations/change.js +1 -1
  190. package/dist/shortcuts/meeting/operations/create.js +1 -1
  191. package/dist/shortcuts/meeting/operations/eb/catalog.js +4 -1
  192. package/dist/shortcuts/meeting/operations/eb/create-flow.js +101 -35
  193. package/dist/shortcuts/meeting/operations/eb/decision.js +1 -1
  194. package/dist/shortcuts/meeting/operations/eb/factory.js +34 -1
  195. package/dist/shortcuts/meeting/operations/eb/group-chat.js +25 -3
  196. package/dist/shortcuts/meeting/operations/eb/person-cache.js +96 -0
  197. package/dist/shortcuts/meeting/operations/eb/room-recommend.js +33 -11
  198. package/dist/shortcuts/meeting/operations/lifecycle.js +1 -1
  199. package/dist/shortcuts/meeting/operations/receipts.js +1 -1
  200. package/dist/shortcuts/meeting/operations/signs.js +1 -1
  201. package/dist/shortcuts/okr/continuation.js +2 -1
  202. package/dist/shortcuts/okr/index.js +2 -0
  203. package/dist/shortcuts/okr/operations/write.js +1 -1
  204. package/dist/shortcuts/plan/continuation.js +2 -1
  205. package/dist/shortcuts/plan/index.js +2 -0
  206. package/dist/shortcuts/plan/operations/write.js +1 -1
  207. package/dist/shortcuts/project/continuation.js +2 -1
  208. package/dist/shortcuts/project/index.js +2 -0
  209. package/dist/shortcuts/project/operations/read.js +6 -25
  210. package/dist/shortcuts/project/operations/shared.js +22 -0
  211. package/dist/shortcuts/project/operations/write.js +28 -2
  212. package/dist/shortcuts/reception/constants.js +53 -0
  213. package/dist/shortcuts/reception/errors.js +54 -0
  214. package/dist/shortcuts/reception/host.js +125 -0
  215. package/dist/shortcuts/reception/index.js +198 -0
  216. package/dist/shortcuts/reception/manifest.js +177 -0
  217. package/dist/shortcuts/reception/operations/ask.js +71 -0
  218. package/dist/shortcuts/reception/operations/browsertool.js +58 -0
  219. package/dist/shortcuts/reception/operations/compose.js +129 -0
  220. package/dist/shortcuts/reception/operations/customparams.js +74 -0
  221. package/dist/shortcuts/reception/operations/doc.js +238 -0
  222. package/dist/shortcuts/reception/operations/docrender.js +36 -0
  223. package/dist/shortcuts/reception/operations/panels.js +179 -0
  224. package/dist/shortcuts/reception/operations/registry.js +26 -0
  225. package/dist/shortcuts/reception/operations/render-assets.js +184 -0
  226. package/dist/shortcuts/reception/operations/render.js +123 -0
  227. package/dist/shortcuts/reception/operations/runs.js +38 -0
  228. package/dist/shortcuts/reception/operations/schedule.js +127 -0
  229. package/dist/shortcuts/reception/operations/shared.js +196 -0
  230. package/dist/shortcuts/reception/operations/snapshot.js +68 -0
  231. package/dist/shortcuts/reception/operations/types.js +1 -0
  232. package/dist/shortcuts/reception/operations.js +33 -0
  233. package/dist/shortcuts/reception/upload.js +218 -0
  234. package/dist/shortcuts/recruit-stage/context.js +231 -0
  235. package/dist/shortcuts/recruit-stage/continuation.js +74 -0
  236. package/dist/shortcuts/recruit-stage/errors.js +65 -0
  237. package/dist/shortcuts/recruit-stage/host.js +109 -0
  238. package/dist/shortcuts/recruit-stage/index.js +115 -0
  239. package/dist/shortcuts/recruit-stage/manifest.js +29 -0
  240. package/dist/shortcuts/recruit-stage/operations/interview-arrange.js +722 -0
  241. package/dist/shortcuts/recruit-stage/operations/interview-feedback.js +269 -0
  242. package/dist/shortcuts/recruit-stage/operations/jd-create.js +719 -0
  243. package/dist/shortcuts/recruit-stage/operations/list.js +431 -0
  244. package/dist/shortcuts/recruit-stage/operations/registry.js +38 -0
  245. package/dist/shortcuts/recruit-stage/operations/resume-import.js +1354 -0
  246. package/dist/shortcuts/recruit-stage/operations/search.js +158 -0
  247. package/dist/shortcuts/recruit-stage/operations/types.js +25 -0
  248. package/dist/shortcuts/recruit-stage/school-tiers.json +318 -0
  249. package/dist/shortcuts/recruit-stage/shared.js +608 -0
  250. package/dist/shortcuts/workflow/continuation.js +2 -1
  251. package/dist/shortcuts/workflow/index.js +2 -0
  252. package/dist/shortcuts/workflow/operations/form.js +32 -8
  253. package/dist/shortcuts/workflow/operations/todoSmartConvert/detailFieldRules.js +4 -2
  254. package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +13 -6
  255. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailCache.js +17 -24
  256. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailFetcher.js +14 -9
  257. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +50 -8
  258. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +2 -1
  259. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.detail.js +17 -11
  260. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +7 -39
  261. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.groupSummary.js +3 -2
  262. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +51 -15
  263. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.pipeline.js +16 -1
  264. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.smartGroup.js +151 -63
  265. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.subGroup.js +56 -0
  266. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +39 -14
  267. package/dist/shortcuts/workflow/operations/write.js +1 -1
  268. package/docs/_catalog.md +3 -0
  269. package/docs/agent-invoice.md +1 -1
  270. package/docs/archive-oa.md +1 -1
  271. package/docs/caizhilian.md +1 -1
  272. package/docs/calendar.md +1 -1
  273. package/docs/contract.md +1 -1
  274. package/docs/e10-auth.md +23 -1
  275. package/docs/ehr.md +2 -2
  276. package/docs/esb.md +1 -1
  277. package/docs/im.md +1 -1
  278. package/docs/invoice.md +8 -12
  279. package/docs/okr.md +1 -1
  280. package/docs/operation-manual.md +8 -0
  281. package/docs/reception.md +119 -0
  282. package/package.json +1 -1
  283. package/scripts/clean.mjs +43 -2
  284. package/scripts/install-skill-to-xiaoe.mjs +105 -0
  285. package/scripts/package-skill.mjs +4 -2
  286. package/skill-template/business-info.json +42 -2
  287. package/skill-template/domains/caizhilian.md +1 -1
  288. package/skill-template/domains/reception-flow.md +18 -0
  289. package/skill-template/domains/recruit-stage.md +29 -0
  290. package/skill-template/domains/yepiaotong.md +4 -7
  291. package/skills/weaver-e10-archive-oa/references/source-manifest.json +14 -14
  292. package/skills/weaver-e10-blog/references/blog-publish.md +1 -1
  293. package/skills/weaver-e10-blog/references/source-manifest.json +7 -7
  294. package/skills/weaver-e10-caizhilian/references/source-manifest.json +21 -21
  295. package/skills/weaver-e10-caizhilian/references/write-protocol.md +2 -2
  296. package/skills/weaver-e10-calendar/SKILL.md +2 -1
  297. package/skills/weaver-e10-calendar/references/calendar-write.md +55 -1
  298. package/skills/weaver-e10-cowork/SKILL.md +1 -1
  299. package/skills/weaver-e10-cowork/references/cowork-write.md +3 -1
  300. package/skills/weaver-e10-ebuilder-form/SKILL.md +1 -1
  301. package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -1
  302. package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -1
  303. package/skills/weaver-e10-esb/SKILL.md +2 -2
  304. package/skills/weaver-e10-esb/references/source-manifest.json +22 -22
  305. package/skills/weaver-e10-esb/references/trigger.md +2 -2
  306. package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +1 -1
  307. package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +1 -1
  308. package/skills/weaver-e10-jinchengda/references/contract-request-write.md +1 -1
  309. package/skills/weaver-e10-jinchengda/references/source-manifest.json +29 -29
  310. package/skills/weaver-e10-jucailin/SKILL.md +1 -1
  311. package/skills/weaver-e10-jucailin/references/attend-write.md +10 -2
  312. package/skills/weaver-e10-jucailin/references/hr-contact.md +8 -0
  313. package/skills/weaver-e10-jucailin/references/hr-report.md +8 -0
  314. package/skills/weaver-e10-jucailin/references/recruit-create.md +14 -5
  315. package/skills/weaver-e10-jucailin/references/recruit-read.md +1 -1
  316. package/skills/weaver-e10-jucailin/references/recruit-write.md +5 -4
  317. package/skills/weaver-e10-mail/SKILL.md +1 -1
  318. package/skills/weaver-e10-meeting/SKILL.md +39 -7
  319. package/skills/weaver-e10-meeting/references/meeting-change.md +1 -1
  320. package/skills/weaver-e10-meeting/references/meeting-create.md +1 -1
  321. package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +1 -1
  322. package/skills/weaver-e10-meeting/references/meeting-verification.md +1 -1
  323. package/skills/weaver-e10-okr/references/okr-align.md +1 -1
  324. package/skills/weaver-e10-okr/references/okr-keyresult.md +1 -1
  325. package/skills/weaver-e10-okr/references/okr-write.md +1 -1
  326. package/skills/weaver-e10-okr/references/source-manifest.json +8 -8
  327. package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
  328. package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
  329. package/skills/weaver-e10-qiyecheng/references/loan-management.md +1 -1
  330. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +18 -18
  331. package/skills/weaver-e10-reception-flow/SKILL.md +173 -0
  332. 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
  333. package/skills/weaver-e10-reception-flow/data/fields-snapshot.json +213 -0
  334. package/skills/weaver-e10-reception-flow/references/browsertool.md +68 -0
  335. package/skills/weaver-e10-reception-flow/references/env-pitfalls.md +51 -0
  336. package/skills/weaver-e10-reception-flow/references/fields-snapshot.md +227 -0
  337. package/skills/weaver-e10-reception-flow/references/guide.md +179 -0
  338. package/skills/weaver-e10-reception-flow/scripts/locate.sh +14 -0
  339. package/skills/weaver-e10-reception-flow/scripts/render.py +724 -0
  340. package/skills/weaver-e10-recruit-stage/SKILL.md +230 -0
  341. package/skills/weaver-e10-recruit-stage/agents/openai.yaml +119 -0
  342. package/skills/weaver-e10-recruit-stage/lib/recruit-xiaoe-file.mjs +188 -0
  343. package/skills/weaver-e10-recruit-stage/lib/xiaoe-session.mjs +66 -0
  344. package/skills/weaver-e10-recruit-stage/references/position-templates.md +202 -0
  345. package/skills/weaver-e10-recruit-stage/references/recruit-arrange-interview.md +322 -0
  346. package/skills/weaver-e10-recruit-stage/references/recruit-capability-check.md +127 -0
  347. package/skills/weaver-e10-recruit-stage/references/recruit-check-install.md +65 -0
  348. package/skills/weaver-e10-recruit-stage/references/recruit-detail-process.md +63 -0
  349. package/skills/weaver-e10-recruit-stage/references/recruit-edit-interview-feedback.md +142 -0
  350. package/skills/weaver-e10-recruit-stage/references/recruit-jd-create.md +95 -0
  351. package/skills/weaver-e10-recruit-stage/references/recruit-jd-template.md +56 -0
  352. package/skills/weaver-e10-recruit-stage/references/recruit-list-candidate.md +101 -0
  353. package/skills/weaver-e10-recruit-stage/references/recruit-list-interview.md +148 -0
  354. package/skills/weaver-e10-recruit-stage/references/recruit-match-candidates.md +77 -0
  355. package/skills/weaver-e10-recruit-stage/references/recruit-output-links.md +59 -0
  356. package/skills/weaver-e10-recruit-stage/references/recruit-resolve-creator.md +69 -0
  357. package/skills/weaver-e10-recruit-stage/references/recruit-resolve-metadata.md +241 -0
  358. package/skills/weaver-e10-recruit-stage/references/recruit-resume-import.md +451 -0
  359. package/skills/weaver-e10-recruit-stage/references/recruit-resume-parse.md +128 -0
  360. package/skills/weaver-e10-recruit-stage/references/recruit-search-candidate.md +146 -0
  361. package/skills/weaver-e10-recruit-stage/references/recruit-urge-feedback.md +69 -0
  362. package/skills/weaver-e10-shared/SKILL.md +1 -1
  363. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +10 -2
  364. package/skills/weaver-e10-shijingran/SKILL.md +7 -6
  365. package/skills/weaver-e10-shijingran/references/operations.md +3 -1
  366. package/skills/weaver-e10-shijingran/references/source-manifest.json +30 -28
  367. package/skills/weaver-e10-shijingran/references/write-operations.md +2 -0
  368. package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +2 -0
  369. package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
  370. package/skills/weaver-e10-workflow/SKILL.md +4 -2
  371. package/skills/weaver-e10-workflow/aigroup/default.json +11 -9
  372. package/skills/weaver-e10-workflow/references/source-manifest.json +32 -32
  373. package/skills/weaver-e10-workflow/references/todo-smart-convert.md +23 -13
  374. package/skills/weaver-e10-workflow/tools/todo-summary.cjs +62 -20
  375. package/skills/weaver-e10-yepiaotong/SKILL.md +28 -36
  376. package/skills/weaver-e10-yepiaotong/references/invoice-agent-entry.md +6 -3
  377. package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +13 -10
  378. package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +2 -0
  379. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +194 -155
  380. package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +28 -32
  381. package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +5 -1
  382. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +8 -10
  383. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +211 -616
  384. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +149 -117
  385. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +17 -20
  386. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +20 -39
  387. package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +55 -22
  388. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -17
  389. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +88 -92
  390. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +144 -354
  391. package/skills/weaver-e10-yimiaoban/SKILL.md +1 -1
  392. package/skills/weaver-e10-yimiaoban/references/msg-write.md +1 -1
  393. package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +1 -1
  394. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +7 -7
  395. package/dist/chunks/chunk-SPRHHSVC.js +0 -465
  396. package/dist/chunks/registry-KMHCPAAD.js +0 -22
  397. package/dist/shortcuts/invoice/markdown.js +0 -172
  398. package/dist/shortcuts/invoice/operations/issuing-qys.js +0 -424
  399. package/skills/weaver-e10-meeting.zip +0 -0
  400. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +0 -131
  401. 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-NJKREDA3.js";
5
+ } from "./chunk-GAMZLAG2.js";
6
6
  import {
7
7
  SCHEMA_ID,
8
8
  meetingSuccess,
9
9
  meetingValidationError,
10
10
  schemaOf
11
- } from "./chunk-7BRU4EFH.js";
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-OOUTBLZ4.js";
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-4TEDNCON.js";
20
+ } from "./chunk-UFIT2UU3.js";
15
21
  import {
16
- CliError
17
- } from "./chunk-LUSPKZKY.js";
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
- if (!canAutomaticallyRecoverXiaoE(ctx, currentSession)) return null;
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
- const login = await tryXiaoEUnifiedLogin({
184
- env: ctx.env,
185
- baseUrl,
186
- profileBaseUrl: baseUrl,
187
- allowBundledEnvScript: true,
188
- allowTokenScript: true,
189
- tenantKeyFallback: currentSession?.tenantKey || config.tenantKey,
190
- profileHint: profile
191
- // Intentionally no logger: transparent recovery must not leak an
192
- // intermediate "login" step into agent stdout/stderr or JSON output.
193
- });
194
- return login?.session || null;
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
- return Object.assign(new CliError(E10_XIAOE_RECOVERY_FAILED_MESSAGE, 3 /* AuthError */), {
213
- type: "authentication",
214
- subtype: "xiaoe_credential_unavailable",
215
- retryable: false,
216
- stage: "xiaoe_unified_login"
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
- session = await recoverXiaoEAuthSession(ctx, session).catch(() => null);
227
- if (!session || session.isExpired()) throw xiaoERecoveryFailedError();
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
- session = await recoverXiaoEAuthSession(ctx).catch(() => null);
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-GPMFD4RD.js";
11
+ } from "./chunk-TXUG266F.js";
12
12
  import {
13
13
  E10ApiError,
14
14
  createE10RequestRuntime,
15
15
  isE10SessionExpiredResponse,
16
16
  requireE10Session
17
- } from "./chunk-WFFNM65B.js";
17
+ } from "./chunk-ETNJSKMM.js";
18
18
  import {
19
19
  E10_SESSION_EXPIRED_MESSAGE,
20
20
  getActiveProfile
21
- } from "./chunk-4TEDNCON.js";
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-I566ZYNF.js";
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-7BRU4EFH.js";
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-256GVCAH.js");
114
- const { createEsbContinuationSigner } = await import("./continuation-NLECEJPX.js");
115
- const { getEsbOperation } = await import("./registry-RXPN6BBT.js");
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-SAK2QYXX.js");
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) {