botmux 3.2.1 → 3.3.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 (150) hide show
  1. package/dist/adapters/cli/pi.d.ts.map +1 -1
  2. package/dist/adapters/cli/pi.js +4 -0
  3. package/dist/adapters/cli/pi.js.map +1 -1
  4. package/dist/adapters/cli/types.d.ts +8 -1
  5. package/dist/adapters/cli/types.d.ts.map +1 -1
  6. package/dist/cli/deferred-topic-send.d.ts +37 -0
  7. package/dist/cli/deferred-topic-send.d.ts.map +1 -0
  8. package/dist/cli/deferred-topic-send.js +69 -0
  9. package/dist/cli/deferred-topic-send.js.map +1 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +160 -34
  12. package/dist/cli.js.map +1 -1
  13. package/dist/core/command-handler.d.ts.map +1 -1
  14. package/dist/core/command-handler.js +17 -12
  15. package/dist/core/command-handler.js.map +1 -1
  16. package/dist/core/dashboard-ipc-server.d.ts +4 -1
  17. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  18. package/dist/core/dashboard-ipc-server.js +78 -8
  19. package/dist/core/dashboard-ipc-server.js.map +1 -1
  20. package/dist/core/deferred-schedule-settlement.d.ts +20 -0
  21. package/dist/core/deferred-schedule-settlement.d.ts.map +1 -0
  22. package/dist/core/deferred-schedule-settlement.js +18 -0
  23. package/dist/core/deferred-schedule-settlement.js.map +1 -0
  24. package/dist/core/deferred-topic-binding.d.ts +19 -0
  25. package/dist/core/deferred-topic-binding.d.ts.map +1 -0
  26. package/dist/core/deferred-topic-binding.js +55 -0
  27. package/dist/core/deferred-topic-binding.js.map +1 -0
  28. package/dist/core/scheduler.d.ts +26 -20
  29. package/dist/core/scheduler.d.ts.map +1 -1
  30. package/dist/core/scheduler.js +114 -56
  31. package/dist/core/scheduler.js.map +1 -1
  32. package/dist/core/session-discovery.d.ts.map +1 -1
  33. package/dist/core/session-discovery.js +47 -15
  34. package/dist/core/session-discovery.js.map +1 -1
  35. package/dist/core/session-manager.d.ts +17 -1
  36. package/dist/core/session-manager.d.ts.map +1 -1
  37. package/dist/core/session-manager.js +178 -84
  38. package/dist/core/session-manager.js.map +1 -1
  39. package/dist/core/types.d.ts +4 -0
  40. package/dist/core/types.d.ts.map +1 -1
  41. package/dist/core/types.js +10 -0
  42. package/dist/core/types.js.map +1 -1
  43. package/dist/core/worker-pool.d.ts +7 -0
  44. package/dist/core/worker-pool.d.ts.map +1 -1
  45. package/dist/core/worker-pool.js +51 -1
  46. package/dist/core/worker-pool.js.map +1 -1
  47. package/dist/daemon.d.ts.map +1 -1
  48. package/dist/daemon.js +90 -5
  49. package/dist/daemon.js.map +1 -1
  50. package/dist/dashboard/schedule-card-model.d.ts +12 -3
  51. package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
  52. package/dist/dashboard/schedule-card-model.js +32 -8
  53. package/dist/dashboard/schedule-card-model.js.map +1 -1
  54. package/dist/dashboard/web/dashboard-components.d.ts +7 -0
  55. package/dist/dashboard/web/dashboard-components.d.ts.map +1 -1
  56. package/dist/dashboard/web/dashboard-components.js +11 -2
  57. package/dist/dashboard/web/dashboard-components.js.map +1 -1
  58. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  59. package/dist/dashboard/web/i18n.js +30 -6
  60. package/dist/dashboard/web/i18n.js.map +1 -1
  61. package/dist/dashboard/web/schedules-page.d.ts +2 -0
  62. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  63. package/dist/dashboard/web/schedules-page.js +74 -27
  64. package/dist/dashboard/web/schedules-page.js.map +1 -1
  65. package/dist/dashboard-web/app.js +1 -1
  66. package/dist/dashboard-web/chunks/{bot-defaults-page-O37SAQD5.js → bot-defaults-page-B5AY4B2J.js} +1 -1
  67. package/dist/dashboard-web/chunks/{chunk-6QHMLMIM.js → chunk-CUV65BIQ.js} +3 -3
  68. package/dist/dashboard-web/chunks/{chunk-O2DPQL7C.js → chunk-JNRSPKLS.js} +1 -1
  69. package/dist/dashboard-web/chunks/{chunk-FYALHCPG.js → chunk-P6GO5KT4.js} +1 -1
  70. package/dist/dashboard-web/chunks/chunk-QFMH6ITB.js +1 -0
  71. package/dist/dashboard-web/chunks/{chunk-B42PCL5P.js → chunk-UBOLHQCK.js} +1 -1
  72. package/dist/dashboard-web/chunks/{connectors-page-DZBQ42MH.js → connectors-page-KTC2QWNW.js} +1 -1
  73. package/dist/dashboard-web/chunks/{groups-page-3IEGRZKQ.js → groups-page-B3EKGOLY.js} +1 -1
  74. package/dist/dashboard-web/chunks/{insights-page-X3ADRON3.js → insights-page-X6RXNCWX.js} +1 -1
  75. package/dist/dashboard-web/chunks/{monitor-room-IV36RGQY.js → monitor-room-LLRA5LQW.js} +1 -1
  76. package/dist/dashboard-web/chunks/{monitoring-page-ADFKVON4.js → monitoring-page-7MT5FEOS.js} +1 -1
  77. package/dist/dashboard-web/chunks/{office-page-CALAOWNS.js → office-page-KD46D5TD.js} +1 -1
  78. package/dist/dashboard-web/chunks/{overview-page-SLMGLK3M.js → overview-page-JUWNH32O.js} +1 -1
  79. package/dist/dashboard-web/chunks/{roles-page-L7JJ4FFV.js → roles-page-P6F7NLOI.js} +1 -1
  80. package/dist/dashboard-web/chunks/schedules-page-XIHWZST4.js +1 -0
  81. package/dist/dashboard-web/chunks/{sessions-page-OKJ5YWUZ.js → sessions-page-2VECQ27T.js} +1 -1
  82. package/dist/dashboard-web/chunks/{settings-page-P6MI2ZUE.js → settings-page-HMIUE2JA.js} +1 -1
  83. package/dist/dashboard-web/chunks/{skills-page-FT7BVZ6X.js → skills-page-A46KVWBL.js} +1 -1
  84. package/dist/dashboard-web/chunks/{team-federation-page-DEYCPUFB.js → team-federation-page-SDUC56DF.js} +1 -1
  85. package/dist/dashboard-web/chunks/{v3-page-4IOWREZG.js → v3-page-J5JOTUSQ.js} +1 -1
  86. package/dist/dashboard-web/chunks/{whiteboards-page-2VMBETZH.js → whiteboards-page-U7LSOAWI.js} +1 -1
  87. package/dist/dashboard-web/style.css +34 -4
  88. package/dist/dashboard.js +16 -1
  89. package/dist/dashboard.js.map +1 -1
  90. package/dist/i18n/en.d.ts.map +1 -1
  91. package/dist/i18n/en.js +16 -7
  92. package/dist/i18n/en.js.map +1 -1
  93. package/dist/i18n/zh.d.ts.map +1 -1
  94. package/dist/i18n/zh.js +16 -7
  95. package/dist/i18n/zh.js.map +1 -1
  96. package/dist/im/lark/card-handler.d.ts.map +1 -1
  97. package/dist/im/lark/card-handler.js +3 -0
  98. package/dist/im/lark/card-handler.js.map +1 -1
  99. package/dist/im/lark/event-dispatcher.d.ts +1 -0
  100. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  101. package/dist/im/lark/event-dispatcher.js +1 -1
  102. package/dist/im/lark/event-dispatcher.js.map +1 -1
  103. package/dist/im/lark/schedules-card.d.ts +2 -2
  104. package/dist/im/lark/schedules-card.d.ts.map +1 -1
  105. package/dist/im/lark/schedules-card.js +50 -34
  106. package/dist/im/lark/schedules-card.js.map +1 -1
  107. package/dist/index-daemon.js +13 -1
  108. package/dist/index-daemon.js.map +1 -1
  109. package/dist/services/schedule-store.d.ts +6 -2
  110. package/dist/services/schedule-store.d.ts.map +1 -1
  111. package/dist/services/schedule-store.js +19 -4
  112. package/dist/services/schedule-store.js.map +1 -1
  113. package/dist/skills/definitions.d.ts.map +1 -1
  114. package/dist/skills/definitions.js +4 -5
  115. package/dist/skills/definitions.js.map +1 -1
  116. package/dist/types.d.ts +36 -8
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/utils/child-env.d.ts +40 -1
  119. package/dist/utils/child-env.d.ts.map +1 -1
  120. package/dist/utils/child-env.js +45 -0
  121. package/dist/utils/child-env.js.map +1 -1
  122. package/dist/utils/pending-input-queue.d.ts +10 -0
  123. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  124. package/dist/utils/pending-input-queue.js +15 -0
  125. package/dist/utils/pending-input-queue.js.map +1 -1
  126. package/dist/worker.js +102 -9
  127. package/dist/worker.js.map +1 -1
  128. package/dist/workflows/hostExecutors/botmux-schedule.d.ts +3 -1
  129. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
  130. package/dist/workflows/hostExecutors/botmux-schedule.js +14 -3
  131. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
  132. package/dist/workflows/v3/architect.js +1 -1
  133. package/dist/workflows/v3/architect.js.map +1 -1
  134. package/dist/workflows/v3/contract.d.ts +8 -0
  135. package/dist/workflows/v3/contract.d.ts.map +1 -1
  136. package/dist/workflows/v3/contract.js.map +1 -1
  137. package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
  138. package/dist/workflows/v3/daemon-run.js +2 -0
  139. package/dist/workflows/v3/daemon-run.js.map +1 -1
  140. package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
  141. package/dist/workflows/v3/ephemeral-pool.js +10 -2
  142. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  143. package/dist/workflows/v3/run-envelope.d.ts +24 -24
  144. package/dist/workflows/v3/runtime.d.ts +5 -0
  145. package/dist/workflows/v3/runtime.d.ts.map +1 -1
  146. package/dist/workflows/v3/runtime.js +1 -0
  147. package/dist/workflows/v3/runtime.js.map +1 -1
  148. package/package.json +1 -1
  149. package/dist/dashboard-web/chunks/chunk-I35DXGM4.js +0 -1
  150. package/dist/dashboard-web/chunks/schedules-page-Z3672POL.js +0 -1
@@ -1,4 +1,4 @@
1
- import{b as Tt}from"./chunk-B42PCL5P.js";import{b as A}from"./chunk-FYALHCPG.js";import{a as Dt,b as et,c as ot,g as St,h as Ct,i as It,p as Nt}from"./chunk-I35DXGM4.js";import{A as yt,a as mt,r as gt,w as tt,z as vt}from"./chunk-6QHMLMIM.js";import{a as ht}from"./chunk-SYC6D5XU.js";import{a as Ht,d as kt}from"./chunk-5THX4DI2.js";import{c as it}from"./chunk-7SZRL6FY.js";var s=it(Ht(),1);var wt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],at={options:wt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function st(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function rt(a){let t=null;for(let o of mt.sessions.values())o.larkAppId!==a||!o.cliId||(!t||Number(o.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=o);return t?.cliId??""}function ut(a,t){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||st(a,t)||"claude-code"}function dt(a,t){return a.find(o=>o.id===t)}function xt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[]}async function Bt(){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 Rt(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})}),r=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:r?.resolution??{}}:{ok:!1,error:r?.error?`HTTP ${o.status}: ${r.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function Pt(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return at;let o=t.options.filter(i=>i&&typeof i.id=="string"&&typeof i.label=="string"),r=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():at.ttadkModelDefault,u=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(i=>typeof i=="string"):[];return{options:o.length?o:wt,ttadkModelDefault:r,ttadkModelSuggestions:u}}catch{return at}}function Mt(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var e=it(kt(),1);function ft(a,t=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${o}`}function U(a){return(0,e.jsx)("span",{className:ft(a.status),...a.attr??{},children:a.status?.text??""})}function jt(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(It,{className:"bd-info-tip",label:t,children:a.children})}function M(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)(jt,{children:a.help}):null]})}function _(a){let t=A();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Nt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Dt(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 q(a){return(0,e.jsxs)("label",{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.jsx)("span",{className:"toggle-tx",children:(0,e.jsx)("strong",{children:(0,e.jsx)(M,{help:a.help,children:a.title})})})]})}async function G(a,t,o){let r=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),u=await r.json().catch(()=>({}));return{ok:r.ok&&u?.ok!==!1,status:r.status,body:u}}function F(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 $(a){return a?.message??String(a)}function Ut(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function At(a,t){let o=a.trim();return o===""?t:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var pt=["email","openId","userId","unionId"];function Et(a){let t=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(t)]}function ct(a){return(a??[]).join(`
1
+ import{b as Tt}from"./chunk-UBOLHQCK.js";import{b as A}from"./chunk-P6GO5KT4.js";import{a as Dt,b as et,c as ot,g as St,h as Ct,i as It,p as Nt}from"./chunk-QFMH6ITB.js";import{A as yt,a as mt,r as gt,w as tt,z as vt}from"./chunk-CUV65BIQ.js";import{a as ht}from"./chunk-SYC6D5XU.js";import{a as Ht,d as kt}from"./chunk-5THX4DI2.js";import{c as it}from"./chunk-7SZRL6FY.js";var s=it(Ht(),1);var wt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],at={options:wt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function st(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function rt(a){let t=null;for(let o of mt.sessions.values())o.larkAppId!==a||!o.cliId||(!t||Number(o.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=o);return t?.cliId??""}function ut(a,t){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||st(a,t)||"claude-code"}function dt(a,t){return a.find(o=>o.id===t)}function xt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[]}async function Bt(){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 Rt(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})}),r=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:r?.resolution??{}}:{ok:!1,error:r?.error?`HTTP ${o.status}: ${r.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function Pt(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return at;let o=t.options.filter(i=>i&&typeof i.id=="string"&&typeof i.label=="string"),r=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():at.ttadkModelDefault,u=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(i=>typeof i=="string"):[];return{options:o.length?o:wt,ttadkModelDefault:r,ttadkModelSuggestions:u}}catch{return at}}function Mt(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var e=it(kt(),1);function ft(a,t=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${o}`}function U(a){return(0,e.jsx)("span",{className:ft(a.status),...a.attr??{},children:a.status?.text??""})}function jt(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(It,{className:"bd-info-tip",label:t,children:a.children})}function M(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)(jt,{children:a.help}):null]})}function _(a){let t=A();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Nt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Dt(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 q(a){return(0,e.jsxs)("label",{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.jsx)("span",{className:"toggle-tx",children:(0,e.jsx)("strong",{children:(0,e.jsx)(M,{help:a.help,children:a.title})})})]})}async function G(a,t,o){let r=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),u=await r.json().catch(()=>({}));return{ok:r.ok&&u?.ok!==!1,status:r.status,body:u}}function F(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 $(a){return a?.message??String(a)}function Ut(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function At(a,t){let o=a.trim();return o===""?t:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var pt=["email","openId","userId","unionId"];function Et(a){let t=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(t)]}function ct(a){return(a??[]).join(`
2
2
  `)}function Wt(a){return pt.find(t=>a?.[t]?.trim())??"email"}function qt(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 i of pt)delete o[i];o[a.idField]=t;let u=a.name.trim();return u?o.name=u:delete o.name,o}function Jt(a,t){return a==null?t("botDefaults.brandStateDefault"):a.trim()===""?t("botDefaults.brandStateOff"):t("botDefaults.brandStateCustom")}function _t(a,t){return a==null?t("botDefaults.quotaStateOff"):t("botDefaults.quotaStateOn",{count:a})}function Vt(a,t){return a==null?t("botDefaults.maxLiveWorkersStateDefault"):t("botDefaults.maxLiveWorkersStateOn",{count:a})}function Kt(a,t){return{...a,disableStreamingCard:t.disableStreamingCard,silentTurnReactions:t.silentTurnReactions,codexAppCleanInput:t.codexAppCleanInput,writableTerminalLinkInCard:t.writableTerminalLinkInCard,privateCard:t.privateCard,botToBotSameDir:t.botToBotSameDir,autoStartOnGroupJoin:t.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:t.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:t.autoStartOnNewTopic,regularGroupReplyMode:t.regularGroupReplyMode,regularGroupMentionMode:t.regularGroupMentionMode,docSubscribeDefaultMode:t.docSubscribeDefaultMode}}function Qt(){let a=A(),t=(0,s.useRef)(!0),[o,r]=(0,s.useState)([]),[u,i]=(0,s.useState)(at),[d,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(!0),[v,g]=(0,s.useState)(!1),[b,p]=(0,s.useState)(""),[k,S]=(0,s.useState)(null),[y,h]=(0,s.useState)(0),[,C]=(0,s.useState)(0),[D,N]=(0,s.useState)(!1),T=(0,s.useCallback)(async(B=!1)=>{B&&h(w=>w+1),n(!0);try{let[w,K]=await Promise.all([Bt(),Pt()]);if(!t.current)return;r(w.bots),c(w.error),i(K)}finally{t.current&&n(!1)}},[]);(0,s.useEffect)(()=>(t.current=!0,T(),yt().then(()=>{t.current&&C(B=>B+1)}),()=>{t.current=!1}),[T]);let f=(0,s.useMemo)(()=>{let B=b.trim().toLowerCase();return o.filter(w=>!B||(w.botName??"").toLowerCase().includes(B)||(w.larkAppId??"").toLowerCase().includes(B))},[o,b]);(0,s.useEffect)(()=>{if(!(d||m)){if(f.length===0){k!==null&&S(null);return}(!k||!f.some(B=>B.larkAppId===k))&&S(f[0].larkAppId)}},[f,d,m,k]);let j=k?f.find(B=>B.larkAppId===k)??null:null,L=(0,s.useCallback)((B,w)=>{r(K=>K.map(z=>z.larkAppId!==B?z:typeof w=="function"?w(z):{...z,...w}))},[]),V=async()=>{g(!0);try{await T(!0)}finally{t.current&&g(!1)}},O;return m?O=(0,e.jsx)(ot,{label:a("common.loading")}):d?O=(0,e.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",d,(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?O=(0,e.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):j?O=(0,e.jsx)(Xt,{bot:j,cliState:u,patchBot:L},`${j.larkAppId}:${y}`):O=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)(Ct,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:v,disabled:v,onClick:()=>{V()}}),gt.authed?(0,e.jsx)(St,{className:"page-primary-action add-bot-btn",disabled:D,onClick:()=>{N(!0),Tt().finally(()=>N(!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:B=>B.preventDefault(),children:(0,e.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:b,onChange:B=>p(B.currentTarget.value)})}),(0,e.jsx)("div",{className:"bd-roster-list",children:!d&&f.map(B=>(0,e.jsx)(zt,{bot:B,selected:B.larkAppId===k,onSelect:()=>S(B.larkAppId)},B.larkAppId))})]}),(0,e.jsx)("div",{id:"bd-list",className:"bd-detail",children:O})]})]})}function zt(a){let{bot:t}=a,o=t.botName??t.larkAppId,r=st(t,rt(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:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),a.onSelect())},children:[(0,e.jsx)(et,{html:tt({name:o,larkAppId:t.larkAppId,size:"sm"})}),(0,e.jsxs)("div",{className:"bd-roster-tx",children:[(0,e.jsx)("b",{children:o}),(0,e.jsx)("span",{children:r||t.larkAppId.slice(0,14)})]}),t.defaultOncall?.enabled?(0,e.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function Xt(a){let t=A(),{bot:o,cliState:r,patchBot:u}=a,i=o.botName??o.larkAppId,d=st(o,rt(o.larkAppId)),c=(0,s.useCallback)(async n=>{let v=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,n);return v.ok&&u(o.larkAppId,g=>Kt(g,v.body)),v},[o.larkAppId,u]);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)(et,{html:tt({name:i,larkAppId:o.larkAppId})}),(0,e.jsxs)("div",{className:"bd-profile-id",children:[(0,e.jsx)("strong",{children:i}),(0,e.jsx)("code",{children:o.larkAppId})]})]}),(0,e.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",o.error]})]});let m=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)("header",{className:"bd-profile-head",children:[(0,e.jsx)(te,{bot:o,name:i,patchBot:u}),(0,e.jsx)("div",{className:"bd-profile-main",children:(0,e.jsx)(ee,{bot:o,cli:d,patchBot:u,meta:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",t("botDefaults.metaOnline")]}),(0,e.jsxs)("small",{"data-oncall-since":!0,children:[t("botDefaults.lastEnabled"),": ",Mt(m.since??0)]}),(0,e.jsx)("small",{children:t("botDefaults.autobound",{count:o.autoboundChatCount??0})})]})})})]}),(0,e.jsxs)("div",{className:"bd-body bd-grid",children:[(0,e.jsxs)("div",{className:"bd-column",children:[(0,e.jsxs)("section",{className:"bd-tile",children:[(0,e.jsx)(ae,{bot:o,sessionFallback:d,cliState:r,patchBot:u}),(0,e.jsx)(oe,{bot:o,patchBot:u,putCardPref:c}),o.cliId!=="riff"&&(0,e.jsx)(ne,{bot:o,patchBot:u}),o.cliId!=="riff"&&(0,e.jsx)(ie,{bot:o,patchBot:u})]}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Yt,{bot:o,patchBot:u})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ne,{bot:o,patchBot:u})})]}),(0,e.jsxs)("div",{className:"bd-column",children:[(0,e.jsxs)("section",{className:"bd-tile",children:[(0,e.jsx)(pe,{bot:o,patchBot:u,putCardPref:c}),(0,e.jsx)(me,{bot:o,patchBot:u}),(0,e.jsx)(be,{bot:o,putCardPref:c}),(0,e.jsx)(ge,{bot:o,patchBot:u})]}),(0,e.jsxs)("section",{className:"bd-tile",children:[(0,e.jsx)(de,{bot:o,putCardPref:c}),(0,e.jsx)(ce,{bot:o,putCardPref:c}),(0,e.jsx)(fe,{bot:o,patchBot:u}),(0,e.jsx)(Ie,{bot:o,patchBot:u})]}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(re,{bot:o,patchBot:u})})]})]})]})}function Yt(a){let t=A();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)(ve,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(ye,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(he,{bot:a.bot,patchBot:a.patchBot})]})}var nt=512;async function Zt(a){let t=await createImageBitmap(a);try{let o=Math.min(t.width,t.height);if(!o)throw new Error("empty image");let r=document.createElement("canvas");r.width=nt,r.height=nt;let u=r.getContext("2d");if(!u)throw new Error("canvas unavailable");let i=(t.width-o)/2,d=(t.height-o)/2;return u.drawImage(t,i,d,o,o,0,0,nt,nt),r.toDataURL("image/png")}finally{t.close()}}function te(a){let t=A(),{bot:o,name:r,patchBot:u}=a,i=(0,s.useRef)(null),[d,c]=(0,s.useState)(!1),[m,n]=(0,s.useState)(null),[v,g]=(0,s.useState)(!1),[b,p]=(0,s.useState)(!1),k=(0,s.useRef)(null);function S(C,D){let T=["no_session","session_expired","no_access","unsupported_brand"].includes(C)?t(`botDefaults.avatarWarn.${C}`):D||C;return t("botDefaults.avatarFailed",{error:T})}let y=(0,s.useCallback)(async C=>{c(!0),n({text:`\u23F3 ${t("botDefaults.avatarUploading")}`,ok:!0});try{let D=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/avatar`,{imageBase64:C});if(D.ok&&D.body.ok){let N=typeof D.body.avatarUrl=="string"?D.body.avatarUrl:"";N&&vt(o.larkAppId,r,N),u(o.larkAppId,T=>({...T})),k.current=null,g(!1),n({text:`\u2713 ${t("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let N=String(D.body?.error??""),T=typeof D.body?.message=="string"?D.body.message:void 0;n({text:`\u2717 ${S(N,T??F(D))}`});let f=N==="no_session"||N==="session_expired";g(f),f||(k.current=null)}}catch(D){n({text:`\u2717 ${t("botDefaults.avatarFailed",{error:$(D)})}`})}finally{c(!1)}},[o.larkAppId,r,u,t]);async function h(C){if(!C||d)return;c(!0);let D;try{D=await Zt(C)}catch{c(!1),n({text:`\u2717 ${t("botDefaults.avatarBadImage")}`});return}k.current=D,await y(D)}return(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:d,onClick:()=>i.current?.click(),children:[(0,e.jsx)(et,{html:tt({name:r,larkAppId:o.larkAppId,dot:"ok"})}),(0,e.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:d?"\u23F3":"\u270E"})]}),(0,e.jsx)("input",{ref:i,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:C=>{let D=C.currentTarget.files?.[0];C.currentTarget.value="",h(D)}}),m?(0,e.jsxs)("small",{className:ft(m,"bd-avatar-status"),"data-avatar-status":!0,children:[m.text,v?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>p(!0),children:t("feishuLogin.entry")}):null]}):null,b?(0,e.jsx)(Gt,{onClose:()=>p(!1),onSuccess:()=>{g(!1),p(!1),k.current&&y(k.current)}}):null]})}function ee(a){let t=A(),{bot:o,cli:r,patchBot:u}=a,i=o.botName??o.larkAppId,[d,c]=(0,s.useState)(!1),[m,n]=(0,s.useState)(i),[v,g]=(0,s.useState)(!1),[b,p]=(0,s.useState)(null),[k,S]=(0,s.useState)(!1),[y,h]=(0,s.useState)(!1);(0,s.useEffect)(()=>{d||n(i)},[d,i]);function C(T){c(T),T&&(n(i),p(null),S(!1))}function D(T,f){let L=["no_session","session_expired","no_access","unsupported_brand"].includes(T)?t(`botDefaults.renameWarn.${T}`):f||T;return t("botDefaults.renameLocalOnly",{reason:L})}let N=(0,s.useCallback)(async()=>{let T=m.trim();if(!T){p({text:`\u2717 ${t("botDefaults.renameEmpty")}`});return}g(!0),p({text:`\u23F3 ${t("botDefaults.renaming")}`,ok:!0});try{let f=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:T});if(f.ok&&f.body.ok){let j=typeof f.body.botName=="string"&&f.body.botName?f.body.botName:T;u(o.larkAppId,L=>({...L,botName:j,larkBotName:f.body.mode==="feishu"?T:L.larkBotName,displayName:f.body.mode==="feishu"?null:T})),C(!1),f.body.mode==="feishu"?(p({text:`\u2713 ${t("botDefaults.renameOkFeishu")}`,ok:!0}),S(!1)):(p({text:`\u26A0 ${D(String(f.body.warning??""),f.body.message)}`}),S(f.body.warning==="no_session"||f.body.warning==="session_expired"))}else p({text:`\u2717 ${t("botDefaults.renameFailed",{error:F(f)})}`})}catch(f){p({text:`\u2717 ${t("botDefaults.renameFailed",{error:$(f)})}`})}finally{g(!1)}},[o.larkAppId,m,u,t]);return(0,e.jsxs)("div",{className:"bd-profile-id",children:[d?(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:m,disabled:v,autoFocus:!0,onChange:T=>n(T.currentTarget.value),onKeyDown:T=>{T.key==="Enter"?(T.preventDefault(),N()):T.key==="Escape"&&C(!1)}}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:v,onClick:()=>{N()},children:t("botDefaults.renameSave")}),(0,e.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:v,onClick:()=>C(!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:i}),r?(0,e.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:r}):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:()=>C(!0),children:t("botDefaults.renameAction")})]}),(0,e.jsx)("code",{children:o.larkAppId}),(0,e.jsx)("small",{className:ft(b,"bd-name-status"),"data-name-status":!0,children:b?.text??""}),(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!k,onClick:()=>h(!0),children:t("feishuLogin.entry")}),y?(0,e.jsx)(Gt,{onClose:()=>h(!1),onSuccess:()=>{S(!1),h(!1),N()}}):null]})}function Gt(a){let t=A(),{onClose:o,onSuccess:r}=a,u=(0,s.useRef)(null),i=(0,s.useRef)(null),[d,c]=(0,s.useState)(t("feishuLogin.starting")),[m,n]=(0,s.useState)(null),[v,g]=(0,s.useState)(!1),b=(0,s.useCallback)(()=>{u.current!==null&&(window.clearInterval(u.current),u.current=null)},[]),p=(0,s.useCallback)(y=>y?y.status==="awaiting_scan"&&y.qrDataUrl?(n(y.qrDataUrl),c(y.message||t("feishuLogin.scanHint")),g(!1),"active"):y.status==="starting"?(c(y.message||t("feishuLogin.starting")),n(null),g(!1),"active"):y.status==="success"?(b(),n(null),g(!1),c(t("feishuLogin.success")),i.current=window.setTimeout(()=>r(),900),"done"):(b(),n(null),c(t("feishuLogin.failed",{reason:y.message||y.reason||""})),g(!0),"done"):"active",[r,b,t]),k=(0,s.useCallback)(async()=>{try{let h=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));p(h.login)}catch{}},[p]),S=(0,s.useCallback)(async()=>{b(),c(t("feishuLogin.starting")),n(null),g(!1);let y="active";try{let C=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));y=p(C.login)}catch(h){c(t("feishuLogin.failed",{reason:$(h)})),g(!0);return}y==="active"&&u.current===null&&(u.current=window.setInterval(()=>{k()},1500))},[k,p,b,t]);return(0,s.useEffect)(()=>(S(),()=>{b(),i.current!==null&&window.clearTimeout(i.current)}),[S,b]),(0,e.jsx)("div",{className:"feishu-login-overlay",onClick:y=>{y.currentTarget===y.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:d}),(0,e.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:m?(0,e.jsx)("img",{className:"qr-image",src:m,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:!v,onClick:()=>{S()},children:t("feishuLogin.retry")})})]})})}function ae(a){let t=A(),{bot:o,cliState:r,patchBot:u}=a,i=ut(o,a.sessionFallback),[d,c]=(0,s.useState)(i),[m,n]=(0,s.useState)(typeof o.model=="string"?o.model:""),[v,g]=(0,s.useState)(null),[b,p]=(0,s.useState)(!1),[k,S]=(0,s.useState)($t(o)),[y,h]=(0,s.useState)(null),[C,D]=(0,s.useState)(!1);(0,s.useEffect)(()=>{c(ut(o,a.sessionFallback)),n(typeof o.model=="string"?o.model:""),S($t(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let N=dt(r.options,d),T=xt(N,r),f=N?.gateway==="ttadk"&&N.acceptsModel===!1,j=f?t("botOnboarding.modelTtadkCocoPlaceholder"):N?.gateway==="ttadk"?t("botOnboarding.modelTtadkPlaceholder").replace("{model}",r.ttadkModelDefault):t("botDefaults.agentModelPlaceholder");function L(l){c(l);let I=dt(r.options,l),x=I?.gateway==="ttadk",R=x&&I.acceptsModel!==!1;n(x&&!R?"":R?P=>P.trim()?P:r.ttadkModelDefault:P=>P.trim()===r.ttadkModelDefault?"":P)}async function V(){g(null),p(!0);try{let l=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:d,model:m});l.ok&&l.body.ok?(g(l.body.availabilityWarning?{text:`\u26A0\uFE0F ${l.body.availabilityWarning}`}:{text:`\u2713 ${t("botDefaults.agentSaved")}`,ok:!0}),u(o.larkAppId,{cliId:l.body.cliId,wrapperCli:l.body.wrapperCli??null,model:l.body.model??"",agentSelectionKey:l.body.selectionKey??d})):g({text:`\u2717 ${F(l)}`})}catch(l){g({text:`\u2717 ${$(l)}`})}finally{p(!1)}}async function O(){if(o.cliId==="riff")return!0;try{let l=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:"riff",model:""});return l.ok&&l.body.ok?(u(o.larkAppId,{cliId:l.body.cliId,wrapperCli:l.body.wrapperCli??null,model:l.body.model??"",agentSelectionKey:l.body.selectionKey??"riff"}),!0):(g({text:`\u2717 ${F(l)}`}),!1)}catch(l){return g({text:`\u2717 ${$(l)}`}),!1}}async function B(l){S(l),h(null),D(!0);try{let I=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:l});I.ok&&I.body.ok?(h({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}),u(o.larkAppId,{skillInjection:I.body.skillInjection??null})):h({text:`\u2717 ${F(I)}`})}catch(I){h({text:`\u2717 ${$(I)}`})}finally{D(!1)}}let w=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",K=[...r.options].sort((l,I)=>l.label.localeCompare(I.label,"en",{sensitivity:"base"})).map(l=>({value:l.id,label:l.available===!1?t("botDefaults.agentMissingOption",{label:l.label,command:l.command??l.id}):`${l.label}\uFF08${l.id}\uFF09`})),z=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamic")}],lt=[{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")}],X=d==="riff";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)(_,{dataInput:"agentCliId",ariaLabel:t("botDefaults.agentCli"),value:d,disabled:b,options:K,searchable:!0,onChange:L}),N?.available===!1?(0,e.jsx)("small",{className:"hint-warn",children:t("botDefaults.agentMissingHint",{command:N.command??d})}):null]})}),!X&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(M,{help:t("botDefaults.agentHelp"),children:t("botDefaults.agentModel")}),(0,e.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:j,value:m,disabled:b||f,onChange:l=>n(l.currentTarget.value)}),(0,e.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:T.map(l=>(0,e.jsx)("option",{value:l},l))})]})}),X&&(0,e.jsx)(Ce,{bot:o,patchBot:u,persistCliSelection:O}),!X&&w==="dynamic"?(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.skillInjectionHelpDynamic"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(_,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:z,onChange:()=>{}})]})}):!X&&w==="global"?(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.skillInjectionHelp"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(_,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:k,disabled:C,options:lt,onChange:l=>{B(l)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:y,attr:{"data-skill-injection-status":""}})})]}):null,!X&&(0,e.jsxs)("div",{className:"actions bd-section-actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:b,onClick:()=>{V()},children:t("botDefaults.agentSave")}),(0,e.jsx)(U,{status:v,attr:{"data-agent-status":""}})]})]})}function $t(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 oe(a){let t=A(),{bot:o,patchBot:r}=a,u=Lt(o),[i,d]=(0,s.useState)(u.mode),[c,m]=(0,s.useState)(u.workingDir),[n,v]=(0,s.useState)(o.defaultWorkingDirAutoWorktree===!0),[g,b]=(0,s.useState)(null),[p,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let h=Lt(o);d(h.mode),m(h.workingDir),v(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function S(){b(null);let h=c.trim();if(i!=="off"&&!h){b({text:t("botDefaults.required")});return}let C=i==="default"&&n;k(!0);try{let D=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:i,workingDir:h,autoWorktree:C});if(D.ok&&D.body.ok){let N=D.body.resolvedPath?` \u2192 ${D.body.resolvedPath}`:"";b({text:`\u2713 ${t("botDefaults.workingDirSaved")}${N}`,ok:!0}),r(o.larkAppId,{defaultOncall:D.body.defaultOncall??o.defaultOncall,defaultWorkingDir:D.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:D.body.defaultWorkingDirAutoWorktree===!0})}else b({text:`\u2717 ${F(D)}`})}catch(D){b({text:`\u2717 ${$(D)}`})}finally{k(!1)}}let y=[{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)(M,{help:t("botDefaults.workingDirModeHelp"),children:t("botDefaults.workingDirMode")}),(0,e.jsx)(_,{dataInput:"workingDirMode",ariaLabel:t("botDefaults.workingDirMode"),value:i,disabled:p,options:y,onChange:h=>d(h)})]})}),(0,e.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:i==="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:c,disabled:p,onChange:h=>m(h.currentTarget.value)})]})}),(0,e.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:i!=="default",children:[(0,e.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:n,disabled:p,onChange:h=>v(h.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)(M,{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:p,onClick:()=>{S()},children:t("botDefaults.save")}),(0,e.jsx)(U,{status:g,attr:{"data-status":""}})]}),(0,e.jsx)(se,{bot:o,putCardPref:a.putCardPref})]})}function Lt(a){let t=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:t.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||t.workingDir||""}}function se(a){let t=A(),{bot:o,putCardPref:r}=a,[u,i]=(0,s.useState)(o.autoStartOnGroupJoin===!0),[d,c]=(0,s.useState)(o.autoStartOnNewTopic===!0),[m,n]=(0,s.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[v,g]=(0,s.useState)(null),[b,p]=(0,s.useState)(null);(0,s.useEffect)(()=>{i(o.autoStartOnGroupJoin===!0),c(o.autoStartOnNewTopic===!0),n(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:"")},[o.autoStartOnGroupJoin,o.autoStartOnGroupJoinPrompt,o.autoStartOnNewTopic]);async function k(S,y){p(y),g(null);try{let h=await r(S);g(h.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(h)}`})}catch(h){g({text:`\u2717 ${$(h)}`})}finally{p(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)(q,{checked:u,disabled:b==="join",dataAction:"toggle-auto-join",title:t("botDefaults.autoStartJoin"),help:t("botDefaults.autoStartJoinHelp"),onChange:S=>{i(S),k({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:m,onChange:S=>n(S.currentTarget.value)})]})}),(0,e.jsx)(q,{checked:d,disabled:b==="topic",dataAction:"toggle-auto-topic",title:t("botDefaults.autoStartTopic"),help:t("botDefaults.autoStartTopicHelp"),onChange:S=>{c(S),k({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:b==="prompt",onClick:()=>{k({autoStartOnGroupJoinPrompt:m},"prompt")},children:t("botDefaults.autoStartJoinPromptSave")}),(0,e.jsx)(U,{status:v,attr:{"data-auto-start-status":""}})]})]})}function ne(a){let t=A(),{bot:o,patchBot:r}=a,[u,i]=(0,s.useState)(o.sandbox===!0),[d,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>i(o.sandbox===!0),[o.sandbox]);async function v(b){i(b),c(null),n(!0);try{let p=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:b});p.ok&&p.body.ok?(c({text:`\u2713 ${t("botDefaults.sandboxSaved")}`,ok:!0}),r(o.larkAppId,{sandbox:p.body.sandbox===!0})):(c({text:`\u2717 ${F(p)}`}),i(!b))}catch(p){c({text:`\u2717 ${$(p)}`}),i(!b)}finally{n(!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)(q,{checked:u,disabled:m,dataAction:"toggle-sandbox",title:t("botDefaults.sandboxToggle"),help:t("botDefaults.sandboxHelp"),onChange:b=>{v(b)}}),(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)(U,{status:d,attr:{"data-sandbox-status":""}})})]})}var le=[{value:"",labelKey:"botDefaults.backendAuto"},{value:"tmux",labelKey:"botDefaults.backendTmux"},{value:"herdr",labelKey:"botDefaults.backendHerdr"},{value:"zellij",labelKey:"botDefaults.backendZellij"},{value:"pty",labelKey:"botDefaults.backendPty"}];function ie(a){let t=A(),{bot:o,patchBot:r}=a,[u,i]=(0,s.useState)(typeof o.backendType=="string"?o.backendType:""),[d,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>i(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let v=(0,s.useMemo)(()=>le.map(b=>({value:b.value,label:t(b.labelKey)})),[t]);async function g(b){let p=u;i(b),c(null),n(!0);try{let k=await G("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:b});k.ok&&k.body.ok?(c({text:`\u2713 ${t("botDefaults.backendSaved")}`,ok:!0}),r(o.larkAppId,{backendType:typeof k.body.backendType=="string"?k.body.backendType:null})):(c({text:`\u2717 ${F(k)}`}),i(p))}catch(k){c({text:`\u2717 ${$(k)}`}),i(p)}finally{n(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionBackend")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.backendHelp"),children:t("botDefaults.backendLabel")}),(0,e.jsx)(_,{dataInput:"backendType",ariaLabel:t("botDefaults.backendLabel"),value:u,disabled:m,options:v,onChange:b=>{g(b)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:d,attr:{"data-backend-status":""}})})]})]})}function re(a){let t=A(),{bot:o,patchBot:r}=a,[u,i]=(0,s.useState)(typeof o.teamRole=="string"),[d,c]=(0,s.useState)(typeof o.teamRole=="string"?o.teamRole:""),[m,n]=(0,s.useState)(null),[v,g]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let p=!0,k=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(i(!0),c(o.teamRole),()=>{p=!1}):(n(null),i(!1),c(""),(async()=>{try{let S=await fetch(k),y=await S.json().catch(()=>({}));if(!p)return;if(S.ok&&y.ok){let h=y.role??"";c(h),i(!0),r(o.larkAppId,{teamRole:h})}else n({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${y.error??S.status}`})}catch(S){p&&n({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${$(S)}`})}})(),()=>{p=!1})},[o.larkAppId,o.teamRole,r,t]);async function b(p,k){if(u){n(null),g(!0);try{let S=await G("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:p});if(S.ok&&S.body.ok){let y=p.trim();c(y),r(o.larkAppId,{teamRole:y}),n({text:`\u2713 ${t(k?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else n({text:`\u2717 ${F(S)}`})}catch(S){n({text:`\u2717 ${$(S)}`})}finally{g(!1)}}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(M,{help:t("botDefaults.roleHelp"),children:t("botDefaults.sectionRole")})}),(0,e.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:t("botDefaults.rolePlaceholder"),disabled:!u||v,value:d,onChange:p=>c(p.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!u||v,onClick:()=>{b(d,d.trim()==="")},children:t("botDefaults.roleSave")}),(0,e.jsx)(U,{status:m,attr:{"data-role-status":""}})]}),(0,e.jsx)(ue,{appId:o.larkAppId})]})}function ue(a){let t=A(),[o,r]=(0,s.useState)({loaded:!1,loading:!0,items:[]});(0,s.useEffect)(()=>{let d=!0;return r({loaded:!1,loading:!0,items:[]}),(async()=>{try{let c=await fetch("/api/role-profiles"),m=await c.json().catch(()=>({}));if(!d)return;if(!c.ok)throw new Error(m?.error??String(c.status));let v=(Array.isArray(m.profiles)?m.profiles:[]).filter(g=>(g.botEntries??[]).some(b=>b?.larkAppId===a.appId&&b?.hasEntry)).map(g=>({profileId:String(g.profileId)}));r({loaded:!0,loading:!1,items:v})}catch(c){d&&r({loaded:!0,loading:!1,error:$(c),items:[]})}})(),()=>{d=!1}},[a.appId]);async function u(d){let c=o.items.find(m=>m.profileId===d);if(!(!c||c.loaded||c.loading)){r(m=>({...m,items:m.items.map(n=>n.profileId===d?{...n,loading:!0}:n)}));try{let m=await fetch(`/api/role-profiles/${encodeURIComponent(d)}/${encodeURIComponent(a.appId)}`),n=await m.json().catch(()=>({}));if(!m.ok)throw new Error(n?.error??String(m.status));r(v=>({...v,items:v.items.map(g=>g.profileId===d?{...g,loading:!1,loaded:!0,content:n?.hasEntry?String(n.content??""):""}:g)}))}catch(m){r(n=>({...n,items:n.items.map(v=>v.profileId===d?{...v,loading:!1,error:$(m)}:v)}))}}}let i;return o.loading?i=(0,e.jsx)(ot,{label:t("common.loading"),compact:!0}):o.error?i=(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?i=(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRolesEmpty")}):i=o.items.map(d=>(0,e.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":d.profileId,onToggle:c=>{c.currentTarget.open&&u(d.profileId)},children:[(0,e.jsx)("summary",{children:(0,e.jsx)("span",{className:"bd-profile-role-id",children:d.profileId})}),(0,e.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":d.profileId,children:d.loading?(0,e.jsx)(ot,{label:t("common.loading"),compact:!0}):d.error?(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRoleDetailLoadFailed",{error:d.error})}):d.loaded?(0,e.jsx)("pre",{children:d.content??""}):(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRoleClickToLoad")})})]},d.profileId)),(0,e.jsxs)("div",{className:"bd-profile-roles","data-profile-roles":!0,children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(M,{help:t("botDefaults.profileRolesHelp"),children:t("botDefaults.profileRoles")})}),(0,e.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:i})]})}function de(a){let t=A(),{bot:o,putCardPref:r}=a,[u,i]=(0,s.useState)(o.disableStreamingCard===!0),[d,c]=(0,s.useState)(o.silentTurnReactions===!0),[m,n]=(0,s.useState)(o.writableTerminalLinkInCard===!0),[v,g]=(0,s.useState)(o.privateCard===!0),[b,p]=(0,s.useState)(null),[k,S]=(0,s.useState)(null);(0,s.useEffect)(()=>{i(o.disableStreamingCard===!0),c(o.silentTurnReactions===!0),n(o.writableTerminalLinkInCard===!0),g(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function y(h,C){S(C),p(null);try{let D=await r(h);p(D.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(D)}`})}catch(D){p({text:`\u2717 ${$(D)}`})}finally{S(null)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCard")}),(0,e.jsxs)("div",{className:"bd-toggle-grid bd-card-behavior-grid",children:[(0,e.jsx)(q,{checked:u,disabled:k==="streaming",dataAction:"toggle-disable-streaming",title:t("botDefaults.disableStreaming"),help:t("botDefaults.disableStreamingHelp"),onChange:h=>{i(h),y({disableStreamingCard:h},"streaming")}}),(0,e.jsx)(q,{checked:d,disabled:!u||k==="silent",dataAction:"toggle-silent-reactions",title:t("botDefaults.silentTurnReactions"),help:t("botDefaults.silentTurnReactionsHelp"),onChange:h=>{c(h),y({silentTurnReactions:h},"silent")}}),(0,e.jsx)(q,{checked:m,disabled:u||k==="writable",dataAction:"toggle-writable-link",title:t("botDefaults.writableLink"),help:t("botDefaults.writableLinkHelp"),onChange:h=>{n(h),y({writableTerminalLinkInCard:h},"writable")}}),(0,e.jsx)(q,{checked:v,disabled:k==="private",dataAction:"toggle-private-card",title:t("botDefaults.privateCard"),help:t("botDefaults.privateCardHelp"),onChange:h=>{g(h),y({privateCard:h},"private")}})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("small",{"data-card-pref-moot":!0,className:"hint-warn-inline",hidden:!u,children:t("botDefaults.writableLinkMoot")}),(0,e.jsx)(U,{status:b,attr:{"data-card-pref-status":""}})]})]})}function ce(a){let t=A(),[o,r]=(0,s.useState)(a.bot.codexAppCleanInput===!0),[u,i]=(0,s.useState)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>r(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function m(n){let v=o;r(n),c(!0),i(null);try{let g=await a.putCardPref({codexAppCleanInput:n});g.ok?i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(r(v),i({text:`\u2717 ${F(g)}`}))}catch(g){r(v),i({text:`\u2717 ${$(g)}`})}finally{c(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-codex-app-display":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCodexAppDisplay")}),(0,e.jsx)(q,{checked:o,disabled:d,dataAction:"toggle-codex-app-clean-input",title:t("botDefaults.codexAppCleanInput"),help:t("botDefaults.codexAppCleanInputHelp"),onChange:n=>{m(n)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.codexAppCleanInputCompat")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:u,attr:{"data-codex-app-clean-input-status":""}})})]})}function be(a){let t=A(),[o,r]=(0,s.useState)(a.bot.botToBotSameDir!==!1),[u,i]=(0,s.useState)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>r(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function m(n){r(n),c(!0),i(null);try{let v=await a.putCardPref({botToBotSameDir:n});i(v.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(v)}`})}catch(v){i({text:`\u2717 ${$(v)}`})}finally{c(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCrossBot")}),(0,e.jsx)(q,{checked:o,disabled:d,dataAction:"toggle-cross-bot-samedir",title:t("botDefaults.botToBotSameDir"),help:t("botDefaults.botToBotSameDirHelp"),onChange:n=>{m(n)}}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:u,attr:{"data-crossbot-status":""}})})]})}function fe(a){let t=A(),o=bt(a.bot),[r,u]=(0,s.useState)(String(o.limit)),[i,d]=(0,s.useState)(String(o.sinceHours)),[c,m]=(0,s.useState)(null),[n,v]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let b=bt(a.bot);u(String(b.limit)),d(String(b.sinceHours))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours]);async function g(){m(null);let b=At(r,50),p=At(i,24);if(b==null||p==null){m({text:`\u2717 ${t("botDefaults.summaryNumberInvalid")}`});return}v(!0);try{let k=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:b,sinceHours:p});if(k.ok&&k.body.ok){let S=k.body.summaryRange??{limit:b,sinceHours:p},y=bt({...a.bot,summaryRange:S});u(String(y.limit)),d(String(y.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:S}),m({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else m({text:`\u2717 ${F(k)}`})}catch(k){m({text:`\u2717 ${$(k)}`})}finally{v(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(M,{help:t("botDefaults.summaryLimitHelp"),children:t("botDefaults.sectionSummaryTrigger")})}),(0,e.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryLimit")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:r,disabled:n,onChange:b=>u(b.currentTarget.value)})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summarySinceHours")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:i,disabled:n,onChange:b=>d(b.currentTarget.value)})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:n,onClick:()=>{g()},children:t("botDefaults.summarySave")}),(0,e.jsx)(U,{status:c,attr:{"data-summary-trigger-status":""}})]})]})}function bt(a){let t=a.summaryRange??{limit:50,sinceHours:24};return{limit:Number.isInteger(t.limit)&&Number(t.limit)>=0?Number(t.limit):50,sinceHours:Number.isInteger(t.sinceHours)&&Number(t.sinceHours)>=0?Number(t.sinceHours):24}}function pe(a){let t=A(),[o,r]=(0,s.useState)(a.bot.p2pMode==="chat"?"chat":"thread"),[u,i]=(0,s.useState)(Ot(a.bot)),[d,c]=(0,s.useState)(Ft(a.bot)),[m,n]=(0,s.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[v,g]=(0,s.useState)(null),[b,p]=(0,s.useState)(null),[k,S]=(0,s.useState)(null),[y,h]=(0,s.useState)(null),[C,D]=(0,s.useState)(null);(0,s.useEffect)(()=>{r(a.bot.p2pMode==="chat"?"chat":"thread"),i(Ot(a.bot)),c(Ft(a.bot)),n(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function N(O){let B=O==="chat"?"chat":"thread";r(B),g("p2p"),p(null);try{let w=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:B});w.ok&&w.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:w.body.p2pMode==="chat"?"chat":"thread"}),p({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):p({text:`\u2717 ${F(w)}`})}catch(w){p({text:`\u2717 ${$(w)}`})}finally{g(null)}}async function T(O,B,w){g(O),w(null);try{let K=await a.putCardPref(B);w(K.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(K)}`})}catch(K){w({text:`\u2717 ${$(K)}`})}finally{g(null)}}let f=[{value:"thread",label:t("botDefaults.p2pThread")},{value:"chat",label:t("botDefaults.p2pChat")}],j=[{value:"chat",label:t("botDefaults.regularGroupModeChat")},{value:"chat-topic",label:t("botDefaults.regularGroupModeChatTopic")},{value:"new-topic",label:t("botDefaults.regularGroupModeNewTopic")},{value:"shared",label:t("botDefaults.regularGroupModeShared")}],L=[{value:"always",label:t("botDefaults.mentionModeAlways")},{value:"topic",label:t("botDefaults.mentionModeTopic")},{value:"never",label:t("botDefaults.mentionModeNever")},{value:"ambient",label:t("botDefaults.mentionModeAmbient")}],V=[{value:"mention-only",label:t("botDefaults.docSubscribeModeMention")},{value:"all",label:t("botDefaults.docSubscribeModeAll")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSessionMode")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.p2pHelp"),children:t("botDefaults.p2pMode")}),(0,e.jsx)(_,{dataInput:"p2pMode",ariaLabel:t("botDefaults.p2pMode"),value:o,disabled:v==="p2p",options:f,onChange:O=>{N(O)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:b,attr:{"data-p2p-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.regularGroupModeHelp"),children:t("botDefaults.regularGroupMode")}),(0,e.jsx)(_,{dataInput:"regularGroupMode",ariaLabel:t("botDefaults.regularGroupMode"),value:u,disabled:v==="regular",options:j,onChange:O=>{i(O),T("regular",{regularGroupReplyMode:O},S)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:k,attr:{"data-regular-group-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.mentionModeHelp"),children:t("botDefaults.mentionMode")}),(0,e.jsx)(_,{dataInput:"regularGroupMentionMode",ariaLabel:t("botDefaults.mentionMode"),value:d,disabled:v==="mention",options:L,onChange:O=>{c(O),T("mention",{regularGroupMentionMode:O},h)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:y,attr:{"data-mention-mode-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.docSubscribeModeHelp"),children:t("botDefaults.docSubscribeMode")}),(0,e.jsx)(_,{dataInput:"docSubscribeDefaultMode",ariaLabel:t("botDefaults.docSubscribeMode"),value:m,disabled:v==="doc",options:V,onChange:O=>{n(O),T("doc",{docSubscribeDefaultMode:O},D)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:C,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function me(a){let t=A(),o=a.bot.substituteMode??null,[r,u]=(0,s.useState)(o?.enabled===!0);function i(l){switch(l){case"cross_app_open_id":return t("botDefaults.substituteReasonCrossAppOpenId");case"not_visible":return t("botDefaults.substituteReasonNotVisible");case"resolve_failed":return t("botDefaults.substituteReasonResolveFailed");case"unresolvable":return t("botDefaults.substituteReasonUnresolvable");default:return t("botDefaults.substituteUnresolved")}}let[d,c]=(0,s.useState)(o?.disclosure==="none"?"none":"prefix"),[m,n]=(0,s.useState)(o?.replyMode==="quote"?"quote":"thread"),[v,g]=(0,s.useState)(o?.disableControlCard!==!0),[b,p]=(0,s.useState)(()=>ct(o?.chats)),[k,S]=(0,s.useState)(o?.topicGroups!==!1),[y,h]=(0,s.useState)(o?.topicActiveSessionTrigger!==!1),[C,D]=(0,s.useState)(null),[N,T]=(0,s.useState)(!1),f=(0,s.useRef)(0),j=(0,s.useRef)(!1);function L(l){let I=Wt(l);return{key:++f.current,idField:I,idValue:l?.[I]??"",name:l?.name??"",persisted:l?{...l}:{},originalIdField:l?I:void 0,resolution:l?.name||l?.avatarUrl?{ok:!0,name:l.name,avatarUrl:l.avatarUrl}:void 0}}let V=(0,s.useRef)(new Map);async function O(l){let I=(V.current.get(l)??0)+1;V.current.set(l,I);let x=()=>V.current.get(l)===I;w(R=>R.map(P=>P.key===l?{...P,resolving:!0}:P));try{let R=B.find(Q=>Q.key===l);if(!R)return;let P=R.idValue.trim();if(!P){w(Q=>Q.map(W=>W.key===l?{...W,resolving:!1,resolution:void 0}:W));return}let H={[R.idField]:P};R.name.trim()&&(H.name=R.name.trim());let Y=await Rt(a.bot.larkAppId,H);if(!x())return;w(Q=>Q.map(W=>{if(W.key!==l)return W;if(!Y.ok)return{...W,resolving:!1,resolution:{ok:!1}};let J=Y.resolution;if(J?.ok===!0){if(!J.openId)return{...W,resolving:!1,resolution:void 0};let E={...W.persisted};return E.openId=J.openId,J.name&&(E.name=J.name),J.avatarUrl&&(E.avatarUrl=J.avatarUrl),{...W,name:J.name??W.name,persisted:E,resolving:!1,resolution:{ok:!0,name:J.name,avatarUrl:J.avatarUrl}}}return{...W,resolving:!1,resolution:{ok:!1,reason:J?.reason}}}))}catch{if(!x())return;w(R=>R.map(P=>P.key===l?{...P,resolving:!1,resolution:{ok:!1}}:P))}}let[B,w]=(0,s.useState)(()=>{let l=o?.targets??[];return l.length?l.map(I=>L(I)):[L()]});(0,s.useEffect)(()=>{if(j.current){j.current=!1;return}let l=a.bot.substituteMode??null;u(l?.enabled===!0),c(l?.disclosure==="none"?"none":"prefix"),n(l?.replyMode==="quote"?"quote":"thread"),g(l?.disableControlCard!==!0),p(ct(l?.chats)),S(l?.topicGroups!==!1),h(l?.topicActiveSessionTrigger!==!1);let I=l?.targets??[];w(I.length?I.map(x=>L(x)):[L()])},[a.bot.larkAppId,a.bot.substituteMode]);async function K(l){T(!0),D(null);try{let I=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,l);if(I.ok&&I.body.ok){let x=I.body.substituteMode&&typeof I.body.substituteMode=="object"?I.body.substituteMode:null,R=Array.isArray(I.body?.resolution)?I.body.resolution:[],P=R.filter(H=>H?.ok===!1).map(H=>String(H.input??"").trim()).filter(Boolean);if(u(x?.enabled===!0),c(x?.disclosure==="none"?"none":"prefix"),n(x?.replyMode==="quote"?"quote":"thread"),g(x?.disableControlCard!==!0),p(ct(x?.chats)),S(x?.topicGroups!==!1),h(x?.topicActiveSessionTrigger!==!1),R.length)j.current=!0,w(H=>{let Y=[...R];return H.map(Q=>{let W=Q.idValue.trim(),J=Y.findIndex(Z=>String(Z.input??"").trim()===W);if(J<0)return Q;let E=Y.splice(J,1)[0];if(E?.ok===!0){let Z={...Q.persisted};return E.openId&&(Z.openId=E.openId),Q.idField==="email"&&(Z.email=W),E.name&&(Z.name=E.name),E.avatarUrl&&(Z.avatarUrl=E.avatarUrl),{...Q,name:E.name??Q.name,persisted:Z,resolution:{ok:!0,name:E.name,avatarUrl:E.avatarUrl}}}return{...Q,resolution:{ok:!1,reason:E?.reason}}})});else{let H=x?.targets??[];w(H.length?H.map(Y=>L(Y)):[L()])}a.patchBot(a.bot.larkAppId,{substituteMode:x}),D(P.length?{text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${P.join(", ")}`}:{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else{let x=Array.isArray(I.body?.resolution)?I.body.resolution.filter(R=>R?.ok===!1).map(R=>String(R.input??"").trim()).filter(Boolean):[];D({text:x.length?`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${x.join(", ")}`:`\u2717 ${F(I)}`})}}catch(I){D({text:`\u2717 ${$(I)}`})}finally{T(!1)}}function z(){let l=[],I=!1;for(let x of B){let R=qt(x);if(!R){I||=!!x.name.trim();continue}l.push(R)}if(I||r&&l.length===0){D({text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}`});return}K({enabled:r,targets:l,disclosure:d,chats:Et(b),replyMode:m,disableControlCard:!v,topicGroups:k,topicActiveSessionTrigger:y})}let lt=[{value:"prefix",label:t("botDefaults.substituteDisclosurePrefix")},{value:"none",label:t("botDefaults.substituteDisclosureNone")}],X=[{value:"thread",label:t("botDefaults.substituteReplyModeThread")},{value:"quote",label:t("botDefaults.substituteReplyModeQuote")}];return(0,e.jsxs)("section",{className:"bd-section bd-substitute-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSubstitute")}),(0,e.jsx)(q,{checked:r,disabled:N,dataAction:"toggle-substitute-mode",title:t("botDefaults.substituteEnabled"),help:t("botDefaults.substituteHelp"),onChange:u}),(0,e.jsx)(q,{checked:k,disabled:N,dataAction:"toggle-substitute-topic-groups",title:t("botDefaults.substituteTopicGroups"),help:t("botDefaults.substituteTopicGroupsHelp"),onChange:S}),(0,e.jsx)(q,{checked:y,disabled:N||!k,dataAction:"toggle-substitute-topic-active",title:t("botDefaults.substituteTopicActive"),help:t("botDefaults.substituteTopicActiveHelp"),onChange:h}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{children:t("botDefaults.substituteDisclosure")}),(0,e.jsx)(_,{dataInput:"substituteDisclosure",ariaLabel:t("botDefaults.substituteDisclosure"),value:d,disabled:N,options:lt,onChange:l=>c(l)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(M,{help:t("botDefaults.substituteReplyModeHelp"),children:t("botDefaults.substituteReplyMode")}),(0,e.jsx)(_,{dataInput:"substituteReplyMode",ariaLabel:t("botDefaults.substituteReplyMode"),value:m,disabled:N,options:X,onChange:l=>n(l)})]})}),(0,e.jsx)(q,{checked:v,disabled:N,dataAction:"toggle-substitute-control-card",title:t("botDefaults.substituteControlCard"),help:t("botDefaults.substituteControlCardHelp"),onChange:g}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(M,{help:t("botDefaults.substituteChatsHelp"),children:t("botDefaults.substituteChats")}),(0,e.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:t("botDefaults.substituteChatsPlaceholder"),value:b,disabled:N,onChange:l=>p(l.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,e.jsx)(M,{help:t("botDefaults.substituteTargetsHelp"),children:t("botDefaults.substituteTargets")}),(0,e.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[B.map((l,I)=>(0,e.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,e.jsx)(_,{dataInput:`substituteTargetType-${l.key}`,className:"bd-substitute-target-type",ariaLabel:`${t("botDefaults.substituteTargetType")} ${I+1}`,value:l.idField,disabled:N,options:pt.map(x=>({value:x,label:t(`botDefaults.substituteTarget${x[0].toUpperCase()}${x.slice(1)}`)})),onChange:x=>{w(R=>R.map(P=>P.key===l.key?{...P,idField:x,idValue:P.persisted[x]??"",resolution:void 0}:P))}}),(0,e.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${l.key}`,"aria-label":`${t("botDefaults.substituteTargetType")} ${I+1}`,placeholder:t("botDefaults.substituteTargetIdPlaceholder"),value:l.idValue,disabled:N,onChange:x=>{let R=x.currentTarget.value;w(P=>P.map(H=>H.key===l.key?{...H,idValue:R,resolution:void 0}:H))},onBlur:()=>{l.idValue.trim()&&O(l.key)}}),(0,e.jsx)("div",{className:"bd-substitute-target-name",children:l.resolving?(0,e.jsx)("span",{className:"bd-substitute-target-resolving",children:t("botDefaults.substituteResolving")}):l.resolution?.ok===!0&&(l.name||l.resolution.avatarUrl)?(0,e.jsxs)(e.Fragment,{children:[l.resolution.avatarUrl?(0,e.jsx)(et,{html:tt({name:l.resolution.name,avatarUrl:l.resolution.avatarUrl,size:"sm"})}):null,(0,e.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${l.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${I+1}`,children:l.name})]}):l.resolution?.ok===!1?(0,e.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:i(l.resolution.reason)}):(0,e.jsx)("input",{type:"text","data-input":`substituteTargetName-${l.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${I+1}`,placeholder:t("botDefaults.substituteTargetNamePlaceholder"),value:l.name,disabled:N,onChange:x=>{let R=x.currentTarget.value;w(P=>P.map(H=>H.key===l.key?{...H,name:R}:H))}})}),(0,e.jsx)("button",{type:"button",className:"bd-substitute-target-remove","data-action":"remove-substitute-target",title:t("botDefaults.substituteTargetRemove"),"aria-label":t("botDefaults.substituteTargetRemove"),disabled:N,onClick:()=>{w(x=>{let R=x.filter(P=>P.key!==l.key);return R.length?R:[L()]})},children:(0,e.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},l.key)),(0,e.jsx)("button",{type:"button",className:"bd-substitute-target-add","data-action":"add-substitute-target",title:t("botDefaults.substituteTargetAdd"),"aria-label":t("botDefaults.substituteTargetAdd"),disabled:N,onClick:()=>w(l=>[...l,L()]),children:(0,e.jsx)("span",{"aria-hidden":"true",children:"+"})})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-substitute-mode",disabled:N,onClick:z,children:t("botDefaults.substituteSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:N,onClick:()=>{K({enabled:!1,targets:[]})},children:t("botDefaults.substituteOff")}),(0,e.jsx)(U,{status:C,attr:{"data-substitute-status":""}})]})]})}function Ot(a){return a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"||a.regularGroupReplyMode==="chat-topic"?a.regularGroupReplyMode:"chat"}function Ft(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function ge(a){let t=A(),o=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,r=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,u=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,i=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[d,c]=(0,s.useState)(o),m=d??30,[n,v]=(0,s.useState)(o==null?"":String(o)),[g,b]=(0,s.useState)(null),[p,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let h=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;c(h),v(h==null?"":String(h))},[a.bot.maxLiveWorkers]);async function S(h){b(null),k(!0);try{let C=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:h});if(C.ok&&C.body.ok){let D=typeof C.body.maxLiveWorkers=="number"?C.body.maxLiveWorkers:null;c(D),v(D==null?"":String(D)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:D}),b({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else b({text:`\u2717 ${F(C)}`})}catch(C){b({text:`\u2717 ${$(C)}`})}finally{k(!1)}}function y(){let h=Ut(n);if(h==="invalid"){b({text:`\u2717 ${t("botDefaults.maxLiveWorkersInvalid")}`});return}S(h)}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:t("botDefaults.sectionSessionCap")}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(M,{help:t("botDefaults.maxLiveWorkersHelp"),children:t("botDefaults.maxLiveWorkers")}),(0,e.jsx)("input",{type:"number",min:1,step:1,"data-input":"maxLiveWorkers",placeholder:t("botDefaults.maxLiveWorkersPlaceholder"),value:n,disabled:p,onChange:h=>v(h.currentTarget.value)})]}),(0,e.jsx)("small",{"data-session-cap-state":!0,children:Vt(d,t)}),(0,e.jsx)("small",{className:"bd-help bd-session-residency",children:t("botDefaults.maxLiveWorkersUsage",{resident:u,cap:m,dormant:i,logical:r})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:p,onClick:y,children:t("botDefaults.maxLiveWorkersSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:p,onClick:()=>{v(""),S(null)},children:t("botDefaults.maxLiveWorkersOff")}),(0,e.jsx)(U,{status:g,attr:{"data-session-cap-status":""}})]})]})}function ve(a){let t=A(),[o,r]=(0,s.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[u,i]=(0,s.useState)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>r(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function m(){i(null),c(!0);try{let n=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(n.ok&&n.body.ok){let v=typeof n.body.startupCommands=="string"?n.body.startupCommands:"";r(v),a.patchBot(a.bot.larkAppId,{startupCommands:v}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${F(n)}`})}catch(n){i({text:`\u2717 ${$(n)}`})}finally{c(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(M,{help:t("botDefaults.startupCommandsHelp"),children:t("botDefaults.sectionStartupCommands")})}),(0,e.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:t("botDefaults.startupCommandsPlaceholder"),value:o,disabled:d,onChange:n=>r(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:d,onClick:()=>{m()},children:t("botDefaults.startupCommandsSave")}),(0,e.jsx)(U,{status:u,attr:{"data-startup-commands-status":""}})]})]})}function ye(a){let t=A(),[o,r]=(0,s.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[u,i]=(0,s.useState)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>r(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function m(){i(null),c(!0);try{let n=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(n.ok&&n.body.ok){let v=typeof n.body.launchShell=="string"?n.body.launchShell:"";r(v),a.patchBot(a.bot.larkAppId,{launchShell:v}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${F(n)}`})}catch(n){i({text:`\u2717 ${$(n)}`})}finally{c(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(M,{help:t("botDefaults.launchShellHelp"),children:t("botDefaults.sectionLaunchShell")})}),(0,e.jsx)("input",{type:"text","data-input":"launchShell",placeholder:t("botDefaults.launchShellPlaceholder"),value:o,disabled:d,onChange:n=>r(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:d,onClick:()=>{m()},children:t("botDefaults.launchShellSave")}),(0,e.jsx)(U,{status:u,attr:{"data-launch-shell-status":""}})]})]})}function he(a){let t=A(),[o,r]=(0,s.useState)(typeof a.bot.env=="string"?a.bot.env:""),[u,i]=(0,s.useState)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>r(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function m(){i(null),c(!0);try{let n=await G("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(n.ok&&n.body.ok){let v=typeof n.body.env=="string"?n.body.env:"";r(v),a.patchBot(a.bot.larkAppId,{env:v}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${F(n)}`})}catch(n){i({text:`\u2717 ${$(n)}`})}finally{c(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(M,{help:t("botDefaults.envHelp"),children:t("botDefaults.sectionEnv")})}),(0,e.jsx)("textarea",{"data-input":"env",rows:5,placeholder:t("botDefaults.envPlaceholder"),value:o,disabled:d,onChange:n=>r(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:d,onClick:()=>{m()},children:t("botDefaults.envSave")}),(0,e.jsx)(U,{status:u,attr:{"data-env-status":""}})]})]})}var ke=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],De=["","low","medium","high","xhigh"],Se=["boe","cn"];function Ce(a){let t=A(),o=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[r,u]=(0,s.useState)(typeof o.baseUrl=="string"?o.baseUrl:""),[i,d]=(0,s.useState)(o.sandboxCluster==="cn"?"cn":"boe"),[c,m]=(0,s.useState)(typeof o.model=="string"?o.model:""),[n,v]=(0,s.useState)(typeof o.reasoningEffort=="string"?o.reasoningEffort:""),[g,b]=(0,s.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[p,k]=(0,s.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[S,y]=(0,s.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
3
3
  `):""),[h,C]=(0,s.useState)(null),[D,N]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let f=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};u(typeof f.baseUrl=="string"?f.baseUrl:""),d(f.sandboxCluster==="cn"?"cn":"boe"),m(typeof f.model=="string"?f.model:""),v(typeof f.reasoningEffort=="string"?f.reasoningEffort:""),b(typeof f.jwtEnv=="string"?f.jwtEnv:""),k(typeof f.systemPrompt=="string"?f.systemPrompt:""),y(Array.isArray(f.setupCommands)?f.setupCommands.join(`
4
4
  `):"")},[a.bot.riff]);async function T(){C(null),N(!0);try{let f={};r.trim()&&(f.baseUrl=r.trim()),f.sandboxCluster=i,c.trim()&&(f.model=c.trim()),n&&(f.reasoningEffort=n),g.trim()&&(f.jwtEnv=g.trim()),p.trim()&&(f.systemPrompt=p.trim()),S.trim()&&(f.setupCommands=S.split(`