UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

57 lines • 15.6 kB
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Eu as t,U as n,W as r,ai as i,fi as a,ju as o,li as s,oi as c,ri as l,si as u,ti as d}from"./control-ui-core-BncvAZjR.js";import{Ai as f,Gn as p,Kn as m,na as ee,qn as h,ra as te}from"./control-ui-core-9qYjK5B2.js";import{$ as g,F as ne,M as re,X as _,Y as ie}from"./lit-runtime-B8uOr6OX.js";import{Cn as v,Sn as ae,wn as y}from"./control-ui-boot-shared-umGE-sEP.js";import{Ei as oe,Ti as b,_a as se,bi as x,wo as ce}from"./ui-DuRgK6kL.js";import{I as le,X as ue,z as de}from"./control-ui-boot-shared-xfDhIVun.js";import{c as fe,d as pe,f as me,n as he,s as ge,u as S}from"./config-form.search-DJEvDtN5.js";function C(e){let t=ce(e);return t.includes(`localservice.env.`)||!_e.some(e=>t.endsWith(e))&&ve.some(t=>t.test(e))}var _e,ve;function w(){return(w=e((()=>{_e=[`maxtokens`,`maxoutputtokens`,`maxinputtokens`,`maxcompletiontokens`,`contexttokens`,`totaltokens`,`tokencount`,`tokenlimit`,`tokenbudget`,`passwordfile`],ve=[/token$/i,/password/i,/secret/i,/api.?key/i,/encrypt.?key/i,/private.?key/i,/serviceaccount(?:ref)?$/i]})))()}function T(e,t){return`config-field-${e.length===0?`root`:e.map(e=>{let t=String(e),n=``;for(let e=0;e<t.length;e+=1)n+=t.charCodeAt(e).toString(16).padStart(4,`0`);return`${typeof e==`number`?`n`:`s`}${t.length}-${n}`}).join(`_`)}-${t}`}function ye(){return o(`configForm.redactedPlaceholder`)}function be(e,t){return!(t>O||(e.visited+=1,e.visited>k))}function E(e,t,n){return D(e,t,n,{visited:0},0,1)>0}function xe(e,t,n){return D(e,t,n,{visited:0},0,1/0)}function D(e,t,n,r,i,a){if(!be(r,i))return 1;if(e==null)return 0;let o=s(t);if((l(t,n)?.sensitive||C(o))&&u(e))return 1;let c=0,d=(e,o)=>(c+=D(e,[...t,o],n,r,i+1,a-c),c>=a);return Array.isArray(e)?e.some(d):e&&typeof e==`object`&&Object.entries(e).some(([e,t])=>d(t,e)),c}var O,k;function A(){return(A=e((()=>{w(),t(),i(),O=64,k=2e4})))()}function j(e,t){let n=e.properties;return n&&Object.hasOwn(n,t)?n[t]:void 0}function Se(e){let[t=``,n]=String(e).toLowerCase().split(`e`),r=t.split(`.`)[1]?.length??0,i=Number(n??0);return Math.max(0,r-i)}function M(e,t){if(!t)return e;let n=Se(t);return n<=100?Number(e.toFixed(n)):e}function N(e,t){let n=e<0n?-e:e,r=t<0n?-t:t;for(;r!==0n;){let e=n%r;n=r,r=e}return n}function Ce(e,t){return e/N(e,t)*t}function we(e){let{numerator:t,denominator:n}=p(e),r=N(t,n),i=Number(t/r);return!Number.isFinite(i)||i<=0?1:i}function P(e,t,n){let r=p(e),i=p(t);if(!r||!i||i.numerator===0n)return e;let a=r.numerator*i.denominator,o=r.denominator*i.numerator,s=a/o,c=a%o,l=c<0n?s-1n:s,u=n===`floor`?l:n===`ceil`?s+(c>0n?1n:0n):(a-l*o)*2n<o?l:l+1n;return M(Number(u)*t,t)}function F(e,t){let n,r=!1;for(let i of e){let e=x(t===`lower`?i.minimum:i.maximum),a=x(t===`lower`?i.exclusiveMinimum:i.exclusiveMaximum);for(let[i,o]of[[e,!1],[a,!0]])i!==void 0&&(n===void 0||(t===`lower`?i>n:i<n)||i===n&&o&&!r)&&(n=i,r=o)}return{value:n,exclusive:r}}function Te(e){let t,n;for(let r of e){let e=x(r.multipleOf);if(e===void 0||e<=0)continue;let i=p(e);if(!i)continue;let a=N(i.numerator,i.denominator),o=i.numerator/a,s=i.denominator/a;t=t===void 0?o:Ce(t,o),n=n===void 0?s:N(n,s)}if(t===void 0||n===void 0)return;let r=Number(t)/Number(n);return Number.isFinite(r)&&r>0?r:void 0}function I(e){let t=S(e),n=0,r,i=!1;for(let e of t){n=Math.max(n,b(e.minItems,{min:0})??0);let t=b(e.maxItems,{min:0});t!==void 0&&(r=Math.min(r??1/0,t)),Array.isArray(e.items)&&e.additionalItems===!1&&(r=Math.min(r??1/0,e.items.length)),i||=e.uniqueItems===!0}return{minItems:n,maxItems:r,uniqueItems:i}}function L(e){return new Set(S(e).flatMap(e=>e.required??[]))}function R(e){let t=S(e);return[...new Set(t.flatMap(e=>Object.keys(e.properties??{})))].filter(e=>t.every(t=>j(t,e)!==void 0||t.additionalProperties!==!1))}function z(e){let t=S(e).map(e=>e.additionalProperties).filter(e=>e!==void 0);if(t.some(e=>e===!1))return!1;let n=t.filter(e=>!!e&&typeof e==`object`);return n.length>0?pe(n):t.some(e=>e===!0)?{}:void 0}function Ee(e,t){let n=+!v(e,t),r=new Set(R(e));for(let r of L(e))Object.hasOwn(t,r)||(n+=1);let i=z(e);for(let[a,o]of Object.entries(t)){let t=ke(e,a);if(t){v(t,o)||(n+=1);continue}!r.has(a)&&(i===!1||i===void 0||!v(i,o))&&(n+=1)}return n}function De(e,t){return S(e).every(({propertyNames:e})=>e===void 0||e===!0||e!==!1&&v(e,t))}function Oe(e,t,n){return Object.keys(n).some(n=>!Object.hasOwn(t,n)&&!De(e,n))?!1:v(e,n)?!0:!v(e,t)&&Ee(e,n)<=Ee(e,t)}function ke(e,t){if(R(e).includes(t))return pe(S(e).map(e=>j(e,t)).filter(e=>e!==void 0))}function B(e,t=new Set){if(t.has(e))return[];t.add(e);let n=[e.const,...e.enum??[]].filter(Array.isArray);for(let r of[...e.allOf??[],...e.anyOf??[],...e.oneOf??[]])n.push(...B(r,t));return t.delete(e),n}function Ae(e,t){let n=Math.abs(e.length-t.length),r=Math.min(e.length,t.length);for(let i=0;i<r;i+=1)y(e[i],t[i])||(n+=1);return n}function je(e,t,n){let{minItems:r,maxItems:i}=I(e),a=Math.max(0,r-t.length),o=B(e).filter(t=>v(e,t)).map(e=>Ae(t,e));o.length>0&&(a+=Math.min(...o)),i!==void 0&&(a+=Math.max(0,t.length-i));for(let r=0;r<t.length;r+=1){let i=fe(e,r);i&&!v(i,t[r])&&(a+=1),n&&t.slice(r+1).some(e=>y(t[r],e))&&(a+=1)}return a}function Me(e,t,n,r,i){if(v(e,n))return!0;if(v(e,t))return!1;let a=je(e,t,r),o=je(e,n,r);return i?o<=a:o<a}function V(e){let t=S(e),n=new Set(t.flatMap(e=>{let t=Array.isArray(e.type)?e.type:e.type?[e.type]:[];return t.includes(`number`)?[`number`]:t.includes(`integer`)?[`integer`]:[]})),r=n.has(`integer`)?`integer`:n.has(`number`)?`number`:a(e),i=Te(t),o=r===`integer`?i===void 0?1:we(i):i,s=F(t,`lower`),c=F(t,`upper`),l=s.exclusive?s.value:void 0,u=c.exclusive?c.value:void 0,d=s.value,f=c.value;if(o){if(d!==void 0&&(d=P(d,o,`ceil`)),f!==void 0&&(f=P(f,o,`floor`)),l!==void 0){let e=P(l,o,`ceil`),t=e<=l?M(e+o,o):e;d=d===void 0?t:Math.max(d,t)}if(u!==void 0){let e=P(u,o,`floor`),t=e>=u?M(e-o,o):e;f=f===void 0?t:Math.min(f,t)}}return{min:d,max:f,exclusiveMin:l,exclusiveMax:u,step:o??`any`}}function H(e,t){if(!Number.isFinite(e))return e;if(e===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let n=new DataView(new ArrayBuffer(8));n.setFloat64(0,e);let r=n.getBigUint64(0),i=e>0==t>0?r+1n:r-1n;return n.setBigUint64(0,i),n.getFloat64(0)}function Ne(e,t,n){if(n!==void 0&&Number.isFinite(n)){let r=e+(n-e)/2;if(t>0&&r>e||t<0&&r<e)return r}let r=e+t*Math.max(1,Math.abs(e));return Number.isFinite(r)&&r!==e?r:H(e,t)}function Pe(e,t){let n=V(t),r=e;return typeof n.step==`number`&&(r=P(r,n.step,`round`)),n.min!==void 0&&(r=Math.max(n.min,r)),n.max!==void 0&&(r=Math.min(n.max,r)),n.exclusiveMin!==void 0&&r<=n.exclusiveMin&&(r=H(n.exclusiveMin,1)),n.exclusiveMax!==void 0&&r>=n.exclusiveMax&&(r=H(n.exclusiveMax,-1)),M(r,typeof n.step==`number`?n.step:void 0)}function Fe(e){let t=V(e);if(t.step===`any`){if(t.exclusiveMin!==void 0&&t.exclusiveMin>=0)return Ne(t.exclusiveMin,1,t.max);if(t.exclusiveMax!==void 0&&t.exclusiveMax<=0)return Ne(t.exclusiveMax,-1,t.min)}return Pe(0,e)}function Ie(e){let t=Math.max(0,e.minLength??0),n=e.maxLength??Math.max(t,0);if(!Number.isSafeInteger(t)||t>Le||n<t)return G;if(e.pattern)try{return t===0&&new RegExp(e.pattern,`u`).test(``)?``:G}catch{return G}return`x`.repeat(t).slice(0,n)}function U(e,t){if(t===G||!v(e,t))return G;if(!t||typeof t!=`object`)return t;try{return structuredClone(t)}catch{return G}}function W(e,t=0){if(!e)return``;if(e.default!==void 0)return U(e,e.default);if(e.const!==void 0)return U(e,e.const);if(e.enum&&e.enum.length>0){for(let t of e.enum){let n=U(e,t);if(n!==G)return n}return G}if(t>=32)return G;for(let n of e.allOf??[]){let r=U(e,W(n,t+1));if(r!==G)return r}switch(a(e)){case`object`:{let n={};for(let r of e.required??[]){let i=j(e,r);if(!i)return G;let a=W(i,t+1);if(a===G)return G;n[r]=a}return U(e,n)}case`array`:{let n=Math.max(0,e.minItems??0);if(!Number.isSafeInteger(n)||n>100)return G;let r=e.items,i=[];for(let a=0;a<n;a+=1){let n=Array.isArray(r)?r[a]??(e.additionalItems&&typeof e.additionalItems==`object`?e.additionalItems:void 0):r;if(!n)return G;let o=W(n,t+1);if(o===G)return G;i.push(o)}return U(e,i)}case`boolean`:return U(e,!1);case`number`:case`integer`:return U(e,Fe(e));case`string`:return U(e,Ie(e));case`null`:return U(e,null);default:return U(e,``)}}var G,Le;function K(){return(K=e((()=>{ae(),oe(),me(),h(),A(),G=Symbol(`no-safe-config-default`),Le=4096})))()}function Re(e){let t=typeof e;return t===`string`||t===`number`||t===`boolean`?t:void 0}function ze(e,t,n){if(!(e instanceof HTMLInputElement))return;let r=J.get(e),i=r?.edit!==void 0&&e.ownerDocument.activeElement===e&&r.pathKey===t&&r.presentationIdentity===n;J.set(e,{edit:i?r.edit:void 0,pathKey:t,presentationIdentity:n})}function Be(e,t){let n=J.get(e);return n?(n.edit??={branch:t},n.edit):{branch:t}}function Ve(e,t){return J.get(e)?.edit??{branch:t}}function He(e){let t=J.get(e);t&&(t.edit=void 0)}function q(e,t,n=`.settings-row`){e.setCustomValidity(t),e.setAttribute(`aria-invalid`,String(!!t));let r=e.closest(n)?.querySelector(`.cfg-field__error`);return r&&(r.hidden=!t,r.textContent=t),!t}function Ue(e,t,n,r,i,a,o){if(!(e instanceof HTMLInputElement))return;let s=Y.get(e);s&&(!Object.is(s.sourceIdentity,n)||s.pathKey!==r||s.presentationIdentity!==i||s.renderedValue!==a?e.matches(`:focus`)&&e.value!==s.renderedValue?o(e):(e.value=a,q(e,``)):Object.is(s.controlIdentity,t)||o(e)),Y.set(e,{controlIdentity:t,sourceIdentity:n,pathKey:r,presentationIdentity:i,renderedValue:a})}var J,Y;function X(){return(X=e((()=>{J=new WeakMap,Y=new WeakMap})))()}function We(e){return{hints:e.hints,rawAvailable:e.rawAvailable,maskSensitive:e.maskSensitive,unsupported:e.unsupported,disabled:e.disabled,compact:e.compact,commitOnBlur:e.commitOnBlur,revealSensitive:e.revealSensitive,isSensitivePathRevealed:e.isSensitivePathRevealed,onToggleSensitivePath:e.onToggleSensitivePath}}function Ge(e){let{label:t,help:n}=ge(e.path,e.schema,e.hints),r=e.showLabel??!0;return{label:t,help:n,showLabel:r,helpId:e.descriptionId??(r&&n?T(e.path,`description`):void 0)}}function Ke(e){return Object.keys(e??{}).every(e=>it.has(e))}function qe(e){if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return``}}function Z(e){return typeof e==`number`?m(e):n(e)}function Je(e){return!se(e)||typeof e.source!=`string`||typeof e.id!=`string`?!1:e.provider===void 0||typeof e.provider==`string`}function Ye(e){let t=E(e.value,e.path,e.hints),n=e.value===d,r=t&&!n&&(e.revealSensitive||(e.isSensitivePathRevealed?.(e.path)??!1)),i=l(e.path,e.hints)?.sensitive||C(s(e.path));return{isSensitive:t,isSensitiveField:i,isMasked:e.maskSensitive===!0&&!e.revealSensitive&&!r&&(e.value===void 0||typeof e.value==`string`)&&!(typeof e.value==`string`&&c(e.value))&&(i||t),isRedacted:t&&!r,isRevealed:r,canReveal:t&&!n,sentinelRedacted:n}}function Xe(e){let{state:t}=e;if(!t.isSensitive||!e.onToggleSensitivePath)return _;let n=t.canReveal?t.isRevealed?o(`configForm.hideValue`):o(`configForm.revealValue`):t.sentinelRedacted?o(`configForm.storedSecretNotRevealable`):o(`configForm.disableStreamToReveal`);return g` <openclaw-tooltip .content=${n}> <button type="button" class="settings-secret__toggle" aria-label=${n} aria-pressed=${t.isRevealed} ?disabled=${e.disabled||!t.canReveal} @click=${()=>e.onToggleSensitivePath?.(e.path)} > ${t.isRevealed?ee.eye:ee.eyeOff} </button> </openclaw-tooltip> `}function Ze(e,t,n=!1){return t===_&&!n?e:g`<span class="settings-secret">${e}${t}</span>`}function Qe(e){let t=e.showLabel?e.help:void 0,n=e.showLabel&&e.defaultDescription!==_?e.defaultDescription:void 0,r=e.showLabel||!!t||!!n||!!e.error,i=e.stacked||!r?`settings-row settings-row--stacked`:`settings-row`;return g` <div class=${i}> ${r?g` <div class="settings-row__text"> ${e.showLabel?g`<span class="settings-row__title">${e.label}</span>`:_} ${t?g`<span class="settings-row__desc" id=${e.helpId??_} >${t}</span >`:_} ${n?g`<span class="settings-row__desc">${n}</span>`:_} ${e.error?g`<span class="cfg-field__error" role="alert">${e.error}</span>`:_} </div> `:_} ${e.control===_?_:g`<div class="settings-row__control"> ${e.control} ${e.errorId?g`<span id=${e.errorId} class="cfg-field__error settings-control__sr-label" role="alert" hidden ></span>`:_} </div>`} </div> `}function $e(e,t){return Ye({path:e.path,value:t,hints:e.hints,revealSensitive:e.revealSensitive??!1,isSensitivePathRevealed:e.isSensitivePathRevealed}).isRedacted?_:et(e.schema,e.value)}function et(e,t){return e.default===void 0?_:de(Z(e.default),t!==void 0)??_}function tt(e){let t=e.options.findIndex(t=>y(t,e.resolvedValue));return ue({value:t<0?``:String(t),options:e.options.map((t,n)=>({value:String(n),label:nt(t,e.options)})),disabled:e.disabled,ariaLabel:e.ariaLabel,descriptionId:e.descriptionId,onChange:t=>{let n=e.options[Number(t)];if(n!==void 0)return e.onSelect(n)}})}function nt(e,t){return t.includes(!0)&&t.includes(!1)?e===!0?o(`configForm.enumOn`):e===!1?o(`configForm.enumOff`):e===`auto`?o(`configForm.enumAuto`):Z(e):Z(e)}function rt(e){let{path:t,fallback:n,sensitiveState:r,disabled:i,onPatch:a}=e,s=T(t,`json-error`),c=[e.descriptionId,s].filter(Boolean).join(` `),l=(e,t)=>q(e,t,`.cfg-json-editor`),u=t=>{let n=``,r=t.value.trim();if(!r&&e.isRequired)n=o(`configForm.invalidJson`);else if(r)try{v(e.schema,JSON.parse(r))||(n=o(`configForm.invalidJson`))}catch{n=o(`configForm.invalidJson`)}return l(t,n),!n},d=r.isRedacted?``:n,f=JSON.stringify(t.filter(e=>typeof e==`string`)),p=(e,n)=>a(t,n)!==!1||(e.value=d,u(e),!1),m=g` <textarea ${ne(t=>{if(!(t instanceof HTMLTextAreaElement))return;let n=Q.get(t);n&&(!Object.is(n.sourceValue,e.sourceValue)&&!y(n.sourceValue,e.sourceValue)||n.fallback!==d||n.pathKey!==f)&&(t.value=d,l(t,``)),Q.set(t,{sourceValue:e.sourceValue,fallback:d,pathKey:f})})} class="settings-input${r.isRedacted?` cfg-redacted`:``}" aria-label=${e.ariaLabel} aria-describedby=${c||_} aria-invalid="false" placeholder=${r.isRedacted?o(`configForm.redactedPlaceholder`):o(`configForm.jsonValue`)} rows=${e.rows} .value=${d} ?disabled=${i} ?readonly=${r.isRedacted} @click=${()=>{r.isRedacted&&e.onToggleSensitivePath&&e.onToggleSensitivePath(t)}} @input=${e=>{r.isRedacted||u(e.target)}} @change=${e=>{if(r.isRedacted)return;let t=e.target;if(!u(t))return;let n=t.value.trim();if(!n){p(t,void 0);return}try{p(t,JSON.parse(n))}catch{}}} ></textarea> `;return g` <span class="cfg-json-editor"> ${Ze(m,Xe({path:t,state:r,disabled:i,onToggleSensitivePath:e.onToggleSensitivePath}))} <span id=${s} class="cfg-field__error" role="alert" hidden></span> </span> `}var it,Q;function $(){return($=e((()=>{ie(),re(),w(),te(),t(),f(),i(),r(),K(),h(),X(),he(),A(),le(),it=new Set([`title`,`description`,`default`,`nullable`,`enumIncludesNull`,`tags`,`x-tags`]),Q=new WeakMap})))()}export{W as A,xe as B,ze as C,I as D,B as E,z as F,C as G,A as H,R as I,ke as L,De as M,Pe as N,Me as O,V as P,L as R,q as S,G as T,ye as U,E as V,w as W,Be as _,$ as a,Ve as b,qe as c,rt as d,et as f,Ze as g,Ge as h,Ye as i,K as j,Oe as k,$e as l,Xe as m,nt as n,Ke as o,tt as p,Z as r,Je as s,We as t,Qe as u,He as v,Ue as w,Re as x,X as y,T as z};