@axiom-lattice/react-sdk 4.9.1 → 4.11.0

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 (76) hide show
  1. package/dist/{AgentDetailSideApp-IKFO5B76.mjs → AgentDetailSideApp-ZGV4WC4V.mjs} +8 -8
  2. package/dist/AgentGovernanceWorkbench-HCVHQ3P7.mjs +20 -0
  3. package/dist/{MessageGraph-4O5BZI5H.mjs → MessageGraph-OA2HMEHI.mjs} +4 -4
  4. package/dist/{ReactChart-DSQZBNK7.mjs → ReactChart-DWIFRI5G.mjs} +4 -4
  5. package/dist/{SkillFlow-7UFS5RSF.mjs → SkillFlow-IHRME3YO.mjs} +4 -4
  6. package/dist/{TasksSideApp-UERUXLGZ.mjs → TasksSideApp-KKBQDSO4.mjs} +5 -5
  7. package/dist/{TeamWorkspace-RMFSSDLK.mjs → TeamWorkspace-ETVDJAYT.mjs} +4 -4
  8. package/dist/{TopologyRuntimeView-OYMC3OZ7.mjs → TopologyRuntimeView-F7JQAXN2.mjs} +5 -5
  9. package/dist/{WorkflowAutomationView-CYLQ3HOW.mjs → WorkflowAutomationView-PBZ5K43L.mjs} +7 -7
  10. package/dist/{chunk-73ZKUUUV.mjs → chunk-3FXH5ZAQ.mjs} +3 -3
  11. package/dist/{chunk-BGRLHXKR.mjs → chunk-3MF4SALK.mjs} +6 -6
  12. package/dist/{chunk-JEYG4OYQ.mjs → chunk-3SEKZBYQ.mjs} +3 -3
  13. package/dist/{chunk-2RTE6SQG.mjs → chunk-57IPUJ5T.mjs} +3 -3
  14. package/dist/{chunk-WZPXSVHJ.mjs → chunk-6XGZ74LQ.mjs} +75 -30
  15. package/dist/chunk-6XGZ74LQ.mjs.map +1 -0
  16. package/dist/{chunk-MZIYYFYF.mjs → chunk-EHUPRLAS.mjs} +38 -10
  17. package/dist/chunk-EHUPRLAS.mjs.map +1 -0
  18. package/dist/{chunk-YCRJHIO7.mjs → chunk-JQLUFZKH.mjs} +6 -6
  19. package/dist/{chunk-WEEKSFGI.mjs → chunk-KU634FOH.mjs} +4 -4
  20. package/dist/{chunk-MD7WRYIP.mjs → chunk-PEEXMLMK.mjs} +23 -7
  21. package/dist/chunk-PEEXMLMK.mjs.map +1 -0
  22. package/dist/{chunk-V7SUAKB5.mjs → chunk-TA243DB6.mjs} +36 -3
  23. package/dist/chunk-TA243DB6.mjs.map +1 -0
  24. package/dist/{embed-page-AgentDetailSideApp-WQAMMDXN.js → embed-page-AgentDetailSideApp-RM4TDSC5.js} +1 -1
  25. package/dist/{embed-page-AgentGovernanceWorkbench-VKD4IZIO.js → embed-page-AgentGovernanceWorkbench-G6A6QNZY.js} +1 -1
  26. package/dist/{embed-page-MessageGraph-C4EJWY3E.js → embed-page-MessageGraph-ZLGTKJNE.js} +1 -1
  27. package/dist/{embed-page-ReactChart-TNT4TT4C.js → embed-page-ReactChart-IB6R6G57.js} +1 -1
  28. package/dist/{embed-page-SkillFlow-WWRDU6GS.js → embed-page-SkillFlow-STU36L34.js} +1 -1
  29. package/dist/{embed-page-TasksSideApp-73SJLGRY.js → embed-page-TasksSideApp-X4APWG4G.js} +1 -1
  30. package/dist/{embed-page-TeamWorkspace-6E4HAH7L.js → embed-page-TeamWorkspace-EK4BNNGD.js} +1 -1
  31. package/dist/{embed-page-TopologyRuntimeView-SXUNRFT4.js → embed-page-TopologyRuntimeView-X5CHJPHN.js} +1 -1
  32. package/dist/{embed-page-WorkflowAutomationView-I4VN6YY2.js → embed-page-WorkflowAutomationView-3LIT27E2.js} +1 -1
  33. package/dist/{embed-page-chunk-YZMHK63X.js → embed-page-chunk-5WPKSLDW.js} +1 -1
  34. package/dist/embed-page-chunk-64FTYZ5F.js +2 -0
  35. package/dist/{embed-page-chunk-IM57IYUL.js → embed-page-chunk-734QFJP3.js} +1 -1
  36. package/dist/{embed-page-chunk-L7HKGCDN.js → embed-page-chunk-7D54ACES.js} +1 -1
  37. package/dist/{embed-page-chunk-TEIHYMTL.js → embed-page-chunk-DDK2VFYD.js} +7 -7
  38. package/dist/{embed-page-chunk-G5NEOKZK.js → embed-page-chunk-EQRDCFN5.js} +1 -1
  39. package/dist/{embed-page-chunk-WUOHF2QZ.js → embed-page-chunk-W45YCZIC.js} +7 -7
  40. package/dist/{embed-page-en-GE4GI4D3.js → embed-page-en-ICVL5QAC.js} +1 -1
  41. package/dist/{embed-page-zh-KC2E7UVY.js → embed-page-zh-FPYCTKQK.js} +1 -1
  42. package/dist/embed-page.js +1 -1
  43. package/dist/{en-EYIMZ5UR.mjs → en-QKZNWG2U.mjs} +13 -3
  44. package/dist/{en-EYIMZ5UR.mjs.map → en-QKZNWG2U.mjs.map} +1 -1
  45. package/dist/index.d.mts +53 -5
  46. package/dist/index.d.ts +53 -5
  47. package/dist/index.js +287 -142
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +10 -10
  50. package/dist/web-app.js +25 -10
  51. package/dist/web-app.js.map +1 -1
  52. package/dist/web-app.mjs +1 -1
  53. package/dist/{zh-7GXZLF3M.mjs → zh-5WQFAPH5.mjs} +13 -3
  54. package/dist/{zh-7GXZLF3M.mjs.map → zh-5WQFAPH5.mjs.map} +1 -1
  55. package/package.json +4 -4
  56. package/dist/AgentGovernanceWorkbench-HWXXIML7.mjs +0 -20
  57. package/dist/chunk-MD7WRYIP.mjs.map +0 -1
  58. package/dist/chunk-MZIYYFYF.mjs.map +0 -1
  59. package/dist/chunk-V7SUAKB5.mjs.map +0 -1
  60. package/dist/chunk-WZPXSVHJ.mjs.map +0 -1
  61. package/dist/embed-page-chunk-RQXI6NQX.js +0 -2
  62. /package/dist/{AgentDetailSideApp-IKFO5B76.mjs.map → AgentDetailSideApp-ZGV4WC4V.mjs.map} +0 -0
  63. /package/dist/{AgentGovernanceWorkbench-HWXXIML7.mjs.map → AgentGovernanceWorkbench-HCVHQ3P7.mjs.map} +0 -0
  64. /package/dist/{MessageGraph-4O5BZI5H.mjs.map → MessageGraph-OA2HMEHI.mjs.map} +0 -0
  65. /package/dist/{ReactChart-DSQZBNK7.mjs.map → ReactChart-DWIFRI5G.mjs.map} +0 -0
  66. /package/dist/{SkillFlow-7UFS5RSF.mjs.map → SkillFlow-IHRME3YO.mjs.map} +0 -0
  67. /package/dist/{TasksSideApp-UERUXLGZ.mjs.map → TasksSideApp-KKBQDSO4.mjs.map} +0 -0
  68. /package/dist/{TeamWorkspace-RMFSSDLK.mjs.map → TeamWorkspace-ETVDJAYT.mjs.map} +0 -0
  69. /package/dist/{TopologyRuntimeView-OYMC3OZ7.mjs.map → TopologyRuntimeView-F7JQAXN2.mjs.map} +0 -0
  70. /package/dist/{WorkflowAutomationView-CYLQ3HOW.mjs.map → WorkflowAutomationView-PBZ5K43L.mjs.map} +0 -0
  71. /package/dist/{chunk-73ZKUUUV.mjs.map → chunk-3FXH5ZAQ.mjs.map} +0 -0
  72. /package/dist/{chunk-BGRLHXKR.mjs.map → chunk-3MF4SALK.mjs.map} +0 -0
  73. /package/dist/{chunk-JEYG4OYQ.mjs.map → chunk-3SEKZBYQ.mjs.map} +0 -0
  74. /package/dist/{chunk-2RTE6SQG.mjs.map → chunk-57IPUJ5T.mjs.map} +0 -0
  75. /package/dist/{chunk-YCRJHIO7.mjs.map → chunk-JQLUFZKH.mjs.map} +0 -0
  76. /package/dist/{chunk-WEEKSFGI.mjs.map → chunk-KU634FOH.mjs.map} +0 -0
package/dist/index.js CHANGED
@@ -2174,10 +2174,19 @@ var require_en5 = __commonJS({
2174
2174
  "chatConfig.paChannel.chooseType": "Choose Channel Type",
2175
2175
  "chatConfig.paChannel.editChannel": "Edit Channel",
2176
2176
  "chatConfig.paChannel.newChannel": "New {{channel}}",
2177
- "chatConfig.paChannel.channel.lark": "Feishu / Lark",
2178
- "chatConfig.paChannel.channel.wechat": "WeChat / \u5FAE\u4FE1",
2177
+ "chatConfig.paChannel.channel.lark": "Feishu",
2178
+ "chatConfig.paChannel.channel.wechat": "WeChat",
2179
+ "chatConfig.paChannel.channel.wecom": "WeCom",
2179
2180
  "chatConfig.paChannel.wechatBot": "WeChat Bot",
2180
2181
  "chatConfig.paChannel.feishuBot": "Feishu Bot",
2182
+ "chatConfig.paChannel.wecomBot": "WeCom Bot",
2183
+ "chatConfig.paChannel.field.botId": "Bot ID",
2184
+ "chatConfig.paChannel.field.secret": "Secret",
2185
+ "chatConfig.paChannel.placeholder.botId": "Bot ID from the WeCom admin console",
2186
+ "chatConfig.paChannel.placeholder.secret": "Long-connection Secret from the WeCom admin console",
2187
+ "chatConfig.paChannel.wecomConnectHint": "Uses the smart-bot long-connection (API) mode \u2014 no public callback URL; the gateway maintains the connection.",
2188
+ "chatConfig.paChannel.validation.botIdRequired": "Bot ID is required",
2189
+ "chatConfig.paChannel.validation.secretRequired": "Secret is required",
2181
2190
  "chatConfig.paChannel.field.channelType": "Channel Type",
2182
2191
  "chatConfig.paChannel.field.displayName": "Display Name",
2183
2192
  "chatConfig.paChannel.field.appId": "App ID",
@@ -2199,6 +2208,7 @@ var require_en5 = __commonJS({
2199
2208
  "chatConfig.paChannel.required": "Required",
2200
2209
  "chatConfig.paChannel.placeholder.wechatOpenId": "WeChat Open ID",
2201
2210
  "chatConfig.paChannel.placeholder.feishuOpenId": "Feishu Open ID",
2211
+ "chatConfig.paChannel.placeholder.wecomUserId": "WeCom User ID",
2202
2212
  "chatConfig.paChannel.placeholder.displayName": "Display name (optional)",
2203
2213
  "chatConfig.paChannel.placeholder.appSecret": "Your app secret",
2204
2214
  "chatConfig.paChannel.placeholder.optional": "Optional",
@@ -2760,10 +2770,19 @@ var require_zh5 = __commonJS({
2760
2770
  "chatConfig.paChannel.chooseType": "\u9009\u62E9\u6E20\u9053\u7C7B\u578B",
2761
2771
  "chatConfig.paChannel.editChannel": "\u7F16\u8F91\u6E20\u9053",
2762
2772
  "chatConfig.paChannel.newChannel": "\u65B0\u5EFA{{channel}}",
2763
- "chatConfig.paChannel.channel.lark": "\u98DE\u4E66 / Lark",
2764
- "chatConfig.paChannel.channel.wechat": "WeChat / \u5FAE\u4FE1",
2773
+ "chatConfig.paChannel.channel.lark": "\u98DE\u4E66",
2774
+ "chatConfig.paChannel.channel.wechat": "\u5FAE\u4FE1",
2775
+ "chatConfig.paChannel.channel.wecom": "\u4F01\u4E1A\u5FAE\u4FE1",
2765
2776
  "chatConfig.paChannel.wechatBot": "\u5FAE\u4FE1\u673A\u5668\u4EBA",
2766
2777
  "chatConfig.paChannel.feishuBot": "\u98DE\u4E66\u673A\u5668\u4EBA",
2778
+ "chatConfig.paChannel.wecomBot": "\u4F01\u4E1A\u5FAE\u4FE1\u673A\u5668\u4EBA",
2779
+ "chatConfig.paChannel.field.botId": "\u673A\u5668\u4EBA Bot ID",
2780
+ "chatConfig.paChannel.field.secret": "\u957F\u8FDE\u63A5 Secret",
2781
+ "chatConfig.paChannel.placeholder.botId": "\u4F01\u4E1A\u5FAE\u4FE1\u540E\u53F0\u83B7\u53D6\u7684 Bot ID",
2782
+ "chatConfig.paChannel.placeholder.secret": "\u4F01\u4E1A\u5FAE\u4FE1\u540E\u53F0\u83B7\u53D6\u7684\u957F\u8FDE\u63A5 Secret",
2783
+ "chatConfig.paChannel.wecomConnectHint": "\u4F7F\u7528\u300C\u667A\u80FD\u673A\u5668\u4EBA\u300D\u7684\u957F\u8FDE\u63A5\uFF08API\uFF09\u6A21\u5F0F\uFF0C\u65E0\u9700\u516C\u7F51\u56DE\u8C03\u5730\u5740\uFF1B\u5F00\u542F\u540E\u7531\u7F51\u5173\u7EF4\u62A4\u957F\u8FDE\u63A5\u3002",
2784
+ "chatConfig.paChannel.validation.botIdRequired": "Bot ID \u4E3A\u5FC5\u586B\u9879",
2785
+ "chatConfig.paChannel.validation.secretRequired": "Secret \u4E3A\u5FC5\u586B\u9879",
2767
2786
  "chatConfig.paChannel.field.channelType": "\u6E20\u9053\u7C7B\u578B",
2768
2787
  "chatConfig.paChannel.field.displayName": "\u663E\u793A\u540D\u79F0",
2769
2788
  "chatConfig.paChannel.field.appId": "App ID",
@@ -2785,6 +2804,7 @@ var require_zh5 = __commonJS({
2785
2804
  "chatConfig.paChannel.required": "\u5FC5\u586B",
2786
2805
  "chatConfig.paChannel.placeholder.wechatOpenId": "\u5FAE\u4FE1 Open ID",
2787
2806
  "chatConfig.paChannel.placeholder.feishuOpenId": "\u98DE\u4E66 Open ID",
2807
+ "chatConfig.paChannel.placeholder.wecomUserId": "\u4F01\u4E1A\u5FAE\u4FE1 UserID",
2788
2808
  "chatConfig.paChannel.placeholder.displayName": "\u663E\u793A\u540D\u79F0\uFF08\u53EF\u9009\uFF09",
2789
2809
  "chatConfig.paChannel.placeholder.appSecret": "\u4F60\u7684 app secret",
2790
2810
  "chatConfig.paChannel.placeholder.optional": "\u53EF\u9009",
@@ -6783,18 +6803,19 @@ var init_useT = __esm({
6783
6803
  // src/i18n/useLocale.ts
6784
6804
 
6785
6805
  function useLocale() {
6786
- return _react.useContext.call(void 0, LocaleBridgeContext);
6806
+ return _nullishCoalesce(_react.useContext.call(void 0, LocaleBridgeContext), () => ( INERT_LOCALE_BRIDGE));
6787
6807
  }
6788
- var LocaleBridgeContext;
6808
+ var INERT_LOCALE_BRIDGE, LocaleBridgeContext;
6789
6809
  var init_useLocale = __esm({
6790
6810
  "src/i18n/useLocale.ts"() {
6791
6811
  "use strict";
6792
6812
  init_instance();
6793
- LocaleBridgeContext = _react.createContext.call(void 0, {
6813
+ INERT_LOCALE_BRIDGE = {
6794
6814
  locale: "en-US",
6795
6815
  setLocale: () => void 0,
6796
6816
  supportedLocales: SUPPORTED_LOCALES
6797
- });
6817
+ };
6818
+ LocaleBridgeContext = _react.createContext.call(void 0, null);
6798
6819
  }
6799
6820
  });
6800
6821
 
@@ -6867,6 +6888,25 @@ var init_LatticeLocaleProvider = __esm({
6867
6888
  }
6868
6889
  });
6869
6890
 
6891
+ // src/i18n/localeStorage.ts
6892
+ function readStoredLocale(storageKey = DEFAULT_LOCALE_STORAGE_KEY) {
6893
+ if (typeof window === "undefined") return void 0;
6894
+ try {
6895
+ const stored = window.localStorage.getItem(storageKey);
6896
+ return stored !== null && SUPPORTED_LOCALES.includes(stored) ? stored : void 0;
6897
+ } catch (e19) {
6898
+ return void 0;
6899
+ }
6900
+ }
6901
+ var DEFAULT_LOCALE_STORAGE_KEY;
6902
+ var init_localeStorage = __esm({
6903
+ "src/i18n/localeStorage.ts"() {
6904
+ "use strict";
6905
+ init_instance();
6906
+ DEFAULT_LOCALE_STORAGE_KEY = "lattice.locale";
6907
+ }
6908
+ });
6909
+
6870
6910
  // src/i18n/index.ts
6871
6911
  var init_i18n = __esm({
6872
6912
  "src/i18n/index.ts"() {
@@ -6874,6 +6914,7 @@ var init_i18n = __esm({
6874
6914
  init_useT();
6875
6915
  init_useLocale();
6876
6916
  init_LatticeLocaleProvider();
6917
+ init_localeStorage();
6877
6918
  init_instance();
6878
6919
  }
6879
6920
  });
@@ -6931,7 +6972,7 @@ var init_AuthContext = __esm({
6931
6972
  const storedPA = readAuthItem(getPAKey(ct.id));
6932
6973
  if (storedPA) setPersonalAssistant(JSON.parse(storedPA));
6933
6974
  }
6934
- } catch (e19) {
6975
+ } catch (e20) {
6935
6976
  removeAuthItem("lattice_user");
6936
6977
  removeAuthItem("lattice_tenants");
6937
6978
  removeAuthItem("lattice_current_tenant");
@@ -7226,8 +7267,12 @@ function AxiomLatticeProvider({
7226
7267
  config,
7227
7268
  onUnauthorized,
7228
7269
  createClient,
7270
+ locale: locale3,
7271
+ storageKey = DEFAULT_LOCALE_STORAGE_KEY,
7272
+ onLocaleChange,
7229
7273
  children: children2
7230
7274
  }) {
7275
+ const localeProvidedAbove = _react.useContext.call(void 0, LocaleBridgeContext) !== null;
7231
7276
  const authContext = _react.useContext.call(void 0, AuthContext);
7232
7277
  const tenantId = _optionalChain([authContext, 'optionalAccess', _38 => _38.currentTenant, 'optionalAccess', _39 => _39.id]);
7233
7278
  const effectiveApiKey = _react.useMemo.call(void 0, () => {
@@ -7286,7 +7331,32 @@ function AxiomLatticeProvider({
7286
7331
  }),
7287
7332
  [getClient]
7288
7333
  );
7289
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.App, { component: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AxiomLatticeContext.Provider, { value, children: children2 }) });
7334
+ const initialLocale = _react.useMemo.call(void 0,
7335
+ () => _nullishCoalesce(_nullishCoalesce(locale3, () => ( readStoredLocale(storageKey))), () => ( "en-US")),
7336
+ [locale3, storageKey]
7337
+ );
7338
+ const handleLocaleChange = _react.useMemo.call(void 0,
7339
+ () => _nullishCoalesce(onLocaleChange, () => ( (() => {
7340
+ if (typeof window !== "undefined") window.location.reload();
7341
+ }))),
7342
+ [onLocaleChange]
7343
+ );
7344
+ const content = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AxiomLatticeContext.Provider, { value, children: children2 });
7345
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.App, { component: false, children: localeProvidedAbove ? content : (
7346
+ /* No locale layer above: supply one so a host that mounts only this
7347
+ * provider gets real copy and a working switch, not raw keys. The
7348
+ * dictionaries it loads are what `useT()` below would otherwise render
7349
+ * as keys. */
7350
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7351
+ LatticeLocaleProvider,
7352
+ {
7353
+ locale: initialLocale,
7354
+ storageKey,
7355
+ onLocaleChange: handleLocaleChange,
7356
+ children: content
7357
+ }
7358
+ )
7359
+ ) });
7290
7360
  }
7291
7361
  function useClient(assistantId) {
7292
7362
  const context = _react.useContext.call(void 0, AxiomLatticeContext);
@@ -7319,6 +7389,9 @@ var init_context = __esm({
7319
7389
  "use strict";
7320
7390
  init_AuthContext();
7321
7391
  init_authStorage();
7392
+ init_LatticeLocaleProvider();
7393
+ init_useLocale();
7394
+ init_localeStorage();
7322
7395
  AxiomLatticeContext = _react.createContext.call(void 0, {
7323
7396
  getClient: () => {
7324
7397
  throw new Error("getClient must be used within AxiomLatticeProvider");
@@ -9201,7 +9274,7 @@ var init_LoginForm = __esm({
9201
9274
  try {
9202
9275
  await login(values.email, values.password);
9203
9276
  _optionalChain([onSuccess, 'optionalCall', _76 => _76()]);
9204
- } catch (e20) {
9277
+ } catch (e21) {
9205
9278
  }
9206
9279
  };
9207
9280
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _antd.Card, { className: `${styles.card} ${className}`, style: { width: 400 }, children: [
@@ -10260,7 +10333,7 @@ function useUsers(options) {
10260
10333
  }
10261
10334
  const { data } = await response.json();
10262
10335
  return _optionalChain([data, 'optionalAccess', _97 => _97[0]]) || null;
10263
- } catch (e21) {
10336
+ } catch (e23) {
10264
10337
  return null;
10265
10338
  }
10266
10339
  }, [baseURL, tenantId, token]);
@@ -15215,7 +15288,7 @@ var init_TenantModelProvidersModal = __esm({
15215
15288
  let parsed;
15216
15289
  try {
15217
15290
  parsed = JSON.parse(raw);
15218
- } catch (e23) {
15291
+ } catch (e24) {
15219
15292
  _antd.message.error(t4("auth.modelProviders.extraInvalidJson"));
15220
15293
  return;
15221
15294
  }
@@ -17984,7 +18057,7 @@ function readStoredOptIn() {
17984
18057
  if (typeof window === "undefined") return false;
17985
18058
  try {
17986
18059
  return window.localStorage.getItem(STORAGE_KEY) === "1";
17987
- } catch (e24) {
18060
+ } catch (e25) {
17988
18061
  return false;
17989
18062
  }
17990
18063
  }
@@ -18007,7 +18080,7 @@ function setInPageOptIn(value) {
18007
18080
  try {
18008
18081
  if (value) window.localStorage.setItem(STORAGE_KEY, "1");
18009
18082
  else window.localStorage.removeItem(STORAGE_KEY);
18010
- } catch (e25) {
18083
+ } catch (e26) {
18011
18084
  }
18012
18085
  }
18013
18086
  emit();
@@ -18085,7 +18158,7 @@ async function detectPushSubscription() {
18085
18158
  if (subscription === null) return null;
18086
18159
  setPushSubscribed(true);
18087
18160
  return subscription;
18088
- } catch (e26) {
18161
+ } catch (e27) {
18089
18162
  return null;
18090
18163
  }
18091
18164
  }
@@ -18133,7 +18206,7 @@ function useWebPush(options = {}) {
18133
18206
  const payload = await response.json();
18134
18207
  const key = _optionalChain([payload, 'access', _260 => _260.data, 'optionalAccess', _261 => _261.publicKey]);
18135
18208
  return typeof key === "string" && key.length > 0 ? key : null;
18136
- } catch (e27) {
18209
+ } catch (e28) {
18137
18210
  return null;
18138
18211
  }
18139
18212
  }, [options.vapidPublicKey, vapidKeyUrl]);
@@ -18185,7 +18258,7 @@ function useWebPush(options = {}) {
18185
18258
  }
18186
18259
  setSubscribed(false);
18187
18260
  setPushSubscribed(false);
18188
- } catch (e28) {
18261
+ } catch (e29) {
18189
18262
  setSubscribed(false);
18190
18263
  setPushSubscribed(false);
18191
18264
  }
@@ -18748,7 +18821,7 @@ function ScopedRoomEventsProvider({ workspaceId, client, children: children2 })
18748
18821
  window.focus();
18749
18822
  notification.close();
18750
18823
  };
18751
- } catch (e29) {
18824
+ } catch (e30) {
18752
18825
  }
18753
18826
  }, [selfUserId, t4]);
18754
18827
  const launchStream = _react.useCallback.call(void 0, (generation) => {
@@ -21533,7 +21606,7 @@ var init_MarkdownViewer = __esm({
21533
21606
  } else {
21534
21607
  name = url.pathname.split("/").pop() || name;
21535
21608
  }
21536
- } catch (e30) {
21609
+ } catch (e31) {
21537
21610
  name = name.split("/").pop() || name;
21538
21611
  }
21539
21612
  } else {
@@ -21903,7 +21976,7 @@ var init_ShareModal = __esm({
21903
21976
  try {
21904
21977
  const all = await listShares();
21905
21978
  setShares(all.filter((r6) => filePathMatch(r6, filePath) && !r6.revoked));
21906
- } catch (e31) {
21979
+ } catch (e32) {
21907
21980
  }
21908
21981
  setLoading(false);
21909
21982
  }, [listShares, filePath]);
@@ -21956,7 +22029,7 @@ ${pwdText}`.trim());
21956
22029
  await unshareFile(token);
21957
22030
  _antd.message.success(t4("genui.share.revoked"));
21958
22031
  loadShares();
21959
- } catch (e32) {
22032
+ } catch (e33) {
21960
22033
  _antd.message.error(t4("genui.share.revokeFailed"));
21961
22034
  }
21962
22035
  }, [unshareFile, loadShares, t4]);
@@ -22103,7 +22176,7 @@ function parseEmbedContent(children2) {
22103
22176
  if (content.startsWith("{")) {
22104
22177
  try {
22105
22178
  return JSON.parse(content);
22106
- } catch (e33) {
22179
+ } catch (e34) {
22107
22180
  return { path: content };
22108
22181
  }
22109
22182
  }
@@ -22200,7 +22273,7 @@ var init_Embed = __esm({
22200
22273
  if (embedConfig.url) {
22201
22274
  try {
22202
22275
  return new URL(embedConfig.url).pathname.split("/").pop() || embedConfig.url;
22203
- } catch (e34) {
22276
+ } catch (e35) {
22204
22277
  return embedConfig.url;
22205
22278
  }
22206
22279
  }
@@ -33353,7 +33426,7 @@ function isLinkLoaded(link3) {
33353
33426
  return true;
33354
33427
  try {
33355
33428
  return !!link3.sheet;
33356
- } catch (e35) {
33429
+ } catch (e36) {
33357
33430
  return false;
33358
33431
  }
33359
33432
  }
@@ -33889,7 +33962,7 @@ var init_svg = __esm({
33889
33962
  function isRemoteResource(resource) {
33890
33963
  try {
33891
33964
  return Boolean(new URL(resource));
33892
- } catch (e36) {
33965
+ } catch (e37) {
33893
33966
  return false;
33894
33967
  }
33895
33968
  }
@@ -34216,7 +34289,7 @@ async function getResource(scene, config, datum2) {
34216
34289
  if (customLoader)
34217
34290
  resource = await customLoader(cfg);
34218
34291
  }
34219
- } catch (e37) {
34292
+ } catch (e38) {
34220
34293
  resource = null;
34221
34294
  }
34222
34295
  if (resource)
@@ -37500,7 +37573,7 @@ function isBrowser() {
37500
37573
  const rect = el.getBoundingClientRect();
37501
37574
  body.removeChild(el);
37502
37575
  hasRealLayout = rect.width === 37 && rect.height === 19 && rect.left !== 0 && rect.top !== 0;
37503
- } catch (e38) {
37576
+ } catch (e39) {
37504
37577
  hasRealLayout = false;
37505
37578
  }
37506
37579
  if (!hasRealLayout) {
@@ -37518,7 +37591,7 @@ function isBrowser() {
37518
37591
  ctx.font = "20px sans-serif";
37519
37592
  const metrics = ctx.measureText("Hello");
37520
37593
  hasRealCanvas = typeof metrics.width === "number" && metrics.width > 0 && metrics.width < 1e3;
37521
- } catch (e39) {
37594
+ } catch (e40) {
37522
37595
  hasRealCanvas = false;
37523
37596
  }
37524
37597
  if (hasRealCanvas)
@@ -37851,7 +37924,7 @@ function setTextContent(text, content) {
37851
37924
  if (entity) {
37852
37925
  try {
37853
37926
  entity.innerText = content;
37854
- } catch (e40) {
37927
+ } catch (e41) {
37855
37928
  entity.textContent = content;
37856
37929
  }
37857
37930
  }
@@ -38351,7 +38424,7 @@ function setSVGPadding(svg2, padding) {
38351
38424
  childList: true,
38352
38425
  subtree: true
38353
38426
  });
38354
- } catch (e41) {
38427
+ } catch (e42) {
38355
38428
  setSVGPaddingInNode(svg2, padding);
38356
38429
  }
38357
38430
  }
@@ -87525,7 +87598,7 @@ function linkifySandboxPaths(src, options) {
87525
87598
  let blocks;
87526
87599
  try {
87527
87600
  blocks = _marked.lexer.call(void 0, src);
87528
- } catch (e42) {
87601
+ } catch (e43) {
87529
87602
  return src;
87530
87603
  }
87531
87604
  const ranges2 = [];
@@ -88193,7 +88266,7 @@ function useVoiceRecorder(options) {
88193
88266
  }));
88194
88267
  };
88195
88268
  recorder.start(timeslice);
88196
- } catch (e43) {
88269
+ } catch (e44) {
88197
88270
  cleanupAudio();
88198
88271
  setState((prev) => ({
88199
88272
  ...prev,
@@ -89078,7 +89151,7 @@ var init_ToolCard = __esm({
89078
89151
  try {
89079
89152
  const jsonStr = JSON.stringify(value, null, 2);
89080
89153
  return jsonStr.length > 100 ? JSON.stringify(value) : jsonStr;
89081
- } catch (e44) {
89154
+ } catch (e45) {
89082
89155
  return String(value);
89083
89156
  }
89084
89157
  }
@@ -89499,7 +89572,7 @@ function toolResponseText(response) {
89499
89572
  try {
89500
89573
  const json2 = JSON.stringify(response);
89501
89574
  return typeof json2 === "string" ? json2 : "";
89502
- } catch (e45) {
89575
+ } catch (e46) {
89503
89576
  return "";
89504
89577
  }
89505
89578
  }
@@ -89520,7 +89593,7 @@ function extractUiRef(response) {
89520
89593
  if (!match) return null;
89521
89594
  try {
89522
89595
  return _protocols.parseMcpUiRef.call(void 0, JSON.parse(match[1].trim()));
89523
- } catch (e46) {
89596
+ } catch (e47) {
89524
89597
  return null;
89525
89598
  }
89526
89599
  }
@@ -89547,7 +89620,7 @@ function gatewayOriginOf(client) {
89547
89620
  if (!baseURL) return null;
89548
89621
  try {
89549
89622
  return new URL(baseURL, window.location.origin).origin;
89550
- } catch (e47) {
89623
+ } catch (e48) {
89551
89624
  return null;
89552
89625
  }
89553
89626
  }
@@ -89671,7 +89744,7 @@ var init_McpAppRenderer = __esm({
89671
89744
  };
89672
89745
  latestRef.current.openSideApp(card);
89673
89746
  return "fullscreen";
89674
- } catch (e48) {
89747
+ } catch (e49) {
89675
89748
  return "inline";
89676
89749
  }
89677
89750
  },
@@ -89978,7 +90051,7 @@ function parseManageEvalResponse(response) {
89978
90051
  return parsed;
89979
90052
  }
89980
90053
  return { success: true, data: parsed };
89981
- } catch (e49) {
90054
+ } catch (e50) {
89982
90055
  return { success: true, data: void 0 };
89983
90056
  }
89984
90057
  }
@@ -90646,7 +90719,7 @@ var init_EvalSuiteDetail = __esm({
90646
90719
  setAgentsLoading(true);
90647
90720
  try {
90648
90721
  setAgents(await client.assistants.list());
90649
- } catch (e50) {
90722
+ } catch (e51) {
90650
90723
  _antd.message.error(t4("eval.case.loadAgentsFailed"));
90651
90724
  } finally {
90652
90725
  setAgentsLoading(false);
@@ -91792,7 +91865,7 @@ var init_eval_detail_side_app = __esm({
91792
91865
  }
91793
91866
  }
91794
91867
  if (!cancelled) setResolved(rawInitial);
91795
- } catch (e51) {
91868
+ } catch (e52) {
91796
91869
  if (!cancelled) setResolved(rawInitial);
91797
91870
  }
91798
91871
  })();
@@ -96061,7 +96134,7 @@ function parseTaskExecution(response) {
96061
96134
  try {
96062
96135
  const parsed = JSON.parse(response);
96063
96136
  if (parsed && typeof parsed === "object") return parsed;
96064
- } catch (e52) {
96137
+ } catch (e53) {
96065
96138
  return void 0;
96066
96139
  }
96067
96140
  return void 0;
@@ -96071,7 +96144,7 @@ function parseTaskResult(response, t4) {
96071
96144
  let parsed;
96072
96145
  try {
96073
96146
  parsed = JSON.parse(response);
96074
- } catch (e53) {
96147
+ } catch (e54) {
96075
96148
  return { kind: "raw", text: response };
96076
96149
  }
96077
96150
  if (!parsed || typeof parsed !== "object") return { kind: "raw", text: response };
@@ -96116,7 +96189,7 @@ async function resolveExecutionThreadId(client, taskId, response, contextThreadI
96116
96189
  }
96117
96190
  }
96118
96191
  return latest;
96119
- } catch (e54) {
96192
+ } catch (e55) {
96120
96193
  return void 0;
96121
96194
  }
96122
96195
  }
@@ -103229,7 +103302,7 @@ function parseInterruptFence(value) {
103229
103302
  try {
103230
103303
  const parsed = JSON.parse(match[2]);
103231
103304
  return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? { key: match[1], data: parsed } : void 0;
103232
- } catch (e55) {
103305
+ } catch (e56) {
103233
103306
  return void 0;
103234
103307
  }
103235
103308
  }
@@ -105403,14 +105476,14 @@ var init_ModelSelector = __esm({
105403
105476
  getStoredModelKey = () => {
105404
105477
  try {
105405
105478
  return sessionStorage.getItem(STORAGE_KEY2);
105406
- } catch (e56) {
105479
+ } catch (e57) {
105407
105480
  return null;
105408
105481
  }
105409
105482
  };
105410
105483
  setStoredModelKey = (key) => {
105411
105484
  try {
105412
105485
  sessionStorage.setItem(STORAGE_KEY2, key);
105413
- } catch (e57) {
105486
+ } catch (e58) {
105414
105487
  }
105415
105488
  };
105416
105489
  ModelSelector = exports.ModelSelector = ({
@@ -106471,7 +106544,7 @@ function InitialMessageSubmitter({
106471
106544
  throwOnError: true,
106472
106545
  ...request.customRunConfig ? { customRunConfig: request.customRunConfig } : {}
106473
106546
  });
106474
- } catch (e58) {
106547
+ } catch (e59) {
106475
106548
  requestRegistryRef.current.delete(requestId);
106476
106549
  return;
106477
106550
  }
@@ -107503,7 +107576,7 @@ var init_internet_search_card = __esm({
107503
107576
  try {
107504
107577
  const urlObj = new URL(url);
107505
107578
  return urlObj.hostname.replace(/^www\./, "");
107506
- } catch (e59) {
107579
+ } catch (e60) {
107507
107580
  return url;
107508
107581
  }
107509
107582
  };
@@ -108173,7 +108246,7 @@ var init_TeamGraph = __esm({
108173
108246
  teammates: Array.isArray(_optionalChain([parsed, 'optionalAccess', _1563 => _1563.teammates])) ? parsed.teammates : [],
108174
108247
  tasks: Array.isArray(_optionalChain([parsed, 'optionalAccess', _1564 => _1564.tasks])) ? parsed.tasks : []
108175
108248
  };
108176
- } catch (e60) {
108249
+ } catch (e61) {
108177
108250
  return null;
108178
108251
  }
108179
108252
  }
@@ -114109,7 +114182,7 @@ var init_TaskCreateModal = __esm({
114109
114182
  });
114110
114183
  form.resetFields();
114111
114184
  onClose();
114112
- } catch (e61) {
114185
+ } catch (e62) {
114113
114186
  } finally {
114114
114187
  setLoading(false);
114115
114188
  }
@@ -114206,7 +114279,7 @@ var init_useOpenTaskChat = __esm({
114206
114279
  if (!task) return;
114207
114280
  try {
114208
114281
  openSideApp(buildTaskChatCard(task, threadId));
114209
- } catch (e62) {
114282
+ } catch (e63) {
114210
114283
  console.warn("Cannot open task chat: ChatUIContextProvider is not mounted");
114211
114284
  }
114212
114285
  },
@@ -114475,7 +114548,7 @@ var init_TasksSideApp = __esm({
114475
114548
  return refreshedTask ? [refreshedTask] : [];
114476
114549
  }));
114477
114550
  }
114478
- } catch (e63) {
114551
+ } catch (e64) {
114479
114552
  if (requestGeneration === tasksRequestGenerationRef.current && latestFilterScopeRef.current === requestedScope) {
114480
114553
  setTasksError(tasksRef.current.length > 0 ? t4("tasks.error.refresh") : t4("tasks.error.load"));
114481
114554
  }
@@ -114494,7 +114567,7 @@ var init_TasksSideApp = __esm({
114494
114567
  if (requestGeneration === workItemsRequestGenerationRef.current && selectedTaskIdRef.current === taskId) {
114495
114568
  setWorkItems(result);
114496
114569
  }
114497
- } catch (e64) {
114570
+ } catch (e65) {
114498
114571
  if (requestGeneration === workItemsRequestGenerationRef.current && selectedTaskIdRef.current === taskId) {
114499
114572
  setWorkItems([]);
114500
114573
  setActivityError(t4("tasks.error.activity"));
@@ -114592,7 +114665,7 @@ var init_TasksSideApp = __esm({
114592
114665
  messageApi.success(t4("tasks.created"));
114593
114666
  void fetchTasks();
114594
114667
  setShowCreate(false);
114595
- } catch (e65) {
114668
+ } catch (e66) {
114596
114669
  messageApi.error(t4("tasks.error.create"));
114597
114670
  }
114598
114671
  },
@@ -118735,7 +118808,7 @@ function errorText(error, t4) {
118735
118808
  try {
118736
118809
  const serialized = JSON.stringify(error);
118737
118810
  if (serialized !== void 0 && serialized !== "{}") return formatErrorMessage(serialized, fallback);
118738
- } catch (e66) {
118811
+ } catch (e67) {
118739
118812
  }
118740
118813
  return fallback;
118741
118814
  }
@@ -119907,7 +119980,7 @@ var init_ProjectRoomTasksPanel = __esm({
119907
119980
  try {
119908
119981
  const result = await client.tasks.workItems.list(task.id);
119909
119982
  if (generation === workItemsGenerationRef.current) setWorkItems(result);
119910
- } catch (e67) {
119983
+ } catch (e68) {
119911
119984
  if (generation === workItemsGenerationRef.current) {
119912
119985
  setWorkItems([]);
119913
119986
  setActivityError(t4("projectRoom.tasks.activityFailed"));
@@ -124070,7 +124143,7 @@ var init_ProjectGeneralSettings = __esm({
124070
124143
  let values;
124071
124144
  try {
124072
124145
  values = await form.validateFields();
124073
- } catch (e68) {
124146
+ } catch (e69) {
124074
124147
  return;
124075
124148
  }
124076
124149
  setSaving(true);
@@ -124687,7 +124760,7 @@ var init_ProjectCapabilityPanel = __esm({
124687
124760
  const afterEdit = async () => {
124688
124761
  try {
124689
124762
  await state2.previewDraft();
124690
- } catch (e69) {
124763
+ } catch (e70) {
124691
124764
  }
124692
124765
  };
124693
124766
  const addProfile = (bundleId) => {
@@ -126149,7 +126222,7 @@ var init_ConnectionConfigDrawerContent = __esm({
126149
126222
  setTypeMeta({ type: connectionType, name: connectionType, description: "" });
126150
126223
  }
126151
126224
  }
126152
- } catch (e70) {
126225
+ } catch (e71) {
126153
126226
  setTypeMeta({ type: connectionType, name: connectionType, description: "" });
126154
126227
  } finally {
126155
126228
  setMetaLoading(false);
@@ -126167,7 +126240,7 @@ var init_ConnectionConfigDrawerContent = __esm({
126167
126240
  _antd.message.error(result.message || t4("chatConfig.connection.loadFailed"));
126168
126241
  setConfigs([]);
126169
126242
  }
126170
- } catch (e71) {
126243
+ } catch (e72) {
126171
126244
  _antd.message.error(t4("chatConfig.connection.loadFailed"));
126172
126245
  setConfigs([]);
126173
126246
  } finally {
@@ -126187,7 +126260,7 @@ var init_ConnectionConfigDrawerContent = __esm({
126187
126260
  } else {
126188
126261
  _antd.message.error(result.message || t4("chatConfig.connection.testFailed"));
126189
126262
  }
126190
- } catch (e72) {
126263
+ } catch (e73) {
126191
126264
  _antd.message.error(t4("chatConfig.connection.testError"));
126192
126265
  } finally {
126193
126266
  setTestingId(null);
@@ -126212,7 +126285,7 @@ var init_ConnectionConfigDrawerContent = __esm({
126212
126285
  } else {
126213
126286
  _antd.message.error(result.message || t4("chatConfig.connection.deleteFailed"));
126214
126287
  }
126215
- } catch (e73) {
126288
+ } catch (e74) {
126216
126289
  _antd.message.error(t4("chatConfig.connection.deleteFailed"));
126217
126290
  }
126218
126291
  };
@@ -126405,7 +126478,7 @@ var init_ConnectionConfigDrawerContent = __esm({
126405
126478
  setSelectedResources(discoverResult.resources.map((r6) => r6.id));
126406
126479
  }
126407
126480
  }
126408
- } catch (e74) {
126481
+ } catch (e75) {
126409
126482
  setTestResult({ ok: false, message: t4("chatConfig.connectionForm.testRequestFailed") });
126410
126483
  } finally {
126411
126484
  setTesting(false);
@@ -126459,7 +126532,7 @@ var init_ConnectionConfigDrawerContent = __esm({
126459
126532
  } else {
126460
126533
  _antd.message.error(result.message || t4("chatConfig.connectionForm.saveFailed"));
126461
126534
  }
126462
- } catch (e75) {
126535
+ } catch (e76) {
126463
126536
  _antd.message.error(t4("chatConfig.connectionForm.saveFailed"));
126464
126537
  } finally {
126465
126538
  setSaving(false);
@@ -129475,7 +129548,7 @@ var init_CollectionEntryTable = __esm({
129475
129548
  setSearchResults(null);
129476
129549
  setSearchQuery("");
129477
129550
  setLoadError(false);
129478
- } catch (e76) {
129551
+ } catch (e77) {
129479
129552
  setLoadError(true);
129480
129553
  _antd.message.error(t4("chatWorkspace.entries.loadFailed"));
129481
129554
  } finally {
@@ -129487,7 +129560,7 @@ var init_CollectionEntryTable = __esm({
129487
129560
  try {
129488
129561
  const res = await get4(`/api/collections/${collectionName}`);
129489
129562
  if (res.data) setCollection(res.data);
129490
- } catch (e77) {
129563
+ } catch (e78) {
129491
129564
  }
129492
129565
  }, [collectionName, get4]);
129493
129566
  _react.useEffect.call(void 0, () => {
@@ -131722,14 +131795,14 @@ var init_CapabilityBundleForm = __esm({
131722
131795
  function isRuntimeProfilesIntroDismissed() {
131723
131796
  try {
131724
131797
  return typeof localStorage !== "undefined" && localStorage.getItem(RUNTIME_PROFILES_INTRO_DISMISSED_KEY) === "true";
131725
- } catch (e78) {
131798
+ } catch (e79) {
131726
131799
  return false;
131727
131800
  }
131728
131801
  }
131729
131802
  function rememberRuntimeProfilesIntroDismissal() {
131730
131803
  try {
131731
131804
  localStorage.setItem(RUNTIME_PROFILES_INTRO_DISMISSED_KEY, "true");
131732
- } catch (e79) {
131805
+ } catch (e80) {
131733
131806
  }
131734
131807
  }
131735
131808
  function hasErrorCode(value, code) {
@@ -132550,7 +132623,7 @@ var init_TasksButton = __esm({
132550
132623
 
132551
132624
 
132552
132625
 
132553
- var Text67, AVATAR_COLORS, CHANNEL_LABEL_KEYS, CHANNEL_OPTION_KEYS, useStyles69, PersonalAssistantChannelModal;
132626
+ var Text67, AVATAR_COLORS, CHANNEL_LABEL_KEYS, CHANNEL_OPTIONS, CHANNEL_BOT_NAME_KEYS, useStyles69, PersonalAssistantChannelModal;
132554
132627
  var init_PersonalAssistantChannelModal = __esm({
132555
132628
  "src/components/Chat/PersonalAssistantChannelModal.tsx"() {
132556
132629
  "use strict";
@@ -132566,12 +132639,19 @@ var init_PersonalAssistantChannelModal = __esm({
132566
132639
  ];
132567
132640
  CHANNEL_LABEL_KEYS = {
132568
132641
  lark: "chatConfig.paChannel.channel.lark",
132569
- wechat: "chatConfig.paChannel.channel.wechat"
132642
+ wechat: "chatConfig.paChannel.channel.wechat",
132643
+ wecom: "chatConfig.paChannel.channel.wecom"
132570
132644
  };
132571
- CHANNEL_OPTION_KEYS = [
132572
- "chatConfig.paChannel.channel.lark",
132573
- "chatConfig.paChannel.channel.wechat"
132645
+ CHANNEL_OPTIONS = [
132646
+ { id: "lark", labelKey: "chatConfig.paChannel.channel.lark" },
132647
+ { id: "wechat", labelKey: "chatConfig.paChannel.channel.wechat" },
132648
+ { id: "wecom", labelKey: "chatConfig.paChannel.channel.wecom" }
132574
132649
  ];
132650
+ CHANNEL_BOT_NAME_KEYS = {
132651
+ lark: "chatConfig.paChannel.feishuBot",
132652
+ wechat: "chatConfig.paChannel.wechatBot",
132653
+ wecom: "chatConfig.paChannel.wecomBot"
132654
+ };
132575
132655
  useStyles69 = _antdstyle.createStyles.call(void 0, ({ css, token }) => ({
132576
132656
  body: css`
132577
132657
  display: flex;
@@ -132837,7 +132917,7 @@ var init_PersonalAssistantChannelModal = __esm({
132837
132917
  setQrStatus("error");
132838
132918
  _antd.message.error(t4("chatConfig.paChannel.qr.getFailed"));
132839
132919
  }
132840
- } catch (e80) {
132920
+ } catch (e81) {
132841
132921
  setQrStatus("error");
132842
132922
  _antd.message.error(t4("chatConfig.paChannel.qr.getFailed"));
132843
132923
  } finally {
@@ -132866,7 +132946,7 @@ var init_PersonalAssistantChannelModal = __esm({
132866
132946
  setQrStatus("scaned");
132867
132947
  }
132868
132948
  }
132869
- } catch (e81) {
132949
+ } catch (e82) {
132870
132950
  _antd.message.error(t4("chatConfig.paChannel.qr.statusFailed"));
132871
132951
  }
132872
132952
  }, [get4, clearQrCountdown, form, t4]);
@@ -132884,7 +132964,7 @@ var init_PersonalAssistantChannelModal = __esm({
132884
132964
  } else {
132885
132965
  _antd.message.error(res.message || t4("chatConfig.paChannel.installationsLoadFailed"));
132886
132966
  }
132887
- } catch (e82) {
132967
+ } catch (e83) {
132888
132968
  _antd.message.error(t4("chatConfig.paChannel.installationsLoadFailed"));
132889
132969
  } finally {
132890
132970
  setLoading(false);
@@ -132946,7 +133026,7 @@ var init_PersonalAssistantChannelModal = __esm({
132946
133026
  } else {
132947
133027
  _antd.message.error(res.message || t4("chatConfig.paChannel.toggleFailed"));
132948
133028
  }
132949
- } catch (e83) {
133029
+ } catch (e84) {
132950
133030
  _antd.message.error(t4("chatConfig.paChannel.toggleFailed"));
132951
133031
  } finally {
132952
133032
  setTogglingId(null);
@@ -132972,6 +133052,12 @@ var init_PersonalAssistantChannelModal = __esm({
132972
133052
  botToken: installation.config.botToken,
132973
133053
  uin: installation.config.uin
132974
133054
  });
133055
+ } else if (installation.channel === "wecom") {
133056
+ form.setFieldsValue({
133057
+ name: installation.name,
133058
+ botId: installation.config.botId,
133059
+ secret: installation.config.secret
133060
+ });
132975
133061
  }
132976
133062
  loadBindings(installation.id);
132977
133063
  };
@@ -133039,7 +133125,7 @@ var init_PersonalAssistantChannelModal = __esm({
133039
133125
  } else {
133040
133126
  _antd.message.error(res.message || t4("chatConfig.paChannel.bindingRemoveFailed"));
133041
133127
  }
133042
- } catch (e84) {
133128
+ } catch (e85) {
133043
133129
  _antd.message.error(t4("chatConfig.paChannel.bindingRemoveFailed"));
133044
133130
  }
133045
133131
  };
@@ -133053,6 +133139,10 @@ var init_PersonalAssistantChannelModal = __esm({
133053
133139
  verificationToken: values.verificationToken,
133054
133140
  encryptKey: values.encryptKey,
133055
133141
  assistantId
133142
+ } : selectedChannel === "wecom" ? {
133143
+ botId: values.botId,
133144
+ secret: values.secret,
133145
+ assistantId
133056
133146
  } : {
133057
133147
  botToken: values.botToken,
133058
133148
  uin: values.uin
@@ -133121,7 +133211,7 @@ var init_PersonalAssistantChannelModal = __esm({
133121
133211
  } else {
133122
133212
  _antd.message.error(res.message || t4("chatConfig.paChannel.installationDeleteFailed"));
133123
133213
  }
133124
- } catch (e85) {
133214
+ } catch (e86) {
133125
133215
  _antd.message.error(t4("chatConfig.paChannel.installationDeleteFailed"));
133126
133216
  }
133127
133217
  };
@@ -133136,7 +133226,7 @@ var init_PersonalAssistantChannelModal = __esm({
133136
133226
  installations.map((inst, idx) => {
133137
133227
  const isSelected = selectedId === inst.id && formMode === "edit";
133138
133228
  const avatarColor = getAvatarColor10(idx);
133139
- const initial = (inst.name || (inst.channel === "wechat" ? t4("chatConfig.paChannel.wechatBot") : t4("chatConfig.paChannel.feishuBot"))).charAt(0).toUpperCase();
133229
+ const initial = (inst.name || t4(_nullishCoalesce(CHANNEL_BOT_NAME_KEYS[inst.channel], () => ( "chatConfig.paChannel.feishuBot")))).charAt(0).toUpperCase();
133140
133230
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
133141
133231
  "div",
133142
133232
  {
@@ -133156,7 +133246,7 @@ var init_PersonalAssistantChannelModal = __esm({
133156
133246
  }
133157
133247
  ),
133158
133248
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: styles.channelInfo, children: [
133159
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: styles.channelName, children: inst.name || (inst.channel === "wechat" ? t4("chatConfig.paChannel.wechatBot") : t4("chatConfig.paChannel.feishuBot")) }),
133249
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: styles.channelName, children: inst.name || t4(_nullishCoalesce(CHANNEL_BOT_NAME_KEYS[inst.channel], () => ( "chatConfig.paChannel.feishuBot"))) }),
133160
133250
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: styles.channelType, children: CHANNEL_LABEL_KEYS[inst.channel] ? t4(CHANNEL_LABEL_KEYS[inst.channel]) : inst.channel })
133161
133251
  ] }),
133162
133252
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -133195,11 +133285,11 @@ var init_PersonalAssistantChannelModal = __esm({
133195
133285
  if (formMode === "create" && !hasPickedChannel) {
133196
133286
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: styles.rightBody, children: [
133197
133287
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: styles.formSectionTitle, children: t4("chatConfig.paChannel.chooseType") }),
133198
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { display: "flex", flexDirection: "column", gap: 12 }, children: CHANNEL_OPTION_KEYS.map((optionKey) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
133288
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { display: "flex", flexDirection: "column", gap: 12 }, children: CHANNEL_OPTIONS.map((option) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
133199
133289
  "div",
133200
133290
  {
133201
133291
  onClick: () => {
133202
- setSelectedChannel(optionKey === "chatConfig.paChannel.channel.wechat" ? "wechat" : "lark");
133292
+ setSelectedChannel(option.id);
133203
133293
  setHasPickedChannel(true);
133204
133294
  form.resetFields();
133205
133295
  },
@@ -133223,10 +133313,10 @@ var init_PersonalAssistantChannelModal = __esm({
133223
133313
  },
133224
133314
  children: [
133225
133315
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MessagesSquare, { size: 22, style: { opacity: 0.6 } }),
133226
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Text67, { strong: true, style: { fontSize: 14 }, children: t4(optionKey) }) })
133316
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Text67, { strong: true, style: { fontSize: 14 }, children: t4(option.labelKey) }) })
133227
133317
  ]
133228
133318
  },
133229
- optionKey
133319
+ option.id
133230
133320
  )) })
133231
133321
  ] });
133232
133322
  }
@@ -133239,7 +133329,7 @@ var init_PersonalAssistantChannelModal = __esm({
133239
133329
  isEdit && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Form.Item, { label: t4("chatConfig.paChannel.field.channelType"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
133240
133330
  _antd.Select,
133241
133331
  {
133242
- options: CHANNEL_OPTION_KEYS.map((optionKey) => ({ value: optionKey === "chatConfig.paChannel.channel.wechat" ? "wechat" : "lark", label: t4(optionKey) })),
133332
+ options: CHANNEL_OPTIONS.map((option) => ({ value: option.id, label: t4(option.labelKey) })),
133243
133333
  value: selectedChannel,
133244
133334
  disabled: true
133245
133335
  }
@@ -133267,6 +133357,28 @@ var init_PersonalAssistantChannelModal = __esm({
133267
133357
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Form.Item, { name: "verificationToken", label: t4("chatConfig.paChannel.field.verificationToken"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { placeholder: t4("chatConfig.paChannel.placeholder.optional") }) }),
133268
133358
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Form.Item, { name: "encryptKey", label: t4("chatConfig.paChannel.field.encryptKey"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { placeholder: t4("chatConfig.paChannel.placeholder.optional") }) })
133269
133359
  ] }),
133360
+ selectedChannel === "wecom" && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
133361
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Form.Item, { name: "name", label: t4("chatConfig.paChannel.field.displayName"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { placeholder: "e.g. My WeCom Bot" }) }),
133362
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
133363
+ _antd.Form.Item,
133364
+ {
133365
+ name: "botId",
133366
+ label: t4("chatConfig.paChannel.field.botId"),
133367
+ rules: [{ required: true, message: t4("chatConfig.paChannel.validation.botIdRequired") }],
133368
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { placeholder: t4("chatConfig.paChannel.placeholder.botId") })
133369
+ }
133370
+ ),
133371
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
133372
+ _antd.Form.Item,
133373
+ {
133374
+ name: "secret",
133375
+ label: t4("chatConfig.paChannel.field.secret"),
133376
+ rules: [{ required: true, message: t4("chatConfig.paChannel.validation.secretRequired") }],
133377
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input.Password, { placeholder: t4("chatConfig.paChannel.placeholder.secret") })
133378
+ }
133379
+ ),
133380
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Text67, { type: "secondary", style: { fontSize: 12, display: "block", marginBottom: 16 }, children: t4("chatConfig.paChannel.wecomConnectHint") })
133381
+ ] }),
133270
133382
  selectedChannel === "wechat" && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
133271
133383
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Form.Item, { name: "name", label: t4("chatConfig.paChannel.field.displayName"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { placeholder: "e.g. My WeChat Bot" }) }),
133272
133384
  !isEdit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -133429,7 +133541,7 @@ var init_PersonalAssistantChannelModal = __esm({
133429
133541
  name: "senderId",
133430
133542
  rules: [{ required: true, message: t4("chatConfig.paChannel.required") }],
133431
133543
  style: { flex: 1, marginBottom: 0 },
133432
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { size: "small", placeholder: selectedChannel === "wechat" ? t4("chatConfig.paChannel.placeholder.wechatOpenId") : t4("chatConfig.paChannel.placeholder.feishuOpenId") })
133544
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _antd.Input, { size: "small", placeholder: t4(selectedChannel === "wechat" ? "chatConfig.paChannel.placeholder.wechatOpenId" : selectedChannel === "wecom" ? "chatConfig.paChannel.placeholder.wecomUserId" : "chatConfig.paChannel.placeholder.feishuOpenId") })
133433
133545
  }
133434
133546
  ),
133435
133547
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -133624,7 +133736,7 @@ var init_PersonalAssistantPage = __esm({
133624
133736
  const info = { assistantId: b10.data.id, projectId: b10.data.projectId, workspaceId: b10.data.workspaceId || "default", tenantId: _optionalChain([currentTenant, 'optionalAccess', _2162 => _2162.id]) };
133625
133737
  setPersonalAssistant(info);
133626
133738
  _antd.message.success(t4("chatWorkspace.personalAssistant.done"));
133627
- } catch (e86) {
133739
+ } catch (e87) {
133628
133740
  _antd.message.error(t4("chatWorkspace.personalAssistant.networkError"));
133629
133741
  } finally {
133630
133742
  setCreating(false);
@@ -133682,7 +133794,7 @@ var init_PersonalAssistantPage = __esm({
133682
133794
  setCustomPersonality("");
133683
133795
  _antd.message.success(t4("chatWorkspace.personalAssistant.deleted"));
133684
133796
  setDeleteModalOpen(false);
133685
- } catch (e87) {
133797
+ } catch (e88) {
133686
133798
  _antd.message.error(t4("chatWorkspace.personalAssistant.networkError"));
133687
133799
  } finally {
133688
133800
  setDeleting(false);
@@ -134588,7 +134700,7 @@ var init_SharesPage = __esm({
134588
134700
  try {
134589
134701
  const data = await listShares();
134590
134702
  setShares(data);
134591
- } catch (e88) {
134703
+ } catch (e89) {
134592
134704
  _antd.message.error(t4("chatWorkspace.shares.loadFailed"));
134593
134705
  }
134594
134706
  setLoading(false);
@@ -136122,7 +136234,7 @@ var init_AgentConfigPanel = __esm({
136122
136234
  }
136123
136235
  try {
136124
136236
  return normalizeValue(JSON.parse(graphDefinition));
136125
- } catch (e89) {
136237
+ } catch (e90) {
136126
136238
  return graphDefinition;
136127
136239
  }
136128
136240
  };
@@ -136416,7 +136528,7 @@ var init_AgentConfigPanel = __esm({
136416
136528
  type: graphDef.type || "react",
136417
136529
  middleware: graphDef.middleware || []
136418
136530
  };
136419
- } catch (e90) {
136531
+ } catch (e91) {
136420
136532
  return null;
136421
136533
  }
136422
136534
  }, [assistant]);
@@ -137240,7 +137352,7 @@ var init_AgentEvalPanel = __esm({
137240
137352
  try {
137241
137353
  const result = await client.request("/api/tenant-models");
137242
137354
  setModels(toModelOptions(result.data));
137243
- } catch (e91) {
137355
+ } catch (e92) {
137244
137356
  }
137245
137357
  }, [client]);
137246
137358
  const handleCreateProject = async (values) => {
@@ -137436,7 +137548,7 @@ function parseEvents(data, projection2) {
137436
137548
  let value;
137437
137549
  try {
137438
137550
  value = JSON.parse(data);
137439
- } catch (e92) {
137551
+ } catch (e93) {
137440
137552
  throw streamFailed();
137441
137553
  }
137442
137554
  if (!record(value) || typeof value.type !== "string") throw streamFailed();
@@ -137495,7 +137607,7 @@ async function parseAgentWebAppEventStream(body, onEvent) {
137495
137607
  if (result.done) reachedEof = true;
137496
137608
  try {
137497
137609
  buffer += decoder.decode(result.value, { stream: !result.done });
137498
- } catch (e93) {
137610
+ } catch (e94) {
137499
137611
  throw streamFailed();
137500
137612
  }
137501
137613
  const blocks = buffer.split(/\r?\n\r?\n/);
@@ -137517,7 +137629,7 @@ async function parseAgentWebAppEventStream(body, onEvent) {
137517
137629
  if (!reachedEof) {
137518
137630
  try {
137519
137631
  await reader.cancel();
137520
- } catch (e94) {
137632
+ } catch (e95) {
137521
137633
  }
137522
137634
  }
137523
137635
  reader.releaseLock();
@@ -137688,7 +137800,7 @@ var init_client = __esm({
137688
137800
  if (!response.body || !_optionalChain([response, 'access', _2272 => _2272.headers, 'access', _2273 => _2273.get, 'call', _2274 => _2274("content-type"), 'optionalAccess', _2275 => _2275.toLowerCase, 'call', _2276 => _2276(), 'access', _2277 => _2277.includes, 'call', _2278 => _2278("text/event-stream")])) {
137689
137801
  if (response.body) try {
137690
137802
  await response.body.cancel();
137691
- } catch (e95) {
137803
+ } catch (e96) {
137692
137804
  }
137693
137805
  throw new AgentWebAppRuntimeClientError("STREAM_FAILED", _nullishCoalesce(_optionalChain([this, 'access', _2279 => _2279.translate, 'optionalCall', _2280 => _2280("integration.error.streamFailed")]), () => ( "Stream failed")), true, response.status);
137694
137806
  }
@@ -137715,7 +137827,7 @@ var init_client = __esm({
137715
137827
  let value;
137716
137828
  try {
137717
137829
  value = await response.json();
137718
- } catch (e96) {
137830
+ } catch (e97) {
137719
137831
  throw this.internalError(response.status);
137720
137832
  }
137721
137833
  if (isErrorEnvelope(value)) {
@@ -137748,7 +137860,7 @@ var init_client = __esm({
137748
137860
  let value;
137749
137861
  try {
137750
137862
  value = await response.json();
137751
- } catch (e97) {
137863
+ } catch (e98) {
137752
137864
  throw this.internalError(response.status);
137753
137865
  }
137754
137866
  if (isErrorEnvelope(value)) throw new AgentWebAppRuntimeClientError(value.error.code, value.error.message, value.error.retryable, response.status);
@@ -137958,7 +138070,7 @@ function validateProps(props) {
137958
138070
  if (!props.gatewayUrl.trim()) throw new Error("AgentChatApp requires gatewayUrl");
137959
138071
  try {
137960
138072
  new URL(props.gatewayUrl);
137961
- } catch (e98) {
138073
+ } catch (e99) {
137962
138074
  throw new Error("AgentChatApp gatewayUrl must be a valid URL");
137963
138075
  }
137964
138076
  if (!props.webAppId.trim()) throw new Error("AgentChatApp requires webAppId");
@@ -137979,11 +138091,36 @@ function identityScopeKey(identity9) {
137979
138091
  function AgentChatApp(props) {
137980
138092
  validateProps(props);
137981
138093
  const scopeKey = `${props.gatewayUrl}\0${props.webAppId}\0${identityScopeKey(props.identity)}`;
138094
+ const localeProvidedAbove = _react.useContext.call(void 0, LocaleBridgeContext) !== null;
138095
+ const storageKey = _nullishCoalesce(props.storageKey, () => ( DEFAULT_LOCALE_STORAGE_KEY));
138096
+ const initialLocale = _react.useMemo.call(void 0,
138097
+ () => _nullishCoalesce(_nullishCoalesce(props.locale, () => ( readStoredLocale(storageKey))), () => ( "en-US")),
138098
+ [props.locale, storageKey]
138099
+ );
138100
+ const onLocaleChange = _react.useMemo.call(void 0,
138101
+ () => _nullishCoalesce(props.onLocaleChange, () => ( (() => {
138102
+ if (typeof window !== "undefined") window.location.reload();
138103
+ }))),
138104
+ [props.onLocaleChange]
138105
+ );
138106
+ if (localeProvidedAbove) {
138107
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScopedAgentChatApp, { ...props }, scopeKey);
138108
+ }
137982
138109
  return (
137983
138110
  /* The locale provider sits ABOVE ScopedAgentChatApp on purpose: that
137984
138111
  * component calls useT() itself for its own loading/error copy, so a
137985
- * provider rendered inside its return value would only reach descendants. */
137986
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LatticeLocaleProvider, { locale: props.locale, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScopedAgentChatApp, { ...props }, scopeKey) })
138112
+ * provider rendered inside its return value would only reach descendants.
138113
+ * `locale` is passed down resolved so antd's built-in text follows the same
138114
+ * value the dictionaries were loaded for. */
138115
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
138116
+ LatticeLocaleProvider,
138117
+ {
138118
+ locale: initialLocale,
138119
+ storageKey,
138120
+ onLocaleChange,
138121
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScopedAgentChatApp, { ...props, locale: initialLocale }, scopeKey)
138122
+ }
138123
+ )
137987
138124
  );
137988
138125
  }
137989
138126
  function ScopedAgentChatApp({ gatewayUrl, webAppId, identity: identity9, onError, onChatReady, onChatMessage, fetch: fetchImplementation, className, welcome, quickPrompts, locale: locale3 = "en-US" }) {
@@ -138004,7 +138141,7 @@ function ScopedAgentChatApp({ gatewayUrl, webAppId, identity: identity9, onError
138004
138141
  if (current.mode !== "verified") return { externalUserId: current.userId };
138005
138142
  try {
138006
138143
  return { bearerToken: await current.tokenProvider() };
138007
- } catch (e99) {
138144
+ } catch (e100) {
138008
138145
  throw new AgentWebAppRuntimeClientError("USER_ID_REQUIRED", t4("integration.error.identityTokenFailed"), true);
138009
138146
  }
138010
138147
  }
@@ -138214,6 +138351,8 @@ var init_AgentChatApp = __esm({
138214
138351
  init_appearance2();
138215
138352
  init_color5();
138216
138353
  init_i18n();
138354
+ init_i18n();
138355
+ init_useLocale();
138217
138356
  ANTD_LOCALES = {
138218
138357
  "en-US": _en_USjs2.default,
138219
138358
  "zh-CN": _zh_CNjs2.default
@@ -138270,7 +138409,7 @@ var init_AgentWebAppFormModal = __esm({
138270
138409
  let issuers;
138271
138410
  try {
138272
138411
  issuers = JSON.parse(_nullishCoalesce(fields.identityIssuers, () => ( "")));
138273
- } catch (e100) {
138412
+ } catch (e101) {
138274
138413
  throw new Error("Trusted issuers must be a valid JSON array");
138275
138414
  }
138276
138415
  if (!Array.isArray(issuers) || issuers.length === 0) {
@@ -138390,7 +138529,7 @@ var init_AgentWebAppFormModal = __esm({
138390
138529
  try {
138391
138530
  const parsed = JSON.parse(text);
138392
138531
  return Array.isArray(parsed) && parsed.length > 0 ? Promise.resolve() : Promise.reject(new Error(t4("governance.webApp.issuersEmpty")));
138393
- } catch (e101) {
138532
+ } catch (e102) {
138394
138533
  return Promise.reject(new Error(t4("governance.webApp.issuersInvalid")));
138395
138534
  }
138396
138535
  } }],
@@ -139780,7 +139919,7 @@ function getLearningTargetMode(assistant) {
139780
139919
  if (typeof raw === "string") {
139781
139920
  try {
139782
139921
  parsed = JSON.parse(raw);
139783
- } catch (e102) {
139922
+ } catch (e103) {
139784
139923
  parsed = {};
139785
139924
  }
139786
139925
  }
@@ -139892,7 +140031,7 @@ var init_StartLearningModal = __esm({
139892
140031
  if (cancelled) return;
139893
140032
  const rounds = (_nullishCoalesce(res.data, () => ( []))).filter(isTrainingRound);
139894
140033
  setActiveRound(_nullishCoalesce(rounds.find(isActiveTrainingRound), () => ( null)));
139895
- } catch (e103) {
140034
+ } catch (e104) {
139896
140035
  }
139897
140036
  })();
139898
140037
  return () => {
@@ -140556,7 +140695,7 @@ var init_LearningProgressCard = __esm({
140556
140695
  let refreshPromise;
140557
140696
  try {
140558
140697
  refreshPromise = Promise.resolve(onRefresh());
140559
- } catch (e104) {
140698
+ } catch (e105) {
140560
140699
  refreshPromise = Promise.reject(new Error("Task-list refresh failed"));
140561
140700
  }
140562
140701
  void refreshPromise.catch(() => {
@@ -143811,14 +143950,14 @@ var init_AgentConfigGraph = __esm({
143811
143950
  readGuideDismissed = () => {
143812
143951
  try {
143813
143952
  return typeof window !== "undefined" && _optionalChain([window, 'access', _2471 => _2471.localStorage, 'optionalAccess', _2472 => _2472.getItem, 'call', _2473 => _2473(GUIDE_DISMISSED_KEY)]) === "1";
143814
- } catch (e105) {
143953
+ } catch (e106) {
143815
143954
  return false;
143816
143955
  }
143817
143956
  };
143818
143957
  writeGuideDismissed = (dismissed) => {
143819
143958
  try {
143820
143959
  _optionalChain([window, 'access', _2474 => _2474.localStorage, 'optionalAccess', _2475 => _2475.setItem, 'call', _2476 => _2476(GUIDE_DISMISSED_KEY, dismissed ? "1" : "0")]);
143821
- } catch (e106) {
143960
+ } catch (e107) {
143822
143961
  }
143823
143962
  };
143824
143963
  CANVAS_LAYOUT_KEY = "axiom.trainingCanvas.layout";
@@ -143850,7 +143989,7 @@ var init_AgentConfigGraph = __esm({
143850
143989
  pinned: Array.isArray(record3.pinned) ? record3.pinned.filter((key) => typeof key === "string") : [],
143851
143990
  origins
143852
143991
  };
143853
- } catch (e107) {
143992
+ } catch (e108) {
143854
143993
  return null;
143855
143994
  }
143856
143995
  };
@@ -143858,13 +143997,13 @@ var init_AgentConfigGraph = __esm({
143858
143997
  try {
143859
143998
  const record3 = { version: 1, pinned: [...pinned], origins };
143860
143999
  _optionalChain([window, 'access', _2480 => _2480.localStorage, 'optionalAccess', _2481 => _2481.setItem, 'call', _2482 => _2482(CANVAS_LAYOUT_KEY, JSON.stringify(record3))]);
143861
- } catch (e108) {
144000
+ } catch (e109) {
143862
144001
  }
143863
144002
  };
143864
144003
  clearCanvasLayout = () => {
143865
144004
  try {
143866
144005
  _optionalChain([window, 'access', _2483 => _2483.localStorage, 'optionalAccess', _2484 => _2484.removeItem, 'call', _2485 => _2485(CANVAS_LAYOUT_KEY)]);
143867
- } catch (e109) {
144006
+ } catch (e110) {
143868
144007
  }
143869
144008
  };
143870
144009
  AgentConfigGraphInner = ({ graphDefinition, onSelectNode, assistantId, assistantName, workspaceId, onRemoveNode, initialMessageRequest, onInitialMessageSubmitted, projectId, onProjectChange, onLearningStarted, onToolActivity, learningTasks, onLearningRefresh, evalTick, evalData, hudTopOffset, copilotTemporarilyHidden, onOpenArchitect, architectOpenSignal = 0, architectRestoreFocusRef }) => {
@@ -145759,7 +145898,7 @@ function extractWorkflowDSL(graphDefinition) {
145759
145898
  if (typeof graphDefinition === "string") {
145760
145899
  try {
145761
145900
  def = JSON.parse(graphDefinition);
145762
- } catch (e110) {
145901
+ } catch (e111) {
145763
145902
  return null;
145764
145903
  }
145765
145904
  } else if (graphDefinition && typeof graphDefinition === "object") {
@@ -145769,7 +145908,7 @@ function extractWorkflowDSL(graphDefinition) {
145769
145908
  if (typeof def.workflowYaml !== "string") return null;
145770
145909
  try {
145771
145910
  return expandWorkflow(def.workflowYaml);
145772
- } catch (e111) {
145911
+ } catch (e112) {
145773
145912
  return null;
145774
145913
  }
145775
145914
  }
@@ -146041,7 +146180,7 @@ var init_NodeDock = __esm({
146041
146180
  const nextList = list2.some((m3) => m3.type === draft.type) ? list2.map((m3) => m3.type === draft.type ? nextEntry : m3) : [...list2, nextEntry];
146042
146181
  await onSaveGraph({ ...def, middleware: nextList });
146043
146182
  _antd.message.success(t4("governance.nodeDock.capabilitySaved"));
146044
- } catch (e112) {
146183
+ } catch (e113) {
146045
146184
  _antd.message.error(t4("governance.nodeDock.capabilitySaveFailed"));
146046
146185
  } finally {
146047
146186
  setSaving(false);
@@ -146074,7 +146213,7 @@ var init_NodeDock = __esm({
146074
146213
  try {
146075
146214
  await onSaveGraph({ ...def, description, prompt, modelKey });
146076
146215
  _antd.message.success(t4("governance.nodeDock.agentSaved"));
146077
- } catch (e113) {
146216
+ } catch (e114) {
146078
146217
  _antd.message.error(t4("governance.detail.saveFailed"));
146079
146218
  } finally {
146080
146219
  setSaving(false);
@@ -146110,7 +146249,7 @@ function getTrainingProjectId(graphDefinition) {
146110
146249
  if (typeof graphDefinition === "string") {
146111
146250
  try {
146112
146251
  parsed = JSON.parse(graphDefinition);
146113
- } catch (e114) {
146252
+ } catch (e115) {
146114
146253
  return void 0;
146115
146254
  }
146116
146255
  }
@@ -146405,7 +146544,7 @@ var init_AgentDetailView = __esm({
146405
146544
  if (typeof value === "string") {
146406
146545
  try {
146407
146546
  parsed = JSON.parse(value);
146408
- } catch (e115) {
146547
+ } catch (e116) {
146409
146548
  return {};
146410
146549
  }
146411
146550
  }
@@ -147055,7 +147194,7 @@ function normalizeAgentCardUrl(value, protocol, defaultProtocol = "https://") {
147055
147194
  function getAgentCardPort(agentCardUrl) {
147056
147195
  try {
147057
147196
  return new URL(agentCardUrl).port || void 0;
147058
- } catch (e116) {
147197
+ } catch (e117) {
147059
147198
  return void 0;
147060
147199
  }
147061
147200
  }
@@ -147264,7 +147403,7 @@ var init_CreateAssistantModal = __esm({
147264
147403
  } else {
147265
147404
  _antd.message.error(_optionalChain([data, 'access', _2622 => _2622.data, 'optionalAccess', _2623 => _2623.error]) || t4("chatConfig.createAssistant.connectionFailed"));
147266
147405
  }
147267
- } catch (e117) {
147406
+ } catch (e118) {
147268
147407
  _antd.message.error(t4("chatConfig.createAssistant.connectionTestFailed"));
147269
147408
  } finally {
147270
147409
  setTestingUrl(false);
@@ -148061,7 +148200,7 @@ var init_AgentGovernanceWorkbench = __esm({
148061
148200
  if (typeof value === "string") {
148062
148201
  try {
148063
148202
  parsed = JSON.parse(value);
148064
- } catch (e118) {
148203
+ } catch (e119) {
148065
148204
  return {};
148066
148205
  }
148067
148206
  }
@@ -148104,7 +148243,7 @@ var init_AgentGovernanceWorkbench = __esm({
148104
148243
  setStats(byId);
148105
148244
  setStatsExpiresAt(_nullishCoalesce(_optionalChain([statsRes, 'access', _2640 => _2640.cache, 'optionalAccess', _2641 => _2641.expiresAt]), () => ( null)));
148106
148245
  }
148107
- } catch (e119) {
148246
+ } catch (e120) {
148108
148247
  _antd.message.error(t4("governance.workbench.loadFailed"));
148109
148248
  } finally {
148110
148249
  setLoading(false);
@@ -148195,7 +148334,7 @@ var init_AgentGovernanceWorkbench = __esm({
148195
148334
  } else {
148196
148335
  _antd.message.error(t4("governance.detail.deleteFailed"));
148197
148336
  }
148198
- } catch (e120) {
148337
+ } catch (e121) {
148199
148338
  _antd.message.error(t4("governance.detail.deleteFailed"));
148200
148339
  } finally {
148201
148340
  setDeleting(false);
@@ -148848,7 +148987,7 @@ var init_TopologyRuntimeView = __esm({
148848
148987
  const matched = runsRes.data.records.find((r6) => r6.id === run.id);
148849
148988
  if (matched) onRunUpdate(matched);
148850
148989
  }
148851
- } catch (e121) {
148990
+ } catch (e122) {
148852
148991
  }
148853
148992
  }, [get4, run.id, onRunUpdate]);
148854
148993
  const fetchGraphDefinition = _react.useCallback.call(void 0, async () => {
@@ -148865,7 +149004,7 @@ var init_TopologyRuntimeView = __esm({
148865
149004
  } else {
148866
149005
  setGraphDefinition(null);
148867
149006
  }
148868
- } catch (e122) {
149007
+ } catch (e123) {
148869
149008
  setGraphDefinition(null);
148870
149009
  } finally {
148871
149010
  setGraphLoading(false);
@@ -149697,7 +149836,7 @@ function parseGraphDefinition3(value) {
149697
149836
  try {
149698
149837
  const parsed = JSON.parse(value);
149699
149838
  return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : null;
149700
- } catch (e123) {
149839
+ } catch (e124) {
149701
149840
  return null;
149702
149841
  }
149703
149842
  }
@@ -149708,7 +149847,7 @@ function extractDSL(graphDef) {
149708
149847
  if (typeof graphDef === "string") {
149709
149848
  try {
149710
149849
  def = JSON.parse(graphDef);
149711
- } catch (e124) {
149850
+ } catch (e125) {
149712
149851
  return null;
149713
149852
  }
149714
149853
  } else if (graphDef && typeof graphDef === "object") {
@@ -150050,7 +150189,7 @@ var init_WorkflowAutomationView = __esm({
150050
150189
  if (typeof a4.graphDefinition === "string") {
150051
150190
  try {
150052
150191
  cfgs.push(JSON.parse(a4.graphDefinition));
150053
- } catch (e125) {
150192
+ } catch (e126) {
150054
150193
  }
150055
150194
  } else if (typeof a4.graphDefinition === "object") {
150056
150195
  cfgs.push(a4.graphDefinition);
@@ -150059,7 +150198,7 @@ var init_WorkflowAutomationView = __esm({
150059
150198
  setAgentConfigs(cfgs);
150060
150199
  setAgentNameMap(nameMap);
150061
150200
  }
150062
- } catch (e126) {
150201
+ } catch (e127) {
150063
150202
  }
150064
150203
  }, [get4]);
150065
150204
  const [copilotOpen, setCopilotOpen] = _react.useState.call(void 0, true);
@@ -150088,7 +150227,7 @@ var init_WorkflowAutomationView = __esm({
150088
150227
  try {
150089
150228
  const dsl2 = expandWorkflow(yamlStr);
150090
150229
  stepCount = dsl2.nodes.filter((n4) => n4.type !== "terminal").length;
150091
- } catch (e127) {
150230
+ } catch (e128) {
150092
150231
  }
150093
150232
  return {
150094
150233
  id: a4.id,
@@ -150115,7 +150254,7 @@ var init_WorkflowAutomationView = __esm({
150115
150254
  } else if (typeof raw === "string") {
150116
150255
  try {
150117
150256
  setGraphDef(JSON.parse(raw));
150118
- } catch (e128) {
150257
+ } catch (e129) {
150119
150258
  setGraphDef(null);
150120
150259
  }
150121
150260
  } else if (typeof raw === "object") {
@@ -150124,7 +150263,7 @@ var init_WorkflowAutomationView = __esm({
150124
150263
  setGraphDef(null);
150125
150264
  }
150126
150265
  }
150127
- } catch (e129) {
150266
+ } catch (e130) {
150128
150267
  setDsl(null);
150129
150268
  setGraphDef(null);
150130
150269
  }
@@ -150437,7 +150576,7 @@ var init_AgentDetailSideApp = __esm({
150437
150576
  if (typeof value === "string") {
150438
150577
  try {
150439
150578
  parsed = JSON.parse(value);
150440
- } catch (e130) {
150579
+ } catch (e131) {
150441
150580
  return {};
150442
150581
  }
150443
150582
  }
@@ -150463,7 +150602,7 @@ var init_AgentDetailSideApp = __esm({
150463
150602
  const records = _nullishCoalesce(_optionalChain([res, 'access', _2702 => _2702.data, 'optionalAccess', _2703 => _2703.records]), () => ( []));
150464
150603
  setAllAssistants(records);
150465
150604
  setAssistant(_nullishCoalesce(records.find((a4) => a4.id === assistantId), () => ( null)));
150466
- } catch (e131) {
150605
+ } catch (e132) {
150467
150606
  setError(t4("governance.detail.loadFailed"));
150468
150607
  } finally {
150469
150608
  setLoading(false);
@@ -150973,7 +151112,7 @@ var init_WorkspaceResourceManager = __esm({
150973
151112
  const items3 = json2.data.records.map(menuItemToSideMenuItemConfig);
150974
151113
  setFetchedCustomMenuItems(items3);
150975
151114
  }
150976
- } catch (e132) {
151115
+ } catch (e133) {
150977
151116
  }
150978
151117
  }, [get4]);
150979
151118
  _react.useEffect.call(void 0, () => {
@@ -151230,8 +151369,7 @@ var init_WorkspaceResourceManager = __esm({
151230
151369
  open: tenantSettingsOpen,
151231
151370
  onClose: () => setTenantSettingsOpen(false)
151232
151371
  }
151233
- ),
151234
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AppSwitcherModal, {})
151372
+ )
151235
151373
  ]
151236
151374
  }
151237
151375
  );
@@ -151257,10 +151395,17 @@ var init_WorkspaceResourceManager = __esm({
151257
151395
  };
151258
151396
  AppAwareShell = (props) => {
151259
151397
  const { currentAppId } = useApp();
151398
+ const switcher = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AppSwitcherModal, {});
151260
151399
  if (currentAppId === "cospace") {
151261
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WorkspaceContextProvider, { workspaceId: props.workspaceId, isolated: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CoSpaceStandaloneShell, { ...props }) });
151400
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, WorkspaceContextProvider, { workspaceId: props.workspaceId, isolated: true, children: [
151401
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CoSpaceStandaloneShell, { ...props }),
151402
+ switcher
151403
+ ] });
151262
151404
  }
151263
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WorkspaceChatUI, { ...props });
151405
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
151406
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WorkspaceChatUI, { ...props }),
151407
+ switcher
151408
+ ] });
151264
151409
  };
151265
151410
  }
151266
151411
  });
@@ -151448,7 +151593,7 @@ var init_PinToMenuButton = __esm({
151448
151593
  const result = await check({ contentType, assistantId, contentConfig: externalContentConfig, isMatch });
151449
151594
  setIsPinned(result.isPinned);
151450
151595
  setPinnedItemId(result.pinnedId);
151451
- } catch (e133) {
151596
+ } catch (e134) {
151452
151597
  } finally {
151453
151598
  setChecking(false);
151454
151599
  }