yo-moss-ai 0.0.19 → 0.0.21
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/bin/runtime-manifest.json +1 -1
- package/dist/assets/esp-flasher-CLKzE7JE.js +2 -2
- package/dist/assets/index-C1bPuFAs.js +45 -0
- package/dist/assets/{index-Bcf5kQZF.css → index-CzQKR67c.css} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/board-presets.mjs +1 -1
- package/dist-server/camera.mjs +1 -1
- package/dist-server/dev-ui.mjs +1 -1
- package/dist-server/device-chat-sync.mjs +1 -1
- package/dist-server/device-config-view.mjs +1 -1
- package/dist-server/device-focus.mjs +1 -1
- package/dist-server/device-http.mjs +1 -1
- package/dist-server/device-identity.mjs +1 -1
- package/dist-server/device-presence.mjs +1 -1
- package/dist-server/device-probe.mjs +1 -1
- package/dist-server/device-registry.mjs +1 -1
- package/dist-server/device-routes.mjs +1 -1
- package/dist-server/device-runtime.mjs +1 -1
- package/dist-server/device-session.mjs +1 -1
- package/dist-server/ffmpeg.mjs +1 -1
- package/dist-server/gimbal-control.mjs +1 -1
- package/dist-server/home-path.mjs +1 -1
- package/dist-server/index.mjs +1 -1
- package/dist-server/ir-import-validate.mjs +1 -1
- package/dist-server/known-scan-device.mjs +1 -1
- package/dist-server/lan-discover.mjs +1 -1
- package/dist-server/listen-port.mjs +1 -1
- package/dist-server/mcp/backoff.mjs +1 -1
- package/dist-server/mcp/bridge-manager.mjs +1 -1
- package/dist-server/mcp/builtin-tools.mjs +1 -1
- package/dist-server/mcp/dedupe-servers.mjs +1 -1
- package/dist-server/mcp/doctor.mjs +1 -1
- package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
- package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
- package/dist-server/mcp/hotkey-driver.mjs +1 -1
- package/dist-server/mcp/hotkey-handlers.mjs +1 -1
- package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
- package/dist-server/mcp/hotkey-store.mjs +1 -1
- package/dist-server/mcp/http-client.mjs +1 -1
- package/dist-server/mcp/http-pipe.mjs +1 -1
- package/dist-server/mcp/local-probe.mjs +1 -1
- package/dist-server/mcp/marketplace.mjs +1 -1
- package/dist-server/mcp/onvif-handlers.mjs +1 -1
- package/dist-server/mcp/parse-server-json.mjs +1 -1
- package/dist-server/mcp/paths.mjs +1 -1
- package/dist-server/mcp/routes.mjs +1 -1
- package/dist-server/mcp/schema.mjs +1 -1
- package/dist-server/mcp/settings.mjs +1 -1
- package/dist-server/mcp/shell-approval.mjs +1 -1
- package/dist-server/mcp/shell-policy.mjs +1 -1
- package/dist-server/mcp/shell-trash.mjs +1 -1
- package/dist-server/mcp/stdio-pipe.mjs +1 -1
- package/dist-server/mcp/store.mjs +1 -1
- package/dist-server/mcp/task-notify.mjs +1 -1
- package/dist-server/mcp/ws-connect.mjs +1 -1
- package/dist-server/mcp/yunxiangji.mjs +1 -1
- package/dist-server/media-cache.mjs +1 -1
- package/dist-server/mihome/cloud.mjs +1 -1
- package/dist-server/mihome/devices.mjs +1 -1
- package/dist-server/mihome/local.mjs +1 -1
- package/dist-server/mihome/mcp-desc.mjs +1 -1
- package/dist-server/mihome/queue.mjs +1 -1
- package/dist-server/mihome/rc4.mjs +1 -1
- package/dist-server/mihome/routes.mjs +1 -1
- package/dist-server/mihome/service.mjs +1 -1
- package/dist-server/mihome/sign.mjs +1 -1
- package/dist-server/mihome/spec.mjs +1 -1
- package/dist-server/mihome/store.mjs +1 -1
- package/dist-server/onboard-preview.mjs +1 -1
- package/dist-server/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/index-BTL1clBe.js +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x16ea93,_0x3e14aa){var _0x22c7c2=_0x5e0f,_0x9ceeef=_0x16ea93();while(!![]){try{var _0x452e0c=parseInt(_0x22c7c2(0x6c))/0x1*(parseInt(_0x22c7c2(0x6f))/0x2)+-parseInt(_0x22c7c2(0x6a))/0x3+-parseInt(_0x22c7c2(0x74))/0x4*(-parseInt(_0x22c7c2(0x71))/0x5)+parseInt(_0x22c7c2(0x72))/0x6+-parseInt(_0x22c7c2(0x73))/0x7*(parseInt(_0x22c7c2(0x70))/0x8)+parseInt(_0x22c7c2(0x6e))/0x9+parseInt(_0x22c7c2(0x6d))/0xa*(-parseInt(_0x22c7c2(0x6b))/0xb);if(_0x452e0c===_0x3e14aa)break;else _0x9ceeef['push'](_0x9ceeef['shift']());}catch(_0x422e03){_0x9ceeef['push'](_0x9ceeef['shift']());}}}(_0x5985,0x5ea39));export{resolveHomePath,mossGuardRedirect}from'../src/navigation/home-path.mjs';function _0x5e0f(_0x232ca4,_0x6e4b35){_0x232ca4=_0x232ca4-0x6a;var _0x59854f=_0x5985();var _0x5e0fce=_0x59854f[_0x232ca4];if(_0x5e0f['PfmzGr']===undefined){var _0x5255da=function(_0xacb08b){var _0xcad049='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1e7c6c='',_0x4f471c='';for(var _0x2ec5e7=0x0,_0x3d4b7e,_0x362508,_0x2b6905=0x0;_0x362508=_0xacb08b['charAt'](_0x2b6905++);~_0x362508&&(_0x3d4b7e=_0x2ec5e7%0x4?_0x3d4b7e*0x40+_0x362508:_0x362508,_0x2ec5e7++%0x4)?_0x1e7c6c+=String['fromCharCode'](0xff&_0x3d4b7e>>(-0x2*_0x2ec5e7&0x6)):0x0){_0x362508=_0xcad049['indexOf'](_0x362508);}for(var _0x5a2c60=0x0,_0x42b662=_0x1e7c6c['length'];_0x5a2c60<_0x42b662;_0x5a2c60++){_0x4f471c+='%'+('00'+_0x1e7c6c['charCodeAt'](_0x5a2c60)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f471c);};_0x5e0f['MfLyTG']=_0x5255da,_0x5e0f['WRuIxa']={},_0x5e0f['PfmzGr']=!![];}var _0x2bd9ef=_0x59854f[0x0],_0x5a00d2=_0x232ca4+_0x2bd9ef,_0x392349=_0x5e0f['WRuIxa'][_0x5a00d2];return!_0x392349?(_0x5e0fce=_0x5e0f['MfLyTG'](_0x5e0fce),_0x5e0f['WRuIxa'][_0x5a00d2]=_0x5e0fce):_0x5e0fce=_0x392349,_0x5e0fce;}function _0x5985(){var _0x4baf5e=['mJiWA1Dvtuf2','nJiXnZqXnLvmCwLiva','nMPOrMvQuG','mZK3ntjAquDZwvu','mJaXnw5HtLH1EG','nJi5odGWAKPovLnh','otH6ChzUC2S','mJe5nNPOC3PryG','mJe4mZCWoxv3BM1xzq','mtCYnZK5shHRCerH','mtCXmJe5tenVsefL'];_0x5985=function(){return _0x4baf5e;};return _0x5985();}
|
package/dist-server/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x4f2dbc=_0x18c2;(function(_0x90f2ea,_0x17c6ca){const _0x1060c1=_0x18c2,_0x48b1a2=_0x90f2ea();while(!![]){try{const _0x414be0=-parseInt(_0x1060c1(0x16d))/0x1+-parseInt(_0x1060c1(0x6d))/0x2+-parseInt(_0x1060c1(0x84))/0x3*(-parseInt(_0x1060c1(0x7e))/0x4)+-parseInt(_0x1060c1(0x186))/0x5+parseInt(_0x1060c1(0xca))/0x6+parseInt(_0x1060c1(0x164))/0x7+parseInt(_0x1060c1(0xa4))/0x8;if(_0x414be0===_0x17c6ca)break;else _0x48b1a2['push'](_0x48b1a2['shift']());}catch(_0x3ed26a){_0x48b1a2['push'](_0x48b1a2['shift']());}}}(_0x2576,0xd09d6));import _0x524740 from'node:fs';import _0x96c40c from'node:os';import _0x210054 from'node:path';import _0x2d86f9 from'node:http';import{execFile}from'node:child_process';import{fileURLToPath}from'node:url';import _0x3f6860 from'express';import _0x16644e from'cors';import{disconnectCamera,registerCameraRoutes,setCameraHooks,stripOnboardCameraConfig}from'./camera.mjs';import{findDevice,isBoardLabel,normalizeMac,resolveUpsertId}from'./device-identity.mjs';import{migrateLegacyConfig,requireActiveDevice,setCamera,upsertDevice}from'./device-registry.mjs';import{applyHealth,isOnline}from'./device-presence.mjs';import{probeDevice}from'./device-probe.mjs';import{applyChatDelta,chatSyncIntervalMs,shouldFetchChatSync}from'./device-chat-sync.mjs';import{createDeviceHttpQueue}from'./device-http.mjs';import{shouldApplyRemoteVoice,voiceFromWakeAck}from'./voice-wake.mjs';import{registerDeviceRoutes}from'./device-routes.mjs';import{buildSessionView,withActiveDevice}from'./device-session.mjs';import{attachRequestDevice,getRequestDevice,voicesFromRuntime}from'./device-focus.mjs';import{createDeviceRuntime}from'./device-runtime.mjs';import{discoverMossDevices}from'./lan-discover.mjs';import{registerMcpRoutes}from'./mcp/routes.mjs';import{initBridgeWebSocket,bridgeManager}from'./mcp/bridge-manager.mjs';import{setTaskNotifyHooks}from'./mcp/task-notify.mjs';import{loadMcpSettings}from'./mcp/settings.mjs';import{exportYunxiangjiInbox,ingestDeviceYunxiangjiCreates,maybeAckYunxiangjiFromChat,maybeApplyYunxiangjiFromChat}from'./mcp/yunxiangji.mjs';import{prefetchFfmpeg}from'./ffmpeg.mjs';import{registerMediaRoutes}from'./media-cache.mjs';import{validateIrImportPayload}from'./ir-import-validate.mjs';import{applyDeviceHealthTo,normalizeCaps}from'./board-presets.mjs';import{registerMihomeRoutes}from'./mihome/routes.mjs';import{clearRuntime,nextListenPort,reclaimListenPort,sleep}from'./listen-port.mjs';import{attachViteDev,shouldAttachDevUi}from'./dev-ui.mjs';const PORT=Number(process[_0x4f2dbc(0x19e)][_0x4f2dbc(0x12d)]||0xec4),ROOT_DIR=_0x210054[_0x4f2dbc(0x190)](_0x210054[_0x4f2dbc(0xb3)+'e'](fileURLToPath(import.meta.url)),'..'),DIST_DIR=_0x210054[_0x4f2dbc(0x190)](ROOT_DIR,_0x4f2dbc(0xa9)),CONFIG_DIR=_0x210054[_0x4f2dbc(0x190)](_0x96c40c[_0x4f2dbc(0x1a0)+'r'](),'.moss-'+_0x4f2dbc(0x6c)+'p'),CONFIG_PATH=_0x210054['join'](CONFIG_DIR,'config'+'.json'),RUNTIME_PATH=_0x210054[_0x4f2dbc(0x190)](CONFIG_DIR,_0x4f2dbc(0x17d)+_0x4f2dbc(0x17c));function loadConfig(){const _0x421d8a=_0x4f2dbc;try{return migrateLegacyConfig(JSON[_0x421d8a(0x13b)](_0x524740[_0x421d8a(0xac)+'leSync'](CONFIG_PATH,_0x421d8a(0x13d))));}catch{return migrateLegacyConfig({'deviceBaseUrl':'','mqtt':null,'bound':![]});}}function saveConfig(_0x4ea03f){const _0x2d0f58=_0x4f2dbc;_0x524740['mkdirS'+_0x2d0f58(0x131)](CONFIG_DIR,{'recursive':!![]}),_0x524740[_0x2d0f58(0x17a)+_0x2d0f58(0x125)+'c'](CONFIG_PATH,JSON[_0x2d0f58(0x141)+'ify'](_0x4ea03f,null,0x2));}function applyDeviceHealth(_0x365f31,_0x644f9d={}){const _0x179670=_0x4f2dbc;applyDeviceHealthTo(config,_0x365f31);if(!_0x365f31||typeof _0x365f31!==_0x179670(0x18c))return null;const _0x10601a=String(_0x644f9d['client'+'Id']||_0x365f31[_0x179670(0xb1)+_0x179670(0x116)]||'')[_0x179670(0xbb)](),_0x22dfd1=normalizeMac(_0x365f31[_0x179670(0x70)]),_0x5b349a=_0x644f9d['id']||config[_0x179670(0x119)+'Device'+'Id'],_0x2632c2=findDevice(config,{'mac':_0x22dfd1,'clientId':_0x10601a,'id':_0x5b349a}),_0xbd5ff8=resolveUpsertId(config,{'mac':_0x22dfd1,'clientId':_0x10601a,'id':_0x2632c2?.['id']||_0x5b349a});if(!_0xbd5ff8)return null;const _0x56d3c0=_0x365f31[_0x179670(0x64)+_0x179670(0x74)]&&!isBoardLabel(_0x365f31[_0x179670(0x64)+_0x179670(0x74)])?_0x365f31[_0x179670(0x64)+_0x179670(0x74)]:undefined;upsertDevice(config,{'id':_0xbd5ff8,'mac':_0x22dfd1||undefined,'clientId':_0x10601a||_0x2632c2?.[_0x179670(0xb1)+'Id'],'board':_0x365f31[_0x179670(0xce)]||_0x365f31[_0x179670(0xd6)],'product':_0x365f31[_0x179670(0xa2)+'t'],'hostname':_0x365f31[_0x179670(0xbd)+'me'],'displayName':_0x56d3c0,'ip':_0x365f31['ip']});const _0x2f9bbe=applyHealth(config[_0x179670(0xe5)+'s'][_0xbd5ff8],_0x365f31);return config['device'+'s'][_0xbd5ff8]=_0x2f9bbe,_0x2f9bbe;}function activeRecord(){const _0x413cf5=_0x4f2dbc;return config[_0x413cf5(0xe5)+'s']?.[config[_0x413cf5(0x119)+_0x413cf5(0x18b)+'Id']]||null;}function currentCaps(){const _0x1387f7=_0x4f2dbc,_0x259334=focusedRecord();return normalizeCaps({'board':_0x259334?.[_0x1387f7(0xce)]||config['board'],'name':_0x259334?.[_0x1387f7(0xce)]||config['board'],'product':_0x259334?.[_0x1387f7(0xa2)+'t']||config['produc'+'t']});}function currentMossOnline(){const _0x20ffef=_0x4f2dbc,_0x34889b=focusedRecord();if(_0x34889b&&isOnline(_0x34889b['lastSe'+'en'],Date[_0x20ffef(0x8e)]()))return!![];return![];}function writeRuntime(_0x33408f){const _0x58f5cb=_0x4f2dbc;try{_0x524740[_0x58f5cb(0xf7)+_0x58f5cb(0x131)](CONFIG_DIR,{'recursive':!![]}),_0x524740[_0x58f5cb(0x17a)+_0x58f5cb(0x125)+'c'](RUNTIME_PATH,JSON[_0x58f5cb(0x141)+_0x58f5cb(0xb9)]({'port':_0x33408f,'pid':process[_0x58f5cb(0xe6)],'at':Date[_0x58f5cb(0x8e)]()}));}catch(_0x18e3d8){console[_0x58f5cb(0xe1)](_0x58f5cb(0x1a3)+_0x58f5cb(0xdf)+':',_0x18e3d8[_0x58f5cb(0x139)+'e']);}}function clearListenRuntime(){clearRuntime(RUNTIME_PATH);}let config=loadConfig();for(const id of Object[_0x4f2dbc(0x138)](config[_0x4f2dbc(0xe5)+'s']||{})){const wrap={'camera':config[_0x4f2dbc(0xe5)+'s'][id]['camera']};stripOnboardCameraConfig(wrap)&&(config[_0x4f2dbc(0xe5)+'s'][id][_0x4f2dbc(0xae)]=wrap[_0x4f2dbc(0xae)],saveConfig(config));}let mqttStatus='ready';const runtime=createDeviceRuntime(),chatSyncTimers=new Map();let presenceTimer=null;const boardQueues=new Map();function focusedRecord(){const _0x1eda9b=_0x4f2dbc,_0x110f50=getRequestDevice();if(_0x110f50?.['id']&&config[_0x1eda9b(0xe5)+'s']?.[_0x110f50['id']])return config[_0x1eda9b(0xe5)+'s'][_0x110f50['id']];return activeRecord();}function runtimeOf(_0x561059){const _0x341dd0=_0x4f2dbc;return runtime['of'](_0x561059||focusedRecord()?.['id']||config[_0x341dd0(0x119)+_0x341dd0(0x18b)+'Id']);}function deviceQueue(_0xa701f3){const _0x2d4002=_0x4f2dbc,_0x185ed1=_0xa701f3||config[_0x2d4002(0x119)+'Device'+'Id']||'_';if(!boardQueues[_0x2d4002(0x16b)](_0x185ed1))boardQueues[_0x2d4002(0xe3)](_0x185ed1,createDeviceHttpQueue());return boardQueues[_0x2d4002(0xf1)](_0x185ed1);}function initTaskNotify(){const _0x402957=_0x4f2dbc;setTaskNotifyHooks({'emit':emit,'publishWakeAndText':_0x16efb6=>{if(!currentMossOnline())return![];try{return publishWakeAndText(_0x16efb6),!![];}catch{return![];}},'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()[_0x402957(0x8b)+_0x402957(0x144)+_0x402957(0x83)]===!![]});}initTaskNotify();const sseClients=new Set();function emit(_0x15247a,_0x5bc033){const _0x8c60cf=_0x4f2dbc,_0x574dab=_0x8c60cf(0x98)+'\x20'+_0x15247a+(_0x8c60cf(0x166)+'\x20')+JSON['string'+_0x8c60cf(0xb9)](_0x5bc033)+'\x0a\x0a';for(const _0x59c58c of sseClients){_0x59c58c[_0x8c60cf(0x14d)](_0x574dab);}}function statusPayload(_0x30cdef={}){const _0x6ab4c7=_0x4f2dbc;return{...buildSessionView(config,{'mqttStatus':_0x6ab4c7(0x14c),'failCount':0x0,'lastError':'','voices':voicesFromRuntime(config,runtime)}),'status':_0x6ab4c7(0x14c),'bound':!![],'failCount':0x0,'lastError':'',..._0x30cdef};}function inferFetchKind(_0x402185,_0x5d61cf={}){const _0x2931c8=_0x4f2dbc;if(_0x5d61cf[_0x2931c8(0xf5)])return _0x5d61cf[_0x2931c8(0xf5)];if(_0x402185[_0x2931c8(0x124)+'With']('/chat'))return _0x2931c8(0x13c);if(_0x402185===_0x2931c8(0x12a)+'h')return _0x2931c8(0x174);if(_0x402185[_0x2931c8(0x124)+_0x2931c8(0xa1)](_0x2931c8(0x8c)+'l'))try{const _0x392ad0=JSON[_0x2931c8(0x13b)](_0x5d61cf['body']||'{}');return _0x392ad0[_0x2931c8(0x188)]===_0x2931c8(0xe2)?_0x2931c8(0xe2):_0x2931c8(0x105);}catch{return'follow';}return'ir';}function enqueueBoard(_0x88700e,_0x41c8d3,_0x1f3286){return new Promise((_0x4fe7d9,_0x3b2d18)=>{const _0x50a1d0=_0x18c2;deviceQueue(_0x1f3286)[_0x50a1d0(0x128)+'e'](_0x88700e,async()=>{try{_0x4fe7d9(await _0x41c8d3());}catch(_0x57cc2e){_0x3b2d18(_0x57cc2e);}});});}async function rawDeviceFetch(_0x43953a,_0x3dd75e={}){const _0x3bce4e=_0x4f2dbc,{baseUrl:_0x354edb,useLan:_0x1f612a,kind:_0x38bf97,timeoutMs:_0x389aa0,deviceId:_0x13f99d,..._0x43f3d0}=_0x3dd75e,_0xd750b4=getRequestDevice(),_0x1cdcbc=_0x13f99d||_0xd750b4?.['id']||config[_0x3bce4e(0x119)+_0x3bce4e(0x18b)+'Id'];let _0x9b1a60=_0x354edb||'';!_0x9b1a60&&_0x1f612a&&(_0x9b1a60=config[_0x3bce4e(0xe5)+'BaseUr'+'l']);!_0x9b1a60&&_0xd750b4?.[_0x3bce4e(0x91)+'l']&&(_0x9b1a60=_0xd750b4[_0x3bce4e(0x91)+'l']);!_0x9b1a60&&_0x1cdcbc&&(_0x9b1a60=config[_0x3bce4e(0xe5)+'s']?.[_0x1cdcbc]?.[_0x3bce4e(0x91)+'l']||'');if(!_0x9b1a60)try{_0x9b1a60=requireActiveDevice(config)[_0x3bce4e(0x91)+'l'];}catch{_0x9b1a60=config[_0x3bce4e(0xe5)+'BaseUr'+'l'];}if(!_0x9b1a60){const _0x51f56b=new Error(_0x3bce4e(0x104));_0x51f56b[_0x3bce4e(0x95)]=0x199;throw _0x51f56b;}const _0x2a76ed=''+_0x9b1a60+_0x43953a,_0x1f3588=await fetch(_0x2a76ed,{..._0x43f3d0,'signal':_0x3dd75e[_0x3bce4e(0x15b)]||AbortSignal[_0x3bce4e(0x179)+'t'](_0x389aa0||0x1f40),'headers':{'Content-Type':_0x3bce4e(0xe7)+_0x3bce4e(0x170)+_0x3bce4e(0xd2),..._0x3dd75e[_0x3bce4e(0x14f)+'s']||{}}}),_0x253973=await _0x1f3588['text']();let _0x1dd915={};try{_0x1dd915=_0x253973?JSON['parse'](_0x253973):{};}catch{_0x1dd915={'raw':_0x253973};}if(!_0x1f3588['ok']){const _0x5b7d93=new Error(_0x1dd915[_0x3bce4e(0x139)+'e']||_0x3bce4e(0xc5)+'回\x20'+_0x1f3588[_0x3bce4e(0x95)]);_0x5b7d93[_0x3bce4e(0xb6)]=_0x1dd915;throw _0x5b7d93;}return _0x1dd915;}function deviceFetch(_0x302b58,_0x47ec49={}){const _0x3b9200=_0x4f2dbc,_0x2e14eb=getRequestDevice(),_0x28e137=_0x47ec49[_0x3b9200(0xe5)+'Id']||_0x2e14eb?.['id']||config[_0x3b9200(0x119)+_0x3b9200(0x18b)+'Id'];return enqueueBoard(inferFetchKind(_0x302b58,_0x47ec49),()=>rawDeviceFetch(_0x302b58,{..._0x47ec49,'deviceId':_0x28e137}),_0x28e137);}function applyVoice(_0x261fc5,_0x2fd89c){const _0x525d9c=_0x4f2dbc,_0x3913bb=_0x261fc5||focusedRecord()?.['id']||config[_0x525d9c(0x119)+'Device'+'Id'],_0xfaff67=String(_0x2fd89c||'')[_0x525d9c(0xbb)]();if(!_0x3913bb||!_0xfaff67)return;const _0x303926=runtime['of'](_0x3913bb);if(config[_0x525d9c(0xe5)+'s']?.[_0x3913bb])config['device'+'s'][_0x3913bb][_0x525d9c(0x107)]=_0xfaff67;_0xfaff67!==_0x303926[_0x525d9c(0x107)]&&(_0x303926['voice']=_0xfaff67,emit(_0x525d9c(0x95),statusPayload()));}function emitChatLines(_0x4a1836,_0x118b3d){const _0x71dfdd=_0x4f2dbc;for(const _0x56e516 of _0x4a1836){emit(_0x71dfdd(0x10c),{'type':_0x71dfdd(0x7f)+'essage','payload':{'role':_0x56e516[_0x71dfdd(0x159)],'text':_0x56e516[_0x71dfdd(0x19b)],'state':_0x56e516[_0x71dfdd(0x19c)],'deviceId':_0x118b3d}}),_0x56e516['role']===_0x71dfdd(0x175)+_0x71dfdd(0xc9)&&maybeAckYunxiangjiFromChat(_0x56e516[_0x71dfdd(0x19b)]),(_0x56e516[_0x71dfdd(0x159)]===_0x71dfdd(0xa3)||_0x56e516[_0x71dfdd(0x159)]===_0x71dfdd(0x175)+_0x71dfdd(0xc9))&&maybeApplyYunxiangjiFromChat(_0x56e516[_0x71dfdd(0x19b)]);}}async function syncChatNow(_0x2ad358){const _0x4f4034=_0x4f2dbc,_0x2d1ad3=_0x2ad358||focusedRecord()?.['id']||config[_0x4f4034(0x119)+_0x4f4034(0x18b)+'Id'],_0x4505ff=config['device'+'s']?.[_0x2d1ad3];if(!_0x4505ff?.[_0x4f4034(0x91)+'l'])return;const _0x4a59ae=runtime['of'](_0x2d1ad3),_0x9a60bb=_0x24ef39=>deviceFetch(_0x4f4034(0x88)+_0x4f4034(0x121)+_0x4f4034(0x113)+_0x24ef39,{'timeoutMs':0x7d0,'kind':'chat','deviceId':_0x2d1ad3,'baseUrl':_0x4505ff[_0x4f4034(0x91)+'l']});let _0x23767e=await _0x9a60bb(_0x4a59ae[_0x4f4034(0x167)+_0x4f4034(0x162)]),_0x300dfc=applyChatDelta({'seq':_0x4a59ae[_0x4f4034(0x167)+_0x4f4034(0x162)],'lines':[]},_0x23767e);_0x300dfc['rewoun'+'d']&&(_0x23767e=await _0x9a60bb(_0x300dfc[_0x4f4034(0xee)]),_0x300dfc=applyChatDelta({'seq':_0x300dfc[_0x4f4034(0xee)],'lines':[]},_0x23767e)),_0x4a59ae[_0x4f4034(0x167)+_0x4f4034(0x162)]=_0x300dfc[_0x4f4034(0xee)],ingestYunxiangjiFromDevicePayload(_0x23767e,_0x2d1ad3),_0x23767e['voice']&&shouldApplyRemoteVoice({'remoteVoice':_0x23767e[_0x4f4034(0x107)],'localVoice':_0x4a59ae[_0x4f4034(0x107)],'wokeAt':_0x4a59ae[_0x4f4034(0xa0)]})&&applyVoice(_0x2d1ad3,_0x23767e[_0x4f4034(0x107)]),emitChatLines(_0x300dfc[_0x4f4034(0x149)],_0x2d1ad3);}function scheduleChatSync(_0x29cd52){const _0x513e13=_0x4f2dbc,_0x327863=_0x29cd52||focusedRecord()?.['id']||config[_0x513e13(0x119)+'Device'+'Id'];if(!_0x327863)return;const _0x435d35=chatSyncTimers[_0x513e13(0xf1)](_0x327863);_0x435d35&&(clearTimeout(_0x435d35),chatSyncTimers[_0x513e13(0x10d)](_0x327863));const _0x7135a0=chatSyncIntervalMs({'voice':runtime['of'](_0x327863)['voice']});if(!_0x7135a0)return;chatSyncTimers[_0x513e13(0xe3)](_0x327863,setTimeout(()=>{syncChatNow(_0x327863)['catch'](()=>{})['finall'+'y'](()=>scheduleChatSync(_0x327863));},_0x7135a0));}async function probeOne(_0x1f75fa,_0x120291=Date[_0x4f2dbc(0x8e)]()){const _0x212385=_0x4f2dbc,_0x24ce95=config[_0x212385(0xe5)+'s']?.[_0x1f75fa];if(!_0x24ce95)return;const _0x52d3a1=await enqueueBoard(_0x212385(0x174),()=>probeDevice(_0x24ce95,{'now':_0x120291,'timeoutMs':0x7d0}),_0x1f75fa),_0x1feb5a=_0x24ce95[_0x212385(0xff)+'en'];Object[_0x212385(0x19a)](_0x24ce95,_0x52d3a1['device']);_0x1f75fa===config[_0x212385(0x119)+_0x212385(0x18b)+'Id']&&(_0x52d3a1[_0x212385(0xed)]&&_0x52d3a1['device'][_0x212385(0x91)+'l']&&(config[_0x212385(0xe5)+_0x212385(0xeb)+'l']=_0x52d3a1['device'][_0x212385(0x91)+'l']));const _0x42acd3=runtime['of'](_0x1f75fa);_0x52d3a1[_0x212385(0x174)]?.[_0x212385(0x107)]&&shouldApplyRemoteVoice({'remoteVoice':_0x52d3a1[_0x212385(0x174)]['voice'],'localVoice':_0x42acd3['voice'],'wokeAt':_0x42acd3['wokeAt']})&&applyVoice(_0x1f75fa,_0x52d3a1[_0x212385(0x174)][_0x212385(0x107)]),_0x52d3a1[_0x212385(0x174)]&&shouldFetchChatSync({'voice':_0x52d3a1[_0x212385(0x174)]['voice']||_0x42acd3[_0x212385(0x107)],'remoteSeq':_0x52d3a1[_0x212385(0x174)][_0x212385(0x80)+'eq'],'localSeq':_0x42acd3[_0x212385(0x167)+_0x212385(0x162)]})&&(syncChatNow(_0x1f75fa)[_0x212385(0xdc)](()=>{}),scheduleChatSync(_0x1f75fa)),Number(_0x52d3a1[_0x212385(0x174)]?.[_0x212385(0x12f)+_0x212385(0x103)+_0x212385(0x163)]||_0x52d3a1[_0x212385(0xe5)]?.['yunxia'+'ngjiOu'+_0x212385(0x89)]||0x0)>0x0&&pullYunxiangjiOutbox(_0x1f75fa)[_0x212385(0xdc)](()=>{}),_0x52d3a1[_0x212385(0xe5)][_0x212385(0xff)+'en']!==_0x1feb5a&&(emit(_0x212385(0x95),statusPayload()),_0x52d3a1['online']&&scheduleYunxiangjiInboxPush(_0x1f75fa));}function startPresenceWatch(){if(presenceTimer)return;const _0x571fd5=()=>{const _0x4c39d4=_0x18c2,_0x4b983d=Object[_0x4c39d4(0x138)](config['device'+'s']||{});for(const _0x27899e of _0x4b983d[_0x4c39d4(0x10e)](0x0,0x4)){probeOne(_0x27899e)[_0x4c39d4(0xdc)](()=>{});}};_0x571fd5(),presenceTimer=setInterval(_0x571fd5,0x7d0);}function ingestYunxiangjiFromDevicePayload(_0x54c170,_0x1c7886){const _0x295768=_0x4f2dbc,_0x18e73e=_0x54c170?.[_0x295768(0x12f)+_0x295768(0x11d)+_0x295768(0x7d)]||_0x54c170?.[_0x295768(0x193)];if(!Array[_0x295768(0x81)+'y'](_0x18e73e)||!_0x18e73e[_0x295768(0x11e)])return;const _0x598873=ingestDeviceYunxiangjiCreates(_0x18e73e),_0x3d8ff8=_0x598873[_0x295768(0xc7)]||_0x18e73e['map'](_0x3084f9=>_0x3084f9?.['id'])['filter'](Boolean);if(!_0x3d8ff8[_0x295768(0x11e)])return;deviceFetch(_0x295768(0x191)+_0x295768(0x135)+_0x295768(0x90)+'/ack',{'method':'POST','body':JSON[_0x295768(0x141)+_0x295768(0xb9)]({'ids':_0x3d8ff8}),'kind':_0x295768(0x13c),'timeoutMs':0x7d0,'deviceId':_0x1c7886})[_0x295768(0xdc)](()=>{}),scheduleYunxiangjiInboxPush(_0x1c7886);}async function pullYunxiangjiOutbox(_0x515108){const _0x477539=_0x4f2dbc,_0x249d5b=_0x515108||focusedRecord()?.['id']||config[_0x477539(0x119)+_0x477539(0x18b)+'Id'],_0x5c2999=await deviceFetch(_0x477539(0x191)+'angji/'+'outbox',{'timeoutMs':0x7d0,'kind':_0x477539(0x13c),'deviceId':_0x249d5b});ingestYunxiangjiFromDevicePayload(_0x5c2999,_0x249d5b);}const inboxPushTimers=new Map();function _0x2576(){const _0xc1ae92=['zw91Da','Ew5J','DfnLCNzL','CI9LEhbV','tu9tuYdMRAm','yw5NAMKV','EgrNlw9W','BgLZDgvU','A2v5CW','BwvZC2fN','CMvZDgfY','CgfYC2u','y2HHDa','DxrMoa','BMvK','q29UBMvJ','CI9PBxbV','C3rYAw5N','l2fWAs9I','5zsK6yAs5Pon5l2C6l+h5lQo','vgfZA0nV','u2vYDMvY','y2XVC2u','Bgv0zq','ywn0AxzH','ywrKzwq','yw5Kl2rL','B25Jzq','CMvHzhK','D3jPDgu','DMLJzs9K','AgvHzgvY','C2vSzwn0','C2v0sgvH','zMX1C2Hi','tu9tuYdNPRS','DY9ZDgf0','sevbra','6z2I77Ym6k+35ywi5OMN6kgm','l2fWAs9K','55s15zMO57g75z6l5lIn5zci','CM9Szq','CI9SzwfY','C2LNBMfS','zwXLDgu','57Y65Bcr6kAb5yIG6zMK55Qe','y3vZDg9T','y29Kzq','DgHLBG','Cgf5Bg9H','CNnVCG','DxrIB3G','otuWmJm2mgfLsfPhAa','5OM+5yIW5zYW5z2a5l2g6l+E','cMrHDge6','y2HHDen1','5Asn77Ym6k+356In5ycz','DfrPBwvV','56UV5y+Jia','AgfZ','5zYO562j5B6f6k6+5Ash5zUE','nZCZnti1r2jmr0Hn','Aw5JBhvK','BgfZDeHV','yxrPB24V','Ahr0CdOV','Aw5IB3G','Bg9N','AgvHBhrO','yxnZAxn0','l2fWAs9P','Bc9JB250','zxjYB3i','DgLTzw91','D3jPDgvg','l2nVBMzP','zs5QC29U','CNvUDgLT','Dc1uExbL','ufvu','DhjPBMC','AwHVBwu','ifDPluzP','yM9KEq','57QI5Asw56cb5Qc85BYp5lIn','zgvY','nJu3ode4nxDqCgfoyW','6k+35ywi6l+E5O6L6k6+5Ash','ywn0Aw9U','iowpIUwqJUE7REERR+wpOW','5PEG5Rov5BU656Ul6k+T6z+Z','rgv2AwnL','B2jQzwn0','5z2h6kkR5y2G55sO','tu9tu19p','Agf0l3DH','AM9PBG','l3L1BNHP','yw5UB3vU','AxrLBxm','zhK9','zY9KzxzP','l2LYl2nV','B3bLBG','w3L1BNHP','DgLUzW','yxnZAwDU','Dgv4Da','C3rHDgu','5Rwp6kEi5zMO77YA','zw52','5OMR5O+p5Bga5z+F572r5AsX','Ag9TzwrP','r0vu','y29UzMLN','5PEG5Rov5yAz5ywLihi','rMXPz2H0','C3rUyw1L','Cg9ZDa','Aw5N','igfUBM91','ywrK','zgLZCgXH','Eu5HBwu','5BQp5y2G55sO77Ym5B2t5yMn','CgXHDgzV','zxzPy2uV','C2vUzezP','AhCUC3rH','l2LYl2rL','zgvZA3rV','mteYnJe1mNPWz25oCG','6Akr57Mb77Ym6k+356In5ycz','Cg9YDa','BwfJ','C3rHCNq','l2fWAq','CI9JB21T','Ev9Uyw1L','l2H3','y21K','zxHPDa','mw1I','5PEG5Rov6iEQ5yQO5OMt5BYa','l2LYl2XL','D2LUmZi','l2fWAs9O','CMvHDgvZ','mta0mdKXmKrztvr6sa','y2HHDc5T','y2HHDf9Z','AxnbCNjH','CM9S','BxbSzxrL','nMrjt3L2qG','5yQH77Ym6k+356In5zco5yAn','55s15zMOigLKia','Dgv4Dc9L','l2nOyxqV','DgjVEa','rvjtsu9o','D2fRzu9U','l2DPBwjH','tLvtrq','BM93','DxnL','B3v0yM94','yMfZzvvY','77Ym5BM25Qoa5P+LieK','y29TBwfU','w21JCf0G','C3rHDhvZ','CI9KzxzP','y3jLyxrL','zxzLBNq6','l2fWAs9L','55s16isr5zkmie1p','5lIa5lU95Qgm6z2I5PYn5yQH','6k6+5Ash5zYO5zcm5lIaia','CMvZzxrd','tu9tuYdML6a','C2f5','D29Rzuf0','v2L0Aa','ChjVzhvJ','C3LZDgvT','ndCXnZG0rwDRzxHW','zgfYD2LU','6k+35AgR5yAzie1p','w3nLCNzL','uevox0js','zgLZDa','Bwv0Ag9K','y2uVzgvS','CMvHzezP','DMvUDc1Z','y2fTzxjH','5lIn5lIk44cc6k+356gU6k6K','l2LYl3rL','y2XPzw50','57Y65Bcr5Asw6k6+5OIw5yQO','zgLYBMfT','D2fRzuLU','5lYA54oT5PU05PAW44cc','zgv0ywLS','DMLJzxm','5PYQ5OM+5yIW5yMn56UV6Ag1','Awz5','Aw5Kl2XH','DhjPBq','l2LYl2LT','Ag9ZDg5H','CY1HAq','Ew8TBw9Z','Aw5KzxGU','lJaUmtO','CL0G6Ag16z2I5lIo','DgvZDa','lZeYnY4W','tu9tuYdOV5q','u0Lhsu5u','ywnRzwq','DhLWzq','yw50','otqXodG5mgjtsxzPuG','tu9tu19w','DgLVBG','ue9tva','yM9HCMq','ihn0yxr1','DMvUDhm','zv0GCMvZ','ANnVBG','5zYO6l+E5O6L6k+T6z+Z5PYn','Bw1HBMq','CL0G5PYQ6io95OYc','BMfTzq','yM91BMq','Dw5Yzwy','CWPKyxrH','C3rHDgLJ','tK9erv9f','y2f0y2G','C3bLzwq','D2fRzq','Dw50Aw1L','5lQr5y+W5O6N5yI25AsX6lsL','D2fYBG','C3rVCa','C2v0','w2LYlNrL','zgv2AwnL','CgLK','yxbWBgLJ','zxrL','CL0G','BgLNAhq','qMfZzvvY','Dg9ju09t','B25SAw5L','C2vX','55s15zMO5OIw5OYj6zsUia','56km77Yi5y2h57QNl+A/Ga','z2v0','q2fJAguT','ios7JEIIQ+wfTUs7LUEOIW','A2vLCc1H','A2LUza','B2zM','BwTKAxjt','6l295BYa5y+r55wm6z2I77YA','zwfKzxjZ','ueLFue9s','Chv0','yw5NAMLD','CMvWBgfJ','77Ym5Ps55yMn56UV5lUJ56cb','BgfZDfnL','tu9tu19b','t1Dtrvi','CL0G5BEY57Ut5P2F','BMDQAv9V','6k+35ywi6ycj5OUP6k6+5Ash','zM9SBg93','l2LYl2v4','DM9Py2u','AhrTBa','Bw1HBMqV','q29UDgvU','BgL2zq','Bxf0Da','zgvSzxrL','C2XPy2u','C3rDigjV','5O6L5y+J5zcm5lIa56UV5y+J','CI90zxn0','5Rs75lIT77Yj77Ym5PQc5PE2','Aw5Jzt0','5y2G55sO56UV5y+J55Qe5lIk','ruferfjj','x2LK','yNvZEq','u3LUyW','ywn0AxzL','y29UBMvJ','BMnLigzH','yxjU','BMDQAv9J','BgvUz3rO','AxjFzgf0','5lIk5lIa5QYH5zsK6yAs6l+y','C3LUyZ9Z','tu9tuYdLV5K','57Y65Bcr6kAb6k+v5y+r55Qe','C3rHCNrZ','AwXLu3LU','yw5K','5RkH6io955M76k6W6l+z5y+W','zw5XDwv1','AwqG5lIn5zci5Rov','l2HLywX0','AxnJB3zL','AwrSzq','ue9sva','6k+356gU6k6K55s16isr5zkm','ExvUEgLH'];_0x2576=function(){return _0xc1ae92;};return _0x2576();}function scheduleYunxiangjiInboxPush(_0x5c5cc1){const _0x1ab261=_0x4f2dbc,_0x6cc65a=_0x5c5cc1||focusedRecord()?.['id']||config[_0x1ab261(0x119)+'Device'+'Id'];if(!_0x6cc65a)return;const _0x2b82a7=inboxPushTimers[_0x1ab261(0xf1)](_0x6cc65a);if(_0x2b82a7)clearTimeout(_0x2b82a7);inboxPushTimers[_0x1ab261(0xe3)](_0x6cc65a,setTimeout(()=>{const _0x2fc519=_0x1ab261;inboxPushTimers[_0x2fc519(0x10d)](_0x6cc65a),pushYunxiangjiInbox(_0x6cc65a)[_0x2fc519(0xdc)](()=>{});},0x12c));}async function pushYunxiangjiInbox(_0x503af5){const _0x5a979c=_0x4f2dbc,_0x5653d8=_0x503af5||focusedRecord()?.['id']||config['active'+'Device'+'Id'];if(!_0x5653d8)return;await deviceFetch(_0x5a979c(0x191)+'angji/'+_0x5a979c(0x172),{'method':'POST','body':JSON[_0x5a979c(0x141)+_0x5a979c(0xb9)](exportYunxiangjiInbox()),'kind':_0x5a979c(0x13c),'timeoutMs':0x7d0,'deviceId':_0x5653d8});}function requireDeviceOnline(){const _0x66e39e=_0x4f2dbc;if(!currentMossOnline())throw new Error(_0x66e39e(0x153)+'线');}function _0x18c2(_0x25bab3,_0x73a53f){_0x25bab3=_0x25bab3-0x64;const _0x25762a=_0x2576();let _0x18c2df=_0x25762a[_0x25bab3];if(_0x18c2['CivZdn']===undefined){var _0x3e3b03=function(_0x8b3960){const _0x55215b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x524740='',_0x96c40c='';for(let _0x210054=0x0,_0x2d86f9,_0x3f6860,_0x16644e=0x0;_0x3f6860=_0x8b3960['charAt'](_0x16644e++);~_0x3f6860&&(_0x2d86f9=_0x210054%0x4?_0x2d86f9*0x40+_0x3f6860:_0x3f6860,_0x210054++%0x4)?_0x524740+=String['fromCharCode'](0xff&_0x2d86f9>>(-0x2*_0x210054&0x6)):0x0){_0x3f6860=_0x55215b['indexOf'](_0x3f6860);}for(let _0x4ea03f=0x0,_0x365f31=_0x524740['length'];_0x4ea03f<_0x365f31;_0x4ea03f++){_0x96c40c+='%'+('00'+_0x524740['charCodeAt'](_0x4ea03f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x96c40c);};_0x18c2['TWIwTh']=_0x3e3b03,_0x18c2['syCuVm']={},_0x18c2['CivZdn']=!![];}const _0x26b5c7=_0x25762a[0x0],_0x2ffe86=_0x25bab3+_0x26b5c7,_0x2a58cf=_0x18c2['syCuVm'][_0x2ffe86];return!_0x2a58cf?(_0x18c2df=_0x18c2['TWIwTh'](_0x18c2df),_0x18c2['syCuVm'][_0x2ffe86]=_0x18c2df):_0x18c2df=_0x2a58cf,_0x18c2df;}async function publishWakeAndText(_0x4825ba,_0x41e583){const _0x3966c3=_0x4f2dbc;requireDeviceOnline();const _0x2d0eb6=focusedRecord()?.['id']||config[_0x3966c3(0x119)+_0x3966c3(0x18b)+'Id'],_0x33b63c={'text':String(_0x4825ba||'')};if(_0x41e583)_0x33b63c[_0x3966c3(0x192)+'ce']=String(_0x41e583);await deviceFetch(_0x3966c3(0x88)+_0x3966c3(0x9f),{'method':_0x3966c3(0xcd),'body':JSON[_0x3966c3(0x141)+_0x3966c3(0xb9)](_0x33b63c),'kind':'chat','timeoutMs':0xfa0,'deviceId':_0x2d0eb6}),syncChatNow(_0x2d0eb6)[_0x3966c3(0xdc)](()=>{}),scheduleChatSync(_0x2d0eb6);}const app=_0x3f6860();app[_0x4f2dbc(0x8f)](_0x16644e()),app[_0x4f2dbc(0x8f)](_0x3f6860[_0x4f2dbc(0xd2)]({'limit':_0x4f2dbc(0x78)})),app['use'](attachRequestDevice(()=>config)),registerMihomeRoutes(app,{'configDir':CONFIG_DIR,'onMcpAccessChanged':()=>{const _0x30aa21=_0x4f2dbc;try{bridgeManager[_0x30aa21(0x13a)+_0x30aa21(0x132)+'r']('moss-m'+_0x30aa21(0x181));}catch(_0x38725e){console['warn']('[mihom'+_0x30aa21(0xd1)+'tart\x20m'+'cp',_0x38725e['messag'+'e']);}}}),registerDeviceRoutes(app,{'getConfig':()=>config,'saveConfig':()=>saveConfig(config),'getExtras':()=>{const _0x473b3b=_0x4f2dbc,_0x3560ef=focusedRecord(),_0x3aaa96=_0x3560ef?.['id']||config[_0x473b3b(0x119)+'Device'+'Id'];return{'mqttStatus':_0x473b3b(0x14c),'mossOnline':currentMossOnline(),'capabilities':currentCaps(),'failCount':0x0,'lastError':'','mossChatState':_0x3aaa96?runtime['of'](_0x3aaa96)[_0x473b3b(0x107)]:_0x473b3b(0x12c),'focusedDeviceId':_0x3aaa96||'','voices':voicesFromRuntime(config,runtime)};},'onActivate':_0x4f9bb2=>{const _0x1c067d=_0x4f2dbc;runtime[_0x1c067d(0x9d)+'hat'](_0x4f9bb2[_0x1c067d(0xe5)]['id']),config[_0x1c067d(0xe5)+_0x1c067d(0xeb)+'l']=_0x4f9bb2[_0x1c067d(0xe5)]['baseUr'+'l']||config['device'+_0x1c067d(0xeb)+'l']||'',applyDeviceHealthTo(config,_0x4f9bb2[_0x1c067d(0xe5)]),emit(_0x1c067d(0x95),statusPayload()),probeOne(_0x4f9bb2[_0x1c067d(0xe5)]['id'])[_0x1c067d(0xdc)](()=>{});}}),app[_0x4f2dbc(0xf1)](_0x4f2dbc(0x99)+_0x4f2dbc(0xd0),(_0x44c34e,_0x512a2b)=>{const _0x304853=_0x4f2dbc;_0x512a2b[_0x304853(0x151)+_0x304853(0x185)](_0x304853(0x10a)+_0x304853(0x17e),_0x304853(0x87)+_0x304853(0xad)+'tream'),_0x512a2b[_0x304853(0x151)+_0x304853(0x185)](_0x304853(0xf2)+'Contro'+'l','no-cac'+'he'),_0x512a2b[_0x304853(0x151)+'der'](_0x304853(0x13f)+_0x304853(0xcc),_0x304853(0xf4)+_0x304853(0x10b)),_0x512a2b[_0x304853(0x152)+_0x304853(0xf9)](),sseClients[_0x304853(0x1a9)](_0x512a2b),_0x512a2b['write'](_0x304853(0x98)+_0x304853(0xcf)+_0x304853(0xd9)+':\x20'+JSON[_0x304853(0x141)+_0x304853(0xb9)](statusPayload())+'\x0a\x0a'),_0x44c34e['on'](_0x304853(0x146),()=>sseClients[_0x304853(0x10d)](_0x512a2b));}),app[_0x4f2dbc(0x1a6)](_0x4f2dbc(0x157)+_0x4f2dbc(0x12b)+'r',async(_0x3ae10d,_0x30b53e)=>{const _0x59adba=_0x4f2dbc;try{const _0x1fe459=await discoverMossDevices({'lastHostname':config[_0x59adba(0x16f)+_0x59adba(0x1a5)],'lastBaseUrl':config[_0x59adba(0xe5)+_0x59adba(0xeb)+'l']});_0x30b53e[_0x59adba(0xd2)]({'devices':_0x1fe459});}catch(_0x17b1f4){_0x30b53e[_0x59adba(0x95)](0x1f4)[_0x59adba(0xd2)]({'message':_0x17b1f4[_0x59adba(0x139)+'e']||_0x59adba(0x19f)+'败'});}}),app[_0x4f2dbc(0x1a6)](_0x4f2dbc(0x157)+_0x4f2dbc(0x68)+_0x4f2dbc(0x150),async(_0x5073a8,_0x206c7f)=>{const _0x4caf50=_0x4f2dbc,_0x162f7c=String(_0x5073a8[_0x4caf50(0x183)]?.[_0x4caf50(0x91)+'l']||'')[_0x4caf50(0xfd)+'e'](/\/$/,'');if(!_0x162f7c)return _0x206c7f[_0x4caf50(0x95)](0x190)[_0x4caf50(0xd2)]({'message':_0x4caf50(0xa6)+'SS\x20地址'});const _0x5f248b=config[_0x4caf50(0xe5)+_0x4caf50(0xeb)+'l'];config[_0x4caf50(0xe5)+_0x4caf50(0xeb)+'l']=_0x162f7c;try{const _0xef91ad=await deviceFetch('/healt'+'h',{'baseUrl':_0x162f7c});_0xef91ad[_0x4caf50(0xbd)+'me']&&(config[_0x4caf50(0x16f)+_0x4caf50(0x1a5)]=_0xef91ad[_0x4caf50(0xbd)+'me']),applyDeviceHealthTo(config,_0xef91ad),saveConfig(config),_0x206c7f[_0x4caf50(0xd2)]({'ok':!![],'health':_0xef91ad});}catch(_0x17c3ff){config[_0x4caf50(0xe5)+'BaseUr'+'l']=_0x5f248b,_0x206c7f[_0x4caf50(0x95)](0x190)[_0x4caf50(0xd2)]({'message':_0x4caf50(0x165)+_0x4caf50(0xaf)+_0x4caf50(0x9a)+'SS\x20在同一'+_0x4caf50(0x182)+_0x4caf50(0x92)+'P。','detail':_0x17c3ff[_0x4caf50(0x139)+'e']});}}),app[_0x4f2dbc(0xf1)](_0x4f2dbc(0x157)+_0x4f2dbc(0x68)+_0x4f2dbc(0x174),async(_0x210bd1,_0x3e8533)=>{const _0x4eaf0d=_0x4f2dbc;try{const _0x1b3b11=await deviceFetch(_0x4eaf0d(0x12a)+'h');applyDeviceHealth(_0x1b3b11,{'id':focusedRecord()?.['id']||config[_0x4eaf0d(0x119)+_0x4eaf0d(0x18b)+'Id'],'clientId':focusedRecord()?.[_0x4eaf0d(0xb1)+'Id']}),saveConfig(config),_0x3e8533[_0x4eaf0d(0xd2)](_0x1b3b11);}catch(_0x428391){_0x3e8533['status'](0x190)[_0x4eaf0d(0xd2)]({'message':_0x428391[_0x4eaf0d(0x139)+'e']});}}),app[_0x4f2dbc(0x1a6)](_0x4f2dbc(0x142)+_0x4f2dbc(0xba)+'n',async(_0x50f013,_0x45b458)=>{const _0x34581e=_0x4f2dbc,_0x2fe028=String(_0x50f013[_0x34581e(0x183)]?.[_0x34581e(0x91)+'l']||config['device'+'BaseUr'+'l']||'')['replac'+'e'](/\/$/,''),_0xc18a1f=String(_0x50f013[_0x34581e(0x183)]?.[_0x34581e(0x64)+_0x34581e(0x65)]||_0x50f013[_0x34581e(0x183)]?.[_0x34581e(0x64)+_0x34581e(0x74)]||'')[_0x34581e(0xbb)]();if(!_0x2fe028)return _0x45b458['status'](0x190)[_0x34581e(0xd2)]({'message':_0x34581e(0x187)});try{const _0x58127a=await deviceFetch('/healt'+'h',{'baseUrl':_0x2fe028,'timeoutMs':0xbb8,'kind':_0x34581e(0x174)}),_0x14ed42=resolveUpsertId(config,{'mac':_0x58127a[_0x34581e(0x70)],'clientId':_0x58127a[_0x34581e(0xb1)+_0x34581e(0x116)],'id':config[_0x34581e(0x119)+_0x34581e(0x18b)+'Id']}),_0x5c7f7d=upsertDevice(config,{'id':_0x14ed42,'mac':normalizeMac(_0x58127a['mac'])||undefined,'clientId':_0x58127a[_0x34581e(0xb1)+_0x34581e(0x116)],'displayName':_0xc18a1f||(_0x58127a[_0x34581e(0x64)+_0x34581e(0x74)]&&!isBoardLabel(_0x58127a[_0x34581e(0x64)+_0x34581e(0x74)])?_0x58127a['displa'+_0x34581e(0x74)]:undefined),'board':_0x58127a[_0x34581e(0xce)]||_0x58127a[_0x34581e(0xd6)],'product':_0x58127a[_0x34581e(0xa2)+'t'],'hostname':_0x58127a[_0x34581e(0xbd)+'me'],'baseUrl':_0x2fe028,'ip':_0x58127a['ip'],'lastSeen':Date[_0x34581e(0x8e)]()});config[_0x34581e(0xe5)+'BaseUr'+'l']=_0x2fe028;if(_0x58127a[_0x34581e(0xbd)+'me'])config[_0x34581e(0x16f)+_0x34581e(0x1a5)]=_0x58127a[_0x34581e(0xbd)+'me'];config[_0x34581e(0xd7)]=!![],config[_0x34581e(0x119)+_0x34581e(0x18b)+'Id']=_0x5c7f7d['id'],saveConfig(config),emit(_0x34581e(0x95),statusPayload()),_0x45b458[_0x34581e(0xd2)]({'ok':!![],'mossOnline':!![],'device':_0x5c7f7d});}catch(_0x20ab1c){_0x45b458[_0x34581e(0x95)](0x190)[_0x34581e(0xd2)]({'message':_0x34581e(0x127)+'\x20MOSS。'+_0x34581e(0x12e)+_0x34581e(0x9c)+'Wi-Fi。','detail':_0x20ab1c[_0x34581e(0x139)+'e']});}}),app[_0x4f2dbc(0x1a6)]('/api/c'+_0x4f2dbc(0x18f)+'ke',async(_0x372bdd,_0x518dec)=>{const _0x51be9e=_0x4f2dbc,_0x315f91=focusedRecord()?.['id']||config[_0x51be9e(0x119)+_0x51be9e(0x18b)+'Id'],_0x10f519=runtime['of'](_0x315f91);try{requireDeviceOnline();if(_0x10f519[_0x51be9e(0x107)]===_0x51be9e(0x11a)+_0x51be9e(0x199)||_0x10f519['voice']===_0x51be9e(0x148)+'ting')throw new Error(_0x10f519[_0x51be9e(0x107)]===_0x51be9e(0x148)+_0x51be9e(0x199)?_0x51be9e(0x122)+_0x51be9e(0xf0)+_0x51be9e(0x112)+_0x51be9e(0x18a)+'链路':_0x51be9e(0x134)+_0x51be9e(0xd3)+_0x51be9e(0x85)+'试');if(_0x10f519[_0x51be9e(0xb4)+_0x51be9e(0x1a4)])throw new Error(_0x51be9e(0x120)+_0x51be9e(0x16c)+_0x51be9e(0x168));if(Date[_0x51be9e(0x8e)]()-_0x10f519['wokeAt']<0x9c4)throw new Error(_0x51be9e(0x143)+_0x51be9e(0x6e)+'再试');_0x10f519['wakeIn'+_0x51be9e(0x1a4)]=!![],_0x10f519[_0x51be9e(0xa0)]=Date[_0x51be9e(0x8e)]();const _0x4c7b1e=await deviceFetch(_0x51be9e(0x88)+_0x51be9e(0xde),{'method':'POST','body':'{}','kind':'chat','timeoutMs':0xfa0}),_0x5cc5ce=voiceFromWakeAck(_0x4c7b1e);if(_0x5cc5ce[_0x51be9e(0x178)]){if(_0x5cc5ce[_0x51be9e(0x178)]===_0x51be9e(0x11a)+_0x51be9e(0x199))throw new Error(_0x51be9e(0x134)+_0x51be9e(0xd3)+'务,请稍后再'+'试');if(_0x5cc5ce[_0x51be9e(0x178)]===_0x51be9e(0x117))throw new Error(_0x51be9e(0x122)+_0x51be9e(0xf0)+_0x51be9e(0x112)+_0x51be9e(0x18a)+'链路');throw new Error(_0x5cc5ce[_0x51be9e(0x178)]||_0x51be9e(0x9e)+'法唤醒');}applyVoice(_0x315f91,_0x5cc5ce['voice']),syncChatNow(_0x315f91)[_0x51be9e(0xdc)](()=>{}),scheduleChatSync(_0x315f91),_0x518dec[_0x51be9e(0xd2)]({'ok':!![],'payload':_0x4c7b1e});}catch(_0x36536a){_0x518dec[_0x51be9e(0x95)](0x190)[_0x51be9e(0xd2)]({'message':_0x36536a[_0x51be9e(0x139)+'e']});}finally{_0x10f519[_0x51be9e(0xb4)+_0x51be9e(0x1a4)]=![];}}),app[_0x4f2dbc(0x1a6)](_0x4f2dbc(0x7c)+'w',async(_0x112ab7,_0x59a888)=>{const _0x4f5e72=_0x4f2dbc;try{requireDeviceOnline();const _0x473556=String(_0x112ab7[_0x4f5e72(0x183)]?.['device']||'')[_0x4f5e72(0xbb)](),_0x1aa359=String(_0x112ab7['body']?.[_0x4f5e72(0x188)]||'')['trim']();if(!_0x473556||!_0x1aa359)throw new Error(_0x4f5e72(0xb2)+'作');const _0x57d4ea={'device':_0x473556,'action':_0x1aa359};if(_0x112ab7[_0x4f5e72(0x183)]?.[_0x4f5e72(0xdd)]!=null)_0x57d4ea['speed']=Number(_0x112ab7[_0x4f5e72(0x183)][_0x4f5e72(0xdd)]);const _0x29a0a0=await deviceFetch(_0x4f5e72(0x75),{'method':_0x4f5e72(0xcd),'body':JSON['string'+_0x4f5e72(0xb9)](_0x57d4ea),'timeoutMs':0xfa0});emit(_0x4f5e72(0x10c),{'type':_0x4f5e72(0x6a)+'te','payload':_0x29a0a0,'deviceId':focusedRecord()?.['id']||config[_0x4f5e72(0x119)+_0x4f5e72(0x18b)+'Id']}),_0x59a888[_0x4f5e72(0xd2)]({'ok':!![],..._0x29a0a0});}catch(_0xc4304a){_0x59a888[_0x4f5e72(0x95)](0x190)[_0x4f5e72(0xd2)]({'message':_0xc4304a[_0x4f5e72(0x139)+'e']});}}),app['post'](_0x4f2dbc(0x7c)+_0x4f2dbc(0x154)+'us',async(_0x5c72ef,_0x23d6ce)=>{const _0xfb73da=_0x4f2dbc;try{requireDeviceOnline();const _0x1d1b82=await deviceFetch(_0xfb73da(0x75),{'timeoutMs':0xfa0});emit(_0xfb73da(0x10c),{'type':_0xfb73da(0x6a)+'te','payload':_0x1d1b82,'deviceId':focusedRecord()?.['id']||config[_0xfb73da(0x119)+_0xfb73da(0x18b)+'Id']}),_0x23d6ce['json']({'ok':!![],..._0x1d1b82});}catch(_0x6a5393){_0x23d6ce['status'](0x190)[_0xfb73da(0xd2)]({'message':_0x6a5393[_0xfb73da(0x139)+'e']});}});async function fetchDeviceConfig(){const _0x50056c=_0x4f2dbc,_0x5636f4=await deviceFetch(_0x50056c(0x17b)+'g/devi'+'ce');return{'ok':!![],..._0x5636f4};}async function saveDeviceConfig(_0x4da668){const _0x125961=_0x4f2dbc;return deviceFetch('/confi'+_0x125961(0x195)+'ce',{'method':_0x125961(0x17f),'body':JSON[_0x125961(0x141)+_0x125961(0xb9)](_0x4da668)});}app[_0x4f2dbc(0xf1)](_0x4f2dbc(0x157)+_0x4f2dbc(0x68)+_0x4f2dbc(0x1a2),withActiveDevice(()=>config),async(_0xe310ba,_0x569b02)=>{const _0x20937d=_0x4f2dbc;try{_0x569b02[_0x20937d(0xd2)](await fetchDeviceConfig());}catch(_0x17fa80){_0x569b02[_0x20937d(0x95)](0x190)[_0x20937d(0xd2)]({'message':_0x17fa80[_0x20937d(0x139)+'e']});}}),app[_0x4f2dbc(0xfb)](_0x4f2dbc(0x157)+_0x4f2dbc(0x68)+_0x4f2dbc(0x1a2),withActiveDevice(()=>config),async(_0x818e74,_0x587620)=>{const _0x344ecf=_0x4f2dbc;try{_0x587620[_0x344ecf(0xd2)](await saveDeviceConfig(_0x818e74[_0x344ecf(0x183)]||{}));}catch(_0x51f182){_0x587620['status'](0x190)[_0x344ecf(0xd2)]({'message':_0x51f182[_0x344ecf(0x139)+'e']});}}),app[_0x4f2dbc(0xf1)](_0x4f2dbc(0x176)+'r/devi'+'ces',async(_0x3818bb,_0x45f7cc)=>{const _0x421adc=_0x4f2dbc;try{_0x45f7cc['json'](await deviceFetch(_0x421adc(0x6b)+_0x421adc(0xb7)));}catch(_0x3bb0c3){_0x45f7cc['status'](0x190)['json']({'message':_0x3bb0c3[_0x421adc(0x139)+'e']});}}),app['put'](_0x4f2dbc(0x176)+_0x4f2dbc(0x96)+'ce',async(_0x34a508,_0x3a6474)=>{const _0x17ab54=_0x4f2dbc;try{const _0x284f2f=requireDevicePut(_0x34a508['body']);_0x3a6474[_0x17ab54(0xd2)](await deviceFetch(_0x17ab54(0x6b)+'vice',{'method':_0x17ab54(0x17f),'body':JSON[_0x17ab54(0x141)+_0x17ab54(0xb9)](_0x284f2f)}));}catch(_0x1f6758){_0x3a6474[_0x17ab54(0x95)](0x190)[_0x17ab54(0xd2)]({'message':_0x1f6758[_0x17ab54(0x139)+'e']});}}),app[_0x4f2dbc(0x1a6)]('/api/i'+_0x4f2dbc(0x96)+_0x4f2dbc(0xab)+_0x4f2dbc(0xe8),async(_0xda220f,_0x1a518e)=>{const _0x252bd=_0x4f2dbc;try{const _0x60452c=asObject(_0xda220f[_0x252bd(0x183)]);if(!validId(String(_0x60452c['id']||'')))throw new Error(_0x252bd(0x15d)+'电器');_0x1a518e[_0x252bd(0xd2)](await deviceFetch(_0x252bd(0x6b)+_0x252bd(0x14e)+_0x252bd(0x15c),{'method':_0x252bd(0xcd),'body':JSON['string'+'ify']({'id':_0x60452c['id']})}));}catch(_0x1c9fe3){_0x1a518e[_0x252bd(0x95)](0x190)[_0x252bd(0xd2)]({'message':_0x1c9fe3[_0x252bd(0x139)+'e']});}}),app[_0x4f2dbc(0xfb)]('/api/i'+_0x4f2dbc(0x73)+_0x4f2dbc(0x126),async(_0x5cd430,_0x2ea9c2)=>{const _0x46eb27=_0x4f2dbc;try{const _0xa16fa1=requireCommandPut(_0x5cd430['body']);_0x2ea9c2[_0x46eb27(0xd2)](await deviceFetch(_0x46eb27(0x196)+_0x46eb27(0xd4),{'method':'PUT','body':JSON[_0x46eb27(0x141)+_0x46eb27(0xb9)](_0xa16fa1)}));}catch(_0x2eddb1){_0x2ea9c2[_0x46eb27(0x95)](0x190)[_0x46eb27(0xd2)]({'message':_0x2eddb1[_0x46eb27(0x139)+'e']});}}),app['post'](_0x4f2dbc(0x176)+_0x4f2dbc(0x73)+_0x4f2dbc(0x14a)+_0x4f2dbc(0x147),async(_0xe2e84a,_0x3430c1)=>{const _0x20445b=_0x4f2dbc;try{const _0x288187=requireCommandDelete(_0xe2e84a[_0x20445b(0x183)]);_0x3430c1[_0x20445b(0xd2)](await deviceFetch(_0x20445b(0x196)+_0x20445b(0x109)+_0x20445b(0x10d),{'method':_0x20445b(0xcd),'body':JSON[_0x20445b(0x141)+_0x20445b(0xb9)](_0x288187)}));}catch(_0x33d2f1){_0x3430c1[_0x20445b(0x95)](0x190)[_0x20445b(0xd2)]({'message':_0x33d2f1[_0x20445b(0x139)+'e']});}}),app['post'](_0x4f2dbc(0x176)+_0x4f2dbc(0x15a)+'n',async(_0xa7e6da,_0x11b436)=>{const _0x408337=_0x4f2dbc;try{_0x11b436['json'](await deviceFetch(_0x408337(0x7a)+_0x408337(0x11c),{'method':'POST','body':'{}'}));}catch(_0x13e2e0){_0x11b436[_0x408337(0x95)](0x190)[_0x408337(0xd2)]({'message':_0x13e2e0['messag'+'e']});}}),app[_0x4f2dbc(0xf1)](_0x4f2dbc(0x176)+_0x4f2dbc(0x15a)+_0x4f2dbc(0x13e),async(_0x291d12,_0x206e80)=>{const _0x33a7ea=_0x4f2dbc;try{const _0x4392f3=Date[_0x33a7ea(0x8e)]();while(Date[_0x33a7ea(0x8e)]()-_0x4392f3<0x3a98){const _0x400522=await deviceFetch('/ir/re'+'ad');if(_0x400522[_0x33a7ea(0x11f)+'a'])return _0x206e80['json'](_0x400522);await new Promise(_0x469159=>setTimeout(_0x469159,0x320));}_0x206e80[_0x33a7ea(0xd2)]({'ir_data':'','count':0x0});}catch(_0x347913){_0x206e80[_0x33a7ea(0x95)](0x190)[_0x33a7ea(0xd2)]({'message':_0x347913[_0x33a7ea(0x139)+'e']});}});function asObject(_0x189506){const _0x4aac96=_0x4f2dbc;if(!_0x189506)return{};if(typeof _0x189506===_0x4aac96(0x141))try{return JSON[_0x4aac96(0x13b)](_0x189506);}catch{return{};}return typeof _0x189506===_0x4aac96(0x18c)?_0x189506:{};}function irTestPayload(_0x4f4520){const _0x594344=_0x4f2dbc,_0x3c7d5f=asObject(_0x4f4520),_0x3a94df=typeof _0x3c7d5f[_0x594344(0x15f)]===_0x594344(0x141)?_0x3c7d5f[_0x594344(0x15f)][_0x594344(0xbb)]():'',_0x688921=String(_0x3c7d5f[_0x594344(0xe5)+_0x594344(0x116)]||_0x3c7d5f[_0x594344(0xe5)+'Id']||'')['trim'](),_0x4c847a=String(_0x3c7d5f['id']||_0x3c7d5f[_0x594344(0x93)+'d_id']||_0x3c7d5f[_0x594344(0x93)+'dId']||'')[_0x594344(0xbb)](),_0x4556c9={};if(_0x3a94df)_0x4556c9[_0x594344(0x15f)]=_0x3a94df;if(_0x688921)_0x4556c9[_0x594344(0xe5)+_0x594344(0x116)]=_0x688921;if(_0x4c847a)_0x4556c9['id']=_0x4c847a;return _0x4556c9;}function validId(_0x3461ba){const _0x219288=_0x4f2dbc;return typeof _0x3461ba===_0x219288(0x141)&&_0x3461ba[_0x219288(0x11e)]>0x0&&_0x3461ba[_0x219288(0x11e)]<=0x20&&/^[A-Za-z0-9_-]+$/['test'](_0x3461ba);}function validName(_0x1c26b2){const _0x147efa=_0x4f2dbc;return typeof _0x1c26b2===_0x147efa(0x141)&&_0x1c26b2[_0x147efa(0xbb)]()['length']>0x0&&_0x1c26b2[_0x147efa(0x11e)]<=0x40;}function validType(_0x612774){const _0x3f69c4=_0x4f2dbc;return[_0x3f69c4(0xea),'ac','tv',_0x3f69c4(0x15e)][_0x3f69c4(0x16e)+'es'](_0x612774);}function validCode(_0x29d5bd){const _0x275db2=_0x4f2dbc;if(!_0x29d5bd)return!![];if(typeof _0x29d5bd!==_0x275db2(0x141)||_0x29d5bd[_0x275db2(0x11e)]>0x1000)return![];const _0x572ff3=_0x29d5bd[_0x275db2(0xfd)+'e'](/^zf=/i,'')[_0x275db2(0xfd)+'e'](/[\r\n]/g,'')[_0x275db2(0xbb)]();if(_0x572ff3[_0x275db2(0x124)+_0x275db2(0xa1)]('xx'))return _0x572ff3[_0x275db2(0x11e)]<=0x8;return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x275db2(0xc3)](_0x572ff3);}function requireDevicePut(_0xd0d2a7){const _0x402d73=_0x4f2dbc,_0x3ea8f7=asObject(_0xd0d2a7),_0xdd04a5=String(_0x3ea8f7['id']||'')[_0x402d73(0xbb)](),_0x43b728=String(_0x3ea8f7[_0x402d73(0xd6)]||'')['trim'](),_0xd64649=String(_0x3ea8f7[_0x402d73(0xc8)]||_0x402d73(0x15e))[_0x402d73(0xbb)]()||_0x402d73(0x15e);if(!validId(_0xdd04a5)||!validName(_0x43b728))throw new Error(_0x402d73(0x86)+'或名称不合法');if(!validType(_0xd64649))throw new Error(_0x402d73(0x158)+'法');return{'id':_0xdd04a5,'name':_0x43b728,'type':_0xd64649};}function requireCommandPut(_0x41b10e){const _0x1b779f=_0x4f2dbc,_0x1dfd3e=asObject(_0x41b10e),_0x1faf53=String(_0x1dfd3e[_0x1b779f(0xe5)+_0x1b779f(0x116)]||'')['trim'](),_0x2d4559=String(_0x1dfd3e['id']||'')[_0x1b779f(0xbb)](),_0x26859a=_0x1dfd3e[_0x1b779f(0xd6)]==null?'':String(_0x1dfd3e[_0x1b779f(0xd6)])[_0x1b779f(0xbb)](),_0x41ddf2=_0x1dfd3e[_0x1b779f(0x15f)]==null?'':String(_0x1dfd3e[_0x1b779f(0x15f)]);if(!validId(_0x1faf53)||!validId(_0x2d4559))throw new Error(_0x1b779f(0xef)+_0x1b779f(0x129));if(_0x26859a&&!validName(_0x26859a))throw new Error('按键名称不合'+'法');if(!validCode(_0x41ddf2))throw new Error(_0x1b779f(0x184)+'合法');return{'device_id':_0x1faf53,'id':_0x2d4559,'name':_0x26859a,'code':_0x41ddf2};}function requireCommandDelete(_0x29bdec){const _0x3ac501=_0x4f2dbc,_0x37af51=asObject(_0x29bdec),_0x42f1ad=String(_0x37af51[_0x3ac501(0xe5)+_0x3ac501(0x116)]||'')[_0x3ac501(0xbb)](),_0x505a84=String(_0x37af51['id']||'')[_0x3ac501(0xbb)]();if(!validId(_0x42f1ad)||!validId(_0x505a84))throw new Error('缺少要删除的'+'电器或按键');return{'device_id':_0x42f1ad,'id':_0x505a84};}app[_0x4f2dbc(0xf1)](_0x4f2dbc(0x176)+_0x4f2dbc(0x133)+'rt',async(_0x475bd7,_0x576ed3)=>{const _0x1942ab=_0x4f2dbc;try{const _0x22db9d=await deviceFetch(_0x1942ab(0x106)+_0x1942ab(0x6f));_0x576ed3[_0x1942ab(0xd2)]({'version':0x1,'exportedAt':new Date()[_0x1942ab(0xec)+_0x1942ab(0x180)](),'devices':_0x22db9d['device'+'s']||[]});}catch(_0x57e01b){_0x576ed3[_0x1942ab(0x95)](0x190)['json']({'message':_0x57e01b[_0x1942ab(0x139)+'e']});}}),app['post'](_0x4f2dbc(0x176)+_0x4f2dbc(0x140)+'rt',async(_0x42a994,_0x290492)=>{const _0x198eb1=_0x4f2dbc;try{const _0x18850d=validateIrImportPayload(_0x42a994['body']);_0x290492[_0x198eb1(0xd2)](await deviceFetch(_0x198eb1(0xbc)+_0x198eb1(0x6f),{'method':_0x198eb1(0xcd),'body':JSON[_0x198eb1(0x141)+'ify'](_0x18850d)}));}catch(_0x58a1bb){_0x290492[_0x198eb1(0x95)](0x190)[_0x198eb1(0xd2)]({'message':_0x58a1bb[_0x198eb1(0x139)+'e']});}}),app[_0x4f2dbc(0x1a6)](_0x4f2dbc(0x176)+_0x4f2dbc(0x111),async(_0x4c82ac,_0x4de19d)=>{const _0x93333a=_0x4f2dbc;try{const _0x1b2be7=irTestPayload(_0x4c82ac[_0x93333a(0x183)]);console[_0x93333a(0x173)](_0x93333a(0xe4)+_0x93333a(0x10f)+_0x93333a(0x194),_0x4c82ac[_0x93333a(0x183)],_0x93333a(0x161)+'d=',_0x1b2be7);if(!_0x1b2be7[_0x93333a(0x15f)]&&(!_0x1b2be7[_0x93333a(0xe5)+_0x93333a(0x116)]||!_0x1b2be7['id']))throw new Error(_0x93333a(0x123)+'按键');_0x4de19d[_0x93333a(0xd2)](await deviceFetch(_0x93333a(0xb0)+'st',{'method':'POST','body':JSON[_0x93333a(0x141)+'ify'](_0x1b2be7)}));}catch(_0x4341ba){_0x4de19d[_0x93333a(0x95)](0x190)['json']({'message':_0x4341ba[_0x93333a(0x139)+'e']});}}),registerCameraRoutes(app,{'getConfig':()=>{return new Proxy(config,{'get'(_0x2aa6af,_0x3e8212){const _0x4b14c0=_0x18c2,_0x10c943=getRequestDevice()?.['id']||_0x2aa6af[_0x4b14c0(0x119)+_0x4b14c0(0x18b)+'Id'];if(_0x3e8212===_0x4b14c0(0xae))return _0x10c943?_0x2aa6af[_0x4b14c0(0xe5)+'s']?.[_0x10c943]?.[_0x4b14c0(0xae)]:_0x2aa6af['camera'];return _0x2aa6af[_0x3e8212];},'set'(_0x385e2a,_0x599595,_0x476945){const _0x428396=_0x18c2,_0x257a8e=getRequestDevice()?.['id']||_0x385e2a['active'+_0x428396(0x18b)+'Id'];if(_0x599595===_0x428396(0xae)&&_0x257a8e)return setCamera(_0x385e2a,_0x257a8e,_0x476945),!![];return _0x385e2a[_0x599595]=_0x476945,!![];}});},'saveConfig':()=>saveConfig(config)}),setCameraHooks({'getDeviceBaseUrl':()=>getRequestDevice()?.[_0x4f2dbc(0x91)+'l']||focusedRecord()?.[_0x4f2dbc(0x91)+'l']||config['device'+_0x4f2dbc(0xeb)+'l'],'getDeviceCaps':()=>currentCaps(),'publishGimbal':async _0xb73e26=>{const _0x16f346=_0x4f2dbc;requireDeviceOnline();const _0x38c9bf=_0xb73e26?.[_0x16f346(0x188)]===_0x16f346(0xe2)?_0x16f346(0xe2):_0x16f346(0x105),_0x49eeec=await deviceFetch('/gimba'+_0x16f346(0x177)+_0x16f346(0x82),{'method':_0x16f346(0xcd),'body':JSON[_0x16f346(0x141)+_0x16f346(0xb9)](_0xb73e26||{}),'kind':_0x38c9bf,'timeoutMs':0x1f4});if(_0x49eeec['ok']===![])throw new Error(_0x49eeec['messag'+'e']||_0x16f346(0xe0));return _0x49eeec;}});async function publishAnnounce(_0x59b852){const _0x57c005=_0x4f2dbc;if(!currentMossOnline())return![];const _0x17b06e=typeof _0x59b852===_0x57c005(0x141)?_0x59b852:_0x59b852?.['prompt'],_0x947518=typeof _0x59b852===_0x57c005(0x141)?'':_0x59b852?.[_0x57c005(0x192)+'ce'];try{return await publishWakeAndText(_0x17b06e,_0x947518),applyVoice(focusedRecord()?.['id']||config[_0x57c005(0x119)+'Device'+'Id'],_0x57c005(0x11a)+_0x57c005(0x199)),!![];}catch(_0x636e99){return console[_0x57c005(0xe1)](_0x57c005(0x198)+_0x57c005(0xfc)+_0x57c005(0x1a8)+_0x57c005(0x11b)+'il',_0x636e99[_0x57c005(0x139)+'e']),![];}}registerMcpRoutes(app,{'getConfig':()=>config,'emit':emit,'publishWakeAndText':_0x1be765=>{const _0x43d251=_0x4f2dbc;if(!currentMossOnline())return![];return publishWakeAndText(_0x1be765)['catch'](_0x293e88=>console['warn'](_0x43d251(0x94)+_0x43d251(0xde),_0x293e88[_0x43d251(0x139)+'e'])),!![];},'publishAnnounce':publishAnnounce,'isAnnounceReady':()=>currentMossOnline(),'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()['wakeOn'+_0x4f2dbc(0x144)+_0x4f2dbc(0x83)]===!![],'syncYunxiangjiInbox':()=>scheduleYunxiangjiInboxPush()});function shouldServeUi(){const _0x52332d=_0x4f2dbc;return process['env'][_0x52332d(0xdb)+'NV']===_0x52332d(0xa2)+_0x52332d(0xcc)||process[_0x52332d(0x19e)][_0x52332d(0x18e)+_0x52332d(0xa8)+_0x52332d(0x101)]==='1';}function openBrowser(_0x4eb97f){const _0x1d38bf=_0x4f2dbc;try{if(process[_0x1d38bf(0x67)+'rm']===_0x1d38bf(0xa5))execFile(_0x1d38bf(0x197),[_0x4eb97f]);else{if(process[_0x1d38bf(0x67)+'rm']===_0x1d38bf(0x7b))execFile(_0x1d38bf(0x76),['/c',_0x1d38bf(0x71),'',_0x4eb97f]);else execFile(_0x1d38bf(0x136)+'en',[_0x4eb97f]);}}catch(_0xf02e61){console[_0x1d38bf(0xe1)](_0x1d38bf(0x79)+_0x1d38bf(0x19d),_0xf02e61[_0x1d38bf(0x139)+'e']);}}function serveProductionUi(){const _0x543f00=_0x4f2dbc,_0x2d9aff=_0x210054[_0x543f00(0x190)](DIST_DIR,_0x543f00(0xc0)+_0x543f00(0x108));if(_0x524740['exists'+_0x543f00(0x118)](_0x2d9aff))return registerMediaRoutes(app,DIST_DIR),app[_0x543f00(0x8f)](_0x3f6860[_0x543f00(0xda)](DIST_DIR)),app[_0x543f00(0x8f)]((_0x5a0826,_0x2697db,_0x29d2b0)=>{const _0x24bf97=_0x543f00;if(_0x5a0826['method']!==_0x24bf97(0x1a1)&&_0x5a0826[_0x24bf97(0xaa)]!==_0x24bf97(0x155))return _0x29d2b0();if(_0x5a0826['path'][_0x24bf97(0x124)+_0x24bf97(0xa1)](_0x24bf97(0x72)))return _0x29d2b0();_0x2697db[_0x24bf97(0x69)+'le'](_0x2d9aff);}),!![];return console['warn'](_0x543f00(0xb8)+_0x543f00(0x156)+'构建'),![];}shouldServeUi()&&!shouldAttachDevUi()&&serveProductionUi();let httpServer=null,viteDev=null,shuttingDown=![];function shutdown(){const _0x18ff31=_0x4f2dbc;if(shuttingDown)return;shuttingDown=!![];try{disconnectCamera();}catch{}clearListenRuntime();const _0x5cff3d=()=>{const _0x31ffb4=_0x18c2;if(!httpServer){process[_0x31ffb4(0x77)](0x0);return;}httpServer[_0x31ffb4(0x146)](()=>process['exit'](0x0)),setTimeout(()=>process[_0x31ffb4(0x77)](0x0),0x320)[_0x31ffb4(0xd8)]();};if(!viteDev){_0x5cff3d();return;}viteDev[_0x18ff31(0x146)]()[_0x18ff31(0x160)](_0x5cff3d,_0x5cff3d);}function createHttpServer(){const _0x209e98=_0x4f2dbc,_0xd76099=_0x2d86f9[_0x209e98(0x97)+_0x209e98(0x145)](app);return _0xd76099[_0x209e98(0x179)+'t']=0x0,_0xd76099['keepAl'+'iveTim'+_0x209e98(0x130)]=0x0,_0xd76099[_0x209e98(0x14f)+'sTimeo'+'ut']=0x0,_0xd76099['reques'+_0x209e98(0x169)+'ut']=0x0,_0xd76099;}function attachServer(_0x23dbd0,_0x244e02){const _0xffe660=_0x4f2dbc;httpServer=_0x23dbd0,writeRuntime(_0x244e02),process[_0xffe660(0x19e)][_0xffe660(0x12d)]=String(_0x244e02),process[_0xffe660(0x19e)][_0xffe660(0x100)+_0xffe660(0xfa)+'T']=String(_0x244e02);const _0x4f1f03=_0xffe660(0x171)+_0xffe660(0xc4)+_0xffe660(0xc1)+_0x244e02,_0x23b12e=process[_0xffe660(0x19e)][_0xffe660(0xcb)+_0xffe660(0x8a)]?'\x20v'+process[_0xffe660(0x19e)][_0xffe660(0xcb)+'ERSION']:'';console['log'](_0xffe660(0xbf)+_0xffe660(0xbe)+_0x23b12e+'\x20\x20'+_0x4f1f03),viteDev&&console[_0xffe660(0x173)]('[serve'+_0xffe660(0xc2)+_0xffe660(0x110)+_0xffe660(0xfe)+_0xffe660(0xb5)),_0x244e02!==PORT&&console[_0xffe660(0x173)](_0xffe660(0xa7)+_0xffe660(0xe9)+PORT+(_0xffe660(0xf3)+_0xffe660(0x66)+_0xffe660(0x16a))+_0x244e02+'。'),process['env']['MOSS_O'+_0xffe660(0xa8)+_0xffe660(0x101)]==='1'&&openBrowser(_0x4f1f03),prefetchFfmpeg(),initBridgeWebSocket(),startPresenceWatch();}function listenOn(_0xdd50cf,_0x42f2c3){return new Promise((_0x16196f,_0x1304b6)=>{const _0x18c52=_0x18c2,_0x514ef5=_0x4c8fd3=>{const _0x3d3b9c=_0x18c2;_0xdd50cf[_0x3d3b9c(0xf6)](_0x3d3b9c(0x137)+_0x3d3b9c(0x1a7),_0x4e7760),_0x1304b6(_0x4c8fd3);},_0x4e7760=()=>{const _0x4467d6=_0x18c2;_0xdd50cf['off'](_0x4467d6(0x178),_0x514ef5),_0x16196f(_0xdd50cf);};_0xdd50cf[_0x18c52(0x14b)](_0x18c52(0x178),_0x514ef5),_0xdd50cf[_0x18c52(0x14b)](_0x18c52(0x137)+_0x18c52(0x1a7),_0x4e7760),_0xdd50cf[_0x18c52(0x137)](_0x42f2c3);});}async function listenPreferred(_0x581429){const _0x2090d2=_0x4f2dbc,_0x4c6fce=await reclaimListenPort({'preferredPort':_0x581429,'runtimePath':RUNTIME_PATH});_0x4c6fce['killed']&&console[_0x2090d2(0x173)](_0x2090d2(0xa7)+_0x2090d2(0x102)+_0x2090d2(0x114)+_0x2090d2(0x9b)+',继续使用\x20'+_0x581429+'。');const _0x43ccf1=createHttpServer();if(shouldAttachDevUi())try{viteDev=await attachViteDev(app,_0x43ccf1,{'root':ROOT_DIR});}catch(_0x3da55c){console[_0x2090d2(0xe1)](_0x2090d2(0xa7)+_0x2090d2(0xd5)+_0x2090d2(0xf8),_0x3da55c[_0x2090d2(0x139)+'e']);}const _0x540f38=0x18;for(let _0x546185=0x0;_0x546185<_0x540f38;_0x546185+=0x1){const _0x5f4e10=nextListenPort(_0x581429,_0x546185);try{await listenOn(_0x43ccf1,_0x5f4e10),attachServer(_0x43ccf1,_0x5f4e10);return;}catch(_0x4d6934){_0x4d6934[_0x2090d2(0x15f)]!==_0x2090d2(0x115)+_0x2090d2(0x8d)&&(console['error'](_0x4d6934),process[_0x2090d2(0x77)](0x1)),_0x546185<0x7&&(await reclaimListenPort({'preferredPort':_0x581429,'runtimePath':RUNTIME_PATH}),await sleep(0x78));}}console[_0x2090d2(0x178)]('[serve'+_0x2090d2(0xe9)+_0x581429+(_0x2090d2(0x189)+_0x2090d2(0x18d))),process[_0x2090d2(0x77)](0x1);}process['on']('SIGTER'+'M',shutdown),process['on'](_0x4f2dbc(0xc6),shutdown),listenPreferred(PORT)['catch'](_0x258b28=>{const _0x2a7e90=_0x4f2dbc;console[_0x2a7e90(0x178)](_0x258b28),process[_0x2a7e90(0x77)](0x1);});
|
|
1
|
+
const _0x48ebcd=_0x53b0;(function(_0x5e5b2e,_0x3aa207){const _0x2c25a2=_0x53b0,_0x1a5031=_0x5e5b2e();while(!![]){try{const _0x4637a1=parseInt(_0x2c25a2(0x202))/0x1+parseInt(_0x2c25a2(0x24f))/0x2*(-parseInt(_0x2c25a2(0x12c))/0x3)+parseInt(_0x2c25a2(0x1d0))/0x4*(parseInt(_0x2c25a2(0x1a6))/0x5)+-parseInt(_0x2c25a2(0x1f0))/0x6*(parseInt(_0x2c25a2(0x1f6))/0x7)+-parseInt(_0x2c25a2(0x213))/0x8*(parseInt(_0x2c25a2(0x149))/0x9)+-parseInt(_0x2c25a2(0x155))/0xa+parseInt(_0x2c25a2(0x1ab))/0xb;if(_0x4637a1===_0x3aa207)break;else _0x1a5031['push'](_0x1a5031['shift']());}catch(_0x541931){_0x1a5031['push'](_0x1a5031['shift']());}}}(_0x4ec2,0x98f20));import _0x24e640 from'node:fs';import _0x8ea7c3 from'node:os';import _0x30377c from'node:path';import _0x5907f2 from'node:http';import{execFile}from'node:child_process';import{fileURLToPath}from'node:url';import _0x5c053c from'express';import _0x4d0b15 from'cors';import{disconnectCamera,registerCameraRoutes,setCameraHooks,stripOnboardCameraConfig}from'./camera.mjs';import{findDevice,isBoardLabel,normalizeMac,resolveUpsertId}from'./device-identity.mjs';import{migrateLegacyConfig,requireActiveDevice,setCamera,upsertDevice}from'./device-registry.mjs';import{applyHealth,isOnline}from'./device-presence.mjs';import{probeDevice}from'./device-probe.mjs';import{applyChatDelta,chatSyncIntervalMs,shouldFetchChatSync}from'./device-chat-sync.mjs';import{createDeviceHttpQueue}from'./device-http.mjs';import{shouldApplyRemoteVoice,voiceFromWakeAck}from'./voice-wake.mjs';import{registerDeviceRoutes}from'./device-routes.mjs';import{buildSessionView,withActiveDevice}from'./device-session.mjs';import{attachRequestDevice,getRequestDevice,voicesFromRuntime}from'./device-focus.mjs';import{createDeviceRuntime}from'./device-runtime.mjs';import{discoverMossDevices}from'./lan-discover.mjs';import{registerMcpRoutes}from'./mcp/routes.mjs';import{initBridgeWebSocket,bridgeManager}from'./mcp/bridge-manager.mjs';import{setTaskNotifyHooks}from'./mcp/task-notify.mjs';import{loadMcpSettings}from'./mcp/settings.mjs';import{exportYunxiangjiInbox,ingestDeviceYunxiangjiCreates,maybeAckYunxiangjiFromChat,maybeApplyYunxiangjiFromChat}from'./mcp/yunxiangji.mjs';import{prefetchFfmpeg}from'./ffmpeg.mjs';import{registerMediaRoutes}from'./media-cache.mjs';import{validateIrImportPayload}from'./ir-import-validate.mjs';import{applyDeviceHealthTo,normalizeCaps}from'./board-presets.mjs';import{registerMihomeRoutes}from'./mihome/routes.mjs';import{clearRuntime,nextListenPort,reclaimListenPort,sleep}from'./listen-port.mjs';import{attachViteDev,shouldAttachDevUi}from'./dev-ui.mjs';const PORT=Number(process[_0x48ebcd(0x139)][_0x48ebcd(0x223)]||0xec4),ROOT_DIR=_0x30377c[_0x48ebcd(0x1b2)](_0x30377c[_0x48ebcd(0x217)+'e'](fileURLToPath(import.meta.url)),'..'),DIST_DIR=_0x30377c[_0x48ebcd(0x1b2)](ROOT_DIR,_0x48ebcd(0x231)),CONFIG_DIR=_0x30377c[_0x48ebcd(0x1b2)](_0x8ea7c3[_0x48ebcd(0x1d5)+'r'](),_0x48ebcd(0x22b)+_0x48ebcd(0x1c6)+'p'),CONFIG_PATH=_0x30377c[_0x48ebcd(0x1b2)](CONFIG_DIR,_0x48ebcd(0x1c4)+'.json'),RUNTIME_PATH=_0x30377c[_0x48ebcd(0x1b2)](CONFIG_DIR,_0x48ebcd(0x183)+_0x48ebcd(0x19b));function loadConfig(){const _0x4044d7=_0x48ebcd;try{return migrateLegacyConfig(JSON[_0x4044d7(0x1d1)](_0x24e640['readFi'+_0x4044d7(0x1be)](CONFIG_PATH,_0x4044d7(0x15b))));}catch{return migrateLegacyConfig({'deviceBaseUrl':'','mqtt':null,'bound':![]});}}function saveConfig(_0x551684){const _0x177aec=_0x48ebcd;_0x24e640['mkdirS'+'ync'](CONFIG_DIR,{'recursive':!![]}),_0x24e640['writeF'+_0x177aec(0x255)+'c'](CONFIG_PATH,JSON[_0x177aec(0x13a)+_0x177aec(0x147)](_0x551684,null,0x2));}function applyDeviceHealth(_0x262ba0,_0xfefc1c={}){const _0x110645=_0x48ebcd;applyDeviceHealthTo(config,_0x262ba0);if(!_0x262ba0||typeof _0x262ba0!==_0x110645(0x180))return null;const _0x3a09cd=String(_0xfefc1c[_0x110645(0x1b7)+'Id']||_0x262ba0[_0x110645(0x1b7)+_0x110645(0x153)]||'')[_0x110645(0x1b1)](),_0x392a61=normalizeMac(_0x262ba0[_0x110645(0x1a8)]),_0x2ededd=_0xfefc1c['id']||config[_0x110645(0x1e3)+_0x110645(0x247)+'Id'],_0x3940c2=findDevice(config,{'mac':_0x392a61,'clientId':_0x3a09cd,'id':_0x2ededd}),_0x54ac26=resolveUpsertId(config,{'mac':_0x392a61,'clientId':_0x3a09cd,'id':_0x3940c2?.['id']||_0x2ededd});if(!_0x54ac26)return null;const _0x462c6d=_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)]&&!isBoardLabel(_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)])?_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)]:undefined;upsertDevice(config,{'id':_0x54ac26,'mac':_0x392a61||undefined,'clientId':_0x3a09cd||_0x3940c2?.['client'+'Id'],'board':_0x262ba0[_0x110645(0x1b0)]||_0x262ba0[_0x110645(0x167)],'product':_0x262ba0['produc'+'t'],'hostname':_0x262ba0[_0x110645(0x1a2)+'me'],'displayName':_0x462c6d,'ip':_0x262ba0['ip']});const _0x40be73=applyHealth(config[_0x110645(0x16b)+'s'][_0x54ac26],_0x262ba0);return config[_0x110645(0x16b)+'s'][_0x54ac26]=_0x40be73,_0x40be73;}function activeRecord(){const _0x11a7b5=_0x48ebcd;return config[_0x11a7b5(0x16b)+'s']?.[config[_0x11a7b5(0x1e3)+_0x11a7b5(0x247)+'Id']]||null;}function currentCaps(){const _0x4a19c4=_0x48ebcd,_0x227d4c=focusedRecord();return normalizeCaps({'board':_0x227d4c?.[_0x4a19c4(0x1b0)]||config[_0x4a19c4(0x1b0)],'name':_0x227d4c?.[_0x4a19c4(0x1b0)]||config[_0x4a19c4(0x1b0)],'product':_0x227d4c?.['produc'+'t']||config[_0x4a19c4(0x22a)+'t']});}function currentMossOnline(){const _0x4e9ce7=_0x48ebcd,_0x5cdef0=focusedRecord();if(_0x5cdef0&&isOnline(_0x5cdef0['lastSe'+'en'],Date[_0x4e9ce7(0x1e6)]()))return!![];return![];}function writeRuntime(_0x5d741a){const _0x5a1b6b=_0x48ebcd;try{_0x24e640[_0x5a1b6b(0x14a)+_0x5a1b6b(0x1fd)](CONFIG_DIR,{'recursive':!![]}),_0x24e640[_0x5a1b6b(0x172)+_0x5a1b6b(0x255)+'c'](RUNTIME_PATH,JSON['string'+_0x5a1b6b(0x147)]({'port':_0x5d741a,'pid':process[_0x5a1b6b(0x14e)],'at':Date[_0x5a1b6b(0x1e6)]()}));}catch(_0x750b1c){console[_0x5a1b6b(0x275)](_0x5a1b6b(0x24e)+_0x5a1b6b(0x150)+':',_0x750b1c[_0x5a1b6b(0x170)+'e']);}}function clearListenRuntime(){clearRuntime(RUNTIME_PATH);}let config=loadConfig();for(const id of Object[_0x48ebcd(0x19e)](config[_0x48ebcd(0x16b)+'s']||{})){const wrap={'camera':config[_0x48ebcd(0x16b)+'s'][id]['camera']};stripOnboardCameraConfig(wrap)&&(config[_0x48ebcd(0x16b)+'s'][id][_0x48ebcd(0x1e9)]=wrap[_0x48ebcd(0x1e9)],saveConfig(config));}let mqttStatus=_0x48ebcd(0x157);const runtime=createDeviceRuntime(),chatSyncTimers=new Map();let presenceTimer=null;const boardQueues=new Map();function focusedRecord(){const _0x283fdb=_0x48ebcd,_0x4af88a=getRequestDevice();if(_0x4af88a?.['id']&&config[_0x283fdb(0x16b)+'s']?.[_0x4af88a['id']])return config[_0x283fdb(0x16b)+'s'][_0x4af88a['id']];return activeRecord();}function runtimeOf(_0x5d7877){const _0x1546e8=_0x48ebcd;return runtime['of'](_0x5d7877||focusedRecord()?.['id']||config[_0x1546e8(0x1e3)+_0x1546e8(0x247)+'Id']);}function deviceQueue(_0x7dc161){const _0x222974=_0x48ebcd,_0x46213d=_0x7dc161||config[_0x222974(0x1e3)+_0x222974(0x247)+'Id']||'_';if(!boardQueues[_0x222974(0x132)](_0x46213d))boardQueues[_0x222974(0x17a)](_0x46213d,createDeviceHttpQueue());return boardQueues[_0x222974(0x19f)](_0x46213d);}function initTaskNotify(){const _0x21cfd2=_0x48ebcd;setTaskNotifyHooks({'emit':emit,'publishWakeAndText':_0x2b8039=>{if(!currentMossOnline())return![];try{return publishWakeAndText(_0x2b8039),!![];}catch{return![];}},'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()[_0x21cfd2(0x1d4)+'TaskCo'+_0x21cfd2(0x12d)]===!![]});}initTaskNotify();const sseClients=new Set();function emit(_0x4f164c,_0x18bdf4){const _0x56857d=_0x48ebcd,_0x39aec1=_0x56857d(0x1de)+'\x20'+_0x4f164c+(_0x56857d(0x15a)+'\x20')+JSON[_0x56857d(0x13a)+'ify'](_0x18bdf4)+'\x0a\x0a';for(const _0x438afd of sseClients){_0x438afd[_0x56857d(0x246)](_0x39aec1);}}function statusPayload(_0x222be6={}){const _0x4902cc=_0x48ebcd;return{...buildSessionView(config,{'mqttStatus':_0x4902cc(0x157),'failCount':0x0,'lastError':'','voices':voicesFromRuntime(config,runtime)}),'status':_0x4902cc(0x157),'bound':!![],'failCount':0x0,'lastError':'',..._0x222be6};}function inferFetchKind(_0x3d2672,_0x4bf37d={}){const _0x2d37d2=_0x48ebcd;if(_0x4bf37d[_0x2d37d2(0x18d)])return _0x4bf37d[_0x2d37d2(0x18d)];if(_0x3d2672['starts'+_0x2d37d2(0x1f7)](_0x2d37d2(0x263)))return _0x2d37d2(0x1ee);if(_0x3d2672===_0x2d37d2(0x1ae)+'h')return'health';if(_0x3d2672[_0x2d37d2(0x1d8)+_0x2d37d2(0x1f7)]('/gimba'+'l'))try{const _0x1f3215=JSON[_0x2d37d2(0x1d1)](_0x4bf37d[_0x2d37d2(0x197)]||'{}');return _0x1f3215[_0x2d37d2(0x21e)]==='stop'?'stop':_0x2d37d2(0x14b);}catch{return _0x2d37d2(0x14b);}return'ir';}function enqueueBoard(_0x3de7a1,_0x2b74a0,_0x28d4c9){return new Promise((_0x191d80,_0xab9614)=>{deviceQueue(_0x28d4c9)['enqueu'+'e'](_0x3de7a1,async()=>{try{_0x191d80(await _0x2b74a0());}catch(_0x4b6638){_0xab9614(_0x4b6638);}});});}async function rawDeviceFetch(_0x58ae73,_0x55e26a={}){const _0x244159=_0x48ebcd,{baseUrl:_0x24af59,useLan:_0x2857b2,kind:_0x389827,timeoutMs:_0xeffbc9,deviceId:_0x160e86,..._0x19835d}=_0x55e26a,_0xf4619c=getRequestDevice(),_0x246018=_0x160e86||_0xf4619c?.['id']||config[_0x244159(0x1e3)+_0x244159(0x247)+'Id'];let _0x24613b=_0x24af59||'';!_0x24613b&&_0x2857b2&&(_0x24613b=config[_0x244159(0x16b)+_0x244159(0x233)+'l']);!_0x24613b&&_0xf4619c?.[_0x244159(0x146)+'l']&&(_0x24613b=_0xf4619c[_0x244159(0x146)+'l']);!_0x24613b&&_0x246018&&(_0x24613b=config['device'+'s']?.[_0x246018]?.[_0x244159(0x146)+'l']||'');if(!_0x24613b)try{_0x24613b=requireActiveDevice(config)[_0x244159(0x146)+'l'];}catch{_0x24613b=config[_0x244159(0x16b)+_0x244159(0x233)+'l'];}if(!_0x24613b){const _0xd58754=new Error(_0x244159(0x1fb));_0xd58754[_0x244159(0x25e)]=0x199;throw _0xd58754;}const _0x444f22=''+_0x24613b+_0x58ae73,_0x5a909b=await fetch(_0x444f22,{..._0x19835d,'signal':_0x55e26a[_0x244159(0x20a)]||AbortSignal[_0x244159(0x1e8)+'t'](_0xeffbc9||0x1f40),'headers':{'Content-Type':_0x244159(0x22e)+_0x244159(0x21a)+_0x244159(0x25d),..._0x55e26a['header'+'s']||{}}}),_0x4eec12=await _0x5a909b[_0x244159(0x135)]();let _0x452050={};try{_0x452050=_0x4eec12?JSON[_0x244159(0x1d1)](_0x4eec12):{};}catch{_0x452050={'raw':_0x4eec12};}if(!_0x5a909b['ok']){const _0x29f10c=new Error(_0x452050[_0x244159(0x170)+'e']||_0x244159(0x144)+'回\x20'+_0x5a909b['status']);_0x29f10c[_0x244159(0x1c3)]=_0x452050;throw _0x29f10c;}return _0x452050;}function deviceFetch(_0x247783,_0xaa3eda={}){const _0x51750f=_0x48ebcd,_0x874d55=getRequestDevice(),_0x1e92ef=_0xaa3eda['device'+'Id']||_0x874d55?.['id']||config[_0x51750f(0x1e3)+_0x51750f(0x247)+'Id'];return enqueueBoard(inferFetchKind(_0x247783,_0xaa3eda),()=>rawDeviceFetch(_0x247783,{..._0xaa3eda,'deviceId':_0x1e92ef}),_0x1e92ef);}function applyVoice(_0x55ee0f,_0x2baabe){const _0x3eb09c=_0x48ebcd,_0x25567d=_0x55ee0f||focusedRecord()?.['id']||config['active'+_0x3eb09c(0x247)+'Id'],_0x1be622=String(_0x2baabe||'')[_0x3eb09c(0x1b1)]();if(!_0x25567d||!_0x1be622)return;const _0x5b655c=runtime['of'](_0x25567d);if(config[_0x3eb09c(0x16b)+'s']?.[_0x25567d])config[_0x3eb09c(0x16b)+'s'][_0x25567d]['voice']=_0x1be622;_0x1be622!==_0x5b655c[_0x3eb09c(0x131)]&&(_0x5b655c[_0x3eb09c(0x131)]=_0x1be622,emit(_0x3eb09c(0x25e),statusPayload()));}function emitChatLines(_0x2db09e,_0x847db5){const _0x34fed8=_0x48ebcd;for(const _0x1b3594 of _0x2db09e){emit(_0x34fed8(0x174),{'type':_0x34fed8(0x23b)+_0x34fed8(0x1cb),'payload':{'role':_0x1b3594['role'],'text':_0x1b3594[_0x34fed8(0x135)],'state':_0x1b3594[_0x34fed8(0x199)],'deviceId':_0x847db5}}),_0x1b3594[_0x34fed8(0x126)]===_0x34fed8(0x168)+'ant'&&maybeAckYunxiangjiFromChat(_0x1b3594[_0x34fed8(0x135)]),(_0x1b3594[_0x34fed8(0x126)]===_0x34fed8(0x1bb)||_0x1b3594[_0x34fed8(0x126)]==='assist'+_0x34fed8(0x18b))&&maybeApplyYunxiangjiFromChat(_0x1b3594['text']);}}async function syncChatNow(_0x3ebcf5){const _0x215d1a=_0x48ebcd,_0x1dad2e=_0x3ebcf5||focusedRecord()?.['id']||config['active'+_0x215d1a(0x247)+'Id'],_0x4b9079=config[_0x215d1a(0x16b)+'s']?.[_0x1dad2e];if(!_0x4b9079?.[_0x215d1a(0x146)+'l'])return;const _0x2e5feb=runtime['of'](_0x1dad2e),_0x3020d6=_0x39e483=>deviceFetch(_0x215d1a(0x12b)+'sync?s'+_0x215d1a(0x148)+_0x39e483,{'timeoutMs':0x7d0,'kind':_0x215d1a(0x1ee),'deviceId':_0x1dad2e,'baseUrl':_0x4b9079[_0x215d1a(0x146)+'l']});let _0x43d101=await _0x3020d6(_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)]),_0x2ef7c4=applyChatDelta({'seq':_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)],'lines':[]},_0x43d101);_0x2ef7c4[_0x215d1a(0x1c0)+'d']&&(_0x43d101=await _0x3020d6(_0x2ef7c4[_0x215d1a(0x13f)]),_0x2ef7c4=applyChatDelta({'seq':_0x2ef7c4[_0x215d1a(0x13f)],'lines':[]},_0x43d101)),_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)]=_0x2ef7c4[_0x215d1a(0x13f)],ingestYunxiangjiFromDevicePayload(_0x43d101,_0x1dad2e),_0x43d101[_0x215d1a(0x131)]&&shouldApplyRemoteVoice({'remoteVoice':_0x43d101[_0x215d1a(0x131)],'localVoice':_0x2e5feb[_0x215d1a(0x131)],'wokeAt':_0x2e5feb[_0x215d1a(0x1b5)]})&&applyVoice(_0x1dad2e,_0x43d101[_0x215d1a(0x131)]),emitChatLines(_0x2ef7c4[_0x215d1a(0x16f)],_0x1dad2e);}function scheduleChatSync(_0x211293){const _0x1ca2a5=_0x48ebcd,_0x5837ff=_0x211293||focusedRecord()?.['id']||config[_0x1ca2a5(0x1e3)+_0x1ca2a5(0x247)+'Id'];if(!_0x5837ff)return;const _0x353d56=chatSyncTimers['get'](_0x5837ff);_0x353d56&&(clearTimeout(_0x353d56),chatSyncTimers['delete'](_0x5837ff));const _0x1f3b6e=chatSyncIntervalMs({'voice':runtime['of'](_0x5837ff)[_0x1ca2a5(0x131)]});if(!_0x1f3b6e)return;chatSyncTimers[_0x1ca2a5(0x17a)](_0x5837ff,setTimeout(()=>{const _0x4a0667=_0x1ca2a5;syncChatNow(_0x5837ff)[_0x4a0667(0x268)](()=>{})[_0x4a0667(0x1a7)+'y'](()=>scheduleChatSync(_0x5837ff));},_0x1f3b6e));}function _0x4ec2(){const _0x5b5c4=['DMvUDc1Z','BMfTzq','yxnZAxn0','5PEG5Rov5BU656Ul6k+T6z+Z','5PYQ5OM+5yIW5yMn56UV6Ag1','zgv2AwnL','y29TBwfU','q29UDgvU','57Y65Bcr6kAb6k+v5y+r55Qe','ywrKzwq','BwvZC2fN','ihn0yxr1','D3jPDgvg','y29UBMvJ','Bxf0Da','zxjYB3i','zgvY','AxnbCNjH','DxnL','5OMR5O+p5Bga5z+F572r5AsX','C2v0','Bc9JB250','5lQr5y+W5O6N5yI25AsX6lsL','yw5NAMKV','CMvZDgfY','Aw5Kl2XH','B2jQzwn0','rMXPz2H0','B2zM','CNvUDgLT','l2fWAs9J','yxjU','y2HHDf9Z','BgLZDgvU','l2DPBwjH','C2vSzwn0','Bwv0Ag9K','yw50','zw91Da','A2LUza','l3L1BNHP','B25SAw5L','6k+35AgR5yAzie1p','Ahr0CdOV','C2f5','5lIa5lU95Qgm6z2I5PYn5yQH','DMvUDhm','6l295BYa5y+r55wm6z2I77YA','DhLWzq','yM9KEq','lJaUmtO','C3rHDgu','BwfW','zs5QC29U','DhjPBMC','6Akr57Mb77Ym6k+356In5ycz','A2v5CW','z2v0','w21JCf0G','DhjLyw0','Ag9ZDg5H','y2uVzgvS','l2fWAq','DfnLCNzL','mteZmZG1DKjAqwzJ','zMLUywXS','BwfJ','AxnJB3zL','q2fJAguT','mJm4ntuYnJbSq21VBLm','vgfZA0nV','C3rHCNq','l2HLywX0','Agf0l3DH','yM9HCMq','DhjPBq','AM9PBG','6k6+5Ash5zYO5zcm5lIaia','A2LSBgvK','D29Rzuf0','Eu5HBwu','y2XPzw50','l2nVBMzP','tu9tuYdML6a','tu9tu19b','C3LZDgvT','Bw1HBMq','DMLJzs9K','BgvtEw5J','yw5K','CMv3B3vU','mw1I','tu9tuYdLV5K','zgv0ywLS','y29UzMLN','w3L1BNHP','zgvZA3rV','l2fJAW','w3nLCNzL','zhK9','uevox0js','zxnZywDL','ie1pu1pJGii','5OIw5zcn56EW5lIn5zci5Rov','l2LYl2nV','zxHPC3rZ','otjKwfHiAKe','CgfYC2u','CgXHDgzV','BMvK','D2fRzu9U','Ag9TzwrP','ufvu','rvjtsu9o','C3rHCNrZ','igfUBM91','DMLJzq','D2fRzuLU','y21K','zgvSzxrL','zxzLBNq6','tLvtrq','ruferfjj','yxnZAwDU','C3rVCa','ywn0AxzL','CMvHDgvZ','5y2G55sO56UV5y+J55Qe5lIk','BM93','5Rs75lIT77Yj77Ym5PQc5PE2','DgLTzw91','y2fTzxjH','ywn0AxzH','u2vYDMvY','57Y65Bcr5Asw6k6+5OIw5yQO','5zYO6l+E5O6L6k+T6z+Z5PYn','y2HHDa','ios7JEIIQ+wfTUs7LUEOIW','mtjgs3P2yvO','A2vLCefS','CI9KzxzP','Chv0','5RkH6io955M76k6W6l+z5y+W','y2HHDen1','mJu5nta2mwXLrhfvDW','v2L0Aa','AhrTBa','Cg9YDa','y3vZDg9T','6k+35ywi6ycj5OUP6k6+5Ash','6z2I77Ym6k+35ywi5OMN6kgm','Ew5J','56UV5y+Jia','zxzPy2uV','6k+356gU6k6K55s16isr5zkm','ue9tva','otKWmJu2sxvLsKzN','6k+35ywi6l+E5O6L6k6+5Ash','u3LUyW','BgfZDeHV','Ew8TBw9Z','Bw1HBMqV','C1rPBwvV','q29UBMvJ','C2LNBMfS','yNvZEq','5zsK6yAs5Pon5l2C6l+h5lQo','CMvZzxrd','l2fWAs9P','CI9PBxbV','yw5UB3vU','B3bLBG','C2v0sgvH','ntK0nen5u2TfAW','CI9SzwfY','w21PAg9T','u1mG5zYW5z2a','zgLYBMfT','CMvXDwvZ','Aw5N','yxrPB24V','Cgf0Aa','l2fWAs9L','B25Jzq','ywn0Aw9U','BMnLigzH','ExvUEgLH','Ev9Uyw1L','iowpIUwqJUE7REERR+wpOW','ue9sva','BM8Ty2fJ','Cg9ZDa','CY1HAq','Cgf5Bg9H','zeLK','zMLSDgvY','ChjVzhvJ','lM1VC3mT','D2fRzq','EgrNlw9W','yxbWBgLJ','tu9tuYdMRAm','DgvZDa','zgLZDa','CI90zxn0','qMfZzvvY','tK9erv9f','B3v0yM94','DMLJzxm','l2fWAs9O','ywrK','l2LYl3rL','5lIk5lIa5QYH5zsK6yAs6l+y','y2HHDc5T','zgLZCgXH','t1Dtrvi','y29Kzq','CMvWBgfJ','BgfZDfnL','l2LYl3jL','5O6L5y+J5zcm5lIa56UV5y+J','AgvHBhrO','lZeYnY4W','AhCUC3rH','D3jPDgu','rgv2AwnL','Dw5Yzwy','CL0G5PYQ6io95OYc','zwXLDgu','zxrL','sevbra','BMDQAv9V','5PEG5Rov5yAz5ywLihi','mJaXndzeChbLu2W','DgLUzW','CM9S','u0Lhsu5u','57Y65Bcr6kAb5yIG6zMK55Qe','C3bLzwq','AwXLu3LU','BMDQAv9J','zMX1C2Hi','CL0G5BEY57Ut5P2F','55s16isr5zkmie1p','ChjVBxb0','ueLFue9s','CI9JB21T','ANnVBG','C3rHDhvZ','CL0G','AwHVBwu','l2fWAs9I','zY9KzxzP','l2nOyxq','D2LUmZi','5PEG5Rov6iEQ5yQO5OMt5BYa','DgLVBG','y2vZ','y2f0y2G','l2LYl2v4','AxjFzgf0','DgjVEa','tu9tu19w','C3rUyw1L','77Ym5Ps55yMn56UV5lUJ56cb','77Ym57UN57UT5l2/55sOia','Aw5KzxGU','Dgv4Dc9L','AgvHzgvY','AxzLvgLT','5lYA54oT5PU05PAW44cc','D2fYBG','BgLNAhq','57QI5Asw56cb5Qc85BYp5lIn','CM9Szq','l2LYl2rL','AwrSzq','tu9tu19p','ywnRzwq','l2nOyxqV','mZaZDMjWtvzd','BxbSzxrL','AwqG5lIn5zci5Rov','DY9ZDgf0','Dc1uExbL','DM9Py2u','AgfZ','BgvUz3rO','5Asn77Ym6k+356In5ycz','Dgv4Da','tu9tuYdNPRS','l2H3','ifDPluzP','zw52','C3rYAw5N','C3rDigjV','zf9Pza','DxrIB3G','C2vUzezP','C2vX','5lIn5lIk44cc6k+356gU6k6K','Agf0','r0vu','y2XVC2u','tu9tuYdOV5q','55s15zMO57g75z6l5lIn5zci','yMfZzvvY','Awz5','Aw5Jzt0','mJaWn0TduLriDa','BwTKAxjt','zM9SBg93','5BQp5y2G55sO77Ym5B2t5yMn','Bg9N','CgLK','zxHPDa','Dw50Aw1L','5Rwp6kEi5zMO77YA','56km77Yi5y2h57QNl+A/Ga','x2LK','CL0G6Ag16z2I5lIo','mteYotuXntbVrfrUy3y','l2fWAs9K','CMvHzhK','5yQH77Ym6k+356In5zco5yAn','CNnVCG','cMrHDge6','DxrMoa','55s15zMO5OIw5OYj6zsUia','v2KTrMNJGii','zwfKzxjZ','5zYO562j5B6f6k6+5Ash5zUE','l2LYl2LT','y3jLyxrL','DgHLBG','DgfYDcbT','CWPKyxrH','zv0GCMvZ'];_0x4ec2=function(){return _0x5b5c4;};return _0x4ec2();}async function probeOne(_0x5a3e87,_0x40fd2c=Date[_0x48ebcd(0x1e6)]()){const _0x18e250=_0x48ebcd,_0x5e6ebd=config[_0x18e250(0x16b)+'s']?.[_0x5a3e87];if(!_0x5e6ebd)return;const _0x4eb8b4=await enqueueBoard(_0x18e250(0x243),()=>probeDevice(_0x5e6ebd,{'now':_0x40fd2c,'timeoutMs':0x7d0}),_0x5a3e87),_0x1a4fc4=_0x5e6ebd[_0x18e250(0x240)+'en'];Object[_0x18e250(0x1e1)](_0x5e6ebd,_0x4eb8b4[_0x18e250(0x16b)]);_0x5a3e87===config[_0x18e250(0x1e3)+_0x18e250(0x247)+'Id']&&(_0x4eb8b4[_0x18e250(0x18f)]&&_0x4eb8b4['device']['baseUr'+'l']&&(config[_0x18e250(0x16b)+_0x18e250(0x233)+'l']=_0x4eb8b4[_0x18e250(0x16b)][_0x18e250(0x146)+'l']));const _0x2c6cca=runtime['of'](_0x5a3e87);_0x4eb8b4['health']?.[_0x18e250(0x131)]&&shouldApplyRemoteVoice({'remoteVoice':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)],'localVoice':_0x2c6cca[_0x18e250(0x131)],'wokeAt':_0x2c6cca[_0x18e250(0x1b5)]})&&applyVoice(_0x5a3e87,_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)]),_0x4eb8b4[_0x18e250(0x243)]&&shouldFetchChatSync({'voice':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)]||_0x2c6cca[_0x18e250(0x131)],'remoteSeq':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x186)+'eq'],'localSeq':_0x2c6cca[_0x18e250(0x1f5)+_0x18e250(0x159)]})&&(syncChatNow(_0x5a3e87)[_0x18e250(0x268)](()=>{}),scheduleChatSync(_0x5a3e87)),Number(_0x4eb8b4[_0x18e250(0x243)]?.[_0x18e250(0x220)+_0x18e250(0x24d)+_0x18e250(0x13d)]||_0x4eb8b4[_0x18e250(0x16b)]?.[_0x18e250(0x220)+'ngjiOu'+_0x18e250(0x26b)]||0x0)>0x0&&pullYunxiangjiOutbox(_0x5a3e87)[_0x18e250(0x268)](()=>{}),_0x4eb8b4[_0x18e250(0x16b)]['lastSe'+'en']!==_0x1a4fc4&&(emit(_0x18e250(0x25e),statusPayload()),_0x4eb8b4[_0x18e250(0x18f)]&&scheduleYunxiangjiInboxPush(_0x5a3e87));}function startPresenceWatch(){if(presenceTimer)return;const _0x3b64f4=()=>{const _0x46766e=_0x53b0,_0x2942ba=Object[_0x46766e(0x19e)](config['device'+'s']||{});for(const _0x3588fc of _0x2942ba['slice'](0x0,0x4)){probeOne(_0x3588fc)[_0x46766e(0x268)](()=>{});}};_0x3b64f4(),presenceTimer=setInterval(_0x3b64f4,0x7d0);}function ingestYunxiangjiFromDevicePayload(_0x101ca3,_0x2d76a0){const _0x26a14e=_0x48ebcd,_0x2cc2fc=_0x101ca3?.[_0x26a14e(0x220)+_0x26a14e(0x256)+_0x26a14e(0x1e4)]||_0x101ca3?.['items'];if(!Array[_0x26a14e(0x177)+'y'](_0x2cc2fc)||!_0x2cc2fc[_0x26a14e(0x133)])return;const _0x413cbb=ingestDeviceYunxiangjiCreates(_0x2cc2fc),_0x5225a5=_0x413cbb[_0x26a14e(0x12a)]||_0x2cc2fc[_0x26a14e(0x19a)](_0x1dd0ef=>_0x1dd0ef?.['id'])[_0x26a14e(0x229)](Boolean);if(!_0x5225a5[_0x26a14e(0x133)])return;deviceFetch('/yunxi'+_0x26a14e(0x17d)+_0x26a14e(0x235)+_0x26a14e(0x1c7),{'method':_0x26a14e(0x201),'body':JSON[_0x26a14e(0x13a)+_0x26a14e(0x147)]({'ids':_0x5225a5}),'kind':_0x26a14e(0x1ee),'timeoutMs':0x7d0,'deviceId':_0x2d76a0})['catch'](()=>{}),scheduleYunxiangjiInboxPush(_0x2d76a0);}async function pullYunxiangjiOutbox(_0x7e2267){const _0x3168e8=_0x48ebcd,_0xe7dfe7=_0x7e2267||focusedRecord()?.['id']||config['active'+_0x3168e8(0x247)+'Id'],_0x263d61=await deviceFetch('/yunxi'+'angji/'+_0x3168e8(0x235),{'timeoutMs':0x7d0,'kind':_0x3168e8(0x1ee),'deviceId':_0xe7dfe7});ingestYunxiangjiFromDevicePayload(_0x263d61,_0xe7dfe7);}const inboxPushTimers=new Map();function scheduleYunxiangjiInboxPush(_0x3d681e){const _0x31b35d=_0x48ebcd,_0x138cd8=_0x3d681e||focusedRecord()?.['id']||config[_0x31b35d(0x1e3)+_0x31b35d(0x247)+'Id'];if(!_0x138cd8)return;const _0x261434=inboxPushTimers[_0x31b35d(0x19f)](_0x138cd8);if(_0x261434)clearTimeout(_0x261434);inboxPushTimers['set'](_0x138cd8,setTimeout(()=>{inboxPushTimers['delete'](_0x138cd8),pushYunxiangjiInbox(_0x138cd8)['catch'](()=>{});},0x12c));}async function pushYunxiangjiInbox(_0x39bce6){const _0x2b4c91=_0x48ebcd,_0x4a3804=_0x39bce6||focusedRecord()?.['id']||config[_0x2b4c91(0x1e3)+_0x2b4c91(0x247)+'Id'];if(!_0x4a3804)return;await deviceFetch(_0x2b4c91(0x18e)+_0x2b4c91(0x17d)+'inbox',{'method':_0x2b4c91(0x201),'body':JSON['string'+'ify'](exportYunxiangjiInbox()),'kind':_0x2b4c91(0x1ee),'timeoutMs':0x7d0,'deviceId':_0x4a3804});}function requireDeviceOnline(){const _0x547980=_0x48ebcd;if(!currentMossOnline())throw new Error(_0x547980(0x136)+'线');}async function publishWakeAndText(_0x5a84fb,_0x2ebf23){const _0x268d88=_0x48ebcd;requireDeviceOnline();const _0xa0bc59=focusedRecord()?.['id']||config[_0x268d88(0x1e3)+_0x268d88(0x247)+'Id'],_0x173851={'text':String(_0x5a84fb||'')};if(_0x2ebf23)_0x173851[_0x268d88(0x210)+'ce']=String(_0x2ebf23);await deviceFetch(_0x268d88(0x12b)+_0x268d88(0x192),{'method':'POST','body':JSON[_0x268d88(0x13a)+'ify'](_0x173851),'kind':_0x268d88(0x1ee),'timeoutMs':0xfa0,'deviceId':_0xa0bc59}),syncChatNow(_0xa0bc59)[_0x268d88(0x268)](()=>{}),scheduleChatSync(_0xa0bc59);}const app=_0x5c053c();app['use'](_0x4d0b15()),app[_0x48ebcd(0x178)](_0x5c053c[_0x48ebcd(0x25d)]({'limit':_0x48ebcd(0x1c1)})),app[_0x48ebcd(0x178)](attachRequestDevice(()=>config)),registerMihomeRoutes(app,{'configDir':CONFIG_DIR,'onMcpAccessChanged':()=>{const _0x3cc9fc=_0x48ebcd;try{bridgeManager[_0x3cc9fc(0x17e)+_0x3cc9fc(0x1a5)+'r']('moss-m'+_0x3cc9fc(0x260));}catch(_0x2f16dc){console[_0x3cc9fc(0x275)](_0x3cc9fc(0x215)+_0x3cc9fc(0x165)+_0x3cc9fc(0x163)+'cp',_0x2f16dc[_0x3cc9fc(0x170)+'e']);}}}),registerDeviceRoutes(app,{'getConfig':()=>config,'saveConfig':()=>saveConfig(config),'getExtras':()=>{const _0x359b4f=_0x48ebcd,_0x1aa431=focusedRecord(),_0xb2c54a=_0x1aa431?.['id']||config['active'+_0x359b4f(0x247)+'Id'];return{'mqttStatus':_0x359b4f(0x157),'mossOnline':currentMossOnline(),'capabilities':currentCaps(),'failCount':0x0,'lastError':'','mossChatState':_0xb2c54a?runtime['of'](_0xb2c54a)[_0x359b4f(0x131)]:_0x359b4f(0x128),'focusedDeviceId':_0xb2c54a||'','voices':voicesFromRuntime(config,runtime)};},'onActivate':_0x475469=>{const _0x3fa782=_0x48ebcd;runtime[_0x3fa782(0x20d)+_0x3fa782(0x141)](_0x475469['device']['id']),config[_0x3fa782(0x16b)+_0x3fa782(0x233)+'l']=_0x475469[_0x3fa782(0x16b)][_0x3fa782(0x146)+'l']||config['device'+'BaseUr'+'l']||'',applyDeviceHealthTo(config,_0x475469[_0x3fa782(0x16b)]),emit(_0x3fa782(0x25e),statusPayload()),probeOne(_0x475469[_0x3fa782(0x16b)]['id'])[_0x3fa782(0x268)](()=>{});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x21c)+_0x48ebcd(0x194),(_0x22652e,_0x416cac)=>{const _0x225c29=_0x48ebcd;_0x416cac[_0x225c29(0x212)+'der'](_0x225c29(0x16d)+_0x225c29(0x130),_0x225c29(0x271)+_0x225c29(0x166)+_0x225c29(0x1a1)),_0x416cac[_0x225c29(0x212)+'der'](_0x225c29(0x1aa)+'Contro'+'l',_0x225c29(0x224)+'he'),_0x416cac[_0x225c29(0x212)+_0x225c29(0x176)](_0x225c29(0x209)+_0x225c29(0x266),'keep-a'+'live'),_0x416cac[_0x225c29(0x257)+_0x225c29(0x15e)](),sseClients[_0x225c29(0x238)](_0x416cac),_0x416cac[_0x225c29(0x246)](_0x225c29(0x1de)+_0x225c29(0x171)+_0x225c29(0x164)+':\x20'+JSON[_0x225c29(0x13a)+_0x225c29(0x147)](statusPayload())+'\x0a\x0a'),_0x22652e['on'](_0x225c29(0x143),()=>sseClients[_0x225c29(0x1dd)](_0x416cac));}),app[_0x48ebcd(0x225)](_0x48ebcd(0x156)+_0x48ebcd(0x1a9)+'r',async(_0x6ab15,_0x3550be)=>{const _0x568a62=_0x48ebcd;try{const _0x1191cd=await discoverMossDevices({'lastHostname':config['lastHo'+_0x568a62(0x26d)],'lastBaseUrl':config['device'+_0x568a62(0x233)+'l']});_0x3550be['json']({'devices':_0x1191cd});}catch(_0x4b1304){_0x3550be[_0x568a62(0x25e)](0x1f4)[_0x568a62(0x25d)]({'message':_0x4b1304[_0x568a62(0x170)+'e']||_0x568a62(0x179)+'败'});}}),app['post'](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+_0x48ebcd(0x189),async(_0x1018fd,_0x50a71d)=>{const _0x410629=_0x48ebcd,_0x5ac28f=String(_0x1018fd[_0x410629(0x197)]?.['baseUr'+'l']||'')[_0x410629(0x23f)+'e'](/\/$/,'');if(!_0x5ac28f)return _0x50a71d[_0x410629(0x25e)](0x190)['json']({'message':_0x410629(0x190)+_0x410629(0x216)});const _0x3507c8=config[_0x410629(0x16b)+_0x410629(0x233)+'l'];config[_0x410629(0x16b)+'BaseUr'+'l']=_0x5ac28f;try{const _0x2f747d=await deviceFetch(_0x410629(0x1ae)+'h',{'baseUrl':_0x5ac28f});_0x2f747d['hostna'+'me']&&(config[_0x410629(0x205)+_0x410629(0x26d)]=_0x2f747d[_0x410629(0x1a2)+'me']),applyDeviceHealthTo(config,_0x2f747d),saveConfig(config),_0x50a71d[_0x410629(0x25d)]({'ok':!![],'health':_0x2f747d});}catch(_0x226844){config[_0x410629(0x16b)+_0x410629(0x233)+'l']=_0x3507c8,_0x50a71d[_0x410629(0x25e)](0x190)['json']({'message':'找到地址但连'+_0x410629(0x140)+_0x410629(0x259)+'SS\x20在同一'+_0x410629(0x138)+',并检查\x20I'+'P。','detail':_0x226844[_0x410629(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+_0x48ebcd(0x243),async(_0x4a3f4b,_0x4de797)=>{const _0x48ed8c=_0x48ebcd;try{const _0xac52f8=await deviceFetch(_0x48ed8c(0x1ae)+'h');applyDeviceHealth(_0xac52f8,{'id':focusedRecord()?.['id']||config[_0x48ed8c(0x1e3)+_0x48ed8c(0x247)+'Id'],'clientId':focusedRecord()?.['client'+'Id']}),saveConfig(config),_0x4de797[_0x48ed8c(0x25d)](_0xac52f8);}catch(_0x3d6406){_0x4de797[_0x48ed8c(0x25e)](0x190)['json']({'message':_0x3d6406[_0x48ed8c(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x261)+_0x48ebcd(0x17f)+'n',async(_0x34c116,_0x4b68f2)=>{const _0x1e2da7=_0x48ebcd,_0x3051f3=String(_0x34c116[_0x1e2da7(0x197)]?.[_0x1e2da7(0x146)+'l']||config['device'+_0x1e2da7(0x233)+'l']||'')[_0x1e2da7(0x23f)+'e'](/\/$/,''),_0x1fe744=String(_0x34c116[_0x1e2da7(0x197)]?.['displa'+_0x1e2da7(0x1b6)]||_0x34c116[_0x1e2da7(0x197)]?.['displa'+_0x1e2da7(0x221)]||'')[_0x1e2da7(0x1b1)]();if(!_0x3051f3)return _0x4b68f2[_0x1e2da7(0x25e)](0x190)[_0x1e2da7(0x25d)]({'message':_0x1e2da7(0x203)});try{const _0x912f23=await deviceFetch(_0x1e2da7(0x1ae)+'h',{'baseUrl':_0x3051f3,'timeoutMs':0xbb8,'kind':_0x1e2da7(0x243)}),_0x3d433c=resolveUpsertId(config,{'mac':_0x912f23[_0x1e2da7(0x1a8)],'clientId':_0x912f23[_0x1e2da7(0x1b7)+_0x1e2da7(0x153)],'id':config[_0x1e2da7(0x1e3)+'Device'+'Id']}),_0x1e86a0=upsertDevice(config,{'id':_0x3d433c,'mac':normalizeMac(_0x912f23[_0x1e2da7(0x1a8)])||undefined,'clientId':_0x912f23['client'+_0x1e2da7(0x153)],'displayName':_0x1fe744||(_0x912f23[_0x1e2da7(0x23c)+_0x1e2da7(0x221)]&&!isBoardLabel(_0x912f23[_0x1e2da7(0x23c)+'y_name'])?_0x912f23[_0x1e2da7(0x23c)+_0x1e2da7(0x221)]:undefined),'board':_0x912f23['board']||_0x912f23[_0x1e2da7(0x167)],'product':_0x912f23[_0x1e2da7(0x22a)+'t'],'hostname':_0x912f23[_0x1e2da7(0x1a2)+'me'],'baseUrl':_0x3051f3,'ip':_0x912f23['ip'],'lastSeen':Date[_0x1e2da7(0x1e6)]()});config[_0x1e2da7(0x16b)+_0x1e2da7(0x233)+'l']=_0x3051f3;if(_0x912f23[_0x1e2da7(0x1a2)+'me'])config[_0x1e2da7(0x205)+_0x1e2da7(0x26d)]=_0x912f23[_0x1e2da7(0x1a2)+'me'];config['bound']=!![],config[_0x1e2da7(0x1e3)+_0x1e2da7(0x247)+'Id']=_0x1e86a0['id'],saveConfig(config),emit('status',statusPayload()),_0x4b68f2['json']({'ok':!![],'mossOnline':!![],'device':_0x1e86a0});}catch(_0xa0dd88){_0x4b68f2[_0x1e2da7(0x25e)](0x190)[_0x1e2da7(0x25d)]({'message':_0x1e2da7(0x1f4)+_0x1e2da7(0x1cc)+_0x1e2da7(0x200)+_0x1e2da7(0x1b3)+_0x1e2da7(0x15d),'detail':_0xa0dd88[_0x1e2da7(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x184)+_0x48ebcd(0x1af)+'ke',async(_0x181e93,_0x4077f7)=>{const _0x2c2e64=_0x48ebcd,_0x4ddfb1=focusedRecord()?.['id']||config['active'+_0x2c2e64(0x247)+'Id'],_0x22c968=runtime['of'](_0x4ddfb1);try{requireDeviceOnline();if(_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x173)+_0x2c2e64(0x250)||_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x1ea)+_0x2c2e64(0x250))throw new Error(_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x1ea)+_0x2c2e64(0x250)?'MOSS\x20忙'+_0x2c2e64(0x152)+_0x2c2e64(0x1e7)+_0x2c2e64(0x169)+'链路':_0x2c2e64(0x22f)+_0x2c2e64(0x1ed)+_0x2c2e64(0x158)+'试');if(_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)])throw new Error(_0x2c2e64(0x23a)+_0x2c2e64(0x15f)+_0x2c2e64(0x134));if(Date[_0x2c2e64(0x1e6)]()-_0x22c968[_0x2c2e64(0x1b5)]<0x9c4)throw new Error(_0x2c2e64(0x20c)+_0x2c2e64(0x19d)+'再试');_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)]=!![],_0x22c968[_0x2c2e64(0x1b5)]=Date[_0x2c2e64(0x1e6)]();const _0x5cd609=await deviceFetch('/chat/'+_0x2c2e64(0x22c),{'method':_0x2c2e64(0x201),'body':'{}','kind':_0x2c2e64(0x1ee),'timeoutMs':0xfa0}),_0xee0ca3=voiceFromWakeAck(_0x5cd609);if(_0xee0ca3[_0x2c2e64(0x175)]){if(_0xee0ca3['error']===_0x2c2e64(0x173)+_0x2c2e64(0x250))throw new Error(_0x2c2e64(0x22f)+_0x2c2e64(0x1ed)+_0x2c2e64(0x158)+'试');if(_0xee0ca3['error']===_0x2c2e64(0x20b))throw new Error(_0x2c2e64(0x1c2)+_0x2c2e64(0x152)+'活中),暂时'+'无法建立语音'+'链路');throw new Error(_0xee0ca3[_0x2c2e64(0x175)]||_0x2c2e64(0x1b9)+'法唤醒');}applyVoice(_0x4ddfb1,_0xee0ca3[_0x2c2e64(0x131)]),syncChatNow(_0x4ddfb1)['catch'](()=>{}),scheduleChatSync(_0x4ddfb1),_0x4077f7[_0x2c2e64(0x25d)]({'ok':!![],'payload':_0x5cd609});}catch(_0x48d859){_0x4077f7['status'](0x190)['json']({'message':_0x48d859[_0x2c2e64(0x170)+'e']});}finally{_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)]=![];}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x237)+'w',async(_0x37576d,_0x1429b3)=>{const _0x1fc169=_0x48ebcd;try{requireDeviceOnline();const _0x5c9835=String(_0x37576d['body']?.[_0x1fc169(0x16b)]||'')[_0x1fc169(0x1b1)](),_0x20d33a=String(_0x37576d['body']?.[_0x1fc169(0x21e)]||'')[_0x1fc169(0x1b1)]();if(!_0x5c9835||!_0x20d33a)throw new Error(_0x1fc169(0x1ec)+'作');const _0xeba976={'device':_0x5c9835,'action':_0x20d33a};if(_0x37576d[_0x1fc169(0x197)]?.[_0x1fc169(0x254)]!=null)_0xeba976[_0x1fc169(0x254)]=Number(_0x37576d[_0x1fc169(0x197)][_0x1fc169(0x254)]);const _0x4c7cb7=await deviceFetch(_0x1fc169(0x137),{'method':'POST','body':JSON[_0x1fc169(0x13a)+_0x1fc169(0x147)](_0xeba976),'timeoutMs':0xfa0});emit(_0x1fc169(0x174),{'type':_0x1fc169(0x245)+'te','payload':_0x4c7cb7,'deviceId':focusedRecord()?.['id']||config[_0x1fc169(0x1e3)+_0x1fc169(0x247)+'Id']}),_0x1429b3[_0x1fc169(0x25d)]({'ok':!![],..._0x4c7cb7});}catch(_0x5ddeee){_0x1429b3[_0x1fc169(0x25e)](0x190)[_0x1fc169(0x25d)]({'message':_0x5ddeee[_0x1fc169(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x237)+_0x48ebcd(0x12f)+'us',async(_0x52fce1,_0x372118)=>{const _0x2eb412=_0x48ebcd;try{requireDeviceOnline();const _0x4a9e52=await deviceFetch(_0x2eb412(0x137),{'timeoutMs':0xfa0});emit(_0x2eb412(0x174),{'type':_0x2eb412(0x245)+'te','payload':_0x4a9e52,'deviceId':focusedRecord()?.['id']||config[_0x2eb412(0x1e3)+_0x2eb412(0x247)+'Id']}),_0x372118[_0x2eb412(0x25d)]({'ok':!![],..._0x4a9e52});}catch(_0x2ecc87){_0x372118[_0x2eb412(0x25e)](0x190)[_0x2eb412(0x25d)]({'message':_0x2ecc87[_0x2eb412(0x170)+'e']});}});async function fetchDeviceConfig(){const _0x3d011a=_0x48ebcd,_0x2ee1d1=await deviceFetch(_0x3d011a(0x1b8)+'g/devi'+'ce');return{'ok':!![],..._0x2ee1d1};}function _0x53b0(_0x9bd63e,_0x1945d2){_0x9bd63e=_0x9bd63e-0x125;const _0x4ec2b1=_0x4ec2();let _0x53b041=_0x4ec2b1[_0x9bd63e];if(_0x53b0['MOeGCo']===undefined){var _0x12b9c5=function(_0x3a2eb3){const _0x4c5a3e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24e640='',_0x8ea7c3='';for(let _0x30377c=0x0,_0x5907f2,_0x5c053c,_0x4d0b15=0x0;_0x5c053c=_0x3a2eb3['charAt'](_0x4d0b15++);~_0x5c053c&&(_0x5907f2=_0x30377c%0x4?_0x5907f2*0x40+_0x5c053c:_0x5c053c,_0x30377c++%0x4)?_0x24e640+=String['fromCharCode'](0xff&_0x5907f2>>(-0x2*_0x30377c&0x6)):0x0){_0x5c053c=_0x4c5a3e['indexOf'](_0x5c053c);}for(let _0x551684=0x0,_0x262ba0=_0x24e640['length'];_0x551684<_0x262ba0;_0x551684++){_0x8ea7c3+='%'+('00'+_0x24e640['charCodeAt'](_0x551684)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8ea7c3);};_0x53b0['VMNJrZ']=_0x12b9c5,_0x53b0['nNMuIL']={},_0x53b0['MOeGCo']=!![];}const _0x40ac23=_0x4ec2b1[0x0],_0x2aafb7=_0x9bd63e+_0x40ac23,_0x4e721a=_0x53b0['nNMuIL'][_0x2aafb7];return!_0x4e721a?(_0x53b041=_0x53b0['VMNJrZ'](_0x53b041),_0x53b0['nNMuIL'][_0x2aafb7]=_0x53b041):_0x53b041=_0x4e721a,_0x53b041;}async function saveDeviceConfig(_0x2bad02){const _0x46c31b=_0x48ebcd;return deviceFetch(_0x46c31b(0x1b8)+_0x46c31b(0x262)+'ce',{'method':_0x46c31b(0x1d6),'body':JSON[_0x46c31b(0x13a)+'ify'](_0x2bad02)});}app['get']('/api/d'+_0x48ebcd(0x1ff)+_0x48ebcd(0x1c4),withActiveDevice(()=>config),async(_0x3b09ea,_0x1b025a)=>{const _0xe4d087=_0x48ebcd;try{_0x1b025a[_0xe4d087(0x25d)](await fetchDeviceConfig());}catch(_0x1469aa){_0x1b025a[_0xe4d087(0x25e)](0x190)[_0xe4d087(0x25d)]({'message':_0x1469aa[_0xe4d087(0x170)+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+'config',withActiveDevice(()=>config),async(_0x4dec8b,_0xf9f87e)=>{const _0x19060=_0x48ebcd;try{_0xf9f87e[_0x19060(0x25d)](await saveDeviceConfig(_0x4dec8b['body']||{}));}catch(_0x3e10c4){_0xf9f87e[_0x19060(0x25e)](0x190)['json']({'message':_0x3e10c4[_0x19060(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+_0x48ebcd(0x267),async(_0x5e5a5d,_0xb90229)=>{const _0x3096fa=_0x48ebcd;try{_0xb90229['json'](await deviceFetch(_0x3096fa(0x127)+_0x3096fa(0x236)));}catch(_0x1e1157){_0xb90229['status'](0x190)[_0x3096fa(0x25d)]({'message':_0x1e1157[_0x3096fa(0x170)+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+'ce',async(_0xc9c8a6,_0x52a8a9)=>{const _0x4cdbfa=_0x48ebcd;try{const _0x2b988d=requireDevicePut(_0xc9c8a6[_0x4cdbfa(0x197)]);_0x52a8a9['json'](await deviceFetch('/ir/de'+_0x4cdbfa(0x1da),{'method':_0x4cdbfa(0x1d6),'body':JSON['string'+_0x4cdbfa(0x147)](_0x2b988d)}));}catch(_0xa5408d){_0x52a8a9[_0x4cdbfa(0x25e)](0x190)['json']({'message':_0xa5408d['messag'+'e']});}}),app['post'](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+_0x48ebcd(0x1a3)+_0x48ebcd(0x24b),async(_0x4cf88f,_0x4efe98)=>{const _0x17f1ff=_0x48ebcd;try{const _0x3d0c4a=asObject(_0x4cf88f[_0x17f1ff(0x197)]);if(!validId(String(_0x3d0c4a['id']||'')))throw new Error(_0x17f1ff(0x253)+'电器');_0x4efe98[_0x17f1ff(0x25d)](await deviceFetch(_0x17f1ff(0x127)+_0x17f1ff(0x1bd)+_0x17f1ff(0x24a),{'method':_0x17f1ff(0x201),'body':JSON[_0x17f1ff(0x13a)+_0x17f1ff(0x147)]({'id':_0x3d0c4a['id']})}));}catch(_0x311e2b){_0x4efe98[_0x17f1ff(0x25e)](0x190)[_0x17f1ff(0x25d)]({'message':_0x311e2b['messag'+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x20e)+_0x48ebcd(0x25c)+_0x48ebcd(0x1bf),async(_0xcc5911,_0x1a78f0)=>{const _0x253538=_0x48ebcd;try{const _0x3d14b3=requireCommandPut(_0xcc5911[_0x253538(0x197)]);_0x1a78f0['json'](await deviceFetch(_0x253538(0x1ce)+_0x253538(0x1bc),{'method':_0x253538(0x1d6),'body':JSON[_0x253538(0x13a)+_0x253538(0x147)](_0x3d14b3)}));}catch(_0x4bc288){_0x1a78f0[_0x253538(0x25e)](0x190)[_0x253538(0x25d)]({'message':_0x4bc288[_0x253538(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x20e)+_0x48ebcd(0x25c)+'and/de'+'lete',async(_0x9db827,_0x5b8a3d)=>{const _0x4b5963=_0x48ebcd;try{const _0x3264ff=requireCommandDelete(_0x9db827[_0x4b5963(0x197)]);_0x5b8a3d[_0x4b5963(0x25d)](await deviceFetch(_0x4b5963(0x1ce)+_0x4b5963(0x207)+_0x4b5963(0x1dd),{'method':_0x4b5963(0x201),'body':JSON['string'+_0x4b5963(0x147)](_0x3264ff)}));}catch(_0x4745db){_0x5b8a3d[_0x4b5963(0x25e)](0x190)[_0x4b5963(0x25d)]({'message':_0x4745db[_0x4b5963(0x170)+'e']});}}),app['post']('/api/i'+_0x48ebcd(0x214)+'n',async(_0x5e7f5b,_0x5295d3)=>{const _0x3aeada=_0x48ebcd;try{_0x5295d3['json'](await deviceFetch('/ir/le'+_0x3aeada(0x185),{'method':_0x3aeada(0x201),'body':'{}'}));}catch(_0x4d5f1a){_0x5295d3[_0x3aeada(0x25e)](0x190)[_0x3aeada(0x25d)]({'message':_0x4d5f1a[_0x3aeada(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+_0x48ebcd(0x214)+_0x48ebcd(0x1d3),async(_0x42b2cd,_0x1400a2)=>{const _0x5c66d1=_0x48ebcd;try{const _0xf4ae30=Date['now']();while(Date['now']()-_0xf4ae30<0x3a98){const _0x4ad18e=await deviceFetch(_0x5c66d1(0x241)+'ad');if(_0x4ad18e[_0x5c66d1(0x26a)+'a'])return _0x1400a2[_0x5c66d1(0x25d)](_0x4ad18e);await new Promise(_0x4609be=>setTimeout(_0x4609be,0x320));}_0x1400a2[_0x5c66d1(0x25d)]({'ir_data':'','count':0x0});}catch(_0x51eaae){_0x1400a2[_0x5c66d1(0x25e)](0x190)[_0x5c66d1(0x25d)]({'message':_0x51eaae[_0x5c66d1(0x170)+'e']});}});function asObject(_0x528048){const _0x5729d5=_0x48ebcd;if(!_0x528048)return{};if(typeof _0x528048===_0x5729d5(0x13a))try{return JSON[_0x5729d5(0x1d1)](_0x528048);}catch{return{};}return typeof _0x528048===_0x5729d5(0x180)?_0x528048:{};}function irTestPayload(_0x9a235e){const _0x26b459=_0x48ebcd,_0x1d6201=asObject(_0x9a235e),_0x7bb04c=typeof _0x1d6201[_0x26b459(0x23e)]===_0x26b459(0x13a)?_0x1d6201[_0x26b459(0x23e)][_0x26b459(0x1b1)]():'',_0x3179c8=String(_0x1d6201[_0x26b459(0x16b)+_0x26b459(0x153)]||_0x1d6201[_0x26b459(0x16b)+'Id']||'')[_0x26b459(0x1b1)](),_0x2fd9db=String(_0x1d6201['id']||_0x1d6201[_0x26b459(0x16c)+_0x26b459(0x13c)]||_0x1d6201['comman'+_0x26b459(0x228)]||'')[_0x26b459(0x1b1)](),_0x119a49={};if(_0x7bb04c)_0x119a49[_0x26b459(0x23e)]=_0x7bb04c;if(_0x3179c8)_0x119a49[_0x26b459(0x16b)+_0x26b459(0x153)]=_0x3179c8;if(_0x2fd9db)_0x119a49['id']=_0x2fd9db;return _0x119a49;}function validId(_0x202dcc){const _0x2abe70=_0x48ebcd;return typeof _0x202dcc==='string'&&_0x202dcc[_0x2abe70(0x133)]>0x0&&_0x202dcc[_0x2abe70(0x133)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x2abe70(0x230)](_0x202dcc);}function validName(_0x2162f0){const _0x37371e=_0x48ebcd;return typeof _0x2162f0===_0x37371e(0x13a)&&_0x2162f0[_0x37371e(0x1b1)]()[_0x37371e(0x133)]>0x0&&_0x2162f0[_0x37371e(0x133)]<=0x40;}function validType(_0x1557de){const _0x3d02cc=_0x48ebcd;return[_0x3d02cc(0x276),'ac','tv','custom']['includ'+'es'](_0x1557de);}function validCode(_0x485b51){const _0x28f356=_0x48ebcd;if(!_0x485b51)return!![];if(typeof _0x485b51!==_0x28f356(0x13a)||_0x485b51[_0x28f356(0x133)]>0x1000)return![];const _0x4d4cb7=_0x485b51[_0x28f356(0x23f)+'e'](/^zf=/i,'')['replac'+'e'](/[\r\n]/g,'')[_0x28f356(0x1b1)]();if(_0x4d4cb7[_0x28f356(0x1d8)+'With']('xx'))return _0x4d4cb7[_0x28f356(0x133)]<=0x8;return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x28f356(0x230)](_0x4d4cb7);}function requireDevicePut(_0x108f47){const _0x2a3688=_0x48ebcd,_0x5991f4=asObject(_0x108f47),_0x11909a=String(_0x5991f4['id']||'')[_0x2a3688(0x1b1)](),_0x27f00e=String(_0x5991f4['name']||'')[_0x2a3688(0x1b1)](),_0x445cab=String(_0x5991f4[_0x2a3688(0x196)]||_0x2a3688(0x1fa))[_0x2a3688(0x1b1)]()||_0x2a3688(0x1fa);if(!validId(_0x11909a)||!validName(_0x27f00e))throw new Error('电器\x20id\x20'+_0x2a3688(0x1cd));if(!validType(_0x445cab))throw new Error(_0x2a3688(0x145)+'法');return{'id':_0x11909a,'name':_0x27f00e,'type':_0x445cab};}function requireCommandPut(_0x2474b3){const _0x338757=_0x48ebcd,_0x1e45ad=asObject(_0x2474b3),_0x12002e=String(_0x1e45ad[_0x338757(0x16b)+_0x338757(0x153)]||'')[_0x338757(0x1b1)](),_0x27bd7e=String(_0x1e45ad['id']||'')['trim'](),_0x37c74b=_0x1e45ad[_0x338757(0x167)]==null?'':String(_0x1e45ad['name'])[_0x338757(0x1b1)](),_0x3a2854=_0x1e45ad[_0x338757(0x23e)]==null?'':String(_0x1e45ad[_0x338757(0x23e)]);if(!validId(_0x12002e)||!validId(_0x27bd7e))throw new Error(_0x338757(0x15c)+_0x338757(0x12e));if(_0x37c74b&&!validName(_0x37c74b))throw new Error('按键名称不合'+'法');if(!validCode(_0x3a2854))throw new Error(_0x338757(0x125)+'合法');return{'device_id':_0x12002e,'id':_0x27bd7e,'name':_0x37c74b,'code':_0x3a2854};}function requireCommandDelete(_0x206b9a){const _0x209c29=_0x48ebcd,_0xce4fb=asObject(_0x206b9a),_0x924cb1=String(_0xce4fb[_0x209c29(0x16b)+_0x209c29(0x153)]||'')['trim'](),_0x1f2653=String(_0xce4fb['id']||'')[_0x209c29(0x1b1)]();if(!validId(_0x924cb1)||!validId(_0x1f2653))throw new Error(_0x209c29(0x253)+'电器或按键');return{'device_id':_0x924cb1,'id':_0x1f2653};}app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+'r/expo'+'rt',async(_0x456ffd,_0x2f9639)=>{const _0x20e946=_0x48ebcd;try{const _0x5ae3cd=await deviceFetch(_0x20e946(0x269)+'port');_0x2f9639[_0x20e946(0x25d)]({'version':0x1,'exportedAt':new Date()['toISOS'+_0x20e946(0x19c)](),'devices':_0x5ae3cd[_0x20e946(0x16b)+'s']||[]});}catch(_0x1eedea){_0x2f9639[_0x20e946(0x25e)](0x190)['json']({'message':_0x1eedea[_0x20e946(0x170)+'e']});}}),app[_0x48ebcd(0x225)]('/api/i'+_0x48ebcd(0x20f)+'rt',async(_0x492046,_0x5a1311)=>{const _0x259b0a=_0x48ebcd;try{const _0x340b3c=validateIrImportPayload(_0x492046[_0x259b0a(0x197)]);_0x5a1311['json'](await deviceFetch(_0x259b0a(0x160)+_0x259b0a(0x1f9),{'method':'POST','body':JSON['string'+_0x259b0a(0x147)](_0x340b3c)}));}catch(_0x346d75){_0x5a1311[_0x259b0a(0x25e)](0x190)['json']({'message':_0x346d75[_0x259b0a(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x20e)+_0x48ebcd(0x232),async(_0x2d49dd,_0x3a6e4a)=>{const _0x3777e1=_0x48ebcd;try{const _0x4445eb=irTestPayload(_0x2d49dd[_0x3777e1(0x197)]);console[_0x3777e1(0x14d)]('[ir.te'+_0x3777e1(0x13b)+_0x3777e1(0x1c9),_0x2d49dd[_0x3777e1(0x197)],_0x3777e1(0x227)+'d=',_0x4445eb);if(!_0x4445eb['code']&&(!_0x4445eb[_0x3777e1(0x16b)+_0x3777e1(0x153)]||!_0x4445eb['id']))throw new Error(_0x3777e1(0x16e)+'按键');_0x3a6e4a[_0x3777e1(0x25d)](await deviceFetch(_0x3777e1(0x239)+'st',{'method':'POST','body':JSON[_0x3777e1(0x13a)+_0x3777e1(0x147)](_0x4445eb)}));}catch(_0x5fb309){_0x3a6e4a[_0x3777e1(0x25e)](0x190)[_0x3777e1(0x25d)]({'message':_0x5fb309[_0x3777e1(0x170)+'e']});}}),registerCameraRoutes(app,{'getConfig':()=>{return new Proxy(config,{'get'(_0x347e03,_0x327723){const _0x2efe94=_0x53b0,_0x501e9c=getRequestDevice()?.['id']||_0x347e03[_0x2efe94(0x1e3)+_0x2efe94(0x247)+'Id'];if(_0x327723==='camera')return _0x501e9c?_0x347e03['device'+'s']?.[_0x501e9c]?.[_0x2efe94(0x1e9)]:_0x347e03['camera'];return _0x347e03[_0x327723];},'set'(_0x23498a,_0x565640,_0x2617ab){const _0x3b89bf=_0x53b0,_0x2fe3f2=getRequestDevice()?.['id']||_0x23498a[_0x3b89bf(0x1e3)+_0x3b89bf(0x247)+'Id'];if(_0x565640===_0x3b89bf(0x1e9)&&_0x2fe3f2)return setCamera(_0x23498a,_0x2fe3f2,_0x2617ab),!![];return _0x23498a[_0x565640]=_0x2617ab,!![];}});},'saveConfig':()=>saveConfig(config)}),setCameraHooks({'getDeviceBaseUrl':()=>getRequestDevice()?.[_0x48ebcd(0x146)+'l']||focusedRecord()?.[_0x48ebcd(0x146)+'l']||config[_0x48ebcd(0x16b)+_0x48ebcd(0x233)+'l'],'getDeviceCaps':()=>currentCaps(),'publishGimbal':async _0xd42fab=>{const _0x46fdd8=_0x48ebcd;requireDeviceOnline();const _0x4507cd=_0xd42fab?.[_0x46fdd8(0x21e)]===_0x46fdd8(0x1e2)?'stop':_0x46fdd8(0x14b),_0x3eb3e0=await deviceFetch(_0x46fdd8(0x188)+_0x46fdd8(0x17b)+_0x46fdd8(0x251),{'method':_0x46fdd8(0x201),'body':JSON[_0x46fdd8(0x13a)+_0x46fdd8(0x147)](_0xd42fab||{}),'kind':_0x4507cd,'timeoutMs':0x1f4});if(_0x3eb3e0['ok']===![])throw new Error(_0x3eb3e0['messag'+'e']||_0x46fdd8(0x17c));return _0x3eb3e0;}});async function publishAnnounce(_0x58ca75){const _0x306c0c=_0x48ebcd;if(!currentMossOnline())return![];const _0x1d88c4=typeof _0x58ca75===_0x306c0c(0x13a)?_0x58ca75:_0x58ca75?.[_0x306c0c(0x25a)],_0x56ffc0=typeof _0x58ca75===_0x306c0c(0x13a)?'':_0x58ca75?.[_0x306c0c(0x210)+'ce'];try{return await publishWakeAndText(_0x1d88c4,_0x56ffc0),applyVoice(focusedRecord()?.['id']||config[_0x306c0c(0x1e3)+_0x306c0c(0x247)+'Id'],_0x306c0c(0x173)+_0x306c0c(0x250)),!![];}catch(_0x57448b){return console[_0x306c0c(0x275)](_0x306c0c(0x1c5)+'angji]'+_0x306c0c(0x1d9)+_0x306c0c(0x21f)+'il',_0x57448b[_0x306c0c(0x170)+'e']),![];}}registerMcpRoutes(app,{'getConfig':()=>config,'emit':emit,'publishWakeAndText':_0x3551f2=>{const _0x1fc3af=_0x48ebcd;if(!currentMossOnline())return![];return publishWakeAndText(_0x3551f2)[_0x1fc3af(0x268)](_0x29622d=>console[_0x1fc3af(0x275)](_0x1fc3af(0x1a0)+_0x1fc3af(0x22c),_0x29622d[_0x1fc3af(0x170)+'e'])),!![];},'publishAnnounce':publishAnnounce,'isAnnounceReady':()=>currentMossOnline(),'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()['wakeOn'+_0x48ebcd(0x1ac)+'mplete']===!![],'syncYunxiangjiInbox':()=>scheduleYunxiangjiInboxPush()});function shouldServeUi(){const _0x56b719=_0x48ebcd;return process[_0x56b719(0x139)][_0x56b719(0x234)+'NV']===_0x56b719(0x22a)+_0x56b719(0x266)||process[_0x56b719(0x139)][_0x56b719(0x129)+_0x56b719(0x1ca)+_0x56b719(0x23d)]==='1';}function openBrowser(_0x5208f7){const _0x1b0de=_0x48ebcd;try{if(process[_0x1b0de(0x1d2)+'rm']==='darwin')execFile(_0x1b0de(0x211),[_0x5208f7]);else{if(process[_0x1b0de(0x1d2)+'rm']===_0x1b0de(0x264))execFile(_0x1b0de(0x1dc),['/c',_0x1b0de(0x1ad),'',_0x5208f7]);else execFile(_0x1b0de(0x22d)+'en',[_0x5208f7]);}}catch(_0x352ce4){console['warn'](_0x1b0de(0x265)+_0x1b0de(0x151),_0x352ce4[_0x1b0de(0x170)+'e']);}}function serveProductionUi(){const _0xde5814=_0x48ebcd,_0x1234a7=_0x30377c[_0xde5814(0x1b2)](DIST_DIR,_0xde5814(0x270)+_0xde5814(0x1f8));if(_0x24e640[_0xde5814(0x1cf)+_0xde5814(0x204)](_0x1234a7))return registerMediaRoutes(app,DIST_DIR),app[_0xde5814(0x178)](_0x5c053c['static'](DIST_DIR)),app[_0xde5814(0x178)]((_0x38134b,_0xd9c57d,_0x5c8e12)=>{const _0x286bb6=_0xde5814;if(_0x38134b[_0x286bb6(0x18a)]!==_0x286bb6(0x142)&&_0x38134b[_0x286bb6(0x18a)]!==_0x286bb6(0x24c))return _0x5c8e12();if(_0x38134b[_0x286bb6(0x21b)][_0x286bb6(0x1d8)+_0x286bb6(0x1f7)](_0x286bb6(0x1a4)))return _0x5c8e12();_0xd9c57d[_0x286bb6(0x13e)+'le'](_0x1234a7);}),!![];return console[_0xde5814(0x275)](_0xde5814(0x16a)+_0xde5814(0x1fc)+'构建'),![];}shouldServeUi()&&!shouldAttachDevUi()&&serveProductionUi();let httpServer=null,viteDev=null,shuttingDown=![];function shutdown(){const _0x21ca1e=_0x48ebcd;if(shuttingDown)return;shuttingDown=!![];try{disconnectCamera();}catch{}clearListenRuntime();const _0x28795b=()=>{const _0x3f6dfc=_0x53b0;if(!httpServer){process[_0x3f6dfc(0x14f)](0x0);return;}httpServer[_0x3f6dfc(0x143)](()=>process[_0x3f6dfc(0x14f)](0x0)),setTimeout(()=>process[_0x3f6dfc(0x14f)](0x0),0x320)[_0x3f6dfc(0x248)]();};if(!viteDev){_0x28795b();return;}viteDev[_0x21ca1e(0x143)]()[_0x21ca1e(0x162)](_0x28795b,_0x28795b);}function createHttpServer(){const _0x5eed9d=_0x48ebcd,_0x44bd1d=_0x5907f2[_0x5eed9d(0x161)+_0x5eed9d(0x1eb)](app);return _0x44bd1d[_0x5eed9d(0x1e8)+'t']=0x0,_0x44bd1d[_0x5eed9d(0x1f1)+_0x5eed9d(0x273)+_0x5eed9d(0x18c)]=0x0,_0x44bd1d[_0x5eed9d(0x272)+_0x5eed9d(0x208)+'ut']=0x0,_0x44bd1d[_0x5eed9d(0x218)+'tTimeo'+'ut']=0x0,_0x44bd1d;}function attachServer(_0x285825,_0x29ccdc){const _0x3cde83=_0x48ebcd;httpServer=_0x285825,writeRuntime(_0x29ccdc),process[_0x3cde83(0x139)][_0x3cde83(0x223)]=String(_0x29ccdc),process[_0x3cde83(0x139)][_0x3cde83(0x1ba)+_0x3cde83(0x25b)+'T']=String(_0x29ccdc);const _0x58d979=_0x3cde83(0x191)+_0x3cde83(0x244)+_0x3cde83(0x198)+_0x29ccdc,_0x5a30eb=process['env'][_0x3cde83(0x26c)+_0x3cde83(0x1d7)]?'\x20v'+process[_0x3cde83(0x139)][_0x3cde83(0x26c)+_0x3cde83(0x1d7)]:'';console[_0x3cde83(0x14d)](_0x3cde83(0x206)+_0x3cde83(0x226)+_0x5a30eb+'\x20\x20'+_0x58d979),viteDev&&console[_0x3cde83(0x14d)]('[serve'+_0x3cde83(0x154)+_0x3cde83(0x242)+_0x3cde83(0x26e)+_0x3cde83(0x274)),_0x29ccdc!==PORT&&console[_0x3cde83(0x14d)](_0x3cde83(0x1c8)+_0x3cde83(0x25f)+PORT+(_0x3cde83(0x1ef)+_0x3cde83(0x14c)+_0x3cde83(0x1fe))+_0x29ccdc+'。'),process['env']['MOSS_O'+_0x3cde83(0x1ca)+_0x3cde83(0x23d)]==='1'&&openBrowser(_0x58d979),prefetchFfmpeg(),initBridgeWebSocket(),startPresenceWatch();}function listenOn(_0x477e8f,_0x1ef609){return new Promise((_0x362c94,_0x379c8a)=>{const _0x398be3=_0x53b0,_0x2be98f=_0x566c2b=>{const _0x1e3740=_0x53b0;_0x477e8f[_0x1e3740(0x182)](_0x1e3740(0x187)+_0x1e3740(0x219),_0x369999),_0x379c8a(_0x566c2b);},_0x369999=()=>{const _0xaedc49=_0x53b0;_0x477e8f[_0xaedc49(0x182)]('error',_0x2be98f),_0x362c94(_0x477e8f);};_0x477e8f[_0x398be3(0x21d)]('error',_0x2be98f),_0x477e8f[_0x398be3(0x21d)](_0x398be3(0x187)+'ing',_0x369999),_0x477e8f[_0x398be3(0x187)](_0x1ef609);});}async function listenPreferred(_0x115535){const _0x5d0a38=_0x48ebcd,_0x4a2fd3=await reclaimListenPort({'preferredPort':_0x115535,'runtimePath':RUNTIME_PATH});_0x4a2fd3[_0x5d0a38(0x1b4)]&&console[_0x5d0a38(0x14d)]('[serve'+_0x5d0a38(0x258)+_0x5d0a38(0x1e5)+_0x5d0a38(0x193)+_0x5d0a38(0x26f)+_0x115535+'。');const _0x42d71b=createHttpServer();if(shouldAttachDevUi())try{viteDev=await attachViteDev(app,_0x42d71b,{'root':ROOT_DIR});}catch(_0x46b181){console[_0x5d0a38(0x275)](_0x5d0a38(0x1c8)+_0x5d0a38(0x249)+_0x5d0a38(0x195),_0x46b181[_0x5d0a38(0x170)+'e']);}const _0x3558c0=0x18;for(let _0x29937f=0x0;_0x29937f<_0x3558c0;_0x29937f+=0x1){const _0x276a32=nextListenPort(_0x115535,_0x29937f);try{await listenOn(_0x42d71b,_0x276a32),attachServer(_0x42d71b,_0x276a32);return;}catch(_0x48e758){_0x48e758[_0x5d0a38(0x23e)]!==_0x5d0a38(0x1e0)+_0x5d0a38(0x1df)&&(console[_0x5d0a38(0x175)](_0x48e758),process[_0x5d0a38(0x14f)](0x1)),_0x29937f<0x7&&(await reclaimListenPort({'preferredPort':_0x115535,'runtimePath':RUNTIME_PATH}),await sleep(0x78));}}console[_0x5d0a38(0x175)](_0x5d0a38(0x1c8)+'r]\x20'+_0x115535+(_0x5d0a38(0x222)+'均被占用')),process[_0x5d0a38(0x14f)](0x1);}process['on']('SIGTER'+'M',shutdown),process['on'](_0x48ebcd(0x252),shutdown),listenPreferred(PORT)['catch'](_0x121423=>{const _0x1ce3b7=_0x48ebcd;console[_0x1ce3b7(0x175)](_0x121423),process[_0x1ce3b7(0x14f)](0x1);});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const _0x573b5c=_0x3d75;(function(_0x5b7f01,_0x4975de){const _0x225e68=_0x3d75,_0x464ab2=_0x5b7f01();while(!![]){try{const _0x1f5215=parseInt(_0x225e68(0xe3))/0x1*(parseInt(_0x225e68(0x99))/0x2)+-parseInt(_0x225e68(0xa2))/0x3+-parseInt(_0x225e68(0xc6))/0x4*(-parseInt(_0x225e68(0xb5))/0x5)+parseInt(_0x225e68(0xaf))/0x6+parseInt(_0x225e68(0xd3))/0x7+-parseInt(_0x225e68(0xb7))/0x8*(-parseInt(_0x225e68(0xc2))/0x9)+-parseInt(_0x225e68(0xbb))/0xa*(parseInt(_0x225e68(0xb4))/0xb);if(_0x1f5215===_0x4975de)break;else _0x464ab2['push'](_0x464ab2['shift']());}catch(_0x7c3ba1){_0x464ab2['push'](_0x464ab2['shift']());}}}(_0x7e5b,0x3885b));const MAX_APPLIANCES=0x10,MAX_COMMANDS=0x30,MAX_CODE_LEN=0x1000,VALID_TYPES=new Set([_0x573b5c(0xa4),'ac','tv',_0x573b5c(0xbf)]);export function validIrId(_0x35aee9){const _0x131004=_0x573b5c;return typeof _0x35aee9===_0x131004(0xab)&&_0x35aee9['length']>0x0&&_0x35aee9[_0x131004(0x9e)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x131004(0xa9)](_0x35aee9);}export function validIrName(_0xe5e8ee){const _0x40028c=_0x573b5c;if(typeof _0xe5e8ee!=='string'||_0xe5e8ee['length']===0x0||_0xe5e8ee[_0x40028c(0x9e)]>0x40)return![];if(_0xe5e8ee['trim']()['length']===0x0)return![];for(let _0x517798=0x0;_0x517798<_0xe5e8ee[_0x40028c(0x9e)];_0x517798+=0x1){const _0x5b8f36=_0xe5e8ee['charCo'+_0x40028c(0x97)](_0x517798);if(_0x5b8f36<0x20)return![];}return!![];}export function validIrType(_0x1d9f0b){const _0x520591=_0x573b5c;return typeof _0x1d9f0b===_0x520591(0xab)&&VALID_TYPES[_0x520591(0xb8)](_0x1d9f0b);}export function validIrCode(_0x4958e9){const _0xdc3c7c=_0x573b5c;if(_0x4958e9===''||_0x4958e9==null)return!![];if(typeof _0x4958e9!==_0xdc3c7c(0xab)||_0x4958e9[_0xdc3c7c(0x9e)]>MAX_CODE_LEN)return![];const _0xba4e51=_0x4958e9[_0xdc3c7c(0xd5)+'e'](/^zf=/i,'')[_0xdc3c7c(0xd5)+'e'](/[\r\n]/g,'')[_0xdc3c7c(0xa3)]();if(_0xba4e51[_0xdc3c7c(0xde)+_0xdc3c7c(0xcf)]('xx'))return _0xba4e51[_0xdc3c7c(0x9e)]<=0x8&&/^xx[0-9a-fA-F]{0,6}$/[_0xdc3c7c(0xa9)](_0xba4e51);return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0xdc3c7c(0xa9)](_0xba4e51);}function _0x7e5b(){const _0x4f7170=['55s15zMO44cm','nJK3otm0uKPJtuv3','ChvZAa','BwvYz2u','5y+kif8T77Ym5PYa','ios4QUEuTEwzQa','BgvUz3rO','5zcR5O6N5yI25A2x56YM','44cn5OYj6zsU5zcn56EW44cm','ios4QUAmIEMuRG','mJy1otuWD0fhveXo','DhjPBq','BgLNAhq','ywrK','55s15zMO5PwW6yEpia','iowTL+AUTq','6zw/idmYiowTLW','DgvZDa','44cn6yEn5Asn','C3rYAw5N','55QeigLKiowTLW','DI9JDxn0','ignVzguG','mJu5nZG2ohfYC0fvBW','igrLDMLJ','B3nZlwLY','5Qc85BYp6zsz6k+V77Ym5B+f','57Y65Bcrihn0CG','mta4ndG5mZDrA0Pku2q','mte3nxfkvLDfvq','44cn5lIn5zci5Rov','mZmZmJK2veTktgv0','AgfZ','55s15zMOigLK44cm','DMvYC2LV','mtbzzLDKvvC','44cn5lIn5zci5Rov77Ym5lUf','55Qeihr5Cgu','5B+f6Ag75PIViePt','y3vZDg9T','55sOie1pu1m','5ywb6k645A2x5Q+n5PwW5A2x','otLIruLXEvC','lwnHDgfS','44cn56YSia','5A+85ywL5QIH5BYp5lIn5zci','mta1mNLAt1jkEq','Aw5NioEXU+wEIW','Bw1HBMrZ','ioI2HEI/H+s4IUMzKca','5BYp5lIn5zci5Rov','6Ag75PIV5A+56lgH','B2jQzwn0','B2CUANnV','ig5HBwxJGiW','v2L0Aa','44cn55Qe57QI5Asw56cb5Qc8','Bw9Kzq','igLK44cm','mZa4mdbdr0XOqLq','5A+85ywL5PAh5lU25Qc85BYp','CMvWBgfJ','5B+f6Ag75PIV5A2x56YM5lIY','5A+85ywL5PAh5lU254Mi5PYS','zgv2AwnL','55Qeig5HBwu','iowVVowhUUEAHcbT','44cn5OYj6zsU5PwW6yEpia','44cn57Y65BcrignV','y29Kzq','C3rHCNrZ','5lIn5PsV5OYb77Ym6k+35l2/','y29TBwfU','5lI6igXPz2G','koEPUIK','mwrlA1Hmtq','AxnbCNjH','55s15zMO5zcn56EW44cm','44cnDhLWzEoaJa','BMfTzq','ioAiLIbTzxi','t04G5A+56lgH','zgvbDa'];_0x7e5b=function(){return _0x4f7170;};return _0x7e5b();}function _0x3d75(_0x5653ce,_0x347d2d){_0x5653ce=_0x5653ce-0x94;const _0x7e5b92=_0x7e5b();let _0x3d7593=_0x7e5b92[_0x5653ce];if(_0x3d75['tNnBat']===undefined){var _0x21105c=function(_0x41a721){const _0x55501a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35aee9='',_0xe5e8ee='';for(let _0x517798=0x0,_0x5b8f36,_0x1d9f0b,_0x4958e9=0x0;_0x1d9f0b=_0x41a721['charAt'](_0x4958e9++);~_0x1d9f0b&&(_0x5b8f36=_0x517798%0x4?_0x5b8f36*0x40+_0x1d9f0b:_0x1d9f0b,_0x517798++%0x4)?_0x35aee9+=String['fromCharCode'](0xff&_0x5b8f36>>(-0x2*_0x517798&0x6)):0x0){_0x1d9f0b=_0x55501a['indexOf'](_0x1d9f0b);}for(let _0xba4e51=0x0,_0x304a86=_0x35aee9['length'];_0xba4e51<_0x304a86;_0xba4e51++){_0xe5e8ee+='%'+('00'+_0x35aee9['charCodeAt'](_0xba4e51)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe5e8ee);};_0x3d75['HGxozw']=_0x21105c,_0x3d75['bLOivu']={},_0x3d75['tNnBat']=!![];}const _0x4d7f3b=_0x7e5b92[0x0],_0x524420=_0x5653ce+_0x4d7f3b,_0x4a8538=_0x3d75['bLOivu'][_0x524420];return!_0x4a8538?(_0x3d7593=_0x3d75['HGxozw'](_0x3d7593),_0x3d75['bLOivu'][_0x524420]=_0x3d7593):_0x3d7593=_0x4a8538,_0x3d7593;}export function validateIrImportPayload(_0x304a86){const _0xea2bb6=_0x573b5c;if(!_0x304a86||typeof _0x304a86!==_0xea2bb6(0xcc)||Array[_0xea2bb6(0xe4)+'y'](_0x304a86))throw new Error(_0xea2bb6(0xd4)+'错误:根节点'+_0xea2bb6(0xbe)+_0xea2bb6(0x96));const _0x5ebcc6=_0x304a86;if(_0x5ebcc6[_0xea2bb6(0xba)+'n']!=null&&_0x5ebcc6[_0xea2bb6(0xba)+'n']!==0x1)throw new Error(_0xea2bb6(0xd7)+_0xea2bb6(0xdf)+_0xea2bb6(0xc0)+_0xea2bb6(0xda)+_0xea2bb6(0xb1)+_0xea2bb6(0xc3)+_0xea2bb6(0xcd)+'n');if(!Array[_0xea2bb6(0xe4)+'y'](_0x5ebcc6[_0xea2bb6(0xd8)+'s']))throw new Error('导入文件缺少'+_0xea2bb6(0xb0)+'es\x20数组');if(_0x5ebcc6[_0xea2bb6(0xd8)+'s'][_0xea2bb6(0x9e)]>MAX_APPLIANCES)throw new Error(_0xea2bb6(0xa6)+_0x5ebcc6['device'+'s'][_0xea2bb6(0x9e)]+_0xea2bb6(0xc9)+MAX_APPLIANCES);const _0x44c9e7=new Set(),_0x190428=new Set(),_0x5bbde6=[];for(let _0x17f125=0x0;_0x17f125<_0x5ebcc6[_0xea2bb6(0xd8)+'s'][_0xea2bb6(0x9e)];_0x17f125+=0x1){const _0x402c13=_0x5ebcc6[_0xea2bb6(0xd8)+'s'][_0x17f125],_0x151d36='第\x20'+(_0x17f125+0x1)+_0xea2bb6(0x9d);if(!_0x402c13||typeof _0x402c13!==_0xea2bb6(0xcc)||Array[_0xea2bb6(0xe4)+'y'](_0x402c13))throw new Error(_0x151d36+(_0xea2bb6(0xb2)+_0xea2bb6(0xcb)));const _0x2f3a14=_0x402c13;if(typeof _0x2f3a14['id']!==_0xea2bb6(0xab))throw new Error(_0x151d36+(_0xea2bb6(0xb3)+_0xea2bb6(0xc7)+'的\x20id\x20字'+'段'));if(typeof _0x2f3a14[_0xea2bb6(0x94)]!==_0xea2bb6(0xab))throw new Error(_0x151d36+(_0xea2bb6(0xb3)+_0xea2bb6(0xc7)+_0xea2bb6(0xd9)+_0xea2bb6(0xa7)));if(typeof _0x2f3a14['type']!==_0xea2bb6(0xab))throw new Error(_0x151d36+(_0xea2bb6(0xb3)+'ing\x20类型'+_0xea2bb6(0xbd)+_0xea2bb6(0xa7)));if(!Array[_0xea2bb6(0xe4)+'y'](_0x2f3a14[_0xea2bb6(0xe0)+'ds']))throw new Error(_0xea2bb6(0x98)+(_0x2f3a14[_0xea2bb6(0x94)][_0xea2bb6(0xa3)]()||_0x2f3a14['id'][_0xea2bb6(0xa3)]())+(_0xea2bb6(0xdc)+_0xea2bb6(0xc8)+'\x20数组'));const _0x1f4009=_0x2f3a14['id'][_0xea2bb6(0xa3)](),_0x2cdb52=_0x2f3a14[_0xea2bb6(0x94)][_0xea2bb6(0xa3)](),_0x392dad=_0x2f3a14['type'][_0xea2bb6(0xa3)]();if(!validIrId(_0x1f4009))throw new Error(_0x151d36+'\x20id「'+(_0x1f4009||'(空)')+(_0xea2bb6(0xbc)+_0xea2bb6(0xc1)+_0xea2bb6(0x9c)+_0xea2bb6(0xa8)+'符'));if(!validIrName(_0x2cdb52))throw new Error(_0x151d36+_0xea2bb6(0xce)+(_0x2cdb52||_0xea2bb6(0xe2))+('」不合法,不'+'能为空且不能'+_0xea2bb6(0x9f)));if(!validIrType(_0x392dad))throw new Error(_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xe6)+_0x392dad+('」不合法,应'+_0xea2bb6(0xe1)+'t/ac/t'+_0xea2bb6(0xad)+'om'));if(_0x44c9e7[_0xea2bb6(0xb8)](_0x1f4009))throw new Error(_0xea2bb6(0xb9)+_0x1f4009+_0xea2bb6(0xaa));if(_0x190428[_0xea2bb6(0xb8)](_0x2cdb52))throw new Error(_0xea2bb6(0xe5)+_0x2cdb52+_0xea2bb6(0xaa));_0x44c9e7[_0xea2bb6(0xa5)](_0x1f4009),_0x190428[_0xea2bb6(0xa5)](_0x2cdb52);if(_0x2f3a14[_0xea2bb6(0xe0)+'ds'][_0xea2bb6(0x9e)]>MAX_COMMANDS)throw new Error(_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xdb)+_0x2f3a14[_0xea2bb6(0xe0)+'ds'][_0xea2bb6(0x9e)]+_0xea2bb6(0xc9)+MAX_COMMANDS);const _0x146104=new Set(),_0x1c4bbe=new Set(),_0x26632c=[];for(let _0x477545=0x0;_0x477545<_0x2f3a14['comman'+'ds'][_0xea2bb6(0x9e)];_0x477545+=0x1){const _0x42152b=_0x2f3a14[_0xea2bb6(0xe0)+'ds'][_0x477545],_0x1a2300=_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xc4)+(_0x477545+0x1)+_0xea2bb6(0xa1);if(!_0x42152b||typeof _0x42152b!=='object'||Array[_0xea2bb6(0xe4)+'y'](_0x42152b))throw new Error(_0x1a2300+(_0xea2bb6(0xb2)+'须是对象'));const _0x59453b=_0x42152b;if(typeof _0x59453b['id']!=='string')throw new Error(_0x1a2300+('缺少\x20str'+_0xea2bb6(0xc7)+_0xea2bb6(0xac)+'段'));if(typeof _0x59453b[_0xea2bb6(0x94)]!=='string')throw new Error(_0x1a2300+('缺少\x20str'+_0xea2bb6(0xc7)+_0xea2bb6(0xd9)+_0xea2bb6(0xa7)));if(_0x59453b[_0xea2bb6(0xdd)]!=null&&typeof _0x59453b[_0xea2bb6(0xdd)]!=='string')throw new Error(_0x1a2300+(_0xea2bb6(0xae)+_0xea2bb6(0xd6)));const _0x9a472b=_0x59453b['id'][_0xea2bb6(0xa3)](),_0x565619=_0x59453b[_0xea2bb6(0x94)][_0xea2bb6(0xa3)](),_0x580fcf=_0x59453b[_0xea2bb6(0xdd)]==null?'':_0x59453b[_0xea2bb6(0xdd)];if(!validIrId(_0x9a472b))throw new Error(_0x1a2300+_0xea2bb6(0xd2)+(_0x9a472b||_0xea2bb6(0xe2))+_0xea2bb6(0xb6));if(!validIrName(_0x565619))throw new Error(_0x1a2300+_0xea2bb6(0xce)+(_0x565619||_0xea2bb6(0xe2))+_0xea2bb6(0xb6));if(!validIrCode(_0x580fcf))throw new Error(_0x1a2300+'「'+_0x565619+(_0xea2bb6(0xd0)+_0xea2bb6(0xca)));if(_0x146104[_0xea2bb6(0xb8)](_0x9a472b))throw new Error(_0xea2bb6(0x98)+_0x2cdb52+('」按键\x20id'+'「')+_0x9a472b+'」重复');if(_0x1c4bbe[_0xea2bb6(0xb8)](_0x565619))throw new Error(_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xa0)+_0x565619+_0xea2bb6(0xaa));_0x146104[_0xea2bb6(0xa5)](_0x9a472b),_0x1c4bbe[_0xea2bb6(0xa5)](_0x565619),_0x26632c[_0xea2bb6(0x9a)]({'id':_0x9a472b,'name':_0x565619,'code':_0x580fcf});}_0x5bbde6[_0xea2bb6(0x9a)]({'id':_0x1f4009,'name':_0x2cdb52,'type':_0x392dad,'commands':_0x26632c});}const _0x28c8f1=_0x5ebcc6[_0xea2bb6(0xd1)]==null?_0xea2bb6(0xd5)+'e':String(_0x5ebcc6[_0xea2bb6(0xd1)])[_0xea2bb6(0xa3)]();if(_0x28c8f1!==_0xea2bb6(0xd5)+'e'&&_0x28c8f1!==_0xea2bb6(0x9b))throw new Error(_0xea2bb6(0xc5)+'法,应为\x20r'+'eplace'+_0xea2bb6(0x95)+'ge');return{'version':0x1,'mode':_0x28c8f1,'devices':_0x5bbde6};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x42631f,_0x3656d6){const _0x2a353b=_0x45b3,_0x216e9d=_0x42631f();while(!![]){try{const _0x2fffed=parseInt(_0x2a353b(0x1b1))/0x1+parseInt(_0x2a353b(0x1be))/0x2*(-parseInt(_0x2a353b(0x1ae))/0x3)+parseInt(_0x2a353b(0x1ad))/0x4+parseInt(_0x2a353b(0x1b5))/0x5*(parseInt(_0x2a353b(0x1bc))/0x6)+-parseInt(_0x2a353b(0x1b2))/0x7+-parseInt(_0x2a353b(0x1ba))/0x8+-parseInt(_0x2a353b(0x1b3))/0x9*(-parseInt(_0x2a353b(0x1b6))/0xa);if(_0x2fffed===_0x3656d6)break;else _0x216e9d['push'](_0x216e9d['shift']());}catch(_0x35e091){_0x216e9d['push'](_0x216e9d['shift']());}}}(_0xe3f6,0xa7ac9));import{normalizeMac}from'./device-identity.mjs';function _0xe3f6(){const _0x3e944c=['Ag9ZDg5H','mtC1ody2r2HmqK1I','CKnHC2u','mZa5oe9lAwjOrq','ndiYndKXmMzeDK9yAG','mJa1mMHfwxjeyG','CMvWBgfJ','DhjPBq','mtm0mZi3n2Liu3HOyG','odm3nJGWowLSsuzwDG','mJDvDhD6C0W','BwfJ','mZb3BfrOtMS','ndG0ndKYmg96wLPSCa','yMfZzvvY','C29Tzq','zMLSDgvY','ody4nJGWohLZEePdtq'];_0xe3f6=function(){return _0x3e944c;};return _0xe3f6();}export function normalizeBaseUrl(_0xca9180){const _0x5a9c81=_0x45b3;return String(_0xca9180||'')[_0x5a9c81(0x1b0)]()[_0x5a9c81(0x1af)+'e'](/\/$/,'');}function _0x45b3(_0xd5b0b5,_0x30d00a){_0xd5b0b5=_0xd5b0b5-0x1ad;const _0xe3f6de=_0xe3f6();let _0x45b387=_0xe3f6de[_0xd5b0b5];if(_0x45b3['iMjntv']===undefined){var _0x4286c4=function(_0x2a8cdd){const _0x29ed7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xca9180='',_0x1c4d8a='';for(let _0x110ae5=0x0,_0x33992a,_0x5bfa42,_0x41b467=0x0;_0x5bfa42=_0x2a8cdd['charAt'](_0x41b467++);~_0x5bfa42&&(_0x33992a=_0x110ae5%0x4?_0x33992a*0x40+_0x5bfa42:_0x5bfa42,_0x110ae5++%0x4)?_0xca9180+=String['fromCharCode'](0xff&_0x33992a>>(-0x2*_0x110ae5&0x6)):0x0){_0x5bfa42=_0x29ed7['indexOf'](_0x5bfa42);}for(let _0x30bbcd=0x0,_0x5a66af=_0xca9180['length'];_0x30bbcd<_0x5a66af;_0x30bbcd++){_0x1c4d8a+='%'+('00'+_0xca9180['charCodeAt'](_0x30bbcd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c4d8a);};_0x45b3['zhfoTQ']=_0x4286c4,_0x45b3['NkcUVU']={},_0x45b3['iMjntv']=!![];}const _0x4f2cb1=_0xe3f6de[0x0],_0x3eceba=_0xd5b0b5+_0x4f2cb1,_0x2183d4=_0x45b3['NkcUVU'][_0x3eceba];return!_0x2183d4?(_0x45b387=_0x45b3['zhfoTQ'](_0x45b387),_0x45b3['NkcUVU'][_0x3eceba]=_0x45b387):_0x45b387=_0x2183d4,_0x45b387;}export function isKnownScanDevice(_0x1c4d8a=[],_0x110ae5={}){const _0x4a157d=_0x45b3,_0x33992a=normalizeBaseUrl(_0x110ae5[_0x4a157d(0x1b7)+'l']),_0x5bfa42=normalizeMac(_0x110ae5[_0x4a157d(0x1b4)]);return(_0x1c4d8a||[])[_0x4a157d(0x1b8)](_0x41b467=>{const _0x31a6a1=_0x4a157d,_0x30bbcd=normalizeMac(_0x41b467[_0x31a6a1(0x1b4)])||normalizeMac(_0x41b467['id']);if(_0x5bfa42&&_0x30bbcd)return _0x5bfa42===_0x30bbcd;if(_0x33992a&&_0x41b467['baseUr'+'l']&&normalizeBaseUrl(_0x41b467[_0x31a6a1(0x1b7)+'l'])===_0x33992a)return!![];const _0x5a66af=String(_0x110ae5[_0x31a6a1(0x1bb)+'me']||'')['trim']()['toLowe'+_0x31a6a1(0x1bd)](),_0x389467=String(_0x41b467[_0x31a6a1(0x1bb)+'me']||'')[_0x31a6a1(0x1b0)]()['toLowe'+_0x31a6a1(0x1bd)]();if(_0x5a66af&&_0x389467&&_0x5a66af===_0x389467)return!![];return![];});}export function filterNewScanDevices(_0x3fa918,_0x10aba2=[]){const _0x365e70=_0x45b3;return(_0x10aba2||[])[_0x365e70(0x1b9)](_0x58fbcf=>!isKnownScanDevice(_0x3fa918,_0x58fbcf));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x169168=_0x2731;(function(_0x4b9b43,_0x58fe3b){const _0x11a36e=_0x2731,_0x2cf5b7=_0x4b9b43();while(!![]){try{const _0x45b961=-parseInt(_0x11a36e(0x195))/0x1+parseInt(_0x11a36e(0x1ab))/0x2+parseInt(_0x11a36e(0x161))/0x3+-parseInt(_0x11a36e(0x169))/0x4+-parseInt(_0x11a36e(0x1b3))/0x5*(-parseInt(_0x11a36e(0x176))/0x6)+parseInt(_0x11a36e(0x170))/0x7*(parseInt(_0x11a36e(0x186))/0x8)+-parseInt(_0x11a36e(0x1a7))/0x9*(parseInt(_0x11a36e(0x181))/0xa);if(_0x45b961===_0x58fe3b)break;else _0x2cf5b7['push'](_0x2cf5b7['shift']());}catch(_0xe28bd7){_0x2cf5b7['push'](_0x2cf5b7['shift']());}}}(_0x2fce,0x47ce5));import _0x51b1d4 from'node:os';import _0x4a0453 from'bonjour-service';import{normalizeMac}from'./device-identity.mjs';const IPV4=/^(\d{1,3}\.){3}\d{1,3}$/;export function formatHttpHost(_0x4ae25f){const _0x3f4d3f=_0x2731,_0x54e8ab=String(_0x4ae25f||'')[_0x3f4d3f(0x1a0)]()[_0x3f4d3f(0x1ae)+'e'](/^\[|\]$/g,'')[_0x3f4d3f(0x1ae)+'e'](/\.$/,'');if(!_0x54e8ab)return'';if(_0x54e8ab[_0x3f4d3f(0x167)+'es'](':'))return'['+_0x54e8ab+']';return _0x54e8ab;}export function hostsFromBonjourService(_0x4c6949={}){const _0x50eb59=_0x2731,_0x54beae=[];if(Array[_0x50eb59(0x160)+'y'](_0x4c6949[_0x50eb59(0x1a1)+'ses']))_0x54beae[_0x50eb59(0x1af)](..._0x4c6949[_0x50eb59(0x1a1)+_0x50eb59(0x17b)]);if(_0x4c6949[_0x50eb59(0x184)+'r']?.[_0x50eb59(0x1a1)+'s'])_0x54beae[_0x50eb59(0x1af)](_0x4c6949[_0x50eb59(0x184)+'r'][_0x50eb59(0x1a1)+'s']);if(_0x4c6949[_0x50eb59(0x16a)])_0x54beae['push'](_0x4c6949[_0x50eb59(0x16a)]);const _0x5af384=[],_0xb841fa=[],_0x42bef3=[];for(const _0x513dd0 of _0x54beae){const _0x13f758=String(_0x513dd0||'')[_0x50eb59(0x1a0)]()[_0x50eb59(0x1ae)+'e'](/^\[|\]$/g,'')[_0x50eb59(0x1ae)+'e'](/\.$/,'');if(!_0x13f758||_0x13f758===_0x50eb59(0x18a)+'0'||_0x13f758==='::')continue;if(IPV4[_0x50eb59(0x1a4)](_0x13f758)){if(!_0x13f758[_0x50eb59(0x174)+_0x50eb59(0x192)]('169.25'+'4.'))_0x5af384[_0x50eb59(0x1af)](_0x13f758);continue;}if(_0x13f758[_0x50eb59(0x167)+'es'](':')){if(!_0x13f758[_0x50eb59(0x1ac)+_0x50eb59(0x19c)]()[_0x50eb59(0x174)+'With'](_0x50eb59(0x197)))_0x42bef3[_0x50eb59(0x1af)](_0x13f758);continue;}_0xb841fa[_0x50eb59(0x1af)](_0x13f758);}return[...new Set([..._0x5af384,..._0xb841fa,..._0x42bef3])];}function _0x2731(_0x49978f,_0x22b37a){_0x49978f=_0x49978f-0x15b;const _0x2fced1=_0x2fce();let _0x273166=_0x2fced1[_0x49978f];if(_0x2731['StktHd']===undefined){var _0x444a26=function(_0x1385b9){const _0x422d4c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51b1d4='',_0x4a0453='';for(let _0x4ae25f=0x0,_0x54e8ab,_0x4c6949,_0x54beae=0x0;_0x4c6949=_0x1385b9['charAt'](_0x54beae++);~_0x4c6949&&(_0x54e8ab=_0x4ae25f%0x4?_0x54e8ab*0x40+_0x4c6949:_0x4c6949,_0x4ae25f++%0x4)?_0x51b1d4+=String['fromCharCode'](0xff&_0x54e8ab>>(-0x2*_0x4ae25f&0x6)):0x0){_0x4c6949=_0x422d4c['indexOf'](_0x4c6949);}for(let _0x5af384=0x0,_0xb841fa=_0x51b1d4['length'];_0x5af384<_0xb841fa;_0x5af384++){_0x4a0453+='%'+('00'+_0x51b1d4['charCodeAt'](_0x5af384)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a0453);};_0x2731['ZcETJT']=_0x444a26,_0x2731['eDeXGM']={},_0x2731['StktHd']=!![];}const _0x23752e=_0x2fced1[0x0],_0x52c6e8=_0x49978f+_0x23752e,_0x3cf37c=_0x2731['eDeXGM'][_0x52c6e8];return!_0x3cf37c?(_0x273166=_0x2731['ZcETJT'](_0x273166),_0x2731['eDeXGM'][_0x52c6e8]=_0x273166):_0x273166=_0x3cf37c,_0x273166;}export function deviceFromService(_0x576ecd){const _0x2edd03=_0x2731,_0x45e816=Number(_0x576ecd[_0x2edd03(0x16b)])||0x157c,_0x4ba712=_0x576ecd[_0x2edd03(0x19f)]||_0x576ecd[_0x2edd03(0x199)]?.['fn']||_0x2edd03(0x16f);return hostsFromBonjourService(_0x576ecd)[_0x2edd03(0x183)](_0xc3ead3=>({'name':_0x4ba712,'host':_0xc3ead3,'port':_0x45e816,'baseUrl':'http:/'+'/'+formatHttpHost(_0xc3ead3)+':'+_0x45e816,'source':_0x2edd03(0x162),'product':_0x576ecd['txt']?.[_0x2edd03(0x1a8)+'t']||'','board':_0x576ecd[_0x2edd03(0x199)]?.[_0x2edd03(0x198)]||''}));}export function isMossOnlineSignal(_0x21f38b){const _0x8b3d5a=_0x2731,_0x34c746=String(_0x21f38b?.['type']||''),_0x3ebdda=_0x21f38b?.[_0x8b3d5a(0x1a3)+'d']&&typeof _0x21f38b[_0x8b3d5a(0x1a3)+'d']===_0x8b3d5a(0x17e)?_0x21f38b[_0x8b3d5a(0x1a3)+'d']:{};if(_0x34c746===_0x8b3d5a(0x190)+'.onlin'+'e')return!![];if(_0x34c746===_0x8b3d5a(0x1ad)+'ck'&&_0x3ebdda[_0x8b3d5a(0x168)+'e']!=='cleare'+'d'&&_0x3ebdda['ok']!==![])return!![];return![];}export function isLikelyMossHealth(_0x57b52a){const _0x34b8db=_0x2731;if(!_0x57b52a||typeof _0x57b52a!=='object')return![];if(_0x57b52a[_0x34b8db(0x1a8)+'t']===_0x34b8db(0x180)+_0x34b8db(0x17d)||_0x57b52a['produc'+'t']===_0x34b8db(0x16d)+_0x34b8db(0x18c))return!![];if(_0x57b52a[_0x34b8db(0x198)]===_0x34b8db(0x189)+_0x34b8db(0x1a2)||_0x57b52a['board']==='moss-o'+_0x34b8db(0x194))return!![];if(_0x57b52a[_0x34b8db(0x19a)]==='ok'&&(_0x57b52a[_0x34b8db(0x19f)]===_0x34b8db(0x1b2)+_0x34b8db(0x18d)||_0x57b52a[_0x34b8db(0x19f)]===_0x34b8db(0x189)+_0x34b8db(0x1a2)||_0x57b52a[_0x34b8db(0x19f)]===_0x34b8db(0x189)+_0x34b8db(0x194)||_0x57b52a[_0x34b8db(0x171)+'me']))return!![];return Boolean(_0x57b52a['hostna'+'me']&&_0x57b52a['instan'+'ce']);}function _0x2fce(){const _0x1de365=['DJi2nda','mtCWntqXzMLWAu9f','C3rVCa','zMu4mdO','yM9HCMq','DhH0','C3rHDhvZ','C3bSAxq','CKnHC2u','zMLUzeLU','zMfJzxm','BMfTzq','DhjPBq','ywrKCMvZ','BNzPzG','Cgf5Bg9H','DgvZDa','C291CMnL','A0LUDgvY','mtu3nwzbvKHJrW','ChjVzhvJ','zNjVBq','Ev9Uyw1L','mtC0ndy0ELjKCezi','Dg9mB3DL','yMLUzc5H','CMvWBgfJ','ChvZAa','zgvZDhjV','Aw5ZDgfU','Bw9ZCY1K','mtC3mJK5mhLorenyta','ANnVBG','BgvUz3rO','yMfZzvvY','zg5Z','Axnoyu4','DhrW','AxnbCNjH','nde3mJmXAvj2BLvw','BwrUCW','ywXS','lMXVy2fS','D2fYBG','BMv0D29Y','Aw5JBhvK','BwvZC2fN','mte3mdC1nMHjA3vksW','Ag9ZDa','Cg9YDa','w2rPC2nV','Bw9ZCY1J','zw50CMLL','tu9tuW','mZvZA29owxm','Ag9ZDg5H','BwfJ','zgv4','C3rHCNrZ','Ahr0CdOV','nNDKsffmrG','BgfU','l2HLywX0','C29Tzq','yM91BMq','C2vZ','DgLTzw91','AwfVEMHP','B2jQzwn0','DMvYxsbT','Bw9ZCY14','nJi3mfbSAKrhqG','zMfTAwX5','BwfW','CMvMzxjL','zMLUza','ndu3ody0qNvAr2no','5lIk5QYH6l+E5O6L','C2f2zwq','Bw9ZCY1V','mc4WlJaU','y2f0y2G','yw1LCMe','zxnRDg9W','BwLU','DMvYxsbS','zgv2AwnL','zgLZCgXH','v2L0Aa','Aw50zxjU'];_0x2fce=function(){return _0x1de365;};return _0x2fce();}export function enrichFromHealth(_0x56e056,_0x5a43be){const _0x1b96bd=_0x2731;if(!isLikelyMossHealth(_0x5a43be))return{..._0x56e056};const _0xc4fbf3=_0x5a43be[_0x1b96bd(0x1a8)+'t']||_0x56e056[_0x1b96bd(0x1a8)+'t']||'',_0x4b6d16=_0x5a43be['board']||_0x5a43be[_0x1b96bd(0x19f)]||_0x56e056['board']||'',_0x54dc1c=_0x5a43be['instan'+'ce']||_0x5a43be[_0x1b96bd(0x191)+_0x1b96bd(0x1aa)]||_0x5a43be[_0x1b96bd(0x171)+'me']||_0x56e056[_0x1b96bd(0x19f)];return{..._0x56e056,'name':_0x54dc1c,'product':_0xc4fbf3,'board':_0x4b6d16,'hostname':_0x5a43be[_0x1b96bd(0x171)+'me']||_0x56e056[_0x1b96bd(0x171)+'me']||'','mac':_0x5a43be['mac']||_0x56e056['mac']||'','ip':_0x5a43be['ip']||_0x56e056['ip']||'','bound':!!_0x5a43be[_0x1b96bd(0x17a)]};}export function mergeDevices(_0x27f3b3,_0x26d346){const _0x5e6bb7=_0x2731;if(!_0x26d346?.[_0x5e6bb7(0x15c)+'l'])return _0x27f3b3;const _0x140acc=String(_0x26d346['baseUr'+'l'])['replac'+'e'](/\/$/,''),_0x17e759={..._0x26d346,'baseUrl':_0x140acc},_0x33f330=_0x27f3b3[_0x5e6bb7(0x19d)+_0x5e6bb7(0x173)](_0x51f30c=>sameScanDevice(_0x51f30c,_0x17e759));if(_0x33f330<0x0)return _0x27f3b3[_0x5e6bb7(0x1af)](_0x17e759),_0x27f3b3;const _0x30fa05=_0x27f3b3[_0x33f330];return _0x27f3b3[_0x33f330]={..._0x30fa05,..._0x17e759,'baseUrl':preferScanBaseUrl(_0x30fa05[_0x5e6bb7(0x15c)+'l'],_0x140acc),'mac':normalizeMac(_0x17e759[_0x5e6bb7(0x172)])||_0x30fa05[_0x5e6bb7(0x172)]||'','hostname':_0x17e759[_0x5e6bb7(0x171)+'me']||_0x30fa05['hostna'+'me']||''},_0x27f3b3;}export function sameScanDevice(_0x3c4542={},_0x3d6acf={}){const _0x21e5e5=_0x2731,_0x5783f5=String(_0x3c4542[_0x21e5e5(0x15c)+'l']||'')['replac'+'e'](/\/$/,''),_0x3032d8=String(_0x3d6acf[_0x21e5e5(0x15c)+'l']||'')['replac'+'e'](/\/$/,'');if(_0x5783f5&&_0x3032d8&&_0x5783f5===_0x3032d8)return!![];const _0x5143f4=normalizeMac(_0x3c4542[_0x21e5e5(0x172)]),_0x28ebb1=normalizeMac(_0x3d6acf[_0x21e5e5(0x172)]);if(_0x5143f4&&_0x28ebb1&&_0x5143f4===_0x28ebb1)return!![];const _0x2c164d=scanHostname(_0x3c4542),_0x2d52b4=scanHostname(_0x3d6acf);if(_0x2c164d&&_0x2d52b4&&_0x2c164d===_0x2d52b4)return!![];return![];}export function scanHostname(_0x29ac04={}){const _0x1d0d8f=_0x2731,_0x19ecf9=[_0x29ac04['hostna'+'me'],_0x29ac04[_0x1d0d8f(0x16a)]][_0x1d0d8f(0x183)](_0x5228a9=>String(_0x5228a9||'')['trim']()[_0x1d0d8f(0x1ac)+_0x1d0d8f(0x19c)]()['replac'+'e'](/\.$/,'')[_0x1d0d8f(0x1ae)+'e'](/\.local$/,''))[_0x1d0d8f(0x185)](_0x56bdc4=>_0x56bdc4&&!IPV4['test'](_0x56bdc4)&&!_0x56bdc4[_0x1d0d8f(0x167)+'es'](':'));if(_0x19ecf9)return _0x19ecf9;const _0x3810b8=String(_0x29ac04[_0x1d0d8f(0x15c)+'l']||'')[_0x1d0d8f(0x1ae)+'e'](/^https?:\/\//i,'')[_0x1d0d8f(0x19b)]('/')[0x0][_0x1d0d8f(0x19b)](':')[0x0][_0x1d0d8f(0x1ae)+'e'](/\[|\]/g,'')[_0x1d0d8f(0x1ac)+_0x1d0d8f(0x19c)]()[_0x1d0d8f(0x1ae)+'e'](/\.local$/,'');if(!_0x3810b8||IPV4[_0x1d0d8f(0x1a4)](_0x3810b8)||_0x3810b8['includ'+'es'](':'))return'';return _0x3810b8;}export function preferScanBaseUrl(_0x5ca127,_0x54cba5){const _0x35298d=_0x2731,_0x236633=String(_0x5ca127||'')[_0x35298d(0x1ae)+'e'](/\/$/,''),_0x1fc526=String(_0x54cba5||'')['replac'+'e'](/\/$/,'');if(isIpv4BaseUrl(_0x1fc526)&&!isIpv4BaseUrl(_0x236633))return _0x1fc526;if(isIpv4BaseUrl(_0x236633))return _0x236633;return _0x1fc526||_0x236633;}function isIpv4BaseUrl(_0x5e2ba1){const _0x1ac4b6=_0x2731,_0xb8ad64=String(_0x5e2ba1||'')[_0x1ac4b6(0x1ae)+'e'](/^https?:\/\//i,'')[_0x1ac4b6(0x19b)]('/')[0x0][_0x1ac4b6(0x19b)](':')[0x0];return IPV4[_0x1ac4b6(0x1a4)](_0xb8ad64);}export function shouldScanIface(_0x372abe,_0x21ce28){const _0x3f3ef2=_0x2731,_0x1115c4=String(_0x372abe||'')[_0x3f3ef2(0x1ac)+_0x3f3ef2(0x19c)]();if(/^(docker|veth|br-|vmnet|vboxnet|lo|awdl|llw|utun|bridge|cni|flannel)/[_0x3f3ef2(0x1a4)](_0x1115c4))return![];const _0x2d1ed7=String(_0x21ce28||'')[_0x3f3ef2(0x19b)]('.')[_0x3f3ef2(0x183)](Number);if(_0x2d1ed7[_0x3f3ef2(0x15b)]!==0x4||_0x2d1ed7[_0x3f3ef2(0x179)](_0xd4e0f3=>Number[_0x3f3ef2(0x15e)](_0xd4e0f3)))return![];const [_0x272fe4,_0x36fdd9]=_0x2d1ed7;if(_0x272fe4===0xa)return!![];if(_0x272fe4===0xc0&&_0x36fdd9===0xa8)return!![];if(_0x272fe4===0xac&&_0x36fdd9>=0x10&&_0x36fdd9<=0x1f&&_0x36fdd9!==0x11)return!![];return![];}export function listLanPrefixes(_0x46416a=_0x51b1d4[_0x169168(0x166)+_0x169168(0x1a6)+_0x169168(0x19e)]()){const _0x2a93d5=_0x169168,_0x2ec4f9=[];for(const [_0x21b2d6,_0x57eb31]of Object[_0x2a93d5(0x16e)+'s'](_0x46416a||{})){for(const _0x23c5a1 of _0x57eb31||[]){const _0x3a1f3d=_0x23c5a1['family']===0x4||_0x23c5a1[_0x2a93d5(0x182)]==='IPv4';if(_0x23c5a1[_0x2a93d5(0x193)+'al']||!_0x3a1f3d)continue;if(!shouldScanIface(_0x21b2d6,_0x23c5a1[_0x2a93d5(0x1a1)+'s']))continue;const _0x421c6d=_0x23c5a1['addres'+'s'][_0x2a93d5(0x19b)]('.');_0x2ec4f9[_0x2a93d5(0x1af)](_0x421c6d[0x0]+'.'+_0x421c6d[0x1]+'.'+_0x421c6d[0x2]);}}return[...new Set(_0x2ec4f9)];}export async function probeMossHealth(_0x10e6a3,{timeoutMs:timeoutMs=0x384,fetchImpl:fetchImpl=fetch}={}){const _0x2d9534=_0x169168,_0x3e8634=String(_0x10e6a3||'')[_0x2d9534(0x1ae)+'e'](/\/$/,'')+(_0x2d9534(0x178)+'h');try{const _0x1fa6a0=await fetchImpl(_0x3e8634,{'signal':AbortSignal[_0x2d9534(0x17c)+'t'](timeoutMs)});if(!_0x1fa6a0['ok'])return null;const _0x1dafa3=await _0x1fa6a0[_0x2d9534(0x1b4)]();return isLikelyMossHealth(_0x1dafa3)?_0x1dafa3:null;}catch{return null;}}async function mapPool(_0x51d9f4,_0x47b759,_0x4ae2a8){const _0x10ffdc=_0x169168,_0x441a3d=new Array(_0x51d9f4[_0x10ffdc(0x15b)]);let _0x45c3fa=0x0;async function _0x2a6e43(){const _0x27f708=_0x10ffdc;while(_0x45c3fa<_0x51d9f4[_0x27f708(0x15b)]){const _0x38f738=_0x45c3fa++;_0x441a3d[_0x38f738]=await _0x4ae2a8(_0x51d9f4[_0x38f738],_0x38f738);}}const _0x24b540=Math['max'](0x1,Math[_0x10ffdc(0x18e)](_0x47b759,_0x51d9f4['length']||0x1));return await Promise[_0x10ffdc(0x163)](Array[_0x10ffdc(0x1a9)]({'length':_0x24b540},()=>_0x2a6e43())),_0x441a3d;}export async function browseMossHttp(_0x30eac4=0xfa0){const _0x179f60=_0x169168,_0x4c8bd8=[],_0x25bdb0=new _0x4a0453(),_0x4c36da=_0x25bdb0[_0x179f60(0x185)]({'type':'moss-h'+_0x179f60(0x15f),'protocol':'tcp'},_0x29b43d=>{for(const _0x2496be of deviceFromService(_0x29b43d))mergeDevices(_0x4c8bd8,_0x2496be);});await new Promise(_0x1ec7c9=>setTimeout(_0x1ec7c9,_0x30eac4));try{_0x4c36da[_0x179f60(0x196)]();}catch{}try{_0x25bdb0[_0x179f60(0x1b0)+'y']();}catch{}return _0x4c8bd8;}export async function scanLanMoss({port:port=0x157c,timeoutMs:timeoutMs=0x1f4,concurrency:concurrency=0x30,fetchImpl:fetchImpl=fetch,prefixes:prefixes=listLanPrefixes()}={}){const _0x2bc524=_0x169168,_0x43cb5c=[],_0x2e914e=[];for(const _0x339244 of prefixes){for(let _0x24b9db=0x1;_0x24b9db<=0xfe;_0x24b9db+=0x1){_0x2e914e[_0x2bc524(0x1af)](_0x2bc524(0x175)+'/'+_0x339244+'.'+_0x24b9db+':'+port);}}const _0x3bedda=[...new Set(_0x2e914e)];return await mapPool(_0x3bedda,concurrency,async _0x1768fd=>{const _0x1dd031=_0x2bc524,_0x3bed09=await probeMossHealth(_0x1768fd,{'timeoutMs':timeoutMs,'fetchImpl':fetchImpl});if(!_0x3bed09)return;mergeDevices(_0x43cb5c,enrichFromHealth({'name':_0x3bed09[_0x1dd031(0x1b1)+'ce']||_0x3bed09[_0x1dd031(0x171)+'me']||_0x1dd031(0x16f),'host':_0x1768fd[_0x1dd031(0x1ae)+'e'](/^https?:\/\//,'')[_0x1dd031(0x1ae)+'e'](/:\d+$/,''),'port':port,'baseUrl':_0x1768fd,'source':_0x1dd031(0x177)},_0x3bed09));}),_0x43cb5c;}export async function discoverMossDevices({lastHostname:lastHostname='',lastBaseUrl:lastBaseUrl='',mdnsMs:mdnsMs=0xfa0,fetchImpl:fetchImpl=fetch}={}){const _0x29d988=_0x169168,_0x446da6=[],_0x229c8c=browseMossHttp(mdnsMs)[_0x29d988(0x18b)](_0x268cee=>{const _0xad3129=_0x29d988;return console[_0xad3129(0x165)](_0xad3129(0x16c)+_0xad3129(0x17f)+_0xad3129(0x15d),_0x268cee?.['messag'+'e']||_0x268cee),[];}),_0x4a5c28=scanLanMoss({'fetchImpl':fetchImpl})[_0x29d988(0x18b)](_0x3b7e2d=>{const _0x5bda51=_0x29d988;return console[_0x5bda51(0x165)](_0x5bda51(0x16c)+_0x5bda51(0x18f)+'an',_0x3b7e2d?.['messag'+'e']||_0x3b7e2d),[];}),_0x5550a5=[];if(lastBaseUrl)_0x5550a5['push']({'name':_0x29d988(0x187),'baseUrl':String(lastBaseUrl)[_0x29d988(0x1ae)+'e'](/\/$/,''),'source':_0x29d988(0x188)});lastHostname&&_0x5550a5['push']({'name':lastHostname,'baseUrl':'http:/'+'/'+lastHostname+(_0x29d988(0x164)+':5500'),'source':_0x29d988(0x171)+'me'});const [_0x3e963f,_0x2a98df]=await Promise[_0x29d988(0x163)]([_0x229c8c,_0x4a5c28]);for(const _0x16dd7b of[..._0x3e963f,..._0x2a98df,..._0x5550a5])mergeDevices(_0x446da6,_0x16dd7b);const _0x54c9a8=await mapPool(_0x446da6,0x8,async _0x5490d5=>{const _0x31546d=_0x29d988,_0x3992c1=await probeMossHealth(_0x5490d5[_0x31546d(0x15c)+'l'],{'timeoutMs':0x4b0,'fetchImpl':fetchImpl});if(_0x3992c1)return enrichFromHealth(_0x5490d5,_0x3992c1);if(_0x5490d5[_0x31546d(0x1a5)]===_0x31546d(0x162)||_0x5490d5[_0x31546d(0x1a5)]===_0x31546d(0x177))return _0x5490d5;return null;}),_0x2ec75b=[];for(const _0x84901a of _0x54c9a8){if(_0x84901a)mergeDevices(_0x2ec75b,_0x84901a);}return _0x2ec75b;}
|
|
1
|
+
const _0x9b3941=_0x1735;(function(_0x5d988c,_0x473671){const _0x33799c=_0x1735,_0x3494eb=_0x5d988c();while(!![]){try{const _0x457ccd=parseInt(_0x33799c(0x7d))/0x1*(parseInt(_0x33799c(0x9b))/0x2)+-parseInt(_0x33799c(0x86))/0x3+parseInt(_0x33799c(0xc2))/0x4+parseInt(_0x33799c(0x7c))/0x5+parseInt(_0x33799c(0xbf))/0x6*(-parseInt(_0x33799c(0xaf))/0x7)+parseInt(_0x33799c(0xa6))/0x8+-parseInt(_0x33799c(0x79))/0x9*(parseInt(_0x33799c(0x82))/0xa);if(_0x457ccd===_0x473671)break;else _0x3494eb['push'](_0x3494eb['shift']());}catch(_0x262223){_0x3494eb['push'](_0x3494eb['shift']());}}}(_0x40cc,0x5a4b2));import _0xb672d9 from'node:os';import _0x2b782c from'bonjour-service';import{normalizeMac}from'./device-identity.mjs';function _0x1735(_0x4c12fe,_0x465096){_0x4c12fe=_0x4c12fe-0x77;const _0x40cc1c=_0x40cc();let _0x17351b=_0x40cc1c[_0x4c12fe];if(_0x1735['JjqwIV']===undefined){var _0x1ffed5=function(_0x132d23){const _0x519741='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb672d9='',_0x2b782c='';for(let _0x3e1483=0x0,_0x5dfb79,_0x25cd04,_0x4b3145=0x0;_0x25cd04=_0x132d23['charAt'](_0x4b3145++);~_0x25cd04&&(_0x5dfb79=_0x3e1483%0x4?_0x5dfb79*0x40+_0x25cd04:_0x25cd04,_0x3e1483++%0x4)?_0xb672d9+=String['fromCharCode'](0xff&_0x5dfb79>>(-0x2*_0x3e1483&0x6)):0x0){_0x25cd04=_0x519741['indexOf'](_0x25cd04);}for(let _0x56cccd=0x0,_0x2a6904=_0xb672d9['length'];_0x56cccd<_0x2a6904;_0x56cccd++){_0x2b782c+='%'+('00'+_0xb672d9['charCodeAt'](_0x56cccd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b782c);};_0x1735['twuIfp']=_0x1ffed5,_0x1735['TdzksN']={},_0x1735['JjqwIV']=!![];}const _0x2dd2e4=_0x40cc1c[0x0],_0x97647e=_0x4c12fe+_0x2dd2e4,_0x597da8=_0x1735['TdzksN'][_0x97647e];return!_0x597da8?(_0x17351b=_0x1735['twuIfp'](_0x17351b),_0x1735['TdzksN'][_0x97647e]=_0x17351b):_0x17351b=_0x597da8,_0x17351b;}const IPV4=/^(\d{1,3}\.){3}\d{1,3}$/;export function formatHttpHost(_0x3e1483){const _0x565afd=_0x1735,_0x5dfb79=String(_0x3e1483||'')[_0x565afd(0x87)]()[_0x565afd(0xb6)+'e'](/^\[|\]$/g,'')['replac'+'e'](/\.$/,'');if(!_0x5dfb79)return'';if(_0x5dfb79[_0x565afd(0xbc)+'es'](':'))return'['+_0x5dfb79+']';return _0x5dfb79;}export function hostsFromBonjourService(_0x25cd04={}){const _0x5eb21c=_0x1735,_0x4b3145=[];if(Array[_0x5eb21c(0x84)+'y'](_0x25cd04[_0x5eb21c(0xc6)+'ses']))_0x4b3145[_0x5eb21c(0xb5)](..._0x25cd04[_0x5eb21c(0xc6)+_0x5eb21c(0x8a)]);if(_0x25cd04[_0x5eb21c(0x8e)+'r']?.[_0x5eb21c(0xc6)+'s'])_0x4b3145[_0x5eb21c(0xb5)](_0x25cd04[_0x5eb21c(0x8e)+'r'][_0x5eb21c(0xc6)+'s']);if(_0x25cd04[_0x5eb21c(0xb3)])_0x4b3145[_0x5eb21c(0xb5)](_0x25cd04[_0x5eb21c(0xb3)]);const _0x56cccd=[],_0x2a6904=[],_0x3b2ec0=[];for(const _0x460d49 of _0x4b3145){const _0x5e8cd5=String(_0x460d49||'')['trim']()[_0x5eb21c(0xb6)+'e'](/^\[|\]$/g,'')[_0x5eb21c(0xb6)+'e'](/\.$/,'');if(!_0x5e8cd5||_0x5e8cd5==='0.0.0.'+'0'||_0x5e8cd5==='::')continue;if(IPV4[_0x5eb21c(0x96)](_0x5e8cd5)){if(!_0x5e8cd5[_0x5eb21c(0xa3)+_0x5eb21c(0x80)](_0x5eb21c(0x8c)+'4.'))_0x56cccd[_0x5eb21c(0xb5)](_0x5e8cd5);continue;}if(_0x5e8cd5['includ'+'es'](':')){if(!_0x5e8cd5['toLowe'+_0x5eb21c(0x9f)]()[_0x5eb21c(0xa3)+_0x5eb21c(0x80)]('fe80:'))_0x3b2ec0['push'](_0x5e8cd5);continue;}_0x2a6904[_0x5eb21c(0xb5)](_0x5e8cd5);}return[...new Set([..._0x56cccd,..._0x2a6904,..._0x3b2ec0])];}export function deviceFromService(_0x44b5fa){const _0x4c0cc8=_0x1735,_0x1ab1d9=Number(_0x44b5fa['port'])||0x157c,_0x5b809e=_0x44b5fa['name']||_0x44b5fa[_0x4c0cc8(0x81)]?.['fn']||_0x4c0cc8(0xa0);return hostsFromBonjourService(_0x44b5fa)[_0x4c0cc8(0x83)](_0x14b790=>({'name':_0x5b809e,'host':_0x14b790,'port':_0x1ab1d9,'baseUrl':_0x4c0cc8(0x94)+'/'+formatHttpHost(_0x14b790)+':'+_0x1ab1d9,'source':_0x4c0cc8(0x92),'product':_0x44b5fa[_0x4c0cc8(0x81)]?.[_0x4c0cc8(0xc4)+'t']||'','board':_0x44b5fa[_0x4c0cc8(0x81)]?.[_0x4c0cc8(0x7f)]||''}));}export function isMossOnlineSignal(_0x514f0a){const _0x9c7d44=_0x1735,_0x5b09ed=String(_0x514f0a?.['type']||''),_0x53e45d=_0x514f0a?.[_0x9c7d44(0xc5)+'d']&&typeof _0x514f0a[_0x9c7d44(0xc5)+'d']===_0x9c7d44(0xa8)?_0x514f0a[_0x9c7d44(0xc5)+'d']:{};if(_0x5b09ed==='device'+_0x9c7d44(0xb2)+'e')return!![];if(_0x5b09ed===_0x9c7d44(0xb7)+'ck'&&_0x53e45d['messag'+'e']!==_0x9c7d44(0x7a)+'d'&&_0x53e45d['ok']!==![])return!![];return![];}export function isLikelyMossHealth(_0x54bf79){const _0x5a71db=_0x1735;if(!_0x54bf79||typeof _0x54bf79!==_0x5a71db(0xa8))return![];if(_0x54bf79[_0x5a71db(0xc4)+'t']==='moss-x'+_0x5a71db(0x90)||_0x54bf79['produc'+'t']===_0x5a71db(0xba)+'amera')return!![];if(_0x54bf79[_0x5a71db(0x7f)]===_0x5a71db(0xab)+_0x5a71db(0x9d)||_0x54bf79[_0x5a71db(0x7f)]===_0x5a71db(0xab)+_0x5a71db(0xb0))return!![];if(_0x54bf79[_0x5a71db(0xb9)]==='ok'&&(_0x54bf79[_0x5a71db(0xbb)]===_0x5a71db(0xaa)+_0x5a71db(0xb4)||_0x54bf79[_0x5a71db(0xbb)]===_0x5a71db(0xab)+_0x5a71db(0x9d)||_0x54bf79['name']===_0x5a71db(0xab)+_0x5a71db(0xb0)||_0x54bf79['hostna'+'me']))return!![];return Boolean(_0x54bf79[_0x5a71db(0xa2)+'me']&&_0x54bf79[_0x5a71db(0xac)+'ce']);}export function enrichFromHealth(_0x63856b,_0x2c3d9b){const _0x482daa=_0x1735;if(!isLikelyMossHealth(_0x2c3d9b))return{..._0x63856b};const _0x8a7c86=_0x2c3d9b[_0x482daa(0xc4)+'t']||_0x63856b[_0x482daa(0xc4)+'t']||'',_0x3e54e6=_0x2c3d9b[_0x482daa(0x7f)]||_0x2c3d9b[_0x482daa(0xbb)]||_0x63856b[_0x482daa(0x7f)]||'',_0x35a4eb=_0x2c3d9b['instan'+'ce']||_0x2c3d9b[_0x482daa(0xa1)+'y_name']||_0x2c3d9b[_0x482daa(0xa2)+'me']||_0x63856b[_0x482daa(0xbb)];return{..._0x63856b,'name':_0x35a4eb,'product':_0x8a7c86,'board':_0x3e54e6,'hostname':_0x2c3d9b[_0x482daa(0xa2)+'me']||_0x63856b[_0x482daa(0xa2)+'me']||'','mac':_0x2c3d9b[_0x482daa(0xc3)]||_0x63856b[_0x482daa(0xc3)]||'','ip':_0x2c3d9b['ip']||_0x63856b['ip']||'','bound':!!_0x2c3d9b['bound']};}export function mergeDevices(_0x232550,_0x12c2a7){const _0x4e9343=_0x1735;if(!_0x12c2a7?.[_0x4e9343(0x7e)+'l'])return _0x232550;const _0x1ff6b3=String(_0x12c2a7[_0x4e9343(0x7e)+'l'])[_0x4e9343(0xb6)+'e'](/\/$/,''),_0x5e3e23={..._0x12c2a7,'baseUrl':_0x1ff6b3},_0x3b36d7=_0x232550[_0x4e9343(0x8d)+_0x4e9343(0xb8)](_0x50e25f=>sameScanDevice(_0x50e25f,_0x5e3e23));if(_0x3b36d7<0x0)return _0x232550[_0x4e9343(0xb5)](_0x5e3e23),_0x232550;const _0x526b0d=_0x232550[_0x3b36d7];return _0x232550[_0x3b36d7]={..._0x526b0d,..._0x5e3e23,'baseUrl':preferScanBaseUrl(_0x526b0d[_0x4e9343(0x7e)+'l'],_0x1ff6b3),'mac':normalizeMac(_0x5e3e23[_0x4e9343(0xc3)])||_0x526b0d[_0x4e9343(0xc3)]||'','hostname':_0x5e3e23[_0x4e9343(0xa2)+'me']||_0x526b0d[_0x4e9343(0xa2)+'me']||''},_0x232550;}export function sameScanDevice(_0x17ac43={},_0xd5c4b5={}){const _0x24be1d=_0x1735,_0x3aae12=String(_0x17ac43['baseUr'+'l']||'')[_0x24be1d(0xb6)+'e'](/\/$/,''),_0x1ff486=String(_0xd5c4b5[_0x24be1d(0x7e)+'l']||'')[_0x24be1d(0xb6)+'e'](/\/$/,'');if(_0x3aae12&&_0x1ff486&&_0x3aae12===_0x1ff486)return!![];const _0x5a16e9=normalizeMac(_0x17ac43['mac']),_0x498c39=normalizeMac(_0xd5c4b5[_0x24be1d(0xc3)]);if(_0x5a16e9&&_0x498c39&&_0x5a16e9===_0x498c39)return!![];const _0x14ff21=scanHostname(_0x17ac43),_0x57db62=scanHostname(_0xd5c4b5);if(_0x14ff21&&_0x57db62&&_0x14ff21===_0x57db62)return!![];return![];}export function scanHostname(_0x5bba7f={}){const _0x5029d2=_0x1735,_0x3e22da=[_0x5bba7f[_0x5029d2(0xa2)+'me'],_0x5bba7f[_0x5029d2(0xb3)]]['map'](_0x5c3a6c=>String(_0x5c3a6c||'')['trim']()[_0x5029d2(0xae)+_0x5029d2(0x9f)]()['replac'+'e'](/\.$/,'')[_0x5029d2(0xb6)+'e'](/\.local$/,''))[_0x5029d2(0xc1)](_0x1920d3=>_0x1920d3&&!IPV4[_0x5029d2(0x96)](_0x1920d3)&&!_0x1920d3[_0x5029d2(0xbc)+'es'](':'));if(_0x3e22da)return _0x3e22da;const _0x4d004d=String(_0x5bba7f['baseUr'+'l']||'')[_0x5029d2(0xb6)+'e'](/^https?:\/\//i,'')['split']('/')[0x0]['split'](':')[0x0][_0x5029d2(0xb6)+'e'](/\[|\]/g,'')['toLowe'+_0x5029d2(0x9f)]()[_0x5029d2(0xb6)+'e'](/\.local$/,'');if(!_0x4d004d||IPV4[_0x5029d2(0x96)](_0x4d004d)||_0x4d004d[_0x5029d2(0xbc)+'es'](':'))return'';return _0x4d004d;}export function preferScanBaseUrl(_0x44f487,_0xd08d14){const _0xbab61a=_0x1735,_0x5b3b9e=String(_0x44f487||'')[_0xbab61a(0xb6)+'e'](/\/$/,''),_0x491f11=String(_0xd08d14||'')[_0xbab61a(0xb6)+'e'](/\/$/,'');if(isIpv4BaseUrl(_0x491f11)&&!isIpv4BaseUrl(_0x5b3b9e))return _0x491f11;if(isIpv4BaseUrl(_0x5b3b9e))return _0x5b3b9e;return _0x491f11||_0x5b3b9e;}function isIpv4BaseUrl(_0x2e388b){const _0x2c03c9=_0x1735,_0x3ff78e=String(_0x2e388b||'')[_0x2c03c9(0xb6)+'e'](/^https?:\/\//i,'')[_0x2c03c9(0xc7)]('/')[0x0][_0x2c03c9(0xc7)](':')[0x0];return IPV4[_0x2c03c9(0x96)](_0x3ff78e);}export function shouldScanIface(_0x5ce838,_0x4ab419){const _0x542840=_0x1735,_0x2d90fa=String(_0x5ce838||'')[_0x542840(0xae)+'rCase']();if(/^(docker|veth|br-|vmnet|vboxnet|lo|awdl|llw|utun|bridge|cni|flannel)/[_0x542840(0x96)](_0x2d90fa))return![];const _0x3d2e1c=String(_0x4ab419||'')[_0x542840(0xc7)]('.')[_0x542840(0x83)](Number);if(_0x3d2e1c[_0x542840(0x91)]!==0x4||_0x3d2e1c[_0x542840(0xa4)](_0x2e60d4=>Number[_0x542840(0xc8)](_0x2e60d4)))return![];const [_0x3b30c0,_0x2f57c1]=_0x3d2e1c;if(_0x3b30c0===0xa)return!![];if(_0x3b30c0===0xc0&&_0x2f57c1===0xa8)return!![];if(_0x3b30c0===0xac&&_0x2f57c1>=0x10&&_0x2f57c1<=0x1f&&_0x2f57c1!==0x11)return!![];return![];}export function listLanPrefixes(_0x28a64a=_0xb672d9[_0x9b3941(0x78)+'kInter'+_0x9b3941(0x77)]()){const _0x2cedf6=_0x9b3941,_0x36ecdb=[];for(const [_0x5a501d,_0x5c8d2c]of Object[_0x2cedf6(0x9a)+'s'](_0x28a64a||{})){for(const _0x1d0129 of _0x5c8d2c||[]){const _0x1c964f=_0x1d0129[_0x2cedf6(0x99)]===0x4||_0x1d0129[_0x2cedf6(0x99)]==='IPv4';if(_0x1d0129[_0x2cedf6(0xb1)+'al']||!_0x1c964f)continue;if(!shouldScanIface(_0x5a501d,_0x1d0129[_0x2cedf6(0xc6)+'s']))continue;const _0x14d70f=_0x1d0129['addres'+'s'][_0x2cedf6(0xc7)]('.');_0x36ecdb[_0x2cedf6(0xb5)](_0x14d70f[0x0]+'.'+_0x14d70f[0x1]+'.'+_0x14d70f[0x2]);}}return[...new Set(_0x36ecdb)];}export async function probeMossHealth(_0x299450,{timeoutMs:timeoutMs=0x384,fetchImpl:fetchImpl=fetch}={}){const _0x5c2411=_0x9b3941,_0x4f9c3d=String(_0x299450||'')[_0x5c2411(0xb6)+'e'](/\/$/,'')+(_0x5c2411(0xbd)+'h');try{const _0x4363cd=await fetchImpl(_0x4f9c3d,{'signal':AbortSignal[_0x5c2411(0x8f)+'t'](timeoutMs)});if(!_0x4363cd['ok'])return null;const _0x2810f9=await _0x4363cd['json']();return isLikelyMossHealth(_0x2810f9)?_0x2810f9:null;}catch{return null;}}async function mapPool(_0x164d5f,_0x4df0ac,_0x481de8){const _0x3fcd91=_0x9b3941,_0x1825a4=new Array(_0x164d5f[_0x3fcd91(0x91)]);let _0x284581=0x0;async function _0x393cda(){const _0x2d641f=_0x3fcd91;while(_0x284581<_0x164d5f[_0x2d641f(0x91)]){const _0x4c7248=_0x284581++;_0x1825a4[_0x4c7248]=await _0x481de8(_0x164d5f[_0x4c7248],_0x4c7248);}}const _0x45ec1f=Math[_0x3fcd91(0xa5)](0x1,Math['min'](_0x4df0ac,_0x164d5f[_0x3fcd91(0x91)]||0x1));return await Promise[_0x3fcd91(0x8b)](Array['from']({'length':_0x45ec1f},()=>_0x393cda())),_0x1825a4;}export async function browseMossHttp(_0x2b75b1=0xfa0){const _0x1c58f8=_0x9b3941,_0x29aecc=[],_0x3768b5=new _0x2b782c(),_0x18500b=_0x3768b5[_0x1c58f8(0xc1)]({'type':'moss-h'+_0x1c58f8(0x7b),'protocol':'tcp'},_0x3fda79=>{for(const _0x4a4c20 of deviceFromService(_0x3fda79))mergeDevices(_0x29aecc,_0x4a4c20);});await new Promise(_0x3cdeed=>setTimeout(_0x3cdeed,_0x2b75b1));try{_0x18500b[_0x1c58f8(0x98)]();}catch{}try{_0x3768b5[_0x1c58f8(0x95)+'y']();}catch{}return _0x29aecc;}export async function scanLanMoss({port:port=0x157c,timeoutMs:timeoutMs=0x1f4,concurrency:concurrency=0x30,fetchImpl:fetchImpl=fetch,prefixes:prefixes=listLanPrefixes()}={}){const _0x4c10cc=_0x9b3941,_0x4be3a8=[],_0x168667=[];for(const _0xfcd9af of prefixes){for(let _0xdc49d5=0x1;_0xdc49d5<=0xfe;_0xdc49d5+=0x1){_0x168667[_0x4c10cc(0xb5)](_0x4c10cc(0x94)+'/'+_0xfcd9af+'.'+_0xdc49d5+':'+port);}}const _0x5e100f=[...new Set(_0x168667)];return await mapPool(_0x5e100f,concurrency,async _0x1eb400=>{const _0x9f8387=_0x4c10cc,_0x389814=await probeMossHealth(_0x1eb400,{'timeoutMs':timeoutMs,'fetchImpl':fetchImpl});if(!_0x389814)return;mergeDevices(_0x4be3a8,enrichFromHealth({'name':_0x389814[_0x9f8387(0xac)+'ce']||_0x389814[_0x9f8387(0xa2)+'me']||_0x9f8387(0xa0),'host':_0x1eb400[_0x9f8387(0xb6)+'e'](/^https?:\/\//,'')[_0x9f8387(0xb6)+'e'](/:\d+$/,''),'port':port,'baseUrl':_0x1eb400,'source':'lan'},_0x389814));}),_0x4be3a8;}export async function discoverMossDevices({lastHostname:lastHostname='',lastBaseUrl:lastBaseUrl='',mdnsMs:mdnsMs=0xfa0,fetchImpl:fetchImpl=fetch}={}){const _0x1dc5df=_0x9b3941,_0x4e5d7e=[],_0xec627f=browseMossHttp(mdnsMs)[_0x1dc5df(0x97)](_0x4fcfa6=>{const _0x1a805f=_0x1dc5df;return console[_0x1a805f(0x88)]('[disco'+_0x1a805f(0x85)+'dns',_0x4fcfa6?.[_0x1a805f(0xad)+'e']||_0x4fcfa6),[];}),_0x2de6b1=scanLanMoss({'fetchImpl':fetchImpl})['catch'](_0xf0c23f=>{const _0x2195ee=_0x1dc5df;return console[_0x2195ee(0x88)](_0x2195ee(0x89)+_0x2195ee(0xa7)+'an',_0xf0c23f?.['messag'+'e']||_0xf0c23f),[];}),_0x18f494=[];if(lastBaseUrl)_0x18f494[_0x1dc5df(0xb5)]({'name':_0x1dc5df(0xc0),'baseUrl':String(lastBaseUrl)[_0x1dc5df(0xb6)+'e'](/\/$/,''),'source':_0x1dc5df(0xbe)});lastHostname&&_0x18f494['push']({'name':lastHostname,'baseUrl':_0x1dc5df(0x94)+'/'+lastHostname+(_0x1dc5df(0x93)+_0x1dc5df(0x9e)),'source':_0x1dc5df(0xa2)+'me'});const [_0x43b0cc,_0x5b67b7]=await Promise[_0x1dc5df(0x8b)]([_0xec627f,_0x2de6b1]);for(const _0x128ab0 of[..._0x43b0cc,..._0x5b67b7,..._0x18f494])mergeDevices(_0x4e5d7e,_0x128ab0);const _0x411fbc=await mapPool(_0x4e5d7e,0x8,async _0x319ad3=>{const _0x45ca26=_0x1dc5df,_0x4a5769=await probeMossHealth(_0x319ad3[_0x45ca26(0x7e)+'l'],{'timeoutMs':0x4b0,'fetchImpl':fetchImpl});if(_0x4a5769)return enrichFromHealth(_0x319ad3,_0x4a5769);if(_0x319ad3[_0x45ca26(0x9c)]==='mdns'||_0x319ad3['source']===_0x45ca26(0xa9))return _0x319ad3;return null;}),_0x42da30=[];for(const _0x5ba2d2 of _0x411fbc){if(_0x5ba2d2)mergeDevices(_0x42da30,_0x5ba2d2);}return _0x42da30;}function _0x40cc(){const _0x23b1b5=['DMvYxsbS','B2jQzwn0','BgfU','Bw9ZCY1K','Bw9ZCY1V','Aw5ZDgfU','BwvZC2fN','Dg9mB3DL','mZy5mZeZy0joqNbJ','DJi2nda','Aw50zxjU','lM9UBgLU','Ag9ZDa','zxnRDg9W','ChvZAa','CMvWBgfJ','yMLUzc5H','zgv4','C3rHDhvZ','Bw9ZCY1J','BMfTzq','Aw5JBhvK','l2HLywX0','C2f2zwq','nM9uDuzWua','5lIk5QYH6l+E5O6L','zMLUza','mta1ndqXnMrSv1jXrq','BwfJ','ChjVzhvJ','Cgf5Bg9H','ywrKCMvZ','C3bSAxq','Axnoyu4','zMfJzxm','BMv0D29Y','nZa0mZrZEhvmzLG','y2XLyxjL','DhrW','mtq5mde5meHmtM5NBG','nwXYEuzTuG','yMfZzvvY','yM9HCMq','v2L0Aa','DhH0','nZaWu1rrt3Ho','BwfW','AxnbCNjH','DMvYxsbT','nte2mdG0AgD5wKPm','DhjPBq','D2fYBG','w2rPC2nV','C2vZ','ywXS','mty5lJi1','zMLUzeLU','CMvMzxjL','DgLTzw91','AwfVEMHP','BgvUz3rO','BwrUCW','lMXVy2fS','Ahr0CdOV','zgvZDhjV','DgvZDa','y2f0y2G','C3rVCa','zMfTAwX5','zw50CMLL','mtq5mZC0DxbquwTh','C291CMnL','BNzPzG','oJu1mda','CKnHC2u','tu9tuW','zgLZCgXH','Ag9ZDg5H','C3rHCNrZ','C29Tzq','Bwf4','mty1odK3nLrAzg9rwa'];_0x40cc=function(){return _0x23b1b5;};return _0x40cc();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x12e3(_0x3f87e7,_0x106ea2){_0x3f87e7=_0x3f87e7-0xc4;const _0xa55016=_0xa550();let _0x12e3f9=_0xa55016[_0x3f87e7];if(_0x12e3['zHTcbM']===undefined){var _0xcc7408=function(_0x5ad7dc){const _0x4a12be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x271f3c='',_0x2b9576='';for(let _0x2bb5ac=0x0,_0x58fb0e,_0x3bd01d,_0x1c47aa=0x0;_0x3bd01d=_0x5ad7dc['charAt'](_0x1c47aa++);~_0x3bd01d&&(_0x58fb0e=_0x2bb5ac%0x4?_0x58fb0e*0x40+_0x3bd01d:_0x3bd01d,_0x2bb5ac++%0x4)?_0x271f3c+=String['fromCharCode'](0xff&_0x58fb0e>>(-0x2*_0x2bb5ac&0x6)):0x0){_0x3bd01d=_0x4a12be['indexOf'](_0x3bd01d);}for(let _0x46f61a=0x0,_0x5ceade=_0x271f3c['length'];_0x46f61a<_0x5ceade;_0x46f61a++){_0x2b9576+='%'+('00'+_0x271f3c['charCodeAt'](_0x46f61a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b9576);};_0x12e3['UyrBeb']=_0xcc7408,_0x12e3['VsuomC']={},_0x12e3['zHTcbM']=!![];}const _0x3afd49=_0xa55016[0x0],_0x212aa4=_0x3f87e7+_0x3afd49,_0x494851=_0x12e3['VsuomC'][_0x212aa4];return!_0x494851?(_0x12e3f9=_0x12e3['UyrBeb'](_0x12e3f9),_0x12e3['VsuomC'][_0x212aa4]=_0x12e3f9):_0x12e3f9=_0x494851,_0x12e3f9;}function _0xa550(){const _0xb45705=['lxnuq1a6','otLuwuXRBwC','mte0mJe2ogLcAxr4wa','xhmPlIPm','DhjPBq','mti1nde2mK5xz0LhBG','u0Lhvevs','zMLSDgvY','nJm1nJa5vvjgrLfN','AxnjBNrL','DxrMoa','lZeYnY4W','ChvZAa','Ahr0CdOV','A2LSBa','venq','CgXHDgzV','u0Lhs0Lm','BhnVzG','CgLK','ndq5otm4nunhq1Phsq','xgqRkq','DgvZDa','wZPCw10','mJqWmJq1nLzZA3b0CW','BMv0C3rH','BM93','svnuru5j','z2vY','kd86xf18','Dw5SAw5R','C3bSAxq','D2LUmZi','u3LUyW','mJrtAeziENe','Cg9YDa','lJaUmtO','mJaXmJi4mhrXzKnzvW','lwLuq1a6','mti4ody1mgrlr1j2yq','BwfW'];_0xa550=function(){return _0xb45705;};return _0xa550();}(function(_0x1b1f91,_0x4bd836){const _0x56e471=_0x12e3,_0x34bbe9=_0x1b1f91();while(!![]){try{const _0x5efaf6=-parseInt(_0x56e471(0xd7))/0x1+-parseInt(_0x56e471(0xe7))/0x2+parseInt(_0x56e471(0xcd))/0x3+parseInt(_0x56e471(0xcb))/0x4+parseInt(_0x56e471(0xe3))/0x5+-parseInt(_0x56e471(0xc8))/0x6*(parseInt(_0x56e471(0xd4))/0x7)+parseInt(_0x56e471(0xd1))/0x8*(parseInt(_0x56e471(0xd0))/0x9);if(_0x5efaf6===_0x4bd836)break;else _0x34bbe9['push'](_0x34bbe9['shift']());}catch(_0x31cb03){_0x34bbe9['push'](_0x34bbe9['shift']());}}}(_0xa550,0xcf645));import{execFileSync}from'node:child_process';import _0x271f3c from'node:fs';export function sleep(_0x2b9576){return new Promise(_0x2bb5ac=>setTimeout(_0x2bb5ac,_0x2b9576));}export function parsePidList(_0x58fb0e){const _0x1d40c9=_0x12e3;return[...new Set(String(_0x58fb0e||'')[_0x1d40c9(0xc5)](/[\s,]+/)[_0x1d40c9(0xce)](_0x3bd01d=>Number(_0x3bd01d))[_0x1d40c9(0xd6)](_0x1c47aa=>Number[_0x1d40c9(0xd8)+_0x1d40c9(0xeb)](_0x1c47aa)&&_0x1c47aa>0x1))];}export function isMossDesktopCommand(_0x46f61a){const _0x1c322b=_0x12e3,_0x5ceade=String(_0x46f61a||'');return/(?:^|[\\/\s])(?:server\/index\.mjs|dist-server\/index\.mjs)\b/['test'](_0x5ceade)||/\byo-moss-ai\b/[_0x1c322b(0xe5)](_0x5ceade);}export function processCommand(_0x439308){const _0x428367=_0x12e3,_0x260a69=Number(_0x439308);if(!Number[_0x428367(0xd8)+_0x428367(0xeb)](_0x260a69)||_0x260a69<=0x1)return'';try{return execFileSync('ps',['-p',String(_0x260a69),'-o','args='],{'encoding':_0x428367(0xd9),'timeout':0x3e8})[_0x428367(0xd3)]();}catch{return'';}}export function pidsListeningOn(_0x3fa3d0){const _0x24e012=_0x12e3,_0xaa3094=Number(_0x3fa3d0);if(!Number[_0x24e012(0xd8)+_0x24e012(0xeb)](_0xaa3094)||_0xaa3094<=0x0)return[];try{if(process[_0x24e012(0xdf)+'rm']===_0x24e012(0xc6)){const _0x3adb57=execFileSync(_0x24e012(0xe8)+'t',['-ano','-p',_0x24e012(0xde)],{'encoding':_0x24e012(0xd9),'timeout':0xbb8,'windowsHide':!![]}),_0x4bbaa2=[],_0x5b4ef0=new RegExp(_0x24e012(0xe6)+_0xaa3094+(_0x24e012(0xec)+_0x24e012(0xd2)+_0x24e012(0xea)+'NG\x5cs+('+_0x24e012(0xe4)),'gi');let _0x3c91d4;while(_0x3c91d4=_0x5b4ef0['exec'](_0x3adb57))_0x4bbaa2[_0x24e012(0xdb)](_0x3c91d4[0x1]);return parsePidList(_0x4bbaa2['join']('\x20'));}const _0xd372d0=execFileSync(_0x24e012(0xe1),['-nP',_0x24e012(0xcc)+_0xaa3094,_0x24e012(0xcf)+'LISTEN','-t'],{'encoding':_0x24e012(0xd9),'timeout':0xbb8});return parsePidList(_0xd372d0);}catch{return[];}}export function isPidAlive(_0x1cde22){const _0x11c2dd=_0x12e3,_0x32f37d=Number(_0x1cde22);if(!Number[_0x11c2dd(0xd8)+_0x11c2dd(0xeb)](_0x32f37d)||_0x32f37d<=0x1)return![];try{return process[_0x11c2dd(0xdd)](_0x32f37d,0x0),!![];}catch{return![];}}export function readRuntime(_0xbbf320){const _0x27e1af=_0x12e3;try{const _0xeaa294=JSON['parse'](_0x271f3c['readFi'+'leSync'](_0xbbf320,_0x27e1af(0xd9))),_0x2e4ba3=Number(_0xeaa294[_0x27e1af(0xc9)]),_0x5196da=Number(_0xeaa294['pid']);if(!Number[_0x27e1af(0xd8)+_0x27e1af(0xeb)](_0x2e4ba3)||_0x2e4ba3<=0x0)return null;return{'port':_0x2e4ba3,'pid':Number['isInte'+_0x27e1af(0xeb)](_0x5196da)&&_0x5196da>0x1?_0x5196da:0x0,'at':Number(_0xeaa294['at'])||0x0};}catch{return null;}}export function resolveApiTarget({runtimePath:_0x458240,preferredPort:preferredPort=0xec4}={}){const _0x4b1cf3=_0x12e3,_0x252dd0=readRuntime(_0x458240);if(_0x252dd0?.[_0x4b1cf3(0xc9)]&&(!_0x252dd0[_0x4b1cf3(0xe2)]||isPidAlive(_0x252dd0[_0x4b1cf3(0xe2)])))return _0x4b1cf3(0xdc)+_0x4b1cf3(0xda)+_0x4b1cf3(0xca)+_0x252dd0[_0x4b1cf3(0xc9)];return _0x4b1cf3(0xdc)+_0x4b1cf3(0xda)+_0x4b1cf3(0xca)+preferredPort;}export async function stopPid(_0x2df102,{waitMs:waitMs=0x320}={}){const _0x3b4de0=_0x12e3,_0x4e9931=Number(_0x2df102);if(!Number[_0x3b4de0(0xd8)+_0x3b4de0(0xeb)](_0x4e9931)||_0x4e9931<=0x1||_0x4e9931===process['pid'])return![];if(!isPidAlive(_0x4e9931))return!![];try{process[_0x3b4de0(0xdd)](_0x4e9931,_0x3b4de0(0xd5)+'M');}catch{return!isPidAlive(_0x4e9931);}const _0x2a4b85=Date[_0x3b4de0(0xe9)]();while(Date[_0x3b4de0(0xe9)]()-_0x2a4b85<waitMs){if(!isPidAlive(_0x4e9931))return!![];await sleep(0x28);}if(isPidAlive(_0x4e9931))try{process[_0x3b4de0(0xdd)](_0x4e9931,_0x3b4de0(0xe0)+'L');}catch{}return!isPidAlive(_0x4e9931);}export function clearRuntime(_0x306f1c){const _0x44f68a=_0x12e3;try{_0x271f3c[_0x44f68a(0xc4)+_0x44f68a(0xc7)](_0x306f1c);}catch{}}async function waitUntilGone(_0x518675,{sleepMs:_0x53ccdd,tries:_0x14545b}){for(let _0x4feedc=0x0;_0x4feedc<_0x14545b;_0x4feedc+=0x1){if(!isPidAlive(_0x518675))return!![];await sleep(_0x53ccdd);}return!isPidAlive(_0x518675);}export async function reclaimListenPort({preferredPort:_0x1ca607,runtimePath:_0x242876,sleepMs:sleepMs=0x50,tries:tries=0x8,hopRange:hopRange=0x14,listPids:listPids=pidsListeningOn,readCommand:readCommand=processCommand}={}){const _0x3fd077=_0x12e3,_0x4357cb=Number(_0x1ca607)||0xec4,_0x5342e3=readRuntime(_0x242876);let _0x4d8cad=![],_0x5e7859=![];const _0x4efb03=_0x5342e3?.['pid']&&_0x5342e3[_0x3fd077(0xe2)]!==process[_0x3fd077(0xe2)]&&Number[_0x3fd077(0xd8)+_0x3fd077(0xeb)](_0x5342e3[_0x3fd077(0xc9)])&&_0x5342e3['port']>=_0x4357cb&&_0x5342e3[_0x3fd077(0xc9)]<=_0x4357cb+hopRange;if(_0x4efb03){_0x4d8cad=!![];if(!isPidAlive(_0x5342e3['pid']))clearRuntime(_0x242876);else{_0x5e7859=await stopPid(_0x5342e3[_0x3fd077(0xe2)]),await waitUntilGone(_0x5342e3[_0x3fd077(0xe2)],{'sleepMs':sleepMs,'tries':tries});if(!isPidAlive(_0x5342e3[_0x3fd077(0xe2)]))clearRuntime(_0x242876);}}else _0x5342e3&&!_0x5342e3[_0x3fd077(0xe2)]&&(clearRuntime(_0x242876),_0x4d8cad=!![]);const _0x1381d4=listPids(_0x4357cb)[_0x3fd077(0xd6)](_0x15282e=>_0x15282e!==process['pid']&&_0x15282e!==_0x5342e3?.[_0x3fd077(0xe2)]&&isMossDesktopCommand(readCommand(_0x15282e)));for(const _0x51353e of _0x1381d4){const _0x121530=await stopPid(_0x51353e);if(_0x121530)_0x5e7859=!![];_0x4d8cad=!![],await waitUntilGone(_0x51353e,{'sleepMs':sleepMs,'tries':tries});}return{'reclaimed':_0x4d8cad,'killed':_0x5e7859};}export function nextListenPort(_0x5a376c,_0x51c8d6,_0x4075da=0x8){const _0x17a053=Number(_0x5a376c)||0xec4;if(_0x51c8d6<_0x4075da)return _0x17a053;return _0x17a053+(_0x51c8d6-_0x4075da+0x1);}
|