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
@@ -3,12 +3,15 @@ const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  E10AuthSession,
5
5
  E10_AUTH_REQUIRED_MESSAGE,
6
+ E10_XIAOE_RECOVERY_FAILED_MESSAGE,
6
7
  getActiveProfile,
7
8
  hasXiaoEEnv,
8
9
  isXiaoERuntimeAgent,
10
+ readProfileConfig,
11
+ resolveXiaoEPreferredBaseUrl,
9
12
  startFetchTiming,
10
13
  tryXiaoEUnifiedLogin
11
- } from "./chunk-OJQUJZQF.js";
14
+ } from "./chunk-4TEDNCON.js";
12
15
  import {
13
16
  CliError
14
17
  } from "./chunk-LUSPKZKY.js";
@@ -166,7 +169,12 @@ async function recoverXiaoEAuthSession(ctx, currentSession) {
166
169
  if (!canAutomaticallyRecoverXiaoE(ctx, currentSession)) return null;
167
170
  const options = globalOptions(ctx);
168
171
  const profile = options.profile || getActiveProfile();
169
- const baseUrl = currentSession.getBaseUrl();
172
+ const config = readProfileConfig(profile);
173
+ const baseUrl = resolveXiaoEPreferredBaseUrl({
174
+ explicitBaseUrl: currentSession?.getBaseUrl() || options.baseUrl,
175
+ profileBaseUrl: config.baseUrl,
176
+ env: ctx.env
177
+ });
170
178
  const key = `${profile}
171
179
  ${baseUrl}`;
172
180
  const existing = recoveryInFlight.get(key);
@@ -178,7 +186,7 @@ ${baseUrl}`;
178
186
  profileBaseUrl: baseUrl,
179
187
  allowBundledEnvScript: true,
180
188
  allowTokenScript: true,
181
- tenantKeyFallback: currentSession.tenantKey,
189
+ tenantKeyFallback: currentSession?.tenantKey || config.tenantKey,
182
190
  profileHint: profile
183
191
  // Intentionally no logger: transparent recovery must not leak an
184
192
  // intermediate "login" step into agent stdout/stderr or JSON output.
@@ -200,12 +208,30 @@ function sameE10SessionIdentity(current, recovered) {
200
208
  }
201
209
 
202
210
  // 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
+ });
218
+ }
203
219
  async function getE10Session(ctx, load = {}) {
204
220
  const options = ctx.getGlobalOptions();
205
221
  return E10AuthSession.fromOptions(options, ctx.cwd, load);
206
222
  }
207
223
  async function requireE10Session(ctx, load = {}) {
208
- const session = await getE10Session(ctx, load);
224
+ let session = await getE10Session(ctx, load);
225
+ if (session?.isExpired() && canAutomaticallyRecoverXiaoE(ctx, session)) {
226
+ session = await recoverXiaoEAuthSession(ctx, session).catch(() => null);
227
+ if (!session || session.isExpired()) throw xiaoERecoveryFailedError();
228
+ }
229
+ if (!session && canAutomaticallyRecoverXiaoE(ctx)) {
230
+ session = await recoverXiaoEAuthSession(ctx).catch(() => null);
231
+ if (!session) {
232
+ throw xiaoERecoveryFailedError();
233
+ }
234
+ }
209
235
  if (!session) {
210
236
  throw new CliError(E10_AUTH_REQUIRED_MESSAGE, 3 /* AuthError */);
211
237
  }
@@ -263,6 +289,17 @@ var E10RequestRuntime = class {
263
289
  return this.request({ ...request, responseType: "binary" });
264
290
  }
265
291
  async request(request) {
292
+ if (this.session.isExpired?.()) {
293
+ const recovered = await this.recoverExpiredSession(this.session.eteamsId);
294
+ if (!recovered || this.session.isExpired?.()) {
295
+ throw new E10ApiError(
296
+ "authentication",
297
+ "session_expired",
298
+ E10_XIAOE_RECOVERY_FAILED_MESSAGE,
299
+ { exitCode: 3 /* AuthError */, retryable: false }
300
+ );
301
+ }
302
+ }
266
303
  const mutable = this.prepareRequest(request);
267
304
  try {
268
305
  await this.runBeforeRequest(mutable, this.sessionContext());
@@ -372,6 +409,7 @@ var E10RequestRuntime = class {
372
409
  return false;
373
410
  }
374
411
  if (!recovered) return false;
412
+ if (recovered.isExpired?.()) return false;
375
413
  if (!sameE10SessionIdentity(this.session, recovered)) {
376
414
  throw new E10ApiError(
377
415
  "authentication",
@@ -404,7 +442,8 @@ var E10RequestRuntime = class {
404
442
  maxResponseBytes: request.maxResponseBytes,
405
443
  timeoutMs: request.timeoutMs || DEFAULT_TIMEOUT_MS,
406
444
  responseType: request.responseType || "json",
407
- bigIntStrings: request.bigIntStrings ?? DEFAULT_BIG_INT_STRINGS
445
+ bigIntStrings: request.bigIntStrings ?? DEFAULT_BIG_INT_STRINGS,
446
+ followRedirects: request.followRedirects === true
408
447
  };
409
448
  }
410
449
  sessionContext() {
@@ -474,7 +513,8 @@ var E10RequestRuntime = class {
474
513
  const init = {
475
514
  method: request.method,
476
515
  headers,
477
- redirect: "manual"
516
+ // 文件下载允许跟随重定向(302 → 文件服务);其余请求保持 manual 以便识别登录跳转
517
+ redirect: request.followRedirects ? "follow" : "manual"
478
518
  };
479
519
  if (request.streamBody) {
480
520
  init.body = request.streamBody;
@@ -667,6 +707,7 @@ function cloneForHook(value) {
667
707
 
668
708
  export {
669
709
  isE10SessionExpiredResponse,
710
+ isE10AuthenticationRequired,
670
711
  requireE10Session,
671
712
  E10ApiError,
672
713
  createE10RequestRuntime
@@ -405,18 +405,23 @@ function refMaxBytes(ctx) {
405
405
  function bytesOf(value) {
406
406
  return Buffer.byteLength(JSON.stringify(value ?? null, null, 2), "utf8");
407
407
  }
408
- function compactValue(value, arrayLimit, stringLimit, depth = 0) {
408
+ function isLinkField(key) {
409
+ if (!key) return false;
410
+ return /(?:^|[a-z0-9])(?:url|urls|uri|href|link|links)$/i.test(key);
411
+ }
412
+ function compactValue(value, arrayLimit, stringLimit, depth = 0, key) {
409
413
  if (depth > 6) return "<omitted: too deep>";
414
+ const limit = isLinkField(key) ? Number.MAX_SAFE_INTEGER : stringLimit;
410
415
  if (typeof value === "string") {
411
- return value.length > stringLimit ? `${value.slice(0, stringLimit)}\u2026(truncated ${value.length - stringLimit} chars)` : value;
416
+ return value.length > limit ? `${value.slice(0, limit)}\u2026(truncated ${value.length - limit} chars)` : value;
412
417
  }
413
418
  if (Array.isArray(value)) {
414
- return value.slice(0, arrayLimit).map((item) => compactValue(item, arrayLimit, stringLimit, depth + 1));
419
+ return value.slice(0, arrayLimit).map((item) => compactValue(item, arrayLimit, limit, depth + 1, key));
415
420
  }
416
421
  if (value && typeof value === "object") {
417
422
  const out = {};
418
- for (const [key, inner] of Object.entries(value)) {
419
- out[key] = compactValue(inner, arrayLimit, stringLimit, depth + 1);
423
+ for (const [name, inner] of Object.entries(value)) {
424
+ out[name] = compactValue(inner, arrayLimit, stringLimit, depth + 1, name);
420
425
  }
421
426
  return out;
422
427
  }
@@ -7,8 +7,8 @@ import {
7
7
  findCommonFreeSlots,
8
8
  meetingEbConflictOperations,
9
9
  runEbConflictCheck
10
- } from "./chunk-XJY7G4DD.js";
11
- import "./chunk-ELYDWBZJ.js";
10
+ } from "./chunk-JWRZM2H2.js";
11
+ import "./chunk-7BRU4EFH.js";
12
12
  import "./chunk-LUSPKZKY.js";
13
13
  import "./chunk-BUSC6UAE.js";
14
14
  export {
@@ -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,
@@ -1049,6 +1049,11 @@ function hashCode(text) {
1049
1049
  }
1050
1050
  return String(hash >>> 0);
1051
1051
  }
1052
+ function coworkViewUrl(baseUrl, id, mobile = false) {
1053
+ if (!id) return null;
1054
+ const base = String(baseUrl || "").replace(/\/+$/, "");
1055
+ return `${base}/${mobile ? "mobile" : "sp"}/cowork/view/${id}`;
1056
+ }
1052
1057
  function defaultEndTime() {
1053
1058
  const target = new Date(Date.now() + 7 * 24 * 3600 * 1e3);
1054
1059
  const pad = (n) => String(n).padStart(2, "0");
@@ -1133,7 +1138,9 @@ var itemCreateApply = {
1133
1138
  itemName,
1134
1139
  sectionId,
1135
1140
  principal,
1136
- endTime
1141
+ endTime,
1142
+ viewUrl: coworkViewUrl(lease.baseUrl, data.id),
1143
+ mobileViewUrl: coworkViewUrl(lease.baseUrl, data.id, true)
1137
1144
  });
1138
1145
  }
1139
1146
  };
@@ -1225,7 +1232,7 @@ var itemActionApply = {
1225
1232
  }
1226
1233
  throw error;
1227
1234
  }
1228
- return coworkSuccess("cowork.item.action.apply", { action, id, result: unwrapData(response) ?? null });
1235
+ return coworkSuccess("cowork.item.action.apply", { action, id, result: unwrapData(response) ?? null, viewUrl: coworkViewUrl(lease.baseUrl, id) });
1229
1236
  }
1230
1237
  };
1231
1238
  var ITEM_FLAGS = ["hide", "vote"];
@@ -1297,7 +1304,7 @@ var itemFlagApply = {
1297
1304
  form,
1298
1305
  operation: "cowork.item.flag.apply"
1299
1306
  });
1300
- return coworkSuccess("cowork.item.flag.apply", { action, id, result: unwrapData(response) ?? null });
1307
+ return coworkSuccess("cowork.item.flag.apply", { action, id, result: unwrapData(response) ?? null, viewUrl: coworkViewUrl(lease.baseUrl, id) });
1301
1308
  }
1302
1309
  };
1303
1310
  var coworkItemWriteOperations = [
@@ -2,7 +2,7 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
2
  const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  createEbuilderFormHost
5
- } from "./chunk-CORFRD7Q.js";
5
+ } from "./chunk-CXRQWOZ5.js";
6
6
  import {
7
7
  createEbuilderFormContinuationSigner
8
8
  } from "./chunk-3SO6QL6U.js";
@@ -13,8 +13,8 @@ import {
13
13
  import {
14
14
  ebuilderValidationError
15
15
  } from "./chunk-BYATLLEF.js";
16
- import "./chunk-UZZBA6PV.js";
17
- import "./chunk-OJQUJZQF.js";
16
+ import "./chunk-WFFNM65B.js";
17
+ import "./chunk-4TEDNCON.js";
18
18
  import {
19
19
  isCliError,
20
20
  toErrorEnvelope
@@ -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,
@@ -0,0 +1,19 @@
1
+ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
+ const require = __esbuildCreateRequire(import.meta.url);
3
+ import {
4
+ degradeMeetingEnvToStandard,
5
+ meetingEnvOperations,
6
+ meetingStateDir,
7
+ readCache,
8
+ resolveMeetingEnvMode
9
+ } from "./chunk-NJKREDA3.js";
10
+ import "./chunk-7BRU4EFH.js";
11
+ import "./chunk-LUSPKZKY.js";
12
+ import "./chunk-BUSC6UAE.js";
13
+ export {
14
+ degradeMeetingEnvToStandard,
15
+ meetingEnvOperations,
16
+ meetingStateDir,
17
+ readCache,
18
+ resolveMeetingEnvMode
19
+ };
@@ -9,15 +9,15 @@ import {
9
9
  assertNoForbiddenKeys,
10
10
  esbManifest,
11
11
  getEsbOperation
12
- } from "./chunk-IZUDA353.js";
12
+ } from "./chunk-T6EGVBKU.js";
13
13
  import {
14
14
  createEsbHost
15
- } from "./chunk-UJJD4QWF.js";
15
+ } from "./chunk-CAQNBBQA.js";
16
16
  import {
17
17
  esbValidationError
18
18
  } from "./chunk-GPMFD4RD.js";
19
- import "./chunk-UZZBA6PV.js";
20
- import "./chunk-OJQUJZQF.js";
19
+ import "./chunk-WFFNM65B.js";
20
+ import "./chunk-4TEDNCON.js";
21
21
  import {
22
22
  isCliError,
23
23
  toErrorEnvelope
@@ -0,0 +1,30 @@
1
+ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
+ const require = __esbuildCreateRequire(import.meta.url);
3
+ import {
4
+ EB_BASE,
5
+ buildEbOperations,
6
+ ebBusinessSuccess,
7
+ extractEbCount,
8
+ extractEbRows,
9
+ fingerprint,
10
+ normalizeEbWrite,
11
+ queryBody,
12
+ requireConfirm,
13
+ verifyLease,
14
+ writeBody
15
+ } from "./chunk-7BRU4EFH.js";
16
+ import "./chunk-LUSPKZKY.js";
17
+ import "./chunk-BUSC6UAE.js";
18
+ export {
19
+ EB_BASE,
20
+ buildEbOperations,
21
+ ebBusinessSuccess,
22
+ extractEbCount,
23
+ extractEbRows,
24
+ fingerprint,
25
+ normalizeEbWrite,
26
+ queryBody,
27
+ requireConfirm,
28
+ verifyLease,
29
+ writeBody
30
+ };
@@ -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,
@@ -0,0 +1,18 @@
1
+ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
+ const require = __esbuildCreateRequire(import.meta.url);
3
+ import {
4
+ DEFAULT_MEETING_GROUP_FLOW_ID,
5
+ ensureMeetingGroupChat,
6
+ meetingEbGroupChatOperations,
7
+ savePendingForm
8
+ } from "./chunk-57IECMWX.js";
9
+ import "./chunk-NJKREDA3.js";
10
+ import "./chunk-7BRU4EFH.js";
11
+ import "./chunk-LUSPKZKY.js";
12
+ import "./chunk-BUSC6UAE.js";
13
+ export {
14
+ DEFAULT_MEETING_GROUP_FLOW_ID,
15
+ ensureMeetingGroupChat,
16
+ meetingEbGroupChatOperations,
17
+ savePendingForm
18
+ };
@@ -6,10 +6,10 @@ import {
6
6
  createEsbHost,
7
7
  isEsbFlowUnavailable,
8
8
  triggerResultCode
9
- } from "./chunk-UJJD4QWF.js";
9
+ } from "./chunk-CAQNBBQA.js";
10
10
  import "./chunk-GPMFD4RD.js";
11
- import "./chunk-UZZBA6PV.js";
12
- import "./chunk-OJQUJZQF.js";
11
+ import "./chunk-WFFNM65B.js";
12
+ import "./chunk-4TEDNCON.js";
13
13
  import "./chunk-LUSPKZKY.js";
14
14
  import "./chunk-BUSC6UAE.js";
15
15
  export {
@@ -4,10 +4,10 @@ import {
4
4
  businessMessage,
5
5
  createHrmHost,
6
6
  isBusinessSuccess
7
- } from "./chunk-6FTTSA45.js";
7
+ } from "./chunk-IZSSVYAG.js";
8
8
  import "./chunk-OOUTBLZ4.js";
9
- import "./chunk-UZZBA6PV.js";
10
- import "./chunk-OJQUJZQF.js";
9
+ import "./chunk-WFFNM65B.js";
10
+ import "./chunk-4TEDNCON.js";
11
11
  import "./chunk-LUSPKZKY.js";
12
12
  import "./chunk-BUSC6UAE.js";
13
13
  export {
@@ -7,10 +7,10 @@ import {
7
7
  dirname,
8
8
  mkdir,
9
9
  writeFile
10
- } from "./chunk-KKRL3REV.js";
10
+ } from "./chunk-7U577Q7U.js";
11
11
  import "./chunk-ZEDWSH32.js";
12
- import "./chunk-UZZBA6PV.js";
13
- import "./chunk-OJQUJZQF.js";
12
+ import "./chunk-WFFNM65B.js";
13
+ import "./chunk-4TEDNCON.js";
14
14
  import "./chunk-LUSPKZKY.js";
15
15
  import "./chunk-BUSC6UAE.js";
16
16
  export {
@@ -5,10 +5,10 @@ import {
5
5
  extractApiBusinessError,
6
6
  isAtustRedirect,
7
7
  isLoginExpired
8
- } from "./chunk-NR6RKXPA.js";
8
+ } from "./chunk-NETCCARD.js";
9
9
  import "./chunk-FMPJJYYI.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 {
@@ -7,10 +7,10 @@ import {
7
7
  pickEbuilderDataKey,
8
8
  resolveApiPrefix,
9
9
  routeEbuilderPath
10
- } from "./chunk-CORFRD7Q.js";
10
+ } from "./chunk-CXRQWOZ5.js";
11
11
  import "./chunk-BYATLLEF.js";
12
- import "./chunk-UZZBA6PV.js";
13
- import "./chunk-OJQUJZQF.js";
12
+ import "./chunk-WFFNM65B.js";
13
+ import "./chunk-4TEDNCON.js";
14
14
  import "./chunk-LUSPKZKY.js";
15
15
  import "./chunk-BUSC6UAE.js";
16
16
  export {
@@ -2,7 +2,7 @@ import { createRequire as __esbuildCreateRequire } from 'node:module';
2
2
  const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  createHrmHost
5
- } from "./chunk-6FTTSA45.js";
5
+ } from "./chunk-IZSSVYAG.js";
6
6
  import {
7
7
  getHrmOperation,
8
8
  hrmOperationDefinitions
@@ -14,8 +14,8 @@ import {
14
14
  import {
15
15
  hrmValidationError
16
16
  } from "./chunk-OOUTBLZ4.js";
17
- import "./chunk-UZZBA6PV.js";
18
- import "./chunk-OJQUJZQF.js";
17
+ import "./chunk-WFFNM65B.js";
18
+ import "./chunk-4TEDNCON.js";
19
19
  import {
20
20
  isCliError,
21
21
  toErrorEnvelope
@@ -1,23 +1,23 @@
1
1
  import { createRequire as __esbuildCreateRequire } from 'node:module';
2
2
  const require = __esbuildCreateRequire(import.meta.url);
3
+ import {
4
+ createImContinuationSigner
5
+ } from "./chunk-P26ZWSKU.js";
3
6
  import {
4
7
  asObject,
5
8
  assertNoForbiddenKeys,
6
9
  getImOperation,
7
10
  imOperationDefinitions
8
- } from "./chunk-2LV74IWP.js";
11
+ } from "./chunk-E7OK5WD5.js";
12
+ import "./chunk-YLCYX7LE.js";
9
13
  import {
10
14
  createImHost
11
- } from "./chunk-KKRL3REV.js";
12
- import {
13
- createImContinuationSigner
14
- } from "./chunk-P26ZWSKU.js";
15
+ } from "./chunk-7U577Q7U.js";
15
16
  import {
16
17
  imValidationError
17
18
  } from "./chunk-ZEDWSH32.js";
18
- import "./chunk-YLCYX7LE.js";
19
- import "./chunk-UZZBA6PV.js";
20
- import "./chunk-OJQUJZQF.js";
19
+ import "./chunk-WFFNM65B.js";
20
+ import "./chunk-4TEDNCON.js";
21
21
  import {
22
22
  isCliError,
23
23
  toErrorEnvelope
@@ -7,9 +7,9 @@ import {
7
7
  invoicePartialError,
8
8
  invoiceValidationError,
9
9
  isInvoiceNetworkError
10
- } from "./chunk-FUWVHMVV.js";
11
- import "./chunk-UZZBA6PV.js";
12
- import "./chunk-OJQUJZQF.js";
10
+ } from "./chunk-SPRHHSVC.js";
11
+ import "./chunk-WFFNM65B.js";
12
+ import "./chunk-4TEDNCON.js";
13
13
  import {
14
14
  isCliError,
15
15
  toErrorEnvelope
@@ -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,12 +5,12 @@ import {
5
5
  createProgram,
6
6
  registerCommands,
7
7
  toCommandMetadata
8
- } from "./chunk-VRYHGG6O.js";
9
- import "./chunk-EG6ZU444.js";
8
+ } from "./chunk-LN447PY2.js";
9
+ import "./chunk-ZUX3P6BQ.js";
10
10
  import "./chunk-AJ62BGAW.js";
11
- import "./chunk-FUWVHMVV.js";
12
- import "./chunk-UZZBA6PV.js";
13
- import "./chunk-OJQUJZQF.js";
11
+ import "./chunk-SPRHHSVC.js";
12
+ import "./chunk-WFFNM65B.js";
13
+ import "./chunk-4TEDNCON.js";
14
14
  import "./chunk-LUSPKZKY.js";
15
15
  import "./chunk-BUSC6UAE.js";
16
16
 
@@ -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,
@@ -843,6 +843,11 @@ var CONTINUATION_TTL_MS = 6e5;
843
843
  function b64(s) {
844
844
  return Buffer.from(s, "utf8").toString("base64");
845
845
  }
846
+ function mailViewUrl(baseUrl, mailResourceId) {
847
+ if (!mailResourceId) return null;
848
+ const base = String(baseUrl || "").replace(/\/+$/, "");
849
+ return `${base}/sp/mail/view?mailResourceId=${mailResourceId}`;
850
+ }
846
851
  function splitNames(s) {
847
852
  if (!s) return [];
848
853
  return String(s).split(/[,,;;、\s]+/).map((x) => x.trim()).filter(Boolean);
@@ -1278,9 +1283,9 @@ var opSendApply = {
1278
1283
  const value = await env.host.request({ path, method: "POST", body });
1279
1284
  const d = value?.data || {};
1280
1285
  if (draft) {
1281
- return mailSuccess("mail.send.apply", { success: d.status === 1, draft: true, mailResourceId: d.mailResourceId, subject: lease.subject }, { savedDraft: true });
1286
+ return mailSuccess("mail.send.apply", { success: d.status === 1, draft: true, mailResourceId: d.mailResourceId, subject: lease.subject, viewUrl: mailViewUrl(session.baseUrl, d.mailResourceId) }, { savedDraft: true });
1282
1287
  }
1283
- return mailSuccess("mail.send.apply", { success: d.success === 1, msg: d.msg || "\u90AE\u4EF6\u5DF2\u53D1\u9001", subject: lease.subject }, { sent: true });
1288
+ return mailSuccess("mail.send.apply", { success: d.success === 1, msg: d.msg || "\u90AE\u4EF6\u5DF2\u53D1\u9001", subject: lease.subject, mailResourceId: d.mailResourceId ?? null, viewUrl: mailViewUrl(session.baseUrl, d.mailResourceId) }, { sent: true });
1284
1289
  }
1285
1290
  };
1286
1291
  var mailSendOperations = [opSendPrepare, opSendApply];
@@ -3,17 +3,18 @@ const require = __esbuildCreateRequire(import.meta.url);
3
3
  import {
4
4
  getMeetingOperation,
5
5
  meetingOperationDefinitions
6
- } from "./chunk-DMV2TOMH.js";
7
- import "./chunk-GGJFMNJM.js";
8
- import "./chunk-J7USS3ED.js";
9
- import "./chunk-JSMFPO43.js";
10
- import "./chunk-XJY7G4DD.js";
11
- import "./chunk-6LTFIFLM.js";
6
+ } from "./chunk-VNBU55SL.js";
7
+ import "./chunk-57IECMWX.js";
8
+ import "./chunk-FLS4DPGP.js";
9
+ import "./chunk-4CTESSKI.js";
10
+ import "./chunk-I566ZYNF.js";
11
+ import "./chunk-JWRZM2H2.js";
12
+ import "./chunk-7E6MUOEK.js";
12
13
  import {
13
14
  degradeMeetingEnvToStandard,
14
15
  meetingStateDir,
15
16
  readCache
16
- } from "./chunk-Z32KWY6G.js";
17
+ } from "./chunk-NJKREDA3.js";
17
18
  import {
18
19
  MeetingCliError,
19
20
  asObject,
@@ -21,17 +22,17 @@ import {
21
22
  meetingAuthError,
22
23
  meetingNetworkError,
23
24
  meetingValidationError
24
- } from "./chunk-ELYDWBZJ.js";
25
+ } from "./chunk-7BRU4EFH.js";
25
26
  import {
26
27
  E10ApiError,
27
28
  createE10RequestRuntime,
28
29
  isE10SessionExpiredResponse,
29
30
  requireE10Session
30
- } from "./chunk-UZZBA6PV.js";
31
+ } from "./chunk-WFFNM65B.js";
31
32
  import {
32
33
  E10_SESSION_EXPIRED_MESSAGE,
33
34
  getActiveProfile
34
- } from "./chunk-OJQUJZQF.js";
35
+ } from "./chunk-4TEDNCON.js";
35
36
  import {
36
37
  isCliError,
37
38
  toErrorEnvelope
@@ -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,