botmux 3.18.6 → 3.18.7
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 +158 -0
- package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
- package/dist/adapters/backend/riff-backend.js +330 -7
- package/dist/adapters/backend/riff-backend.js.map +1 -1
- package/dist/adapters/backend/sandbox.d.ts +42 -0
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +95 -5
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +2 -1
- package/dist/adapters/cli/codex-app.js.map +1 -1
- package/dist/adapters/cli/dsh.d.ts.map +1 -1
- package/dist/adapters/cli/dsh.js +2 -1
- package/dist/adapters/cli/dsh.js.map +1 -1
- package/dist/adapters/cli/mir.d.ts.map +1 -1
- package/dist/adapters/cli/mir.js +2 -1
- package/dist/adapters/cli/mir.js.map +1 -1
- package/dist/adapters/cli/mira.d.ts.map +1 -1
- package/dist/adapters/cli/mira.js +2 -1
- package/dist/adapters/cli/mira.js.map +1 -1
- package/dist/adapters/hook-command.d.ts +3 -5
- package/dist/adapters/hook-command.d.ts.map +1 -1
- package/dist/adapters/hook-command.js +59 -13
- package/dist/adapters/hook-command.js.map +1 -1
- package/dist/autostart.d.ts +76 -0
- package/dist/autostart.d.ts.map +1 -1
- package/dist/autostart.js +105 -28
- package/dist/autostart.js.map +1 -1
- package/dist/bot-registry.d.ts +12 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +43 -3
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/dashboard-command.d.ts +142 -0
- package/dist/cli/dashboard-command.d.ts.map +1 -1
- package/dist/cli/dashboard-command.js +160 -0
- package/dist/cli/dashboard-command.js.map +1 -1
- package/dist/cli/dashboard-endpoint.d.ts +66 -0
- package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
- package/dist/cli/dashboard-endpoint.js +144 -30
- package/dist/cli/dashboard-endpoint.js.map +1 -1
- package/dist/cli/send-dispatch.d.ts +2 -0
- package/dist/cli/send-dispatch.d.ts.map +1 -1
- package/dist/cli/send-dispatch.js +8 -2
- package/dist/cli/send-dispatch.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +270 -38
- package/dist/cli.js.map +1 -1
- package/dist/core/binary-self-update.d.ts +7 -0
- package/dist/core/binary-self-update.d.ts.map +1 -1
- package/dist/core/binary-self-update.js +17 -0
- package/dist/core/binary-self-update.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +52 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts +9 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +5 -0
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/self-spawn.d.ts +46 -1
- package/dist/core/self-spawn.d.ts.map +1 -1
- package/dist/core/self-spawn.js +57 -0
- package/dist/core/self-spawn.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +81 -5
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +93 -0
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/autostart-api.d.ts.map +1 -1
- package/dist/dashboard/autostart-api.js +16 -3
- package/dist/dashboard/autostart-api.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +2 -1
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +22 -6
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +1 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +3 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +28 -0
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/trigger-api.d.ts.map +1 -1
- package/dist/dashboard/trigger-api.js +33 -21
- package/dist/dashboard/trigger-api.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +12 -2
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +2 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts +40 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +52 -2
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +2 -0
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +272 -30
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/{agent-workbench-dock-page-XHJUYFGN.js → agent-workbench-dock-page-6LC422N6.js} +1 -1
- package/dist/dashboard-web/chunks/{agent-workbench-page-FLKTLIRM.js → agent-workbench-page-RSAWY7O2.js} +1 -1
- package/dist/dashboard-web/chunks/{bot-defaults-page-XMGLZZ2E.js → bot-defaults-page-67RAWCSQ.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-TLG45URB.js → chunk-IA5KMD5O.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-BU3Q6XC6.js → chunk-K232GT3M.js} +2 -2
- package/dist/dashboard-web/chunks/chunk-MMLTCXHP.js +10 -0
- package/dist/dashboard-web/chunks/{chunk-ECFC7UG2.js → chunk-R3LJUCEO.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-Z67OSM5P.js → chunk-YJA3KY3J.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-page-WDM4CEAU.js → connectors-page-DJCTHSFB.js} +1 -1
- package/dist/dashboard-web/chunks/{feedback-page-GMJ4FLJ4.js → feedback-page-O7SZRKNM.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-L4ZJNWVR.js → groups-page-7PONUYHE.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-7LUJU2CX.js → insights-page-J6DAAJ6D.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-7LZUJQPF.js → monitor-room-F3QNEW7N.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-AUSXMPYO.js → monitoring-page-JHDD2VS2.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-6ZU6MAZN.js → office-page-MMTN4IKD.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-QBC5CIYH.js → overview-page-IQ2UJAJP.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-QO3YCA7D.js → roles-page-FNI4MGX6.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-YNGSKDQW.js → schedules-page-6PUU63KS.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-BWR4UB6X.js → sessions-page-O4N72EXT.js} +4 -4
- package/dist/dashboard-web/chunks/{settings-page-2IRIS3FP.js → settings-page-G7B3STUF.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-5RZPM6HJ.js → skills-page-CEWKQOIG.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-KERG6LKC.js → team-federation-page-NUP4VK4H.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-766CBD7H.js → v3-page-M4XF6D5Z.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-2M6XZD5C.js → whiteboards-page-L755NZX6.js} +1 -1
- package/dist/dashboard-web/style.css +13 -0
- package/dist/dashboard.js +3 -0
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +3 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +10 -3
- package/dist/global-config.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +19 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +19 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/api-gate.d.ts +53 -0
- package/dist/im/lark/api-gate.d.ts.map +1 -0
- package/dist/im/lark/api-gate.js +322 -0
- package/dist/im/lark/api-gate.js.map +1 -0
- package/dist/im/lark/audio-transcribe.d.ts +23 -0
- package/dist/im/lark/audio-transcribe.d.ts.map +1 -0
- package/dist/im/lark/audio-transcribe.js +126 -0
- package/dist/im/lark/audio-transcribe.js.map +1 -0
- package/dist/im/lark/card-builder.d.ts +6 -0
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +53 -1
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +10 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +68 -1
- 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 +247 -224
- 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 +34 -3
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/message-parser.d.ts +16 -0
- package/dist/im/lark/message-parser.d.ts.map +1 -1
- package/dist/im/lark/message-parser.js +31 -0
- package/dist/im/lark/message-parser.js.map +1 -1
- package/dist/services/budget-tracker.d.ts +61 -0
- package/dist/services/budget-tracker.d.ts.map +1 -0
- package/dist/services/budget-tracker.js +306 -0
- package/dist/services/budget-tracker.js.map +1 -0
- package/dist/services/connector-store.d.ts +16 -0
- package/dist/services/connector-store.d.ts.map +1 -1
- package/dist/services/connector-store.js.map +1 -1
- package/dist/services/failed-turn-retry.d.ts +43 -0
- package/dist/services/failed-turn-retry.d.ts.map +1 -0
- package/dist/services/failed-turn-retry.js +50 -0
- package/dist/services/failed-turn-retry.js.map +1 -0
- package/dist/services/model-pricing.d.ts +80 -0
- package/dist/services/model-pricing.d.ts.map +1 -0
- package/dist/services/model-pricing.js +182 -0
- package/dist/services/model-pricing.js.map +1 -0
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +13 -3
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +10 -0
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/services/usage-ledger.d.ts +10 -0
- package/dist/services/usage-ledger.d.ts.map +1 -1
- package/dist/services/usage-ledger.js +36 -0
- package/dist/services/usage-ledger.js.map +1 -1
- package/dist/services/voice/asr.d.ts +17 -0
- package/dist/services/voice/asr.d.ts.map +1 -0
- package/dist/services/voice/asr.js +64 -0
- package/dist/services/voice/asr.js.map +1 -0
- package/dist/services/voice/index.d.ts +17 -2
- package/dist/services/voice/index.d.ts.map +1 -1
- package/dist/services/voice/index.js +43 -0
- package/dist/services/voice/index.js.map +1 -1
- package/dist/services/voice/types.d.ts +15 -0
- package/dist/services/voice/types.d.ts.map +1 -1
- package/dist/services/webhook-idempotency.d.ts +134 -0
- package/dist/services/webhook-idempotency.d.ts.map +1 -0
- package/dist/services/webhook-idempotency.js +265 -0
- package/dist/services/webhook-idempotency.js.map +1 -0
- package/dist/setup/app-name.d.ts +1 -0
- package/dist/setup/app-name.d.ts.map +1 -1
- package/dist/setup/app-name.js +7 -0
- package/dist/setup/app-name.js.map +1 -1
- package/dist/setup/bot-config-editor.d.ts +28 -0
- package/dist/setup/bot-config-editor.d.ts.map +1 -1
- package/dist/setup/bot-config-editor.js +73 -0
- package/dist/setup/bot-config-editor.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +26 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +90 -1
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/setup/open-platform-outcome.d.ts.map +1 -1
- package/dist/setup/open-platform-outcome.js +8 -2
- package/dist/setup/open-platform-outcome.js.map +1 -1
- package/dist/types.d.ts +20 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/usage-limit-tracker.d.ts +29 -9
- package/dist/utils/usage-limit-tracker.d.ts.map +1 -1
- package/dist/utils/usage-limit-tracker.js +122 -14
- package/dist/utils/usage-limit-tracker.js.map +1 -1
- package/dist/worker.js +27 -6
- package/dist/worker.js.map +1 -1
- package/dist/workflows/definition.d.ts +56 -56
- package/dist/workflows/events/payloads.d.ts +2 -2
- package/dist/workflows/events/schema.d.ts +430 -430
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +2 -2
- package/dist/workflows/v3/run-envelope.d.ts +56 -56
- package/package.json +9 -8
- package/scripts/postinstall-bin.mjs +25 -0
- package/dist/dashboard-web/chunks/chunk-NJCJR3U2.js +0 -10
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{a as Be}from"./chunk-KTQ7B6ZR.js";import{a as Ae}from"./chunk-CEUCNZFJ.js";import{a as oe,b as Ot,c as Ht,g as Ie,h as Oe,j as Pe,k as Me,q as Dt}from"./chunk-NYY66DNC.js";import{d as V}from"./chunk-ECFC7UG2.js";import{a as Ut}from"./chunk-QITAMHW6.js";import{B as jt,C as It,F as we,G as xe,b as Ne,w as Te,x as I}from"./chunk-BU3Q6XC6.js";import{a as Pa,c as Re}from"./chunk-ARROO6TE.js";import{c as vt,d as Ce,e as Gt}from"./chunk-3YZFAHNK.js";var o=vt(Ce(),1),ee=vt(Pa(),1);var et=vt(Ce(),1);var Le=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],Pt={options:Le,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function Wt(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function se(a){let t=null;for(let n of Ut.sessions.values())n.larkAppId!==a||!n.cliId||(!t||Number(n.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=n);return t?.cliId??""}function ie(a,t){let n=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return n||Wt(a,t)||"claude-code"}function re(a,t){return a.find(n=>n.id===t)}function qt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[...a?.modelChoices??[]]}function Jt(a,t){let n=t??a,r=t?a:[],l=new Set,i=[];for(let c of n)typeof c!="string"||l.has(c)||(l.add(c),i.push(c));for(let c of r)typeof c!="string"||l.has(c)||(l.add(c),i.push(c));return i}async function Vt(a){try{let t=await fetch(`/api/cli-options/models?key=${encodeURIComponent(a)}`),n=await t.json().catch(()=>({}));if(!t.ok||!n||!Array.isArray(n.models))return null;let r=n.models.filter(i=>typeof i=="string"),l=n.source==="live"?"live":"static";return{models:r,source:l}}catch{return null}}function $e(){let a=0;return{begin(){let t=++a;return{commit:()=>t===a}}}}async function _e(){try{let a=await fetch("/api/bots"),t=await a.json().catch(()=>({}));if(!a.ok){let n=t?.error?`HTTP ${a.status}: ${t.error}${t.path?` (${t.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:n}}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 Ee(a,t){try{let n=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:t})}),r=await n.json().catch(()=>({}));return n.ok?{ok:!0,resolution:r?.resolution??{}}:{ok:!1,error:r?.error?`HTTP ${n.status}: ${r.error}`:`HTTP ${n.status}`}}catch(n){return{ok:!1,error:n?.message??String(n)}}}async function Fe(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return Pt;let n=t.options.filter(i=>i&&typeof i.id=="string"&&typeof i.label=="string").map(i=>({...i,modelChoices:Array.isArray(i.modelChoices)?i.modelChoices.filter(c=>typeof c=="string"):[]})),r=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():Pt.ttadkModelDefault,l=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(i=>typeof i=="string"):[];return{options:n.length?n:Le,ttadkModelDefault:r,ttadkModelSuggestions:l}}catch{return Pt}}function Ue(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var D=vt(Gt(),1),Ma="botmux:open-bot-onboarding",ue={id:"claude-code",label:"Claude"},Je="glm-5.1";function de(){return{options:[ue],ttadkModelDefault:Je,ttadkModelSuggestions:[],suggestedAppName:"botmux-0",webSession:{status:"checking"}}}function je(){return{appName:"",cliId:ue.id,dirMode:"fixed",workingDir:"~",model:""}}function Aa(a,t){return a||t==="checking"}function le(a){return a instanceof Error?a.message:String(a)}function Ge(a){return a.status==="completed"||a.status==="failed"||a.status==="needs_owner"}function zt(a){return a==="login_failed"||a==="invalid_session"||a==="identity_unavailable"||a==="session_changed"}function Ba(a){return a.status==="waiting_for_scan"?a.registrationMode==="compat"?I("botOnboarding.waitingCompat"):I("botOnboarding.waiting",{name:a.appName??""}):a.status==="verifying"?I("botOnboarding.verifying"):a.status==="configuring_permissions"?a.permissionStatusMsg?`${I("botOnboarding.configuringPermissions")} ${a.permissionStatusMsg}`:I("botOnboarding.configuringPermissions"):a.status==="waiting_for_platform_scan"?I("botOnboarding.platformScanHint"):a.status==="needs_owner"?I("botOnboarding.needsOwnerTitle"):a.status==="completed"?I("botOnboarding.completed",{name:a.appName??I("botOnboarding.botFallback")}):a.status==="failed"?a.appId?I("botOnboarding.partialFailureTitle"):a.error==="qr_expired"?I("botOnboarding.qrExpiredTitle"):zt(a.error)?I("botOnboarding.authIncompleteTitle"):I("botOnboarding.createFailedTitle"):I("botOnboarding.starting")}async function La(){try{let a=await fetch("/api/cli-options"),t=await a.json();if(a.ok&&Array.isArray(t?.options)){let n=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():Je,r=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(s=>typeof s=="string"):[],l=typeof t.suggestedAppName=="string"&&t.suggestedAppName.trim()?t.suggestedAppName.trim():"botmux-0",i=t?.webSession?.identity,c=t?.webSession?.status==="ready"&&typeof i?.userId=="string"&&typeof i?.userName=="string"&&typeof i?.tenantId=="string"&&typeof i?.tenantName=="string"?{status:"ready",source:typeof t.webSession.source=="string"?t.webSession.source:"botmux_cache",identity:{userId:i.userId,userName:i.userName,...typeof i.email=="string"?{email:i.email}:{},tenantId:i.tenantId,tenantName:i.tenantName}}:{status:"scan_required",...typeof t?.webSession?.reason=="string"?{reason:t.webSession.reason}:{}};return{options:t.options.map(s=>({...s,modelChoices:Array.isArray(s?.modelChoices)?s.modelChoices.filter(m=>typeof m=="string"):[]})),ttadkModelDefault:n,ttadkModelSuggestions:r,suggestedAppName:l,webSession:c}}}catch{}return{...de(),webSession:{status:"scan_required"}}}function Ve(a,t,n){let r=n.options.find(s=>s.id===t),l=r?.gateway==="ttadk",i=l&&r?.acceptsModel!==!1,c=a.model;return l&&!i?c="":i&&!c.trim()?c=n.ttadkModelDefault:!i&&c.trim()===n.ttadkModelDefault&&(c=""),{...a,cliId:t,model:c}}function $a(a,t){let n=t.options.some(r=>r.id===a.cliId)?a.cliId:t.options[0]?.id??ue.id;return Ve({...a},n,t)}async function ze(){window.dispatchEvent(new Event(Ma))}function He(a){let{permission:t}=a;return t.redirectConfigured!==!1?null:(0,D.jsx)("p",{className:"hint-warn","data-onboarding-redirect-warn":"",children:t.redirectWarning?I("botOnboarding.permissionRedirectWarn",{reason:t.redirectWarning}):I("botOnboarding.permissionRedirectWarnNoReason")})}function _a(a){let{job:t}=a;if(t.status!=="completed"&&t.status!=="needs_owner"||!t.permission)return null;let n=t.permission;if(n.ok){let l=[I("botOnboarding.permissionOk",{count:n.scopeCount??0})];return n.skippedScopeCount&&n.skippedScopeCount>0&&l.push(I("botOnboarding.permissionSkipped",{count:n.skippedScopeCount})),n.versionId&&l.push(I("botOnboarding.permissionVersion",{version:n.versionId})),(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("p",{className:"hint-ok",children:l.join(" ")}),n.scopeWarning?(0,D.jsx)("p",{className:"hint-warn",children:n.scopeWarning}):null,(0,D.jsx)(He,{permission:n})]})}let r=t.remainingSteps??[];return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)("p",{className:"hint-warn",children:[I("botOnboarding.permissionManual"),n.message?`\uFF08${n.message}\uFF09`:""]}),(0,D.jsx)(He,{permission:n}),r.length?(0,D.jsx)("ol",{className:"onboarding-steps",children:r.map(l=>(0,D.jsx)("li",{children:(0,D.jsx)("a",{href:l.url,target:"_blank",rel:"noopener",children:l.title})},`${l.title}:${l.url}`))}):null]})}function Ea(a){let{job:t}=a;return t.appId?(0,D.jsxs)("p",{className:"onboarding-meta",children:[(0,D.jsx)("b",{children:"App ID:"})," ",(0,D.jsx)("code",{children:t.appId}),t.appName?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("span",{children:" / "}),(0,D.jsxs)("b",{children:[I("botOnboarding.appNameLabel"),":"]})," ",(0,D.jsx)("code",{children:t.appName})]}):null,t.cliId?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("span",{children:" / "}),(0,D.jsx)("b",{children:"CLI:"})," ",(0,D.jsx)("code",{children:t.cliId})]}):null,t.workingDir?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("span",{children:" / "}),(0,D.jsxs)("b",{children:[I("botOnboarding.metaDir"),":"]})," ",(0,D.jsx)("code",{children:t.workingDir})]}):null]}):null}function We(a){return(0,D.jsxs)("div",{className:"qr-card",children:[(0,D.jsx)("img",{className:"qr-image",src:a.dataUrl,alt:a.alt}),a.link?(0,D.jsx)("a",{className:"onboarding-link",href:a.link,target:"_blank",rel:"noopener",children:I("botOnboarding.openLink")}):null]})}function qe(a,t){return a.find(n=>n.value===t)?.label??t}function Fa(a){let{job:t,ownerError:n}=a.view;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("p",{className:`onboarding-status status-${t.status}`,children:Ba(t)}),t.status==="waiting_for_scan"&&t.qrDataUrl?(0,D.jsx)(We,{dataUrl:t.qrDataUrl,alt:I("botOnboarding.qrAlt"),link:t.qrUrl}):null,t.status==="waiting_for_platform_scan"&&t.platformQrDataUrl?(0,D.jsx)(We,{dataUrl:t.platformQrDataUrl,alt:I("botOnboarding.platformQrAlt")}):null,(0,D.jsx)(Ea,{job:t}),(0,D.jsx)(_a,{job:t}),t.status==="needs_owner"?(0,D.jsxs)("form",{className:"onboarding-form",id:"ob-owner-form",onSubmit:r=>{r.preventDefault(),a.onSubmitOwner(t,a.ownerInput,a.ownerIdInput)},children:[(0,D.jsxs)("label",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:I("botOnboarding.ownerLabel")}),(0,D.jsx)("input",{id:"ob-owner",type:"text",inputMode:"email",placeholder:I("botOnboarding.ownerPlaceholder"),autoComplete:"off",spellCheck:!1,value:a.ownerInput,onChange:r=>a.onOwnerInputChange(r.currentTarget.value)})]}),(0,D.jsx)("p",{className:"hint-warn",children:I("botOnboarding.needsOwnerDescription")}),(0,D.jsxs)("details",{className:"onboarding-technical",children:[(0,D.jsx)("summary",{children:I("botOnboarding.ownerUseId")}),(0,D.jsxs)("label",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:I("botOnboarding.ownerIdLabel")}),(0,D.jsx)("input",{id:"ob-owner-id",type:"text",placeholder:I("botOnboarding.ownerIdPlaceholder"),autoComplete:"off",spellCheck:!1,value:a.ownerIdInput,onChange:r=>a.onOwnerIdInputChange(r.currentTarget.value)})]})]}),n?(0,D.jsx)("p",{className:"form-error",children:n}):null,(0,D.jsx)("div",{className:"actions onboarding-actions",children:(0,D.jsx)("button",{type:"submit",className:"primary onboarding-submit",children:I("botOnboarding.ownerSubmit")})})]}):null,t.status==="completed"?(0,D.jsx)("p",{className:"hint-ok",children:t.liveStarted?I("botOnboarding.liveOk"):I("botOnboarding.restartHint")}):null,t.status==="failed"?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("p",{className:"hint-warn",children:t.appId?I("botOnboarding.partialFailureDescription"):t.error==="qr_expired"?I("botOnboarding.qrExpiredDescription"):zt(t.error)?I("botOnboarding.authIncompleteDescription"):I("botOnboarding.createFailedDescription")}),(0,D.jsxs)("details",{className:"onboarding-technical",children:[(0,D.jsx)("summary",{children:I("botOnboarding.technicalDetails")}),(0,D.jsx)("code",{children:t.message??t.error??"unknown"})]}),(0,D.jsxs)("div",{className:"actions onboarding-actions",children:[(0,D.jsx)("button",{type:"button",onClick:a.onClose,children:I("botOnboarding.close")}),t.appId?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("button",{type:"button",onClick:()=>a.onRetry("compat"),children:I("botOnboarding.compatibilityMode")}),(0,D.jsx)("button",{type:"button",className:"primary onboarding-submit",onClick:()=>a.onRetry("web"),children:t.error==="qr_expired"?I("botOnboarding.generateQr"):zt(t.error)?I("botOnboarding.scanAgain"):I("botOnboarding.retry")})]})]})]}):null,t.status==="completed"?(0,D.jsx)("div",{className:"actions onboarding-actions",children:(0,D.jsx)("button",{type:"button",onClick:a.onClose,children:I("botOnboarding.close")})}):null]})}function Ua(a){let t=a.cliState.options.find(u=>u.id===a.form.cliId),n=t?.gateway==="ttadk"&&t.acceptsModel===!1,[r,l]=(0,et.useState)(null),i=a.form.cliId;(0,et.useEffect)(()=>{if(t?.gateway==="ttadk"){l(null);return}let u=!1;return Vt(i).then(h=>{u||l(h)}),()=>{u=!0}},[i]);let c=Jt(qt(t,a.cliState),r?.models??null),s=r?.source==="live"?r.models.length:0,m=a.form.dirMode==="card"?I("botOnboarding.dirLabelCard"):I("botOnboarding.dirLabelFixed"),d=a.form.dirMode==="card"?I("botOnboarding.dirPlaceholderCard"):I("botOnboarding.dirPlaceholderFixed"),f=[...a.cliState.options].sort((u,h)=>u.label.localeCompare(h.label,"en",{sensitivity:"base"})).map(u=>({value:u.id,label:u.available===!1?I("botOnboarding.cliMissingOption",{label:u.label,command:u.command??u.id}):u.label})),p=[{value:"fixed",label:I("botOnboarding.dirModeFixed")},{value:"card",label:I("botOnboarding.dirModeCard")}];return(0,D.jsxs)("form",{id:"onboarding-form",className:"onboarding-form",onSubmit:a.onSubmit,children:[(0,D.jsx)("div",{className:"onboarding-session","aria-live":"polite",children:a.sessionMode==="checking"?(0,D.jsx)("p",{children:I("botOnboarding.sessionChecking")}):a.cliState.webSession.status==="ready"?a.sessionMode==="reuse"?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)("div",{children:[(0,D.jsx)("strong",{children:I("botOnboarding.sessionReady",{user:a.cliState.webSession.identity.userName,tenant:a.cliState.webSession.identity.tenantName})}),a.cliState.webSession.identity.email?(0,D.jsx)("small",{children:a.cliState.webSession.identity.email}):null]}),(0,D.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>a.onSessionModeChange("qr"),children:I("botOnboarding.switchAccount")})]}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)("div",{children:[(0,D.jsx)("strong",{children:I("botOnboarding.sessionSwitching")}),(0,D.jsx)("small",{children:I("botOnboarding.sessionSwitchingHint")})]}),(0,D.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>a.onSessionModeChange("reuse"),children:I("botOnboarding.reuseCurrentAccount")})]}):(0,D.jsxs)("div",{children:[(0,D.jsx)("strong",{children:I("botOnboarding.sessionScanRequired")}),(0,D.jsx)("small",{children:I("botOnboarding.sessionScanRequiredHint")})]})}),(0,D.jsxs)("label",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:I("botOnboarding.appNameLabel")}),(0,D.jsx)("input",{id:"ob-app-name",type:"text",maxLength:64,value:a.form.appName,placeholder:I("botOnboarding.appNamePlaceholder"),autoComplete:"off",spellCheck:!1,onChange:u=>a.onFormChange({...a.form,appName:u.currentTarget.value})}),(0,D.jsx)("small",{className:"onboarding-field-hint",children:I("botOnboarding.appNameHint",{name:a.cliState.suggestedAppName})})]}),(0,D.jsxs)("div",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:I("botOnboarding.cliLabel")}),(0,D.jsx)(Dt,{id:"ob-cli",className:"onboarding-menu",ariaLabel:I("botOnboarding.cliLabel"),label:qe(f,a.form.cliId),value:a.form.cliId,options:f,searchable:!0,searchPlaceholder:I("common.dropdownSearch"),searchEmptyLabel:I("common.dropdownSearchEmpty"),onChange:u=>{a.onFormChange(Ve(a.form,u,a.cliState))}}),t?.available===!1?(0,D.jsx)("small",{className:"hint-warn",children:I("botOnboarding.cliMissingHint",{command:t.command??a.form.cliId})}):(0,D.jsx)("small",{className:"onboarding-field-hint",children:a.form.cliId})]}),(0,D.jsxs)("div",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:I("botOnboarding.dirModeLabel")}),(0,D.jsx)(Dt,{id:"ob-dir-mode",className:"onboarding-menu",ariaLabel:I("botOnboarding.dirModeLabel"),label:qe(p,a.form.dirMode),value:a.form.dirMode,options:p,onChange:u=>a.onFormChange({...a.form,dirMode:u})})]}),(0,D.jsxs)("label",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:m}),(0,D.jsx)("input",{id:"ob-dir",type:"text",value:a.form.workingDir,placeholder:d,autoComplete:"off",spellCheck:!1,onChange:u=>a.onFormChange({...a.form,workingDir:u.currentTarget.value})})]}),n?null:(0,D.jsxs)("div",{className:"onboarding-field",children:[(0,D.jsx)("span",{children:I("botOnboarding.modelLabel")}),(0,D.jsx)(ce,{value:a.form.model,onChange:u=>a.onFormChange({...a.form,model:u}),options:c,dataInput:"ob-model",ariaLabel:I("botOnboarding.modelLabel"),defaultLabel:I("botDefaults.modelPickerDefault"),customLabel:I("botDefaults.modelPickerCustom"),menuClassName:"onboarding-menu",detectedCount:s||void 0,detectedLabel:s>0?I("botDefaults.modelPickerDetected",{count:s}):void 0},a.form.cliId)]}),a.error?(0,D.jsx)("p",{className:"form-error",children:a.error}):null,(0,D.jsxs)("div",{className:"actions onboarding-actions",children:[(0,D.jsx)("button",{type:"button",id:"ob-cancel",disabled:a.submitting,onClick:a.onClose,children:I("botOnboarding.cancel")}),(0,D.jsx)("button",{type:"submit",className:"primary onboarding-submit",disabled:Aa(a.submitting,a.sessionMode),children:a.submitting?I("botOnboarding.starting"):a.sessionMode==="reuse"?I("botOnboarding.confirmReuse"):I("botOnboarding.startScan")})]})]})}function bo(a){let t=(0,et.useRef)(null),n=(0,et.useRef)(null),r=(0,et.useRef)(0),[l,i]=(0,et.useState)(()=>de()),[c,s]=(0,et.useState)(()=>je()),[m,d]=(0,et.useState)("checking"),[f,p]=(0,et.useState)({kind:"form"}),[u,h]=(0,et.useState)(!1),[w,R]=(0,et.useState)(""),[T,v]=(0,et.useState)(""),k=(0,et.useCallback)(()=>{n.current!==null&&(window.clearInterval(n.current),n.current=null)},[]),y=(0,et.useCallback)(()=>{k(),a.onClose()},[a,k]),x=(0,et.useCallback)(g=>{p({kind:"job",job:g}),g.status==="needs_owner"&&(R(g.suggestedOwner??""),v("")),Ge(g)&&k()},[k]),N=(0,et.useCallback)(async g=>{let E=await fetch(`/api/bot-onboarding/${encodeURIComponent(g)}`),C=await E.json();if(!E.ok||!C?.job)throw new Error(C?.error??`http_${E.status}`);x(C.job)},[x]),b=(0,et.useCallback)(g=>{k(),n.current=window.setInterval(()=>{N(g).catch(E=>{k(),p({kind:"job",job:{id:g,status:"failed",message:le(E)}})})},1200)},[N,k]),P=(0,et.useCallback)(()=>{k();let g=r.current+1;r.current=g;let E=de();i(E),s(je()),d("checking"),p({kind:"form"}),h(!1),R(""),v(""),La().then(C=>{r.current===g&&(i(C),s($=>$a($,C)),d(C.webSession.status==="ready"?"reuse":"qr"))})},[k]);(0,et.useEffect)(()=>{if(a.open){P();return}k(),r.current+=1},[a.open,P,k]),(0,et.useEffect)(()=>{let g=t.current;if(g)if(a.open&&!g.open)try{g.showModal()}catch{}else!a.open&&g.open&&g.close()},[a.open]),(0,et.useEffect)(()=>()=>k(),[k]);let B=(0,et.useCallback)(async(g,E)=>{k(),h(!0),p({kind:"job",job:{id:"",status:"starting"}});try{let C=E??(m==="reuse"?"reuse":"qr"),$=g==="web"&&C==="reuse"&&l.webSession.status==="ready"?{userId:l.webSession.identity.userId,tenantId:l.webSession.identity.tenantId}:void 0,_=await fetch("/api/bot-onboarding/start",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({appName:g==="web"&&c.appName.trim()||void 0,registrationMode:g,...g==="web"?{sessionMode:C,expectedIdentity:$}:{},cliId:c.cliId,workingDir:c.workingDir.trim(),dirMode:c.dirMode,model:c.model.trim()||void 0})}),S=await _.json();if(_.status===400){p({kind:"form",error:S?.message??S?.error??"invalid_input"});return}if(!_.ok||!S?.job?.id)throw new Error(S?.error??`http_${_.status}`);let L=S.job;x(L),Ge(L)||b(L.id)}catch(C){p({kind:"job",job:{id:"",status:"failed",message:le(C)}})}finally{h(!1)}},[x,l.webSession,c,m,b,k]),O=(0,et.useCallback)(g=>{g.preventDefault(),B("web")},[B]),M=(0,et.useCallback)(async g=>{if(g==="compat"&&!await Ae({title:"\u517C\u5BB9\u6027\u786E\u8BA4",message:I("botOnboarding.compatibilityConfirm"),danger:!1}))return;let E=g==="web"&&f.kind==="job"&&zt(f.job.error);E&&d("qr"),B(g,E?"qr":void 0)},[B,f]),z=(0,et.useCallback)(async(g,E,C)=>{let $=[E.trim(),C.trim()].filter(Boolean).join(",");if(!$){p({kind:"job",job:g,ownerError:I("botOnboarding.ownerEmpty")});return}try{let _=await fetch(`/api/bot-onboarding/${encodeURIComponent(g.id)}/owner`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({owner:$})}),S=await _.json();if(!_.ok){p({kind:"job",job:g,ownerError:S?.message??S?.error??I("botOnboarding.ownerInvalid")});return}S?.job&&x(S.job)}catch(_){p({kind:"job",job:g,ownerError:le(_)})}},[x]),X=(0,et.useMemo)(()=>f.kind==="form"?(0,D.jsx)(Ua,{cliState:l,form:c,sessionMode:m,error:f.error,submitting:u,onFormChange:s,onSessionModeChange:d,onSubmit:O,onClose:y}):(0,D.jsx)(Fa,{view:f,ownerInput:w,ownerIdInput:T,onOwnerInputChange:R,onOwnerIdInputChange:v,onSubmitOwner:z,onRetry:M,onClose:y}),[l,y,c,T,w,M,m,O,z,u,f]),tt=f.kind==="form"||f.kind==="job"&&(f.job.status==="completed"||f.job.status==="failed");return(0,D.jsx)("dialog",{className:"onboarding-dialog",ref:t,onCancel:g=>{tt||g.preventDefault()},onClose:()=>{tt&&y()},onClick:g=>{tt&&g.target===g.currentTarget&&y()},children:(0,D.jsxs)("article",{className:"onboarding-card",children:[(0,D.jsxs)("header",{className:"onboarding-header",children:[(0,D.jsx)("h3",{children:I("botOnboarding.title")}),(0,D.jsx)("p",{children:I("botOnboarding.intro")})]}),X]})})}var ja=/^[a-z]{2}_[a-z]{2}$/;function Ke(a){if(!a||typeof a!="object"||Array.isArray(a))return{ok:!1,reason:"invalid_descriptions"};let t=Object.getPrototypeOf(a);if(t!==Object.prototype&&t!==null)return{ok:!1,reason:"invalid_descriptions"};let n=Object.entries(a);if(n.length===0||n.length>20)return{ok:!1,reason:"invalid_descriptions"};let r={};for(let[l,i]of n){if(!ja.test(l)||typeof i!="string")return{ok:!1,reason:"invalid_descriptions",lang:l};let c=i.trim();if(!c)return{ok:!1,reason:"description_required",lang:l};if(Array.from(c).length>120)return{ok:!1,reason:"description_too_long",lang:l};r[l]=c}return{ok:!0,descriptions:r}}var Ga={zh_cn:"\u7B80\u4F53\u4E2D\u6587",zh_tw:"\u7E41\u9AD4\u4E2D\u6587\uFF08\u53F0\u7063\uFF09",zh_hk:"\u7E41\u9AD4\u4E2D\u6587\uFF08\u9999\u6E2F\uFF09",en_us:"English",ja_jp:"\u65E5\u672C\u8A9E",ko_kr:"\uD55C\uAD6D\uC5B4",fr_fr:"Fran\xE7ais",de_de:"Deutsch",es_es:"Espa\xF1ol",pt_br:"Portugu\xEAs",ru_ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",th_th:"\u0E44\u0E17\u0E22",vi_vn:"Ti\u1EBFng Vi\u1EC7t",id_id:"Bahasa Indonesia",it_it:"Italiano",hi_in:"\u0939\u093F\u0928\u094D\u0926\u0940"};function Qe(a){return Ga[a]??a}function Xe(a){return[...a.languages].sort((t,n)=>+(n.lang===a.primaryLang)-+(t.lang===a.primaryLang)||t.lang.localeCompare(n.lang))}function Qt(a){return Object.fromEntries(a.languages.map(t=>[t.lang,t.description]))}function Ye(a){return a?.languages.find(t=>t.lang===a.primaryLang)?.description??""}function Ze(a){return Array.from(a).slice(0,120).join("")}function ta(a,t){let n=Qt(a),r=Object.keys(n).sort(),l=Object.keys(t).sort();return JSON.stringify(r)!==JSON.stringify(l)?{ok:!1,reason:"languages_changed",descriptions:n}:{ok:!0,descriptions:{...t}}}var ea=[3600*1e3,480*60*1e3,1440*60*1e3,10080*60*1e3];var St=["low","medium","high","xhigh","max","ultra"],ht=St.slice(0,4),aa=St.slice(0,4),Ha=aa.slice(0,3),kt=St.slice(0,3),Wa=new Set(["gpt-5.6-sol","gpt-5.6-terra"]),qa=new Set(["gpt-5.6-luna"]),Ja=new Set(["grok-4.6"]),Va=new Map([["seed-evolving",[]],["seed-2.1-pro",[]],["seed-2.1-turbo",[]],["openrouter-3o",St.slice(0,5)],["openrouter-2o",St.slice(0,5)],["gpt-5.6-sol",["low","medium","high","xhigh","ultra"]],["gpt-5.6-terra",ht],["gpt-5.6-luna",ht],["gpt-5.5",ht],["gpt-5.4",ht],["gpt-5.4-mini",ht],["gpt-5.3-codex",ht],["gpt-5.2",ht],["codex-auto-review",ht],["deepseek-v4-pro",kt],["deepseek-v4-flash",kt],["seed-dogfooding-2.0",kt],["seed-code",[]],["openrouter-1o",["low","medium","high","max"]],["openrouter-1",["low","medium","high","max"]],["gemini-3.1-pro-preview",kt],["gemini-3-flash-preview",kt]]);function za(a){return a==="codex"||a==="codex-app"}function Ka(a){let t=a?.trim().toLowerCase()??"";return Wa.has(t)?St:qa.has(t)?St.slice(0,5):ht}function Qa(a){let t=a?.trim().toLowerCase()??"";return Ja.has(t)?aa:Ha}function Xa(a){let t=a?.trim().toLowerCase()??"";return t?Va.get(t)??kt:kt}function na(a,t){return a==="grok"?Qa(t):a==="traex"?Xa(t):za(a)?Ka(t):[]}var e=vt(Gt(),1),Ya=60;function be(a){let t=a.cliRuntime;if(!t||typeof t!="object"){let l=typeof a.cliPathOverride=="string"?a.cliPathOverride.trim():"";return{mode:l?"legacy":"official",id:"",displayName:"",executable:l,legacyPath:l,updateProvider:"auto",packageName:""}}let n=t.update?.provider,r=n==="self"||n==="npm"||n==="none"?n:"auto";return{mode:"custom",id:typeof t.id=="string"?t.id:"",displayName:typeof t.displayName=="string"?t.displayName:"",executable:typeof t.executable=="string"?t.executable:"",legacyPath:"",updateProvider:r,packageName:t.update?.provider==="npm"&&typeof t.update.packageName=="string"?t.update.packageName:""}}var At=["common","sessions","security","cards","advanced"];function Za(a){let t=V(),n=(0,o.useRef)([]),r={common:t("botDefaults.tabCommon"),sessions:t("botDefaults.tabSessions"),security:t("botDefaults.tabSecurity"),cards:t("botDefaults.tabCards"),advanced:t("botDefaults.tabAdvanced")};function l(i){let c=(i+At.length)%At.length,s=At[c];a.onChange(s),n.current[c]?.focus()}return(0,e.jsxs)("nav",{className:"bd-tab-bar","aria-label":t("botDefaults.tabNavigation"),children:[(0,e.jsx)("div",{className:"bd-tabs",role:"tablist",children:At.map((i,c)=>(0,e.jsx)("button",{ref:s=>{n.current[c]=s},id:`bd-tab-${i}`,type:"button",role:"tab",className:`bd-tab${a.active===i?" active":""}`,"aria-selected":a.active===i,"aria-controls":`bd-panel-${i}`,tabIndex:a.active===i?0:-1,"data-bd-tab":i,onClick:()=>a.onChange(i),onKeyDown:s=>{s.key==="ArrowRight"?(s.preventDefault(),l(c+1)):s.key==="ArrowLeft"?(s.preventDefault(),l(c-1)):s.key==="Home"?(s.preventDefault(),l(0)):s.key==="End"&&(s.preventDefault(),l(At.length-1))},children:r[i]},i))}),(0,e.jsx)("small",{className:"bd-tab-hint",children:t("botDefaults.tabHint")})]})}var tn=1,oa=14;function Bt(a){let t=(0,o.useRef)(null);return(0,o.useEffect)(()=>{let n=t.current;if(!n||typeof window>"u")return;let r=s=>{for(let m of s)m.style.gridColumn="",m.style.gridRowStart="",m.style.gridRowEnd=""},l=()=>{let s=Array.from(n.children).filter(w=>w instanceof HTMLElement);if(!s.length)return;let m=n.clientWidth;if(m<=0)return;let p=(n.closest(".bd-detail")?.clientWidth??m)>=1024?2:1;if(p<2){r(s);return}let u=tn+oa,h=new Array(p).fill(0);for(let w of s){let R=Math.max(1,Math.ceil((w.getBoundingClientRect().height+oa)/u));if(w.classList.contains("bd-tile-wide")){let k=Math.max(...h);w.style.gridColumn="1 / -1",w.style.gridRowStart=String(k+1),w.style.gridRowEnd=String(k+1+R),h.fill(k+R);continue}let T=0;for(let k=1;k<p;k++)h[k]<h[T]&&(T=k);let v=h[T];w.style.gridColumn=String(T+1),w.style.gridRowStart=String(v+1),w.style.gridRowEnd=String(v+1+R),h[T]=v+R}},i=window.requestAnimationFrame(l),c=typeof ResizeObserver<"u"?new ResizeObserver(()=>l()):null;if(c){c.observe(n);for(let s of Array.from(n.children))c.observe(s)}return window.addEventListener("resize",l),()=>{window.cancelAnimationFrame(i),c?.disconnect(),window.removeEventListener("resize",l)}}),(0,e.jsx)("div",{ref:t,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function sa(a){if(!a||typeof a!="object")return!1;let t=a;return"closedMismatchedSessions"in t||"closedMismatchedFailed"in t||"closedMismatchedResidual"in t||"closedMismatchedResidualTaskIds"in t}function fe(a){let t=a&&typeof a=="object"?a:{},n=f=>typeof f=="number"&&Number.isInteger(f)&&f>0?f:0,r=n(t.closedMismatchedSessions),l=n(t.closedMismatchedFailed),i=n(t.closedMismatchedResidual),c=t.closedMismatchedResidualTaskIds,s=Array.isArray(c)?c.map(f=>typeof f=="string"&&f.trim()?f:"unknown"):[],m=i>0||s.length>0,d=m&&s.length===0?["unknown"]:s;return{closed:r,failed:l,residual:Math.max(i,d.length),residualIds:d,hasResidual:m}}function Xt(a,t){return a.residualIds.length===0?"":t("botDefaults.agentResidualIds",{ids:a.residualIds.join(", ")})}function $t(a,t=""){let n=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${n}`}function Z(a){return(0,e.jsx)("span",{role:"status","aria-live":"polite",className:$t(a.status),...a.attr??{},children:a.status?.text??""},a.status?.text??"")}function en(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(Pe,{className:"bd-info-tip",label:t,children:a.children})}function j(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)(en,{children:a.help}):null]})}function ct(a){let t=V();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Dt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:oe(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})]})}var ia="__custom__";function ce(a){let t=V(),[n,r]=(0,o.useState)(!1),l=(0,o.useId)(),i=a.value,c=(0,o.useMemo)(()=>{let s=[];i&&!a.options.includes(i)&&s.push({value:i,label:i});for(let m of a.options)s.push({value:m,label:m});return s.push({value:ia,label:a.customLabel}),s},[i,a.options,a.customLabel]);return(0,e.jsxs)("span",{className:"bd-model-picker",children:[n?(0,e.jsxs)("span",{className:"bd-model-custom",children:[(0,e.jsx)("input",{type:"text","data-input":a.dataInput,list:l,value:i,placeholder:a.defaultLabel,disabled:a.disabled,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,onChange:s=>a.onChange(s.currentTarget.value)}),(0,e.jsx)("button",{type:"button",className:"bd-model-back",disabled:a.disabled,onClick:()=>r(!1),children:t("botDefaults.modelPickerBack")}),(0,e.jsx)("datalist",{id:l,children:a.options.map(s=>(0,e.jsx)("option",{value:s},s))})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Dt,{id:`bd-menu-${a.dataInput}`,className:["bd-model-menu",a.menuClassName].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:i||a.defaultLabel,value:i,options:c,searchable:!0,searchPlaceholder:t("common.dropdownSearch"),searchEmptyLabel:t("common.dropdownSearchEmpty"),onChange:s=>{if(s===ia){r(!0);return}a.onChange(s)}}),(0,e.jsx)("input",{type:"hidden","data-input":a.dataInput,value:i,onChange:s=>a.onChange(s.currentTarget.value)})]}),a.busy?(0,e.jsx)("small",{className:"bd-model-busy",children:(0,e.jsx)("span",{className:"bd-model-spinner","aria-hidden":"true"})}):null,typeof a.detectedCount=="number"&&a.detectedCount>0&&a.detectedLabel?(0,e.jsx)("small",{className:"bd-model-detected",children:a.detectedLabel}):null]})}function dt(a){return(0,e.jsxs)("label",{className:a.className?`toggle-row ${a.className}`:"toggle-row",children:[(0,e.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:t=>a.onChange(t.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"toggle-tx",children:[(0,e.jsx)("strong",{children:(0,e.jsx)(j,{help:a.help,children:a.title})}),a.description?(0,e.jsx)("small",{children:a.description}):null]})]})}async function Q(a,t,n){let r=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:n===void 0?void 0:JSON.stringify(n)}),l=await r.json().catch(()=>({}));return{ok:r.ok&&l?.ok!==!1,status:r.status,body:l}}function J(a){let t=typeof a.body?.reason=="string"?a.body.reason:"",n=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return t&&n?`${t}\uFF08${n}\uFF09`:String(t||a.body?.error||a.status)}function H(a){return a?.message??String(a)}function ha(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function ra(a,t){let n=a.trim();return n===""?t:/^(0|[1-9]\d*)$/.test(n)?Number(n):null}var ye=["email","openId","userId","unionId"];function la(a){let t=a.split(/[\r\n,,;;]+/).map(n=>n.trim()).filter(Boolean);return[...new Set(t)]}function Tt(a){return(a??[]).join(`
|
|
2
|
-
`)}function an(a){return ye.find(t=>a?.[t]?.trim())??"email"}function nn(a){let t=a.idValue.trim();if(!t)return null;let n={...a.persisted};if(a.persisted[a.idField]!==t||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let i of ye)delete n[i];n[a.idField]=t;let l=a.name.trim();return l?n.name=l:delete n.name,n}function on(a,t){return a==null?t("botDefaults.brandStateDefault"):a.trim()===""?t("botDefaults.brandStateOff"):t("botDefaults.brandStateCustom")}var sn=ea;function rn(a,t){return a==null?t("botDefaults.maxLiveWorkersStateDefault"):t("botDefaults.maxLiveWorkersStateOn",{count:a})}function ln(a,t){return{...a,usageDisplay:t.usageDisplay,disableStreamingCard:t.disableStreamingCard,silentTurnReactions:t.silentTurnReactions,codexAppCleanInput:t.codexAppCleanInput,writableTerminalLinkInCard:t.writableTerminalLinkInCard,privateCard:t.privateCard,thinkingCard:t.thinkingCard,senderTag:t.senderTag,summaryMemory:t.summaryMemory,summaryMemoryPath:t.summaryMemoryPath,botToBotSameDir:t.botToBotSameDir,autoStartOnGroupJoin:t.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:t.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:t.autoStartOnNewTopic,regularGroupReplyMode:t.regularGroupReplyMode,regularGroupMentionMode:t.regularGroupMentionMode,docSubscribeDefaultMode:t.docSubscribeDefaultMode}}function dn(){let a=V(),t=(0,o.useRef)(!0),n=(0,o.useRef)($e()),[r,l]=(0,o.useState)([]),[i,c]=(0,o.useState)(Pt),[s,m]=(0,o.useState)(null),[d,f]=(0,o.useState)(!0),[p,u]=(0,o.useState)(!1),[h,w]=(0,o.useState)(""),[R,T]=(0,o.useState)(null),[v,k]=(0,o.useState)(0),[,y]=(0,o.useState)(0),[x,N]=(0,o.useState)(!1),[b,P]=(0,o.useState)("common"),B=(0,o.useCallback)(async(g=!1)=>{g&&k(C=>C+1);let E=n.current.begin();f(!0);try{let[C,$]=await Promise.all([_e(),Fe()]);if(!t.current||!E.commit())return;l(C.bots),m(C.error),c($)}finally{t.current&&E.commit()&&f(!1)}},[]);(0,o.useEffect)(()=>{t.current=!0,B(),xe().then(()=>{t.current&&y(E=>E+1)});let g=Ut.onBotsChanged(()=>{t.current&&B()});return()=>{t.current=!1,g()}},[B]);let O=(0,o.useMemo)(()=>{let g=h.trim().toLowerCase();return r.filter(E=>!g||(E.botName??"").toLowerCase().includes(g)||(E.larkAppId??"").toLowerCase().includes(g))},[r,h]);(0,o.useEffect)(()=>{if(!(s||d)){if(O.length===0){R!==null&&T(null);return}(!R||!O.some(g=>g.larkAppId===R))&&T(O[0].larkAppId)}},[O,s,d,R]);let M=R?O.find(g=>g.larkAppId===R)??null:null,z=(0,o.useCallback)((g,E)=>{l(C=>C.map($=>$.larkAppId!==g?$:typeof E=="function"?E($):{...$,...E}))},[]),X=async()=>{u(!0);try{await B(!0)}finally{t.current&&u(!1)}},tt;return d?tt=(0,e.jsx)(Ht,{label:a("common.loading")}):s?tt=(0,e.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",s,(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"]}):O.length===0?tt=(0,e.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):M?tt=(0,e.jsx)(cn,{bot:M,cliState:i,patchBot:z,activeTab:b,onTabChange:P},`${M.larkAppId}:${v}`):tt=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)(Oe,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:p,disabled:p,onClick:()=>{X()}}),Te.authed?(0,e.jsx)(Ie,{className:"page-primary-action add-bot-btn",disabled:x,onClick:()=>{N(!0),ze().finally(()=>N(!1))},children:a("botOnboarding.add")}):null]})]}),(0,e.jsxs)("div",{className:"bd-layout",children:[(0,e.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,e.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:g=>g.preventDefault(),children:(0,e.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:h,onChange:g=>w(g.currentTarget.value)})}),(0,e.jsxs)("div",{className:"bd-roster-meta",children:[(0,e.jsx)("span",{children:a("botDefaults.rosterCount",{count:O.length})}),h.trim()&&O.length!==r.length?(0,e.jsx)("span",{children:a("botDefaults.rosterFiltered",{total:r.length})}):null]}),(0,e.jsx)("div",{className:"bd-roster-list",children:!s&&O.map(g=>(0,e.jsx)(un,{bot:g,selected:g.larkAppId===R,onSelect:()=>T(g.larkAppId)},g.larkAppId))})]}),(0,e.jsx)("div",{id:"bd-list",className:"bd-detail",children:tt})]})]})}function un(a){let{bot:t}=a,n=t.botName??t.larkAppId,r=Wt(t,se(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:l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),a.onSelect())},children:[(0,e.jsx)(Ot,{html:It({name:n,larkAppId:t.larkAppId,size:"sm"})}),(0,e.jsxs)("div",{className:"bd-roster-tx",children:[(0,e.jsx)("b",{children:(0,e.jsx)(Me,{text:n,showPopover:!1,textClassName:"bd-roster-name"})}),(0,e.jsx)("span",{children:r||t.larkAppId.slice(0,14)})]}),t.defaultOncall?.enabled?(0,e.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function cn(a){let t=V(),{bot:n,cliState:r,patchBot:l}=a,i=n.botName??n.larkAppId,c=Wt(n,se(n.larkAppId)),s=(0,o.useCallback)(async d=>{let f=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/card-prefs`,d);return f.ok&&l(n.larkAppId,p=>ln(p,f.body)),f},[n.larkAppId,l]);if(n.error)return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":n.larkAppId,children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(Ot,{html:It({name:i,larkAppId:n.larkAppId})}),(0,e.jsxs)("div",{className:"bd-profile-id",children:[(0,e.jsx)("strong",{children:i}),(0,e.jsx)("code",{children:n.larkAppId})]})]}),(0,e.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",n.error]})]});let m=n.defaultOncall??{enabled:!1,workingDir:"",since:0};return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":n.larkAppId,children:[(0,e.jsxs)("div",{className:"bd-profile-chrome",children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(gn,{bot:n,name:i,patchBot:l}),(0,e.jsxs)("div",{className:"bd-profile-main",children:[(0,e.jsx)(hn,{bot:n,cli:c,patchBot:l,meta:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",t("botDefaults.metaOnline")]}),(m.since??0)>0?(0,e.jsxs)("small",{"data-oncall-since":!0,children:[t("botDefaults.lastEnabled"),": ",Ue(m.since??0)]}):null,(n.autoboundChatCount??0)>0?(0,e.jsx)("small",{children:t("botDefaults.autobound",{count:n.autoboundChatCount??0})}):null]})}),(0,e.jsx)(vn,{bot:n})]})]}),(0,e.jsx)(Za,{active:a.activeTab,onChange:a.onTabChange})]}),(0,e.jsxs)("div",{className:"bd-body bd-tab-panels",children:[(0,e.jsx)("div",{id:"bd-panel-common",role:"tabpanel","aria-labelledby":"bd-tab-common",className:"bd-tab-panel",hidden:a.activeTab!=="common",children:(0,e.jsxs)(Bt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Dn,{bot:n,sessionFallback:c,cliState:r,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Sn,{bot:n,patchBot:l,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Pn,{bot:n,patchBot:l})})]})}),(0,e.jsx)("div",{id:"bd-panel-sessions",role:"tabpanel","aria-labelledby":"bd-tab-sessions",className:"bd-tab-panel",hidden:a.activeTab!=="sessions",children:(0,e.jsxs)(Bt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Fn,{bot:n,patchBot:l,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Un,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(_n,{bot:n,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Jn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Vn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(En,{bot:n,patchBot:l,putCardPref:s})})]})}),(0,e.jsx)("div",{id:"bd-panel-security",role:"tabpanel","aria-labelledby":"bd-tab-security",className:"bd-tab-panel",hidden:a.activeTab!=="security",children:(0,e.jsxs)(Bt,{children:[n.cliId!=="riff"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Tn,{bot:n,patchBot:l})}):null,n.cliId==="codex"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Nn,{bot:n,patchBot:l})}):null,n.cliId!=="riff"&&n.sandbox===!0?(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(Rn,{bot:n,patchBot:l})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ao,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(zn,{bot:n,patchBot:l})})]})}),(0,e.jsx)("div",{id:"bd-panel-cards",role:"tabpanel","aria-labelledby":"bd-tab-cards",className:"bd-tab-panel",hidden:a.activeTab!=="cards",children:(0,e.jsxs)(Bt,{children:[(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(An,{bot:n,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(bn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(eo,{bot:n,patchBot:l})})]})}),(0,e.jsx)("div",{id:"bd-panel-advanced",role:"tabpanel","aria-labelledby":"bd-tab-advanced",className:"bd-tab-panel",hidden:a.activeTab!=="advanced",children:(0,e.jsxs)(Bt,{children:[Be(n.cliId)?null:(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(On,{bot:n,patchBot:l})}),n.cliId==="codex-app"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Bn,{bot:n,putCardPref:s})}):null,n.cliId==="claude-code"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ln,{bot:n,patchBot:l})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)($n,{bot:n,patchBot:l,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(fn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(mn,{bot:n,patchBot:l})})]})})]})]})}function bn(a){let t=a.bot.feedback?.enabled===!0,[n,r]=(0,o.useState)(t),[l,i]=(0,o.useState)(JSON.stringify(a.bot.feedback??{enabled:!0},null,2)),[c,s]=(0,o.useState)(null),[m,d]=(0,o.useState)(!1),[f,p]=(0,o.useState)(""),[u,h]=(0,o.useState)([]),[w,R]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(a.bot.feedback?.enabled===!0),i(JSON.stringify(a.bot.feedback??{enabled:!0},null,2))},[a.bot.feedback]),(0,o.useEffect)(()=>{Ne().then(y=>{h(y.chats.filter(x=>x.memberBots.some(N=>N.larkAppId===a.bot.larkAppId&&N.inChat)))}).catch(()=>h([]))},[a.bot.larkAppId]);async function T(y=n){d(!0),s(null);try{let x={enabled:!1};if(y){let b=JSON.parse(l);if(!b||typeof b!="object"||Array.isArray(b))throw new Error("\u9AD8\u7EA7 JSON \u5FC5\u987B\u662F\u5BF9\u8C61");x={...b,enabled:!0}}let N=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback`,{feedback:JSON.stringify(x)});if(!N.ok)throw new Error(J(N));a.patchBot(a.bot.larkAppId,{feedback:N.body.feedback??null}),s({text:"\u2713 \u5DF2\u4FDD\u5B58",ok:!0})}catch(x){s({text:`\u2717 ${H(x)}`})}finally{d(!1)}}async function v(){let y=f.trim()?`?chatId=${encodeURIComponent(f.trim())}`:"",x=await fetch(`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback/effective${y}`),N=await x.json().catch(()=>({}));if(!x.ok)throw new Error(N?.error??`HTTP ${x.status}`);R(N.trace)}async function k(){if(!f.trim())return s({text:"\u2717 \u8BF7\u8F93\u5165\u804A\u5929 ID"});d(!0),s(null);try{let y=JSON.parse(l),x=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/chats/${encodeURIComponent(f.trim())}/feedback`,{feedback:y});if(!x.ok)throw new Error(J(x));await v(),s({text:"\u2713 \u804A\u5929\u8986\u76D6\u5DF2\u4FDD\u5B58",ok:!0})}catch(y){s({text:`\u2717 ${H(y)}`})}finally{d(!1)}}return(0,e.jsxs)("section",{className:"bd-section","aria-busy":m,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(j,{help:"\u5F00\u542F\u540E\uFF0C\u6700\u7EC8\u56DE\u7B54\u5361\u7247\u4F1A\u663E\u793A\u201C\u7ED3\u8BBA\u53EF\u7528 / \u6709\u6548\u63A8\u8FDB / \u7ED3\u8BBA\u6709\u8BEF\u201D\u7B49\u53CD\u9988\u6309\u94AE\uFF0C\u7528\u4E8E\u6536\u96C6\u56DE\u7B54\u8D28\u91CF\u8BC4\u4EF7\u3002\u9ED8\u8BA4\u5173\u95ED\uFF1B\u53EA\u5F71\u54CD\u8FD9\u4E2A bot \u7684\u6700\u7EC8\u56DE\u7B54\uFF0C\u4E0D\u5F71\u54CD\u8FC7\u7A0B\u6D88\u606F\u3002",children:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988"})}),(0,e.jsx)(dt,{checked:n,disabled:m,title:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988",help:null,description:"\u5728\u6700\u7EC8\u56DE\u7B54\u5361\u7247\u4E2D\u6536\u96C6\u7528\u6237\u8BC4\u4EF7\u3002",onChange:y=>{r(y),T(y)}}),(0,e.jsx)(Z,{status:c}),n?(0,e.jsxs)("details",{className:"bd-feedback-advanced",children:[(0,e.jsx)("summary",{children:"\u9AD8\u7EA7\u914D\u7F6E\uFF08JSON \u4E0E\u804A\u5929\u8986\u76D6\uFF09"}),(0,e.jsxs)("div",{className:"bd-feedback-advanced-body",children:[(0,e.jsxs)("label",{className:"bd-row",children:[(0,e.jsx)(j,{help:"\u7528\u4E8E\u81EA\u5B9A\u4E49\u53CD\u9988\u6309\u94AE\u3001\u6587\u6848\u3001\u8D1F\u5411\u539F\u56E0\u548C\u662F\u5426\u5141\u8BB8\u6539\u9009\u3002\u4E0D\u4E86\u89E3 JSON \u914D\u7F6E\u65F6\u4FDD\u6301\u9ED8\u8BA4\u5373\u53EF\u3002",children:"\u9AD8\u7EA7 JSON"}),(0,e.jsx)("textarea",{className:"bd-feedback-json",value:l,disabled:m,rows:6,onChange:y=>i(y.target.value)})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary",disabled:m,onClick:()=>{T()},children:"\u4FDD\u5B58\u53CD\u9988\u914D\u7F6E"})}),(0,e.jsxs)("div",{className:"bd-feedback-chat-override",children:[(0,e.jsx)("h4",{children:(0,e.jsx)(j,{help:"\u8BA9\u540C\u4E00\u4E2A bot \u5728\u4E0D\u540C\u98DE\u4E66\u804A\u5929\u4E2D\u4F7F\u7528\u4E0D\u540C\u53CD\u9988\u89C4\u5219\uFF1B\u804A\u5929\u914D\u7F6E\u4F18\u5148\u4E8E bot \u9ED8\u8BA4\u914D\u7F6E\u3002\u53EA\u6709\u5404\u7FA4\u89C4\u5219\u4E0D\u540C\u65F6\u624D\u9700\u8981\u8BBE\u7F6E\u3002",children:"\u6BCF\u804A\u5929\u8986\u76D6"})}),(0,e.jsx)("p",{className:"hint",children:"\u4EC5\u5F53\u8FD9\u4E2A bot \u5728\u4E0D\u540C\u804A\u5929\u4E2D\u9700\u8981\u4E0D\u540C\u53CD\u9988\u89C4\u5219\u65F6\u8BBE\u7F6E\u3002"}),(0,e.jsxs)("label",{className:"bd-row",children:[(0,e.jsx)("span",{children:"\u804A\u5929"}),(0,e.jsxs)("select",{value:f,onChange:y=>{p(y.target.value),R(null)},children:[(0,e.jsx)("option",{value:"",children:"\u9009\u62E9\u804A\u5929"}),u.map(y=>(0,e.jsx)("option",{value:y.chatId,children:y.name||y.chatId},y.chatId))]})]}),f.trim()?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",disabled:m,onClick:()=>{k()},children:"\u4FDD\u5B58\u804A\u5929\u8986\u76D6"}),(0,e.jsx)("button",{type:"button",disabled:m,onClick:()=>{v()},children:"\u751F\u6548\u9884\u89C8"})]}),w?(0,e.jsx)("pre",{className:"code-block",children:JSON.stringify(w,null,2)}):null]}):null]})]})]}):null]})}function fn(a){let t=V();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)(Kn,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(Qn,{bot:a.bot,patchBot:a.patchBot})]})}var ya=[{value:"idle",labelKey:"botDefaults.ownerReminderStateIdle"},{value:"dormant",labelKey:"botDefaults.ownerReminderStateDormant"},{value:"pending_repo",labelKey:"botDefaults.ownerReminderStatePendingRepo"},{value:"tui_prompt",labelKey:"botDefaults.ownerReminderStateTuiPrompt"},{value:"agent_attention",labelKey:"botDefaults.ownerReminderStateAgentAttention"},{value:"limited",labelKey:"botDefaults.ownerReminderStateLimited"}],da={enabled:!1,intervalMinutes:30,text:"\u8BE5\u4F1A\u8BDD\u5DF2\u7B49\u5F85\u5904\u7406\uFF0C\u8BF7\u7EE7\u7EED\u8DDF\u8FDB\u3002",states:ya.map(a=>a.value)};function mn(a){let t=V(),n=a.bot.sessionOwnerReminder??da,[r,l]=(0,o.useState)(n.enabled===!0),[i,c]=(0,o.useState)(String(n.intervalMinutes)),[s,m]=(0,o.useState)(n.text),[d,f]=(0,o.useState)([...n.states]),[p,u]=(0,o.useState)(null),[h,w]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let v=a.bot.sessionOwnerReminder??da;l(v.enabled===!0),c(String(v.intervalMinutes)),m(v.text),f([...v.states])},[a.bot.sessionOwnerReminder]);function R(v,k){f(y=>k?y.includes(v)?y:[...y,v]:y.filter(x=>x!==v))}async function T(){let v=Number(i),k=s.trim();if(!Number.isInteger(v)||v<1||v>10080){u({text:`\u2717 ${t("botDefaults.ownerReminderIntervalInvalid")}`});return}if(!k||Array.from(k).length>500||/<\s*at\b/i.test(k)){u({text:`\u2717 ${t("botDefaults.ownerReminderTextInvalid")}`});return}if(r&&d.length===0){u({text:`\u2717 ${t("botDefaults.ownerReminderStatesInvalid")}`});return}w(!0),u(null);try{let y={enabled:r,intervalMinutes:v,text:k,states:d},x=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-owner-reminder`,y);if(x.ok&&x.body.ok){let N=x.body.sessionOwnerReminder??y;a.patchBot(a.bot.larkAppId,{sessionOwnerReminder:N}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else u({text:`\u2717 ${J(x)}`})}catch(y){u({text:`\u2717 ${H(y)}`})}finally{w(!1)}}return(0,e.jsxs)("section",{className:"bd-section bd-owner-reminder",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(j,{help:t("botDefaults.ownerReminderHelp"),children:t("botDefaults.ownerReminderTitle")})}),(0,e.jsx)(dt,{checked:r,disabled:h,dataAction:"toggle-owner-reminder",title:t("botDefaults.ownerReminderEnabled"),help:t("botDefaults.ownerReminderEnabledHelp"),onChange:l}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.ownerReminderInterval")}),(0,e.jsx)("input",{type:"number",min:1,max:10080,step:1,"data-input":"ownerReminderInterval",value:i,disabled:h,onChange:v=>c(v.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:t("botDefaults.ownerReminderStates")}),(0,e.jsx)("div",{className:"bd-owner-reminder-states",children:ya.map(v=>(0,e.jsxs)("label",{children:[(0,e.jsx)("input",{type:"checkbox",checked:d.includes(v.value),disabled:h,onChange:k=>R(v.value,k.currentTarget.checked)}),(0,e.jsx)("span",{children:t(v.labelKey)})]},v.value))})]}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(j,{help:t("botDefaults.ownerReminderTextHelp"),children:t("botDefaults.ownerReminderText")})}),(0,e.jsx)("textarea",{rows:3,maxLength:500,"data-input":"ownerReminderText",value:s,disabled:h,onChange:v=>m(v.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-owner-reminder",disabled:h,onClick:()=>{T()},children:t("botDefaults.ownerReminderSave")}),(0,e.jsx)(Z,{status:p,attr:{"data-owner-reminder-status":""}})]})]})}var Yt=512;async function pn(a){let t=await createImageBitmap(a);try{let n=Math.min(t.width,t.height);if(!n)throw new Error("empty image");let r=document.createElement("canvas");r.width=Yt,r.height=Yt;let l=r.getContext("2d");if(!l)throw new Error("canvas unavailable");let i=(t.width-n)/2,c=(t.height-n)/2;return l.drawImage(t,i,c,n,n,0,0,Yt,Yt),r.toDataURL("image/png")}finally{t.close()}}function gn(a){let t=V(),{bot:n,name:r,patchBot:l}=a,i=(0,o.useRef)(null),[c,s]=(0,o.useState)(!1),[m,d]=(0,o.useState)(null),[f,p]=(0,o.useState)(!1),[u,h]=(0,o.useState)(!1),w=(0,o.useRef)(null);function R(k,y){let N=["no_session","session_expired","no_access","unsupported_brand"].includes(k)?t(`botDefaults.avatarWarn.${k}`):y||k;return t("botDefaults.avatarFailed",{error:N})}let T=(0,o.useCallback)(async k=>{s(!0),d({text:`\u23F3 ${t("botDefaults.avatarUploading")}`,ok:!0});try{let y=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/avatar`,{imageBase64:k});if(y.ok&&y.body.ok){let x=typeof y.body.avatarUrl=="string"?y.body.avatarUrl:"";x&&we(n.larkAppId,r,x),l(n.larkAppId,N=>({...N})),w.current=null,p(!1),d({text:`\u2713 ${t("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let x=String(y.body?.error??""),N=typeof y.body?.message=="string"?y.body.message:void 0;d({text:`\u2717 ${R(x,N??J(y))}`});let b=x==="no_session"||x==="session_expired";p(b),b||(w.current=null)}}catch(y){d({text:`\u2717 ${t("botDefaults.avatarFailed",{error:H(y)})}`})}finally{s(!1)}},[n.larkAppId,r,l,t]);async function v(k){if(!k||c)return;s(!0);let y;try{y=await pn(k)}catch{s(!1),d({text:`\u2717 ${t("botDefaults.avatarBadImage")}`});return}w.current=y,await T(y)}return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"bd-profile-avatar bd-avatar-editable","data-avatar-control":!0,children:[(0,e.jsxs)("button",{type:"button",className:"bd-avatar-btn","data-action":"edit-bot-avatar",title:t("botDefaults.avatarTitle"),"aria-label":t("botDefaults.avatarTitle"),disabled:c,onClick:()=>i.current?.click(),children:[(0,e.jsx)(Ot,{html:It({name:r,larkAppId:n.larkAppId,dot:"ok"})}),(0,e.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:c?"\u23F3":"\u270E"})]}),(0,e.jsx)("input",{ref:i,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:k=>{let y=k.currentTarget.files?.[0];k.currentTarget.value="",v(y)}}),u?(0,e.jsx)(ae,{onClose:()=>h(!1),onSuccess:()=>{p(!1),h(!1),w.current&&T(w.current)}}):null]}),m?(0,e.jsxs)("small",{className:$t(m,"bd-avatar-status"),"data-avatar-status":!0,children:[m.text,f?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>h(!0),children:t("feishuLogin.entry")}):null]}):null]})}function hn(a){let t=V(),{bot:n,cli:r,patchBot:l}=a,i=n.botName??n.larkAppId,[c,s]=(0,o.useState)(!1),[m,d]=(0,o.useState)(i),[f,p]=(0,o.useState)(!1),[u,h]=(0,o.useState)(null),[w,R]=(0,o.useState)(!1),[T,v]=(0,o.useState)(!1);(0,o.useEffect)(()=>{c||d(i)},[c,i]);function k(N){s(N),N&&(d(i),h(null),R(!1))}function y(N,b){let B=["no_session","session_expired","no_access","unsupported_brand"].includes(N)?t(`botDefaults.renameWarn.${N}`):b||N;return t("botDefaults.renameLocalOnly",{reason:B})}let x=(0,o.useCallback)(async()=>{let N=m.trim();if(!N){h({text:`\u2717 ${t("botDefaults.renameEmpty")}`});return}p(!0),h({text:`\u23F3 ${t("botDefaults.renaming")}`,ok:!0});try{let b=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/rename`,{name:N});if(b.ok&&b.body.ok){let P=typeof b.body.botName=="string"&&b.body.botName?b.body.botName:N;l(n.larkAppId,B=>({...B,botName:P,larkBotName:b.body.mode==="feishu"?N:B.larkBotName,displayName:b.body.mode==="feishu"?null:N})),k(!1),b.body.mode==="feishu"?(h({text:`\u2713 ${t("botDefaults.renameOkFeishu")}`,ok:!0}),R(!1)):(h({text:`\u26A0 ${y(String(b.body.warning??""),b.body.message)}`}),R(b.body.warning==="no_session"||b.body.warning==="session_expired"))}else h({text:`\u2717 ${t("botDefaults.renameFailed",{error:J(b)})}`})}catch(b){h({text:`\u2717 ${t("botDefaults.renameFailed",{error:H(b)})}`})}finally{p(!1)}},[n.larkAppId,m,l,t]);return(0,e.jsxs)("div",{className:"bd-profile-id",children:[c?(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:f,autoFocus:!0,onChange:N=>d(N.currentTarget.value),onKeyDown:N=>{N.key==="Enter"?(N.preventDefault(),x()):N.key==="Escape"&&k(!1)}}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:f,onClick:()=>{x()},children:t("botDefaults.renameSave")}),(0,e.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:f,onClick:()=>k(!1),children:t("botDefaults.renameCancel")})]}):(0,e.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,e.jsxs)("div",{className:"bd-profile-title-content",children:[(0,e.jsx)("strong",{"data-bot-name":!0,children:i}),r?(0,e.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:r}):null,a.meta?(0,e.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,e.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:t("botDefaults.renameTitle"),"aria-label":t("botDefaults.renameTitle"),onClick:()=>k(!0),children:(0,e.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),(0,e.jsxs)("div",{className:"bd-profile-appid-row",children:[(0,e.jsx)("code",{children:n.larkAppId}),jt(n.larkAppId,n.brand)?(0,e.jsxs)("a",{className:"bd-console-link",href:jt(n.larkAppId,n.brand),target:"_blank",rel:"noopener noreferrer",children:[t("botDefaults.openConsole"),(0,e.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M7 17 17 7M9 7h8v8"})})]}):null]}),(0,e.jsx)("small",{className:$t(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:!w,onClick:()=>v(!0),children:t("feishuLogin.entry")}),T?(0,e.jsx)(ae,{onClose:()=>v(!1),onSuccess:()=>{R(!1),v(!1),x()}}):null]})}function yn(a){if(!a||typeof a!="object")return!1;let t=a;return typeof t.primaryLang=="string"&&Array.isArray(t.languages)&&t.languages.every(n=>{if(!n||typeof n!="object")return!1;let r=n;return typeof r.lang=="string"&&typeof r.description=="string"})}function Zt(a,t){let n=typeof t.body?.error=="string"?t.body.error:"",r=typeof t.body?.message=="string"?t.body.message:"";return n?["no_session","session_expired","no_access","unsupported_brand","description_not_wired","body_too_large","api_error"].includes(n)?r&&n==="api_error"?r:a(`botDefaults.descriptionWarn.${n}`):r||n:J(t)}function vn(a){let t=V(),{bot:n}=a,[r,l]=(0,o.useState)(null),[i,c]=(0,o.useState)({}),[s,m]=(0,o.useState)(!1),[d,f]=(0,o.useState)(!1),[p,u]=(0,o.useState)(null),[h,w]=(0,o.useState)(!1),[R,T]=(0,o.useState)(!1),v=(0,o.useCallback)(async b=>{f(!0),u({text:`\u23F3 ${t("botDefaults.descriptionLoading")}`,ok:!0});try{let P=await Q("GET",`/api/bots/${encodeURIComponent(n.larkAppId)}/description`);if(P.ok&&yn(P.body)){let O={primaryLang:P.body.primaryLang,languages:P.body.languages};if(l(O),b){let M=ta(O,b);c(M.descriptions),u(M.ok?{text:`\u2713 ${t("botDefaults.descriptionLoginReloaded")}`,ok:!0}:{text:`\u26A0 ${t("botDefaults.descriptionLanguagesChanged")}`})}else c(Qt(O)),u(null);return w(!1),O}let B=String(P.body?.error??"");B==="no_session"||B==="session_expired"?(u({text:`\u2717 ${Zt(t,P)}`}),w(!0)):u({text:`\u2717 ${t("botDefaults.descriptionLoadFailed",{error:Zt(t,P)})}`})}catch(P){u({text:`\u2717 ${t("botDefaults.descriptionLoadFailed",{error:H(P)})}`})}finally{f(!1)}return null},[n.larkAppId,t]);(0,o.useEffect)(()=>{v()},[v]);let k=(0,o.useCallback)(()=>{m(!0)},[]),y=(0,o.useCallback)(async()=>{let b=Ke(i);if(!b.ok){let P=b.reason==="description_required"?"botDefaults.descriptionRequired":b.reason==="description_too_long"?"botDefaults.descriptionTooLong":"botDefaults.descriptionInvalid";u({text:`\u2717 ${t(P,{lang:b.lang??""})}`});return}f(!0),u({text:`\u23F3 ${t("botDefaults.descriptionPublishing")}`,ok:!0});try{let P=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/description`,{descriptions:b.descriptions});if(P.ok){let M={primaryLang:typeof P.body?.primaryLang=="string"?P.body.primaryLang:r?.primaryLang??Object.keys(b.descriptions)[0]??"",languages:Object.entries(b.descriptions).map(([z,X])=>({lang:z,description:X}))};l(M),c(Qt(M)),m(!1),u({text:`\u2713 ${t("botDefaults.descriptionPublished")}`,ok:!0});return}let B=String(P.body?.error??"");B==="languages_changed"?(await v(),u({text:`\u26A0 ${t("botDefaults.descriptionLanguagesChanged")}`})):B==="no_session"||B==="session_expired"?(u({text:`\u2717 ${Zt(t,P)}`}),w(!0)):u({text:`\u2717 ${t("botDefaults.descriptionFailed",{error:Zt(t,P)})}`})}catch(P){u({text:`\u2717 ${t("botDefaults.descriptionFailed",{error:H(P)})}`})}finally{f(!1)}},[n.larkAppId,i,v,r?.primaryLang,t]),x=r?Xe(r):[],N=Ye(r);return(0,e.jsxs)("div",{className:"bd-description-control",children:[(0,e.jsxs)("div",{className:"bd-description-preview-row",children:[(0,e.jsx)("span",{className:"bd-description-preview",title:N||t("botDefaults.descriptionEmptyPreview"),children:N||t("botDefaults.descriptionEmptyPreview")}),(0,e.jsx)("button",{type:"button",className:"bd-description-edit","data-action":"edit-bot-description",title:t("botDefaults.descriptionEdit"),"aria-label":t("botDefaults.descriptionEdit"),disabled:d,onClick:k,children:(0,e.jsx)("svg",{viewBox:"0 0 16 16",width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),p?(0,e.jsxs)("small",{className:$t(p,"bd-description-status"),"data-description-status":!0,children:[p.text,h?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-description",onClick:()=>T(!0),children:t("feishuLogin.entry")}):null]}):null,s&&typeof document<"u"?(0,ee.createPortal)((0,e.jsx)("div",{className:"bot-defaults-page bd-description-overlay",onClick:b=>{b.currentTarget===b.target&&!d&&m(!1)},children:(0,e.jsxs)("div",{className:"bd-description-modal",role:"dialog","aria-modal":"true","aria-labelledby":"bd-description-title",children:[(0,e.jsxs)("div",{className:"bd-description-modal-head",children:[(0,e.jsx)("h3",{id:"bd-description-title",children:t("botDefaults.descriptionTitle")}),(0,e.jsx)("button",{type:"button",className:"feishu-login-close","aria-label":t("feishuLogin.close"),disabled:d,onClick:()=>m(!1),children:"x"})]}),p?(0,e.jsxs)("small",{className:$t(p,"bd-description-modal-status"),"data-description-modal-status":!0,children:[p.text,h?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-description-modal",onClick:()=>T(!0),children:t("feishuLogin.entry")}):null]}):null,(0,e.jsx)("div",{className:"bd-description-list",children:x.length===0?(0,e.jsx)("p",{className:"empty",children:t(d?"botDefaults.descriptionLoading":"botDefaults.descriptionLoadEmpty")}):x.map(b=>{let P=i[b.lang]??b.description,B=Array.from(P).length;return(0,e.jsxs)("label",{className:"bd-description-row","data-description-lang":b.lang,children:[(0,e.jsxs)("span",{className:"bd-description-row-head",children:[(0,e.jsxs)("span",{children:[(0,e.jsx)("strong",{children:Qe(b.lang)}),(0,e.jsx)("code",{children:b.lang})]}),b.lang===r?.primaryLang?(0,e.jsx)("em",{children:t("botDefaults.descriptionPrimary")}):null]}),(0,e.jsx)("textarea",{rows:3,value:P,disabled:d,onChange:O=>{let M=Ze(O.currentTarget.value);c(z=>({...z,[b.lang]:M}))}}),(0,e.jsxs)("small",{className:B>=120?"bd-description-count at-limit":"bd-description-count",children:[B,"/",120]})]},b.lang)})}),(0,e.jsxs)("div",{className:"bd-description-actions",children:[(0,e.jsx)("button",{type:"button",disabled:d,onClick:()=>m(!1),children:t("botDefaults.descriptionCancel")}),(0,e.jsx)("button",{type:"button",className:"primary",disabled:d||x.length===0,onClick:()=>{y()},children:t("botDefaults.descriptionSave")})]})]})}),document.body):null,R?(0,e.jsx)(ae,{onClose:()=>T(!1),onSuccess:()=>{w(!1),T(!1),v(i)}}):null]})}function ae(a){let t=V(),{onClose:n,onSuccess:r}=a,l=(0,o.useRef)(null),i=(0,o.useRef)(null),[c,s]=(0,o.useState)(t("feishuLogin.starting")),[m,d]=(0,o.useState)(null),[f,p]=(0,o.useState)(!1),u=(0,o.useCallback)(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]),h=(0,o.useCallback)(T=>T?T.status==="awaiting_scan"&&T.qrDataUrl?(d(T.qrDataUrl),s(T.message||t("feishuLogin.scanHint")),p(!1),"active"):T.status==="starting"?(s(T.message||t("feishuLogin.starting")),d(null),p(!1),"active"):T.status==="success"?(u(),d(null),p(!1),s(t("feishuLogin.success")),i.current=window.setTimeout(()=>r(),900),"done"):(u(),d(null),s(t("feishuLogin.failed",{reason:T.message||T.reason||""})),p(!0),"done"):"active",[r,u,t]),w=(0,o.useCallback)(async()=>{try{let v=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));h(v.login)}catch{}},[h]),R=(0,o.useCallback)(async()=>{u(),s(t("feishuLogin.starting")),d(null),p(!1);let T="active";try{let k=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));T=h(k.login)}catch(v){s(t("feishuLogin.failed",{reason:H(v)})),p(!0);return}T==="active"&&l.current===null&&(l.current=window.setInterval(()=>{w()},1500))},[w,h,u,t]);return(0,o.useEffect)(()=>(R(),()=>{u(),i.current!==null&&window.clearTimeout(i.current)}),[R,u]),typeof document>"u"?null:(0,ee.createPortal)((0,e.jsx)("div",{className:"feishu-login-overlay",onClick:T=>{T.currentTarget===T.target&&n()},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:n,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:c}),(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:!f,onClick:()=>{R()},children:t("feishuLogin.retry")})})]})}),document.body)}function Dn(a){let t=V(),{bot:n,cliState:r,patchBot:l}=a,i=ie(n,a.sessionFallback),c=JSON.stringify([n.cliRuntime??null,n.cliPathOverride??null]),[s,m]=(0,o.useState)(i),[d,f]=(0,o.useState)(!1),[p,u]=(0,o.useState)(typeof n.model=="string"?n.model:""),[h,w]=(0,o.useState)(n.reasoningEffort??""),[R,T]=(0,o.useState)(me(n.turnTimeoutMs)),[v,k]=(0,o.useState)(!1),[y,x]=(0,o.useState)(null),[N,b]=(0,o.useState)(n.dshRuntime==="tui"?"tui":"official"),[P,B]=(0,o.useState)(!1),[O,M]=(0,o.useState)(()=>be(n)),[z,X]=(0,o.useState)(!1),[tt,g]=(0,o.useState)(null),[E,C]=(0,o.useState)(null),[$,_]=(0,o.useState)(!1),[S,L]=(0,o.useState)(ua(n)),[U,G]=(0,o.useState)(null),[W,Y]=(0,o.useState)(!1);(0,o.useEffect)(()=>{m(ie(n,a.sessionFallback)),f(!1),u(typeof n.model=="string"?n.model:""),w(n.reasoningEffort??""),T(me(n.turnTimeoutMs)),k(!1),x(null),b(n.dshRuntime==="tui"?"tui":"official"),B(!1),M(be(n)),X(!1),L(ua(n))},[n.agentSelectionKey,n.cliId,n.larkAppId,n.model,n.reasoningEffort,n.turnTimeoutMs,n.dshRuntime,c,n.wrapperCli,n.skillInjection,n.skillInjectionDefault,a.sessionFallback]);let it=re(r.options,s),ot=qt(it,r),st=it?.gateway==="ttadk"&&it.acceptsModel===!1,[ut,lt]=(0,o.useState)(null),[F,at]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(it?.gateway==="ttadk"){lt(null),at(!1);return}let A=!1;return at(!0),Vt(s).then(nt=>{A||lt(nt)}).finally(()=>{A||at(!1)}),()=>{A=!0}},[s]);let K=Jt(ot,ut?.models??null),rt=ut?.source==="live"?ut.models.length:0;function pt(A){let nt=s;m(A),f(!0),A!==nt&&(A!=="codex"||nt!=="codex")&&(M(be({cliRuntime:null,cliPathOverride:null})),X(!0),g(null));let mt=re(r.options,A),q=mt?.gateway==="ttadk",bt=q&&mt.acceptsModel!==!1;u(q&&!bt?"":bt?ft=>ft.trim()?ft:r.ttadkModelDefault:ft=>ft.trim()===r.ttadkModelDefault?"":ft)}function _t(A){M(nt=>({...nt,mode:A})),X(!0),g(null),C(null)}function wt(A){M(nt=>({...nt,...A})),X(!0),g(null),C(null)}async function Sa(){C(null),g(null);let A;if(z&&(A=null),z&&s==="codex"&&O.mode==="custom"){let mt=O.id.trim(),q=O.executable.trim(),bt=O.displayName.trim(),ft=O.packageName.trim();if(!mt||!q){let gt=t("botDefaults.runtimeRequired");C({text:gt}),g({text:gt});return}if(O.updateProvider==="npm"&&!ft){let gt=t("botDefaults.runtimePackageRequired");C({text:gt}),g({text:gt});return}A={id:mt,...bt?{displayName:bt}:{},executable:q,update:O.updateProvider==="npm"?{provider:"npm",packageName:ft}:{provider:O.updateProvider}}}let nt;if(s==="dsh"&&v){let mt=kn(R);if(mt==="invalid"){let q=t("botDefaults.agentTurnTimeoutInvalid");x(q),C({text:`\u2717 ${q}`});return}x(null),nt=mt}_(!0);try{let mt={cliId:s,model:p,reasoningEffort:s==="grok"||s==="traex"||s==="codex"||s==="codex-app"||s.endsWith("-codex")?h:"",...s==="dsh"&&nt!==void 0?{turnTimeoutMs:nt}:{},...s==="dsh"&&P?{dshRuntime:N}:{},...z?{cliRuntime:A}:{}},q=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/agent`,mt);if(q.ok&&q.body.ok){let bt=fe(q.body),ft=bt.closed,gt=bt.residual,Ct=bt.failed,Ft=[ft>0?t("botDefaults.agentClosedCount",{count:ft}):"",gt>0?t("botDefaults.agentClosedResidual",{count:gt}):"",Ct>0?t("botDefaults.agentCloseFailed",{count:Ct}):"",Xt(bt,t)].filter(Boolean).join(" \xB7 "),Oa=bt.hasResidual||Ct>0;if(C(q.body.availabilityWarning?{text:`\u26A0\uFE0F ${q.body.availabilityWarning}${Ft?` \xB7 ${Ft}`:""}`}:Oa?{text:`\u26A0\uFE0F ${Ft}`}:{text:`\u2713 ${Ft||t("botDefaults.agentSaved")}`,ok:!0}),l(n.larkAppId,{cliId:q.body.cliId,cliRuntime:q.body.cliRuntime===void 0?z?A??null:n.cliRuntime??null:q.body.cliRuntime,cliPathOverride:q.body.cliPathOverride===void 0?z?null:n.cliPathOverride??null:q.body.cliPathOverride,wrapperCli:q.body.wrapperCli??null,model:q.body.model??"",reasoningEffort:q.body.reasoningEffort??void 0,turnTimeoutMs:typeof q.body.turnTimeoutMs=="number"?q.body.turnTimeoutMs:void 0,dshRuntime:typeof q.body.dshRuntime=="string"?q.body.dshRuntime:n.dshRuntime??null,agentSelectionKey:q.body.selectionKey??s}),T(me(typeof q.body.turnTimeoutMs=="number"?q.body.turnTimeoutMs:void 0)),k(!1),x(null),B(!1),X(!1),A){let Rt=q.body.runtimeProbe;Rt&&typeof Rt.version=="string"?g({text:t("botDefaults.runtimeProbeOk",{version:Rt.version,provider:typeof Rt.updateProvider=="string"?Rt.updateProvider:O.updateProvider}),ok:!0}):g({text:t("botDefaults.runtimeProbeMissing")})}}else{let bt=sa(q.body),ft=fe(q.body),Ct=`\u2717 ${bt?[t("botDefaults.agentSwitchAborted",{closed:ft.closed,failed:ft.failed}),Xt(ft,t)].filter(Boolean).join(" \xB7 "):typeof q.body?.message=="string"&&q.body.message?q.body.message:J(q)}`;C({text:Ct}),s==="codex"&&O.mode==="custom"&&g({text:Ct})}}catch(mt){let q=`\u2717 ${H(mt)}`;C({text:q}),s==="codex"&&O.mode==="custom"&&g({text:q})}finally{_(!1)}}async function Ca(){if(n.cliId==="riff")return{ok:!0,hadProblem:!1,note:""};try{let A=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/agent`,{cliId:"riff",model:""}),nt=fe(A.body);if(A.ok&&A.body.ok){l(n.larkAppId,{cliId:A.body.cliId,cliRuntime:A.body.cliRuntime??null,wrapperCli:A.body.wrapperCli??null,model:A.body.model??"",agentSelectionKey:A.body.selectionKey??"riff"});let bt=[nt.residual>0?t("botDefaults.agentClosedResidual",{count:nt.residual}):"",Xt(nt,t)].filter(Boolean).join(" \xB7 ");return{ok:!0,hadProblem:nt.hasResidual,note:bt}}return{ok:!1,hadProblem:!0,note:sa(A.body)?[t("botDefaults.riffAgentSwitchAborted",{closed:nt.closed,failed:nt.failed}),Xt(nt,t)].filter(Boolean).join(" \xB7 "):J(A)}}catch(A){return{ok:!1,hadProblem:!0,note:H(A)}}}async function Na(A){L(A),G(null),Y(!0);try{let nt=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/skill-injection`,{skillInjection:A});nt.ok&&nt.body.ok?(G({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}),l(n.larkAppId,{skillInjection:nt.body.skillInjection??null})):G({text:`\u2717 ${J(nt)}`})}catch(nt){G({text:`\u2717 ${H(nt)}`})}finally{Y(!1)}}let ve=n.skillInjectionSupport==="dynamic"?"dynamic":n.skillInjectionSupport==="global"?"global":"none",xt=s==="riff",Et=s==="codex"||s==="codex-app"||s.endsWith("-codex"),Ta=Et||s==="grok"||s==="traex",De=s==="dsh",ne=(0,o.useMemo)(()=>na(s==="grok"||s==="traex"?s:Et?"codex":void 0,p),[s,Et,p]);(0,o.useEffect)(()=>{h&&!ne.includes(h)&&w("")},[h,ne]);let ke=s==="codex"&&(!n.wrapperCli||d),Se=ke&&O.mode!=="official",wa=[...r.options].sort((A,nt)=>A.label.localeCompare(nt.label,"en",{sensitivity:"base"})).map(A=>({value:A.id,label:A.available===!1&&!(A.id==="codex"&&Se)?t("botDefaults.agentMissingOption",{label:A.label,command:A.command??A.id}):`${A.label}\uFF08${A.id}\uFF09`})),xa=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamic")}],Ra=[{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")}],Ia=[{value:"auto",label:t("botDefaults.runtimeProviderAuto")},{value:"self",label:t("botDefaults.runtimeProviderSelf")},{value:"npm",label:t("botDefaults.runtimeProviderNpm")},{value:"none",label:t("botDefaults.runtimeProviderNone")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionAgent")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.agentCli")}),(0,e.jsx)(ct,{dataInput:"agentCliId",ariaLabel:t("botDefaults.agentCli"),value:s,disabled:$,options:wa,searchable:!0,onChange:pt}),it?.available===!1&&!Se?(0,e.jsx)("small",{className:"hint-warn",children:t("botDefaults.agentMissingHint",{command:it.command??s})}):null]})}),ke?(0,e.jsxs)("div",{className:"bd-codex-runtime","data-codex-runtime":"",children:[(0,e.jsx)("div",{className:"bd-runtime-heading",children:(0,e.jsx)(j,{help:t("botDefaults.runtimeHelp"),children:t("botDefaults.runtimeTitle")})}),(0,e.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":t("botDefaults.runtimeTitle"),children:[(0,e.jsx)("button",{type:"button","data-action":"runtime-official","aria-pressed":O.mode==="official",disabled:$,onClick:()=>_t("official"),children:t("botDefaults.runtimeOfficial")}),(0,e.jsx)("button",{type:"button","data-action":"runtime-custom","aria-pressed":O.mode==="custom",disabled:$,onClick:()=>_t("custom"),children:t("botDefaults.runtimeCustom")})]}),(0,e.jsx)("input",{type:"hidden","data-input":"agentRuntimeMode",value:O.mode,readOnly:!0}),(0,e.jsx)("p",{className:"bd-runtime-note",children:t(O.mode==="official"?"botDefaults.runtimeOfficialNote":O.mode==="legacy"?"botDefaults.runtimeLegacyNote":"botDefaults.runtimeCustomNote")}),O.mode==="legacy"?(0,e.jsx)("div",{className:"bd-runtime-fields","data-runtime-legacy":"",children:(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeLegacyPath")}),(0,e.jsx)("input",{type:"text",value:O.legacyPath,readOnly:!0,"aria-readonly":"true","data-input":"agentRuntimeLegacyPath"})]})}):null,O.mode==="custom"?(0,e.jsxs)("div",{className:"bd-runtime-fields",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:t("botDefaults.runtimeIdHelp"),children:t("botDefaults.runtimeId")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeId",value:O.id,disabled:$,autoComplete:"off",onChange:A=>wt({id:A.currentTarget.value})})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeDisplayName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeDisplayName",placeholder:t("botDefaults.runtimeDisplayNamePlaceholder"),value:O.displayName,disabled:$,autoComplete:"off",onChange:A=>wt({displayName:A.currentTarget.value})})]}),(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)(j,{help:t("botDefaults.runtimeExecutableHelp"),children:t("botDefaults.runtimeExecutable")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeExecutable",value:O.executable,disabled:$,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:A=>wt({executable:A.currentTarget.value})})]}),(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeUpdateProvider")}),(0,e.jsx)(ct,{dataInput:"agentRuntimeUpdateProvider",ariaLabel:t("botDefaults.runtimeUpdateProvider"),value:O.updateProvider,disabled:$,options:Ia,onChange:A=>wt({updateProvider:A})})]}),O.updateProvider==="npm"?(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:t("botDefaults.runtimePackageHelp"),children:t("botDefaults.runtimePackageName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimePackageName",value:O.packageName,disabled:$,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:A=>wt({packageName:A.currentTarget.value})})]}):null]}):null,(0,e.jsx)(Z,{status:tt,attr:{"data-runtime-status":""}})]}):null,!xt&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:t("botDefaults.agentHelp"),children:t("botDefaults.agentModel")}),(0,e.jsx)(ce,{value:p,onChange:u,options:K,disabled:$||st,busy:F,dataInput:"agentModel",ariaLabel:t("botDefaults.agentModel"),defaultLabel:t("botDefaults.modelPickerDefault"),customLabel:t("botDefaults.modelPickerCustom"),menuClassName:"bd-field-menu",detectedCount:rt||void 0,detectedLabel:rt>0?t("botDefaults.modelPickerDetected",{count:rt}):void 0},s)]})}),De&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.dshRuntimeHelp"),children:t("botDefaults.dshRuntimeTitle")}),(0,e.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":t("botDefaults.dshRuntimeTitle"),children:[(0,e.jsx)("button",{type:"button","data-action":"dsh-runtime-official","aria-pressed":N==="official",disabled:$,onClick:()=>{b("official"),B(!0)},children:t("botDefaults.dshRuntimeOfficial")}),(0,e.jsx)("button",{type:"button","data-action":"dsh-runtime-tui","aria-pressed":N==="tui",disabled:$,onClick:()=>{b("tui"),B(!0)},children:t("botDefaults.dshRuntimeTui")})]}),(0,e.jsx)("p",{className:"bd-runtime-note",children:t(N==="tui"?"botDefaults.dshRuntimeTuiNote":"botDefaults.dshRuntimeOfficialNote")})]})}),De&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:t("botDefaults.agentTurnTimeoutHelp"),children:t("botDefaults.agentTurnTimeout")}),(0,e.jsx)("input",{type:"number",min:0,step:"any",inputMode:"decimal","data-input":"agentTurnTimeout",placeholder:t("botDefaults.agentTurnTimeoutPlaceholder"),value:R,disabled:$,onChange:A=>{T(A.currentTarget.value),k(!0),x(null)}}),y?(0,e.jsx)("small",{className:"hint-warn","data-turn-timeout-error":"",children:y}):null]})}),Ta&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.agentReasoningEffortHelp"),children:t("botDefaults.agentReasoningEffort")}),(0,e.jsx)(ct,{dataInput:"agentReasoningEffort",ariaLabel:t("botDefaults.agentReasoningEffort"),value:h,disabled:$,options:[{value:"",label:t(s==="grok"?"botDefaults.agentReasoningEffortDefaultGrok":s==="traex"?"botDefaults.agentReasoningEffortDefaultTraex":Et?"botDefaults.agentReasoningEffortDefaultCodex":"botDefaults.agentReasoningEffortDefault")},...ne.map(A=>({value:A,label:t(`botDefaults.agentReasoningEffort${A==="xhigh"?"Xhigh":A[0].toUpperCase()+A.slice(1)}`)}))],onChange:A=>w(A)})]})}),xt&&(0,e.jsx)(to,{bot:n,patchBot:l,persistCliSelection:Ca}),!xt&&ve==="dynamic"?(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.skillInjectionHelpDynamic"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(ct,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:xa,onChange:()=>{}})]})}):!xt&&ve==="global"?(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.skillInjectionHelp"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(ct,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:S,disabled:W,options:Ra,onChange:A=>{Na(A)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:U,attr:{"data-skill-injection-status":""}})})]}):null,!xt&&(0,e.jsxs)("div",{className:"actions bd-section-actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:$,onClick:()=>{Sa()},children:t("botDefaults.agentSave")}),(0,e.jsx)(Z,{status:E,attr:{"data-agent-status":""}})]})]})}var va=2147483647;function me(a){if(typeof a!="number"||!Number.isInteger(a)||a<=0||a>va)return"";let t=a/6e4;return Number.isInteger(t)?String(t):String(Number(t.toFixed(10)))}function kn(a){let t=a.trim();if(!t)return"";let n=Number(t);if(!Number.isFinite(n)||n<=0)return"invalid";let r=Math.round(n*6e4);return r<=0||r>va?"invalid":r}function ua(a){let t=a.skillInjection==="global"||a.skillInjection==="prompt"||a.skillInjection==="off"?a.skillInjection:"",n=a.skillInjectionDefault==="global"||a.skillInjectionDefault==="off"?a.skillInjectionDefault:"prompt";return t||n}function Sn(a){let t=V(),{bot:n,patchBot:r}=a,l=ca(n),[i,c]=(0,o.useState)(l.mode),[s,m]=(0,o.useState)(l.workingDir),[d,f]=(0,o.useState)(n.defaultWorkingDirAutoWorktree===!0),[p,u]=(0,o.useState)(null),[h,w]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let v=ca(n);c(v.mode),m(v.workingDir),f(n.defaultWorkingDirAutoWorktree===!0)},[n.defaultOncall?.enabled,n.defaultOncall?.workingDir,n.defaultWorkingDir,n.defaultWorkingDirAutoWorktree]);async function R(){u(null);let v=s.trim();if(i!=="off"&&!v){u({text:t("botDefaults.required")});return}let k=i==="default"&&d;w(!0);try{let y=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/working-dir-mode`,{mode:i,workingDir:v,autoWorktree:k});if(y.ok&&y.body.ok){let x=y.body.resolvedPath?` \u2192 ${y.body.resolvedPath}`:"";u({text:`\u2713 ${t("botDefaults.workingDirSaved")}${x}`,ok:!0}),r(n.larkAppId,{defaultOncall:y.body.defaultOncall??n.defaultOncall,defaultWorkingDir:y.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:y.body.defaultWorkingDirAutoWorktree===!0})}else u({text:`\u2717 ${J(y)}`})}catch(y){u({text:`\u2717 ${H(y)}`})}finally{w(!1)}}let T=[{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)(j,{help:t("botDefaults.workingDirModeHelp"),children:t("botDefaults.workingDirMode")}),(0,e.jsx)(ct,{dataInput:"workingDirMode",ariaLabel:t("botDefaults.workingDirMode"),value:i,disabled:h,options:T,onChange:v=>c(v)})]})}),(0,e.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:i==="off",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.workingDirField")}),(0,e.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:s,disabled:h,onChange:v=>m(v.currentTarget.value)})]})}),(0,e.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:i!=="default",children:[(0,e.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:d,disabled:h,onChange:v=>f(v.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)(j,{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:h,onClick:()=>{R()},children:t("botDefaults.save")}),(0,e.jsx)(Z,{status:p,attr:{"data-status":""}})]}),(0,e.jsx)(Cn,{bot:n,putCardPref:a.putCardPref})]})}function ca(a){let t=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:t.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||t.workingDir||""}}function Cn(a){let t=V(),{bot:n,putCardPref:r}=a,[l,i]=(0,o.useState)(n.autoStartOnGroupJoin===!0),[c,s]=(0,o.useState)(n.autoStartOnNewTopic===!0),[m,d]=(0,o.useState)(typeof n.autoStartOnGroupJoinPrompt=="string"?n.autoStartOnGroupJoinPrompt:""),[f,p]=(0,o.useState)(null),[u,h]=(0,o.useState)(null);(0,o.useEffect)(()=>{i(n.autoStartOnGroupJoin===!0),s(n.autoStartOnNewTopic===!0),d(typeof n.autoStartOnGroupJoinPrompt=="string"?n.autoStartOnGroupJoinPrompt:"")},[n.autoStartOnGroupJoin,n.autoStartOnGroupJoinPrompt,n.autoStartOnNewTopic]);async function w(R,T){h(T),p(null);try{let v=await r(R);p(v.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${J(v)}`})}catch(v){p({text:`\u2717 ${H(v)}`})}finally{h(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)(dt,{checked:l,disabled:u==="join",dataAction:"toggle-auto-join",title:t("botDefaults.autoStartJoin"),help:t("botDefaults.autoStartJoinHelp"),onChange:R=>{i(R),w({autoStartOnGroupJoin:R},"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:R=>d(R.currentTarget.value)})]})}),(0,e.jsx)(dt,{checked:c,disabled:u==="topic",dataAction:"toggle-auto-topic",title:t("botDefaults.autoStartTopic"),help:t("botDefaults.autoStartTopicHelp"),onChange:R=>{s(R),w({autoStartOnNewTopic:R},"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:()=>{w({autoStartOnGroupJoinPrompt:m},"prompt")},children:t("botDefaults.autoStartJoinPromptSave")}),(0,e.jsx)(Z,{status:f,attr:{"data-auto-start-status":""}})]})]})}function Nn(a){let t=V(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(n.codexAuthSync==="isolated"?"isolated":"shared"),[c,s]=(0,o.useState)(!1),[m,d]=(0,o.useState)(null);(0,o.useEffect)(()=>i(n.codexAuthSync==="isolated"?"isolated":"shared"),[n.codexAuthSync]);async function f(p){let u=l;i(p),d(null),s(!0);try{let h=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/codex-auth-sync`,{codexAuthSync:p});h.ok&&h.body.ok?(r(n.larkAppId,{codexAuthSync:p}),d({text:`\u2713 ${t("botDefaults.codexAuthSyncSaved")}`,ok:!0})):(i(u),d({text:`\u2717 ${J(h)}`}))}catch(h){i(u),d({text:`\u2717 ${H(h)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCodexAuth")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.codexAuthSyncLabel")}),(0,e.jsxs)("select",{"data-input":"codexAuthSync",value:l,disabled:c,onChange:p=>{f(p.currentTarget.value)},children:[(0,e.jsx)("option",{value:"shared",children:t("botDefaults.codexAuthSyncShared")}),(0,e.jsx)("option",{value:"isolated",children:t("botDefaults.codexAuthSyncIsolated")})]})]}),(0,e.jsx)("small",{children:t("botDefaults.codexAuthSyncHelp")}),(0,e.jsx)(Z,{status:m,attr:{"data-codex-auth-sync-status":""}})]})]})}function Tn(a){let t=V(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(n.sandbox===!0),[c,s]=(0,o.useState)(null),[m,d]=(0,o.useState)(!1);(0,o.useEffect)(()=>i(n.sandbox===!0),[n.sandbox]);async function f(u){i(u),s(null),d(!0);try{let h=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/sandbox`,{enabled:u});h.ok&&h.body.ok?(s({text:`\u2713 ${t("botDefaults.sandboxSaved")}`,ok:!0}),r(n.larkAppId,{sandbox:h.body.sandbox===!0})):(s({text:`\u2717 ${J(h)}`}),i(!u))}catch(h){s({text:`\u2717 ${H(h)}`}),i(!u)}finally{d(!1)}}let p=n.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)(dt,{checked:l,disabled:m,dataAction:"toggle-sandbox",title:t("botDefaults.sandboxToggle"),help:t("botDefaults.sandboxHelp"),onChange:u=>{f(u)}}),(0,e.jsx)("p",{className:"bd-section-note","data-read-iso-capability":p?"yes":"no",children:p?`\uFF0B ${t("botDefaults.sandboxReadIsoOn")}`:t("botDefaults.sandboxReadIsoOff")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:c,attr:{"data-sandbox-status":""}})})]})}var ba={readWrite:0,readOnly:1,deny:2};function fa(a,t,n){let r=f=>f==="~"||f.startsWith("~/")?n.replace(/\/+$/,"")+f.slice(1):f,l=f=>r(f).replace(/\/+$/,"")||"/",i=l(t),c=(f,p)=>{let u=l(f),h=l(p);return u===h||h.startsWith(u==="/"?"/":u+"/")},s=f=>l(f)==="/"?0:l(f).split("/").filter(Boolean).length,m,d=(f,p)=>{if(!c(p,i))return;let u=s(p);(!m||u>m.ruleDepth||u===m.ruleDepth&&ba[f]>ba[m.access])&&(m={access:f,ruleDepth:u,rule:p})};for(let f of a.readWrite)d("readWrite",f);for(let f of a.readOnly)d("readOnly",f);for(let f of a.deny)d("deny",f);return m?{access:m.access,rule:m.rule}:{access:"none"}}function Da(){return{readWrite:[],readOnly:[],deny:[]}}function Lt(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:Da()}function wn(a,t){let n=r=>[...r].sort().join(`
|
|
3
|
-
`);return n(a.readWrite)===n(t.readWrite)&&n(a.readOnly)===n(t.readOnly)&&n(a.deny)===n(t.deny)}function pe(a){let t=[];for(let n of a.readWrite)t.push(`rw ${n}`);for(let n of a.readOnly)t.push(`ro ${n}`);for(let n of a.deny)t.push(`deny ${n}`);return t.join(`
|
|
4
|
-
`)}function xn(a){let t=Da();for(let n of a.split(`
|
|
5
|
-
`)){let r=n.trim();if(!r||r.startsWith("#"))continue;let l=/^(\S+)\s+(.+)$/.exec(r);if(!l)continue;let i=l[1].toLowerCase(),c=l[2].trim();i==="rw"||i==="readwrite"||i==="rw:"?t.readWrite.push(c):i==="ro"||i==="readonly"||i==="ro:"?t.readOnly.push(c):(i==="deny"||i==="-"||i==="deny:")&&t.deny.push(c)}return t}function Rn(a){let t=V(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(()=>Lt(n.sandboxPaths)),[c,s]=(0,o.useState)(()=>pe(Lt(n.sandboxPaths))),[m,d]=(0,o.useState)(!1),[f,p]=(0,o.useState)(null),[u,h]=(0,o.useState)(!1),[w,R]=(0,o.useState)(""),[T,v]=(0,o.useState)({}),[k,y]=(0,o.useState)(new Set),[x,N]=(0,o.useState)([]),[b,P]=(0,o.useState)("~"),B=(0,o.useMemo)(()=>Lt(n.sandboxPaths),[n.sandboxPaths]);(0,o.useEffect)(()=>{i(Lt(n.sandboxPaths)),s(pe(Lt(n.sandboxPaths)))},[n.sandboxPaths]);let O=!wn(l,B),M=(0,o.useCallback)(async _=>{try{let S=_?`?path=${encodeURIComponent(_)}`:"",U=await(await fetch(`/api/fs/list${S}`)).json();if(!U.ok)return;_?v(G=>({...G,[_]:U.entries.map(W=>({name:W.name,path:W.path}))})):(N(U.entries.map(G=>({name:G.name,path:G.path}))),typeof U.home=="string"&&U.home.startsWith("/")&&P(U.home))}catch{}},[]);(0,o.useEffect)(()=>{!m&&x.length===0&&M("")},[m,x.length,M]);let z=(0,o.useCallback)(_=>{let S=_.replace(/\/+$/,"")||"/";if(l.readWrite.some(L=>(L.replace(/\/+$/,"")||"/")===S))return"readWrite";if(l.readOnly.some(L=>(L.replace(/\/+$/,"")||"/")===S))return"readOnly";if(l.deny.some(L=>(L.replace(/\/+$/,"")||"/")===S))return"deny"},[l]),X=(0,o.useCallback)(_=>{p(null);let S=_.replace(/\/+$/,"")||"/",L=z(_),U=L===void 0?"readWrite":L==="readWrite"?"readOnly":L==="readOnly"?"deny":void 0;i(G=>{let W=it=>it.filter(ot=>(ot.replace(/\/+$/,"")||"/")!==S),Y={readWrite:W(G.readWrite),readOnly:W(G.readOnly),deny:W(G.deny)};return U&&Y[U].push(_),s(pe(Y)),Y})},[z]);function tt(_){s(_),i(xn(_)),p(null)}async function g(){h(!0),p(null);try{let _=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/sandbox-paths`,l);_.ok&&_.body.ok?(p({text:`\u2713 ${t("botDefaults.sbxPathsSaved")}`,ok:!0}),r(n.larkAppId,{sandboxPaths:_.body.sandboxPaths??{readWrite:[],readOnly:[],deny:[]}})):p({text:`\u2717 ${J(_)}`})}catch(_){p({text:`\u2717 ${H(_)}`})}finally{h(!1)}}let E=_=>t(_==="readWrite"?"botDefaults.sbxRw":_==="readOnly"?"botDefaults.sbxRo":_==="deny"?"botDefaults.sbxDeny":"botDefaults.sbxNone");function C(_){let{name:S,path:L,depth:U}=_,G=k.has(L),W=z(L),Y=fa(l,L,b),it=T[L];return(0,e.jsxs)("div",{className:"bd-sbx-node",children:[(0,e.jsxs)("div",{className:"bd-sbx-row",style:{paddingLeft:U*16},children:[(0,e.jsx)("span",{className:"bd-sbx-twisty",onClick:()=>{y(ot=>{let st=new Set(ot);return st.has(L)?st.delete(L):st.add(L),st}),it||M(L)},children:G?"\u25BE":"\u25B8"}),(0,e.jsx)("span",{className:"bd-sbx-name",title:L,children:S}),(0,e.jsx)("button",{type:"button",className:`bd-sbx-state bd-sbx-state-${W??"inherit"}`,"data-action":"cycle-sandbox-path","data-path":L,title:W?void 0:`${t("botDefaults.sbxInherit")}: ${E(Y.access)}`,onClick:()=>X(L),children:W?E(W):`\u21B3 ${E(Y.access)}`})]}),G&&(0,e.jsxs)("div",{className:"bd-sbx-kids",children:[it?.map(ot=>(0,e.jsx)(C,{name:ot.name,path:ot.path,depth:U+1},ot.path)),it&&it.length===0&&(0,e.jsx)("div",{className:"bd-sbx-empty",style:{paddingLeft:(U+1)*16+20},children:t("botDefaults.sbxNoSubdirs")})]})]})}let $=w.trim()?fa(l,w.trim(),b):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:()=>d(_=>!_),children:t(m?"botDefaults.sbxPathsTreeMode":"botDefaults.sbxPathsTextMode")})}),m?(0,e.jsx)("textarea",{className:"bd-sbx-text","data-field":"sandbox-paths-text",rows:8,value:c,spellCheck:!1,placeholder:`rw ~/my-data
|
|
6
|
-
ro ~/reference-repos
|
|
7
|
-
deny ~/my-data/secrets`,onChange:_=>tt(_.target.value)}):(0,e.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:x.map(_=>(0,e.jsx)(C,{name:_.name,path:_.path,depth:0},_.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:w,onChange:_=>R(_.target.value)}),$&&(0,e.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${$.access}`,"data-test-access":$.access,children:[E($.access),$.rule?` \u2190 ${$.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||!O,onClick:()=>{g()},children:t("botDefaults.sbxPathsSave")}),(0,e.jsx)(Z,{status:f,attr:{"data-sandbox-paths-status":""}})]})]})}var In=[{value:"",labelKey:"botDefaults.backendAuto"},{value:"tmux",labelKey:"botDefaults.backendTmux"},{value:"herdr",labelKey:"botDefaults.backendHerdr"},{value:"zellij",labelKey:"botDefaults.backendZellij"},{value:"zmx",labelKey:"botDefaults.backendZmx"},{value:"pty",labelKey:"botDefaults.backendPty"}];function On(a){let t=V(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(typeof n.backendType=="string"?n.backendType:""),[c,s]=(0,o.useState)(null),[m,d]=(0,o.useState)(!1);(0,o.useEffect)(()=>i(typeof n.backendType=="string"?n.backendType:""),[n.backendType]);let f=(0,o.useMemo)(()=>In.map(u=>({value:u.value,label:t(u.labelKey)})),[t]);async function p(u){let h=l;i(u),s(null),d(!0);try{let w=await Q("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/backend-type`,{backendType:u});w.ok&&w.body.ok?(s({text:`\u2713 ${t("botDefaults.backendSaved")}`,ok:!0}),r(n.larkAppId,{backendType:typeof w.body.backendType=="string"?w.body.backendType:null})):(s({text:`\u2717 ${J(w)}`}),i(h))}catch(w){s({text:`\u2717 ${H(w)}`}),i(h)}finally{d(!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)(j,{help:t("botDefaults.backendHelp"),children:t("botDefaults.backendLabel")}),(0,e.jsx)(ct,{dataInput:"backendType",ariaLabel:t("botDefaults.backendLabel"),value:l,disabled:m,options:f,onChange:u=>{p(u)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:c,attr:{"data-backend-status":""}})})]})]})}function Pn(a){let t=V(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(typeof n.teamRole=="string"),[c,s]=(0,o.useState)(typeof n.teamRole=="string"?n.teamRole:""),[m,d]=(0,o.useState)("every"),[f,p]=(0,o.useState)(null),[u,h]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let T=!0,v=`/api/team/local-bots/${encodeURIComponent(n.larkAppId)}/role`;return typeof n.teamRole=="string"?(i(!0),s(n.teamRole),()=>{T=!1}):(p(null),i(!1),s(""),(async()=>{try{let k=await fetch(v),y=await k.json().catch(()=>({}));if(!T)return;if(k.ok&&y.ok){let x=y.role??"";s(x),d(y.injectMode==="once"?"once":"every"),i(!0),r(n.larkAppId,{teamRole:x})}else p({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${y.error??k.status}`})}catch(k){T&&p({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${H(k)}`})}})(),()=>{T=!1})},[n.larkAppId,n.teamRole,r,t]),(0,o.useEffect)(()=>{let T=!0;return typeof n.teamRole!="string"?()=>{T=!1}:((async()=>{try{let v=await fetch(`/api/team/local-bots/${encodeURIComponent(n.larkAppId)}/role`),k=await v.json().catch(()=>({}));T&&v.ok&&k.ok&&d(k.injectMode==="once"?"once":"every")}catch{}})(),()=>{T=!1})},[n.larkAppId]);async function w(T,v,k=m){if(l){p(null),h(!0);try{let y=await Q("PUT",`/api/team/local-bots/${encodeURIComponent(n.larkAppId)}/role`,{role:T,injectMode:k});if(y.ok&&y.body.ok){let x=T.trim();s(x),(y.body.injectMode==="once"||y.body.injectMode==="every")&&d(y.body.injectMode),r(n.larkAppId,{teamRole:x}),p({text:`\u2713 ${t(v?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else p({text:`\u2717 ${J(y)}`})}catch(y){p({text:`\u2717 ${H(y)}`})}finally{h(!1)}}}let R=[{value:"every",label:t("roles.injectModeEvery")},{value:"once",label:t("roles.injectModeOnce")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(j,{help:t("botDefaults.roleHelp"),children:t("botDefaults.sectionRole")})}),(0,e.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:t("botDefaults.rolePlaceholder"),disabled:!l||u,value:c,onChange:T=>s(T.currentTarget.value)}),(0,e.jsxs)("div",{className:"bd-role-inject",children:[(0,e.jsx)("span",{className:"bd-subsection-title",children:(0,e.jsx)(j,{help:t("roles.injectModeHint"),children:t("roles.injectModeLabel")})}),(0,e.jsx)(Dt,{id:`bd-role-inject-${n.larkAppId}`,className:"bd-role-inject-menu",ariaLabel:t("roles.injectModeLabel"),disabled:!l||u,label:oe(R,m),value:m,options:R,onChange:T=>{let v=T==="once"?"once":"every";d(v),w(c,c.trim()==="",v)}})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!l||u,onClick:()=>{w(c,c.trim()==="")},children:t("botDefaults.roleSave")}),(0,e.jsx)(Z,{status:f,attr:{"data-role-status":""}})]}),(0,e.jsx)(Mn,{appId:n.larkAppId})]})}function Mn(a){let t=V(),[n,r]=(0,o.useState)({loaded:!1,loading:!0,items:[]});(0,o.useEffect)(()=>{let c=!0;return r({loaded:!1,loading:!0,items:[]}),(async()=>{try{let s=await fetch("/api/role-profiles"),m=await s.json().catch(()=>({}));if(!c)return;if(!s.ok)throw new Error(m?.error??String(s.status));let f=(Array.isArray(m.profiles)?m.profiles:[]).filter(p=>(p.botEntries??[]).some(u=>u?.larkAppId===a.appId&&u?.hasEntry)).map(p=>({profileId:String(p.profileId)}));r({loaded:!0,loading:!1,items:f})}catch(s){c&&r({loaded:!0,loading:!1,error:H(s),items:[]})}})(),()=>{c=!1}},[a.appId]);async function l(c){let s=n.items.find(m=>m.profileId===c);if(!(!s||s.loaded||s.loading)){r(m=>({...m,items:m.items.map(d=>d.profileId===c?{...d,loading:!0}:d)}));try{let m=await fetch(`/api/role-profiles/${encodeURIComponent(c)}/${encodeURIComponent(a.appId)}`),d=await m.json().catch(()=>({}));if(!m.ok)throw new Error(d?.error??String(m.status));r(f=>({...f,items:f.items.map(p=>p.profileId===c?{...p,loading:!1,loaded:!0,content:d?.hasEntry?String(d.content??""):""}:p)}))}catch(m){r(d=>({...d,items:d.items.map(f=>f.profileId===c?{...f,loading:!1,error:H(m)}:f)}))}}}let i;return n.loading?i=(0,e.jsx)(Ht,{label:t("common.loading"),compact:!0}):n.error?i=(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRolesLoadFailed",{error:n.error})}):n.items.length===0?i=(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRolesEmpty")}):i=n.items.map(c=>(0,e.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":c.profileId,onToggle:s=>{s.currentTarget.open&&l(c.profileId)},children:[(0,e.jsx)("summary",{children:(0,e.jsx)("span",{className:"bd-profile-role-id",children:c.profileId})}),(0,e.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":c.profileId,children:c.loading?(0,e.jsx)(Ht,{label:t("common.loading"),compact:!0}):c.error?(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRoleDetailLoadFailed",{error:c.error})}):c.loaded?(0,e.jsx)("pre",{children:c.content??""}):(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRoleClickToLoad")})})]},c.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)(j,{help:t("botDefaults.profileRolesHelp"),children:t("botDefaults.profileRoles")})}),(0,e.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:i})]})}function An(a){let t=V(),{bot:n,putCardPref:r}=a,[l,i]=(0,o.useState)(n.usageDisplay??"streaming"),[c,s]=(0,o.useState)(n.disableStreamingCard===!0),[m,d]=(0,o.useState)(n.silentTurnReactions===!0),[f,p]=(0,o.useState)(n.writableTerminalLinkInCard===!0),[u,h]=(0,o.useState)(n.privateCard===!0),[w,R]=(0,o.useState)(n.thinkingCard!==!1),[T,v]=(0,o.useState)(null),[k,y]=(0,o.useState)(null);(0,o.useEffect)(()=>{i(n.usageDisplay??"streaming"),s(n.disableStreamingCard===!0),d(n.silentTurnReactions===!0),p(n.writableTerminalLinkInCard===!0),h(n.privateCard===!0),R(n.thinkingCard!==!1)},[n.disableStreamingCard,n.privateCard,n.thinkingCard,n.usageDisplay,n.silentTurnReactions,n.writableTerminalLinkInCard]);async function x(b,P,B){y(P),v(null);try{let O=await r(b);O.ok?v({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(B?.(),v({text:`\u2717 ${J(O)}`}))}catch(O){B?.(),v({text:`\u2717 ${H(O)}`})}finally{y(null)}}let N=[{value:"streaming",label:t("botDefaults.usageDisplayStreaming")},{value:"footer",label:t("botDefaults.usageDisplayFooter")},{value:"off",label:t("botDefaults.usageDisplayOff")}];return(0,e.jsxs)("section",{className:"bd-section","aria-busy":k!==null,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCard")}),(0,e.jsxs)("div",{className:"bd-card-settings",children:[(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-feedback-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardFeedbackGroup")}),(0,e.jsx)(dt,{className:"bd-card-primary-toggle",checked:!c,disabled:k!==null,dataAction:"toggle-disable-streaming",title:t("botDefaults.autoStreaming"),description:t("botDefaults.autoStreamingDescription"),help:t("botDefaults.autoStreamingHelp"),onChange:b=>{let P=c,B=!b;s(B),x({disableStreamingCard:B},"streaming",()=>s(P))}}),(0,e.jsxs)("div",{className:"bd-card-dependent","data-card-off-options":!0,hidden:!c,children:[(0,e.jsx)(dt,{checked:!m,disabled:k!==null,dataAction:"toggle-silent-reactions",title:t("botDefaults.silentTurnReactions"),description:t("botDefaults.silentTurnReactionsDescription"),help:t("botDefaults.silentTurnReactionsHelp"),onChange:b=>{let P=m,B=!b;d(B),x({silentTurnReactions:B},"silent",()=>d(P))}}),(0,e.jsx)("p",{role:"status","data-card-pref-moot":!0,className:"bd-card-mode-note",children:t("botDefaults.manualCardHint")})]}),(0,e.jsx)(dt,{checked:w,disabled:k!==null,dataAction:"toggle-thinking-card",title:t("botDefaults.thinkingCard"),description:t("botDefaults.thinkingCardDescription"),help:t("botDefaults.thinkingCardHelp"),onChange:b=>{let P=w;R(b),x({thinkingCard:b},"thinking",()=>R(P))}})]}),(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-content-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardContentGroup")}),n.usageSupported===!0&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.usageDisplayHelp"),children:t("botDefaults.usageDisplay")}),(0,e.jsx)(ct,{dataInput:"usageDisplay",ariaLabel:t("botDefaults.usageDisplay"),value:l,disabled:k!==null,options:N,onChange:b=>{let P=l;i(b),x({usageDisplay:b},"usage",()=>i(P))}})]})}),(0,e.jsx)("div",{className:"bd-card-control-list",children:(0,e.jsx)(dt,{checked:f,disabled:k!==null,dataAction:"toggle-writable-link",title:t("botDefaults.writableLink"),description:t("botDefaults.writableLinkDescription"),help:t("botDefaults.writableLinkHelp"),onChange:b=>{let P=f;p(b),x({writableTerminalLinkInCard:b},"writable",()=>p(P))}})})]}),(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-manual-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardManualGroup")}),(0,e.jsx)("p",{className:"bd-card-setting-copy",children:t("botDefaults.manualCardIntro")}),(0,e.jsx)("div",{className:"bd-card-control-list",children:(0,e.jsx)(dt,{checked:u,disabled:k!==null,dataAction:"toggle-private-card",title:t("botDefaults.privateCard"),description:t("botDefaults.privateCardDescription"),help:t("botDefaults.privateCardHelp"),onChange:b=>{let P=u;h(b),x({privateCard:b},"private",()=>h(P))}})})]})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:T,attr:{"data-card-pref-status":""}})})]})}function Bn(a){let t=V(),[n,r]=(0,o.useState)(a.bot.codexAppCleanInput===!0),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function m(d){let f=n;r(d),s(!0),i(null);try{let p=await a.putCardPref({codexAppCleanInput:d});p.ok?i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(r(f),i({text:`\u2717 ${J(p)}`}))}catch(p){r(f),i({text:`\u2717 ${H(p)}`})}finally{s(!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)(dt,{checked:n,disabled:c,dataAction:"toggle-codex-app-clean-input",title:t("botDefaults.codexAppCleanInput"),help:t("botDefaults.codexAppCleanInputHelp"),onChange:d=>{m(d)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.codexAppCleanInputCompat")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:l,attr:{"data-codex-app-clean-input-status":""}})})]})}function Ln(a){let t=V(),[n,r]=(0,o.useState)(a.bot.envelopeInjection==="auto"),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.envelopeInjection==="auto"),[a.bot.envelopeInjection]);async function m(d){let f=n;r(d),s(!0),i(null);try{let p=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/envelope-injection`,{envelopeInjection:d?"auto":"off"});if(p.ok&&p.body.ok){let u=p.body.envelopeInjection==="auto";r(u),a.patchBot(a.bot.larkAppId,{envelopeInjection:u?"auto":"off"}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else r(f),i({text:`\u2717 ${J(p)}`})}catch(p){r(f),i({text:`\u2717 ${H(p)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-envelope-injection":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.envelopeInjection")}),(0,e.jsx)(dt,{checked:n,disabled:c,dataAction:"toggle-envelope-injection",title:t("botDefaults.envelopeInjectionAuto"),help:t("botDefaults.envelopeInjectionHelp"),onChange:d=>{m(d)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.envelopeInjectionNote")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:l,attr:{"data-envelope-injection-status":""}})})]})}function $n(a){let t=V(),[n,r]=(0,o.useState)(a.bot.senderTag!==!1),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.senderTag!==!1),[a.bot.senderTag]);async function m(d){let f=n;r(d),s(!0),i(null);try{let p=await a.putCardPref({senderTag:d});p.ok?(a.patchBot(a.bot.larkAppId,{senderTag:d}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):(r(f),i({text:`\u2717 ${J(p)}`}))}catch(p){r(f),i({text:`\u2717 ${H(p)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-sender-tag":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.senderTag")}),(0,e.jsx)(dt,{checked:n,disabled:c,dataAction:"toggle-sender-tag",title:t("botDefaults.senderTagInject"),help:t("botDefaults.senderTagHelp"),onChange:d=>{m(d)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.senderTagNote")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:l,attr:{"data-sender-tag-status":""}})})]})}function _n(a){let t=V(),[n,r]=(0,o.useState)(a.bot.botToBotSameDir!==!1),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function m(d){r(d),s(!0),i(null);try{let f=await a.putCardPref({botToBotSameDir:d});i(f.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${J(f)}`})}catch(f){i({text:`\u2717 ${H(f)}`})}finally{s(!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)(dt,{checked:n,disabled:c,dataAction:"toggle-cross-bot-samedir",title:t("botDefaults.botToBotSameDir"),help:t("botDefaults.botToBotSameDirHelp"),onChange:d=>{m(d)}}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:l,attr:{"data-crossbot-status":""}})})]})}function En(a){let t=V(),n=he(a.bot),[r,l]=(0,o.useState)(String(n.limit)),[i,c]=(0,o.useState)(String(n.sinceHours)),[s,m]=(0,o.useState)(a.bot.summaryMemory===!0),[d,f]=(0,o.useState)(ge(a.bot)),[p,u]=(0,o.useState)(null),[h,w]=(0,o.useState)(null),[R,T]=(0,o.useState)(!1),[v,k]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let N=he(a.bot);l(String(N.limit)),c(String(N.sinceHours)),m(a.bot.summaryMemory===!0),f(ge(a.bot))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours,a.bot.summaryMemory,a.bot.summaryMemoryPath]);async function y(){u(null);let N=ra(r,50),b=ra(i,24);if(N==null||b==null){u({text:`\u2717 ${t("botDefaults.summaryNumberInvalid")}`});return}T(!0);try{let P=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:N,sinceHours:b});if(P.ok&&P.body.ok){let B=P.body.summaryRange??{limit:N,sinceHours:b},O=he({...a.bot,summaryRange:B});l(String(O.limit)),c(String(O.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:B}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else u({text:`\u2717 ${J(P)}`})}catch(P){u({text:`\u2717 ${H(P)}`})}finally{T(!1)}}async function x(N,b=d){let P=s,B=d,O=ka(b);m(N),f(O),w(null),k(!0);try{let M=await a.putCardPref({summaryMemory:N,summaryMemoryPath:O});if(M.ok&&M.body.ok){let z=M.body.summaryMemory===!0,X=ge({...a.bot,summaryMemoryPath:M.body.summaryMemoryPath});m(z),f(X),a.patchBot(a.bot.larkAppId,{summaryMemory:z,summaryMemoryPath:X}),w({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else m(P),f(B),w({text:`\u2717 ${J(M)}`})}catch(M){m(P),f(B),w({text:`\u2717 ${H(M)}`})}finally{k(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(j,{help:t("botDefaults.summaryLimitHelp"),children:t("botDefaults.sectionSummaryTrigger")})}),(0,e.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryLimit")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:r,disabled:R,onChange:N=>l(N.currentTarget.value)})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summarySinceHours")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:i,disabled:R,onChange:N=>c(N.currentTarget.value)})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:R,onClick:()=>{y()},children:t("botDefaults.summarySave")}),(0,e.jsx)(Z,{status:p,attr:{"data-summary-trigger-status":""}})]}),(0,e.jsx)(dt,{checked:s,disabled:v,title:t("botDefaults.summaryMemory"),help:t("botDefaults.summaryMemoryHelp"),onChange:N=>{x(N)}}),(0,e.jsx)("div",{className:"bd-row bd-summary-limits",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryMemoryPath")}),(0,e.jsx)("input",{type:"text","data-input":"summaryMemoryPath",value:d,disabled:v,onChange:N=>f(N.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-memory-path",disabled:v,onClick:()=>{x(s,d)},children:t("botDefaults.summaryMemoryPathSave")})}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:h,attr:{"data-summary-memory-status":""}})})]})}function ka(a){return a.trim()||"summary.md"}function ge(a){return ka(typeof a.summaryMemoryPath=="string"?a.summaryMemoryPath:"")}function he(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 Fn(a){let t=V(),[n,r]=(0,o.useState)(te(a.bot.p2pMode)),[l,i]=(0,o.useState)(pa(a.bot)),[c,s]=(0,o.useState)(ga(a.bot)),[m,d]=(0,o.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[f,p]=(0,o.useState)(null),[u,h]=(0,o.useState)(null),[w,R]=(0,o.useState)(null),[T,v]=(0,o.useState)(null),[k,y]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(te(a.bot.p2pMode)),i(pa(a.bot)),s(ga(a.bot)),d(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function x(M){let z=te(M);r(z),p("p2p"),h(null);try{let X=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:z});X.ok&&X.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:te(X.body.p2pMode)}),h({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):h({text:`\u2717 ${J(X)}`})}catch(X){h({text:`\u2717 ${H(X)}`})}finally{p(null)}}async function N(M,z,X){p(M),X(null);try{let tt=await a.putCardPref(z);X(tt.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${J(tt)}`})}catch(tt){X({text:`\u2717 ${H(tt)}`})}finally{p(null)}}let b=[{value:"thread",label:t("botDefaults.p2pThread")},{value:"chat",label:t("botDefaults.p2pChat")},{value:"group",label:t("botDefaults.p2pGroup")}],P=[{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")}],B=[{value:"always",label:t("botDefaults.mentionModeAlways")},{value:"topic",label:t("botDefaults.mentionModeTopic")},{value:"never",label:t("botDefaults.mentionModeNever")},{value:"ambient",label:t("botDefaults.mentionModeAmbient")}],O=[{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)(j,{help:t("botDefaults.p2pHelp"),children:t("botDefaults.p2pMode")}),(0,e.jsx)(ct,{dataInput:"p2pMode",ariaLabel:t("botDefaults.p2pMode"),value:n,disabled:f==="p2p",options:b,onChange:M=>{x(M)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:u,attr:{"data-p2p-status":""}})})]}),n==="group"&&(0,e.jsx)(qn,{bot:a.bot}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.regularGroupModeHelp"),children:t("botDefaults.regularGroupMode")}),(0,e.jsx)(ct,{dataInput:"regularGroupMode",ariaLabel:t("botDefaults.regularGroupMode"),value:l,disabled:f==="regular",options:P,onChange:M=>{i(M),N("regular",{regularGroupReplyMode:M},R)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:w,attr:{"data-regular-group-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.mentionModeHelp"),children:t("botDefaults.mentionMode")}),(0,e.jsx)(ct,{dataInput:"regularGroupMentionMode",ariaLabel:t("botDefaults.mentionMode"),value:c,disabled:f==="mention",options:B,onChange:M=>{s(M),N("mention",{regularGroupMentionMode:M},v)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:T,attr:{"data-mention-mode-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.docSubscribeModeHelp"),children:t("botDefaults.docSubscribeMode")}),(0,e.jsx)(ct,{dataInput:"docSubscribeDefaultMode",ariaLabel:t("botDefaults.docSubscribeMode"),value:m,disabled:f==="doc",options:O,onChange:M=>{d(M),N("doc",{docSubscribeDefaultMode:M},y)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:k,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function Un(a){let t=V(),n=a.bot.substituteMode??null,[r,l]=(0,o.useState)(n?.enabled===!0);function i(S){switch(S){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[c,s]=(0,o.useState)(n?.disclosure==="none"?"none":"prefix"),[m,d]=(0,o.useState)(n?.replyMode==="quote"?"quote":"thread"),[f,p]=(0,o.useState)(n?.disableControlCard!==!0),[u,h]=(0,o.useState)(()=>Tt(n?.chats)),[w,R]=(0,o.useState)(()=>Tt(n?.excludedChats)),[T,v]=(0,o.useState)(n?.topicGroups!==!1),[k,y]=(0,o.useState)(n?.topicActiveSessionTrigger!==!1),[x,N]=(0,o.useState)(null),[b,P]=(0,o.useState)(!1),B=(0,o.useRef)(0),O=(0,o.useRef)(!1);function M(S){let L=an(S);return{key:++B.current,idField:L,idValue:S?.[L]??"",name:S?.name??"",persisted:S?{...S}:{},originalIdField:S?L:void 0,resolution:S?.name||S?.avatarUrl?{ok:!0,name:S.name,avatarUrl:S.avatarUrl}:void 0}}let z=(0,o.useRef)(new Map);async function X(S){let L=(z.current.get(S)??0)+1;z.current.set(S,L);let U=()=>z.current.get(S)===L;g(G=>G.map(W=>W.key===S?{...W,resolving:!0}:W));try{let G=tt.find(ot=>ot.key===S);if(!G)return;let W=G.idValue.trim();if(!W){g(ot=>ot.map(st=>st.key===S?{...st,resolving:!1,resolution:void 0}:st));return}let Y={[G.idField]:W};G.name.trim()&&(Y.name=G.name.trim());let it=await Ee(a.bot.larkAppId,Y);if(!U())return;g(ot=>ot.map(st=>{if(st.key!==S)return st;if(!it.ok)return{...st,resolving:!1,resolution:{ok:!1}};let ut=it.resolution;if(ut?.ok===!0){if(!ut.openId)return{...st,resolving:!1,resolution:void 0};let lt={...st.persisted};return lt.openId=ut.openId,ut.name&&(lt.name=ut.name),ut.avatarUrl&&(lt.avatarUrl=ut.avatarUrl),{...st,name:ut.name??st.name,persisted:lt,resolving:!1,resolution:{ok:!0,name:ut.name,avatarUrl:ut.avatarUrl}}}return{...st,resolving:!1,resolution:{ok:!1,reason:ut?.reason}}}))}catch{if(!U())return;g(G=>G.map(W=>W.key===S?{...W,resolving:!1,resolution:{ok:!1}}:W))}}let[tt,g]=(0,o.useState)(()=>{let S=n?.targets??[];return S.length?S.map(L=>M(L)):[M()]});(0,o.useEffect)(()=>{if(O.current){O.current=!1;return}let S=a.bot.substituteMode??null;l(S?.enabled===!0),s(S?.disclosure==="none"?"none":"prefix"),d(S?.replyMode==="quote"?"quote":"thread"),p(S?.disableControlCard!==!0),h(Tt(S?.chats)),R(Tt(S?.excludedChats)),v(S?.topicGroups!==!1),y(S?.topicActiveSessionTrigger!==!1);let L=S?.targets??[];g(L.length?L.map(U=>M(U)):[M()])},[a.bot.larkAppId,a.bot.substituteMode]);async function E(S){P(!0),N(null);try{let L=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,S);if(L.ok&&L.body.ok){let U=L.body.substituteMode&&typeof L.body.substituteMode=="object"?L.body.substituteMode:null,G=Array.isArray(L.body?.resolution)?L.body.resolution:[],W=G.filter(Y=>Y?.ok===!1).map(Y=>String(Y.input??"").trim()).filter(Boolean);if(l(U?.enabled===!0),s(U?.disclosure==="none"?"none":"prefix"),d(U?.replyMode==="quote"?"quote":"thread"),p(U?.disableControlCard!==!0),h(Tt(U?.chats)),R(Tt(U?.excludedChats)),v(U?.topicGroups!==!1),y(U?.topicActiveSessionTrigger!==!1),G.length)O.current=!0,g(Y=>{let it=[...G];return Y.map(ot=>{let st=ot.idValue.trim(),ut=it.findIndex(F=>String(F.input??"").trim()===st);if(ut<0)return ot;let lt=it.splice(ut,1)[0];if(lt?.ok===!0){let F={...ot.persisted};return lt.openId&&(F.openId=lt.openId),ot.idField==="email"&&(F.email=st),lt.name&&(F.name=lt.name),lt.avatarUrl&&(F.avatarUrl=lt.avatarUrl),{...ot,name:lt.name??ot.name,persisted:F,resolution:{ok:!0,name:lt.name,avatarUrl:lt.avatarUrl}}}return{...ot,resolution:{ok:!1,reason:lt?.reason}}})});else{let Y=U?.targets??[];g(Y.length?Y.map(it=>M(it)):[M()])}a.patchBot(a.bot.larkAppId,{substituteMode:U}),N(W.length?{text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${W.join(", ")}`}:{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else{let U=Array.isArray(L.body?.resolution)?L.body.resolution.filter(G=>G?.ok===!1).map(G=>String(G.input??"").trim()).filter(Boolean):[];N({text:U.length?`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${U.join(", ")}`:`\u2717 ${J(L)}`})}}catch(L){N({text:`\u2717 ${H(L)}`})}finally{P(!1)}}function C(){let S=[],L=!1;for(let U of tt){let G=nn(U);if(!G){L||=!!U.name.trim();continue}S.push(G)}if(L||r&&S.length===0){N({text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}`});return}E({enabled:r,targets:S,disclosure:c,chats:la(u),excludedChats:la(w),replyMode:m,disableControlCard:!f,topicGroups:T,topicActiveSessionTrigger:k})}let $=[{value:"prefix",label:t("botDefaults.substituteDisclosurePrefix")},{value:"none",label:t("botDefaults.substituteDisclosureNone")}],_=[{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)(dt,{checked:r,disabled:b,dataAction:"toggle-substitute-mode",title:t("botDefaults.substituteEnabled"),help:t("botDefaults.substituteHelp"),onChange:l}),(0,e.jsx)(dt,{checked:T,disabled:b,dataAction:"toggle-substitute-topic-groups",title:t("botDefaults.substituteTopicGroups"),help:t("botDefaults.substituteTopicGroupsHelp"),onChange:v}),(0,e.jsx)(dt,{checked:k,disabled:b||!T,dataAction:"toggle-substitute-topic-active",title:t("botDefaults.substituteTopicActive"),help:t("botDefaults.substituteTopicActiveHelp"),onChange:y}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{children:t("botDefaults.substituteDisclosure")}),(0,e.jsx)(ct,{dataInput:"substituteDisclosure",ariaLabel:t("botDefaults.substituteDisclosure"),value:c,disabled:b,options:$,onChange:S=>s(S)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.substituteReplyModeHelp"),children:t("botDefaults.substituteReplyMode")}),(0,e.jsx)(ct,{dataInput:"substituteReplyMode",ariaLabel:t("botDefaults.substituteReplyMode"),value:m,disabled:b,options:_,onChange:S=>d(S)})]})}),(0,e.jsx)(dt,{checked:f,disabled:b,dataAction:"toggle-substitute-control-card",title:t("botDefaults.substituteControlCard"),help:t("botDefaults.substituteControlCardHelp"),onChange:p}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:t("botDefaults.substituteChatsHelp"),children:t("botDefaults.substituteChats")}),(0,e.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:t("botDefaults.substituteChatsPlaceholder"),value:u,disabled:b,onChange:S=>h(S.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:t("botDefaults.substituteExcludedChatsHelp"),children:t("botDefaults.substituteExcludedChats")}),(0,e.jsx)("textarea",{"data-input":"substituteExcludedChats",rows:3,placeholder:t("botDefaults.substituteExcludedChatsPlaceholder"),value:w,disabled:b,onChange:S=>R(S.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,e.jsx)(j,{help:t("botDefaults.substituteTargetsHelp"),children:t("botDefaults.substituteTargets")}),(0,e.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[tt.map((S,L)=>(0,e.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,e.jsx)(ct,{dataInput:`substituteTargetType-${S.key}`,className:"bd-substitute-target-type",ariaLabel:`${t("botDefaults.substituteTargetType")} ${L+1}`,value:S.idField,disabled:b,options:ye.map(U=>({value:U,label:t(`botDefaults.substituteTarget${U[0].toUpperCase()}${U.slice(1)}`)})),onChange:U=>{g(G=>G.map(W=>W.key===S.key?{...W,idField:U,idValue:W.persisted[U]??"",resolution:void 0}:W))}}),(0,e.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${S.key}`,"aria-label":`${t("botDefaults.substituteTargetType")} ${L+1}`,placeholder:t("botDefaults.substituteTargetIdPlaceholder"),value:S.idValue,disabled:b,onChange:U=>{let G=U.currentTarget.value;g(W=>W.map(Y=>Y.key===S.key?{...Y,idValue:G,resolution:void 0}:Y))},onBlur:()=>{S.idValue.trim()&&X(S.key)}}),(0,e.jsx)("div",{className:"bd-substitute-target-name",children:S.resolving?(0,e.jsx)("span",{className:"bd-substitute-target-resolving",children:t("botDefaults.substituteResolving")}):S.resolution?.ok===!0&&(S.name||S.resolution.avatarUrl)?(0,e.jsxs)(e.Fragment,{children:[S.resolution.avatarUrl?(0,e.jsx)(Ot,{html:It({name:S.resolution.name,avatarUrl:S.resolution.avatarUrl,size:"sm"})}):null,(0,e.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${S.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${L+1}`,children:S.name})]}):S.resolution?.ok===!1?(0,e.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:i(S.resolution.reason)}):(0,e.jsx)("input",{type:"text","data-input":`substituteTargetName-${S.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${L+1}`,placeholder:t("botDefaults.substituteTargetNamePlaceholder"),value:S.name,disabled:b,onChange:U=>{let G=U.currentTarget.value;g(W=>W.map(Y=>Y.key===S.key?{...Y,name:G}:Y))}})}),(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:b,onClick:()=>{g(U=>{let G=U.filter(W=>W.key!==S.key);return G.length?G:[M()]})},children:(0,e.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},S.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:b,onClick:()=>g(S=>[...S,M()]),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:b,onClick:C,children:t("botDefaults.substituteSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:b,onClick:()=>{E({enabled:!1,targets:[]})},children:t("botDefaults.substituteOff")}),(0,e.jsx)(Z,{status:x,attr:{"data-substitute-status":""}})]})]})}function te(a){return a==="thread"?"thread":a==="group"?"group":"chat"}var jn=15e3;function Gn(){return typeof AbortSignal<"u"&&typeof AbortSignal.timeout=="function"?AbortSignal.timeout(jn):void 0}async function ma(a){try{let t=await fetch("/api/open-platform/repair-redirects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(a?{appIds:a}:{}),signal:Gn()}),n=await t.json().catch(()=>({}));return t.ok&&n?.ok===!0?{kind:"ok",items:Array.isArray(n.results)?n.results:[]}:n?.errorCode==="feishu_login_required"?{kind:"login_required"}:{kind:"error",message:String(n?.message||n?.error||`HTTP ${t.status}`)}}catch(t){return{kind:"error",message:H(t)}}}function Hn(a){return a.kind==="ok"&&a.items.length>0&&a.items.every(t=>t.status==="fixed"||t.status==="unchanged")}function Wn(a,t){if(t.status==="fixed")return a("botDefaults.sgTagRepairStatusFixed");if(t.status==="unchanged")return a("botDefaults.sgTagRepairStatusUnchanged");let n=t.status==="partial"?a("botDefaults.sgTagRepairStatusPartial"):t.status==="not_owned"?a("botDefaults.sgTagRepairStatusNotOwned"):a("botDefaults.sgTagRepairStatusFailed"),r=t.message||(t.missingRedirectUrls?.length?t.missingRedirectUrls.join("\u3001"):"");return r?a("botDefaults.sgTagRepairStatusDetail",{status:n,detail:r}):n}function qn(a){let t=V(),[n,r]=(0,o.useState)(null),[l,i]=(0,o.useState)(!1),[c,s]=(0,o.useState)(!1),[m,d]=(0,o.useState)(null),[f,p]=(0,o.useState)(""),[u,h]=(0,o.useState)(!1),[w,R]=(0,o.useState)(null),[T,v]=(0,o.useState)(""),[k,y]=(0,o.useState)(""),[x,N]=(0,o.useState)(!1),[b,P]=(0,o.useState)(null),[B,O]=(0,o.useState)(!1),[M,z]=(0,o.useState)(!1),[X,tt]=(0,o.useState)(!1),[g,E]=(0,o.useState)(!1),C=(0,o.useRef)({generation:0,mounted:!0}),$=async(F=C.current.generation,at=!1)=>{try{let K=await Q("GET",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-status`);if(C.current.mounted&&F===C.current.generation&&K.ok&&K.body.ok){let rt=String(K.body.tagName??"");return r({authorized:!!K.body.authorized,tagMode:String(K.body.tagMode??"feed-group"),tagName:rt,defaultTagName:String(K.body.defaultTagName??"")}),at&&p(rt),!!K.body.authorized}}catch{}return!1};(0,o.useEffect)(()=>{C.current.mounted=!0;let F=++C.current.generation;return r(null),i(!1),s(!1),d(null),v(""),y(""),N(!1),P(null),O(!1),z(!1),tt(!1),E(!1),p(""),h(!1),R(null),$(F,!0),()=>{C.current.mounted=!1,C.current.generation+=1}},[a.bot.larkAppId]);async function _(F){let at=C.current.generation;s(!0),d(null);try{let K=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-config`,{mode:F});if(!C.current.mounted||at!==C.current.generation)return;K.ok&&K.body.ok?r(rt=>({authorized:rt?.authorized??!1,tagMode:String(K.body.tagMode),tagName:String(K.body.tagName??rt?.tagName??""),defaultTagName:String(K.body.defaultTagName??rt?.defaultTagName??"")})):d(J(K))}catch(K){C.current.mounted&&at===C.current.generation&&d(H(K))}finally{C.current.mounted&&at===C.current.generation&&s(!1)}}async function S(){let F=C.current.generation,at=f.trim();if(at===(n?.tagName??"")){p(at);return}h(!0),R(null),d(null);try{let K=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-config`,{name:at});if(!C.current.mounted||F!==C.current.generation)return;if(K.ok&&K.body.ok){let rt=String(K.body.tagName??"");r(pt=>({authorized:pt?.authorized??!1,tagMode:String(K.body.tagMode??pt?.tagMode??"feed-group"),tagName:rt,defaultTagName:String(K.body.defaultTagName??pt?.defaultTagName??"")})),p(rt),R({text:t("botDefaults.sgTagNameSaved"),ok:!0})}else R({text:J(K),ok:!1})}catch(K){C.current.mounted&&F===C.current.generation&&R({text:H(K),ok:!1})}finally{C.current.mounted&&F===C.current.generation&&h(!1)}}async function L(){if(B)return;let F=C.current.generation;O(!0),P(null);let at=await ma(M?void 0:[a.bot.larkAppId]);if(!(!C.current.mounted||F!==C.current.generation)){if(O(!1),at.kind==="login_required"){tt(!0);return}P(at.kind==="ok"?{kind:"done",items:at.items}:{kind:"error",message:at.message})}}async function U(){let F=++C.current.generation;i(!0),d(null),y(""),E(!1),P(null),O(!0);try{let at=await ma([a.bot.larkAppId]);if(!C.current.mounted||F!==C.current.generation)return;O(!1),Hn(at)||P(at.kind==="login_required"?{kind:"login_required"}:at.kind==="error"?{kind:"error",message:at.message}:{kind:"done",items:at.items});let K=await Q("POST",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-auth`,{});if(!C.current.mounted||F!==C.current.generation)return;if(!K.ok||!K.body.ok||!K.body.authUrl){d(J(K));return}let rt=String(K.body.authUrl);v(rt),window.open(rt,"_blank","noopener");for(let pt=0;pt<60;pt++){if(await new Promise(_t=>setTimeout(_t,3e3)),!C.current.mounted||F!==C.current.generation)return;if(await $(F)){C.current.mounted&&F===C.current.generation&&(C.current.generation+=1,v(""),y(""),N(!1),i(!1),d(null));return}}C.current.mounted&&F===C.current.generation&&E(!0)}catch(at){C.current.mounted&&F===C.current.generation&&d(H(at))}finally{C.current.mounted&&F===C.current.generation&&(i(!1),O(!1))}}async function G(){let F=C.current.generation,at=k.trim();if(!at)return;N(!0),d(null);let K=()=>{!C.current.mounted||F!==C.current.generation||(C.current.generation+=1,v(""),y(""),N(!1),i(!1))};try{let rt=await Q("POST","/api/feed-groups/oauth-callback",{callbackUrl:at});if(!C.current.mounted||F!==C.current.generation)return;if(!rt.ok||!rt.body.ok){if(await $(F))return void K();if(C.current.mounted&&F===C.current.generation){let pt=String(rt.body?.message||J(rt));d(pt.replace(/^[❌✅]\s*/u,""))}return}if(await $(F))return void K();C.current.mounted&&F===C.current.generation&&d(t("botDefaults.sgTagAuthNotConfirmed"))}catch(rt){C.current.mounted&&F===C.current.generation&&d(H(rt))}finally{C.current.mounted&&F===C.current.generation&&N(!1)}}let W=n?.tagMode??"feed-group",Y=n?.authorized===!0,it=[{value:"feed-group",label:t("botDefaults.sgTagModeFeedGroup")},{value:"chat-tag",label:t("botDefaults.sgTagModeChatTag")},{value:"off",label:t("botDefaults.sgTagModeOff")}],ot=jt(a.bot.larkAppId,a.bot.brand),st=ot?`${ot}/safe`:null,ut=(0,e.jsx)("button",{type:"button",className:"bd-sg-repair-link","data-action":"session-group-tag-repair",disabled:B,onClick:()=>{L()},children:t(B?"botDefaults.sgTagRepairBusy":"botDefaults.sgTagRepairEntry")}),lt=(0,e.jsxs)("p",{className:"bd-sg-repair-hint","data-sg-tag-auth-timeout":!0,children:[(0,e.jsx)("span",{children:t("botDefaults.sgTagAuthTimeoutHint")}),ut,st?(0,e.jsx)("a",{className:"bd-console-link",href:st,target:"_blank",rel:"noopener noreferrer",children:t("botDefaults.sgTagAuthTimeoutOpenSafe")}):null]});return(0,e.jsxs)("div",{className:"bd-row","data-session-group-tag-row":!0,children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.sgTagHelp"),children:t("botDefaults.sgTag")}),(0,e.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,e.jsx)(ct,{dataInput:"sessionGroupTagMode",ariaLabel:t("botDefaults.sgTag"),value:W,disabled:c||!n,options:it,onChange:F=>{_(F)}}),W==="chat-tag"&&(0,e.jsx)("span",{"data-sg-tag-state":"tenant",children:t("botDefaults.sgTagChatTagNote")}),W==="feed-group"&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{"data-sg-tag-state":Y?"authorized":"unauthorized",children:Y?`\u{1F7E2} ${t("botDefaults.sgTagAuthorized")}`:`\u26AA ${t("botDefaults.sgTagUnauthorized")}`}),!Y&&(0,e.jsx)("button",{type:"button",className:"primary","data-action":"session-group-tag-auth",disabled:l,onClick:()=>{U()},children:t(l?"botDefaults.sgTagAuthWaiting":"botDefaults.sgTagAuthStart")}),ut,(0,e.jsxs)("label",{className:"bd-sg-repair-all",children:[(0,e.jsx)("input",{type:"checkbox","data-input":"sessionGroupTagRepairAll",checked:M,disabled:B,onChange:F=>z(F.currentTarget.checked)}),t("botDefaults.sgTagRepairAllLabel")]})]}),m&&(0,e.jsxs)("span",{className:"status-error",children:["\u2717 ",m]})]}),W!=="off"?(0,e.jsxs)("div",{className:"bd-sg-tag-name","data-sg-tag-name-row":!0,children:[(0,e.jsx)("label",{htmlFor:"sg-tag-name-input",children:t("botDefaults.sgTagName")}),(0,e.jsx)("input",{id:"sg-tag-name-input",type:"text","data-input":"sessionGroupTagName","aria-label":t("botDefaults.sgTagName"),placeholder:n?.defaultTagName??"",maxLength:Ya,value:f,disabled:u||!n,onChange:F=>{p(F.currentTarget.value),R(null)},onBlur:()=>{S()},onKeyDown:F=>{F.key==="Enter"&&(F.preventDefault(),F.currentTarget.blur())}}),(0,e.jsx)(Z,{status:w,attr:{"data-sg-tag-name-status":""}}),(0,e.jsx)("small",{className:"bd-sg-tag-name-hint",children:t("botDefaults.sgTagNameHint",{name:n?.defaultTagName??""})})]}):null,W==="feed-group"&&b?(0,e.jsx)("div",{className:"bd-sg-repair-hint","data-sg-tag-repair-feedback":b.kind,children:b.kind==="login_required"?(0,e.jsx)("button",{type:"button",className:"bd-sg-repair-link","data-action":"session-group-tag-repair-login",onClick:()=>tt(!0),children:t("botDefaults.sgTagRepairNeedLogin")}):b.kind==="error"?(0,e.jsx)("span",{children:t("botDefaults.sgTagRepairFailed",{reason:b.message})}):b.items.map(F=>(0,e.jsx)("span",{"data-sg-tag-repair-item":F.status,children:`${F.appId}: ${Wn(t,F)}`},F.appId))}):null,g&&!T?lt:null]}),X?(0,e.jsx)(ae,{onClose:()=>tt(!1),onSuccess:()=>{tt(!1),L()}}):null,T&&typeof document<"u"?(0,ee.createPortal)((0,e.jsx)("div",{className:"feed-group-auth-overlay",children:(0,e.jsxs)("section",{className:"feed-group-auth-card",role:"dialog","aria-modal":"true","aria-labelledby":"sg-tag-auth-title",children:[(0,e.jsx)("h3",{id:"sg-tag-auth-title",children:t("botDefaults.sgTagAuthTitle")}),(0,e.jsx)("p",{children:t("botDefaults.sgTagAuthHint")}),(0,e.jsx)("button",{type:"button",className:"primary feed-group-auth-open",onClick:()=>window.open(T,"_blank","noopener"),children:t("botDefaults.sgTagAuthOpen")}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.sgTagAuthPasteLabel")}),(0,e.jsx)("input",{type:"url","data-input":"sessionGroupTagCallbackUrl",value:k,placeholder:"http://127.0.0.1:9768/callback?code=\u2026&state=\u2026",onChange:F=>y(F.currentTarget.value)})]}),g?lt:null,(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button","data-action":"session-group-tag-cancel",onClick:()=>{C.current.generation+=1,v(""),y(""),N(!1),i(!1)},children:t("botDefaults.sgTagAuthCancel")}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"session-group-tag-complete",disabled:!k.trim()||x,onClick:()=>{G()},children:t(x?"botDefaults.sgTagAuthSubmitting":"botDefaults.sgTagAuthComplete")})]})]})}),document.body):null]})}function pa(a){return a.regularGroupReplyMode==="chat"||a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"?a.regularGroupReplyMode:"chat-topic"}function ga(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function Jn(a){let t=V(),n=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,r=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,l=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,i=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[c,s]=(0,o.useState)(n),m=c??30,[d,f]=(0,o.useState)(n==null?"":String(n)),[p,u]=(0,o.useState)(null),[h,w]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let v=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;s(v),f(v==null?"":String(v))},[a.bot.maxLiveWorkers]);async function R(v){u(null),w(!0);try{let k=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:v});if(k.ok&&k.body.ok){let y=typeof k.body.maxLiveWorkers=="number"?k.body.maxLiveWorkers:null;s(y),f(y==null?"":String(y)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:y}),u({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else u({text:`\u2717 ${J(k)}`})}catch(k){u({text:`\u2717 ${H(k)}`})}finally{w(!1)}}function T(){let v=ha(d);if(v==="invalid"){u({text:`\u2717 ${t("botDefaults.maxLiveWorkersInvalid")}`});return}R(v)}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSessionCap")}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{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:d,disabled:h,onChange:v=>f(v.currentTarget.value)})]}),(0,e.jsx)("small",{"data-session-cap-state":!0,children:rn(c,t)}),(0,e.jsx)("small",{className:"bd-help bd-session-residency",children:t("botDefaults.maxLiveWorkersUsage",{resident:l,cap:m,dormant:i,logical:r})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:h,onClick:T,children:t("botDefaults.maxLiveWorkersSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:h,onClick:()=>{f(""),R(null)},children:t("botDefaults.maxLiveWorkersOff")}),(0,e.jsx)(Z,{status:p,attr:{"data-session-cap-status":""}})]})]})}function Vn(a){let t=V(),[n,r]=(0,o.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function m(){i(null),s(!0);try{let d=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:n});if(d.ok&&d.body.ok){let f=typeof d.body.startupCommands=="string"?d.body.startupCommands:"";r(f),a.patchBot(a.bot.larkAppId,{startupCommands:f}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${J(d)}`})}catch(d){i({text:`\u2717 ${H(d)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(j,{help:t("botDefaults.startupCommandsHelp"),children:t("botDefaults.sectionStartupCommands")})}),(0,e.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:t("botDefaults.startupCommandsPlaceholder"),value:n,disabled:c,onChange:d=>r(d.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:c,onClick:()=>{m()},children:t("botDefaults.startupCommandsSave")}),(0,e.jsx)(Z,{status:l,attr:{"data-startup-commands-status":""}})]})]})}function zn(a){let t=V(),[n,r]=(0,o.useState)(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:""),[l,i]=(0,o.useState)(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:""),[c,s]=(0,o.useState)(null),[m,d]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:"")},[a.bot.customPassthroughCommands]),(0,o.useEffect)(()=>{i(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:"")},[a.bot.canTalkDaemonCommands]);async function f(){s(null),d("passthrough");try{let u=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:n});if(u.ok&&u.body.ok){let h=typeof u.body.customPassthroughCommands=="string"?u.body.customPassthroughCommands:"";r(h),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:h}),s({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${J(u)}`})}catch(u){s({text:`\u2717 ${H(u)}`})}finally{d(null)}}async function p(){s(null),d("cantalk");try{let u=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:l});if(u.ok&&u.body.ok){let h=typeof u.body.canTalkDaemonCommands=="string"?u.body.canTalkDaemonCommands:"";i(h),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:h}),s({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${J(u)}`})}catch(u){s({text:`\u2717 ${H(u)}`})}finally{d(null)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(j,{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)(j,{help:t("botDefaults.customPassthroughHelp"),children:t("botDefaults.customPassthrough")})}),(0,e.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:t("botDefaults.customPassthroughPlaceholder"),value:n,disabled:m==="passthrough",onChange:u=>r(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:()=>{f()},children:t("botDefaults.customPassthroughSave")})})]}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(j,{help:t("botDefaults.canTalkDaemonHelp"),children:t("botDefaults.canTalkDaemon")})}),(0,e.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:t("botDefaults.canTalkDaemonPlaceholder"),value:l,disabled:m==="cantalk",onChange:u=>i(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:()=>{p()},children:t("botDefaults.canTalkDaemonSave")})})]}),(0,e.jsx)(Z,{status:c,attr:{"data-slash-commands-status":""}})]})}function Kn(a){let t=V(),[n,r]=(0,o.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function m(){i(null),s(!0);try{let d=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:n});if(d.ok&&d.body.ok){let f=typeof d.body.launchShell=="string"?d.body.launchShell:"";r(f),a.patchBot(a.bot.larkAppId,{launchShell:f}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${J(d)}`})}catch(d){i({text:`\u2717 ${H(d)}`})}finally{s(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(j,{help:t("botDefaults.launchShellHelp"),children:t("botDefaults.sectionLaunchShell")})}),(0,e.jsx)("input",{type:"text","data-input":"launchShell",placeholder:t("botDefaults.launchShellPlaceholder"),value:n,disabled:c,onChange:d=>r(d.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:c,onClick:()=>{m()},children:t("botDefaults.launchShellSave")}),(0,e.jsx)(Z,{status:l,attr:{"data-launch-shell-status":""}})]})]})}function Qn(a){let t=V(),[n,r]=(0,o.useState)(typeof a.bot.env=="string"?a.bot.env:""),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function m(){i(null),s(!0);try{let d=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:n});if(d.ok&&d.body.ok){let f=typeof d.body.env=="string"?d.body.env:"";r(f),a.patchBot(a.bot.larkAppId,{env:f}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${J(d)}`})}catch(d){i({text:`\u2717 ${H(d)}`})}finally{s(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(j,{help:t("botDefaults.envHelp"),children:t("botDefaults.sectionEnv")})}),(0,e.jsx)("textarea",{"data-input":"env",rows:5,placeholder:t("botDefaults.envPlaceholder"),value:n,disabled:c,onChange:d=>r(d.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:c,onClick:()=>{m()},children:t("botDefaults.envSave")}),(0,e.jsx)(Z,{status:l,attr:{"data-env-status":""}})]})]})}var Xn=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],Yn=["","low","medium","high","xhigh"],Zn=["boe","cn"];function to(a){let t=V(),n=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[r,l]=(0,o.useState)(typeof n.baseUrl=="string"?n.baseUrl:""),[i,c]=(0,o.useState)(n.sandboxCluster==="cn"?"cn":"boe"),[s,m]=(0,o.useState)(typeof n.model=="string"?n.model:""),[d,f]=(0,o.useState)(typeof n.reasoningEffort=="string"?n.reasoningEffort:""),[p,u]=(0,o.useState)(typeof n.jwtEnv=="string"?n.jwtEnv:""),[h,w]=(0,o.useState)(typeof n.systemPrompt=="string"?n.systemPrompt:""),[R,T]=(0,o.useState)(Array.isArray(n.setupCommands)?n.setupCommands.join(`
|
|
8
|
-
`):""),[v,k]=(0,o.useState)(null),[y,x]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let b=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};l(typeof b.baseUrl=="string"?b.baseUrl:""),c(b.sandboxCluster==="cn"?"cn":"boe"),m(typeof b.model=="string"?b.model:""),f(typeof b.reasoningEffort=="string"?b.reasoningEffort:""),u(typeof b.jwtEnv=="string"?b.jwtEnv:""),w(typeof b.systemPrompt=="string"?b.systemPrompt:""),T(Array.isArray(b.setupCommands)?b.setupCommands.join(`
|
|
9
|
-
`):"")},[a.bot.riff]);async function N(){k(null),x(!0);try{let b={};r.trim()&&(b.baseUrl=r.trim()),b.sandboxCluster=i,s.trim()&&(b.model=s.trim()),d&&(b.reasoningEffort=d),p.trim()&&(b.jwtEnv=p.trim()),h.trim()&&(b.systemPrompt=h.trim()),R.trim()&&(b.setupCommands=R.split(`
|
|
10
|
-
`).map(O=>O.trim()).filter(Boolean));let P=Object.keys(b).length?JSON.stringify(b):"",B=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:P});if(B.ok&&B.body.ok){let O=typeof B.body.riff=="string"&&B.body.riff?JSON.parse(B.body.riff):null;a.patchBot(a.bot.larkAppId,{riff:O});let M=await a.persistCliSelection?.();if(M&&!M.ok){k({text:`\u2717 ${M.note||t("botDefaults.riffCliPersistFailed")}`});return}if(M?.hadProblem){k({text:`\u26A0\uFE0F ${M.note}`});return}k({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else k({text:`\u2717 ${J(B)}`})}catch(b){k({text:`\u2717 ${H(b)}`})}finally{x(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(j,{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:r,disabled:y,onChange:b=>l(b.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)(j,{help:t("botDefaults.riffSandboxClusterHelp"),children:t("botDefaults.riffSandboxCluster")})}),(0,e.jsx)(ct,{dataInput:"riff-sandbox-cluster",ariaLabel:t("botDefaults.riffSandboxCluster"),value:i,disabled:y,options:Zn.map(b=>({value:b,label:b.toUpperCase()})),onChange:b=>c(b)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(j,{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:s,disabled:y,onChange:b=>m(b.currentTarget.value)}),(0,e.jsx)("datalist",{id:`riff-model-suggestions-${a.bot.larkAppId}`,children:Xn.map(b=>(0,e.jsx)("option",{value:b},b))})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)(j,{help:t("botDefaults.riffReasoningEffortHelp"),children:t("botDefaults.riffReasoningEffort")})}),(0,e.jsx)(ct,{dataInput:"riff-reasoning-effort",ariaLabel:t("botDefaults.riffReasoningEffort"),value:d,disabled:y,options:Yn.map(b=>({value:b,label:b===""?t("botDefaults.riffReasoningEffortDefault"):b})),onChange:b=>f(b)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(j,{help:t("botDefaults.riffJwtEnvHelp"),children:t("botDefaults.riffJwtEnv")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:t("botDefaults.riffJwtEnvPlaceholder"),value:p,disabled:y,onChange:b=>u(b.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:h,disabled:y,onChange:b=>w(b.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:R,disabled:y,onChange:b=>T(b.currentTarget.value),rows:3})]})}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:y,onClick:()=>{N()},children:t("botDefaults.riffSave")}),(0,e.jsx)(Z,{status:v,attr:{"data-riff-status":""}})]})]})}function eo(a){let t=V(),n=a.bot.brandLabel??null,[r,l]=(0,o.useState)(n),[i,c]=(0,o.useState)(n??""),[s,m]=(0,o.useState)(null),[d,f]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let u=a.bot.brandLabel??null;l(u),c(u??"")},[a.bot.brandLabel]);async function p(u){m(null),f(!0);try{let h=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:u});if(h.ok&&h.body.ok){let w=h.body.brandLabel??null;l(w),c(w??""),a.patchBot(a.bot.larkAppId,{brandLabel:w}),m({text:"\u2713",ok:!0})}else m({text:`\u2717 ${J(h)}`})}catch(h){m({text:`\u2717 ${H(h)}`})}finally{f(!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)(j,{help:t("botDefaults.brandLabelHelp"),children:t("botDefaults.brandLabel")}),(0,e.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:t("botDefaults.brandLabelPlaceholder"),value:i,disabled:d,onChange:u=>c(u.currentTarget.value)})]}),(0,e.jsx)("small",{"data-brand-state":!0,children:on(r,t)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:d,onClick:()=>{p(i)},children:t("botDefaults.brandSave")}),(0,e.jsx)("button",{type:"button","data-action":"reset-brand",disabled:d,onClick:()=>{p(null)},children:t("botDefaults.brandReset")}),(0,e.jsx)(Z,{status:s,attr:{"data-brand-status":""}})]})]})}function ao(a){let t=V(),[n,r]=(0,o.useState)(a.bot.autoGrantRequestCards!==!1),[l,i]=(0,o.useState)(a.bot.restrictGrantCommands===!0),[c,s]=(0,o.useState)(a.bot.p2pOpen===!0),[m,d]=(0,o.useState)(typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null),[f,p]=(0,o.useState)(String(a.bot.grantDefaultDurationMs??36e5)),[u,h]=(0,o.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[w,R]=(0,o.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[T,v]=(0,o.useState)(null),[k,y]=(0,o.useState)(null),[x,N]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(a.bot.autoGrantRequestCards!==!1)},[a.bot.autoGrantRequestCards]),(0,o.useEffect)(()=>{i(a.bot.restrictGrantCommands===!0)},[a.bot.restrictGrantCommands]),(0,o.useEffect)(()=>{s(a.bot.p2pOpen===!0)},[a.bot.p2pOpen]),(0,o.useEffect)(()=>{let g=typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null;d(g),p(String(g??36e5))},[a.bot.grantDefaultDurationMs]),(0,o.useEffect)(()=>{let g=typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null;h(g),R(g===null?"":String(g))},[a.bot.messageQuotaDefaultLimit]);async function b(g,E,C){N(E),v(E==="duration"||E==="quota"?{text:t("botDefaults.grantDefaultsSaving")}:null);try{let $=await Q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,g);if($.ok&&$.body.ok){let _=typeof $.body.grantDefaultDurationMs=="number"?$.body.grantDefaultDurationMs:null,S=typeof $.body.messageQuotaDefaultLimit=="number"?$.body.messageQuotaDefaultLimit:null;r($.body.autoGrantRequestCards!==!1),i($.body.restrictGrantCommands===!0),s($.body.p2pOpen===!0),d(_),h(S),"grantDefaultDurationMs"in g&&p(String(_??36e5)),"messageQuotaDefaultLimit"in g&&R(S===null?"":String(S)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:$.body.autoGrantRequestCards!==!1,restrictGrantCommands:$.body.restrictGrantCommands===!0,p2pOpen:$.body.p2pOpen===!0,grantDefaultDurationMs:_,messageQuotaDefaultLimit:S}),"messageQuotaDefaultLimit"in g&&y(null),v({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else C?.(),v({text:`\u2717 ${J($)}`})}catch($){C?.(),v({text:`\u2717 ${H($)}`})}finally{N(null)}}function P(g){p(g),v(null);let E=Number(g);if(!sn.includes(E)){v({text:`\u2717 ${t("botDefaults.grantDurationInvalid")}`});return}let C=E===36e5?null:E;if(C===m)return;let $=String(m??36e5);b({grantDefaultDurationMs:C},"duration",()=>p($))}function B(){let g=ha(w),E=g!==u;if(v(null),!E){y(null);return}if(g==="invalid"||typeof g=="number"&&g>1e3){y(t("botDefaults.quotaInvalid"));return}y(null),b({messageQuotaDefaultLimit:g},"quota")}let O=[{value:String(36e5),label:t("botDefaults.grantDuration1Hour")},{value:String(480*60*1e3),label:t("botDefaults.grantDuration8Hours")},{value:String(1440*60*1e3),label:t("botDefaults.grantDuration1Day")},{value:String(10080*60*1e3),label:t("botDefaults.grantDuration7Days")}],M=m??36e5,z=M===36e5?t("botDefaults.grantDuration1HourValue"):String(O.find(g=>g.value===String(M))?.label??""),X=u===null?t("botDefaults.quotaHelpBuiltIn",{count:3}):u>1e3?t("botDefaults.quotaHelpLegacy",{cardCount:1e3,oncallCount:u,defaultCount:3}):t("botDefaults.quotaHelpCustom",{count:u,defaultCount:3}),tt=u===null?t(m===null?"botDefaults.grantDefaultsCurrentBuiltIn":"botDefaults.grantDefaultsCurrentCustomBuiltInQuota",{duration:z,count:3}):u>1e3?t("botDefaults.grantDefaultsCurrentLegacy",{duration:z,cardCount:1e3,oncallCount:u}):t("botDefaults.grantDefaultsCurrentCustom",{duration:z,count:u});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)(dt,{checked:n,disabled:x!==null,dataAction:"toggle-auto-grant-card",title:t("botDefaults.autoGrantCard"),help:t("botDefaults.autoGrantCardHelp"),onChange:g=>{let E=n;r(g),b({autoGrantRequestCards:g},"autoGrant",()=>r(E))}}),(0,e.jsx)(dt,{checked:l,disabled:x!==null,dataAction:"toggle-restrict-grant",title:t("botDefaults.restrictGrant"),help:t("botDefaults.restrictGrantHelp"),onChange:g=>{let E=l;i(g),b({restrictGrantCommands:g},"restrict",()=>i(E))}}),(0,e.jsx)(dt,{checked:c,disabled:x!==null,dataAction:"toggle-p2p-open",title:t("botDefaults.p2pOpen"),help:t("botDefaults.p2pOpenHelp"),onChange:g=>{let E=c;s(g),b({p2pOpen:g},"p2pOpen",()=>s(E))}})]}),(0,e.jsxs)("form",{className:"bd-grant-defaults",noValidate:!0,onSubmit:g=>{g.preventDefault(),B()},children:[(0,e.jsx)("div",{className:"bd-row bd-grant-duration",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(j,{help:t("botDefaults.grantDurationHelp"),children:t("botDefaults.grantDurationDefault")}),(0,e.jsx)(ct,{dataInput:"grantDefaultDurationMs",value:f,options:O,disabled:x!==null,ariaLabel:t("botDefaults.grantDurationDefault"),onChange:P})]})}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(j,{help:X,children:t("botDefaults.quotaDefault")}),(0,e.jsx)("input",{type:"number",min:1,max:1e3,step:1,"data-input":"quotaLimit",placeholder:t("botDefaults.quotaPlaceholder",{count:3}),value:w,disabled:x!==null,"aria-label":t("botDefaults.quotaDefault"),"aria-invalid":k?!0:void 0,"aria-describedby":k?"grant-defaults-state grant-default-quota-error":"grant-defaults-state",onChange:g=>{R(g.currentTarget.value),y(null),v(null)},onBlur:B,onKeyDown:g=>{g.key==="Enter"&&(g.preventDefault(),g.currentTarget.blur())}})]}),k?(0,e.jsx)("small",{id:"grant-default-quota-error",className:"bd-field-error",role:"alert",children:k}):null,(0,e.jsx)("small",{id:"grant-defaults-state","data-grant-defaults-state":!0,children:tt})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(Z,{status:T,attr:{"data-grant-status":""}})})]})]})}function Mo(a){return Re(a,(0,e.jsx)(dn,{}))}export{Ma as a,ze as b,bo as c,At as d,Za as e,Bt as f,ce as g,nn as h,dn as i,Dn as j,va as k,fa as l,An as m,Bn as n,Ln as o,qn as p,ao as q,Mo as r};
|