@ycodium-ai/plugin-im 0.2.3566 → 0.2.3598
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 +2 -2
- package/assets/ui.js +194 -4
- package/dist/index.js +40 -10
- package/locales/en.json +19 -4
- package/locales/zh-CN.json +19 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -347,8 +347,8 @@ secrets stay until you clear them.
|
|
|
347
347
|
|
|
348
348
|
## Surfaces
|
|
349
349
|
|
|
350
|
-
- **Web / Desktop
|
|
351
|
-
|
|
350
|
+
- **Web / Desktop** — Settings → Plugins → the **Chat bridge** card → **Configure**. The plugin draws the dialog's contents itself in the `settings.section` seat (`src/ui/`). Bots are grouped by platform; opening one shows Basic / Access / Chat / Connection & diagnostics / Danger zone tabs, while delivery targets and general settings have their own top-level tabs. Bot settings split connection checks and diagnostics from reset inbox and deletion, which are under Danger zone. WeChat is not offered for new bots until its connection is available; existing rows remain visible.
|
|
351
|
+
- **Mobile** — Settings → Plugins, the **Chat** section inline; the same bundle runs in a WebView.
|
|
352
352
|
The settings card this package registers is declaration-only (`presentation: "hidden"`): the
|
|
353
353
|
host draws no form for it, and reads it to know which cell holds a proxy and which hold passwords.
|
|
354
354
|
- Chat replies themselves go to Telegram, WeCom, or Lark, not into a Ycodium
|
package/assets/ui.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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(`
|
|
1
|
+
var Gn=window.__ycodiumPluginHost.react;var{Activity:st,Children:dt,Component:ct,Fragment:Me,Profiler:mt,PureComponent:ut,StrictMode:gt,Suspense:yt,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:ft,__COMPILER_RUNTIME:pt,act:bt,cache:vt,cacheSignal:St,captureOwnerStack:wt,cloneElement:ht,createContext:te,createElement:Re,createRef:It,forwardRef:xt,isValidElement:Ct,lazy:kt,memo:Nt,startTransition:Rt,unstable_useCacheRefresh:Tt,use:ie,useActionState:_t,useCallback:Pt,useContext:Et,useDebugValue:At,useDeferredValue:Bt,useEffect:Ve,useEffectEvent:Ot,useId:Ke,useImperativeHandle:Lt,useInsertionEffect:Mt,useLayoutEffect:Vt,useMemo:B,useOptimistic:Kt,useReducer:Ft,useRef:L,useState:I,useSyncExternalStore:Dt,useTransition:$t,version:Ut}=Gn;var M=(e,n)=>{let t=e[n];return typeof t=="string"?t.trim():""};var R="/developers/v1",zt={uploadImage:`${R}/app/upload/image`,createFromTemplate:`${R}/manifest/upsert_by_template`,createBare:`${R}/app/create`,listApps:`${R}/app/list`,robotSwitch:e=>`${R}/robot/switch/${e}`,eventSwitch:e=>`${R}/event/switch/${e}`,eventRead:e=>`${R}/event/${e}`,eventUpdate:e=>`${R}/event/update/${e}`,callbackSwitch:e=>`${R}/callback/switch/${e}`,callbackRead:e=>`${R}/callback/${e}`,callbackUpdate:e=>`${R}/callback/update/${e}`,scopeCatalog:e=>`${R}/scope/all/${e}`,scopeUpdate:e=>`${R}/scope/update/${e}`,safeSetting:e=>`${R}/safe_setting/update/${e}`,visibleOnline:e=>`${R}/visible/online/${e}`,versionList:e=>`${R}/app_version/list/${e}`,versionCreate:e=>`${R}/app_version/create/${e}`,publishCommit:(e,n)=>`${R}/publish/commit/${e}/${n}`,secret:e=>`${R}/secret/${e}`};var Qt=10*6e4;var Fe=9e4;var De="settings.view",$e="settings.connections",Ue="settings.saveBot",Ge="settings.removeBot",He="settings.saveGeneral",ze="settings.saveTarget",Qe="settings.removeTarget",We="larkSetup.session",je="wecomSetup.session",$={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"},Ye=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:Fe/1e3},platform:"lark"}],Hn="lark",oe=[{value:"zh-CN",labelKey:"settings.language.zhCN"},{value:"en",labelKey:"settings.language.en"}],zn="botId",U=e=>M(e,"platform")||Hn,Ze=(e,n)=>{let t=e.showWhen;if(t===void 0)return!0;let o=t.key==="platform"?U(n):M(n,t.key);return t.equals.includes(o)},Xe=(e,n,t)=>e.map(o=>o.key===zn?{...o,kind:"select",options:n.map(r=>({value:r.rowId,label:`${M(r.values,"displayName")||t(r.platform)} (${r.rowId})`}))}:o),en=(e,n)=>{switch(n.kind){case"qr":{let{expired:t,...o}=e,r=n.expiresAt===void 0?{payload:n.payload}:{payload:n.payload,expiresAt:n.expiresAt};return{...o,qr:r}}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,...r}=e;return{...r,status:t,expired:!0}}case"steps":return{...e,steps:n.steps};case"done":case"failed":{let{status:t,...o}=e;return{...o,result:n}}}},Te=e=>e==="inboxUnreadable"?"settingsSection.connection.reason.inbox-unreadable":e==="notAvailable"?"settingsSection.connection.reason.not-available":`rowAction.checkConnection.hint.${e}`,J=e=>e.reason==="not-available"||e.hint==="notAvailable",ae=e=>e?.state==="failed"&&(e.reason==="inbox-unreadable"||e.hint==="inboxUnreadable"),nn=e=>e.hint==="wecomBotCredentials"||e.hint==="unauthorized"||e.hint==="larkCredentials"||e.hint==="wecomLongConnOff"||e.hint==="wecomTakenOver",K=e=>e.state==="duplicate"||J(e)||e.hint==="connecting"||e.hint==="wecomCallbackNotSeen"?"warning":"error";var tn=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}},on=e=>!e||typeof e!="object"||Array.isArray(e)?tn(e):tn(Object.fromEntries(Object.entries(e).map(([n,t])=>[n,typeof t=="string"?t.trim():t])));var an=(e,n)=>{let t=e.filter(o=>o.configured);return{configured:t.length,connected:t.filter(o=>n?.[o.rowId]?.state==="connected").length}},rn=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:r,statusSince:a,...l}=o,d=on(r);return[t,{...l,...typeof a=="number"&&Number.isSafeInteger(a)&&a>=0&&a<=864e13?{statusSince:a}:{},...d===null?{}:{lastMessageError:d}}]})):n},_e=e=>e===null||!e.configured?{key:"settingsSection.status.incomplete",tone:"attention"}:{key:"settingsSection.status.ready",tone:"success"},re=(e,n)=>{if(e===null||!e.configured)return _e(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:K(t)};default:return{key:"settingsSection.status.ready",tone:"neutral"}}},ln=(e,n,t,o)=>{if(e===null||!e.configured)return null;let r=n?.[e.rowId];return r?.state==="failed"?ae(r)?{text:o(Te("inboxUnreadable")),variant:K(r)}:{text:[o(r.reason===void 0?"settingsSection.connection.failed":`settingsSection.connection.reason.${r.reason}`),r.hint===void 0?null:o(Te(r.hint)),J(r)||nn(r)?null:o("settingsSection.connection.reconnect"),r.error===void 0?null:o("settingsSection.connection.details",{error:r.error})].filter(l=>l!==null).join(" "),variant:K(r)}:r?.state==="duplicate"?{text:o("settingsSection.connection.duplicate",{name:t??r.duplicateOf??""}),variant:K(r)}:null};var{jsx:i,jsxs:s,Fragment:k}=window.__ycodiumPluginHost.jsxRuntime;function le(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=te(null);function dn(e){return i(sn,{value:e.bridge,children:e.children})}var Qn=new Set(["Collapsible","CollapsiblePanel","CollapsibleTrigger"]);function N(e){let n=t=>{let a=ie(sn)?.ui?.[e];return a===void 0?Qn.has(e)?Re("div",{className:t.className},t.children):null:Re(a,t)};return n.displayName=e,n}var p=N("Button"),G=N("Input"),H=N("Label"),cn=N("Switch"),se=N("Select"),de=N("SelectTrigger"),Z=N("SelectValue"),ce=N("SelectPopup"),X=N("SelectItem"),z=N("StatusPill"),mn=N("EmptyInline"),Q=N("Alert"),un=N("AlertAction"),W=N("AlertDescription"),gn=N("Collapsible"),yn=N("CollapsibleTrigger"),fn=N("CollapsiblePanel"),F=N("Spinner"),pn=N("QRCodeSvg"),bn=N("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(),r=e.params?.hint?.toString(),a=e.noteKey===void 0?void 0:n(e.noteKey),l=K({hint:r})==="warning"?"caution":"issue";return{headline:n(e.reasonKey,e.params),link:void 0,note:a,tone:l,headlineTone:a===void 0?l:"neutral",details:[...o===void 0?[]:[o],...(e.warnings??[]).map(d=>n(d.key,d.params))]}};var Sn=(e,n,t,o)=>{let r=o?.state==="failed"&&J(o),a=ae(o);return{actions:Je.filter(l=>(l.platform===void 0||l.platform===e)&&(l.id!=="resetInbox"||a)).map(l=>({...l,descriptionKeys:[l.descriptionKey,...l.id==="resetInbox"?Ye(e):[]],disabled:n||t||l.id==="reconnect"&&r})),noteKey:n?"settingsSection.action.saveFirst":r?"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),hn=e=>me(e)&&wn(e.view)&&Array.isArray(e.columns)&&Array.isArray(e.targetColumns)&&Array.isArray(e.proxies)?e:null,ee=async(e,n,t,o)=>{try{let r=await e.commands.invoke(n,t,o);return me(r)&&r.ok===!0&&wn(r.view)?r.view:null}catch{return null}},In=(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"},O=e=>e==null||e.length===0?{}:{environmentId:e},j=(e,n)=>n===null?e:`${e}:${n}`,Pe=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 ne(e,n,t){let o=[n?`${e}-issue`:null,t?`${e}-hint`:null].filter(r=>r!==null);return o.length===0?void 0:o.join(" ")}function V(e){return s("div",{className:e.span===!0?"im-field im-span":"im-field",children:[i(H,{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 ue(e){let n=e.stored&&e.value===""&&!e.clearing?e.savedPlaceholder:e.placeholder;return s("div",{className:"im-secret",children:[i(G,{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 ge(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 ye(e,n,t){try{await e.writeClipboard(n),e.notify(t("settingsSection.copied"),"success")}catch{e.notify(t("settingsSection.copyFailed"),"warning")}}var Wn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function fe(e){let n=B(()=>O(e.environmentId),[e.environmentId]),t=e.bridge.commands.useSubscription(e.command,e.payload,n),o=B(()=>Wn(t.data)?e.items==="snapshots"?t.data:en({},t.data):{},[t.data,e.items]),r=o.result,a=L(null),l=e.onSettled;Ve(()=>{r===void 0||a.current===t.data||(a.current=t.data,l?.(r))},[r,t.data,l]);let d=e.t,c=r===void 0&&t.error===null&&!t.isUnavailable;return s("div",{className:"im-flow im-span",children:[t.isUnavailable||t.error!==null?i(Q,{variant:"error",layout:"inline",children:i(W,{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-flow-status im-medium",children:[c?i(F,{size:"sm"}):null,i("span",{children:d(o.status.statusKey,o.status.params)})]}),c&&o.status===void 0&&o.qr===void 0?s("p",{className:"im-flow-status im-medium",children:[i(F,{size:"sm"}),i("span",{children:d("settingsSection.action.running")})]}):null,o.steps===void 0?null:i("ul",{className:"im-steps im-small",children:o.steps.map(b=>s("li",{"data-state":b.state,children:[i("span",{children:d(b.labelKey)}),i("span",{className:"im-muted",children:d(`settingsSection.step.${b.state}`)})]},b.id))}),r===void 0?null:i(jn,{result:r,bridge:e.bridge,t:d}),s("div",{className:"im-actions",children:[r?.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(r===void 0?"settingsSection.cancel":"settingsSection.action.close")})]})]})}var Cn=e=>e==="issue"?"im-issue":e==="caution"?"im-caution":"";function jn(e){let{headline:n,headlineTone:t,tone:o,note:r,link:a,details:l}=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 ${Cn(t)}`.trimEnd(),children:n}),r===void 0?null:i("p",{className:`im-small im-result-note ${Cn(o)}`.trimEnd(),children:r})]}),a===void 0?null:i("div",{className:"im-actions",children:i(p,{className:"im-link",variant:"link",size:"sm",onClick:()=>e.bridge.openExternal(a.url),children:a.label})}),l.length===0?null:s(k,{children:[i("pre",{className:"im-detail im-small",children:l.join(`
|
|
2
2
|
|
|
3
|
-
`)}),i("div",{className:"im-actions",children:i(p,{variant:"ghost",size:"sm",onClick:()=>{
|
|
3
|
+
`)}),i("div",{className:"im-actions",children:i(p,{variant:"ghost",size:"sm",onClick:()=>{ye(e.bridge,l.join(`
|
|
4
4
|
|
|
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:e.values.platform==="lark"?e.t("column.proxy.larkHint"):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:n.kind==="number"?"number":"text",min:n.min,max:n.max,step:n.kind==="number"?1:void 0,value:e.values[n.key]??n.defaultValue??"",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}),", ",o("settingsSection.lastMessageError.reference",{referenceId:t.referenceId}),r===null?null:s(T,{children:[", ",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}, ${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=`
|
|
5
|
+
`),d)},children:d("settingsSection.copy")})})]})]})}function Y(e){let n=(()=>{switch(e.platform){case"lark":return s(k,{children:[i("path",{fill:"#00D6B9",d:"M7.2 4.5h7.6c1.2 0 2.1.55 2.7 1.58 1.05 1.8 1.55 3.45 1.58 4.95-2.04-.62-4.2-.15-6.22 1.45C11.3 9.7 9.42 7.04 7.2 4.5Z"}),i("path",{fill:"#1456B8",d:"M10.8 13.55c3.3-2.93 5.72-4.24 9.47-2.52-1.2 1.45-2.27 4.18-3.86 5.43-1.67 1.31-3.9.5-5.61-.64v-2.27Z"}),i("path",{fill:"#3370FF",d:"M4.4 8.35c3.47 3.61 7.25 6.1 10.33 5.7 1.06-.14 2.2-.72 3.4-1.72-1.04 2.65-2.6 4.8-5.06 6-2.46 1.2-5.56.52-7.42-.72A2.76 2.76 0 0 1 4.4 15.3V8.35Z"})]});case"wecom":case"wecom-app":return s(k,{children:[i("path",{fill:"none",stroke:"#3370FF",strokeWidth:"2.35",strokeLinecap:"round",strokeLinejoin:"round",d:"M17.7 14.5c1.05-1.12 1.65-2.52 1.65-4.03 0-3.82-3.58-6.92-8-6.92s-8 3.1-8 6.92 3.58 6.92 8 6.92c1.17 0 2.28-.22 3.28-.62"}),i("path",{fill:"#07C160",d:"M16.1 15.15c.7-.7 1.83-.7 2.53 0s.7 1.83 0 2.53-1.83.7-2.53 0-.7-1.83 0-2.53Z"}),i("path",{fill:"#FFB800",d:"M19.25 13.45a1.36 1.36 0 1 1 1.92 1.92 1.36 1.36 0 0 1-1.92-1.92Z"}),i("path",{fill:"#FF7A00",d:"M19.55 18.05a1.16 1.16 0 1 1 1.64 1.64 1.16 1.16 0 0 1-1.64-1.64Z"}),i("path",{fill:"#3370FF",d:"M15.25 18.75a.92.92 0 1 1 1.3 1.3.92.92 0 0 1-1.3-1.3Z"})]});case"telegram":return i("path",{fill:"#229ED9",d:"M23.95 4.57c-.36-1.45-1.43-1.76-2.82-1.24L1.5 10.9c-1.34.52-1.32 1.27-.24 1.6l5.03 1.57 11.66-7.36c.55-.34 1.05-.16.64.21l-9.44 8.52-.37 5.12c.54 0 .78-.24 1.08-.53l2.59-2.51 5.38 3.97c.99.55 1.7.27 1.95-.92L23.95 4.57Z"});case"wechat":return i("path",{fill:"#07C160",d:"M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z"});default:return null}})();return n===null?null:i("span",{className:`im-platform im-platform-${e.platform}`,"aria-hidden":"true",children:i("svg",{width:20,height:20,viewBox:"0 0 24 24",focusable:"false",children:n})})}function qn(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 Yn={lark:{column:"larkAppId",mask:qn},wecom:{column:"wecomBotId",mask:kn},"wecom-app":{column:"wecomAppCorpId",mask:kn}};function pe(e,n){let t=Yn[e];if(t===void 0)return null;let o=M(n,t.column);return o===""?null:t.mask(o)}function Ee(e){let n=e.className===void 0?"im-collapse":`im-collapse ${e.className}`;return e.staticHead===!0?s("div",{className:n,children:[s("div",{className:"im-head",children:[s("div",{className:"im-toggle im-static",children:[e.icon,i("span",{className:"im-title im-medium",children:e.title}),e.meta]}),e.actions]}),e.notice,i("div",{className:"im-panel",children:e.children})]}):s(gn,{className:n,...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:e.className===void 0?"im-block":`im-block ${e.className}`,children:i(Ee,{...e})})}var Jn=new Set(["accessMode","allowedSenders","runtimeMode"]),Zn=new Set(["groupMention","queueMode","approvalTimeoutMinutes","larkPanelMode","larkTopicOnMention","wecomNumberedHints"]);function Nn(e){return Jn.has(e.key)?"access":Zn.has(e.key)?"chat":e.group==="essential"||e.key==="defaultModel"||e.key==="defaultPreset"?"basic":"advanced"}var ve=(e,n)=>e!=="wechat"||n;var Ae="\0empty";function Rn(e){let n=e.columns.filter(f=>Ze(f,e.values)&&(e.section===void 0||Nn(f)===e.section)),t=e.section!==void 0?n:e.groupBotSettings?n.filter(f=>f.group==="essential"):n,o=e.section!==void 0?[]:e.groupBotSettings?n.filter(f=>f.group!=="essential"):[],r=e.issues.filter(f=>o.some(w=>w.key===f.column)),a=JSON.stringify(r),[l,d]=I(()=>({open:r.length>0,issues:a})),c=l.open||l.issues!==a&&r.length>0;l.issues!==a&&d({open:c,issues:a});let b=f=>i(Xn,{column:f,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},f.key);return s(k,{children:[t.map(b),(e.section===void 0||e.section==="basic"?e.publicFields:[]).map(f=>i(nt,{field:f,scope:e.scope,environmentId:e.environmentId,bridge:e.bridge,t:e.t},f.key)),o.length===0?null:i(Ee,{className:"im-span",title:r.length>0?e.t("settingsSection.moreSettingsIssues",{count:r.length}):e.t("settingsSection.moreSettings"),open:c,onOpenChange:f=>d({open:f,issues:a}),children:i("div",{className:"im-form",children:o.map(b)})})]})}function Xn(e){let n=e.column,t=D(e.environmentId,e.scope,n.key),o=q(e.t,n.labelKey,n.label)??n.key,r=q(e.t,n.descriptionKey,n.description),a=q(e.t,n.placeholderKey,n.placeholder),l=xn(e.t,e.issues.filter(c=>c.column===n.key).map(c=>c.code)),d=ne(t,l!==null,r!==void 0);return n.kind==="password"?i(V,{id:t,label:o,description:r,issue:l,children:i(ue,{id:t,value:e.secrets[n.key]??"",stored:e.storedSecrets[n.key]===!0,clearing:e.clearSecrets.includes(n.key),disabled:e.disabled,invalid:l!==null,describedBy:d,placeholder:a,savedPlaceholder:e.t("settingsSection.secret.saved"),clearLabel:e.t("settingsSection.secret.clear"),undoLabel:e.t("settingsSection.secret.clearUndo"),onChange:c=>{c!==(e.secrets[n.key]??"")&&e.onSecret(n.key,c)},onToggleClear:()=>e.onToggleClear(n.key)})}):n.kind==="select"?i(et,{column:n,id:t,label:o,description:r,issue:l,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:e.values.platform==="lark"?e.t("column.proxy.larkHint"):r,value:e.values[n.key]??"",proxies:e.proxies,disabled:e.disabled,onChange:c=>{c!==(e.values[n.key]??"")&&e.onValue(n.key,c)},children:l===null?null:i("p",{id:`${t}-issue`,className:"im-small im-issue",role:"alert",children:l})})}):i(V,{id:t,label:o,description:r,issue:l,children:i(G,{id:t,type:n.kind==="number"?"number":"text",min:n.min,max:n.max,step:n.kind==="number"?1:void 0,value:e.values[n.key]??n.defaultValue??"",placeholder:a,disabled:e.disabled,"aria-invalid":l!==null?!0:void 0,"aria-describedby":d,onChange:c=>{let b=c.target.value;b!==(e.values[n.key]??"")&&e.onValue(n.key,b)}})})}function et(e){let n=e.values[e.column.key]??"",t=e.savedValues[e.column.key]??"",o=(e.column.options??[]).filter(c=>e.column.key!=="platform"||ve(c.value,e.savedValues.platform===c.value)),r=o.some(c=>c.value===""),a=o.find(c=>c.value===n),l=c=>e.column.unavailableLabelKey===void 0?c:e.t(e.column.unavailableLabelKey,{value:c}),d=n===""&&a===void 0?void 0:a===void 0?l(n):q(e.t,a.labelKey,a.label)??a.value;return i(V,{id:e.id,label:e.label,description:e.description,issue:e.issue,children:s(se,{className:"im-wide",value:n===""?r?Ae:null:n,disabled:e.disabled,onValueChange:c=>{let b=r&&c===Ae?"":c??"";b!==n&&e.onValue(e.column.key,b)},children:[i(de,{id:e.id,"aria-invalid":e.issue!==null?!0:void 0,"aria-describedby":e.described,children:d===void 0?i(Z,{placeholder:e.t("settingsSection.select.default")}):i(Z,{children:d})}),s(ce,{children:[e.column.listsUnknownValue===!0&&t!==""&&!o.some(c=>c.value===t)?i(X,{value:t,disabled:e.column.unavailableLabelKey!==void 0,children:l(t)}):null,o.map(c=>i(X,{value:c.value===""?Ae:c.value,children:q(e.t,c.labelKey,c.label)??c.value},c.value))]})]})})}function nt(e){let n=D(e.environmentId,`${e.scope}-pub`,e.field.key);return s("div",{className:"im-field im-span",children:[i(H,{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:tt(e.field.value)}),e.field.copyable?i(p,{variant:"ghost",size:"sm",onClick:()=>{ye(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 tt(e){let n=0;return e.split(/(?<=\/)(?!\/)/).map(t=>{let o=n;return n+=t.length,s(Me,{children:[o===0?null:i("wbr",{}),t]},o)})}var Tn=["basic","access","chat","advanced","danger"];function _n(e){let n=Ke(),t=e.showDanger?Tn:Tn.slice(0,-1),o=a=>{e.onChange(a),document.getElementById(`${n}-${a}`)?.focus()},r=(a,l)=>{let d=a.key==="Home"?0:a.key==="End"?t.length-1:a.key==="ArrowLeft"?(l-1+t.length)%t.length:a.key==="ArrowRight"?(l+1)%t.length:null;d!==null&&(a.preventDefault(),o(t[d]))};return i("div",{className:"im-detail-tabs",role:"tablist","aria-label":e.t("settingsSection.detailTabs"),children:t.map((a,l)=>i(p,{id:`${n}-${a}`,type:"button",variant:"ghost",size:"sm",role:"tab","aria-selected":e.value===a,tabIndex:e.value===a?0:-1,className:"im-detail-tab",onClick:()=>e.onChange(a),onKeyDown:d=>r(d,l),children:e.t(`settingsSection.tab.${a}`)},a))})}function Pn(e){let n={};for(let[a,l]of Object.entries(e.values))(e.baseline[a]??"")!==l&&(n[a]=l);let t={};for(let[a,l]of Object.entries(e.secrets))l!==""&&(t[a]=l);let o=[];for(let a of e.clearSecrets)Object.hasOwn(t,a)||o.includes(a)||o.push(a);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 it(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=it(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 An=te({activeId:null,activate:()=>{}});function Bn(e){return i(An,{value:{activeId:e.activeId,activate:e.activate},children:e.children})}function Se(e){let n=ie(An);return{chosen:n.activeId===e,activate:()=>n.activate(e)}}function we(e,n){let t=L(!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 he(e,n,t={}){return{signature:n,values:{...t,...e?.values},secrets:{},clearSecrets:[],saving:!1,failed:!1,confirming:!1,removing:!1,removeFailed:!1}}function Be(e){let{kind:n,row:t}=e,o=t===null?`${n.newSlot}:${JSON.stringify(e.initialValues??{})}`:JSON.stringify(t),r=Se(j(n.newSlot,t?.rowId??null)),a=L(0),[l,d]=I(()=>he(t,o,e.initialValues)),[c,b]=I("basic"),f=t!==null&&n.removeHintKey!==void 0?`im-remove-consequence-${n.newSlot}-${t.rowId}`:void 0,w=we(f,()=>d(m=>({...m,confirming:!1})));l.signature!==o&&(a.current+=1,d(he(t,o,e.initialValues)));let h=Pn({...t===null?{}:{rowId:t.rowId},baseline:t?.values??{},values:l.values,secrets:l.secrets,clearSecrets:l.clearSecrets}),v=h.changed,x=t===null||!t.configured,u=e.status??_e(t),C=e.notice??null,y=l.saving||l.removing;function T(m){r.activate(),d(g=>({...m(g),failed:!1}))}function P(){if(!h.changed||y)return;r.activate();let m=h.edit,g=++a.current;d(S=>({...S,saving:!0,failed:!1})),ee(e.bridge,n.saveCommand,m,O(e.environmentId)).then(S=>{if(a.current!==g)return;if(S===null){d(Ne=>({...Ne,saving:!1,failed:!0}));return}let A=t===null?void 0:n.rows(S).find(Ne=>Ne.rowId===t.rowId);A!==void 0&&d(he(A,JSON.stringify(A))),e.onSaved(S)})}function E(){if(t===null){e.onDiscard();return}let m=t.rowId,g=++a.current;d(S=>({...S,removing:!0,removeFailed:!1})),ee(e.bridge,n.removeCommand,{rowId:m},O(e.environmentId)).then(S=>{if(a.current===g){if(S===null){d(A=>({...A,removing:!1,removeFailed:!0,confirming:!0}));return}e.onSaved(S)}})}let _=l.confirming?s("div",{className:"im-actions",children:[i(p,{type:"button",variant:"ghost",size:"sm",disabled:y,...w.cancelProps,children:e.t("settingsSection.cancel")}),i(p,{type:"button",variant:"destructive",size:"sm",disabled:y,...w.confirmProps,onClick:E,children:e.t(n.removeConfirmKey)})]}):i(p,{type:"button",variant:e.detail===!0?"destructive":"ghost",size:"sm",disabled:y,ref:w.triggerRef,onClick:()=>d(m=>({...m,confirming:!0,removeFailed:!1})),children:e.t("settingsSection.remove")});return s(be,{title:e.title(l.values),icon:e.icon?.(l.values),defaultOpen:x,staticHead:e.detail===!0,...e.detail===!0?{className:"im-detail"}:{},meta:s(k,{children:[e.meta?.(l.values),s("span",{className:"im-status",children:[e.statusMeta,i(z,{tone:u.tone,children:e.t(u.key)})]})]}),actions:e.detail===!0?null:_,notice:s(k,{children:[e.summary,e.detail===!0?null:s(k,{children:[l.confirming&&t!==null&&n.removeHintKey!==void 0?i("p",{id:f,children:e.t(n.removeHintKey)}):null,l.removeFailed?i("p",{className:"im-small im-issue",role:"alert",children:e.t(n.removeFailedKey)}):null]})]}),children:[C===null?null:i(Q,{variant:C.variant,children:i(W,{children:C.text})}),e.detail===!0?i(_n,{value:c,showDanger:t!==null,onChange:m=>{m!=="danger"&&l.confirming&&d(g=>({...g,confirming:!1})),b(m),e.onSectionChange?.(m)},t:e.t}):null,e.detail===!0&&c==="danger"?s("div",{className:"im-danger-zone",children:[i("p",{className:"im-small im-muted",children:e.t("settingsSection.dangerDescription")}),l.confirming&&t!==null&&n.removeHintKey!==void 0?i("p",{id:f,children:e.t(n.removeHintKey)}):null,l.removeFailed?i("p",{className:"im-small im-issue",role:"alert",children:e.t(n.removeFailedKey)}):null,_,e.extra?.({dirty:v,frozen:y,section:c})]}):null,s("div",{className:"im-form",children:[e.detail===!0&&c==="danger"?null:i(Rn,{scope:`${n.newSlot}-${t?.rowId??"new"}`,environmentId:e.environmentId,columns:e.columns,groupBotSettings:n.groupBotSettings===!0,...e.detail===!0?{section:c}:{},proxies:e.proxies,values:l.values,savedValues:t?.values??{},secrets:l.secrets,clearSecrets:l.clearSecrets,storedSecrets:t?.secrets??{},issues:t?.issues??[],publicFields:t?.publicFields??[],disabled:y,bridge:e.bridge,t:e.t,onValue:(m,g)=>T(S=>({...S,values:{...S.values,[m]:g}})),onSecret:(m,g)=>T(S=>({...S,secrets:{...S.secrets,[m]:g}})),onToggleClear:m=>T(g=>({...g,clearSecrets:g.clearSecrets.includes(m)?g.clearSecrets.filter(S=>S!==m):[...g.clearSecrets,m]}))}),e.detail===!0&&c!=="advanced"?null:e.extra?.({dirty:v,frozen:y,...e.detail===!0?{section:c}:{}}),i(ge,{dirty:v,saving:l.saving,busy:l.removing,solid:r.chosen&&v,failed:l.failed,saveLabel:e.t("settingsSection.save"),revertLabel:e.t("settingsSection.revert"),failedLabel:e.t("settingsSection.saveFailed"),onSave:P,onRevert:()=>{a.current+=1,d(he(t,o,e.initialValues))}})]})]})}function On(e){let n=e.bridge.useFormatTimestamp(),{error:t,t:o}=e;if(t===void 0)return null;let r=new Date(t.at),a=Number.isFinite(r.getTime())?r.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}),", ",o("settingsSection.lastMessageError.reference",{referenceId:t.referenceId}),a===null?null:s(k,{children:[", ",i("time",{dateTime:a,children:n(a)})]})]})]})}var xe={groupBotSettings:!0,newSlot:"im-new-row",saveCommand:Ue,removeCommand:Ge,rows:e=>e.bots,removeConfirmKey:"settingsSection.removeConfirm",removeHintKey:"settingsSection.removeHint",removeFailedKey:"settingsSection.removeFailed"},Ce={newSlot:"im-new-target",saveCommand:ze,removeCommand:Qe,rows:e=>e.targets,removeConfirmKey:"settingsSection.target.removeConfirm",removeFailedKey:"settingsSection.target.removeFailed"},Ie=(e,n,t)=>{let o=(e.displayName??"").trim();return o.length>0?o:t(`platform.${n}`)};function Ln(e){let{bot:n,t}=e,o=e.bots.find(w=>w.rowId===(n===null?void 0:e.connections?.[n.rowId]?.duplicateOf)),r=ln(n,e.connections,o===void 0?void 0:Ie(o.values,o.platform,t),t),[a,l]=I(null),[d,c]=I(!1),b=n===null?void 0:`im-reset-consequence-${n.rowId}`,f=we(b,()=>c(!1));return i(Be,{...e,kind:xe,row:n,onSectionChange:w=>{l(null),w!=="danger"&&c(!1)},status:re(n,e.connections),statusMeta:n?.configured&&e.connections?.[n.rowId]?.statusSince!==void 0?i(le,{since:e.connections[n.rowId]?.statusSince,bridge:e.bridge,t}):null,notice:r,summary:n===null?null:i(On,{error:e.connections?.[n.rowId]?.lastMessageError,bridge:e.bridge,t}),title:w=>Ie(w,U(w),t),icon:w=>{let h=M(w,"platform");return h===""?null:i(Y,{platform:h})},meta:w=>{let h=U(w),v=pe(h,w),x=t(`platform.${h}`);return i("span",{className:"im-small im-muted",...v===null?{}:{title:v},children:v===null?x:`${x}, ${v}`})},extra:({dirty:w,frozen:h,section:v})=>{if(n===null)return null;let x=Sn(n.platform,w,h,e.connections?.[n.rowId]),u=x.actions.find(y=>y.id==="resetInbox"),C=x.actions.filter(y=>v===void 0||v==="danger"==(y.id==="resetInbox"));return s(k,{children:[s("div",{className:"im-span",children:[d&&u!==void 0?s(k,{children:[i("p",{id:b,children:u.descriptionKeys.map(y=>t(y)).join(" ")}),s("div",{className:"im-actions",children:[i(p,{type:"button",variant:"ghost",size:"sm",disabled:h,...f.cancelProps,children:t("settingsSection.cancel")}),i(p,{type:"button",variant:"destructive",size:"sm",disabled:u.disabled,...f.confirmProps,onClick:()=>{c(!1),l({id:"resetInbox",payload:{rowId:n.rowId}})},children:t("rowAction.resetInbox.confirm")})]})]}):i("div",{className:"im-actions",children:C.map(y=>i(p,{type:"button",variant:"ghost",size:"sm",disabled:y.disabled,title:y.descriptionKeys.map(T=>t(T,y.descriptionParams)).join(" "),ref:y.id==="resetInbox"?f.triggerRef:void 0,onClick:()=>{y.id==="resetInbox"?c(!0):l({id:y.id,payload:{rowId:n.rowId}})},children:t(y.labelKey)},y.id))}),v==="danger"||x.noteKey===null?null:i("p",{className:"im-small im-muted",children:t(x.noteKey)})]}),a===null?null:i(fe,{bridge:e.bridge,command:qe[a.id],payload:a.payload,items:"latest",environmentId:e.environmentId,t,onClose:()=>l(null)},a.id)]})}})}function Oe(e){let{t:n}=e;return i(Be,{...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")}})}function Mn(e){let{bot:n,t}=e,o=re(n,e.connections),r=U(n.values),a=pe(r,n.values);return s(p,{type:"button",variant:"outline",className:"im-bot-summary",onClick:e.onOpen,children:[s("span",{className:"im-bot-summary-identity",children:[i(Y,{platform:r}),s("span",{className:"im-bot-summary-copy",children:[i("strong",{children:Ie(n.values,n.platform,t)}),i("span",{className:"im-small im-muted",...a===null?{}:{title:a},children:a===null?t(`platform.${r}`):`${t(`platform.${r}`)}, ${a}`})]})]}),s("span",{className:"im-status",children:[n.configured&&e.connections?.[n.rowId]?.statusSince!==void 0?i(le,{since:e.connections[n.rowId]?.statusSince,bridge:e.bridge,t}):null,i(z,{tone:o.tone,children:t(o.key)})]}),i("span",{className:"im-summary-chevron","aria-hidden":"true"})]})}var ot={};function Vn(e){let{view:n,snapshot:t,t:o}=e,r=B(()=>{let g=(t.columns.find(S=>S.key==="platform")?.options?.map(S=>S.value)??[]).filter(S=>ve(S,n.bots.some(A=>A.platform===S)));for(let S of n.bots)g.includes(S.platform)||g.push(S.platform);return g.length===0?["lark"]:g},[t.columns,n.bots]),[a,l]=I(null),[d,c]=I(null),[b,f]=I(!1),[w,h]=I(null),v=a!==null&&r.includes(a)?a:n.bots[0]?.platform??r[0]??"lark",x=n.bots.filter(m=>m.platform===v),u=d===null?void 0:x.find(m=>m.rowId===d),C=b||u!==void 0,y=o(`platform.${v}`),T=w==="lark"?{command:We,descriptionKey:$.descriptionKey}:w==="wecom"?{command:je,descriptionKey:"wecomSetup.action.description"}:null,P=()=>{c(null),f(!1)},E=v==="wechat"?null:s("div",{className:"im-actions",children:[i(p,{variant:"outline",disabled:w!==null,onClick:()=>{f(!0),c(null),e.activate(j(xe.newSlot,null))},children:o("settingsSection.addBot")}),v==="lark"?s(p,{variant:x.length===0?"default":"outline",disabled:w!==null,onClick:()=>h("lark"),children:[o($.labelKey),i("span",{className:x.length===0?"im-badge im-badge-on-primary im-small":"im-badge im-small",children:o($.badgeKey)})]}):null,v==="wecom"?s(p,{variant:"outline",disabled:w!==null,onClick:()=>h("wecom"),children:[o("wecomSetup.action.label"),i("span",{className:"im-badge im-small",children:o($.badgeKey)})]}):null]}),_=v==="lark"?i("p",{className:"im-small im-muted",children:o($.warningKey)}):null;return s("div",{className:"im-workspace",children:[i("div",{className:"im-rail",role:"tablist","aria-label":o("settingsSection.channelPicker"),children:r.map(m=>{let g=n.bots.filter(S=>S.platform===m).length;return s(p,{type:"button",variant:"ghost",role:"tab","aria-selected":m===v,className:"im-channel",onClick:()=>{l(m),P(),h(null)},children:[i(Y,{platform:m}),i("span",{className:"im-channel-label",children:o(`platform.${m}`)}),g===0?null:i("span",{className:"im-channel-count",children:g})]},m)})}),i("div",{className:"im-main",children:C?s(k,{children:[i(p,{type:"button",variant:"ghost",size:"sm",className:"im-back",onClick:P,children:o("settingsSection.backToBots")}),i(Ln,{bot:b?null:u??null,bots:n.bots,connections:e.connections,columns:t.columns,proxies:t.proxies,environmentId:e.environmentId,bridge:e.bridge,t:o,detail:!0,...b?{initialValues:{platform:v}}:{},onSaved:m=>{if(b){let g=m.bots.find(S=>!n.bots.some(A=>A.rowId===S.rowId));g!==void 0&&l(g.platform),f(!1)}e.onSaved(m)},onDiscard:P},b?xe.newSlot:u?.rowId)]}):s(k,{children:[s("div",{className:"im-main-head",children:[i("h3",{className:"im-heading im-medium",children:y}),x.length===0?null:i("span",{className:"im-small im-muted",children:o("settingsSection.botCount",{count:x.length})})]}),v==="wechat"?i("p",{className:"im-small im-muted",children:o("settingsSection.wechatUnavailable")}):null,x.length===0?s("div",{className:"im-empty",children:[i(mn,{title:o("settingsSection.platformEmpty",{platform:y}),description:o("settingsSection.platformEmptyGuide")}),E,_]}):s(k,{children:[i("div",{className:"im-bot-list",children:x.map(m=>i(Mn,{bot:m,connections:e.connections,bridge:e.bridge,t:o,onOpen:()=>{c(m.rowId),h(null)}},m.rowId))}),E,_]}),T===null?null:s("section",{className:"im-block",children:[i("p",{className:"im-small im-muted",children:o(T.descriptionKey)}),i(fe,{bridge:e.bridge,command:T.command,payload:ot,items:"snapshots",environmentId:e.environmentId,t:o,onSettled:m=>{m.kind==="done"&&e.reload()},onClose:()=>h(null)})]})]})})]})}var at="im-general";function ke(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 Kn(e){let n=e.view,t=Pe(n),o=Se(at),r=L(0),[a,l]=I(()=>ke(n,t));a.signature!==t&&(r.current+=1,l(ke(n,t)));let d=En({baseline:{replyLanguage:n.replyLanguage,enabled:n.delivery.enabled,port:n.delivery.port,hasToken:n.delivery.hasToken},replyLanguage:a.replyLanguage,enabled:a.enabled,port:a.port,token:a.token,clearToken:a.clearToken}),c=d.changed,b=d.changed&&d.invalidPort,f=D(e.environmentId,"general","port"),w=D(e.environmentId,"general","token"),h=D(e.environmentId,"general","language");function v(u){o.activate(),l(C=>({...C,...u,failed:!1}))}function x(){if(!d.changed||a.saving)return;if(o.activate(),d.invalidPort){l(y=>({...y,failed:!0}));return}let u=d.payload,C=++r.current;l(y=>({...y,saving:!0,failed:!1})),ee(e.bridge,He,u,O(e.environmentId)).then(y=>{if(r.current===C){if(y===null){l(T=>({...T,saving:!1,failed:!0}));return}l(ke(y,Pe(y))),e.onSaved(y)}})}return i(be,{title:e.t("settingsSection.general"),defaultOpen:e.open===!0,staticHead:e.open===!0,...e.open===!0?{className:"im-detail"}:{},children:s("div",{className:"im-form",children:[i(V,{id:h,label:e.t("settings.language.label"),description:e.t("settings.language.description"),children:s(se,{className:"im-wide",value:a.replyLanguage,disabled:a.saving,onValueChange:u=>{let C=oe.find(y=>y.value===u);C===void 0||C.value===a.replyLanguage||v({replyLanguage:C.value})},children:[i(de,{id:h,"aria-describedby":`${h}-hint`,children:i(Z,{children:oe.filter(u=>u.value===a.replyLanguage).map(u=>e.t(u.labelKey))})}),i(ce,{children:oe.map(u=>i(X,{value:u.value,children:e.t(u.labelKey)},u.value))})]})}),s("div",{className:"im-field",children:[s(H,{className:"im-inline",children:[i("span",{className:"im-medium",children:e.t("settings.deliveryHttp.enabled.label")}),i(cn,{checked:a.enabled,disabled:a.saving,onCheckedChange:u=>{u!==a.enabled&&v({enabled:u})}})]}),i("p",{className:"im-small im-muted",children:e.t("settings.deliveryHttp.enabled.description")})]}),a.enabled?i(V,{id:f,label:e.t("settings.deliveryHttp.port.label"),description:e.t("settings.deliveryHttp.port.description"),issue:b?e.t("settingsSection.issue.format"):null,children:i(G,{id:f,type:"number",value:a.port,disabled:a.saving,"aria-invalid":b?!0:void 0,"aria-describedby":ne(f,b,!0),onChange:u=>{u.target.value!==a.port&&v({port:u.target.value})}})}):null,a.enabled?i(V,{id:w,label:e.t("settings.deliveryHttp.token.label"),description:e.t("settings.deliveryHttp.token.description"),children:i(ue,{id:w,value:a.token,stored:n.delivery.hasToken,clearing:a.clearToken,disabled:a.saving,invalid:!1,describedBy:ne(w,!1,!0),savedPlaceholder:e.t("settingsSection.secret.saved"),clearLabel:e.t("settingsSection.secret.clear"),undoLabel:e.t("settingsSection.secret.clearUndo"),onChange:u=>{u!==a.token&&v({token:u})},onToggleClear:()=>v({clearToken:!a.clearToken})})}):null,i(ge,{dirty:c,saving:a.saving,solid:o.chosen&&c,failed:a.failed,saveLabel:e.t("settingsSection.save"),revertLabel:e.t("settingsSection.revert"),failedLabel:e.t("settingsSection.saveFailed"),onSave:x,onRevert:()=>{r.current+=1,l(ke(n,t))}})]})})}function Fn(e){let[n,t]=I(!1),{t:o}=e;return s("div",{className:"im-main",children:[i("div",{className:"im-main-head",children:i("h3",{className:"im-heading im-medium",children:o("settings.deliveryTargets.label")})}),i("p",{className:"im-small im-muted",children:o("settingsSection.target.description")}),e.view.targets.map(r=>i(Oe,{target:r,columns:e.columns,proxies:e.proxies,environmentId:e.environmentId,bridge:e.bridge,t:o,onSaved:e.onSaved,onDiscard:()=>{}},r.rowId)),n?i(Oe,{target:null,columns:e.columns,proxies:e.proxies,environmentId:e.environmentId,bridge:e.bridge,t:o,onSaved:r=>{t(!1),e.onSaved(r)},onDiscard:()=>t(!1)},Ce.newSlot):null,i("div",{className:"im-actions",children:i(p,{variant:"outline",disabled:n,onClick:()=>{t(!0),e.activate(j(Ce.newSlot,null))},children:o("settingsSection.target.add")})})]})}var Dn=`
|
|
6
6
|
.im-settings {
|
|
7
7
|
box-sizing: border-box;
|
|
8
8
|
color: var(--foreground);
|
|
@@ -181,6 +181,12 @@ var Vn=window.__ycodiumPluginHost.react;var{Activity:Zn,Children:et,Component:nt
|
|
|
181
181
|
padding-top: 0.75rem;
|
|
182
182
|
border-top: 1px solid var(--border);
|
|
183
183
|
}
|
|
184
|
+
.im-settings .im-flow-status {
|
|
185
|
+
display: inline-flex;
|
|
186
|
+
align-items: center;
|
|
187
|
+
gap: 0.5rem;
|
|
188
|
+
min-width: 0;
|
|
189
|
+
}
|
|
184
190
|
.im-settings .im-qr {
|
|
185
191
|
align-self: flex-start;
|
|
186
192
|
line-height: 0;
|
|
@@ -230,6 +236,186 @@ var Vn=window.__ycodiumPluginHost.react;var{Activity:Zn,Children:et,Component:nt
|
|
|
230
236
|
border-color: currentColor;
|
|
231
237
|
color: inherit;
|
|
232
238
|
}
|
|
239
|
+
.im-settings .im-area-tabs,
|
|
240
|
+
.im-settings .im-detail-tabs {
|
|
241
|
+
display: flex;
|
|
242
|
+
gap: 1rem;
|
|
243
|
+
min-width: 0;
|
|
244
|
+
overflow-x: auto;
|
|
245
|
+
border-bottom: 1px solid var(--border);
|
|
246
|
+
}
|
|
247
|
+
.im-settings .im-area-tab,
|
|
248
|
+
.im-settings .im-detail-tab {
|
|
249
|
+
flex: none;
|
|
250
|
+
height: 2.375rem;
|
|
251
|
+
padding-inline: 0.25rem;
|
|
252
|
+
border: 0;
|
|
253
|
+
border-bottom: 2px solid transparent;
|
|
254
|
+
border-radius: 0;
|
|
255
|
+
}
|
|
256
|
+
.im-settings .im-area-tab[aria-selected="true"],
|
|
257
|
+
.im-settings .im-detail-tab[aria-selected="true"] {
|
|
258
|
+
border-bottom-color: var(--primary);
|
|
259
|
+
color: var(--foreground);
|
|
260
|
+
}
|
|
261
|
+
.im-settings .im-workspace {
|
|
262
|
+
display: grid;
|
|
263
|
+
grid-template-columns: 10.5rem minmax(0, 1fr);
|
|
264
|
+
gap: 1rem;
|
|
265
|
+
align-items: start;
|
|
266
|
+
min-width: 0;
|
|
267
|
+
}
|
|
268
|
+
.im-settings .im-rail {
|
|
269
|
+
display: flex;
|
|
270
|
+
flex-direction: column;
|
|
271
|
+
gap: 0.375rem;
|
|
272
|
+
min-width: 0;
|
|
273
|
+
}
|
|
274
|
+
.im-settings .im-channel {
|
|
275
|
+
display: flex;
|
|
276
|
+
align-items: center;
|
|
277
|
+
justify-content: flex-start;
|
|
278
|
+
gap: 0.625rem;
|
|
279
|
+
width: 100%;
|
|
280
|
+
height: auto;
|
|
281
|
+
min-height: 2.75rem;
|
|
282
|
+
padding: 0.375rem 0.5rem;
|
|
283
|
+
text-align: start;
|
|
284
|
+
}
|
|
285
|
+
.im-settings .im-channel[aria-selected="true"] {
|
|
286
|
+
background: var(--accent);
|
|
287
|
+
color: var(--accent-foreground);
|
|
288
|
+
}
|
|
289
|
+
.im-settings .im-channel-label {
|
|
290
|
+
flex: 1;
|
|
291
|
+
min-width: 0;
|
|
292
|
+
overflow: hidden;
|
|
293
|
+
text-overflow: ellipsis;
|
|
294
|
+
white-space: nowrap;
|
|
295
|
+
}
|
|
296
|
+
.im-settings .im-channel-count {
|
|
297
|
+
flex: none;
|
|
298
|
+
color: var(--muted-foreground);
|
|
299
|
+
font-size: var(--ui-text-sm);
|
|
300
|
+
}
|
|
301
|
+
/* \u54C1\u724C\u5E95\u8272\u662F\u5E73\u53F0\u56FE\u5F62\u7684\u4E00\u90E8\u5206\uFF1B\u754C\u9762\u5176\u5B83\u989C\u8272\u4ECD\u5168\u90E8\u4F7F\u7528\u5BBF\u4E3B\u53D8\u91CF\u3002 */
|
|
302
|
+
.im-settings .im-platform {
|
|
303
|
+
display: inline-flex;
|
|
304
|
+
flex: none;
|
|
305
|
+
align-items: center;
|
|
306
|
+
justify-content: center;
|
|
307
|
+
box-sizing: border-box;
|
|
308
|
+
width: 2rem;
|
|
309
|
+
height: 2rem;
|
|
310
|
+
border: 1px solid var(--border);
|
|
311
|
+
border-radius: 0.625rem;
|
|
312
|
+
background: #ffffff;
|
|
313
|
+
}
|
|
314
|
+
.im-settings .im-main {
|
|
315
|
+
display: flex;
|
|
316
|
+
flex-direction: column;
|
|
317
|
+
gap: 0.75rem;
|
|
318
|
+
min-width: 0;
|
|
319
|
+
}
|
|
320
|
+
.im-settings .im-main-head {
|
|
321
|
+
display: flex;
|
|
322
|
+
align-items: baseline;
|
|
323
|
+
justify-content: space-between;
|
|
324
|
+
gap: 0.75rem;
|
|
325
|
+
min-width: 0;
|
|
326
|
+
}
|
|
327
|
+
.im-settings .im-bot-list {
|
|
328
|
+
display: flex;
|
|
329
|
+
flex-direction: column;
|
|
330
|
+
gap: 0.5rem;
|
|
331
|
+
min-width: 0;
|
|
332
|
+
}
|
|
333
|
+
.im-settings .im-empty {
|
|
334
|
+
display: flex;
|
|
335
|
+
flex-direction: column;
|
|
336
|
+
gap: 0.75rem;
|
|
337
|
+
min-width: 0;
|
|
338
|
+
padding: 1rem;
|
|
339
|
+
border: 1px solid var(--border);
|
|
340
|
+
border-radius: var(--control-radius);
|
|
341
|
+
background: var(--card);
|
|
342
|
+
}
|
|
343
|
+
.im-settings .im-empty .im-actions {
|
|
344
|
+
justify-content: center;
|
|
345
|
+
}
|
|
346
|
+
.im-settings .im-bot-summary {
|
|
347
|
+
display: flex;
|
|
348
|
+
flex-wrap: wrap;
|
|
349
|
+
align-items: center;
|
|
350
|
+
justify-content: flex-start;
|
|
351
|
+
gap: 0.75rem;
|
|
352
|
+
width: 100%;
|
|
353
|
+
height: auto;
|
|
354
|
+
min-height: 4rem;
|
|
355
|
+
padding: 0.625rem 0.75rem;
|
|
356
|
+
text-align: start;
|
|
357
|
+
font-weight: 400;
|
|
358
|
+
}
|
|
359
|
+
.im-settings .im-bot-summary-identity {
|
|
360
|
+
display: flex;
|
|
361
|
+
flex: 1 1 12rem;
|
|
362
|
+
align-items: center;
|
|
363
|
+
gap: 0.625rem;
|
|
364
|
+
min-width: 0;
|
|
365
|
+
}
|
|
366
|
+
.im-settings .im-bot-summary-copy {
|
|
367
|
+
display: flex;
|
|
368
|
+
flex-direction: column;
|
|
369
|
+
min-width: 0;
|
|
370
|
+
line-height: 1.4;
|
|
371
|
+
}
|
|
372
|
+
.im-settings .im-bot-summary-copy strong {
|
|
373
|
+
overflow: hidden;
|
|
374
|
+
text-overflow: ellipsis;
|
|
375
|
+
white-space: nowrap;
|
|
376
|
+
}
|
|
377
|
+
.im-settings .im-bot-summary .im-status {
|
|
378
|
+
flex: none;
|
|
379
|
+
margin-inline-start: auto;
|
|
380
|
+
}
|
|
381
|
+
.im-settings .im-summary-chevron {
|
|
382
|
+
flex: none;
|
|
383
|
+
width: 0.45rem;
|
|
384
|
+
height: 0.45rem;
|
|
385
|
+
border-right: 1px solid currentColor;
|
|
386
|
+
border-bottom: 1px solid currentColor;
|
|
387
|
+
transform: rotate(-45deg);
|
|
388
|
+
}
|
|
389
|
+
.im-settings .im-back {
|
|
390
|
+
align-self: flex-start;
|
|
391
|
+
padding-inline: 0;
|
|
392
|
+
}
|
|
393
|
+
.im-settings .im-static {
|
|
394
|
+
cursor: default;
|
|
395
|
+
}
|
|
396
|
+
.im-settings .im-danger-zone {
|
|
397
|
+
display: flex;
|
|
398
|
+
flex-direction: column;
|
|
399
|
+
align-items: flex-start;
|
|
400
|
+
gap: 0.75rem;
|
|
401
|
+
padding: 0.75rem;
|
|
402
|
+
border: 1px solid var(--border);
|
|
403
|
+
border-radius: var(--control-radius);
|
|
404
|
+
}
|
|
405
|
+
@media (max-width: 720px) {
|
|
406
|
+
.im-settings .im-workspace {
|
|
407
|
+
grid-template-columns: minmax(0, 1fr);
|
|
408
|
+
}
|
|
409
|
+
.im-settings .im-rail {
|
|
410
|
+
flex-direction: row;
|
|
411
|
+
overflow-x: auto;
|
|
412
|
+
padding-bottom: 0.25rem;
|
|
413
|
+
}
|
|
414
|
+
.im-settings .im-channel {
|
|
415
|
+
flex: none;
|
|
416
|
+
width: auto;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
233
419
|
@media (min-width: 640px) {
|
|
234
420
|
.im-settings .im-form {
|
|
235
421
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
@@ -238,4 +424,8 @@ var Vn=window.__ycodiumPluginHost.react;var{Activity:Zn,Children:et,Component:nt
|
|
|
238
424
|
grid-column: 1 / -1;
|
|
239
425
|
}
|
|
240
426
|
}
|
|
241
|
-
|
|
427
|
+
/* \u8BE6\u60C5\u9875\u4E00\u6B21\u53EA\u8BFB\u4E00\u680F\uFF1B\u5B57\u6BB5\u4E0E\u8BF4\u660E\u4E0D\u518D\u6324\u6210\u4E24\u5217\u3002 */
|
|
428
|
+
.im-settings .im-detail .im-form {
|
|
429
|
+
grid-template-columns: minmax(0, 1fr);
|
|
430
|
+
}
|
|
431
|
+
`;var $n={},rt=["bots","targets","general"];function Un(e){let n=e.bridge.i18n.usePluginTranslation(),t=B(()=>O(e.environmentId),[e.environmentId]),o=e.bridge.commands.useQuery(De,$n,t),r=e.bridge.commands.useSubscription($e,$n,t),a=rn(r),l=B(()=>hn(o.data),[o.data]),[d,c]=I(null),[b,f]=I(null),[w,h]=I(null),[v,x]=I("bots");if(l!==null&&l!==d&&c(l),b!==null){let g=In(b,{view:l?.view??null,isPending:o.isPending,failed:o.error!==null});g!==b&&f(g)}let u=b?.view??l?.view??d?.view??null,C=l??d,y=l===null&&o.data!==null&&!o.isPending,T=B(()=>Xe(C?.targetColumns??[],u?.bots??[],g=>n(`platform.${g}`)),[C,u,n]);function P(g){f({view:g,phase:"asked"}),o.refresh()}function E(){f(null),o.refresh()}let _;o.isUnavailable?_=i(Le,{variant:"warning",message:n("settingsSection.unavailable"),retryLabel:n("settingsSection.retry"),onRetry:E}):u===null&&o.isPending?_=i("div",{className:"im-pending",children:i(F,{size:"md"})}):u===null||C===null?_=i(Le,{variant:"error",message:n("settingsSection.loadFailed"),retryLabel:n("settingsSection.retry"),onRetry:E}):_=s(Bn,{activeId:w,activate:h,children:[o.error!==null||y?i(Le,{variant:"error",message:n("settingsSection.loadFailed"),retryLabel:n("settingsSection.retry"),onRetry:E}):null,i("div",{className:"im-area-tabs",role:"tablist","aria-label":n("settingsSection.globalTabs"),children:rt.map(g=>i(p,{type:"button",variant:"ghost",size:"sm",role:"tab","aria-selected":v===g,className:"im-area-tab",onClick:()=>x(g),children:n(g==="bots"?"settingsSection.bots":g==="targets"?"settings.deliveryTargets.label":"settingsSection.general")},g))}),v==="bots"?i(Vn,{view:u,snapshot:C,connections:a,environmentId:e.environmentId,bridge:e.bridge,t:n,activate:h,onSaved:P,reload:E}):v==="targets"?i(Fn,{view:u,columns:T,proxies:C.proxies,environmentId:e.environmentId,bridge:e.bridge,t:n,activate:h,onSaved:P}):i("div",{className:"im-main",children:i(Kn,{view:u,environmentId:e.environmentId,bridge:e.bridge,t:n,onSaved:P,open:!0})})]});let m=a===null?null:an(u?.bots??[],a);return i(dn,{bridge:e.bridge,children:s("div",{className:"im-settings",children:[i("style",{children:Dn}),s("div",{className:"im-head",children:[i("h2",{className:"im-heading im-medium im-title",children:n("settings.title")}),m!==null&&m.configured>0?i(z,{tone:"neutral","aria-label":n("settingsSection.onlineLabel",m),children:n("settingsSection.online",m)}):null]}),_]})})}function Le(e){return s(Q,{variant:e.variant,layout:"inline",children:[i(W,{children:e.message}),i(un,{children:i(p,{variant:"ghost",size:"sm",onClick:e.onRetry,children:e.retryLabel})})]})}function lt(e){return{slots:[{name:"settings.section",order:20,component(n){return i(Un,{bridge:e,environmentId:n.environmentId??null},n.environmentId??"")}}]}}export{lt as default};
|
package/dist/index.js
CHANGED
|
@@ -135001,7 +135001,7 @@ var makePermissionCommand = (core) => {
|
|
|
135001
135001
|
// package.json
|
|
135002
135002
|
var package_default = {
|
|
135003
135003
|
name: "@ycodium-ai/plugin-im",
|
|
135004
|
-
version: "0.2.
|
|
135004
|
+
version: "0.2.3598",
|
|
135005
135005
|
description: "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
|
|
135006
135006
|
keywords: [
|
|
135007
135007
|
"im",
|
|
@@ -147394,7 +147394,7 @@ var en_default = {
|
|
|
147394
147394
|
unsupportedFolder: "Folders can't be downloaded. Zip it and send the archive instead.",
|
|
147395
147395
|
unsupportedVoice: "Voice messages aren't supported yet. Please send text.",
|
|
147396
147396
|
sendingFile: "Sending {{name}}:",
|
|
147397
|
-
notAllowedYet: `You are not on the allow list yet. Your user id is {{id}}. Add it under Settings \u2192 Plugins \u2192 Chat, in this bot's "Allowed people" box.`,
|
|
147397
|
+
notAllowedYet: `You are not on the allow list yet. Your user id is {{id}}. Add it under Settings \u2192 Plugins \u2192 Chat bridge \u2192 Configure, in this bot's "Allowed people" box.`,
|
|
147398
147398
|
received: "Got it, working on it.",
|
|
147399
147399
|
inboundFailed: "This message couldn't be handled. Please send it again later.",
|
|
147400
147400
|
inboundDeferred: "No need to send this again \u2014 it will be handled automatically the next time the machine starts.",
|
|
@@ -147825,7 +147825,7 @@ var en_default = {
|
|
|
147825
147825
|
},
|
|
147826
147826
|
fillRow: {
|
|
147827
147827
|
title: "Add the bot",
|
|
147828
|
-
body: "
|
|
147828
|
+
body: "Open Settings \u2192 Plugins, click Configure on the Chat bridge card, and add a bot: choose Lark, paste the App ID and App secret, put your own Lark user id in Allowed people (message the bot and it tells you your id), then save."
|
|
147829
147829
|
}
|
|
147830
147830
|
},
|
|
147831
147831
|
status: {
|
|
@@ -148055,12 +148055,27 @@ var en_default = {
|
|
|
148055
148055
|
code: "Error code {{code}}",
|
|
148056
148056
|
reference: "Reference {{referenceId}}"
|
|
148057
148057
|
},
|
|
148058
|
-
empty: "No bots yet",
|
|
148059
|
-
emptyGuide: `Use "{{larkLabel}}" or "{{wecomLabel}}" to scan and create a bot in one step. For other platforms, choose "{{addBotLabel}}" and enter the credentials from that platform's developer console.`,
|
|
148060
148058
|
unavailable: "This machine doesn't have the chat bridge right now.",
|
|
148061
148059
|
loadFailed: "Couldn't load the chat-bridge settings.",
|
|
148062
148060
|
retry: "Try again",
|
|
148063
148061
|
general: "General",
|
|
148062
|
+
bots: "Bots",
|
|
148063
|
+
channelPicker: "Chat platforms",
|
|
148064
|
+
globalTabs: "Chat settings",
|
|
148065
|
+
detailTabs: "Bot settings",
|
|
148066
|
+
backToBots: "Back to bots",
|
|
148067
|
+
botCount: "{{count}} bots",
|
|
148068
|
+
platformEmpty: "No {{platform}} bots yet",
|
|
148069
|
+
platformEmptyGuide: "Add a bot to start working from this platform.",
|
|
148070
|
+
wechatUnavailable: "WeChat can't be connected yet. Saved bots remain visible so you can inspect or remove them; this page doesn't offer new WeChat bots.",
|
|
148071
|
+
dangerDescription: "Deleting this bot removes its saved credentials and chat bindings. The bot on the chat platform is not deleted.",
|
|
148072
|
+
tab: {
|
|
148073
|
+
basic: "Basic",
|
|
148074
|
+
access: "Access",
|
|
148075
|
+
chat: "Chat",
|
|
148076
|
+
advanced: "Connection & diagnostics",
|
|
148077
|
+
danger: "Danger zone"
|
|
148078
|
+
},
|
|
148064
148079
|
addBot: "Add a bot",
|
|
148065
148080
|
moreSettings: "More settings",
|
|
148066
148081
|
moreSettingsIssues: "More settings ({{count}} to fix)",
|
|
@@ -148449,7 +148464,7 @@ var zh_CN_default = {
|
|
|
148449
148464
|
unsupportedFolder: "\u6587\u4EF6\u5939\u6CA1\u6CD5\u4E0B\u8F7D\uFF0C\u8BF7\u6253\u5305\u6210\u538B\u7F29\u6587\u4EF6\u518D\u53D1\u3002",
|
|
148450
148465
|
unsupportedVoice: "\u6682\u65F6\u4E0D\u652F\u6301\u8BED\u97F3\uFF0C\u8BF7\u53D1\u6587\u5B57\u3002",
|
|
148451
148466
|
sendingFile: "\u6B63\u5728\u53D1\u9001 {{name}}\uFF1A",
|
|
148452
|
-
notAllowedYet: "\u4F60\u8FD8\u4E0D\u5728\u5141\u8BB8\u540D\u5355\u91CC\uFF0C\u4F60\u7684\u7528\u6237 id \u662F {{id}}\uFF0C\u8BF7\u628A\u5B83\u586B\u8FDB \u8BBE\u7F6E \u2192 \u63D2\u4EF6 \u2192 \u804A\u5929 \u2192 \u8FD9\u4E2A\u673A\u5668\u4EBA\u7684\u300C\u5141\u8BB8\u7684\u4EBA\u300D\u3002",
|
|
148467
|
+
notAllowedYet: "\u4F60\u8FD8\u4E0D\u5728\u5141\u8BB8\u540D\u5355\u91CC\uFF0C\u4F60\u7684\u7528\u6237 id \u662F {{id}}\uFF0C\u8BF7\u628A\u5B83\u586B\u8FDB \u8BBE\u7F6E \u2192 \u63D2\u4EF6 \u2192 \u804A\u5929\u6865 \u2192 \u914D\u7F6E \u91CC\u8FD9\u4E2A\u673A\u5668\u4EBA\u7684\u300C\u5141\u8BB8\u7684\u4EBA\u300D\u3002",
|
|
148453
148468
|
received: "\u6536\u5230\uFF0C\u5728\u5904\u7406\u3002",
|
|
148454
148469
|
inboundFailed: "\u8FD9\u6761\u6D88\u606F\u5904\u7406\u65F6\u51FA\u4E86\u9519\uFF0C\u8BF7\u7A0D\u540E\u91CD\u53D1\u3002",
|
|
148455
148470
|
inboundDeferred: "\u4E0D\u7528\u91CD\u53D1\uFF1A\u673A\u5668\u4E0B\u6B21\u542F\u52A8\u65F6\u4F1A\u81EA\u52A8\u5904\u7406\u8FD9\u6761\u6D88\u606F\u3002",
|
|
@@ -148880,7 +148895,7 @@ var zh_CN_default = {
|
|
|
148880
148895
|
},
|
|
148881
148896
|
fillRow: {
|
|
148882
148897
|
title: "\u6DFB\u52A0\u673A\u5668\u4EBA",
|
|
148883
|
-
body: "\u5728\u8BBE\u7F6E\
|
|
148898
|
+
body: "\u5728\u8BBE\u7F6E \u2192 \u63D2\u4EF6\u91CC\u6253\u5F00\u300C\u804A\u5929\u6865\u300D\u5361\u7247\u7684\u300C\u914D\u7F6E\u300D\uFF0C\u6DFB\u52A0\u4E00\u4E2A\u673A\u5668\u4EBA\uFF1A\u5E73\u53F0\u9009\u98DE\u4E66\uFF0C\u586B\u5165 App ID \u4E0E App Secret\uFF0C\u628A\u4F60\u81EA\u5DF1\u7684\u98DE\u4E66\u7528\u6237 id \u586B\u8FDB\u300C\u5141\u8BB8\u7684\u4EBA\u300D\uFF08\u7ED9\u673A\u5668\u4EBA\u53D1\u4E00\u6761\u6D88\u606F\uFF0C\u5B83\u4F1A\u544A\u8BC9\u4F60\uFF09\uFF0C\u7136\u540E\u4FDD\u5B58\u3002"
|
|
148884
148899
|
}
|
|
148885
148900
|
},
|
|
148886
148901
|
status: {
|
|
@@ -149110,12 +149125,27 @@ var zh_CN_default = {
|
|
|
149110
149125
|
code: "\u9519\u8BEF\u7801 {{code}}",
|
|
149111
149126
|
reference: "\u53C2\u8003\u53F7 {{referenceId}}"
|
|
149112
149127
|
},
|
|
149113
|
-
empty: "\u8FD8\u6CA1\u6709\u673A\u5668\u4EBA",
|
|
149114
|
-
emptyGuide: "\u7528\u300C{{larkLabel}}\u300D\u6216\u300C{{wecomLabel}}\u300D\u626B\u4E00\u4E0B\u5C31\u80FD\u5EFA\u597D\u673A\u5668\u4EBA\u3002\u5176\u4ED6\u5E73\u53F0\u70B9\u300C{{addBotLabel}}\u300D\uFF0C\u586B\u5165\u5728\u8BE5\u5E73\u53F0\u5F00\u53D1\u8005\u540E\u53F0\u62FF\u5230\u7684\u51ED\u636E\u3002",
|
|
149115
149128
|
unavailable: "\u8FD9\u53F0\u673A\u5668\u73B0\u5728\u6CA1\u6709\u804A\u5929\u6865\u3002",
|
|
149116
149129
|
loadFailed: "\u804A\u5929\u6865\u7684\u8BBE\u7F6E\u6CA1\u80FD\u8BFB\u51FA\u6765\u3002",
|
|
149117
149130
|
retry: "\u518D\u8BD5\u4E00\u6B21",
|
|
149118
149131
|
general: "\u901A\u7528\u8BBE\u7F6E",
|
|
149132
|
+
bots: "\u673A\u5668\u4EBA",
|
|
149133
|
+
channelPicker: "\u804A\u5929\u5E73\u53F0",
|
|
149134
|
+
globalTabs: "\u804A\u5929\u8BBE\u7F6E",
|
|
149135
|
+
detailTabs: "\u673A\u5668\u4EBA\u8BBE\u7F6E",
|
|
149136
|
+
backToBots: "\u8FD4\u56DE\u673A\u5668\u4EBA\u5217\u8868",
|
|
149137
|
+
botCount: "{{count}} \u4E2A\u673A\u5668\u4EBA",
|
|
149138
|
+
platformEmpty: "\u8FD8\u6CA1\u6709{{platform}}\u673A\u5668\u4EBA",
|
|
149139
|
+
platformEmptyGuide: "\u63A5\u5165\u4E00\u4E2A\u673A\u5668\u4EBA\uFF0C\u5C31\u80FD\u4ECE\u8FD9\u4E2A\u5E73\u53F0\u6D3E\u6D3B\u3002",
|
|
149140
|
+
wechatUnavailable: "\u5FAE\u4FE1\u6682\u65F6\u4E0D\u80FD\u8FDE\u63A5\u3002\u5DF2\u4FDD\u5B58\u7684\u673A\u5668\u4EBA\u4ECD\u53EF\u67E5\u770B\u6216\u5220\u9664\uFF1B\u8FD9\u4E2A\u9875\u9762\u6682\u4E0D\u63D0\u4F9B\u65B0\u5EFA\u5FAE\u4FE1\u673A\u5668\u4EBA\u3002",
|
|
149141
|
+
dangerDescription: "\u5220\u9664\u8FD9\u4E2A\u673A\u5668\u4EBA\u4F1A\u79FB\u9664\u5DF2\u5B58\u7684\u51ED\u636E\u548C\u804A\u5929\u7ED1\u5B9A\uFF0C\u4E0D\u4F1A\u5220\u9664\u804A\u5929\u5E73\u53F0\u4E0A\u7684\u673A\u5668\u4EBA\u3002",
|
|
149142
|
+
tab: {
|
|
149143
|
+
basic: "\u57FA\u672C",
|
|
149144
|
+
access: "\u8BBF\u95EE",
|
|
149145
|
+
chat: "\u804A\u5929",
|
|
149146
|
+
advanced: "\u8FDE\u63A5\u4E0E\u8BCA\u65AD",
|
|
149147
|
+
danger: "\u5371\u9669\u64CD\u4F5C"
|
|
149148
|
+
},
|
|
149119
149149
|
addBot: "\u6DFB\u52A0\u673A\u5668\u4EBA",
|
|
149120
149150
|
moreSettings: "\u66F4\u591A\u8BBE\u7F6E",
|
|
149121
149151
|
moreSettingsIssues: "\u66F4\u591A\u8BBE\u7F6E\uFF08{{count}} \u9879\u5F85\u4FEE\u6B63\uFF09",
|
|
@@ -157179,7 +157209,7 @@ var makeWecomAppAdapter = (deps) => {
|
|
|
157179
157209
|
// src/index.ts
|
|
157180
157210
|
var definition = {
|
|
157181
157211
|
id: "im",
|
|
157182
|
-
apiVersion:
|
|
157212
|
+
apiVersion: 48,
|
|
157183
157213
|
// 第二个参数只给插件自己的测试夹具:换掉文件 IO 与派发重试的等待。宿主只传 ctx。
|
|
157184
157214
|
activate: async (ctx, testing = {}) => {
|
|
157185
157215
|
const { dispatchSleep } = testing;
|
package/locales/en.json
CHANGED
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
"unsupportedFolder": "Folders can't be downloaded. Zip it and send the archive instead.",
|
|
268
268
|
"unsupportedVoice": "Voice messages aren't supported yet. Please send text.",
|
|
269
269
|
"sendingFile": "Sending {{name}}:",
|
|
270
|
-
"notAllowedYet": "You are not on the allow list yet. Your user id is {{id}}. Add it under Settings → Plugins → Chat, in this bot's \"Allowed people\" box.",
|
|
270
|
+
"notAllowedYet": "You are not on the allow list yet. Your user id is {{id}}. Add it under Settings → Plugins → Chat bridge → Configure, in this bot's \"Allowed people\" box.",
|
|
271
271
|
"received": "Got it, working on it.",
|
|
272
272
|
"inboundFailed": "This message couldn't be handled. Please send it again later.",
|
|
273
273
|
"inboundDeferred": "No need to send this again — it will be handled automatically the next time the machine starts.",
|
|
@@ -698,7 +698,7 @@
|
|
|
698
698
|
},
|
|
699
699
|
"fillRow": {
|
|
700
700
|
"title": "Add the bot",
|
|
701
|
-
"body": "
|
|
701
|
+
"body": "Open Settings → Plugins, click Configure on the Chat bridge card, and add a bot: choose Lark, paste the App ID and App secret, put your own Lark user id in Allowed people (message the bot and it tells you your id), then save."
|
|
702
702
|
}
|
|
703
703
|
},
|
|
704
704
|
"status": {
|
|
@@ -928,12 +928,27 @@
|
|
|
928
928
|
"code": "Error code {{code}}",
|
|
929
929
|
"reference": "Reference {{referenceId}}"
|
|
930
930
|
},
|
|
931
|
-
"empty": "No bots yet",
|
|
932
|
-
"emptyGuide": "Use \"{{larkLabel}}\" or \"{{wecomLabel}}\" to scan and create a bot in one step. For other platforms, choose \"{{addBotLabel}}\" and enter the credentials from that platform's developer console.",
|
|
933
931
|
"unavailable": "This machine doesn't have the chat bridge right now.",
|
|
934
932
|
"loadFailed": "Couldn't load the chat-bridge settings.",
|
|
935
933
|
"retry": "Try again",
|
|
936
934
|
"general": "General",
|
|
935
|
+
"bots": "Bots",
|
|
936
|
+
"channelPicker": "Chat platforms",
|
|
937
|
+
"globalTabs": "Chat settings",
|
|
938
|
+
"detailTabs": "Bot settings",
|
|
939
|
+
"backToBots": "Back to bots",
|
|
940
|
+
"botCount": "{{count}} bots",
|
|
941
|
+
"platformEmpty": "No {{platform}} bots yet",
|
|
942
|
+
"platformEmptyGuide": "Add a bot to start working from this platform.",
|
|
943
|
+
"wechatUnavailable": "WeChat can't be connected yet. Saved bots remain visible so you can inspect or remove them; this page doesn't offer new WeChat bots.",
|
|
944
|
+
"dangerDescription": "Deleting this bot removes its saved credentials and chat bindings. The bot on the chat platform is not deleted.",
|
|
945
|
+
"tab": {
|
|
946
|
+
"basic": "Basic",
|
|
947
|
+
"access": "Access",
|
|
948
|
+
"chat": "Chat",
|
|
949
|
+
"advanced": "Connection & diagnostics",
|
|
950
|
+
"danger": "Danger zone"
|
|
951
|
+
},
|
|
937
952
|
"addBot": "Add a bot",
|
|
938
953
|
"moreSettings": "More settings",
|
|
939
954
|
"moreSettingsIssues": "More settings ({{count}} to fix)",
|
package/locales/zh-CN.json
CHANGED
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
"unsupportedFolder": "文件夹没法下载,请打包成压缩文件再发。",
|
|
268
268
|
"unsupportedVoice": "暂时不支持语音,请发文字。",
|
|
269
269
|
"sendingFile": "正在发送 {{name}}:",
|
|
270
|
-
"notAllowedYet": "你还不在允许名单里,你的用户 id 是 {{id}},请把它填进 设置 → 插件 →
|
|
270
|
+
"notAllowedYet": "你还不在允许名单里,你的用户 id 是 {{id}},请把它填进 设置 → 插件 → 聊天桥 → 配置 里这个机器人的「允许的人」。",
|
|
271
271
|
"received": "收到,在处理。",
|
|
272
272
|
"inboundFailed": "这条消息处理时出了错,请稍后重发。",
|
|
273
273
|
"inboundDeferred": "不用重发:机器下次启动时会自动处理这条消息。",
|
|
@@ -698,7 +698,7 @@
|
|
|
698
698
|
},
|
|
699
699
|
"fillRow": {
|
|
700
700
|
"title": "添加机器人",
|
|
701
|
-
"body": "
|
|
701
|
+
"body": "在设置 → 插件里打开「聊天桥」卡片的「配置」,添加一个机器人:平台选飞书,填入 App ID 与 App Secret,把你自己的飞书用户 id 填进「允许的人」(给机器人发一条消息,它会告诉你),然后保存。"
|
|
702
702
|
}
|
|
703
703
|
},
|
|
704
704
|
"status": {
|
|
@@ -928,12 +928,27 @@
|
|
|
928
928
|
"code": "错误码 {{code}}",
|
|
929
929
|
"reference": "参考号 {{referenceId}}"
|
|
930
930
|
},
|
|
931
|
-
"empty": "还没有机器人",
|
|
932
|
-
"emptyGuide": "用「{{larkLabel}}」或「{{wecomLabel}}」扫一下就能建好机器人。其他平台点「{{addBotLabel}}」,填入在该平台开发者后台拿到的凭据。",
|
|
933
931
|
"unavailable": "这台机器现在没有聊天桥。",
|
|
934
932
|
"loadFailed": "聊天桥的设置没能读出来。",
|
|
935
933
|
"retry": "再试一次",
|
|
936
934
|
"general": "通用设置",
|
|
935
|
+
"bots": "机器人",
|
|
936
|
+
"channelPicker": "聊天平台",
|
|
937
|
+
"globalTabs": "聊天设置",
|
|
938
|
+
"detailTabs": "机器人设置",
|
|
939
|
+
"backToBots": "返回机器人列表",
|
|
940
|
+
"botCount": "{{count}} 个机器人",
|
|
941
|
+
"platformEmpty": "还没有{{platform}}机器人",
|
|
942
|
+
"platformEmptyGuide": "接入一个机器人,就能从这个平台派活。",
|
|
943
|
+
"wechatUnavailable": "微信暂时不能连接。已保存的机器人仍可查看或删除;这个页面暂不提供新建微信机器人。",
|
|
944
|
+
"dangerDescription": "删除这个机器人会移除已存的凭据和聊天绑定,不会删除聊天平台上的机器人。",
|
|
945
|
+
"tab": {
|
|
946
|
+
"basic": "基本",
|
|
947
|
+
"access": "访问",
|
|
948
|
+
"chat": "聊天",
|
|
949
|
+
"advanced": "连接与诊断",
|
|
950
|
+
"danger": "危险操作"
|
|
951
|
+
},
|
|
937
952
|
"addBot": "添加机器人",
|
|
938
953
|
"moreSettings": "更多设置",
|
|
939
954
|
"moreSettingsIssues": "更多设置({{count}} 项待修正)",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycodium-ai/plugin-im",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3598",
|
|
4
4
|
"description": "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"im",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"markdown-it": "^15.0.2",
|
|
33
33
|
"react": "19.2.6",
|
|
34
34
|
"vite-plus": "0.2.2",
|
|
35
|
-
"@ycodium-ai/plugin-api": "0.2.
|
|
35
|
+
"@ycodium-ai/plugin-api": "0.2.3598",
|
|
36
36
|
"ycodium-react-test-harness": "0.0.0"
|
|
37
37
|
},
|
|
38
38
|
"ycodium": {
|