botmux 3.12.1 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/bot-registry.d.ts +7 -0
  3. package/dist/bot-registry.d.ts.map +1 -1
  4. package/dist/bot-registry.js +46 -13
  5. package/dist/bot-registry.js.map +1 -1
  6. package/dist/core/config-dir.d.ts +167 -0
  7. package/dist/core/config-dir.d.ts.map +1 -0
  8. package/dist/core/config-dir.js +152 -0
  9. package/dist/core/config-dir.js.map +1 -0
  10. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  11. package/dist/core/dashboard-ipc-server.js +48 -0
  12. package/dist/core/dashboard-ipc-server.js.map +1 -1
  13. package/dist/core/per-bot-env.d.ts.map +1 -1
  14. package/dist/core/per-bot-env.js +9 -0
  15. package/dist/core/per-bot-env.js.map +1 -1
  16. package/dist/core/session-discovery.d.ts.map +1 -1
  17. package/dist/core/session-discovery.js +19 -2
  18. package/dist/core/session-discovery.js.map +1 -1
  19. package/dist/core/session-manager.d.ts.map +1 -1
  20. package/dist/core/session-manager.js +44 -3
  21. package/dist/core/session-manager.js.map +1 -1
  22. package/dist/core/trigger-session.d.ts.map +1 -1
  23. package/dist/core/trigger-session.js +499 -63
  24. package/dist/core/trigger-session.js.map +1 -1
  25. package/dist/core/types.d.ts +26 -4
  26. package/dist/core/types.d.ts.map +1 -1
  27. package/dist/core/types.js.map +1 -1
  28. package/dist/core/worker-pool.d.ts +64 -0
  29. package/dist/core/worker-pool.d.ts.map +1 -1
  30. package/dist/core/worker-pool.js +301 -10
  31. package/dist/core/worker-pool.js.map +1 -1
  32. package/dist/daemon.d.ts.map +1 -1
  33. package/dist/daemon.js +13 -6
  34. package/dist/daemon.js.map +1 -1
  35. package/dist/dashboard/auth.d.ts +8 -0
  36. package/dist/dashboard/auth.d.ts.map +1 -1
  37. package/dist/dashboard/auth.js +16 -11
  38. package/dist/dashboard/auth.js.map +1 -1
  39. package/dist/dashboard/web/bot-multi-select.d.ts +33 -0
  40. package/dist/dashboard/web/bot-multi-select.d.ts.map +1 -0
  41. package/dist/dashboard/web/bot-multi-select.js +34 -0
  42. package/dist/dashboard/web/bot-multi-select.js.map +1 -0
  43. package/dist/dashboard/web/groups-page.d.ts +13 -0
  44. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  45. package/dist/dashboard/web/groups-page.js +25 -7
  46. package/dist/dashboard/web/groups-page.js.map +1 -1
  47. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  48. package/dist/dashboard/web/i18n.js +8 -4
  49. package/dist/dashboard/web/i18n.js.map +1 -1
  50. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  51. package/dist/dashboard/web/sessions-page.js +15 -23
  52. package/dist/dashboard/web/sessions-page.js.map +1 -1
  53. package/dist/dashboard/web/sessions.d.ts +13 -0
  54. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  55. package/dist/dashboard/web/sessions.js +25 -0
  56. package/dist/dashboard/web/sessions.js.map +1 -1
  57. package/dist/dashboard-web/app.js +1 -1
  58. package/dist/dashboard-web/chunks/{bot-defaults-page-HL655CNR.js → bot-defaults-page-NQJFJ45Z.js} +1 -1
  59. package/dist/dashboard-web/chunks/{chunk-BFUTTYVK.js → chunk-5QJB24I2.js} +1 -1
  60. package/dist/dashboard-web/chunks/{chunk-ELL53D62.js → chunk-6JTZJRQJ.js} +2 -2
  61. package/dist/dashboard-web/chunks/{chunk-5ZL7NLR5.js → chunk-CU4SUKK3.js} +1 -1
  62. package/dist/dashboard-web/chunks/{chunk-5PAYQ3KT.js → chunk-KEEYQ3WF.js} +1 -1
  63. package/dist/dashboard-web/chunks/chunk-WLIVBPJC.js +1 -0
  64. package/dist/dashboard-web/chunks/{connectors-page-3QQACF23.js → connectors-page-HADHZXXZ.js} +1 -1
  65. package/dist/dashboard-web/chunks/groups-page-5TYF46RS.js +8 -0
  66. package/dist/dashboard-web/chunks/{insights-page-ZZ3JEJ6L.js → insights-page-EVGGJI5L.js} +1 -1
  67. package/dist/dashboard-web/chunks/{monitor-room-ROJ5GZ4N.js → monitor-room-HRGR2ENP.js} +1 -1
  68. package/dist/dashboard-web/chunks/{monitoring-page-IATV7KJF.js → monitoring-page-LBU7TTTW.js} +1 -1
  69. package/dist/dashboard-web/chunks/{office-page-TYO5OIIT.js → office-page-DF6RRBMN.js} +1 -1
  70. package/dist/dashboard-web/chunks/{overview-page-VJUULZF2.js → overview-page-ZB6QH2EX.js} +1 -1
  71. package/dist/dashboard-web/chunks/{roles-page-7RJJKZGK.js → roles-page-ZBZGHIIF.js} +1 -1
  72. package/dist/dashboard-web/chunks/{schedules-page-JTEJ5IXW.js → schedules-page-NQVQC3QY.js} +1 -1
  73. package/dist/dashboard-web/chunks/sessions-page-DXBCDWCS.js +8 -0
  74. package/dist/dashboard-web/chunks/{settings-page-7CTTFBRS.js → settings-page-E7NN4NVQ.js} +1 -1
  75. package/dist/dashboard-web/chunks/{skills-page-57NZECJ3.js → skills-page-2QAVB2SA.js} +1 -1
  76. package/dist/dashboard-web/chunks/{team-federation-page-6YYIMJG3.js → team-federation-page-VGWL53AE.js} +1 -1
  77. package/dist/dashboard-web/chunks/{v3-page-ZGKBSBK3.js → v3-page-AY35LKCX.js} +1 -1
  78. package/dist/dashboard-web/chunks/{whiteboards-page-AACJF6DB.js → whiteboards-page-BNWUU4KG.js} +1 -1
  79. package/dist/dashboard-web/style.css +61 -53
  80. package/dist/features/codex-notifier/internal-turn.d.ts +1 -2
  81. package/dist/features/codex-notifier/internal-turn.d.ts.map +1 -1
  82. package/dist/features/codex-notifier/internal-turn.js +1 -13
  83. package/dist/features/codex-notifier/internal-turn.js.map +1 -1
  84. package/dist/i18n/en.js +2 -2
  85. package/dist/i18n/en.js.map +1 -1
  86. package/dist/i18n/zh.js +2 -2
  87. package/dist/i18n/zh.js.map +1 -1
  88. package/dist/platform/secure-host-file.d.ts +63 -0
  89. package/dist/platform/secure-host-file.d.ts.map +1 -1
  90. package/dist/platform/secure-host-file.js +90 -25
  91. package/dist/platform/secure-host-file.js.map +1 -1
  92. package/dist/services/async-trigger-store.d.ts +24 -4
  93. package/dist/services/async-trigger-store.d.ts.map +1 -1
  94. package/dist/services/async-trigger-store.js +81 -19
  95. package/dist/services/async-trigger-store.js.map +1 -1
  96. package/dist/services/codex-session-meta.d.ts +4 -0
  97. package/dist/services/codex-session-meta.d.ts.map +1 -0
  98. package/dist/services/codex-session-meta.js +15 -0
  99. package/dist/services/codex-session-meta.js.map +1 -0
  100. package/dist/services/idempotency-store.d.ts +18 -3
  101. package/dist/services/idempotency-store.d.ts.map +1 -1
  102. package/dist/services/idempotency-store.js +30 -12
  103. package/dist/services/idempotency-store.js.map +1 -1
  104. package/dist/services/traex-transcript.d.ts +7 -5
  105. package/dist/services/traex-transcript.d.ts.map +1 -1
  106. package/dist/services/traex-transcript.js +139 -33
  107. package/dist/services/traex-transcript.js.map +1 -1
  108. package/dist/services/trigger-types.d.ts +14 -1
  109. package/dist/services/trigger-types.d.ts.map +1 -1
  110. package/dist/services/trigger-types.js +35 -0
  111. package/dist/services/trigger-types.js.map +1 -1
  112. package/dist/types.d.ts +2 -0
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/utils/child-env.d.ts +1 -1
  115. package/dist/utils/child-env.d.ts.map +1 -1
  116. package/dist/utils/child-env.js +18 -0
  117. package/dist/utils/child-env.js.map +1 -1
  118. package/dist/worker.js +35 -2
  119. package/dist/worker.js.map +1 -1
  120. package/package.json +1 -1
  121. package/dist/dashboard-web/chunks/chunk-6ALR252E.js +0 -1
  122. package/dist/dashboard-web/chunks/groups-page-SDZMJ7UV.js +0 -8
  123. package/dist/dashboard-web/chunks/sessions-page-KD7HDT3U.js +0 -8
@@ -1,4 +1,4 @@
1
- import{b as qt}from"./chunk-5ZL7NLR5.js";import{c as H}from"./chunk-5PAYQ3KT.js";import{a as Nt,b as bt,c as vt,g as jt,h as Ht,j as Wt,k as _t,q as Tt}from"./chunk-5CJMHTT4.js";import{C as Ut,D as Ft,a as ht,t as Lt,y as St,z as ct}from"./chunk-ELL53D62.js";import{a as Gt}from"./chunk-SYC6D5XU.js";import{a as fe,b as me,d as Et}from"./chunk-5THX4DI2.js";import{c as yt}from"./chunk-7SZRL6FY.js";var s=yt(fe(),1),ue=yt(me(),1);var Jt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],ft={options:Jt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function Dt(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function xt(a){let t=null;for(let o of ht.sessions.values())o.larkAppId!==a||!o.cliId||(!t||Number(o.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=o);return t?.cliId??""}function Pt(a,t){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||Dt(a,t)||"claude-code"}function It(a,t){return a.find(o=>o.id===t)}function Qt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[]}function Vt(){let a=0;return{begin(){let t=++a;return{commit:()=>t===a}}}}async function Kt(){try{let a=await fetch("/api/bots"),t=await a.json().catch(()=>({}));if(!a.ok){let o=t?.error?`HTTP ${a.status}: ${t.error}${t.path?` (${t.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:o}}return!t||!Array.isArray(t.bots)?{bots:[],error:"unexpected response shape (no `bots` array)"}:{bots:t.bots,error:null}}catch(a){return{bots:[],error:a?.message??String(a)}}}async function zt(a,t){try{let o=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:t})}),u=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:u?.resolution??{}}:{ok:!1,error:u?.error?`HTTP ${o.status}: ${u.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function Xt(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return ft;let o=t.options.filter(l=>l&&typeof l.id=="string"&&typeof l.label=="string"),u=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():ft.ttadkModelDefault,i=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(l=>typeof l=="string"):[];return{options:o.length?o:Jt,ttadkModelDefault:u,ttadkModelSuggestions:i}}catch{return ft}}function Zt(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var Yt=[3600*1e3,480*60*1e3,1440*60*1e3,10080*60*1e3];var e=yt(Et(),1);function Rt(a){let t=a.cliRuntime;if(!t||typeof t!="object"){let i=typeof a.cliPathOverride=="string"?a.cliPathOverride.trim():"";return{mode:i?"legacy":"official",id:"",displayName:"",executable:i,legacyPath:i,updateProvider:"auto",packageName:""}}let o=t.update?.provider,u=o==="self"||o==="npm"||o==="none"?o:"auto";return{mode:"custom",id:typeof t.id=="string"?t.id:"",displayName:typeof t.displayName=="string"?t.displayName:"",executable:typeof t.executable=="string"?t.executable:"",legacyPath:"",updateProvider:u,packageName:t.update?.provider==="npm"&&typeof t.update.packageName=="string"?t.update.packageName:""}}var mt=["common","sessions","security","cards","advanced"];function ge(a){let t=H(),o=(0,s.useRef)([]),u={common:t("botDefaults.tabCommon"),sessions:t("botDefaults.tabSessions"),security:t("botDefaults.tabSecurity"),cards:t("botDefaults.tabCards"),advanced:t("botDefaults.tabAdvanced")};function i(l){let f=(l+mt.length)%mt.length,n=mt[f];a.onChange(n),o.current[f]?.focus()}return(0,e.jsxs)("nav",{className:"bd-tab-bar","aria-label":t("botDefaults.tabNavigation"),children:[(0,e.jsx)("div",{className:"bd-tabs",role:"tablist",children:mt.map((l,f)=>(0,e.jsx)("button",{ref:n=>{o.current[f]=n},id:`bd-tab-${l}`,type:"button",role:"tab",className:`bd-tab${a.active===l?" active":""}`,"aria-selected":a.active===l,"aria-controls":`bd-panel-${l}`,tabIndex:a.active===l?0:-1,"data-bd-tab":l,onClick:()=>a.onChange(l),onKeyDown:n=>{n.key==="ArrowRight"?(n.preventDefault(),i(f+1)):n.key==="ArrowLeft"?(n.preventDefault(),i(f-1)):n.key==="Home"?(n.preventDefault(),i(0)):n.key==="End"&&(n.preventDefault(),i(mt.length-1))},children:u[l]},l))}),(0,e.jsx)("small",{className:"bd-tab-hint",children:t("botDefaults.tabHint")})]})}var ye=1,te=14;function pt(a){let t=(0,s.useRef)(null);return(0,s.useEffect)(()=>{let o=t.current;if(!o||typeof window>"u")return;let u=n=>{for(let p of n)p.style.gridColumn="",p.style.gridRowStart="",p.style.gridRowEnd=""},i=()=>{let n=Array.from(o.children).filter(N=>N instanceof HTMLElement);if(!n.length)return;let p=o.clientWidth;if(p<=0)return;let g=(o.closest(".bd-detail")?.clientWidth??p)>=1024?2:1;if(g<2){u(n);return}let c=ye+te,d=new Array(g).fill(0);for(let N of n){let S=Math.max(1,Math.ceil((N.getBoundingClientRect().height+te)/c));if(N.classList.contains("bd-tile-wide")){let h=Math.max(...d);N.style.gridColumn="1 / -1",N.style.gridRowStart=String(h+1),N.style.gridRowEnd=String(h+1+S),d.fill(h+S);continue}let v=0;for(let h=1;h<g;h++)d[h]<d[v]&&(v=h);let k=d[v];N.style.gridColumn=String(v+1),N.style.gridRowStart=String(k+1),N.style.gridRowEnd=String(k+1+S),d[v]=k+S}},l=window.requestAnimationFrame(i),f=typeof ResizeObserver<"u"?new ResizeObserver(()=>i()):null;if(f){f.observe(o);for(let n of Array.from(o.children))f.observe(n)}return window.addEventListener("resize",i),()=>{window.cancelAnimationFrame(l),f?.disconnect(),window.removeEventListener("resize",i)}}),(0,e.jsx)("div",{ref:t,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function Ot(a,t=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${o}`}function J(a){return(0,e.jsx)("span",{role:"status","aria-live":"polite",className:Ot(a.status),...a.attr??{},children:a.status?.text??""})}function he(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(Wt,{className:"bd-info-tip",label:t,children:a.children})}function O(a){return(0,e.jsxs)("span",{className:"bd-field-title",children:[(0,e.jsx)("span",{className:"bd-field-title-text",children:a.children}),a.help?(0,e.jsx)(he,{children:a.help}):null]})}function ot(a){let t=H();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Tt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Nt(a.options,a.value),value:a.value,options:a.options,searchable:a.searchable,searchPlaceholder:a.searchable?t("common.dropdownSearch"):void 0,searchEmptyLabel:a.searchable?t("common.dropdownSearchEmpty"):void 0,onChange:a.onChange}),(0,e.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}function nt(a){return(0,e.jsxs)("label",{className:a.className?`toggle-row ${a.className}`:"toggle-row",children:[(0,e.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:t=>a.onChange(t.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"toggle-tx",children:[(0,e.jsx)("strong",{children:(0,e.jsx)(O,{help:a.help,children:a.title})}),a.description?(0,e.jsx)("small",{children:a.description}):null]})]})}async function K(a,t,o){let u=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),i=await u.json().catch(()=>({}));return{ok:u.ok&&i?.ok!==!1,status:u.status,body:i}}function q(a){let t=typeof a.body?.reason=="string"?a.body.reason:"",o=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return t&&o?`${t}\uFF08${o}\uFF09`:String(t||a.body?.error||a.status)}function j(a){return a?.message??String(a)}function At(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function ee(a,t){let o=a.trim();return o===""?t:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var $t=["email","openId","userId","unionId"];function ae(a){let t=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(t)]}function dt(a){return(a??[]).join(`
1
+ import{b as qt}from"./chunk-CU4SUKK3.js";import{c as H}from"./chunk-KEEYQ3WF.js";import{a as Nt,b as bt,c as vt,g as jt,h as Ht,j as Wt,k as _t,q as Tt}from"./chunk-5CJMHTT4.js";import{C as Ut,D as Ft,a as ht,t as Lt,y as St,z as ct}from"./chunk-6JTZJRQJ.js";import{a as Gt}from"./chunk-SYC6D5XU.js";import{a as fe,b as me,d as Et}from"./chunk-5THX4DI2.js";import{c as yt}from"./chunk-7SZRL6FY.js";var s=yt(fe(),1),ue=yt(me(),1);var Jt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],ft={options:Jt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function Dt(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function xt(a){let t=null;for(let o of ht.sessions.values())o.larkAppId!==a||!o.cliId||(!t||Number(o.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=o);return t?.cliId??""}function Pt(a,t){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||Dt(a,t)||"claude-code"}function It(a,t){return a.find(o=>o.id===t)}function Qt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[]}function Vt(){let a=0;return{begin(){let t=++a;return{commit:()=>t===a}}}}async function Kt(){try{let a=await fetch("/api/bots"),t=await a.json().catch(()=>({}));if(!a.ok){let o=t?.error?`HTTP ${a.status}: ${t.error}${t.path?` (${t.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:o}}return!t||!Array.isArray(t.bots)?{bots:[],error:"unexpected response shape (no `bots` array)"}:{bots:t.bots,error:null}}catch(a){return{bots:[],error:a?.message??String(a)}}}async function zt(a,t){try{let o=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:t})}),u=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:u?.resolution??{}}:{ok:!1,error:u?.error?`HTTP ${o.status}: ${u.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function Xt(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return ft;let o=t.options.filter(l=>l&&typeof l.id=="string"&&typeof l.label=="string"),u=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():ft.ttadkModelDefault,i=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(l=>typeof l=="string"):[];return{options:o.length?o:Jt,ttadkModelDefault:u,ttadkModelSuggestions:i}}catch{return ft}}function Zt(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var Yt=[3600*1e3,480*60*1e3,1440*60*1e3,10080*60*1e3];var e=yt(Et(),1);function Rt(a){let t=a.cliRuntime;if(!t||typeof t!="object"){let i=typeof a.cliPathOverride=="string"?a.cliPathOverride.trim():"";return{mode:i?"legacy":"official",id:"",displayName:"",executable:i,legacyPath:i,updateProvider:"auto",packageName:""}}let o=t.update?.provider,u=o==="self"||o==="npm"||o==="none"?o:"auto";return{mode:"custom",id:typeof t.id=="string"?t.id:"",displayName:typeof t.displayName=="string"?t.displayName:"",executable:typeof t.executable=="string"?t.executable:"",legacyPath:"",updateProvider:u,packageName:t.update?.provider==="npm"&&typeof t.update.packageName=="string"?t.update.packageName:""}}var mt=["common","sessions","security","cards","advanced"];function ge(a){let t=H(),o=(0,s.useRef)([]),u={common:t("botDefaults.tabCommon"),sessions:t("botDefaults.tabSessions"),security:t("botDefaults.tabSecurity"),cards:t("botDefaults.tabCards"),advanced:t("botDefaults.tabAdvanced")};function i(l){let f=(l+mt.length)%mt.length,n=mt[f];a.onChange(n),o.current[f]?.focus()}return(0,e.jsxs)("nav",{className:"bd-tab-bar","aria-label":t("botDefaults.tabNavigation"),children:[(0,e.jsx)("div",{className:"bd-tabs",role:"tablist",children:mt.map((l,f)=>(0,e.jsx)("button",{ref:n=>{o.current[f]=n},id:`bd-tab-${l}`,type:"button",role:"tab",className:`bd-tab${a.active===l?" active":""}`,"aria-selected":a.active===l,"aria-controls":`bd-panel-${l}`,tabIndex:a.active===l?0:-1,"data-bd-tab":l,onClick:()=>a.onChange(l),onKeyDown:n=>{n.key==="ArrowRight"?(n.preventDefault(),i(f+1)):n.key==="ArrowLeft"?(n.preventDefault(),i(f-1)):n.key==="Home"?(n.preventDefault(),i(0)):n.key==="End"&&(n.preventDefault(),i(mt.length-1))},children:u[l]},l))}),(0,e.jsx)("small",{className:"bd-tab-hint",children:t("botDefaults.tabHint")})]})}var ye=1,te=14;function pt(a){let t=(0,s.useRef)(null);return(0,s.useEffect)(()=>{let o=t.current;if(!o||typeof window>"u")return;let u=n=>{for(let p of n)p.style.gridColumn="",p.style.gridRowStart="",p.style.gridRowEnd=""},i=()=>{let n=Array.from(o.children).filter(N=>N instanceof HTMLElement);if(!n.length)return;let p=o.clientWidth;if(p<=0)return;let g=(o.closest(".bd-detail")?.clientWidth??p)>=1024?2:1;if(g<2){u(n);return}let c=ye+te,d=new Array(g).fill(0);for(let N of n){let S=Math.max(1,Math.ceil((N.getBoundingClientRect().height+te)/c));if(N.classList.contains("bd-tile-wide")){let h=Math.max(...d);N.style.gridColumn="1 / -1",N.style.gridRowStart=String(h+1),N.style.gridRowEnd=String(h+1+S),d.fill(h+S);continue}let v=0;for(let h=1;h<g;h++)d[h]<d[v]&&(v=h);let k=d[v];N.style.gridColumn=String(v+1),N.style.gridRowStart=String(k+1),N.style.gridRowEnd=String(k+1+S),d[v]=k+S}},l=window.requestAnimationFrame(i),f=typeof ResizeObserver<"u"?new ResizeObserver(()=>i()):null;if(f){f.observe(o);for(let n of Array.from(o.children))f.observe(n)}return window.addEventListener("resize",i),()=>{window.cancelAnimationFrame(l),f?.disconnect(),window.removeEventListener("resize",i)}}),(0,e.jsx)("div",{ref:t,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function Ot(a,t=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${o}`}function J(a){return(0,e.jsx)("span",{role:"status","aria-live":"polite",className:Ot(a.status),...a.attr??{},children:a.status?.text??""})}function he(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(Wt,{className:"bd-info-tip",label:t,children:a.children})}function O(a){return(0,e.jsxs)("span",{className:"bd-field-title",children:[(0,e.jsx)("span",{className:"bd-field-title-text",children:a.children}),a.help?(0,e.jsx)(he,{children:a.help}):null]})}function ot(a){let t=H();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Tt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Nt(a.options,a.value),value:a.value,options:a.options,searchable:a.searchable,searchPlaceholder:a.searchable?t("common.dropdownSearch"):void 0,searchEmptyLabel:a.searchable?t("common.dropdownSearchEmpty"):void 0,onChange:a.onChange}),(0,e.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}function nt(a){return(0,e.jsxs)("label",{className:a.className?`toggle-row ${a.className}`:"toggle-row",children:[(0,e.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:t=>a.onChange(t.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"toggle-tx",children:[(0,e.jsx)("strong",{children:(0,e.jsx)(O,{help:a.help,children:a.title})}),a.description?(0,e.jsx)("small",{children:a.description}):null]})]})}async function K(a,t,o){let u=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),i=await u.json().catch(()=>({}));return{ok:u.ok&&i?.ok!==!1,status:u.status,body:i}}function q(a){let t=typeof a.body?.reason=="string"?a.body.reason:"",o=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return t&&o?`${t}\uFF08${o}\uFF09`:String(t||a.body?.error||a.status)}function j(a){return a?.message??String(a)}function At(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function ee(a,t){let o=a.trim();return o===""?t:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var $t=["email","openId","userId","unionId"];function ae(a){let t=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(t)]}function dt(a){return(a??[]).join(`
2
2
  `)}function ve(a){return $t.find(t=>a?.[t]?.trim())??"email"}function De(a){let t=a.idValue.trim();if(!t)return null;let o={...a.persisted};if(a.persisted[a.idField]!==t||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let l of $t)delete o[l];o[a.idField]=t;let i=a.name.trim();return i?o.name=i:delete o.name,o}function ke(a,t){return a==null?t("botDefaults.brandStateDefault"):a.trim()===""?t("botDefaults.brandStateOff"):t("botDefaults.brandStateCustom")}var Ce=Yt;function Se(a,t){return a==null?t("botDefaults.maxLiveWorkersStateDefault"):t("botDefaults.maxLiveWorkersStateOn",{count:a})}function Ne(a,t){return{...a,usageDisplay:t.usageDisplay,disableStreamingCard:t.disableStreamingCard,silentTurnReactions:t.silentTurnReactions,codexAppCleanInput:t.codexAppCleanInput,writableTerminalLinkInCard:t.writableTerminalLinkInCard,privateCard:t.privateCard,summaryMemory:t.summaryMemory,summaryMemoryPath:t.summaryMemoryPath,botToBotSameDir:t.botToBotSameDir,autoStartOnGroupJoin:t.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:t.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:t.autoStartOnNewTopic,regularGroupReplyMode:t.regularGroupReplyMode,regularGroupMentionMode:t.regularGroupMentionMode,docSubscribeDefaultMode:t.docSubscribeDefaultMode}}function Te(){let a=H(),t=(0,s.useRef)(!0),o=(0,s.useRef)(Vt()),[u,i]=(0,s.useState)([]),[l,f]=(0,s.useState)(ft),[n,p]=(0,s.useState)(null),[r,b]=(0,s.useState)(!0),[g,c]=(0,s.useState)(!1),[d,N]=(0,s.useState)(""),[S,v]=(0,s.useState)(null),[k,h]=(0,s.useState)(0),[,C]=(0,s.useState)(0),[T,D]=(0,s.useState)(!1),[m,U]=(0,s.useState)("common"),L=(0,s.useCallback)(async(w=!1)=>{w&&h(G=>G+1);let W=o.current.begin();b(!0);try{let[G,Y]=await Promise.all([Kt(),Xt()]);if(!t.current||!W.commit())return;i(G.bots),p(G.error),f(Y)}finally{t.current&&W.commit()&&b(!1)}},[]);(0,s.useEffect)(()=>{t.current=!0,L(),Ft().then(()=>{t.current&&C(W=>W+1)});let w=ht.onBotsChanged(()=>{t.current&&L()});return()=>{t.current=!1,w()}},[L]);let F=(0,s.useMemo)(()=>{let w=d.trim().toLowerCase();return u.filter(W=>!w||(W.botName??"").toLowerCase().includes(w)||(W.larkAppId??"").toLowerCase().includes(w))},[u,d]);(0,s.useEffect)(()=>{if(!(n||r)){if(F.length===0){S!==null&&v(null);return}(!S||!F.some(w=>w.larkAppId===S))&&v(F[0].larkAppId)}},[F,n,r,S]);let M=S?F.find(w=>w.larkAppId===S)??null:null,Z=(0,s.useCallback)((w,W)=>{i(G=>G.map(Y=>Y.larkAppId!==w?Y:typeof W=="function"?W(Y):{...Y,...W}))},[]),Q=async()=>{c(!0);try{await L(!0)}finally{t.current&&c(!1)}},I;return r?I=(0,e.jsx)(vt,{label:a("common.loading")}):n?I=(0,e.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",n,(0,e.jsx)("br",{}),"\u5E38\u89C1\u539F\u56E0\uFF1Adashboard / daemon \u8FDB\u7A0B\u8FD8\u5728\u8DD1\u65E7\u4EE3\u7801\uFF0C\u6267\u884C ",(0,e.jsx)("code",{children:"botmux restart"})," \u540E\u5237\u65B0\u3002"]}):F.length===0?I=(0,e.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):M?I=(0,e.jsx)(Pe,{bot:M,cliState:l,patchBot:Z,activeTab:m,onTabChange:U},`${M.larkAppId}:${k}`):I=null,(0,e.jsxs)("section",{className:"page bot-defaults-page",children:[(0,e.jsxs)("div",{className:"page-heading",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"eyebrow",children:a("nav.botDefaults")}),(0,e.jsx)("h1",{children:a("botDefaults.title")})]}),(0,e.jsxs)("div",{className:"page-heading-actions",children:[(0,e.jsx)(Ht,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:g,disabled:g,onClick:()=>{Q()}}),Lt.authed?(0,e.jsx)(jt,{className:"page-primary-action add-bot-btn",disabled:T,onClick:()=>{D(!0),qt().finally(()=>D(!1))},children:a("botOnboarding.add")}):null]})]}),(0,e.jsxs)("div",{className:"bd-layout",children:[(0,e.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,e.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:w=>w.preventDefault(),children:(0,e.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:d,onChange:w=>N(w.currentTarget.value)})}),(0,e.jsxs)("div",{className:"bd-roster-meta",children:[(0,e.jsx)("span",{children:a("botDefaults.rosterCount",{count:F.length})}),d.trim()&&F.length!==u.length?(0,e.jsx)("span",{children:a("botDefaults.rosterFiltered",{total:u.length})}):null]}),(0,e.jsx)("div",{className:"bd-roster-list",children:!n&&F.map(w=>(0,e.jsx)(xe,{bot:w,selected:w.larkAppId===S,onSelect:()=>v(w.larkAppId)},w.larkAppId))})]}),(0,e.jsx)("div",{id:"bd-list",className:"bd-detail",children:I})]})]})}function xe(a){let{bot:t}=a,o=t.botName??t.larkAppId,u=Dt(t,xt(t.larkAppId));return(0,e.jsxs)("div",{className:`bd-roster-item${a.selected?" on":""}`,"data-appid":t.larkAppId,role:"button",tabIndex:0,onClick:a.onSelect,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),a.onSelect())},children:[(0,e.jsx)(bt,{html:ct({name:o,larkAppId:t.larkAppId,size:"sm"})}),(0,e.jsxs)("div",{className:"bd-roster-tx",children:[(0,e.jsx)("b",{children:(0,e.jsx)(_t,{text:o,showPopover:!1,textClassName:"bd-roster-name"})}),(0,e.jsx)("span",{children:u||t.larkAppId.slice(0,14)})]}),t.defaultOncall?.enabled?(0,e.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function Pe(a){let t=H(),{bot:o,cliState:u,patchBot:i}=a,l=o.botName??o.larkAppId,f=Dt(o,xt(o.larkAppId)),n=(0,s.useCallback)(async r=>{let b=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,r);return b.ok&&i(o.larkAppId,g=>Ne(g,b.body)),b},[o.larkAppId,i]);if(o.error)return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(bt,{html:ct({name:l,larkAppId:o.larkAppId})}),(0,e.jsxs)("div",{className:"bd-profile-id",children:[(0,e.jsx)("strong",{children:l}),(0,e.jsx)("code",{children:o.larkAppId})]})]}),(0,e.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",o.error]})]});let p=o.defaultOncall??{enabled:!1,workingDir:"",since:0};return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,e.jsxs)("div",{className:"bd-profile-chrome",children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(we,{bot:o,name:l,patchBot:i}),(0,e.jsx)("div",{className:"bd-profile-main",children:(0,e.jsx)(Me,{bot:o,cli:f,patchBot:i,meta:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",t("botDefaults.metaOnline")]}),(p.since??0)>0?(0,e.jsxs)("small",{"data-oncall-since":!0,children:[t("botDefaults.lastEnabled"),": ",Zt(p.since??0)]}):null,(o.autoboundChatCount??0)>0?(0,e.jsx)("small",{children:t("botDefaults.autobound",{count:o.autoboundChatCount??0})}):null]})})})]}),(0,e.jsx)(ge,{active:a.activeTab,onChange:a.onTabChange})]}),(0,e.jsxs)("div",{className:"bd-body bd-tab-panels",children:[(0,e.jsx)("div",{id:"bd-panel-common",role:"tabpanel","aria-labelledby":"bd-tab-common",className:"bd-tab-panel",hidden:a.activeTab!=="common",children:(0,e.jsxs)(pt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Be,{bot:o,sessionFallback:f,cliState:u,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ae,{bot:o,patchBot:i,putCardPref:n})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(je,{bot:o,patchBot:i})})]})}),(0,e.jsx)("div",{id:"bd-panel-sessions",role:"tabpanel","aria-labelledby":"bd-tab-sessions",className:"bd-tab-panel",hidden:a.activeTab!=="sessions",children:(0,e.jsxs)(pt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Qe,{bot:o,patchBot:i,putCardPref:n})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ve,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(qe,{bot:o,putCardPref:n})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ke,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ze,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Je,{bot:o,patchBot:i,putCardPref:n})})]})}),(0,e.jsx)("div",{id:"bd-panel-security",role:"tabpanel","aria-labelledby":"bd-tab-security",className:"bd-tab-panel",hidden:a.activeTab!=="security",children:(0,e.jsxs)(pt,{children:[o.cliId!=="riff"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)($e,{bot:o,patchBot:i})}):null,o.cliId!=="riff"&&o.sandbox===!0?(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(Fe,{bot:o,patchBot:i})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(na,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Xe,{bot:o,patchBot:i})})]})}),(0,e.jsx)("div",{id:"bd-panel-cards",role:"tabpanel","aria-labelledby":"bd-tab-cards",className:"bd-tab-panel",hidden:a.activeTab!=="cards",children:(0,e.jsxs)(pt,{children:[(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(We,{bot:o,putCardPref:n})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(sa,{bot:o,patchBot:i})})]})}),(0,e.jsx)("div",{id:"bd-panel-advanced",role:"tabpanel","aria-labelledby":"bd-tab-advanced",className:"bd-tab-panel",hidden:a.activeTab!=="advanced",children:(0,e.jsxs)(pt,{children:[o.cliId!=="riff"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ee,{bot:o,patchBot:i})}):null,o.cliId==="codex-app"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(_e,{bot:o,putCardPref:n})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ie,{bot:o,patchBot:i})})]})})]})]})}function Ie(a){let t=H();return(0,e.jsxs)("section",{className:"bd-section bd-runtime-env",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionRuntimeEnv")}),(0,e.jsx)(Ze,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(Ye,{bot:a.bot,patchBot:a.patchBot})]})}var Ct=512;async function Re(a){let t=await createImageBitmap(a);try{let o=Math.min(t.width,t.height);if(!o)throw new Error("empty image");let u=document.createElement("canvas");u.width=Ct,u.height=Ct;let i=u.getContext("2d");if(!i)throw new Error("canvas unavailable");let l=(t.width-o)/2,f=(t.height-o)/2;return i.drawImage(t,l,f,o,o,0,0,Ct,Ct),u.toDataURL("image/png")}finally{t.close()}}function we(a){let t=H(),{bot:o,name:u,patchBot:i}=a,l=(0,s.useRef)(null),[f,n]=(0,s.useState)(!1),[p,r]=(0,s.useState)(null),[b,g]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),N=(0,s.useRef)(null);function S(h,C){let D=["no_session","session_expired","no_access","unsupported_brand"].includes(h)?t(`botDefaults.avatarWarn.${h}`):C||h;return t("botDefaults.avatarFailed",{error:D})}let v=(0,s.useCallback)(async h=>{n(!0),r({text:`\u23F3 ${t("botDefaults.avatarUploading")}`,ok:!0});try{let C=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/avatar`,{imageBase64:h});if(C.ok&&C.body.ok){let T=typeof C.body.avatarUrl=="string"?C.body.avatarUrl:"";T&&Ut(o.larkAppId,u,T),i(o.larkAppId,D=>({...D})),N.current=null,g(!1),r({text:`\u2713 ${t("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let T=String(C.body?.error??""),D=typeof C.body?.message=="string"?C.body.message:void 0;r({text:`\u2717 ${S(T,D??q(C))}`});let m=T==="no_session"||T==="session_expired";g(m),m||(N.current=null)}}catch(C){r({text:`\u2717 ${t("botDefaults.avatarFailed",{error:j(C)})}`})}finally{n(!1)}},[o.larkAppId,u,i,t]);async function k(h){if(!h||f)return;n(!0);let C;try{C=await Re(h)}catch{n(!1),r({text:`\u2717 ${t("botDefaults.avatarBadImage")}`});return}N.current=C,await v(C)}return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"bd-profile-avatar bd-avatar-editable","data-avatar-control":!0,children:[(0,e.jsxs)("button",{type:"button",className:"bd-avatar-btn","data-action":"edit-bot-avatar",title:t("botDefaults.avatarTitle"),"aria-label":t("botDefaults.avatarTitle"),disabled:f,onClick:()=>l.current?.click(),children:[(0,e.jsx)(bt,{html:ct({name:u,larkAppId:o.larkAppId,dot:"ok"})}),(0,e.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:f?"\u23F3":"\u270E"})]}),(0,e.jsx)("input",{ref:l,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:h=>{let C=h.currentTarget.files?.[0];h.currentTarget.value="",k(C)}}),c?(0,e.jsx)(de,{onClose:()=>d(!1),onSuccess:()=>{g(!1),d(!1),N.current&&v(N.current)}}):null]}),p?(0,e.jsxs)("small",{className:Ot(p,"bd-avatar-status"),"data-avatar-status":!0,children:[p.text,b?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>d(!0),children:t("feishuLogin.entry")}):null]}):null]})}function Me(a){let t=H(),{bot:o,cli:u,patchBot:i}=a,l=o.botName??o.larkAppId,[f,n]=(0,s.useState)(!1),[p,r]=(0,s.useState)(l),[b,g]=(0,s.useState)(!1),[c,d]=(0,s.useState)(null),[N,S]=(0,s.useState)(!1),[v,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{f||r(l)},[f,l]);function h(D){n(D),D&&(r(l),d(null),S(!1))}function C(D,m){let L=["no_session","session_expired","no_access","unsupported_brand"].includes(D)?t(`botDefaults.renameWarn.${D}`):m||D;return t("botDefaults.renameLocalOnly",{reason:L})}let T=(0,s.useCallback)(async()=>{let D=p.trim();if(!D){d({text:`\u2717 ${t("botDefaults.renameEmpty")}`});return}g(!0),d({text:`\u23F3 ${t("botDefaults.renaming")}`,ok:!0});try{let m=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:D});if(m.ok&&m.body.ok){let U=typeof m.body.botName=="string"&&m.body.botName?m.body.botName:D;i(o.larkAppId,L=>({...L,botName:U,larkBotName:m.body.mode==="feishu"?D:L.larkBotName,displayName:m.body.mode==="feishu"?null:D})),h(!1),m.body.mode==="feishu"?(d({text:`\u2713 ${t("botDefaults.renameOkFeishu")}`,ok:!0}),S(!1)):(d({text:`\u26A0 ${C(String(m.body.warning??""),m.body.message)}`}),S(m.body.warning==="no_session"||m.body.warning==="session_expired"))}else d({text:`\u2717 ${t("botDefaults.renameFailed",{error:q(m)})}`})}catch(m){d({text:`\u2717 ${t("botDefaults.renameFailed",{error:j(m)})}`})}finally{g(!1)}},[o.larkAppId,p,i,t]);return(0,e.jsxs)("div",{className:"bd-profile-id",children:[f?(0,e.jsxs)("span",{className:"bd-name-editor","data-name-editor":!0,children:[(0,e.jsx)("input",{type:"text",className:"bd-name-input","data-input":"botRename",maxLength:64,value:p,disabled:b,autoFocus:!0,onChange:D=>r(D.currentTarget.value),onKeyDown:D=>{D.key==="Enter"?(D.preventDefault(),T()):D.key==="Escape"&&h(!1)}}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:b,onClick:()=>{T()},children:t("botDefaults.renameSave")}),(0,e.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:b,onClick:()=>h(!1),children:t("botDefaults.renameCancel")})]}):(0,e.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,e.jsxs)("div",{className:"bd-profile-title-content",children:[(0,e.jsx)("strong",{"data-bot-name":!0,children:l}),u?(0,e.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:u}):null,a.meta?(0,e.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,e.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:t("botDefaults.renameTitle"),"aria-label":t("botDefaults.renameTitle"),onClick:()=>h(!0),children:(0,e.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),(0,e.jsxs)("div",{className:"bd-profile-appid-row",children:[(0,e.jsx)("code",{children:o.larkAppId}),St(o.larkAppId,o.brand)?(0,e.jsxs)("a",{className:"bd-console-link",href:St(o.larkAppId,o.brand),target:"_blank",rel:"noopener noreferrer",children:[t("botDefaults.openConsole"),(0,e.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M7 17 17 7M9 7h8v8"})})]}):null]}),(0,e.jsx)("small",{className:Ot(c,"bd-name-status"),"data-name-status":!0,children:c?.text??""}),(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!N,onClick:()=>k(!0),children:t("feishuLogin.entry")}),v?(0,e.jsx)(de,{onClose:()=>k(!1),onSuccess:()=>{S(!1),k(!1),T()}}):null]})}function de(a){let t=H(),{onClose:o,onSuccess:u}=a,i=(0,s.useRef)(null),l=(0,s.useRef)(null),[f,n]=(0,s.useState)(t("feishuLogin.starting")),[p,r]=(0,s.useState)(null),[b,g]=(0,s.useState)(!1),c=(0,s.useCallback)(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]),d=(0,s.useCallback)(v=>v?v.status==="awaiting_scan"&&v.qrDataUrl?(r(v.qrDataUrl),n(v.message||t("feishuLogin.scanHint")),g(!1),"active"):v.status==="starting"?(n(v.message||t("feishuLogin.starting")),r(null),g(!1),"active"):v.status==="success"?(c(),r(null),g(!1),n(t("feishuLogin.success")),l.current=window.setTimeout(()=>u(),900),"done"):(c(),r(null),n(t("feishuLogin.failed",{reason:v.message||v.reason||""})),g(!0),"done"):"active",[u,c,t]),N=(0,s.useCallback)(async()=>{try{let k=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));d(k.login)}catch{}},[d]),S=(0,s.useCallback)(async()=>{c(),n(t("feishuLogin.starting")),r(null),g(!1);let v="active";try{let h=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));v=d(h.login)}catch(k){n(t("feishuLogin.failed",{reason:j(k)})),g(!0);return}v==="active"&&i.current===null&&(i.current=window.setInterval(()=>{N()},1500))},[N,d,c,t]);return(0,s.useEffect)(()=>(S(),()=>{c(),l.current!==null&&window.clearTimeout(l.current)}),[S,c]),typeof document>"u"?null:(0,ue.createPortal)((0,e.jsx)("div",{className:"feishu-login-overlay",onClick:v=>{v.currentTarget===v.target&&o()},children:(0,e.jsxs)("div",{className:"feishu-login-modal",role:"dialog","aria-modal":"true",children:[(0,e.jsx)("button",{type:"button",className:"feishu-login-close","data-close":!0,"aria-label":t("feishuLogin.close"),onClick:o,children:"x"}),(0,e.jsx)("h3",{className:"feishu-login-title",children:t("feishuLogin.title")}),(0,e.jsx)("p",{className:"feishu-login-hint","data-hint":!0,children:f}),(0,e.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:p?(0,e.jsx)("img",{className:"qr-image",src:p,alt:t("feishuLogin.qrAlt")}):null}),(0,e.jsx)("div",{className:"feishu-login-actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-retry":!0,hidden:!b,onClick:()=>{S()},children:t("feishuLogin.retry")})})]})}),document.body)}function Be(a){let t=H(),{bot:o,cliState:u,patchBot:i}=a,l=Pt(o,a.sessionFallback),f=JSON.stringify([o.cliRuntime??null,o.cliPathOverride??null]),[n,p]=(0,s.useState)(l),[r,b]=(0,s.useState)(!1),[g,c]=(0,s.useState)(typeof o.model=="string"?o.model:""),[d,N]=(0,s.useState)(()=>Rt(o)),[S,v]=(0,s.useState)(!1),[k,h]=(0,s.useState)(null),[C,T]=(0,s.useState)(null),[D,m]=(0,s.useState)(!1),[U,L]=(0,s.useState)(oe(o)),[F,M]=(0,s.useState)(null),[Z,Q]=(0,s.useState)(!1);(0,s.useEffect)(()=>{p(Pt(o,a.sessionFallback)),b(!1),c(typeof o.model=="string"?o.model:""),N(Rt(o)),v(!1),L(oe(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,f,o.wrapperCli,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let I=It(u.options,n),w=Qt(I,u),W=I?.gateway==="ttadk"&&I.acceptsModel===!1,G=W?t("botOnboarding.modelTtadkCocoPlaceholder"):I?.gateway==="ttadk"?t("botOnboarding.modelTtadkPlaceholder").replace("{model}",u.ttadkModelDefault):t("botDefaults.agentModelPlaceholder");function Y(P){let X=n;p(P),b(!0),P!==X&&(P!=="codex"||X!=="codex")&&(N(Rt({cliRuntime:null,cliPathOverride:null})),v(!0),h(null));let _=It(u.options,P),rt=_?.gateway==="ttadk",lt=rt&&_.acceptsModel!==!1;c(rt&&!lt?"":lt?at=>at.trim()?at:u.ttadkModelDefault:at=>at.trim()===u.ttadkModelDefault?"":at)}function B(P){N(X=>({...X,mode:P})),v(!0),h(null),T(null)}function y(P){N(X=>({...X,...P})),v(!0),h(null),T(null)}async function x(){T(null),h(null);let P;if(S&&(P=null),S&&n==="codex"&&d.mode==="custom"){let X=d.id.trim(),_=d.executable.trim(),rt=d.displayName.trim(),lt=d.packageName.trim();if(!X||!_){let at=t("botDefaults.runtimeRequired");T({text:at}),h({text:at});return}if(d.updateProvider==="npm"&&!lt){let at=t("botDefaults.runtimePackageRequired");T({text:at}),h({text:at});return}P={id:X,...rt?{displayName:rt}:{},executable:_,update:d.updateProvider==="npm"?{provider:"npm",packageName:lt}:{provider:d.updateProvider}}}m(!0);try{let X={cliId:n,model:g,...S?{cliRuntime:P}:{}},_=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,X);if(_.ok&&_.body.ok){let rt=Number.isInteger(_.body.closedMismatchedSessions)&&_.body.closedMismatchedSessions>0?_.body.closedMismatchedSessions:0,lt=rt>0?t("botDefaults.agentClosedCount",{count:rt}):"";if(T(_.body.availabilityWarning?{text:`\u26A0\uFE0F ${_.body.availabilityWarning}${lt?` \xB7 ${lt}`:""}`}:{text:`\u2713 ${lt||t("botDefaults.agentSaved")}`,ok:!0}),i(o.larkAppId,{cliId:_.body.cliId,cliRuntime:_.body.cliRuntime===void 0?S?P??null:o.cliRuntime??null:_.body.cliRuntime,cliPathOverride:_.body.cliPathOverride===void 0?S?null:o.cliPathOverride??null:_.body.cliPathOverride,wrapperCli:_.body.wrapperCli??null,model:_.body.model??"",agentSelectionKey:_.body.selectionKey??n}),v(!1),P){let at=_.body.runtimeProbe;at&&typeof at.version=="string"?h({text:t("botDefaults.runtimeProbeOk",{version:at.version,provider:typeof at.updateProvider=="string"?at.updateProvider:d.updateProvider}),ok:!0}):h({text:t("botDefaults.runtimeProbeMissing")})}}else{let lt=`\u2717 ${typeof _.body?.message=="string"&&_.body.message?_.body.message:q(_)}`;T({text:lt}),n==="codex"&&d.mode==="custom"&&h({text:lt})}}catch(X){let _=`\u2717 ${j(X)}`;T({text:_}),n==="codex"&&d.mode==="custom"&&h({text:_})}finally{m(!1)}}async function R(){if(o.cliId==="riff")return!0;try{let P=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:"riff",model:""});return P.ok&&P.body.ok?(i(o.larkAppId,{cliId:P.body.cliId,cliRuntime:P.body.cliRuntime??null,wrapperCli:P.body.wrapperCli??null,model:P.body.model??"",agentSelectionKey:P.body.selectionKey??"riff"}),!0):(T({text:`\u2717 ${q(P)}`}),!1)}catch(P){return T({text:`\u2717 ${j(P)}`}),!1}}async function A(P){L(P),M(null),Q(!0);try{let X=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:P});X.ok&&X.body.ok?(M({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}),i(o.larkAppId,{skillInjection:X.body.skillInjection??null})):M({text:`\u2717 ${q(X)}`})}catch(X){M({text:`\u2717 ${j(X)}`})}finally{Q(!1)}}let $=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",E=n==="riff",et=n==="codex"&&(!o.wrapperCli||r),V=et&&d.mode!=="official",z=[...u.options].sort((P,X)=>P.label.localeCompare(X.label,"en",{sensitivity:"base"})).map(P=>({value:P.id,label:P.available===!1&&!(P.id==="codex"&&V)?t("botDefaults.agentMissingOption",{label:P.label,command:P.command??P.id}):`${P.label}\uFF08${P.id}\uFF09`})),st=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamic")}],tt=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamicUnsupported"),disabled:!0},{value:"prompt",label:t("botDefaults.skillInjectionPrompt")},{value:"global",label:t("botDefaults.skillInjectionGlobal")},{value:"off",label:t("botDefaults.skillInjectionOff")}],it=[{value:"auto",label:t("botDefaults.runtimeProviderAuto")},{value:"self",label:t("botDefaults.runtimeProviderSelf")},{value:"npm",label:t("botDefaults.runtimeProviderNpm")},{value:"none",label:t("botDefaults.runtimeProviderNone")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionAgent")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.agentCli")}),(0,e.jsx)(ot,{dataInput:"agentCliId",ariaLabel:t("botDefaults.agentCli"),value:n,disabled:D,options:z,searchable:!0,onChange:Y}),I?.available===!1&&!V?(0,e.jsx)("small",{className:"hint-warn",children:t("botDefaults.agentMissingHint",{command:I.command??n})}):null]})}),et?(0,e.jsxs)("div",{className:"bd-codex-runtime","data-codex-runtime":"",children:[(0,e.jsx)("div",{className:"bd-runtime-heading",children:(0,e.jsx)(O,{help:t("botDefaults.runtimeHelp"),children:t("botDefaults.runtimeTitle")})}),(0,e.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":t("botDefaults.runtimeTitle"),children:[(0,e.jsx)("button",{type:"button","data-action":"runtime-official","aria-pressed":d.mode==="official",disabled:D,onClick:()=>B("official"),children:t("botDefaults.runtimeOfficial")}),(0,e.jsx)("button",{type:"button","data-action":"runtime-custom","aria-pressed":d.mode==="custom",disabled:D,onClick:()=>B("custom"),children:t("botDefaults.runtimeCustom")})]}),(0,e.jsx)("input",{type:"hidden","data-input":"agentRuntimeMode",value:d.mode,readOnly:!0}),(0,e.jsx)("p",{className:"bd-runtime-note",children:t(d.mode==="official"?"botDefaults.runtimeOfficialNote":d.mode==="legacy"?"botDefaults.runtimeLegacyNote":"botDefaults.runtimeCustomNote")}),d.mode==="legacy"?(0,e.jsx)("div",{className:"bd-runtime-fields","data-runtime-legacy":"",children:(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeLegacyPath")}),(0,e.jsx)("input",{type:"text",value:d.legacyPath,readOnly:!0,"aria-readonly":"true","data-input":"agentRuntimeLegacyPath"})]})}):null,d.mode==="custom"?(0,e.jsxs)("div",{className:"bd-runtime-fields",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(O,{help:t("botDefaults.runtimeIdHelp"),children:t("botDefaults.runtimeId")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeId",value:d.id,disabled:D,autoComplete:"off",onChange:P=>y({id:P.currentTarget.value})})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeDisplayName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeDisplayName",placeholder:t("botDefaults.runtimeDisplayNamePlaceholder"),value:d.displayName,disabled:D,autoComplete:"off",onChange:P=>y({displayName:P.currentTarget.value})})]}),(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)(O,{help:t("botDefaults.runtimeExecutableHelp"),children:t("botDefaults.runtimeExecutable")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeExecutable",value:d.executable,disabled:D,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:P=>y({executable:P.currentTarget.value})})]}),(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeUpdateProvider")}),(0,e.jsx)(ot,{dataInput:"agentRuntimeUpdateProvider",ariaLabel:t("botDefaults.runtimeUpdateProvider"),value:d.updateProvider,disabled:D,options:it,onChange:P=>y({updateProvider:P})})]}),d.updateProvider==="npm"?(0,e.jsxs)("label",{children:[(0,e.jsx)(O,{help:t("botDefaults.runtimePackageHelp"),children:t("botDefaults.runtimePackageName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimePackageName",value:d.packageName,disabled:D,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:P=>y({packageName:P.currentTarget.value})})]}):null]}):null,(0,e.jsx)(J,{status:k,attr:{"data-runtime-status":""}})]}):null,!E&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(O,{help:t("botDefaults.agentHelp"),children:t("botDefaults.agentModel")}),(0,e.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:G,value:g,disabled:D||W,onChange:P=>c(P.currentTarget.value)}),(0,e.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:w.map(P=>(0,e.jsx)("option",{value:P},P))})]})}),E&&(0,e.jsx)(oa,{bot:o,patchBot:i,persistCliSelection:R}),!E&&$==="dynamic"?(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(O,{help:t("botDefaults.skillInjectionHelpDynamic"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(ot,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:st,onChange:()=>{}})]})}):!E&&$==="global"?(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(O,{help:t("botDefaults.skillInjectionHelp"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(ot,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:U,disabled:Z,options:tt,onChange:P=>{A(P)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:F,attr:{"data-skill-injection-status":""}})})]}):null,!E&&(0,e.jsxs)("div",{className:"actions bd-section-actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:D,onClick:()=>{x()},children:t("botDefaults.agentSave")}),(0,e.jsx)(J,{status:C,attr:{"data-agent-status":""}})]})]})}function oe(a){let t=a.skillInjection==="global"||a.skillInjection==="prompt"||a.skillInjection==="off"?a.skillInjection:"",o=a.skillInjectionDefault==="global"||a.skillInjectionDefault==="off"?a.skillInjectionDefault:"prompt";return t||o}function Ae(a){let t=H(),{bot:o,patchBot:u}=a,i=se(o),[l,f]=(0,s.useState)(i.mode),[n,p]=(0,s.useState)(i.workingDir),[r,b]=(0,s.useState)(o.defaultWorkingDirAutoWorktree===!0),[g,c]=(0,s.useState)(null),[d,N]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let k=se(o);f(k.mode),p(k.workingDir),b(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function S(){c(null);let k=n.trim();if(l!=="off"&&!k){c({text:t("botDefaults.required")});return}let h=l==="default"&&r;N(!0);try{let C=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:l,workingDir:k,autoWorktree:h});if(C.ok&&C.body.ok){let T=C.body.resolvedPath?` \u2192 ${C.body.resolvedPath}`:"";c({text:`\u2713 ${t("botDefaults.workingDirSaved")}${T}`,ok:!0}),u(o.larkAppId,{defaultOncall:C.body.defaultOncall??o.defaultOncall,defaultWorkingDir:C.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:C.body.defaultWorkingDirAutoWorktree===!0})}else c({text:`\u2717 ${q(C)}`})}catch(C){c({text:`\u2717 ${j(C)}`})}finally{N(!1)}}let v=[{value:"off",label:t("botDefaults.workingDirModeOff")},{value:"default",label:t("botDefaults.workingDirModeDefault")},{value:"oncall",label:t("botDefaults.workingDirModeOncall")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionWorkingDir")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(O,{help:t("botDefaults.workingDirModeHelp"),children:t("botDefaults.workingDirMode")}),(0,e.jsx)(ot,{dataInput:"workingDirMode",ariaLabel:t("botDefaults.workingDirMode"),value:l,disabled:d,options:v,onChange:k=>f(k)})]})}),(0,e.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:l==="off",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.workingDirField")}),(0,e.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:n,disabled:d,onChange:k=>p(k.currentTarget.value)})]})}),(0,e.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:l!=="default",children:[(0,e.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:r,disabled:d,onChange:k=>b(k.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsx)("span",{className:"toggle-tx",children:(0,e.jsx)("strong",{children:(0,e.jsx)(O,{help:t("botDefaults.autoWorktreeHelp"),children:t("botDefaults.autoWorktree")})})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-working-dir",disabled:d,onClick:()=>{S()},children:t("botDefaults.save")}),(0,e.jsx)(J,{status:g,attr:{"data-status":""}})]}),(0,e.jsx)(Oe,{bot:o,putCardPref:a.putCardPref})]})}function se(a){let t=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:t.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||t.workingDir||""}}function Oe(a){let t=H(),{bot:o,putCardPref:u}=a,[i,l]=(0,s.useState)(o.autoStartOnGroupJoin===!0),[f,n]=(0,s.useState)(o.autoStartOnNewTopic===!0),[p,r]=(0,s.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[b,g]=(0,s.useState)(null),[c,d]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(o.autoStartOnGroupJoin===!0),n(o.autoStartOnNewTopic===!0),r(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:"")},[o.autoStartOnGroupJoin,o.autoStartOnGroupJoinPrompt,o.autoStartOnNewTopic]);async function N(S,v){d(v),g(null);try{let k=await u(S);g(k.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${q(k)}`})}catch(k){g({text:`\u2717 ${j(k)}`})}finally{d(null)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:t("botDefaults.sectionAutoStart")}),(0,e.jsx)(nt,{checked:i,disabled:c==="join",dataAction:"toggle-auto-join",title:t("botDefaults.autoStartJoin"),help:t("botDefaults.autoStartJoinHelp"),onChange:S=>{l(S),N({autoStartOnGroupJoin:S},"join")}}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.autoStartJoinPrompt")}),(0,e.jsx)("textarea",{"data-input":"autoJoinPrompt",rows:3,placeholder:t("botDefaults.autoStartJoinPromptPlaceholder"),value:p,onChange:S=>r(S.currentTarget.value)})]})}),(0,e.jsx)(nt,{checked:f,disabled:c==="topic",dataAction:"toggle-auto-topic",title:t("botDefaults.autoStartTopic"),help:t("botDefaults.autoStartTopicHelp"),onChange:S=>{n(S),N({autoStartOnNewTopic:S},"topic")}}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:c==="prompt",onClick:()=>{N({autoStartOnGroupJoinPrompt:p},"prompt")},children:t("botDefaults.autoStartJoinPromptSave")}),(0,e.jsx)(J,{status:b,attr:{"data-auto-start-status":""}})]})]})}function $e(a){let t=H(),{bot:o,patchBot:u}=a,[i,l]=(0,s.useState)(o.sandbox===!0),[f,n]=(0,s.useState)(null),[p,r]=(0,s.useState)(!1);(0,s.useEffect)(()=>l(o.sandbox===!0),[o.sandbox]);async function b(c){l(c),n(null),r(!0);try{let d=await K("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:c});d.ok&&d.body.ok?(n({text:`\u2713 ${t("botDefaults.sandboxSaved")}`,ok:!0}),u(o.larkAppId,{sandbox:d.body.sandbox===!0})):(n({text:`\u2717 ${q(d)}`}),l(!c))}catch(d){n({text:`\u2717 ${j(d)}`}),l(!c)}finally{r(!1)}}let g=o.readIsolationSupported===!0;return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSandbox")}),(0,e.jsx)(nt,{checked:i,disabled:p,dataAction:"toggle-sandbox",title:t("botDefaults.sandboxToggle"),help:t("botDefaults.sandboxHelp"),onChange:c=>{b(c)}}),(0,e.jsx)("p",{className:"bd-section-note","data-read-iso-capability":g?"yes":"no",children:g?`\uFF0B ${t("botDefaults.sandboxReadIsoOn")}`:t("botDefaults.sandboxReadIsoOff")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:f,attr:{"data-sandbox-status":""}})})]})}var ne={readWrite:0,readOnly:1,deny:2};function le(a,t,o){let u=b=>b==="~"||b.startsWith("~/")?o.replace(/\/+$/,"")+b.slice(1):b,i=b=>u(b).replace(/\/+$/,"")||"/",l=i(t),f=(b,g)=>{let c=i(b),d=i(g);return c===d||d.startsWith(c==="/"?"/":c+"/")},n=b=>i(b)==="/"?0:i(b).split("/").filter(Boolean).length,p,r=(b,g)=>{if(!f(g,l))return;let c=n(g);(!p||c>p.ruleDepth||c===p.ruleDepth&&ne[b]>ne[p.access])&&(p={access:b,ruleDepth:c,rule:g})};for(let b of a.readWrite)r("readWrite",b);for(let b of a.readOnly)r("readOnly",b);for(let b of a.deny)r("deny",b);return p?{access:p.access,rule:p.rule}:{access:"none"}}function ce(){return{readWrite:[],readOnly:[],deny:[]}}function gt(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:ce()}function Le(a,t){let o=u=>[...u].sort().join(`
3
3
  `);return o(a.readWrite)===o(t.readWrite)&&o(a.readOnly)===o(t.readOnly)&&o(a.deny)===o(t.deny)}function wt(a){let t=[];for(let o of a.readWrite)t.push(`rw ${o}`);for(let o of a.readOnly)t.push(`ro ${o}`);for(let o of a.deny)t.push(`deny ${o}`);return t.join(`
4
4
  `)}function Ue(a){let t=ce();for(let o of a.split(`
@@ -1 +1 @@
1
- import{E as i,I as c,d as r}from"./chunk-ELL53D62.js";var l={chats:[],bots:[]};async function A(){try{l=await r()}catch{}}var p=new Set(["working","analyzing","active","starting"]);function m(d){let s=new Map,e=t=>{let a=s.get(t);return a||(a={botName:t,larkAppId:t,cliId:"unknown",online:!1,sessions:[],active:[],busy:[],attention:[],lastActiveAt:0},s.set(t,a)),a};for(let t of l.bots??[]){let a=e(t.larkAppId??t.botName??"-");a.online=!0,t.botName&&(a.botName=t.botName),t.botAvatarUrl&&(a.botAvatarUrl=t.botAvatarUrl),t.cliId&&(a.cliId=t.cliId),t.brand&&(a.brand=t.brand)}let b=[...d].sort((t,a)=>+(t.status==="closed")-+(a.status==="closed"));for(let t of b){let a=t.larkAppId??t.botName??"-";if(t.status==="closed"&&!s.has(a))continue;let o=e(a);t.botName&&(o.botName===o.larkAppId||!o.botName)&&(o.botName=t.botName),o.sessions.push(t),t.cliId&&o.cliId==="unknown"&&(o.cliId=t.cliId),o.lastActiveAt=Math.max(o.lastActiveAt,Number(t.lastMessageAt??0)),t.status!=="closed"&&(o.active.push(t),p.has(t.status)&&o.busy.push(t),c(t)&&o.attention.push(t))}for(let t of s.values())if(t.botName===t.larkAppId){let a=i(t.larkAppId);a&&(t.botName=a)}return[...s.values()].sort((t,a)=>{let o=n=>n.attention.length?0:n.busy.length?1:n.online||n.active.length?2:3;return o(t)!==o(a)?o(t)-o(a):a.lastActiveAt-t.lastActiveAt})}export{A as a,m as b};
1
+ import{E as i,I as c,d as r}from"./chunk-6JTZJRQJ.js";var l={chats:[],bots:[]};async function A(){try{l=await r()}catch{}}var p=new Set(["working","analyzing","active","starting"]);function m(d){let s=new Map,e=t=>{let a=s.get(t);return a||(a={botName:t,larkAppId:t,cliId:"unknown",online:!1,sessions:[],active:[],busy:[],attention:[],lastActiveAt:0},s.set(t,a)),a};for(let t of l.bots??[]){let a=e(t.larkAppId??t.botName??"-");a.online=!0,t.botName&&(a.botName=t.botName),t.botAvatarUrl&&(a.botAvatarUrl=t.botAvatarUrl),t.cliId&&(a.cliId=t.cliId),t.brand&&(a.brand=t.brand)}let b=[...d].sort((t,a)=>+(t.status==="closed")-+(a.status==="closed"));for(let t of b){let a=t.larkAppId??t.botName??"-";if(t.status==="closed"&&!s.has(a))continue;let o=e(a);t.botName&&(o.botName===o.larkAppId||!o.botName)&&(o.botName=t.botName),o.sessions.push(t),t.cliId&&o.cliId==="unknown"&&(o.cliId=t.cliId),o.lastActiveAt=Math.max(o.lastActiveAt,Number(t.lastMessageAt??0)),t.status!=="closed"&&(o.active.push(t),p.has(t.status)&&o.busy.push(t),c(t)&&o.attention.push(t))}for(let t of s.values())if(t.botName===t.larkAppId){let a=i(t.larkAppId);a&&(t.botName=a)}return[...s.values()].sort((t,a)=>{let o=n=>n.attention.length?0:n.busy.length?1:n.online||n.active.length?2:3;return o(t)!==o(a)?o(t)-o(a):a.lastActiveAt-t.lastActiveAt})}export{A as a,m as b};