@iblai/iblai-js 2.43.0 → 2.45.1

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 (207) hide show
  1. package/dist/data-layer/playwright/edit-agent-category-helpers.d.ts +13 -0
  2. package/dist/data-layer/playwright/human-support-tab-helpers.d.ts +2 -2
  3. package/dist/data-layer/playwright/privacy-tab-helpers.d.ts +7 -4
  4. package/dist/data-layer/playwright/spend-limits-helpers.d.ts +7 -4
  5. package/dist/playwright/index.cjs +55 -15
  6. package/dist/playwright/index.cjs.map +1 -1
  7. package/dist/playwright/index.d.ts +16 -10
  8. package/dist/playwright/index.esm.js +55 -15
  9. package/dist/playwright/index.esm.js.map +1 -1
  10. package/dist/playwright/playwright/edit-agent-category-helpers.d.ts +13 -0
  11. package/dist/playwright/playwright/human-support-tab-helpers.d.ts +2 -2
  12. package/dist/playwright/playwright/privacy-tab-helpers.d.ts +7 -4
  13. package/dist/playwright/playwright/spend-limits-helpers.d.ts +7 -4
  14. package/dist/security/playwright/edit-agent-category-helpers.d.ts +13 -0
  15. package/dist/security/playwright/human-support-tab-helpers.d.ts +2 -2
  16. package/dist/security/playwright/privacy-tab-helpers.d.ts +7 -4
  17. package/dist/security/playwright/spend-limits-helpers.d.ts +7 -4
  18. package/dist/web-containers/playwright/edit-agent-category-helpers.d.ts +13 -0
  19. package/dist/web-containers/playwright/human-support-tab-helpers.d.ts +2 -2
  20. package/dist/web-containers/playwright/privacy-tab-helpers.d.ts +7 -4
  21. package/dist/web-containers/playwright/spend-limits-helpers.d.ts +7 -4
  22. package/dist/web-containers/source/admin/tabs/applications/applications-tab.js +5 -2
  23. package/dist/web-containers/source/admin/tabs/applications/applications-tab.js.map +1 -1
  24. package/dist/web-containers/source/applications/applications-tab.js +5 -2
  25. package/dist/web-containers/source/applications/applications-tab.js.map +1 -1
  26. package/dist/web-containers/source/applications-tab.js +5 -2
  27. package/dist/web-containers/source/applications-tab.js.map +1 -1
  28. package/dist/web-containers/source/approvals-mode-button.js +177 -0
  29. package/dist/web-containers/source/approvals-mode-button.js.map +1 -0
  30. package/dist/web-containers/source/capabilities-sub-tab.js +1 -1
  31. package/dist/web-containers/source/capabilities-sub-tab.js.map +1 -1
  32. package/dist/web-containers/source/chat/chat-host-context.js.map +1 -1
  33. package/dist/web-containers/source/chat/code-permission-card.js +39 -2
  34. package/dist/web-containers/source/chat/code-permission-card.js.map +1 -1
  35. package/dist/web-containers/source/chat-host-context.js.map +1 -1
  36. package/dist/web-containers/source/chat-input-form/approvals-mode-button.js +177 -0
  37. package/dist/web-containers/source/chat-input-form/approvals-mode-button.js.map +1 -0
  38. package/dist/web-containers/source/chat-input-form/composer-canvas-pill.js +30 -0
  39. package/dist/web-containers/source/chat-input-form/composer-canvas-pill.js.map +1 -0
  40. package/dist/web-containers/source/chat-input-form/composer-model-chip.js +23 -0
  41. package/dist/web-containers/source/chat-input-form/composer-model-chip.js.map +1 -0
  42. package/dist/web-containers/source/chat-input-form/composer-plus-menu.js +3 -3
  43. package/dist/web-containers/source/chat-input-form/composer-plus-menu.js.map +1 -1
  44. package/dist/web-containers/source/chat-input-form/composer-tool-row.js +91 -0
  45. package/dist/web-containers/source/chat-input-form/composer-tool-row.js.map +1 -0
  46. package/dist/web-containers/source/chat-input-form/cowork-control.js +7 -4
  47. package/dist/web-containers/source/chat-input-form/cowork-control.js.map +1 -1
  48. package/dist/web-containers/source/chat-input-form.js +8 -30
  49. package/dist/web-containers/source/chat-input-form.js.map +1 -1
  50. package/dist/web-containers/source/claw-sandbox/sandbox-config.js +1 -3
  51. package/dist/web-containers/source/claw-sandbox/sandbox-config.js.map +1 -1
  52. package/dist/web-containers/source/claw-sandbox/sandbox-kind-row.js +12 -0
  53. package/dist/web-containers/source/claw-sandbox/sandbox-kind-row.js.map +1 -0
  54. package/dist/web-containers/source/code-permission-card.js +39 -2
  55. package/dist/web-containers/source/code-permission-card.js.map +1 -1
  56. package/dist/web-containers/source/components/chat/chat-host-context.js.map +1 -1
  57. package/dist/web-containers/source/components/chat/code-permission-card.js +39 -2
  58. package/dist/web-containers/source/components/chat/code-permission-card.js.map +1 -1
  59. package/dist/web-containers/source/components/chat-input-form/approvals-mode-button.js +177 -0
  60. package/dist/web-containers/source/components/chat-input-form/approvals-mode-button.js.map +1 -0
  61. package/dist/web-containers/source/components/chat-input-form/composer-canvas-pill.js +30 -0
  62. package/dist/web-containers/source/components/chat-input-form/composer-canvas-pill.js.map +1 -0
  63. package/dist/web-containers/source/components/chat-input-form/composer-model-chip.js +23 -0
  64. package/dist/web-containers/source/components/chat-input-form/composer-model-chip.js.map +1 -0
  65. package/dist/web-containers/source/components/chat-input-form/composer-plus-menu.js +3 -3
  66. package/dist/web-containers/source/components/chat-input-form/composer-plus-menu.js.map +1 -1
  67. package/dist/web-containers/source/components/chat-input-form/composer-tool-row.js +91 -0
  68. package/dist/web-containers/source/components/chat-input-form/composer-tool-row.js.map +1 -0
  69. package/dist/web-containers/source/components/chat-input-form/cowork-control.js +7 -4
  70. package/dist/web-containers/source/components/chat-input-form/cowork-control.js.map +1 -1
  71. package/dist/web-containers/source/components/chat-input-form.js +8 -30
  72. package/dist/web-containers/source/components/chat-input-form.js.map +1 -1
  73. package/dist/web-containers/source/components/claw-sandbox/sandbox-config.js +1 -3
  74. package/dist/web-containers/source/components/claw-sandbox/sandbox-config.js.map +1 -1
  75. package/dist/web-containers/source/components/claw-sandbox/sandbox-kind-row.js +12 -0
  76. package/dist/web-containers/source/components/claw-sandbox/sandbox-kind-row.js.map +1 -0
  77. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/llm-tab/labels.js +12 -0
  78. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/llm-tab/labels.js.map +1 -1
  79. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.js +46 -32
  80. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.js.map +1 -1
  81. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/llm-tab.js +34 -6
  82. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/llm-tab.js.map +1 -1
  83. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/settings-tab/capabilities-sub-tab.js +1 -1
  84. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/settings-tab/capabilities-sub-tab.js.map +1 -1
  85. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/settings-tab/labels.js +1 -9
  86. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/settings-tab/labels.js.map +1 -1
  87. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/settings-tab/use-edit-mentor-settings.js +4 -8
  88. package/dist/web-containers/source/components/modals/edit-mentor-modal/tabs/settings-tab/use-edit-mentor-settings.js.map +1 -1
  89. package/dist/web-containers/source/components/profile/admin/tabs/applications/applications-tab.js +5 -2
  90. package/dist/web-containers/source/components/profile/admin/tabs/applications/applications-tab.js.map +1 -1
  91. package/dist/web-containers/source/components/profile/users-models/index.js +192 -0
  92. package/dist/web-containers/source/components/profile/users-models/index.js.map +1 -0
  93. package/dist/web-containers/source/components/profile/users-models/llm-access.js +206 -0
  94. package/dist/web-containers/source/components/profile/users-models/llm-access.js.map +1 -0
  95. package/dist/web-containers/source/composer-canvas-pill.js +30 -0
  96. package/dist/web-containers/source/composer-canvas-pill.js.map +1 -0
  97. package/dist/web-containers/source/composer-model-chip.js +23 -0
  98. package/dist/web-containers/source/composer-model-chip.js.map +1 -0
  99. package/dist/web-containers/source/composer-plus-menu.js +3 -3
  100. package/dist/web-containers/source/composer-plus-menu.js.map +1 -1
  101. package/dist/web-containers/source/composer-tool-row.js +91 -0
  102. package/dist/web-containers/source/composer-tool-row.js.map +1 -0
  103. package/dist/web-containers/source/cowork-control.js +7 -4
  104. package/dist/web-containers/source/cowork-control.js.map +1 -1
  105. package/dist/web-containers/source/edit-mentor-modal/tabs/llm-tab/labels.js +12 -0
  106. package/dist/web-containers/source/edit-mentor-modal/tabs/llm-tab/labels.js.map +1 -1
  107. package/dist/web-containers/source/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.js +46 -32
  108. package/dist/web-containers/source/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.js.map +1 -1
  109. package/dist/web-containers/source/edit-mentor-modal/tabs/llm-tab.js +34 -6
  110. package/dist/web-containers/source/edit-mentor-modal/tabs/llm-tab.js.map +1 -1
  111. package/dist/web-containers/source/edit-mentor-modal/tabs/settings-tab/capabilities-sub-tab.js +1 -1
  112. package/dist/web-containers/source/edit-mentor-modal/tabs/settings-tab/capabilities-sub-tab.js.map +1 -1
  113. package/dist/web-containers/source/edit-mentor-modal/tabs/settings-tab/labels.js +1 -9
  114. package/dist/web-containers/source/edit-mentor-modal/tabs/settings-tab/labels.js.map +1 -1
  115. package/dist/web-containers/source/edit-mentor-modal/tabs/settings-tab/use-edit-mentor-settings.js +4 -8
  116. package/dist/web-containers/source/edit-mentor-modal/tabs/settings-tab/use-edit-mentor-settings.js.map +1 -1
  117. package/dist/web-containers/source/en.json.js +50 -9
  118. package/dist/web-containers/source/en.json.js.map +1 -1
  119. package/dist/web-containers/source/es.json.js +49 -8
  120. package/dist/web-containers/source/es.json.js.map +1 -1
  121. package/dist/web-containers/source/fr.json.js +49 -8
  122. package/dist/web-containers/source/fr.json.js.map +1 -1
  123. package/dist/web-containers/source/i18n/messages/en.json.js +50 -9
  124. package/dist/web-containers/source/i18n/messages/en.json.js.map +1 -1
  125. package/dist/web-containers/source/i18n/messages/es.json.js +49 -8
  126. package/dist/web-containers/source/i18n/messages/es.json.js.map +1 -1
  127. package/dist/web-containers/source/i18n/messages/fr.json.js +49 -8
  128. package/dist/web-containers/source/i18n/messages/fr.json.js.map +1 -1
  129. package/dist/web-containers/source/i18n/messages/zh.json.js +49 -8
  130. package/dist/web-containers/source/i18n/messages/zh.json.js.map +1 -1
  131. package/dist/web-containers/source/llm-access.js +206 -0
  132. package/dist/web-containers/source/llm-access.js.map +1 -0
  133. package/dist/web-containers/source/llm-provider-modal.js +46 -32
  134. package/dist/web-containers/source/llm-provider-modal.js.map +1 -1
  135. package/dist/web-containers/source/llm-tab/labels.js +12 -0
  136. package/dist/web-containers/source/llm-tab/labels.js.map +1 -1
  137. package/dist/web-containers/source/llm-tab/llm-provider-modal.js +46 -32
  138. package/dist/web-containers/source/llm-tab/llm-provider-modal.js.map +1 -1
  139. package/dist/web-containers/source/llm-tab.js +34 -6
  140. package/dist/web-containers/source/llm-tab.js.map +1 -1
  141. package/dist/web-containers/source/messages/en.json.js +50 -9
  142. package/dist/web-containers/source/messages/en.json.js.map +1 -1
  143. package/dist/web-containers/source/messages/es.json.js +49 -8
  144. package/dist/web-containers/source/messages/es.json.js.map +1 -1
  145. package/dist/web-containers/source/messages/fr.json.js +49 -8
  146. package/dist/web-containers/source/messages/fr.json.js.map +1 -1
  147. package/dist/web-containers/source/messages/zh.json.js +49 -8
  148. package/dist/web-containers/source/messages/zh.json.js.map +1 -1
  149. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/llm-tab/labels.js +12 -0
  150. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/llm-tab/labels.js.map +1 -1
  151. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.js +46 -32
  152. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.js.map +1 -1
  153. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/llm-tab.js +34 -6
  154. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/llm-tab.js.map +1 -1
  155. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/settings-tab/capabilities-sub-tab.js +1 -1
  156. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/settings-tab/capabilities-sub-tab.js.map +1 -1
  157. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/settings-tab/labels.js +1 -9
  158. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/settings-tab/labels.js.map +1 -1
  159. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/settings-tab/use-edit-mentor-settings.js +4 -8
  160. package/dist/web-containers/source/modals/edit-mentor-modal/tabs/settings-tab/use-edit-mentor-settings.js.map +1 -1
  161. package/dist/web-containers/source/next/index.js +2 -0
  162. package/dist/web-containers/source/next/index.js.map +1 -1
  163. package/dist/web-containers/source/profile/admin/tabs/applications/applications-tab.js +5 -2
  164. package/dist/web-containers/source/profile/admin/tabs/applications/applications-tab.js.map +1 -1
  165. package/dist/web-containers/source/profile/users-models/index.js +192 -0
  166. package/dist/web-containers/source/profile/users-models/index.js.map +1 -0
  167. package/dist/web-containers/source/profile/users-models/llm-access.js +206 -0
  168. package/dist/web-containers/source/profile/users-models/llm-access.js.map +1 -0
  169. package/dist/web-containers/source/sandbox-config.js +1 -3
  170. package/dist/web-containers/source/sandbox-config.js.map +1 -1
  171. package/dist/web-containers/source/sandbox-kind-row.js +12 -0
  172. package/dist/web-containers/source/sandbox-kind-row.js.map +1 -0
  173. package/dist/web-containers/source/settings-tab/capabilities-sub-tab.js +1 -1
  174. package/dist/web-containers/source/settings-tab/capabilities-sub-tab.js.map +1 -1
  175. package/dist/web-containers/source/settings-tab/labels.js +1 -9
  176. package/dist/web-containers/source/settings-tab/labels.js.map +1 -1
  177. package/dist/web-containers/source/settings-tab/use-edit-mentor-settings.js +4 -8
  178. package/dist/web-containers/source/settings-tab/use-edit-mentor-settings.js.map +1 -1
  179. package/dist/web-containers/source/tabs/applications/applications-tab.js +5 -2
  180. package/dist/web-containers/source/tabs/applications/applications-tab.js.map +1 -1
  181. package/dist/web-containers/source/tabs/llm-tab/labels.js +12 -0
  182. package/dist/web-containers/source/tabs/llm-tab/labels.js.map +1 -1
  183. package/dist/web-containers/source/tabs/llm-tab/llm-provider-modal.js +46 -32
  184. package/dist/web-containers/source/tabs/llm-tab/llm-provider-modal.js.map +1 -1
  185. package/dist/web-containers/source/tabs/llm-tab.js +34 -6
  186. package/dist/web-containers/source/tabs/llm-tab.js.map +1 -1
  187. package/dist/web-containers/source/tabs/settings-tab/capabilities-sub-tab.js +1 -1
  188. package/dist/web-containers/source/tabs/settings-tab/capabilities-sub-tab.js.map +1 -1
  189. package/dist/web-containers/source/tabs/settings-tab/labels.js +1 -9
  190. package/dist/web-containers/source/tabs/settings-tab/labels.js.map +1 -1
  191. package/dist/web-containers/source/tabs/settings-tab/use-edit-mentor-settings.js +4 -8
  192. package/dist/web-containers/source/tabs/settings-tab/use-edit-mentor-settings.js.map +1 -1
  193. package/dist/web-containers/source/tsconfig.tsbuildinfo +1 -1
  194. package/dist/web-containers/source/use-edit-mentor-settings.js +4 -8
  195. package/dist/web-containers/source/use-edit-mentor-settings.js.map +1 -1
  196. package/dist/web-containers/source/users-models/index.js +192 -0
  197. package/dist/web-containers/source/users-models/index.js.map +1 -0
  198. package/dist/web-containers/source/users-models/llm-access.js +206 -0
  199. package/dist/web-containers/source/users-models/llm-access.js.map +1 -0
  200. package/dist/web-containers/source/web-containers/tsconfig.tsbuildinfo +1 -1
  201. package/dist/web-containers/source/zh.json.js +49 -8
  202. package/dist/web-containers/source/zh.json.js.map +1 -1
  203. package/dist/web-utils/playwright/edit-agent-category-helpers.d.ts +13 -0
  204. package/dist/web-utils/playwright/human-support-tab-helpers.d.ts +2 -2
  205. package/dist/web-utils/playwright/privacy-tab-helpers.d.ts +7 -4
  206. package/dist/web-utils/playwright/spend-limits-helpers.d.ts +7 -4
  207. package/package.json +5 -5
@@ -2982,6 +2982,12 @@ var llmTabLabels = {
2982
2982
  description: "为您的智能体配置语言模型设置。"
2983
2983
  },
2984
2984
  infoBox: "这是您智能体的大脑——为每次回复提供动力的 AI 模型。更大的模型在处理复杂问题时推理能力更强;更轻量的模型则更快、成本更低。不确定?默认模型是可靠的全能之选。",
2985
+ inChatModelChange: {
2986
+ label: "允许在聊天中更换模型",
2987
+ description: "允许用户仅在自己的聊天会话中切换到其他 AI 模型。开始新聊天时会恢复为智能体的模型。",
2988
+ tooltip: "用户可以在聊天时选择其他模型。此更改仅适用于其自己的会话——智能体的模型对所有人保持不变,每个新聊天都会重新从该模型开始。同时适用于应用内聊天和嵌入式小组件。",
2989
+ tooltipAriaLabel: "了解允许在聊天中更换模型"
2990
+ },
2985
2991
  search: {
2986
2992
  placeholder: "搜索提供商"
2987
2993
  },
@@ -4843,10 +4849,6 @@ var settingsTabLabels = {
4843
4849
  label: "Smart Document Retrieval",
4844
4850
  tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
4845
4851
  },
4846
- inChatModelChange: {
4847
- label: "允许在聊天中更换模型",
4848
- tooltip: "允许用户为自己的聊天选择其他 AI 模型。智能体的模型不会改变,新聊天仍从该模型开始。此设置只有一个值,因此同时适用于应用内聊天和嵌入式小组件。"
4849
- },
4850
4852
  showLastConversation: {
4851
4853
  label: "重新打开上次对话",
4852
4854
  tooltip: "用户打开此智能体时,显示他们的上一次对话,方便从上次中断的地方继续。此设置只有一个值,因此同时适用于应用内聊天和嵌入式小组件。"
@@ -5641,7 +5643,6 @@ var tabsSettingsTab = {
5641
5643
  promptCachingTooltipAriaLabel: "More info about prompt caching",
5642
5644
  smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
5643
5645
  toggleAriaLabel: "{label} {state}",
5644
- inChatModelChangeTooltipAriaLabel: "了解允许在聊天中更换模型",
5645
5646
  showLastConversationTooltipAriaLabel: "了解重新打开上次对话"
5646
5647
  };
5647
5648
  var tabsTeamsaccesspanel = {
@@ -7303,7 +7304,18 @@ var chat = {
7303
7304
  title: "代码模式需要你的许可",
7304
7305
  unnamedAction: "一项未命名的操作",
7305
7306
  allow: "允许",
7306
- deny: "拒绝"
7307
+ deny: "拒绝",
7308
+ switchToAutomatic: "切换为自动批准",
7309
+ switchToAutomaticHint: "代码模式将在所有对话中直接修改文件并执行命令,不再询问。请仅在受信任的文件夹中使用。",
7310
+ switchToAutomaticFailed: "无法保存操作审批设置。代码模式仍沿用之前的设置。"
7311
+ },
7312
+ chatInputFormApprovalsModeButton: {
7313
+ permissionModeLabel: "操作审批",
7314
+ permissionModeManual: "每次询问",
7315
+ permissionModeAuto: "自动批准",
7316
+ permissionModeManualHint: "代码模式在修改文件或执行命令前会先征求你的同意。",
7317
+ permissionModeAutoHint: "代码模式将直接修改文件并执行命令,不再询问。请仅在受信任的文件夹中使用。",
7318
+ approvalsAria: "操作审批:{mode}"
7307
7319
  },
7308
7320
  chatIndex: {
7309
7321
  youAreOffline: "您已离线",
@@ -8043,6 +8055,34 @@ var accessibility = {
8043
8055
  positionAnnouncement: "无障碍按钮已移到{side, select, left {左} other {右}}边缘,距底部 {bottom} 像素。"
8044
8056
  }
8045
8057
  };
8058
+ var usersModelsTab = {
8059
+ title: "用户模型",
8060
+ dialogDescription: "选择你所在组织的用户可以使用哪些模型。这适用于所有智能体。",
8061
+ openButton: "用户模型",
8062
+ usersCanPick: "用户可选择的模型",
8063
+ allowedForUsers: "已为用户允许 {count} 个模型",
8064
+ allAllowedForUsers: "已为用户允许所有模型",
8065
+ allAllowed: "全部允许",
8066
+ someAllowed: "已允许 {allowed}/{total}",
8067
+ pickHelp: "勾选你所在组织的用户可以使用的 {provider} 模型。",
8068
+ allowAll: "允许所有 {provider} 模型",
8069
+ allowAllDetail: "包括今后推出的 {provider} 新模型。",
8070
+ selectedCount: "已选择 {selected}/{total}",
8071
+ done: "完成",
8072
+ saveFailed: "无法保存你的更改,请重试。",
8073
+ adminsOnly: "只有管理员可以更改用户可用的模型。",
8074
+ notAvailable: "你的组织暂时无法使用此设置。请联系客服。",
8075
+ loadError: "无法加载模型,请重试。",
8076
+ retry: "重试",
8077
+ rejectedEntry: "“{model}”已不再提供,因此无法保存。",
8078
+ rejectedUnknown: "无法保存该更改,请重试。",
8079
+ removeRejected: "移除",
8080
+ cancel: "取消",
8081
+ confirmEmptyTitle: "不选择任何模型并保存?",
8082
+ confirmEmptyDescription: "用户与智能体聊天时将无法选择任何模型。",
8083
+ confirmEmptyBody: "你可以随时重新添加模型。",
8084
+ confirmEmptySave: "仍然保存"
8085
+ };
8046
8086
  var zh = {
8047
8087
  accessTabAddAccess: accessTabAddAccess,
8048
8088
  accessTabLabels: accessTabLabels,
@@ -8344,8 +8384,9 @@ var zh = {
8344
8384
  advancedSeoDiscoverability: advancedSeoDiscoverability,
8345
8385
  canvasSessionCanvasCards: canvasSessionCanvasCards,
8346
8386
  profileOverviewTab: profileOverviewTab,
8347
- accessibility: accessibility
8387
+ accessibility: accessibility,
8388
+ usersModelsTab: usersModelsTab
8348
8389
  };
8349
8390
 
8350
- export { accessTabAddAccess, accessTabLabels, accessTabUpdateAccess, accessibility, advancePagination, advancedAdvanced, advancedAdvancedCss, advancedAuthSpaCustomization, advancedChatAdvancedChatHeader, advancedChatAreaWidth, advancedChatPrivacy, advancedCustomDomain, advancedExternalMapping, advancedMemsearchConfig, advancedPlatformMembership, advancedProviderConfig, advancedRecommendationSystemPrompts, advancedSeoDiscoverability, advancedSmtp, advancedStartScreen, advancedStudentMentorCreation, agentSearchLabels, agentSettingsLink, analyticsAccessTimeHeatmap, analyticsAgentScopeLink, analyticsAnalyticsAgentPicker, analyticsAnalyticsAuditLogStats, analyticsAnalyticsCourseDetail, analyticsAnalyticsCourses, analyticsAnalyticsFinancialStats, analyticsAnalyticsMemoryStats, analyticsAnalyticsMonetizationStats, analyticsAnalyticsOverview, analyticsAnalyticsPlatformAuditLog, analyticsAnalyticsProgramDetail, analyticsAnalyticsPrograms, analyticsAnalyticsReports, analyticsAnalyticsTopicsStats, analyticsAnalyticsTranscriptsStats, analyticsAnalyticsUsersStats, analyticsAuditLogJsonView, analyticsChartCard, analyticsControlBar, analyticsCostTabs, analyticsGroupsFilterDropdown, analyticsLlmUsage, analyticsPlatformAuditLogDetailSheet, analyticsSourceChip, analyticsStatCard, analyticsTabLabels, analyticsTraces, analyticsTranscriptTurnDetails, analyticsUsePlatformAuditLabels, analyticsUserFilterSelect, apiTabApiKeyModal, apiTabCreateApiModal2, apiTabDeleteApiModal2, apiTabEditApiModal, apiTabLabels, apiTabTokenPolicies, appSidebarIndex, appSidebarProjectItem, appSidebarProjectsSidebarDropdown, appSidebarToggleSidebarButton, applyApplyWizard, benchmarksAddItemsModal, benchmarksBenchmarkItemsModal, benchmarksCreateBenchmarkModal, benchmarksDeleteItemConfirm, benchmarksIndex, canvasBinaryCanvas, canvasCanvasComponent, canvasCanvasControls, canvasCanvasExportHandlers, canvasCanvasRichTextEditor, canvasCodeCanvasComponent, canvasSessionCanvasCards, canvasUseCanvasVersionNavigation, careerCompanyDialog, careerEducationDialog, careerEducationTab, careerExperienceDialog, careerExperienceTab, careerInstitutionDialog, careerResumeTab, chat, chatAiMessageBubble, chatAiMessageCopy, chatAiMessageRating, chatAiMessageReportInappropriateContent, chatAiMessageShare, chatHistoryChatHistoryTab, chatHistoryReportHistory, chatIndex, chatInputForm, chatInputFormFileAttachmentsList, chatInputFormInsideButtons, chatInputFormMemoryMenu, chatInputFormOutsideButtons, chatInputFormScreenSharingButton, chatInputFormUploadMenu, chatInputFormVoiceCallButton, chatInputFormVoiceChatButton, chatPrivacyChatPrivacyToggle, chatStopStreamingButton, clawSandboxAgentConfigPrompts, clawSandboxAgentSkills, clawSandboxHelpers, clawSandboxLlmProviderModal, clawSandboxOverlayModal, clawSandboxSandboxConfig, common, componentsHumanSupportSection, componentsMentorPromptDialog, componentsPolicyAssignmentSection, componentsPolicyConfigDialog, componentsProactiveSettingsSection, componentsTemplateActionsSection, componentsTemplateVariablesHelper, componentsUserProgressSettingsSection, componentsWatcherEmailSection, courseContentAccessiblePaginate, courseContentCourseContentLayout, courseContentDiscoverFacetsFilter, courseContentDiscoverFilterDrawer, createAgentModalCreateAgentForm, createAgentModalLabels, creditBalance, dataSourcesTabCreateDataSourceModal, dataSourcesTabIntegrationDataSourcesTab, datasetsTabAddResourceModal, datasetsTabDatasetItem, datasetsTabLabels, datasetsTabRetrainScheduleModal, zh as default, disclaimersTabLabels, documentSidebar, embedTabLabels, evaluationTabLabels, gradebookGradebookTab, graderTabLabels, guidedSuggestedPrompts, historyTabLabels, humanSupportTabLabels, inviteCoursesTab, inviteProgramsTab, inviteUsersTab, liveKitVoiceChat, llmTabLabels, llmsTabCreateLlmModal, llmsTabIntegrationLlmsTab, localLlmLocalLlmTab, localLlmUseModelDownload, ltiTabLabels, mcpTabConnectorDialogs, mcpTabConnectorManagementContent, memoryAddMemoryDialog, memoryAdminAgentMemoriesModal, memoryAdminTab, memoryAdminUserMemoriesModal, memoryEditMemoryDialog, memoryMemoryTab, memoryTabAddMemoryModal, memoryTabDeleteMemoryModal, memoryTabEditMemoryModal, memoryTabLabels, memoryTabLearnersMemories, memoryTabManageCategoriesModal, memoryTabManageMemories, memoryTabSavedMemoriesModal, mentorsMentorSelectionGrid, modalsAddPromptModal, modalsChatActionBlockingOverlay, modalsDisclaimerModal, modalsEditPromptModal, modalsPaywallModal, modalsPromptGalleryModal, modalsUserProfileModal, modalsVoiceChatModal, monetizationCancelSubscription, monetizationItemSearchDropdown, monetizationPaywallDetail, monetizationPaywalledItemsList, monetizationPriceManagement, monetizationStripeConnect, navbar, notificationsAlertsTab, notificationsEditAlertDialog, notificationsNotificationDisplay, notificationsNotificationDropdown, notificationsSendNotificationDialog, onboardingOnboardingWizard, onboardingUserOnboarding, pipChat, placementExam, platformNavbar, platformSidebar, privacyTabLabels, profileAccount, profileAddCreditsModal, profileAdmin, profileApplicationsQuestionsEditor, profileApplicationsTab, profileAutoRechargeModal, profileBilling, profileCatalogInviteModal, profileChatPrivacyTab, profileCsvEditor, profileIndex, profileInviteUserContent, profileInvitedUsers, profileLlmUsage, profileOnboardingTab, profileOrganization, profileOverviewTab, profileSecurity, projectsAddMentorToProjectModal, projectsCreateProjectModal, projectsDeleteProjectModal, projectsMinimumMentorAlert, projectsProjectActionButtons, projectsProjectFilesModal, projectsProjectInstructionsModal, projectsProjectLandingPage, projectsProjectMentorsList, projectsProjectsPage, projectsRenameProjectModal, promptGalleryModalEmptyPrompts, promptGalleryModalPromptCard, promptsTabAddPromptModal, promptsTabEditPromptModal, promptsTabLabels, purchasesPurchasesTab, resourceModalGithubFileUploadModal, resourceModalLocalFileUploadModal, resourceModalUrlUploadModal, resourceModalWebsiteCrawlModal, resourcePicker, retrievedDocumentsButton, richTextEditor, safetyTabLabels, screenshareTabLabels, settingsTabCopyMentorModal, settingsTabLabels, settingsTabWelcomeScreen, skillsProfileAddSkillDialog, skillsProfileCreatePathwayModal, skillsProfileCredentialBox, skillsProfileCredentialDetailModal, skillsProfileEducationBox, skillsProfileExperienceBox, skillsProfileMediaBox, skillsProfilePathwayDetailModal, skillsProfileProfileInfoCards, skillsProfileProgramDetailModal, skillsProfileResumeBox, skillsProfileSkillDetailModal, skillsProfileSkillsBox, skillsTabLabels, slashSkillPicker, spendCapUsage, spendCapsTabLabels, summernoteTextEditor, tabsAlertstab, tabsDisclaimersTab, tabsEmbedTab, tabsGroupstab, tabsHistoryTab, tabsHumanSupportTab, tabsPoliciestab, tabsPrivacyTab, tabsPromptsTab, tabsRolestab, tabsSafetyTab, tabsSettingsTab, tabsTeamsaccesspanel, tabsUserstab, tabsVoiceTab, tasksTabLabels, tenantSwitchIndex, toolsTabLabels, topBannerIndex, uiDialog, uiPagination, uiSheet, uiSidebar, userProfileDropdownIndex, version, virtualMachineAdminTab, virtualMachineHostInput, virtualMachineNetworkPolicies, virtualMachineNetworkSection, virtualMachineSecrets, voiceTabCallConfigSection, voiceTabLabels, voiceTabVoicePicker, welcomeChatConversationStarters, welcomeChatExploreMentors, workflowsConnectorManagementDialog, workflowsCreateWorkflowModal, workflowsDeleteWorkflowModal, workflowsToolDialogs };
8391
+ export { accessTabAddAccess, accessTabLabels, accessTabUpdateAccess, accessibility, advancePagination, advancedAdvanced, advancedAdvancedCss, advancedAuthSpaCustomization, advancedChatAdvancedChatHeader, advancedChatAreaWidth, advancedChatPrivacy, advancedCustomDomain, advancedExternalMapping, advancedMemsearchConfig, advancedPlatformMembership, advancedProviderConfig, advancedRecommendationSystemPrompts, advancedSeoDiscoverability, advancedSmtp, advancedStartScreen, advancedStudentMentorCreation, agentSearchLabels, agentSettingsLink, analyticsAccessTimeHeatmap, analyticsAgentScopeLink, analyticsAnalyticsAgentPicker, analyticsAnalyticsAuditLogStats, analyticsAnalyticsCourseDetail, analyticsAnalyticsCourses, analyticsAnalyticsFinancialStats, analyticsAnalyticsMemoryStats, analyticsAnalyticsMonetizationStats, analyticsAnalyticsOverview, analyticsAnalyticsPlatformAuditLog, analyticsAnalyticsProgramDetail, analyticsAnalyticsPrograms, analyticsAnalyticsReports, analyticsAnalyticsTopicsStats, analyticsAnalyticsTranscriptsStats, analyticsAnalyticsUsersStats, analyticsAuditLogJsonView, analyticsChartCard, analyticsControlBar, analyticsCostTabs, analyticsGroupsFilterDropdown, analyticsLlmUsage, analyticsPlatformAuditLogDetailSheet, analyticsSourceChip, analyticsStatCard, analyticsTabLabels, analyticsTraces, analyticsTranscriptTurnDetails, analyticsUsePlatformAuditLabels, analyticsUserFilterSelect, apiTabApiKeyModal, apiTabCreateApiModal2, apiTabDeleteApiModal2, apiTabEditApiModal, apiTabLabels, apiTabTokenPolicies, appSidebarIndex, appSidebarProjectItem, appSidebarProjectsSidebarDropdown, appSidebarToggleSidebarButton, applyApplyWizard, benchmarksAddItemsModal, benchmarksBenchmarkItemsModal, benchmarksCreateBenchmarkModal, benchmarksDeleteItemConfirm, benchmarksIndex, canvasBinaryCanvas, canvasCanvasComponent, canvasCanvasControls, canvasCanvasExportHandlers, canvasCanvasRichTextEditor, canvasCodeCanvasComponent, canvasSessionCanvasCards, canvasUseCanvasVersionNavigation, careerCompanyDialog, careerEducationDialog, careerEducationTab, careerExperienceDialog, careerExperienceTab, careerInstitutionDialog, careerResumeTab, chat, chatAiMessageBubble, chatAiMessageCopy, chatAiMessageRating, chatAiMessageReportInappropriateContent, chatAiMessageShare, chatHistoryChatHistoryTab, chatHistoryReportHistory, chatIndex, chatInputForm, chatInputFormFileAttachmentsList, chatInputFormInsideButtons, chatInputFormMemoryMenu, chatInputFormOutsideButtons, chatInputFormScreenSharingButton, chatInputFormUploadMenu, chatInputFormVoiceCallButton, chatInputFormVoiceChatButton, chatPrivacyChatPrivacyToggle, chatStopStreamingButton, clawSandboxAgentConfigPrompts, clawSandboxAgentSkills, clawSandboxHelpers, clawSandboxLlmProviderModal, clawSandboxOverlayModal, clawSandboxSandboxConfig, common, componentsHumanSupportSection, componentsMentorPromptDialog, componentsPolicyAssignmentSection, componentsPolicyConfigDialog, componentsProactiveSettingsSection, componentsTemplateActionsSection, componentsTemplateVariablesHelper, componentsUserProgressSettingsSection, componentsWatcherEmailSection, courseContentAccessiblePaginate, courseContentCourseContentLayout, courseContentDiscoverFacetsFilter, courseContentDiscoverFilterDrawer, createAgentModalCreateAgentForm, createAgentModalLabels, creditBalance, dataSourcesTabCreateDataSourceModal, dataSourcesTabIntegrationDataSourcesTab, datasetsTabAddResourceModal, datasetsTabDatasetItem, datasetsTabLabels, datasetsTabRetrainScheduleModal, zh as default, disclaimersTabLabels, documentSidebar, embedTabLabels, evaluationTabLabels, gradebookGradebookTab, graderTabLabels, guidedSuggestedPrompts, historyTabLabels, humanSupportTabLabels, inviteCoursesTab, inviteProgramsTab, inviteUsersTab, liveKitVoiceChat, llmTabLabels, llmsTabCreateLlmModal, llmsTabIntegrationLlmsTab, localLlmLocalLlmTab, localLlmUseModelDownload, ltiTabLabels, mcpTabConnectorDialogs, mcpTabConnectorManagementContent, memoryAddMemoryDialog, memoryAdminAgentMemoriesModal, memoryAdminTab, memoryAdminUserMemoriesModal, memoryEditMemoryDialog, memoryMemoryTab, memoryTabAddMemoryModal, memoryTabDeleteMemoryModal, memoryTabEditMemoryModal, memoryTabLabels, memoryTabLearnersMemories, memoryTabManageCategoriesModal, memoryTabManageMemories, memoryTabSavedMemoriesModal, mentorsMentorSelectionGrid, modalsAddPromptModal, modalsChatActionBlockingOverlay, modalsDisclaimerModal, modalsEditPromptModal, modalsPaywallModal, modalsPromptGalleryModal, modalsUserProfileModal, modalsVoiceChatModal, monetizationCancelSubscription, monetizationItemSearchDropdown, monetizationPaywallDetail, monetizationPaywalledItemsList, monetizationPriceManagement, monetizationStripeConnect, navbar, notificationsAlertsTab, notificationsEditAlertDialog, notificationsNotificationDisplay, notificationsNotificationDropdown, notificationsSendNotificationDialog, onboardingOnboardingWizard, onboardingUserOnboarding, pipChat, placementExam, platformNavbar, platformSidebar, privacyTabLabels, profileAccount, profileAddCreditsModal, profileAdmin, profileApplicationsQuestionsEditor, profileApplicationsTab, profileAutoRechargeModal, profileBilling, profileCatalogInviteModal, profileChatPrivacyTab, profileCsvEditor, profileIndex, profileInviteUserContent, profileInvitedUsers, profileLlmUsage, profileOnboardingTab, profileOrganization, profileOverviewTab, profileSecurity, projectsAddMentorToProjectModal, projectsCreateProjectModal, projectsDeleteProjectModal, projectsMinimumMentorAlert, projectsProjectActionButtons, projectsProjectFilesModal, projectsProjectInstructionsModal, projectsProjectLandingPage, projectsProjectMentorsList, projectsProjectsPage, projectsRenameProjectModal, promptGalleryModalEmptyPrompts, promptGalleryModalPromptCard, promptsTabAddPromptModal, promptsTabEditPromptModal, promptsTabLabels, purchasesPurchasesTab, resourceModalGithubFileUploadModal, resourceModalLocalFileUploadModal, resourceModalUrlUploadModal, resourceModalWebsiteCrawlModal, resourcePicker, retrievedDocumentsButton, richTextEditor, safetyTabLabels, screenshareTabLabels, settingsTabCopyMentorModal, settingsTabLabels, settingsTabWelcomeScreen, skillsProfileAddSkillDialog, skillsProfileCreatePathwayModal, skillsProfileCredentialBox, skillsProfileCredentialDetailModal, skillsProfileEducationBox, skillsProfileExperienceBox, skillsProfileMediaBox, skillsProfilePathwayDetailModal, skillsProfileProfileInfoCards, skillsProfileProgramDetailModal, skillsProfileResumeBox, skillsProfileSkillDetailModal, skillsProfileSkillsBox, skillsTabLabels, slashSkillPicker, spendCapUsage, spendCapsTabLabels, summernoteTextEditor, tabsAlertstab, tabsDisclaimersTab, tabsEmbedTab, tabsGroupstab, tabsHistoryTab, tabsHumanSupportTab, tabsPoliciestab, tabsPrivacyTab, tabsPromptsTab, tabsRolestab, tabsSafetyTab, tabsSettingsTab, tabsTeamsaccesspanel, tabsUserstab, tabsVoiceTab, tasksTabLabels, tenantSwitchIndex, toolsTabLabels, topBannerIndex, uiDialog, uiPagination, uiSheet, uiSidebar, userProfileDropdownIndex, usersModelsTab, version, virtualMachineAdminTab, virtualMachineHostInput, virtualMachineNetworkPolicies, virtualMachineNetworkSection, virtualMachineSecrets, voiceTabCallConfigSection, voiceTabLabels, voiceTabVoicePicker, welcomeChatConversationStarters, welcomeChatExploreMentors, workflowsConnectorManagementDialog, workflowsCreateWorkflowModal, workflowsDeleteWorkflowModal, workflowsToolDialogs };
8351
8392
  //# sourceMappingURL=zh.json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zh.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"zh.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Pure helpers for the User Models dialog: the RBAC resource-path grammar the
3
+ * `rbac/llm-access` endpoints speak, and the catalog filtering behind it.
4
+ *
5
+ * Grammar: `llms/` grants everything, `llms/<provider>/` every model of one
6
+ * provider (future ones included), `llms/<provider>/models/<llm_name>` one
7
+ * model. Paths are always built from the provider `name` and the model
8
+ * `llm_name`, never a display name, because those are what the backend
9
+ * validates against.
10
+ */
11
+ const EVERY_MODEL_PATH = 'llms/';
12
+ const NO_MODELS = [];
13
+ const providerPath = (provider) => `llms/${provider}/`;
14
+ const modelPath = (provider, llmName) => `llms/${provider}/models/${llmName}`;
15
+ const modelKey = (provider, llmName) => `${provider}/${llmName}`;
16
+ const splitModelKey = (key) => {
17
+ const slash = key.indexOf('/');
18
+ return [key.slice(0, slash), key.slice(slash + 1)];
19
+ };
20
+ /**
21
+ * The models the backend will accept: it validates against active,
22
+ * non-deprecated registry rows, so a model flagged inactive or deprecated is
23
+ * left out. Credential state (`availability`) is deliberately ignored — it
24
+ * says whether a key is set up, not whether the model can be granted. A
25
+ * `llm_name` containing `/` cannot be expressed as one path segment, so it is
26
+ * only reachable through its provider's grant.
27
+ */
28
+ function usableCatalog(providers) {
29
+ const list = Array.isArray(providers) ? providers : [];
30
+ return list
31
+ .filter((provider) => (provider === null || provider === void 0 ? void 0 : provider.name) && provider.is_active !== false)
32
+ .map((provider) => {
33
+ var _a;
34
+ const seen = new Set();
35
+ return {
36
+ ...provider,
37
+ chat_models: ((_a = provider.chat_models) !== null && _a !== void 0 ? _a : NO_MODELS).filter((model) => !!(model === null || model === void 0 ? void 0 : model.llm_name) &&
38
+ !seen.has(model.llm_name) &&
39
+ !!seen.add(model.llm_name) &&
40
+ !model.llm_name.includes('/') &&
41
+ model.is_active !== false &&
42
+ !model.is_deprecated &&
43
+ !model.deprecated),
44
+ };
45
+ })
46
+ .filter((provider) => provider.chat_models.length > 0);
47
+ }
48
+ function emptyAccess() {
49
+ return { everyModel: false, providers: new Set(), models: new Set() };
50
+ }
51
+ /**
52
+ * Reads a saved list. Trailing slashes are tolerated (the status endpoint
53
+ * echoes `llms/openai/models/gpt-4o-mini/`); entries outside the grammar are
54
+ * dropped, since the backend would refuse to save them anyway. Specific
55
+ * entries are kept alongside `llms/` so they survive the first edit under it.
56
+ */
57
+ function parseLlmResources(resources) {
58
+ const state = emptyAccess();
59
+ for (const raw of resources !== null && resources !== void 0 ? resources : []) {
60
+ if (typeof raw !== 'string')
61
+ continue;
62
+ const parts = raw
63
+ .trim()
64
+ .replace(/^\/+|\/+$/g, '')
65
+ .split('/');
66
+ if (parts[0] !== 'llms' || parts.some((part) => !part))
67
+ continue;
68
+ if (parts.length === 1) {
69
+ state.everyModel = true;
70
+ }
71
+ else if (parts.length === 2) {
72
+ state.providers.add(parts[1]);
73
+ }
74
+ else if (parts.length === 4 && parts[2] === 'models') {
75
+ state.models.add(modelKey(parts[1], parts[3]));
76
+ }
77
+ }
78
+ return supersede(state);
79
+ }
80
+ function supersede(state) {
81
+ const models = new Set([...state.models].filter((key) => !state.providers.has(splitModelKey(key)[0])));
82
+ return { everyModel: state.everyModel, providers: new Set(state.providers), models };
83
+ }
84
+ /** The list to send: `llms/` alone, or providers then models, each sorted and unique. */
85
+ function serializeLlmAccess(state) {
86
+ if (state.everyModel)
87
+ return [EVERY_MODEL_PATH];
88
+ const normalized = supersede(state);
89
+ return [
90
+ ...[...normalized.providers].sort().map(providerPath),
91
+ ...[...normalized.models].sort().map((key) => modelPath(...splitModelKey(key))),
92
+ ];
93
+ }
94
+ function normalizeLlmResources(resources) {
95
+ return serializeLlmAccess(parseLlmResources(resources));
96
+ }
97
+ function sameLlmAccess(a, b) {
98
+ return serializeLlmAccess(a).join('\n') === serializeLlmAccess(b).join('\n');
99
+ }
100
+ function addProvider(state, provider) {
101
+ return supersede({ ...state, providers: new Set(state.providers).add(provider) });
102
+ }
103
+ function removeProvider(state, provider) {
104
+ const providers = new Set(state.providers);
105
+ providers.delete(provider);
106
+ return { ...state, providers };
107
+ }
108
+ function addModel(state, provider, llmName) {
109
+ if (state.providers.has(provider))
110
+ return state;
111
+ return { ...state, models: new Set(state.models).add(modelKey(provider, llmName)) };
112
+ }
113
+ function removeModel(state, provider, llmName) {
114
+ const models = new Set(state.models);
115
+ models.delete(modelKey(provider, llmName));
116
+ return { ...state, models };
117
+ }
118
+ function isModelGranted(state, provider, llmName) {
119
+ return (state.everyModel ||
120
+ state.providers.has(provider) ||
121
+ state.models.has(modelKey(provider, llmName)));
122
+ }
123
+ /**
124
+ * The entry a 400 names. The backend's message quotes the path
125
+ * (`Resource path 'llms/x/models/y' references …`); the result is normalized
126
+ * so it compares equal to {@link serializeLlmAccess} output. Falls back to
127
+ * the first sent entry the body mentions.
128
+ */
129
+ function findRejectedEntry(body, sent) {
130
+ const text = typeof body === 'string' ? body : JSON.stringify(body !== null && body !== void 0 ? body : '');
131
+ const quoted = text.match(/'(llms\/[^']*)'/);
132
+ if (quoted) {
133
+ const [normalized] = normalizeLlmResources([quoted[1]]);
134
+ return normalized !== null && normalized !== void 0 ? normalized : quoted[1];
135
+ }
136
+ return sent.find((entry) => entry !== EVERY_MODEL_PATH && text.includes(entry));
137
+ }
138
+ /** How much of one provider users can use; `all` also covers a provider-wide grant. */
139
+ function providerAllowance(state, provider) {
140
+ var _a;
141
+ const models = (_a = provider.chat_models) !== null && _a !== void 0 ? _a : NO_MODELS;
142
+ const allowed = models.filter((model) => isModelGranted(state, provider.name, model.llm_name)).length;
143
+ const all = state.everyModel ||
144
+ state.providers.has(provider.name) ||
145
+ (models.length > 0 && allowed === models.length);
146
+ return { allowed, total: models.length, all };
147
+ }
148
+ /**
149
+ * `llms/` can't express "everything except one model", so the first edit
150
+ * under it turns it into a grant per catalog provider (future models of each
151
+ * stay included), keeping any specific entries saved next to it.
152
+ */
153
+ function withoutEveryModel(state, catalog) {
154
+ if (!state.everyModel)
155
+ return state;
156
+ const providers = new Set(state.providers);
157
+ catalog.forEach((provider) => providers.add(provider.name));
158
+ return supersede({ ...state, everyModel: false, providers });
159
+ }
160
+ /**
161
+ * Ticks or unticks one model. Unticking a model whose provider is granted as
162
+ * a whole replaces that grant with the provider's other catalog models.
163
+ */
164
+ function toggleModelAccess(state, catalog, provider, llmName) {
165
+ var _a, _b;
166
+ const current = withoutEveryModel(state, catalog);
167
+ if (current.providers.has(provider)) {
168
+ const models = new Set(current.models);
169
+ (_b = (_a = catalog
170
+ .find((item) => item.name === provider)) === null || _a === void 0 ? void 0 : _a.chat_models) === null || _b === void 0 ? void 0 : _b.forEach((model) => {
171
+ if (model.llm_name !== llmName)
172
+ models.add(modelKey(provider, model.llm_name));
173
+ });
174
+ return { ...removeProvider(current, provider), models };
175
+ }
176
+ return isModelGranted(current, provider, llmName)
177
+ ? removeModel(current, provider, llmName)
178
+ : addModel(current, provider, llmName);
179
+ }
180
+ /** Ticks "Allow All" (a provider-wide grant) or unticks it, which clears the provider. */
181
+ function toggleProviderAccess(state, catalog, provider) {
182
+ var _a, _b;
183
+ const current = withoutEveryModel(state, catalog);
184
+ if (!current.providers.has(provider))
185
+ return addProvider(current, provider);
186
+ const names = new Set(((_b = (_a = catalog.find((item) => item.name === provider)) === null || _a === void 0 ? void 0 : _a.chat_models) !== null && _b !== void 0 ? _b : NO_MODELS).map((model) => model.llm_name));
187
+ const models = new Set([...current.models].filter((key) => {
188
+ const [owner, llmName] = splitModelKey(key);
189
+ return owner !== provider || !names.has(llmName);
190
+ }));
191
+ return { ...removeProvider(current, provider), models };
192
+ }
193
+ /** Drops one serialized entry (as {@link findRejectedEntry} returns it). */
194
+ function removeEntry(state, path) {
195
+ const parsed = parseLlmResources([path]);
196
+ if (parsed.everyModel)
197
+ return { ...state, everyModel: false };
198
+ const [provider] = [...parsed.providers];
199
+ if (provider)
200
+ return removeProvider(state, provider);
201
+ const [key] = [...parsed.models];
202
+ return key ? removeModel(state, ...splitModelKey(key)) : state;
203
+ }
204
+
205
+ export { EVERY_MODEL_PATH, addModel, addProvider, emptyAccess, findRejectedEntry, isModelGranted, modelKey, modelPath, normalizeLlmResources, parseLlmResources, providerAllowance, providerPath, removeEntry, removeModel, removeProvider, sameLlmAccess, serializeLlmAccess, splitModelKey, toggleModelAccess, toggleProviderAccess, usableCatalog };
206
+ //# sourceMappingURL=llm-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-access.js","sources":["../../../../../../../../src/components/profile/users-models/llm-access.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,20 +2,23 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
3
  import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../../../../ui/dialog.js';
4
4
  import { AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from '../../../../ui/alert-dialog.js';
5
+ import { Button } from '../../../../ui/button.js';
5
6
  import { Input } from '../../../../ui/input.js';
6
7
  import { cn } from '../../../../../lib/utils.js';
7
8
  import { useT } from '../../../../../i18n/context.js';
8
9
  import '../../../../../packages/i18n/dist/index.esm.js';
9
10
  import { useModelDownload } from '../../../../../hooks/use-model-download.js';
10
11
  import { getLocalLLMModel, isLocalLLMEnabled, LOCAL_LLM_CHANGED_EVENT, localModelsForThisDevice, LOCAL_MODELS, localModelDisplaySize, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, modelExceedsCapacity } from '../../../../profile/local-llm/local-llm-tab.js';
11
- import { llmProviderLabel, getProviderName, canSwitchProvider, isModelAvailable, sameModel, modelUnavailableReason, llmModelLabel, isLocalModelInstalled } from './utils.js';
12
+ import { llmProviderLabel, getProviderName, canSwitchProvider, isModelAvailable, sameModel, llmModelLabel, modelUnavailableReason, isLocalModelInstalled } from './utils.js';
12
13
  import { LLMProviderLogo } from './provider-logo.js';
13
14
  import { buildLLMTabLabels } from './labels.js';
14
15
  import { LocalModelRow } from './local-model-row.js';
15
16
  import Search from '../../../../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/search.js';
17
+ import Check from '../../../../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/check.js';
16
18
 
17
- function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting, mentorSettings, llms, labels: labelsProp, cloudOnly = false, }) {
18
- var _a, _b;
19
+ function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting = false, mentorSettings, llms, labels: labelsProp, cloudOnly: cloudOnlyProp = false, selection, }) {
20
+ var _a, _b, _c, _d, _e;
21
+ const cloudOnly = cloudOnlyProp || !!selection;
19
22
  const t = useT();
20
23
  const labels = React__default.useMemo(() => labelsProp !== null && labelsProp !== void 0 ? labelsProp : buildLLMTabLabels(t).providerModal, [labelsProp, t]);
21
24
  const [searchQuery, setSearchQuery] = React__default.useState('');
@@ -103,7 +106,7 @@ function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting,
103
106
  return localModelsForThisDevice().filter((m) => getProviderName(m.provider) === key &&
104
107
  m.name.toLowerCase().includes(searchQuery.toLowerCase()));
105
108
  }, [cloudOnly, isAvailable, llmProvider.name, searchQuery]);
106
- const switchProviderAllowed = canSwitchProvider(llms, llmProvider.name);
109
+ const switchProviderAllowed = !!selection || canSwitchProvider(llms !== null && llms !== void 0 ? llms : [], llmProvider.name);
107
110
  // Only an actual pull counts as "busy". A status refresh ('checking') must NOT
108
111
  // — otherwise a stale `activeModel` makes a row flash a progress bar every time
109
112
  // status is re-checked.
@@ -140,7 +143,8 @@ function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting,
140
143
  // provider ships models; for a local model it's the install state. Ranked by
141
144
  // state, not the transient download status, so rows don't jump mid-pull; a
142
145
  // stable sort keeps the original (catalog) order within each rank.
143
- const cloudRank = (llm, available) => isCloudActive(llm) ? 0 : available && switchProviderAllowed ? 1 : 2;
146
+ // A checklist keeps the catalog order: ticking must not reshuffle rows.
147
+ const cloudRank = (llm, available) => selection ? 0 : isCloudActive(llm) ? 0 : available && switchProviderAllowed ? 1 : 2;
144
148
  const localRank = (m) => {
145
149
  const s = statusFor(m);
146
150
  return s === 'selected' ? 0 : s === 'installed' ? 1 : 2;
@@ -209,7 +213,7 @@ function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting,
209
213
  setLocalSel((prev) => ({ ...prev, enabled: false }));
210
214
  window.dispatchEvent(new Event(LOCAL_LLM_CHANGED_EVENT));
211
215
  }
212
- onSelect(llmProvider.name, llmName);
216
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(llmProvider.name, llmName);
213
217
  };
214
218
  // Announce download lifecycle changes once (not every %) for screen readers.
215
219
  const activeLocal = LOCAL_MODELS.find((m) => sameModel(m.id, downloadingModel));
@@ -242,34 +246,39 @@ function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting,
242
246
  return;
243
247
  e.preventDefault();
244
248
  (_a = e.currentTarget) === null || _a === void 0 ? void 0 : _a.focus();
245
- }, children: [jsx(DialogDescription, { className: "sr-only", children: labels.description(llmProvider.name) }), jsx(DialogHeader, { children: jsx(DialogTitle, { className: "ibl-dialog-title", children: labels.title }) }), jsx("p", { className: "text-sm text-gray-600 [@media(max-height:480px)]:hidden", children: labels.helpText }), jsxs("div", { className: "relative", children: [jsx(Search, { className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-gray-400" }), jsx(Input, { placeholder: labels.searchPlaceholder, className: "py-6 pl-9", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), autoComplete: "off", disabled: isSelecting })] }), jsx("div", { className: "sr-only", "aria-live": "polite", role: "status", children: liveMessage }), jsx("div", { className: "grid max-h-[60vh] min-h-0 auto-rows-max grid-cols-1 gap-4 overflow-y-auto pr-2 sm:grid-cols-2 lg:grid-cols-3", children: sortedModels.map((item) => {
246
- var _a;
247
- if (item.kind === 'cloud') {
248
- const { llm, available: modelAvailable } = item;
249
- const isActive = isCloudActive(llm);
250
- const unavailableReason = modelAvailable ? undefined : modelUnavailableReason(llm);
251
- const isDisabled = !modelAvailable || isSelecting || isActive || !switchProviderAllowed;
252
- return (jsxs("button", { "data-model": llm.llm_name, "data-unavailable": modelAvailable ? 'false' : 'true', "data-availability-status": (_a = llm.availability) === null || _a === void 0 ? void 0 : _a.status, title: unavailableReason, disabled: isDisabled, onClick: () => {
253
- selectCloud(llm.llm_name);
254
- }, className: cn('flex cursor-pointer items-center gap-3 rounded-lg border border-gray-200 p-4 transition-colors', {
255
- // Matches the provider grid's inactive treatment: tinted
256
- // card, faded logo, full-strength label.
257
- 'cursor-not-allowed border-gray-100 bg-gray-50': isDisabled && !isActive,
258
- 'hover:border-blue-500 hover:bg-blue-50': !isDisabled,
259
- 'cursor-not-allowed border-blue-500 bg-blue-50': isActive,
260
- }), children: [jsx("span", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center overflow-hidden rounded-lg", children: jsx(LLMProviderLogo, { logo: llmProvider.logo, label: providerLabel, alt: labels.providerIconAlt(providerLabel), className: cn({
261
- // `grayscale` alone is a no-op on already-black marks,
262
- // so fade them as well — same rule as the provider grid.
263
- 'opacity-40 grayscale': isDisabled && !isActive,
264
- }) }) }), jsxs("span", { className: "flex min-w-0 flex-col text-left", children: [jsx("span", { className: "break-words text-sm font-medium text-gray-900", children: llmModelLabel(llm) }), unavailableReason && (jsx("span", { "aria-hidden": "true", className: "text-xs text-gray-500 pointer-fine:hidden", children: unavailableReason }))] })] }, `cloud-${llm.llm_name}`));
265
- }
266
- const m = item.model;
267
- const status = statusFor(m);
268
- return (jsx(LocalModelRow, { name: m.name, size: localModelDisplaySize(m), logo: llmProvider.logo, providerLabel: providerLabel, status: status, progress: sameModel(downloadingModel, m.id) ? downloadState.progress : 0, onActivate: () => activateLocal(m, status), labels: labels.localModel }, `local-${m.id}`));
269
- }) }), jsx(AlertDialog, { open: !!pendingModel, onOpenChange: (open) => {
249
+ }, children: [jsx(DialogDescription, { className: "sr-only", children: labels.description(llmProvider.name) }), jsx(DialogHeader, { children: jsx(DialogTitle, { className: "ibl-dialog-title", children: labels.title }) }), jsx("p", { className: "text-sm text-gray-600 [@media(max-height:480px)]:hidden", children: selection ? selection.labels.helpText : labels.helpText }), jsxs("div", { className: "relative", children: [jsx(Search, { className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-gray-400" }), jsx(Input, { placeholder: labels.searchPlaceholder, className: "py-6 pl-9", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), autoComplete: "off", disabled: isSelecting })] }), jsx("div", { className: "sr-only", "aria-live": "polite", role: "status", children: liveMessage }), jsxs("div", { className: "grid max-h-[60vh] min-h-0 auto-rows-max grid-cols-1 gap-4 overflow-y-auto pr-2 sm:grid-cols-2 lg:grid-cols-3", children: [selection && (jsxs(SelectionRow, { checked: selection.allSelected, onToggle: selection.toggleAll, className: "sm:col-span-2 lg:col-span-3", testId: `${selection.testIdPrefix}-allow-all-${llmProvider.name}`, logo: jsx(LLMProviderLogo, { logo: llmProvider.logo, label: providerLabel, alt: labels.providerIconAlt(providerLabel) }), children: [jsx("span", { className: "text-sm font-medium text-gray-900", children: selection.labels.allowAll }), jsx("span", { className: "text-xs text-gray-500", children: selection.labels.allowAllDetail })] })), sortedModels.map((item) => {
250
+ var _a;
251
+ if (item.kind === 'cloud' && selection) {
252
+ const { llm } = item;
253
+ return (jsx(SelectionRow, { checked: selection.isSelected(llm.llm_name), onToggle: () => selection.toggle(llm.llm_name), testId: `${selection.testIdPrefix}-model-${llmProvider.name}-${llm.llm_name}`, dataModel: llm.llm_name, logo: jsx(LLMProviderLogo, { logo: llmProvider.logo, label: providerLabel, alt: labels.providerIconAlt(providerLabel) }), children: jsx("span", { className: "break-words text-sm font-medium text-gray-900", children: llmModelLabel(llm) }) }, `cloud-${llm.llm_name}`));
254
+ }
255
+ if (item.kind === 'cloud') {
256
+ const { llm, available: modelAvailable } = item;
257
+ const isActive = isCloudActive(llm);
258
+ const unavailableReason = modelAvailable ? undefined : modelUnavailableReason(llm);
259
+ const isDisabled = !modelAvailable || isSelecting || isActive || !switchProviderAllowed;
260
+ return (jsxs("button", { "data-model": llm.llm_name, "data-unavailable": modelAvailable ? 'false' : 'true', "data-availability-status": (_a = llm.availability) === null || _a === void 0 ? void 0 : _a.status, title: unavailableReason, disabled: isDisabled, onClick: () => {
261
+ selectCloud(llm.llm_name);
262
+ }, className: cn('flex cursor-pointer items-center gap-3 rounded-lg border border-gray-200 p-4 transition-colors', {
263
+ // Matches the provider grid's inactive treatment: tinted
264
+ // card, faded logo, full-strength label.
265
+ 'cursor-not-allowed border-gray-100 bg-gray-50': isDisabled && !isActive,
266
+ 'hover:border-blue-500 hover:bg-blue-50': !isDisabled,
267
+ 'cursor-not-allowed border-blue-500 bg-blue-50': isActive,
268
+ }), children: [jsx("span", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center overflow-hidden rounded-lg", children: jsx(LLMProviderLogo, { logo: llmProvider.logo, label: providerLabel, alt: labels.providerIconAlt(providerLabel), className: cn({
269
+ // `grayscale` alone is a no-op on already-black marks,
270
+ // so fade them as well — same rule as the provider grid.
271
+ 'opacity-40 grayscale': isDisabled && !isActive,
272
+ }) }) }), jsxs("span", { className: "flex min-w-0 flex-col text-left", children: [jsx("span", { className: "break-words text-sm font-medium text-gray-900", children: llmModelLabel(llm) }), unavailableReason && (jsx("span", { "aria-hidden": "true", className: "text-xs text-gray-500 pointer-fine:hidden", children: unavailableReason }))] })] }, `cloud-${llm.llm_name}`));
273
+ }
274
+ const m = item.model;
275
+ const status = statusFor(m);
276
+ return (jsx(LocalModelRow, { name: m.name, size: localModelDisplaySize(m), logo: llmProvider.logo, providerLabel: providerLabel, status: status, progress: sameModel(downloadingModel, m.id) ? downloadState.progress : 0, onActivate: () => activateLocal(m, status), labels: labels.localModel }, `local-${m.id}`));
277
+ })] }), selection && (jsxs("div", { className: "flex items-center justify-between gap-3", children: [jsx("span", { className: "text-sm text-gray-600", children: selection.labels.selectedCount(((_b = llmProvider.chat_models) !== null && _b !== void 0 ? _b : []).filter((llm) => selection.isSelected(llm.llm_name))
278
+ .length, (_d = (_c = llmProvider.chat_models) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) }), jsx(Button, { type: "button", size: "sm", onClick: onClose, "data-testid": `${selection.testIdPrefix}-done`, className: "h-9 cursor-pointer bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: selection.labels.done })] })), jsx(AlertDialog, { open: !!pendingModel, onOpenChange: (open) => {
270
279
  if (!open)
271
280
  setPendingModel(null);
272
- }, children: jsxs(AlertDialogContent, { className: "w-[calc(100%-2rem)] rounded-lg", children: [jsxs(AlertDialogHeader, { children: [jsx(AlertDialogTitle, { children: labels.tooLargeTitle }), jsx(AlertDialogDescription, { children: labels.tooLargeDescription((_b = pendingModel === null || pendingModel === void 0 ? void 0 : pendingModel.name) !== null && _b !== void 0 ? _b : '', pendingModel ? localModelDisplaySize(pendingModel) : '') })] }), jsxs(AlertDialogFooter, { children: [jsx(AlertDialogCancel, { onClick: () => setPendingModel(null), children: labels.cancel }), jsx(AlertDialogAction, { onClick: () => {
281
+ }, children: jsxs(AlertDialogContent, { className: "w-[calc(100%-2rem)] rounded-lg", children: [jsxs(AlertDialogHeader, { children: [jsx(AlertDialogTitle, { children: labels.tooLargeTitle }), jsx(AlertDialogDescription, { children: labels.tooLargeDescription((_e = pendingModel === null || pendingModel === void 0 ? void 0 : pendingModel.name) !== null && _e !== void 0 ? _e : '', pendingModel ? localModelDisplaySize(pendingModel) : '') })] }), jsxs(AlertDialogFooter, { children: [jsx(AlertDialogCancel, { onClick: () => setPendingModel(null), children: labels.cancel }), jsx(AlertDialogAction, { onClick: () => {
273
282
  if (pendingModel) {
274
283
  setRequestedModel(pendingModel.id);
275
284
  startDownload(pendingModel.id);
@@ -280,6 +289,11 @@ function LLMProviderModal({ isOpen, onClose, onSelect, llmProvider, isSelecting,
280
289
  setBusyDownloadName(null);
281
290
  }, children: jsxs(AlertDialogContent, { className: "w-[calc(100%-2rem)] rounded-lg", children: [jsxs(AlertDialogHeader, { children: [jsx(AlertDialogTitle, { children: labels.alreadyDownloadingTitle }), jsx(AlertDialogDescription, { children: labels.alreadyDownloadingDescription(busyDownloadName !== null && busyDownloadName !== void 0 ? busyDownloadName : '') })] }), jsx(AlertDialogFooter, { children: jsx(AlertDialogAction, { onClick: () => setBusyDownloadName(null), children: labels.gotIt }) })] }) })] }) }));
282
291
  }
292
+ function SelectionRow({ checked, onToggle, logo, children, className, testId, dataModel, }) {
293
+ return (jsxs("button", { type: "button", role: "checkbox", "aria-checked": checked, onClick: onToggle, "data-testid": testId, "data-model": dataModel, className: cn('flex cursor-pointer items-center gap-3 rounded-lg border p-4 text-left transition-colors', checked
294
+ ? 'border-blue-500 bg-blue-50'
295
+ : 'border-gray-200 hover:border-blue-500 hover:bg-blue-50', className), children: [jsx("span", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center overflow-hidden rounded-lg", children: logo }), jsx("span", { className: "flex min-w-0 flex-col", children: children }), jsx("span", { "aria-hidden": "true", className: cn('ml-auto flex h-4 w-4 flex-shrink-0 items-center justify-center rounded border', checked ? 'border-blue-600 bg-blue-600 text-white' : 'border-gray-300 bg-white'), children: checked && jsx(Check, { className: "h-3.5 w-3.5" }) })] }));
296
+ }
283
297
 
284
298
  export { LLMProviderModal };
285
299
  //# sourceMappingURL=llm-provider-modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider-modal.js","sources":["../../../../../../../../../../src/components/modals/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.tsx"],"sourcesContent":[null],"names":["React","_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"llm-provider-modal.js","sources":["../../../../../../../../../../src/components/modals/edit-mentor-modal/tabs/llm-tab/llm-provider-modal.tsx"],"sourcesContent":[null],"names":["React","_jsx","_jsxs"],"mappings":"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"}