weaver-work-cli 0.1.1 → 0.1.4

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 (351) hide show
  1. package/README.md +187 -76
  2. package/dist/cmd/setup/index.js +5 -5
  3. package/dist/cmd/skills/index.js +1 -1
  4. package/dist/core/hooks.js +7 -0
  5. package/dist/index.js +0 -0
  6. package/dist/internal/e10/auth/commands.js +160 -55
  7. package/dist/internal/e10/auth/crypto.js +7 -22
  8. package/dist/internal/e10/auth/session.js +1 -1
  9. package/dist/internal/e10/auth/xiaoe.js +268 -0
  10. package/dist/internal/e10/context.js +16 -2
  11. package/dist/internal/e10/index.js +1 -0
  12. package/dist/internal/e10/request-runtime.js +344 -0
  13. package/dist/internal/skills/install.js +48 -6
  14. package/dist/internal/skills/reader.js +27 -0
  15. package/dist/shortcuts/archive/continuation.js +70 -0
  16. package/dist/shortcuts/archive/errors.js +53 -0
  17. package/dist/shortcuts/archive/host.js +197 -0
  18. package/dist/shortcuts/archive/index.js +363 -0
  19. package/dist/shortcuts/archive/manifest.js +45 -0
  20. package/dist/shortcuts/archive/operations/archive-info.js +55 -0
  21. package/dist/shortcuts/archive/operations/borrow-car.js +146 -0
  22. package/dist/shortcuts/archive/operations/borrow-list.js +200 -0
  23. package/dist/shortcuts/archive/operations/confirm.js +46 -0
  24. package/dist/shortcuts/archive/operations/download.js +238 -0
  25. package/dist/shortcuts/archive/operations/flow-url.js +240 -0
  26. package/dist/shortcuts/archive/operations/fonds.js +95 -0
  27. package/dist/shortcuts/archive/operations/getPageUrl.js +137 -0
  28. package/dist/shortcuts/archive/operations/registry.js +43 -0
  29. package/dist/shortcuts/archive/operations/search.js +88 -0
  30. package/dist/shortcuts/archive/operations/shared.js +120 -0
  31. package/dist/shortcuts/archive/operations/types.js +23 -0
  32. package/dist/shortcuts/archive/operations/upload.js +182 -0
  33. package/dist/shortcuts/archive/operations.js +13 -0
  34. package/dist/shortcuts/archive/render/search-format.js +276 -0
  35. package/dist/shortcuts/archive/render/search-view.js +125 -0
  36. package/dist/shortcuts/asset/continuation.js +70 -0
  37. package/dist/shortcuts/asset/errors.js +67 -0
  38. package/dist/shortcuts/asset/host.js +438 -0
  39. package/dist/shortcuts/asset/index.js +255 -0
  40. package/dist/shortcuts/asset/manifest.js +471 -0
  41. package/dist/shortcuts/asset/operations/query.js +249 -0
  42. package/dist/shortcuts/asset/operations/registry.js +85 -0
  43. package/dist/shortcuts/asset/operations/shared.js +100 -0
  44. package/dist/shortcuts/asset/operations/type-cache.js +49 -0
  45. package/dist/shortcuts/asset/operations/types.js +1 -0
  46. package/dist/shortcuts/asset/operations/viewlink.js +117 -0
  47. package/dist/shortcuts/asset/operations/write.js +435 -0
  48. package/dist/shortcuts/asset/operations.js +9 -0
  49. package/dist/shortcuts/calendar/continuation.js +70 -0
  50. package/dist/shortcuts/calendar/errors.js +53 -0
  51. package/dist/shortcuts/calendar/host.js +148 -0
  52. package/dist/shortcuts/calendar/index.js +125 -0
  53. package/dist/shortcuts/calendar/manifest.js +26 -0
  54. package/dist/shortcuts/calendar/operations/read.js +259 -0
  55. package/dist/shortcuts/calendar/operations/registry.js +31 -0
  56. package/dist/shortcuts/calendar/operations/shared.js +132 -0
  57. package/dist/shortcuts/calendar/operations/types.js +25 -0
  58. package/dist/shortcuts/calendar/operations/write.js +439 -0
  59. package/dist/shortcuts/calendar/operations.js +8 -0
  60. package/dist/shortcuts/ehr/continuation.js +70 -0
  61. package/dist/shortcuts/ehr/errors.js +53 -0
  62. package/dist/shortcuts/ehr/host.js +213 -0
  63. package/dist/shortcuts/ehr/index.js +205 -0
  64. package/dist/shortcuts/ehr/manifest.js +47 -0
  65. package/dist/shortcuts/ehr/operations/attend-read.js +373 -0
  66. package/dist/shortcuts/ehr/operations/attend-write.js +514 -0
  67. package/dist/shortcuts/ehr/operations/hr-contact.js +363 -0
  68. package/dist/shortcuts/ehr/operations/hr-ds.js +298 -0
  69. package/dist/shortcuts/ehr/operations/hr-report.js +386 -0
  70. package/dist/shortcuts/ehr/operations/recruit-write.js +1629 -0
  71. package/dist/shortcuts/ehr/operations/recruit.js +803 -0
  72. package/dist/shortcuts/ehr/operations/registry.js +43 -0
  73. package/dist/shortcuts/ehr/operations/salary.js +319 -0
  74. package/dist/shortcuts/ehr/operations/shared.js +246 -0
  75. package/dist/shortcuts/ehr/operations/types.js +25 -0
  76. package/dist/shortcuts/ehr/operations.js +25 -0
  77. package/dist/shortcuts/esb/continuation.js +70 -0
  78. package/dist/shortcuts/esb/errors.js +65 -0
  79. package/dist/shortcuts/esb/host.js +187 -0
  80. package/dist/shortcuts/esb/index.js +112 -0
  81. package/dist/shortcuts/esb/manifest.js +91 -0
  82. package/dist/shortcuts/esb/operations/input-format.js +31 -0
  83. package/dist/shortcuts/esb/operations/registry.js +48 -0
  84. package/dist/shortcuts/esb/operations/shared.js +152 -0
  85. package/dist/shortcuts/esb/operations/trigger.js +76 -0
  86. package/dist/shortcuts/esb/operations/types.js +21 -0
  87. package/dist/shortcuts/esb/operations.js +15 -0
  88. package/dist/shortcuts/fna/continuation.js +70 -0
  89. package/dist/shortcuts/fna/errors.js +59 -0
  90. package/dist/shortcuts/fna/host.js +146 -0
  91. package/dist/shortcuts/fna/index.js +111 -0
  92. package/dist/shortcuts/fna/manifest.js +41 -0
  93. package/dist/shortcuts/fna/operations/budget.js +124 -0
  94. package/dist/shortcuts/fna/operations/expense-center.js +148 -0
  95. package/dist/shortcuts/fna/operations/invoice-writeoff.js +212 -0
  96. package/dist/shortcuts/fna/operations/loan.js +195 -0
  97. package/dist/shortcuts/fna/operations/registry.js +35 -0
  98. package/dist/shortcuts/fna/operations/shared.js +210 -0
  99. package/dist/shortcuts/fna/operations/types.js +25 -0
  100. package/dist/shortcuts/fna/operations.js +19 -0
  101. package/dist/shortcuts/hrm/errors.js +38 -0
  102. package/dist/shortcuts/hrm/host.js +156 -0
  103. package/dist/shortcuts/hrm/index.js +111 -0
  104. package/dist/shortcuts/hrm/manifest.js +32 -0
  105. package/dist/shortcuts/hrm/operations/employee.js +338 -0
  106. package/dist/shortcuts/hrm/operations/org.js +110 -0
  107. package/dist/shortcuts/hrm/operations/position.js +176 -0
  108. package/dist/shortcuts/hrm/operations/registry.js +33 -0
  109. package/dist/shortcuts/hrm/operations/shared.js +143 -0
  110. package/dist/shortcuts/hrm/operations/types.js +23 -0
  111. package/dist/shortcuts/hrm/operations.js +19 -0
  112. package/dist/shortcuts/index.js +20 -0
  113. package/dist/shortcuts/invoice/host.js +99 -94
  114. package/dist/shortcuts/invoice/index.js +65 -61
  115. package/dist/shortcuts/invoice/manifest.js +222 -14
  116. package/dist/shortcuts/invoice/operations/browse-field.js +17 -0
  117. package/dist/shortcuts/invoice/operations/issuing.js +198 -0
  118. package/dist/shortcuts/invoice/operations/ocr-preview.js +6 -3
  119. package/dist/shortcuts/invoice/operations/registry.js +17 -0
  120. package/dist/shortcuts/invoice/operations/reim.js +401 -0
  121. package/dist/shortcuts/invoice/operations/shared.js +271 -6
  122. package/dist/shortcuts/invoice/operations/validate-preview.js +1 -1
  123. package/dist/shortcuts/jiuchuanhui/cache.js +441 -0
  124. package/dist/shortcuts/jiuchuanhui/continuation.js +70 -0
  125. package/dist/shortcuts/jiuchuanhui/errors.js +59 -0
  126. package/dist/shortcuts/jiuchuanhui/host.js +159 -0
  127. package/dist/shortcuts/jiuchuanhui/index.js +109 -0
  128. package/dist/shortcuts/jiuchuanhui/manifest.js +469 -0
  129. package/dist/shortcuts/jiuchuanhui/operations/datajson.js +214 -0
  130. package/dist/shortcuts/jiuchuanhui/operations/esb.js +157 -0
  131. package/dist/shortcuts/jiuchuanhui/operations/generic.js +146 -0
  132. package/dist/shortcuts/jiuchuanhui/operations/registry.js +133 -0
  133. package/dist/shortcuts/jiuchuanhui/operations/shared.js +158 -0
  134. package/dist/shortcuts/jiuchuanhui/operations/types.js +1 -0
  135. package/dist/shortcuts/jiuchuanhui/operations.js +8 -0
  136. package/dist/shortcuts/mail/continuation.js +70 -0
  137. package/dist/shortcuts/mail/errors.js +53 -0
  138. package/dist/shortcuts/mail/host.js +182 -0
  139. package/dist/shortcuts/mail/index.js +519 -0
  140. package/dist/shortcuts/mail/manifest.js +38 -0
  141. package/dist/shortcuts/mail/operations/mail-blacklist.js +79 -0
  142. package/dist/shortcuts/mail/operations/mail-contacts.js +195 -0
  143. package/dist/shortcuts/mail/operations/mail-manage.js +335 -0
  144. package/dist/shortcuts/mail/operations/mail-read.js +508 -0
  145. package/dist/shortcuts/mail/operations/mail-send.js +474 -0
  146. package/dist/shortcuts/mail/operations/mail-sign.js +203 -0
  147. package/dist/shortcuts/mail/operations/mail-template.js +170 -0
  148. package/dist/shortcuts/mail/operations/registry.js +41 -0
  149. package/dist/shortcuts/mail/operations/shared.js +64 -0
  150. package/dist/shortcuts/mail/operations/types.js +27 -0
  151. package/dist/shortcuts/mail/operations.js +19 -0
  152. package/dist/shortcuts/plan/continuation.js +70 -0
  153. package/dist/shortcuts/plan/errors.js +70 -0
  154. package/dist/shortcuts/plan/host.js +180 -0
  155. package/dist/shortcuts/plan/index.js +150 -0
  156. package/dist/shortcuts/plan/manifest.js +53 -0
  157. package/dist/shortcuts/plan/operations/link.js +256 -0
  158. package/dist/shortcuts/plan/operations/read.js +259 -0
  159. package/dist/shortcuts/plan/operations/registry.js +33 -0
  160. package/dist/shortcuts/plan/operations/shared.js +246 -0
  161. package/dist/shortcuts/plan/operations/types.js +49 -0
  162. package/dist/shortcuts/plan/operations/version.js +49 -0
  163. package/dist/shortcuts/plan/operations/write.js +710 -0
  164. package/dist/shortcuts/plan/operations.js +8 -0
  165. package/docs/SKILL.md +11 -7
  166. package/docs/_catalog.md +23 -5
  167. package/docs/agent-invoice.md +31 -10
  168. package/docs/agent-skill-install.md +211 -0
  169. package/docs/calendar.md +87 -0
  170. package/docs/e10-auth.md +28 -9
  171. package/docs/ehr.md +186 -0
  172. package/docs/esb.md +64 -0
  173. package/docs/fna.md +72 -0
  174. package/docs/hrm.md +89 -0
  175. package/docs/invoice.md +66 -20
  176. package/docs/jiuchuanhui.md +131 -0
  177. package/docs/operation-manual.md +443 -0
  178. package/docs/plan.md +82 -0
  179. package/docs/wenshuding.md +129 -0
  180. package/docs/ziguanjia.md +89 -0
  181. package/package.json +4 -4
  182. package/scripts/package-skill.mjs +127 -34
  183. package/scripts/postbuild.mjs +13 -0
  184. package/skill-template/business-info.json +13 -2
  185. package/skill-template/domains/calendar.md +15 -0
  186. package/skill-template/domains/esb.md +13 -0
  187. package/skill-template/domains/hrm.md +16 -0
  188. package/skill-template/domains/jiuchuanhui.md +23 -0
  189. package/skill-template/domains/jucailin.md +22 -0
  190. package/skill-template/domains/mail.md +21 -0
  191. package/skill-template/domains/plan.md +17 -0
  192. package/skill-template/domains/qiyecheng.md +17 -0
  193. package/skill-template/domains/shared.md +9 -3
  194. package/skill-template/domains/skill-maker.md +10 -0
  195. package/skill-template/domains/wenshuding.md +22 -0
  196. package/skill-template/domains/{invoice.md → yepiaotong.md} +4 -0
  197. package/skill-template/domains/ziguanjia.md +21 -0
  198. package/skill-template/master-skill-template.md +12 -6
  199. package/skill-template/skill-template.md +40 -9
  200. package/skills/weaver-e10-calendar/SKILL.md +101 -0
  201. package/skills/weaver-e10-calendar/product.json +8 -0
  202. package/skills/weaver-e10-calendar/references/calendar-app-check.md +65 -0
  203. package/skills/weaver-e10-calendar/references/calendar-dict.md +55 -0
  204. package/skills/weaver-e10-calendar/references/calendar-query.md +70 -0
  205. package/skills/weaver-e10-calendar/references/calendar-write.md +97 -0
  206. package/skills/weaver-e10-calendar/references/source-manifest.json +54 -0
  207. package/skills/weaver-e10-esb/SKILL.md +102 -0
  208. package/skills/weaver-e10-esb/product.json +8 -0
  209. package/skills/weaver-e10-esb/references/input-format.md +52 -0
  210. package/skills/weaver-e10-esb/references/source-manifest.json +242 -0
  211. package/skills/weaver-e10-esb/references/trigger.md +99 -0
  212. package/skills/weaver-e10-hrm/SKILL.md +87 -0
  213. package/skills/weaver-e10-hrm/product.json +8 -0
  214. package/skills/weaver-e10-hrm/references/employee.md +109 -0
  215. package/skills/weaver-e10-hrm/references/org.md +95 -0
  216. package/skills/weaver-e10-hrm/references/position.md +95 -0
  217. package/skills/weaver-e10-hrm/references/source-manifest.json +121 -0
  218. package/skills/weaver-e10-jiuchuanhui/SKILL.md +174 -0
  219. package/skills/weaver-e10-jiuchuanhui/product.json +8 -0
  220. package/skills/weaver-e10-jiuchuanhui/references/cache.md +110 -0
  221. package/skills/weaver-e10-jiuchuanhui/references/clue.md +61 -0
  222. package/skills/weaver-e10-jiuchuanhui/references/contact-plan.md +56 -0
  223. package/skills/weaver-e10-jiuchuanhui/references/contact-records.md +48 -0
  224. package/skills/weaver-e10-jiuchuanhui/references/contact.md +56 -0
  225. package/skills/weaver-e10-jiuchuanhui/references/customer.md +69 -0
  226. package/skills/weaver-e10-jiuchuanhui/references/disabled-capabilities.md +24 -0
  227. package/skills/weaver-e10-jiuchuanhui/references/discovery-config.md +60 -0
  228. package/skills/weaver-e10-jiuchuanhui/references/general-helpers.md +59 -0
  229. package/skills/weaver-e10-jiuchuanhui/references/jiuchuanhui-entry.md +60 -0
  230. package/skills/weaver-e10-jiuchuanhui/references/sale.md +72 -0
  231. package/skills/weaver-e10-jiuchuanhui/references/source-manifest.json +2632 -0
  232. package/skills/weaver-e10-jucailin/SKILL.md +101 -0
  233. package/skills/weaver-e10-jucailin/product.json +8 -0
  234. package/skills/weaver-e10-jucailin/references/attend-read.md +73 -0
  235. package/skills/weaver-e10-jucailin/references/attend-write.md +82 -0
  236. package/skills/weaver-e10-jucailin/references/hr-contact.md +92 -0
  237. package/skills/weaver-e10-jucailin/references/hr-datasource.md +104 -0
  238. package/skills/weaver-e10-jucailin/references/hr-report.md +76 -0
  239. package/skills/weaver-e10-jucailin/references/recruit-read.md +76 -0
  240. package/skills/weaver-e10-jucailin/references/recruit-write.md +70 -0
  241. package/skills/weaver-e10-jucailin/references/safety-boundaries.md +35 -0
  242. package/skills/weaver-e10-jucailin/references/salary.md +110 -0
  243. package/skills/weaver-e10-jucailin/references/source-manifest.json +152 -0
  244. package/skills/weaver-e10-mail/SKILL.md +151 -0
  245. package/skills/weaver-e10-mail/product.json +8 -0
  246. package/skills/weaver-e10-mail/references/mail-agent-entry.md +47 -0
  247. package/skills/weaver-e10-mail/references/mail-attachment.md +30 -0
  248. package/skills/weaver-e10-mail/references/mail-blacklist.md +27 -0
  249. package/skills/weaver-e10-mail/references/mail-contacts.md +33 -0
  250. package/skills/weaver-e10-mail/references/mail-manage.md +44 -0
  251. package/skills/weaver-e10-mail/references/mail-read.md +76 -0
  252. package/skills/weaver-e10-mail/references/mail-send.md +43 -0
  253. package/skills/weaver-e10-mail/references/mail-sign.md +33 -0
  254. package/skills/weaver-e10-mail/references/mail-template.md +31 -0
  255. package/skills/weaver-e10-mail/references/safety-boundaries.md +32 -0
  256. package/skills/weaver-e10-plan/SKILL.md +139 -0
  257. package/skills/weaver-e10-plan/product.json +8 -0
  258. package/skills/weaver-e10-plan/references/plan-collect-and-compose.md +123 -0
  259. package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +138 -0
  260. package/skills/weaver-e10-plan/references/plan-report-query.md +154 -0
  261. package/skills/weaver-e10-plan/references/plan-report-remind.md +104 -0
  262. package/skills/weaver-e10-plan/references/plan-report-write.md +162 -0
  263. package/skills/weaver-e10-plan/references/source-manifest.json +858 -0
  264. package/skills/weaver-e10-qiyecheng/SKILL.md +118 -0
  265. package/skills/weaver-e10-qiyecheng/product.json +8 -0
  266. package/skills/weaver-e10-qiyecheng/references/budget.md +65 -0
  267. package/skills/weaver-e10-qiyecheng/references/catalog.md +56 -0
  268. package/skills/weaver-e10-qiyecheng/references/expense-center.md +51 -0
  269. package/skills/weaver-e10-qiyecheng/references/invoice-writeoff.md +57 -0
  270. package/skills/weaver-e10-qiyecheng/references/loan-management.md +59 -0
  271. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +698 -0
  272. package/skills/weaver-e10-shared/SKILL.md +86 -0
  273. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +127 -0
  274. package/skills/weaver-e10-shared/references/json-output-contract.md +120 -0
  275. package/skills/weaver-e10-shared/references/weaver-e10-installation.md +110 -0
  276. package/skills/weaver-e10-skill-maker/SKILL.md +77 -0
  277. package/skills/weaver-e10-skill-maker/product.json +8 -0
  278. package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +124 -0
  279. package/skills/weaver-e10-skill-maker/references/detector-validation.md +101 -0
  280. package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +230 -0
  281. package/skills/weaver-e10-skill-maker/references/post-generation-install.md +105 -0
  282. package/skills/weaver-e10-skill-maker/references/source-update-detection.md +261 -0
  283. package/skills/weaver-e10-skill-maker/references/weaver-skill-style.md +141 -0
  284. package/skills/weaver-e10-wenshuding/SKILL.md +157 -0
  285. package/skills/weaver-e10-wenshuding/product.json +8 -0
  286. package/skills/weaver-e10-wenshuding/references/archive-agent-entry.md +63 -0
  287. package/skills/weaver-e10-wenshuding/references/archive-borrow-car.md +52 -0
  288. package/skills/weaver-e10-wenshuding/references/archive-borrow-list.md +52 -0
  289. package/skills/weaver-e10-wenshuding/references/archive-disabled-capabilities.md +22 -0
  290. package/skills/weaver-e10-wenshuding/references/archive-download.md +48 -0
  291. package/skills/weaver-e10-wenshuding/references/archive-flow.md +46 -0
  292. package/skills/weaver-e10-wenshuding/references/archive-fonds.md +34 -0
  293. package/skills/weaver-e10-wenshuding/references/archive-info.md +33 -0
  294. package/skills/weaver-e10-wenshuding/references/archive-search.md +52 -0
  295. package/skills/weaver-e10-wenshuding/references/archive-upload.md +41 -0
  296. package/skills/weaver-e10-wenshuding/references/source-manifest.json +517 -0
  297. package/skills/weaver-e10-yepiaotong/SKILL.md +184 -0
  298. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-add.md +1 -1
  299. package/skills/weaver-e10-yepiaotong/references/invoice-agent-entry.md +47 -0
  300. package/skills/weaver-e10-yepiaotong/references/invoice-browse-field-data.md +204 -0
  301. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-delete.md +1 -1
  302. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-detail.md +13 -5
  303. package/skills/weaver-e10-yepiaotong/references/invoice-disabled-capabilities.md +28 -0
  304. package/skills/weaver-e10-yepiaotong/references/invoice-download.md +31 -0
  305. package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +45 -0
  306. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-file-upload.md +15 -4
  307. package/skills/weaver-e10-yepiaotong/references/invoice-import.md +45 -0
  308. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +120 -0
  309. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-field-rules.md +161 -0
  310. package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +99 -0
  311. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-ocr-preview.md +14 -4
  312. package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +58 -0
  313. package/skills/weaver-e10-yepiaotong/references/invoice-red.md +261 -0
  314. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +97 -0
  315. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-update.md +1 -1
  316. package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/references/invoice-validation-preview.md +10 -3
  317. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +1340 -0
  318. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +845 -0
  319. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +94 -0
  320. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +449 -0
  321. package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +266 -0
  322. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +494 -0
  323. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +1103 -0
  324. package/skills/weaver-e10-ziguanjia/SKILL.md +162 -0
  325. package/skills/weaver-e10-ziguanjia/product.json +8 -0
  326. package/skills/weaver-e10-ziguanjia/references/source-manifest.json +147 -0
  327. package/skills/weaver-e10-ziguanjia/references/ziguanjia-agent-entry.md +65 -0
  328. package/skills/weaver-e10-ziguanjia/references/ziguanjia-create.md +45 -0
  329. package/skills/weaver-e10-ziguanjia/references/ziguanjia-depre.md +48 -0
  330. package/skills/weaver-e10-ziguanjia/references/ziguanjia-disabled-capabilities.md +22 -0
  331. package/skills/weaver-e10-ziguanjia/references/ziguanjia-purch.md +57 -0
  332. package/skills/weaver-e10-ziguanjia/references/ziguanjia-query.md +62 -0
  333. package/skills/weaver-e10-ziguanjia/references/ziguanjia-repair.md +83 -0
  334. package/skills/weaver-e10-ziguanjia/references/ziguanjia-resolve.md +49 -0
  335. package/skills/weaver-e10-ziguanjia/references/ziguanjia-return.md +70 -0
  336. package/skills/weaver-e10-ziguanjia/references/ziguanjia-update.md +45 -0
  337. package/skills/weaver-e10-ziguanjia/references/ziguanjia-use.md +60 -0
  338. package/skills/weaver-e10-ziguanjia/references/ziguanjia-viewlink.md +81 -0
  339. package/skills/weaver-work-cli-invoice/SKILL.md +0 -103
  340. package/skills/weaver-work-cli-invoice/references/invoice-agent-entry.md +0 -38
  341. package/skills/weaver-work-cli-invoice/references/invoice-disabled-capabilities.md +0 -26
  342. package/skills/weaver-work-cli-invoice/references/invoice-download.md +0 -22
  343. package/skills/weaver-work-cli-invoice/references/invoice-enterprise-list.md +0 -35
  344. package/skills/weaver-work-cli-invoice/references/invoice-import.md +0 -28
  345. package/skills/weaver-work-cli-invoice/references/invoice-personal-list.md +0 -47
  346. package/skills/weaver-work-cli-shared/SKILL.md +0 -53
  347. package/skills/weaver-work-cli-shared/references/e10-auth-and-session.md +0 -83
  348. package/skills/weaver-work-cli-shared/references/json-output-contract.md +0 -61
  349. package/skills/weaver-work-cli-shared/references/weaver-work-cli-installation.md +0 -61
  350. /package/skills/{weaver-work-cli-shared → weaver-e10-shared}/references/high-risk-write.md +0 -0
  351. /package/skills/{weaver-work-cli-invoice → weaver-e10-yepiaotong}/product.json +0 -0
@@ -80,6 +80,58 @@ const UPDATE_FIELDS = new Map([
80
80
  ['currency', 'string'],
81
81
  ['currencyName', 'string'],
82
82
  ]);
83
+ const BROWSE_TYPE_NAMES = new Map([
84
+ [1, '增值税专用发票'],
85
+ [2, '增值税普通发票'],
86
+ [3, '增值税电子普通发票'],
87
+ [4, '卷式发票'],
88
+ [5, '通行费增值税电子普通发票'],
89
+ [6, '机动车销售统一发票'],
90
+ [7, '定额发票'],
91
+ [8, '客运汽车票'],
92
+ [9, '航空运输电子客票行程单'],
93
+ [10, '火车票'],
94
+ [11, '出租车票'],
95
+ [12, '其他'],
96
+ [13, '汽车通行费发票'],
97
+ [14, '船票'],
98
+ [22, '二手车销售统一发票'],
99
+ [28, '增值税电子专用发票'],
100
+ [32, '电子发票(增值税专用发票)'],
101
+ [33, '电子发票(普通发票)'],
102
+ [47, '医疗收费票据'],
103
+ [48, '财政非税收入统一票据'],
104
+ [49, '海关进口增值税专用缴款书'],
105
+ [50, '电子发票服务平台纸质普票'],
106
+ [52, '完税凭证'],
107
+ [53, '国际小票'],
108
+ [54, '银行回单'],
109
+ [56, '代扣代缴税收缴款凭证'],
110
+ ]);
111
+ const VALID_STATUS_NAMES = new Map([
112
+ [0, '未查验'],
113
+ [1, '有效已查验'],
114
+ [2, '有效未查验'],
115
+ [3, '查验失败'],
116
+ [4, '发票无效'],
117
+ [5, '票面校验不一致'],
118
+ ]);
119
+ const SOURCE_NAMES = new Map([
120
+ [1, '微信'],
121
+ [2, '支付宝'],
122
+ [4, '邮箱'],
123
+ [5, '拍照'],
124
+ [6, '扫码'],
125
+ [7, '手动'],
126
+ [9, '查验录入'],
127
+ [10, '企业微信'],
128
+ [11, '公众号'],
129
+ [12, '企业台账'],
130
+ [13, '文件'],
131
+ [14, 'Excel'],
132
+ [15, '短信'],
133
+ [16, '链接录入'],
134
+ ]);
83
135
  export function asObject(value, name = '业务输入') {
84
136
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
85
137
  throw invoiceValidationError('input_invalid', `${name}必须是 JSON 对象`);
@@ -92,6 +144,33 @@ export function asPositiveString(value, name) {
92
144
  }
93
145
  return value;
94
146
  }
147
+ export function asNonEmptyString(value, name) {
148
+ if (typeof value !== 'string' || !value.trim()) {
149
+ throw invoiceValidationError('input_invalid', `${name} 必须是非空字符串`);
150
+ }
151
+ return value.trim();
152
+ }
153
+ export function normalizeIdList(value, name, { allowCommaString = false } = {}) {
154
+ const raw = allowCommaString && typeof value === 'string'
155
+ ? value.split(',').map((item) => item.trim()).filter(Boolean)
156
+ : value;
157
+ if (!Array.isArray(raw) || raw.length === 0) {
158
+ throw invoiceValidationError('input_invalid', `${name} 必须是非空数组`);
159
+ }
160
+ if (raw.length > 100)
161
+ throw invoiceValidationError('input_invalid', `${name} 单次最多支持 100 项`);
162
+ const ids = raw.map((item, index) => asPositiveString(String(item), `${name}[${index}]`));
163
+ if (new Set(ids).size !== ids.length)
164
+ throw invoiceValidationError('input_invalid', `${name} 不能包含重复 ID`);
165
+ return ids;
166
+ }
167
+ export function normalizeFids(input) {
168
+ if (input.fid !== undefined && input.fids !== undefined)
169
+ throw invoiceValidationError('input_ambiguous', 'fid 与 fids 只能提供一个');
170
+ if (input.fid !== undefined)
171
+ return [asPositiveString(String(input.fid), 'fid')];
172
+ return normalizeIdList(input.fids, 'fids');
173
+ }
95
174
  export function reqBase({ numericTrace = false } = {}) {
96
175
  const trace = Date.now();
97
176
  return { trace: numericTrace ? trace : String(trace), dev: 1 };
@@ -226,6 +305,13 @@ export async function getDetail(input, host) {
226
305
  body: { ...body, userFlag: '1', isDelFlag: '1', req_base: reqBase() },
227
306
  });
228
307
  }
308
+ export async function getDetailsByFids(fids, host) {
309
+ return host.invoiceRequest({
310
+ path: '/api/inc/get',
311
+ method: 'POST',
312
+ body: { ids: fids, mask: 0, userFlag: '1', isDelFlag: '1', req_base: reqBase() },
313
+ });
314
+ }
229
315
  export function preview(info) {
230
316
  const p = info.comm_info?.pro || {};
231
317
  const price = info.comm_info?.price || {};
@@ -260,6 +346,167 @@ export function validationPreview(info, scope, targetFid) {
260
346
  export function workflow(name, state) {
261
347
  return { workflow: name, version: 1, state };
262
348
  }
349
+ function stringOrEmpty(value) {
350
+ return value === undefined || value === null ? '' : String(value);
351
+ }
352
+ function numberOrZero(value) {
353
+ const parsed = Number(value);
354
+ return Number.isFinite(parsed) ? parsed : 0;
355
+ }
356
+ function enumName(names, value) {
357
+ if (value === undefined || value === null || value === '')
358
+ return '';
359
+ return names.get(numberOrZero(value)) || '';
360
+ }
361
+ function parseExt(extRaw) {
362
+ if (typeof extRaw !== 'string' || !extRaw.trim())
363
+ return {};
364
+ try {
365
+ const parsed = JSON.parse(extRaw);
366
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
367
+ }
368
+ catch {
369
+ return {};
370
+ }
371
+ }
372
+ function dateToTimestampMs(date) {
373
+ if (typeof date !== 'string' || !/^\d{4}-\d{2}-\d{2}$/u.test(date))
374
+ return 0;
375
+ const timestamp = Date.parse(`${date}T00:00:00+08:00`);
376
+ return Number.isFinite(timestamp) ? timestamp : 0;
377
+ }
378
+ function contentFor(typeName, number) {
379
+ if (typeName && number)
380
+ return `${typeName}-${number}`;
381
+ return typeName || number || '';
382
+ }
383
+ function cents(value) {
384
+ if (value === undefined || value === null || value === '')
385
+ return 0;
386
+ const text = String(value);
387
+ const match = /^(-?\d+)(?:\.(\d{1,2}))?$/u.exec(text);
388
+ if (!match)
389
+ return null;
390
+ const whole = Number(match[1]);
391
+ const fraction = Number((match[2] || '').padEnd(2, '0'));
392
+ return whole * 100 + (whole < 0 ? -fraction : fraction);
393
+ }
394
+ function moneyMinus(total, reiming, reimed) {
395
+ if ((reiming === undefined || reiming === null || reiming === '') && (reimed === undefined || reimed === null || reimed === '')) {
396
+ return stringOrEmpty(total);
397
+ }
398
+ const totalCents = cents(total);
399
+ const reimingCents = cents(reiming);
400
+ const reimedCents = cents(reimed);
401
+ if (totalCents === null || reimingCents === null || reimedCents === null)
402
+ return stringOrEmpty(total);
403
+ const value = totalCents - reimingCents - reimedCents;
404
+ const sign = value < 0 ? '-' : '';
405
+ const absolute = Math.abs(value);
406
+ const whole = Math.floor(absolute / 100);
407
+ const fraction = absolute % 100;
408
+ return fraction === 0 ? `${sign}${whole}` : `${sign}${whole}.${String(fraction).padStart(2, '0')}`;
409
+ }
410
+ function extProductNames(products) {
411
+ if (!Array.isArray(products))
412
+ return '';
413
+ return products
414
+ .map((item) => item && typeof item === 'object' ? stringOrEmpty(item.productName || item.name) : '')
415
+ .filter(Boolean)
416
+ .join('、');
417
+ }
418
+ export function browseFieldItem(info) {
419
+ const comm = info.comm_info || {};
420
+ const pro = comm.pro || {};
421
+ const price = comm.price || {};
422
+ const buyer = comm.buyer || {};
423
+ const payer = comm.payer || {};
424
+ const modify = info.modify_info || {};
425
+ const ext = parseExt(info.ext);
426
+ const products = Array.isArray(ext.products) ? ext.products : [];
427
+ const fid = stringOrEmpty(info.fid || info.id);
428
+ const type = numberOrZero(pro.type);
429
+ const typeName = stringOrEmpty(pro.cname) || BROWSE_TYPE_NAMES.get(type) || '未知票种';
430
+ const number = stringOrEmpty(info.number);
431
+ const content = contentFor(typeName, number);
432
+ const total = stringOrEmpty(price.total);
433
+ const reimingMoney = typeof price.reimingMoney === 'string' ? price.reimingMoney : '';
434
+ const reimedMoney = typeof price.reimedMoney === 'string' ? price.reimedMoney : '';
435
+ const firstProduct = products.find((item) => item && typeof item === 'object');
436
+ return {
437
+ optionId: fid,
438
+ id: fid,
439
+ fid,
440
+ type,
441
+ typeName,
442
+ number,
443
+ code: stringOrEmpty(info.code),
444
+ content,
445
+ name: content,
446
+ total,
447
+ ttax: stringOrEmpty(ext.ttax),
448
+ seller: stringOrEmpty(payer.company),
449
+ sellerId: stringOrEmpty(payer.tcode),
450
+ buyer: stringOrEmpty(buyer.company),
451
+ buyerId: stringOrEmpty(buyer.tcode),
452
+ incDate: stringOrEmpty(pro.date),
453
+ incDateTimestamp: dateToTimestampMs(pro.date),
454
+ validStatus: enumName(VALID_STATUS_NAMES, pro.valid),
455
+ source: enumName(SOURCE_NAMES, modify.source),
456
+ invoiceStatus: numberOrZero(pro.status),
457
+ del: numberOrZero(modify.del),
458
+ currency: stringOrEmpty(info.currency) || 'CNY',
459
+ currencyName: stringOrEmpty(info.currencyName) || '人民币',
460
+ taxRate: stringOrEmpty(ext.taxRate || ext.trate || firstProduct?.taxRate || firstProduct?.trate),
461
+ consumeContent: stringOrEmpty(ext.content) || extProductNames(products),
462
+ fylx: stringOrEmpty(info.fylx) || '0',
463
+ inputDate: stringOrEmpty(modify.createDate || modify.modifyDate),
464
+ incTotal: 0,
465
+ reimingMoney,
466
+ reimedMoney,
467
+ notReimMoney: moneyMinus(total, reimingMoney, reimedMoney),
468
+ reimDate: '',
469
+ reimProcess: '',
470
+ };
471
+ }
472
+ export function browseFieldData(response) {
473
+ const ret = response.res_base?.ret;
474
+ if (ret !== undefined && ret !== 0) {
475
+ throw new InvoiceCliError('api', 'detail_failed', response.res_base?.message || '详情接口整体失败', {
476
+ code: ret,
477
+ details: { res_base: response.res_base },
478
+ exitCode: 1,
479
+ });
480
+ }
481
+ const items = [];
482
+ const errors = [];
483
+ for (const entry of Array.isArray(response.infos) ? response.infos : []) {
484
+ const itemRet = entry?.ret?.ret;
485
+ if (itemRet !== 0) {
486
+ errors.push({
487
+ fid: stringOrEmpty(entry?.info?.fid || entry?.info?.id),
488
+ ret: itemRet,
489
+ message: entry?.ret?.message || '查询失败',
490
+ });
491
+ continue;
492
+ }
493
+ if (entry?.info && typeof entry.info === 'object')
494
+ items.push(browseFieldItem(entry.info));
495
+ }
496
+ return { items, errors };
497
+ }
498
+ export function assertBusinessSuccess(value, subtype, fallbackMessage) {
499
+ const result = value && typeof value === 'object' ? value : {};
500
+ const code = result.code ?? result.res_base?.ret;
501
+ const failed = result.fail === true || result.status === false || (code !== undefined && code !== 0 && code !== 200);
502
+ if (!failed)
503
+ return;
504
+ throw new InvoiceCliError('api', subtype, result.message || result.msg || result.res_base?.message || fallbackMessage, {
505
+ code,
506
+ details: { result },
507
+ exitCode: 1,
508
+ });
509
+ }
263
510
  function uploadSource(input) {
264
511
  const { file, url } = input;
265
512
  if (file !== undefined && url !== undefined)
@@ -366,12 +613,12 @@ function normalizeUploadResponse(value, source) {
366
613
  fail: false,
367
614
  };
368
615
  }
369
- export async function uploadInvoiceFile(input, host) {
616
+ export async function uploadInvoiceFile(input, host, options = {}) {
370
617
  const source = uploadSource(input);
371
618
  const prepared = await normalizeFileSource(source);
372
619
  const result = await host.invoiceMultipartRequest({
373
620
  path: '/api/inc/file/uploadFileSpilit',
374
- fields: { ...prepared.fields, ocr: '1' },
621
+ fields: { ...prepared.fields, ocr: options.ocr ? '1' : '0' },
375
622
  file: prepared.file,
376
623
  });
377
624
  return normalizeUploadResponse(result, source);
@@ -406,8 +653,19 @@ function ocrInfo(result) {
406
653
  const infos = Array.isArray(result?.infos) ? result.infos : [];
407
654
  const failed = infos.filter((item) => item?.ret?.ret !== 0);
408
655
  if (failed.length) {
409
- throw new InvoiceCliError('api', 'ocr_item_failed', '部分文件页 OCR 失败', {
410
- details: { failed: failed.map((item) => item?.ret?.message || 'OCR 失败') },
656
+ const first = failed[0]?.ret || {};
657
+ const message = typeof first.message === 'string' && first.message.trim()
658
+ ? first.message
659
+ : '部分文件页 OCR 失败';
660
+ throw new InvoiceCliError('api', 'ocr_item_failed', message, {
661
+ code: first.ret,
662
+ details: {
663
+ failed: failed.map((item) => ({
664
+ code: item?.ret?.ret,
665
+ message: item?.ret?.message || 'OCR 失败',
666
+ lang: item?.ret?.lang,
667
+ })),
668
+ },
411
669
  exitCode: 1,
412
670
  });
413
671
  }
@@ -458,13 +716,13 @@ export async function previewOcr(upload, host) {
458
716
  return { results, invoices };
459
717
  }
460
718
  export async function listInvoices(input, host, flag) {
461
- const body = { flag, page_size: 10, start_pos: 0, req_type: 1, sreim: 3, req_base: reqBase() };
719
+ const body = { flag, page_size: 10, start_pos: 0, req_type: 1, sreim: '3', bill_type: 0, req_base: reqBase() };
462
720
  for (const [key, value] of Object.entries(input)) {
463
721
  if (key === 'flag')
464
722
  continue;
465
723
  if (!LIST_FIELDS.has(key))
466
724
  throw invoiceValidationError('input_field_unsupported', `列表查询不支持字段:${key}`);
467
- body[key] = value;
725
+ body[key] = key === 'sreim' ? normalizeSreim(value) : value;
468
726
  }
469
727
  const result = await host.invoiceRequest({ path: '/api/inc/sync', method: 'POST', body });
470
728
  return {
@@ -479,6 +737,13 @@ export async function listInvoices(input, host, flag) {
479
737
  },
480
738
  };
481
739
  }
740
+ function normalizeSreim(value) {
741
+ const normalized = typeof value === 'number' && Number.isInteger(value) ? String(value) : value;
742
+ if (typeof normalized !== 'string' || !/^[0-4]$/u.test(normalized)) {
743
+ throw invoiceValidationError('invoice_field_invalid', 'sreim 必须是字符串 "0"、"1"、"2"、"3" 或 "4"');
744
+ }
745
+ return normalized;
746
+ }
482
747
  export function normalizeAddInfo(rawInfo) {
483
748
  const info = structuredClone(asObject(rawInfo, 'info'));
484
749
  assertNoForbiddenKeys(info, 'info');
@@ -15,7 +15,7 @@ export class InvoiceValidatePreviewOperation {
15
15
  is_cut: 0,
16
16
  is_save: 1,
17
17
  operate_type: operateType(scope),
18
- needLog: false,
18
+ needLog: true,
19
19
  req_base: reqBase({ numericTrace: true }),
20
20
  },
21
21
  });