weaver-work-cli 0.1.39 → 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 (103) hide show
  1. package/README.md +4 -2
  2. package/dist/chunks/{archive-ENZYBBME.js → archive-JHTONRST.js} +2 -2
  3. package/dist/chunks/{archive-oa-YWLEC5V4.js → archive-oa-FCHLCPHC.js} +2 -2
  4. package/dist/chunks/{asset-OOV6DWPA.js → asset-RLIHC7DB.js} +2 -2
  5. package/dist/chunks/{asset-idle-RE632MY5.js → asset-idle-KVOFTLCP.js} +2 -2
  6. package/dist/chunks/{attachment-content-RWN2FCLL.js → attachment-content-RZYDB3MB.js} +3 -3
  7. package/dist/chunks/{blog-PEPOJAL7.js → blog-42OZTJNP.js} +2 -2
  8. package/dist/chunks/{caizhilian-WYIQDVPJ.js → caizhilian-KRK547K5.js} +2 -2
  9. package/dist/chunks/{calendar-CIARBAOX.js → calendar-RTWAMKHD.js} +2 -2
  10. package/dist/chunks/{chunk-L4N7B7ZD.js → chunk-4CTESSKI.js} +4 -4
  11. package/dist/chunks/{chunk-XXJOSZTQ.js → chunk-4TEDNCON.js} +43 -5
  12. package/dist/chunks/chunk-57IECMWX.js +487 -0
  13. package/dist/chunks/{chunk-CQHGNCK2.js → chunk-7BRU4EFH.js} +13 -7
  14. package/dist/chunks/{chunk-KTCB5R5H.js → chunk-7E6MUOEK.js} +2 -2
  15. package/dist/chunks/{chunk-I2HB737U.js → chunk-7U577Q7U.js} +2 -2
  16. package/dist/chunks/{chunk-BJGXMFGD.js → chunk-CAQNBBQA.js} +2 -2
  17. package/dist/chunks/{chunk-MUQUHKPG.js → chunk-CXRQWOZ5.js} +2 -2
  18. package/dist/chunks/{chunk-T7JDJJ7H.js → chunk-FLS4DPGP.js} +110 -16
  19. package/dist/chunks/{chunk-P2DAISYW.js → chunk-I566ZYNF.js} +1 -1
  20. package/dist/chunks/{chunk-36DIFZAH.js → chunk-IZSSVYAG.js} +2 -2
  21. package/dist/chunks/{chunk-EINRJHQ3.js → chunk-JWRZM2H2.js} +3 -3
  22. package/dist/chunks/{chunk-F2EQXUEE.js → chunk-LFMSDBZN.js} +97 -14
  23. package/dist/chunks/{chunk-GVPJZXJ2.js → chunk-LN447PY2.js} +91 -50
  24. package/dist/chunks/{chunk-K3RUEEOL.js → chunk-NETCCARD.js} +2 -2
  25. package/dist/chunks/{chunk-YS5DPN4T.js → chunk-NJKREDA3.js} +1 -1
  26. package/dist/chunks/{chunk-ZXRNHZTE.js → chunk-SPRHHSVC.js} +2 -2
  27. package/dist/chunks/{chunk-HJYVHXUQ.js → chunk-T6EGVBKU.js} +1 -1
  28. package/dist/chunks/{chunk-NLK2RZKG.js → chunk-VNBU55SL.js} +428 -145
  29. package/dist/chunks/{chunk-EZGFHJFW.js → chunk-WFFNM65B.js} +26 -7
  30. package/dist/chunks/{conflict-DRMDOL56.js → conflict-VR55AOOO.js} +2 -2
  31. package/dist/chunks/{contract-73MERZWN.js → contract-HI4FNPYE.js} +2 -2
  32. package/dist/chunks/{cowork-HNGBPD7A.js → cowork-HJLI353D.js} +12 -5
  33. package/dist/chunks/{ebuilder-form-OY6DVNRK.js → ebuilder-form-HTGI63UU.js} +3 -3
  34. package/dist/chunks/{ehr-RAQNEQO7.js → ehr-GYXIYH3A.js} +2 -2
  35. package/dist/chunks/env-DW3G4HUO.js +19 -0
  36. package/dist/chunks/{esb-6XV7C7YV.js → esb-I5INCEFE.js} +4 -4
  37. package/dist/chunks/factory-TKXGXS6L.js +30 -0
  38. package/dist/chunks/{fna-XTSRB7G7.js → fna-K2MHTQ24.js} +2 -2
  39. package/dist/chunks/group-chat-VYBNMJLG.js +18 -0
  40. package/dist/chunks/{host-VGPVP7YF.js → host-256GVCAH.js} +3 -3
  41. package/dist/chunks/{host-A7J6GDUP.js → host-D5SERMAJ.js} +3 -3
  42. package/dist/chunks/{host-3F5UM5GN.js → host-JM4YVHFM.js} +3 -3
  43. package/dist/chunks/{host-YAQAPYNP.js → host-L3VLITMT.js} +3 -3
  44. package/dist/chunks/{host-YMBXWFWX.js → host-ZUQTJYYK.js} +3 -3
  45. package/dist/chunks/{hrm-TLHKC545.js → hrm-VLRBKTZB.js} +3 -3
  46. package/dist/chunks/{im-YOUCFMUK.js → im-QK3VTLXK.js} +8 -8
  47. package/dist/chunks/{invoice-WNBS2B4C.js → invoice-T5JTA32H.js} +3 -3
  48. package/dist/chunks/{jiuchuanhui-XABWS5RN.js → jiuchuanhui-P2FNEQVZ.js} +2 -2
  49. package/dist/chunks/{lazy-dispatch-NLZ5UQQI.js → lazy-dispatch-XRRI46M6.js} +4 -4
  50. package/dist/chunks/{mail-LRYMBFNL.js → mail-3Y7MJ6PS.js} +9 -4
  51. package/dist/chunks/{meeting-ESXL6MFI.js → meeting-M7LTXGJE.js} +11 -10
  52. package/dist/chunks/{okr-EOV65SSF.js → okr-OBC6S67L.js} +2 -2
  53. package/dist/chunks/{plan-YFPVKW6Y.js → plan-5H6I53SK.js} +2 -2
  54. package/dist/chunks/{project-MDVZUYQW.js → project-L75QZV4S.js} +2 -2
  55. package/dist/chunks/{registry-QCLZEDAP.js → registry-KMHCPAAD.js} +9 -8
  56. package/dist/chunks/{registry-OZSMDVPP.js → registry-QGHFNUWS.js} +2 -2
  57. package/dist/chunks/{registry-VT5Y2HLA.js → registry-RXPN6BBT.js} +4 -4
  58. package/dist/chunks/{registry-YX4CSEMD.js → registry-UGRBCBHO.js} +2 -2
  59. package/dist/chunks/{room-recommend-L3MWH4JW.js → room-recommend-A3UDC3CA.js} +4 -4
  60. package/dist/chunks/{schedule-UASAVDVD.js → schedule-5GCACCK7.js} +4 -4
  61. package/dist/chunks/{workflow-KDGIUCNW.js → workflow-M5ZJ7DWF.js} +6 -6
  62. package/dist/index.js +28 -28
  63. package/dist/internal/e10/auth/commands.js +109 -56
  64. package/dist/internal/e10/auth/session.js +11 -1
  65. package/dist/internal/e10/auth/xiaoe.js +29 -4
  66. package/dist/internal/e10/client.js +13 -0
  67. package/dist/internal/e10/context.js +14 -6
  68. package/dist/internal/e10/request-runtime.js +9 -0
  69. package/dist/shortcuts/cowork/operations/item-write.js +10 -2
  70. package/dist/shortcuts/mail/operations/mail-send.js +8 -2
  71. package/dist/shortcuts/meeting/operations/eb/catalog.js +5 -1
  72. package/dist/shortcuts/meeting/operations/eb/create-flow.js +381 -104
  73. package/dist/shortcuts/meeting/operations/eb/crm-search.js +87 -5
  74. package/dist/shortcuts/meeting/operations/eb/flow-memory.js +49 -0
  75. package/dist/shortcuts/meeting/operations/eb/group-chat.js +583 -0
  76. package/dist/shortcuts/meeting/operations/eb/index.js +2 -0
  77. package/dist/shortcuts/meeting/operations/eb/room-recommend.js +19 -3
  78. package/dist/shortcuts/meeting/operations/eb/room-summary.js +2 -0
  79. package/dist/shortcuts/meeting/operations/eb/usage-cache.js +99 -0
  80. package/dist/shortcuts/meeting/operations/from-group-chat.js +35 -12
  81. package/dist/shortcuts/workflow/operations/form.js +21 -2
  82. package/dist/shortcuts/workflow/operations/todoSmartConvert/aigroupRules.js +52 -1
  83. package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +10 -9
  84. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +28 -2
  85. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +1 -0
  86. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +17 -9
  87. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +1 -0
  88. package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +14 -2
  89. package/docs/e10-auth.md +15 -0
  90. package/package.json +1 -1
  91. package/scripts/mcp-meeting.mjs +234 -0
  92. package/skills/weaver-e10-cowork/references/cowork-write.md +1 -1
  93. package/skills/weaver-e10-mail/references/mail-send.md +2 -0
  94. package/skills/weaver-e10-meeting/SKILL.md +88 -25
  95. package/skills/weaver-e10-meeting/references/meeting-minute-file.md +25 -11
  96. package/skills/weaver-e10-meeting.zip +0 -0
  97. package/skills/weaver-e10-shared/SKILL.md +1 -1
  98. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +1 -1
  99. package/skills/weaver-e10-workflow/SKILL.md +4 -0
  100. package/skills/weaver-e10-workflow/aigroup/default.json +12 -0
  101. package/skills/weaver-e10-workflow/references/todo-smart-convert.md +17 -11
  102. package/skills/weaver-e10-workflow/tools/todo-summary.cjs +73 -23
  103. package/dist/chunks/{chunk-2LV74IWP.js → chunk-E7OK5WD5.js} +5 -5
@@ -11,7 +11,7 @@ import {
11
11
  resolveXiaoEPreferredBaseUrl,
12
12
  startFetchTiming,
13
13
  tryXiaoEUnifiedLogin
14
- } from "./chunk-XXJOSZTQ.js";
14
+ } from "./chunk-4TEDNCON.js";
15
15
  import {
16
16
  CliError
17
17
  } from "./chunk-LUSPKZKY.js";
@@ -208,21 +208,28 @@ function sameE10SessionIdentity(current, recovered) {
208
208
  }
209
209
 
210
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
+ }
211
219
  async function getE10Session(ctx, load = {}) {
212
220
  const options = ctx.getGlobalOptions();
213
221
  return E10AuthSession.fromOptions(options, ctx.cwd, load);
214
222
  }
215
223
  async function requireE10Session(ctx, load = {}) {
216
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
+ }
217
229
  if (!session && canAutomaticallyRecoverXiaoE(ctx)) {
218
230
  session = await recoverXiaoEAuthSession(ctx).catch(() => null);
219
231
  if (!session) {
220
- throw Object.assign(new CliError(E10_XIAOE_RECOVERY_FAILED_MESSAGE, 3 /* AuthError */), {
221
- type: "authentication",
222
- subtype: "xiaoe_credential_unavailable",
223
- retryable: false,
224
- stage: "xiaoe_unified_login"
225
- });
232
+ throw xiaoERecoveryFailedError();
226
233
  }
227
234
  }
228
235
  if (!session) {
@@ -282,6 +289,17 @@ var E10RequestRuntime = class {
282
289
  return this.request({ ...request, responseType: "binary" });
283
290
  }
284
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
+ }
285
303
  const mutable = this.prepareRequest(request);
286
304
  try {
287
305
  await this.runBeforeRequest(mutable, this.sessionContext());
@@ -391,6 +409,7 @@ var E10RequestRuntime = class {
391
409
  return false;
392
410
  }
393
411
  if (!recovered) return false;
412
+ if (recovered.isExpired?.()) return false;
394
413
  if (!sameE10SessionIdentity(this.session, recovered)) {
395
414
  throw new E10ApiError(
396
415
  "authentication",
@@ -7,8 +7,8 @@ import {
7
7
  findCommonFreeSlots,
8
8
  meetingEbConflictOperations,
9
9
  runEbConflictCheck
10
- } from "./chunk-EINRJHQ3.js";
11
- import "./chunk-CQHGNCK2.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-MUQUHKPG.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-EZGFHJFW.js";
17
- import "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-HJYVHXUQ.js";
12
+ } from "./chunk-T6EGVBKU.js";
13
13
  import {
14
14
  createEsbHost
15
- } from "./chunk-BJGXMFGD.js";
15
+ } from "./chunk-CAQNBBQA.js";
16
16
  import {
17
17
  esbValidationError
18
18
  } from "./chunk-GPMFD4RD.js";
19
- import "./chunk-EZGFHJFW.js";
20
- import "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-BJGXMFGD.js";
9
+ } from "./chunk-CAQNBBQA.js";
10
10
  import "./chunk-GPMFD4RD.js";
11
- import "./chunk-EZGFHJFW.js";
12
- import "./chunk-XXJOSZTQ.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-36DIFZAH.js";
7
+ } from "./chunk-IZSSVYAG.js";
8
8
  import "./chunk-OOUTBLZ4.js";
9
- import "./chunk-EZGFHJFW.js";
10
- import "./chunk-XXJOSZTQ.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-I2HB737U.js";
10
+ } from "./chunk-7U577Q7U.js";
11
11
  import "./chunk-ZEDWSH32.js";
12
- import "./chunk-EZGFHJFW.js";
13
- import "./chunk-XXJOSZTQ.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-K3RUEEOL.js";
8
+ } from "./chunk-NETCCARD.js";
9
9
  import "./chunk-FMPJJYYI.js";
10
- import "./chunk-EZGFHJFW.js";
11
- import "./chunk-XXJOSZTQ.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-MUQUHKPG.js";
10
+ } from "./chunk-CXRQWOZ5.js";
11
11
  import "./chunk-BYATLLEF.js";
12
- import "./chunk-EZGFHJFW.js";
13
- import "./chunk-XXJOSZTQ.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-36DIFZAH.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-EZGFHJFW.js";
18
- import "./chunk-XXJOSZTQ.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-I2HB737U.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-EZGFHJFW.js";
20
- import "./chunk-XXJOSZTQ.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-ZXRNHZTE.js";
11
- import "./chunk-EZGFHJFW.js";
12
- import "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-GVPJZXJ2.js";
8
+ } from "./chunk-LN447PY2.js";
9
9
  import "./chunk-ZUX3P6BQ.js";
10
10
  import "./chunk-AJ62BGAW.js";
11
- import "./chunk-ZXRNHZTE.js";
12
- import "./chunk-EZGFHJFW.js";
13
- import "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-NLK2RZKG.js";
7
- import "./chunk-T7JDJJ7H.js";
8
- import "./chunk-L4N7B7ZD.js";
9
- import "./chunk-P2DAISYW.js";
10
- import "./chunk-EINRJHQ3.js";
11
- import "./chunk-KTCB5R5H.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-YS5DPN4T.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-CQHGNCK2.js";
25
+ } from "./chunk-7BRU4EFH.js";
25
26
  import {
26
27
  E10ApiError,
27
28
  createE10RequestRuntime,
28
29
  isE10SessionExpiredResponse,
29
30
  requireE10Session
30
- } from "./chunk-EZGFHJFW.js";
31
+ } from "./chunk-WFFNM65B.js";
31
32
  import {
32
33
  E10_SESSION_EXPIRED_MESSAGE,
33
34
  getActiveProfile
34
- } from "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-EZGFHJFW.js";
8
+ } from "./chunk-WFFNM65B.js";
9
9
  import {
10
10
  E10_SESSION_EXPIRED_MESSAGE,
11
11
  getActiveProfile
12
- } from "./chunk-XXJOSZTQ.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-NLK2RZKG.js";
8
- import "./chunk-T7JDJJ7H.js";
9
- import "./chunk-L4N7B7ZD.js";
10
- import "./chunk-P2DAISYW.js";
11
- import "./chunk-EINRJHQ3.js";
12
- import "./chunk-KTCB5R5H.js";
13
- import "./chunk-YS5DPN4T.js";
14
- import "./chunk-CQHGNCK2.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-HJYVHXUQ.js";
8
- import "./chunk-BJGXMFGD.js";
7
+ } from "./chunk-T6EGVBKU.js";
8
+ import "./chunk-CAQNBBQA.js";
9
9
  import "./chunk-GPMFD4RD.js";
10
- import "./chunk-EZGFHJFW.js";
11
- import "./chunk-XXJOSZTQ.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 {