weaver-work-cli 0.1.38 → 0.1.40

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 (166) hide show
  1. package/README.md +7 -3
  2. package/dist/chunks/{archive-PDV724YK.js → archive-JHTONRST.js} +556 -66
  3. package/dist/chunks/{archive-oa-4XE4MNXQ.js → archive-oa-FCHLCPHC.js} +2 -2
  4. package/dist/chunks/{asset-PDL2QE2N.js → asset-RLIHC7DB.js} +2 -2
  5. package/dist/chunks/asset-idle-KVOFTLCP.js +670 -0
  6. package/dist/chunks/{attachment-content-MDDGOE5E.js → attachment-content-RZYDB3MB.js} +3 -3
  7. package/dist/chunks/{blog-UYR3EUXW.js → blog-42OZTJNP.js} +2 -2
  8. package/dist/chunks/{caizhilian-LG2X5NMF.js → caizhilian-KRK547K5.js} +2 -2
  9. package/dist/chunks/{calendar-FG4BAZHE.js → calendar-RTWAMKHD.js} +2 -2
  10. package/dist/chunks/{chunk-J7USS3ED.js → chunk-4CTESSKI.js} +4 -4
  11. package/dist/chunks/{chunk-OJQUJZQF.js → chunk-4TEDNCON.js} +45 -5
  12. package/dist/chunks/chunk-57IECMWX.js +487 -0
  13. package/dist/chunks/{chunk-ELYDWBZJ.js → chunk-7BRU4EFH.js} +13 -7
  14. package/dist/chunks/{chunk-6LTFIFLM.js → chunk-7E6MUOEK.js} +2 -2
  15. package/dist/chunks/{chunk-KKRL3REV.js → chunk-7U577Q7U.js} +2 -2
  16. package/dist/chunks/{chunk-UJJD4QWF.js → chunk-CAQNBBQA.js} +2 -2
  17. package/dist/chunks/{chunk-CORFRD7Q.js → chunk-CXRQWOZ5.js} +2 -2
  18. package/dist/chunks/{chunk-GGJFMNJM.js → chunk-FLS4DPGP.js} +110 -16
  19. package/dist/chunks/{chunk-JSMFPO43.js → chunk-I566ZYNF.js} +1 -1
  20. package/dist/chunks/{chunk-6FTTSA45.js → chunk-IZSSVYAG.js} +2 -2
  21. package/dist/chunks/{chunk-XJY7G4DD.js → chunk-JWRZM2H2.js} +3 -3
  22. package/dist/chunks/{chunk-NI6GIPIM.js → chunk-LFMSDBZN.js} +529 -395
  23. package/dist/chunks/{chunk-VRYHGG6O.js → chunk-LN447PY2.js} +92 -51
  24. package/dist/chunks/{chunk-NR6RKXPA.js → chunk-NETCCARD.js} +4 -2
  25. package/dist/chunks/{chunk-Z32KWY6G.js → chunk-NJKREDA3.js} +1 -1
  26. package/dist/chunks/{chunk-FUWVHMVV.js → chunk-SPRHHSVC.js} +2 -2
  27. package/dist/chunks/{chunk-IZUDA353.js → chunk-T6EGVBKU.js} +1 -1
  28. package/dist/chunks/{chunk-DMV2TOMH.js → chunk-VNBU55SL.js} +428 -145
  29. package/dist/chunks/{chunk-UZZBA6PV.js → chunk-WFFNM65B.js} +47 -6
  30. package/dist/chunks/{chunk-EG6ZU444.js → chunk-ZUX3P6BQ.js} +10 -5
  31. package/dist/chunks/{conflict-BQZEQ4SP.js → conflict-VR55AOOO.js} +2 -2
  32. package/dist/chunks/{contract-XIRAFTEV.js → contract-HI4FNPYE.js} +2 -2
  33. package/dist/chunks/{cowork-BLG62BL2.js → cowork-HJLI353D.js} +12 -5
  34. package/dist/chunks/{ebuilder-form-NUKG5QW4.js → ebuilder-form-HTGI63UU.js} +3 -3
  35. package/dist/chunks/{ehr-2STW5ILH.js → ehr-GYXIYH3A.js} +2 -2
  36. package/dist/chunks/env-DW3G4HUO.js +19 -0
  37. package/dist/chunks/{esb-UUDQUNKY.js → esb-I5INCEFE.js} +4 -4
  38. package/dist/chunks/factory-TKXGXS6L.js +30 -0
  39. package/dist/chunks/{fna-6RCY4NU5.js → fna-K2MHTQ24.js} +2 -2
  40. package/dist/chunks/group-chat-VYBNMJLG.js +18 -0
  41. package/dist/chunks/{host-FWDOSRH5.js → host-256GVCAH.js} +3 -3
  42. package/dist/chunks/{host-EJZFROU3.js → host-D5SERMAJ.js} +3 -3
  43. package/dist/chunks/{host-RHM3NPXV.js → host-JM4YVHFM.js} +3 -3
  44. package/dist/chunks/{host-7RXEDMAH.js → host-L3VLITMT.js} +3 -3
  45. package/dist/chunks/{host-UFF33TWJ.js → host-ZUQTJYYK.js} +3 -3
  46. package/dist/chunks/{hrm-PKJ6ELSH.js → hrm-VLRBKTZB.js} +3 -3
  47. package/dist/chunks/{im-YJAXS7CO.js → im-QK3VTLXK.js} +8 -8
  48. package/dist/chunks/{invoice-HWVSXGX6.js → invoice-T5JTA32H.js} +3 -3
  49. package/dist/chunks/{jiuchuanhui-L7VKILZB.js → jiuchuanhui-P2FNEQVZ.js} +2 -2
  50. package/dist/chunks/{lazy-dispatch-NMYEIHRH.js → lazy-dispatch-XRRI46M6.js} +5 -5
  51. package/dist/chunks/{mail-B42RRU7G.js → mail-3Y7MJ6PS.js} +9 -4
  52. package/dist/chunks/{meeting-CFYVBJSS.js → meeting-M7LTXGJE.js} +11 -10
  53. package/dist/chunks/{okr-GCLF6V7W.js → okr-OBC6S67L.js} +2 -2
  54. package/dist/chunks/{plan-ZVL7GBRI.js → plan-5H6I53SK.js} +2 -2
  55. package/dist/chunks/{project-4YWAAE2K.js → project-L75QZV4S.js} +2 -2
  56. package/dist/chunks/{registry-EP4VTHZS.js → registry-KMHCPAAD.js} +9 -8
  57. package/dist/chunks/{registry-OZSMDVPP.js → registry-QGHFNUWS.js} +2 -2
  58. package/dist/chunks/{registry-FRJ6H7BT.js → registry-RXPN6BBT.js} +4 -4
  59. package/dist/chunks/{registry-SG2PGVCF.js → registry-UGRBCBHO.js} +3 -3
  60. package/dist/chunks/{room-recommend-R3JVUUAC.js → room-recommend-A3UDC3CA.js} +4 -4
  61. package/dist/chunks/{schedule-NIJBTYDO.js → schedule-5GCACCK7.js} +4 -4
  62. package/dist/chunks/{workflow-BB24DFBY.js → workflow-M5ZJ7DWF.js} +11 -8
  63. package/dist/core/output.js +16 -6
  64. package/dist/index.js +33 -28
  65. package/dist/internal/e10/auth/commands.js +109 -56
  66. package/dist/internal/e10/auth/messages.js +1 -0
  67. package/dist/internal/e10/auth/session.js +11 -1
  68. package/dist/internal/e10/auth/xiaoe.js +29 -4
  69. package/dist/internal/e10/auth-recovery.js +13 -6
  70. package/dist/internal/e10/client.js +13 -0
  71. package/dist/internal/e10/context.js +24 -3
  72. package/dist/internal/e10/request-runtime.js +12 -1
  73. package/dist/shortcuts/archive/host.js +2 -0
  74. package/dist/shortcuts/archive/manifest.js +1 -1
  75. package/dist/shortcuts/archive/operations/borrow-list.js +13 -1
  76. package/dist/shortcuts/archive/operations/flow-url.js +1 -1
  77. package/dist/shortcuts/archive/operations/prelib.js +472 -0
  78. package/dist/shortcuts/archive/operations/registry.js +2 -0
  79. package/dist/shortcuts/archive/operations/upload.js +1 -1
  80. package/dist/shortcuts/asset-idle/errors.js +44 -0
  81. package/dist/shortcuts/asset-idle/host.js +161 -0
  82. package/dist/shortcuts/asset-idle/index.js +114 -0
  83. package/dist/shortcuts/asset-idle/manifest.js +159 -0
  84. package/dist/shortcuts/asset-idle/operations/idle.js +47 -0
  85. package/dist/shortcuts/asset-idle/operations/registry.js +33 -0
  86. package/dist/shortcuts/asset-idle/operations/shared.js +142 -0
  87. package/dist/shortcuts/asset-idle/operations/types.js +9 -0
  88. package/dist/shortcuts/asset-idle/operations.js +15 -0
  89. package/dist/shortcuts/cowork/operations/item-write.js +10 -2
  90. package/dist/shortcuts/index.js +5 -0
  91. package/dist/shortcuts/mail/operations/mail-send.js +8 -2
  92. package/dist/shortcuts/meeting/operations/eb/catalog.js +5 -1
  93. package/dist/shortcuts/meeting/operations/eb/create-flow.js +381 -104
  94. package/dist/shortcuts/meeting/operations/eb/crm-search.js +87 -5
  95. package/dist/shortcuts/meeting/operations/eb/flow-memory.js +49 -0
  96. package/dist/shortcuts/meeting/operations/eb/group-chat.js +583 -0
  97. package/dist/shortcuts/meeting/operations/eb/index.js +2 -0
  98. package/dist/shortcuts/meeting/operations/eb/room-recommend.js +19 -3
  99. package/dist/shortcuts/meeting/operations/eb/room-summary.js +2 -0
  100. package/dist/shortcuts/meeting/operations/eb/usage-cache.js +99 -0
  101. package/dist/shortcuts/meeting/operations/from-group-chat.js +35 -12
  102. package/dist/shortcuts/workflow/host.js +3 -0
  103. package/dist/shortcuts/workflow/index.js +1 -1
  104. package/dist/shortcuts/workflow/operations/form.js +65 -171
  105. package/dist/shortcuts/workflow/operations/todoSmartConvert/aigroupRules.js +129 -27
  106. package/dist/shortcuts/workflow/operations/todoSmartConvert/aigroupStore.js +6 -0
  107. package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +60 -117
  108. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailCache.js +44 -7
  109. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailFetcher.js +37 -29
  110. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +48 -8
  111. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +1 -0
  112. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.detail.js +22 -18
  113. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +17 -9
  114. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.groupSummary.js +34 -10
  115. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +5 -2
  116. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.smartGroup.js +9 -2
  117. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +122 -20
  118. package/docs/_catalog.md +3 -0
  119. package/docs/asset-idle.md +45 -0
  120. package/docs/e10-auth.md +16 -1
  121. package/docs/todo-smart-convert/subgroup-rules.md +1 -1
  122. package/package.json +1 -1
  123. package/scripts/mcp-meeting.mjs +234 -0
  124. package/scripts/package-skill.mjs +2 -0
  125. package/skill-template/business-info.json +14 -1
  126. package/skill-template/domains/asset-idle.md +13 -0
  127. package/skill-template/domains/wenshuding.md +3 -0
  128. package/skills/weaver-e10-archive-oa/SKILL.md +1 -0
  129. package/skills/weaver-e10-archive-oa/references/my-borrow.md +49 -0
  130. package/skills/weaver-e10-asset-idle/SKILL.md +73 -0
  131. package/skills/weaver-e10-asset-idle/references/idle-list.md +62 -0
  132. package/skills/weaver-e10-asset-idle/references/idle-stats-and-charts.md +65 -0
  133. package/skills/weaver-e10-asset-idle/references/source-manifest.json +193 -0
  134. package/skills/weaver-e10-asset-idle/references/widget-style.md +205 -0
  135. package/skills/weaver-e10-caizhilian/SKILL.md +29 -11
  136. package/skills/weaver-e10-caizhilian/references/auth-and-install.md +12 -0
  137. package/skills/weaver-e10-caizhilian/references/files.md +1 -1
  138. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +1 -1
  139. package/skills/weaver-e10-caizhilian/references/source-manifest.json +45 -45
  140. package/skills/weaver-e10-cowork/SKILL.md +2 -0
  141. package/skills/weaver-e10-cowork/references/cowork-write.md +1 -1
  142. package/skills/weaver-e10-jucailin/SKILL.md +2 -0
  143. package/skills/weaver-e10-jucailin/references/recruit-read.md +2 -0
  144. package/skills/weaver-e10-jucailin/references/recruit-write.md +1 -1
  145. package/skills/weaver-e10-mail/SKILL.md +3 -0
  146. package/skills/weaver-e10-mail/references/mail-send.md +2 -0
  147. package/skills/weaver-e10-meeting/SKILL.md +88 -25
  148. package/skills/weaver-e10-meeting/references/meeting-minute-file.md +25 -11
  149. package/skills/weaver-e10-meeting.zip +0 -0
  150. package/skills/weaver-e10-shared/SKILL.md +5 -5
  151. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +3 -3
  152. package/skills/weaver-e10-wenshuding/SKILL.md +29 -6
  153. package/skills/weaver-e10-wenshuding/references/archive-borrow-list.md +14 -0
  154. package/skills/weaver-e10-wenshuding/references/archive-download.md +2 -0
  155. package/skills/weaver-e10-wenshuding/references/archive-flow.md +1 -1
  156. package/skills/weaver-e10-wenshuding/references/archive-prelib-arrange.md +76 -0
  157. package/skills/weaver-e10-wenshuding/references/archive-prelib-list.md +107 -0
  158. package/skills/weaver-e10-wenshuding/references/archive-prelib-open.md +59 -0
  159. package/skills/weaver-e10-wenshuding/references/archive-upload.md +4 -1
  160. package/skills/weaver-e10-wenshuding/references/source-manifest.json +108 -65
  161. package/skills/weaver-e10-workflow/SKILL.md +9 -2
  162. package/skills/weaver-e10-workflow/aigroup/default.json +166 -19
  163. package/skills/weaver-e10-workflow/references/todo-smart-convert.md +72 -34
  164. package/skills/weaver-e10-workflow/tools/todo-serve.cjs +113 -25
  165. package/skills/weaver-e10-workflow/tools/todo-summary.cjs +350 -50
  166. package/dist/chunks/{chunk-2LV74IWP.js → chunk-E7OK5WD5.js} +5 -5
@@ -5,11 +5,11 @@ import {
5
5
  createE10RequestRuntime,
6
6
  isE10SessionExpiredResponse,
7
7
  requireE10Session
8
- } from "./chunk-UZZBA6PV.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-OJQUJZQF.js";
12
+ } from "./chunk-4TEDNCON.js";
13
13
  import {
14
14
  CliError,
15
15
  isCliError,
@@ -5,11 +5,11 @@ import {
5
5
  createE10RequestRuntime,
6
6
  isE10SessionExpiredResponse,
7
7
  requireE10Session
8
- } from "./chunk-UZZBA6PV.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-OJQUJZQF.js";
12
+ } from "./chunk-4TEDNCON.js";
13
13
  import {
14
14
  CliError,
15
15
  isCliError,
@@ -4,14 +4,15 @@ import {
4
4
  getMeetingOperation,
5
5
  hasMeetingOperation,
6
6
  meetingOperationDefinitions
7
- } from "./chunk-DMV2TOMH.js";
8
- import "./chunk-GGJFMNJM.js";
9
- import "./chunk-J7USS3ED.js";
10
- import "./chunk-JSMFPO43.js";
11
- import "./chunk-XJY7G4DD.js";
12
- import "./chunk-6LTFIFLM.js";
13
- import "./chunk-Z32KWY6G.js";
14
- import "./chunk-ELYDWBZJ.js";
7
+ } from "./chunk-VNBU55SL.js";
8
+ import "./chunk-57IECMWX.js";
9
+ import "./chunk-FLS4DPGP.js";
10
+ import "./chunk-4CTESSKI.js";
11
+ import "./chunk-I566ZYNF.js";
12
+ import "./chunk-JWRZM2H2.js";
13
+ import "./chunk-7E6MUOEK.js";
14
+ import "./chunk-NJKREDA3.js";
15
+ import "./chunk-7BRU4EFH.js";
15
16
  import "./chunk-LUSPKZKY.js";
16
17
  import "./chunk-BUSC6UAE.js";
17
18
  export {
@@ -3,9 +3,9 @@ const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  getImOperation,
5
5
  imOperationDefinitions
6
- } from "./chunk-2LV74IWP.js";
7
- import "./chunk-ZEDWSH32.js";
6
+ } from "./chunk-E7OK5WD5.js";
8
7
  import "./chunk-YLCYX7LE.js";
8
+ import "./chunk-ZEDWSH32.js";
9
9
  import "./chunk-LUSPKZKY.js";
10
10
  import "./chunk-BUSC6UAE.js";
11
11
  export {
@@ -4,11 +4,11 @@ import {
4
4
  esbOperationDefinitions,
5
5
  getEsbOperation,
6
6
  hasEsbOperation
7
- } from "./chunk-IZUDA353.js";
8
- import "./chunk-UJJD4QWF.js";
7
+ } from "./chunk-T6EGVBKU.js";
8
+ import "./chunk-CAQNBBQA.js";
9
9
  import "./chunk-GPMFD4RD.js";
10
- import "./chunk-UZZBA6PV.js";
11
- import "./chunk-OJQUJZQF.js";
10
+ import "./chunk-WFFNM65B.js";
11
+ import "./chunk-4TEDNCON.js";
12
12
  import "./chunk-LUSPKZKY.js";
13
13
  import "./chunk-BUSC6UAE.js";
14
14
  export {
@@ -4,12 +4,12 @@ import {
4
4
  getWorkflowOperation,
5
5
  hasWorkflowOperation,
6
6
  workflowOperationDefinitions
7
- } from "./chunk-NI6GIPIM.js";
7
+ } from "./chunk-LFMSDBZN.js";
8
8
  import "./chunk-EZALDOQH.js";
9
9
  import "./chunk-FMPJJYYI.js";
10
- import "./chunk-EG6ZU444.js";
10
+ import "./chunk-ZUX3P6BQ.js";
11
11
  import "./chunk-AJ62BGAW.js";
12
- import "./chunk-OJQUJZQF.js";
12
+ import "./chunk-4TEDNCON.js";
13
13
  import "./chunk-LUSPKZKY.js";
14
14
  import "./chunk-BUSC6UAE.js";
15
15
  export {
@@ -6,10 +6,10 @@ import {
6
6
  loadRooms,
7
7
  recommendRooms,
8
8
  rememberFrequentRoom
9
- } from "./chunk-GGJFMNJM.js";
10
- import "./chunk-JSMFPO43.js";
11
- import "./chunk-Z32KWY6G.js";
12
- import "./chunk-ELYDWBZJ.js";
9
+ } from "./chunk-FLS4DPGP.js";
10
+ import "./chunk-I566ZYNF.js";
11
+ import "./chunk-NJKREDA3.js";
12
+ import "./chunk-7BRU4EFH.js";
13
13
  import "./chunk-LUSPKZKY.js";
14
14
  import "./chunk-BUSC6UAE.js";
15
15
  export {
@@ -8,10 +8,10 @@ import {
8
8
  resolveMeetingScheduleTypeIds,
9
9
  resolveMemberIdsByName,
10
10
  runScheduleConflictFlow
11
- } from "./chunk-J7USS3ED.js";
12
- import "./chunk-JSMFPO43.js";
13
- import "./chunk-Z32KWY6G.js";
14
- import "./chunk-ELYDWBZJ.js";
11
+ } from "./chunk-4CTESSKI.js";
12
+ import "./chunk-I566ZYNF.js";
13
+ import "./chunk-NJKREDA3.js";
14
+ import "./chunk-7BRU4EFH.js";
15
15
  import "./chunk-LUSPKZKY.js";
16
16
  import "./chunk-BUSC6UAE.js";
17
17
  export {
@@ -1,8 +1,5 @@
1
1
  import { createRequire as __esbuildCreateRequire } from 'node:module';
2
2
  const require = __esbuildCreateRequire(import.meta.url);
3
- import {
4
- createWorkflowHost
5
- } from "./chunk-NR6RKXPA.js";
6
3
  import {
7
4
  USER_INTENT_RULE_FILE,
8
5
  aigroupUserDir,
@@ -17,19 +14,22 @@ import {
17
14
  validateRuleFile,
18
15
  workflowOperationDefinitions,
19
16
  workflowSuccess
20
- } from "./chunk-NI6GIPIM.js";
17
+ } from "./chunk-LFMSDBZN.js";
21
18
  import {
22
19
  createWorkflowContinuationSigner
23
20
  } from "./chunk-EZALDOQH.js";
21
+ import {
22
+ createWorkflowHost
23
+ } from "./chunk-NETCCARD.js";
24
24
  import {
25
25
  CLARIFICATION_SUBTYPE,
26
26
  WorkflowCliError,
27
27
  workflowValidationError
28
28
  } from "./chunk-FMPJJYYI.js";
29
- import "./chunk-EG6ZU444.js";
29
+ import "./chunk-ZUX3P6BQ.js";
30
30
  import "./chunk-AJ62BGAW.js";
31
- import "./chunk-UZZBA6PV.js";
32
- import "./chunk-OJQUJZQF.js";
31
+ import "./chunk-WFFNM65B.js";
32
+ import "./chunk-4TEDNCON.js";
33
33
  import {
34
34
  isCliError,
35
35
  toErrorEnvelope
@@ -166,6 +166,7 @@ function namesOf(rule) {
166
166
  }
167
167
  function saveUserIntents(payload, options = {}) {
168
168
  const dir = options.dir ?? aigroupUserDir(options.ctx);
169
+ if (!dir) throw workflowValidationError("aigroup_no_skill_context", "\u65E0\u5F53\u524D skill \u4E0A\u4E0B\u6587\uFF08WEAVER_WORK_CLI_SKILL_DIR \u672A\u8BBE\u7F6E\uFF09\uFF1A\u7528\u6237\u610F\u56FE\u4E0D\u53EF\u8BFB\u5199");
169
170
  const warnings = [];
170
171
  const entries = normalizeIntentPayload(payload);
171
172
  if (entries.length === 0) throw workflowValidationError("aigroup_invalid", "\u5165\u53C2\u91CC\u6CA1\u6709\u89C4\u5219\u6761\u76EE");
@@ -206,6 +207,7 @@ function saveUserIntents(payload, options = {}) {
206
207
  }
207
208
  function readUserIntents(options = {}) {
208
209
  const dir = options.dir ?? aigroupUserDir(options.ctx);
210
+ if (!dir) return { dir: null, file: "", exists: false, error: "\u65E0\u5F53\u524D skill \u4E0A\u4E0B\u6587\uFF08WEAVER_WORK_CLI_SKILL_DIR \u672A\u8BBE\u7F6E\uFF09", rules: [] };
209
211
  const file = join(dir, USER_INTENT_RULE_FILE);
210
212
  if (!existsSync(file)) return { dir, file, exists: false, error: null, rules: [] };
211
213
  const loaded = loadRuleFile(file);
@@ -213,6 +215,7 @@ function readUserIntents(options = {}) {
213
215
  }
214
216
  function clearUserIntents(options = {}) {
215
217
  const dir = options.dir ?? aigroupUserDir(options.ctx);
218
+ if (!dir) throw workflowValidationError("aigroup_no_skill_context", "\u65E0\u5F53\u524D skill \u4E0A\u4E0B\u6587\uFF08WEAVER_WORK_CLI_SKILL_DIR \u672A\u8BBE\u7F6E\uFF09\uFF1A\u7528\u6237\u610F\u56FE\u4E0D\u53EF\u8BFB\u5199");
216
219
  const file = join(dir, USER_INTENT_RULE_FILE);
217
220
  mkdirSync(dir, { recursive: true, mode: 448 });
218
221
  writeFileSync(file, `${JSON.stringify({ schemaVersion: 2, rules: [] }, null, 2)}
@@ -382,7 +385,7 @@ var workflowShortcut = {
382
385
  const user = readUserIntents({ ctx });
383
386
  ctx.output.write({
384
387
  dir: loaded.dir,
385
- defaultFile: join2(loaded.dir, "default.json"),
388
+ defaultFile: loaded.dir ? join2(loaded.dir, "default.json") : null,
386
389
  userIntentFile: user.file,
387
390
  userIntentExists: user.exists,
388
391
  userIntentError: user.error,
@@ -63,21 +63,31 @@ export function refMaxBytes(ctx) {
63
63
  export function bytesOf(value) {
64
64
  return Buffer.byteLength(JSON.stringify(value ?? null, null, 2), 'utf8');
65
65
  }
66
- function compactValue(value, arrayLimit, stringLimit, depth = 0) {
66
+ /** 链接类字段不参与截断:被截断的 URL 无法点击或调用。 */
67
+ function isLinkField(key) {
68
+ if (!key)
69
+ return false;
70
+ return /(?:^|[a-z0-9])(?:url|urls|uri|href|link|links)$/i.test(key);
71
+ }
72
+ function compactValue(value, arrayLimit, stringLimit, depth = 0, key) {
67
73
  if (depth > 6)
68
74
  return '<omitted: too deep>';
75
+ // 链接字段整体豁免;数组元素继承父字段名,因此 openUrls / links 里的每条 URL 也完整保留
76
+ const limit = isLinkField(key) ? Number.MAX_SAFE_INTEGER : stringLimit;
69
77
  if (typeof value === 'string') {
70
- return value.length > stringLimit
71
- ? `${value.slice(0, stringLimit)}…(truncated ${value.length - stringLimit} chars)`
78
+ return value.length > limit
79
+ ? `${value.slice(0, limit)}…(truncated ${value.length - limit} chars)`
72
80
  : value;
73
81
  }
74
82
  if (Array.isArray(value)) {
75
- return value.slice(0, arrayLimit).map((item) => compactValue(item, arrayLimit, stringLimit, depth + 1));
83
+ return value
84
+ .slice(0, arrayLimit)
85
+ .map((item) => compactValue(item, arrayLimit, limit, depth + 1, key));
76
86
  }
77
87
  if (value && typeof value === 'object') {
78
88
  const out = {};
79
- for (const [key, inner] of Object.entries(value)) {
80
- out[key] = compactValue(inner, arrayLimit, stringLimit, depth + 1);
89
+ for (const [name, inner] of Object.entries(value)) {
90
+ out[name] = compactValue(inner, arrayLimit, stringLimit, depth + 1, name);
81
91
  }
82
92
  return out;
83
93
  }
package/dist/index.js CHANGED
@@ -7,12 +7,12 @@ import {
7
7
  firstPositionalToken,
8
8
  registerCommands,
9
9
  toCommandMetadata
10
- } from "./chunks/chunk-VRYHGG6O.js";
11
- import "./chunks/chunk-EG6ZU444.js";
10
+ } from "./chunks/chunk-LN447PY2.js";
11
+ import "./chunks/chunk-ZUX3P6BQ.js";
12
12
  import "./chunks/chunk-AJ62BGAW.js";
13
- import "./chunks/chunk-FUWVHMVV.js";
14
- import "./chunks/chunk-UZZBA6PV.js";
15
- import "./chunks/chunk-OJQUJZQF.js";
13
+ import "./chunks/chunk-SPRHHSVC.js";
14
+ import "./chunks/chunk-WFFNM65B.js";
15
+ import "./chunks/chunk-4TEDNCON.js";
16
16
  import "./chunks/chunk-LUSPKZKY.js";
17
17
  import "./chunks/chunk-BUSC6UAE.js";
18
18
 
@@ -29,7 +29,7 @@ function lazyShortcut(definition) {
29
29
  placeholder.allowExcessArguments(true);
30
30
  placeholder.helpOption(false);
31
31
  placeholder.action(async () => {
32
- const { dispatchLazyShortcut } = await import("./chunks/lazy-dispatch-NMYEIHRH.js");
32
+ const { dispatchLazyShortcut } = await import("./chunks/lazy-dispatch-XRRI46M6.js");
33
33
  await dispatchLazyShortcut(definition, shortcutMetadata());
34
34
  });
35
35
  }
@@ -39,112 +39,117 @@ var builtinShortcuts = [
39
39
  lazyShortcut({
40
40
  name: "invoice",
41
41
  description: "E10 \u4E1A\u7968\u901A\u53D1\u7968\u7BA1\u7406 CLI",
42
- load: async () => (await import("./chunks/invoice-HWVSXGX6.js")).invoiceShortcut
42
+ load: async () => (await import("./chunks/invoice-T5JTA32H.js")).invoiceShortcut
43
43
  }),
44
44
  lazyShortcut({
45
45
  name: "ehr",
46
46
  description: "\u6CDB\u5FAEE10\u805A\u624D\u6797\uFF08\u4EBA\u4E8B/\u51FA\u52E4/\u85AA\u916C\uFF09CLI",
47
- load: async () => (await import("./chunks/ehr-2STW5ILH.js")).ehrShortcut
47
+ load: async () => (await import("./chunks/ehr-GYXIYH3A.js")).ehrShortcut
48
48
  }),
49
49
  lazyShortcut({
50
50
  name: "cowork",
51
51
  description: "\u6CDB\u5FAEE10\u534F\u4F5C\u533A\uFF08\u534F\u4F5C\u4E8B\u9879/\u8BA8\u8BBA/\u5BA1\u6279/\u5171\u4EAB\u6743\u9650\uFF09CLI",
52
- load: async () => (await import("./chunks/cowork-BLG62BL2.js")).coworkShortcut
52
+ load: async () => (await import("./chunks/cowork-HJLI353D.js")).coworkShortcut
53
53
  }),
54
54
  lazyShortcut({
55
55
  name: "archive",
56
56
  description: "E10 \u6587\u4E66\u5B9A\u6863\u6848\u7BA1\u7406 CLI",
57
- load: async () => (await import("./chunks/archive-PDV724YK.js")).archiveShortcut
57
+ load: async () => (await import("./chunks/archive-JHTONRST.js")).archiveShortcut
58
58
  }),
59
59
  lazyShortcut({
60
60
  name: "archive-oa",
61
61
  description: "E10 \u6863\u6848\u5B9A\u4F4D\u4E0E OA \u5546\u52A1\u5408\u540C\u501F\u9605 CLI",
62
- load: async () => (await import("./chunks/archive-oa-4XE4MNXQ.js")).archiveOaShortcut
62
+ load: async () => (await import("./chunks/archive-oa-FCHLCPHC.js")).archiveOaShortcut
63
63
  }),
64
64
  lazyShortcut({
65
65
  name: "calendar",
66
66
  description: "\u6CDB\u5FAEE10\u65E5\u7A0B\u7BA1\u7406 CLI\uFF08\u521B\u5EFA/\u67E5\u8BE2/\u66F4\u65B0/\u5220\u9664/\u5B57\u5178\uFF09",
67
- load: async () => (await import("./chunks/calendar-FG4BAZHE.js")).calendarShortcut
67
+ load: async () => (await import("./chunks/calendar-RTWAMKHD.js")).calendarShortcut
68
68
  }),
69
69
  lazyShortcut({
70
70
  name: "fna",
71
71
  description: "\u6CDB\u5FAEE10\u9F50\u4E1A\u6210\u8D39\u63A7\u4E2D\u5FC3\uFF08\u9884\u7B97/\u8D39\u7528\u4E2D\u5FC3/\u501F\u6B3E\u7BA1\u7406/\u53D1\u7968\u6838\u9500\uFF09CLI",
72
- load: async () => (await import("./chunks/fna-6RCY4NU5.js")).fnaShortcut
72
+ load: async () => (await import("./chunks/fna-K2MHTQ24.js")).fnaShortcut
73
73
  }),
74
74
  lazyShortcut({
75
75
  name: "hrm",
76
76
  description: "\u6CDB\u5FAEE10\u7EC4\u7EC7\u7BA1\u7406\uFF08\u5458\u5DE5/\u7EC4\u7EC7/\u5C97\u4F4D\u67E5\u8BE2\uFF09CLI",
77
- load: async () => (await import("./chunks/hrm-PKJ6ELSH.js")).hrmShortcut
77
+ load: async () => (await import("./chunks/hrm-VLRBKTZB.js")).hrmShortcut
78
78
  }),
79
79
  lazyShortcut({
80
80
  name: "mail",
81
81
  description: "\u6CDB\u5FAEE10\u90AE\u4EF6\u7BA1\u7406 CLI",
82
- load: async () => (await import("./chunks/mail-B42RRU7G.js")).mailShortcut
82
+ load: async () => (await import("./chunks/mail-3Y7MJ6PS.js")).mailShortcut
83
83
  }),
84
84
  lazyShortcut({
85
85
  name: "meeting",
86
86
  description: "\u6CDB\u5FAEE10\u4F1A\u8BAE\u7BA1\u7406 CLI\uFF08\u6807\u51C6\u7248\uFF1A\u67E5\u8BE2/\u51B2\u7A81/\u9884\u7EA6/\u56DE\u6267/\u7B7E\u5230\uFF09",
87
- load: async () => (await import("./chunks/meeting-CFYVBJSS.js")).meetingShortcut
87
+ load: async () => (await import("./chunks/meeting-M7LTXGJE.js")).meetingShortcut
88
88
  }),
89
89
  lazyShortcut({
90
90
  name: "okr",
91
91
  description: "\u6CDB\u5FAEE10 OKR \u76EE\u6807\u7BA1\u7406 CLI\uFF08\u76EE\u6807\u67E5\u8BE2/\u65B0\u5EFA/\u7F16\u8F91\u3001\u5173\u952E\u6210\u679C\u3001\u76EE\u6807\u5BF9\u9F50\u3001\u8BC4\u8BBA\uFF09",
92
- load: async () => (await import("./chunks/okr-GCLF6V7W.js")).okrShortcut
92
+ load: async () => (await import("./chunks/okr-OBC6S67L.js")).okrShortcut
93
93
  }),
94
94
  lazyShortcut({
95
95
  name: "plan",
96
96
  description: "\u6CDB\u5FAEE10\u8BA1\u5212\u62A5\u544A CLI\uFF08\u67E5\u8BE2/\u65B0\u5EFA/\u4FEE\u6539/\u53D1\u5E03/\u64A4\u56DE/\u63D0\u4EA4\u63D0\u9192/\u8BC4\u8BBA\uFF09",
97
- load: async () => (await import("./chunks/plan-ZVL7GBRI.js")).planShortcut
97
+ load: async () => (await import("./chunks/plan-5H6I53SK.js")).planShortcut
98
98
  }),
99
99
  lazyShortcut({
100
100
  name: "esb",
101
101
  description: "\u6CDB\u5FAEE10 ESB \u4E2D\u5FC3\u81EA\u5B9A\u4E49\u89E6\u53D1\u52A8\u4F5C\u6D41 CLI",
102
- load: async () => (await import("./chunks/esb-UUDQUNKY.js")).esbShortcut
102
+ load: async () => (await import("./chunks/esb-I5INCEFE.js")).esbShortcut
103
103
  }),
104
104
  lazyShortcut({
105
105
  name: "ebuilder-form",
106
106
  description: "\u6CDB\u5FAEE10 eBuilder \u8868\u5355\u83DC\u5355\u3001\u5217\u8868\u548C\u8868\u5355\u6570\u636E CLI",
107
- load: async () => (await import("./chunks/ebuilder-form-NUKG5QW4.js")).ebuilderFormShortcut
107
+ load: async () => (await import("./chunks/ebuilder-form-HTGI63UU.js")).ebuilderFormShortcut
108
108
  }),
109
109
  lazyShortcut({
110
110
  name: "jiuchuanhui",
111
111
  description: "\u6CDB\u5FAEE10\u4E5D\u6C1A\u6C47\u8425\u9500\u7BA1\u7406 CLI\uFF08\u5BA2\u6237/\u8054\u7CFB\u4EBA/\u5546\u673A/\u7EBF\u7D22/\u8054\u7CFB\u8BA1\u5212/\u516C\u6D77\uFF09",
112
- load: async () => (await import("./chunks/jiuchuanhui-L7VKILZB.js")).jiuchuanhuiShortcut
112
+ load: async () => (await import("./chunks/jiuchuanhui-P2FNEQVZ.js")).jiuchuanhuiShortcut
113
113
  }),
114
114
  lazyShortcut({
115
115
  name: "asset",
116
116
  description: "E10 \u8D44\u4EA7\u7BA1\u7406\uFF08\u8D44\u7BA1\u5BB6\uFF09CLI",
117
- load: async () => (await import("./chunks/asset-PDL2QE2N.js")).assetShortcut
117
+ load: async () => (await import("./chunks/asset-RLIHC7DB.js")).assetShortcut
118
+ }),
119
+ lazyShortcut({
120
+ name: "asset-idle",
121
+ description: "E10 \u95F2\u7F6E\u8D44\u4EA7\u5224\u5B9A\u7ED3\u679C\u67E5\u8BE2 CLI\uFF08\u5206\u9875\u83B7\u53D6/\u805A\u5408\u7EDF\u8BA1\uFF09",
122
+ load: async () => (await import("./chunks/asset-idle-KVOFTLCP.js")).assetIdleShortcut
118
123
  }),
119
124
  lazyShortcut({
120
125
  name: "im",
121
126
  description: "\u6CDB\u5FAEE10\u6613\u79D2\u529E\uFF08\u5373\u65F6\u901A\u8BAF\uFF09CLI",
122
- load: async () => (await import("./chunks/im-YJAXS7CO.js")).imShortcut
127
+ load: async () => (await import("./chunks/im-QK3VTLXK.js")).imShortcut
123
128
  }),
124
129
  lazyShortcut({
125
130
  name: "project",
126
131
  description: "\u6CDB\u5FAEE10\u4E8B\u4E95\u7136\u9879\u76EE\u7BA1\u7406 CLI\uFF08\u9879\u76EE/\u4EFB\u52A1\u67E5\u8BE2\u4E0E\u786E\u8BA4\u5199\u5165\uFF09",
127
- load: async () => (await import("./chunks/project-4YWAAE2K.js")).projectShortcut
132
+ load: async () => (await import("./chunks/project-L75QZV4S.js")).projectShortcut
128
133
  }),
129
134
  lazyShortcut({
130
135
  name: "workflow",
131
136
  description: "\u6CDB\u5FAEE10\u6D41\u7A0B\u667A\u80FD\u52A9\u624B CLI\uFF08\u67E5\u8BE2/\u67E5\u770B/\u64CD\u4F5C/\u6279\u91CF/\u53D1\u8D77/\u4FEE\u6539\uFF09",
132
- load: async () => (await import("./chunks/workflow-BB24DFBY.js")).workflowShortcut
137
+ load: async () => (await import("./chunks/workflow-M5ZJ7DWF.js")).workflowShortcut
133
138
  }),
134
139
  lazyShortcut({
135
140
  name: "blog",
136
141
  description: "\u6CDB\u5FAEE10\u5DE5\u4F5C\u65E5\u62A5 CLI\uFF08\u67E5\u8BE2/\u53D1\u5E03/\u7F16\u8F91/\u8BC4\u8BBA/\u70B9\u8D5E/\u63D0\u9192/\u5BFC\u51FA\uFF09",
137
- load: async () => (await import("./chunks/blog-UYR3EUXW.js")).blogShortcut
142
+ load: async () => (await import("./chunks/blog-42OZTJNP.js")).blogShortcut
138
143
  }),
139
144
  lazyShortcut({
140
145
  name: "caizhilian",
141
146
  description: "\u6CDB\u5FAEE10\u91C7\u77E5\u8FDE\uFF08\u6587\u6863\u4E2D\u5FC3\uFF09CLI",
142
- load: async () => (await import("./chunks/caizhilian-LG2X5NMF.js")).caizhilianShortcut
147
+ load: async () => (await import("./chunks/caizhilian-KRK547K5.js")).caizhilianShortcut
143
148
  }),
144
149
  lazyShortcut({
145
150
  name: "contract",
146
151
  description: "\u6CDB\u5FAEE10\u4ECA\u627F\u8FBE\u5408\u540C\u7BA1\u7406 CLI",
147
- load: async () => (await import("./chunks/contract-XIRAFTEV.js")).contractShortcut
152
+ load: async () => (await import("./chunks/contract-HI4FNPYE.js")).contractShortcut
148
153
  })
149
154
  ];
150
155
  function shortcutMetadata() {