@overlordai/server 1.0.111 → 1.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 (109) hide show
  1. package/dist/adapters/lark/lark-message.parser.d.ts +13 -3
  2. package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
  3. package/dist/adapters/lark/lark-message.parser.js +48 -10
  4. package/dist/adapters/lark/lark-message.parser.js.map +1 -1
  5. package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
  6. package/dist/adapters/lark/lark.adapter.js +7 -2
  7. package/dist/adapters/lark/lark.adapter.js.map +1 -1
  8. package/dist/adapters/lark/lark.controller.d.ts +1 -0
  9. package/dist/adapters/lark/lark.controller.d.ts.map +1 -1
  10. package/dist/adapters/lark/lark.controller.js +7 -3
  11. package/dist/adapters/lark/lark.controller.js.map +1 -1
  12. package/dist/adapters/slack/slack-message.parser.d.ts +3 -1
  13. package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -1
  14. package/dist/adapters/slack/slack-message.parser.js +39 -8
  15. package/dist/adapters/slack/slack-message.parser.js.map +1 -1
  16. package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
  17. package/dist/adapters/slack/slack.adapter.js +7 -2
  18. package/dist/adapters/slack/slack.adapter.js.map +1 -1
  19. package/dist/adapters/slack/slack.controller.d.ts +3 -1
  20. package/dist/adapters/slack/slack.controller.d.ts.map +1 -1
  21. package/dist/adapters/slack/slack.controller.js +15 -5
  22. package/dist/adapters/slack/slack.controller.js.map +1 -1
  23. package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
  24. package/dist/dispatcher/dispatcher.module.js +2 -0
  25. package/dist/dispatcher/dispatcher.module.js.map +1 -1
  26. package/dist/dispatcher/dispatcher.service.d.ts +12 -4
  27. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  28. package/dist/dispatcher/dispatcher.service.js +128 -39
  29. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  30. package/package.json +4 -4
  31. package/public/assets/{AccessTokensPage-i8Yh9-n_.js → AccessTokensPage-D_A93EkP.js} +1 -1
  32. package/public/assets/{AdminPage-YSpPGn2j.js → AdminPage-DnmoRibU.js} +1 -1
  33. package/public/assets/{ApiReferencePage-CxXRrzfQ.js → ApiReferencePage-8Fvke3MS.js} +1 -1
  34. package/public/assets/{ArchitecturePage-CNSudIZk.js → ArchitecturePage-Co5G-15M.js} +1 -1
  35. package/public/assets/{AuditLogPage-Yom9FwXX.js → AuditLogPage-DoaVh4un.js} +1 -1
  36. package/public/assets/{BindPlatformPage-n1OcO2lY.js → BindPlatformPage-C2bIjAbT.js} +1 -1
  37. package/public/assets/{BotIntegrationPage-BMdDliOu.js → BotIntegrationPage-BgK7NXyQ.js} +1 -1
  38. package/public/assets/BotManage-BlWUAERC.js +6 -0
  39. package/public/assets/{BotSetupPage-wjKH5JjB.js → BotSetupPage-BhNhgobr.js} +1 -1
  40. package/public/assets/{ChangelogPage-BN04tJct.js → ChangelogPage-CazGvq6Y.js} +1 -1
  41. package/public/assets/{CliReferencePage-BiUqd01F.js → CliReferencePage-tonM0XBs.js} +1 -1
  42. package/public/assets/{DeploymentPage-3XUMLJR4.js → DeploymentPage-DwifcnIe.js} +1 -1
  43. package/public/assets/{DevWorkflowPage-BwntuiUx.js → DevWorkflowPage-DJddffhm.js} +1 -1
  44. package/public/assets/{DeveloperManage-C3rE6bkE.js → DeveloperManage-DwaEFuLo.js} +1 -1
  45. package/public/assets/{DeveloperSetupPage-nUAUocqq.js → DeveloperSetupPage-DA4BHPuG.js} +1 -1
  46. package/public/assets/{DocsIndexPage-BxJMZjjB.js → DocsIndexPage-C-FZbN8Z.js} +1 -1
  47. package/public/assets/{DocsLayout-QLAVS47I.js → DocsLayout-HdiVoWKl.js} +1 -1
  48. package/public/assets/{DocsPrimitives-C3J4N_cS.js → DocsPrimitives-DU41lKXb.js} +1 -1
  49. package/public/assets/{EditProjectPage-z5ZnJCjq.js → EditProjectPage-0HfKfeFS.js} +1 -1
  50. package/public/assets/{EmptyState-HDedtsWG.js → EmptyState-i9jXL5NQ.js} +1 -1
  51. package/public/assets/{EnvVariablesPage-DN2xHZF0.js → EnvVariablesPage-DofRDtyz.js} +1 -1
  52. package/public/assets/{HomePage-BrjTS1G5.js → HomePage-Ct5rkEIu.js} +1 -1
  53. package/public/assets/{InfoRow-HWG0U9xn.js → InfoRow-kU23cpPE.js} +1 -1
  54. package/public/assets/{InstallationPage-DnzMaeXP.js → InstallationPage-JxXYftV0.js} +1 -1
  55. package/public/assets/{LandingPage-B86F_TRG.js → LandingPage-7--4I0lt.js} +1 -1
  56. package/public/assets/{LocalDevelopmentPage-CqqSBBsB.js → LocalDevelopmentPage-B0C1C5Rs.js} +1 -1
  57. package/public/assets/{LoginPage-CSGDJD1J.js → LoginPage-2Io9O_Q7.js} +1 -1
  58. package/public/assets/{MetricBar-BaDVAfWU.js → MetricBar-BSwVCFMX.js} +1 -1
  59. package/public/assets/{NotFoundPage-Ci4wCI83.js → NotFoundPage-DbO52kqL.js} +1 -1
  60. package/public/assets/{OnboardingGuide-hyTvU1TS.js → OnboardingGuide-BeP-StZq.js} +1 -1
  61. package/public/assets/{PermissionsPage-DHbzsWOp.js → PermissionsPage-BMM-SA8k.js} +1 -1
  62. package/public/assets/{PipelineConfigPage-2SL_JrH1.js → PipelineConfigPage-6KxS3scE.js} +1 -1
  63. package/public/assets/{PipelineEditorPage-C_3dijms.js → PipelineEditorPage-CpW1dBVH.js} +1 -1
  64. package/public/assets/{ProfilePage-B54zhQ_R.js → ProfilePage-BaDJoNI7.js} +1 -1
  65. package/public/assets/{ProjectDetailPage-BTyYw2fa.js → ProjectDetailPage-QjUSwxfS.js} +1 -1
  66. package/public/assets/{ProjectListPage-SHxpG3PS.js → ProjectListPage-Bs0GPEJb.js} +1 -1
  67. package/public/assets/{PtyTerminal-CrRGV2Nt.js → PtyTerminal-CEkY7dvk.js} +7 -7
  68. package/public/assets/{QuickAuth-Dogz9jtP.js → QuickAuth-9InsfbSA.js} +1 -1
  69. package/public/assets/{RemoveMemberConfirmDialog-Dh8FLohK.js → RemoveMemberConfirmDialog-Do5LW-9Q.js} +1 -1
  70. package/public/assets/{Select-U23yYc5h.js → Select-8IQBiBBw.js} +1 -1
  71. package/public/assets/{SettingsPage-CYpPtjF_.js → SettingsPage-DRWkl-_N.js} +1 -1
  72. package/public/assets/{Skeleton-DGKdqecT.js → Skeleton-B3ZvE5gP.js} +1 -1
  73. package/public/assets/{SkillPage-DnU4om39.js → SkillPage-BhiRgb-S.js} +1 -1
  74. package/public/assets/{TaskDetailPage-BMQEZG9I.js → TaskDetailPage-vwqcnwqe.js} +2 -2
  75. package/public/assets/{TaskListPage-FJWJPPvm.js → TaskListPage-DRiTh03Z.js} +1 -1
  76. package/public/assets/{TaskStatusBadge-CeTXjBcp.js → TaskStatusBadge-B6mxAWy2.js} +1 -1
  77. package/public/assets/{TerminalHomePage-BDF3Zsu3.js → TerminalHomePage-sK-nSIOn.js} +1 -1
  78. package/public/assets/{TokenManage-BCaWe_2Y.js → TokenManage-CenYPcRv.js} +1 -1
  79. package/public/assets/{TotpSetupPage-CPYM9xoc.js → TotpSetupPage-DQyx573Y.js} +1 -1
  80. package/public/assets/{WorkerDetailPage-WDq1Jj1E.js → WorkerDetailPage-BV7YTrMb.js} +1 -1
  81. package/public/assets/{WorkerListPage-DuLpmfNh.js → WorkerListPage-_bt8SJDK.js} +1 -1
  82. package/public/assets/{WorkerOperationsPage-C103b_-O.js → WorkerOperationsPage-CDat2rGV.js} +1 -1
  83. package/public/assets/{WorkerSetupGuidePage-C0t4kGiO.js → WorkerSetupGuidePage-CN7fSwA-.js} +1 -1
  84. package/public/assets/{WorkerSetupPage-CwtOFjjL.js → WorkerSetupPage--spDks6s.js} +1 -1
  85. package/public/assets/{arrow-left-BoRsRL_k.js → arrow-left-CQ-bmyEx.js} +1 -1
  86. package/public/assets/{arrow-right-CZBgbvF3.js → arrow-right-BOWA0FvU.js} +1 -1
  87. package/public/assets/{bot-BNrzlo_N.js → bot-BpTfNKBP.js} +1 -1
  88. package/public/assets/{chevron-right-BvaaaASS.js → chevron-right-D-xhzuZQ.js} +1 -1
  89. package/public/assets/{copy-CEugnW5R.js → copy-DXSXnWX4.js} +1 -1
  90. package/public/assets/{download-BPeWx06J.js → download-FbsyL-QU.js} +1 -1
  91. package/public/assets/{external-link-AmI6pK7X.js → external-link-CPRFmfE1.js} +1 -1
  92. package/public/assets/{index-CNpYVMJG.js → index-D205WYza.js} +2 -2
  93. package/public/assets/{key-DSXt1fQ0.js → key-Diuh2Udi.js} +1 -1
  94. package/public/assets/{loader-circle-CIhlXJg3.js → loader-circle-CsopNBbX.js} +1 -1
  95. package/public/assets/{pencil-BUYJ6HGy.js → pencil-n52F1Vop.js} +1 -1
  96. package/public/assets/{plus-BEnIJwfW.js → plus-BHkYD1iG.js} +1 -1
  97. package/public/assets/{rotate-ccw-Dvkpz4Uf.js → rotate-ccw-Bl22woOU.js} +1 -1
  98. package/public/assets/{scroll-text-BJdXUgeV.js → scroll-text-DbVWAYzk.js} +1 -1
  99. package/public/assets/{settings-ByeXgLWo.js → settings-0li6vYCf.js} +1 -1
  100. package/public/assets/{status-colors-CwSvUCA4.js → status-colors-C6o-wKJJ.js} +1 -1
  101. package/public/assets/{task-constants-CZ4SU7CR.js → task-constants-a8NftfbJ.js} +1 -1
  102. package/public/assets/{trash-2--y0KSi5C.js → trash-2-LoxvLZVm.js} +1 -1
  103. package/public/assets/{useFetch-u5os1hQp.js → useFetch-DIPC8gCD.js} +1 -1
  104. package/public/assets/{users-beCssR9n.js → users-BgBBs7IT.js} +1 -1
  105. package/public/assets/{wifi-1QzoJmWB.js → wifi-CF0XZj9i.js} +1 -1
  106. package/public/assets/{workflow-BNfo4HNn.js → workflow-DBOppGKP.js} +1 -1
  107. package/public/index.html +1 -1
  108. package/public/sw.js +1 -1
  109. package/public/assets/BotManage-DYnpTbsD.js +0 -6
@@ -1,6 +0,0 @@
1
- import{c as z,a as E,r as n,j as e,X as D,h as _,p as W,t as U}from"./index-CNpYVMJG.js";import{S as F}from"./Select-U23yYc5h.js";import{C as O}from"./DocsPrimitives-C3J4N_cS.js";import{T as M}from"./trash-2--y0KSi5C.js";import{P as q}from"./plus-BEnIJwfW.js";import{E as R}from"./EmptyState-HDedtsWG.js";import{T}from"./Skeleton-DGKdqecT.js";import{u as P}from"./useFetch-u5os1hQp.js";import{d as A}from"./status-colors-CwSvUCA4.js";import{B as H}from"./bot-BNrzlo_N.js";import{P as V}from"./pencil-BUYJ6HGy.js";import"./copy-CEugnW5R.js";/**
2
- * @license lucide-react v0.469.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const X=z("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),G=[{value:"lark",label:"lark_(feishu)"},{value:"slack",label:"slack"}];function J({isOpen:r,onClose:j,onCreated:f,editBot:m,onEditClose:s}){const{t}=E(),o=!!m,[C,y]=n.useState(""),[i,b]=n.useState("lark"),[g,u]=n.useState(""),[c,N]=n.useState(""),[p,h]=n.useState(""),[k,w]=n.useState(!1),[S,x]=n.useState("");n.useEffect(()=>{r&&(m?(y(m.name),b(m.platform),u(m.appId),N(""),h("")):(y(""),b("lark"),u(""),N(""),h("")),w(!1),x(""))},[m,r]);function v(){o&&s?s():j()}async function a(){if(x(""),!C.trim()||!g.trim()){x(t("admin.name_and_app_id_required"));return}if(o){if(i==="slack"&&c.trim()&&!c.trim().startsWith("xoxb-")){x(t("admin.invalid_bot_token"));return}}else{if(!c.trim()){x(t("admin.app_secret_required"));return}if(i==="slack"){if(!c.trim().startsWith("xoxb-")){x(t("admin.invalid_bot_token"));return}if(!p.trim()){x(t("admin.signing_secret_required"));return}}}const l={name:C.trim(),platform:i,appId:g.trim()};c.trim()&&(l.appSecret=c.trim()),p.trim()&&(l.webhookToken=p.trim());try{w(!0),o?await _.put(`admin/bots/${m.id}`,{json:l}).json():await _.post("admin/bots",{json:l}).json(),v(),f()}catch(B){const K=B instanceof Error?B.message:t(o?"admin.failed_to_update_bot":"admin.failed_to_create_bot");x(K)}finally{w(!1)}}if(!r)return null;const I=window.location.origin,$=[{label:t("admin.webhook_events_url"),url:`${I}/webhook/slack/events`,hint:t("admin.slack_events_hint")},{label:t("admin.webhook_interact_url"),url:`${I}/webhook/slack/interact`,hint:t("admin.slack_interact_hint")},{label:t("admin.webhook_commands_url"),url:`${I}/webhook/slack/commands`,hint:t("admin.slack_commands_hint")}],d=[{label:t("admin.webhook_request_url"),url:`${I}/webhook/lark`,hint:t("admin.webhook_config_hint_lark")}],L=i==="slack"?$:d;return e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{backdropFilter:"blur(2px)"},children:[e.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]",onClick:v}),e.jsxs("div",{className:"relative z-10 w-full max-w-[480px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] font-mono",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-5 py-4",children:[e.jsx("h3",{className:"text-sm text-[var(--text-primary)]",children:o?`// ${t("admin.edit_bot")}`:`// ${t("admin.create_bot")}`}),e.jsx("button",{type:"button",className:"rounded-[4px] p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",onClick:v,children:e.jsx(D,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-4 px-5 py-5",children:[S&&e.jsx("div",{className:"rounded-[4px] border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-400",children:S}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:t("admin.bot_name")}),e.jsx("input",{type:"text",placeholder:"e.g. overlord lark bot",value:C,onChange:l=>y(l.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:t("admin.platform")}),e.jsx(F,{value:i,onChange:b,options:G,disabled:o})]}),e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-3",children:[e.jsx("div",{className:"mb-2 text-xs text-[var(--text-muted)]",children:t("admin.webhook_config")}),e.jsx("div",{className:"text-xs text-[var(--text-muted)] mb-3",children:t(i==="slack"?"admin.webhook_config_hint_slack":"admin.webhook_config_hint_lark")}),e.jsx("div",{className:"space-y-2",children:L.map(l=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-[var(--text-muted)] mb-1",children:l.label}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("code",{className:"flex-1 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] px-2 py-1 text-xs text-[var(--text-primary)] select-all overflow-x-auto",children:l.url}),e.jsx(O,{text:l.url})]}),e.jsx("div",{className:"mt-0.5 text-xs text-[var(--text-muted)]",children:l.hint})]},l.label))})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:t("admin.app_id")}),e.jsx("div",{className:"mb-1 text-xs text-[var(--text-muted)]",children:t(i==="slack"?"admin.app_id_hint_slack":"admin.app_id_hint_lark")}),e.jsx("input",{type:"text",placeholder:"platform application id",value:g,onChange:l=>u(l.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),i==="slack"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:t(o?"admin.bot_token_keep_current":"admin.bot_token")}),e.jsx("div",{className:"mb-1 text-xs text-[var(--text-muted)]",children:t("admin.bot_token_hint")}),e.jsx("input",{type:"password",placeholder:t("admin.bot_token_placeholder"),value:c,onChange:l=>N(l.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:t(o?"admin.signing_secret_keep_current":"admin.signing_secret")}),e.jsx("div",{className:"mb-1 text-xs text-[var(--text-muted)]",children:t("admin.signing_secret_hint")}),e.jsx("input",{type:"password",placeholder:t("admin.signing_secret_placeholder"),value:p,onChange:l=>h(l.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:t(o?"admin.app_secret_keep_current":"admin.app_secret")}),e.jsx("div",{className:"mb-1 text-xs text-[var(--text-muted)]",children:t("admin.app_secret_hint_lark")}),e.jsx("input",{type:"password",placeholder:"platform application secret",value:c,onChange:l=>N(l.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:o?"encrypt key (leave empty to keep current)":"encrypt key"}),e.jsx("div",{className:"mb-1 text-xs text-[var(--text-muted)]",children:"events & callbacks → encryption strategy → encrypt key"}),e.jsx("input",{type:"password",placeholder:"encrypt key from encryption strategy",value:p,onChange:l=>h(l.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[e.jsx("button",{type:"button",className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",onClick:v,children:t("common.cancel")}),e.jsx("button",{type:"button",className:"rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity disabled:opacity-50",disabled:k,onClick:a,children:t(k?o?"common.saving":"common.creating":o?"common.save_changes":"common.create")})]})]})]})}function Q({isOpen:r,bot:j,onClose:f,onUpdated:m}){const{t:s}=E(),[t,o]=n.useState([]),[C,y]=n.useState([]),[i,b]=n.useState(!1),[g,u]=n.useState(!1),[c,N]=n.useState(""),[p,h]=n.useState(""),[k,w]=n.useState(""),[S,x]=n.useState(""),v=n.useCallback(async()=>{try{const d=await _.get(`admin/bots/${j.id}/bindings`).json();o(d)}catch{}},[j.id]);n.useEffect(()=>{r&&v()},[r,v]);const a=n.useCallback(async()=>{try{const d=await _.get("web/projects").json();y(d)}catch{}},[]);n.useEffect(()=>{r&&a()},[r,a]);const I=async()=>{if(x(""),!c.trim()||!p.trim()||!k){x(s("admin.chat_binding_all_fields_required"));return}try{b(!0),await _.post(`admin/bots/${j.id}/bindings`,{json:{platformChatId:c.trim(),chatName:p.trim(),projectKey:k}}).json(),N(""),h(""),w(""),u(!1),m()}catch(d){const L=d instanceof Error?d.message:s("admin.failed_to_add_binding");x(L)}finally{b(!1)}},$=async d=>{try{await _.delete(`admin/bots/${j.id}/bindings`,{json:{platformChatId:d.platformChatId}}),o(L=>L.filter(l=>l.id!==d.id)),m()}catch{}};return r?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{backdropFilter:"blur(2px)"},children:[e.jsx("div",{className:"fixed inset-0 bg-[var(--modal-backdrop)]",onClick:f}),e.jsxs("div",{className:"relative z-10 w-full max-w-[600px] rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] font-mono",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-5 py-4",children:[e.jsx("h3",{className:"text-sm text-[var(--text-primary)]",children:s("admin.chat_binding_title",{name:j.name})}),e.jsx("button",{type:"button",className:"rounded-[4px] p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",onClick:f,children:e.jsx(D,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"px-5 py-5",children:[S&&e.jsx("div",{className:"mb-4 rounded-[4px] border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-400",children:S}),t.length===0&&!g?e.jsx("p",{className:"py-4 text-center text-xs text-[var(--text-muted)]",children:s("admin.chat_binding_no_bindings")}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border)] text-left text-[var(--text-muted)]",children:[e.jsx("th",{className:"pb-2 pr-4 font-normal",children:s("admin.chat_name")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:s("admin.chat_id")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:s("admin.project")}),e.jsx("th",{className:"pb-2 font-normal",children:s("common.remove")})]})}),e.jsx("tbody",{children:t.map(d=>e.jsxs("tr",{className:"border-b border-[var(--border-row)] hover:bg-white/[0.02] transition-colors",children:[e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-primary)]",children:d.chatName}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:d.platformChatId}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:d.projectKey}),e.jsx("td",{className:"py-2.5",children:e.jsx("button",{type:"button",className:"rounded-[4px] p-1.5 text-red-400 hover:text-red-300 hover:bg-white/[0.05] transition-colors",onClick:()=>$(d),children:e.jsx(M,{className:"h-3.5 w-3.5"})})})]},d.id))})]})}),g&&e.jsxs("div",{className:"mt-4 space-y-3 rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] p-4",children:[e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:s("admin.chat_binding_add")}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("admin.chat_id")}),e.jsx("input",{type:"text",placeholder:s("admin.chat_binding_id_placeholder"),value:c,onChange:d=>N(d.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("admin.chat_name")}),e.jsx("input",{type:"text",placeholder:s("admin.chat_binding_name_placeholder"),value:p,onChange:d=>h(d.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-xs text-[var(--text-muted)]",children:s("admin.project")}),e.jsx(F,{value:k,onChange:w,options:C.map(d=>({value:d.key,label:`${d.name} (${d.key})`})),placeholder:s("admin.chat_binding_select_project")})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{type:"button",className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",onClick:()=>u(!1),children:s("common.cancel")}),e.jsx("button",{type:"button",className:"rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity disabled:opacity-50",disabled:i,onClick:I,children:s(i?"admin.chat_binding_adding":"admin.add_binding")})]})]})]}),e.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--border)] px-5 py-4",children:[e.jsx("div",{children:!g&&e.jsxs("button",{type:"button",className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] transition-colors",onClick:()=>u(!0),children:[e.jsx(q,{className:"h-3.5 w-3.5"}),s("admin.add_binding")]})}),e.jsx("button",{type:"button",className:"rounded-[4px] border border-[var(--border)] px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",onClick:f,children:s("common.close")})]})]})]}):null}function ce(){const{t:r}=E(),[j,f]=n.useState(!1),[m,s]=n.useState(null),[t,o]=n.useState(null),[C,y]=n.useState(!1),[i,b]=n.useState(null),[g,u]=n.useState(!1),{data:c,loading:N,refetch:p}=P(()=>_.get("admin/bots").json(),[]),{data:h,loading:k,refetch:w}=P(()=>_.get("admin/bots/all-bindings").json(),[]);async function S(){if(i){u(!0);try{await _.delete(`admin/bots/${i.id}`),y(!1),b(null),p()}catch{U.error(r("admin.failed_to_delete_bot"))}finally{u(!1)}}}function x(a){switch(a){case"lark":return"text-blue-400";case"slack":return"text-yellow-400";default:return"text-[var(--text-secondary)]"}}function v(a){return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{type:"button",className:"rounded-[4px] p-2.5 md:p-1.5 text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-white/[0.05] transition-colors",title:r("common.edit"),onClick:()=>s(a),children:e.jsx(V,{className:"h-3.5 w-3.5"})}),e.jsx("button",{type:"button",className:"rounded-[4px] p-2.5 md:p-1.5 text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-white/[0.05] transition-colors",title:r("admin.chat_bindings"),onClick:()=>o(a),children:e.jsx(X,{className:"h-3.5 w-3.5"})}),e.jsx("button",{type:"button",className:"rounded-[4px] p-2.5 md:p-1.5 text-red-400 hover:text-red-300 hover:bg-white/[0.05] transition-colors",title:r("common.delete"),onClick:()=>{b(a),y(!0)},children:e.jsx(M,{className:"h-3.5 w-3.5"})})]})}return e.jsxs("div",{className:"font-mono",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm text-[var(--text-primary)]",children:r("admin.bots_title")}),e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:r("admin.bots_subtitle")})]}),e.jsxs("button",{type:"button",className:"flex items-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs text-black hover:opacity-90 transition-opacity",onClick:()=>{s(null),f(!0)},children:[e.jsx(q,{className:"h-3.5 w-3.5"}),r("admin.create_bot")]})]}),N?e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:e.jsx(T,{rows:3})}):!c||c.length===0?e.jsx(R,{icon:H,title:r("admin.no_bots_configured"),description:r("admin.add_bot_desc"),actionLabel:r("admin.create_bot"),onAction:()=>{s(null),f(!0)}}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border)] text-left text-[var(--text-muted)]",children:[e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.bot_name")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.platform")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.app_id")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.status")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("common.created_at")}),e.jsx("th",{className:"pb-2 font-normal",children:r("common.actions")})]})}),e.jsx("tbody",{children:c.map(a=>e.jsxs("tr",{className:"border-b border-[var(--border-row)] hover:bg-white/[0.02] transition-colors",children:[e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-primary)]",children:a.name}),e.jsx("td",{className:"py-2.5 pr-4",children:e.jsx("span",{className:x(a.platform),children:a.platform})}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:a.appId}),e.jsx("td",{className:"py-2.5 pr-4",children:e.jsx("span",{className:A(a.status),children:a.status})}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-muted)]",children:new Date(a.createdAt).toLocaleDateString()}),e.jsx("td",{className:"py-2.5",children:v(a)})]},a.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3",children:c.map(a=>e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("span",{className:"text-xs text-[var(--text-primary)] font-medium",children:a.name}),v(a)]}),e.jsxs("div",{className:"flex items-center gap-3 text-[11px]",children:[e.jsx("span",{className:x(a.platform),children:a.platform}),e.jsx("span",{className:A(a.status),children:a.status})]}),e.jsx("div",{className:"mt-1 text-[11px] text-[var(--text-secondary)] truncate",children:a.appId})]},a.id))})]}),e.jsx(J,{isOpen:j||!!m,onClose:()=>{f(!1),s(null)},onCreated:p,editBot:m,onEditClose:()=>s(null)}),t&&e.jsx(Q,{isOpen:!!t,bot:t,onClose:()=>o(null),onUpdated:()=>{p(),w()}}),e.jsx(W,{isOpen:C,onClose:()=>{y(!1),b(null)},onConfirm:S,title:r("admin.delete_bot"),message:r("admin.delete_bot_confirm",{name:(i==null?void 0:i.name)??""}),confirmLabel:r("common.delete"),confirmVariant:"danger",isLoading:g}),e.jsxs("div",{className:"mt-8",children:[e.jsxs("h2",{className:"mb-4 text-sm text-[var(--text-primary)]",children:[r("admin.chat_bindings"),e.jsx("span",{className:"ml-2 text-[var(--text-muted)]",children:r("admin.chat_bindings_subtitle")})]}),k?e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:e.jsx(T,{rows:3})}):!h||h.length===0?e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-8 text-center",children:e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:r("admin.no_chat_bindings")})}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border)] text-left text-[var(--text-muted)]",children:[e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.bot")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.platform")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.chat_id")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.chat_name")}),e.jsx("th",{className:"pb-2 pr-4 font-normal",children:r("admin.project")}),e.jsx("th",{className:"pb-2 font-normal",children:r("common.created_at")})]})}),e.jsx("tbody",{children:h.map(a=>e.jsxs("tr",{className:"border-b border-[var(--border-row)] hover:bg-white/[0.02] transition-colors",children:[e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-primary)]",children:a.botName}),e.jsx("td",{className:"py-2.5 pr-4",children:e.jsx("span",{className:x(a.platform),children:a.platform})}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:a.platformChatId}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:a.chatName??"-"}),e.jsx("td",{className:"py-2.5 pr-4 text-[var(--text-secondary)]",children:a.projectKey??"-"}),e.jsx("td",{className:"py-2.5 text-[var(--text-muted)]",children:new Date(a.createdAt).toLocaleDateString()})]},a.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3",children:h.map(a=>e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("span",{className:"text-xs text-[var(--text-primary)] font-medium",children:a.botName}),e.jsx("span",{className:`text-[11px] ${x(a.platform)}`,children:a.platform})]}),e.jsx("div",{className:"text-[11px] text-[var(--text-secondary)] truncate",children:a.platformChatId}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-[11px] text-[var(--text-muted)]",children:[e.jsx("span",{children:a.chatName??"-"}),e.jsx("span",{children:a.projectKey??"-"})]})]},a.id))})]})]})]})}export{ce as default};