botmux 3.6.0 → 3.7.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.
- package/dist/.runtime-build-id +1 -1
- package/dist/adapters/backend/riff-backend.d.ts +7 -6
- package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
- package/dist/adapters/backend/riff-backend.js +8 -7
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +5 -2
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +15 -6
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/fs-policy.d.ts +62 -6
- package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
- package/dist/adapters/cli/fs-policy.js +70 -7
- package/dist/adapters/cli/fs-policy.js.map +1 -1
- package/dist/bot-registry.d.ts +13 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +15 -7
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/daemon-lifecycle-env.d.ts +1 -1
- package/dist/cli/daemon-lifecycle-env.d.ts.map +1 -1
- package/dist/cli/daemon-lifecycle-env.js +12 -0
- package/dist/cli/daemon-lifecycle-env.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +23 -7
- package/dist/cli.js.map +1 -1
- package/dist/core/command-handler.d.ts +7 -5
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +37 -21
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts +3 -0
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +12 -9
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js +1 -0
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/initial-user-turn.d.ts +14 -0
- package/dist/core/initial-user-turn.d.ts.map +1 -0
- package/dist/core/initial-user-turn.js +65 -0
- package/dist/core/initial-user-turn.js.map +1 -0
- package/dist/core/maintenance.d.ts.map +1 -1
- package/dist/core/maintenance.js +6 -0
- package/dist/core/maintenance.js.map +1 -1
- package/dist/core/per-bot-env.d.ts.map +1 -1
- package/dist/core/per-bot-env.js +10 -0
- package/dist/core/per-bot-env.js.map +1 -1
- package/dist/core/plugins/pm2.d.ts.map +1 -1
- package/dist/core/plugins/pm2.js +4 -0
- package/dist/core/plugins/pm2.js.map +1 -1
- package/dist/core/session-discovery.d.ts +23 -0
- package/dist/core/session-discovery.d.ts.map +1 -1
- package/dist/core/session-discovery.js +162 -82
- package/dist/core/session-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +23 -4
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/worker-pool.d.ts +2 -0
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +27 -4
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +18 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +205 -39
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +29 -5
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/bot-payload.js +3 -3
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +5 -5
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +1 -1
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.js +18 -18
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/{bot-defaults-page-VQMPUJ4Y.js → bot-defaults-page-UKA7K4JV.js} +2 -2
- package/dist/dashboard-web/chunks/{chunk-NP4JUBGS.js → chunk-3QAUJXAS.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-JMRGZQDB.js → chunk-FLGXZJTD.js} +1 -1
- package/dist/dashboard-web/chunks/chunk-FNPGOZMX.js +1 -0
- package/dist/dashboard-web/chunks/{chunk-SNKATZWK.js → chunk-KQB42ML5.js} +4 -4
- package/dist/dashboard-web/chunks/{connectors-page-DOY4J3ZL.js → connectors-page-A77YAB5Y.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-74TS2DIH.js → groups-page-RUZNVXQB.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-AYCO65JC.js → insights-page-RF7U7RTA.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-YKYLTSAN.js → monitor-room-7IVIS75W.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-QBIUNRBR.js → monitoring-page-5SSJRQZF.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-4PH2A26P.js → office-page-EOND3L5D.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-H73D5UT4.js → overview-page-NISBVBBJ.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-U4BTOQ7F.js → roles-page-BUMKD7Y4.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-RHRHX7R7.js → schedules-page-AVOOKLUH.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-VSC6AM5G.js → sessions-page-6HLSEAB7.js} +2 -2
- package/dist/dashboard-web/chunks/{settings-page-LF3RKM5P.js → settings-page-MJDZHQ4X.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-SYOIGGXH.js → skills-page-5MW54PCC.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-RMBLASTW.js → team-federation-page-2SNIMVXI.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-XJXKKJRN.js → v3-page-W6SBXXQC.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-K3YVSTHJ.js → whiteboards-page-STC54KTP.js} +1 -1
- package/dist/dashboard-web/style.css +5 -0
- package/dist/dashboard.js +2 -2
- package/dist/dashboard.js.map +1 -1
- package/dist/desktop/main/dashboard-compat.js +1 -1
- package/dist/i18n/en.js +6 -6
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.js +6 -6
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +5 -4
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +40 -7
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +82 -1
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +46 -12
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/relay-target-routing.d.ts.map +1 -1
- package/dist/im/lark/relay-target-routing.js +12 -11
- package/dist/im/lark/relay-target-routing.js.map +1 -1
- package/dist/im/lark/reply-mode-command.d.ts.map +1 -1
- package/dist/im/lark/reply-mode-command.js +4 -3
- package/dist/im/lark/reply-mode-command.js.map +1 -1
- package/dist/index-daemon.js +6 -1
- package/dist/index-daemon.js.map +1 -1
- package/dist/mir-runner.js +1 -1
- package/dist/mir-runner.js.map +1 -1
- package/dist/services/bot-config-store.d.ts +1 -1
- package/dist/services/bot-config-store.d.ts.map +1 -1
- package/dist/services/bot-config-store.js +1 -1
- package/dist/services/bot-config-store.js.map +1 -1
- package/dist/services/card-prefs-store.js +8 -8
- package/dist/services/card-prefs-store.js.map +1 -1
- package/dist/services/chat-reply-mode-store.d.ts.map +1 -1
- package/dist/services/chat-reply-mode-store.js +16 -11
- package/dist/services/chat-reply-mode-store.js.map +1 -1
- package/dist/services/insight/types.d.ts +3 -1
- package/dist/services/insight/types.d.ts.map +1 -1
- package/dist/services/insight/types.js.map +1 -1
- package/dist/services/project-scanner.d.ts +4 -4
- package/dist/services/project-scanner.d.ts.map +1 -1
- package/dist/services/project-scanner.js +13 -5
- package/dist/services/project-scanner.js.map +1 -1
- package/dist/services/transcript-resolver.d.ts +4 -0
- package/dist/services/transcript-resolver.d.ts.map +1 -1
- package/dist/services/transcript-resolver.js +53 -5
- package/dist/services/transcript-resolver.js.map +1 -1
- package/dist/services/usage-ledger.d.ts.map +1 -1
- package/dist/services/usage-ledger.js +1 -0
- package/dist/services/usage-ledger.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +37 -1
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +61 -3
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/setup-args.js +1 -1
- package/dist/setup/setup-args.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/allowed-users-apply.d.ts.map +1 -1
- package/dist/utils/allowed-users-apply.js +3 -2
- package/dist/utils/allowed-users-apply.js.map +1 -1
- package/dist/utils/child-env.d.ts +31 -2
- package/dist/utils/child-env.d.ts.map +1 -1
- package/dist/utils/child-env.js +61 -3
- package/dist/utils/child-env.js.map +1 -1
- package/dist/utils/file-lock.d.ts +10 -0
- package/dist/utils/file-lock.d.ts.map +1 -1
- package/dist/utils/file-lock.js +295 -53
- package/dist/utils/file-lock.js.map +1 -1
- package/dist/worker.js +52 -3
- package/dist/worker.js.map +1 -1
- package/dist/workflows/v3/run-envelope.d.ts +24 -24
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/chunk-P327LXOT.js +0 -1
package/dist/dashboard-web/chunks/{bot-defaults-page-VQMPUJ4Y.js → bot-defaults-page-UKA7K4JV.js}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import{b as wt}from"./chunk-
|
|
1
|
+
import{b as wt}from"./chunk-FNPGOZMX.js";import{c as L}from"./chunk-FLGXZJTD.js";import{a as Ct,b as at,c as lt,g as xt,h as Tt,i as Nt,p as It}from"./chunk-QFMH6ITB.js";import{B as vt,C as kt,a as nt,t as yt,y as et}from"./chunk-KQB42ML5.js";import{a as Dt}from"./chunk-SYC6D5XU.js";import{a as _t,d as St}from"./chunk-5THX4DI2.js";import{c as ut}from"./chunk-7SZRL6FY.js";var s=ut(_t(),1);var Pt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],ot={options:Pt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function it(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function dt(a){let t=null;for(let o of nt.sessions.values())o.larkAppId!==a||!o.cliId||(!t||Number(o.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=o);return t?.cliId??""}function ct(a,t){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||it(a,t)||"claude-code"}function bt(a,t){return a.find(o=>o.id===t)}function Bt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[]}function Rt(){let a=0;return{begin(){let t=++a;return{commit:()=>t===a}}}}async function At(){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 $t(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})}),d=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:d?.resolution??{}}:{ok:!1,error:d?.error?`HTTP ${o.status}: ${d.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function Mt(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return ot;let o=t.options.filter(l=>l&&typeof l.id=="string"&&typeof l.label=="string"),d=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():ot.ttadkModelDefault,i=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(l=>typeof l=="string"):[];return{options:o.length?o:Pt,ttadkModelDefault:d,ttadkModelSuggestions:i}}catch{return ot}}function Ot(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var e=ut(St(),1);function gt(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:gt(a.status),...a.attr??{},children:a.status?.text??""})}function Vt(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(Nt,{className:"bd-info-tip",label:t,children:a.children})}function $(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)(Vt,{children:a.help}):null]})}function X(a){let t=L();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(It,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Ct(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 K(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)($,{help:a.help,children:a.title})})})]})}async function H(a,t,o){let d=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),i=await d.json().catch(()=>({}));return{ok:d.ok&&i?.ok!==!1,status:d.status,body:i}}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 M(a){return a?.message??String(a)}function Et(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function Lt(a,t){let o=a.trim();return o===""?t:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var ht=["email","openId","userId","unionId"];function Kt(a){let t=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(t)]}function ft(a){return(a??[]).join(`
|
|
2
2
|
`)}function Qt(a){return ht.find(t=>a?.[t]?.trim())??"email"}function zt(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 ht)delete o[l];o[a.idField]=t;let i=a.name.trim();return i?o.name=i:delete o.name,o}function Xt(a,t){return a==null?t("botDefaults.brandStateDefault"):a.trim()===""?t("botDefaults.brandStateOff"):t("botDefaults.brandStateCustom")}function Yt(a,t){return a==null?t("botDefaults.quotaStateOff"):t("botDefaults.quotaStateOn",{count:a})}function Zt(a,t){return a==null?t("botDefaults.maxLiveWorkersStateDefault"):t("botDefaults.maxLiveWorkersStateOn",{count:a})}function te(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 ee(){let a=L(),t=(0,s.useRef)(!0),o=(0,s.useRef)(Rt()),[d,i]=(0,s.useState)([]),[l,p]=(0,s.useState)(ot),[c,m]=(0,s.useState)(null),[n,b]=(0,s.useState)(!0),[h,u]=(0,s.useState)(!1),[g,k]=(0,s.useState)(""),[D,v]=(0,s.useState)(null),[C,T]=(0,s.useState)(0),[,S]=(0,s.useState)(0),[I,B]=(0,s.useState)(!1),f=(0,s.useCallback)(async(N=!1)=>{N&&T(Y=>Y+1);let W=o.current.begin();b(!0);try{let[Y,z]=await Promise.all([At(),Mt()]);if(!t.current||!W.commit())return;i(Y.bots),m(Y.error),p(z)}finally{t.current&&W.commit()&&b(!1)}},[]);(0,s.useEffect)(()=>{t.current=!0,f(),kt().then(()=>{t.current&&S(W=>W+1)});let N=nt.onBotsChanged(()=>{t.current&&f()});return()=>{t.current=!1,N()}},[f]);let R=(0,s.useMemo)(()=>{let N=g.trim().toLowerCase();return d.filter(W=>!N||(W.botName??"").toLowerCase().includes(N)||(W.larkAppId??"").toLowerCase().includes(N))},[d,g]);(0,s.useEffect)(()=>{if(!(c||n)){if(R.length===0){D!==null&&v(null);return}(!D||!R.some(N=>N.larkAppId===D))&&v(R[0].larkAppId)}},[R,c,n,D]);let A=D?R.find(N=>N.larkAppId===D)??null:null,Q=(0,s.useCallback)((N,W)=>{i(Y=>Y.map(z=>z.larkAppId!==N?z:typeof W=="function"?W(z):{...z,...W}))},[]),G=async()=>{u(!0);try{await f(!0)}finally{t.current&&u(!1)}},q;return n?q=(0,e.jsx)(lt,{label:a("common.loading")}):c?q=(0,e.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",c,(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"]}):R.length===0?q=(0,e.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):A?q=(0,e.jsx)(oe,{bot:A,cliState:l,patchBot:Q},`${A.larkAppId}:${C}`):q=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)(Tt,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:h,disabled:h,onClick:()=>{G()}}),yt.authed?(0,e.jsx)(xt,{className:"page-primary-action add-bot-btn",disabled:I,onClick:()=>{B(!0),wt().finally(()=>B(!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:N=>N.preventDefault(),children:(0,e.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:g,onChange:N=>k(N.currentTarget.value)})}),(0,e.jsx)("div",{className:"bd-roster-list",children:!c&&R.map(N=>(0,e.jsx)(ae,{bot:N,selected:N.larkAppId===D,onSelect:()=>v(N.larkAppId)},N.larkAppId))})]}),(0,e.jsx)("div",{id:"bd-list",className:"bd-detail",children:q})]})]})}function ae(a){let{bot:t}=a,o=t.botName??t.larkAppId,d=it(t,dt(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)(at,{html:et({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:d||t.larkAppId.slice(0,14)})]}),t.defaultOncall?.enabled?(0,e.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function oe(a){let t=L(),{bot:o,cliState:d,patchBot:i}=a,l=o.botName??o.larkAppId,p=it(o,dt(o.larkAppId)),c=(0,s.useCallback)(async n=>{let b=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,n);return b.ok&&i(o.larkAppId,h=>te(h,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)(at,{html:et({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 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)(le,{bot:o,name:l,patchBot:i}),(0,e.jsx)("div",{className:"bd-profile-main",children:(0,e.jsx)(ie,{bot:o,cli:p,patchBot:i,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"),": ",Ot(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)(re,{bot:o,sessionFallback:p,cliState:d,patchBot:i}),(0,e.jsx)(ue,{bot:o,patchBot:i,putCardPref:c}),o.cliId!=="riff"&&(0,e.jsx)(ce,{bot:o,patchBot:i}),o.cliId!=="riff"&&o.sandbox===!0&&(0,e.jsx)(pe,{bot:o,patchBot:i}),o.cliId!=="riff"&&(0,e.jsx)(ge,{bot:o,patchBot:i})]}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(se,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Oe,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ie,{bot:o,patchBot:i})})]}),(0,e.jsxs)("div",{className:"bd-column",children:[(0,e.jsxs)("section",{className:"bd-tile",children:[(0,e.jsx)(Ce,{bot:o,patchBot:i,putCardPref:c}),(0,e.jsx)(xe,{bot:o,patchBot:i}),(0,e.jsx)(De,{bot:o,putCardPref:c}),(0,e.jsx)(Te,{bot:o,patchBot:i,putCardPref:c})]}),(0,e.jsxs)("section",{className:"bd-tile",children:[(0,e.jsx)(ve,{bot:o,putCardPref:c}),(0,e.jsx)(ke,{bot:o,putCardPref:c}),(0,e.jsx)(Se,{bot:o,patchBot:i}),(0,e.jsx)(Me,{bot:o,patchBot:i})]}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(he,{bot:o,patchBot:i})})]})]})]})}function se(a){let t=L();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)(Ne,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(we,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(Pe,{bot:a.bot,patchBot:a.patchBot})]})}var rt=512;async function ne(a){let t=await createImageBitmap(a);try{let o=Math.min(t.width,t.height);if(!o)throw new Error("empty image");let d=document.createElement("canvas");d.width=rt,d.height=rt;let i=d.getContext("2d");if(!i)throw new Error("canvas unavailable");let l=(t.width-o)/2,p=(t.height-o)/2;return i.drawImage(t,l,p,o,o,0,0,rt,rt),d.toDataURL("image/png")}finally{t.close()}}function le(a){let t=L(),{bot:o,name:d,patchBot:i}=a,l=(0,s.useRef)(null),[p,c]=(0,s.useState)(!1),[m,n]=(0,s.useState)(null),[b,h]=(0,s.useState)(!1),[u,g]=(0,s.useState)(!1),k=(0,s.useRef)(null);function D(T,S){let B=["no_session","session_expired","no_access","unsupported_brand"].includes(T)?t(`botDefaults.avatarWarn.${T}`):S||T;return t("botDefaults.avatarFailed",{error:B})}let v=(0,s.useCallback)(async T=>{c(!0),n({text:`\u23F3 ${t("botDefaults.avatarUploading")}`,ok:!0});try{let S=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/avatar`,{imageBase64:T});if(S.ok&&S.body.ok){let I=typeof S.body.avatarUrl=="string"?S.body.avatarUrl:"";I&&vt(o.larkAppId,d,I),i(o.larkAppId,B=>({...B})),k.current=null,h(!1),n({text:`\u2713 ${t("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let I=String(S.body?.error??""),B=typeof S.body?.message=="string"?S.body.message:void 0;n({text:`\u2717 ${D(I,B??F(S))}`});let f=I==="no_session"||I==="session_expired";h(f),f||(k.current=null)}}catch(S){n({text:`\u2717 ${t("botDefaults.avatarFailed",{error:M(S)})}`})}finally{c(!1)}},[o.larkAppId,d,i,t]);async function C(T){if(!T||p)return;c(!0);let S;try{S=await ne(T)}catch{c(!1),n({text:`\u2717 ${t("botDefaults.avatarBadImage")}`});return}k.current=S,await v(S)}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:p,onClick:()=>l.current?.click(),children:[(0,e.jsx)(at,{html:et({name:d,larkAppId:o.larkAppId,dot:"ok"})}),(0,e.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:p?"\u23F3":"\u270E"})]}),(0,e.jsx)("input",{ref:l,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:T=>{let S=T.currentTarget.files?.[0];T.currentTarget.value="",C(S)}}),m?(0,e.jsxs)("small",{className:gt(m,"bd-avatar-status"),"data-avatar-status":!0,children:[m.text,b?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>g(!0),children:t("feishuLogin.entry")}):null]}):null,u?(0,e.jsx)(qt,{onClose:()=>g(!1),onSuccess:()=>{h(!1),g(!1),k.current&&v(k.current)}}):null]})}function ie(a){let t=L(),{bot:o,cli:d,patchBot:i}=a,l=o.botName??o.larkAppId,[p,c]=(0,s.useState)(!1),[m,n]=(0,s.useState)(l),[b,h]=(0,s.useState)(!1),[u,g]=(0,s.useState)(null),[k,D]=(0,s.useState)(!1),[v,C]=(0,s.useState)(!1);(0,s.useEffect)(()=>{p||n(l)},[p,l]);function T(B){c(B),B&&(n(l),g(null),D(!1))}function S(B,f){let A=["no_session","session_expired","no_access","unsupported_brand"].includes(B)?t(`botDefaults.renameWarn.${B}`):f||B;return t("botDefaults.renameLocalOnly",{reason:A})}let I=(0,s.useCallback)(async()=>{let B=m.trim();if(!B){g({text:`\u2717 ${t("botDefaults.renameEmpty")}`});return}h(!0),g({text:`\u23F3 ${t("botDefaults.renaming")}`,ok:!0});try{let f=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:B});if(f.ok&&f.body.ok){let R=typeof f.body.botName=="string"&&f.body.botName?f.body.botName:B;i(o.larkAppId,A=>({...A,botName:R,larkBotName:f.body.mode==="feishu"?B:A.larkBotName,displayName:f.body.mode==="feishu"?null:B})),T(!1),f.body.mode==="feishu"?(g({text:`\u2713 ${t("botDefaults.renameOkFeishu")}`,ok:!0}),D(!1)):(g({text:`\u26A0 ${S(String(f.body.warning??""),f.body.message)}`}),D(f.body.warning==="no_session"||f.body.warning==="session_expired"))}else g({text:`\u2717 ${t("botDefaults.renameFailed",{error:F(f)})}`})}catch(f){g({text:`\u2717 ${t("botDefaults.renameFailed",{error:M(f)})}`})}finally{h(!1)}},[o.larkAppId,m,i,t]);return(0,e.jsxs)("div",{className:"bd-profile-id",children:[p?(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:b,autoFocus:!0,onChange:B=>n(B.currentTarget.value),onKeyDown:B=>{B.key==="Enter"?(B.preventDefault(),I()):B.key==="Escape"&&T(!1)}}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:b,onClick:()=>{I()},children:t("botDefaults.renameSave")}),(0,e.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:b,onClick:()=>T(!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}),d?(0,e.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:d}):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:()=>T(!0),children:t("botDefaults.renameAction")})]}),(0,e.jsx)("code",{children:o.larkAppId}),(0,e.jsx)("small",{className:gt(u,"bd-name-status"),"data-name-status":!0,children:u?.text??""}),(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!k,onClick:()=>C(!0),children:t("feishuLogin.entry")}),v?(0,e.jsx)(qt,{onClose:()=>C(!1),onSuccess:()=>{D(!1),C(!1),I()}}):null]})}function qt(a){let t=L(),{onClose:o,onSuccess:d}=a,i=(0,s.useRef)(null),l=(0,s.useRef)(null),[p,c]=(0,s.useState)(t("feishuLogin.starting")),[m,n]=(0,s.useState)(null),[b,h]=(0,s.useState)(!1),u=(0,s.useCallback)(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]),g=(0,s.useCallback)(v=>v?v.status==="awaiting_scan"&&v.qrDataUrl?(n(v.qrDataUrl),c(v.message||t("feishuLogin.scanHint")),h(!1),"active"):v.status==="starting"?(c(v.message||t("feishuLogin.starting")),n(null),h(!1),"active"):v.status==="success"?(u(),n(null),h(!1),c(t("feishuLogin.success")),l.current=window.setTimeout(()=>d(),900),"done"):(u(),n(null),c(t("feishuLogin.failed",{reason:v.message||v.reason||""})),h(!0),"done"):"active",[d,u,t]),k=(0,s.useCallback)(async()=>{try{let C=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));g(C.login)}catch{}},[g]),D=(0,s.useCallback)(async()=>{u(),c(t("feishuLogin.starting")),n(null),h(!1);let v="active";try{let T=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));v=g(T.login)}catch(C){c(t("feishuLogin.failed",{reason:M(C)})),h(!0);return}v==="active"&&i.current===null&&(i.current=window.setInterval(()=>{k()},1500))},[k,g,u,t]);return(0,s.useEffect)(()=>(D(),()=>{u(),l.current!==null&&window.clearTimeout(l.current)}),[D,u]),(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:p}),(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:!b,onClick:()=>{D()},children:t("feishuLogin.retry")})})]})})}function re(a){let t=L(),{bot:o,cliState:d,patchBot:i}=a,l=ct(o,a.sessionFallback),[p,c]=(0,s.useState)(l),[m,n]=(0,s.useState)(typeof o.model=="string"?o.model:""),[b,h]=(0,s.useState)(null),[u,g]=(0,s.useState)(!1),[k,D]=(0,s.useState)(Ft(o)),[v,C]=(0,s.useState)(null),[T,S]=(0,s.useState)(!1);(0,s.useEffect)(()=>{c(ct(o,a.sessionFallback)),n(typeof o.model=="string"?o.model:""),D(Ft(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let I=bt(d.options,p),B=Bt(I,d),f=I?.gateway==="ttadk"&&I.acceptsModel===!1,R=f?t("botOnboarding.modelTtadkCocoPlaceholder"):I?.gateway==="ttadk"?t("botOnboarding.modelTtadkPlaceholder").replace("{model}",d.ttadkModelDefault):t("botDefaults.agentModelPlaceholder");function A(r){c(r);let y=bt(d.options,r),w=y?.gateway==="ttadk",x=w&&y.acceptsModel!==!1;n(w&&!x?"":x?P=>P.trim()?P:d.ttadkModelDefault:P=>P.trim()===d.ttadkModelDefault?"":P)}async function Q(){h(null),g(!0);try{let r=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:p,model:m});r.ok&&r.body.ok?(h(r.body.availabilityWarning?{text:`\u26A0\uFE0F ${r.body.availabilityWarning}`}:{text:`\u2713 ${t("botDefaults.agentSaved")}`,ok:!0}),i(o.larkAppId,{cliId:r.body.cliId,wrapperCli:r.body.wrapperCli??null,model:r.body.model??"",agentSelectionKey:r.body.selectionKey??p})):h({text:`\u2717 ${F(r)}`})}catch(r){h({text:`\u2717 ${M(r)}`})}finally{g(!1)}}async function G(){if(o.cliId==="riff")return!0;try{let r=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:"riff",model:""});return r.ok&&r.body.ok?(i(o.larkAppId,{cliId:r.body.cliId,wrapperCli:r.body.wrapperCli??null,model:r.body.model??"",agentSelectionKey:r.body.selectionKey??"riff"}),!0):(h({text:`\u2717 ${F(r)}`}),!1)}catch(r){return h({text:`\u2717 ${M(r)}`}),!1}}async function q(r){D(r),C(null),S(!0);try{let y=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:r});y.ok&&y.body.ok?(C({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}),i(o.larkAppId,{skillInjection:y.body.skillInjection??null})):C({text:`\u2717 ${F(y)}`})}catch(y){C({text:`\u2717 ${M(y)}`})}finally{S(!1)}}let N=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",W=[...d.options].sort((r,y)=>r.label.localeCompare(y.label,"en",{sensitivity:"base"})).map(r=>({value:r.id,label:r.available===!1?t("botDefaults.agentMissingOption",{label:r.label,command:r.command??r.id}):`${r.label}\uFF08${r.id}\uFF09`})),Y=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamic")}],z=[{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")}],Z=p==="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)(X,{dataInput:"agentCliId",ariaLabel:t("botDefaults.agentCli"),value:p,disabled:u,options:W,searchable:!0,onChange:A}),I?.available===!1?(0,e.jsx)("small",{className:"hint-warn",children:t("botDefaults.agentMissingHint",{command:I.command??p})}):null]})}),!Z&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)($,{help:t("botDefaults.agentHelp"),children:t("botDefaults.agentModel")}),(0,e.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:R,value:m,disabled:u||f,onChange:r=>n(r.currentTarget.value)}),(0,e.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:B.map(r=>(0,e.jsx)("option",{value:r},r))})]})}),Z&&(0,e.jsx)($e,{bot:o,patchBot:i,persistCliSelection:G}),!Z&&N==="dynamic"?(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.skillInjectionHelpDynamic"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(X,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:Y,onChange:()=>{}})]})}):!Z&&N==="global"?(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.skillInjectionHelp"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(X,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:k,disabled:T,options:z,onChange:r=>{q(r)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:v,attr:{"data-skill-injection-status":""}})})]}):null,!Z&&(0,e.jsxs)("div",{className:"actions bd-section-actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:u,onClick:()=>{Q()},children:t("botDefaults.agentSave")}),(0,e.jsx)(U,{status:b,attr:{"data-agent-status":""}})]})]})}function Ft(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 ue(a){let t=L(),{bot:o,patchBot:d}=a,i=Ut(o),[l,p]=(0,s.useState)(i.mode),[c,m]=(0,s.useState)(i.workingDir),[n,b]=(0,s.useState)(o.defaultWorkingDirAutoWorktree===!0),[h,u]=(0,s.useState)(null),[g,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let C=Ut(o);p(C.mode),m(C.workingDir),b(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function D(){u(null);let C=c.trim();if(l!=="off"&&!C){u({text:t("botDefaults.required")});return}let T=l==="default"&&n;k(!0);try{let S=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:l,workingDir:C,autoWorktree:T});if(S.ok&&S.body.ok){let I=S.body.resolvedPath?` \u2192 ${S.body.resolvedPath}`:"";u({text:`\u2713 ${t("botDefaults.workingDirSaved")}${I}`,ok:!0}),d(o.larkAppId,{defaultOncall:S.body.defaultOncall??o.defaultOncall,defaultWorkingDir:S.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:S.body.defaultWorkingDirAutoWorktree===!0})}else u({text:`\u2717 ${F(S)}`})}catch(S){u({text:`\u2717 ${M(S)}`})}finally{k(!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)($,{help:t("botDefaults.workingDirModeHelp"),children:t("botDefaults.workingDirMode")}),(0,e.jsx)(X,{dataInput:"workingDirMode",ariaLabel:t("botDefaults.workingDirMode"),value:l,disabled:g,options:v,onChange:C=>p(C)})]})}),(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:c,disabled:g,onChange:C=>m(C.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:n,disabled:g,onChange:C=>b(C.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)($,{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:g,onClick:()=>{D()},children:t("botDefaults.save")}),(0,e.jsx)(U,{status:h,attr:{"data-status":""}})]}),(0,e.jsx)(de,{bot:o,putCardPref:a.putCardPref})]})}function Ut(a){let t=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:t.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||t.workingDir||""}}function de(a){let t=L(),{bot:o,putCardPref:d}=a,[i,l]=(0,s.useState)(o.autoStartOnGroupJoin===!0),[p,c]=(0,s.useState)(o.autoStartOnNewTopic===!0),[m,n]=(0,s.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[b,h]=(0,s.useState)(null),[u,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(o.autoStartOnGroupJoin===!0),c(o.autoStartOnNewTopic===!0),n(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:"")},[o.autoStartOnGroupJoin,o.autoStartOnGroupJoinPrompt,o.autoStartOnNewTopic]);async function k(D,v){g(v),h(null);try{let C=await d(D);h(C.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(C)}`})}catch(C){h({text:`\u2717 ${M(C)}`})}finally{g(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)(K,{checked:i,disabled:u==="join",dataAction:"toggle-auto-join",title:t("botDefaults.autoStartJoin"),help:t("botDefaults.autoStartJoinHelp"),onChange:D=>{l(D),k({autoStartOnGroupJoin:D},"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:D=>n(D.currentTarget.value)})]})}),(0,e.jsx)(K,{checked:p,disabled:u==="topic",dataAction:"toggle-auto-topic",title:t("botDefaults.autoStartTopic"),help:t("botDefaults.autoStartTopicHelp"),onChange:D=>{c(D),k({autoStartOnNewTopic:D},"topic")}}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:u==="prompt",onClick:()=>{k({autoStartOnGroupJoinPrompt:m},"prompt")},children:t("botDefaults.autoStartJoinPromptSave")}),(0,e.jsx)(U,{status:b,attr:{"data-auto-start-status":""}})]})]})}function ce(a){let t=L(),{bot:o,patchBot:d}=a,[i,l]=(0,s.useState)(o.sandbox===!0),[p,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>l(o.sandbox===!0),[o.sandbox]);async function b(u){l(u),c(null),n(!0);try{let g=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:u});g.ok&&g.body.ok?(c({text:`\u2713 ${t("botDefaults.sandboxSaved")}`,ok:!0}),d(o.larkAppId,{sandbox:g.body.sandbox===!0})):(c({text:`\u2717 ${F(g)}`}),l(!u))}catch(g){c({text:`\u2717 ${M(g)}`}),l(!u)}finally{n(!1)}}let h=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)(K,{checked:i,disabled:m,dataAction:"toggle-sandbox",title:t("botDefaults.sandboxToggle"),help:t("botDefaults.sandboxHelp"),onChange:u=>{b(u)}}),(0,e.jsx)("p",{className:"bd-section-note","data-read-iso-capability":h?"yes":"no",children:h?`\uFF0B ${t("botDefaults.sandboxReadIsoOn")}`:t("botDefaults.sandboxReadIsoOff")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:p,attr:{"data-sandbox-status":""}})})]})}var Gt={readWrite:0,readOnly:1,deny:2};function Wt(a,t,o){let d=b=>b==="~"||b.startsWith("~/")?o.replace(/\/+$/,"")+b.slice(1):b,i=b=>d(b).replace(/\/+$/,"")||"/",l=i(t),p=(b,h)=>{let u=i(b),g=i(h);return u===g||g.startsWith(u==="/"?"/":u+"/")},c=b=>i(b)==="/"?0:i(b).split("/").filter(Boolean).length,m,n=(b,h)=>{if(!p(h,l))return;let u=c(h);(!m||u>m.ruleDepth||u===m.ruleDepth&&Gt[b]>Gt[m.access])&&(m={access:b,ruleDepth:u,rule:h})};for(let b of a.readWrite)n("readWrite",b);for(let b of a.readOnly)n("readOnly",b);for(let b of a.deny)n("deny",b);return m?{access:m.access,rule:m.rule}:{access:"none"}}function Jt(){return{readWrite:[],readOnly:[],deny:[]}}function st(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:Jt()}function be(a,t){let o=d=>[...d].sort().join(`
|
|
3
3
|
`);return o(a.readWrite)===o(t.readWrite)&&o(a.readOnly)===o(t.readOnly)&&o(a.deny)===o(t.deny)}function pt(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 fe(a){let t=Jt();for(let o of a.split(`
|
|
5
5
|
`)){let d=o.trim();if(!d||d.startsWith("#"))continue;let i=/^(\S+)\s+(.+)$/.exec(d);if(!i)continue;let l=i[1].toLowerCase(),p=i[2].trim();l==="rw"||l==="readwrite"||l==="rw:"?t.readWrite.push(p):l==="ro"||l==="readonly"||l==="ro:"?t.readOnly.push(p):(l==="deny"||l==="-"||l==="deny:")&&t.deny.push(p)}return t}function pe(a){let t=L(),{bot:o,patchBot:d}=a,[i,l]=(0,s.useState)(()=>st(o.sandboxPaths)),[p,c]=(0,s.useState)(()=>pt(st(o.sandboxPaths))),[m,n]=(0,s.useState)(!1),[b,h]=(0,s.useState)(null),[u,g]=(0,s.useState)(!1),[k,D]=(0,s.useState)(""),[v,C]=(0,s.useState)({}),[T,S]=(0,s.useState)(new Set),[I,B]=(0,s.useState)([]),[f,R]=(0,s.useState)("~"),A=(0,s.useMemo)(()=>st(o.sandboxPaths),[o.sandboxPaths]);(0,s.useEffect)(()=>{l(st(o.sandboxPaths)),c(pt(st(o.sandboxPaths)))},[o.sandboxPaths]);let Q=!be(i,A),G=(0,s.useCallback)(async y=>{try{let w=y?`?path=${encodeURIComponent(y)}`:"",P=await(await fetch(`/api/fs/list${w}`)).json();if(!P.ok)return;y?C(O=>({...O,[y]:P.entries.map(V=>({name:V.name,path:V.path}))})):(B(P.entries.map(O=>({name:O.name,path:O.path}))),typeof P.home=="string"&&P.home.startsWith("/")&&R(P.home))}catch{}},[]);(0,s.useEffect)(()=>{!m&&I.length===0&&G("")},[m,I.length,G]);let q=(0,s.useCallback)(y=>{let w=y.replace(/\/+$/,"")||"/";if(i.readWrite.some(x=>(x.replace(/\/+$/,"")||"/")===w))return"readWrite";if(i.readOnly.some(x=>(x.replace(/\/+$/,"")||"/")===w))return"readOnly";if(i.deny.some(x=>(x.replace(/\/+$/,"")||"/")===w))return"deny"},[i]),N=(0,s.useCallback)(y=>{h(null);let w=y.replace(/\/+$/,"")||"/",x=q(y),P=x===void 0?"readWrite":x==="readWrite"?"readOnly":x==="readOnly"?"deny":void 0;l(O=>{let V=j=>j.filter(E=>(E.replace(/\/+$/,"")||"/")!==w),_={readWrite:V(O.readWrite),readOnly:V(O.readOnly),deny:V(O.deny)};return P&&_[P].push(y),c(pt(_)),_})},[q]);function W(y){c(y),l(fe(y)),h(null)}async function Y(){g(!0),h(null);try{let y=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox-paths`,i);y.ok&&y.body.ok?(h({text:`\u2713 ${t("botDefaults.sbxPathsSaved")}`,ok:!0}),d(o.larkAppId,{sandboxPaths:y.body.sandboxPaths??{readWrite:[],readOnly:[],deny:[]}})):h({text:`\u2717 ${F(y)}`})}catch(y){h({text:`\u2717 ${M(y)}`})}finally{g(!1)}}let z=y=>t(y==="readWrite"?"botDefaults.sbxRw":y==="readOnly"?"botDefaults.sbxRo":y==="deny"?"botDefaults.sbxDeny":"botDefaults.sbxNone");function Z(y){let{name:w,path:x,depth:P}=y,O=T.has(x),V=q(x),_=Wt(i,x,f),j=v[x];return(0,e.jsxs)("div",{className:"bd-sbx-node",children:[(0,e.jsxs)("div",{className:"bd-sbx-row",style:{paddingLeft:P*16},children:[(0,e.jsx)("span",{className:"bd-sbx-twisty",onClick:()=>{S(E=>{let J=new Set(E);return J.has(x)?J.delete(x):J.add(x),J}),j||G(x)},children:O?"\u25BE":"\u25B8"}),(0,e.jsx)("span",{className:"bd-sbx-name",title:x,children:w}),(0,e.jsx)("button",{type:"button",className:`bd-sbx-state bd-sbx-state-${V??"inherit"}`,"data-action":"cycle-sandbox-path","data-path":x,title:V?void 0:`${t("botDefaults.sbxInherit")}: ${z(_.access)}`,onClick:()=>N(x),children:V?z(V):`\u21B3 ${z(_.access)}`})]}),O&&(0,e.jsxs)("div",{className:"bd-sbx-kids",children:[j?.map(E=>(0,e.jsx)(Z,{name:E.name,path:E.path,depth:P+1},E.path)),j&&j.length===0&&(0,e.jsx)("div",{className:"bd-sbx-empty",style:{paddingLeft:(P+1)*16+20},children:t("botDefaults.sbxNoSubdirs")})]})]})}let r=k.trim()?Wt(i,k.trim(),f):null;return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSandboxPaths")}),(0,e.jsx)("p",{className:"bd-section-note",children:t("botDefaults.sbxPathsHelp")}),(0,e.jsx)("div",{className:"actions",style:{gap:8,flexWrap:"wrap"},children:(0,e.jsx)("button",{type:"button",className:"bd-btn",onClick:()=>n(y=>!y),children:t(m?"botDefaults.sbxPathsTreeMode":"botDefaults.sbxPathsTextMode")})}),m?(0,e.jsx)("textarea",{className:"bd-sbx-text","data-field":"sandbox-paths-text",rows:8,value:p,spellCheck:!1,placeholder:`rw ~/my-data
|
|
6
6
|
ro ~/reference-repos
|
|
7
|
-
deny ~/my-data/secrets`,onChange:y=>W(y.target.value)}):(0,e.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:I.map(y=>(0,e.jsx)(Z,{name:y.name,path:y.path,depth:0},y.path))}),(0,e.jsxs)("div",{className:"bd-sbx-tester",children:[(0,e.jsx)("input",{className:"bd-sbx-test-input","data-field":"sandbox-path-test",placeholder:t("botDefaults.sbxTestPlaceholder"),value:k,onChange:y=>D(y.target.value)}),r&&(0,e.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${r.access}`,"data-test-access":r.access,children:[z(r.access),r.rule?` \u2190 ${r.rule}`:""]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"bd-btn bd-btn-primary","data-action":"save-sandbox-paths",disabled:u||!Q,onClick:()=>{Y()},children:t("botDefaults.sbxPathsSave")}),(0,e.jsx)(U,{status:b,attr:{"data-sandbox-paths-status":""}})]})]})}var me=[{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 ge(a){let t=L(),{bot:o,patchBot:d}=a,[i,l]=(0,s.useState)(typeof o.backendType=="string"?o.backendType:""),[p,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>l(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let b=(0,s.useMemo)(()=>me.map(u=>({value:u.value,label:t(u.labelKey)})),[t]);async function h(u){let g=i;l(u),c(null),n(!0);try{let k=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:u});k.ok&&k.body.ok?(c({text:`\u2713 ${t("botDefaults.backendSaved")}`,ok:!0}),d(o.larkAppId,{backendType:typeof k.body.backendType=="string"?k.body.backendType:null})):(c({text:`\u2717 ${F(k)}`}),l(g))}catch(k){c({text:`\u2717 ${M(k)}`}),l(g)}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)($,{help:t("botDefaults.backendHelp"),children:t("botDefaults.backendLabel")}),(0,e.jsx)(X,{dataInput:"backendType",ariaLabel:t("botDefaults.backendLabel"),value:i,disabled:m,options:b,onChange:u=>{h(u)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:p,attr:{"data-backend-status":""}})})]})]})}function he(a){let t=L(),{bot:o,patchBot:d}=a,[i,l]=(0,s.useState)(typeof o.teamRole=="string"),[p,c]=(0,s.useState)(typeof o.teamRole=="string"?o.teamRole:""),[m,n]=(0,s.useState)(null),[b,h]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let g=!0,k=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(l(!0),c(o.teamRole),()=>{g=!1}):(n(null),l(!1),c(""),(async()=>{try{let D=await fetch(k),v=await D.json().catch(()=>({}));if(!g)return;if(D.ok&&v.ok){let C=v.role??"";c(C),l(!0),d(o.larkAppId,{teamRole:C})}else n({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${v.error??D.status}`})}catch(D){g&&n({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${M(D)}`})}})(),()=>{g=!1})},[o.larkAppId,o.teamRole,d,t]);async function u(g,k){if(i){n(null),h(!0);try{let D=await H("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:g});if(D.ok&&D.body.ok){let v=g.trim();c(v),d(o.larkAppId,{teamRole:v}),n({text:`\u2713 ${t(k?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else n({text:`\u2717 ${F(D)}`})}catch(D){n({text:`\u2717 ${M(D)}`})}finally{h(!1)}}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)($,{help:t("botDefaults.roleHelp"),children:t("botDefaults.sectionRole")})}),(0,e.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:t("botDefaults.rolePlaceholder"),disabled:!i||b,value:p,onChange:g=>c(g.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!i||b,onClick:()=>{u(p,p.trim()==="")},children:t("botDefaults.roleSave")}),(0,e.jsx)(U,{status:m,attr:{"data-role-status":""}})]}),(0,e.jsx)(ye,{appId:o.larkAppId})]})}function ye(a){let t=L(),[o,d]=(0,s.useState)({loaded:!1,loading:!0,items:[]});(0,s.useEffect)(()=>{let p=!0;return d({loaded:!1,loading:!0,items:[]}),(async()=>{try{let c=await fetch("/api/role-profiles"),m=await c.json().catch(()=>({}));if(!p)return;if(!c.ok)throw new Error(m?.error??String(c.status));let b=(Array.isArray(m.profiles)?m.profiles:[]).filter(h=>(h.botEntries??[]).some(u=>u?.larkAppId===a.appId&&u?.hasEntry)).map(h=>({profileId:String(h.profileId)}));d({loaded:!0,loading:!1,items:b})}catch(c){p&&d({loaded:!0,loading:!1,error:M(c),items:[]})}})(),()=>{p=!1}},[a.appId]);async function i(p){let c=o.items.find(m=>m.profileId===p);if(!(!c||c.loaded||c.loading)){d(m=>({...m,items:m.items.map(n=>n.profileId===p?{...n,loading:!0}:n)}));try{let m=await fetch(`/api/role-profiles/${encodeURIComponent(p)}/${encodeURIComponent(a.appId)}`),n=await m.json().catch(()=>({}));if(!m.ok)throw new Error(n?.error??String(m.status));d(b=>({...b,items:b.items.map(h=>h.profileId===p?{...h,loading:!1,loaded:!0,content:n?.hasEntry?String(n.content??""):""}:h)}))}catch(m){d(n=>({...n,items:n.items.map(b=>b.profileId===p?{...b,loading:!1,error:M(m)}:b)}))}}}let l;return o.loading?l=(0,e.jsx)(lt,{label:t("common.loading"),compact:!0}):o.error?l=(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?l=(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRolesEmpty")}):l=o.items.map(p=>(0,e.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":p.profileId,onToggle:c=>{c.currentTarget.open&&i(p.profileId)},children:[(0,e.jsx)("summary",{children:(0,e.jsx)("span",{className:"bd-profile-role-id",children:p.profileId})}),(0,e.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":p.profileId,children:p.loading?(0,e.jsx)(lt,{label:t("common.loading"),compact:!0}):p.error?(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRoleDetailLoadFailed",{error:p.error})}):p.loaded?(0,e.jsx)("pre",{children:p.content??""}):(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRoleClickToLoad")})})]},p.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)($,{help:t("botDefaults.profileRolesHelp"),children:t("botDefaults.profileRoles")})}),(0,e.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:l})]})}function ve(a){let t=L(),{bot:o,putCardPref:d}=a,[i,l]=(0,s.useState)(o.disableStreamingCard===!0),[p,c]=(0,s.useState)(o.silentTurnReactions===!0),[m,n]=(0,s.useState)(o.writableTerminalLinkInCard===!0),[b,h]=(0,s.useState)(o.privateCard===!0),[u,g]=(0,s.useState)(null),[k,D]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(o.disableStreamingCard===!0),c(o.silentTurnReactions===!0),n(o.writableTerminalLinkInCard===!0),h(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function v(C,T){D(T),g(null);try{let S=await d(C);g(S.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(S)}`})}catch(S){g({text:`\u2717 ${M(S)}`})}finally{D(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)(K,{checked:i,disabled:k==="streaming",dataAction:"toggle-disable-streaming",title:t("botDefaults.disableStreaming"),help:t("botDefaults.disableStreamingHelp"),onChange:C=>{l(C),v({disableStreamingCard:C},"streaming")}}),(0,e.jsx)(K,{checked:p,disabled:!i||k==="silent",dataAction:"toggle-silent-reactions",title:t("botDefaults.silentTurnReactions"),help:t("botDefaults.silentTurnReactionsHelp"),onChange:C=>{c(C),v({silentTurnReactions:C},"silent")}}),(0,e.jsx)(K,{checked:m,disabled:i||k==="writable",dataAction:"toggle-writable-link",title:t("botDefaults.writableLink"),help:t("botDefaults.writableLinkHelp"),onChange:C=>{n(C),v({writableTerminalLinkInCard:C},"writable")}}),(0,e.jsx)(K,{checked:b,disabled:k==="private",dataAction:"toggle-private-card",title:t("botDefaults.privateCard"),help:t("botDefaults.privateCardHelp"),onChange:C=>{h(C),v({privateCard:C},"private")}})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("small",{"data-card-pref-moot":!0,className:"hint-warn-inline",hidden:!i,children:t("botDefaults.writableLinkMoot")}),(0,e.jsx)(U,{status:u,attr:{"data-card-pref-status":""}})]})]})}function ke(a){let t=L(),[o,d]=(0,s.useState)(a.bot.codexAppCleanInput===!0),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function m(n){let b=o;d(n),c(!0),l(null);try{let h=await a.putCardPref({codexAppCleanInput:n});h.ok?l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(d(b),l({text:`\u2717 ${F(h)}`}))}catch(h){d(b),l({text:`\u2717 ${M(h)}`})}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)(K,{checked:o,disabled:p,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:i,attr:{"data-codex-app-clean-input-status":""}})})]})}function De(a){let t=L(),[o,d]=(0,s.useState)(a.bot.botToBotSameDir!==!1),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function m(n){d(n),c(!0),l(null);try{let b=await a.putCardPref({botToBotSameDir:n});l(b.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(b)}`})}catch(b){l({text:`\u2717 ${M(b)}`})}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)(K,{checked:o,disabled:p,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:i,attr:{"data-crossbot-status":""}})})]})}function Se(a){let t=L(),o=mt(a.bot),[d,i]=(0,s.useState)(String(o.limit)),[l,p]=(0,s.useState)(String(o.sinceHours)),[c,m]=(0,s.useState)(null),[n,b]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let u=mt(a.bot);i(String(u.limit)),p(String(u.sinceHours))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours]);async function h(){m(null);let u=Lt(d,50),g=Lt(l,24);if(u==null||g==null){m({text:`\u2717 ${t("botDefaults.summaryNumberInvalid")}`});return}b(!0);try{let k=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:u,sinceHours:g});if(k.ok&&k.body.ok){let D=k.body.summaryRange??{limit:u,sinceHours:g},v=mt({...a.bot,summaryRange:D});i(String(v.limit)),p(String(v.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:D}),m({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else m({text:`\u2717 ${F(k)}`})}catch(k){m({text:`\u2717 ${M(k)}`})}finally{b(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)($,{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:d,disabled:n,onChange:u=>i(u.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:l,disabled:n,onChange:u=>p(u.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:()=>{h()},children:t("botDefaults.summarySave")}),(0,e.jsx)(U,{status:c,attr:{"data-summary-trigger-status":""}})]})]})}function mt(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 Ce(a){let t=L(),[o,d]=(0,s.useState)(a.bot.p2pMode==="chat"?"chat":"thread"),[i,l]=(0,s.useState)(Ht(a.bot)),[p,c]=(0,s.useState)(jt(a.bot)),[m,n]=(0,s.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[b,h]=(0,s.useState)(null),[u,g]=(0,s.useState)(null),[k,D]=(0,s.useState)(null),[v,C]=(0,s.useState)(null),[T,S]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(a.bot.p2pMode==="chat"?"chat":"thread"),l(Ht(a.bot)),c(jt(a.bot)),n(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function I(G){let q=G==="chat"?"chat":"thread";d(q),h("p2p"),g(null);try{let N=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:q});N.ok&&N.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:N.body.p2pMode==="chat"?"chat":"thread"}),g({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):g({text:`\u2717 ${F(N)}`})}catch(N){g({text:`\u2717 ${M(N)}`})}finally{h(null)}}async function B(G,q,N){h(G),N(null);try{let W=await a.putCardPref(q);N(W.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(W)}`})}catch(W){N({text:`\u2717 ${M(W)}`})}finally{h(null)}}let f=[{value:"thread",label:t("botDefaults.p2pThread")},{value:"chat",label:t("botDefaults.p2pChat")}],R=[{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")}],A=[{value:"always",label:t("botDefaults.mentionModeAlways")},{value:"topic",label:t("botDefaults.mentionModeTopic")},{value:"never",label:t("botDefaults.mentionModeNever")},{value:"ambient",label:t("botDefaults.mentionModeAmbient")}],Q=[{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)($,{help:t("botDefaults.p2pHelp"),children:t("botDefaults.p2pMode")}),(0,e.jsx)(X,{dataInput:"p2pMode",ariaLabel:t("botDefaults.p2pMode"),value:o,disabled:b==="p2p",options:f,onChange:G=>{I(G)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:u,attr:{"data-p2p-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.regularGroupModeHelp"),children:t("botDefaults.regularGroupMode")}),(0,e.jsx)(X,{dataInput:"regularGroupMode",ariaLabel:t("botDefaults.regularGroupMode"),value:i,disabled:b==="regular",options:R,onChange:G=>{l(G),B("regular",{regularGroupReplyMode:G},D)}})]}),(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)($,{help:t("botDefaults.mentionModeHelp"),children:t("botDefaults.mentionMode")}),(0,e.jsx)(X,{dataInput:"regularGroupMentionMode",ariaLabel:t("botDefaults.mentionMode"),value:p,disabled:b==="mention",options:A,onChange:G=>{c(G),B("mention",{regularGroupMentionMode:G},C)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:v,attr:{"data-mention-mode-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.docSubscribeModeHelp"),children:t("botDefaults.docSubscribeMode")}),(0,e.jsx)(X,{dataInput:"docSubscribeDefaultMode",ariaLabel:t("botDefaults.docSubscribeMode"),value:m,disabled:b==="doc",options:Q,onChange:G=>{n(G),B("doc",{docSubscribeDefaultMode:G},S)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:T,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function xe(a){let t=L(),o=a.bot.substituteMode??null,[d,i]=(0,s.useState)(o?.enabled===!0);function l(r){switch(r){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[p,c]=(0,s.useState)(o?.disclosure==="none"?"none":"prefix"),[m,n]=(0,s.useState)(o?.replyMode==="quote"?"quote":"thread"),[b,h]=(0,s.useState)(o?.disableControlCard!==!0),[u,g]=(0,s.useState)(()=>ft(o?.chats)),[k,D]=(0,s.useState)(o?.topicGroups!==!1),[v,C]=(0,s.useState)(o?.topicActiveSessionTrigger!==!1),[T,S]=(0,s.useState)(null),[I,B]=(0,s.useState)(!1),f=(0,s.useRef)(0),R=(0,s.useRef)(!1);function A(r){let y=Qt(r);return{key:++f.current,idField:y,idValue:r?.[y]??"",name:r?.name??"",persisted:r?{...r}:{},originalIdField:r?y:void 0,resolution:r?.name||r?.avatarUrl?{ok:!0,name:r.name,avatarUrl:r.avatarUrl}:void 0}}let Q=(0,s.useRef)(new Map);async function G(r){let y=(Q.current.get(r)??0)+1;Q.current.set(r,y);let w=()=>Q.current.get(r)===y;N(x=>x.map(P=>P.key===r?{...P,resolving:!0}:P));try{let x=q.find(_=>_.key===r);if(!x)return;let P=x.idValue.trim();if(!P){N(_=>_.map(j=>j.key===r?{...j,resolving:!1,resolution:void 0}:j));return}let O={[x.idField]:P};x.name.trim()&&(O.name=x.name.trim());let V=await $t(a.bot.larkAppId,O);if(!w())return;N(_=>_.map(j=>{if(j.key!==r)return j;if(!V.ok)return{...j,resolving:!1,resolution:{ok:!1}};let E=V.resolution;if(E?.ok===!0){if(!E.openId)return{...j,resolving:!1,resolution:void 0};let J={...j.persisted};return J.openId=E.openId,E.name&&(J.name=E.name),E.avatarUrl&&(J.avatarUrl=E.avatarUrl),{...j,name:E.name??j.name,persisted:J,resolving:!1,resolution:{ok:!0,name:E.name,avatarUrl:E.avatarUrl}}}return{...j,resolving:!1,resolution:{ok:!1,reason:E?.reason}}}))}catch{if(!w())return;N(x=>x.map(P=>P.key===r?{...P,resolving:!1,resolution:{ok:!1}}:P))}}let[q,N]=(0,s.useState)(()=>{let r=o?.targets??[];return r.length?r.map(y=>A(y)):[A()]});(0,s.useEffect)(()=>{if(R.current){R.current=!1;return}let r=a.bot.substituteMode??null;i(r?.enabled===!0),c(r?.disclosure==="none"?"none":"prefix"),n(r?.replyMode==="quote"?"quote":"thread"),h(r?.disableControlCard!==!0),g(ft(r?.chats)),D(r?.topicGroups!==!1),C(r?.topicActiveSessionTrigger!==!1);let y=r?.targets??[];N(y.length?y.map(w=>A(w)):[A()])},[a.bot.larkAppId,a.bot.substituteMode]);async function W(r){B(!0),S(null);try{let y=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,r);if(y.ok&&y.body.ok){let w=y.body.substituteMode&&typeof y.body.substituteMode=="object"?y.body.substituteMode:null,x=Array.isArray(y.body?.resolution)?y.body.resolution:[],P=x.filter(O=>O?.ok===!1).map(O=>String(O.input??"").trim()).filter(Boolean);if(i(w?.enabled===!0),c(w?.disclosure==="none"?"none":"prefix"),n(w?.replyMode==="quote"?"quote":"thread"),h(w?.disableControlCard!==!0),g(ft(w?.chats)),D(w?.topicGroups!==!1),C(w?.topicActiveSessionTrigger!==!1),x.length)R.current=!0,N(O=>{let V=[...x];return O.map(_=>{let j=_.idValue.trim(),E=V.findIndex(tt=>String(tt.input??"").trim()===j);if(E<0)return _;let J=V.splice(E,1)[0];if(J?.ok===!0){let tt={..._.persisted};return J.openId&&(tt.openId=J.openId),_.idField==="email"&&(tt.email=j),J.name&&(tt.name=J.name),J.avatarUrl&&(tt.avatarUrl=J.avatarUrl),{..._,name:J.name??_.name,persisted:tt,resolution:{ok:!0,name:J.name,avatarUrl:J.avatarUrl}}}return{..._,resolution:{ok:!1,reason:J?.reason}}})});else{let O=w?.targets??[];N(O.length?O.map(V=>A(V)):[A()])}a.patchBot(a.bot.larkAppId,{substituteMode:w}),S(P.length?{text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${P.join(", ")}`}:{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else{let w=Array.isArray(y.body?.resolution)?y.body.resolution.filter(x=>x?.ok===!1).map(x=>String(x.input??"").trim()).filter(Boolean):[];S({text:w.length?`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${w.join(", ")}`:`\u2717 ${F(y)}`})}}catch(y){S({text:`\u2717 ${M(y)}`})}finally{B(!1)}}function Y(){let r=[],y=!1;for(let w of q){let x=zt(w);if(!x){y||=!!w.name.trim();continue}r.push(x)}if(y||d&&r.length===0){S({text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}`});return}W({enabled:d,targets:r,disclosure:p,chats:Kt(u),replyMode:m,disableControlCard:!b,topicGroups:k,topicActiveSessionTrigger:v})}let z=[{value:"prefix",label:t("botDefaults.substituteDisclosurePrefix")},{value:"none",label:t("botDefaults.substituteDisclosureNone")}],Z=[{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)(K,{checked:d,disabled:I,dataAction:"toggle-substitute-mode",title:t("botDefaults.substituteEnabled"),help:t("botDefaults.substituteHelp"),onChange:i}),(0,e.jsx)(K,{checked:k,disabled:I,dataAction:"toggle-substitute-topic-groups",title:t("botDefaults.substituteTopicGroups"),help:t("botDefaults.substituteTopicGroupsHelp"),onChange:D}),(0,e.jsx)(K,{checked:v,disabled:I||!k,dataAction:"toggle-substitute-topic-active",title:t("botDefaults.substituteTopicActive"),help:t("botDefaults.substituteTopicActiveHelp"),onChange:C}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{children:t("botDefaults.substituteDisclosure")}),(0,e.jsx)(X,{dataInput:"substituteDisclosure",ariaLabel:t("botDefaults.substituteDisclosure"),value:p,disabled:I,options:z,onChange:r=>c(r)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.substituteReplyModeHelp"),children:t("botDefaults.substituteReplyMode")}),(0,e.jsx)(X,{dataInput:"substituteReplyMode",ariaLabel:t("botDefaults.substituteReplyMode"),value:m,disabled:I,options:Z,onChange:r=>n(r)})]})}),(0,e.jsx)(K,{checked:b,disabled:I,dataAction:"toggle-substitute-control-card",title:t("botDefaults.substituteControlCard"),help:t("botDefaults.substituteControlCardHelp"),onChange:h}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)($,{help:t("botDefaults.substituteChatsHelp"),children:t("botDefaults.substituteChats")}),(0,e.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:t("botDefaults.substituteChatsPlaceholder"),value:u,disabled:I,onChange:r=>g(r.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,e.jsx)($,{help:t("botDefaults.substituteTargetsHelp"),children:t("botDefaults.substituteTargets")}),(0,e.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[q.map((r,y)=>(0,e.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,e.jsx)(X,{dataInput:`substituteTargetType-${r.key}`,className:"bd-substitute-target-type",ariaLabel:`${t("botDefaults.substituteTargetType")} ${y+1}`,value:r.idField,disabled:I,options:ht.map(w=>({value:w,label:t(`botDefaults.substituteTarget${w[0].toUpperCase()}${w.slice(1)}`)})),onChange:w=>{N(x=>x.map(P=>P.key===r.key?{...P,idField:w,idValue:P.persisted[w]??"",resolution:void 0}:P))}}),(0,e.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${r.key}`,"aria-label":`${t("botDefaults.substituteTargetType")} ${y+1}`,placeholder:t("botDefaults.substituteTargetIdPlaceholder"),value:r.idValue,disabled:I,onChange:w=>{let x=w.currentTarget.value;N(P=>P.map(O=>O.key===r.key?{...O,idValue:x,resolution:void 0}:O))},onBlur:()=>{r.idValue.trim()&&G(r.key)}}),(0,e.jsx)("div",{className:"bd-substitute-target-name",children:r.resolving?(0,e.jsx)("span",{className:"bd-substitute-target-resolving",children:t("botDefaults.substituteResolving")}):r.resolution?.ok===!0&&(r.name||r.resolution.avatarUrl)?(0,e.jsxs)(e.Fragment,{children:[r.resolution.avatarUrl?(0,e.jsx)(at,{html:et({name:r.resolution.name,avatarUrl:r.resolution.avatarUrl,size:"sm"})}):null,(0,e.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${r.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${y+1}`,children:r.name})]}):r.resolution?.ok===!1?(0,e.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:l(r.resolution.reason)}):(0,e.jsx)("input",{type:"text","data-input":`substituteTargetName-${r.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${y+1}`,placeholder:t("botDefaults.substituteTargetNamePlaceholder"),value:r.name,disabled:I,onChange:w=>{let x=w.currentTarget.value;N(P=>P.map(O=>O.key===r.key?{...O,name:x}:O))}})}),(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:I,onClick:()=>{N(w=>{let x=w.filter(P=>P.key!==r.key);return x.length?x:[A()]})},children:(0,e.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},r.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:I,onClick:()=>N(r=>[...r,A()]),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:I,onClick:Y,children:t("botDefaults.substituteSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:I,onClick:()=>{W({enabled:!1,targets:[]})},children:t("botDefaults.substituteOff")}),(0,e.jsx)(U,{status:T,attr:{"data-substitute-status":""}})]})]})}function Ht(a){return a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"||a.regularGroupReplyMode==="chat-topic"?a.regularGroupReplyMode:"chat"}function jt(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function Te(a){let t=L(),o=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,d=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,i=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,l=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[p,c]=(0,s.useState)(o),m=p??30,[n,b]=(0,s.useState)(o==null?"":String(o)),[h,u]=(0,s.useState)(null),[g,k]=(0,s.useState)(!1),[D,v]=(0,s.useState)(a.bot.overloadAlert===!0),[C,T]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let f=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;c(f),b(f==null?"":String(f))},[a.bot.maxLiveWorkers]),(0,s.useEffect)(()=>{v(a.bot.overloadAlert===!0)},[a.bot.overloadAlert]);async function S(f){T(!0),u(null),v(f);try{let R=await a.putCardPref({overloadAlert:f});R.ok&&R.body.ok?(a.patchBot(a.bot.larkAppId,{overloadAlert:f}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):(v(!f),u({text:`\u2717 ${F(R)}`}))}catch(R){v(!f),u({text:`\u2717 ${M(R)}`})}finally{T(!1)}}async function I(f){u(null),k(!0);try{let R=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:f});if(R.ok&&R.body.ok){let A=typeof R.body.maxLiveWorkers=="number"?R.body.maxLiveWorkers:null;c(A),b(A==null?"":String(A)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:A}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else u({text:`\u2717 ${F(R)}`})}catch(R){u({text:`\u2717 ${M(R)}`})}finally{k(!1)}}function B(){let f=Et(n);if(f==="invalid"){u({text:`\u2717 ${t("botDefaults.maxLiveWorkersInvalid")}`});return}I(f)}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)($,{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:g,onChange:f=>b(f.currentTarget.value)})]}),(0,e.jsx)("small",{"data-session-cap-state":!0,children:Zt(p,t)}),(0,e.jsx)("small",{className:"bd-help bd-session-residency",children:t("botDefaults.maxLiveWorkersUsage",{resident:i,cap:m,dormant:l,logical:d})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:g,onClick:B,children:t("botDefaults.maxLiveWorkersSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:g,onClick:()=>{b(""),I(null)},children:t("botDefaults.maxLiveWorkersOff")}),(0,e.jsx)(U,{status:h,attr:{"data-session-cap-status":""}})]}),(0,e.jsx)(K,{checked:D,disabled:C,dataAction:"toggle-overload-alert",title:t("botDefaults.overloadAlert"),help:t("botDefaults.overloadAlertHelp"),onChange:f=>{S(f)}})]})}function Ne(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function m(){l(null),c(!0);try{let n=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(n.ok&&n.body.ok){let b=typeof n.body.startupCommands=="string"?n.body.startupCommands:"";d(b),a.patchBot(a.bot.larkAppId,{startupCommands:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(n)}`})}catch(n){l({text:`\u2717 ${M(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)($,{help:t("botDefaults.startupCommandsHelp"),children:t("botDefaults.sectionStartupCommands")})}),(0,e.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:t("botDefaults.startupCommandsPlaceholder"),value:o,disabled:p,onChange:n=>d(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:p,onClick:()=>{m()},children:t("botDefaults.startupCommandsSave")}),(0,e.jsx)(U,{status:i,attr:{"data-startup-commands-status":""}})]})]})}function Ie(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:""),[i,l]=(0,s.useState)(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:""),[p,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:"")},[a.bot.customPassthroughCommands]),(0,s.useEffect)(()=>{l(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:"")},[a.bot.canTalkDaemonCommands]);async function b(){c(null),n("passthrough");try{let u=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:o});if(u.ok&&u.body.ok){let g=typeof u.body.customPassthroughCommands=="string"?u.body.customPassthroughCommands:"";d(g),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:g}),c({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else c({text:`\u2717 ${F(u)}`})}catch(u){c({text:`\u2717 ${M(u)}`})}finally{n(null)}}async function h(){c(null),n("cantalk");try{let u=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:i});if(u.ok&&u.body.ok){let g=typeof u.body.canTalkDaemonCommands=="string"?u.body.canTalkDaemonCommands:"";l(g),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:g}),c({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else c({text:`\u2717 ${F(u)}`})}catch(u){c({text:`\u2717 ${M(u)}`})}finally{n(null)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)($,{help:t("botDefaults.sectionSlashCommandsHelp"),children:t("botDefaults.sectionSlashCommands")})}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)($,{help:t("botDefaults.customPassthroughHelp"),children:t("botDefaults.customPassthrough")})}),(0,e.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:t("botDefaults.customPassthroughPlaceholder"),value:o,disabled:m==="passthrough",onChange:u=>d(u.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-custom-passthrough",disabled:m==="passthrough",onClick:()=>{b()},children:t("botDefaults.customPassthroughSave")})})]}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)($,{help:t("botDefaults.canTalkDaemonHelp"),children:t("botDefaults.canTalkDaemon")})}),(0,e.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:t("botDefaults.canTalkDaemonPlaceholder"),value:i,disabled:m==="cantalk",onChange:u=>l(u.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-cantalk-daemon",disabled:m==="cantalk",onClick:()=>{h()},children:t("botDefaults.canTalkDaemonSave")})})]}),(0,e.jsx)(U,{status:p,attr:{"data-slash-commands-status":""}})]})}function we(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function m(){l(null),c(!0);try{let n=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(n.ok&&n.body.ok){let b=typeof n.body.launchShell=="string"?n.body.launchShell:"";d(b),a.patchBot(a.bot.larkAppId,{launchShell:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(n)}`})}catch(n){l({text:`\u2717 ${M(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)($,{help:t("botDefaults.launchShellHelp"),children:t("botDefaults.sectionLaunchShell")})}),(0,e.jsx)("input",{type:"text","data-input":"launchShell",placeholder:t("botDefaults.launchShellPlaceholder"),value:o,disabled:p,onChange:n=>d(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:p,onClick:()=>{m()},children:t("botDefaults.launchShellSave")}),(0,e.jsx)(U,{status:i,attr:{"data-launch-shell-status":""}})]})]})}function Pe(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.env=="string"?a.bot.env:""),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function m(){l(null),c(!0);try{let n=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(n.ok&&n.body.ok){let b=typeof n.body.env=="string"?n.body.env:"";d(b),a.patchBot(a.bot.larkAppId,{env:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(n)}`})}catch(n){l({text:`\u2717 ${M(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)($,{help:t("botDefaults.envHelp"),children:t("botDefaults.sectionEnv")})}),(0,e.jsx)("textarea",{"data-input":"env",rows:5,placeholder:t("botDefaults.envPlaceholder"),value:o,disabled:p,onChange:n=>d(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:p,onClick:()=>{m()},children:t("botDefaults.envSave")}),(0,e.jsx)(U,{status:i,attr:{"data-env-status":""}})]})]})}var Be=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],Re=["","low","medium","high","xhigh"],Ae=["boe","cn"];function $e(a){let t=L(),o=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[d,i]=(0,s.useState)(typeof o.baseUrl=="string"?o.baseUrl:""),[l,p]=(0,s.useState)(o.sandboxCluster==="cn"?"cn":"boe"),[c,m]=(0,s.useState)(typeof o.model=="string"?o.model:""),[n,b]=(0,s.useState)(typeof o.reasoningEffort=="string"?o.reasoningEffort:""),[h,u]=(0,s.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[g,k]=(0,s.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[D,v]=(0,s.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
|
|
7
|
+
deny ~/my-data/secrets`,onChange:y=>W(y.target.value)}):(0,e.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:I.map(y=>(0,e.jsx)(Z,{name:y.name,path:y.path,depth:0},y.path))}),(0,e.jsxs)("div",{className:"bd-sbx-tester",children:[(0,e.jsx)("input",{className:"bd-sbx-test-input","data-field":"sandbox-path-test",placeholder:t("botDefaults.sbxTestPlaceholder"),value:k,onChange:y=>D(y.target.value)}),r&&(0,e.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${r.access}`,"data-test-access":r.access,children:[z(r.access),r.rule?` \u2190 ${r.rule}`:""]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"bd-btn bd-btn-primary","data-action":"save-sandbox-paths",disabled:u||!Q,onClick:()=>{Y()},children:t("botDefaults.sbxPathsSave")}),(0,e.jsx)(U,{status:b,attr:{"data-sandbox-paths-status":""}})]})]})}var me=[{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 ge(a){let t=L(),{bot:o,patchBot:d}=a,[i,l]=(0,s.useState)(typeof o.backendType=="string"?o.backendType:""),[p,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>l(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let b=(0,s.useMemo)(()=>me.map(u=>({value:u.value,label:t(u.labelKey)})),[t]);async function h(u){let g=i;l(u),c(null),n(!0);try{let k=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:u});k.ok&&k.body.ok?(c({text:`\u2713 ${t("botDefaults.backendSaved")}`,ok:!0}),d(o.larkAppId,{backendType:typeof k.body.backendType=="string"?k.body.backendType:null})):(c({text:`\u2717 ${F(k)}`}),l(g))}catch(k){c({text:`\u2717 ${M(k)}`}),l(g)}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)($,{help:t("botDefaults.backendHelp"),children:t("botDefaults.backendLabel")}),(0,e.jsx)(X,{dataInput:"backendType",ariaLabel:t("botDefaults.backendLabel"),value:i,disabled:m,options:b,onChange:u=>{h(u)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:p,attr:{"data-backend-status":""}})})]})]})}function he(a){let t=L(),{bot:o,patchBot:d}=a,[i,l]=(0,s.useState)(typeof o.teamRole=="string"),[p,c]=(0,s.useState)(typeof o.teamRole=="string"?o.teamRole:""),[m,n]=(0,s.useState)(null),[b,h]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let g=!0,k=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(l(!0),c(o.teamRole),()=>{g=!1}):(n(null),l(!1),c(""),(async()=>{try{let D=await fetch(k),v=await D.json().catch(()=>({}));if(!g)return;if(D.ok&&v.ok){let C=v.role??"";c(C),l(!0),d(o.larkAppId,{teamRole:C})}else n({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${v.error??D.status}`})}catch(D){g&&n({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${M(D)}`})}})(),()=>{g=!1})},[o.larkAppId,o.teamRole,d,t]);async function u(g,k){if(i){n(null),h(!0);try{let D=await H("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:g});if(D.ok&&D.body.ok){let v=g.trim();c(v),d(o.larkAppId,{teamRole:v}),n({text:`\u2713 ${t(k?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else n({text:`\u2717 ${F(D)}`})}catch(D){n({text:`\u2717 ${M(D)}`})}finally{h(!1)}}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)($,{help:t("botDefaults.roleHelp"),children:t("botDefaults.sectionRole")})}),(0,e.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:t("botDefaults.rolePlaceholder"),disabled:!i||b,value:p,onChange:g=>c(g.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!i||b,onClick:()=>{u(p,p.trim()==="")},children:t("botDefaults.roleSave")}),(0,e.jsx)(U,{status:m,attr:{"data-role-status":""}})]}),(0,e.jsx)(ye,{appId:o.larkAppId})]})}function ye(a){let t=L(),[o,d]=(0,s.useState)({loaded:!1,loading:!0,items:[]});(0,s.useEffect)(()=>{let p=!0;return d({loaded:!1,loading:!0,items:[]}),(async()=>{try{let c=await fetch("/api/role-profiles"),m=await c.json().catch(()=>({}));if(!p)return;if(!c.ok)throw new Error(m?.error??String(c.status));let b=(Array.isArray(m.profiles)?m.profiles:[]).filter(h=>(h.botEntries??[]).some(u=>u?.larkAppId===a.appId&&u?.hasEntry)).map(h=>({profileId:String(h.profileId)}));d({loaded:!0,loading:!1,items:b})}catch(c){p&&d({loaded:!0,loading:!1,error:M(c),items:[]})}})(),()=>{p=!1}},[a.appId]);async function i(p){let c=o.items.find(m=>m.profileId===p);if(!(!c||c.loaded||c.loading)){d(m=>({...m,items:m.items.map(n=>n.profileId===p?{...n,loading:!0}:n)}));try{let m=await fetch(`/api/role-profiles/${encodeURIComponent(p)}/${encodeURIComponent(a.appId)}`),n=await m.json().catch(()=>({}));if(!m.ok)throw new Error(n?.error??String(m.status));d(b=>({...b,items:b.items.map(h=>h.profileId===p?{...h,loading:!1,loaded:!0,content:n?.hasEntry?String(n.content??""):""}:h)}))}catch(m){d(n=>({...n,items:n.items.map(b=>b.profileId===p?{...b,loading:!1,error:M(m)}:b)}))}}}let l;return o.loading?l=(0,e.jsx)(lt,{label:t("common.loading"),compact:!0}):o.error?l=(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?l=(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRolesEmpty")}):l=o.items.map(p=>(0,e.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":p.profileId,onToggle:c=>{c.currentTarget.open&&i(p.profileId)},children:[(0,e.jsx)("summary",{children:(0,e.jsx)("span",{className:"bd-profile-role-id",children:p.profileId})}),(0,e.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":p.profileId,children:p.loading?(0,e.jsx)(lt,{label:t("common.loading"),compact:!0}):p.error?(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRoleDetailLoadFailed",{error:p.error})}):p.loaded?(0,e.jsx)("pre",{children:p.content??""}):(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRoleClickToLoad")})})]},p.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)($,{help:t("botDefaults.profileRolesHelp"),children:t("botDefaults.profileRoles")})}),(0,e.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:l})]})}function ve(a){let t=L(),{bot:o,putCardPref:d}=a,[i,l]=(0,s.useState)(o.disableStreamingCard===!0),[p,c]=(0,s.useState)(o.silentTurnReactions===!0),[m,n]=(0,s.useState)(o.writableTerminalLinkInCard===!0),[b,h]=(0,s.useState)(o.privateCard===!0),[u,g]=(0,s.useState)(null),[k,D]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(o.disableStreamingCard===!0),c(o.silentTurnReactions===!0),n(o.writableTerminalLinkInCard===!0),h(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function v(C,T){D(T),g(null);try{let S=await d(C);g(S.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(S)}`})}catch(S){g({text:`\u2717 ${M(S)}`})}finally{D(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)(K,{checked:i,disabled:k==="streaming",dataAction:"toggle-disable-streaming",title:t("botDefaults.disableStreaming"),help:t("botDefaults.disableStreamingHelp"),onChange:C=>{l(C),v({disableStreamingCard:C},"streaming")}}),(0,e.jsx)(K,{checked:p,disabled:!i||k==="silent",dataAction:"toggle-silent-reactions",title:t("botDefaults.silentTurnReactions"),help:t("botDefaults.silentTurnReactionsHelp"),onChange:C=>{c(C),v({silentTurnReactions:C},"silent")}}),(0,e.jsx)(K,{checked:m,disabled:i||k==="writable",dataAction:"toggle-writable-link",title:t("botDefaults.writableLink"),help:t("botDefaults.writableLinkHelp"),onChange:C=>{n(C),v({writableTerminalLinkInCard:C},"writable")}}),(0,e.jsx)(K,{checked:b,disabled:k==="private",dataAction:"toggle-private-card",title:t("botDefaults.privateCard"),help:t("botDefaults.privateCardHelp"),onChange:C=>{h(C),v({privateCard:C},"private")}})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("small",{"data-card-pref-moot":!0,className:"hint-warn-inline",hidden:!i,children:t("botDefaults.writableLinkMoot")}),(0,e.jsx)(U,{status:u,attr:{"data-card-pref-status":""}})]})]})}function ke(a){let t=L(),[o,d]=(0,s.useState)(a.bot.codexAppCleanInput===!0),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function m(n){let b=o;d(n),c(!0),l(null);try{let h=await a.putCardPref({codexAppCleanInput:n});h.ok?l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(d(b),l({text:`\u2717 ${F(h)}`}))}catch(h){d(b),l({text:`\u2717 ${M(h)}`})}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)(K,{checked:o,disabled:p,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:i,attr:{"data-codex-app-clean-input-status":""}})})]})}function De(a){let t=L(),[o,d]=(0,s.useState)(a.bot.botToBotSameDir!==!1),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function m(n){d(n),c(!0),l(null);try{let b=await a.putCardPref({botToBotSameDir:n});l(b.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(b)}`})}catch(b){l({text:`\u2717 ${M(b)}`})}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)(K,{checked:o,disabled:p,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:i,attr:{"data-crossbot-status":""}})})]})}function Se(a){let t=L(),o=mt(a.bot),[d,i]=(0,s.useState)(String(o.limit)),[l,p]=(0,s.useState)(String(o.sinceHours)),[c,m]=(0,s.useState)(null),[n,b]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let u=mt(a.bot);i(String(u.limit)),p(String(u.sinceHours))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours]);async function h(){m(null);let u=Lt(d,50),g=Lt(l,24);if(u==null||g==null){m({text:`\u2717 ${t("botDefaults.summaryNumberInvalid")}`});return}b(!0);try{let k=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:u,sinceHours:g});if(k.ok&&k.body.ok){let D=k.body.summaryRange??{limit:u,sinceHours:g},v=mt({...a.bot,summaryRange:D});i(String(v.limit)),p(String(v.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:D}),m({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else m({text:`\u2717 ${F(k)}`})}catch(k){m({text:`\u2717 ${M(k)}`})}finally{b(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)($,{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:d,disabled:n,onChange:u=>i(u.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:l,disabled:n,onChange:u=>p(u.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:()=>{h()},children:t("botDefaults.summarySave")}),(0,e.jsx)(U,{status:c,attr:{"data-summary-trigger-status":""}})]})]})}function mt(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 Ce(a){let t=L(),[o,d]=(0,s.useState)(a.bot.p2pMode==="thread"?"thread":"chat"),[i,l]=(0,s.useState)(Ht(a.bot)),[p,c]=(0,s.useState)(jt(a.bot)),[m,n]=(0,s.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[b,h]=(0,s.useState)(null),[u,g]=(0,s.useState)(null),[k,D]=(0,s.useState)(null),[v,C]=(0,s.useState)(null),[T,S]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(a.bot.p2pMode==="thread"?"thread":"chat"),l(Ht(a.bot)),c(jt(a.bot)),n(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function I(G){let q=G==="chat"?"chat":"thread";d(q),h("p2p"),g(null);try{let N=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:q});N.ok&&N.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:N.body.p2pMode==="thread"?"thread":"chat"}),g({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):g({text:`\u2717 ${F(N)}`})}catch(N){g({text:`\u2717 ${M(N)}`})}finally{h(null)}}async function B(G,q,N){h(G),N(null);try{let W=await a.putCardPref(q);N(W.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(W)}`})}catch(W){N({text:`\u2717 ${M(W)}`})}finally{h(null)}}let f=[{value:"thread",label:t("botDefaults.p2pThread")},{value:"chat",label:t("botDefaults.p2pChat")}],R=[{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")}],A=[{value:"always",label:t("botDefaults.mentionModeAlways")},{value:"topic",label:t("botDefaults.mentionModeTopic")},{value:"never",label:t("botDefaults.mentionModeNever")},{value:"ambient",label:t("botDefaults.mentionModeAmbient")}],Q=[{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)($,{help:t("botDefaults.p2pHelp"),children:t("botDefaults.p2pMode")}),(0,e.jsx)(X,{dataInput:"p2pMode",ariaLabel:t("botDefaults.p2pMode"),value:o,disabled:b==="p2p",options:f,onChange:G=>{I(G)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:u,attr:{"data-p2p-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.regularGroupModeHelp"),children:t("botDefaults.regularGroupMode")}),(0,e.jsx)(X,{dataInput:"regularGroupMode",ariaLabel:t("botDefaults.regularGroupMode"),value:i,disabled:b==="regular",options:R,onChange:G=>{l(G),B("regular",{regularGroupReplyMode:G},D)}})]}),(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)($,{help:t("botDefaults.mentionModeHelp"),children:t("botDefaults.mentionMode")}),(0,e.jsx)(X,{dataInput:"regularGroupMentionMode",ariaLabel:t("botDefaults.mentionMode"),value:p,disabled:b==="mention",options:A,onChange:G=>{c(G),B("mention",{regularGroupMentionMode:G},C)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:v,attr:{"data-mention-mode-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.docSubscribeModeHelp"),children:t("botDefaults.docSubscribeMode")}),(0,e.jsx)(X,{dataInput:"docSubscribeDefaultMode",ariaLabel:t("botDefaults.docSubscribeMode"),value:m,disabled:b==="doc",options:Q,onChange:G=>{n(G),B("doc",{docSubscribeDefaultMode:G},S)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(U,{status:T,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function xe(a){let t=L(),o=a.bot.substituteMode??null,[d,i]=(0,s.useState)(o?.enabled===!0);function l(r){switch(r){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[p,c]=(0,s.useState)(o?.disclosure==="none"?"none":"prefix"),[m,n]=(0,s.useState)(o?.replyMode==="quote"?"quote":"thread"),[b,h]=(0,s.useState)(o?.disableControlCard!==!0),[u,g]=(0,s.useState)(()=>ft(o?.chats)),[k,D]=(0,s.useState)(o?.topicGroups!==!1),[v,C]=(0,s.useState)(o?.topicActiveSessionTrigger!==!1),[T,S]=(0,s.useState)(null),[I,B]=(0,s.useState)(!1),f=(0,s.useRef)(0),R=(0,s.useRef)(!1);function A(r){let y=Qt(r);return{key:++f.current,idField:y,idValue:r?.[y]??"",name:r?.name??"",persisted:r?{...r}:{},originalIdField:r?y:void 0,resolution:r?.name||r?.avatarUrl?{ok:!0,name:r.name,avatarUrl:r.avatarUrl}:void 0}}let Q=(0,s.useRef)(new Map);async function G(r){let y=(Q.current.get(r)??0)+1;Q.current.set(r,y);let w=()=>Q.current.get(r)===y;N(x=>x.map(P=>P.key===r?{...P,resolving:!0}:P));try{let x=q.find(_=>_.key===r);if(!x)return;let P=x.idValue.trim();if(!P){N(_=>_.map(j=>j.key===r?{...j,resolving:!1,resolution:void 0}:j));return}let O={[x.idField]:P};x.name.trim()&&(O.name=x.name.trim());let V=await $t(a.bot.larkAppId,O);if(!w())return;N(_=>_.map(j=>{if(j.key!==r)return j;if(!V.ok)return{...j,resolving:!1,resolution:{ok:!1}};let E=V.resolution;if(E?.ok===!0){if(!E.openId)return{...j,resolving:!1,resolution:void 0};let J={...j.persisted};return J.openId=E.openId,E.name&&(J.name=E.name),E.avatarUrl&&(J.avatarUrl=E.avatarUrl),{...j,name:E.name??j.name,persisted:J,resolving:!1,resolution:{ok:!0,name:E.name,avatarUrl:E.avatarUrl}}}return{...j,resolving:!1,resolution:{ok:!1,reason:E?.reason}}}))}catch{if(!w())return;N(x=>x.map(P=>P.key===r?{...P,resolving:!1,resolution:{ok:!1}}:P))}}let[q,N]=(0,s.useState)(()=>{let r=o?.targets??[];return r.length?r.map(y=>A(y)):[A()]});(0,s.useEffect)(()=>{if(R.current){R.current=!1;return}let r=a.bot.substituteMode??null;i(r?.enabled===!0),c(r?.disclosure==="none"?"none":"prefix"),n(r?.replyMode==="quote"?"quote":"thread"),h(r?.disableControlCard!==!0),g(ft(r?.chats)),D(r?.topicGroups!==!1),C(r?.topicActiveSessionTrigger!==!1);let y=r?.targets??[];N(y.length?y.map(w=>A(w)):[A()])},[a.bot.larkAppId,a.bot.substituteMode]);async function W(r){B(!0),S(null);try{let y=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,r);if(y.ok&&y.body.ok){let w=y.body.substituteMode&&typeof y.body.substituteMode=="object"?y.body.substituteMode:null,x=Array.isArray(y.body?.resolution)?y.body.resolution:[],P=x.filter(O=>O?.ok===!1).map(O=>String(O.input??"").trim()).filter(Boolean);if(i(w?.enabled===!0),c(w?.disclosure==="none"?"none":"prefix"),n(w?.replyMode==="quote"?"quote":"thread"),h(w?.disableControlCard!==!0),g(ft(w?.chats)),D(w?.topicGroups!==!1),C(w?.topicActiveSessionTrigger!==!1),x.length)R.current=!0,N(O=>{let V=[...x];return O.map(_=>{let j=_.idValue.trim(),E=V.findIndex(tt=>String(tt.input??"").trim()===j);if(E<0)return _;let J=V.splice(E,1)[0];if(J?.ok===!0){let tt={..._.persisted};return J.openId&&(tt.openId=J.openId),_.idField==="email"&&(tt.email=j),J.name&&(tt.name=J.name),J.avatarUrl&&(tt.avatarUrl=J.avatarUrl),{..._,name:J.name??_.name,persisted:tt,resolution:{ok:!0,name:J.name,avatarUrl:J.avatarUrl}}}return{..._,resolution:{ok:!1,reason:J?.reason}}})});else{let O=w?.targets??[];N(O.length?O.map(V=>A(V)):[A()])}a.patchBot(a.bot.larkAppId,{substituteMode:w}),S(P.length?{text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${P.join(", ")}`}:{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else{let w=Array.isArray(y.body?.resolution)?y.body.resolution.filter(x=>x?.ok===!1).map(x=>String(x.input??"").trim()).filter(Boolean):[];S({text:w.length?`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${w.join(", ")}`:`\u2717 ${F(y)}`})}}catch(y){S({text:`\u2717 ${M(y)}`})}finally{B(!1)}}function Y(){let r=[],y=!1;for(let w of q){let x=zt(w);if(!x){y||=!!w.name.trim();continue}r.push(x)}if(y||d&&r.length===0){S({text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}`});return}W({enabled:d,targets:r,disclosure:p,chats:Kt(u),replyMode:m,disableControlCard:!b,topicGroups:k,topicActiveSessionTrigger:v})}let z=[{value:"prefix",label:t("botDefaults.substituteDisclosurePrefix")},{value:"none",label:t("botDefaults.substituteDisclosureNone")}],Z=[{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)(K,{checked:d,disabled:I,dataAction:"toggle-substitute-mode",title:t("botDefaults.substituteEnabled"),help:t("botDefaults.substituteHelp"),onChange:i}),(0,e.jsx)(K,{checked:k,disabled:I,dataAction:"toggle-substitute-topic-groups",title:t("botDefaults.substituteTopicGroups"),help:t("botDefaults.substituteTopicGroupsHelp"),onChange:D}),(0,e.jsx)(K,{checked:v,disabled:I||!k,dataAction:"toggle-substitute-topic-active",title:t("botDefaults.substituteTopicActive"),help:t("botDefaults.substituteTopicActiveHelp"),onChange:C}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{children:t("botDefaults.substituteDisclosure")}),(0,e.jsx)(X,{dataInput:"substituteDisclosure",ariaLabel:t("botDefaults.substituteDisclosure"),value:p,disabled:I,options:z,onChange:r=>c(r)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)($,{help:t("botDefaults.substituteReplyModeHelp"),children:t("botDefaults.substituteReplyMode")}),(0,e.jsx)(X,{dataInput:"substituteReplyMode",ariaLabel:t("botDefaults.substituteReplyMode"),value:m,disabled:I,options:Z,onChange:r=>n(r)})]})}),(0,e.jsx)(K,{checked:b,disabled:I,dataAction:"toggle-substitute-control-card",title:t("botDefaults.substituteControlCard"),help:t("botDefaults.substituteControlCardHelp"),onChange:h}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)($,{help:t("botDefaults.substituteChatsHelp"),children:t("botDefaults.substituteChats")}),(0,e.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:t("botDefaults.substituteChatsPlaceholder"),value:u,disabled:I,onChange:r=>g(r.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,e.jsx)($,{help:t("botDefaults.substituteTargetsHelp"),children:t("botDefaults.substituteTargets")}),(0,e.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[q.map((r,y)=>(0,e.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,e.jsx)(X,{dataInput:`substituteTargetType-${r.key}`,className:"bd-substitute-target-type",ariaLabel:`${t("botDefaults.substituteTargetType")} ${y+1}`,value:r.idField,disabled:I,options:ht.map(w=>({value:w,label:t(`botDefaults.substituteTarget${w[0].toUpperCase()}${w.slice(1)}`)})),onChange:w=>{N(x=>x.map(P=>P.key===r.key?{...P,idField:w,idValue:P.persisted[w]??"",resolution:void 0}:P))}}),(0,e.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${r.key}`,"aria-label":`${t("botDefaults.substituteTargetType")} ${y+1}`,placeholder:t("botDefaults.substituteTargetIdPlaceholder"),value:r.idValue,disabled:I,onChange:w=>{let x=w.currentTarget.value;N(P=>P.map(O=>O.key===r.key?{...O,idValue:x,resolution:void 0}:O))},onBlur:()=>{r.idValue.trim()&&G(r.key)}}),(0,e.jsx)("div",{className:"bd-substitute-target-name",children:r.resolving?(0,e.jsx)("span",{className:"bd-substitute-target-resolving",children:t("botDefaults.substituteResolving")}):r.resolution?.ok===!0&&(r.name||r.resolution.avatarUrl)?(0,e.jsxs)(e.Fragment,{children:[r.resolution.avatarUrl?(0,e.jsx)(at,{html:et({name:r.resolution.name,avatarUrl:r.resolution.avatarUrl,size:"sm"})}):null,(0,e.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${r.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${y+1}`,children:r.name})]}):r.resolution?.ok===!1?(0,e.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:l(r.resolution.reason)}):(0,e.jsx)("input",{type:"text","data-input":`substituteTargetName-${r.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${y+1}`,placeholder:t("botDefaults.substituteTargetNamePlaceholder"),value:r.name,disabled:I,onChange:w=>{let x=w.currentTarget.value;N(P=>P.map(O=>O.key===r.key?{...O,name:x}:O))}})}),(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:I,onClick:()=>{N(w=>{let x=w.filter(P=>P.key!==r.key);return x.length?x:[A()]})},children:(0,e.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},r.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:I,onClick:()=>N(r=>[...r,A()]),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:I,onClick:Y,children:t("botDefaults.substituteSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:I,onClick:()=>{W({enabled:!1,targets:[]})},children:t("botDefaults.substituteOff")}),(0,e.jsx)(U,{status:T,attr:{"data-substitute-status":""}})]})]})}function Ht(a){return a.regularGroupReplyMode==="chat"||a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"?a.regularGroupReplyMode:"chat-topic"}function jt(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function Te(a){let t=L(),o=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,d=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,i=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,l=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[p,c]=(0,s.useState)(o),m=p??30,[n,b]=(0,s.useState)(o==null?"":String(o)),[h,u]=(0,s.useState)(null),[g,k]=(0,s.useState)(!1),[D,v]=(0,s.useState)(a.bot.overloadAlert===!0),[C,T]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let f=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;c(f),b(f==null?"":String(f))},[a.bot.maxLiveWorkers]),(0,s.useEffect)(()=>{v(a.bot.overloadAlert===!0)},[a.bot.overloadAlert]);async function S(f){T(!0),u(null),v(f);try{let R=await a.putCardPref({overloadAlert:f});R.ok&&R.body.ok?(a.patchBot(a.bot.larkAppId,{overloadAlert:f}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):(v(!f),u({text:`\u2717 ${F(R)}`}))}catch(R){v(!f),u({text:`\u2717 ${M(R)}`})}finally{T(!1)}}async function I(f){u(null),k(!0);try{let R=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:f});if(R.ok&&R.body.ok){let A=typeof R.body.maxLiveWorkers=="number"?R.body.maxLiveWorkers:null;c(A),b(A==null?"":String(A)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:A}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else u({text:`\u2717 ${F(R)}`})}catch(R){u({text:`\u2717 ${M(R)}`})}finally{k(!1)}}function B(){let f=Et(n);if(f==="invalid"){u({text:`\u2717 ${t("botDefaults.maxLiveWorkersInvalid")}`});return}I(f)}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)($,{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:g,onChange:f=>b(f.currentTarget.value)})]}),(0,e.jsx)("small",{"data-session-cap-state":!0,children:Zt(p,t)}),(0,e.jsx)("small",{className:"bd-help bd-session-residency",children:t("botDefaults.maxLiveWorkersUsage",{resident:i,cap:m,dormant:l,logical:d})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:g,onClick:B,children:t("botDefaults.maxLiveWorkersSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:g,onClick:()=>{b(""),I(null)},children:t("botDefaults.maxLiveWorkersOff")}),(0,e.jsx)(U,{status:h,attr:{"data-session-cap-status":""}})]}),(0,e.jsx)(K,{checked:D,disabled:C,dataAction:"toggle-overload-alert",title:t("botDefaults.overloadAlert"),help:t("botDefaults.overloadAlertHelp"),onChange:f=>{S(f)}})]})}function Ne(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function m(){l(null),c(!0);try{let n=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(n.ok&&n.body.ok){let b=typeof n.body.startupCommands=="string"?n.body.startupCommands:"";d(b),a.patchBot(a.bot.larkAppId,{startupCommands:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(n)}`})}catch(n){l({text:`\u2717 ${M(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)($,{help:t("botDefaults.startupCommandsHelp"),children:t("botDefaults.sectionStartupCommands")})}),(0,e.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:t("botDefaults.startupCommandsPlaceholder"),value:o,disabled:p,onChange:n=>d(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:p,onClick:()=>{m()},children:t("botDefaults.startupCommandsSave")}),(0,e.jsx)(U,{status:i,attr:{"data-startup-commands-status":""}})]})]})}function Ie(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:""),[i,l]=(0,s.useState)(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:""),[p,c]=(0,s.useState)(null),[m,n]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:"")},[a.bot.customPassthroughCommands]),(0,s.useEffect)(()=>{l(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:"")},[a.bot.canTalkDaemonCommands]);async function b(){c(null),n("passthrough");try{let u=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:o});if(u.ok&&u.body.ok){let g=typeof u.body.customPassthroughCommands=="string"?u.body.customPassthroughCommands:"";d(g),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:g}),c({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else c({text:`\u2717 ${F(u)}`})}catch(u){c({text:`\u2717 ${M(u)}`})}finally{n(null)}}async function h(){c(null),n("cantalk");try{let u=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:i});if(u.ok&&u.body.ok){let g=typeof u.body.canTalkDaemonCommands=="string"?u.body.canTalkDaemonCommands:"";l(g),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:g}),c({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else c({text:`\u2717 ${F(u)}`})}catch(u){c({text:`\u2717 ${M(u)}`})}finally{n(null)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)($,{help:t("botDefaults.sectionSlashCommandsHelp"),children:t("botDefaults.sectionSlashCommands")})}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)($,{help:t("botDefaults.customPassthroughHelp"),children:t("botDefaults.customPassthrough")})}),(0,e.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:t("botDefaults.customPassthroughPlaceholder"),value:o,disabled:m==="passthrough",onChange:u=>d(u.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-custom-passthrough",disabled:m==="passthrough",onClick:()=>{b()},children:t("botDefaults.customPassthroughSave")})})]}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)($,{help:t("botDefaults.canTalkDaemonHelp"),children:t("botDefaults.canTalkDaemon")})}),(0,e.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:t("botDefaults.canTalkDaemonPlaceholder"),value:i,disabled:m==="cantalk",onChange:u=>l(u.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-cantalk-daemon",disabled:m==="cantalk",onClick:()=>{h()},children:t("botDefaults.canTalkDaemonSave")})})]}),(0,e.jsx)(U,{status:p,attr:{"data-slash-commands-status":""}})]})}function we(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function m(){l(null),c(!0);try{let n=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(n.ok&&n.body.ok){let b=typeof n.body.launchShell=="string"?n.body.launchShell:"";d(b),a.patchBot(a.bot.larkAppId,{launchShell:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(n)}`})}catch(n){l({text:`\u2717 ${M(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)($,{help:t("botDefaults.launchShellHelp"),children:t("botDefaults.sectionLaunchShell")})}),(0,e.jsx)("input",{type:"text","data-input":"launchShell",placeholder:t("botDefaults.launchShellPlaceholder"),value:o,disabled:p,onChange:n=>d(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:p,onClick:()=>{m()},children:t("botDefaults.launchShellSave")}),(0,e.jsx)(U,{status:i,attr:{"data-launch-shell-status":""}})]})]})}function Pe(a){let t=L(),[o,d]=(0,s.useState)(typeof a.bot.env=="string"?a.bot.env:""),[i,l]=(0,s.useState)(null),[p,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function m(){l(null),c(!0);try{let n=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(n.ok&&n.body.ok){let b=typeof n.body.env=="string"?n.body.env:"";d(b),a.patchBot(a.bot.larkAppId,{env:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(n)}`})}catch(n){l({text:`\u2717 ${M(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)($,{help:t("botDefaults.envHelp"),children:t("botDefaults.sectionEnv")})}),(0,e.jsx)("textarea",{"data-input":"env",rows:5,placeholder:t("botDefaults.envPlaceholder"),value:o,disabled:p,onChange:n=>d(n.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:p,onClick:()=>{m()},children:t("botDefaults.envSave")}),(0,e.jsx)(U,{status:i,attr:{"data-env-status":""}})]})]})}var Be=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],Re=["","low","medium","high","xhigh"],Ae=["boe","cn"];function $e(a){let t=L(),o=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[d,i]=(0,s.useState)(typeof o.baseUrl=="string"?o.baseUrl:""),[l,p]=(0,s.useState)(o.sandboxCluster==="cn"?"cn":"boe"),[c,m]=(0,s.useState)(typeof o.model=="string"?o.model:""),[n,b]=(0,s.useState)(typeof o.reasoningEffort=="string"?o.reasoningEffort:""),[h,u]=(0,s.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[g,k]=(0,s.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[D,v]=(0,s.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
|
|
8
8
|
`):""),[C,T]=(0,s.useState)(null),[S,I]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let f=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};i(typeof f.baseUrl=="string"?f.baseUrl:""),p(f.sandboxCluster==="cn"?"cn":"boe"),m(typeof f.model=="string"?f.model:""),b(typeof f.reasoningEffort=="string"?f.reasoningEffort:""),u(typeof f.jwtEnv=="string"?f.jwtEnv:""),k(typeof f.systemPrompt=="string"?f.systemPrompt:""),v(Array.isArray(f.setupCommands)?f.setupCommands.join(`
|
|
9
9
|
`):"")},[a.bot.riff]);async function B(){T(null),I(!0);try{let f={};d.trim()&&(f.baseUrl=d.trim()),f.sandboxCluster=l,c.trim()&&(f.model=c.trim()),n&&(f.reasoningEffort=n),h.trim()&&(f.jwtEnv=h.trim()),g.trim()&&(f.systemPrompt=g.trim()),D.trim()&&(f.setupCommands=D.split(`
|
|
10
10
|
`).map(Q=>Q.trim()).filter(Boolean));let R=Object.keys(f).length?JSON.stringify(f):"",A=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:R});if(A.ok&&A.body.ok){let Q=typeof A.body.riff=="string"&&A.body.riff?JSON.parse(A.body.riff):null;if(a.patchBot(a.bot.larkAppId,{riff:Q}),a.persistCliSelection&&!await a.persistCliSelection()){T({text:`\u2717 ${t("botDefaults.riffCliPersistFailed")}`});return}T({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else T({text:`\u2717 ${F(A)}`})}catch(f){T({text:`\u2717 ${M(f)}`})}finally{I(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)($,{help:t("botDefaults.riffHelp"),children:t("botDefaults.sectionRiff")})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffBaseUrl")}),(0,e.jsx)("input",{type:"text","data-input":"riff-base-url",placeholder:t("botDefaults.riffBaseUrlPlaceholder"),value:d,disabled:S,onChange:f=>i(f.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)($,{help:t("botDefaults.riffSandboxClusterHelp"),children:t("botDefaults.riffSandboxCluster")})}),(0,e.jsx)(X,{dataInput:"riff-sandbox-cluster",ariaLabel:t("botDefaults.riffSandboxCluster"),value:l,disabled:S,options:Ae.map(f=>({value:f,label:f.toUpperCase()})),onChange:f=>p(f)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)($,{help:t("botDefaults.riffModelHelp"),children:t("botDefaults.riffModel")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-model",list:`riff-model-suggestions-${a.bot.larkAppId}`,placeholder:t("botDefaults.riffModelPlaceholder"),value:c,disabled:S,onChange:f=>m(f.currentTarget.value)}),(0,e.jsx)("datalist",{id:`riff-model-suggestions-${a.bot.larkAppId}`,children:Be.map(f=>(0,e.jsx)("option",{value:f},f))})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)($,{help:t("botDefaults.riffReasoningEffortHelp"),children:t("botDefaults.riffReasoningEffort")})}),(0,e.jsx)(X,{dataInput:"riff-reasoning-effort",ariaLabel:t("botDefaults.riffReasoningEffort"),value:n,disabled:S,options:Re.map(f=>({value:f,label:f===""?t("botDefaults.riffReasoningEffortDefault"):f})),onChange:f=>b(f)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)($,{help:t("botDefaults.riffJwtEnvHelp"),children:t("botDefaults.riffJwtEnv")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:t("botDefaults.riffJwtEnvPlaceholder"),value:h,disabled:S,onChange:f=>u(f.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffSystemPrompt")}),(0,e.jsx)("textarea",{"data-input":"riff-system-prompt",placeholder:t("botDefaults.riffSystemPromptPlaceholder"),value:g,disabled:S,onChange:f=>k(f.currentTarget.value),rows:4})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffSetupCommands")}),(0,e.jsx)("textarea",{"data-input":"riff-setup-commands",placeholder:t("botDefaults.riffSetupCommandsPlaceholder"),value:D,disabled:S,onChange:f=>v(f.currentTarget.value),rows:3})]})}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:S,onClick:()=>{B()},children:t("botDefaults.riffSave")}),(0,e.jsx)(U,{status:C,attr:{"data-riff-status":""}})]})]})}function Me(a){let t=L(),o=a.bot.brandLabel??null,[d,i]=(0,s.useState)(o),[l,p]=(0,s.useState)(o??""),[c,m]=(0,s.useState)(null),[n,b]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let u=a.bot.brandLabel??null;i(u),p(u??"")},[a.bot.brandLabel]);async function h(u){m(null),b(!0);try{let g=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:u});if(g.ok&&g.body.ok){let k=g.body.brandLabel??null;i(k),p(k??""),a.patchBot(a.bot.larkAppId,{brandLabel:k}),m({text:"\u2713",ok:!0})}else m({text:`\u2717 ${F(g)}`})}catch(g){m({text:`\u2717 ${M(g)}`})}finally{b(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionBrand")}),(0,e.jsxs)("div",{className:"bd-row bd-brand",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)($,{help:t("botDefaults.brandLabelHelp"),children:t("botDefaults.brandLabel")}),(0,e.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:t("botDefaults.brandLabelPlaceholder"),value:l,disabled:n,onChange:u=>p(u.currentTarget.value)})]}),(0,e.jsx)("small",{"data-brand-state":!0,children:Xt(d,t)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:n,onClick:()=>{h(l)},children:t("botDefaults.brandSave")}),(0,e.jsx)("button",{type:"button","data-action":"reset-brand",disabled:n,onClick:()=>{h(null)},children:t("botDefaults.brandReset")}),(0,e.jsx)(U,{status:c,attr:{"data-brand-status":""}})]})]})}function Oe(a){let t=L(),[o,d]=(0,s.useState)(a.bot.autoGrantRequestCards!==!1),[i,l]=(0,s.useState)(a.bot.restrictGrantCommands===!0),[p,c]=(0,s.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[m,n]=(0,s.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[b,h]=(0,s.useState)(null),[u,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(a.bot.autoGrantRequestCards!==!1),l(a.bot.restrictGrantCommands===!0);let v=typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null;c(v),n(v==null?"":String(v))},[a.bot.autoGrantRequestCards,a.bot.messageQuotaDefaultLimit,a.bot.restrictGrantCommands]);async function k(v,C){g(C),h(null);try{let T=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,v);if(T.ok&&T.body.ok){let S=typeof T.body.messageQuotaDefaultLimit=="number"?T.body.messageQuotaDefaultLimit:null;d(T.body.autoGrantRequestCards!==!1),l(T.body.restrictGrantCommands===!0),c(S),"messageQuotaDefaultLimit"in v&&n(S==null?"":String(S)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:T.body.autoGrantRequestCards!==!1,restrictGrantCommands:T.body.restrictGrantCommands===!0,messageQuotaDefaultLimit:S}),h({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else h({text:`\u2717 ${F(T)}`})}catch(T){h({text:`\u2717 ${M(T)}`})}finally{g(null)}}function D(){let v=Et(m);if(v==="invalid"){h({text:`\u2717 ${t("botDefaults.quotaInvalid")}`});return}k({messageQuotaDefaultLimit:v},"quota")}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionGrant")}),(0,e.jsxs)("div",{className:"bd-toggle-grid bd-grant-toggle-grid",children:[(0,e.jsx)(K,{checked:o,disabled:u==="autoGrant",dataAction:"toggle-auto-grant-card",title:t("botDefaults.autoGrantCard"),help:t("botDefaults.autoGrantCardHelp"),onChange:v=>{d(v),k({autoGrantRequestCards:v},"autoGrant")}}),(0,e.jsx)(K,{checked:i,disabled:u==="restrict",dataAction:"toggle-restrict-grant",title:t("botDefaults.restrictGrant"),help:t("botDefaults.restrictGrantHelp"),onChange:v=>{l(v),k({restrictGrantCommands:v},"restrict")}})]}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)($,{help:t("botDefaults.quotaHelp"),children:t("botDefaults.quotaDefault")}),(0,e.jsx)("input",{type:"number",min:1,step:1,"data-input":"quotaLimit",placeholder:t("botDefaults.quotaPlaceholder"),value:m,disabled:u==="quota",onChange:v=>n(v.currentTarget.value)})]}),(0,e.jsx)("small",{"data-quota-state":!0,children:Yt(p,t)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-quota",disabled:u==="quota",onClick:D,children:t("botDefaults.quotaSave")}),(0,e.jsx)(U,{status:b,attr:{"data-grant-status":""}})]})]})}function Je(a){return Dt(a,(0,e.jsx)(ee,{}))}export{re as BotAgentSection,ee as BotDefaultsPage,ke as CodexAppDisplaySection,zt as buildSubstituteTarget,Wt as effectiveAccess,Je as renderBotDefaultsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as i,H as c,d as r}from"./chunk-
|
|
1
|
+
import{D as i,H as c,d as r}from"./chunk-KQB42ML5.js";var l={chats:[],bots:[]};async function A(){try{l=await r()}catch{}}var u=new Set(["working","analyzing","active","starting"]);function m(d){let s=new Map,e=t=>{let o=s.get(t);return o||(o={botName:t,larkAppId:t,cliId:"unknown",online:!1,sessions:[],active:[],busy:[],attention:[],lastActiveAt:0},s.set(t,o)),o};for(let t of l.bots??[]){let o=e(t.larkAppId??t.botName??"-");o.online=!0,t.botName&&(o.botName=t.botName),t.botAvatarUrl&&(o.botAvatarUrl=t.botAvatarUrl),t.cliId&&(o.cliId=t.cliId)}let p=[...d].sort((t,o)=>+(t.status==="closed")-+(o.status==="closed"));for(let t of p){let o=t.larkAppId??t.botName??"-";if(t.status==="closed"&&!s.has(o))continue;let a=e(o);t.botName&&(a.botName===a.larkAppId||!a.botName)&&(a.botName=t.botName),a.sessions.push(t),t.cliId&&a.cliId==="unknown"&&(a.cliId=t.cliId),a.lastActiveAt=Math.max(a.lastActiveAt,Number(t.lastMessageAt??0)),t.status!=="closed"&&(a.active.push(t),u.has(t.status)&&a.busy.push(t),c(t)&&a.attention.push(t))}for(let t of s.values())if(t.botName===t.larkAppId){let o=i(t.larkAppId);o&&(t.botName=o)}return[...s.values()].sort((t,o)=>{let a=n=>n.attention.length?0:n.busy.length?1:n.online||n.active.length?2:3;return a(t)!==a(o)?a(t)-a(o):o.lastActiveAt-t.lastActiveAt})}export{A as a,m as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n,t as s,u as i}from"./chunk-
|
|
1
|
+
import{a as n,t as s,u as i}from"./chunk-KQB42ML5.js";import{a as l}from"./chunk-5THX4DI2.js";import{c as S}from"./chunk-7SZRL6FY.js";var e=S(l(),1);function f(o){return n.on(o)}function m(o){let u=(0,e.useRef)(o),r=(0,e.useRef)(null);u.current=o;let a=()=>{let t=n.getSnapshot();if(r.current&&r.current.version===t.version)return r.current.value;let c=u.current(t);return r.current={version:t.version,value:c},c};return(0,e.useSyncExternalStore)(f,a,a)}function h(o){return s.on(o)}function p(){return s.locale}function v(){return(0,e.useSyncExternalStore)(h,p,p)}function T(){return v(),i}export{m as a,v as b,T as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as T}from"./chunk-QFMH6ITB.js";import{u as t}from"./chunk-KQB42ML5.js";import{a as Z,d as B}from"./chunk-5THX4DI2.js";import{c as E}from"./chunk-7SZRL6FY.js";var r=E(Z(),1);var e=E(B(),1),nn="botmux:open-bot-onboarding",L={id:"claude-code",label:"Claude"},G="glm-5.1";function x(){return{options:[L],ttadkModelDefault:G,ttadkModelSuggestions:[],suggestedAppName:"botmux-0",webSession:{status:"checking"}}}function Q(){return{appName:"",cliId:L.id,dirMode:"fixed",workingDir:"~",model:""}}function en(n,o){return n||o==="checking"}function q(n){return n instanceof Error?n.message:String(n)}function X(n){return n.status==="completed"||n.status==="failed"||n.status==="needs_owner"}function N(n){return n==="login_failed"||n==="invalid_session"||n==="identity_unavailable"||n==="session_changed"}function tn(n){return n.status==="waiting_for_scan"?n.registrationMode==="compat"?t("botOnboarding.waitingCompat"):t("botOnboarding.waiting",{name:n.appName??""}):n.status==="verifying"?t("botOnboarding.verifying"):n.status==="configuring_permissions"?n.permissionStatusMsg?`${t("botOnboarding.configuringPermissions")} ${n.permissionStatusMsg}`:t("botOnboarding.configuringPermissions"):n.status==="waiting_for_platform_scan"?t("botOnboarding.platformScanHint"):n.status==="needs_owner"?t("botOnboarding.needsOwnerTitle"):n.status==="completed"?t("botOnboarding.completed",{name:n.appName??t("botOnboarding.botFallback")}):n.status==="failed"?n.appId?t("botOnboarding.partialFailureTitle"):n.error==="qr_expired"?t("botOnboarding.qrExpiredTitle"):N(n.error)?t("botOnboarding.authIncompleteTitle"):t("botOnboarding.createFailedTitle"):t("botOnboarding.starting")}async function on(){try{let n=await fetch("/api/cli-options"),o=await n.json();if(n.ok&&Array.isArray(o?.options)){let a=typeof o.ttadkModelDefault=="string"&&o.ttadkModelDefault.trim()?o.ttadkModelDefault.trim():G,l=Array.isArray(o.ttadkModelSuggestions)?o.ttadkModelSuggestions.filter(f=>typeof f=="string"):[],d=typeof o.suggestedAppName=="string"&&o.suggestedAppName.trim()?o.suggestedAppName.trim():"botmux-0",b=o?.webSession?.identity,c=o?.webSession?.status==="ready"&&typeof b?.userId=="string"&&typeof b?.userName=="string"&&typeof b?.tenantId=="string"&&typeof b?.tenantName=="string"?{status:"ready",source:typeof o.webSession.source=="string"?o.webSession.source:"botmux_cache",identity:{userId:b.userId,userName:b.userName,...typeof b.email=="string"?{email:b.email}:{},tenantId:b.tenantId,tenantName:b.tenantName}}:{status:"scan_required",...typeof o?.webSession?.reason=="string"?{reason:o.webSession.reason}:{}};return{options:o.options,ttadkModelDefault:a,ttadkModelSuggestions:l,suggestedAppName:d,webSession:c}}}catch{}return{...x(),webSession:{status:"scan_required"}}}function K(n,o,a){let l=a.options.find(f=>f.id===o),d=l?.gateway==="ttadk",b=d&&l?.acceptsModel!==!1,c=n.model;return d&&!b?c="":b&&!c.trim()?c=a.ttadkModelDefault:!b&&c.trim()===a.ttadkModelDefault&&(c=""),{...n,cliId:o,model:c}}function an(n,o){let a=o.options.some(l=>l.id===n.cliId)?n.cliId:o.options[0]?.id??L.id;return K({...n},a,o)}async function gn(){window.dispatchEvent(new Event(nn))}function rn(n){let{job:o}=n;if(o.status!=="completed"&&o.status!=="needs_owner"||!o.permission)return null;let a=o.permission;if(a.ok){let d=[t("botOnboarding.permissionOk",{count:a.scopeCount??0})];return a.skippedScopeCount&&a.skippedScopeCount>0&&d.push(t("botOnboarding.permissionSkipped",{count:a.skippedScopeCount})),a.versionId&&d.push(t("botOnboarding.permissionVersion",{version:a.versionId})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"hint-ok",children:d.join(" ")}),a.scopeWarning?(0,e.jsx)("p",{className:"hint-warn",children:a.scopeWarning}):null]})}let l=o.remainingSteps??[];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"hint-warn",children:[t("botOnboarding.permissionManual"),a.message?`\uFF08${a.message}\uFF09`:""]}),l.length?(0,e.jsx)("ol",{className:"onboarding-steps",children:l.map(d=>(0,e.jsx)("li",{children:(0,e.jsx)("a",{href:d.url,target:"_blank",rel:"noopener",children:d.title})},`${d.title}:${d.url}`))}):null]})}function sn(n){let{job:o}=n;return o.appId?(0,e.jsxs)("p",{className:"onboarding-meta",children:[(0,e.jsx)("b",{children:"App ID:"})," ",(0,e.jsx)("code",{children:o.appId}),o.appName?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsxs)("b",{children:[t("botOnboarding.appNameLabel"),":"]})," ",(0,e.jsx)("code",{children:o.appName})]}):null,o.cliId?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsx)("b",{children:"CLI:"})," ",(0,e.jsx)("code",{children:o.cliId})]}):null,o.workingDir?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsxs)("b",{children:[t("botOnboarding.metaDir"),":"]})," ",(0,e.jsx)("code",{children:o.workingDir})]}):null]}):null}function W(n){return(0,e.jsxs)("div",{className:"qr-card",children:[(0,e.jsx)("img",{className:"qr-image",src:n.dataUrl,alt:n.alt}),n.link?(0,e.jsx)("a",{className:"onboarding-link",href:n.link,target:"_blank",rel:"noopener",children:t("botOnboarding.openLink")}):null]})}function z(n,o){return n.find(a=>a.value===o)?.label??o}function ln(n){let{job:o,ownerError:a}=n.view;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:`onboarding-status status-${o.status}`,children:tn(o)}),o.status==="waiting_for_scan"&&o.qrDataUrl?(0,e.jsx)(W,{dataUrl:o.qrDataUrl,alt:t("botOnboarding.qrAlt"),link:o.qrUrl}):null,o.status==="waiting_for_platform_scan"&&o.platformQrDataUrl?(0,e.jsx)(W,{dataUrl:o.platformQrDataUrl,alt:t("botOnboarding.platformQrAlt")}):null,(0,e.jsx)(sn,{job:o}),(0,e.jsx)(rn,{job:o}),o.status==="needs_owner"?(0,e.jsxs)("form",{className:"onboarding-form",id:"ob-owner-form",onSubmit:l=>{l.preventDefault(),n.onSubmitOwner(o,n.ownerInput,n.ownerIdInput)},children:[(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:t("botOnboarding.ownerLabel")}),(0,e.jsx)("input",{id:"ob-owner",type:"text",inputMode:"email",placeholder:t("botOnboarding.ownerPlaceholder"),autoComplete:"off",spellCheck:!1,value:n.ownerInput,onChange:l=>n.onOwnerInputChange(l.currentTarget.value)})]}),(0,e.jsx)("p",{className:"hint-warn",children:t("botOnboarding.needsOwnerDescription")}),(0,e.jsxs)("details",{className:"onboarding-technical",children:[(0,e.jsx)("summary",{children:t("botOnboarding.ownerUseId")}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:t("botOnboarding.ownerIdLabel")}),(0,e.jsx)("input",{id:"ob-owner-id",type:"text",placeholder:t("botOnboarding.ownerIdPlaceholder"),autoComplete:"off",spellCheck:!1,value:n.ownerIdInput,onChange:l=>n.onOwnerIdInputChange(l.currentTarget.value)})]})]}),a?(0,e.jsx)("p",{className:"form-error",children:a}):null,(0,e.jsx)("div",{className:"actions onboarding-actions",children:(0,e.jsx)("button",{type:"submit",className:"primary onboarding-submit",children:t("botOnboarding.ownerSubmit")})})]}):null,o.status==="completed"?(0,e.jsx)("p",{className:"hint-ok",children:o.liveStarted?t("botOnboarding.liveOk"):t("botOnboarding.restartHint")}):null,o.status==="failed"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"hint-warn",children:o.appId?t("botOnboarding.partialFailureDescription"):o.error==="qr_expired"?t("botOnboarding.qrExpiredDescription"):N(o.error)?t("botOnboarding.authIncompleteDescription"):t("botOnboarding.createFailedDescription")}),(0,e.jsxs)("details",{className:"onboarding-technical",children:[(0,e.jsx)("summary",{children:t("botOnboarding.technicalDetails")}),(0,e.jsx)("code",{children:o.message??o.error??"unknown"})]}),(0,e.jsxs)("div",{className:"actions onboarding-actions",children:[(0,e.jsx)("button",{type:"button",onClick:n.onClose,children:t("botOnboarding.close")}),o.appId?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("button",{type:"button",onClick:()=>n.onRetry("compat"),children:t("botOnboarding.compatibilityMode")}),(0,e.jsx)("button",{type:"button",className:"primary onboarding-submit",onClick:()=>n.onRetry("web"),children:o.error==="qr_expired"?t("botOnboarding.generateQr"):N(o.error)?t("botOnboarding.scanAgain"):t("botOnboarding.retry")})]})]})]}):null,o.status==="completed"?(0,e.jsx)("div",{className:"actions onboarding-actions",children:(0,e.jsx)("button",{type:"button",onClick:n.onClose,children:t("botOnboarding.close")})}):null]})}function dn(n){let o=n.cliState.options.find(s=>s.id===n.form.cliId),a=o?.gateway==="ttadk"&&o.acceptsModel!==!1,l=o?.gateway==="ttadk"&&o.acceptsModel===!1,d=a?t("botOnboarding.modelTtadkPlaceholder").replace("{model}",n.cliState.ttadkModelDefault):t("botOnboarding.modelPlaceholder"),b=n.form.dirMode==="card"?t("botOnboarding.dirLabelCard"):t("botOnboarding.dirLabelFixed"),c=n.form.dirMode==="card"?t("botOnboarding.dirPlaceholderCard"):t("botOnboarding.dirPlaceholderFixed"),f=[...n.cliState.options].sort((s,p)=>s.label.localeCompare(p.label,"en",{sensitivity:"base"})).map(s=>({value:s.id,label:s.available===!1?t("botOnboarding.cliMissingOption",{label:s.label,command:s.command??s.id}):s.label})),S=[{value:"fixed",label:t("botOnboarding.dirModeFixed")},{value:"card",label:t("botOnboarding.dirModeCard")}];return(0,e.jsxs)("form",{id:"onboarding-form",className:"onboarding-form",onSubmit:n.onSubmit,children:[(0,e.jsx)("div",{className:"onboarding-session","aria-live":"polite",children:n.sessionMode==="checking"?(0,e.jsx)("p",{children:t("botOnboarding.sessionChecking")}):n.cliState.webSession.status==="ready"?n.sessionMode==="reuse"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:t("botOnboarding.sessionReady",{user:n.cliState.webSession.identity.userName,tenant:n.cliState.webSession.identity.tenantName})}),n.cliState.webSession.identity.email?(0,e.jsx)("small",{children:n.cliState.webSession.identity.email}):null]}),(0,e.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>n.onSessionModeChange("qr"),children:t("botOnboarding.switchAccount")})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:t("botOnboarding.sessionSwitching")}),(0,e.jsx)("small",{children:t("botOnboarding.sessionSwitchingHint")})]}),(0,e.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>n.onSessionModeChange("reuse"),children:t("botOnboarding.reuseCurrentAccount")})]}):(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:t("botOnboarding.sessionScanRequired")}),(0,e.jsx)("small",{children:t("botOnboarding.sessionScanRequiredHint")})]})}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:t("botOnboarding.appNameLabel")}),(0,e.jsx)("input",{id:"ob-app-name",type:"text",maxLength:64,value:n.form.appName,placeholder:t("botOnboarding.appNamePlaceholder"),autoComplete:"off",spellCheck:!1,onChange:s=>n.onFormChange({...n.form,appName:s.currentTarget.value})}),(0,e.jsx)("small",{className:"onboarding-field-hint",children:t("botOnboarding.appNameHint",{name:n.cliState.suggestedAppName})})]}),(0,e.jsxs)("div",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:t("botOnboarding.cliLabel")}),(0,e.jsx)(T,{id:"ob-cli",className:"onboarding-menu",ariaLabel:t("botOnboarding.cliLabel"),label:z(f,n.form.cliId),value:n.form.cliId,options:f,searchable:!0,searchPlaceholder:t("common.dropdownSearch"),searchEmptyLabel:t("common.dropdownSearchEmpty"),onChange:s=>{n.onFormChange(K(n.form,s,n.cliState))}}),o?.available===!1?(0,e.jsx)("small",{className:"hint-warn",children:t("botOnboarding.cliMissingHint",{command:o.command??n.form.cliId})}):(0,e.jsx)("small",{className:"onboarding-field-hint",children:n.form.cliId})]}),(0,e.jsxs)("div",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:t("botOnboarding.dirModeLabel")}),(0,e.jsx)(T,{id:"ob-dir-mode",className:"onboarding-menu",ariaLabel:t("botOnboarding.dirModeLabel"),label:z(S,n.form.dirMode),value:n.form.dirMode,options:S,onChange:s=>n.onFormChange({...n.form,dirMode:s})})]}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:b}),(0,e.jsx)("input",{id:"ob-dir",type:"text",value:n.form.workingDir,placeholder:c,autoComplete:"off",spellCheck:!1,onChange:s=>n.onFormChange({...n.form,workingDir:s.currentTarget.value})})]}),l?null:(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:t("botOnboarding.modelLabel")}),(0,e.jsx)("input",{id:"ob-model",type:"text",list:a?"ob-model-suggestions":void 0,placeholder:d,autoComplete:"off",spellCheck:!1,value:n.form.model,onChange:s=>n.onFormChange({...n.form,model:s.currentTarget.value})}),a?(0,e.jsx)("datalist",{id:"ob-model-suggestions",children:n.cliState.ttadkModelSuggestions.map(s=>(0,e.jsx)("option",{value:s},s))}):null]}),n.error?(0,e.jsx)("p",{className:"form-error",children:n.error}):null,(0,e.jsxs)("div",{className:"actions onboarding-actions",children:[(0,e.jsx)("button",{type:"button",id:"ob-cancel",disabled:n.submitting,onClick:n.onClose,children:t("botOnboarding.cancel")}),(0,e.jsx)("button",{type:"submit",className:"primary onboarding-submit",disabled:en(n.submitting,n.sessionMode),children:n.submitting?t("botOnboarding.starting"):n.sessionMode==="reuse"?t("botOnboarding.confirmReuse"):t("botOnboarding.startScan")})]})]})}function un(n){let o=(0,r.useRef)(null),a=(0,r.useRef)(null),l=(0,r.useRef)(0),[d,b]=(0,r.useState)(()=>x()),[c,f]=(0,r.useState)(()=>Q()),[S,s]=(0,r.useState)("checking"),[p,w]=(0,r.useState)({kind:"form"}),[P,I]=(0,r.useState)(!1),[A,M]=(0,r.useState)(""),[J,_]=(0,r.useState)(""),g=(0,r.useCallback)(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]),v=(0,r.useCallback)(()=>{g(),n.onClose()},[n,g]),y=(0,r.useCallback)(i=>{w({kind:"job",job:i}),i.status==="needs_owner"&&(M(i.suggestedOwner??""),_("")),X(i)&&g()},[g]),j=(0,r.useCallback)(async i=>{let m=await fetch(`/api/bot-onboarding/${encodeURIComponent(i)}`),u=await m.json();if(!m.ok||!u?.job)throw new Error(u?.error??`http_${m.status}`);y(u.job)},[y]),R=(0,r.useCallback)(i=>{g(),a.current=window.setInterval(()=>{j(i).catch(m=>{g(),w({kind:"job",job:{id:i,status:"failed",message:q(m)}})})},1200)},[j,g]),U=(0,r.useCallback)(()=>{g();let i=l.current+1;l.current=i;let m=x();b(m),f(Q()),s("checking"),w({kind:"form"}),I(!1),M(""),_(""),on().then(u=>{l.current===i&&(b(u),f(k=>an(k,u)),s(u.webSession.status==="ready"?"reuse":"qr"))})},[g]);(0,r.useEffect)(()=>{if(n.open){U();return}g(),l.current+=1},[n.open,U,g]),(0,r.useEffect)(()=>{let i=o.current;if(i)if(n.open&&!i.open)try{i.showModal()}catch{}else!n.open&&i.open&&i.close()},[n.open]),(0,r.useEffect)(()=>()=>g(),[g]);let C=(0,r.useCallback)(async(i,m)=>{g(),I(!0),w({kind:"job",job:{id:"",status:"starting"}});try{let u=m??(S==="reuse"?"reuse":"qr"),k=i==="web"&&u==="reuse"&&d.webSession.status==="ready"?{userId:d.webSession.identity.userId,tenantId:d.webSession.identity.tenantId}:void 0,h=await fetch("/api/bot-onboarding/start",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({appName:i==="web"&&c.appName.trim()||void 0,registrationMode:i,...i==="web"?{sessionMode:u,expectedIdentity:k}:{},cliId:c.cliId,workingDir:c.workingDir.trim(),dirMode:c.dirMode,model:c.model.trim()||void 0})}),O=await h.json();if(h.status===400){w({kind:"form",error:O?.message??O?.error??"invalid_input"});return}if(!h.ok||!O?.job?.id)throw new Error(O?.error??`http_${h.status}`);let F=O.job;y(F),X(F)||R(F.id)}catch(u){w({kind:"job",job:{id:"",status:"failed",message:q(u)}})}finally{I(!1)}},[y,d.webSession,c,S,R,g]),H=(0,r.useCallback)(i=>{i.preventDefault(),C("web")},[C]),$=(0,r.useCallback)(i=>{if(i==="compat"&&!window.confirm(t("botOnboarding.compatibilityConfirm")))return;let m=i==="web"&&p.kind==="job"&&N(p.job.error);m&&s("qr"),C(i,m?"qr":void 0)},[C,p]),V=(0,r.useCallback)(async(i,m,u)=>{let k=[m.trim(),u.trim()].filter(Boolean).join(",");if(!k){w({kind:"job",job:i,ownerError:t("botOnboarding.ownerEmpty")});return}try{let h=await fetch(`/api/bot-onboarding/${encodeURIComponent(i.id)}/owner`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({owner:k})}),O=await h.json();if(!h.ok){w({kind:"job",job:i,ownerError:O?.message??O?.error??t("botOnboarding.ownerInvalid")});return}O?.job&&y(O.job)}catch(h){w({kind:"job",job:i,ownerError:q(h)})}},[y]),Y=(0,r.useMemo)(()=>p.kind==="form"?(0,e.jsx)(dn,{cliState:d,form:c,sessionMode:S,error:p.error,submitting:P,onFormChange:f,onSessionModeChange:s,onSubmit:H,onClose:v}):(0,e.jsx)(ln,{view:p,ownerInput:A,ownerIdInput:J,onOwnerInputChange:M,onOwnerIdInputChange:_,onSubmitOwner:V,onRetry:$,onClose:v}),[d,v,c,J,A,$,S,H,V,P,p]),D=p.kind==="form"||p.kind==="job"&&(p.job.status==="completed"||p.job.status==="failed");return(0,e.jsx)("dialog",{className:"onboarding-dialog",ref:o,onCancel:i=>{D||i.preventDefault()},onClose:()=>{D&&v()},onClick:i=>{D&&i.target===i.currentTarget&&v()},children:(0,e.jsxs)("article",{className:"onboarding-card",children:[(0,e.jsxs)("header",{className:"onboarding-header",children:[(0,e.jsx)("h3",{children:t("botOnboarding.title")}),(0,e.jsx)("p",{children:t("botOnboarding.intro")})]}),Y]})})}export{nn as a,gn as b,un as c};
|