iobroker.assistant 1.4.6 → 1.4.8
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 +18 -1
- package/admin/custom/.vite/manifest.json +1 -1
- package/admin/custom/assets/{Components-BR57MZLJ.js → Components-srYDLjt6.js} +2 -2
- package/admin/custom/customComponents.js +1 -1
- package/admin/custom/index.html +1 -1
- package/admin/custom/mf-manifest.json +1 -1
- package/admin/custom/mf-stats.json +1 -1
- package/admin/i18n/de.json +6 -1
- package/admin/i18n/en.json +6 -1
- package/admin/i18n/es.json +6 -1
- package/admin/i18n/fr.json +6 -1
- package/admin/i18n/it.json +6 -1
- package/admin/i18n/nl.json +6 -1
- package/admin/i18n/pl.json +6 -1
- package/admin/i18n/pt.json +6 -1
- package/admin/i18n/ru.json +6 -1
- package/admin/i18n/uk.json +6 -1
- package/admin/i18n/zh-cn.json +6 -1
- package/admin/jsonConfig.json +41 -0
- package/build/lib/ask.js +10 -0
- package/build/lib/ask.js.map +1 -1
- package/build/lib/journal.js.map +1 -1
- package/build/lib/llm.js +50 -12
- package/build/lib/llm.js.map +1 -1
- package/build/lib/media.js +226 -0
- package/build/lib/media.js.map +1 -0
- package/build/lib/piAgent.js +1 -0
- package/build/lib/piAgent.js.map +1 -1
- package/build/lib/voice/esphome.js +263 -6
- package/build/lib/voice/esphome.js.map +1 -1
- package/build/lib/voice/esphomeEntities.js +52 -0
- package/build/lib/voice/esphomeEntities.js.map +1 -1
- package/build/lib/voice/esphomeProto.js.map +1 -1
- package/build/lib/voice/ffmpegStatic.js +137 -0
- package/build/lib/voice/ffmpegStatic.js.map +1 -0
- package/build/main.js +315 -34
- package/build/main.js.map +1 -1
- package/io-package.json +28 -27
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./assets/dist-B3E7IYuQ.js";import{t}from"./assets/vite-preload-helper-BbbETgeG.js";import{t as n}from"./assets/helpers-DE61bb74.js";var r={},i=new Set,a=new Map;function o(e,t){let n=a.get(e);return n||(n=Promise.resolve().then(t).catch(t=>{throw a.delete(e),t}),a.set(e,n)),n}async function s(e){if(typeof document>`u`)return;let t=r[e]||[];await Promise.all(t.map(e=>{let t=new URL(e,import.meta.url).href;return i.has(t)||(i.add(t),document.querySelector(`link[rel="stylesheet"][href="${t}"]`))?Promise.resolve():new Promise((e,n)=>{let r=document.createElement(`link`);r.rel=`stylesheet`,r.href=t,r.onload=()=>e(),r.onerror=()=>{i.delete(t),r.remove(),n(Error(`[Module Federation] Failed to load CSS asset: ${t}`))},document.head.appendChild(r)})}))}var c={"./Components":async()=>{await s(`./Components`),await Promise.all([]);let e=await o(`./Components`,()=>t(()=>import(`./assets/Components-BR57MZLJ.js`),[],import.meta.url)),n=e&&e.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,e),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r}};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var l=`__mf_init__virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__mf_v__runtimeInit__mf_v__.js__`,u=globalThis[l];if(!u){let e,t,n=new Promise((n,r)=>{e=n,t=r});u=globalThis[l]={initPromise:n,initResolve:e,initReject:t}}var d=u.initResolve,{initReject:f}=u,p=e=>{throw f(e),e},m=`__mf_module_cache__`;globalThis[m]||={share:{},remote:{}},globalThis[m].share||={},globalThis[m].remote||={};var h=globalThis[m];for(let e of Object.keys(h.share))if(e.startsWith(`default:`)){let t=e.slice(8);h.share[t]===void 0&&(h.share[t]=h.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;h.share[t]===void 0&&(h.share[t]=h.share[e])}var g={},_=Array.isArray(`default`)?`default`:[`default`],v=`default`,y=`ConfigCustomAssistant`,b=[[`react`],[`react/jsx-runtime`,`react-dom`,`@emotion/react`],[`@emotion/styled`],[`@mui/material`],[`@mui/icons-material`],[`@iobroker/gui-components`],[`@iobroker/json-config`]],x,S;async function C(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var w=Symbol(`mf.originalSharedProvider`),T={emit:e=>e},E=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],D=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[w]:r});return n},O=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&(e==null?void 0:e.from)===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},k=(e,t,r,i)=>{var a;if(!e||!r)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=E(r),c=D(o,i),l={};for(let e of s)l[e||`default`]={[t]:c};let u=(a=n.getRegisteredShare(l,t,{...r,scope:s,strategy:i},T))==null?void 0:a.shared;return(u==null?void 0:u[w])||u},A=(e,t,n,r)=>{var i;let a=e=>j(e,n),o=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>{var t;return!a(e)&&(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));n!=null&&n.version&&((i=n.shareConfig)==null?void 0:i.import)!==!1&&(o[n.version]||(o[n.version]=n));let s=k(o,t,n,r);return a(s)?void 0:s},j=(e,t)=>e===t||!!(t!=null&&t.from&&(e==null?void 0:e.from)===t.from),M=(e,t,n,r,i,a,o,s,c)=>{var l,u;if(c!==`version-first`||!s)return;let d=t==null||(l=t.options)==null||(l=l.shared)==null?void 0:l[i],f=Array.isArray(d)?d.find(e=>(e==null?void 0:e.version)===a):void 0,p=((s==null?void 0:s.from)===(t==null||(u=t.options)==null?void 0:u.name)?s:void 0)||(j(f,s)?f:t?void 0:s);if(p)return e.some(e=>{var i,a;return e!==t&&(e==null||(i=e.options)==null?void 0:i.name)===(o==null?void 0:o.from)&&(e==null||(a=e.shareScopeMap)==null?void 0:a[r])===n})?p:void 0},ee=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?M(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||j(u,s)))return{provider:u,scopeRootProvider:l}};async function N(){return x||=C(()=>t(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js`),[],import.meta.url)).catch(e=>{throw x=void 0,e}),x}async function P(){return c}async function F(t={},n=[],r={}){var i,a;let o=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},s=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},c=Symbol.for(`module-federation.shared-cache-listeners`),l=Symbol.for(`module-federation.shared-cache-owners`),f=e=>{let t=e[l];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,l,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},m=(e,t)=>{var n;return(n=e[l])==null?void 0:n[t.canonical]},x=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},w=(e,t)=>{if(e===t)return!0;let n=x(e),r=x(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},T=(e,t,n,r)=>{var i;let a=s(e,t);if(a!==void 0&&w(a,n))return n;e[t.canonical]=n;let o=t.aliases||[];for(let t of o)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let u=e[l];r===void 0?u&&delete u[t.canonical]:f(e)[t.canonical]=r;let d=(i=e[c])==null?void 0:i[t.canonical];if(d)for(let e of d)e(n);return n},E=Symbol.for(`module-federation.tree-shaking-shared-cache`),D=e=>{let t=e[E];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,E,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},M=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=D(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},P=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),F=e=>{let t=e[P];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,P,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},I=(e,t,n)=>{var r;let i=s(e,t);return i===void 0?(r=e[P])==null||(r=r[t.canonical])==null?void 0:r[n]:i},L=(e,t,n,r)=>{let i=F(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},R=((i=globalThis.__FEDERATION__)==null?void 0:i.__INSTANCES__)||[],te=(a=n.find(e=>e==null?void 0:e.from))==null?void 0:a.from,ne=R.find(e=>{var n,r;return(e==null||(n=e.options)==null?void 0:n.name)===te&&(e==null||(r=e.shareScopeMap)==null?void 0:r.default)===t})||R.find(e=>{var n,r;return(e==null||(n=e.options)==null?void 0:n.name)!==y&&(e==null||(r=e.shareScopeMap)==null?void 0:r.default)===t}),re=Object.create(null),ie=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ae=(e,t)=>{var n;for(let[i,a]of Object.entries(((n=q.shareScopeMap)==null?void 0:n[e])||{}))for(let[e,n]of Object.entries(a||{})){var r;if(!n||n.get===((r=B[i])==null?void 0:r.get))continue;let a=t[i]||={};a[e]===void 0&&(a[e]=n)}},oe=(e,t)=>{ae(e,t);let n=!ne&&Object.values(t||{}).some(e=>Object.values(e||{}).some(V)),r=n?ie(t):t;return re[e]={host:t,runtime:r,isWebpackScope:n},r},se=()=>{let e=Object.values(re).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},z=Object.create(null);for(let[e,n]of Object.entries(t)){let t=z[e]=Object.create(null);for(let[e,r]of Object.entries(n))t[e]=Object.assign({},r)}let{usedShared:B,usedRemotes:ce}=await N();function V(e){if(typeof(e==null?void 0:e.get)!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let le=Object.values(z).some(e=>Object.values(e||{}).some(V)),ue=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},H=(e,n,r,i)=>{if(typeof A!=`function`)return;let a=ue(e),o=!i||a===e?[[e,n]]:[[e,n],[a,B[a]]];for(let[n,i]of o){if(!i)continue;let a=A(r?n===e?r:z[n]:z[n]??t[n],n,i,`version-first`);if(a)return a}},de=(e,t,n)=>{let r=H(e,t,n,!0);return r&&V(r)&&!r.lib&&!r.loaded?r:void 0};var U=g[v];if(U||=g[v]={from:y},n.indexOf(U)>=0)return;n.push(U);let fe=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},pe=[],me=globalThis.window===void 0?await Promise.all([]):[],W=`__mf_vite_runtime_share_load_id__`,he=0,G=new Map,K=new Map,q=e({name:y,remotes:ce,shared:B,plugins:[ge(),_e(),...pe,...me],shareStrategy:`version-first`});q.initShareScopeMap(`default`,oe(`default`,t));function ge(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=n===void 0?void 0:K.get(n);if(!r)return e;let i=e.resolver;return e.resolver=(...e)=>(r.pinned.reapply(),i(...e)),r.pinned.reveal(),e}}}function _e(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let ve=q.sharedHandler.hooks.lifecycle.resolveShare;if(!q.__mfKeepAdoptedProviders){var J,ye;q.__mfKeepAdoptedProviders=!0,(J=q.sharedHandler)==null||(J=J.hooks)==null||(J=J.lifecycle)==null||(J=J.afterRegisterShare)==null||(ye=J.on)==null||ye.call(J,e=>{var t,n,r;let{shared:i,previousShared:a,registeredShared:o}=e||{},s=(t=q.shareScopeMap)==null||(t=t[e.scope])==null?void 0:t[e.pkgName];if(i&&s){if(((n=i.shareConfig)==null?void 0:n.import)!==!1){var c;o!==i&&(o==null||(c=o.shareConfig)==null?void 0:c.import)===!1&&!o.loaded&&s[i.version]===o&&(s[i.version]=i)}else o===i&&a&&((r=a.shareConfig)==null?void 0:r.import)!==!1&&s[i.version]===i&&(s[i.version]=a)}})}let Y=new WeakMap;ve.on(e=>{var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=e.resolver;return typeof r==`function`&&(e.resolver=(...t)=>{var i;let a=r(...t);if((a==null||(i=a.shared)==null||(i=i.shareConfig)==null?void 0:i.import)===!1&&typeof k==`function`&&B[e.pkgName]){var o,s;let t=k((o=e.shareScopeMap)==null||(o=o[e.scope])==null?void 0:o[e.pkgName],e.pkgName,B[e.pkgName],`version-first`);t&&((s=t.shareConfig)==null?void 0:s.import)!==!1&&(a={shared:t,useTreesShaking:a.useTreesShaking})}let c=a==null?void 0:a.shared;return c&&(typeof c==`object`||typeof c==`function`)&&!Y.has(c)&&Y.set(c,{from:c.from}),n!==void 0&&c&&G.set(n,c),a}),e});let be=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??(n==null?void 0:n.scope)??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},xe=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),Se=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Ce=async(e,t,n)=>{let r=++he;K.set(r,{pinned:n});try{let n=await q.loadShare(e,{customShareInfo:{shareConfig:t,[W]:r}});return{factory:n===!1?void 0:n,selectedProvider:G.get(r)}}finally{G.delete(r),K.delete(r)}},we=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=be(n,r,i,a);if(!c)return;let l;try{l=await Ce(e,t,c)}catch(e){throw c.release(!1),e}let u=l==null?void 0:l.factory;if(u===void 0){c.release(!1);return}let d=xe(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=Y.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:(n==null?void 0:n[t])===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??Se(d,u);if(!c.release(!0,(h==null?void 0:h.provider)===c.provider)||!h)return;let g=Y.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&(n==null?void 0:n[h.version])!==h.provider))return{provider:h.provider,selection:h,resolved:v}},Te=new Set,Ee=new Map,De=async(e,n,r)=>{var i;let a=!!((i=n.shareConfig)!=null&&i.singleton);if(!a&&n.canLiveRebind!==!1)try{var c,l;let i=A(r,e,n,`version-first`),u=O(r,i);if(!u||((c=n.shareConfig)==null?void 0:c.import)===!1&&j(i,n)||(i==null||(l=i.shareConfig)==null?void 0:l.import)===!1)return;let{version:d}=u;if(!a&&d!==n.version||!i.lib&&!i.loading&&!(i.loaded&&typeof i.get==`function`))return;let f=o(e,a,n.version,n.scope);if(s(h.share,f)!==void 0)return;let p=t[e],m=p==null?void 0:p[d];if(u.registered&&!j(m,i))return;let g,_=i.lib;if(!_&&V(i)||(!_&&i.loading&&(_=await i.loading),!_&&i.loaded&&typeof i.get==`function`&&(_=await i.get()),!_))return;let v=typeof _==`function`?_():_,y=await Promise.resolve(v),b=u.registered?m:i;g={provider:b,selection:{provider:b,version:d,from:i.from,registered:u.registered},resolved:y};let x=g==null?void 0:g.provider,S=g==null?void 0:g.selection;if(!S)return;let C=g==null?void 0:g.resolved;if(C===void 0||s(h.share,f)!==void 0||S.registered&&(p==null?void 0:p[S.version])!==x)return;T(h.share,f,fe(C),S.from),Te.add(x)}catch(t){console.error(`[Module Federation] Failed to bridge materialized shared module "`+e+`"`,t)}},Oe=async(e,n,r,i,a)=>{try{var c,l,u,d;let f=o(e,(c=n.shareConfig)==null?void 0:c.singleton,n.version,n.scope),p=s(h.share,f),g=m(h.share,f),_=A(r,e,n,`version-first`),v=_||k(r,e,n,`version-first`)||n,b=O(r,v);if(!b)return;let x=j(v,n),{version:S}=b;if(!((l=n.shareConfig)!=null&&l.singleton)&&S!==n.version)return;let C=i==null?void 0:i[S],w=ee(R,ne,t,`default`,e,b,_,C,`version-first`);if(!w&&!x)return;let{provider:E,scopeRootProvider:D}=w||{provider:v,scopeRootProvider:void 0};if(n.canLiveRebind===!1||((u=n.shareConfig)==null?void 0:u.import)===!1&&j(E,n)||(E==null||(d=E.shareConfig)==null?void 0:d.import)===!1||p!==void 0&&g!==y)return;let M=t[e],N=M==null?void 0:M[S];if(b.registered&&!D&&!j(N,E))return;let P=await we(e,n.shareConfig,M,S,N,E,b.registered&&!x),F=P==null?void 0:P.provider,I=P==null?void 0:P.selection;if(!I||j(F,n)||a&&(a.version!==I.version||!j({from:I.from},a.provider))||Te.has(F))return;let L=P==null?void 0:P.resolved;if(L===void 0)return;let te=s(h.share,f),re=m(h.share,f);if(te!==void 0&&re!==y||I.registered&&(M==null?void 0:M[I.version])!==F)return;a||Ee.set(e,{version:I.version,provider:{from:I.from}}),Te.add(F);let ie=fe(L);T(h.share,f,ie,I.from)}catch(t){console.error(`[Module Federation] Failed to bridge external shared module "`+e+`"`,t)}};for(let e of b)await Promise.all(e.map(async e=>{let t=B[e];t&&t.materialize!==!1&&!t.treeShaking&&await De(e,t,z[e])}));for(let[e,t]of Object.entries(B)){var ke;if(t.treeShaking)continue;let n=o(e,(ke=t.shareConfig)==null?void 0:ke.singleton,t.version,t.scope);if(s(h.share,n)!==void 0)continue;let r=o(e,!0,t.version,t.scope),i=s(h.share,r);i!==void 0&&T(h.share,n,i,m(h.share,r))}let Ae=[`react`,`react/jsx-runtime`,`react-dom`,`@emotion/react`,`@emotion/styled`,`@mui/material`,`@mui/icons-material`,`@iobroker/gui-components`,`@iobroker/json-config`],je=[[`react`],[`react/jsx-runtime`,`react-dom`,`@emotion/react`],[`@emotion/styled`],[`@mui/material`],[`@mui/icons-material`],[`@iobroker/gui-components`],[`@iobroker/json-config`]],X=new Map(Ae.map((e,t)=>[e,t])),Me={1:[0],2:[0],3:[0],4:[3,0],5:[3,4,0,2],6:[5,0],7:[0,2,6,5],8:[3,4,7,6,5,0,2]},Z=Ae.filter(e=>{var t;return B[e]&&(B[e].materialize!==!1||((t=B[e].shareConfig)==null?void 0:t.import)===!1&&!B[e].lazy)});h.providerInit||=new Map;let Ne=(e,t)=>{let n=h.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return h.providerInit.set(e,r),r.catch(()=>h.providerInit.delete(e)),r};var Pe=async e=>{let t=new Set(e);for(let e of je)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{var t,n,r;let i=B[e],a=o(e,(t=i.shareConfig)==null?void 0:t.singleton,i.version,i.scope);if(((n=i.shareConfig)==null?void 0:n.import)===!1||i.treeShaking||s(h.share,a)!==void 0)return;let c=o(e,!0,i.version,i.scope),l=s(h.share,c);if(l!==void 0){T(h.share,a,l,m(h.share,c));return}let u=typeof H==`function`?H(e,i):void 0;if(u){var d,f,p;let t=u.lib;if(!t&&u.loading&&(t=await u.loading),!t&&u.loaded&&typeof u.get==`function`&&(t=await u.get()),t){let e=typeof t==`function`?t():t,n=await Promise.resolve(e);T(h.share,a,(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(n),u.from);return}if(!((d=i.shareConfig)!=null&&d.singleton)&&typeof u.version==`string`){let t=s(h.share,o(e,!1,u.version,i.scope));if(t!==void 0){T(h.share,a,t,u.from);return}}if(typeof V==`function`&&V(u)&&((f=i.shareConfig)!=null&&f.singleton||((p=O(z[e],u))==null?void 0:p.version)===i.version))return}let g=a.canonical,_=await Ne(g,async()=>{let e=await i.get(),t=typeof e==`function`?e():e;return Promise.resolve(t)});for(let t of((r=q.options.shared)==null?void 0:r[e])||[])t.get===i.get&&(t.eager=!0);let v=(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(_),b=v===_?{..._}:v;b.__esModule!==!0&&Object.defineProperty(b,"__esModule",{value:!0,enumerable:!1}),T(h.share,a,b,y)}))};let Q=e=>{var t,n;let r=B[e];if(!r.treeShaking&&((t=r.shareConfig)==null?void 0:t.import)!==!1)return!1;let i=o(e,(n=r.shareConfig)==null?void 0:n.singleton,r.version,r.scope);return r.treeShaking?I(h.share,i,y)===void 0&&s(h.share,i)===void 0:s(h.share,i)===void 0},Fe=e=>{var t,n;let r=B[e],i=o(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);return(r.treeShaking?I(h.share,i,y)??s(h.share,i):s(h.share,i))===void 0?r.treeShaking||((n=r.shareConfig)==null?void 0:n.import)===!1?!0:typeof A==`function`&&!!A(z[e],e,r,`version-first`):!1},Ie=e=>{let t=!0;for(;t;){t=!1;for(let n of Z){let r=X.get(n);e.has(r)||(Me[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Le=Ie(new Set(Z.filter(Fe).map(e=>X.get(e)))),Re=Z.filter(e=>!Le.has(X.get(e)));var ze=Z.filter(e=>Le.has(X.get(e)));await Pe(Re).catch(p);try{await C(async()=>{await Promise.all(await q.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}se();let Be=async()=>{for(let e of b)await Promise.all(e.map(async e=>{let n=B[e];n&&n.materialize!==!1&&!n.treeShaking&&await Oe(e,n,t[e],z[e],void 0)}))};le?S=Be:await Be();try{var Ve;let e=(Ve=globalThis.__FEDERATION__)==null?void 0:Ve.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of _){let r=n==null?void 0:n[e];if(r)for(let[e,n]of Object.entries(r)){let r=B==null?void 0:B[e],i=z[e],a=Ee.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!j(t,a.provider))continue;let n=i[e];(t===n||n!=null&&n.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of b)await Promise.all(e.map(async e=>{let n=t[e];n&&await Oe(e,B[e],n,z[e],Ee.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let He=async()=>{},Ue=async(e,n)=>{var r,i;let a=o(e,(r=n.shareConfig)==null?void 0:r.singleton,n.version,n.scope),c=n.treeShaking?I(h.share,a,y):s(h.share,a);if(((i=n.shareConfig)==null?void 0:i.import)!==!1||c!==void 0||de(e,n,z[e]))return;let l=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},u=t==null?void 0:t[e],d=k(u,e,n,`version-first`)||n,f=O(u,d);if(!f)return;let p=e=>{var t;return e===n||(e==null||(t=e.shareConfig)==null?void 0:t.import)===!1};if(p(d))return;let{version:m}=f,g=u==null?void 0:u[m],_=await we(e,n.shareConfig,u,m,g,d,f.registered),v=_==null?void 0:_.selection,b=_==null?void 0:_.provider,x=_==null?void 0:_.resolved;if(!v||p(b)||x===void 0||(n.treeShaking?I(h.share,a,y):s(h.share,a))!==void 0||v.registered&&(u==null?void 0:u[v.version])!==b)return;let S=l(x);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];M(h.share,a,e,S),L(h.share,a,y,S)}else T(h.share,a,S,v.from)},We=[],Ge=new Set;for(let e of ze){let t=B[e],n=X.get(e);if(Q(e))try{var Ke;t.treeShaking?await He(e,t):((Ke=t.shareConfig)==null?void 0:Ke.import)===!1&&await Ue(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}Q(e)&&Ge.add(n)}Ie(Ge),We.push(...ze.filter(e=>!Ge.has(X.get(e)))),await Pe(We).catch(p);let $=new Map;return u.loadLazyShares=async e=>{let n=new Set(e);for(let e of b)await Promise.all(e.filter(e=>n.has(e)).map(e=>{let n=B[e];if(!n||!n.lazy||!Q(e))return;let r=$.get(e);return r||(r=Oe(e,n,t[e],z[e],void 0).then(()=>Q(e)?Ue(e,n):void 0),r.catch(()=>$.delete(e)),$.set(e,r)),r}))},d(q),q}async function I(e){let t=await P();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return S&&await S(),h.pendingShareLoads&&await Promise.all(h.pendingShareLoads),t[e]().then(e=>()=>e)}export{I as get,F as init};
|
|
1
|
+
import{t as e}from"./assets/dist-B3E7IYuQ.js";import{t}from"./assets/vite-preload-helper-BbbETgeG.js";import{t as n}from"./assets/helpers-DE61bb74.js";var r={},i=new Set,a=new Map;function o(e,t){let n=a.get(e);return n||(n=Promise.resolve().then(t).catch(t=>{throw a.delete(e),t}),a.set(e,n)),n}async function s(e){if(typeof document>`u`)return;let t=r[e]||[];await Promise.all(t.map(e=>{let t=new URL(e,import.meta.url).href;return i.has(t)||(i.add(t),document.querySelector(`link[rel="stylesheet"][href="${t}"]`))?Promise.resolve():new Promise((e,n)=>{let r=document.createElement(`link`);r.rel=`stylesheet`,r.href=t,r.onload=()=>e(),r.onerror=()=>{i.delete(t),r.remove(),n(Error(`[Module Federation] Failed to load CSS asset: ${t}`))},document.head.appendChild(r)})}))}var c={"./Components":async()=>{await s(`./Components`),await Promise.all([]);let e=await o(`./Components`,()=>t(()=>import(`./assets/Components-srYDLjt6.js`),[],import.meta.url)),n=e&&e.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,e),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r}};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var l=`__mf_init__virtual:mf:__mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__mf_v__runtimeInit__mf_v__.js__`,u=globalThis[l];if(!u){let e,t,n=new Promise((n,r)=>{e=n,t=r});u=globalThis[l]={initPromise:n,initResolve:e,initReject:t}}var d=u.initResolve,{initReject:f}=u,p=e=>{throw f(e),e},m=`__mf_module_cache__`;globalThis[m]||={share:{},remote:{}},globalThis[m].share||={},globalThis[m].remote||={};var h=globalThis[m];for(let e of Object.keys(h.share))if(e.startsWith(`default:`)){let t=e.slice(8);h.share[t]===void 0&&(h.share[t]=h.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;h.share[t]===void 0&&(h.share[t]=h.share[e])}var g={},_=Array.isArray(`default`)?`default`:[`default`],v=`default`,y=`ConfigCustomAssistant`,b=[[`react`],[`react/jsx-runtime`,`react-dom`,`@emotion/react`],[`@emotion/styled`],[`@mui/material`],[`@mui/icons-material`],[`@iobroker/gui-components`],[`@iobroker/json-config`]],x,S;async function C(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var w=Symbol(`mf.originalSharedProvider`),T={emit:e=>e},E=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],D=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[w]:r});return n},O=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&(e==null?void 0:e.from)===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},k=(e,t,r,i)=>{var a;if(!e||!r)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=E(r),c=D(o,i),l={};for(let e of s)l[e||`default`]={[t]:c};let u=(a=n.getRegisteredShare(l,t,{...r,scope:s,strategy:i},T))==null?void 0:a.shared;return(u==null?void 0:u[w])||u},A=(e,t,n,r)=>{var i;let a=e=>j(e,n),o=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>{var t;return!a(e)&&(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));n!=null&&n.version&&((i=n.shareConfig)==null?void 0:i.import)!==!1&&(o[n.version]||(o[n.version]=n));let s=k(o,t,n,r);return a(s)?void 0:s},j=(e,t)=>e===t||!!(t!=null&&t.from&&(e==null?void 0:e.from)===t.from),M=(e,t,n,r,i,a,o,s,c)=>{var l,u;if(c!==`version-first`||!s)return;let d=t==null||(l=t.options)==null||(l=l.shared)==null?void 0:l[i],f=Array.isArray(d)?d.find(e=>(e==null?void 0:e.version)===a):void 0,p=((s==null?void 0:s.from)===(t==null||(u=t.options)==null?void 0:u.name)?s:void 0)||(j(f,s)?f:t?void 0:s);if(p)return e.some(e=>{var i,a;return e!==t&&(e==null||(i=e.options)==null?void 0:i.name)===(o==null?void 0:o.from)&&(e==null||(a=e.shareScopeMap)==null?void 0:a[r])===n})?p:void 0},ee=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?M(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||j(u,s)))return{provider:u,scopeRootProvider:l}};async function N(){return x||=C(()=>t(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js`),[],import.meta.url)).catch(e=>{throw x=void 0,e}),x}async function P(){return c}async function F(t={},n=[],r={}){var i,a;let o=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},s=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},c=Symbol.for(`module-federation.shared-cache-listeners`),l=Symbol.for(`module-federation.shared-cache-owners`),f=e=>{let t=e[l];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,l,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},m=(e,t)=>{var n;return(n=e[l])==null?void 0:n[t.canonical]},x=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},w=(e,t)=>{if(e===t)return!0;let n=x(e),r=x(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},T=(e,t,n,r)=>{var i;let a=s(e,t);if(a!==void 0&&w(a,n))return n;e[t.canonical]=n;let o=t.aliases||[];for(let t of o)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let u=e[l];r===void 0?u&&delete u[t.canonical]:f(e)[t.canonical]=r;let d=(i=e[c])==null?void 0:i[t.canonical];if(d)for(let e of d)e(n);return n},E=Symbol.for(`module-federation.tree-shaking-shared-cache`),D=e=>{let t=e[E];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,E,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},M=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=D(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},P=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),F=e=>{let t=e[P];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,P,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},I=(e,t,n)=>{var r;let i=s(e,t);return i===void 0?(r=e[P])==null||(r=r[t.canonical])==null?void 0:r[n]:i},L=(e,t,n,r)=>{let i=F(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},R=((i=globalThis.__FEDERATION__)==null?void 0:i.__INSTANCES__)||[],te=(a=n.find(e=>e==null?void 0:e.from))==null?void 0:a.from,ne=R.find(e=>{var n,r;return(e==null||(n=e.options)==null?void 0:n.name)===te&&(e==null||(r=e.shareScopeMap)==null?void 0:r.default)===t})||R.find(e=>{var n,r;return(e==null||(n=e.options)==null?void 0:n.name)!==y&&(e==null||(r=e.shareScopeMap)==null?void 0:r.default)===t}),re=Object.create(null),ie=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ae=(e,t)=>{var n;for(let[i,a]of Object.entries(((n=q.shareScopeMap)==null?void 0:n[e])||{}))for(let[e,n]of Object.entries(a||{})){var r;if(!n||n.get===((r=B[i])==null?void 0:r.get))continue;let a=t[i]||={};a[e]===void 0&&(a[e]=n)}},oe=(e,t)=>{ae(e,t);let n=!ne&&Object.values(t||{}).some(e=>Object.values(e||{}).some(V)),r=n?ie(t):t;return re[e]={host:t,runtime:r,isWebpackScope:n},r},se=()=>{let e=Object.values(re).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},z=Object.create(null);for(let[e,n]of Object.entries(t)){let t=z[e]=Object.create(null);for(let[e,r]of Object.entries(n))t[e]=Object.assign({},r)}let{usedShared:B,usedRemotes:ce}=await N();function V(e){if(typeof(e==null?void 0:e.get)!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let le=Object.values(z).some(e=>Object.values(e||{}).some(V)),ue=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},H=(e,n,r,i)=>{if(typeof A!=`function`)return;let a=ue(e),o=!i||a===e?[[e,n]]:[[e,n],[a,B[a]]];for(let[n,i]of o){if(!i)continue;let a=A(r?n===e?r:z[n]:z[n]??t[n],n,i,`version-first`);if(a)return a}},de=(e,t,n)=>{let r=H(e,t,n,!0);return r&&V(r)&&!r.lib&&!r.loaded?r:void 0};var U=g[v];if(U||=g[v]={from:y},n.indexOf(U)>=0)return;n.push(U);let fe=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},pe=[],me=globalThis.window===void 0?await Promise.all([]):[],W=`__mf_vite_runtime_share_load_id__`,he=0,G=new Map,K=new Map,q=e({name:y,remotes:ce,shared:B,plugins:[ge(),_e(),...pe,...me],shareStrategy:`version-first`});q.initShareScopeMap(`default`,oe(`default`,t));function ge(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=n===void 0?void 0:K.get(n);if(!r)return e;let i=e.resolver;return e.resolver=(...e)=>(r.pinned.reapply(),i(...e)),r.pinned.reveal(),e}}}function _e(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let ve=q.sharedHandler.hooks.lifecycle.resolveShare;if(!q.__mfKeepAdoptedProviders){var J,ye;q.__mfKeepAdoptedProviders=!0,(J=q.sharedHandler)==null||(J=J.hooks)==null||(J=J.lifecycle)==null||(J=J.afterRegisterShare)==null||(ye=J.on)==null||ye.call(J,e=>{var t,n,r;let{shared:i,previousShared:a,registeredShared:o}=e||{},s=(t=q.shareScopeMap)==null||(t=t[e.scope])==null?void 0:t[e.pkgName];if(i&&s){if(((n=i.shareConfig)==null?void 0:n.import)!==!1){var c;o!==i&&(o==null||(c=o.shareConfig)==null?void 0:c.import)===!1&&!o.loaded&&s[i.version]===o&&(s[i.version]=i)}else o===i&&a&&((r=a.shareConfig)==null?void 0:r.import)!==!1&&s[i.version]===i&&(s[i.version]=a)}})}let Y=new WeakMap;ve.on(e=>{var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=e.resolver;return typeof r==`function`&&(e.resolver=(...t)=>{var i;let a=r(...t);if((a==null||(i=a.shared)==null||(i=i.shareConfig)==null?void 0:i.import)===!1&&typeof k==`function`&&B[e.pkgName]){var o,s;let t=k((o=e.shareScopeMap)==null||(o=o[e.scope])==null?void 0:o[e.pkgName],e.pkgName,B[e.pkgName],`version-first`);t&&((s=t.shareConfig)==null?void 0:s.import)!==!1&&(a={shared:t,useTreesShaking:a.useTreesShaking})}let c=a==null?void 0:a.shared;return c&&(typeof c==`object`||typeof c==`function`)&&!Y.has(c)&&Y.set(c,{from:c.from}),n!==void 0&&c&&G.set(n,c),a}),e});let be=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??(n==null?void 0:n.scope)??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},xe=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),Se=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Ce=async(e,t,n)=>{let r=++he;K.set(r,{pinned:n});try{let n=await q.loadShare(e,{customShareInfo:{shareConfig:t,[W]:r}});return{factory:n===!1?void 0:n,selectedProvider:G.get(r)}}finally{G.delete(r),K.delete(r)}},we=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=be(n,r,i,a);if(!c)return;let l;try{l=await Ce(e,t,c)}catch(e){throw c.release(!1),e}let u=l==null?void 0:l.factory;if(u===void 0){c.release(!1);return}let d=xe(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=Y.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:(n==null?void 0:n[t])===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??Se(d,u);if(!c.release(!0,(h==null?void 0:h.provider)===c.provider)||!h)return;let g=Y.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&(n==null?void 0:n[h.version])!==h.provider))return{provider:h.provider,selection:h,resolved:v}},Te=new Set,Ee=new Map,De=async(e,n,r)=>{var i;let a=!!((i=n.shareConfig)!=null&&i.singleton);if(!a&&n.canLiveRebind!==!1)try{var c,l;let i=A(r,e,n,`version-first`),u=O(r,i);if(!u||((c=n.shareConfig)==null?void 0:c.import)===!1&&j(i,n)||(i==null||(l=i.shareConfig)==null?void 0:l.import)===!1)return;let{version:d}=u;if(!a&&d!==n.version||!i.lib&&!i.loading&&!(i.loaded&&typeof i.get==`function`))return;let f=o(e,a,n.version,n.scope);if(s(h.share,f)!==void 0)return;let p=t[e],m=p==null?void 0:p[d];if(u.registered&&!j(m,i))return;let g,_=i.lib;if(!_&&V(i)||(!_&&i.loading&&(_=await i.loading),!_&&i.loaded&&typeof i.get==`function`&&(_=await i.get()),!_))return;let v=typeof _==`function`?_():_,y=await Promise.resolve(v),b=u.registered?m:i;g={provider:b,selection:{provider:b,version:d,from:i.from,registered:u.registered},resolved:y};let x=g==null?void 0:g.provider,S=g==null?void 0:g.selection;if(!S)return;let C=g==null?void 0:g.resolved;if(C===void 0||s(h.share,f)!==void 0||S.registered&&(p==null?void 0:p[S.version])!==x)return;T(h.share,f,fe(C),S.from),Te.add(x)}catch(t){console.error(`[Module Federation] Failed to bridge materialized shared module "`+e+`"`,t)}},Oe=async(e,n,r,i,a)=>{try{var c,l,u,d;let f=o(e,(c=n.shareConfig)==null?void 0:c.singleton,n.version,n.scope),p=s(h.share,f),g=m(h.share,f),_=A(r,e,n,`version-first`),v=_||k(r,e,n,`version-first`)||n,b=O(r,v);if(!b)return;let x=j(v,n),{version:S}=b;if(!((l=n.shareConfig)!=null&&l.singleton)&&S!==n.version)return;let C=i==null?void 0:i[S],w=ee(R,ne,t,`default`,e,b,_,C,`version-first`);if(!w&&!x)return;let{provider:E,scopeRootProvider:D}=w||{provider:v,scopeRootProvider:void 0};if(n.canLiveRebind===!1||((u=n.shareConfig)==null?void 0:u.import)===!1&&j(E,n)||(E==null||(d=E.shareConfig)==null?void 0:d.import)===!1||p!==void 0&&g!==y)return;let M=t[e],N=M==null?void 0:M[S];if(b.registered&&!D&&!j(N,E))return;let P=await we(e,n.shareConfig,M,S,N,E,b.registered&&!x),F=P==null?void 0:P.provider,I=P==null?void 0:P.selection;if(!I||j(F,n)||a&&(a.version!==I.version||!j({from:I.from},a.provider))||Te.has(F))return;let L=P==null?void 0:P.resolved;if(L===void 0)return;let te=s(h.share,f),re=m(h.share,f);if(te!==void 0&&re!==y||I.registered&&(M==null?void 0:M[I.version])!==F)return;a||Ee.set(e,{version:I.version,provider:{from:I.from}}),Te.add(F);let ie=fe(L);T(h.share,f,ie,I.from)}catch(t){console.error(`[Module Federation] Failed to bridge external shared module "`+e+`"`,t)}};for(let e of b)await Promise.all(e.map(async e=>{let t=B[e];t&&t.materialize!==!1&&!t.treeShaking&&await De(e,t,z[e])}));for(let[e,t]of Object.entries(B)){var ke;if(t.treeShaking)continue;let n=o(e,(ke=t.shareConfig)==null?void 0:ke.singleton,t.version,t.scope);if(s(h.share,n)!==void 0)continue;let r=o(e,!0,t.version,t.scope),i=s(h.share,r);i!==void 0&&T(h.share,n,i,m(h.share,r))}let Ae=[`react`,`react/jsx-runtime`,`react-dom`,`@emotion/react`,`@emotion/styled`,`@mui/material`,`@mui/icons-material`,`@iobroker/gui-components`,`@iobroker/json-config`],je=[[`react`],[`react/jsx-runtime`,`react-dom`,`@emotion/react`],[`@emotion/styled`],[`@mui/material`],[`@mui/icons-material`],[`@iobroker/gui-components`],[`@iobroker/json-config`]],X=new Map(Ae.map((e,t)=>[e,t])),Me={1:[0],2:[0],3:[0],4:[3,0],5:[3,4,0,2],6:[5,0],7:[0,2,6,5],8:[3,4,7,6,5,0,2]},Z=Ae.filter(e=>{var t;return B[e]&&(B[e].materialize!==!1||((t=B[e].shareConfig)==null?void 0:t.import)===!1&&!B[e].lazy)});h.providerInit||=new Map;let Ne=(e,t)=>{let n=h.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return h.providerInit.set(e,r),r.catch(()=>h.providerInit.delete(e)),r};var Pe=async e=>{let t=new Set(e);for(let e of je)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{var t,n,r;let i=B[e],a=o(e,(t=i.shareConfig)==null?void 0:t.singleton,i.version,i.scope);if(((n=i.shareConfig)==null?void 0:n.import)===!1||i.treeShaking||s(h.share,a)!==void 0)return;let c=o(e,!0,i.version,i.scope),l=s(h.share,c);if(l!==void 0){T(h.share,a,l,m(h.share,c));return}let u=typeof H==`function`?H(e,i):void 0;if(u){var d,f,p;let t=u.lib;if(!t&&u.loading&&(t=await u.loading),!t&&u.loaded&&typeof u.get==`function`&&(t=await u.get()),t){let e=typeof t==`function`?t():t,n=await Promise.resolve(e);T(h.share,a,(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(n),u.from);return}if(!((d=i.shareConfig)!=null&&d.singleton)&&typeof u.version==`string`){let t=s(h.share,o(e,!1,u.version,i.scope));if(t!==void 0){T(h.share,a,t,u.from);return}}if(typeof V==`function`&&V(u)&&((f=i.shareConfig)!=null&&f.singleton||((p=O(z[e],u))==null?void 0:p.version)===i.version))return}let g=a.canonical,_=await Ne(g,async()=>{let e=await i.get(),t=typeof e==`function`?e():e;return Promise.resolve(t)});for(let t of((r=q.options.shared)==null?void 0:r[e])||[])t.get===i.get&&(t.eager=!0);let v=(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(_),b=v===_?{..._}:v;b.__esModule!==!0&&Object.defineProperty(b,"__esModule",{value:!0,enumerable:!1}),T(h.share,a,b,y)}))};let Q=e=>{var t,n;let r=B[e];if(!r.treeShaking&&((t=r.shareConfig)==null?void 0:t.import)!==!1)return!1;let i=o(e,(n=r.shareConfig)==null?void 0:n.singleton,r.version,r.scope);return r.treeShaking?I(h.share,i,y)===void 0&&s(h.share,i)===void 0:s(h.share,i)===void 0},Fe=e=>{var t,n;let r=B[e],i=o(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);return(r.treeShaking?I(h.share,i,y)??s(h.share,i):s(h.share,i))===void 0?r.treeShaking||((n=r.shareConfig)==null?void 0:n.import)===!1?!0:typeof A==`function`&&!!A(z[e],e,r,`version-first`):!1},Ie=e=>{let t=!0;for(;t;){t=!1;for(let n of Z){let r=X.get(n);e.has(r)||(Me[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Le=Ie(new Set(Z.filter(Fe).map(e=>X.get(e)))),Re=Z.filter(e=>!Le.has(X.get(e)));var ze=Z.filter(e=>Le.has(X.get(e)));await Pe(Re).catch(p);try{await C(async()=>{await Promise.all(await q.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}se();let Be=async()=>{for(let e of b)await Promise.all(e.map(async e=>{let n=B[e];n&&n.materialize!==!1&&!n.treeShaking&&await Oe(e,n,t[e],z[e],void 0)}))};le?S=Be:await Be();try{var Ve;let e=(Ve=globalThis.__FEDERATION__)==null?void 0:Ve.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of _){let r=n==null?void 0:n[e];if(r)for(let[e,n]of Object.entries(r)){let r=B==null?void 0:B[e],i=z[e],a=Ee.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!j(t,a.provider))continue;let n=i[e];(t===n||n!=null&&n.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of b)await Promise.all(e.map(async e=>{let n=t[e];n&&await Oe(e,B[e],n,z[e],Ee.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let He=async()=>{},Ue=async(e,n)=>{var r,i;let a=o(e,(r=n.shareConfig)==null?void 0:r.singleton,n.version,n.scope),c=n.treeShaking?I(h.share,a,y):s(h.share,a);if(((i=n.shareConfig)==null?void 0:i.import)!==!1||c!==void 0||de(e,n,z[e]))return;let l=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},u=t==null?void 0:t[e],d=k(u,e,n,`version-first`)||n,f=O(u,d);if(!f)return;let p=e=>{var t;return e===n||(e==null||(t=e.shareConfig)==null?void 0:t.import)===!1};if(p(d))return;let{version:m}=f,g=u==null?void 0:u[m],_=await we(e,n.shareConfig,u,m,g,d,f.registered),v=_==null?void 0:_.selection,b=_==null?void 0:_.provider,x=_==null?void 0:_.resolved;if(!v||p(b)||x===void 0||(n.treeShaking?I(h.share,a,y):s(h.share,a))!==void 0||v.registered&&(u==null?void 0:u[v.version])!==b)return;let S=l(x);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];M(h.share,a,e,S),L(h.share,a,y,S)}else T(h.share,a,S,v.from)},We=[],Ge=new Set;for(let e of ze){let t=B[e],n=X.get(e);if(Q(e))try{var Ke;t.treeShaking?await He(e,t):((Ke=t.shareConfig)==null?void 0:Ke.import)===!1&&await Ue(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}Q(e)&&Ge.add(n)}Ie(Ge),We.push(...ze.filter(e=>!Ge.has(X.get(e)))),await Pe(We).catch(p);let $=new Map;return u.loadLazyShares=async e=>{let n=new Set(e);for(let e of b)await Promise.all(e.filter(e=>n.has(e)).map(e=>{let n=B[e];if(!n||!n.lazy||!Q(e))return;let r=$.get(e);return r||(r=Oe(e,n,t[e],z[e],void 0).then(()=>Q(e)?Ue(e,n):void 0),r.catch(()=>$.delete(e)),$.set(e,r)),r}))},d(q),q}async function I(e){let t=await P();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return S&&await S(),h.pendingShareLoads&&await Promise.all(h.pendingShareLoads),t[e]().then(e=>()=>e)}export{I as get,F as init};
|
|
2
2
|
if (typeof document !== 'undefined' && document.head) {
|
|
3
3
|
try {
|
|
4
4
|
for (const __mfWarmupPath of ["assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/utils-Bi7ATSfV.js"]) {
|
package/admin/custom/index.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
document.head.appendChild(script);
|
|
26
26
|
</script>
|
|
27
27
|
<script type="module" crossorigin src="./assets/mf-entry-bootstrap-0-0119ee25.js"></script>
|
|
28
|
-
<link rel="modulepreload" crossorigin href="./assets/Components-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="./assets/Components-srYDLjt6.js"><link rel="modulepreload" crossorigin href="./assets/hostInit-DpzPHTOk.js"><link rel="modulepreload" crossorigin href="./assets/index-P2Xu9kJm.js"><link rel="modulepreload" crossorigin href="./customComponents.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js"><link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-COiEfhsA.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"><link rel="modulepreload" crossorigin href="./assets/vite-preload-helper-BbbETgeG.js"><link rel="modulepreload" crossorigin href="./assets/helpers-DE61bb74.js"><link rel="modulepreload" crossorigin href="./assets/dist-B3E7IYuQ.js"><link rel="modulepreload" crossorigin href="./assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"><link rel="modulepreload" crossorigin href="./assets/utils-Bi7ATSfV.js"></head>
|
|
29
29
|
<body>
|
|
30
30
|
<div id="root"></div>
|
|
31
31
|
</body>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"ConfigCustomAssistant","name":"ConfigCustomAssistant","metaData":{"name":"ConfigCustomAssistant","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ConfigCustomAssistant"},"remoteEntry":{"name":"customComponents.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ConfigCustomAssistant","pluginVersion":"1.23.7","publicPath":"auto"},"shared":[{"id":"ConfigCustomAssistant:@emotion/react","name":"@emotion/react","version":"11.14.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@emotion/styled","name":"@emotion/styled","version":"11.14.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/gui-components","name":"@iobroker/gui-components","version":"10.3.14","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/json-config","name":"@iobroker/json-config","version":"10.1.11","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/lib-70DV4zKj.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/icons-material","name":"@mui/icons-material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/material","name":"@mui/material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react","name":"react","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react-dom","name":"react-dom","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react/jsx-runtime","name":"react/jsx-runtime","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ConfigCustomAssistant:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"],"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/Components-
|
|
1
|
+
{"id":"ConfigCustomAssistant","name":"ConfigCustomAssistant","metaData":{"name":"ConfigCustomAssistant","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ConfigCustomAssistant"},"remoteEntry":{"name":"customComponents.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ConfigCustomAssistant","pluginVersion":"1.23.7","publicPath":"auto"},"shared":[{"id":"ConfigCustomAssistant:@emotion/react","name":"@emotion/react","version":"11.14.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@emotion/styled","name":"@emotion/styled","version":"11.14.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/gui-components","name":"@iobroker/gui-components","version":"10.3.14","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/json-config","name":"@iobroker/json-config","version":"10.1.11","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/lib-70DV4zKj.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/icons-material","name":"@mui/icons-material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/material","name":"@mui/material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react","name":"react","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react-dom","name":"react-dom","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react/jsx-runtime","name":"react/jsx-runtime","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ConfigCustomAssistant:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"],"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/Components-srYDLjt6.js","assets/rolldown-runtime-COiEfhsA.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"ConfigCustomAssistant","name":"ConfigCustomAssistant","metaData":{"name":"ConfigCustomAssistant","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ConfigCustomAssistant"},"remoteEntry":{"name":"customComponents.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ConfigCustomAssistant","pluginVersion":"1.23.7","publicPath":"auto"},"shared":[{"id":"ConfigCustomAssistant:@emotion/react","name":"@emotion/react","version":"11.14.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@emotion/styled","name":"@emotion/styled","version":"11.14.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/gui-components","name":"@iobroker/gui-components","version":"10.3.14","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/json-config","name":"@iobroker/json-config","version":"10.1.11","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/lib-70DV4zKj.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/icons-material","name":"@mui/icons-material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/material","name":"@mui/material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react","name":"react","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react-dom","name":"react-dom","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react/jsx-runtime","name":"react/jsx-runtime","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ConfigCustomAssistant:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"],"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/Components-BR57MZLJ.js","assets/rolldown-runtime-COiEfhsA.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"assets/Components-BR57MZLJ.js","type":"chunk","isEntry":true,"size":191873},{"fileName":"assets/hostInit-DpzPHTOk.js","type":"chunk","isEntry":false,"size":6192},{"fileName":"assets/index-P2Xu9kJm.js","type":"chunk","isEntry":true,"size":670},{"fileName":"assets/pendingShares-CKvyybtG.js","type":"chunk","isEntry":false,"size":3329},{"fileName":"customComponents.js","type":"chunk","isEntry":false,"size":23723},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","type":"chunk","isEntry":false,"size":8749},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js","type":"chunk","isEntry":false,"size":38784},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js","type":"chunk","isEntry":false,"size":9707},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js","type":"chunk","isEntry":false,"size":7146915},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js","type":"chunk","isEntry":false,"size":2374},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js","type":"chunk","isEntry":false,"size":735101},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","type":"chunk","isEntry":false,"size":541},{"fileName":"assets/dist-B3E7IYuQ.js","type":"chunk","isEntry":false,"size":457},{"fileName":"assets/helpers-DE61bb74.js","type":"chunk","isEntry":false,"size":88},{"fileName":"assets/iconLibraryData-B5fiyl1C.js","type":"chunk","isEntry":false,"size":250966},{"fileName":"assets/lib-70DV4zKj.js","type":"chunk","isEntry":false,"size":23451},{"fileName":"assets/prod-ChPGnyiA.js","type":"chunk","isEntry":false,"size":92192},{"fileName":"assets/rolldown-runtime-COiEfhsA.js","type":"chunk","isEntry":false,"size":1116},{"fileName":"assets/utils-Bi7ATSfV.js","type":"chunk","isEntry":false,"size":66578},{"fileName":"assets/vite-preload-helper-BbbETgeG.js","type":"chunk","isEntry":false,"size":1566},{"fileName":"index.html","type":"asset","isEntry":false,"size":2707},{"fileName":"assets/mf-entry-bootstrap-0-0119ee25.js","type":"asset","isEntry":false,"size":2162}],"assetAnalysis":{"./src/Components.tsx":{"js":{"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/Components-BR57MZLJ.js","assets/rolldown-runtime-COiEfhsA.js"],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/styled":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"]},"css":{"sync":[],"async":[]}},"react-dom":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@mui/material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@mui/icons-material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@iobroker/gui-components":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@iobroker/json-config":{"js":{"sync":[],"async":["assets/lib-70DV4zKj.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js"]},"css":{"sync":[],"async":[]}},"react/jsx-runtime":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js"]},"css":{"sync":[],"async":[]}}}}
|
|
1
|
+
{"id":"ConfigCustomAssistant","name":"ConfigCustomAssistant","metaData":{"name":"ConfigCustomAssistant","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ConfigCustomAssistant"},"remoteEntry":{"name":"customComponents.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ConfigCustomAssistant","pluginVersion":"1.23.7","publicPath":"auto"},"shared":[{"id":"ConfigCustomAssistant:@emotion/react","name":"@emotion/react","version":"11.14.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@emotion/styled","name":"@emotion/styled","version":"11.14.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/gui-components","name":"@iobroker/gui-components","version":"10.3.14","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/json-config","name":"@iobroker/json-config","version":"10.1.11","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/lib-70DV4zKj.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/icons-material","name":"@mui/icons-material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/material","name":"@mui/material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react","name":"react","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react-dom","name":"react-dom","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react/jsx-runtime","name":"react/jsx-runtime","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ConfigCustomAssistant:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"],"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/Components-srYDLjt6.js","assets/rolldown-runtime-COiEfhsA.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"assets/Components-srYDLjt6.js","type":"chunk","isEntry":true,"size":191952},{"fileName":"assets/hostInit-DpzPHTOk.js","type":"chunk","isEntry":false,"size":6192},{"fileName":"assets/index-P2Xu9kJm.js","type":"chunk","isEntry":true,"size":670},{"fileName":"assets/pendingShares-CKvyybtG.js","type":"chunk","isEntry":false,"size":3329},{"fileName":"customComponents.js","type":"chunk","isEntry":false,"size":23723},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","type":"chunk","isEntry":false,"size":8749},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js","type":"chunk","isEntry":false,"size":38784},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js","type":"chunk","isEntry":false,"size":9707},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js","type":"chunk","isEntry":false,"size":7146915},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js","type":"chunk","isEntry":false,"size":2374},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js","type":"chunk","isEntry":false,"size":735101},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","type":"chunk","isEntry":false,"size":541},{"fileName":"assets/dist-B3E7IYuQ.js","type":"chunk","isEntry":false,"size":457},{"fileName":"assets/helpers-DE61bb74.js","type":"chunk","isEntry":false,"size":88},{"fileName":"assets/iconLibraryData-B5fiyl1C.js","type":"chunk","isEntry":false,"size":250966},{"fileName":"assets/lib-70DV4zKj.js","type":"chunk","isEntry":false,"size":23451},{"fileName":"assets/prod-ChPGnyiA.js","type":"chunk","isEntry":false,"size":92192},{"fileName":"assets/rolldown-runtime-COiEfhsA.js","type":"chunk","isEntry":false,"size":1116},{"fileName":"assets/utils-Bi7ATSfV.js","type":"chunk","isEntry":false,"size":66578},{"fileName":"assets/vite-preload-helper-BbbETgeG.js","type":"chunk","isEntry":false,"size":1566},{"fileName":"index.html","type":"asset","isEntry":false,"size":2707},{"fileName":"assets/mf-entry-bootstrap-0-0119ee25.js","type":"asset","isEntry":false,"size":2162}],"assetAnalysis":{"./src/Components.tsx":{"js":{"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js","assets/Components-srYDLjt6.js","assets/rolldown-runtime-COiEfhsA.js"],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js"]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/styled":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.js"]},"css":{"sync":[],"async":[]}},"react-dom":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@mui/material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@mui/icons-material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@iobroker/gui-components":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js"]},"css":{"sync":[],"async":[]}},"@iobroker/json-config":{"js":{"sync":[],"async":["assets/lib-70DV4zKj.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js"]},"css":{"sync":[],"async":[]}},"react/jsx-runtime":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js"]},"css":{"sync":[],"async":[]}}}}
|
package/admin/i18n/de.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Server für die Spracherkennung (optional)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "OpenAI-kompatibler Server statt OpenAI, z. B. ein lokales Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Leer = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Schlüssel des Spracherkennungs-Servers",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Nur, wenn der Server einen verlangt. Der OpenAI-Schlüssel wird nie dorthin geschickt."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Nur, wenn der Server einen verlangt. Der OpenAI-Schlüssel wird nie dorthin geschickt.",
|
|
230
|
+
"Path to ffmpeg": "Pfad zu ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Leer = das heruntergeladene ffmpeg, sonst ffmpeg aus dem Suchpfad. Wird für Timer-/Weckertöne, Telegram-Sprachnachrichten und MP3/Opus-Antworten gebraucht. Beispiel: /usr/bin/ffmpeg oder C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "ffmpeg prüfen",
|
|
233
|
+
"Download ffmpeg": "ffmpeg herunterladen",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Lädt ein statisches ffmpeg (ffmpeg-static, 20–30 MB) in das Datenverzeichnis der Instanz. Es wird genutzt, wenn kein Pfad eingetragen ist."
|
|
230
235
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Speech recognition server (optional)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Key of the speech recognition server",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Only if the server wants one. The OpenAI key is never sent to it."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Only if the server wants one. The OpenAI key is never sent to it.",
|
|
230
|
+
"Path to ffmpeg": "Path to ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Check ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Download ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered."
|
|
230
235
|
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Servidor de reconocimiento de voz (opcional)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "Servidor compatible con OpenAI en lugar de OpenAI, p. ej. un Whisper local: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Vacío = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Clave del servidor de reconocimiento de voz",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Solo si el servidor la pide. La clave de OpenAI nunca se envía allí."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Solo si el servidor la pide. La clave de OpenAI nunca se envía allí.",
|
|
230
|
+
"Path to ffmpeg": "Ruta de ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Vacío = el ffmpeg descargado, si no, ffmpeg de la ruta de búsqueda. Necesario para los sonidos de temporizador/alarma, los mensajes de voz de Telegram y las respuestas MP3/Opus. Ejemplo: /usr/bin/ffmpeg o C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Comprobar ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Descargar ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Descarga un ffmpeg estático (ffmpeg-static, 20-30 MB) en el directorio de datos de la instancia. Se usa cuando no se indica ninguna ruta."
|
|
230
235
|
}
|
package/admin/i18n/fr.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Serveur de reconnaissance vocale (facultatif)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "Serveur compatible OpenAI à la place d'OpenAI, p. ex. un Whisper local : http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Vide = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Clé du serveur de reconnaissance vocale",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Seulement si le serveur en demande une. La clé OpenAI n'y est jamais envoyée."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Seulement si le serveur en demande une. La clé OpenAI n'y est jamais envoyée.",
|
|
230
|
+
"Path to ffmpeg": "Chemin vers ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Vide = le ffmpeg téléchargé, sinon ffmpeg du chemin de recherche. Nécessaire pour les sons de minuterie/réveil, les messages vocaux Telegram et les réponses MP3/Opus. Exemple : /usr/bin/ffmpeg ou C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Vérifier ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Télécharger ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Télécharge un ffmpeg statique (ffmpeg-static, 20 à 30 Mo) dans le répertoire de données de l'instance. Il est utilisé quand aucun chemin n'est indiqué."
|
|
230
235
|
}
|
package/admin/i18n/it.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Server di riconoscimento vocale (facoltativo)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "Server compatibile con OpenAI al posto di OpenAI, ad es. un Whisper locale: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Vuoto = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Chiave del server di riconoscimento vocale",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Solo se il server ne richiede una. La chiave OpenAI non viene mai inviata lì."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Solo se il server ne richiede una. La chiave OpenAI non viene mai inviata lì.",
|
|
230
|
+
"Path to ffmpeg": "Percorso di ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Vuoto = l'ffmpeg scaricato, altrimenti ffmpeg dal percorso di ricerca. Necessario per i suoni di timer/sveglia, i messaggi vocali di Telegram e le risposte MP3/Opus. Esempio: /usr/bin/ffmpeg o C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Verifica ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Scarica ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Scarica un ffmpeg statico (ffmpeg-static, 20-30 MB) nella directory dei dati dell'istanza. Viene usato quando non è indicato alcun percorso."
|
|
230
235
|
}
|
package/admin/i18n/nl.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Server voor spraakherkenning (optioneel)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "OpenAI-compatibele server in plaats van OpenAI, bijv. een lokale Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Leeg = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Sleutel van de spraakherkenningsserver",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Alleen als de server er een vraagt. De OpenAI-sleutel wordt er nooit naartoe gestuurd."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Alleen als de server er een vraagt. De OpenAI-sleutel wordt er nooit naartoe gestuurd.",
|
|
230
|
+
"Path to ffmpeg": "Pad naar ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Leeg = de gedownloade ffmpeg, anders ffmpeg uit het zoekpad. Nodig voor timer-/wekkergeluiden, Telegram-spraakberichten en MP3/Opus-antwoorden. Voorbeeld: /usr/bin/ffmpeg of C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "ffmpeg controleren",
|
|
233
|
+
"Download ffmpeg": "ffmpeg downloaden",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Downloadt een statische ffmpeg (ffmpeg-static, 20-30 MB) naar de gegevensmap van de instantie. Die wordt gebruikt als er geen pad is ingevuld."
|
|
230
235
|
}
|
package/admin/i18n/pl.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Serwer rozpoznawania mowy (opcjonalnie)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "Serwer zgodny z OpenAI zamiast OpenAI, np. lokalny Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Puste = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Klucz serwera rozpoznawania mowy",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Tylko jeśli serwer go wymaga. Klucz OpenAI nigdy nie jest tam wysyłany."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Tylko jeśli serwer go wymaga. Klucz OpenAI nigdy nie jest tam wysyłany.",
|
|
230
|
+
"Path to ffmpeg": "Ścieżka do ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Puste = pobrany ffmpeg, w przeciwnym razie ffmpeg ze ścieżki wyszukiwania. Potrzebny do dźwięków minutnika/budzika, wiadomości głosowych z Telegrama i odpowiedzi MP3/Opus. Przykład: /usr/bin/ffmpeg lub C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Sprawdź ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Pobierz ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Pobiera statyczny ffmpeg (ffmpeg-static, 20–30 MB) do katalogu danych instancji. Jest używany, gdy nie podano ścieżki."
|
|
230
235
|
}
|
package/admin/i18n/pt.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Servidor de reconhecimento de voz (opcional)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "Servidor compatível com OpenAI em vez da OpenAI, p. ex. um Whisper local: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Vazio = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Chave do servidor de reconhecimento de voz",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Só se o servidor pedir uma. A chave da OpenAI nunca é enviada para lá."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Só se o servidor pedir uma. A chave da OpenAI nunca é enviada para lá.",
|
|
230
|
+
"Path to ffmpeg": "Caminho para o ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Vazio = o ffmpeg transferido, caso contrário ffmpeg do caminho de pesquisa. Necessário para os sons de temporizador/alarme, as mensagens de voz do Telegram e as respostas MP3/Opus. Exemplo: /usr/bin/ffmpeg ou C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Verificar ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Transferir ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Transfere um ffmpeg estático (ffmpeg-static, 20-30 MB) para o diretório de dados da instância. É usado quando nenhum caminho é indicado."
|
|
230
235
|
}
|
package/admin/i18n/ru.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Сервер распознавания речи (опционально)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "OpenAI-совместимый сервер вместо OpenAI, напр. локальный Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Пусто = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Ключ сервера распознавания речи",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Только если сервер его требует. Ключ OpenAI туда никогда не отправляется."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Только если сервер его требует. Ключ OpenAI туда никогда не отправляется.",
|
|
230
|
+
"Path to ffmpeg": "Путь к ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Пусто = загруженный ffmpeg, иначе ffmpeg из пути поиска (PATH). Нужен для звуков таймера/будильника, голосовых сообщений Telegram и ответов в MP3/Opus. Пример: /usr/bin/ffmpeg или C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Проверить ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Загрузить ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Загружает статический ffmpeg (ffmpeg-static, 20–30 МБ) в каталог данных экземпляра. Используется, если путь не указан."
|
|
230
235
|
}
|
package/admin/i18n/uk.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "Сервер розпізнавання мовлення (необов'язково)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "OpenAI-сумісний сервер замість OpenAI, напр. локальний Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Порожньо = OpenAI.",
|
|
228
228
|
"Key of the speech recognition server": "Ключ сервера розпізнавання мовлення",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "Лише якщо сервер його вимагає. Ключ OpenAI туди ніколи не надсилається."
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "Лише якщо сервер його вимагає. Ключ OpenAI туди ніколи не надсилається.",
|
|
230
|
+
"Path to ffmpeg": "Шлях до ffmpeg",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "Порожньо = завантажений ffmpeg, інакше ffmpeg зі шляху пошуку (PATH). Потрібен для звуків таймера/будильника, голосових повідомлень Telegram і відповідей у MP3/Opus. Приклад: /usr/bin/ffmpeg або C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "Перевірити ffmpeg",
|
|
233
|
+
"Download ffmpeg": "Завантажити ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "Завантажує статичний ffmpeg (ffmpeg-static, 20–30 МБ) до каталогу даних екземпляра. Використовується, якщо шлях не вказано."
|
|
230
235
|
}
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -226,5 +226,10 @@
|
|
|
226
226
|
"Speech recognition server (optional)": "语音识别服务器(可选)",
|
|
227
227
|
"OpenAI-compatible server instead of OpenAI, e.g. a local Whisper: http://192.168.1.10:8000/v1 (speaches, faster-whisper-server, LocalAI). Empty = OpenAI.": "代替 OpenAI 的 OpenAI 兼容服务器,例如本地 Whisper:http://192.168.1.10:8000/v1(speaches、faster-whisper-server、LocalAI)。空 = OpenAI。",
|
|
228
228
|
"Key of the speech recognition server": "语音识别服务器的密钥",
|
|
229
|
-
"Only if the server wants one. The OpenAI key is never sent to it.": "仅当服务器需要时填写。OpenAI 密钥永远不会发送到该服务器。"
|
|
229
|
+
"Only if the server wants one. The OpenAI key is never sent to it.": "仅当服务器需要时填写。OpenAI 密钥永远不会发送到该服务器。",
|
|
230
|
+
"Path to ffmpeg": "ffmpeg 路径",
|
|
231
|
+
"Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe": "留空 = 使用已下载的 ffmpeg,否则使用搜索路径中的 ffmpeg。计时器/闹钟提示音、Telegram 语音消息以及 MP3/Opus 回复需要它。示例:/usr/bin/ffmpeg 或 C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
232
|
+
"Check ffmpeg": "检查 ffmpeg",
|
|
233
|
+
"Download ffmpeg": "下载 ffmpeg",
|
|
234
|
+
"Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.": "将静态 ffmpeg(ffmpeg-static,20–30 MB)下载到实例的数据目录。未填写路径时使用它。"
|
|
230
235
|
}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -1510,6 +1510,47 @@
|
|
|
1510
1510
|
"lg": 5,
|
|
1511
1511
|
"xl": 5
|
|
1512
1512
|
},
|
|
1513
|
+
"ffmpegPath": {
|
|
1514
|
+
"newLine": true,
|
|
1515
|
+
"type": "text",
|
|
1516
|
+
"label": "Path to ffmpeg",
|
|
1517
|
+
"help": "Empty = the downloaded ffmpeg, otherwise ffmpeg from the search path. Needed for timer/alarm sounds, Telegram voice messages and MP3/Opus replies. Example: /usr/bin/ffmpeg or C:\\ffmpeg\\bin\\ffmpeg.exe",
|
|
1518
|
+
"default": "",
|
|
1519
|
+
"hidden": "!data.voiceEnabled",
|
|
1520
|
+
"xs": 12,
|
|
1521
|
+
"sm": 8,
|
|
1522
|
+
"md": 5,
|
|
1523
|
+
"lg": 5,
|
|
1524
|
+
"xl": 5
|
|
1525
|
+
},
|
|
1526
|
+
"_testFfmpeg": {
|
|
1527
|
+
"type": "sendTo",
|
|
1528
|
+
"command": "testFfmpeg",
|
|
1529
|
+
"label": "Check ffmpeg",
|
|
1530
|
+
"variant": "outlined",
|
|
1531
|
+
"jsonData": "{\"path\":\"${data.ffmpegPath}\"}",
|
|
1532
|
+
"hidden": "!data.voiceEnabled",
|
|
1533
|
+
"xs": 12,
|
|
1534
|
+
"sm": 4,
|
|
1535
|
+
"md": 3,
|
|
1536
|
+
"lg": 3,
|
|
1537
|
+
"xl": 3
|
|
1538
|
+
},
|
|
1539
|
+
"_downloadFfmpeg": {
|
|
1540
|
+
"type": "sendTo",
|
|
1541
|
+
"command": "downloadFfmpeg",
|
|
1542
|
+
"label": "Download ffmpeg",
|
|
1543
|
+
"title": "Downloads a static ffmpeg (ffmpeg-static, 20-30 MB) into the data directory of the instance. It is used when no path is entered.",
|
|
1544
|
+
"variant": "outlined",
|
|
1545
|
+
"showProcess": true,
|
|
1546
|
+
"jsonData": "{\"path\":\"${data.ffmpegPath}\"}",
|
|
1547
|
+
"hidden": "!data.voiceEnabled",
|
|
1548
|
+
"xs": 12,
|
|
1549
|
+
"sm": 4,
|
|
1550
|
+
"md": 3,
|
|
1551
|
+
"lg": 3,
|
|
1552
|
+
"xl": 3
|
|
1553
|
+
},
|
|
1513
1554
|
"_voiceTest": {
|
|
1514
1555
|
"newLine": true,
|
|
1515
1556
|
"type": "custom",
|
package/build/lib/ask.js
CHANGED
|
@@ -14,10 +14,20 @@
|
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.PendingQuestions = exports.ASK_TIMEOUT_MS = exports.ANY_SOURCE = void 0;
|
|
17
|
+
exports.endsWithQuestion = endsWithQuestion;
|
|
17
18
|
/** Key for a question that any source may answer (a broadcast question). */
|
|
18
19
|
exports.ANY_SOURCE = '*';
|
|
19
20
|
/** Default time to wait for an answer before giving up. */
|
|
20
21
|
exports.ASK_TIMEOUT_MS = 60_000;
|
|
22
|
+
/**
|
|
23
|
+
* Whether a reply ends with a question, so a satellite should re-open its mic for the answer. Only the end counts:
|
|
24
|
+
* "Wie spät es ist? Es ist zwölf." waits for nothing, and a mic opened for nothing hears the room and ends with
|
|
25
|
+
* "No text recognized" (field report 2026-11-04). A model that asks in the middle ("… setzen? Sag ja oder nein.")
|
|
26
|
+
* marks its reply with [[LISTEN]] instead — pi-agent does that for its confirmations.
|
|
27
|
+
*/
|
|
28
|
+
function endsWithQuestion(reply) {
|
|
29
|
+
return /[??؟][\s"'»«“”„)\]]*$/u.test(reply || '');
|
|
30
|
+
}
|
|
21
31
|
class PendingQuestions {
|
|
22
32
|
defaultTimeoutMs;
|
|
23
33
|
/** Every armed key points at its entry; several keys can share one (a question asked in two rooms). */
|
package/build/lib/ask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/lib/ask.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;
|
|
1
|
+
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/lib/ask.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAcH,4CAEC;AAdD,4EAA4E;AAC/D,QAAA,UAAU,GAAG,GAAG,CAAC;AAE9B,2DAA2D;AAC9C,QAAA,cAAc,GAAG,MAAM,CAAC;AAErC;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAoBD,MAAa,gBAAgB;IAII;IAH7B,uGAAuG;IACtF,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;IAElD,YAA6B,mBAAmB,sBAAc;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IAAG,CAAC;IAElE;;;;OAIG;IACH,GAAG,CAAC,IAAc,EAAE,QAAgB,EAAE,SAAkB;QACpD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,kBAAU,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE;YACxC,MAAM,KAAK,GAAU;gBACjB,IAAI,EAAE,MAAM;gBACZ,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;gBACjB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,OAAO;aAClB,CAAC;YACF,8FAA8F;YAC9F,8FAA8F;YAC9F,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7F,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAc,EAAE,IAAY;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4EAA4E;IAC5E,GAAG,CAAC,MAAc;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,2EAA2E;IAC3E,QAAQ,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,GAAW;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gFAAgF;IAChF,SAAS;QACL,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,gEAAgE;IAChE,IAAI;QACA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/C,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,CAAC,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,wFAAwF;IAChF,IAAI,CAAC,MAAc;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAU,CAAC,CAAC;IACjF,CAAC;IAEO,MAAM,CAAC,KAAY,EAAE,MAAqB;QAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QACD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,yFAAyF;YACzF,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;CACJ;AAlHD,4CAkHC","sourcesContent":["/**\n * Pending questions — the other direction of a conversation: the adapter asks and waits for the answer.\n *\n * Everywhere else the user starts the exchange. Here a script, a timer or (later) a trigger asks\n * something (\"The fryer has been on for 5 hours. Shall I switch it off?\") and the *next* utterance from\n * that source is the answer: it must not go to the NLU or the LLM, which would treat a bare \"yes\" as a\n * command and swallow it.\n *\n * A question is armed for one or more **sources** — the same key the answer pipeline sees: a satellite's\n * device name, `'chat'`, `'telegram:<user>'`, … — or for {@link ANY_SOURCE} when it was broadcast and\n * whoever hears it may answer. If nothing arrives within the timeout the promise resolves with `null`,\n * so a question can never block the pipeline for good.\n */\n\n/** Key for a question that any source may answer (a broadcast question). */\nexport const ANY_SOURCE = '*';\n\n/** Default time to wait for an answer before giving up. */\nexport const ASK_TIMEOUT_MS = 60_000;\n\n/**\n * Whether a reply ends with a question, so a satellite should re-open its mic for the answer. Only the end counts:\n * \"Wie spät es ist? Es ist zwölf.\" waits for nothing, and a mic opened for nothing hears the room and ends with\n * \"No text recognized\" (field report 2026-11-04). A model that asks in the middle (\"… setzen? Sag ja oder nein.\")\n * marks its reply with [[LISTEN]] instead — pi-agent does that for its confirmations.\n */\nexport function endsWithQuestion(reply: string): boolean {\n return /[??؟][\\s\"'»«“”„)\\]]*$/u.test(reply || '');\n}\n\ninterface Entry {\n keys: string[];\n question: string;\n asked: number;\n timer: NodeJS.Timeout | null;\n done: boolean;\n settle: (answer: string | null) => void;\n}\n\n/** One open question, for logging and diagnostics. */\nexport interface PendingInfo {\n question: string;\n /** Sources that may answer it (`'*'` = any). */\n keys: string[];\n /** When it was asked (ms epoch). */\n asked: number;\n}\n\nexport class PendingQuestions {\n /** Every armed key points at its entry; several keys can share one (a question asked in two rooms). */\n private readonly byKey = new Map<string, Entry>();\n\n constructor(private readonly defaultTimeoutMs = ASK_TIMEOUT_MS) {}\n\n /**\n * Arm `question` for `keys` (empty → {@link ANY_SOURCE}) and resolve with the first answer from one of\n * them, or with `null` on timeout. Arming a key that already holds a question cancels that older one:\n * the newest question is the one the user just heard, so it has to be the one that wins.\n */\n ask(keys: string[], question: string, timeoutMs?: number): Promise<string | null> {\n const unique = [...new Set(keys.map(k => String(k ?? '').trim()).filter(Boolean))];\n if (!unique.length) {\n unique.push(ANY_SOURCE);\n }\n for (const key of unique) {\n this.cancel(key);\n }\n return new Promise<string | null>(resolve => {\n const entry: Entry = {\n keys: unique,\n question,\n asked: Date.now(),\n timer: null,\n done: false,\n settle: resolve,\n };\n // Deliberately not unref'd: the timeout is what releases the caller, so it has to fire. It is\n // cleared on an answer, on cancel, and by cancelAll() on unload, so nothing is held for long.\n entry.timer = setTimeout(() => this.finish(entry, null), timeoutMs ?? this.defaultTimeoutMs);\n for (const key of unique) {\n this.byKey.set(key, entry);\n }\n });\n }\n\n /**\n * Consume an utterance as the answer to an open question. Returns true when it was taken — the caller\n * must then stop processing it. Blank text is never an answer (a dropped utterance would otherwise\n * silently satisfy the question).\n */\n deliver(source: string, text: string): boolean {\n if (!String(text ?? '').trim()) {\n return false;\n }\n const entry = this.find(source);\n if (!entry) {\n return false;\n }\n this.finish(entry, text);\n return true;\n }\n\n /** Whether an open question would take the next utterance from `source`. */\n has(source: string): boolean {\n return !!this.find(source);\n }\n\n /** The open question `source` is expected to answer, if any (for logs). */\n question(source: string): string {\n return this.find(source)?.question ?? '';\n }\n\n /** Give up on the question armed for `key` (resolves it with `null`). */\n cancel(key: string): boolean {\n const entry = this.byKey.get(key);\n if (!entry) {\n return false;\n }\n this.finish(entry, null);\n return true;\n }\n\n /** Give up on every open question — on unload, so no caller is left hanging. */\n cancelAll(): void {\n for (const entry of [...new Set(this.byKey.values())]) {\n this.finish(entry, null);\n }\n this.byKey.clear();\n }\n\n /** All open questions (one entry per question, not per key). */\n list(): PendingInfo[] {\n return [...new Set(this.byKey.values())].map(e => ({\n question: e.question,\n keys: [...e.keys],\n asked: e.asked,\n }));\n }\n\n /** The entry responsible for `source`: armed for it by name, else the broadcast one. */\n private find(source: string): Entry | undefined {\n const key = String(source ?? '').trim();\n return (key ? this.byKey.get(key) : undefined) ?? this.byKey.get(ANY_SOURCE);\n }\n\n private finish(entry: Entry, answer: string | null): void {\n if (entry.done) {\n return;\n }\n entry.done = true;\n if (entry.timer) {\n clearTimeout(entry.timer);\n entry.timer = null;\n }\n for (const key of entry.keys) {\n // Only drop keys still pointing here — a newer question may already have taken one over.\n if (this.byKey.get(key) === entry) {\n this.byKey.delete(key);\n }\n }\n entry.settle(answer);\n }\n}\n"]}
|