@xopcai/xopc 0.0.111 → 0.0.113

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 (443) hide show
  1. package/dist/browser-ext/icons/icon-128.png +0 -0
  2. package/dist/browser-ext/icons/icon-16.png +0 -0
  3. package/dist/browser-ext/icons/icon-32.png +0 -0
  4. package/dist/browser-ext/icons/icon-48.png +0 -0
  5. package/dist/browser-ext/manifest.json +1 -1
  6. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  7. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  8. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  9. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  10. package/dist/extensions/telegram/src/plugin.js +1 -1
  11. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  12. package/dist/extensions/telegram/src/update-offset-store.js +1 -1
  13. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  14. package/dist/extensions/telegram/xopc.extension.json +1 -1
  15. package/dist/extensions/weixin/src/api/api.js +2 -2
  16. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  17. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  18. package/dist/extensions/weixin/src/delivery-to.d.ts +3 -3
  19. package/dist/extensions/weixin/src/delivery-to.js.map +1 -1
  20. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  21. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  22. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  23. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  24. package/dist/extensions/weixin/src/plugin.js +1 -1
  25. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  26. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  27. package/dist/gateway/static/root/apple-touch-icon.png +0 -0
  28. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-zlx9l5Yp.js → agent-avatar-dicebear-CBlklyNr.js} +1 -1
  29. package/dist/gateway/static/root/assets/agent-browser-settings-page-rGbKc2Hh.js +6 -0
  30. package/dist/gateway/static/root/assets/{agent-defaults-tabbed-page-Bz7JWjRM.js → agent-defaults-tabbed-page-CtwVbjOA.js} +1 -1
  31. package/dist/gateway/static/root/assets/agents-CCBmGcwc.js +71 -0
  32. package/dist/gateway/static/root/assets/{app-management-settings-panel-DaQwdeCq.js → app-management-settings-panel-28E_WfMe.js} +1 -1
  33. package/dist/gateway/static/root/assets/{appearance-settings-D2zv6r3P.js → appearance-settings-Do1z0XgJ.js} +1 -1
  34. package/dist/gateway/static/root/assets/{apps-page-BIppe_jj.js → apps-page-xwCsJS15.js} +1 -1
  35. package/dist/gateway/static/root/assets/{archive-plugin-DEmu8eH7.js → archive-plugin-BAFlsov_.js} +1 -1
  36. package/dist/gateway/static/root/assets/{attachment-load-B98lJoN5.js → attachment-load-V3qGPC3x.js} +1 -1
  37. package/dist/gateway/static/root/assets/{binary-plugins-CL9QKmyo.js → binary-plugins-DT8NvA6W.js} +1 -1
  38. package/dist/gateway/static/root/assets/{block-editor-BOAhMAhT.js → block-editor-CdLMEcHd.js} +1 -1
  39. package/dist/gateway/static/root/assets/{channels-settings-Br8iRnXp.js → channels-settings-C044DcYk.js} +1 -1
  40. package/dist/gateway/static/root/assets/{config-api-0o1WYdz2.js → config-api-Bf5mjpu7.js} +1 -1
  41. package/dist/gateway/static/root/assets/config-reload-event-Bjh2zoKp.js +1 -0
  42. package/dist/gateway/static/root/assets/connectors-settings-8VEWUOTj.js +2 -0
  43. package/dist/gateway/static/root/assets/cron-api--pAB_rps.js +1 -0
  44. package/dist/gateway/static/root/assets/cron-page-DqmNGNOy.js +3 -0
  45. package/dist/gateway/static/root/assets/dreaming-settings-6UZE1FSK.js +1 -0
  46. package/dist/gateway/static/root/assets/{extension-debug-page-Cjx6pZVz.js → extension-debug-page-BGhE7msg.js} +1 -1
  47. package/dist/gateway/static/root/assets/{extension-page-BSPNL90V.js → extension-page-CvpI45WG.js} +1 -1
  48. package/dist/gateway/static/root/assets/extension-settings-page-DAmR5FUe.js +1 -0
  49. package/dist/gateway/static/root/assets/{fetch-Bs7in_4F.js → fetch-NZmjSXLl.js} +1 -1
  50. package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +2 -0
  51. package/dist/gateway/static/root/assets/{format-interval-label-CftJ5uXu.js → format-interval-label-qhth3BMV.js} +1 -1
  52. package/dist/gateway/static/root/assets/{gateway-config-api-Clfck-hW.js → gateway-config-api-CaXBt-9R.js} +1 -1
  53. package/dist/gateway/static/root/assets/gateway-settings-DphpbLBc.js +1 -0
  54. package/dist/gateway/static/root/assets/{gateway-startup-retry-BkjVJc38.js → gateway-startup-retry-Be1omjh3.js} +1 -1
  55. package/dist/gateway/static/root/assets/{goal-detail-page-kqJue0sE.js → goal-detail-page-bv0VRDaf.js} +1 -1
  56. package/dist/gateway/static/root/assets/goals-page-1Ywnt4Cb.js +2 -0
  57. package/dist/gateway/static/root/assets/{goals-settings-CJnzNSDo.js → goals-settings-ceEBjnfc.js} +1 -1
  58. package/dist/gateway/static/root/assets/{heartbeat-config-api-Cp7CPuIn.js → heartbeat-config-api-BzO6G4fD.js} +1 -1
  59. package/dist/gateway/static/root/assets/{heartbeat-settings-ifSI1Wbh.js → heartbeat-settings-DCST9-du.js} +1 -1
  60. package/dist/gateway/static/root/assets/index-Cxm6xsps.js +122 -0
  61. package/dist/gateway/static/root/assets/index-b_R4tKqt.css +1 -0
  62. package/dist/gateway/static/root/assets/interval-presets-DJmshV8n.js +1 -0
  63. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings--MI1rYl7.js → keyboard-shortcuts-settings-9AUUlQ5Q.js} +1 -1
  64. package/dist/gateway/static/root/assets/{logs-page-BwrVNlyW.js → logs-page-B_wrxhee.js} +1 -1
  65. package/dist/gateway/static/root/assets/{markdown-split-B_oc9lJe.js → markdown-split-CYYELqAr.js} +1 -1
  66. package/dist/gateway/static/root/assets/{media-plugins-DLPvB5H3.js → media-plugins-BEcMR2M8.js} +1 -1
  67. package/dist/gateway/static/root/assets/messages-CkT-lcgP.js +3 -0
  68. package/dist/gateway/static/root/assets/models-hub-panel-D0JDSbNu.js +2 -0
  69. package/dist/gateway/static/root/assets/note-detail-page-DpFV-EO6.js +2 -0
  70. package/dist/gateway/static/root/assets/{note-image-lightbox-rSqAgOi9.js → note-image-lightbox-DNAoPcmm.js} +1 -1
  71. package/dist/gateway/static/root/assets/{notes-page-C9ACGEty.js → notes-page-CdkjTch8.js} +1 -1
  72. package/dist/gateway/static/root/assets/{preview-open-alternatives-Bw_N2oZi.js → preview-open-alternatives-BPLz0AIv.js} +1 -1
  73. package/dist/gateway/static/root/assets/{remote-access-hub-BhcWIKuM.js → remote-access-hub-DSYVAi96.js} +1 -1
  74. package/dist/gateway/static/root/assets/{save-bar-controls-CNP2jmw0.js → save-bar-controls-CrWwWRVK.js} +1 -1
  75. package/dist/gateway/static/root/assets/schedule-field-CF2sadvN.js +1 -0
  76. package/dist/gateway/static/root/assets/{schema-form-CDPzua9q.js → schema-form-Di5cKjYE.js} +1 -1
  77. package/dist/gateway/static/root/assets/{sessions-page-DzkpSDZr.js → sessions-page-CenkcVjF.js} +1 -1
  78. package/dist/gateway/static/root/assets/settings-advanced-gate-D9sva86V.js +1 -0
  79. package/dist/gateway/static/root/assets/{settings-collapsible-section-C9bff85B.js → settings-collapsible-section-Chh282jW.js} +1 -1
  80. package/dist/gateway/static/root/assets/settings-form-section-Dq-83cQd.js +1 -0
  81. package/dist/gateway/static/root/assets/{settings-page-DWK4Zo7s.js → settings-page-DL35U0x0.js} +1 -1
  82. package/dist/gateway/static/root/assets/setup-status-panel-Ctwbp9Er.js +1 -0
  83. package/dist/gateway/static/root/assets/{share-preview-page-DnutoY_S.js → share-preview-page-0FXYnSUA.js} +1 -1
  84. package/dist/gateway/static/root/assets/{shares-settings-6oRgJMpn.js → shares-settings-DIM3JNsr.js} +1 -1
  85. package/dist/gateway/static/root/assets/skill-reload-api-DAlNaNzL.js +1 -0
  86. package/dist/gateway/static/root/assets/skills-page-CLrHVzAt.js +2 -0
  87. package/dist/gateway/static/root/assets/{system-settings-panel-qP1JDtDd.js → system-settings-panel-W1pTcojB.js} +1 -1
  88. package/dist/gateway/static/root/assets/use-agent-defaults-form-BVRvkK7m.js +1 -0
  89. package/dist/gateway/static/root/assets/{use-channel-catalog-C4mg1hjD.js → use-channel-catalog-CgJibfMM.js} +1 -1
  90. package/dist/gateway/static/root/assets/{use-settings-tab-guard-F6C0mpJt.js → use-settings-tab-guard-Bw_qkRQE.js} +1 -1
  91. package/dist/gateway/static/root/assets/{voice-api-key-field-BnDDb6qO.js → voice-api-key-field-vYAO71Gn.js} +1 -1
  92. package/dist/gateway/static/root/assets/{voice-player-store-B2EwIhtY.js → voice-player-store-C7lziaAx.js} +1 -1
  93. package/dist/gateway/static/root/assets/{workflow-page.utils-CRB7WX9l.js → workflow-page.utils-sgHjOXOm.js} +1 -1
  94. package/dist/gateway/static/root/assets/{workflows-page-2Fptr0je.js → workflows-page-DYyOTmFx.js} +1 -1
  95. package/dist/gateway/static/root/favicon-16x16.png +0 -0
  96. package/dist/gateway/static/root/favicon-32x32.png +0 -0
  97. package/dist/gateway/static/root/favicon-icon.svg +1 -0
  98. package/dist/gateway/static/root/favicon.ico +0 -0
  99. package/dist/gateway/static/root/favicon.png +0 -0
  100. package/dist/gateway/static/root/favicon.svg +24 -15
  101. package/dist/gateway/static/root/index.html +11 -10
  102. package/dist/gateway/static/root/logo-dark.svg +23 -15
  103. package/dist/gateway/static/root/logo.svg +23 -16
  104. package/dist/package.js +1 -1
  105. package/dist/src/agent/agent-manager.d.ts +28 -2
  106. package/dist/src/agent/agent-manager.js +82 -11
  107. package/dist/src/agent/agent-manager.js.map +1 -1
  108. package/dist/src/agent/agent-scope.js +1 -1
  109. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  110. package/dist/src/agent/context/workspace-seed.js +2 -2
  111. package/dist/src/agent/context/workspace-state.js +1 -1
  112. package/dist/src/agent/context/workspace.js +1 -1
  113. package/dist/src/agent/goals/goal-locale.js +2 -2
  114. package/dist/src/agent/goals/persistent-goal-service.js +1 -1
  115. package/dist/src/agent/goals/post-turn.js +3 -3
  116. package/dist/src/agent/image/load-image-media.js +2 -2
  117. package/dist/src/agent/ipc/inbox.js +3 -3
  118. package/dist/src/agent/ipc/socket.js +1 -1
  119. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  120. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  121. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  122. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  123. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  124. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  125. package/dist/src/agent/memory/dreaming/events.js +1 -1
  126. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  127. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  128. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  129. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  130. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  131. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  132. package/dist/src/agent/memory/memory-flush.js +1 -1
  133. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  134. package/dist/src/agent/messaging/command-handler.d.ts +3 -0
  135. package/dist/src/agent/messaging/command-handler.js +5 -0
  136. package/dist/src/agent/messaging/command-handler.js.map +1 -1
  137. package/dist/src/agent/models/manager.js +1 -1
  138. package/dist/src/agent/prompt/memory/index.js +1 -1
  139. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  140. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  141. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  142. package/dist/src/agent/sandbox/path-policy.js +2 -2
  143. package/dist/src/agent/service/process-direct-streaming.js +9 -4
  144. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  145. package/dist/src/agent/service/reconcile-dreaming-cron.js +8 -5
  146. package/dist/src/agent/service/reconcile-dreaming-cron.js.map +1 -1
  147. package/dist/src/agent/service.d.ts +2 -1
  148. package/dist/src/agent/service.js +10 -5
  149. package/dist/src/agent/service.js.map +1 -1
  150. package/dist/src/agent/service.types.d.ts +4 -0
  151. package/dist/src/agent/session/session-config-service.d.ts +8 -0
  152. package/dist/src/agent/session/session-config-service.js +20 -0
  153. package/dist/src/agent/session/session-config-service.js.map +1 -1
  154. package/dist/src/agent/session/session-inspector.js +1 -1
  155. package/dist/src/agent/skills/config.js +2 -2
  156. package/dist/src/agent/skills/filesystem-watcher.d.ts +19 -0
  157. package/dist/src/agent/skills/filesystem-watcher.js +182 -0
  158. package/dist/src/agent/skills/filesystem-watcher.js.map +1 -0
  159. package/dist/src/agent/skills/hub-hash.js +2 -2
  160. package/dist/src/agent/skills/hub-lock.js +1 -1
  161. package/dist/src/agent/skills/hub-pull.js +30 -36
  162. package/dist/src/agent/skills/hub-pull.js.map +1 -1
  163. package/dist/src/agent/skills/index.js +82 -38
  164. package/dist/src/agent/skills/index.js.map +1 -1
  165. package/dist/src/agent/skills/installer.js +2 -2
  166. package/dist/src/agent/skills/managed-store.d.ts +19 -0
  167. package/dist/src/agent/skills/managed-store.js +97 -38
  168. package/dist/src/agent/skills/managed-store.js.map +1 -1
  169. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  170. package/dist/src/agent/skills/skill-manager.d.ts +16 -6
  171. package/dist/src/agent/skills/skill-manager.js +79 -24
  172. package/dist/src/agent/skills/skill-manager.js.map +1 -1
  173. package/dist/src/agent/skills/skill-view-path.js +1 -1
  174. package/dist/src/agent/skills/test-framework.js +1 -1
  175. package/dist/src/agent/skills/types.d.ts +11 -0
  176. package/dist/src/agent/skills/watcher.js +1 -1
  177. package/dist/src/agent/starter-agents.js +1 -1
  178. package/dist/src/agent/tools/cronjob-tool.d.ts +6 -3
  179. package/dist/src/agent/tools/cronjob-tool.js +58 -23
  180. package/dist/src/agent/tools/cronjob-tool.js.map +1 -1
  181. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  182. package/dist/src/agent/tools/factory.js +1 -1
  183. package/dist/src/agent/tools/find.js +1 -1
  184. package/dist/src/agent/tools/grep.js +1 -1
  185. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  186. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  187. package/dist/src/agent/tools/workflow-tool.js +1 -1
  188. package/dist/src/agent/workflow/catalog.js +1 -1
  189. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -0
  190. package/dist/src/agent/workspace-runtime/registry.js +7 -0
  191. package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
  192. package/dist/src/ai-assist/text-assist.d.ts +42 -0
  193. package/dist/src/ai-assist/text-assist.js +252 -0
  194. package/dist/src/ai-assist/text-assist.js.map +1 -0
  195. package/dist/src/auth/credentials.js +2 -2
  196. package/dist/src/auth/profiles/store.js +2 -2
  197. package/dist/src/auth/sync-provider-auth.js +1 -1
  198. package/dist/src/browser/cache-dir-policy.js +1 -1
  199. package/dist/src/browser/cdp-local-launcher.js +2 -2
  200. package/dist/src/browser/providers/browser-ext-install.js +4 -4
  201. package/dist/src/browser/providers/cloakbrowser.js +5 -5
  202. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  203. package/dist/src/browser/stealth.js +1 -1
  204. package/dist/src/channels/outbound/persist-store.js +1 -1
  205. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  206. package/dist/src/channels/pairing/pairing-store.js +2 -2
  207. package/dist/src/channels/plugins/types.adapters.d.ts +2 -2
  208. package/dist/src/chat-commands/agent-edit.js +2 -2
  209. package/dist/src/chat-commands/builtins/config.js +3 -3
  210. package/dist/src/chat-commands/builtins/system.js +11 -4
  211. package/dist/src/chat-commands/builtins/system.js.map +1 -1
  212. package/dist/src/chat-commands/context.d.ts +3 -0
  213. package/dist/src/chat-commands/context.js +7 -0
  214. package/dist/src/chat-commands/context.js.map +1 -1
  215. package/dist/src/chat-commands/types.d.ts +2 -0
  216. package/dist/src/cli/commands/config.js +1 -1
  217. package/dist/src/cli/commands/cron.js +55 -16
  218. package/dist/src/cli/commands/cron.js.map +1 -1
  219. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  220. package/dist/src/cli/commands/doctor/checks/cron-health.js +2 -83
  221. package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -1
  222. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  223. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  224. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  225. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  226. package/dist/src/cli/commands/extension-create.js +1 -1
  227. package/dist/src/cli/commands/extension-dev.js +2 -2
  228. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  229. package/dist/src/cli/commands/extension-pack.js +2 -2
  230. package/dist/src/cli/commands/extension.js +3 -3
  231. package/dist/src/cli/commands/gateway/logs.js +1 -1
  232. package/dist/src/cli/commands/image.js +1 -1
  233. package/dist/src/cli/commands/init.js +2 -2
  234. package/dist/src/cli/commands/models.js +1 -1
  235. package/dist/src/cli/commands/skills-test.js +1 -1
  236. package/dist/src/cli/templates.js +1 -1
  237. package/dist/src/cli/utils/gateway-client.js +1 -1
  238. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  239. package/dist/src/config/agent-profile.js +1 -1
  240. package/dist/src/config/agent-typed-models.js +1 -1
  241. package/dist/src/config/gateway-bind.js +1 -1
  242. package/dist/src/config/index.js +7 -7
  243. package/dist/src/config/loader.js +4 -4
  244. package/dist/src/config/models-json.js +2 -2
  245. package/dist/src/config/paths-state.js +1 -1
  246. package/dist/src/config/paths.js +1 -1
  247. package/dist/src/config/profile.js +1 -1
  248. package/dist/src/config/reload.js +1 -1
  249. package/dist/src/config/schema.d.ts +0 -2
  250. package/dist/src/config/schema.js +0 -3
  251. package/dist/src/config/schema.js.map +1 -1
  252. package/dist/src/config/web-patch.d.ts +0 -1
  253. package/dist/src/config/web-patch.js +0 -2
  254. package/dist/src/config/web-patch.js.map +1 -1
  255. package/dist/src/config/workspace-path.js +1 -1
  256. package/dist/src/cron/executor.js +102 -71
  257. package/dist/src/cron/executor.js.map +1 -1
  258. package/dist/src/cron/index.d.ts +1 -1
  259. package/dist/src/cron/index.js +3 -3
  260. package/dist/src/cron/run-log-store.d.ts +1 -0
  261. package/dist/src/cron/run-log-store.js +4 -2
  262. package/dist/src/cron/run-log-store.js.map +1 -1
  263. package/dist/src/cron/schedule.d.ts +10 -0
  264. package/dist/src/cron/schedule.js +85 -0
  265. package/dist/src/cron/schedule.js.map +1 -0
  266. package/dist/src/cron/service.d.ts +34 -77
  267. package/dist/src/cron/service.js +327 -264
  268. package/dist/src/cron/service.js.map +1 -1
  269. package/dist/src/cron/types.d.ts +80 -50
  270. package/dist/src/cron/validation.d.ts +358 -90
  271. package/dist/src/cron/validation.js +152 -132
  272. package/dist/src/cron/validation.js.map +1 -1
  273. package/dist/src/cron/workflow-run-completion.js +1 -1
  274. package/dist/src/daemon/constants.js +1 -1
  275. package/dist/src/daemon/install-plan.js +2 -2
  276. package/dist/src/daemon/launchd.js +2 -2
  277. package/dist/src/daemon/schtasks.js +2 -2
  278. package/dist/src/daemon/systemd.js +2 -2
  279. package/dist/src/extensions/bundle-mcp.js +1 -1
  280. package/dist/src/extensions/discover-extensions.js +2 -2
  281. package/dist/src/extensions/health.js +1 -1
  282. package/dist/src/extensions/install.js +2 -2
  283. package/dist/src/extensions/loader.js +2 -2
  284. package/dist/src/extensions/lockfile.js +3 -3
  285. package/dist/src/extensions/security.js +1 -1
  286. package/dist/src/extensions/update.js +2 -2
  287. package/dist/src/gateway/agents-admin.js +2 -2
  288. package/dist/src/gateway/chat-stream/mapper.d.ts +1 -0
  289. package/dist/src/gateway/chat-stream/mapper.js +6 -2
  290. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  291. package/dist/src/gateway/chat-stream/protocol.d.ts +2 -0
  292. package/dist/src/gateway/file-path-classifier.js +2 -2
  293. package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -1
  294. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  295. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  296. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  297. package/dist/src/gateway/hono/oauth-async.js +1 -1
  298. package/dist/src/gateway/hono/routes/agents.js +1 -1
  299. package/dist/src/gateway/hono/routes/ai-assist.d.ts +3 -0
  300. package/dist/src/gateway/hono/routes/ai-assist.js +66 -0
  301. package/dist/src/gateway/hono/routes/ai-assist.js.map +1 -0
  302. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  303. package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
  304. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  305. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  306. package/dist/src/gateway/hono/routes/cron.js +24 -5
  307. package/dist/src/gateway/hono/routes/cron.js.map +1 -1
  308. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  309. package/dist/src/gateway/hono/routes/home.js +5 -3
  310. package/dist/src/gateway/hono/routes/home.js.map +1 -1
  311. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  312. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  313. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  314. package/dist/src/gateway/hono/routes/models.js +1 -1
  315. package/dist/src/gateway/hono/routes/shares.js +1 -1
  316. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  317. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  318. package/dist/src/gateway/lock.js +3 -3
  319. package/dist/src/gateway/ports.js +1 -1
  320. package/dist/src/gateway/service/agent-runner.js +2 -2
  321. package/dist/src/gateway/service/config-coordinator.js +1 -1
  322. package/dist/src/gateway/service/marketplace-service.d.ts +22 -10
  323. package/dist/src/gateway/service/marketplace-service.js +46 -5
  324. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  325. package/dist/src/gateway/service.js +11 -5
  326. package/dist/src/gateway/service.js.map +1 -1
  327. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  328. package/dist/src/goals/goal-notifications.js +1 -1
  329. package/dist/src/goals/goal-workflow-judge.js +3 -3
  330. package/dist/src/i18n/goals-bundle.js +1 -1
  331. package/dist/src/i18n/index.js +1 -1
  332. package/dist/src/i18n/share-tool-bundle.js +2 -2
  333. package/dist/src/infra/brew.js +1 -1
  334. package/dist/src/infra/package-json.js +1 -1
  335. package/dist/src/infra/package-update-steps.js +1 -1
  336. package/dist/src/infra/path-env.js +2 -2
  337. package/dist/src/infra/restart.js +1 -1
  338. package/dist/src/infra/stable-node-path.js +1 -1
  339. package/dist/src/infra/update-check.js +1 -1
  340. package/dist/src/infra/update-global.js +1 -1
  341. package/dist/src/infra/update-lock.js +2 -2
  342. package/dist/src/infra/update-restart.js +1 -1
  343. package/dist/src/infra/update-runner.js +1 -1
  344. package/dist/src/infra/update-startup.js +1 -1
  345. package/dist/src/infra/write-file-atomic.js +2 -2
  346. package/dist/src/media/store.js +1 -1
  347. package/dist/src/notes/agent-context.js +1 -1
  348. package/dist/src/notes/service.js +1 -1
  349. package/dist/src/notes/store.js +2 -2
  350. package/dist/src/project-trust/trust-store.js +2 -2
  351. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  352. package/dist/src/providers/index.js +1 -1
  353. package/dist/src/providers/model-registry.js +4 -4
  354. package/dist/src/session/init-session-turn.js +2 -2
  355. package/dist/src/session/resolve-session.js +3 -3
  356. package/dist/src/session/session-title.js +2 -2
  357. package/dist/src/session/store-reader.d.ts +5 -0
  358. package/dist/src/session/store-reader.js +1 -0
  359. package/dist/src/session/store.js +1 -1
  360. package/dist/src/share/share-auto.js +2 -2
  361. package/dist/src/share/share-store.js +3 -3
  362. package/dist/src/share/share-thumbnail.js +2 -2
  363. package/dist/src/share/share-zip.js +1 -1
  364. package/dist/src/share/site-share-store.js +3 -3
  365. package/dist/src/share/site-static-serve.js +1 -1
  366. package/dist/src/storage/sqlite/connection.js +1 -1
  367. package/dist/src/storage/sqlite/cron-job-repository.d.ts +6 -0
  368. package/dist/src/storage/sqlite/cron-job-repository.js +70 -0
  369. package/dist/src/storage/sqlite/cron-job-repository.js.map +1 -0
  370. package/dist/src/storage/sqlite/cron-run-repository.js +0 -1
  371. package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -1
  372. package/dist/src/storage/sqlite/index.d.ts +1 -0
  373. package/dist/src/storage/sqlite/index.js +2 -1
  374. package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
  375. package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +24 -0
  376. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  377. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  378. package/dist/src/storage/sqlite/migrations/runner.js +4 -4
  379. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  380. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  381. package/dist/src/storage/sqlite/schema.js +2 -2
  382. package/dist/src/storage/sqlite/schema.sql +25 -0
  383. package/dist/src/tui/clipboard-image.js +3 -3
  384. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  385. package/dist/src/tui/theme-manager.js +1 -1
  386. package/dist/src/tui/tui-command-formatters.js +4 -4
  387. package/dist/src/tui/tui-commands.js +2 -2
  388. package/dist/src/tui/tui-keybindings-file.js +1 -1
  389. package/dist/src/tui/tui-scoped-models.js +2 -2
  390. package/dist/src/tui/tui-settings.js +1 -1
  391. package/dist/src/tui/tui-startup-resources.js +1 -1
  392. package/dist/src/tui/tui.js +6 -6
  393. package/dist/src/tunnel/frpc-binary.js +4 -4
  394. package/dist/src/tunnel/frpc-config.js +1 -1
  395. package/dist/src/tunnel/frpc-extract.js +1 -1
  396. package/dist/src/tunnel/tunnel-state.js +1 -1
  397. package/dist/src/utils/logger/audit.js +1 -1
  398. package/dist/src/utils/logger/log-store.js +1 -1
  399. package/dist/src/utils/logger/rotation.js +1 -1
  400. package/dist/src/utils/logger/streams.js +1 -1
  401. package/dist/src/voice/tts/audio.js +1 -1
  402. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  403. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  404. package/dist/src/workflows/engine/projector.js +23 -14
  405. package/dist/src/workflows/engine/projector.js.map +1 -1
  406. package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
  407. package/dist/src/workflows/engine/workflow-engine.js +36 -0
  408. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  409. package/dist/src/workflows/index.js +1 -1
  410. package/dist/src/workflows/service/workflow-run-service.js +2 -2
  411. package/dist/src/workflows/service/workflow-session-bridge.js +2 -2
  412. package/dist/src/workflows/store/event-store.js +1 -1
  413. package/dist/src/workflows/store/run-store.js +1 -1
  414. package/package.json +2 -3
  415. package/dist/gateway/static/root/assets/agent-browser-settings-page-B-0zGjt8.js +0 -6
  416. package/dist/gateway/static/root/assets/agents-DwDnJlXT.js +0 -71
  417. package/dist/gateway/static/root/assets/connectors-settings-DDvHo9in.js +0 -2
  418. package/dist/gateway/static/root/assets/cron-api-Dj_UZKST.js +0 -1
  419. package/dist/gateway/static/root/assets/cron-page-Dv7GII9G.js +0 -1
  420. package/dist/gateway/static/root/assets/cron-schedule-picker-DH10KgD6.js +0 -1
  421. package/dist/gateway/static/root/assets/dreaming-settings-L2rgZDQl.js +0 -1
  422. package/dist/gateway/static/root/assets/extension-settings-page-m_UQYkVc.js +0 -1
  423. package/dist/gateway/static/root/assets/gateway-settings-CS177xni.js +0 -1
  424. package/dist/gateway/static/root/assets/goals-page-C0FujUB5.js +0 -2
  425. package/dist/gateway/static/root/assets/index-COkF54xv.js +0 -121
  426. package/dist/gateway/static/root/assets/index-DIaSNGEO.css +0 -1
  427. package/dist/gateway/static/root/assets/interval-presets-B29Ss_2y.js +0 -2
  428. package/dist/gateway/static/root/assets/messages-Csef1aW7.js +0 -3
  429. package/dist/gateway/static/root/assets/models-hub-panel-DHGiTIvf.js +0 -2
  430. package/dist/gateway/static/root/assets/note-detail-page-BM7zlDiT.js +0 -2
  431. package/dist/gateway/static/root/assets/schedule-field-BPAWui3P.js +0 -1
  432. package/dist/gateway/static/root/assets/schedule-summary-B-hdSRdR.js +0 -1
  433. package/dist/gateway/static/root/assets/settings-advanced-gate-BYS-rpzn.js +0 -1
  434. package/dist/gateway/static/root/assets/settings-form-section-BsrK7TBF.js +0 -1
  435. package/dist/gateway/static/root/assets/setup-status-panel-DJiksNu4.js +0 -1
  436. package/dist/gateway/static/root/assets/skill-reload-api-CU9i0nJV.js +0 -1
  437. package/dist/gateway/static/root/assets/skills-page-ERbdWENm.js +0 -2
  438. package/dist/gateway/static/root/assets/use-agent-defaults-form-D3FGVLZb.js +0 -1
  439. package/dist/gateway/static/root/favicon-16.png +0 -0
  440. package/dist/gateway/static/root/favicon-32.png +0 -0
  441. package/dist/src/cron/persistence.d.ts +0 -62
  442. package/dist/src/cron/persistence.js +0 -188
  443. package/dist/src/cron/persistence.js.map +0 -1
@@ -1,71 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-Csef1aW7.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{i as s}from"./theme-store-CD2wtgZV.js";import{c}from"./fetch-Bs7in_4F.js";import{i as l}from"./vendor-swr-BIWyz7Rc.js";import{$n as u,$r as d,An as f,Bo as p,Bt as m,Da as h,Di as g,Ds as _,Ea as v,Es as y,Fi as b,Fn as x,Ft as S,G as C,Gt as w,Hi as T,In as E,Io as D,It as O,Jn as k,Jr as A,Ko as j,Kr as M,Kt as N,Li as P,Lt as F,Ma as I,Mi as L,Mn as R,Nn as ee,Oi as z,Oo as te,Pn as ne,Pt as re,Qn as ie,Qr as B,Ri as V,Rt as ae,Ss as oe,To as se,Ts as ce,U as le,Ua as ue,Ut as de,Vi as fe,Vt as pe,W as H,Wt as me,Xn as U,Xr as he,Yn as ge,Yr as _e,Zn as W,Zr as ve,_n as ye,ba as G,bi as be,br as xe,bs as Se,ds as Ce,ei as K,eo as q,er as we,gn as Te,ii as Ee,ji as De,jn as Oe,ki as J,n as ke,ni as Ae,nr as je,oo as Me,pa as Ne,qr as Pe,qt as Fe,ra as Ie,ri as Le,rr as Re,t as ze,ta as Be,ti as Ve,tr as He,ui as Y,uo as Ue,vn as We,wa as Ge,xi as X,zn as Ke,zt as Z}from"./index-COkF54xv.js";import{t as qe}from"./markdown-editor-AssmZFx4.js";import{n as Je,t as Ye}from"./settings-form-section-BsrK7TBF.js";import{n as Xe}from"./agent-avatar-dicebear-zlx9l5Yp.js";import{a as Ze,c as Qe,n as $e,o as et,s as tt}from"./config-api-0o1WYdz2.js";import{AgentBrowserSettingsPage as nt}from"./agent-browser-settings-page-B-0zGjt8.js";import{AgentDefaultsTabbedPage as rt,a as it,i as at,n as ot,o as st,r as ct,t as lt}from"./agent-defaults-tabbed-page-Bz7JWjRM.js";import{i as ut,l as dt,m as ft,n as pt,u as mt,y as ht}from"./cron-api-Dj_UZKST.js";import{t as gt}from"./schedule-summary-B-hdSRdR.js";import{t as _t}from"./cron-dreaming-jobs-nCMWCf0p.js";var vt=n(),Q=r();function yt(e){let t=(0,vt.c)(40),{open:n,onOpenChange:r,busy:a,deletePurge:o,deleteTarget:s,deleteConfirmText:c,onDeleteConfirmTextChange:l,onConfirm:u,onCancel:f,a:p}=e,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Q.jsx)(he,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),t[0]=m):m=t[0];let h;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(h=i(`fixed left-1/2 top-1/2 z-[81] w-[min(100%-2rem,28rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-panel p-4 shadow-popover`,`dark:border-edge`),t[1]=h):h=t[1];let g=o?p.purgeDisk:p.removeFromConfig,_;t[2]===g?_=t[3]:(_=(0,Q.jsx)(d,{className:`text-base font-semibold text-fg`,children:g}),t[2]=g,t[3]=_);let v=o?p.confirmDeletePurge:p.confirmDelete,y;t[4]===v?y=t[5]:(y=(0,Q.jsx)(_e,{className:`mt-2 whitespace-pre-wrap text-sm leading-relaxed text-fg-muted`,children:v}),t[4]=v,t[5]=y);let b;t[6]!==p.purgeConfirmHint||t[7]!==p.purgeConfirmLabel||t[8]!==p.purgeConfirmPlaceholder||t[9]!==c||t[10]!==o||t[11]!==s||t[12]!==l?(b=o&&s?(0,Q.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,Q.jsx)(`label`,{className:`mb-2 block text-sm font-medium text-fg`,htmlFor:`agent-delete-confirm`,children:p.purgeConfirmLabel}),(0,Q.jsx)(`input`,{id:`agent-delete-confirm`,type:`text`,autoComplete:`off`,spellCheck:!1,className:i(`w-full rounded-md border border-edge bg-surface-panel px-3 py-1.5 font-mono text-xs text-fg`,`placeholder:text-fg-subtle`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`dark:border-edge`),placeholder:p.purgeConfirmPlaceholder.replace(`{{agentId}}`,s.id),value:c,onChange:e=>l(e.target.value)}),(0,Q.jsx)(`p`,{className:`pt-0.5 text-xs text-fg-muted`,children:p.purgeConfirmHint.replace(`{{agentId}}`,s.id)})]}):null,t[6]=p.purgeConfirmHint,t[7]=p.purgeConfirmLabel,t[8]=p.purgeConfirmPlaceholder,t[9]=c,t[10]=o,t[11]=s,t[12]=l,t[13]=b):b=t[13];let x;t[14]!==p.createModalCancel||t[15]!==a||t[16]!==f?(x=(0,Q.jsx)(J,{type:`button`,variant:`ghost`,disabled:a,onClick:f,children:p.createModalCancel}),t[14]=p.createModalCancel,t[15]=a,t[16]=f,t[17]=x):x=t[17];let S=o?`border-red-200 text-red-700 hover:bg-red-50 dark:border-red-900/60 dark:text-red-300 dark:hover:bg-red-950/40`:void 0,C;t[18]!==a||t[19]!==c||t[20]!==o||t[21]!==s?(C=a||!s||o&&c.trim().toLowerCase()!==s.id.toLowerCase(),t[18]=a,t[19]=c,t[20]=o,t[21]=s,t[22]=C):C=t[22];let w=o?p.purgeDisk:p.removeFromConfig,T;t[23]!==u||t[24]!==C||t[25]!==w||t[26]!==S?(T=(0,Q.jsx)(J,{type:`button`,variant:`secondary`,className:S,disabled:C,onClick:u,children:w}),t[23]=u,t[24]=C,t[25]=w,t[26]=S,t[27]=T):T=t[27];let E;t[28]!==T||t[29]!==x?(E=(0,Q.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-end gap-2 border-t border-edge-subtle/60 pt-3`,children:[x,T]}),t[28]=T,t[29]=x,t[30]=E):E=t[30];let D;t[31]!==E||t[32]!==_||t[33]!==y||t[34]!==b?(D=(0,Q.jsxs)(ve,{children:[m,(0,Q.jsxs)(A,{className:h,onOpenAutoFocus:bt,children:[_,y,b,E]})]}),t[31]=E,t[32]=_,t[33]=y,t[34]=b,t[35]=D):D=t[35];let O;return t[36]!==r||t[37]!==n||t[38]!==D?(O=(0,Q.jsx)(B,{open:n,onOpenChange:r,children:D}),t[36]=r,t[37]=n,t[38]=D,t[39]=O):O=t[39],O}function bt(e){return e.preventDefault()}var xt=[{id:`overview`,labelKey:`navIdentity`,icon:b},{id:`profile`,labelKey:`navProfile`,icon:j},{id:`models`,labelKey:`navModels`,icon:Me},{id:`tools`,labelKey:`navTools`,icon:L},{id:`skills`,labelKey:`navSkills`,icon:Ge},{id:`files`,labelKey:`navCoreFiles`,icon:se}],St=[{id:`channels`,labelKey:`tabChannels`,icon:h},{id:`cron`,labelKey:`tabCron`,icon:p}];function Ct(e){let t=(0,vt.c)(20),{a:n,panel:r,onPanelChange:a}=e,o;t[0]!==a||t[1]!==r?(o=(e,t,n)=>(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>a(e),className:i(`flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors`,X.press,r===e?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[(0,Q.jsx)(n,{className:`size-4 shrink-0 opacity-90`,strokeWidth:2,"aria-hidden":!0}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:t})]},e),t[0]=a,t[1]=r,t[2]=o):o=t[2];let s=o,c=n.editorNavAria,l;t[3]!==n||t[4]!==s?(l=xt.map(e=>{let{id:t,labelKey:r,icon:i}=e;return s(t,n[r],i)}),t[3]=n,t[4]=s,t[5]=l):l=t[5];let u;t[6]===l?u=t[7]:(u=(0,Q.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:l}),t[6]=l,t[7]=u);let d;t[8]===n.navAdvanced?d=t[9]:(d=(0,Q.jsx)(`p`,{className:`mt-4 px-3 text-[10px] font-semibold uppercase tracking-wide text-fg-subtle`,children:n.navAdvanced}),t[8]=n.navAdvanced,t[9]=d);let f;t[10]!==n||t[11]!==s?(f=St.map(e=>{let{id:t,labelKey:r,icon:i}=e;return s(t,n[r],i)}),t[10]=n,t[11]=s,t[12]=f):f=t[12];let p;t[13]===f?p=t[14]:(p=(0,Q.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:f}),t[13]=f,t[14]=p);let m;return t[15]!==n.editorNavAria||t[16]!==u||t[17]!==d||t[18]!==p?(m=(0,Q.jsxs)(`nav`,{className:`flex w-full flex-col gap-1`,"aria-label":c,children:[u,d,p]}),t[15]=n.editorNavAria,t[16]=u,t[17]=d,t[18]=p,t[19]=m):m=t[19],m}function wt(e){let t=(0,vt.c)(49),{open:n,onOpenChange:r,a,title:o,subtitle:s,panel:c,onPanelChange:l,onFooterSave:u,footerSaveDisabled:f,footerSavedFlash:p,busy:m,children:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(he,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim`,ye)}),t[0]=g):g=t[0];let _;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=i(`xopc-dialog-content fixed flex flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-popover dark:border-edge`,Te,`inset-4 h-[calc(100dvh-2rem)] max-h-[calc(100dvh-2rem)] min-h-0`,`sm:inset-auto sm:left-1/2 sm:top-1/2 sm:h-[min(88vh,48rem)] sm:max-h-[min(88vh,48rem)] sm:min-h-[32rem] sm:w-[min(100%-2rem,58rem)] sm:-translate-x-1/2 sm:-translate-y-1/2`),t[1]=_):_=t[1];let v;t[2]===o?v=t[3]:(v=(0,Q.jsx)(d,{className:`text-base font-semibold leading-snug text-fg`,children:o}),t[2]=o,t[3]=v);let y;t[4]===s?y=t[5]:(y=(0,Q.jsx)(_e,{className:`mt-1 font-mono text-xs text-fg-muted`,children:s}),t[4]=s,t[5]=y);let b;t[6]!==v||t[7]!==y?(b=(0,Q.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[v,y]}),t[6]=v,t[7]=y,t[8]=b):b=t[8];let x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(x=i(be,`shrink-0 p-1.5 hover:bg-surface-base`),t[9]=x):x=t[9];let S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsx)(De,{className:`size-4`,"aria-hidden":!0}),t[10]=S):S=t[10];let C;t[11]===a.closeDialogAria?C=t[12]:(C=(0,Q.jsx)(Pe,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:x,"aria-label":a.closeDialogAria,children:S})}),t[11]=a.closeDialogAria,t[12]=C);let w;t[13]!==b||t[14]!==C?(w=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-2 border-b border-edge-subtle px-4 pb-3 pt-4 dark:border-edge`,children:[b,C]}),t[13]=b,t[14]=C,t[15]=w):w=t[15];let T;t[16]!==a||t[17]!==l||t[18]!==c?(T=(0,Q.jsx)(`div`,{className:`shrink-0 border-b border-edge-subtle px-4 py-3 dark:border-edge sm:flex sm:w-56 sm:shrink-0 sm:flex-col sm:overflow-y-auto sm:border-b-0 sm:border-r sm:px-0 sm:py-4 sm:pl-4 sm:pr-3`,children:(0,Q.jsx)(Ct,{a,panel:c,onPanelChange:l})}),t[16]=a,t[17]=l,t[18]=c,t[19]=T):T=t[19];let E;t[20]===h?E=t[21]:(E=(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden p-4 sm:pl-2 sm:pr-5`,children:h}),t[20]=h,t[21]=E);let D;t[22]!==a.footerSaveNotApplicable||t[23]!==a.personaSaved||t[24]!==f||t[25]!==p?(D=p?(0,Q.jsxs)(`p`,{className:`order-2 text-center text-xs font-medium text-green-600 sm:order-1 sm:mr-auto sm:text-left dark:text-green-400`,children:[`✓ `,a.personaSaved]}):f?(0,Q.jsx)(`p`,{className:`order-2 text-center text-xs text-fg-muted sm:order-1 sm:mr-auto sm:text-left`,children:a.footerSaveNotApplicable}):null,t[22]=a.footerSaveNotApplicable,t[23]=a.personaSaved,t[24]=f,t[25]=p,t[26]=D):D=t[26];let O=m||f,k;t[27]===u?k=t[28]:(k=()=>void u(),t[27]=u,t[28]=k);let j;t[29]!==a.save||t[30]!==O||t[31]!==k?(j=(0,Q.jsx)(J,{type:`button`,className:`order-1 w-full sm:order-2 sm:w-auto`,disabled:O,onClick:k,children:a.save}),t[29]=a.save,t[30]=O,t[31]=k,t[32]=j):j=t[32];let M;t[33]!==D||t[34]!==j?(M=(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 border-t border-edge-subtle px-4 py-3 dark:border-edge sm:flex-row sm:items-center sm:justify-end sm:gap-3`,children:[D,j]}),t[33]=D,t[34]=j,t[35]=M):M=t[35];let N;t[36]!==E||t[37]!==M?(N=(0,Q.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[E,M]}),t[36]=E,t[37]=M,t[38]=N):N=t[38];let P;t[39]!==N||t[40]!==T?(P=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row sm:overflow-hidden`,children:[T,N]}),t[39]=N,t[40]=T,t[41]=P):P=t[41];let F;t[42]!==P||t[43]!==w?(F=(0,Q.jsxs)(ve,{children:[g,(0,Q.jsx)(A,{className:_,onOpenAutoFocus:Tt,children:(0,Q.jsxs)(H,{layer:`modal`,children:[w,P]})})]}),t[42]=P,t[43]=w,t[44]=F):F=t[44];let I;return t[45]!==r||t[46]!==n||t[47]!==F?(I=(0,Q.jsx)(B,{open:n,onOpenChange:r,children:F}),t[45]=r,t[46]=n,t[47]=F,t[48]=I):I=t[48],I}function Tt(e){return e.preventDefault()}function Et(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,z,`dark:border-edge`)}function Dt(e,t,n){let r=e.agentId?.trim().toLowerCase();return r?r===t.toLowerCase():t.toLowerCase()===n.toLowerCase()}function Ot(e){return[e.channel,e.accountId,e.peerKind,e.peerId].filter(e=>typeof e==`string`&&e.length>0).join(` · `)||e.channel}function kt(e,t,n,r){let i=e.trim(),a=t.trim();if(a)return{channel:i,peerId:a};if(n!=null){let e=r[n];if(!e)return{channel:i};let t={channel:i};e.accountId?.trim()&&(t.accountId=e.accountId.trim()),e.peerKind?.trim()&&(t.peerKind=e.peerKind.trim());let a=e.peerId?.trim()||e.chatId?.trim();return a&&(t.peerId=a),t}return{channel:i}}var At=i(g,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`);function jt(e){let t=(0,vt.c)(62),{a:n,busy:r,bindingsLoading:a,agentBindings:o,onRemoveBinding:s,onAddBinding:c,channelStatuses:l,channelsStatusLoading:u,useManualChannel:d,newBindChannel:f,setNewBindChannel:p,bindSessionChats:m,sessionsLoading:h,newBindSessionIdx:g,setNewBindSessionIdx:_,newBindCustomPeer:v,setNewBindCustomPeer:y,onRefreshSessions:b,lastActiveLabels:x,selectRecipient:S}=e,C=!u&&(d||l.length>0),w;t[0]!==n.channelsHint||t[1]!==n.channelsTitle?(w=(0,Q.jsx)(Je,{className:`shrink-0`,icon:q,title:n.channelsTitle,subtitle:n.channelsHint}),t[0]=n.channelsHint,t[1]=n.channelsTitle,t[2]=w):w=t[2];let T;t[3]!==n.channelsLoading||t[4]!==n.channelsNone||t[5]!==n.removeBinding||t[6]!==o||t[7]!==a||t[8]!==r||t[9]!==s?(T=a?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.channelsLoading}):o.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.channelsNone}):(0,Q.jsx)(`ul`,{className:`flex flex-col gap-2 text-sm`,children:o.map(e=>(0,Q.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-2 rounded-lg border border-edge bg-surface-panel px-3 py-2`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-xs`,children:Ot(e.match)}),(0,Q.jsx)(J,{type:`button`,variant:`secondary`,disabled:r,onClick:()=>void s(e),children:n.removeBinding})]},`${e.match.channel}-${Ot(e.match)}`))}),t[3]=n.channelsLoading,t[4]=n.channelsNone,t[5]=n.removeBinding,t[6]=o,t[7]=a,t[8]=r,t[9]=s,t[10]=T):T=t[10];let E;t[11]!==n.channelLabel||t[12]!==n.channelsDisabledSuffix||t[13]!==n.channelsLoadingChannels||t[14]!==n.channelsManualChannelHint||t[15]!==l||t[16]!==u||t[17]!==f||t[18]!==p||t[19]!==y||t[20]!==_||t[21]!==d?(E=u?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.channelsLoadingChannels}):d?(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelLabel}),(0,Q.jsx)(`input`,{className:Et(),value:f,onChange:e=>p(e.target.value),placeholder:`telegram`,autoComplete:`off`}),(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsManualChannelHint})]}):(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelLabel}),(0,Q.jsx)(`select`,{className:i(Et(),`py-2`),value:f,onChange:e=>{p(e.target.value),_(null),y(``)},children:l.map(e=>(0,Q.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:n.channelsDisabledSuffix]},e.name))})]}),t[11]=n.channelLabel,t[12]=n.channelsDisabledSuffix,t[13]=n.channelsLoadingChannels,t[14]=n.channelsManualChannelHint,t[15]=l,t[16]=u,t[17]=f,t[18]=p,t[19]=y,t[20]=_,t[21]=d,t[22]=E):E=t[22];let D;t[23]!==n.channelsCustomPeerHint||t[24]!==n.channelsCustomPeerPlaceholder||t[25]!==n.channelsLoadingSessions||t[26]!==n.channelsNoSessionsHint||t[27]!==n.channelsPeerAny||t[28]!==n.channelsPeerFromSessions||t[29]!==n.channelsRefreshSessions||t[30]!==n.channelsRefreshSessionsHint||t[31]!==n.channelsSessionLabel||t[32]!==n.peerIdLabel||t[33]!==m||t[34]!==r||t[35]!==x||t[36]!==f||t[37]!==v||t[38]!==g||t[39]!==b||t[40]!==S||t[41]!==h||t[42]!==y||t[43]!==_||t[44]!==C?(D=C&&f.trim()?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-edge-subtle pt-3 text-sm`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelsSessionLabel}),(0,Q.jsxs)(J,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,disabled:r||h||!f.trim(),title:n.channelsRefreshSessionsHint,onClick:()=>b(),children:[(0,Q.jsx)(G,{className:i(`size-3.5`,h&&`animate-spin`),strokeWidth:1.75}),n.channelsRefreshSessions]})]}),h&&m.length===0?(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsLoadingSessions}):null,(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelsPeerFromSessions}),(0,Q.jsxs)(`select`,{className:i(Et(),`py-2`),value:g==null?``:String(g),disabled:r||!f.trim()||!!v.trim(),onChange:e=>{let t=e.target.value;_(t===``?null:Number(t))},children:[(0,Q.jsx)(`option`,{value:``,children:n.channelsPeerAny}),m.map((e,t)=>(0,Q.jsx)(`option`,{value:String(t),children:ht(e,x)},`${e.channel}-${e.chatId}`))]})]}),m.length===0&&f.trim()&&!h?(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsNoSessionsHint}):null,(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.peerIdLabel}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,Q.jsx)(`input`,{type:`text`,className:i(Et(),`min-w-0 w-full sm:flex-1`),value:v,onChange:e=>{y(e.target.value),e.target.value.trim()&&_(null)},placeholder:n.channelsCustomPeerPlaceholder,autoComplete:`off`}),(0,Q.jsxs)(`select`,{className:At,value:v,onChange:e=>{let t=e.target.value;y(t||``),_(null)},children:[(0,Q.jsx)(`option`,{value:``,children:S}),m.map(e=>(0,Q.jsx)(`option`,{value:e.chatId,children:ht(e,x)},`${e.channel}-${e.chatId}`))]})]}),(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsCustomPeerHint})]})]}):null,t[23]=n.channelsCustomPeerHint,t[24]=n.channelsCustomPeerPlaceholder,t[25]=n.channelsLoadingSessions,t[26]=n.channelsNoSessionsHint,t[27]=n.channelsPeerAny,t[28]=n.channelsPeerFromSessions,t[29]=n.channelsRefreshSessions,t[30]=n.channelsRefreshSessionsHint,t[31]=n.channelsSessionLabel,t[32]=n.peerIdLabel,t[33]=m,t[34]=r,t[35]=x,t[36]=f,t[37]=v,t[38]=g,t[39]=b,t[40]=S,t[41]=h,t[42]=y,t[43]=_,t[44]=C,t[45]=D):D=t[45];let O;t[46]!==r||t[47]!==u||t[48]!==f?(O=r||!f.trim()||u,t[46]=r,t[47]=u,t[48]=f,t[49]=O):O=t[49];let k;t[50]!==n.addBinding||t[51]!==O?(k=(0,Q.jsx)(`div`,{children:(0,Q.jsx)(J,{type:`submit`,disabled:O,children:n.addBinding})}),t[50]=n.addBinding,t[51]=O,t[52]=k):k=t[52];let A;t[53]!==c||t[54]!==E||t[55]!==D||t[56]!==k?(A=(0,Q.jsxs)(`form`,{className:`mt-4 flex flex-col gap-3`,onSubmit:c,children:[E,D,k]}),t[53]=c,t[54]=E,t[55]=D,t[56]=k,t[57]=A):A=t[57];let j;return t[58]!==w||t[59]!==T||t[60]!==A?(j=(0,Q.jsxs)(Ye,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[w,T,A]}),t[58]=w,t[59]=T,t[60]=A,t[61]=j):j=t[61],j}function Mt(e){let t=(0,vt.c)(24),{a:n,data:r,busy:s,cronLoading:c,agentCronJobs:l,onSetCronJobAgent:u}=e,d=o(Pt),f;t[0]===d?f=t[1]:(f=a(d),t[0]=d,t[1]=f);let p=f,m=d===`zh`?`zh-CN`:`en-US`,h=p.cron.scheduleBadge,g;t[2]!==n.cronHint||t[3]!==n.cronTitle?(g=(0,Q.jsx)(Je,{className:`shrink-0`,icon:Se,title:n.cronTitle,subtitle:n.cronHint}),t[2]=n.cronHint,t[3]=n.cronTitle,t[4]=g):g=t[4];let _;t[5]!==n.cronAgentClear||t[6]!==n.cronAgentDefault||t[7]!==n.cronColAgent||t[8]!==n.cronColMessage||t[9]!==n.cronColSchedule||t[10]!==n.cronColSession||t[11]!==n.cronLoading||t[12]!==n.cronNone||t[13]!==l||t[14]!==s||t[15]!==c||t[16]!==r||t[17]!==m||t[18]!==u||t[19]!==h?(_=c?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.cronLoading}):l.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.cronNone}):(0,Q.jsx)(`div`,{className:`overflow-x-auto`,children:(0,Q.jsxs)(`table`,{className:`w-full min-w-[32rem] border-collapse text-left text-sm`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColSchedule}),(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColMessage}),(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColSession}),(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColAgent})]})}),(0,Q.jsx)(`tbody`,{children:l.map(e=>{let t=!e.agentId?.trim(),a=t?``:e.agentId.trim().toLowerCase();return(0,Q.jsxs)(`tr`,{className:`border-b border-edge-subtle`,children:[(0,Q.jsx)(`td`,{className:`py-2 pr-3`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Q.jsx)(gt,{kind:`cron`,expression:e.schedule,locale:m,labels:h,timezone:e.timezone,nextRun:e.next_run,className:`text-sm font-medium text-fg`}),(0,Q.jsx)(`span`,{className:`truncate font-mono text-[0.65rem] text-fg-subtle`,title:e.schedule,children:e.schedule})]})}),(0,Q.jsx)(`td`,{className:`max-w-[12rem] truncate py-2 pr-3 text-xs`,title:pt(e),children:pt(e)}),(0,Q.jsx)(`td`,{className:`py-2 pr-3 text-xs`,children:e.sessionTarget??`main`}),(0,Q.jsx)(`td`,{className:`py-2 pr-3`,children:(0,Q.jsxs)(`select`,{className:i(Et(),`min-w-[8rem] py-1 text-xs`),value:a,disabled:s||e.sessionTarget!==`isolated`,onChange:t=>void u(e,t.target.value),children:[(0,Q.jsx)(`option`,{value:``,children:t?n.cronAgentDefault:n.cronAgentClear}),r.agents.map(Nt)]})})]},e.id)})})]})}),t[5]=n.cronAgentClear,t[6]=n.cronAgentDefault,t[7]=n.cronColAgent,t[8]=n.cronColMessage,t[9]=n.cronColSchedule,t[10]=n.cronColSession,t[11]=n.cronLoading,t[12]=n.cronNone,t[13]=l,t[14]=s,t[15]=c,t[16]=r,t[17]=m,t[18]=u,t[19]=h,t[20]=_):_=t[20];let v;return t[21]!==g||t[22]!==_?(v=(0,Q.jsxs)(Ye,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[g,_]}),t[21]=g,t[22]=_,t[23]=v):v=t[23],v}function Nt(e){return(0,Q.jsx)(`option`,{value:e.id,children:e.id},e.id)}function Pt(e){return e.language}function Ft(e){let t=(0,vt.c)(29),{a:n,filesLoading:r,files:a,activeFile:o,setActiveFile:c,filesViewMode:l,setFilesViewMode:u,fileDraft:d,setFileDraft:f,fileSaving:p,profileFileLoading:m,profileEditorNonce:h,onTryInChat:g}=e,_=s(It),v;t[0]===n.filesHint?v=t[1]:(v=(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.filesHint}),t[0]=n.filesHint,t[1]=v);let y;t[2]!==n.filesAutoSaveHint||t[3]!==n.filesEmpty||t[4]!==n.filesLoading||t[5]!==n.filesMarkdownEdit||t[6]!==n.filesMarkdownPreview||t[7]!==n.filesSavingStatus||t[8]!==n.missing||t[9]!==n.navCoreFiles||t[10]!==n.pickFile||t[11]!==n.tryInChat||t[12]!==o||t[13]!==d||t[14]!==p||t[15]!==a||t[16]!==r||t[17]!==l||t[18]!==_||t[19]!==g||t[20]!==h||t[21]!==m||t[22]!==c||t[23]!==f||t[24]!==u?(y=r?(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.filesLoading}):a?(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden`,children:[(0,Q.jsx)(`nav`,{className:`-mx-1 flex shrink-0 flex-wrap gap-1 px-1 pb-1`,role:`tablist`,"aria-label":n.navCoreFiles,children:a.files.map(e=>{let t=o===e.name;return(0,Q.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:i(`inline-flex shrink-0 items-center rounded-lg px-3 py-2 font-mono text-xs font-medium whitespace-nowrap transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,X.press,t?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`,e.missing&&`opacity-60`),onClick:()=>c(e.name),children:[e.name,e.missing?` (${n.missing})`:``]},e.name)})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-2 overflow-hidden`,children:o?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2`,children:[(0,Q.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-panel p-0.5`,role:`group`,"aria-label":`${n.filesMarkdownEdit} / ${n.filesMarkdownPreview}`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:i(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,X.press,l===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>u(`edit`),children:[(0,Q.jsx)(Be,{className:`size-3.5 shrink-0`,"aria-hidden":!0}),n.filesMarkdownEdit]}),(0,Q.jsxs)(`button`,{type:`button`,className:i(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,X.press,l===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>u(`preview`),children:[(0,Q.jsx)(te,{className:`size-3.5 shrink-0`,"aria-hidden":!0}),n.filesMarkdownPreview]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-fg-muted`,children:[p?(0,Q.jsx)(`span`,{children:n.filesSavingStatus}):null,(0,Q.jsx)(`span`,{children:n.filesAutoSaveHint}),g?(0,Q.jsxs)(J,{type:`button`,variant:`secondary`,className:`ml-auto text-xs`,onClick:g,children:[(0,Q.jsx)(ue,{className:`mr-1 size-3.5`,"aria-hidden":!0}),n.tryInChat]}):null]})]}),l===`edit`?(0,Q.jsx)(`div`,{className:i(Et(),`flex min-h-0 flex-1 flex-col overflow-hidden p-0`,m&&`pointer-events-none opacity-60`),children:(0,Q.jsx)(qe,{initialContent:d,onChange:f,isDark:_,className:`min-h-0 flex-1`},`${o??`file`}-${h}`)}):(0,Q.jsx)(`div`,{className:i(Et(),`min-h-0 flex-1 overflow-y-auto text-sm`,m&&`pointer-events-none opacity-60`),children:(0,Q.jsx)(Ke,{content:d,className:`text-sm`})})]}):(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.pickFile})})]}):(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.filesEmpty}),t[2]=n.filesAutoSaveHint,t[3]=n.filesEmpty,t[4]=n.filesLoading,t[5]=n.filesMarkdownEdit,t[6]=n.filesMarkdownPreview,t[7]=n.filesSavingStatus,t[8]=n.missing,t[9]=n.navCoreFiles,t[10]=n.pickFile,t[11]=n.tryInChat,t[12]=o,t[13]=d,t[14]=p,t[15]=a,t[16]=r,t[17]=l,t[18]=_,t[19]=g,t[20]=h,t[21]=m,t[22]=c,t[23]=f,t[24]=u,t[25]=y):y=t[25];let b;return t[26]!==v||t[27]!==y?(b=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden`,children:[v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function It(e){return e.resolved===`dark`}function Lt(e){let t=(0,vt.c)(52),{a:n,chat:r,selected:i,busy:a,modelRows:o,setModelRows:s,onSaveModels:c,onClearModelsEntry:l,hideInlineSave:u}=e,d;t[0]!==n.modelsTabHint||t[1]!==n.modelsTabTitle?(d=(0,Q.jsx)(Je,{className:`shrink-0`,icon:Me,title:n.modelsTabTitle,subtitle:n.modelsTabHint}),t[0]=n.modelsTabHint,t[1]=n.modelsTabTitle,t[2]=d):d=t[2];let f;t[3]===n.modelsDefaultsLabel?f=t[4]:(f=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.modelsDefaultsLabel}),t[3]=n.modelsDefaultsLabel,t[4]=f);let p;t[5]===i.typedModels.defaults?p=t[6]:(p=et(i.typedModels.defaults),t[5]=i.typedModels.defaults,t[6]=p);let m;t[7]!==f||t[8]!==p?(m=(0,Q.jsxs)(`div`,{children:[f,` `,p]}),t[7]=f,t[8]=p,t[9]=m):m=t[9];let h;t[10]===n.modelsEffectiveLabel?h=t[11]:(h=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.modelsEffectiveLabel}),t[10]=n.modelsEffectiveLabel,t[11]=h);let g;t[12]===i.typedModels.effective?g=t[13]:(g=et(i.typedModels.effective),t[12]=i.typedModels.effective,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,Q.jsxs)(`div`,{children:[h,` `,g]}),t[14]=h,t[15]=g,t[16]=_):_=t[16];let v;t[17]!==m||t[18]!==_?(v=(0,Q.jsxs)(`div`,{className:`mb-4 grid gap-2 rounded-lg border border-edge-subtle bg-surface-base/60 p-3 text-xs text-fg-muted dark:border-edge`,children:[m,_]}),t[17]=m,t[18]=_,t[19]=v):v=t[19];let y;t[20]!==n.addTypedModel||t[21]!==n.removeTypedModel||t[22]!==n.typedModelDescriptionLabel||t[23]!==n.typedModelDescriptionPlaceholder||t[24]!==n.typedModelIdLabel||t[25]!==n.typedModelIdPlaceholder?(y={id:n.typedModelIdLabel,description:n.typedModelDescriptionLabel,add:n.addTypedModel,remove:n.removeTypedModel,idPlaceholder:n.typedModelIdPlaceholder,descriptionPlaceholder:n.typedModelDescriptionPlaceholder},t[20]=n.addTypedModel,t[21]=n.removeTypedModel,t[22]=n.typedModelDescriptionLabel,t[23]=n.typedModelDescriptionPlaceholder,t[24]=n.typedModelIdLabel,t[25]=n.typedModelIdPlaceholder,t[26]=y):y=t[26];let b;t[27]!==a||t[28]!==r||t[29]!==o||t[30]!==s||t[31]!==y?(b=(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(st,{rows:o,onChange:s,disabled:a,chat:r,labels:y})}),t[27]=a,t[28]=r,t[29]=o,t[30]=s,t[31]=y,t[32]=b):b=t[32];let x;t[33]!==n.modelsSave||t[34]!==a||t[35]!==u||t[36]!==c?(x=u?null:(0,Q.jsx)(J,{type:`button`,disabled:a,onClick:()=>void c(),children:n.modelsSave}),t[33]=n.modelsSave,t[34]=a,t[35]=u,t[36]=c,t[37]=x):x=t[37];let S;t[38]===l?S=t[39]:(S=()=>void l(),t[38]=l,t[39]=S);let C;t[40]!==n.modelsResetInherit||t[41]!==a||t[42]!==S?(C=(0,Q.jsx)(J,{type:`button`,variant:`secondary`,disabled:a,onClick:S,children:n.modelsResetInherit}),t[40]=n.modelsResetInherit,t[41]=a,t[42]=S,t[43]=C):C=t[43];let w;t[44]!==x||t[45]!==C?(w=(0,Q.jsxs)(`div`,{className:`mt-4 flex shrink-0 flex-wrap gap-2`,children:[x,C]}),t[44]=x,t[45]=C,t[46]=w):w=t[46];let T;return t[47]!==d||t[48]!==w||t[49]!==v||t[50]!==b?(T=(0,Q.jsxs)(Ye,{className:`flex min-h-0 flex-1 flex-col`,children:[d,v,b,w]}),t[47]=d,t[48]=w,t[49]=v,t[50]=b,t[51]=T):T=t[51],T}var $=e(t(),1);function Rt(e){let t=(0,vt.c)(19),{label:n,mode:r,value:a,inheritedFrom:o,inheritLabel:s,overrideLabel:c}=e,l;t[0]===n?l=t[1]:(l=(0,Q.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:n}),t[0]=n,t[1]=l);let u=a||`—`,d;t[2]===u?d=t[3]:(d=(0,Q.jsx)(`p`,{className:`mt-1 truncate text-sm font-medium text-fg`,children:u}),t[2]=u,t[3]=d);let f;t[4]!==o||t[5]!==r?(f=r===`inherit`&&o?(0,Q.jsx)(`p`,{className:`mt-0.5 truncate text-xs text-fg-muted`,children:o}):null,t[4]=o,t[5]=r,t[6]=f):f=t[6];let p;t[7]!==l||t[8]!==d||t[9]!==f?(p=(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[l,d,f]}),t[7]=l,t[8]=d,t[9]=f,t[10]=p):p=t[10];let m=r===`inherit`?`bg-surface-hover text-fg-muted`:`bg-accent-soft text-accent-fg`,h;t[11]===m?h=t[12]:(h=i(`mt-2 inline-flex shrink-0 self-start rounded-full px-2.5 py-0.5 text-xs font-medium sm:mt-0`,m),t[11]=m,t[12]=h);let g=r===`inherit`?s:c,_;t[13]!==h||t[14]!==g?(_=(0,Q.jsx)(`span`,{className:h,children:g}),t[13]=h,t[14]=g,t[15]=_):_=t[15];let v;return t[16]!==p||t[17]!==_?(v=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-xl border border-edge-subtle bg-surface-panel px-4 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[p,_]}),t[16]=p,t[17]=_,t[18]=v):v=t[18],v}function zt(e){let t=(0,vt.c)(41),{a:n,defaultModel:r,defaultWorkspace:i,agentModel:a,agentWorkspace:o,settingsPath:s,settingsState:c}=e,l=s===void 0?`/settings/agent-defaults`:s,u=n.inheritance,d;t[0]===a?d=t[1]:(d=a.trim(),t[0]=a,t[1]=d);let f=!d,p;t[2]!==o||t[3]!==i?(p=!o.trim()||i.trim().length>0&&o.trim()===i.trim(),t[2]=o,t[3]=i,t[4]=p):p=t[4];let m=p,h=f?r||u.unset:a,g=m?i||u.unset:o,_;t[5]!==u.editDefaultsLink||t[6]!==l||t[7]!==c?(_=(0,Q.jsx)(oe,{to:l,state:c,className:`text-xs font-medium text-accent hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,children:u.editDefaultsLink}),t[5]=u.editDefaultsLink,t[6]=l,t[7]=c,t[8]=_):_=t[8];let v;t[9]!==u.subtitle||t[10]!==u.title||t[11]!==_?(v=(0,Q.jsx)(Je,{icon:q,title:u.title,subtitle:u.subtitle,trailing:_}),t[9]=u.subtitle,t[10]=u.title,t[11]=_,t[12]=v):v=t[12];let y=f?`inherit`:`override`,b;t[13]!==r||t[14]!==u.inheritsValue||t[15]!==f?(b=f&&r?u.inheritsValue.replace(`{{value}}`,r):void 0,t[13]=r,t[14]=u.inheritsValue,t[15]=f,t[16]=b):b=t[16];let x;t[17]!==h||t[18]!==u.badgeInherit||t[19]!==u.badgeOverride||t[20]!==u.modelLabel||t[21]!==y||t[22]!==b?(x=(0,Q.jsx)(Rt,{label:u.modelLabel,mode:y,value:h,inheritedFrom:b,inheritLabel:u.badgeInherit,overrideLabel:u.badgeOverride}),t[17]=h,t[18]=u.badgeInherit,t[19]=u.badgeOverride,t[20]=u.modelLabel,t[21]=y,t[22]=b,t[23]=x):x=t[23];let S=m?`inherit`:`override`,C;t[24]!==i||t[25]!==u.inheritsValue||t[26]!==m?(C=m&&i?u.inheritsValue.replace(`{{value}}`,i):void 0,t[24]=i,t[25]=u.inheritsValue,t[26]=m,t[27]=C):C=t[27];let w;t[28]!==g||t[29]!==u.badgeInherit||t[30]!==u.badgeOverride||t[31]!==u.workspaceLabel||t[32]!==S||t[33]!==C?(w=(0,Q.jsx)(Rt,{label:u.workspaceLabel,mode:S,value:g,inheritedFrom:C,inheritLabel:u.badgeInherit,overrideLabel:u.badgeOverride}),t[28]=g,t[29]=u.badgeInherit,t[30]=u.badgeOverride,t[31]=u.workspaceLabel,t[32]=S,t[33]=C,t[34]=w):w=t[34];let T;t[35]!==w||t[36]!==x?(T=(0,Q.jsxs)(`div`,{className:`mt-4 grid gap-3 sm:grid-cols-2`,children:[x,w]}),t[35]=w,t[36]=x,t[37]=T):T=t[37];let E;return t[38]!==T||t[39]!==v?(E=(0,Q.jsxs)(Ye,{children:[v,T]}),t[38]=T,t[39]=v,t[40]=E):E=t[40],E}function Bt(e,t){switch(e){case`adventurer`:return t.avatarStyleAdventurer;case`bottts`:return t.avatarStyleRobot;case`lorelei`:return t.avatarStyleLorelei;case`thumbs`:return t.avatarStyleThumbs;case`fun-emoji`:return t.avatarStyleFunEmoji;default:return e}}function Vt(e){let{agentId:t,value:n,onChange:r,a,id:o}=e,s=(0,$.useRef)(null),[c,l]=(0,$.useState)(!1),[d,f]=(0,$.useState)(null),[p,m]=(0,$.useState)(!1),h=(0,$.useMemo)(()=>{let e=He(n.trim());return e&&we(e.styleId)?e.styleId:W[0]??`adventurer`},[n]),g=(0,$.useCallback)(async(e,n)=>{try{await F(t)}catch{}r(u(e,n)),m(!1)},[t,r]),_=(0,$.useCallback)(async e=>{let n=e.target.files?.[0];if(e.target.value=``,n){f(null),l(!0);try{await Fe(t,n),je(t),r(ie)}catch(e){let t=e instanceof Error?e.message:``;f(t===`avatar_too_large`?a.avatarTooLarge:t===`unsupported_image_type`||t===`empty_file`?a.avatarInvalidImage:a.avatarUploadFailed)}finally{l(!1)}}},[a,t,r]),v=(e,t)=>{let r=He(n.trim());return!!(r&&r.styleId===e&&r.seed===t)};return(0,Q.jsxs)(`div`,{...o?{id:o}:{},className:`flex flex-col gap-3 sm:col-span-2`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:a.avatarPickerTitle}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`input`,{ref:s,type:`file`,accept:`image/png,image/jpeg,image/webp,.png,.jpg,.jpeg,.webp`,className:`hidden`,onChange:e=>void _(e)}),(0,Q.jsxs)(J,{type:`button`,variant:`secondary`,className:`gap-1.5 px-2.5 py-1.5 text-xs`,disabled:c,onClick:()=>s.current?.click(),children:[(0,Q.jsx)(V,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),c?a.avatarUploading:a.avatarUploadCustom]})]})]}),d?(0,Q.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:d}):null,(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:W.map(e=>(0,Q.jsx)(`button`,{type:`button`,onClick:()=>void g(e,U[0]??t),className:i(`rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,X.press,h===e?`border-fg bg-fg text-surface-base`:`border-edge-subtle bg-surface-panel text-fg hover:border-edge`),children:Bt(e,a)},e))}),(0,Q.jsxs)(`div`,{className:`rounded-xl border border-edge-subtle bg-surface-panel/50 p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[U.map(e=>(0,Q.jsx)(`button`,{type:`button`,title:e,onClick:()=>void g(h,e),className:i(`flex size-12 shrink-0 items-center justify-center rounded-full border-2 transition-colors`,X.press,v(h,e)?`border-accent ring-2 ring-accent/30`:`border-transparent hover:border-edge`),children:(0,Q.jsx)(`img`,{src:Xe(h,e,96),alt:``,width:44,height:44,className:`size-11 rounded-full object-cover`,draggable:!1})},e)),(0,Q.jsxs)(Ae,{open:p,onOpenChange:m,children:[(0,Q.jsx)(Le,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:i(`flex size-12 shrink-0 items-center justify-center rounded-xl border border-edge-subtle bg-surface-base text-xs font-medium text-fg-muted hover:border-edge hover:text-fg`,X.press),children:a.avatarMore})}),(0,Q.jsx)(Ve,{children:(0,Q.jsxs)(K,{className:`z-[80] max-h-72 w-[min(22rem,calc(100vw-2rem))] overflow-y-auto rounded-xl border border-edge-subtle bg-surface-panel p-3 shadow-lg`,sideOffset:6,align:`end`,children:[(0,Q.jsx)(`p`,{className:`mb-2 text-xs font-medium text-fg-muted`,children:Bt(h,a)}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:ge.map(e=>(0,Q.jsx)(`button`,{type:`button`,title:e,onClick:()=>void g(h,e),className:i(`flex size-11 shrink-0 items-center justify-center rounded-full border-2 transition-colors`,X.press,v(h,e)?`border-accent ring-2 ring-accent/30`:`border-transparent hover:border-edge`),children:(0,Q.jsx)(`img`,{src:Xe(h,e,88),alt:``,width:40,height:40,className:`size-10 rounded-full object-cover`,draggable:!1})},e))})]})})]})]}),(0,Q.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t border-edge-subtle pt-3`,children:[(0,Q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:a.personaAvatar}),(0,Q.jsx)(k,{agentId:t,avatar:n,size:40}),n.trim()&&!He(n.trim())&&n.trim()!==`xopc:custom`?(0,Q.jsx)(`span`,{className:`truncate font-mono text-[10px] text-fg-muted`,title:n,children:n}):null]})]})]})}var Ht={name:``,description:``,language:``,creature:``,emoji:``,avatar:``};function Ut(e){let t={...Ht};if(!e.trim())return t;let n={name:`name`,description:`description`,language:`language`,creature:`creature`,emoji:`emoji`,avatar:`avatar`};for(let r of e.split(`
2
- `)){let e=r.match(/^[-*]\s+\*\*(\w+):\*\*\s*(.*)/i);if(!e)continue;let i=n[e[1].toLowerCase()];if(!i)continue;let a=e[2].trim();/^_\(.*\)_$/.test(a)&&(a=``),t[i]=a}return t}function Wt(e){return[`# IDENTITY.md - Who Am I?`,``,`- **Name:** ${e.name}`,`- **Description:** ${e.description}`,`- **Language:** ${e.language}`,`- **Creature:** ${e.creature}`,`- **Emoji:** ${e.emoji}`,`- **Avatar:** ${e.avatar}`,``].join(`
3
- `)}var Gt={callName:``,pronouns:``,timezone:``,notes:``};function Kt(e){let t={...Gt};if(!e.trim())return t;let n={name:`callName`,"what to call them":`callName`,pronouns:`pronouns`,timezone:`timezone`,notes:`notes`},r=e.split(`
4
- `),i=-1;for(let e=0;e<r.length;e++){let a=r[e];if(/^##\s+Context/i.test(a)){i=e+1;continue}let o=a.match(/^[-*]\s+\*\*(.+?):\*\*\s*(.*)/i);if(!o)continue;let s=n[o[1].toLowerCase().trim()];if(!s)continue;let c=o[2].trim();/^_\(.*\)_$/.test(c)&&(c=``),t[s]=c}if(i>0){let e=r.slice(i).join(`
5
- `).replace(/^_\(.*?\)_\s*/gm,``).replace(/^---\s*$/gm,``).replace(/The more you know.*$/s,``).trim();e&&!t.notes&&(t.notes=e)}return t}function qt(e){let t=[`# USER.md - About Your Human`,``,`- **Name:** ${e.callName}`,`- **Pronouns:** ${e.pronouns}`,`- **Timezone:** ${e.timezone}`,``];return e.notes.trim()&&t.push(`## Context`,``,e.notes.trim(),``),t.join(`
6
- `)}var Jt=[{id:`professional`,labelEn:`Professional & Efficient`,labelZh:`专业高效`,emoji:`🎯`,content:`# SOUL.md - Who You Are
7
-
8
- ## Core Truths
9
-
10
- **Be genuinely helpful, not performatively helpful.** Skip the filler words — just help. Actions speak louder than pleasantries.
11
-
12
- **Be precise and efficient.** Value the user's time. Give concise, actionable answers. Expand only when asked.
13
-
14
- **Earn trust through competence.** Be careful with external actions. Be bold with internal ones (reading, organizing, learning).
15
-
16
- **Remember you're a guest.** You have access to someone's life. Treat it with respect.
17
-
18
- ## Boundaries
19
-
20
- - Private things stay private. Period.
21
- - When in doubt, ask before acting externally.
22
- - Never send half-baked replies to messaging surfaces.
23
-
24
- ## Vibe
25
-
26
- Professional, competent, and respectful. Concise when needed, thorough when it matters.`},{id:`casual`,labelEn:`Warm & Friendly`,labelZh:`轻松友好`,emoji:`😊`,content:`# SOUL.md - Who You Are
27
-
28
- ## Core Truths
29
-
30
- **Be a good friend, not a corporate drone.** Be warm, genuine, and real. Skip the formality when it gets in the way.
31
-
32
- **Have personality.** You're allowed to be amused, surprised, or excited. An assistant with no personality is just a search engine.
33
-
34
- **Be resourceful before asking.** Try to figure it out first. Then ask if you're stuck.
35
-
36
- **Earn trust by being reliable.** Show up, follow through, and remember what matters.
37
-
38
- **Respect the intimacy.** You have access to someone's life. That's a privilege.
39
-
40
- ## Boundaries
41
-
42
- - Private things stay private. Always.
43
- - When in doubt, ask before acting externally.
44
- - Be careful in group chats — you're not the user's voice.
45
-
46
- ## Vibe
47
-
48
- Warm, friendly, and a little playful. Like a helpful friend who happens to know everything.`},{id:`geeky`,labelEn:`Geeky & Witty`,labelZh:`极客风格`,emoji:`🧑‍💻`,content:`# SOUL.md - Who You Are
49
-
50
- ## Core Truths
51
-
52
- **Precision over politeness.** "This is broken" beats "This might be worth considering." Be direct.
53
-
54
- **Have opinions.** Disagree, prefer things, find stuff interesting or dull. No personality = no value.
55
-
56
- **Go deep.** When something is interesting, explore it. Surface-level answers are for search engines.
57
-
58
- **Be resourceful.** Read the file. Check the context. Search for it. Come back with answers, not questions.
59
-
60
- **Earn trust through competence.** Be careful with external actions. Be bold with internal ones.
61
-
62
- ## Boundaries
63
-
64
- - Private things stay private.
65
- - When in doubt, ask before acting externally.
66
- - Never send half-baked replies.
67
-
68
- ## Vibe
69
-
70
- Sharp, direct, slightly nerdy. The kind of engineer you'd want on your team — competent, opinionated, and occasionally funny.`},{id:`custom`,labelEn:`Custom`,labelZh:`自定义`,emoji:`✍️`,content:``}];function Yt(e){let t=e.trimStart();if(!t.startsWith(`---`))return e;let n=t.indexOf(`---`,3);return n===-1?e:t.slice(n+3).trimStart()}function Xt(e){let t=Yt(e).trim();if(!t)return`professional`;for(let e of Jt)if(e.id!==`custom`&&(t===e.content.trim()||Qt(t,e.id)>=2))return e.id;return`custom`}var Zt={professional:/precise and efficient|Value the user's time|actionable answers/g,casual:/good friend|corporate drone|a little playful/g,geeky:/Precision over politeness|Go deep|slightly nerdy/g};function Qt(e,t){let n=Zt[t];if(!n)return 0;let r=new RegExp(n.source,`g`),i=new Set,a;for(;(a=r.exec(e))!==null;)if(i.add(a[0]),i.size>=2)return i.size;return i.size}var $t=[{value:``,labelEn:`Not set`,labelZh:`未设置`},{value:`Asia/Shanghai`,labelEn:`Asia/Shanghai (CST, UTC+8)`,labelZh:`亚洲/上海 (北京时间, UTC+8)`},{value:`Asia/Tokyo`,labelEn:`Asia/Tokyo (JST, UTC+9)`,labelZh:`亚洲/东京 (日本时间, UTC+9)`},{value:`Asia/Seoul`,labelEn:`Asia/Seoul (KST, UTC+9)`,labelZh:`亚洲/首尔 (韩国时间, UTC+9)`},{value:`Asia/Singapore`,labelEn:`Asia/Singapore (SGT, UTC+8)`,labelZh:`亚洲/新加坡 (UTC+8)`},{value:`Asia/Hong_Kong`,labelEn:`Asia/Hong Kong (HKT, UTC+8)`,labelZh:`亚洲/香港 (UTC+8)`},{value:`Asia/Taipei`,labelEn:`Asia/Taipei (CST, UTC+8)`,labelZh:`亚洲/台北 (UTC+8)`},{value:`Asia/Kolkata`,labelEn:`Asia/Kolkata (IST, UTC+5:30)`,labelZh:`亚洲/加尔各答 (印度时间, UTC+5:30)`},{value:`Asia/Dubai`,labelEn:`Asia/Dubai (GST, UTC+4)`,labelZh:`亚洲/迪拜 (UTC+4)`},{value:`Europe/London`,labelEn:`Europe/London (GMT/BST)`,labelZh:`欧洲/伦敦 (格林尼治时间)`},{value:`Europe/Paris`,labelEn:`Europe/Paris (CET, UTC+1)`,labelZh:`欧洲/巴黎 (中欧时间, UTC+1)`},{value:`Europe/Berlin`,labelEn:`Europe/Berlin (CET, UTC+1)`,labelZh:`欧洲/柏林 (中欧时间, UTC+1)`},{value:`Europe/Moscow`,labelEn:`Europe/Moscow (MSK, UTC+3)`,labelZh:`欧洲/莫斯科 (UTC+3)`},{value:`America/New_York`,labelEn:`America/New York (EST, UTC-5)`,labelZh:`美国/纽约 (东部时间, UTC-5)`},{value:`America/Chicago`,labelEn:`America/Chicago (CST, UTC-6)`,labelZh:`美国/芝加哥 (中部时间, UTC-6)`},{value:`America/Denver`,labelEn:`America/Denver (MST, UTC-7)`,labelZh:`美国/丹佛 (山地时间, UTC-7)`},{value:`America/Los_Angeles`,labelEn:`America/Los Angeles (PST, UTC-8)`,labelZh:`美国/洛杉矶 (太平洋时间, UTC-8)`},{value:`America/Sao_Paulo`,labelEn:`America/São Paulo (BRT, UTC-3)`,labelZh:`美洲/圣保罗 (巴西时间, UTC-3)`},{value:`Australia/Sydney`,labelEn:`Australia/Sydney (AEST, UTC+10)`,labelZh:`澳大利亚/悉尼 (UTC+10)`},{value:`Pacific/Auckland`,labelEn:`Pacific/Auckland (NZST, UTC+12)`,labelZh:`太平洋/奥克兰 (新西兰时间, UTC+12)`}];function en(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return``}}var tn=[{value:`先生`,labelEn:`Mr.`,labelZh:`先生`},{value:`女士`,labelEn:`Ms.`,labelZh:`女士`},{value:`同学`,labelEn:`Colleague`,labelZh:`同学`},{value:`老师`,labelEn:`Teacher`,labelZh:`老师`},{value:`老板`,labelEn:`Boss`,labelZh:`老板`},{value:`朋友`,labelEn:`Friend`,labelZh:`朋友`}],nn=[{value:`AI assistant`,labelEn:`AI Assistant`,labelZh:`AI 助手`},{value:`robot`,labelEn:`Robot`,labelZh:`机器人`},{value:`familiar`,labelEn:`Familiar`,labelZh:`精灵`},{value:`ghost in the machine`,labelEn:`Ghost in the machine`,labelZh:`机器幽灵`},{value:`digital companion`,labelEn:`Digital Companion`,labelZh:`数字伙伴`}];function rn(e){let t=(0,vt.c)(216),{a:n,chat:r,selected:a,busy:c,editName:l,setEditName:u,editDescription:f,setEditDescription:p,editWorkspace:m,setEditWorkspace:h,editModel:g,setEditModel:_,onSetDefault:v,onSaveAgentEdits:y,onDelete:x,hideInlineSave:S,profileMarkdownLoading:w,profileDraft:E,updateIdentity:O,handleSoulTemplateChange:j,handleSoulContentChange:M,setAvatarDialogOpen:N,toggleSoulPreviewMode:P,defaultModel:F,defaultWorkspace:L,onTryInChat:R}=e,ee=F===void 0?``:F,z=L===void 0?``:L,ne=o(sn),re=s(on),ie;t[0]===E?.identity?ie=t[1]:(ie=E?.identity??{name:``,description:``,language:``,creature:``,emoji:``,avatar:``},t[0]=E?.identity,t[1]=ie);let V=ie,ae=E?.soulTemplate??`professional`,oe=E?.soulCustomContent??``,se=E?.soulEditorNonce??0,ce=E?.soulPreviewMode??!1,de=E?.avatarDialogOpen??!1,pe;t[2]===ne?pe=t[3]:(pe=(e,t)=>ne===`zh`?t:e,t[2]=ne,t[3]=pe);let H=pe,me;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(me=Et(),t[4]=me):me=t[4];let U=me;if(!a){let e;return t[5]===n.selectAgentHint?e=t[6]:(e=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.selectAgentHint}),t[5]=n.selectAgentHint,t[6]=e),e}let ge;t[7]===a.id?ge=t[8]:(ge=ke(a.id),t[7]=a.id,t[8]=ge);let W;t[9]===ge?W=t[10]:(W={[C]:ge},t[9]=ge,t[10]=W);let G;t[11]!==n||t[12]!==ee||t[13]!==z||t[14]!==g||t[15]!==m||t[16]!==W?(G=(0,Q.jsx)(zt,{a:n,defaultModel:ee,defaultWorkspace:z,agentModel:g,agentWorkspace:m,settingsState:W}),t[11]=n,t[12]=ee,t[13]=z,t[14]=g,t[15]=m,t[16]=W,t[17]=G):G=t[17];let xe;t[18]!==V.avatar||t[19]!==a.id?(xe=(0,Q.jsx)(k,{agentId:a.id,avatar:V.avatar,size:36,className:`size-9 rounded-lg`}),t[18]=V.avatar,t[19]=a.id,t[20]=xe):xe=t[20];let Se;t[21]===N?Se=t[22]:(Se=()=>N(!0),t[21]=N,t[22]=Se);let Ce;t[23]!==n.avatarOpenSettingsAria||t[24]!==Se?(Ce={onClick:Se,ariaLabel:n.avatarOpenSettingsAria,id:`agent-avatar-settings`},t[23]=n.avatarOpenSettingsAria,t[24]=Se,t[25]=Ce):Ce=t[25];let K;t[26]!==n.setDefault||t[27]!==c||t[28]!==v||t[29]!==a.isDefault?(K=a.isDefault?null:(0,Q.jsx)(J,{type:`button`,variant:`secondary`,className:`text-xs`,disabled:c,onClick:()=>void v(),children:n.setDefault}),t[26]=n.setDefault,t[27]=c,t[28]=v,t[29]=a.isDefault,t[30]=K):K=t[30];let q;t[31]!==n.personaSectionIdentity||t[32]!==n.personaSectionIdentityHint||t[33]!==Ce||t[34]!==K||t[35]!==xe?(q=(0,Q.jsx)(Je,{icon:Ie,title:n.personaSectionIdentity,subtitle:n.personaSectionIdentityHint,iconLeading:xe,iconInteractive:Ce,trailing:K}),t[31]=n.personaSectionIdentity,t[32]=n.personaSectionIdentityHint,t[33]=Ce,t[34]=K,t[35]=xe,t[36]=q):q=t[36];let we;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,Q.jsx)(he,{className:i(`fixed inset-0 bg-scrim backdrop-blur-[2px]`,ye)}),t[37]=we):we=t[37];let Ee;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=i(`fixed left-1/2 top-1/2 w-[min(calc(100vw-2rem),26rem)] max-h-[min(90dvh,36rem)] -translate-x-1/2 -translate-y-1/2 overflow-y-auto rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`,Te),t[38]=Ee):Ee=t[38];let Oe;t[39]===n.avatarPickerTitle?Oe=t[40]:(Oe=(0,Q.jsx)(d,{className:`text-base font-semibold text-fg`,children:n.avatarPickerTitle}),t[39]=n.avatarPickerTitle,t[40]=Oe);let Ae;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=i(be,`shrink-0 p-1.5 hover:bg-surface-base`),t[41]=Ae):Ae=t[41];let je;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,Q.jsx)(De,{className:`size-4`,"aria-hidden":!0}),t[42]=je):je=t[42];let Me;t[43]===n.closeDialogAria?Me=t[44]:(Me=(0,Q.jsx)(Pe,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:Ae,"aria-label":n.closeDialogAria,children:je})}),t[43]=n.closeDialogAria,t[44]=Me);let Ne;t[45]!==Oe||t[46]!==Me?(Ne=(0,Q.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[Oe,Me]}),t[45]=Oe,t[46]=Me,t[47]=Ne):Ne=t[47];let Fe;t[48]===n.avatarRowHint?Fe=t[49]:(Fe=(0,Q.jsx)(_e,{className:`sr-only`,children:n.avatarRowHint}),t[48]=n.avatarRowHint,t[49]=Fe);let Le;t[50]===O?Le=t[51]:(Le=e=>O({avatar:e}),t[50]=O,t[51]=Le);let Re;t[52]!==n||t[53]!==V.avatar||t[54]!==a.id||t[55]!==Le?(Re=(0,Q.jsx)(Vt,{agentId:a.id,value:V.avatar,onChange:Le,a:n}),t[52]=n,t[53]=V.avatar,t[54]=a.id,t[55]=Le,t[56]=Re):Re=t[56];let ze;t[57]!==Ne||t[58]!==Fe||t[59]!==Re?(ze=(0,Q.jsxs)(ve,{children:[we,(0,Q.jsxs)(A,{className:Ee,onOpenAutoFocus:an,children:[Ne,Fe,Re]})]}),t[57]=Ne,t[58]=Fe,t[59]=Re,t[60]=ze):ze=t[60];let Be;t[61]!==de||t[62]!==N||t[63]!==ze?(Be=(0,Q.jsx)(B,{open:de,onOpenChange:N,children:ze}),t[61]=de,t[62]=N,t[63]=ze,t[64]=Be):Be=t[64];let Ve;t[65]===n.displayName?Ve=t[66]:(Ve=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.displayName}),t[65]=n.displayName,t[66]=Ve);let He;t[67]!==u||t[68]!==O?(He=e=>{u(e.target.value),O({name:e.target.value})},t[67]=u,t[68]=O,t[69]=He):He=t[69];let Y;t[70]!==n.personaNamePlaceholder||t[71]!==l||t[72]!==He?(Y=(0,Q.jsx)(`input`,{className:U,value:l,onChange:He,placeholder:n.personaNamePlaceholder,autoComplete:`off`}),t[70]=n.personaNamePlaceholder,t[71]=l,t[72]=He,t[73]=Y):Y=t[73];let Ue;t[74]!==Ve||t[75]!==Y?(Ue=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm`,children:[Ve,Y]}),t[74]=Ve,t[75]=Y,t[76]=Ue):Ue=t[76];let We;t[77]===n.personaEmoji?We=t[78]:(We=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.personaEmoji}),t[77]=n.personaEmoji,t[78]=We);let Ge;t[79]===O?Ge=t[80]:(Ge=e=>O({emoji:e.target.value}),t[79]=O,t[80]=Ge);let Z;t[81]!==n.personaEmojiPlaceholder||t[82]!==V.emoji||t[83]!==Ge?(Z=(0,Q.jsx)(`input`,{className:U,value:V.emoji,onChange:Ge,placeholder:n.personaEmojiPlaceholder,autoComplete:`off`}),t[81]=n.personaEmojiPlaceholder,t[82]=V.emoji,t[83]=Ge,t[84]=Z):Z=t[84];let Xe;t[85]!==We||t[86]!==Z?(Xe=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm`,children:[We,Z]}),t[85]=We,t[86]=Z,t[87]=Xe):Xe=t[87];let Ze;t[88]===n.agentDescription?Ze=t[89]:(Ze=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.agentDescription}),t[88]=n.agentDescription,t[89]=Ze);let Qe;t[90]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=i(U,`min-h-16 resize-y text-sm leading-relaxed`),t[90]=Qe):Qe=t[90];let $e;t[91]!==p||t[92]!==O?($e=e=>{p(e.target.value),O({description:e.target.value})},t[91]=p,t[92]=O,t[93]=$e):$e=t[93];let et;t[94]!==n.agentDescriptionPlaceholder||t[95]!==f||t[96]!==$e?(et=(0,Q.jsx)(`textarea`,{className:Qe,value:f,onChange:$e,placeholder:n.agentDescriptionPlaceholder,maxLength:4e3,rows:3,spellCheck:!0}),t[94]=n.agentDescriptionPlaceholder,t[95]=f,t[96]=$e,t[97]=et):et=t[97];let tt;t[98]!==Ze||t[99]!==et?(tt=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[Ze,et]}),t[98]=Ze,t[99]=et,t[100]=tt):tt=t[100];let nt;t[101]===n.personaCreature?nt=t[102]:(nt=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.personaCreature}),t[101]=n.personaCreature,t[102]=nt);let rt;t[103]===V.creature?rt=t[104]:(rt=nn.some(e=>e.value===V.creature)?V.creature:`__custom__`,t[103]=V.creature,t[104]=rt);let it;t[105]===O?it=t[106]:(it=e=>{if(e.target.value===`__custom__`){O({creature:``});return}O({creature:e.target.value})},t[105]=O,t[106]=it);let at;t[107]===H?at=t[108]:(at=nn.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:H(e.labelEn,e.labelZh)},e.value)),t[107]=H,t[108]=at);let ot;t[109]===H?ot=t[110]:(ot=H(`Custom…`,`自定义…`),t[109]=H,t[110]=ot);let st;t[111]===ot?st=t[112]:(st=(0,Q.jsx)(`option`,{value:`__custom__`,children:ot}),t[111]=ot,t[112]=st);let lt;t[113]!==rt||t[114]!==it||t[115]!==at||t[116]!==st?(lt=(0,Q.jsxs)(`select`,{className:U,value:rt,onChange:it,children:[at,st]}),t[113]=rt,t[114]=it,t[115]=at,t[116]=st,t[117]=lt):lt=t[117];let ut;t[118]!==n.personaCreaturePlaceholder||t[119]!==V.creature||t[120]!==O?(ut=nn.some(e=>e.value===V.creature)?null:(0,Q.jsx)(`input`,{className:i(U,`mt-1 text-xs`),value:V.creature,onChange:e=>O({creature:e.target.value}),placeholder:n.personaCreaturePlaceholder,autoComplete:`off`}),t[118]=n.personaCreaturePlaceholder,t[119]=V.creature,t[120]=O,t[121]=ut):ut=t[121];let dt;t[122]!==nt||t[123]!==lt||t[124]!==ut?(dt=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm`,children:[nt,lt,ut]}),t[122]=nt,t[123]=lt,t[124]=ut,t[125]=dt):dt=t[125];let ft;t[126]!==Ue||t[127]!==Xe||t[128]!==tt||t[129]!==dt?(ft=(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[Ue,Xe,tt,dt]}),t[126]=Ue,t[127]=Xe,t[128]=tt,t[129]=dt,t[130]=ft):ft=t[130];let pt;t[131]!==q||t[132]!==Be||t[133]!==ft?(pt=(0,Q.jsxs)(Ye,{children:[q,Be,ft]}),t[131]=q,t[132]=Be,t[133]=ft,t[134]=pt):pt=t[134];let mt;t[135]!==n.editAgent||t[136]!==n.editAgentHint?(mt=(0,Q.jsx)(Je,{icon:D,title:n.editAgent,subtitle:n.editAgentHint}),t[135]=n.editAgent,t[136]=n.editAgentHint,t[137]=mt):mt=t[137];let ht;t[138]===n.modelPrimary?ht=t[139]:(ht=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.modelPrimary}),t[138]=n.modelPrimary,t[139]=ht);let gt;t[140]===_?gt=t[141]:(gt=e=>_(e),t[140]=_,t[141]=gt);let _t;t[142]!==c||t[143]!==r.modelNoMatches||t[144]!==r.modelPlaceholder||t[145]!==r.modelSearchPlaceholder||t[146]!==g||t[147]!==gt?(_t=(0,Q.jsx)(le,{className:`min-w-0 flex-1`,value:g,disabled:c,placeholder:r.modelPlaceholder,searchPlaceholder:r.modelSearchPlaceholder,noMatches:r.modelNoMatches,onChange:gt}),t[142]=c,t[143]=r.modelNoMatches,t[144]=r.modelPlaceholder,t[145]=r.modelSearchPlaceholder,t[146]=g,t[147]=gt,t[148]=_t):_t=t[148];let yt;t[149]!==n.modelClear||t[150]!==c||t[151]!==g||t[152]!==_?(yt=g.trim()?(0,Q.jsx)(J,{type:`button`,variant:`secondary`,className:`shrink-0`,disabled:c,onClick:()=>_(``),children:n.modelClear}):null,t[149]=n.modelClear,t[150]=c,t[151]=g,t[152]=_,t[153]=yt):yt=t[153];let bt;t[154]!==_t||t[155]!==yt?(bt=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-stretch gap-2`,children:[_t,yt]}),t[154]=_t,t[155]=yt,t[156]=bt):bt=t[156];let xt;t[157]!==ht||t[158]!==bt?(xt=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[ht,bt]}),t[157]=ht,t[158]=bt,t[159]=xt):xt=t[159];let St;t[160]===n.workspacePath?St=t[161]:(St=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.workspacePath}),t[160]=n.workspacePath,t[161]=St);let Ct=r.workingDirectory,wt=r.workingDirectory.notSet,Tt;t[162]===Symbol.for(`react.memo_cache_sentinel`)?(Tt=i(U,`font-mono text-xs`),t[162]=Tt):Tt=t[162];let Dt;t[163]!==c||t[164]!==r.workingDirectory||t[165]!==m||t[166]!==h?(Dt=(0,Q.jsx)(ct,{value:m,onChange:h,disabled:c,wd:Ct,placeholder:wt,inputClassName:Tt}),t[163]=c,t[164]=r.workingDirectory,t[165]=m,t[166]=h,t[167]=Dt):Dt=t[167];let Ot;t[168]!==St||t[169]!==Dt?(Ot=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[St,Dt]}),t[168]=St,t[169]=Dt,t[170]=Ot):Ot=t[170];let kt;t[171]!==xt||t[172]!==Ot?(kt=(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[xt,Ot]}),t[171]=xt,t[172]=Ot,t[173]=kt):kt=t[173];let At;t[174]!==n.save||t[175]!==n.tryInChat||t[176]!==c||t[177]!==S||t[178]!==y||t[179]!==R?(At=S?null:(0,Q.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center gap-2`,children:[(0,Q.jsx)(J,{type:`button`,disabled:c,onClick:()=>void y(),children:n.save}),R?(0,Q.jsxs)(J,{type:`button`,variant:`secondary`,disabled:c,onClick:R,children:[(0,Q.jsx)(ue,{className:`mr-1.5 size-4`,"aria-hidden":!0}),n.tryInChat]}):null]}),t[174]=n.save,t[175]=n.tryInChat,t[176]=c,t[177]=S,t[178]=y,t[179]=R,t[180]=At):At=t[180];let jt;t[181]!==mt||t[182]!==kt||t[183]!==At?(jt=(0,Q.jsxs)(Ye,{children:[mt,kt,At]}),t[181]=mt,t[182]=kt,t[183]=At,t[184]=jt):jt=t[184];let Mt;t[185]!==n.loading||t[186]!==n.personaSectionSoul||t[187]!==n.personaSectionSoulHint||t[188]!==n.personaSoulCustomEdit||t[189]!==n.personaSoulEdit||t[190]!==n.personaSoulPreview||t[191]!==n.personaSoulTemplate||t[192]!==M||t[193]!==j||t[194]!==re||t[195]!==H||t[196]!==w||t[197]!==oe||t[198]!==se||t[199]!==ce||t[200]!==ae||t[201]!==P?(Mt=w?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.loading}):(0,Q.jsxs)(Ye,{children:[(0,Q.jsx)(Je,{icon:b,title:n.personaSectionSoul,subtitle:n.personaSectionSoulHint}),(0,Q.jsxs)(`div`,{className:`mb-4 flex flex-col gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.personaSoulTemplate}),(0,Q.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-4`,children:Jt.map(e=>(0,Q.jsxs)(`button`,{type:`button`,className:i(`flex flex-col items-center gap-1.5 rounded-xl border-2 p-3 text-center transition-all`,X.pressCard,ae===e.id?`border-accent bg-accent-soft/40 shadow-sm`:`border-edge hover:border-accent/40 hover:bg-surface-hover`),onClick:()=>j(e.id),children:[(0,Q.jsx)(`span`,{className:`text-xl`,children:e.emoji}),(0,Q.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:H(e.labelEn,e.labelZh)})]},e.id))})]}),ae===`custom`?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.personaSoulCustomEdit}),(0,Q.jsx)(`button`,{type:`button`,className:i(be,`inline-flex size-9 shrink-0 items-center justify-center rounded-md p-0 hover:bg-surface-hover`),title:ce?n.personaSoulEdit:n.personaSoulPreview,"aria-label":ce?n.personaSoulEdit:n.personaSoulPreview,onClick:P,children:ce?(0,Q.jsx)(I,{className:`size-4`,"aria-hidden":!0}):(0,Q.jsx)(te,{className:`size-4`,"aria-hidden":!0})})]}),(0,Q.jsx)(`div`,{className:i(U,`flex min-h-64 flex-col overflow-hidden p-0`),children:ce?(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,Q.jsx)(Ke,{content:oe})}):(0,Q.jsx)(qe,{initialContent:oe,onChange:M,isDark:re,className:`min-h-0 flex-1`},`soul-${se}`)})]}):null]}),t[185]=n.loading,t[186]=n.personaSectionSoul,t[187]=n.personaSectionSoulHint,t[188]=n.personaSoulCustomEdit,t[189]=n.personaSoulEdit,t[190]=n.personaSoulPreview,t[191]=n.personaSoulTemplate,t[192]=M,t[193]=j,t[194]=re,t[195]=H,t[196]=w,t[197]=oe,t[198]=se,t[199]=ce,t[200]=ae,t[201]=P,t[202]=Mt):Mt=t[202];let Nt;t[203]!==n.purgeDisk||t[204]!==n.removeFromConfig||t[205]!==c||t[206]!==H||t[207]!==x||t[208]!==a.id?(Nt=a.id===`main`?null:(0,Q.jsxs)(Ye,{children:[(0,Q.jsx)(Je,{icon:fe,title:H(`Danger Zone`,`危险操作`),subtitle:H(`Actions that cannot be undone. Be careful.`,`以下操作不可撤销,请谨慎操作。`)}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Q.jsxs)(J,{type:`button`,variant:`secondary`,disabled:c,onClick:()=>void x(!1),children:[(0,Q.jsx)(T,{className:`mr-1 size-4`,"aria-hidden":!0}),n.removeFromConfig]}),(0,Q.jsx)(J,{type:`button`,variant:`secondary`,className:`border-red-200 text-red-700 hover:bg-red-50 dark:border-red-900/60 dark:text-red-300 dark:hover:bg-red-950/40`,disabled:c,onClick:()=>void x(!0),children:n.purgeDisk})]})]}),t[203]=n.purgeDisk,t[204]=n.removeFromConfig,t[205]=c,t[206]=H,t[207]=x,t[208]=a.id,t[209]=Nt):Nt=t[209];let Pt;return t[210]!==pt||t[211]!==jt||t[212]!==Mt||t[213]!==Nt||t[214]!==G?(Pt=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-8 overflow-y-auto`,children:[G,pt,jt,Mt,Nt]}),t[210]=pt,t[211]=jt,t[212]=Mt,t[213]=Nt,t[214]=G,t[215]=Pt):Pt=t[215],Pt}function an(e){return e.preventDefault()}function on(e){return e.resolved===`dark`}function sn(e){return e.language}function cn(e){let t=!e.pronouns||tn.some(t=>t.value===e.pronouns),n=$t.some(t=>t.value===e.timezone);return{showCustomPronouns:!!(e.pronouns&&!t),showCustomTimezone:!!(e.timezone&&!n),customTimezone:e.timezone&&!n?e.timezone:``}}function ln(e,t){switch(t.type){case`load`:{let e=cn(t.user),n=JSON.stringify(t.user);return{user:t.user,snapshot:n,...e}}case`patch`:{let n={...e.user,...t.patch};return{...e,user:n}}case`setShowCustomPronouns`:return{...e,showCustomPronouns:t.value};case`setShowCustomTimezone`:return{...e,showCustomTimezone:t.value};case`setCustomTimezone`:return{...e,customTimezone:t.value};case`saved`:return{...e,snapshot:JSON.stringify(e.user)}}}var un={callName:``,pronouns:``,timezone:``,notes:``},dn={user:un,showCustomPronouns:!1,showCustomTimezone:!1,customTimezone:``,snapshot:JSON.stringify(un)};function fn({a:e,agentId:t,saveRef:n,onDirtyChange:r}){let a=o(e=>e.language),[s,c]=(0,$.useReducer)(ln,dn),l=(0,$.useRef)(t);l.current=t;let u=(0,$.useRef)(r);u.current=r;let d=M(async()=>{let e=Kt(await Z(t,`USER.md`).catch(()=>``));if(!e.timezone){let t=en();if(t)return{...e,timezone:t}}return e},[t],{enabled:!!t,initial:null,errorData:un}),f=(0,$.useRef)(null);(0,$.useEffect)(()=>{d.loading||!d.data||f.current!==t&&(f.current=t,c({type:`load`,user:d.data}),u.current?.(!1))},[t,d.loading,d.data]);let p=(0,$.useCallback)(async e=>{await w(l.current,`USER.md`,e)},[]),m=(0,$.useRef)(s.user);m.current=s.user,(0,$.useEffect)(()=>{if(n)return n.current=async()=>{await p(qt(m.current)),c({type:`saved`}),u.current?.(!1)},()=>{n.current=null}},[n,p]);let h=(0,$.useCallback)(e=>{c({type:`patch`,patch:e});let t={...m.current,...e};u.current?.(JSON.stringify(t)!==s.snapshot)},[s.snapshot]),g=(0,$.useCallback)(e=>{if(e===`__custom__`){c({type:`setShowCustomTimezone`,value:!0});return}c({type:`setShowCustomTimezone`,value:!1}),c({type:`setCustomTimezone`,value:``}),h({timezone:e})},[h]),_=(0,$.useCallback)(e=>{c({type:`setCustomTimezone`,value:e}),h({timezone:e})},[h]),v=(0,$.useCallback)(()=>{let e=en();e&&($t.some(t=>t.value===e)?(c({type:`setShowCustomTimezone`,value:!1}),c({type:`setCustomTimezone`,value:``})):(c({type:`setShowCustomTimezone`,value:!0}),c({type:`setCustomTimezone`,value:e})),h({timezone:e}))},[h]),y=s.showCustomTimezone?`__custom__`:$t.some(e=>e.value===s.user.timezone)?s.user.timezone:`__custom__`,b=(0,$.useCallback)((e,t)=>a===`zh`?t:e,[a]);if(d.loading)return(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.loading});let x=Et(),{user:S,showCustomPronouns:C,showCustomTimezone:T,customTimezone:E}=s;return(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.personaSectionUserHint}),(0,Q.jsxs)(Ye,{children:[(0,Q.jsx)(Je,{icon:j,title:e.personaSectionUser,subtitle:e.personaSectionUserHint}),(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaCallName}),(0,Q.jsx)(`input`,{className:x,value:S.callName,onChange:e=>h({callName:e.target.value}),placeholder:e.personaCallNamePlaceholder,autoComplete:`off`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaPronouns}),(0,Q.jsxs)(`select`,{className:x,value:tn.some(e=>e.value===S.pronouns)?S.pronouns:`__custom__`,onChange:e=>{if(e.target.value===`__custom__`){c({type:`setShowCustomPronouns`,value:!0});return}c({type:`setShowCustomPronouns`,value:!1}),h({pronouns:e.target.value})},children:[(0,Q.jsx)(`option`,{value:``,disabled:!0,children:e.personaPronounsPlaceholder}),tn.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:b(e.labelEn,e.labelZh)},e.value)),(0,Q.jsx)(`option`,{value:`__custom__`,children:b(`Custom…`,`自定义…`)})]}),C?(0,Q.jsx)(`input`,{className:i(x,`mt-1 text-xs`),value:tn.some(e=>e.value===S.pronouns)?``:S.pronouns,onChange:e=>h({pronouns:e.target.value}),placeholder:e.personaPronounsPlaceholder,autoComplete:`off`}):null]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaTimezone}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-stretch gap-2`,children:[(0,Q.jsxs)(`select`,{className:i(x,`min-w-0 flex-1`),value:y,onChange:e=>g(e.target.value),children:[$t.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:b(e.labelEn,e.labelZh)},e.value)),(0,Q.jsx)(`option`,{value:`__custom__`,children:e.personaTimezoneCustom})]}),(0,Q.jsx)(`button`,{type:`button`,className:i(`shrink-0 rounded-lg border border-edge bg-surface-panel px-3 py-2 text-xs font-medium text-fg-muted hover:bg-surface-hover hover:text-fg`,X.press),onClick:v,children:e.personaTimezoneDetect})]}),T?(0,Q.jsx)(`input`,{className:i(x,`mt-1 font-mono text-xs`),value:E,onChange:e=>_(e.target.value),placeholder:`e.g. Asia/Shanghai`,autoComplete:`off`}):null]}),(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaNotes}),(0,Q.jsx)(`textarea`,{className:i(x,`min-h-16 resize-y text-sm leading-relaxed`),value:S.notes,onChange:e=>h({notes:e.target.value}),placeholder:e.personaNotesPlaceholder,rows:3,spellCheck:!0})]})]}),(0,Q.jsxs)(`div`,{className:`mt-3 flex items-start gap-2 rounded-lg bg-accent-soft/30 px-3 py-2.5 text-xs text-fg-muted`,children:[(0,Q.jsx)(Ue,{className:`mt-0.5 size-3.5 shrink-0 text-accent`,"aria-hidden":!0}),(0,Q.jsx)(`span`,{children:e.personaMemoryNote})]})]})]})}function pn(e){let t=(0,vt.c)(2),n;return t[0]===e?n=t[1]:(n=(0,Q.jsx)(fn,{...e},e.agentId),t[0]=e,t[1]=n),n}function mn(e){let t=(0,vt.c)(66),{a:n,selected:r,busy:a,skillsCatalogLoading:o,catalogForPick:s,skillsInherit:c,setSkillsInherit:l,skillsPick:u,setSkillsPick:d,onSaveSkills:f,hideInlineSave:p}=e,m;t[0]===r.skills.effectiveAllowlist?m=t[1]:(m=function(e){let t=r.skills.effectiveAllowlist;return t===void 0?!0:t.length===0?!1:t.includes(e)},t[0]=r.skills.effectiveAllowlist,t[1]=m);let h=m,g;t[2]!==s||t[3]!==r.skills.effectiveAllowlist?(g=function(){let e=r.skills.effectiveAllowlist;return e===void 0?new Set(s.map(hn)):new Set(e)},t[2]=s,t[3]=r.skills.effectiveAllowlist,t[4]=g):g=t[4];let _=g,v;t[5]!==n.skillsHint||t[6]!==n.skillsTitle?(v=(0,Q.jsx)(Je,{className:`shrink-0`,icon:Ce,title:n.skillsTitle,subtitle:n.skillsHint}),t[5]=n.skillsHint,t[6]=n.skillsTitle,t[7]=v):v=t[7];let y;t[8]===l?y=t[9]:(y=()=>l(!0),t[8]=l,t[9]=y);let b;t[10]!==n.skillsInherit||t[11]!==a||t[12]!==y?(b=(0,Q.jsx)(J,{type:`button`,variant:`secondary`,disabled:a,onClick:y,children:n.skillsInherit}),t[10]=n.skillsInherit,t[11]=a,t[12]=y,t[13]=b):b=t[13];let x;t[14]!==_||t[15]!==l||t[16]!==d?(x=()=>{l(!1),d(_())},t[14]=_,t[15]=l,t[16]=d,t[17]=x):x=t[17];let S;t[18]!==n.skillsCustomize||t[19]!==a||t[20]!==x?(S=(0,Q.jsx)(J,{type:`button`,variant:`secondary`,disabled:a,onClick:x,children:n.skillsCustomize}),t[18]=n.skillsCustomize,t[19]=a,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==b||t[23]!==S?(C=(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[b,S]}),t[22]=b,t[23]=S,t[24]=C):C=t[24];let w;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(w=Y(`skills`),t[25]=w):w=t[25];let T;t[26]===n.skillsLibraryLink?T=t[27]:(T=(0,Q.jsx)(oe,{to:w,className:`shrink-0 text-xs font-medium text-accent-fg hover:underline`,children:n.skillsLibraryLink}),t[26]=n.skillsLibraryLink,t[27]=T);let E;t[28]!==C||t[29]!==T?(E=(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-3`,children:[C,T]}),t[28]=C,t[29]=T,t[30]=E):E=t[30];let D;t[31]===r.skills.defaults?D=t[32]:(D=r.skills.defaults.length?r.skills.defaults.join(`, `):`—`,t[31]=r.skills.defaults,t[32]=D);let O;t[33]!==n.skillsDefaultsLabel||t[34]!==D?(O=(0,Q.jsxs)(`p`,{className:`mt-2 shrink-0 text-xs text-fg-muted`,children:[n.skillsDefaultsLabel,` `,D]}),t[33]=n.skillsDefaultsLabel,t[34]=D,t[35]=O):O=t[35];let k;t[36]!==n.skillsInherit||t[37]!==r.skills.effectiveAllowlist||t[38]!==c?(k=r.skills.effectiveAllowlist?.length?r.skills.effectiveAllowlist.join(`, `):c?n.skillsInherit:`—`,t[36]=n.skillsInherit,t[37]=r.skills.effectiveAllowlist,t[38]=c,t[39]=k):k=t[39];let A;t[40]!==n.skillsEffectiveLabel||t[41]!==k?(A=(0,Q.jsxs)(`p`,{className:`shrink-0 text-xs text-fg-muted`,children:[n.skillsEffectiveLabel,` `,k]}),t[40]=n.skillsEffectiveLabel,t[41]=k,t[42]=A):A=t[42];let j;t[43]!==n.skillsCatalogLoading||t[44]!==n.skillsEmptyCatalog||t[45]!==n.skillsNoDescription||t[46]!==a||t[47]!==s||t[48]!==h||t[49]!==d||t[50]!==o||t[51]!==c||t[52]!==u?(j=o?(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.skillsCatalogLoading}):s.length===0?(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.skillsEmptyCatalog}):(0,Q.jsx)(`div`,{className:i(`mt-3 min-h-0 flex-1 overflow-y-auto overscroll-contain pr-0.5`,c&&`opacity-50`),children:(0,Q.jsx)(`ul`,{className:`flex flex-col gap-2.5 text-sm`,children:s.map(e=>{let t=e.name||e.directoryId,r=c?h(t):u.has(t),o=typeof e.description==`string`?e.description.trim():``,s=o||n.skillsNoDescription;return(0,Q.jsx)(`li`,{className:`h-16 shrink-0 overflow-hidden rounded-xl border border-edge-subtle bg-surface-panel/60 px-3 dark:border-edge-subtle`,children:(0,Q.jsxs)(`label`,{className:`flex h-full cursor-pointer items-center gap-3 text-sm`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,className:`shrink-0 rounded border-edge`,checked:r,disabled:c||a,onChange:()=>{d(e=>{let n=new Set(e);return r?n.delete(t):n.add(t),n})},"aria-label":t}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:[(0,Q.jsx)(`div`,{className:`truncate font-mono text-xs font-medium text-fg`,title:t,children:t}),(0,Q.jsx)(`p`,{className:i(`mt-0.5 truncate text-xs leading-tight text-fg-muted`,!o&&`italic text-fg-subtle`),title:s,children:s})]})]})},t)})})}),t[43]=n.skillsCatalogLoading,t[44]=n.skillsEmptyCatalog,t[45]=n.skillsNoDescription,t[46]=a,t[47]=s,t[48]=h,t[49]=d,t[50]=o,t[51]=c,t[52]=u,t[53]=j):j=t[53];let M;t[54]!==n.skillsSave||t[55]!==a||t[56]!==p||t[57]!==f?(M=p?null:(0,Q.jsx)(`div`,{className:`mt-4 shrink-0`,children:(0,Q.jsx)(J,{type:`button`,disabled:a,onClick:()=>void f(),children:n.skillsSave})}),t[54]=n.skillsSave,t[55]=a,t[56]=p,t[57]=f,t[58]=M):M=t[58];let N;return t[59]!==E||t[60]!==O||t[61]!==A||t[62]!==j||t[63]!==M||t[64]!==v?(N=(0,Q.jsxs)(Ye,{className:`flex min-h-0 flex-1 flex-col`,children:[v,E,O,A,j,M]}),t[59]=E,t[60]=O,t[61]=A,t[62]=j,t[63]=M,t[64]=v,t[65]=N):N=t[65],N}function hn(e){return e.name||e.directoryId}function gn(e){let t=(0,vt.c)(51),{a:n,data:r,selected:i,busy:s,toolEntryDisable:c,setToolEntryDisable:l,onSaveTools:u,onClearToolsEntry:d,hideInlineSave:f}=e,p=o(vn),m;t[0]===p?m=t[1]:(m=a(p),t[0]=p,t[1]=m);let h=m.agentSettings.advanced,g;t[2]===i.tools.defaultsDisable?g=t[3]:(g=new Set(i.tools.defaultsDisable.flatMap(_n)),t[2]=i.tools.defaultsDisable,t[3]=g);let _=g,v;t[4]===l?v=t[5]:(v=e=>{l(e)},t[4]=l,t[5]=v);let y=v,b=n.toolsDisableGroups,x;t[6]===b?x=t[7]:(x=e=>b[e],t[6]=b,t[7]=x);let S=x,C;t[8]===n.toolDescriptions?C=t[9]:(C=e=>e in n.toolDescriptions?n.toolDescriptions[e]:``,t[8]=n.toolDescriptions,t[9]=C);let w=C,T;t[10]!==n.toolsHint||t[11]!==n.toolsTitle?(T=(0,Q.jsx)(Je,{className:`shrink-0`,icon:L,title:n.toolsTitle,subtitle:n.toolsHint}),t[10]=n.toolsHint,t[11]=n.toolsTitle,t[12]=T):T=t[12];let E;t[13]!==n.toolsLockedByDefaults||t[14]!==h.toolsDisableEmptyBuiltin||t[15]!==h.toolsDisableLoadingBuiltin||t[16]!==h.toolsDisableNotInBuiltin||t[17]!==h.toolsDisableQuickActionsLabel||t[18]!==h.toolsDisableQuickDisableAll||t[19]!==h.toolsDisableQuickEnableAll||t[20]!==h.toolsDisableQuickHighRiskOff||t[21]!==h.toolsDisableQuickNoOutbound||t[22]!==h.toolsDisableQuickReadOnlyWorkspace?(E={loadingBuiltin:h.toolsDisableLoadingBuiltin,emptyBuiltin:h.toolsDisableEmptyBuiltin,quickActionsLabel:h.toolsDisableQuickActionsLabel,quickEnableAll:h.toolsDisableQuickEnableAll,quickDisableAll:h.toolsDisableQuickDisableAll,quickReadOnlyWorkspace:h.toolsDisableQuickReadOnlyWorkspace,quickHighRiskOff:h.toolsDisableQuickHighRiskOff,quickNoOutbound:h.toolsDisableQuickNoOutbound,notInBuiltin:h.toolsDisableNotInBuiltin,lockedByDefaults:n.toolsLockedByDefaults},t[13]=n.toolsLockedByDefaults,t[14]=h.toolsDisableEmptyBuiltin,t[15]=h.toolsDisableLoadingBuiltin,t[16]=h.toolsDisableNotInBuiltin,t[17]=h.toolsDisableQuickActionsLabel,t[18]=h.toolsDisableQuickDisableAll,t[19]=h.toolsDisableQuickEnableAll,t[20]=h.toolsDisableQuickHighRiskOff,t[21]=h.toolsDisableQuickNoOutbound,t[22]=h.toolsDisableQuickReadOnlyWorkspace,t[23]=E):E=t[23];let D;t[24]!==s||t[25]!==r.builtinToolIds||t[26]!==_||t[27]!==S||t[28]!==w||t[29]!==y||t[30]!==E||t[31]!==c?(D=(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(it,{mode:`agentEntry`,builtinToolIds:r.builtinToolIds,loading:!1,disableSet:c,onDisableSetChange:y,defaultsDisableSet:_,getToolDescription:w,getGroupTitle:S,quickActionsDisabled:s,labels:E})}),t[24]=s,t[25]=r.builtinToolIds,t[26]=_,t[27]=S,t[28]=w,t[29]=y,t[30]=E,t[31]=c,t[32]=D):D=t[32];let O;t[33]!==n.toolsSave||t[34]!==s||t[35]!==f||t[36]!==u?(O=f?null:(0,Q.jsx)(J,{type:`button`,disabled:s,onClick:()=>void u(),children:n.toolsSave}),t[33]=n.toolsSave,t[34]=s,t[35]=f,t[36]=u,t[37]=O):O=t[37];let k;t[38]===d?k=t[39]:(k=()=>void d(),t[38]=d,t[39]=k);let A;t[40]!==n.toolsClearEntry||t[41]!==s||t[42]!==k?(A=(0,Q.jsx)(J,{type:`button`,variant:`secondary`,disabled:s,onClick:k,children:n.toolsClearEntry}),t[40]=n.toolsClearEntry,t[41]=s,t[42]=k,t[43]=A):A=t[43];let j;t[44]!==A||t[45]!==O?(j=(0,Q.jsxs)(`div`,{className:`mt-4 flex shrink-0 flex-wrap gap-2`,children:[O,A]}),t[44]=A,t[45]=O,t[46]=j):j=t[46];let M;return t[47]!==j||t[48]!==T||t[49]!==D?(M=(0,Q.jsxs)(Ye,{className:`flex min-h-0 flex-1 flex-col`,children:[T,D,j]}),t[47]=j,t[48]=T,t[49]=D,t[50]=M):M=t[50],M}function _n(e){let t=String(e).trim();return t?[t]:[]}function vn(e){return e.language}function yn(e){let t=(0,vt.c)(107),{a:n,chat:r,cCron:i,selected:a,panel:o,data:s,busy:c,editName:l,setEditName:u,editDescription:d,setEditDescription:f,editWorkspace:p,setEditWorkspace:m,editModel:h,setEditModel:g,defaultModel:_,defaultWorkspace:v,onSetDefault:y,onSaveAgentEdits:b,onDelete:x,profileSaveRef:S,overviewProfile:C,setProfileDirty:w,filesLoading:T,files:E,activeFile:D,setActiveFile:O,filesViewMode:k,setFilesViewMode:A,fileDraft:j,setFileDraft:M,fileSaving:N,profileFileLoading:P,profileEditorNonce:F,toolEntryDisable:I,setToolEntryDisable:L,onSaveTools:R,onClearToolsEntry:ee,modelRows:z,setModelRows:te,onSaveModels:ne,onClearModelsEntry:re,skillsCatalogLoading:ie,catalogForPick:B,skillsInherit:V,setSkillsInherit:ae,skillsPick:oe,setSkillsPick:se,onSaveSkills:ce,bindingsLoading:le,agentBindings:ue,bindChannelStatuses:de,bindChannelsLoading:fe,useManualChannel:pe,newBindChannel:H,setNewBindChannel:me,bindSessionChats:U,bindSessionsLoading:he,newBindSessionIdx:ge,setNewBindSessionIdx:_e,newBindCustomPeer:W,setNewBindCustomPeer:ve,refreshBindSessions:ye,onRemoveBinding:G,onAddBinding:be,cronLoading:xe,agentCronJobs:Se,onSetCronJobAgent:Ce,onTryInChat:K}=e;if(!a){let e;return t[0]===n.selectAgentHint?e=t[1]:(e=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.selectAgentHint}),t[0]=n.selectAgentHint,t[1]=e),e}if(o===`overview`){let e;return t[2]!==n||t[3]!==c||t[4]!==r||t[5]!==_||t[6]!==v||t[7]!==d||t[8]!==h||t[9]!==l||t[10]!==p||t[11]!==x||t[12]!==b||t[13]!==y||t[14]!==K||t[15]!==C.draft||t[16]!==C.handleSoulContentChange||t[17]!==C.handleSoulTemplateChange||t[18]!==C.profileMarkdownLoading||t[19]!==C.setAvatarDialogOpen||t[20]!==C.toggleSoulPreviewMode||t[21]!==C.updateIdentity||t[22]!==a||t[23]!==f||t[24]!==g||t[25]!==u||t[26]!==m?(e=(0,Q.jsx)(rn,{a:n,chat:r,selected:a,busy:c,editName:l,setEditName:u,editDescription:d,setEditDescription:f,editWorkspace:p,setEditWorkspace:m,editModel:h,setEditModel:g,onSetDefault:y,onSaveAgentEdits:b,onDelete:x,hideInlineSave:!0,profileMarkdownLoading:C.profileMarkdownLoading,profileDraft:C.draft,updateIdentity:C.updateIdentity,handleSoulTemplateChange:C.handleSoulTemplateChange,handleSoulContentChange:C.handleSoulContentChange,setAvatarDialogOpen:C.setAvatarDialogOpen,toggleSoulPreviewMode:C.toggleSoulPreviewMode,defaultModel:_,defaultWorkspace:v,onTryInChat:K}),t[2]=n,t[3]=c,t[4]=r,t[5]=_,t[6]=v,t[7]=d,t[8]=h,t[9]=l,t[10]=p,t[11]=x,t[12]=b,t[13]=y,t[14]=K,t[15]=C.draft,t[16]=C.handleSoulContentChange,t[17]=C.handleSoulTemplateChange,t[18]=C.profileMarkdownLoading,t[19]=C.setAvatarDialogOpen,t[20]=C.toggleSoulPreviewMode,t[21]=C.updateIdentity,t[22]=a,t[23]=f,t[24]=g,t[25]=u,t[26]=m,t[27]=e):e=t[27],e}if(o===`profile`){let e;return t[28]!==n||t[29]!==S||t[30]!==a.id||t[31]!==w?(e=(0,Q.jsx)(pn,{a:n,agentId:a.id,saveRef:S,onDirtyChange:w}),t[28]=n,t[29]=S,t[30]=a.id,t[31]=w,t[32]=e):e=t[32],e}if(o===`files`){let e;return t[33]!==n||t[34]!==D||t[35]!==j||t[36]!==N||t[37]!==E||t[38]!==T||t[39]!==k||t[40]!==K||t[41]!==F||t[42]!==P||t[43]!==O||t[44]!==M||t[45]!==A?(e=(0,Q.jsx)(Ft,{a:n,filesLoading:T,files:E,activeFile:D,setActiveFile:O,filesViewMode:k,setFilesViewMode:A,fileDraft:j,setFileDraft:M,fileSaving:N,profileFileLoading:P,profileEditorNonce:F,onTryInChat:K}),t[33]=n,t[34]=D,t[35]=j,t[36]=N,t[37]=E,t[38]=T,t[39]=k,t[40]=K,t[41]=F,t[42]=P,t[43]=O,t[44]=M,t[45]=A,t[46]=e):e=t[46],e}if(o===`tools`){let e;return t[47]!==n||t[48]!==c||t[49]!==s||t[50]!==ee||t[51]!==R||t[52]!==a||t[53]!==L||t[54]!==I?(e=(0,Q.jsx)(gn,{a:n,data:s,selected:a,busy:c,toolEntryDisable:I,setToolEntryDisable:L,onSaveTools:R,onClearToolsEntry:ee,hideInlineSave:!0}),t[47]=n,t[48]=c,t[49]=s,t[50]=ee,t[51]=R,t[52]=a,t[53]=L,t[54]=I,t[55]=e):e=t[55],e}if(o===`models`){let e;return t[56]!==n||t[57]!==c||t[58]!==r||t[59]!==z||t[60]!==re||t[61]!==ne||t[62]!==a||t[63]!==te?(e=(0,Q.jsx)(Lt,{a:n,chat:r,selected:a,busy:c,modelRows:z,setModelRows:te,onSaveModels:ne,onClearModelsEntry:re,hideInlineSave:!0}),t[56]=n,t[57]=c,t[58]=r,t[59]=z,t[60]=re,t[61]=ne,t[62]=a,t[63]=te,t[64]=e):e=t[64],e}if(o===`skills`){let e;return t[65]!==n||t[66]!==c||t[67]!==B||t[68]!==ce||t[69]!==a||t[70]!==ae||t[71]!==se||t[72]!==ie||t[73]!==V||t[74]!==oe?(e=(0,Q.jsx)(mn,{a:n,selected:a,busy:c,skillsCatalogLoading:ie,catalogForPick:B,skillsInherit:V,setSkillsInherit:ae,skillsPick:oe,setSkillsPick:se,onSaveSkills:ce,hideInlineSave:!0}),t[65]=n,t[66]=c,t[67]=B,t[68]=ce,t[69]=a,t[70]=ae,t[71]=se,t[72]=ie,t[73]=V,t[74]=oe,t[75]=e):e=t[75],e}if(o===`channels`){let e;return t[76]!==n||t[77]!==ue||t[78]!==de||t[79]!==fe||t[80]!==U||t[81]!==he||t[82]!==le||t[83]!==c||t[84]!==i.lastActiveLabels||t[85]!==i.selectRecipient||t[86]!==H||t[87]!==W||t[88]!==ge||t[89]!==be||t[90]!==G||t[91]!==ye||t[92]!==me||t[93]!==ve||t[94]!==_e||t[95]!==pe?(e=(0,Q.jsx)(jt,{a:n,busy:c,bindingsLoading:le,agentBindings:ue,channelStatuses:de,channelsStatusLoading:fe,useManualChannel:pe,newBindChannel:H,setNewBindChannel:me,bindSessionChats:U,sessionsLoading:he,newBindSessionIdx:ge,setNewBindSessionIdx:_e,newBindCustomPeer:W,setNewBindCustomPeer:ve,onRefreshSessions:ye,lastActiveLabels:i.lastActiveLabels,selectRecipient:i.selectRecipient,onRemoveBinding:G,onAddBinding:be}),t[76]=n,t[77]=ue,t[78]=de,t[79]=fe,t[80]=U,t[81]=he,t[82]=le,t[83]=c,t[84]=i.lastActiveLabels,t[85]=i.selectRecipient,t[86]=H,t[87]=W,t[88]=ge,t[89]=be,t[90]=G,t[91]=ye,t[92]=me,t[93]=ve,t[94]=_e,t[95]=pe,t[96]=e):e=t[96],e}if(o===`cron`&&s){let e;return t[97]!==n||t[98]!==Se||t[99]!==c||t[100]!==xe||t[101]!==s||t[102]!==Ce||t[103]!==a?(e=(0,Q.jsx)(Mt,{a:n,data:s,selected:a,busy:c,cronLoading:xe,agentCronJobs:Se,onSetCronJobAgent:Ce}),t[97]=n,t[98]=Se,t[99]=c,t[100]=xe,t[101]=s,t[102]=Ce,t[103]=a,t[104]=e):e=t[104],e}let q;return t[105]===n.selectAgentHint?q=t[106]:(q=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.selectAgentHint}),t[105]=n.selectAgentHint,t[106]=q),q}function bn(e,t,n){let r=t.trim().toLowerCase();return r?e.filter(e=>{let t=S(e,n).toLowerCase(),i=e.id.toLowerCase(),a=e.workspace.toLowerCase(),o=re(e,n).toLowerCase();return t.includes(r)||i.includes(r)||a.includes(r)||o.includes(r)}):e}function xn(e,t){return e.replace(`{{count}}`,String(t))}function Sn(e,t){let n=e.model?.primary?.trim(),r=e.workspace.trim();return[{label:t.listModelLabel,value:n||t.listInheritedValue,title:n||void 0},{label:t.listWorkspaceLabel,value:r||t.listUnsetValue,title:r||void 0}]}function Cn(e,t){let n=e.tools.effectiveDisable.length,r=e.skills.effectiveAllowlist?.length??0,i=n>0?xn(t.listToolsDisabledCount,n):t.listToolsAllEnabled,a=r>0?xn(t.listSkillsCount,r):t.listInheritedValue;return`${t.listToolsLabel} ${i} · ${t.listSkillsLabel} ${a}`}function wn(e,t){let n=e.tools.effectiveDisable.length,r=e.skills.effectiveAllowlist?.length??0,i=n>0?xn(t.listToolsDisabledCount,n):t.listToolsAllEnabled,a=r>0?xn(t.listSkillsCount,r):t.listInheritedValue;return[`${t.listToolsLabel} ${i}`,`${t.listSkillsLabel} ${a}`]}function Tn(e){let t=(0,vt.c)(11),{text:n,children:r,className:a}=e,o;t[0]!==r||t[1]!==a||t[2]!==n?(o=(0,Q.jsx)(x,{asChild:!0,children:(0,Q.jsx)(`span`,{className:a,title:n,children:r})}),t[0]=r,t[1]=a,t[2]=n,t[3]=o):o=t[3];let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=i(`max-w-[min(28rem,calc(100vw-2rem))] rounded-lg border border-edge bg-surface-panel px-2.5 py-2`,`text-left text-xs leading-snug text-fg shadow-popover`,We),t[4]=s):s=t[4];let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(f,{className:`fill-surface-panel`}),t[5]=c):c=t[5];let l;t[6]===n?l=t[7]:(l=(0,Q.jsx)(R,{children:(0,Q.jsxs)(Oe,{side:`top`,align:`start`,sideOffset:6,className:s,children:[n,c]})}),t[6]=n,t[7]=l);let u;return t[8]!==o||t[9]!==l?(u=(0,Q.jsx)(ee,{delayDuration:300,skipDelayDuration:100,children:(0,Q.jsxs)(ne,{children:[o,l]})}),t[8]=o,t[9]=l,t[10]=u):u=t[10],u}function En(e){let t=(0,vt.c)(28),{a:n,agents:r,searchQuery:a,onOpenAgent:o,onChatWithAgent:s,busy:c}=e,l,u,d,f,p;if(t[0]!==n||t[1]!==r||t[2]!==c||t[3]!==s||t[4]!==o||t[5]!==a){p=Symbol.for(`react.early_return_sentinel`);bb0:{let e=bn(r,a,n),m=r.length>0&&e.length===0&&a.trim().length>0;if(r.length===0){let e;t[11]===n.listNoAgentsYet?e=t[12]:(e=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.listNoAgentsYet}),t[11]=n.listNoAgentsYet,t[12]=e),p=e;break bb0}d=`flex flex-col gap-4`,t[13]!==n||t[14]!==m?(f=m?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.listEmpty}):null,t[13]=n,t[14]=m,t[15]=f):f=t[15],l=`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`;let h;t[16]!==n||t[17]!==c||t[18]!==s||t[19]!==o?(h=e=>{let t=S(e,n),r=e.id,a=re(e,n),l=Sn(e,n),u=Cn(e,n),d=wn(e,n);return(0,Q.jsx)(`li`,{className:`h-full min-h-0`,children:(0,Q.jsxs)(`article`,{className:`flex min-h-[15.5rem] flex-col rounded-xl border border-edge-subtle bg-surface-panel p-4 shadow-surface transition-colors hover:border-edge`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Q.jsxs)(`button`,{type:`button`,disabled:c,onClick:()=>o(e.id),className:i(`flex min-w-0 items-start gap-3 text-left`,`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,`disabled:pointer-events-none disabled:opacity-50`,X.pressCard),children:[(0,Q.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-2xl bg-surface-base text-fg ring-1 ring-edge-subtle/40`,"aria-hidden":!0,children:(0,Q.jsx)(k,{agentId:e.id,avatar:e.avatar,size:48,className:`size-full`})}),(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`h2`,{className:`truncate text-base font-semibold text-fg`,children:t}),(0,Q.jsx)(`p`,{className:`mt-1 truncate font-mono text-xs text-fg-muted`,title:r,children:r})]})]}),e.isDefault?(0,Q.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-0.5 text-xs font-medium text-accent`,children:n.defaultBadge}):(0,Q.jsx)(`span`,{className:`shrink-0 rounded-full bg-surface-hover px-2 py-0.5 text-xs font-medium text-fg-muted`,children:n.listCustomBadge})]}),(0,Q.jsxs)(`button`,{type:`button`,disabled:c,onClick:()=>o(e.id),className:i(`mt-5 min-h-[6.25rem] text-left`,`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,`disabled:pointer-events-none disabled:opacity-50`),children:[(0,Q.jsxs)(`div`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-3 py-3`,children:[(0,Q.jsx)(`p`,{className:i(`line-clamp-2 text-sm leading-5`,a?`text-fg`:`text-fg-muted`),title:a||void 0,children:a||n.listNoDescription}),(0,Q.jsx)(`div`,{className:`mt-3 space-y-1 text-sm leading-5 text-fg-muted`,children:l.map(On)})]}),(0,Q.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,title:u,children:d.map(Dn)})]}),(0,Q.jsx)(`div`,{className:`mt-auto pt-4`,children:(0,Q.jsxs)(J,{type:`button`,variant:`primary`,disabled:c,onClick:()=>s(e.id),className:`w-full rounded-2xl py-2.5`,children:[(0,Q.jsx)(ue,{className:`size-4 shrink-0`,strokeWidth:2,"aria-hidden":!0}),n.listChatWithAgent]})})]})},e.id)},t[16]=n,t[17]=c,t[18]=s,t[19]=o,t[20]=h):h=t[20],u=e.map(h)}t[0]=n,t[1]=r,t[2]=c,t[3]=s,t[4]=o,t[5]=a,t[6]=l,t[7]=u,t[8]=d,t[9]=f,t[10]=p}else l=t[6],u=t[7],d=t[8],f=t[9],p=t[10];if(p!==Symbol.for(`react.early_return_sentinel`))return p;let m;t[21]!==l||t[22]!==u?(m=(0,Q.jsx)(`ul`,{className:l,children:u}),t[21]=l,t[22]=u,t[23]=m):m=t[23];let h;return t[24]!==d||t[25]!==f||t[26]!==m?(h=(0,Q.jsxs)(`div`,{className:d,children:[f,m]}),t[24]=d,t[25]=f,t[26]=m,t[27]=h):h=t[27],h}function Dn(e){return(0,Q.jsx)(Tn,{text:e,className:`rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg-muted`,children:e},e)}function On(e){return(0,Q.jsxs)(`p`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Q.jsx)(`span`,{className:`shrink-0 text-xs font-medium text-fg-subtle`,children:e.label}),(0,Q.jsx)(Tn,{text:e.title??e.value,className:`min-w-0 truncate`,children:e.value})]},e.label)}function kn(e){let t=(0,vt.c)(130),{open:n,onOpenChange:r,a,chat:o,busy:s,modalError:c,profileLanguageLabel:l,createDisplayName:u,setCreateDisplayName:f,createAgentId:p,setCreateAgentId:m,createDescription:h,setCreateDescription:g,createWorkspace:_,setCreateWorkspace:v,createModel:y,setCreateModel:b,onCreate:x,onSuggestWorkspace:C,agents:w,duplicateSourceId:T,onSelectDuplicateSource:E}=e,D;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Q.jsx)(he,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim`,ye)}),t[0]=D):D=t[0];let O;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(O=i(`xopc-dialog-content fixed left-1/2 top-1/2 max-h-[min(90vh,640px)] w-[min(100%-2rem,28rem)] -translate-x-1/2 -translate-y-1/2`,Te,`overflow-y-auto rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`),t[1]=O):O=t[1];let k;t[2]===a.addAgent?k=t[3]:(k=(0,Q.jsx)(d,{className:`text-base font-semibold text-fg`,children:a.addAgent}),t[2]=a.addAgent,t[3]=k);let j;t[4]===a.addAgentHint?j=t[5]:(j=(0,Q.jsx)(_e,{className:`mt-0.5 text-xs text-fg-muted`,children:a.addAgentHint}),t[4]=a.addAgentHint,t[5]=j);let M;t[6]!==k||t[7]!==j?(M=(0,Q.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[k,j]}),t[6]=k,t[7]=j,t[8]=M):M=t[8];let N;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(N=i(be,`shrink-0 p-1.5 hover:bg-surface-base`),t[9]=N):N=t[9];let F;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Q.jsx)(De,{className:`size-4`,"aria-hidden":!0}),t[10]=F):F=t[10];let I;t[11]===a.closeDialogAria?I=t[12]:(I=(0,Q.jsx)(Pe,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:N,"aria-label":a.closeDialogAria,children:F})}),t[11]=a.closeDialogAria,t[12]=I);let L;t[13]!==M||t[14]!==I?(L=(0,Q.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[M,I]}),t[13]=M,t[14]=I,t[15]=L):L=t[15];let R;t[16]!==a||t[17]!==w||t[18]!==T||t[19]!==E?(R=w.length>0?(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.copyFromExistingAgent}),(0,Q.jsxs)(`select`,{className:i(Et(),`bg-surface-panel`),value:T??``,onChange:e=>E(e.target.value||null),children:[(0,Q.jsx)(`option`,{value:``,children:a.copyFromExistingAgentNone}),w.map(e=>(0,Q.jsxs)(`option`,{value:e.id,children:[S(e,a),` · `,e.id]},e.id))]}),(0,Q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:a.duplicateAgentHint})]}):null,t[16]=a,t[17]=w,t[18]=T,t[19]=E,t[20]=R):R=t[20];let ee;t[21]===c?ee=t[22]:(ee=c?(0,Q.jsx)(`div`,{role:`alert`,className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`,children:c}):null,t[21]=c,t[22]=ee);let z;t[23]!==a.newAgentLabel||t[24]!==l?(z=(0,Q.jsxs)(`span`,{className:`text-fg-muted`,children:[a.newAgentLabel,` (`,l,`)`]}),t[23]=a.newAgentLabel,t[24]=l,t[25]=z):z=t[25];let te;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(te=Et(),t[26]=te):te=t[26];let ne;t[27]===f?ne=t[28]:(ne=e=>f(e.target.value),t[27]=f,t[28]=ne);let re;t[29]===C?re=t[30]:(re=()=>C(),t[29]=C,t[30]=re);let ie;t[31]!==u||t[32]!==ne||t[33]!==re?(ie=(0,Q.jsx)(`input`,{className:te,value:u,onChange:ne,onBlur:re,required:!0,autoComplete:`off`}),t[31]=u,t[32]=ne,t[33]=re,t[34]=ie):ie=t[34];let V;t[35]!==z||t[36]!==ie?(V=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[z,ie]}),t[35]=z,t[36]=ie,t[37]=V):V=t[37];let ae;t[38]===a.newAgentIdOptional?ae=t[39]:(ae=(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.newAgentIdOptional}),t[38]=a.newAgentIdOptional,t[39]=ae);let oe;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(oe=i(Et(),`font-mono text-xs`),t[40]=oe):oe=t[40];let se;t[41]===m?se=t[42]:(se=e=>m(e.target.value),t[41]=m,t[42]=se);let ce;t[43]===C?ce=t[44]:(ce=()=>C(),t[43]=C,t[44]=ce);let ue;t[45]!==a.newAgentIdPlaceholder||t[46]!==a.newAgentIdRules||t[47]!==p||t[48]!==se||t[49]!==ce?(ue=(0,Q.jsx)(`input`,{className:oe,value:p,onChange:se,onBlur:ce,placeholder:a.newAgentIdPlaceholder,autoComplete:`off`,spellCheck:!1,maxLength:64,pattern:`[A-Za-z0-9][A-Za-z0-9_-]{0,63}`,title:a.newAgentIdRules}),t[45]=a.newAgentIdPlaceholder,t[46]=a.newAgentIdRules,t[47]=p,t[48]=se,t[49]=ce,t[50]=ue):ue=t[50];let de;t[51]===a.newAgentIdRules?de=t[52]:(de=(0,Q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:a.newAgentIdRules}),t[51]=a.newAgentIdRules,t[52]=de);let fe;t[53]!==ae||t[54]!==ue||t[55]!==de?(fe=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[ae,ue,de]}),t[53]=ae,t[54]=ue,t[55]=de,t[56]=fe):fe=t[56];let pe;t[57]!==a.agentDescription||t[58]!==l?(pe=(0,Q.jsxs)(`span`,{className:`text-fg-muted`,children:[a.agentDescription,` (`,l,`)`]}),t[57]=a.agentDescription,t[58]=l,t[59]=pe):pe=t[59];let me;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(me=i(Et(),`min-h-18 resize-y font-sans text-sm leading-relaxed`),t[60]=me):me=t[60];let U;t[61]===g?U=t[62]:(U=e=>g(e.target.value),t[61]=g,t[62]=U);let ge;t[63]!==a.agentDescriptionPlaceholder||t[64]!==h||t[65]!==U?(ge=(0,Q.jsx)(`textarea`,{className:me,value:h,onChange:U,placeholder:a.agentDescriptionPlaceholder,maxLength:4e3,rows:3,spellCheck:!0}),t[63]=a.agentDescriptionPlaceholder,t[64]=h,t[65]=U,t[66]=ge):ge=t[66];let W;t[67]!==pe||t[68]!==ge?(W=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[pe,ge]}),t[67]=pe,t[68]=ge,t[69]=W):W=t[69];let G;t[70]===a.newWorkspace?G=t[71]:(G=(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.newWorkspace}),t[70]=a.newWorkspace,t[71]=G);let xe;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(xe=i(Et(),`font-mono text-xs`),t[72]=xe):xe=t[72];let Se;t[73]===v?Se=t[74]:(Se=e=>v(e.target.value),t[73]=v,t[74]=Se);let Ce;t[75]!==_||t[76]!==Se?(Ce=(0,Q.jsx)(`input`,{className:xe,value:_,onChange:Se,required:!0,autoComplete:`off`}),t[75]=_,t[76]=Se,t[77]=Ce):Ce=t[77];let K;t[78]!==G||t[79]!==Ce?(K=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[G,Ce]}),t[78]=G,t[79]=Ce,t[80]=K):K=t[80];let q;t[81]===a.newModelOptional?q=t[82]:(q=(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.newModelOptional}),t[81]=a.newModelOptional,t[82]=q);let we;t[83]===b?we=t[84]:(we=e=>b(e),t[83]=b,t[84]=we);let Ee;t[85]!==s||t[86]!==o.modelNoMatches||t[87]!==o.modelPlaceholder||t[88]!==o.modelSearchPlaceholder||t[89]!==y||t[90]!==we?(Ee=(0,Q.jsx)(le,{className:`min-w-0 flex-1`,value:y,disabled:s,placeholder:o.modelPlaceholder,searchPlaceholder:o.modelSearchPlaceholder,noMatches:o.modelNoMatches,onChange:we}),t[85]=s,t[86]=o.modelNoMatches,t[87]=o.modelPlaceholder,t[88]=o.modelSearchPlaceholder,t[89]=y,t[90]=we,t[91]=Ee):Ee=t[91];let Oe;t[92]!==a.modelClear||t[93]!==s||t[94]!==y||t[95]!==b?(Oe=y.trim()?(0,Q.jsx)(J,{type:`button`,variant:`secondary`,className:`shrink-0`,disabled:s,onClick:()=>b(``),children:a.modelClear}):null,t[92]=a.modelClear,t[93]=s,t[94]=y,t[95]=b,t[96]=Oe):Oe=t[96];let ke;t[97]!==Ee||t[98]!==Oe?(ke=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-stretch gap-2`,children:[Ee,Oe]}),t[97]=Ee,t[98]=Oe,t[99]=ke):ke=t[99];let Ae;t[100]!==q||t[101]!==ke?(Ae=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 text-sm`,children:[q,ke]}),t[100]=q,t[101]=ke,t[102]=Ae):Ae=t[102];let je;t[103]!==a.createModalCancel||t[104]!==s?(je=(0,Q.jsx)(Pe,{asChild:!0,children:(0,Q.jsx)(J,{type:`button`,variant:`secondary`,disabled:s,children:a.createModalCancel})}),t[103]=a.createModalCancel,t[104]=s,t[105]=je):je=t[105];let Me;t[106]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,Q.jsx)(P,{className:`mr-1 size-4`,"aria-hidden":!0}),t[106]=Me):Me=t[106];let Ne;t[107]!==a.create||t[108]!==s?(Ne=(0,Q.jsxs)(J,{type:`submit`,disabled:s,children:[Me,a.create]}),t[107]=a.create,t[108]=s,t[109]=Ne):Ne=t[109];let Fe;t[110]!==je||t[111]!==Ne?(Fe=(0,Q.jsxs)(`div`,{className:`mt-1 flex justify-end gap-2 border-t border-edge-subtle pt-3 dark:border-edge`,children:[je,Ne]}),t[110]=je,t[111]=Ne,t[112]=Fe):Fe=t[112];let Ie;t[113]!==x||t[114]!==ee||t[115]!==V||t[116]!==fe||t[117]!==W||t[118]!==K||t[119]!==Ae||t[120]!==Fe||t[121]!==R?(Ie=(0,Q.jsxs)(`form`,{className:`grid gap-3`,onSubmit:x,children:[R,ee,V,fe,W,K,Ae,Fe]}),t[113]=x,t[114]=ee,t[115]=V,t[116]=fe,t[117]=W,t[118]=K,t[119]=Ae,t[120]=Fe,t[121]=R,t[122]=Ie):Ie=t[122];let Le;t[123]!==Ie||t[124]!==L?(Le=(0,Q.jsxs)(ve,{children:[D,(0,Q.jsx)(A,{className:O,onOpenAutoFocus:An,children:(0,Q.jsxs)(H,{layer:`modal`,children:[L,Ie]})})]}),t[123]=Ie,t[124]=L,t[125]=Le):Le=t[125];let Re;return t[126]!==r||t[127]!==n||t[128]!==Le?(Re=(0,Q.jsx)(B,{open:n,onOpenChange:r,children:Le}),t[126]=r,t[127]=n,t[128]=Le,t[129]=Re):Re=t[129],Re}function An(e){return e.preventDefault()}function jn(e){let t=(0,vt.c)(18),{a:n,busy:r,listSearchQuery:i,onListSearchQueryChange:a,onAddAgent:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(Ne,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,strokeWidth:1.75,"aria-hidden":!0}),t[0]=s):s=t[0];let c;t[1]===a?c=t[2]:(c=e=>a(e.target.value),t[1]=a,t[2]=c);let l;t[3]!==n.listSearchPlaceholder||t[4]!==i||t[5]!==c?(l=(0,Q.jsxs)(`label`,{className:`relative flex min-h-9 min-w-0 max-w-sm cursor-text items-center rounded-pill border border-edge bg-surface-base py-1.5 pl-9 pr-3 shadow-surface dark:bg-surface-hover/40 sm:max-w-md`,children:[s,(0,Q.jsx)(`input`,{type:`search`,enterKeyHint:`search`,value:i,onChange:c,placeholder:n.listSearchPlaceholder,autoComplete:`off`,spellCheck:!1,"aria-label":n.listSearchPlaceholder,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`})]}),t[3]=n.listSearchPlaceholder,t[4]=i,t[5]=c,t[6]=l):l=t[6];let u;t[7]===o?u=t[8]:(u=()=>o(),t[7]=o,t[8]=u);let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(v,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[9]=d):d=t[9];let f;t[10]!==n.addAgent||t[11]!==n.addAgentAria||t[12]!==r||t[13]!==u?(f=(0,Q.jsxs)(J,{type:`button`,variant:`primary`,className:`shrink-0 gap-2`,"aria-label":n.addAgentAria,disabled:r,onClick:u,children:[d,n.addAgent]}),t[10]=n.addAgent,t[11]=n.addAgentAria,t[12]=r,t[13]=u,t[14]=f):f=t[14];let p;return t[15]!==l||t[16]!==f?(p=(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[l,f]}),t[15]=l,t[16]=f,t[17]=p):p=t[17],p}function Mn(e){return{...e,soulEditorNonce:0,soulPreviewMode:!1,avatarDialogOpen:!1}}function Nn(e){let{agentId:t,enabled:n,saveRef:r}=e,i=M(async()=>{if(!t)return null;let[e,n]=await Promise.all([Z(t,`IDENTITY.md`).catch(()=>``),Z(t,`SOUL.md`).catch(()=>``)]),r=Ut(e);return{identity:r,soulTemplate:Xt(n),soulCustomContent:n,identityBaseline:JSON.stringify(r),soulBaseline:n}},[t],{enabled:n&&!!t,initial:null,errorData:null}),a=i.data,o=i.loading,s=(0,$.useRef)(!1),[c,l]=(0,$.useState)(null),u=t??``,d=(0,$.useRef)(u);d.current!==u&&(d.current=u,s.current=!1,l(null));let f=c??(a?Mn(a):null),p=(0,$.useMemo)(()=>f?JSON.stringify(f.identity)!==f.identityBaseline||f.soulCustomContent!==f.soulBaseline:!1,[f]),m=(0,$.useRef)(t);m.current=t;let h=(0,$.useCallback)(e=>{s.current=!0,l(t=>{let n=t??(a?Mn(a):null);return n?e(n):null})},[a]),g=(0,$.useCallback)(e=>{h(t=>({...t,identity:{...t.identity,...e}}))},[h]),_=(0,$.useCallback)(e=>{h(t=>{if(e===`custom`)return{...t,soulTemplate:`custom`};let n=Jt.find(t=>t.id===e);return n?.content?{...t,soulTemplate:e,soulCustomContent:n.content,soulEditorNonce:t.soulEditorNonce+1}:{...t,soulTemplate:e}})},[h]),v=(0,$.useCallback)(e=>{h(t=>({...t,soulCustomContent:e,soulTemplate:`custom`}))},[h]),y=(0,$.useCallback)(e=>{h(t=>({...t,avatarDialogOpen:e}))},[h]),b=(0,$.useCallback)(()=>{h(e=>({...e,soulPreviewMode:!e.soulPreviewMode}))},[h]),x=(0,$.useCallback)(async()=>{let e=m.current;!e||!f||(await Promise.all([w(e,`IDENTITY.md`,Wt(f.identity)),w(e,`SOUL.md`,f.soulCustomContent)]),s.current=!1,l(e=>{let t=e??f;return{...t,identityBaseline:JSON.stringify(t.identity),soulBaseline:t.soulCustomContent}}))},[f]);return(0,$.useLayoutEffect)(()=>{if(r)return r.current=x,()=>{r.current=null}},[x,r]),{profileMarkdownLoading:o,draft:f,dirty:p,updateIdentity:g,handleSoulTemplateChange:_,handleSoulContentChange:v,setAvatarDialogOpen:y,toggleSoulPreviewMode:b}}var Pn={draft:``,editorNonce:0,loadedKey:``};function Fn(e,t){switch(t.type){case`load`:return{draft:t.content,editorNonce:e.editorNonce+1,loadedKey:t.key};case`setDraft`:return{...e,draft:t.value};case`clear`:return{draft:``,editorNonce:e.editorNonce,loadedKey:``};case`resetViewMode`:return e}}function In(e){let{panel:t,selectedId:n,hasToken:r,dataAgentsLength:i,saveErrorMessage:a,setError:o}=e,s=M(()=>n?m(n):Promise.resolve(null),[t,n,r,i],{enabled:t===`files`&&!!n&&r,initial:null,errorData:null}),c=s.data,l=s.setData,u=s.loading,[d,f]=(0,$.useState)(null),[p,h]=(0,$.useReducer)(Fn,Pn),[g,_]=(0,$.useState)(!1),[v,y]=(0,$.useState)(`edit`),b=(0,$.useRef)(n);(0,$.useEffect)(()=>{n!==b.current&&(b.current=n,f(null))},[n]),(0,$.useEffect)(()=>{if(c&&c.files.length>0&&!d){let e=c.files.find(e=>e.name===`AGENTS.md`);f(e?e.name:c.files[0].name)}},[c,d]);let x=p.draft,S=p.editorNonce,C=(0,$.useRef)(x);C.current=x;let T=(0,$.useRef)(n);T.current=n;let D=(0,$.useRef)(d);D.current=d;let O=(0,$.useRef)(null),k=(0,$.useRef)(``),A=(0,$.useRef)(``),j=(0,$.useRef)(``),N=(0,$.useRef)(()=>{}),P=M(()=>d&&n?Z(n,d).catch(()=>``):Promise.resolve(``),[d,n,r],{enabled:!!(d&&n&&r),initial:``,errorData:``}),F=P.loading,I=E(async()=>{let e=T.current,t=D.current;if(!e||!t||`${e}:${t}`!==k.current)return;let n=C.current;if(n!==A.current){_(!0),o(null);try{await w(e,t,n),A.current=n,l(n=>!n||n.agentId!==e?n:{...n,files:n.files.map(e=>e.name===t?{...e,missing:!1}:e)})}catch(e){o(e instanceof Error?e.message:a)}finally{_(!1)}}},800);N.current=I.flush,(0,$.useEffect)(()=>()=>{N.current()},[]);let L=(0,$.useRef)(t);L.current!==t&&(L.current===`files`&&N.current(),L.current=t);let R=d&&n?`${n}:${d}`:``;(0,$.useEffect)(()=>{R!==j.current&&(N.current(),j.current=R)},[R]),(0,$.useEffect)(()=>{if(!R){h({type:`clear`});return}F||(k.current=R,A.current=P.data,h({type:`load`,key:R,content:P.data}))},[R,F,P.data]);let ee=(0,$.useRef)({activeFile:d,selectedId:n});return(ee.current.activeFile!==d||ee.current.selectedId!==n)&&(ee.current={activeFile:d,selectedId:n},y(`edit`)),{files:c,setFiles:l,filesLoading:u,activeFile:d,setActiveFile:(0,$.useCallback)(e=>{N.current(),f(e)},[]),fileDraft:x,setFileDraft:(0,$.useCallback)(e=>{h({type:`setDraft`,value:typeof e==`function`?e(C.current):e}),I()},[I]),fileSaving:g,filesViewMode:v,setFilesViewMode:y,profileFileLoading:F,profileEditorNonce:S,overviewSaveProfileMarkdownRef:O,saveProfileMarkdownDebounced:I}}function Ln(e){let{panel:t,hasToken:n,bindingsFromConfig:r,gatewayCfgLoading:i,selected:a,saveErrorMessage:o,setBusy:s,setError:c}=e,l=(0,$.useRef)(!1),[u,d]=(0,$.useState)(null),f=(0,$.useRef)(r);t===`channels`&&n&&!l.current&&f.current!==r&&(f.current=r,d(r));let p=u??r,m=t===`channels`&&n,h=M(()=>ut(),[t,n],{enabled:m,initial:[],errorData:[]}),g=h.data,_=h.loading,v=(0,$.useMemo)(()=>_||g.length===0?``:g[0]?.name??``,[g,_]),[y,b]=(0,$.useState)(``),x=(0,$.useRef)(v);t===`channels`&&!_&&v&&x.current!==v&&(!y||!g.some(e=>e.name===y))&&(x.current=v,b(v)),x.current=v;let S=y.trim(),C=m&&S.length>0,w=M(()=>dt(S),[t,n,S],{enabled:C,initial:[],errorData:[]}),T=w.data,E=w.loading,D=w.setData,[O,k]=(0,$.useState)(null),[A,j]=(0,$.useState)(``),N=(0,$.useRef)(S);N.current!==S&&(N.current=S,k(null));let P=(0,$.useMemo)(()=>a?p.filter(e=>e.agentId.toLowerCase()===a.id.toLowerCase()):[],[p,a?.id]),F=(0,$.useCallback)(()=>{let e=y.trim();e&&dt(e).then(e=>{D(e),k(t=>t!=null&&t<e.length?t:null)}).catch(()=>{D([]),k(null)})},[y,D]),I=!_&&g.length===0,L=t===`channels`&&n&&i,R=(0,$.useCallback)(async e=>{s(!0),c(null);try{let t=p.filter(t=>t!==e);await me(t),l.current=!0,d(t)}catch(e){c(e instanceof Error?e.message:o)}finally{s(!1)}},[p,o,s,c]);return{agentBindings:P,allBindings:p,bindChannelStatuses:g,bindChannelsLoading:_,bindSessionChats:T,bindSessionsLoading:E,bindingsLoading:L,newBindChannel:y,setNewBindChannel:b,newBindSessionIdx:O,setNewBindSessionIdx:k,newBindCustomPeer:A,setNewBindCustomPeer:j,onAddBinding:(0,$.useCallback)(async e=>{if(e.preventDefault(),!a||!y.trim())return;let t=kt(y,A,O,T),n=[...p,{agentId:a.id,priority:100,enabled:!0,match:t}];s(!0),c(null);try{await me(n),l.current=!0,d(n),k(null),j(``)}catch(e){c(e instanceof Error?e.message:o)}finally{s(!1)}},[p,T,y,A,O,o,a,s,c]),onRemoveBinding:R,refreshBindSessions:F,useManualChannel:I}}function Rn(e){let{panel:t,hasToken:n,data:r,selected:i,saveErrorMessage:a,setBusy:o,setError:s}=e,{data:c,loading:l}=M(()=>mt(),[t,n],{enabled:t===`cron`&&n,initial:[],errorData:[]}),[u,d]=(0,$.useState)(null),f=u??c,p=(0,$.useMemo)(()=>!r||!i?[]:f.filter(e=>!_t(e)&&Dt(e,i.id,r.defaultId)),[f,r,i]);async function m(e,t){o(!0),s(null);try{await ft(e.id,{agentId:t===``?null:t}),d(await mt())}catch(e){s(e instanceof Error?e.message:a)}finally{o(!1)}}return{agentCronJobs:p,cronJobs:f,cronLoading:l,onSetCronJobAgent:m}}function zn(e){return new Set(e.tools.entryDisable)}function Bn(e){return e.skills.entry===void 0?{inherit:!0,pick:new Set(e.skills.effectiveAllowlist??[])}:{inherit:!1,pick:new Set(e.skills.entry??[])}}function Vn(e){let{panel:t,selected:n}=e,r=`${t}:${n?.id??``}`,i=(0,$.useRef)(r),[a,o]=(0,$.useState)(()=>new Set),[s,c]=(0,$.useState)(()=>new Set),[l,u]=(0,$.useState)(!0),[d,f]=(0,$.useState)(()=>[]);if(i.current!==r){if(i.current=r,n&&t===`tools`&&o(zn(n)),n&&t===`skills`){let e=Bn(n);u(e.inherit),c(e.pick)}n&&t===`models`&&f(tt(n.typedModels.entry))}return{toolEntryDisable:a,setToolEntryDisable:o,skillsPick:s,setSkillsPick:c,skillsInherit:l,setSkillsInherit:u,modelRows:d,setModelRows:f}}function Hn(){let e=o(e=>e.language),t=a(e),n=t.agentsSettings,[r,i]=(0,$.useState)(!1),[s,u]=(0,$.useState)(null),[d,f]=(0,$.useState)(!1),[p,m]=(0,$.useState)(``),h=t.cron,g=t.chat,v=!!c(e=>e.token),[b,x]=_(),w=ce(),{agentId:T}=y(),E=Ee(e=>e.setPageHeader),D=Ee(e=>e.clearPageHeader),{data:k,error:A,isLoading:j,mutate:M}=l(v?`settings-gateway-agents`:null,pe,{revalidateOnFocus:!1}),{data:P}=xe(v),F=(0,$.useMemo)(()=>de(P?.payload?.config??{}),[P]),I=(0,$.useMemo)(()=>$e(P?.payload?.config??{}),[P]),L=k??null,R=!!(v&&j),[ee,z]=(0,$.useState)(null),te=A instanceof Error?A.message:A?n.loadError:null,ne=ee??te,[re,ie]=(0,$.useState)(null),[B,V]=(0,$.useState)(`overview`),[oe,se]=(0,$.useState)(``),[le,ue]=(0,$.useState)(``),[fe,H]=(0,$.useState)(``),[me,U]=(0,$.useState)(``),[he,ge]=(0,$.useState)(``),[_e,W]=(0,$.useState)(null),[ve,ye]=(0,$.useState)(!1),G=(0,$.useRef)(``),[be,Se]=(0,$.useState)(null),[Ce,K]=(0,$.useState)(!1),[q,we]=(0,$.useState)(``),[Te,De]=(0,$.useState)(``),[Oe,J]=(0,$.useState)(``),[Ae,je]=(0,$.useState)(``),[Me,Ne]=(0,$.useState)(``),Pe=(0,$.useRef)(null),Fe=(0,$.useRef)(null),[Ie,Le]=(0,$.useState)(!1),[Be,Ve]=(0,$.useState)(!1),He=(0,$.useRef)({data:null,routeAgentId:void 0});L&&(L!==He.current.data||T!==He.current.routeAgentId)&&(He.current={data:L,routeAgentId:T},T&&L.agents.some(e=>e.id===T)?ie(T):ie(e=>e&&L.agents.some(t=>t.id===e)?e:L.defaultId)),(0,$.useEffect)(()=>{!L||!T||L.agents.some(e=>e.id===T)||w(ze,{replace:!0})},[L,T,w]),(0,$.useEffect)(()=>{T&&V(`overview`)},[T]),(0,$.useEffect)(()=>{b.get(`panel`)===`defaults`&&w(`/settings/agent-defaults`,{replace:!0,state:{[C]:T?ke(T):ze}})},[b,T,w]),(0,$.useEffect)(()=>{if(b.get(`focus`)!==`avatar`||!T||(V(`overview`),R||!L?.agents.some(e=>e.id===T)))return;let e=window.setTimeout(()=>{document.getElementById(`agent-avatar-settings`)?.scrollIntoView({behavior:`smooth`,block:`center`}),x(e=>{let t=new URLSearchParams(e);return t.delete(`focus`),t},{replace:!0})},220);return()=>window.clearTimeout(e)},[b,T,R,L,x]);let Y=(0,$.useMemo)(()=>L?.agents.find(e=>e.id===re)??null,[L,re]),Ue=(0,$.useRef)(null),We=Y?Y.id:null;Y&&Ue.current!==We?(Ue.current=We,De(Y.workspace),J(Y.model?.primary??``),je(S(Y,a(e).agentsSettings)),Ne(Y.description??``)):!Y&&Ue.current!==null&&(Ue.current=null,De(``),J(``),je(``),Ne(``));let Ge=Nn({agentId:Y?.id??null,enabled:B===`overview`&&!!Y,saveRef:Fe}),X=In({panel:B,selectedId:re,hasToken:v,dataAgentsLength:L?.agents.length,saveErrorMessage:n.saveError,setError:z}),Ke=Vn({panel:B,selected:Y}),Z=Ln({panel:B,hasToken:v,bindingsFromConfig:F,gatewayCfgLoading:P===void 0,selected:Y,saveErrorMessage:n.saveError,setBusy:K,setError:z}),qe=Rn({panel:B,hasToken:v,data:L,selected:Y,saveErrorMessage:n.saveError,setBusy:K,setError:z}),Je=at({panel:B,hasToken:v}),Ye=(0,$.useCallback)(()=>{let e=lt(le.trim()||oe);U(t=>t===``||t===G.current?(G.current=e,e):t)},[le,oe]),Xe=(0,$.useCallback)(()=>{G.current=``,se(``),ue(``),H(``),U(``),ge(``),W(null),Se(null),ye(!0)},[]),et=(0,$.useCallback)(e=>{let t=new Set(L?.agents.map(e=>e.id.toLowerCase())??[]),r=e.trim();if(!t.has(r.toLowerCase()))return r;let i=`${r}${n.duplicateIdSuffix}`;if(!t.has(i.toLowerCase()))return i;for(let e=2;e<1e3;e+=1){let n=`${i}-${e}`;if(!t.has(n.toLowerCase()))return n}return i},[n.duplicateIdSuffix,L]),tt=(0,$.useCallback)(e=>{if(Se(e),!e)return;let t=L?.agents.find(t=>t.id===e);if(!t)return;let r=t.name?.trim()??t.id,i=n.duplicateName.replace(`{{name}}`,r),a=et(t.id),o=t.description??``;G.current=``,se(i),ue(a),H(o),U(t.workspace),ge(t.model?.primary??``),W(null)},[n.duplicateName,L,et]),nt=(0,$.useCallback)(e=>{tt(e),ye(!0)},[tt]),rt=(0,$.useMemo)(()=>(0,Q.jsx)(jn,{a:n,busy:Ce,listSearchQuery:q,onListSearchQueryChange:we,onAddAgent:()=>Xe()}),[n,Ce,q,Xe]);(0,$.useLayoutEffect)(()=>v?(E({startExtra:null,main:(0,Q.jsx)(`div`,{className:`min-w-0`,children:(0,Q.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:n.title})}),end:rt}),()=>D()):(D(),()=>D()),[n.title,rt,D,v,E]);async function it(t){t.preventDefault();let r=oe.trim();if(!r)return;let i=ot(le,r);if(i.ok===!1){W(i.error);return}let a=me.trim()||lt(le.trim()||r);if(a){K(!0),W(null);try{let t=[`# IDENTITY.md - Who Am I?`,``,`- **Name:** ${r}`,`- **Description:** ${fe.trim()}`,`- **Language:** ${e}`,`- **Creature:** assistant`,`- **Emoji:**`,`- **Avatar:**`,``].join(`
71
- `),{createdAgentId:n,...i}=await O({workspace:a,...le.trim()?{id:le.trim()}:{},...he.trim()?{models:{chat:{primary:he.trim()}}}:{},profileFiles:{"IDENTITY.md":t},...be?{cloneFrom:be}:{}});M(i,{revalidate:!1}),se(``),ue(``),H(``),U(``),ge(``),W(null),ye(!1),ie(n),w(ke(n))}catch(e){W(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}}async function st(){if(Y){K(!0),z(null);try{M(await N(Y.id,{workspace:Te.trim()||void 0,models:{chat:Oe.trim()?{primary:Oe.trim()}:null}}),{revalidate:!1})}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}}async function ct(e){K(!0),z(null);try{M(await N(e.id,{setDefault:!0}),{revalidate:!1}),ie(e.id)}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}async function ut(e,t){K(!0),z(null);try{let n=await ae(e.id,t);M(n,{revalidate:!1}),ie(n.defaultId),V(`overview`),T===e.id&&w(ze,{replace:!0}),i(!1),u(null),m(``)}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}function dt(e,t){e.id!==`main`&&(u(e),f(t),m(``),i(!0))}async function ft(){if(Y){K(!0),z(null);try{let e=Array.from(Ke.toolEntryDisable).toSorted((e,t)=>e.localeCompare(t));M(await N(Y.id,{tools:{disable:e}}),{revalidate:!1})}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}}async function pt(){if(Y){K(!0),z(null);try{M(await N(Y.id,{tools:{disable:null}}),{revalidate:!1}),Ke.setToolEntryDisable(new Set)}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}}async function mt(){if(!Y)return;let e=Qe(Ke.modelRows,{invalidId:n.typedModelsInvalidId,duplicateId:n.typedModelsDuplicateId,invalidModel:n.typedModelsInvalidModel});if(e){z(e);return}K(!0),z(null);try{M(await N(Y.id,{models:{roles:Ze(Ke.modelRows)?.roles??{}}}),{revalidate:!1})}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}async function ht(){if(Y){K(!0),z(null);try{M(await N(Y.id,{models:{roles:null}}),{revalidate:!1}),Ke.setModelRows([])}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}}async function gt(){if(Y){K(!0),z(null);try{M(await N(Y.id,{skills:Ke.skillsInherit?null:[...Ke.skillsPick].toSorted((e,t)=>e.localeCompare(t))}),{revalidate:!1})}catch(e){z(e instanceof Error?e.message:n.saveError)}finally{K(!1)}}}let _t=B===`channels`||B===`cron`,vt=(()=>{if(!Y||B!==`overview`)return!1;let e=Y.workspace,t=Y.model?.primary??``;return Te.trim()!==e||Oe.trim()!==t})(),yt=(()=>{if(_t||!Y)return!1;switch(B){case`overview`:return vt||Ge.dirty;case`profile`:return Ie;default:return!0}})(),bt=_t||!yt;function xt(){Ve(!0),setTimeout(()=>Ve(!1),2e3)}async function St(){switch(B){case`overview`:await Promise.all([st(),Fe.current?.()??Promise.resolve()]),xt();break;case`profile`:await Pe.current?.(),xt();break;case`tools`:await ft(),xt();break;case`models`:await mt(),xt();break;case`skills`:await gt(),xt();break;case`files`:X.saveProfileMarkdownDebounced.flush(),xt();break;default:break}}function Ct(e){e||w(ze)}let wt=Y?Ae.trim()||S(Y,n):T??``,Tt=Y?.id??T??``,Et=(0,$.useCallback)(async()=>{if(Y){await St();try{globalThis.localStorage?.setItem(Re,Y.id)}catch{}w(`/chat/new`,{state:{agentId:Y.id,fromAgentEditor:!0}})}},[Y,St,w]),Dt={a:n,chat:g,cCron:h,selected:Y,panel:B,data:L,busy:Ce,editName:Ae,setEditName:je,editDescription:Me,setEditDescription:Ne,editWorkspace:Te,setEditWorkspace:De,editModel:Oe,setEditModel:J,defaultModel:I.model,defaultWorkspace:I.workspace,onSetDefault:()=>{Y&&ct(Y)},onSaveAgentEdits:()=>void st(),onDelete:e=>{Y&&dt(Y,e)},onTryInChat:()=>void Et(),overviewSaveProfileMarkdownRef:Fe,profileSaveRef:Pe,overviewProfile:Ge,setProfileDirty:Le,filesLoading:X.filesLoading,files:X.files,activeFile:X.activeFile,setActiveFile:X.setActiveFile,filesViewMode:X.filesViewMode,setFilesViewMode:X.setFilesViewMode,fileDraft:X.fileDraft,setFileDraft:X.setFileDraft,fileSaving:X.fileSaving,profileFileLoading:X.profileFileLoading,profileEditorNonce:X.profileEditorNonce,toolEntryDisable:Ke.toolEntryDisable,setToolEntryDisable:Ke.setToolEntryDisable,onSaveTools:()=>void ft(),onClearToolsEntry:()=>void pt(),modelRows:Ke.modelRows,setModelRows:Ke.setModelRows,onSaveModels:()=>void mt(),onClearModelsEntry:()=>void ht(),skillsCatalogLoading:Je.skillsCatalogLoading,catalogForPick:Je.catalogForPick,skillsInherit:Ke.skillsInherit,setSkillsInherit:Ke.setSkillsInherit,skillsPick:Ke.skillsPick,setSkillsPick:Ke.setSkillsPick,onSaveSkills:()=>void gt(),bindingsLoading:Z.bindingsLoading,agentBindings:Z.agentBindings,bindChannelStatuses:Z.bindChannelStatuses,bindChannelsLoading:Z.bindChannelsLoading,useManualChannel:Z.useManualChannel,newBindChannel:Z.newBindChannel,setNewBindChannel:Z.setNewBindChannel,bindSessionChats:Z.bindSessionChats,bindSessionsLoading:Z.bindSessionsLoading,newBindSessionIdx:Z.newBindSessionIdx,setNewBindSessionIdx:Z.setNewBindSessionIdx,newBindCustomPeer:Z.newBindCustomPeer,setNewBindCustomPeer:Z.setNewBindCustomPeer,refreshBindSessions:Z.refreshBindSessions,onRemoveBinding:e=>void Z.onRemoveBinding(e),onAddBinding:Z.onAddBinding,cronLoading:qe.cronLoading,agentCronJobs:qe.agentCronJobs,onSetCronJobAgent:(e,t)=>void qe.onSetCronJobAgent(e,t)};return{hasToken:v,a:n,chat:g,language:e,data:L,loading:R,displayError:ne,navigate:w,routeAgentId:T,busy:Ce,listSearchQuery:q,openAddAgentModal:Xe,openDuplicateAgentModal:nt,duplicateSourceId:be,onSelectDuplicateSource:tt,panel:B,setPanel:V,modalTitle:wt,modalSubtitle:Tt,footerSaveDisabled:bt,savedFlash:Be,handleModalFooterSave:St,onAgentModalOpenChange:Ct,addAgentModalOpen:ve,setAddAgentModalOpen:ye,createWorkspaceSuggestedRef:G,createModalError:_e,setCreateModalError:W,createDisplayName:oe,setCreateDisplayName:se,createAgentId:le,setCreateAgentId:ue,createDescription:fe,setCreateDescription:H,createWorkspace:me,setCreateWorkspace:U,createModel:he,setCreateModel:ge,onCreate:it,currentLanguageLabel:e===`zh`?`中文`:`English`,applyCreateWorkspaceSuggestion:Ye,deleteDialogOpen:r,setDeleteDialogOpen:i,deletePurge:d,deleteTarget:s,setDeleteTarget:u,deleteConfirmText:p,setDeleteConfirmText:m,performDelete:ut,editorPanelProps:Dt}}function Un(){let e=Hn();return e.hasToken?(0,Q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-8`,children:[e.displayError?(0,Q.jsx)(`div`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`,children:e.displayError}):null,e.loading?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.a.loading}):e.data?(0,Q.jsx)(En,{a:e.a,agents:e.data.agents,searchQuery:e.listSearchQuery,onOpenAgent:t=>e.navigate(ke(t)),onChatWithAgent:t=>{let n=t.trim().toLowerCase();try{globalThis.localStorage?.setItem(Re,n)}catch{}e.navigate(`/chat/new`,{state:{agentId:n}})},busy:e.busy}):null,e.routeAgentId&&e.hasToken?(0,Q.jsx)(wt,{open:!!e.routeAgentId,onOpenChange:e.onAgentModalOpenChange,a:e.a,title:e.modalTitle,subtitle:e.modalSubtitle,panel:e.panel,onPanelChange:e.setPanel,onFooterSave:()=>void e.handleModalFooterSave(),footerSaveDisabled:e.footerSaveDisabled,footerSavedFlash:e.savedFlash,busy:e.busy,children:e.loading||!e.data?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.a.loading}):(0,Q.jsx)(yn,{...e.editorPanelProps})}):null,(0,Q.jsx)(kn,{open:e.addAgentModalOpen,onOpenChange:t=>{e.setAddAgentModalOpen(t),t||(e.createWorkspaceSuggestedRef.current=``,e.setCreateDisplayName(``),e.setCreateAgentId(``),e.setCreateDescription(``),e.setCreateWorkspace(``),e.setCreateModel(``),e.setCreateModalError(null),e.onSelectDuplicateSource(null))},a:e.a,chat:e.chat,busy:e.busy,modalError:e.createModalError,profileLanguageLabel:e.currentLanguageLabel,createDisplayName:e.createDisplayName,setCreateDisplayName:e.setCreateDisplayName,createAgentId:e.createAgentId,setCreateAgentId:e.setCreateAgentId,createDescription:e.createDescription,setCreateDescription:e.setCreateDescription,createWorkspace:e.createWorkspace,setCreateWorkspace:e.setCreateWorkspace,createModel:e.createModel,setCreateModel:e.setCreateModel,onCreate:e.onCreate,onSuggestWorkspace:()=>e.applyCreateWorkspaceSuggestion(),agents:e.data?.agents??[],duplicateSourceId:e.duplicateSourceId,onSelectDuplicateSource:e.onSelectDuplicateSource}),(0,Q.jsx)(yt,{open:e.deleteDialogOpen,onOpenChange:t=>{e.setDeleteDialogOpen(t),t||(e.setDeleteTarget(null),e.setDeleteConfirmText(``))},busy:e.busy,deletePurge:e.deletePurge,deleteTarget:e.deleteTarget,deleteConfirmText:e.deleteConfirmText,onDeleteConfirmTextChange:e.setDeleteConfirmText,onConfirm:()=>{e.deleteTarget&&e.performDelete(e.deleteTarget,e.deletePurge)},onCancel:()=>e.setDeleteDialogOpen(!1),a:e.a})]}):(0,Q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:[(0,Q.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:e.a.title}),(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.a.needToken})]})}export{nt as AgentBrowserSettingsPage,rt as AgentDefaultsTabbedPage,Un as AgentsSettingsPanel};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-Csef1aW7.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{c as s,i as c,n as l}from"./fetch-Bs7in_4F.js";import{$r as u,Da as d,Ea as f,Fa as p,Hi as m,Ho as h,Jr as g,Ma as _,Mi as v,Oi as y,Qr as b,Xr as x,Yr as S,Zo as C,Zr as w,_n as T,br as E,gi as D,gn as O,ji as k,ka as A,ki as j,os as M,pa as N,qa as P,qr as F,vi as I,xi as L,yr as R}from"./index-COkF54xv.js";import{n as z,t as ee}from"./settings-form-section-BsrK7TBF.js";var B=e(t(),1),V=n(),te=/^([^:=]+)[:=](.*)$/;function ne(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e))return Object.entries(e).map(([e,t])=>({key:e,value:t==null?``:String(t)}))}catch{}let n=[];for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t)continue;let r=te.exec(t);r&&n.push({key:r[1].trim(),value:r[2].trim()})}return n.length>0?n:null}function re(e){let t={};for(let n of e){let e=n.key.trim();e&&(t[e]=n.value)}return Object.keys(t).length>0?t:void 0}function ie(e){if(!e||typeof e!=`object`)return[{key:``,value:``}];let t=Object.entries(e).map(([e,t])=>({key:e,value:t==null?``:String(t)}));return t.length>0?t:[{key:``,value:``}]}function H(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e.xopcConnector;return!!(t&&typeof t==`object`&&!Array.isArray(t)&&t.managed===!0)}function U(e){let t=e&&typeof e==`object`&&`mcp`in e?e.mcp:void 0,n=(t&&typeof t==`object`?t:{}).servers,r={};if(!n||typeof n!=`object`||Array.isArray(n))return r;for(let[e,t]of Object.entries(n))!t||typeof t!=`object`||Array.isArray(t)||H(t)&&(r[e]=t);return r}function ae(e){let t=e.trim();if(t)return t.split(/\s+/).filter(Boolean)}function oe(e){let t=e.trim();if(!t)return;let n=JSON.parse(t);if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Expected a JSON object`);return n}function W(e){if(e.transport===`stdio`){let t={command:e.command.trim()},n=ae(e.argsText);return n?.length&&(t.args=n),e.cwd.trim()&&(t.cwd=e.cwd.trim()),e.envJson.trim()&&(t.env=oe(e.envJson)),e.connectionTimeoutMs!=null&&Number.isFinite(e.connectionTimeoutMs)&&(t.connectionTimeoutMs=e.connectionTimeoutMs),t}let t={url:e.url.trim(),transport:e.transport},n=re(e.headers);return n&&(t.headers=n),e.connectionTimeoutMs!=null&&Number.isFinite(e.connectionTimeoutMs)&&(t.connectionTimeoutMs=e.connectionTimeoutMs),t}function se(e,t){let n=typeof t.url==`string`&&t.url.trim().length>0,r=typeof t.transport==`string`?t.transport.trim().toLowerCase():``,i=n?r===`sse`?`sse`:`streamable-http`:`stdio`,a=t.headers&&typeof t.headers==`object`&&!Array.isArray(t.headers)?t.headers:void 0;return{clientKey:e,id:e,transport:i,command:typeof t.command==`string`?t.command:``,argsText:Array.isArray(t.args)?t.args.map(String).join(` `):``,envJson:t.env&&typeof t.env==`object`?JSON.stringify(t.env,null,2):``,cwd:typeof t.cwd==`string`?t.cwd:typeof t.workingDirectory==`string`?t.workingDirectory:``,url:typeof t.url==`string`?t.url:``,headers:ie(a),connectionTimeoutMs:typeof t.connectionTimeoutMs==`number`&&Number.isFinite(t.connectionTimeoutMs)?t.connectionTimeoutMs:void 0}}function ce(e=``){return{clientKey:crypto.randomUUID(),id:e,transport:`stdio`,command:``,argsText:``,envJson:``,cwd:``,url:``,headers:[{key:`Authorization`,value:``}],connectionTimeoutMs:void 0}}function le(e){let t=e&&typeof e==`object`&&`mcp`in e?e.mcp:void 0,n=t&&typeof t==`object`?t:{},r=n.servers,i=r&&typeof r==`object`&&!Array.isArray(r)?Object.entries(r).flatMap(([e,t])=>!t||typeof t!=`object`||Array.isArray(t)||H(t)?[]:[se(e,t)]).sort((e,t)=>e.id.localeCompare(t.id)):[],a=typeof n.sessionIdleTtlMs==`number`?n.sessionIdleTtlMs:void 0;return{sessionIdleTtlMinutes:a==null?void 0:a===0?0:Math.round(a/6e4),servers:i}}function ue(e){return W(e)}async function G(e,t={}){let n={};for(let r of e.servers){let e=r.id.trim();if(e){if(t[e])throw Error(`Server id "${e}" is reserved by an installed connector.`);n[e]=W(r)}}let r={servers:{...t,...n}};e.sessionIdleTtlMinutes!=null&&Number.isFinite(e.sessionIdleTtlMinutes)&&(r.sessionIdleTtlMs=e.sessionIdleTtlMinutes===0?0:Math.round(e.sessionIdleTtlMinutes*6e4)),await l(c(`/api/config`),{method:`PATCH`,body:JSON.stringify({mcp:r})}),R()}function de(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n==`string`){let e=n.trim();e&&t.push({name:e});continue}if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.name!=`string`)continue;let r=e.name.trim();if(!r)continue;let i=typeof e.shortName==`string`&&e.shortName.trim()?e.shortName.trim():void 0,a=typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0;t.push({name:r,shortName:i,description:a})}return t}async function K(e,t){let n=await l(c(`/api/mcp/servers/${encodeURIComponent(e)}/test`),{method:`POST`,body:t?JSON.stringify({server:t}):void 0});if(!n.payload)throw Error(n.error??`MCP test failed`);let r=de(n.payload.tools);return{serverId:n.payload.serverId??e,toolCount:typeof n.payload.toolCount==`number`?n.payload.toolCount:r.length,tools:r}}function fe(e){return e.connectionTimeoutMs==null||!Number.isFinite(e.connectionTimeoutMs)?``:String(Math.round(e.connectionTimeoutMs/1e3))}function pe(e){let t=e.trim();if(!t)return;let n=Number.parseInt(t,10);if(!(!Number.isFinite(n)||n<1||n>600))return n*1e3}function me(e,t){let n=e.length+1,r=`server-${n}`,i=new Set([...e.map(e=>e.id.trim()),...t]);for(;i.has(r);)n+=1,r=`server-${n}`;return ce(r)}var q=r();function he(e,t,n){let r=e.key.trim();if(r)return`key:${r}`;let i=e.value.trim();return i?`value:${i}`:`empty:${n.slice(0,t).filter(e=>!e.key.trim()&&!e.value.trim()).length}`}function J(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,y)}function ge({label:e,optionalLabel:t,addLabel:n,removeHeaderAria:r,pasteLabel:a,pasteFailed:o,keyPlaceholder:s,valuePlaceholder:c,headers:l,onChange:u}){let d=(e,t)=>{u(l.map((n,r)=>r===e?{...n,...t}:n))},f=()=>{u([...l,{key:``,value:``}])},p=e=>{let t=l.filter((t,n)=>n!==e);u(t.length>0?t:[{key:``,value:``}])},g=async()=>{try{let e=await I();if(!e){window.alert(o);return}let t=ne(e);if(!t?.length){window.alert(o);return}u(t)}catch{window.alert(o)}};return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 md:col-span-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[(0,q.jsx)(`span`,{children:e}),t?(0,q.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:t}):null]}),(0,q.jsxs)(j,{type:`button`,variant:`ghost`,className:`h-8 gap-1.5 px-2 text-xs`,onClick:()=>void g(),children:[(0,q.jsx)(h,{className:`size-3.5`,"aria-hidden":!0}),a]})]}),(0,q.jsx)(`div`,{className:`flex flex-col gap-2`,children:l.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`input`,{className:i(J(),`min-w-0 flex-1 font-mono text-xs`),value:e.key,placeholder:s,onChange:e=>d(t,{key:e.target.value})}),(0,q.jsx)(`input`,{className:i(J(),`min-w-0 flex-[1.4] font-mono text-xs`),value:e.value,placeholder:c,onChange:e=>d(t,{value:e.target.value})}),(0,q.jsx)(j,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 px-0`,disabled:l.length<=1&&!e.key&&!e.value,onClick:()=>p(t),"aria-label":r,children:(0,q.jsx)(m,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})})]},he(e,t,l)))}),(0,q.jsxs)(`button`,{type:`button`,className:i(`self-start text-sm text-accent hover:underline`,L.press),onClick:f,children:[`+ `,n]})]})}var _e=[`stdio`,`sse`,`streamable-http`];function Y(e){let t=(0,V.c)(11),{label:n,description:r,required:i,children:a}=e,o;t[0]===i?o=t[1]:(o=i?(0,q.jsx)(`span`,{className:`ml-0.5 text-danger`,children:`*`}):null,t[0]=i,t[1]=o);let s;t[2]!==n||t[3]!==o?(s=(0,q.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[n,o]}),t[2]=n,t[3]=o,t[4]=s):s=t[4];let c;t[5]===r?c=t[6]:(c=r?(0,q.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-subtle`,children:r}):null,t[5]=r,t[6]=c);let l;return t[7]!==a||t[8]!==s||t[9]!==c?(l=(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[s,a,c]}),t[7]=a,t[8]=s,t[9]=c,t[10]=l):l=t[10],l}function X(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,y)}function ve(e){let t=(0,V.c)(67),{row:n,t:r,onUpdate:a,idConflictMessage:o}=e,s=r.transportLabel,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=X(),t[0]=c):c=t[0];let l=n.transport,u;t[1]===a?u=t[2]:(u=e=>a({transport:e.target.value}),t[1]=a,t[2]=u);let d;t[3]===r.transportLabels?d=t[4]:(d=_e.map(e=>(0,q.jsx)(`option`,{value:e,children:r.transportLabels[e]},e)),t[3]=r.transportLabels,t[4]=d);let f;t[5]!==n.transport||t[6]!==u||t[7]!==d?(f=(0,q.jsx)(`select`,{className:c,value:l,onChange:u,children:d}),t[5]=n.transport,t[6]=u,t[7]=d,t[8]=f):f=t[8];let p;t[9]!==r.transportLabel||t[10]!==f?(p=(0,q.jsx)(Y,{label:s,required:!0,children:f}),t[9]=r.transportLabel,t[10]=f,t[11]=p):p=t[11];let m=r.serverIdLabel,h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=X(),t[12]=h):h=t[12];let g;t[13]===a?g=t[14]:(g=e=>a({id:e.target.value}),t[13]=a,t[14]=g);let _;t[15]!==n.id||t[16]!==r.serverIdPlaceholder||t[17]!==g?(_=(0,q.jsx)(`input`,{className:h,value:n.id,placeholder:r.serverIdPlaceholder,onChange:g}),t[15]=n.id,t[16]=r.serverIdPlaceholder,t[17]=g,t[18]=_):_=t[18];let v;t[19]===o?v=t[20]:(v=o?(0,q.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-300`,children:o}):null,t[19]=o,t[20]=v);let y;t[21]!==r.serverIdLabel||t[22]!==_||t[23]!==v?(y=(0,q.jsxs)(Y,{label:m,required:!0,children:[_,v]}),t[21]=r.serverIdLabel,t[22]=_,t[23]=v,t[24]=y):y=t[24];let b;t[25]!==a||t[26]!==n.argsText||t[27]!==n.command||t[28]!==n.cwd||t[29]!==n.envJson||t[30]!==n.headers||t[31]!==n.transport||t[32]!==n.url||t[33]!==r.addHeader||t[34]!==r.argsHint||t[35]!==r.argsLabel||t[36]!==r.commandLabel||t[37]!==r.cwdLabel||t[38]!==r.envHint||t[39]!==r.envLabel||t[40]!==r.headerKeyPlaceholder||t[41]!==r.headerValuePlaceholder||t[42]!==r.headersLabel||t[43]!==r.optionalSuffix||t[44]!==r.pasteHeaders||t[45]!==r.pasteHeadersFailed||t[46]!==r.removeHeader||t[47]!==r.urlLabel?(b=n.transport===`stdio`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Y,{label:r.commandLabel,required:!0,children:(0,q.jsx)(`input`,{className:X(),value:n.command,onChange:e=>a({command:e.target.value})})}),(0,q.jsx)(Y,{label:r.argsLabel,description:r.argsHint,children:(0,q.jsx)(`input`,{className:X(),value:n.argsText,onChange:e=>a({argsText:e.target.value})})}),(0,q.jsx)(Y,{label:r.cwdLabel,children:(0,q.jsx)(`input`,{className:X(),value:n.cwd,onChange:e=>a({cwd:e.target.value})})}),(0,q.jsx)(Y,{label:r.envLabel,description:r.envHint,children:(0,q.jsx)(`textarea`,{className:i(X(),`min-h-[4rem] font-mono text-xs`),value:n.envJson,onChange:e=>a({envJson:e.target.value})})})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`md:col-span-2`,children:(0,q.jsx)(Y,{label:r.urlLabel,required:!0,children:(0,q.jsx)(`input`,{className:i(X(),`font-mono text-xs`),value:n.url,placeholder:`https://example.com/mcp`,onChange:e=>a({url:e.target.value})})})}),(0,q.jsx)(ge,{label:r.headersLabel,optionalLabel:r.optionalSuffix,addLabel:r.addHeader,removeHeaderAria:r.removeHeader,pasteLabel:r.pasteHeaders,pasteFailed:r.pasteHeadersFailed,keyPlaceholder:r.headerKeyPlaceholder,valuePlaceholder:r.headerValuePlaceholder,headers:n.headers,onChange:e=>a({headers:e})})]}),t[25]=a,t[26]=n.argsText,t[27]=n.command,t[28]=n.cwd,t[29]=n.envJson,t[30]=n.headers,t[31]=n.transport,t[32]=n.url,t[33]=r.addHeader,t[34]=r.argsHint,t[35]=r.argsLabel,t[36]=r.commandLabel,t[37]=r.cwdLabel,t[38]=r.envHint,t[39]=r.envLabel,t[40]=r.headerKeyPlaceholder,t[41]=r.headerValuePlaceholder,t[42]=r.headersLabel,t[43]=r.optionalSuffix,t[44]=r.pasteHeaders,t[45]=r.pasteHeadersFailed,t[46]=r.removeHeader,t[47]=r.urlLabel,t[48]=b):b=t[48];let x=r.timeoutLabel,S=r.timeoutHint,C;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(C=X(),t[49]=C):C=t[49];let w;t[50]===n?w=t[51]:(w=fe(n),t[50]=n,t[51]=w);let T;t[52]===a?T=t[53]:(T=e=>a({connectionTimeoutMs:pe(e.target.value)}),t[52]=a,t[53]=T);let E;t[54]!==r.timeoutPlaceholder||t[55]!==w||t[56]!==T?(E=(0,q.jsx)(`input`,{type:`number`,min:1,max:600,className:C,value:w,placeholder:r.timeoutPlaceholder,onChange:T}),t[54]=r.timeoutPlaceholder,t[55]=w,t[56]=T,t[57]=E):E=t[57];let D;t[58]!==r.timeoutHint||t[59]!==r.timeoutLabel||t[60]!==E?(D=(0,q.jsx)(Y,{label:x,description:S,children:E}),t[58]=r.timeoutHint,t[59]=r.timeoutLabel,t[60]=E,t[61]=D):D=t[61];let O;return t[62]!==y||t[63]!==b||t[64]!==D||t[65]!==p?(O=(0,q.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[p,y,b,D]}),t[62]=y,t[63]=b,t[64]=D,t[65]=p,t[66]=O):O=t[66],O}function ye(e,t){return e?t&&e.startsWith(t)?e.slice(t.length):e:``}function be(e,t,n){let r=t.trim().toLowerCase();if(!r)return!0;let i=e.shortName||ye(e.name,n);return[e.name,i,e.description].filter(Boolean).join(`
2
- `).toLowerCase().includes(r)}function xe(e,t){return e?t&&e.startsWith(t)?e.slice(t.length):e:``}function Se(e){let t=(0,V.c)(29),{tools:n,stripPrefix:r,searchPlaceholder:a,searchEmptyLabel:o}=e,[s,c]=(0,B.useState)(``),l;if(t[0]!==s||t[1]!==r||t[2]!==n){let e;t[4]!==s||t[5]!==r?(e=e=>be(e,s,r),t[4]=s,t[5]=r,t[6]=e):e=t[6],l=n.filter(e),t[0]=s,t[1]=r,t[2]=n,t[3]=l}else l=t[3];let u=l,d;t[7]===s?d=t[8]:(d=s.trim(),t[7]=s,t[8]=d);let f=d.length>0,p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,q.jsx)(N,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[9]=p):p=t[9];let m,h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=i(`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,y),h=e=>c(e.target.value),t[10]=m,t[11]=h):(m=t[10],h=t[11]);let g;t[12]!==s||t[13]!==a?(g=(0,q.jsxs)(`div`,{className:`relative`,children:[p,(0,q.jsx)(`input`,{type:`search`,value:s,placeholder:a,"aria-label":a,className:m,onChange:h})]}),t[12]=s,t[13]=a,t[14]=g):g=t[14];let _;t[15]!==u.length||t[16]!==f||t[17]!==n.length?(_=f?(0,q.jsxs)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:[u.length,` / `,n.length]}):null,t[15]=u.length,t[16]=f,t[17]=n.length,t[18]=_):_=t[18];let v;t[19]!==g||t[20]!==_?(v=(0,q.jsxs)(`div`,{className:`border-b border-edge px-5 py-3`,children:[g,_]}),t[19]=g,t[20]=_,t[21]=v):v=t[21];let b;t[22]!==u||t[23]!==o||t[24]!==r?(b=(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:u.length===0?(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:o}):(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:u.map((e,t)=>{let n=e.shortName||xe(e.name,r)||e.name||`?`,i=e.name||`tool-${t}`;return(0,q.jsxs)(`li`,{className:`min-w-0 rounded-lg border border-edge bg-surface-base px-3 py-2.5`,children:[(0,q.jsx)(`div`,{className:`truncate font-mono text-sm font-medium text-fg`,title:e.name===n?n:e.name,children:n}),e.description?(0,q.jsx)(`p`,{className:`mt-1 truncate text-xs leading-relaxed text-fg-muted`,title:e.description,children:e.description}):null]},i)})})}),t[22]=u,t[23]=o,t[24]=r,t[25]=b):b=t[25];let x;return t[26]!==v||t[27]!==b?(x=(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[v,b]}),t[26]=v,t[27]=b,t[28]=x):x=t[28],x}function Ce(e){let t=(0,V.c)(38),{open:n,onOpenChange:r,serverId:a,title:o,subtitle:s,searchPlaceholder:c,searchEmptyLabel:l,emptyLabel:d,closeLabel:f,tools:p,stripPrefix:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,q.jsx)(x,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,T)}),t[0]=h):h=t[0];let _;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=i(`fixed left-1/2 top-1/2 flex max-h-[min(88vh,40rem)] w-[min(100%-2rem,min(92vw,36rem))] -translate-x-1/2 -translate-y-1/2 flex-col`,O,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none dark:border-edge`),t[1]=_):_=t[1];let y;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,q.jsx)(v,{className:`size-4 shrink-0 text-accent`,"aria-hidden":!0}),t[2]=y):y=t[2];let C;t[3]===o?C=t[4]:(C=(0,q.jsxs)(u,{className:`flex items-center gap-2 text-base font-semibold text-fg`,children:[y,o]}),t[3]=o,t[4]=C);let E;t[5]!==a||t[6]!==s||t[7]!==p.length?(E=s.replace(`{{serverId}}`,a).replace(`{{count}}`,String(p.length)),t[5]=a,t[6]=s,t[7]=p.length,t[8]=E):E=t[8];let D;t[9]===E?D=t[10]:(D=(0,q.jsx)(S,{className:`mt-1 text-sm text-fg-muted`,children:E}),t[9]=E,t[10]=D);let A;t[11]!==C||t[12]!==D?(A=(0,q.jsxs)(`div`,{className:`min-w-0`,children:[C,D]}),t[11]=C,t[12]=D,t[13]=A):A=t[13];let M;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,q.jsx)(k,{className:`size-4`,"aria-hidden":!0}),t[14]=M):M=t[14];let N;t[15]===f?N=t[16]:(N=(0,q.jsx)(F,{asChild:!0,children:(0,q.jsx)(j,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 px-0`,"aria-label":f,children:M})}),t[15]=f,t[16]=N);let P;t[17]!==A||t[18]!==N?(P=(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-edge px-5 py-4`,children:[A,N]}),t[17]=A,t[18]=N,t[19]=P):P=t[19];let I;t[20]!==d||t[21]!==n||t[22]!==l||t[23]!==c||t[24]!==a||t[25]!==m||t[26]!==p?(I=p.length>0?(0,q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,q.jsx)(Se,{tools:p,stripPrefix:m,searchPlaceholder:c,searchEmptyLabel:l},`${a}-${n?`open`:`closed`}`)}):(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:d})}),t[20]=d,t[21]=n,t[22]=l,t[23]=c,t[24]=a,t[25]=m,t[26]=p,t[27]=I):I=t[27];let L;t[28]===f?L=t[29]:(L=(0,q.jsx)(`div`,{className:`flex justify-end border-t border-edge px-5 py-3`,children:(0,q.jsx)(F,{asChild:!0,children:(0,q.jsx)(j,{type:`button`,variant:`secondary`,children:f})})}),t[28]=f,t[29]=L);let R;t[30]!==P||t[31]!==I||t[32]!==L?(R=(0,q.jsxs)(w,{children:[h,(0,q.jsxs)(g,{className:_,children:[P,I,L]})]}),t[30]=P,t[31]=I,t[32]=L,t[33]=R):R=t[33];let z;return t[34]!==r||t[35]!==n||t[36]!==R?(z=(0,q.jsx)(b,{open:n,onOpenChange:r,children:R}),t[34]=r,t[35]=n,t[36]=R,t[37]=z):z=t[37],z}function we({open:e,mode:t,initialRow:n,existingCustomServers:r,sessionIdleTtlMinutes:i,config:a,managedServerIds:o,t:s,cs:c,onClose:l,onSaved:u}){let[d,f]=(0,B.useState)(n),[p,m]=(0,B.useState)(!1),[h,g]=(0,B.useState)(!1),[_,y]=(0,B.useState)(null),[b,x]=(0,B.useState)({status:`idle`}),[S,w]=(0,B.useState)(null),T=n.id.trim(),E=d.id.trim()!==T&&o.has(d.id.trim())||o.has(d.id.trim())&&t===`add`?s.reservedServerId:void 0,D=d.id.trim()&&r.some(e=>e.clientKey!==n.clientKey&&e.id.trim()===d.id.trim())?c.duplicateServerId:void 0,O=d.id.trim().length>0&&!E&&!D&&(d.transport===`stdio`?d.command.trim().length>0:d.url.trim().length>0),k=(0,B.useCallback)(async()=>{if(d.id.trim()){g(!0),y(null),x({status:`loading`});try{x({status:`ok`,tools:(await K(d.id.trim(),ue(d))).tools})}catch(e){x({status:`error`,message:e instanceof Error?e.message:String(e)})}finally{g(!1)}}},[d]),M=(0,B.useCallback)(async()=>{if(!(!O||p)){m(!0),y(null);try{let e=r.filter(e=>!(t===`edit`&&e.clientKey===n.clientKey));e.push(d),await G({sessionIdleTtlMinutes:i,servers:e.sort((e,t)=>e.id.localeCompare(t.id))},U(a)),await u(),l()}catch(e){y(e instanceof Error?e.message:String(e))}finally{m(!1)}}},[O,a,r,n.clientKey,t,l,u,T,d,p,i]);return e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/35 px-4 py-8`,children:(0,q.jsxs)(`div`,{className:`max-h-full w-full max-w-2xl overflow-auto rounded-3xl border border-edge bg-surface-base p-5 shadow-2xl`,children:[(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:t===`add`?c.addCustomServerTitle:c.editCustomServerTitle}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t===`add`?c.addCustomServerHint:c.editCustomServerHint})]}),(0,q.jsx)(j,{variant:`ghost`,onClick:l,children:c.modalClose})]}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-col gap-4`,children:[(0,q.jsx)(ve,{row:d,t:s,onUpdate:e=>{f(t=>({...t,...e})),y(null)},idConflictMessage:E??D}),b.status===`ok`?(0,q.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2.5`,children:(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,q.jsx)(v,{className:`size-4 text-accent`,"aria-hidden":!0}),b.tools.length===0?s.toolsEmpty:s.toolsTitle.replace(`{{count}}`,String(b.tools.length))]}),b.tools.length>0?(0,q.jsx)(j,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,onClick:()=>w(b.tools),children:s.viewAllTools}):null]})}):null,b.status===`error`?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:b.message}):null,_?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:_}):null]}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-wrap justify-end gap-2`,children:[(0,q.jsxs)(j,{variant:`secondary`,disabled:!d.id.trim()||h,onClick:()=>void k(),children:[h?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(A,{className:`size-4`}),s.testConnection]}),(0,q.jsx)(j,{variant:`secondary`,onClick:l,children:c.modalCancel}),(0,q.jsxs)(j,{variant:`primary`,disabled:!O||p,onClick:()=>void M(),children:[p?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(C,{className:`size-4`}),p?s.saving:c.modalSave]})]})]})}),S?(0,q.jsx)(Ce,{open:!0,onOpenChange:e=>{e||w(null)},serverId:d.id,title:s.toolsDialogTitle,subtitle:s.toolsDialogSubtitle,searchPlaceholder:s.toolsDialogSearchPlaceholder,searchEmptyLabel:s.toolsDialogSearchEmpty,emptyLabel:s.toolsEmpty,closeLabel:s.toolsDialogClose,tools:S,stripPrefix:`${d.id.trim()}__`}):null]}):null}function Te(e){if(e.transport===`stdio`){let t=e.command.trim();if(!t)return``;let n=e.argsText.trim();return n?`${t} ${n}`:t}return e.url.trim()}function Z(e,t){if(!e.payload)throw Error(e.error??t);return e.payload}async function Ee(){return Z(await l(c(`/api/connectors/catalog`)),`Could not load connector catalog.`).connectors}async function De(){return Z(await l(c(`/api/connectors/installed`)),`Could not load installed connectors.`).instances}async function Oe(e){return Z(await l(c(`/api/connectors/${encodeURIComponent(e)}/oauth/start`),{method:`POST`}),`Could not start connector OAuth.`).oauth}async function ke(e,t){return Z(await l(c(`/api/connectors/${encodeURIComponent(e)}/oauth/complete`),{method:`POST`,body:JSON.stringify({deviceCode:t})}),`Could not complete connector OAuth.`).oauth}async function Ae(e,t){let n=await l(c(`/api/connectors/${encodeURIComponent(e)}/install`),{method:`POST`,body:JSON.stringify(t)});return R(),Z(n,`Could not install connector.`).instance}async function je(e){await l(c(`/api/connectors/${encodeURIComponent(e)}`),{method:`DELETE`}),R()}async function Q(e){return Z(await l(c(`/api/connectors/${encodeURIComponent(e)}/test`),{method:`POST`}),`Connector test failed.`)}var $=i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,y),Me=i($,`min-h-28 font-mono`);function Ne(e,t){let n=t.trim();return e===`json`?n?JSON.parse(n):void 0:e===`number`?n?Number(n):void 0:e===`boolean`?n===`true`:n||void 0}function Pe(e){let t={};for(let n of e.setup.secrets??[])t[n.key]=``;let n={};for(let t of e.setup.config??[])n[t.key]=t.defaultValue===void 0?``:typeof t.defaultValue==`string`?t.defaultValue:JSON.stringify(t.defaultValue,null,2);return{connector:e,secrets:t,config:n,installing:!1,error:null,result:null,health:null,oauth:{flow:null,connected:e.auth.mode!==`oauth`}}}function Fe(e,t){return t.some(t=>t.connectorId===e.id)}function Ie(e){let t=(0,V.c)(32),{connector:n,installed:r,onInstall:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,q.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-2xl bg-accent-soft text-accent-fg`,children:(0,q.jsx)(M,{className:`size-5`,"aria-hidden":!0})}),t[0]=a):a=t[0];let o;t[1]===n.displayName?o=t[2]:(o=(0,q.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n.displayName}),t[1]=n.displayName,t[2]=o);let s;t[3]===n.category?s=t[4]:(s=(0,q.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:n.category}),t[3]=n.category,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l;t[8]===n.description?l=t[9]:(l=(0,q.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:n.description}),t[8]=n.description,t[9]=l);let u;t[10]!==c||t[11]!==l?(u=(0,q.jsxs)(`div`,{className:`flex min-w-0 gap-3`,children:[a,(0,q.jsxs)(`div`,{className:`min-w-0`,children:[c,l]})]}),t[10]=c,t[11]=l,t[12]=u):u=t[12];let d=r?`secondary`:`primary`,f;t[13]!==n||t[14]!==i?(f=()=>i(n),t[13]=n,t[14]=i,t[15]=f):f=t[15];let m;t[16]===r?m=t[17]:(m=r?(0,q.jsx)(C,{className:`size-4`}):(0,q.jsx)(p,{className:`size-4`}),t[16]=r,t[17]=m);let h=r?`Installed`:`Install`,g;t[18]!==r||t[19]!==h||t[20]!==d||t[21]!==f||t[22]!==m?(g=(0,q.jsxs)(j,{variant:d,disabled:r,onClick:f,children:[m,h]}),t[18]=r,t[19]=h,t[20]=d,t[21]=f,t[22]=m,t[23]=g):g=t[23];let _;t[24]!==g||t[25]!==u?(_=(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[u,g]}),t[24]=g,t[25]=u,t[26]=_):_=t[26];let v;t[27]===n.tags?v=t[28]:(v=n.tags?.length?(0,q.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:n.tags.map(Le)}):null,t[27]=n.tags,t[28]=v);let y;return t[29]!==_||t[30]!==v?(y=(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4 shadow-surface`,children:[_,v]}),t[29]=_,t[30]=v,t[31]=y):y=t[31],y}function Le(e){return(0,q.jsx)(`span`,{className:`rounded-full border border-edge px-2 py-0.5 text-[11px] text-fg-subtle`,children:e},e)}function Re({draft:e,onChange:t,onClose:n,onInstalled:r}){let{connector:i}=e,a=(0,B.useCallback)(async()=>{t({...e,installing:!0,error:null});try{let n=await Oe(i.id);window.open(n.verificationUri,`_blank`,`noopener,noreferrer`),t({...e,installing:!1,error:null,oauth:{flow:n,connected:!1}})}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}},[i.id,e,t]),o=(0,B.useCallback)(async()=>{if(e.oauth.flow){t({...e,installing:!0,error:null});try{await ke(i.id,e.oauth.flow.deviceCode),t({...e,installing:!1,error:null,oauth:{...e.oauth,connected:!0}})}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}}},[i.id,e,t]),s=(0,B.useCallback)(async()=>{t({...e,installing:!0,error:null,result:null,health:null});try{if(i.auth.mode===`oauth`&&!e.oauth.connected)throw Error(`Connect GitHub OAuth before installing this connector.`);let n={};for(let t of i.setup.config??[]){let r=Ne(t.type,e.config[t.key]??``);r!==void 0&&(n[t.key]=r)}let a=await Ae(i.id,{secrets:e.secrets,config:n}),o=null;try{o=await Q(a.instanceId)}catch{o=null}t({...e,installing:!1,result:a,health:o}),await r()}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}},[i.auth.mode,i.id,i.setup.config,e,t,r]);return(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/35 px-4 py-8`,children:(0,q.jsxs)(`div`,{className:`max-h-full w-full max-w-2xl overflow-auto rounded-3xl border border-edge bg-surface-base p-5 shadow-2xl`,children:[(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`h2`,{className:`text-lg font-semibold text-fg`,children:[`Install `,i.displayName]}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:i.description})]}),(0,q.jsx)(j,{variant:`ghost`,onClick:n,children:`Close`})]}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-col gap-4`,children:[i.auth.mode===`oauth`?(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4`,children:[(0,q.jsx)(`p`,{className:`text-sm font-semibold text-fg`,children:`Connect with GitHub`}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:`Authorize xopc in GitHub, then return here to finish the connection.`}),e.oauth.flow?(0,q.jsxs)(`div`,{className:`mt-3 rounded-xl bg-surface-base p-3 text-sm text-fg-muted`,children:[(0,q.jsxs)(`p`,{children:[`Open `,(0,q.jsx)(`span`,{className:`font-medium text-fg`,children:e.oauth.flow.verificationUri}),` and enter this code:`]}),(0,q.jsx)(`p`,{className:`mt-2 font-mono text-lg font-semibold tracking-widest text-fg`,children:e.oauth.flow.userCode})]}):null,e.oauth.connected?(0,q.jsx)(`p`,{className:`mt-3 rounded-xl bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700`,children:`GitHub connected. You can install this connector now.`}):null,(0,q.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,q.jsxs)(j,{variant:`secondary`,disabled:e.installing,onClick:()=>void a(),children:[e.installing&&!e.oauth.flow?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(A,{className:`size-4`}),`Connect GitHub`]}),(0,q.jsxs)(j,{variant:`primary`,disabled:e.installing||!e.oauth.flow,onClick:()=>void o(),children:[e.installing&&e.oauth.flow?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(C,{className:`size-4`}),`I authorized GitHub`]})]})]}):null,(i.setup.secrets??[]).map(n=>(0,q.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.label}),n.description?(0,q.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n.description}):null,(0,q.jsx)(D,{value:e.secrets[n.key]??``,onChange:r=>t({...e,secrets:{...e.secrets,[n.key]:r},error:null}),labels:{show:`Show`,hide:`Hide`,copy:`Copy`,copied:`Copied`},placeholder:n.required?`Required`:`Optional`})]},n.key)),(i.setup.config??[]).map(n=>(0,q.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.label}),n.type===`json`?(0,q.jsx)(`textarea`,{className:Me,value:e.config[n.key]??``,placeholder:n.placeholder,onChange:r=>t({...e,config:{...e.config,[n.key]:r.currentTarget.value},error:null})}):(0,q.jsx)(`input`,{className:$,value:e.config[n.key]??``,placeholder:n.placeholder,onChange:r=>t({...e,config:{...e.config,[n.key]:r.currentTarget.value},error:null})})]},n.key)),e.error?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:e.error}):null,e.result?(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-3 text-sm text-fg-muted`,children:[(0,q.jsxs)(`p`,{className:`font-medium text-fg`,children:[`Installed as `,e.result.materialized.serverId]}),e.health?(0,q.jsxs)(`p`,{className:`mt-1`,children:[e.health.toolCount,` tools discovered.`]}):(0,q.jsx)(`p`,{className:`mt-1`,children:`Installed. Tool preview can be tested from Installed.`})]}):null]}),(0,q.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,q.jsx)(j,{variant:`secondary`,onClick:n,children:`Done`}),(0,q.jsxs)(j,{variant:`primary`,disabled:e.installing||i.auth.mode===`oauth`&&!e.oauth.connected,onClick:()=>void s(),children:[e.installing?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(p,{className:`size-4`}),`Install`]})]})]})})}function ze({instance:e,onChanged:t}){let[n,r]=(0,B.useState)(!1),[i,a]=(0,B.useState)(!1),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)(null),u=(0,B.useCallback)(async()=>{r(!0),l(null);try{s(await Q(e.instanceId)),await t()}catch(e){l(e instanceof Error?e.message:String(e))}finally{r(!1)}},[e.instanceId,t]),d=(0,B.useCallback)(async()=>{a(!0),l(null);try{await je(e.instanceId),await t()}catch(e){l(e instanceof Error?e.message:String(e)),a(!1)}},[e.instanceId,t]);return(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4 shadow-surface`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.displayName}),(0,q.jsx)(`span`,{className:`rounded-full border border-edge bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:`catalog`})]}),(0,q.jsxs)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:[`MCP server: `,e.materialized.serverId]})]}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(j,{variant:`secondary`,disabled:n,onClick:()=>void u(),children:[n?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(A,{className:`size-4`}),`Test`]}),(0,q.jsxs)(j,{variant:`ghost`,disabled:i,onClick:()=>void d(),children:[i?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(m,{className:`size-4`}),`Remove`]})]})]}),c?(0,q.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:c}):null,o?(0,q.jsxs)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:[o.toolCount,` tools discovered.`]}):null]})}function Be({row:e,t,cs:n,onEdit:r,onRemove:i}){let[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(!1),[l,u]=(0,B.useState)(null),[d,f]=(0,B.useState)(null),p=Te(e),h=(0,B.useCallback)(async()=>{o(!0),f(null);try{u((await K(e.id.trim())).toolCount)}catch(e){f(e instanceof Error?e.message:String(e))}finally{o(!1)}},[e.id]),g=(0,B.useCallback)(async()=>{c(!0),f(null);try{await i()}catch(e){f(e instanceof Error?e.message:String(e)),c(!1)}},[i]);return(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4 shadow-surface`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.id.trim()||t.cardUntitled}),(0,q.jsx)(`span`,{className:`rounded-full border border-edge bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:n.customBadge}),(0,q.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:t.transportLabels[e.transport]})]}),p?(0,q.jsx)(`p`,{className:`mt-1 truncate font-mono text-xs text-fg-subtle`,title:p,children:p}):null]}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(j,{variant:`secondary`,disabled:a,onClick:()=>void h(),children:[a?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(A,{className:`size-4`}),t.testConnection]}),(0,q.jsxs)(j,{variant:`secondary`,onClick:r,children:[(0,q.jsx)(_,{className:`size-4`}),n.editCustomServer]}),(0,q.jsxs)(j,{variant:`ghost`,disabled:s,onClick:()=>void g(),children:[s?(0,q.jsx)(P,{className:`size-4 animate-spin`}):(0,q.jsx)(m,{className:`size-4`}),t.removeServer]})]})]}),d?(0,q.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:d}):null,l==null?null:(0,q.jsxs)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:[l,` tools discovered.`]})]})}function Ve(){let e=a(o(e=>e.language)),t=e.connectorsSettings,n=e.mcpSettings,r=s(e=>e.token),i=!!r,[c,l]=(0,B.useState)(`installed`),[u,p]=(0,B.useState)({catalog:[],instances:[],loading:!0,error:null}),[m,h]=(0,B.useState)(null),[g,_]=(0,B.useState)(null),[v,y]=(0,B.useState)(void 0),[b,x]=(0,B.useState)(!1),[S,C]=(0,B.useState)(!1),{data:w,mutate:T}=E(i),D=w?.payload?.config,O=(0,B.useMemo)(()=>D===void 0?null:le(D),[D]),k=O?.servers??[];(0,B.useEffect)(()=>{O&&y(O.sessionIdleTtlMinutes)},[O]);let A=(0,B.useCallback)(async()=>{if(!r){p({catalog:[],instances:[],loading:!1,error:null});return}p(e=>({...e,loading:!0,error:null}));try{let[e,t]=await Promise.all([Ee(),De()]);p({catalog:e,instances:t,loading:!1,error:null})}catch(e){p({catalog:[],instances:[],loading:!1,error:e instanceof Error?e.message:String(e)})}},[r]);(0,B.useEffect)(()=>{A()},[A]);let M=(0,B.useMemo)(()=>new Set(u.instances.map(e=>e.connectorId)),[u.instances]),N=(0,B.useMemo)(()=>new Set(u.instances.map(e=>e.materialized.serverId)),[u.instances]),F=(0,B.useCallback)(async e=>{if(!O||D===void 0)return;let t=k.filter(t=>t.clientKey!==e.clientKey);await G({sessionIdleTtlMinutes:O.sessionIdleTtlMinutes,servers:t},U(D)),await T(),await A()},[D,k,A,O,T]),I=(0,B.useCallback)(async()=>{if(!(!O||D===void 0||b)){x(!0),C(!1);try{await G({sessionIdleTtlMinutes:v,servers:k},U(D)),await T(),C(!0)}finally{x(!1)}}},[D,k,O,T,v,b]),L=u.instances.length+k.length;return(0,q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-5 px-4 py-8`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h1`,{className:`text-xl font-semibold text-fg`,children:t.title}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t.subtitle})]}),i?null:(0,q.jsx)(`p`,{className:`rounded-xl border border-edge bg-surface-panel px-4 py-3 text-sm text-fg-muted`,children:t.tokenHint}),(0,q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:[`installed`,`discover`].map(e=>(0,q.jsx)(j,{variant:c===e?`primary`:`secondary`,onClick:()=>l(e),children:e===`installed`?t.tabInstalled:t.tabDiscover},e))}),u.loading&&i?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-fg-muted`,children:[(0,q.jsx)(P,{className:`size-4 animate-spin`}),t.loading]}):null,u.error?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:u.error}):null,c===`installed`&&i?(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsxs)(ee,{children:[(0,q.jsx)(z,{icon:d,title:n.globalTitle,subtitle:n.globalHint}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-end`,children:[(0,q.jsxs)(`label`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.idleTtlLabel}),(0,q.jsx)(`input`,{type:`number`,min:0,className:$,value:v??``,placeholder:n.idleTtlPlaceholder,onChange:e=>{let t=e.target.value.trim();y(t===``?void 0:Number.parseInt(t,10)),C(!1)}}),(0,q.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n.idleTtlHint})]}),(0,q.jsxs)(j,{variant:`secondary`,disabled:b,onClick:()=>void I(),children:[b?(0,q.jsx)(P,{className:`size-4 animate-spin`}):null,n.save]})]}),S?(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.saved}):null]}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.installedTitle}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t.installedHint})]}),(0,q.jsxs)(j,{variant:`primary`,onClick:()=>_({mode:`add`,row:me(k,N)}),children:[(0,q.jsx)(f,{className:`size-4`}),t.addCustomServer]})]}),L===0?(0,q.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge p-8 text-center text-sm text-fg-muted`,children:t.installedEmpty}):(0,q.jsxs)(`div`,{className:`grid gap-3`,children:[u.instances.map(e=>(0,q.jsx)(ze,{instance:e,onChanged:A},e.instanceId)),k.map(e=>(0,q.jsx)(Be,{row:e,t:n,cs:t,onEdit:()=>_({mode:`edit`,row:structuredClone(e)}),onRemove:async()=>F(e)},e.clientKey))]}),(0,q.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.disableHint})]}):null,c===`discover`&&i?(0,q.jsxs)(`div`,{className:`grid gap-3`,children:[(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.catalogHint}),u.catalog.map(e=>(0,q.jsx)(Ie,{connector:e,installed:M.has(e.id)||Fe(e,u.instances),onInstall:e=>h(Pe(e))},e.id))]}):null,m?(0,q.jsx)(Re,{draft:m,onChange:h,onClose:()=>h(null),onInstalled:async()=>{await A(),await T(),h(null),l(`installed`)}}):null,g?(0,q.jsx)(we,{open:!0,mode:g.mode,initialRow:g.row,existingCustomServers:k,sessionIdleTtlMinutes:v,config:D,managedServerIds:N,t:n,cs:t,onClose:()=>_(null),onSaved:async()=>{await T(),await A(),l(`installed`)}},`${g.mode}-${g.row.clientKey}`):null]})}export{Ve as ConnectorsSettingsPanel};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./fetch-Bs7in_4F.js";import{st as n}from"./index-COkF54xv.js";import{r}from"./interval-presets-B29Ss_2y.js";function i(e,t){let n=e?.trim()||``;return n?n.length<=t?n:`${n.slice(0,t-1)}…`:`—`}function a(e){return e==null||!Number.isFinite(e)?`—`:e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.round(e%6e4/1e3)}s`}function o(e){return new Date(e).toLocaleString()}function s(e,t){let n=typeof e==`string`?new Date(e):e,r=new Date,i=n.getTime()-r.getTime();if(i<0)return t.overdue;if(i<6e4)return t.lessThanMinute;if(i<36e5){let e=Math.floor(i/6e4);return t.minutes.replace(`{{count}}`,String(e))}if(i<864e5){let e=Math.floor(i/36e5);return t.hours.replace(`{{count}}`,String(e))}return n.toLocaleString()}function c(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime();if(r<0||r<6e4)return t.justNow;if(r<36e5){let e=Math.floor(r/6e4);return t.minutesAgo.replace(`{{count}}`,String(e))}if(r<864e5){let e=Math.floor(r/36e5);return t.hoursAgo.replace(`{{count}}`,String(e))}if(r<6048e5){let e=Math.floor(r/864e5);return t.daysAgo.replace(`{{count}}`,String(e))}return n.toLocaleDateString()}function l(e,t){let n=c(e.lastActive,t);return e.channel===`telegram`&&e.peerId?`${e.accountId??`default`} · ${e.peerKind??``} · ${e.peerId} · ${n}`:`${e.channel}: ${e.chatId} · ${n}`}function u(e,t){if(e.delivery?.channel===`local`)return t;let n=e.delivery?.to??``,r=n.split(`:`);return r.length===3&&(r[1]===`dm`||r[1]===`group`)?`${r[0]} · ${r[1]} · ${r[2]}`:n}function d(e,t){switch(e){case`running`:return t.running;case`success`:return t.success;case`failed`:return t.failed;case`cancelled`:return t.cancelled;default:return e}}function f(e,t,n){return r(e.schedule||``,t,n,{timezone:e.timezone,nextRun:e.next_run})}function p(e){let t=e.payload;return t.kind===`systemEvent`?t.text:t.kind===`agentTurn`?t.message:t.goal||t.definitionId}function m(e){if(!e||typeof e!=`object`)return``;let t=e.agents?.defaults?.models?.chat;if(t==null)return``;if(typeof t==`string`)return t.trim();if(typeof t==`object`&&t&&`primary`in t){let e=t.primary;return typeof e==`string`?e.trim():``}return``}async function h(e,n){let r=await t(e,n),i=await r.json().catch(()=>({}));if(!r.ok){let e=typeof i.error==`string`?i.error:`HTTP ${r.status}`;throw Error(e)}return i}async function g(){return(await h(e(`/api/cron`))).jobs||[]}async function _(n){let r=await t(e(`/api/cron/${encodeURIComponent(n)}`));if(r.status===404)return null;let i=await r.json().catch(()=>({}));if(!r.ok)throw Error(typeof i.error==`string`?i.error:`HTTP ${r.status}`);return i.job??null}async function v(t,n){return h(e(`/api/cron`),{method:`POST`,body:JSON.stringify({schedule:t,...n})})}async function y(t,n){return(await h(e(`/api/cron/${encodeURIComponent(t)}`),{method:`PATCH`,body:JSON.stringify(n)})).updated}async function b(t){return(await h(e(`/api/cron/${encodeURIComponent(t)}`),{method:`DELETE`})).removed}async function x(t,n){return(await h(e(`/api/cron/${encodeURIComponent(t)}/toggle`),{method:`POST`,body:JSON.stringify({enabled:n})})).toggled}async function S(t){await h(e(`/api/cron/${encodeURIComponent(t)}/run`),{method:`POST`})}async function C(t,n=10){return(await h(e(`/api/cron/${encodeURIComponent(t)}/history?limit=${n}`))).history||[]}async function w(t=40){return(await h(e(`/api/cron/runs/history?limit=${t}`))).runs||[]}async function T(){return(await h(e(`/api/channels/status`))).payload?.channels||[]}async function E(){return(await n()).map(e=>({id:e.id,name:e.name,provider:e.provider}))}async function D(){let t=(await h(e(`/api/config`))).payload?.config;return{model:m(t)}}async function O(t){return(await h(e(`/api/sessions/chat-ids${t?`?channel=${encodeURIComponent(t)}`:``}`))).payload?.chatIds||[]}export{i as S,a as _,D as a,f as b,E as c,b as d,S as f,u as g,d as h,T as i,O as l,y as m,p as n,C as o,x as p,w as r,_ as s,v as t,g as u,s as v,o as x,l as y};