openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
68 lines • 16 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Pu as t,U as n,W as r,ai as i,ci as a,di as o,ei as s,ii as c,ni as l,oi as u,zu as d}from"./control-ui-core-CBJ5efDh.js";import{Fi as f,Jn as p,Xn as m,Yn as ee,ca as te,sa as h}from"./control-ui-core-DtLivg_r.js";import{E as ne,G as g,J as _,W as re,k as ie}from"./lit-runtime-IOnANfcZ.js";import{En as v,Tn as y,wn as ae}from"./control-ui-boot-shared-CkXlyZBY.js";import{jo as oe,pi as b,vi as x,wa as se,yi as ce}from"./ui-CmSP4d14.js";import{I as le,X as ue,z as de}from"./control-ui-boot-shared-XreXSF7h.js";import{c as fe,d as pe,f as me,n as he,s as ge,u as S}from"./config-form.search-cybY4IfR.js";function C(e){let t=oe(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(e,t,n){return E(e,t,n,{visited:0},0,1)>0}function be(e,t,n){return E(e,t,n,{visited:0},0,1/0)}function E(e,t,n,r,i,o){if(i>D||++r.visited>O)return 1;if(e==null)return 0;let s=a(t);if((l(t,n)?.sensitive||C(s))&&u(e))return 1;let c=0,d=(e,a)=>(c+=E(e,[...t,a],n,r,i+1,o-c),c>=o);return Array.isArray(e)?e.some(d):typeof e==`object`&&Object.entries(e).some(([e,t])=>d(t,e)),c}var D,O;function k(){return(k=e((()=>{w(),c(),D=64,O=2e4})))()}function A(e,t){let n=e.properties;return n&&Object.hasOwn(n,t)?n[t]:void 0}function xe(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 j(e,t){if(!t)return e;let n=xe(t);return n<=100?Number(e.toFixed(n)):e}function M(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 Se(e,t){return e/M(e,t)*t}function Ce(e){let{numerator:t,denominator:n}=p(e),r=M(t,n),i=Number(t/r);return!Number.isFinite(i)||i<=0?1:i}function N(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 j(Number(u)*t,t)}function P(e,t){let n,r=!1;for(let i of e){let e=b(t===`lower`?i.minimum:i.maximum),a=b(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 F(e,t,n){let{value:r,exclusive:i}=e;if(r===void 0||!t)return r;let a=N(r,t,n);if(!i||(n===`ceil`?a>r:a<r))return a;let o=j(a+(n===`ceil`?t:-t),t);return n===`ceil`?Math.max(a,o):Math.min(a,o)}function we(e){let t,n;for(let r of e){let e=b(r.multipleOf);if(e===void 0||e<=0)continue;let i=p(e);if(!i)continue;let a=M(i.numerator,i.denominator),o=i.numerator/a,s=i.denominator/a;t=t===void 0?o:Se(t,o),n=n===void 0?s:M(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,x(e.minItems,{min:0})??0);let t=x(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=>A(t,e)!==void 0||t.additionalProperties!==!1))}function Te(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=1,r=new Set(R(e));for(let r of L(e))Object.hasOwn(t,r)||(n+=1);let i=Te(e);for(let[a,o]of Object.entries(t)){let t=ke(e,a);if(t){y(t,o)||(n+=1);continue}!r.has(a)&&(i===!1||i===void 0||!y(i,o))&&(n+=1)}return n}function De(e,t){return S(e).every(({propertyNames:e})=>e===void 0||e===!0||e!==!1&&y(e,t))}function Oe(e,t,n){return Object.keys(n).some(n=>!Object.hasOwn(t,n)&&!De(e,n))?!1:y(e,n)?!0:!y(e,t)&&Ee(e,n)<=Ee(e,t)}function ke(e,t){if(R(e).includes(t))return pe(S(e).map(e=>A(e,t)).filter(e=>e!==void 0))}function z(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(...z(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)v(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=z(e).filter(t=>y(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&&!y(i,t[r])&&(a+=1),n&&t.slice(r+1).some(e=>v(t[r],e))&&(a+=1)}return a}function Me(e,t,n,r,i){if(y(e,n))return!0;if(y(e,t))return!1;let a=je(e,t,r),o=je(e,n,r);return i?o<=a:o<a}function B(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`:o(e),i=we(t),a=r===`integer`?i===void 0?1:Ce(i):i,s=P(t,`lower`),c=P(t,`upper`);return{min:F(s,a,`ceil`),max:F(c,a,`floor`),exclusiveMin:s.exclusive?s.value:void 0,exclusiveMax:c.exclusive?c.value:void 0,step:a??`any`}}function V(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:V(e,t)}function Pe(e,t){let n=B(t),r=e;return typeof n.step==`number`&&(r=N(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=V(n.exclusiveMin,1)),n.exclusiveMax!==void 0&&r>=n.exclusiveMax&&(r=V(n.exclusiveMax,-1)),j(r,typeof n.step==`number`?n.step:void 0)}function Fe(e){let t=B(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 W;if(e.pattern)try{return t===0&&new RegExp(e.pattern,`u`).test(``)?``:W}catch{return W}return`x`.repeat(t).slice(0,n)}function H(e,t){if(t===W||!y(e,t))return W;if(!t||typeof t!=`object`)return t;try{return structuredClone(t)}catch{return W}}function U(e,t=0){if(!e)return``;if(e.default!==void 0)return H(e,e.default);if(e.const!==void 0)return H(e,e.const);if(e.enum&&e.enum.length>0){for(let t of e.enum){let n=H(e,t);if(n!==W)return n}return W}if(t>=32)return W;for(let n of e.allOf??[]){let r=H(e,U(n,t+1));if(r!==W)return r}switch(o(e)){case`object`:{let n={};for(let r of e.required??[]){let i=A(e,r);if(!i)return W;let a=U(i,t+1);if(a===W)return W;n[r]=a}return H(e,n)}case`array`:{let n=Math.max(0,e.minItems??0);if(!Number.isSafeInteger(n)||n>100)return W;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 W;let o=U(n,t+1);if(o===W)return W;i.push(o)}return H(e,i)}case`boolean`:return H(e,!1);case`number`:case`integer`:return H(e,Fe(e));case`string`:return H(e,Ie(e));case`null`:return H(e,null);default:return H(e,``)}}var W,Le;function G(){return(G=e((()=>{ae(),ce(),me(),m(),k(),W=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=q.get(e),i=r?.edit!==void 0&&e.ownerDocument.activeElement===e&&r.pathKey===t&&r.presentationIdentity===n;q.set(e,{edit:i?r.edit:void 0,pathKey:t,presentationIdentity:n})}function Be(e,t){let n=q.get(e);return n?(n.edit??={branch:t},n.edit):{branch:t}}function Ve(e,t){return q.get(e)?.edit??{branch:t}}function He(e){let t=q.get(e);t&&(t.edit=void 0)}function K(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=J.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,K(e,``)):Object.is(s.controlIdentity,t)||o(e)),J.set(e,{controlIdentity:t,sourceIdentity:n,pathKey:r,presentationIdentity:i,renderedValue:a})}var q,J;function Y(){return(Y=e((()=>{q=new WeakMap,J=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 X(e){return typeof e==`number`?ee(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=ye(e.value,e.path,e.hints),n=e.value===s,r=t&&!n&&(e.revealSensitive||(e.isSensitivePathRevealed?.(e.path)??!1)),o=l(e.path,e.hints)?.sensitive||C(a(e.path));return{isSensitive:t,isSensitiveField:o,isMasked:e.maskSensitive===!0&&!e.revealSensitive&&!r&&(e.value===void 0||typeof e.value==`string`)&&!(typeof e.value==`string`&&i(e.value))&&(o||t),isRedacted:t&&!r,isRevealed:r,canReveal:t&&!n,sentinelRedacted:n}}function Xe(e){let{state:t}=e;if(!t.isSensitive||!e.onToggleSensitivePath)return g;let n=t.canReveal?t.isRevealed?d(`configForm.hideValue`):d(`configForm.revealValue`):t.sentinelRedacted?d(`configForm.storedSecretNotRevealable`):d(`configForm.disableStreamToReveal`);return _`
<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?h.eye:h.eyeOff}
</button>
</openclaw-tooltip>
`}function Z(e,t,n=!1){return t===g&&!n?e:_`<span class="settings-secret">${e}${t}</span>`}function Ze(e){let t=e.showLabel?e.help:void 0,n=e.showLabel&&e.defaultDescription!==g?e.defaultDescription:void 0,r=e.showLabel||!!t||!!n||!!e.error,i=e.stacked||!r?`settings-row settings-row--stacked`:`settings-row`;return _`
<div class=${i}>
${r?_`
<div class="settings-row__text">
${e.showLabel?_`<span class="settings-row__title">${e.label}</span>`:g}
${t?_`<span class="settings-row__desc" id=${e.helpId??g}
>${t}</span
>`:g}
${n?_`<span class="settings-row__desc">${n}</span>`:g}
${e.error?_`<span class="cfg-field__error" role="alert">${e.error}</span>`:g}
</div>
`:g}
${e.control===g?g:_`<div class="settings-row__control">
${e.control}
${e.errorId?_`<span
id=${e.errorId}
class="cfg-field__error settings-control__sr-label"
role="alert"
hidden
></span>`:g}
</div>`}
</div>
`}function Qe(e,t,n){return _`<openclaw-tooltip .content=${e}>
<button
type="button"
class="btn btn--icon"
style="width:28px;height:28px;padding:0;"
aria-label=${e}
?disabled=${t}
@click=${e=>$e(e,n)}
>
${h.trash}
</button>
</openclaw-tooltip>`}function $e(e,t){let n=e.currentTarget;if(!(n instanceof HTMLButtonElement)||n!==document.activeElement){t();return}let r=n.closest(`.cfg-array, .cfg-map`),i=e=>Array.from(r?.querySelectorAll(e)??[]).filter(e=>e.closest(`.cfg-array, .cfg-map`)===r),a=n.getAttribute(`aria-label`),o=i(`button`).filter(e=>e.getAttribute(`aria-label`)===a),s=o.indexOf(n),c=[o[s+1],o[s-1],i(`button[aria-controls]`)[0]];t()&&queueMicrotask(()=>{document.activeElement===document.body&&c.find(e=>e?.isConnected&&!e.disabled)?.focus()})}function et(e,t){return e.default===void 0?g:de(X(e.default),t!==void 0)??g}function tt(e){let t=e.options.findIndex(t=>v(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?d(`configForm.enumOn`):e===!1?d(`configForm.enumOff`):e===`auto`?d(`configForm.enumAuto`):X(e):X(e)}function rt(e){let{path:t,fallback:n,sensitiveState:r,disabled:i,onPatch:a}=e,o=T(t,`json-error`),s=[e.descriptionId,o].filter(Boolean).join(` `),c=(e,t)=>K(e,t,`.cfg-json-editor`),l=t=>{let n=``,r=t.value.trim();if(!r&&e.isRequired)n=d(`configForm.invalidJson`);else if(r)try{y(e.schema,JSON.parse(r))||(n=d(`configForm.invalidJson`))}catch{n=d(`configForm.invalidJson`)}return c(t,n),!n},u=r.isRedacted?``:n,f=JSON.stringify(t.filter(e=>typeof e==`string`)),p=(e,n)=>a(t,n)!==!1||(e.value=u,l(e),!1),m=_`
<textarea
${ie(t=>{if(!(t instanceof HTMLTextAreaElement))return;let n=Q.get(t);n&&(!Object.is(n.sourceValue,e.sourceValue)&&!v(n.sourceValue,e.sourceValue)||n.fallback!==u||n.pathKey!==f)&&(t.value=u,c(t,``)),Q.set(t,{sourceValue:e.sourceValue,fallback:u,pathKey:f})})}
class="settings-input${r.isRedacted?` cfg-redacted`:``}"
aria-label=${e.ariaLabel}
aria-describedby=${s||g}
aria-invalid="false"
placeholder=${r.isRedacted?d(`configForm.redactedPlaceholder`):d(`configForm.jsonValue`)}
rows=${e.rows}
.value=${u}
?disabled=${i}
?readonly=${r.isRedacted}
@click=${()=>{r.isRedacted&&e.onToggleSensitivePath&&e.onToggleSensitivePath(t)}}
@input=${e=>{r.isRedacted||l(e.target)}}
@change=${e=>{if(r.isRedacted)return;let t=e.target;if(!l(t))return;let n=t.value.trim();if(!n){p(t,void 0);return}try{p(t,JSON.parse(n))}catch{}}}
></textarea>
`;return _`
<span class="cfg-json-editor">
${Z(m,Xe({path:t,state:r,disabled:i,onToggleSensitivePath:e.onToggleSensitivePath}))}
<span id=${o} class="cfg-field__error" role="alert" hidden></span>
</span>
`}var it,Q;function $(){return($=e((()=>{re(),ne(),w(),te(),t(),f(),c(),r(),G(),m(),Y(),he(),k(),le(),it=new Set([`title`,`description`,`default`,`nullable`,`enumIncludesNull`,`tags`,`x-tags`]),Q=new WeakMap})))()}export{U as A,be as B,ze as C,I as D,z as E,Te as F,k as H,R as I,ke as L,De as M,Pe as N,Me as O,B as P,L as R,K as S,W as T,w as U,ye as V,C as W,Be as _,$ as a,Ve as b,qe as c,rt as d,et as f,Z as g,Ge as h,Ye as i,G as j,Oe as k,Qe as l,Xe as m,nt as n,Ke as o,tt as p,X as r,Je as s,We as t,Ze as u,He as v,Ue as w,Re as x,Y as y,T as z};