@ycodium-ai/plugin-im 0.2.3236 → 0.2.3240

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/README.md CHANGED
@@ -30,22 +30,29 @@ they pick their own project:
30
30
  saved as secrets and the scanner as the only allowed person: no draft, no Save. It relies on
31
31
  non-public console interfaces and may break; the inline panel then shows the step list with the
32
32
  failed step marked. See `src/lark/setup/`.
33
- - **Access mode** (per bot): `allowlist` (default) or `open`. `allowlist` admits only
34
- the people on the allow list; `open` admits any sender the platform can identify.
33
+ - **Access mode** (per bot): `allowlist` (default), `open`, `privateOpen` or `groupOpen`.
34
+ `allowlist` admits only the people on the allow list; `open` admits any sender the
35
+ platform can identify.
36
+ `privateOpen` opens private chats and requires the allowlist in groups; `groupOpen`
37
+ opens groups and requires the allowlist in private chats. Both use the same list.
38
+ Either mixed mode requires the allowlist when the chat type is unknown.
35
39
  New bots start on `allowlist`.
36
40
  - **Allowed people** is an allow-list of that platform's user ids (shown when the
37
- mode is allowlist). Empty means nobody can make the agent work. Someone who is
38
- not admitted gets one reply with their own user id and where to put it, at most
41
+ mode requires the allowlist for either chat type). Empty blocks everyone in chats
42
+ that require the allowlist. Someone who is not admitted gets one reply with their
43
+ own user id and where to put it, at most
39
44
  once every ten minutes per person (the table of who was told is bounded in memory).
40
45
  In `open` mode any identifiable sender is admitted; the deny hint still applies
41
46
  when the platform reports no sender id.
42
47
  - A chat with no project starts nothing. The first message from an allowed
43
48
  person gets a project picker (a card on Lark, an inline keyboard on Telegram,
44
- a numbered text list on WeCom, which has no buttons: reply with the number or
49
+ a numbered text list on WeCom: reply with the number or
45
50
  `/repo <number>`). The pick is written as a plugin fact and survives restarts.
46
51
  `/repo` switches the project: the old thread is kept (still under that
47
52
  project's `/sessions`), the chat forgets it, and a running turn blocks the
48
- switch. The panel has a Pick project button.
53
+ switch. The panel has a Pick project button. On the WeCom smart bot, `/repo`
54
+ and this prompt stay the numbered list (`projectPicker` is false on
55
+ `src/wecomPanel.ts`); the button on the command card is separate.
49
56
  - On Telegram a forum topic is a chat of its own: its chat id is `chat:topic`
50
57
  (`chatIdOf`, only when Telegram marks the message `is_topic_message`; a reply
51
58
  chain in an ordinary supergroup also carries `message_thread_id` and stays the
@@ -128,7 +135,15 @@ text and images (fetched through `media/get`), outbound text, images and files
128
135
  It listens on `127.0.0.1:30987` by default (path `/wecom-app-callback/<rowId>/<secret>`);
129
136
  put a reverse proxy or tunnel in front and paste the public URL into WeCom “Receive
130
137
  messages → API receive”. Each column is validated, and a row with problems does not
131
- connect. Streaming replies are not done yet — final replies go out actively.
138
+ connect. Streaming replies are off by default (the app's passive stream reply has not
139
+ been verified on a real WeCom client). With it on, WeCom refreshes the reply as the agent
140
+ writes; if the client never refreshes the stream, the final reply is sent as text.
141
+
142
+ Known limits with Streaming replies on: the "Got it, working on it" placeholder is
143
+ not closed when a turn cannot start because the project has no default model, or
144
+ when handling the message throws; and a message queued for a team goal has its
145
+ placeholder closed right away, so it gets no 5-second fallback confirmation. The
146
+ reply itself still arrives as text in all three cases.
132
147
 
133
148
  The default is one message per finished turn. A single turn can produce dozens
134
149
  of assistant messages, mostly commentary between tool calls.
@@ -172,15 +187,15 @@ card, Telegram edits a message and its inline keyboard. A request is posted on
172
187
  question, and answered through `ctx.threads.userInput.respond` once every question
173
188
  has an answer; a free-form answer is the next ordinary message in the chat, and
174
189
  `thread.request-resolved` freezes the cards of a question answered elsewhere or
175
- closed unanswered. WeCom has no buttons: it writes the options as numbers and the
190
+ closed unanswered. WeCom writes the options as numbers and the
176
191
  reply is parsed in `src/questionCards.ts`. A message that lands behind a running
177
192
  turn gets a queued card (Steer, Withdraw, Resume sending) drawn from
178
193
  `getThreadExecution` and refreshed when the turn intents or the queue change
179
194
  (`src/queueCards.ts`, `src/queueFlow.ts`); the buttons call
180
195
  `threads.turnIntents.run` (steer, with the active turn id), `threads.turnIntents.cancel`
181
196
  and `threads.turnQueue.resume`, and the card is the user's own action, so no
182
- `intentAction` is sent. WeCom only gets a one-line notice, since steering
183
- and withdrawing need buttons (resuming is the `/continue` command). Editing a queued message is not offered:
197
+ `intentAction` is sent. WeCom only gets a one-line notice: that notice has no
198
+ steer or withdraw buttons (resuming is the `/continue` command). Editing a queued message is not offered:
184
199
  the host does not let a plugin dispatch `thread.turn-intent.edit`.
185
200
 
186
201
  A chat keeps its place across restarts. Which project a chat picked, which thread
@@ -250,18 +265,10 @@ Chat commands: `/stop`, `/continue`, `/status`, `/new`, `/sessions`, `/resume`,
250
265
  `/sessions`, `/resume` and the team commands answer with the project picker. `/sessions` and `/resume` only list and
251
266
  switch threads this plugin opened, since the host lets a plugin send only into
252
267
  its own threads. `/continue` calls `threads.turnQueue.resume` for the chat's thread
253
- when its queue is paused (a `/stop` or a failure pauses it), which is how WeCom, with
254
- no buttons, resumes; it is not `/resume`, which already switches threads.
255
-
256
- On Lark and Telegram, `/panel` sends a command panel (`/help` stays text and ends with a pointer to it; on WeCom, which has no panel, it does not): every command above
257
- is a button (a card on Lark, an inline keyboard on Telegram), and the ones that take an argument (a thread, a project, a model) open
258
- a second view on the same message with a Back button. Telegram buttons carry only
259
- a short `pn:<version>:<index>` token (`callback_data` is capped at 64 bytes);
260
- the action stays in memory and a tap on an older keyboard version counts as expired. Each card keeps its own view
261
- stack in memory (`src/panelController.ts`), so after a restart an old card only
262
- answers that it has expired. A tap runs the same handler as the typed command and
263
- waits in the same per-chat queue as typed messages. Another platform opts in by
264
- implementing the optional `panel` surface on its adapter (`src/adapter.ts`).
268
+ when its queue is paused (a `/stop` or a failure pauses it), which is how WeCom
269
+ resumes a paused queue from the chat; it is not `/resume`, which already switches threads.
270
+
271
+ On Lark, Telegram, and the WeCom smart bot, `/panel` sends a command panel, and `/help` stays text and ends with a pointer to it. WeCom App does not implement the panel surface, so `/panel` answers with the text list and `/help` does not mention `/panel`. Lark cards and Telegram inline keyboards show all command buttons. The WeCom smart bot uses a template card from `src/wecomPanel.ts`; its main menu is limited to six buttons. Commands that do not fit are listed in `/help` and can be typed into the chat. Commands that take an argument (a thread, a project, a model) open a second view on the same message with a Back button. These lists let you reach every option by paging: Lark and Telegram show eight items per page, and WeCom shows three, leaving room for Back, Previous, and Next. A tap on the WeCom card updates that same card; when the update cannot be applied, `src/panelController.ts` posts a new card and the old one stops accepting taps. A busy placeholder is not drawn on that card: it stays as it is until the next interactive view. Telegram buttons carry only a short `pn:<version>:<index>` token (`callback_data` is capped at 64 bytes); the action stays in memory and a tap on an older keyboard version counts as expired. Each card keeps its own view stack in memory (`src/panelController.ts`), so after a restart an old card only answers that it has expired. A tap runs the same handler as the typed command and waits in the same per-chat queue as typed messages. Another platform opts in by implementing the optional `panel` surface on its adapter (`src/adapter.ts`).
265
272
 
266
273
  `/team` uses the chat's selected project. It reads the roster from the `team` plugin and
267
274
  each text message invokes `startGoal` with a stable request ID derived from the bot,
package/assets/ui.js CHANGED
@@ -1,8 +1,8 @@
1
- var Kn=window.__ycodiumPluginHost.react;var{Activity:Xn,Children:Zn,Component:et,Fragment:Be,Profiler:nt,PureComponent:tt,StrictMode:it,Suspense:ot,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:rt,__COMPILER_RUNTIME:at,act:lt,cache:st,cacheSignal:dt,captureOwnerStack:ct,cloneElement:ut,createContext:te,createElement:xe,createRef:mt,forwardRef:gt,isValidElement:yt,lazy:ft,memo:pt,startTransition:bt,unstable_useCacheRefresh:vt,use:ie,useActionState:St,useCallback:It,useContext:wt,useDebugValue:Ct,useDeferredValue:ht,useEffect:Le,useEffectEvent:xt,useId:Rt,useImperativeHandle:kt,useInsertionEffect:Nt,useLayoutEffect:Tt,useMemo:M,useOptimistic:_t,useReducer:Pt,useRef:A,useState:R,useSyncExternalStore:Et,useTransition:At,version:Ot}=Kn;var O=(e,n)=>{let t=e[n];return typeof t=="string"?t.trim():""};var C="/developers/v1",Mt={uploadImage:`${C}/app/upload/image`,createFromTemplate:`${C}/manifest/upsert_by_template`,createBare:`${C}/app/create`,listApps:`${C}/app/list`,robotSwitch:e=>`${C}/robot/switch/${e}`,eventSwitch:e=>`${C}/event/switch/${e}`,eventRead:e=>`${C}/event/${e}`,eventUpdate:e=>`${C}/event/update/${e}`,callbackSwitch:e=>`${C}/callback/switch/${e}`,callbackRead:e=>`${C}/callback/${e}`,callbackUpdate:e=>`${C}/callback/update/${e}`,scopeCatalog:e=>`${C}/scope/all/${e}`,scopeUpdate:e=>`${C}/scope/update/${e}`,safeSetting:e=>`${C}/safe_setting/update/${e}`,visibleOnline:e=>`${C}/visible/online/${e}`,versionList:e=>`${C}/app_version/list/${e}`,versionCreate:e=>`${C}/app_version/create/${e}`,publishCommit:(e,n)=>`${C}/publish/commit/${e}/${n}`,secret:e=>`${C}/secret/${e}`};var Kt=10*6e4;var Me=9e4;var Ke="settings.view",Fe="settings.connections",Ve="settings.saveBot",De="settings.removeBot",Ue="settings.saveGeneral",$e="settings.saveTarget",Ge="settings.removeTarget",He="larkSetup.session",ze="wecomSetup.session",K={labelKey:"setup.action.label",descriptionKey:"setup.action.description",badgeKey:"setup.action.badge",warningKey:"setup.action.warning"},Qe={checkConnection:"im.settings.checkConnection",reconnect:"im.settings.reconnect",resetInbox:"im.settings.resetInbox",copyDiagnostics:"im.settings.copyDiagnostics",larkRepair:"im.settings.larkRepair",larkCallbackProbe:"im.settings.larkCallbackProbe"},We=e=>e==="telegram"?["rowAction.resetInbox.telegramOffline"]:[],je=[{id:"checkConnection",labelKey:"rowAction.checkConnection.label",descriptionKey:"rowAction.checkConnection.description"},{id:"reconnect",labelKey:"rowAction.reconnect.label",descriptionKey:"rowAction.reconnect.description"},{id:"resetInbox",labelKey:"rowAction.resetInbox.label",descriptionKey:"rowAction.resetInbox.description"},{id:"copyDiagnostics",labelKey:"rowAction.copyDiagnostics.label",descriptionKey:"rowAction.copyDiagnostics.description"},{id:"larkRepair",labelKey:"rowAction.larkRepair.label",descriptionKey:"rowAction.larkRepair.description",platform:"lark"},{id:"larkCallbackProbe",labelKey:"rowAction.larkCallbackProbe.label",descriptionKey:"rowAction.larkCallbackProbe.description",descriptionParams:{seconds:Me/1e3},platform:"lark"}],Fn="lark",oe=[{value:"zh-CN",labelKey:"settings.language.zhCN"},{value:"en",labelKey:"settings.language.en"}],Vn="botId",re=e=>O(e,"platform")||Fn,qe=(e,n)=>{let t=e.showWhen;if(t===void 0)return!0;let o=t.key==="platform"?re(n):O(n,t.key);return t.equals.includes(o)},Ye=(e,n,t)=>e.map(o=>o.key===Vn?{...o,kind:"select",options:n.map(l=>({value:l.rowId,label:`${O(l.values,"displayName")||t(l.platform)} (${l.rowId})`}))}:o),Je=(e,n)=>{switch(n.kind){case"qr":{let{expired:t,...o}=e,l=n.expiresAt===void 0?{payload:n.payload}:{payload:n.payload,expiresAt:n.expiresAt};return{...o,qr:l}}case"status":{let t=n.params===void 0?{statusKey:n.statusKey}:{statusKey:n.statusKey,params:n.params};if(n.expired!==!0)return{...e,status:t};let{qr:o,...l}=e;return{...l,status:t,expired:!0}}case"steps":return{...e,steps:n.steps};case"done":case"failed":{let{status:t,...o}=e;return{...o,result:n}}}},Re=e=>e==="inboxUnreadable"?"settingsSection.connection.reason.inbox-unreadable":e==="notAvailable"?"settingsSection.connection.reason.not-available":`rowAction.checkConnection.hint.${e}`,q=e=>e.reason==="not-available"||e.hint==="notAvailable",ae=e=>e?.state==="failed"&&(e.reason==="inbox-unreadable"||e.hint==="inboxUnreadable"),Xe=e=>e.hint==="wecomBotCredentials"||e.hint==="unauthorized"||e.hint==="larkCredentials"||e.hint==="wecomLongConnOff"||e.hint==="wecomTakenOver",F=e=>e.state==="duplicate"||q(e)||e.hint==="connecting"||e.hint==="wecomCallbackNotSeen"?"warning":"error";var Ze=e=>{if(!e||typeof e!="object"||Array.isArray(e)||!("code"in e)||typeof e.code!="string"||!e.code.trim()||!("reason"in e)||typeof e.reason!="string"||!e.reason.trim()||!("message"in e)||typeof e.message!="string"||!e.message.trim()||!("referenceId"in e)||typeof e.referenceId!="string"||!e.referenceId.trim()||!("at"in e)||typeof e.at!="number"||!Number.isFinite(e.at))return null;let n="messageKey"in e?e.messageKey:void 0;if(n!==void 0&&(typeof n!="string"||!n.trim()))return null;let t="messageParams"in e?e.messageParams:void 0,o;if(t!==void 0){if(!t||typeof t!="object"||Array.isArray(t)||!("detail"in t)||typeof t.detail!="string")return null;o={detail:t.detail.slice(0,500)}}return{code:e.code.slice(0,64),reason:e.reason.slice(0,64),message:e.message.slice(0,500),...n!==void 0?{messageKey:n.slice(0,128)}:{},...o===void 0?{}:{messageParams:o},referenceId:e.referenceId.slice(0,40),at:e.at}},en=e=>!e||typeof e!="object"||Array.isArray(e)?Ze(e):Ze(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,typeof t=="string"?t.trim():t])));var nn=(e,n)=>{let t=e.filter(o=>o.configured);return{configured:t.length,connected:t.filter(o=>n?.[o.rowId]?.state==="connected").length}},tn=e=>{if(e.error!==null||e.isUnavailable||typeof e.data!="object"||e.data===null||Array.isArray(e.data))return null;let n=e.data;return Object.values(n).some(t=>"lastMessageError"in t||"statusSince"in t)?Object.fromEntries(Object.entries(n).map(([t,o])=>{let{lastMessageError:l,statusSince:r,...a}=o,d=en(l);return[t,{...a,...typeof r=="number"&&Number.isSafeInteger(r)&&r>=0&&r<=864e13?{statusSince:r}:{},...d===null?{}:{lastMessageError:d}}]})):n},ke=e=>e===null||!e.configured?{key:"settingsSection.status.incomplete",tone:"attention"}:{key:"settingsSection.status.ready",tone:"success"},on=(e,n)=>{if(e===null||!e.configured)return ke(e);let t=n?.[e.rowId];switch(t?.state){case"connecting":return{key:"settingsSection.status.connecting",tone:"working"};case"connected":return{key:"settingsSection.status.connected",tone:"success"};case"failed":case"duplicate":return{key:"settingsSection.status.notConnected",tone:F(t)};default:return{key:"settingsSection.status.ready",tone:"neutral"}}},rn=(e,n,t,o)=>{if(e===null||!e.configured)return null;let l=n?.[e.rowId];return l?.state==="failed"?ae(l)?{text:o(Re("inboxUnreadable")),variant:F(l)}:{text:[o(l.reason===void 0?"settingsSection.connection.failed":`settingsSection.connection.reason.${l.reason}`),l.hint===void 0?null:o(Re(l.hint)),q(l)||Xe(l)?null:o("settingsSection.connection.reconnect"),l.error===void 0?null:o("settingsSection.connection.details",{error:l.error})].filter(a=>a!==null).join(" "),variant:F(l)}:l?.state==="duplicate"?{text:o("settingsSection.connection.duplicate",{name:t??l.duplicateOf??""}),variant:F(l)}:null};var{jsx:i,jsxs:s,Fragment:N}=window.__ycodiumPluginHost.jsxRuntime;function an(e){let n=e.bridge.useFormatTimestamp();if(e.since===void 0)return null;let t=new Date(e.since).toISOString();return i("time",{className:"im-small im-muted",dateTime:t,children:e.t("settingsSection.connection.since",{time:n(t)})})}var ln=te(null);function sn(e){return i(ln,{value:e.bridge,children:e.children})}var Dn=new Set(["Collapsible","CollapsiblePanel","CollapsibleTrigger"]);function S(e){let n=t=>{let r=ie(ln)?.ui?.[e];return r===void 0?Dn.has(e)?xe("div",{className:t.className},t.children):null:xe(r,t)};return n.displayName=e,n}var p=S("Button"),$=S("Input"),G=S("Label"),dn=S("Switch"),le=S("Select"),se=S("SelectTrigger"),Y=S("SelectValue"),de=S("SelectPopup"),ce=S("SelectItem"),ue=S("StatusPill"),cn=S("PluginIcon"),un=S("EmptyInline"),H=S("Alert"),mn=S("AlertAction"),z=S("AlertDescription"),gn=S("Collapsible"),yn=S("CollapsibleTrigger"),fn=S("CollapsiblePanel"),V=S("Spinner"),pn=S("QRCodeSvg"),bn=S("ProxyChoiceSelect");var vn=(e,n)=>{if(e.kind==="done")return{headline:e.messageKey===void 0?n("settingsSection.action.done"):n(e.messageKey),tone:e.tone??"done",link:e.link===void 0?void 0:{url:e.link.url,label:n(e.link.labelKey)},note:void 0,headlineTone:e.tone??"done",details:(e.warnings??[]).map(d=>n(d.key,d.params))};let t=e.params?.ref,o=t===void 0?e.detail:n("rowAction.diagnostic.ref",{ref:t,detail:e.detail??""}).trimEnd(),l=e.params?.hint?.toString(),r=e.noteKey===void 0?void 0:n(e.noteKey),a=F({hint:l})==="warning"?"caution":"issue";return{headline:n(e.reasonKey,e.params),link:void 0,note:r,tone:a,headlineTone:r===void 0?a:"neutral",details:[...o===void 0?[]:[o],...(e.warnings??[]).map(d=>n(d.key,d.params))]}};var Sn=(e,n,t,o)=>{let l=o?.state==="failed"&&q(o),r=ae(o);return{actions:je.filter(a=>(a.platform===void 0||a.platform===e)&&(a.id!=="resetInbox"||r)).map(a=>({...a,descriptionKeys:[a.descriptionKey,...a.id==="resetInbox"?We(e):[]],disabled:n||t||a.id==="reconnect"&&l})),noteKey:n?"settingsSection.action.saveFirst":l?"rowAction.reconnect.notAvailable":null}},me=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),In=e=>me(e)&&Array.isArray(e.bots)&&Array.isArray(e.targets)&&me(e.delivery),wn=e=>me(e)&&In(e.view)&&Array.isArray(e.columns)&&Array.isArray(e.targetColumns)&&Array.isArray(e.proxies)?e:null,J=async(e,n,t,o)=>{try{let l=await e.commands.invoke(n,t,o);return me(l)&&l.ok===!0&&In(l.view)?l.view:null}catch{return null}},Cn=(e,n)=>n.isPending?e.phase==="asked"?{...e,phase:"refetching"}:e:n.view!==null&&!n.failed?e.phase==="refetching"||JSON.stringify(n.view)===JSON.stringify(e.view)?null:e:e.phase==="asked"?e:{...e,phase:"asked"},E=e=>e==null||e.length===0?{}:{environmentId:e},X=(e,n)=>n===null?e:`${e}:${n}`,Ne=e=>JSON.stringify([e.replyLanguage,e.delivery]);function Q(e,n,t){if(n!==void 0&&n.length>0)return e(n);if(t!==void 0&&t.length>0)return t}function hn(e,n){return n.length===0?null:n.map(t=>e(t==="required"?"settingsSection.issue.required":"settingsSection.issue.format")).join(" ")}function D(e,n,t){return`im-${(e??"here").replace(/[^A-Za-z0-9_-]/g,"")}-${n}-${t}`}function Z(e,n,t){let o=[n?`${e}-issue`:null,t?`${e}-hint`:null].filter(l=>l!==null);return o.length===0?void 0:o.join(" ")}function B(e){return s("div",{className:e.span===!0?"im-field im-span":"im-field",children:[i(G,{htmlFor:e.id,children:e.label}),e.children,e.issue?i("p",{id:`${e.id}-issue`,className:"im-small im-issue",role:"alert",children:e.issue}):null,e.description===void 0?null:i("p",{id:`${e.id}-hint`,className:"im-hint im-small im-muted",children:e.description})]})}function ge(e){let n=e.stored&&e.value===""&&!e.clearing?e.savedPlaceholder:e.placeholder;return s("div",{className:"im-secret",children:[i($,{id:e.id,type:"password",value:e.value,placeholder:n,disabled:e.disabled,autoComplete:"new-password","aria-invalid":e.invalid?!0:void 0,"aria-describedby":e.describedBy,onChange:t=>e.onChange(t.target.value)}),e.stored?i(p,{variant:"ghost",size:"sm","aria-pressed":e.clearing,disabled:e.disabled,onClick:e.onToggleClear,children:e.clearing?e.undoLabel:e.clearLabel}):null]})}function ye(e){let n=e.saving||e.busy===!0;return!e.dirty&&!e.saving&&!e.failed?null:s("div",{className:"im-span",children:[e.dirty||e.saving?s("div",{className:"im-actions",children:[s(p,{variant:e.solid?"default":"outline",disabled:n||!e.dirty,onClick:e.onSave,children:[e.saving?i(V,{}):null,e.saveLabel]}),e.dirty&&!n?i(p,{variant:"ghost",size:"sm",onClick:e.onRevert,children:e.revertLabel}):null]}):null,e.failed?i("p",{className:"im-small im-issue",role:"alert",children:e.failedLabel}):null]})}async function fe(e,n,t){try{await e.writeClipboard(n),e.notify(t("settingsSection.copied"),"success")}catch{e.notify(t("settingsSection.copyFailed"),"warning")}}var Un=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function pe(e){let n=M(()=>E(e.environmentId),[e.environmentId]),t=e.bridge.commands.useSubscription(e.command,e.payload,n),o=M(()=>Un(t.data)?e.items==="snapshots"?t.data:Je({},t.data):{},[t.data,e.items]),l=o.result,r=A(null),a=e.onSettled;Le(()=>{l===void 0||r.current===t.data||(r.current=t.data,a?.(l))},[l,t.data,a]);let d=e.t,m=l===void 0&&t.error===null&&!t.isUnavailable;return s("div",{className:"im-flow im-span",children:[t.isUnavailable||t.error!==null?i(H,{variant:"error",layout:"inline",children:i(z,{children:d("settingsSection.action.failedToRun")})}):null,o.qr===void 0?null:i("div",{className:"im-qr",children:i(pn,{value:o.qr.payload,size:176,marginSize:2,title:d("settingsSection.action.qrTitle")})}),o.status===void 0?null:s("p",{className:"im-inline im-medium",children:[m?i(V,{}):null,i("span",{children:d(o.status.statusKey,o.status.params)})]}),m&&o.status===void 0&&o.qr===void 0?s("p",{className:"im-inline im-medium",children:[i(V,{}),i("span",{children:d("settingsSection.action.running")})]}):null,o.steps===void 0?null:i("ul",{className:"im-steps im-small",children:o.steps.map(y=>s("li",{"data-state":y.state,children:[i("span",{children:d(y.labelKey)}),i("span",{className:"im-muted",children:d(`settingsSection.step.${y.state}`)})]},y.id))}),l===void 0?null:i($n,{result:l,bridge:e.bridge,t:d}),s("div",{className:"im-actions",children:[l?.kind==="failed"||o.expired===!0||t.error!==null?i(p,{variant:"ghost",size:"sm",onClick:t.refresh,children:d("settingsSection.retry")}):null,i(p,{variant:"ghost",size:"sm",onClick:e.onClose,children:d(l===void 0?"settingsSection.cancel":"settingsSection.action.close")})]})]})}var xn=e=>e==="issue"?"im-issue":e==="caution"?"im-caution":"";function $n(e){let{headline:n,headlineTone:t,tone:o,note:l,link:r,details:a}=vn(e.result,e.t),d=e.t;return s("div",{className:"im-result",children:[s("div",{className:"im-result-verdict",role:"status",children:[i("p",{className:`im-medium im-result-headline ${xn(t)}`.trimEnd(),children:n}),l===void 0?null:i("p",{className:`im-small im-result-note ${xn(o)}`.trimEnd(),children:l})]}),r===void 0?null:i("div",{className:"im-actions",children:i(p,{className:"im-link",variant:"link",size:"sm",onClick:()=>e.bridge.openExternal(r.url),children:r.label})}),a.length===0?null:s(N,{children:[i("pre",{className:"im-detail im-small",children:a.join(`
1
+ var Vn=window.__ycodiumPluginHost.react;var{Activity:Zn,Children:et,Component:nt,Fragment:Le,Profiler:tt,PureComponent:it,StrictMode:ot,Suspense:rt,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:at,__COMPILER_RUNTIME:lt,act:st,cache:dt,cacheSignal:ct,captureOwnerStack:ut,cloneElement:mt,createContext:ie,createElement:xe,createRef:gt,forwardRef:yt,isValidElement:ft,lazy:pt,memo:vt,startTransition:bt,unstable_useCacheRefresh:St,use:oe,useActionState:It,useCallback:wt,useContext:Ct,useDebugValue:ht,useDeferredValue:xt,useEffect:Me,useEffectEvent:Rt,useId:kt,useImperativeHandle:Tt,useInsertionEffect:Nt,useLayoutEffect:_t,useMemo:M,useOptimistic:Et,useReducer:Pt,useRef:A,useState:R,useSyncExternalStore:At,useTransition:Ot,version:Bt}=Vn;var O=(e,n)=>{let t=e[n];return typeof t=="string"?t.trim():""};var C="/developers/v1",Kt={uploadImage:`${C}/app/upload/image`,createFromTemplate:`${C}/manifest/upsert_by_template`,createBare:`${C}/app/create`,listApps:`${C}/app/list`,robotSwitch:e=>`${C}/robot/switch/${e}`,eventSwitch:e=>`${C}/event/switch/${e}`,eventRead:e=>`${C}/event/${e}`,eventUpdate:e=>`${C}/event/update/${e}`,callbackSwitch:e=>`${C}/callback/switch/${e}`,callbackRead:e=>`${C}/callback/${e}`,callbackUpdate:e=>`${C}/callback/update/${e}`,scopeCatalog:e=>`${C}/scope/all/${e}`,scopeUpdate:e=>`${C}/scope/update/${e}`,safeSetting:e=>`${C}/safe_setting/update/${e}`,visibleOnline:e=>`${C}/visible/online/${e}`,versionList:e=>`${C}/app_version/list/${e}`,versionCreate:e=>`${C}/app_version/create/${e}`,publishCommit:(e,n)=>`${C}/publish/commit/${e}/${n}`,secret:e=>`${C}/secret/${e}`};var Vt=10*6e4;var Ke=9e4;var Ve="settings.view",Fe="settings.connections",De="settings.saveBot",Ue="settings.removeBot",$e="settings.saveGeneral",Ge="settings.saveTarget",He="settings.removeTarget",ze="larkSetup.session",Qe="wecomSetup.session",K={labelKey:"setup.action.label",descriptionKey:"setup.action.description",badgeKey:"setup.action.badge",warningKey:"setup.action.warning"},We={checkConnection:"im.settings.checkConnection",reconnect:"im.settings.reconnect",resetInbox:"im.settings.resetInbox",copyDiagnostics:"im.settings.copyDiagnostics",larkRepair:"im.settings.larkRepair",larkCallbackProbe:"im.settings.larkCallbackProbe"},je=e=>e==="telegram"?["rowAction.resetInbox.telegramOffline"]:[],qe=[{id:"checkConnection",labelKey:"rowAction.checkConnection.label",descriptionKey:"rowAction.checkConnection.description"},{id:"reconnect",labelKey:"rowAction.reconnect.label",descriptionKey:"rowAction.reconnect.description"},{id:"resetInbox",labelKey:"rowAction.resetInbox.label",descriptionKey:"rowAction.resetInbox.description"},{id:"copyDiagnostics",labelKey:"rowAction.copyDiagnostics.label",descriptionKey:"rowAction.copyDiagnostics.description"},{id:"larkRepair",labelKey:"rowAction.larkRepair.label",descriptionKey:"rowAction.larkRepair.description",platform:"lark"},{id:"larkCallbackProbe",labelKey:"rowAction.larkCallbackProbe.label",descriptionKey:"rowAction.larkCallbackProbe.description",descriptionParams:{seconds:Ke/1e3},platform:"lark"}],Fn="lark",re=[{value:"zh-CN",labelKey:"settings.language.zhCN"},{value:"en",labelKey:"settings.language.en"}],Dn="botId",ae=e=>O(e,"platform")||Fn,Ye=(e,n)=>{let t=e.showWhen;if(t===void 0)return!0;let o=t.key==="platform"?ae(n):O(n,t.key);return t.equals.includes(o)},Je=(e,n,t)=>e.map(o=>o.key===Dn?{...o,kind:"select",options:n.map(l=>({value:l.rowId,label:`${O(l.values,"displayName")||t(l.platform)} (${l.rowId})`}))}:o),Xe=(e,n)=>{switch(n.kind){case"qr":{let{expired:t,...o}=e,l=n.expiresAt===void 0?{payload:n.payload}:{payload:n.payload,expiresAt:n.expiresAt};return{...o,qr:l}}case"status":{let t=n.params===void 0?{statusKey:n.statusKey}:{statusKey:n.statusKey,params:n.params};if(n.expired!==!0)return{...e,status:t};let{qr:o,...l}=e;return{...l,status:t,expired:!0}}case"steps":return{...e,steps:n.steps};case"done":case"failed":{let{status:t,...o}=e;return{...o,result:n}}}},Re=e=>e==="inboxUnreadable"?"settingsSection.connection.reason.inbox-unreadable":e==="notAvailable"?"settingsSection.connection.reason.not-available":`rowAction.checkConnection.hint.${e}`,q=e=>e.reason==="not-available"||e.hint==="notAvailable",le=e=>e?.state==="failed"&&(e.reason==="inbox-unreadable"||e.hint==="inboxUnreadable"),Ze=e=>e.hint==="wecomBotCredentials"||e.hint==="unauthorized"||e.hint==="larkCredentials"||e.hint==="wecomLongConnOff"||e.hint==="wecomTakenOver",V=e=>e.state==="duplicate"||q(e)||e.hint==="connecting"||e.hint==="wecomCallbackNotSeen"?"warning":"error";var en=e=>{if(!e||typeof e!="object"||Array.isArray(e)||!("code"in e)||typeof e.code!="string"||!e.code.trim()||!("reason"in e)||typeof e.reason!="string"||!e.reason.trim()||!("message"in e)||typeof e.message!="string"||!e.message.trim()||!("referenceId"in e)||typeof e.referenceId!="string"||!e.referenceId.trim()||!("at"in e)||typeof e.at!="number"||!Number.isFinite(e.at))return null;let n="messageKey"in e?e.messageKey:void 0;if(n!==void 0&&(typeof n!="string"||!n.trim()))return null;let t="messageParams"in e?e.messageParams:void 0,o;if(t!==void 0){if(!t||typeof t!="object"||Array.isArray(t)||!("detail"in t)||typeof t.detail!="string")return null;o={detail:t.detail.slice(0,500)}}return{code:e.code.slice(0,64),reason:e.reason.slice(0,64),message:e.message.slice(0,500),...n!==void 0?{messageKey:n.slice(0,128)}:{},...o===void 0?{}:{messageParams:o},referenceId:e.referenceId.slice(0,40),at:e.at}},nn=e=>!e||typeof e!="object"||Array.isArray(e)?en(e):en(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,typeof t=="string"?t.trim():t])));var tn=(e,n)=>{let t=e.filter(o=>o.configured);return{configured:t.length,connected:t.filter(o=>n?.[o.rowId]?.state==="connected").length}},on=e=>{if(e.error!==null||e.isUnavailable||typeof e.data!="object"||e.data===null||Array.isArray(e.data))return null;let n=e.data;return Object.values(n).some(t=>"lastMessageError"in t||"statusSince"in t)?Object.fromEntries(Object.entries(n).map(([t,o])=>{let{lastMessageError:l,statusSince:r,...a}=o,d=nn(l);return[t,{...a,...typeof r=="number"&&Number.isSafeInteger(r)&&r>=0&&r<=864e13?{statusSince:r}:{},...d===null?{}:{lastMessageError:d}}]})):n},ke=e=>e===null||!e.configured?{key:"settingsSection.status.incomplete",tone:"attention"}:{key:"settingsSection.status.ready",tone:"success"},rn=(e,n)=>{if(e===null||!e.configured)return ke(e);let t=n?.[e.rowId];switch(t?.state){case"connecting":return{key:"settingsSection.status.connecting",tone:"working"};case"connected":return{key:"settingsSection.status.connected",tone:"success"};case"failed":case"duplicate":return{key:"settingsSection.status.notConnected",tone:V(t)};default:return{key:"settingsSection.status.ready",tone:"neutral"}}},an=(e,n,t,o)=>{if(e===null||!e.configured)return null;let l=n?.[e.rowId];return l?.state==="failed"?le(l)?{text:o(Re("inboxUnreadable")),variant:V(l)}:{text:[o(l.reason===void 0?"settingsSection.connection.failed":`settingsSection.connection.reason.${l.reason}`),l.hint===void 0?null:o(Re(l.hint)),q(l)||Ze(l)?null:o("settingsSection.connection.reconnect"),l.error===void 0?null:o("settingsSection.connection.details",{error:l.error})].filter(a=>a!==null).join(" "),variant:V(l)}:l?.state==="duplicate"?{text:o("settingsSection.connection.duplicate",{name:t??l.duplicateOf??""}),variant:V(l)}:null};var{jsx:i,jsxs:s,Fragment:T}=window.__ycodiumPluginHost.jsxRuntime;function ln(e){let n=e.bridge.useFormatTimestamp();if(e.since===void 0)return null;let t=new Date(e.since).toISOString();return i("time",{className:"im-small im-muted",dateTime:t,children:e.t("settingsSection.connection.since",{time:n(t)})})}var sn=ie(null);function dn(e){return i(sn,{value:e.bridge,children:e.children})}var Un=new Set(["Collapsible","CollapsiblePanel","CollapsibleTrigger"]);function S(e){let n=t=>{let r=oe(sn)?.ui?.[e];return r===void 0?Un.has(e)?xe("div",{className:t.className},t.children):null:xe(r,t)};return n.displayName=e,n}var p=S("Button"),$=S("Input"),G=S("Label"),cn=S("Switch"),se=S("Select"),de=S("SelectTrigger"),Y=S("SelectValue"),ce=S("SelectPopup"),J=S("SelectItem"),ue=S("StatusPill"),un=S("PluginIcon"),mn=S("EmptyInline"),H=S("Alert"),gn=S("AlertAction"),z=S("AlertDescription"),yn=S("Collapsible"),fn=S("CollapsibleTrigger"),pn=S("CollapsiblePanel"),F=S("Spinner"),vn=S("QRCodeSvg"),bn=S("ProxyChoiceSelect");var Sn=(e,n)=>{if(e.kind==="done")return{headline:e.messageKey===void 0?n("settingsSection.action.done"):n(e.messageKey),tone:e.tone??"done",link:e.link===void 0?void 0:{url:e.link.url,label:n(e.link.labelKey)},note:void 0,headlineTone:e.tone??"done",details:(e.warnings??[]).map(d=>n(d.key,d.params))};let t=e.params?.ref,o=t===void 0?e.detail:n("rowAction.diagnostic.ref",{ref:t,detail:e.detail??""}).trimEnd(),l=e.params?.hint?.toString(),r=e.noteKey===void 0?void 0:n(e.noteKey),a=V({hint:l})==="warning"?"caution":"issue";return{headline:n(e.reasonKey,e.params),link:void 0,note:r,tone:a,headlineTone:r===void 0?a:"neutral",details:[...o===void 0?[]:[o],...(e.warnings??[]).map(d=>n(d.key,d.params))]}};var In=(e,n,t,o)=>{let l=o?.state==="failed"&&q(o),r=le(o);return{actions:qe.filter(a=>(a.platform===void 0||a.platform===e)&&(a.id!=="resetInbox"||r)).map(a=>({...a,descriptionKeys:[a.descriptionKey,...a.id==="resetInbox"?je(e):[]],disabled:n||t||a.id==="reconnect"&&l})),noteKey:n?"settingsSection.action.saveFirst":l?"rowAction.reconnect.notAvailable":null}},me=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),wn=e=>me(e)&&Array.isArray(e.bots)&&Array.isArray(e.targets)&&me(e.delivery),Cn=e=>me(e)&&wn(e.view)&&Array.isArray(e.columns)&&Array.isArray(e.targetColumns)&&Array.isArray(e.proxies)?e:null,X=async(e,n,t,o)=>{try{let l=await e.commands.invoke(n,t,o);return me(l)&&l.ok===!0&&wn(l.view)?l.view:null}catch{return null}},hn=(e,n)=>n.isPending?e.phase==="asked"?{...e,phase:"refetching"}:e:n.view!==null&&!n.failed?e.phase==="refetching"||JSON.stringify(n.view)===JSON.stringify(e.view)?null:e:e.phase==="asked"?e:{...e,phase:"asked"},P=e=>e==null||e.length===0?{}:{environmentId:e},Z=(e,n)=>n===null?e:`${e}:${n}`,Te=e=>JSON.stringify([e.replyLanguage,e.delivery]);function Q(e,n,t){if(n!==void 0&&n.length>0)return e(n);if(t!==void 0&&t.length>0)return t}function xn(e,n){return n.length===0?null:n.map(t=>e(t==="required"?"settingsSection.issue.required":"settingsSection.issue.format")).join(" ")}function D(e,n,t){return`im-${(e??"here").replace(/[^A-Za-z0-9_-]/g,"")}-${n}-${t}`}function ee(e,n,t){let o=[n?`${e}-issue`:null,t?`${e}-hint`:null].filter(l=>l!==null);return o.length===0?void 0:o.join(" ")}function B(e){return s("div",{className:e.span===!0?"im-field im-span":"im-field",children:[i(G,{htmlFor:e.id,children:e.label}),e.children,e.issue?i("p",{id:`${e.id}-issue`,className:"im-small im-issue",role:"alert",children:e.issue}):null,e.description===void 0?null:i("p",{id:`${e.id}-hint`,className:"im-hint im-small im-muted",children:e.description})]})}function ge(e){let n=e.stored&&e.value===""&&!e.clearing?e.savedPlaceholder:e.placeholder;return s("div",{className:"im-secret",children:[i($,{id:e.id,type:"password",value:e.value,placeholder:n,disabled:e.disabled,autoComplete:"new-password","aria-invalid":e.invalid?!0:void 0,"aria-describedby":e.describedBy,onChange:t=>e.onChange(t.target.value)}),e.stored?i(p,{variant:"ghost",size:"sm","aria-pressed":e.clearing,disabled:e.disabled,onClick:e.onToggleClear,children:e.clearing?e.undoLabel:e.clearLabel}):null]})}function ye(e){let n=e.saving||e.busy===!0;return!e.dirty&&!e.saving&&!e.failed?null:s("div",{className:"im-span",children:[e.dirty||e.saving?s("div",{className:"im-actions",children:[s(p,{variant:e.solid?"default":"outline",disabled:n||!e.dirty,onClick:e.onSave,children:[e.saving?i(F,{}):null,e.saveLabel]}),e.dirty&&!n?i(p,{variant:"ghost",size:"sm",onClick:e.onRevert,children:e.revertLabel}):null]}):null,e.failed?i("p",{className:"im-small im-issue",role:"alert",children:e.failedLabel}):null]})}async function fe(e,n,t){try{await e.writeClipboard(n),e.notify(t("settingsSection.copied"),"success")}catch{e.notify(t("settingsSection.copyFailed"),"warning")}}var $n=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function pe(e){let n=M(()=>P(e.environmentId),[e.environmentId]),t=e.bridge.commands.useSubscription(e.command,e.payload,n),o=M(()=>$n(t.data)?e.items==="snapshots"?t.data:Xe({},t.data):{},[t.data,e.items]),l=o.result,r=A(null),a=e.onSettled;Me(()=>{l===void 0||r.current===t.data||(r.current=t.data,a?.(l))},[l,t.data,a]);let d=e.t,u=l===void 0&&t.error===null&&!t.isUnavailable;return s("div",{className:"im-flow im-span",children:[t.isUnavailable||t.error!==null?i(H,{variant:"error",layout:"inline",children:i(z,{children:d("settingsSection.action.failedToRun")})}):null,o.qr===void 0?null:i("div",{className:"im-qr",children:i(vn,{value:o.qr.payload,size:176,marginSize:2,title:d("settingsSection.action.qrTitle")})}),o.status===void 0?null:s("p",{className:"im-inline im-medium",children:[u?i(F,{}):null,i("span",{children:d(o.status.statusKey,o.status.params)})]}),u&&o.status===void 0&&o.qr===void 0?s("p",{className:"im-inline im-medium",children:[i(F,{}),i("span",{children:d("settingsSection.action.running")})]}):null,o.steps===void 0?null:i("ul",{className:"im-steps im-small",children:o.steps.map(g=>s("li",{"data-state":g.state,children:[i("span",{children:d(g.labelKey)}),i("span",{className:"im-muted",children:d(`settingsSection.step.${g.state}`)})]},g.id))}),l===void 0?null:i(Gn,{result:l,bridge:e.bridge,t:d}),s("div",{className:"im-actions",children:[l?.kind==="failed"||o.expired===!0||t.error!==null?i(p,{variant:"ghost",size:"sm",onClick:t.refresh,children:d("settingsSection.retry")}):null,i(p,{variant:"ghost",size:"sm",onClick:e.onClose,children:d(l===void 0?"settingsSection.cancel":"settingsSection.action.close")})]})]})}var Rn=e=>e==="issue"?"im-issue":e==="caution"?"im-caution":"";function Gn(e){let{headline:n,headlineTone:t,tone:o,note:l,link:r,details:a}=Sn(e.result,e.t),d=e.t;return s("div",{className:"im-result",children:[s("div",{className:"im-result-verdict",role:"status",children:[i("p",{className:`im-medium im-result-headline ${Rn(t)}`.trimEnd(),children:n}),l===void 0?null:i("p",{className:`im-small im-result-note ${Rn(o)}`.trimEnd(),children:l})]}),r===void 0?null:i("div",{className:"im-actions",children:i(p,{className:"im-link",variant:"link",size:"sm",onClick:()=>e.bridge.openExternal(r.url),children:r.label})}),a.length===0?null:s(T,{children:[i("pre",{className:"im-detail im-small",children:a.join(`
2
2
 
3
3
  `)}),i("div",{className:"im-actions",children:i(p,{variant:"ghost",size:"sm",onClick:()=>{fe(e.bridge,a.join(`
4
4
 
5
- `),d)},children:d("settingsSection.copy")})})]})]})}function Gn(e){return e.length>12?`${e.slice(0,8)}\u2022\u2022\u2022\u2022${e.slice(-4)}`:"cli_\u2022\u2022\u2022\u2022"}function Rn(e){return e.length<=10?`${e.slice(0,3)}\u2022\u2022\u2022`:`${e.slice(0,6)}\u2022\u2022\u2022\u2022${e.slice(-4)}`}var Hn={lark:{column:"larkAppId",mask:Gn},wecom:{column:"wecomBotId",mask:Rn},"wecom-app":{column:"wecomAppCorpId",mask:Rn}};function kn(e,n){let t=Hn[e];if(t===void 0)return null;let o=O(n,t.column);return o===""?null:t.mask(o)}function Te(e){return s(gn,{className:e.className===void 0?"im-collapse":`im-collapse ${e.className}`,...e.defaultOpen===void 0?{}:{defaultOpen:e.defaultOpen},...e.open===void 0?{}:{open:e.open},...e.onOpenChange===void 0?{}:{onOpenChange:e.onOpenChange},children:[s("div",{className:"im-head",children:[s(yn,{className:"im-toggle",children:[i("span",{className:"im-chevron","aria-hidden":"true"}),e.icon,i("span",{className:"im-title im-medium",children:e.title}),e.meta]}),e.actions]}),e.notice,i(fn,{children:i("div",{className:"im-panel",children:e.children})})]})}function be(e){return i("section",{className:"im-block",children:i(Te,{...e})})}function Nn(e){let n=e.columns.filter(u=>qe(u,e.values)),t=e.groupBotSettings?n.filter(u=>u.group==="essential"):n,o=e.groupBotSettings?n.filter(u=>u.group!=="essential"):[],l=e.issues.filter(u=>o.some(f=>f.key===u.column)),r=JSON.stringify(l),[a,d]=R(()=>({open:l.length>0,issues:r})),m=a.open||a.issues!==r&&l.length>0;a.issues!==r&&d({open:m,issues:r});let y=u=>i(zn,{column:u,scope:e.scope,environmentId:e.environmentId,proxies:e.proxies,values:e.values,secrets:e.secrets,clearSecrets:e.clearSecrets,storedSecrets:e.storedSecrets,issues:e.issues,disabled:e.disabled,t:e.t,onValue:e.onValue,onSecret:e.onSecret,onToggleClear:e.onToggleClear},u.key);return s(N,{children:[t.map(y),e.publicFields.map(u=>i(Wn,{field:u,scope:e.scope,environmentId:e.environmentId,bridge:e.bridge,t:e.t},u.key)),o.length===0?null:i(Te,{className:"im-span",title:l.length>0?e.t("settingsSection.moreSettingsIssues",{count:l.length}):e.t("settingsSection.moreSettings"),open:m,onOpenChange:u=>d({open:u,issues:r}),children:i("div",{className:"im-form",children:o.map(y)})})]})}function zn(e){let n=e.column,t=D(e.environmentId,e.scope,n.key),o=Q(e.t,n.labelKey,n.label)??n.key,l=Q(e.t,n.descriptionKey,n.description),r=Q(e.t,n.placeholderKey,n.placeholder),a=hn(e.t,e.issues.filter(m=>m.column===n.key).map(m=>m.code)),d=Z(t,a!==null,l!==void 0);return n.kind==="password"?i(B,{id:t,label:o,description:l,issue:a,children:i(ge,{id:t,value:e.secrets[n.key]??"",stored:e.storedSecrets[n.key]===!0,clearing:e.clearSecrets.includes(n.key),disabled:e.disabled,invalid:a!==null,describedBy:d,placeholder:r,savedPlaceholder:e.t("settingsSection.secret.saved"),clearLabel:e.t("settingsSection.secret.clear"),undoLabel:e.t("settingsSection.secret.clearUndo"),onChange:m=>{m!==(e.secrets[n.key]??"")&&e.onSecret(n.key,m)},onToggleClear:()=>e.onToggleClear(n.key)})}):n.kind==="select"?i(Qn,{column:n,id:t,label:o,description:l,issue:a,described:d,values:e.values,disabled:e.disabled,t:e.t,onValue:e.onValue}):n.kind==="proxy"?i("div",{className:"im-field",children:i(bn,{id:t,label:o,hint:l,value:e.values[n.key]??"",proxies:e.proxies,disabled:e.disabled,onChange:m=>{m!==(e.values[n.key]??"")&&e.onValue(n.key,m)},children:a===null?null:i("p",{id:`${t}-issue`,className:"im-small im-issue",role:"alert",children:a})})}):i(B,{id:t,label:o,description:l,issue:a,children:i($,{id:t,type:"text",value:e.values[n.key]??"",placeholder:r,disabled:e.disabled,"aria-invalid":a!==null?!0:void 0,"aria-describedby":d,onChange:m=>{let y=m.target.value;y!==(e.values[n.key]??"")&&e.onValue(n.key,y)}})})}function Qn(e){let n=e.values[e.column.key]??"",t=e.column.options??[],o=t.find(r=>r.value===n),l=n===""?void 0:o===void 0?n:Q(e.t,o.labelKey,o.label)??o.value;return i(B,{id:e.id,label:e.label,description:e.description,issue:e.issue,children:s(le,{className:"im-wide",value:n===""?null:n,disabled:e.disabled,onValueChange:r=>{let a=r??"";a!==n&&e.onValue(e.column.key,a)},children:[i(se,{id:e.id,"aria-invalid":e.issue!==null?!0:void 0,"aria-describedby":e.described,children:l===void 0?i(Y,{placeholder:e.t("settingsSection.select.default")}):i(Y,{children:l})}),i(de,{children:t.map(r=>r.value===""?null:i(ce,{value:r.value,children:Q(e.t,r.labelKey,r.label)??r.value},r.value))})]})})}function Wn(e){let n=D(e.environmentId,`${e.scope}-pub`,e.field.key);return s("div",{className:"im-field im-span",children:[i(G,{children:e.t(`settingsSection.publicField.${e.field.key}`)}),e.field.value===""?null:s("div",{className:"im-inline im-public-row",children:[i("span",{id:n,className:"im-public-value im-small",children:jn(e.field.value)}),e.field.copyable?i(p,{variant:"ghost",size:"sm",onClick:()=>{fe(e.bridge,e.field.value,e.t)},children:e.t("settingsSection.copy")}):null]}),e.field.hint===void 0?null:i("p",{className:"im-small im-muted",children:e.t(`settingsSection.publicFieldHint.${e.field.hint}`)})]})}function jn(e){let n=0;return e.split(/(?<=\/)(?!\/)/).map(t=>{let o=n;return n+=t.length,s(Be,{children:[o===0?null:i("wbr",{}),t]},o)})}function Tn(e){let n={};for(let[r,a]of Object.entries(e.values))(e.baseline[r]??"")!==a&&(n[r]=a);let t={};for(let[r,a]of Object.entries(e.secrets))a!==""&&(t[r]=a);let o=[];for(let r of e.clearSecrets)Object.hasOwn(t,r)||o.includes(r)||o.push(r);return e.rowId===void 0||Object.keys(n).length>0||Object.keys(t).length>0||o.length>0?{changed:!0,edit:{...e.rowId===void 0?{}:{rowId:e.rowId},values:n,...Object.keys(t).length>0?{secrets:t}:{},...o.length>0?{clearSecrets:o}:{}}}:{changed:!1}}function qn(e){let n=e.trim();if(!/^\d+$/.test(n))return null;let t=Number(n);return!Number.isInteger(t)||t<1||t>65535?null:t}function _n(e){let n={};e.replyLanguage!==e.baseline.replyLanguage&&(n.replyLanguage=e.replyLanguage),e.enabled!==e.baseline.enabled&&(n.deliveryHttpEnabled=e.enabled);let t=!1;if(e.enabled){let o=qn(e.port);o===null?t=!0:o!==e.baseline.port&&(n.deliveryHttpPort=o),e.token!==""?n.deliveryHttpToken=e.token:e.clearToken&&e.baseline.hasToken&&(n.clearDeliveryHttpToken=!0)}return t?{changed:!0,invalidPort:!0}:Object.keys(n).length===0?{changed:!1}:{changed:!0,invalidPort:!1,payload:n}}var Pn=te({activeId:null,activate:()=>{}});function En(e){return i(Pn,{value:{activeId:e.activeId,activate:e.activate},children:e.children})}function ve(e){let n=ie(Pn);return{chosen:n.activeId===e,activate:()=>n.activate(e)}}function Se(e,n){let t=A(!1);return{cancelProps:{autoFocus:!0,"aria-describedby":e,onClick:()=>{t.current=!0,n()}},confirmProps:{"aria-describedby":e},triggerRef:o=>{o===null||!t.current||(t.current=!1,o.focus())}}}function Ie(e,n){return{signature:n,values:{...e?.values},secrets:{},clearSecrets:[],saving:!1,failed:!1,confirming:!1,removing:!1,removeFailed:!1}}function _e(e){let{kind:n,row:t}=e,o=t===null?n.newSlot:JSON.stringify(t),l=ve(X(n.newSlot,t?.rowId??null)),r=A(0),[a,d]=R(()=>Ie(t,o)),m=t!==null&&n.removeHintKey!==void 0?`im-remove-consequence-${n.newSlot}-${t.rowId}`:void 0,y=Se(m,()=>d(g=>({...g,confirming:!1})));a.signature!==o&&(r.current+=1,d(Ie(t,o)));let u=Tn({...t===null?{}:{rowId:t.rowId},baseline:t?.values??{},values:a.values,secrets:a.secrets,clearSecrets:a.clearSecrets}),f=u.changed,h=t===null||!t.configured,v=e.status??ke(t),w=e.notice??null,c=a.saving||a.removing;function x(g){l.activate(),d(b=>({...g(b),failed:!1}))}function k(){if(!u.changed||c)return;l.activate();let g=u.edit,b=++r.current;d(I=>({...I,saving:!0,failed:!1})),J(e.bridge,n.saveCommand,g,E(e.environmentId)).then(I=>{if(r.current!==b)return;if(I===null){d(U=>({...U,saving:!1,failed:!0}));return}let P=t===null?void 0:n.rows(I).find(U=>U.rowId===t.rowId);P!==void 0&&d(Ie(P,JSON.stringify(P))),e.onSaved(I)})}function L(){if(t===null){e.onDiscard();return}let g=t.rowId,b=++r.current;d(I=>({...I,removing:!0,removeFailed:!1})),J(e.bridge,n.removeCommand,{rowId:g},E(e.environmentId)).then(I=>{if(r.current===b){if(I===null){d(P=>({...P,removing:!1,removeFailed:!0,confirming:!0}));return}e.onSaved(I)}})}return s(be,{title:e.title(a.values),icon:e.icon?.(a.values),defaultOpen:h,meta:s(N,{children:[e.meta?.(a.values),s("span",{className:"im-status",children:[e.statusMeta,i(ue,{tone:v.tone,children:e.t(v.key)})]})]}),actions:a.confirming?s("div",{className:"im-actions",children:[i(p,{type:"button",variant:"ghost",size:"sm",disabled:a.removing||a.saving,...y.cancelProps,children:e.t("settingsSection.cancel")}),i(p,{type:"button",variant:"destructive",size:"sm",disabled:a.removing||a.saving,...y.confirmProps,onClick:L,children:e.t(n.removeConfirmKey)})]}):i(p,{type:"button",variant:"ghost",size:"sm",disabled:c,ref:y.triggerRef,onClick:()=>d(g=>({...g,confirming:!0,removeFailed:!1})),children:e.t("settingsSection.remove")}),notice:s(N,{children:[e.summary,a.confirming&&t!==null&&n.removeHintKey!==void 0?i("p",{id:m,children:e.t(n.removeHintKey)}):null,a.removeFailed?i("p",{className:"im-small im-issue",role:"alert",children:e.t(n.removeFailedKey)}):null]}),children:[w===null?null:i(H,{variant:w.variant,children:i(z,{children:w.text})}),s("div",{className:"im-form",children:[i(Nn,{scope:`${n.newSlot}-${t?.rowId??"new"}`,environmentId:e.environmentId,columns:e.columns,groupBotSettings:n.groupBotSettings===!0,proxies:e.proxies,values:a.values,secrets:a.secrets,clearSecrets:a.clearSecrets,storedSecrets:t?.secrets??{},issues:t?.issues??[],publicFields:t?.publicFields??[],disabled:c,bridge:e.bridge,t:e.t,onValue:(g,b)=>x(I=>({...I,values:{...I.values,[g]:b}})),onSecret:(g,b)=>x(I=>({...I,secrets:{...I.secrets,[g]:b}})),onToggleClear:g=>x(b=>({...b,clearSecrets:b.clearSecrets.includes(g)?b.clearSecrets.filter(I=>I!==g):[...b.clearSecrets,g]}))}),e.extra?.({dirty:f,frozen:c}),i(ye,{dirty:f,saving:a.saving,busy:a.removing,solid:l.chosen&&f,failed:a.failed,saveLabel:e.t("settingsSection.save"),revertLabel:e.t("settingsSection.revert"),failedLabel:e.t("settingsSection.saveFailed"),onSave:k,onRevert:()=>{r.current+=1,d(Ie(t,o))}})]})]})}function An(e){let n=e.bridge.useFormatTimestamp(),{error:t,t:o}=e;if(t===void 0)return null;let l=new Date(t.at),r=Number.isFinite(l.getTime())?l.toISOString():null;return s("div",{className:"im-small",role:"status",children:[s("p",{children:[i("strong",{className:"im-issue",children:o("settingsSection.lastMessageError.title")}),o("settingsSection.lastMessageError.separator"),i("span",{children:t.messageKey===void 0?t.message:o(t.messageKey,{...t.messageParams,defaultValue:t.message})})]}),s("p",{className:"im-muted",children:[o("settingsSection.lastMessageError.code",{code:t.code})," \xB7 ",o("settingsSection.lastMessageError.reference",{referenceId:t.referenceId}),r===null?null:s(N,{children:[" \xB7 ",i("time",{dateTime:r,children:n(r)})]})]})]})}var we={groupBotSettings:!0,newSlot:"im-new-row",saveCommand:Ve,removeCommand:De,rows:e=>e.bots,removeConfirmKey:"settingsSection.removeConfirm",removeHintKey:"settingsSection.removeHint",removeFailedKey:"settingsSection.removeFailed"},Ce={newSlot:"im-new-target",saveCommand:$e,removeCommand:Ge,rows:e=>e.targets,removeConfirmKey:"settingsSection.target.removeConfirm",removeFailedKey:"settingsSection.target.removeFailed"},On=(e,n,t)=>{let o=(e.displayName??"").trim();return o.length>0?o:t(`platform.${n}`)};function Pe(e){let{bot:n,t}=e,o=e.bots.find(f=>f.rowId===(n===null?void 0:e.connections?.[n.rowId]?.duplicateOf)),l=rn(n,e.connections,o===void 0?void 0:On(o.values,o.platform,t),t),[r,a]=R(null),[d,m]=R(!1),y=n===null?void 0:`im-reset-consequence-${n.rowId}`,u=Se(y,()=>m(!1));return i(_e,{...e,kind:we,row:n,status:on(n,e.connections),statusMeta:n?.configured&&e.connections?.[n.rowId]?.statusSince!==void 0?i(an,{since:e.connections[n.rowId]?.statusSince,bridge:e.bridge,t}):null,notice:l,summary:n===null?null:i(An,{error:e.connections?.[n.rowId]?.lastMessageError,bridge:e.bridge,t}),title:f=>On(f,re(f),t),icon:f=>{let h=O(f,"platform");if(h==="")return null;let w=e.columns.find(c=>c.key==="platform")?.options?.find(c=>c.value===h)?.icon;return w?i(cn,{name:w}):null},meta:f=>{let h=re(f),v=kn(h,f),w=t(`platform.${h}`);return i("span",{className:"im-small im-muted",...v===null?{}:{title:v},children:v===null?w:`${w} \xB7 ${v}`})},extra:({dirty:f,frozen:h})=>{if(n===null)return null;let v=Sn(n.platform,f,h,e.connections?.[n.rowId]),w=v.actions.find(c=>c.id==="resetInbox");return s(N,{children:[s("div",{className:"im-span",children:[d&&w!==void 0?s(N,{children:[i("p",{id:y,children:w.descriptionKeys.map(c=>t(c)).join(" ")}),s("div",{className:"im-actions",children:[i(p,{type:"button",variant:"ghost",size:"sm",disabled:h,...u.cancelProps,children:t("settingsSection.cancel")}),i(p,{type:"button",variant:"destructive",size:"sm",disabled:w.disabled,...u.confirmProps,onClick:()=>{m(!1),a({id:"resetInbox",payload:{rowId:n.rowId}})},children:t("rowAction.resetInbox.confirm")})]})]}):i("div",{className:"im-actions",children:v.actions.map(c=>i(p,{type:"button",variant:"ghost",size:"sm",disabled:c.disabled,title:c.descriptionKeys.map(x=>t(x,c.descriptionParams)).join(" "),ref:c.id==="resetInbox"?u.triggerRef:void 0,onClick:()=>{c.id==="resetInbox"?m(!0):a({id:c.id,payload:{rowId:n.rowId}})},children:t(c.labelKey)},c.id))}),v.noteKey!==null?i("p",{className:"im-small im-muted",children:t(v.noteKey)}):null]}),r===null?null:i(pe,{bridge:e.bridge,command:Qe[r.id],payload:r.payload,items:"latest",environmentId:e.environmentId,t,onClose:()=>a(null)},r.id)]})}})}function Ee(e){let{t:n}=e;return i(_e,{...e,kind:Ce,row:e.target,title:t=>{let o=(t.name??"").trim()||(t.targetId??"").trim();return o.length>0?o:n("settingsSection.target.untitled")}})}var Yn="im-general";function he(e,n){return{signature:n,replyLanguage:e.replyLanguage,enabled:e.delivery.enabled,port:String(e.delivery.port),token:"",clearToken:!1,saving:!1,failed:!1}}function Bn(e){let n=e.view,t=Ne(n),o=ve(Yn),l=A(0),[r,a]=R(()=>he(n,t));r.signature!==t&&(l.current+=1,a(he(n,t)));let d=_n({baseline:{replyLanguage:n.replyLanguage,enabled:n.delivery.enabled,port:n.delivery.port,hasToken:n.delivery.hasToken},replyLanguage:r.replyLanguage,enabled:r.enabled,port:r.port,token:r.token,clearToken:r.clearToken}),m=d.changed,y=d.changed&&d.invalidPort,u=D(e.environmentId,"general","port"),f=D(e.environmentId,"general","token"),h=D(e.environmentId,"general","language");function v(c){o.activate(),a(x=>({...x,...c,failed:!1}))}function w(){if(!d.changed||r.saving)return;if(o.activate(),d.invalidPort){a(k=>({...k,failed:!0}));return}let c=d.payload,x=++l.current;a(k=>({...k,saving:!0,failed:!1})),J(e.bridge,Ue,c,E(e.environmentId)).then(k=>{if(l.current===x){if(k===null){a(L=>({...L,saving:!1,failed:!0}));return}a(he(k,Ne(k))),e.onSaved(k)}})}return i(be,{title:e.t("settingsSection.general"),defaultOpen:!1,children:s("div",{className:"im-form",children:[i(B,{id:h,label:e.t("settings.language.label"),description:e.t("settings.language.description"),children:s(le,{className:"im-wide",value:r.replyLanguage,disabled:r.saving,onValueChange:c=>{let x=oe.find(k=>k.value===c);x===void 0||x.value===r.replyLanguage||v({replyLanguage:x.value})},children:[i(se,{id:h,"aria-describedby":`${h}-hint`,children:i(Y,{children:oe.filter(c=>c.value===r.replyLanguage).map(c=>e.t(c.labelKey))})}),i(de,{children:oe.map(c=>i(ce,{value:c.value,children:e.t(c.labelKey)},c.value))})]})}),s("div",{className:"im-field",children:[s(G,{className:"im-inline",children:[i("span",{className:"im-medium",children:e.t("settings.deliveryHttp.enabled.label")}),i(dn,{checked:r.enabled,disabled:r.saving,onCheckedChange:c=>{c!==r.enabled&&v({enabled:c})}})]}),i("p",{className:"im-small im-muted",children:e.t("settings.deliveryHttp.enabled.description")})]}),r.enabled?i(B,{id:u,label:e.t("settings.deliveryHttp.port.label"),description:e.t("settings.deliveryHttp.port.description"),issue:y?e.t("settingsSection.issue.format"):null,children:i($,{id:u,type:"number",value:r.port,disabled:r.saving,"aria-invalid":y?!0:void 0,"aria-describedby":Z(u,y,!0),onChange:c=>{c.target.value!==r.port&&v({port:c.target.value})}})}):null,r.enabled?i(B,{id:f,label:e.t("settings.deliveryHttp.token.label"),description:e.t("settings.deliveryHttp.token.description"),children:i(ge,{id:f,value:r.token,stored:n.delivery.hasToken,clearing:r.clearToken,disabled:r.saving,invalid:!1,describedBy:Z(f,!1,!0),savedPlaceholder:e.t("settingsSection.secret.saved"),clearLabel:e.t("settingsSection.secret.clear"),undoLabel:e.t("settingsSection.secret.clearUndo"),onChange:c=>{c!==r.token&&v({token:c})},onToggleClear:()=>v({clearToken:!r.clearToken})})}):null,i(ye,{dirty:m,saving:r.saving,solid:o.chosen&&m,failed:r.failed,saveLabel:e.t("settingsSection.save"),revertLabel:e.t("settingsSection.revert"),failedLabel:e.t("settingsSection.saveFailed"),onSave:w,onRevert:()=>{l.current+=1,a(he(n,t))}})]})})}var Ln=`
5
+ `),d)},children:d("settingsSection.copy")})})]})]})}function Hn(e){return e.length>12?`${e.slice(0,8)}\u2022\u2022\u2022\u2022${e.slice(-4)}`:"cli_\u2022\u2022\u2022\u2022"}function kn(e){return e.length<=10?`${e.slice(0,3)}\u2022\u2022\u2022`:`${e.slice(0,6)}\u2022\u2022\u2022\u2022${e.slice(-4)}`}var zn={lark:{column:"larkAppId",mask:Hn},wecom:{column:"wecomBotId",mask:kn},"wecom-app":{column:"wecomAppCorpId",mask:kn}};function Tn(e,n){let t=zn[e];if(t===void 0)return null;let o=O(n,t.column);return o===""?null:t.mask(o)}function Ne(e){return s(yn,{className:e.className===void 0?"im-collapse":`im-collapse ${e.className}`,...e.defaultOpen===void 0?{}:{defaultOpen:e.defaultOpen},...e.open===void 0?{}:{open:e.open},...e.onOpenChange===void 0?{}:{onOpenChange:e.onOpenChange},children:[s("div",{className:"im-head",children:[s(fn,{className:"im-toggle",children:[i("span",{className:"im-chevron","aria-hidden":"true"}),e.icon,i("span",{className:"im-title im-medium",children:e.title}),e.meta]}),e.actions]}),e.notice,i(pn,{children:i("div",{className:"im-panel",children:e.children})})]})}function ve(e){return i("section",{className:"im-block",children:i(Ne,{...e})})}var _e="\0empty";function Nn(e){let n=e.columns.filter(m=>Ye(m,e.values)),t=e.groupBotSettings?n.filter(m=>m.group==="essential"):n,o=e.groupBotSettings?n.filter(m=>m.group!=="essential"):[],l=e.issues.filter(m=>o.some(f=>f.key===m.column)),r=JSON.stringify(l),[a,d]=R(()=>({open:l.length>0,issues:r})),u=a.open||a.issues!==r&&l.length>0;a.issues!==r&&d({open:u,issues:r});let g=m=>i(Qn,{column:m,scope:e.scope,environmentId:e.environmentId,proxies:e.proxies,values:e.values,savedValues:e.savedValues,secrets:e.secrets,clearSecrets:e.clearSecrets,storedSecrets:e.storedSecrets,issues:e.issues,disabled:e.disabled,t:e.t,onValue:e.onValue,onSecret:e.onSecret,onToggleClear:e.onToggleClear},m.key);return s(T,{children:[t.map(g),e.publicFields.map(m=>i(jn,{field:m,scope:e.scope,environmentId:e.environmentId,bridge:e.bridge,t:e.t},m.key)),o.length===0?null:i(Ne,{className:"im-span",title:l.length>0?e.t("settingsSection.moreSettingsIssues",{count:l.length}):e.t("settingsSection.moreSettings"),open:u,onOpenChange:m=>d({open:m,issues:r}),children:i("div",{className:"im-form",children:o.map(g)})})]})}function Qn(e){let n=e.column,t=D(e.environmentId,e.scope,n.key),o=Q(e.t,n.labelKey,n.label)??n.key,l=Q(e.t,n.descriptionKey,n.description),r=Q(e.t,n.placeholderKey,n.placeholder),a=xn(e.t,e.issues.filter(u=>u.column===n.key).map(u=>u.code)),d=ee(t,a!==null,l!==void 0);return n.kind==="password"?i(B,{id:t,label:o,description:l,issue:a,children:i(ge,{id:t,value:e.secrets[n.key]??"",stored:e.storedSecrets[n.key]===!0,clearing:e.clearSecrets.includes(n.key),disabled:e.disabled,invalid:a!==null,describedBy:d,placeholder:r,savedPlaceholder:e.t("settingsSection.secret.saved"),clearLabel:e.t("settingsSection.secret.clear"),undoLabel:e.t("settingsSection.secret.clearUndo"),onChange:u=>{u!==(e.secrets[n.key]??"")&&e.onSecret(n.key,u)},onToggleClear:()=>e.onToggleClear(n.key)})}):n.kind==="select"?i(Wn,{column:n,id:t,label:o,description:l,issue:a,described:d,values:e.values,savedValues:e.savedValues,disabled:e.disabled,t:e.t,onValue:e.onValue}):n.kind==="proxy"?i("div",{className:"im-field",children:i(bn,{id:t,label:o,hint:l,value:e.values[n.key]??"",proxies:e.proxies,disabled:e.disabled,onChange:u=>{u!==(e.values[n.key]??"")&&e.onValue(n.key,u)},children:a===null?null:i("p",{id:`${t}-issue`,className:"im-small im-issue",role:"alert",children:a})})}):i(B,{id:t,label:o,description:l,issue:a,children:i($,{id:t,type:"text",value:e.values[n.key]??"",placeholder:r,disabled:e.disabled,"aria-invalid":a!==null?!0:void 0,"aria-describedby":d,onChange:u=>{let g=u.target.value;g!==(e.values[n.key]??"")&&e.onValue(n.key,g)}})})}function Wn(e){let n=e.values[e.column.key]??"",t=e.savedValues[e.column.key]??"",o=e.column.options??[],l=o.some(u=>u.value===""),r=o.find(u=>u.value===n),a=u=>e.column.unavailableLabelKey===void 0?u:e.t(e.column.unavailableLabelKey,{value:u}),d=n===""&&r===void 0?void 0:r===void 0?a(n):Q(e.t,r.labelKey,r.label)??r.value;return i(B,{id:e.id,label:e.label,description:e.description,issue:e.issue,children:s(se,{className:"im-wide",value:n===""?l?_e:null:n,disabled:e.disabled,onValueChange:u=>{let g=l&&u===_e?"":u??"";g!==n&&e.onValue(e.column.key,g)},children:[i(de,{id:e.id,"aria-invalid":e.issue!==null?!0:void 0,"aria-describedby":e.described,children:d===void 0?i(Y,{placeholder:e.t("settingsSection.select.default")}):i(Y,{children:d})}),s(ce,{children:[e.column.listsUnknownValue===!0&&t!==""&&!o.some(u=>u.value===t)?i(J,{value:t,disabled:e.column.unavailableLabelKey!==void 0,children:a(t)}):null,o.map(u=>i(J,{value:u.value===""?_e:u.value,children:Q(e.t,u.labelKey,u.label)??u.value},u.value))]})]})})}function jn(e){let n=D(e.environmentId,`${e.scope}-pub`,e.field.key);return s("div",{className:"im-field im-span",children:[i(G,{children:e.t(`settingsSection.publicField.${e.field.key}`)}),e.field.value===""?null:s("div",{className:"im-inline im-public-row",children:[i("span",{id:n,className:"im-public-value im-small",children:qn(e.field.value)}),e.field.copyable?i(p,{variant:"ghost",size:"sm",onClick:()=>{fe(e.bridge,e.field.value,e.t)},children:e.t("settingsSection.copy")}):null]}),e.field.hint===void 0?null:i("p",{className:"im-small im-muted",children:e.t(`settingsSection.publicFieldHint.${e.field.hint}`)})]})}function qn(e){let n=0;return e.split(/(?<=\/)(?!\/)/).map(t=>{let o=n;return n+=t.length,s(Le,{children:[o===0?null:i("wbr",{}),t]},o)})}function _n(e){let n={};for(let[r,a]of Object.entries(e.values))(e.baseline[r]??"")!==a&&(n[r]=a);let t={};for(let[r,a]of Object.entries(e.secrets))a!==""&&(t[r]=a);let o=[];for(let r of e.clearSecrets)Object.hasOwn(t,r)||o.includes(r)||o.push(r);return e.rowId===void 0||Object.keys(n).length>0||Object.keys(t).length>0||o.length>0?{changed:!0,edit:{...e.rowId===void 0?{}:{rowId:e.rowId},values:n,...Object.keys(t).length>0?{secrets:t}:{},...o.length>0?{clearSecrets:o}:{}}}:{changed:!1}}function Yn(e){let n=e.trim();if(!/^\d+$/.test(n))return null;let t=Number(n);return!Number.isInteger(t)||t<1||t>65535?null:t}function En(e){let n={};e.replyLanguage!==e.baseline.replyLanguage&&(n.replyLanguage=e.replyLanguage),e.enabled!==e.baseline.enabled&&(n.deliveryHttpEnabled=e.enabled);let t=!1;if(e.enabled){let o=Yn(e.port);o===null?t=!0:o!==e.baseline.port&&(n.deliveryHttpPort=o),e.token!==""?n.deliveryHttpToken=e.token:e.clearToken&&e.baseline.hasToken&&(n.clearDeliveryHttpToken=!0)}return t?{changed:!0,invalidPort:!0}:Object.keys(n).length===0?{changed:!1}:{changed:!0,invalidPort:!1,payload:n}}var Pn=ie({activeId:null,activate:()=>{}});function An(e){return i(Pn,{value:{activeId:e.activeId,activate:e.activate},children:e.children})}function be(e){let n=oe(Pn);return{chosen:n.activeId===e,activate:()=>n.activate(e)}}function Se(e,n){let t=A(!1);return{cancelProps:{autoFocus:!0,"aria-describedby":e,onClick:()=>{t.current=!0,n()}},confirmProps:{"aria-describedby":e},triggerRef:o=>{o===null||!t.current||(t.current=!1,o.focus())}}}function Ie(e,n){return{signature:n,values:{...e?.values},secrets:{},clearSecrets:[],saving:!1,failed:!1,confirming:!1,removing:!1,removeFailed:!1}}function Ee(e){let{kind:n,row:t}=e,o=t===null?n.newSlot:JSON.stringify(t),l=be(Z(n.newSlot,t?.rowId??null)),r=A(0),[a,d]=R(()=>Ie(t,o)),u=t!==null&&n.removeHintKey!==void 0?`im-remove-consequence-${n.newSlot}-${t.rowId}`:void 0,g=Se(u,()=>d(y=>({...y,confirming:!1})));a.signature!==o&&(r.current+=1,d(Ie(t,o)));let m=_n({...t===null?{}:{rowId:t.rowId},baseline:t?.values??{},values:a.values,secrets:a.secrets,clearSecrets:a.clearSecrets}),f=m.changed,h=t===null||!t.configured,b=e.status??ke(t),w=e.notice??null,c=a.saving||a.removing;function x(y){l.activate(),d(v=>({...y(v),failed:!1}))}function k(){if(!m.changed||c)return;l.activate();let y=m.edit,v=++r.current;d(I=>({...I,saving:!0,failed:!1})),X(e.bridge,n.saveCommand,y,P(e.environmentId)).then(I=>{if(r.current!==v)return;if(I===null){d(U=>({...U,saving:!1,failed:!0}));return}let E=t===null?void 0:n.rows(I).find(U=>U.rowId===t.rowId);E!==void 0&&d(Ie(E,JSON.stringify(E))),e.onSaved(I)})}function L(){if(t===null){e.onDiscard();return}let y=t.rowId,v=++r.current;d(I=>({...I,removing:!0,removeFailed:!1})),X(e.bridge,n.removeCommand,{rowId:y},P(e.environmentId)).then(I=>{if(r.current===v){if(I===null){d(E=>({...E,removing:!1,removeFailed:!0,confirming:!0}));return}e.onSaved(I)}})}return s(ve,{title:e.title(a.values),icon:e.icon?.(a.values),defaultOpen:h,meta:s(T,{children:[e.meta?.(a.values),s("span",{className:"im-status",children:[e.statusMeta,i(ue,{tone:b.tone,children:e.t(b.key)})]})]}),actions:a.confirming?s("div",{className:"im-actions",children:[i(p,{type:"button",variant:"ghost",size:"sm",disabled:a.removing||a.saving,...g.cancelProps,children:e.t("settingsSection.cancel")}),i(p,{type:"button",variant:"destructive",size:"sm",disabled:a.removing||a.saving,...g.confirmProps,onClick:L,children:e.t(n.removeConfirmKey)})]}):i(p,{type:"button",variant:"ghost",size:"sm",disabled:c,ref:g.triggerRef,onClick:()=>d(y=>({...y,confirming:!0,removeFailed:!1})),children:e.t("settingsSection.remove")}),notice:s(T,{children:[e.summary,a.confirming&&t!==null&&n.removeHintKey!==void 0?i("p",{id:u,children:e.t(n.removeHintKey)}):null,a.removeFailed?i("p",{className:"im-small im-issue",role:"alert",children:e.t(n.removeFailedKey)}):null]}),children:[w===null?null:i(H,{variant:w.variant,children:i(z,{children:w.text})}),s("div",{className:"im-form",children:[i(Nn,{scope:`${n.newSlot}-${t?.rowId??"new"}`,environmentId:e.environmentId,columns:e.columns,groupBotSettings:n.groupBotSettings===!0,proxies:e.proxies,values:a.values,savedValues:t?.values??{},secrets:a.secrets,clearSecrets:a.clearSecrets,storedSecrets:t?.secrets??{},issues:t?.issues??[],publicFields:t?.publicFields??[],disabled:c,bridge:e.bridge,t:e.t,onValue:(y,v)=>x(I=>({...I,values:{...I.values,[y]:v}})),onSecret:(y,v)=>x(I=>({...I,secrets:{...I.secrets,[y]:v}})),onToggleClear:y=>x(v=>({...v,clearSecrets:v.clearSecrets.includes(y)?v.clearSecrets.filter(I=>I!==y):[...v.clearSecrets,y]}))}),e.extra?.({dirty:f,frozen:c}),i(ye,{dirty:f,saving:a.saving,busy:a.removing,solid:l.chosen&&f,failed:a.failed,saveLabel:e.t("settingsSection.save"),revertLabel:e.t("settingsSection.revert"),failedLabel:e.t("settingsSection.saveFailed"),onSave:k,onRevert:()=>{r.current+=1,d(Ie(t,o))}})]})]})}function On(e){let n=e.bridge.useFormatTimestamp(),{error:t,t:o}=e;if(t===void 0)return null;let l=new Date(t.at),r=Number.isFinite(l.getTime())?l.toISOString():null;return s("div",{className:"im-small",role:"status",children:[s("p",{children:[i("strong",{className:"im-issue",children:o("settingsSection.lastMessageError.title")}),o("settingsSection.lastMessageError.separator"),i("span",{children:t.messageKey===void 0?t.message:o(t.messageKey,{...t.messageParams,defaultValue:t.message})})]}),s("p",{className:"im-muted",children:[o("settingsSection.lastMessageError.code",{code:t.code})," \xB7 ",o("settingsSection.lastMessageError.reference",{referenceId:t.referenceId}),r===null?null:s(T,{children:[" \xB7 ",i("time",{dateTime:r,children:n(r)})]})]})]})}var we={groupBotSettings:!0,newSlot:"im-new-row",saveCommand:De,removeCommand:Ue,rows:e=>e.bots,removeConfirmKey:"settingsSection.removeConfirm",removeHintKey:"settingsSection.removeHint",removeFailedKey:"settingsSection.removeFailed"},Ce={newSlot:"im-new-target",saveCommand:Ge,removeCommand:He,rows:e=>e.targets,removeConfirmKey:"settingsSection.target.removeConfirm",removeFailedKey:"settingsSection.target.removeFailed"},Bn=(e,n,t)=>{let o=(e.displayName??"").trim();return o.length>0?o:t(`platform.${n}`)};function Pe(e){let{bot:n,t}=e,o=e.bots.find(f=>f.rowId===(n===null?void 0:e.connections?.[n.rowId]?.duplicateOf)),l=an(n,e.connections,o===void 0?void 0:Bn(o.values,o.platform,t),t),[r,a]=R(null),[d,u]=R(!1),g=n===null?void 0:`im-reset-consequence-${n.rowId}`,m=Se(g,()=>u(!1));return i(Ee,{...e,kind:we,row:n,status:rn(n,e.connections),statusMeta:n?.configured&&e.connections?.[n.rowId]?.statusSince!==void 0?i(ln,{since:e.connections[n.rowId]?.statusSince,bridge:e.bridge,t}):null,notice:l,summary:n===null?null:i(On,{error:e.connections?.[n.rowId]?.lastMessageError,bridge:e.bridge,t}),title:f=>Bn(f,ae(f),t),icon:f=>{let h=O(f,"platform");if(h==="")return null;let w=e.columns.find(c=>c.key==="platform")?.options?.find(c=>c.value===h)?.icon;return w?i(un,{name:w}):null},meta:f=>{let h=ae(f),b=Tn(h,f),w=t(`platform.${h}`);return i("span",{className:"im-small im-muted",...b===null?{}:{title:b},children:b===null?w:`${w} \xB7 ${b}`})},extra:({dirty:f,frozen:h})=>{if(n===null)return null;let b=In(n.platform,f,h,e.connections?.[n.rowId]),w=b.actions.find(c=>c.id==="resetInbox");return s(T,{children:[s("div",{className:"im-span",children:[d&&w!==void 0?s(T,{children:[i("p",{id:g,children:w.descriptionKeys.map(c=>t(c)).join(" ")}),s("div",{className:"im-actions",children:[i(p,{type:"button",variant:"ghost",size:"sm",disabled:h,...m.cancelProps,children:t("settingsSection.cancel")}),i(p,{type:"button",variant:"destructive",size:"sm",disabled:w.disabled,...m.confirmProps,onClick:()=>{u(!1),a({id:"resetInbox",payload:{rowId:n.rowId}})},children:t("rowAction.resetInbox.confirm")})]})]}):i("div",{className:"im-actions",children:b.actions.map(c=>i(p,{type:"button",variant:"ghost",size:"sm",disabled:c.disabled,title:c.descriptionKeys.map(x=>t(x,c.descriptionParams)).join(" "),ref:c.id==="resetInbox"?m.triggerRef:void 0,onClick:()=>{c.id==="resetInbox"?u(!0):a({id:c.id,payload:{rowId:n.rowId}})},children:t(c.labelKey)},c.id))}),b.noteKey!==null?i("p",{className:"im-small im-muted",children:t(b.noteKey)}):null]}),r===null?null:i(pe,{bridge:e.bridge,command:We[r.id],payload:r.payload,items:"latest",environmentId:e.environmentId,t,onClose:()=>a(null)},r.id)]})}})}function Ae(e){let{t:n}=e;return i(Ee,{...e,kind:Ce,row:e.target,title:t=>{let o=(t.name??"").trim()||(t.targetId??"").trim();return o.length>0?o:n("settingsSection.target.untitled")}})}var Jn="im-general";function he(e,n){return{signature:n,replyLanguage:e.replyLanguage,enabled:e.delivery.enabled,port:String(e.delivery.port),token:"",clearToken:!1,saving:!1,failed:!1}}function Ln(e){let n=e.view,t=Te(n),o=be(Jn),l=A(0),[r,a]=R(()=>he(n,t));r.signature!==t&&(l.current+=1,a(he(n,t)));let d=En({baseline:{replyLanguage:n.replyLanguage,enabled:n.delivery.enabled,port:n.delivery.port,hasToken:n.delivery.hasToken},replyLanguage:r.replyLanguage,enabled:r.enabled,port:r.port,token:r.token,clearToken:r.clearToken}),u=d.changed,g=d.changed&&d.invalidPort,m=D(e.environmentId,"general","port"),f=D(e.environmentId,"general","token"),h=D(e.environmentId,"general","language");function b(c){o.activate(),a(x=>({...x,...c,failed:!1}))}function w(){if(!d.changed||r.saving)return;if(o.activate(),d.invalidPort){a(k=>({...k,failed:!0}));return}let c=d.payload,x=++l.current;a(k=>({...k,saving:!0,failed:!1})),X(e.bridge,$e,c,P(e.environmentId)).then(k=>{if(l.current===x){if(k===null){a(L=>({...L,saving:!1,failed:!0}));return}a(he(k,Te(k))),e.onSaved(k)}})}return i(ve,{title:e.t("settingsSection.general"),defaultOpen:!1,children:s("div",{className:"im-form",children:[i(B,{id:h,label:e.t("settings.language.label"),description:e.t("settings.language.description"),children:s(se,{className:"im-wide",value:r.replyLanguage,disabled:r.saving,onValueChange:c=>{let x=re.find(k=>k.value===c);x===void 0||x.value===r.replyLanguage||b({replyLanguage:x.value})},children:[i(de,{id:h,"aria-describedby":`${h}-hint`,children:i(Y,{children:re.filter(c=>c.value===r.replyLanguage).map(c=>e.t(c.labelKey))})}),i(ce,{children:re.map(c=>i(J,{value:c.value,children:e.t(c.labelKey)},c.value))})]})}),s("div",{className:"im-field",children:[s(G,{className:"im-inline",children:[i("span",{className:"im-medium",children:e.t("settings.deliveryHttp.enabled.label")}),i(cn,{checked:r.enabled,disabled:r.saving,onCheckedChange:c=>{c!==r.enabled&&b({enabled:c})}})]}),i("p",{className:"im-small im-muted",children:e.t("settings.deliveryHttp.enabled.description")})]}),r.enabled?i(B,{id:m,label:e.t("settings.deliveryHttp.port.label"),description:e.t("settings.deliveryHttp.port.description"),issue:g?e.t("settingsSection.issue.format"):null,children:i($,{id:m,type:"number",value:r.port,disabled:r.saving,"aria-invalid":g?!0:void 0,"aria-describedby":ee(m,g,!0),onChange:c=>{c.target.value!==r.port&&b({port:c.target.value})}})}):null,r.enabled?i(B,{id:f,label:e.t("settings.deliveryHttp.token.label"),description:e.t("settings.deliveryHttp.token.description"),children:i(ge,{id:f,value:r.token,stored:n.delivery.hasToken,clearing:r.clearToken,disabled:r.saving,invalid:!1,describedBy:ee(f,!1,!0),savedPlaceholder:e.t("settingsSection.secret.saved"),clearLabel:e.t("settingsSection.secret.clear"),undoLabel:e.t("settingsSection.secret.clearUndo"),onChange:c=>{c!==r.token&&b({token:c})},onToggleClear:()=>b({clearToken:!r.clearToken})})}):null,i(ye,{dirty:u,saving:r.saving,solid:o.chosen&&u,failed:r.failed,saveLabel:e.t("settingsSection.save"),revertLabel:e.t("settingsSection.revert"),failedLabel:e.t("settingsSection.saveFailed"),onSave:w,onRevert:()=>{l.current+=1,a(he(n,t))}})]})})}var Mn=`
6
6
  .im-settings {
7
7
  box-sizing: border-box;
8
8
  color: var(--foreground);
@@ -238,4 +238,4 @@ var Kn=window.__ycodiumPluginHost.react;var{Activity:Xn,Children:Zn,Component:et
238
238
  grid-column: 1 / -1;
239
239
  }
240
240
  }
241
- `;var Ae={};function Mn(e){let n=e.bridge.i18n.usePluginTranslation(),t=M(()=>E(e.environmentId),[e.environmentId]),o=e.bridge.commands.useQuery(Ke,Ae,t),l=e.bridge.commands.useSubscription(Fe,Ae,t),r=tn(l),a=M(()=>wn(o.data),[o.data]),[d,m]=R(null),[y,u]=R(null),[f,h]=R(!1),[v,w]=R(!1),[c,x]=R(null),[k,L]=R(null);if(a!==null&&a!==d&&m(a),y!==null){let _=Cn(y,{view:a?.view??null,isPending:o.isPending,failed:o.error!==null});_!==y&&u(_)}let g=y?.view??a?.view??d?.view??null,b=a??d,I=a===null&&o.data!==null&&!o.isPending,P=c==="lark"?{command:He,descriptionKey:K.descriptionKey}:c==="wecom"?{command:ze,descriptionKey:"wecomSetup.action.description"}:null,U=M(()=>Ye(b?.targetColumns??[],g?.bots??[],_=>n(`platform.${_}`)),[b,g,n]);function W(_){u({view:_,phase:"asked"}),o.refresh()}function ee(){u(null),o.refresh()}let j;if(o.isUnavailable)j=i(Oe,{variant:"warning",message:n("settingsSection.unavailable"),retryLabel:n("settingsSection.retry"),onRetry:ee});else if(g===null&&o.isPending)j=i("div",{className:"im-pending",children:i(V,{size:"md"})});else if(g===null||b===null)j=i(Oe,{variant:"error",message:n("settingsSection.loadFailed"),retryLabel:n("settingsSection.retry"),onRetry:ee});else{let _=g.bots.length===0&&!f;j=s(En,{activeId:k,activate:L,children:[o.error!==null||I?i(Oe,{variant:"error",message:n("settingsSection.loadFailed"),retryLabel:n("settingsSection.retry"),onRetry:ee}):null,i(Bn,{view:g,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:W}),g.bots.map(T=>i(Pe,{bot:T,bots:g.bots,connections:r,columns:b.columns,proxies:b.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:W,onDiscard:()=>{}},T.rowId)),f?i(Pe,{bot:null,bots:g.bots,connections:r,columns:b.columns,proxies:b.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:T=>{h(!1),W(T)},onDiscard:()=>h(!1)},we.newSlot):null,_?i(un,{title:n("settingsSection.empty"),description:n("settingsSection.emptyGuide",{larkLabel:n(K.labelKey),wecomLabel:n("wecomSetup.action.label"),addBotLabel:n("settingsSection.addBot")})}):null,s("div",{className:"im-actions",children:[i(p,{variant:"outline",disabled:f,onClick:()=>{h(!0),L(X(we.newSlot,null))},children:n("settingsSection.addBot")}),s(p,{variant:_?"default":"outline",disabled:c!==null,onClick:()=>x("lark"),children:[n(K.labelKey),i("span",{className:_?"im-badge im-badge-on-primary im-small":"im-badge im-small",children:n(K.badgeKey)})]}),s(p,{variant:"outline",disabled:c!==null,onClick:()=>x("wecom"),children:[n("wecomSetup.action.label"),i("span",{className:"im-badge im-small",children:n(K.badgeKey)})]})]}),i("p",{className:"im-small im-muted",children:n(K.warningKey)}),P?s("section",{className:"im-block",children:[i("p",{className:"im-small im-muted",children:n(P.descriptionKey)}),i(pe,{bridge:e.bridge,command:P.command,payload:Ae,items:"snapshots",environmentId:e.environmentId,t:n,onSettled:T=>{T.kind==="done"&&ee()},onClose:()=>x(null)})]}):null,i("h3",{className:"im-heading im-medium",children:n("settings.deliveryTargets.label")}),i("p",{className:"im-small im-muted",children:n("settingsSection.target.description")}),g.targets.map(T=>i(Ee,{target:T,columns:U,proxies:b.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:W,onDiscard:()=>{}},T.rowId)),v?i(Ee,{target:null,columns:U,proxies:b.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:T=>{w(!1),W(T)},onDiscard:()=>w(!1)},Ce.newSlot):null,i("div",{className:"im-actions",children:i(p,{variant:"outline",disabled:v,onClick:()=>{w(!0),L(X(Ce.newSlot,null))},children:n("settingsSection.target.add")})})]})}let ne=r===null?null:nn(g?.bots??[],r);return i(sn,{bridge:e.bridge,children:s("div",{className:"im-settings",children:[i("style",{children:Ln}),s("div",{className:"im-head",children:[i("h2",{className:"im-heading im-medium im-title",children:n("settings.title")}),ne!==null&&ne.configured>0?i(ue,{tone:"neutral","aria-label":n("settingsSection.onlineLabel",ne),children:n("settingsSection.online",ne)}):null]}),j]})})}function Oe(e){return s(H,{variant:e.variant,layout:"inline",children:[i(z,{children:e.message}),i(mn,{children:i(p,{variant:"ghost",size:"sm",onClick:e.onRetry,children:e.retryLabel})})]})}function Jn(e){return{slots:[{name:"settings.section",order:20,component(n){return i(Mn,{bridge:e,environmentId:n.environmentId??null},n.environmentId??"")}}]}}export{Jn as default};
241
+ `;var Oe={};function Kn(e){let n=e.bridge.i18n.usePluginTranslation(),t=M(()=>P(e.environmentId),[e.environmentId]),o=e.bridge.commands.useQuery(Ve,Oe,t),l=e.bridge.commands.useSubscription(Fe,Oe,t),r=on(l),a=M(()=>Cn(o.data),[o.data]),[d,u]=R(null),[g,m]=R(null),[f,h]=R(!1),[b,w]=R(!1),[c,x]=R(null),[k,L]=R(null);if(a!==null&&a!==d&&u(a),g!==null){let _=hn(g,{view:a?.view??null,isPending:o.isPending,failed:o.error!==null});_!==g&&m(_)}let y=g?.view??a?.view??d?.view??null,v=a??d,I=a===null&&o.data!==null&&!o.isPending,E=c==="lark"?{command:ze,descriptionKey:K.descriptionKey}:c==="wecom"?{command:Qe,descriptionKey:"wecomSetup.action.description"}:null,U=M(()=>Je(v?.targetColumns??[],y?.bots??[],_=>n(`platform.${_}`)),[v,y,n]);function W(_){m({view:_,phase:"asked"}),o.refresh()}function ne(){m(null),o.refresh()}let j;if(o.isUnavailable)j=i(Be,{variant:"warning",message:n("settingsSection.unavailable"),retryLabel:n("settingsSection.retry"),onRetry:ne});else if(y===null&&o.isPending)j=i("div",{className:"im-pending",children:i(F,{size:"md"})});else if(y===null||v===null)j=i(Be,{variant:"error",message:n("settingsSection.loadFailed"),retryLabel:n("settingsSection.retry"),onRetry:ne});else{let _=y.bots.length===0&&!f;j=s(An,{activeId:k,activate:L,children:[o.error!==null||I?i(Be,{variant:"error",message:n("settingsSection.loadFailed"),retryLabel:n("settingsSection.retry"),onRetry:ne}):null,i(Ln,{view:y,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:W}),y.bots.map(N=>i(Pe,{bot:N,bots:y.bots,connections:r,columns:v.columns,proxies:v.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:W,onDiscard:()=>{}},N.rowId)),f?i(Pe,{bot:null,bots:y.bots,connections:r,columns:v.columns,proxies:v.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:N=>{h(!1),W(N)},onDiscard:()=>h(!1)},we.newSlot):null,_?i(mn,{title:n("settingsSection.empty"),description:n("settingsSection.emptyGuide",{larkLabel:n(K.labelKey),wecomLabel:n("wecomSetup.action.label"),addBotLabel:n("settingsSection.addBot")})}):null,s("div",{className:"im-actions",children:[i(p,{variant:"outline",disabled:f,onClick:()=>{h(!0),L(Z(we.newSlot,null))},children:n("settingsSection.addBot")}),s(p,{variant:_?"default":"outline",disabled:c!==null,onClick:()=>x("lark"),children:[n(K.labelKey),i("span",{className:_?"im-badge im-badge-on-primary im-small":"im-badge im-small",children:n(K.badgeKey)})]}),s(p,{variant:"outline",disabled:c!==null,onClick:()=>x("wecom"),children:[n("wecomSetup.action.label"),i("span",{className:"im-badge im-small",children:n(K.badgeKey)})]})]}),i("p",{className:"im-small im-muted",children:n(K.warningKey)}),E?s("section",{className:"im-block",children:[i("p",{className:"im-small im-muted",children:n(E.descriptionKey)}),i(pe,{bridge:e.bridge,command:E.command,payload:Oe,items:"snapshots",environmentId:e.environmentId,t:n,onSettled:N=>{N.kind==="done"&&ne()},onClose:()=>x(null)})]}):null,i("h3",{className:"im-heading im-medium",children:n("settings.deliveryTargets.label")}),i("p",{className:"im-small im-muted",children:n("settingsSection.target.description")}),y.targets.map(N=>i(Ae,{target:N,columns:U,proxies:v.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:W,onDiscard:()=>{}},N.rowId)),b?i(Ae,{target:null,columns:U,proxies:v.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:N=>{w(!1),W(N)},onDiscard:()=>w(!1)},Ce.newSlot):null,i("div",{className:"im-actions",children:i(p,{variant:"outline",disabled:b,onClick:()=>{w(!0),L(Z(Ce.newSlot,null))},children:n("settingsSection.target.add")})})]})}let te=r===null?null:tn(y?.bots??[],r);return i(dn,{bridge:e.bridge,children:s("div",{className:"im-settings",children:[i("style",{children:Mn}),s("div",{className:"im-head",children:[i("h2",{className:"im-heading im-medium im-title",children:n("settings.title")}),te!==null&&te.configured>0?i(ue,{tone:"neutral","aria-label":n("settingsSection.onlineLabel",te),children:n("settingsSection.online",te)}):null]}),j]})})}function Be(e){return s(H,{variant:e.variant,layout:"inline",children:[i(z,{children:e.message}),i(gn,{children:i(p,{variant:"ghost",size:"sm",onClick:e.onRetry,children:e.retryLabel})})]})}function Xn(e){return{slots:[{name:"settings.section",order:20,component(n){return i(Kn,{bridge:e,environmentId:n.environmentId??null},n.environmentId??"")}}]}}export{Xn as default};