@loxia-labs/loxia-autopilot-one 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/cli.js +1 -1
- package/bin/loxia-terminal-v2.js +1 -1
- package/bin/loxia-terminal.js +1 -1
- package/bin/start-with-terminal.js +1 -1
- package/package.json +1 -1
- package/scripts/install-scanners.js +1 -1
- package/src/analyzers/CSSAnalyzer.js +1 -1
- package/src/analyzers/ConfigValidator.js +1 -1
- package/src/analyzers/ESLintAnalyzer.js +1 -1
- package/src/analyzers/JavaScriptAnalyzer.js +1 -1
- package/src/analyzers/PrettierFormatter.js +1 -1
- package/src/analyzers/PythonAnalyzer.js +1 -1
- package/src/analyzers/SecurityAnalyzer.js +1 -1
- package/src/analyzers/TypeScriptAnalyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/analyzer.js +1 -1
- package/src/analyzers/codeCloneDetector/detector.js +1 -1
- package/src/analyzers/codeCloneDetector/index.js +1 -1
- package/src/analyzers/codeCloneDetector/parser.js +1 -1
- package/src/analyzers/codeCloneDetector/reporter.js +1 -1
- package/src/analyzers/codeCloneDetector/scanner.js +1 -1
- package/src/core/agentPool.js +1 -1
- package/src/core/agentScheduler.js +1 -1
- package/src/core/contextManager.js +1 -1
- package/src/core/messageProcessor.js +1 -1
- package/src/core/orchestrator.js +1 -1
- package/src/core/stateManager.js +1 -1
- package/src/index.js +1 -1
- package/src/interfaces/cli.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/advancedFeatures.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agentControl.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/agents.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/components.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/connection.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/enhancements.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/imports.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/messages.test.js +1 -1
- package/src/interfaces/terminal/__tests__/smoke/tools.test.js +1 -1
- package/src/interfaces/terminal/api/apiClient.js +1 -1
- package/src/interfaces/terminal/api/messageRouter.js +1 -1
- package/src/interfaces/terminal/api/session.js +1 -1
- package/src/interfaces/terminal/api/websocket.js +1 -1
- package/src/interfaces/terminal/components/AgentCreator.js +1 -1
- package/src/interfaces/terminal/components/AgentEditor.js +1 -1
- package/src/interfaces/terminal/components/AgentSwitcher.js +1 -1
- package/src/interfaces/terminal/components/ErrorBoundary.js +1 -1
- package/src/interfaces/terminal/components/ErrorPanel.js +1 -1
- package/src/interfaces/terminal/components/Header.js +1 -1
- package/src/interfaces/terminal/components/HelpPanel.js +1 -1
- package/src/interfaces/terminal/components/InputBox.js +1 -1
- package/src/interfaces/terminal/components/Layout.js +1 -1
- package/src/interfaces/terminal/components/LoadingSpinner.js +1 -1
- package/src/interfaces/terminal/components/MessageList.js +1 -1
- package/src/interfaces/terminal/components/MultilineTextInput.js +1 -1
- package/src/interfaces/terminal/components/SearchPanel.js +1 -1
- package/src/interfaces/terminal/components/SettingsPanel.js +1 -1
- package/src/interfaces/terminal/components/StatusBar.js +1 -1
- package/src/interfaces/terminal/components/TextInput.js +1 -1
- package/src/interfaces/terminal/config/agentEditorConstants.js +1 -1
- package/src/interfaces/terminal/config/constants.js +1 -1
- package/src/interfaces/terminal/index.js +1 -1
- package/src/interfaces/terminal/state/useAgentControl.js +1 -1
- package/src/interfaces/terminal/state/useAgents.js +1 -1
- package/src/interfaces/terminal/state/useConnection.js +1 -1
- package/src/interfaces/terminal/state/useMessages.js +1 -1
- package/src/interfaces/terminal/state/useTools.js +1 -1
- package/src/interfaces/terminal/utils/debugLogger.js +1 -1
- package/src/interfaces/terminal/utils/settingsStorage.js +1 -1
- package/src/interfaces/terminal/utils/theme.js +1 -1
- package/src/interfaces/webServer.js +1 -1
- package/src/modules/fileExplorer/controller.js +1 -1
- package/src/modules/fileExplorer/index.js +1 -1
- package/src/modules/fileExplorer/middleware.js +1 -1
- package/src/modules/fileExplorer/routes.js +1 -1
- package/src/services/aiService.js +1 -1
- package/src/services/apiKeyManager.js +1 -1
- package/src/services/benchmarkService.js +1 -1
- package/src/services/budgetService.js +1 -1
- package/src/services/contextInjectionService.js +1 -1
- package/src/services/conversationCompactionService.js +1 -1
- package/src/services/errorHandler.js +1 -1
- package/src/services/fileAttachmentService.js +1 -1
- package/src/services/modelRouterService.js +1 -1
- package/src/services/modelsService.js +1 -1
- package/src/services/qualityInspector.js +1 -1
- package/src/services/tokenCountingService.js +1 -1
- package/src/tools/agentCommunicationTool.js +1 -1
- package/src/tools/agentDelayTool.js +1 -1
- package/src/tools/asyncToolManager.js +1 -1
- package/src/tools/baseTool.js +1 -1
- package/src/tools/browserTool.js +1 -1
- package/src/tools/cloneDetectionTool.js +1 -1
- package/src/tools/dependencyResolverTool.js +1 -1
- package/src/tools/fileContentReplaceTool.js +1 -1
- package/src/tools/fileSystemTool.js +1 -1
- package/src/tools/fileTreeTool.js +1 -1
- package/src/tools/imageTool.js +1 -1
- package/src/tools/importAnalyzerTool.js +1 -1
- package/src/tools/jobDoneTool.js +1 -1
- package/src/tools/seekTool.js +1 -1
- package/src/tools/staticAnalysisTool.js +1 -1
- package/src/tools/taskManagerTool.js +1 -1
- package/src/tools/terminalTool.js +1 -1
- package/src/tools/webTool.js +1 -1
- package/src/types/agent.js +1 -1
- package/src/types/contextReference.js +1 -1
- package/src/types/conversation.js +1 -1
- package/src/types/toolCommand.js +1 -1
- package/src/utilities/attachmentValidator.js +1 -1
- package/src/utilities/configManager.js +1 -1
- package/src/utilities/constants.js +1 -1
- package/src/utilities/directoryAccessManager.js +1 -1
- package/src/utilities/fileProcessor.js +1 -1
- package/src/utilities/logger.js +1 -1
- package/src/utilities/tagParser.js +1 -1
- package/src/utilities/toolConstants.js +1 -1
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/{index-BVF_10a5.css → index-BmKxmRe3.css} +1 -1
- package/web-ui/build/static/{index-DE5VFS1q.js → index-BzXbDs8z.js} +63 -63
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x452fa2=a0_0x3e1c;function a0_0x3e1c(_0x5c3d8b,_0x4c155f){_0x5c3d8b=_0x5c3d8b-0x12c;const _0x178252=a0_0x1782();let _0x3e1c0d=_0x178252[_0x5c3d8b];if(a0_0x3e1c['yUqPiW']===undefined){var _0xd82fc3=function(_0x12f2e6){const _0x1af81c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf16680='',_0x51a210='';for(let _0x1c8270=0x0,_0x2558fc,_0x17e891,_0x581f0c=0x0;_0x17e891=_0x12f2e6['charAt'](_0x581f0c++);~_0x17e891&&(_0x2558fc=_0x1c8270%0x4?_0x2558fc*0x40+_0x17e891:_0x17e891,_0x1c8270++%0x4)?_0xf16680+=String['fromCharCode'](0xff&_0x2558fc>>(-0x2*_0x1c8270&0x6)):0x0){_0x17e891=_0x1af81c['indexOf'](_0x17e891);}for(let _0x4c7f42=0x0,_0x5b669a=_0xf16680['length'];_0x4c7f42<_0x5b669a;_0x4c7f42++){_0x51a210+='%'+('00'+_0xf16680['charCodeAt'](_0x4c7f42)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51a210);};a0_0x3e1c['RGyOwt']=_0xd82fc3,a0_0x3e1c['sOcSKg']={},a0_0x3e1c['yUqPiW']=!![];}const _0x33c74b=_0x178252[0x0],_0x205a5b=_0x5c3d8b+_0x33c74b,_0x160e66=a0_0x3e1c['sOcSKg'][_0x205a5b];return!_0x160e66?(_0x3e1c0d=a0_0x3e1c['RGyOwt'](_0x3e1c0d),a0_0x3e1c['sOcSKg'][_0x205a5b]=_0x3e1c0d):_0x3e1c0d=_0x160e66,_0x3e1c0d;}(function(_0x3d4b6d,_0x5c75f2){const _0x54f1c1=a0_0x3e1c,_0x1d5682=_0x3d4b6d();while(!![]){try{const _0x3a9911=-parseInt(_0x54f1c1(0x175))/0x1+parseInt(_0x54f1c1(0x189))/0x2*(-parseInt(_0x54f1c1(0x12c))/0x3)+-parseInt(_0x54f1c1(0x14c))/0x4+-parseInt(_0x54f1c1(0x22c))/0x5+-parseInt(_0x54f1c1(0x198))/0x6+parseInt(_0x54f1c1(0x174))/0x7*(-parseInt(_0x54f1c1(0x1b8))/0x8)+-parseInt(_0x54f1c1(0x23b))/0x9*(-parseInt(_0x54f1c1(0x1cf))/0xa);if(_0x3a9911===_0x5c75f2)break;else _0x1d5682['push'](_0x1d5682['shift']());}catch(_0x532761){_0x1d5682['push'](_0x1d5682['shift']());}}}(a0_0x1782,0xdc1db));import a0_0xf16680 from'express';import{createServer}from'http';import{WebSocketServer}from'ws';import a0_0x51a210 from'path';import{promises as a0_0x1c8270}from'fs';import{fileURLToPath}from'url';function a0_0x1782(){const _0x390e0e=['DgvZDfDLyLnVy2TLDfnLCNzLCG','DgvYBwLUyxrL','ywDLBNq','yw50AhjVCgLJ','ywn0Aw9U','yMLYDgH0Aw1L','AxrLCMf0Aw9Uq291BNq','yxv0Ag9YAxPHDgLVBG','qxP1CMuGyMfJA2vUzcbLCNjVCJOG','ANnVBG','CgfYyw1Z','Aw5JBhvKzxm','Dg9mB3DLCKnHC2u','C2vYDMvY','CMvSyxrPDMu','BwTKAxi','D3nZ','DxrMoa','l2fWAs9OzwfSDgG','Dhj1zq','zMLSDgvY','BwvZC2fNzq','DgfZA1n0yxj0vgLTzq','C3rHy2S','u2H1DhrPBMCGzg93BIb3zwiGC2vYDMvYlI4U','CMvHzezPBgu','zgLYBMfTzq','DxbSB2fKrMLSzq','CMvZB2X2zq','zgLYzwn0B3j5','qwDLBNqGBM90igzVDw5K','zxHPDa','B3jJAgvZDhjHDg9Yx3jLC3bVBNnL','z2v0u2vZC2LVBKTLExm','l2fWAs9SBg0Vy2HHDa','Bwv0Ag9K','AxnsDw5UAw5N','zMLSzq','rMfPBgvKihrVigrLBgv0zsbHDhrHy2HTzw50','AgfUzgXLv2vIu29JA2v0twvZC2fNzq','y29UBMvJDgLVBNm','ywDLBNrjza','zNjVBq','CxvLCNK','AxneAxjLy3rVCNK','CMvX','Cgf0Aa','CgH5C2LJywXSEurLBgv0zwq','y29UzMLN','ywDLBNqT','AgvHzgvY','y29UDgvUDa','tMv3iefNzw50','qxr0ywnOBwvUDcbHy3rPDMuGC3rHDhvZihrVz2DSzwq','l3rTCc9SB3HPys1PBwfNzxm','D2fYBG','ChvZAa','yxbW','zMLSzw5HBwu','Dg9tDhjPBMC','C29YDa','ww91igfYzsbHigHLBhbMDwWGquKGyxnZAxn0yw50lG','DxjS','Bw9Kzvn0yxrL','ntC4odm2nwzvsgrdAq','rK9sqKLerevo','4P2miezHAwXLzcb0BYbZDgfYDcb3zwiGC2vYDMvYoG','teLtvf9br0vovfm','rMfPBgvKihrVihnLCNzLigLTywDL','z2v0qxr0ywnOBwvUDhm','CMvTB3rLqwrKCMvZCW','Aw1WB3j0rNjVBufNzw50','sw52ywXPzcbMAwXLBMfTzq','Ag9ZDa','DMfSDwvZ','yMfZzw5HBwu','u2v0DgLUzYb1CcbxzwjtB2nRzxqGC2vYDMvY','8j+tOsbxzwjtB2nRzxqGyNjVywrJyxn0vg9tzxnZAw9UignHBgXLzdO','yxbPs2v5twfUywDLCG','oxvWq2jPDG','mJiYD0rjC2nm','sw1Hz2uGBM90igzVDw5K','zMLSztOVlW','sw52ywXPzcbTB2rLlIbnDxn0igjLig9UzsbVzJOG','twvZC2fNzsbWCM9JzxnZB3iGBM90igf2ywLSywjSzq','D2vIlq','rMfPBgvKihrVigDLDcbHy3rPDMuGC2vZC2LVBNm','rMfPBgvKihrVihnLDcbbueKGA2v5CW','qvbjigTLExmGDxbKyxrLzcbMB3iGC2vZC2LVBG','Bg9Nz2vY','C2vUzezPBgu','zxjYB3i','DMvUzg9YqxbPs2v5','yw50AhjVCgLJlxnVBM5LDa','CMvHzgrPCG','C2v0DxbsB3v0zxm','v2vIu29JA2v0ihnLCNzLCIbPCYbUB3CGBgLZDgvUAw5N','C3rHDgvnyw5Hz2vY','ywXYzwfKEsbHy3rPDMu','v2vIihnLCNzLCIbPBML0AwfSAxPHDgLVBIbMywLSzwq','C2v0DxbxzwjtB2nRzxq','C2v0u2vZC2LVBKTLExm','BxrPBwu','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','vg9VBhmGCMvNAxn0CNKGBM90igf2ywLSywjSzq','zw52','l2fWAs9HDhrHy2HTzw50CY86zMLSzuLK','Bw9KzwXZu2vYDMLJzq','BgfZDefJDgL2Axr5','qvbjigTLEsbTyw5Hz2vYig5VDcbHDMfPBgfIBgu','BM93','rMLSzsbHDhrHy2HTzw50ihnLCNzPy2uGBM90igf2ywLSywjSzq','mJe2mda3mKLJvuzWAW','Bw9KzwXZ','qwnJzxnZlunVBNrYB2WTqwXSB3CTtwv0Ag9KCW','B3bLBG','C2vZC2LVBNm','C2vUza','AgvHzgvYCW','l2fWAs9RzxLZ','C3rVCef1Dg9UB21VDxnfEgvJDxrPB24','ChjVAMvJDerPCG','rMfPBgvKihrVigDLDcbHz2vUDcbTzxrHzgf0yq','Aw5PDgLHBgL6zq','u0Lhsu5u','C3vIC3rY','Dg9VBfjLC3vSDhm','ChjVy2vZC1jLCxvLC3q','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','z2v0qwXSqwDLBNrZ','Cg9UzW','BgLZDgvUAw5N','yNjVywrJyxn0vg9tzxnZAw9U','Cgf0y2G','l2fWAs9LEhbSB3jLCI9TA2rPCG','qxr0ywnOBwvUDcbUB3qGzM91BMq','qwDLBNqG','BwLJCM9ZB2z0','ywDLBNrqB29S','y29Kzq','l2fWAs9SBg0VBw9KzwXZ','zgvSzxrLqxr0ywnOBwvUDa','C3vJy2vZCW','v2vIu29JA2v0ignVBM5Ly3rPB24Gzxn0ywjSAxnOzwq','C2vZC2LVBKLe','ms4WlJa','Dg9ju09tDhjPBMC','D29YA2LUz0rPCMvJDg9YEq','Bg9N','Aw5MBW','Cgf5Bg9Hza','u0vorf9nrvntquDf','nde4mtHLvfzOBfG','mte2nta5n29irKTRuW','BwfW','zgLYzwn0B3j5qwnJzxnZ','zgvLChnLzwS','l2fWAs9LEhbSB3jLCG','Bw9Kzq','yxv0B25VBw91C191CgrHDgu','yM9KEq','l2fWAs9MAwXLCY91CgXVywq','Cg9ZDa','CMvTB3zLu2vZC2LVBKTLExm','DMvUzg9Ys2v5CW','rMfPBgvKihrVigDLDcbHDhrHy2HTzw50','v2vIifvjig5VDcbIDwLSDc4GuNvUoIbUCg0GCNvUigj1AwXKoNvP','DhLWzq','y2f0y2G','CMfUzg9T','4P2mifDLyLnVy2TLDcbZzxj2zxiGDgvZDdOGrvHdrvbusu9o','BgLZDgvU','y3vYCMvUDe1VzgvS','mtC0mtbWvhzqAK4','sw1Hz2uGC2vYDMvKihn1y2nLC3nMDwXSEq','zMLSzuLK','l2fWAs9PBwfNzxmVoNnLC3nPB25jzc86zMLSzw5HBwu','v2vIihnLCNzLCIbZAhv0zg93BIbJB21WBgv0zq','Aw1WB3j0qxjJAgL2zwrbz2vUDa','qKfex1jfuvvfu1q','w0LorK9Dia','C3rYAw5NAwz5','Ahr0CdOVlW','C3rVCfjLCxvLC3rLza','z2v0qwn0AxzLu2vZC2LVBNm','D3m6lY9SB2nHBgHVC3q6','z2v0','C2vUzfn0yxr1CW','odi5nZm3nK9LsuPOvq','ywn0AxzL','CMvXDwvZDeLK','l2fWAs9HDhrHy2HTzw50CY86zMLSzuLKl3bYzxzPzxC','qxP1CMuGyMfJA2vUzcbYzxf1zxn0igzHAwXLzcaTie5piezbteXcqunliefwquLmqujmrq','y29UBMvJDgvK','rMfPBgvKihrVihjLDhjPzxzLihrVB2XZigLUzM9YBwf0Aw9U','uMvMzxjLBMnLihjLBw92zwq','rMfPBgvKihrVigDLDcbHz2vUDcbTB2rLihn0yxr1CW','rMfPBgvKihrVihrVz2DSzsbHDhrHy2HTzw50','rMfPBgvKihrVihvWzgf0zsbHDhrHy2HTzw50','zgvIDwC','C2vZC2LVBKLK','r0vulcbqt1nulcbqvvqSierftevursWGt1busu9ouW','AxngAwXL','ywDLBNrjzcbPCYbYzxf1AxjLzcbPBIbYzxf1zxn0igjVzhK','zMLSzuf0DgfJAg1LBNrtzxj2AwnL','B3jJAgvZDhjHDg9Y','v2vIu29JA2v0ignVBM5Ly3rPB24Gyxr0zw1WDa','w0vsuK9sxsa','lI4VlI4VD2vIlxvPl2j1AwXK','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','l2fWAs9VCMnOzxn0CMf0B3i','D3nnyw5Hz2vY','su5urvjoquXFu0vsvKvsx0vsuK9s','z2v0qwXSqxzHAwXHyMXLqwDLBNrZ','C3rHDa','z2v0qxr0ywnOBwvUDa','DMvYC2LVBG','ugf0AcbPCYbUB3qGysbKAxjLy3rVCNK','ChjLzMvYCMvKtw9KzwW','te9ysufFqvbjx0Tfwq','oty4uu9QtKT4','C2H1DgrVD24','BM9YBwfSAxPL','qxr0ywnOBwvUDcbKzwXLDgvK','uhjVEhLPBMCGy2HHDcbYzxf1zxn0ihrVieXVEgLHief6DxjLigjHy2TLBMq','rMLSzsb1CgXVywrLzcbZDwnJzxnZzNvSBhK','AM9PBG','C3rHDhvZvgv4Da','BgvUz3rO','rMfPBgvKihrVihvWBg9HzcbMAwXLigf0DgfJAg1LBNq','rMfPBgvKihrVihbYB3H5ignOyxqGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5K','l2fWAs9RzxLZlZPZzxnZAw9Uswq','w0rfqLvhxsa','BMfTzq','l2fWAs9Hz2vUDhmVoMfNzw50swqVyxr0ywnOBwvUDhm','l2fWAs9LEhbSB3jLCI9PBMzV','C3rHCNrtzxj2zxi','Bg94AwfbCgLlzxK','y2XVC2u','C2L6zq','DxnL','v2vIu29JA2v0igPVAw5LzcbZzxnZAw9U','CgHP','nJuXndmWmZbqAgrcBMe','CM9Szq','C3rHCNrZv2L0Aa','CMvHzhLtDgf0zq','z2v0u3rHDhvZ','rMfPBgvKihrVihjLBw92zsbbueKGA2v5CW','vw5RBM93BIbHy3rPB246ia','8j+tSsbxzwiGvuKGyxzHAwXHyMXLigf0oIbODhrWoI8VBg9JywXOB3n0oJmWmdeGkgLMihj1BM5PBMCP','y2fWywjPBgL0AwvZ','y3DK','rMfPBgvKihrVigDLDcbHDhrHy2HTzw50ihbYzxzPzxC','AxnmB2fKzwq','r0vu','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','qvbjigTLExmGCMvTB3zLzcbZDwnJzxnZzNvSBhK','B3jJAgvZDhjHDg9Yx3jLCxvLC3q','x2DLDfzLBMrVCKzYB21nB2rLBa','Cg9YDa','sfruucbZzxj2zxiGC3rHCNrLzcbZDwnJzxnZzNvSBhK','Bw9KzwW','C29JA2v0','C3rHDhvZ','DxnLCI1Hz2vUDa','DgHLBG','v0vc','l2fWAs9Hz2vUDhmVoMfNzw50swqVC3rVCa','y2f0zwDVCNK','CgfYC2u','AgvHBhrOEq'];a0_0x1782=function(){return _0x390e0e;};return a0_0x1782();}import{INTERFACE_TYPES,ORCHESTRATOR_ACTIONS,HTTP_STATUS,AGENT_MODES}from'../utilities/constants.js';import{initFileExplorerModule}from'../modules/fileExplorer/index.js';const __filename=fileURLToPath(import.meta.url),__dirname=a0_0x51a210['dirname'](__filename);class WebServer{constructor(_0x2558fc,_0x17e891,_0x581f0c={}){const _0x5b18c5=a0_0x3e1c;this[_0x5b18c5(0x1a9)]=_0x2558fc,this[_0x5b18c5(0x135)]=_0x17e891,this['config']=_0x581f0c,this['port']=_0x581f0c['port']||0x1f90,this['host']=_0x581f0c[_0x5b18c5(0x235)]||'localhost',this['app']=a0_0xf16680(),this[_0x5b18c5(0x1f9)]=createServer(this[_0x5b18c5(0x225)]),this[_0x5b18c5(0x1fc)]=new WebSocketServer({'server':this['server'],'verifyClient':_0x4c7f42=>{const _0x1ec214=_0x5b18c5;return this[_0x1ec214(0x135)]?.[_0x1ec214(0x171)](_0x1ec214(0x1aa),{'origin':_0x4c7f42['origin'],'host':_0x4c7f42[_0x1ec214(0x219)]['headers']['host'],'userAgent':_0x4c7f42[_0x1ec214(0x219)][_0x1ec214(0x152)][_0x1ec214(0x1e5)],'url':_0x4c7f42[_0x1ec214(0x219)]['url']}),!![];}}),this['connections']=new Map(),this[_0x5b18c5(0x150)]=new Map(),this['apiKeyManager']=null,this[_0x5b18c5(0x210)]=![];}async[a0_0x452fa2(0x157)](){const _0x91ca9=a0_0x452fa2;try{this['setupMiddleware'](),this[_0x91ca9(0x13b)](),this['setupWebSocket'](),await this[_0x91ca9(0x1c8)](),this[_0x91ca9(0x135)]['info']('Web\x20server\x20initialized',{'port':this[_0x91ca9(0x1e0)],'host':this['host'],'url':'http://'+this[_0x91ca9(0x235)]+':'+this['port']});}catch(_0x5b669a){this['logger']['error'](_0x91ca9(0x13f),{'error':_0x5b669a[_0x91ca9(0x201)],'stack':_0x5b669a[_0x91ca9(0x203)]});throw _0x5b669a;}}['setupMiddleware'](){const _0x415b55=a0_0x452fa2;this[_0x415b55(0x225)][_0x415b55(0x1cc)]((_0x3870dc,_0x321e34,_0x10a941)=>{const _0x3300a8=_0x415b55;_0x321e34[_0x3300a8(0x21e)]('Access-Control-Allow-Origin','*'),_0x321e34[_0x3300a8(0x21e)](_0x3300a8(0x14e),_0x3300a8(0x1a5)),_0x321e34[_0x3300a8(0x21e)]('Access-Control-Allow-Headers','Origin,\x20X-Requested-With,\x20Content-Type,\x20Accept,\x20Authorization'),_0x3870dc[_0x3300a8(0x20f)]==='OPTIONS'?_0x321e34[_0x3300a8(0x197)](HTTP_STATUS['OK']):_0x10a941();}),this[_0x415b55(0x225)]['use'](a0_0xf16680[_0x415b55(0x1f5)]({'limit':'10mb'})),this[_0x415b55(0x225)]['use'](a0_0xf16680['urlencoded']({'extended':!![],'limit':'10mb'})),this['fileExplorerModule']=initFileExplorerModule({'showHidden':![],'restrictedPaths':[]}),this[_0x415b55(0x225)][_0x415b55(0x1cc)]('/api/file-explorer',this['fileExplorerModule']['router']);const _0x2b4fc1=a0_0x51a210[_0x415b55(0x1be)](__dirname,_0x415b55(0x1ac));this[_0x415b55(0x225)]['use'](a0_0xf16680['static'](_0x2b4fc1)),this['app']['use']((_0x35c3bf,_0x75596d,_0x2c7d28)=>{const _0x4437bd=_0x415b55;this['logger'][_0x4437bd(0x1a3)](_0x35c3bf['method']+'\x20'+_0x35c3bf[_0x4437bd(0x21a)],{'ip':_0x35c3bf['ip'],'userAgent':_0x35c3bf['get']('User-Agent')}),_0x2c7d28();});}[a0_0x452fa2(0x13b)](){const _0x8325b2=a0_0x452fa2;this['app'][_0x8325b2(0x196)](_0x8325b2(0x1fe),async(_0x18c518,_0x2cbbb6)=>{const _0xf70cea=_0x8325b2;try{const _0x14d3bf=a0_0x51a210[_0xf70cea(0x1be)](__dirname,'../../package.json'),_0x4200ef=JSON['parse'](await a0_0x1c8270['readFile'](_0x14d3bf,'utf8'));_0x2cbbb6['json']({'status':_0xf70cea(0x1eb),'version':_0x4200ef[_0xf70cea(0x1b4)]||'1.0.0','timestamp':new Date()[_0xf70cea(0x16e)]()});}catch(_0x576249){_0x2cbbb6[_0xf70cea(0x1f5)]({'status':_0xf70cea(0x1eb),'version':_0xf70cea(0x16d),'timestamp':new Date()['toISOString']()});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)]('/api/sessions',async(_0x1c3f6e,_0x260302)=>{const _0x413c2a=_0x8325b2;try{const _0xb98a56=_0x413c2a(0x131)+Date[_0x413c2a(0x14a)]()+'-'+Math[_0x413c2a(0x185)]()[_0x413c2a(0x227)](0x24)[_0x413c2a(0x159)](0x2,0x9),_0x5ccbc6=_0x1c3f6e['body'][_0x413c2a(0x155)]||process['cwd'](),_0x1ffd7a={'id':_0xb98a56,'projectDir':_0x5ccbc6,'createdAt':new Date()[_0x413c2a(0x16e)](),'lastActivity':new Date()[_0x413c2a(0x16e)]()};this[_0x413c2a(0x150)]['set'](_0xb98a56,_0x1ffd7a),_0x260302['json']({'success':!![],'session':_0x1ffd7a});}catch(_0x173977){_0x260302['status'](HTTP_STATUS[_0x413c2a(0x1b0)])['json']({'success':![],'error':_0x173977['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)](_0x8325b2(0x1ae),async(_0xe89d01,_0x2429ea)=>{const _0x3cfaaf=_0x8325b2;try{const _0x1622c6={'interface':INTERFACE_TYPES['WEB'],'sessionId':_0xe89d01[_0x3cfaaf(0x17c)][_0x3cfaaf(0x1a4)],'action':_0xe89d01['body']['action'],'payload':_0xe89d01['body'][_0x3cfaaf(0x172)],'projectDir':_0xe89d01['body']['projectDir']||process[_0x3cfaaf(0x1d8)]()},_0x24a5cc=await this['orchestrator'][_0x3cfaaf(0x15b)](_0x1622c6);this[_0x3cfaaf(0x160)](_0x1622c6['sessionId'],{'type':_0x3cfaaf(0x20c),'action':_0x1622c6[_0x3cfaaf(0x1f0)],'response':_0x24a5cc}),_0x2429ea['json'](_0x24a5cc);}catch(_0x54916a){this['logger'][_0x3cfaaf(0x137)]('Orchestrator\x20API\x20error',{'error':_0x54916a[_0x3cfaaf(0x201)],'body':_0xe89d01[_0x3cfaaf(0x17c)]}),_0x2429ea[_0x3cfaaf(0x1e4)](HTTP_STATUS[_0x3cfaaf(0x1b0)])[_0x3cfaaf(0x1f5)]({'success':![],'error':_0x54916a[_0x3cfaaf(0x201)]});}}),this['app'][_0x8325b2(0x196)]('/api/files',async(_0x448423,_0x234b9a)=>{const _0x42cc47=_0x8325b2;try{const {path:_0x39ca1c,projectDir:_0x4a53ed}=_0x448423['query'],_0x4ac9bf=a0_0x51a210['resolve'](_0x4a53ed||process[_0x42cc47(0x1d8)](),_0x39ca1c||'.'),_0x1d0370=await a0_0x1c8270[_0x42cc47(0x1b2)](_0x4ac9bf);if(_0x1d0370[_0x42cc47(0x218)]()){const _0x516abf=await a0_0x1c8270[_0x42cc47(0x13a)](_0x4ac9bf,{'withFileTypes':!![]}),_0x3eeaed=_0x516abf[_0x42cc47(0x176)](_0x3b65b6=>({'name':_0x3b65b6[_0x42cc47(0x1c5)],'type':_0x3b65b6[_0x42cc47(0x218)]()?_0x42cc47(0x209):_0x42cc47(0x211),'path':a0_0x51a210['join'](_0x39ca1c||'.',_0x3b65b6[_0x42cc47(0x1c5)])}));_0x234b9a[_0x42cc47(0x1f5)]({'success':!![],'files':_0x3eeaed});}else{const _0x20cea6=await a0_0x1c8270[_0x42cc47(0x205)](_0x4ac9bf,_0x42cc47(0x1fd));_0x234b9a[_0x42cc47(0x1f5)]({'success':!![],'content':_0x20cea6,'type':_0x42cc47(0x211)});}}catch(_0x42267f){_0x234b9a['status'](HTTP_STATUS['NOT_FOUND'])[_0x42cc47(0x1f5)]({'success':![],'error':_0x42267f['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)](_0x8325b2(0x17d),async(_0x30d154,_0x1dfc12)=>{const _0x3d3ebd=_0x8325b2;try{const {fileName:_0x501696,content:_0x369916,projectDir:_0x53017e}=_0x30d154[_0x3d3ebd(0x17c)],_0x5af67c=_0x53017e||process[_0x3d3ebd(0x1d8)](),_0xece4db=a0_0x51a210['resolve'](_0x5af67c,_0x501696);await a0_0x1c8270['mkdir'](_0x5af67c,{'recursive':!![]}),await a0_0x1c8270['writeFile'](_0xece4db,_0x369916,'utf8'),_0x1dfc12[_0x3d3ebd(0x1f5)]({'success':!![],'message':_0x3d3ebd(0x1bd),'path':_0xece4db});}catch(_0x433eb4){_0x1dfc12['status'](HTTP_STATUS['INTERNAL_SERVER_ERROR'])[_0x3d3ebd(0x1f5)]({'success':![],'error':_0x433eb4['message']});}}),this['app']['get'](_0x8325b2(0x179),async(_0x59ef1b,_0x161aec)=>{const _0x27de9e=_0x8325b2;try{const {path:_0x187db9,showHidden:showHidden=![]}=_0x59ef1b[_0x27de9e(0x217)],_0xf07922=_0x187db9||process['cwd'](),_0x11137b=a0_0x51a210['resolve'](_0xf07922),_0xd952b=a0_0x51a210[_0x27de9e(0x1ba)](_0x11137b),_0x46cb65=await a0_0x1c8270['stat'](_0xd952b);if(!_0x46cb65['isDirectory']())return _0x161aec['status'](HTTP_STATUS[_0x27de9e(0x18f)])[_0x27de9e(0x1f5)]({'success':![],'error':_0x27de9e(0x1b5)});const _0x17ec46=await a0_0x1c8270['readdir'](_0xd952b,{'withFileTypes':!![]}),_0x1417bf=await Promise['all'](_0x17ec46[_0x27de9e(0x200)](_0x5b59bc=>showHidden===_0x27de9e(0x1ff)||!_0x5b59bc[_0x27de9e(0x1c5)]['startsWith']('.'))[_0x27de9e(0x176)](async _0x165eb5=>{const _0x36ca74=_0x27de9e,_0x3f0f64=a0_0x51a210[_0x36ca74(0x1be)](_0xd952b,_0x165eb5[_0x36ca74(0x1c5)]),_0x33e9e8=await a0_0x1c8270[_0x36ca74(0x1b2)](_0x3f0f64)[_0x36ca74(0x184)](()=>null);return{'name':_0x165eb5[_0x36ca74(0x1c5)],'type':_0x165eb5[_0x36ca74(0x218)]()?'directory':'file','path':_0x3f0f64,'relativePath':a0_0x51a210['relative'](process['cwd'](),_0x3f0f64),'size':_0x33e9e8?.[_0x36ca74(0x1cb)]||0x0,'modified':_0x33e9e8?.[_0x36ca74(0x142)]||null,'isHidden':_0x165eb5[_0x36ca74(0x1c5)][_0x36ca74(0x1d1)]('.'),'permissions':{'readable':!![],'writable':!![]}};}));_0x1417bf[_0x27de9e(0x228)]((_0x21e32b,_0x6f580d)=>{const _0x15af51=_0x27de9e;if(_0x21e32b['type']!==_0x6f580d['type'])return _0x21e32b[_0x15af51(0x183)]==='directory'?-0x1:0x1;return _0x21e32b['name']['localeCompare'](_0x6f580d['name']);});const _0x1e4b8e=a0_0x51a210[_0x27de9e(0x206)](_0xd952b),_0x5b086a=_0x1e4b8e!==_0xd952b;_0x161aec['json']({'success':!![],'currentPath':_0xd952b,'currentRelativePath':a0_0x51a210[_0x27de9e(0x1fa)](process[_0x27de9e(0x1d8)](),_0xd952b),'parentPath':_0x5b086a?_0x1e4b8e:null,'items':_0x1417bf,'totalItems':_0x1417bf[_0x27de9e(0x1c0)],'directories':_0x1417bf['filter'](_0x48fdfd=>_0x48fdfd['type']==='directory')['length'],'files':_0x1417bf[_0x27de9e(0x200)](_0xed8bd4=>_0xed8bd4['type']==='file')[_0x27de9e(0x1c0)]});}catch(_0x92f1e8){_0x161aec[_0x27de9e(0x1e4)](HTTP_STATUS[_0x27de9e(0x1b0)])[_0x27de9e(0x1f5)]({'success':![],'error':_0x92f1e8['message'],'code':_0x92f1e8[_0x27de9e(0x167)]});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)](_0x8325b2(0x162),async(_0x41e680,_0x374795)=>{const _0x4d0816=_0x8325b2;try{const {path:_0x2070fe,name:_0x36d1ee}=_0x41e680[_0x4d0816(0x17c)],_0x45dbde=a0_0x51a210[_0x4d0816(0x208)](_0x2070fe,_0x36d1ee);await a0_0x1c8270[_0x4d0816(0x1fb)](_0x45dbde,{'recursive':![]}),_0x374795['json']({'success':!![],'path':_0x45dbde,'relativePath':a0_0x51a210[_0x4d0816(0x1fa)](process[_0x4d0816(0x1d8)](),_0x45dbde)});}catch(_0x5113f9){_0x374795['status'](HTTP_STATUS['INTERNAL_SERVER_ERROR'])['json']({'success':![],'error':_0x5113f9['message'],'code':_0x5113f9[_0x4d0816(0x167)]});}}),this['app'][_0x8325b2(0x196)](_0x8325b2(0x1c7),async(_0x2556aa,_0x300bcf)=>{const _0x5594f4=_0x8325b2;try{const {path:_0x3fa323}=_0x2556aa['query'],_0x5eaee3=a0_0x51a210['resolve'](_0x3fa323),_0x26c508=await a0_0x1c8270[_0x5594f4(0x1b2)](_0x5eaee3);_0x300bcf[_0x5594f4(0x1f5)]({'success':!![],'path':_0x5eaee3,'relativePath':a0_0x51a210[_0x5594f4(0x1fa)](process[_0x5594f4(0x1d8)](),_0x5eaee3),'isDirectory':_0x26c508[_0x5594f4(0x218)](),'isFile':_0x26c508[_0x5594f4(0x1a6)](),'size':_0x26c508['size'],'created':_0x26c508[_0x5594f4(0x1f1)],'modified':_0x26c508[_0x5594f4(0x142)],'accessed':_0x26c508['atime']});}catch(_0x3834bf){_0x300bcf['status'](HTTP_STATUS['INTERNAL_SERVER_ERROR'])['json']({'success':![],'error':_0x3834bf[_0x5594f4(0x201)],'code':_0x3834bf[_0x5594f4(0x167)]});}}),this['app'][_0x8325b2(0x17e)](_0x8325b2(0x20e),async(_0x11f427,_0x2f86f9)=>{const _0x279c2c=_0x8325b2;try{const {sessionId:_0x58d0be,model:_0x4eb1e5,platformProvided:_0x52d18b}=_0x11f427['body'];if(!_0x58d0be)return _0x2f86f9[_0x279c2c(0x1e4)](0x190)['json']({'error':'Session\x20ID\x20is\x20required'});let _0x494a36=null,_0x4389df=null;if(this[_0x279c2c(0x23a)]){const _0x3778fc=this[_0x279c2c(0x23a)]['getKeysForRequest'](_0x58d0be,{'platformProvided':_0x52d18b||![],'vendor':this[_0x279c2c(0x1df)](_0x4eb1e5)});_0x494a36=_0x3778fc['loxiaApiKey'],_0x4389df=_0x3778fc[_0x279c2c(0x138)];}!_0x494a36&&(_0x494a36=this['config']['loxiaApiKey']||process[_0x279c2c(0x145)][_0x279c2c(0x1b7)]);!_0x494a36&&_0x11f427[_0x279c2c(0x17c)]['apiKey']&&(_0x494a36=_0x11f427['body']['apiKey']);if(!_0x494a36)return this['logger']['warn']('No\x20API\x20key\x20available\x20for\x20chat\x20request',{'sessionId':_0x58d0be,'model':_0x4eb1e5,'platformProvided':_0x52d18b,'hasSessionManager':!!this[_0x279c2c(0x23a)]}),_0x2f86f9['status'](0x191)['json']({'error':'No\x20API\x20key\x20configured.\x20Please\x20configure\x20your\x20Loxia\x20API\x20key\x20in\x20Settings.'});const _0x17b1f9=_0x279c2c(0x1ad),_0x1783c2={..._0x11f427['body'],'apiKey':_0x494a36,..._0x4389df&&{'vendorApiKey':_0x4389df}},_0x4e6823={'method':'POST','headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x494a36},'body':JSON[_0x279c2c(0x191)](_0x1783c2)};this[_0x279c2c(0x135)][_0x279c2c(0x171)](_0x279c2c(0x1bc),{'url':_0x17b1f9,'model':_0x11f427[_0x279c2c(0x17c)][_0x279c2c(0x1e2)],'hasApiKey':!!_0x494a36});const _0x1ff582=await fetch(_0x17b1f9,_0x4e6823);if(_0x1ff582['ok']){const _0xc6b1a7=await _0x1ff582['json']();this['logger']['info']('Successfully received response from Azure backend',{'model':_0xc6b1a7['model'],'contentLength':_0xc6b1a7[_0x279c2c(0x21f)]?.[_0x279c2c(0x1c0)]||0x0}),_0x2f86f9['json'](_0xc6b1a7);}else{const _0x156fcd=await _0x1ff582['text']();this['logger'][_0x279c2c(0x223)]('Azure\x20backend\x20chat\x20request\x20failed',{'status':_0x1ff582['status'],'statusText':_0x1ff582[_0x279c2c(0x1bf)],'error':_0x156fcd}),_0x2f86f9['status'](_0x1ff582[_0x279c2c(0x1e4)])[_0x279c2c(0x1f5)]({'error':_0x279c2c(0x1f4)+_0x1ff582[_0x279c2c(0x1e4)]+'\x20'+_0x1ff582[_0x279c2c(0x1bf)],'details':_0x156fcd});}}catch(_0x29ae6e){this[_0x279c2c(0x135)][_0x279c2c(0x137)](_0x279c2c(0x1c2),{'error':_0x29ae6e[_0x279c2c(0x201)],'stack':_0x29ae6e[_0x279c2c(0x203)]}),_0x2f86f9[_0x279c2c(0x1e4)](0x1f4)['json']({'error':'Failed\x20to\x20connect\x20to\x20AI\x20service','details':_0x29ae6e['message']});}}),this[_0x8325b2(0x225)]['get'](_0x8325b2(0x168),async(_0x446019,_0x55825b)=>{const _0x19a582=_0x8325b2;try{const _0x189603=_0x446019['headers'][_0x19a582(0x1f3)];let _0x1a7028=null;_0x189603&&_0x189603[_0x19a582(0x1d1)]('Bearer\x20')&&(_0x1a7028=_0x189603['substring'](0x7));!_0x1a7028&&(_0x1a7028=this[_0x19a582(0x21c)][_0x19a582(0x1c9)]||process['env']['LOXIA_API_KEY']);const _0x2d6c17='https://autopilot-api.azurewebsites.net/llm/models',_0x1a1c26={'method':_0x19a582(0x1db),'headers':{'Content-Type':'application/json',..._0x1a7028&&{'Authorization':'Bearer\x20'+_0x1a7028}}};this[_0x19a582(0x135)][_0x19a582(0x171)]('Fetching models from Loxia Azure backend',{'url':_0x2d6c17,'hasApiKey':!!_0x1a7028});const _0x5e8645=await fetch(_0x2d6c17,_0x1a1c26);if(_0x5e8645['ok']){const _0x2fe22b=await _0x5e8645['json']();this[_0x19a582(0x135)]['info']('Successfully fetched models from Azure backend',{'modelCount':_0x2fe22b[_0x19a582(0x14d)]?.['length']||0x0}),_0x55825b[_0x19a582(0x1f5)](_0x2fe22b);}else{const _0x455808=await _0x5e8645['text']();this['logger']['error'](_0x19a582(0x19c),{'status':_0x5e8645['status'],'statusText':_0x5e8645[_0x19a582(0x1bf)],'error':_0x455808}),_0x55825b['status'](_0x5e8645['status'])['json']({'success':![],'error':'Failed\x20to\x20fetch\x20models\x20from\x20backend:\x20'+_0x5e8645[_0x19a582(0x1e4)]+'\x20'+_0x5e8645[_0x19a582(0x1bf)],'details':_0x455808});}}catch(_0x5ba066){this['logger'][_0x19a582(0x137)]('Failed to fetch models from Azure backend - NO FALLBACK',{'error':_0x5ba066['message'],'stack':_0x5ba066[_0x19a582(0x203)]}),_0x55825b['status'](0x1f4)['json']({'success':![],'error':'Failed to fetch models from backend','details':_0x5ba066['message']});}}),this['app'][_0x8325b2(0x196)]('/api/tools',async(_0x28ae6b,_0x44a291)=>{const _0x17cce3=_0x8325b2;try{const _0x34b08a=this['toolsRegistry'];if(!_0x34b08a)return _0x44a291['status'](0x1f4)[_0x17cce3(0x1f5)]({'error':_0x17cce3(0x144)});const _0x1c731d=_0x34b08a[_0x17cce3(0x15c)]();this[_0x17cce3(0x135)][_0x17cce3(0x171)]('Serving\x20tools\x20information',{'toolCount':_0x1c731d[_0x17cce3(0x1c0)],'tools':_0x1c731d[_0x17cce3(0x176)](_0x4996e3=>({'id':_0x4996e3['id'],'name':_0x4996e3['name'],'category':_0x4996e3[_0x17cce3(0x1e9)]}))}),_0x44a291['json']({'success':!![],'tools':_0x1c731d,'total':_0x1c731d[_0x17cce3(0x1c0)]});}catch(_0x419374){this['logger'][_0x17cce3(0x137)]('Failed\x20to\x20get\x20tools\x20information',{'error':_0x419374['message'],'stack':_0x419374['stack']}),_0x44a291[_0x17cce3(0x1e4)](0x1f4)[_0x17cce3(0x1f5)]({'error':_0x17cce3(0x19e),'message':_0x419374['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)](_0x8325b2(0x153),async(_0x653750,_0x11400e)=>{const _0x3b2b51=_0x8325b2;try{const {sessionId:_0x13069f,loxiaApiKey:_0x37ec0b,vendorKeys:_0x190207}=_0x653750['body'];if(!_0x13069f)return _0x11400e[_0x3b2b51(0x1e4)](0x190)['json']({'success':![],'error':'Session\x20ID\x20is\x20required'});if(!this['apiKeyManager'])return _0x11400e['status'](0x1f4)['json']({'success':![],'error':_0x3b2b51(0x149)});this[_0x3b2b51(0x23a)][_0x3b2b51(0x141)](_0x13069f,{'loxiaApiKey':_0x37ec0b,'vendorKeys':_0x190207||{}}),this[_0x3b2b51(0x135)][_0x3b2b51(0x171)](_0x3b2b51(0x134),{'sessionId':_0x13069f,'hasLoxiaKey':!!_0x37ec0b,'vendorKeys':Object['keys'](_0x190207||{})});if(this['orchestrator']&&this['orchestrator'][_0x3b2b51(0x147)]&&_0x37ec0b)try{await this['orchestrator']['modelsService']['refresh']({'sessionId':_0x13069f,'apiKey':_0x37ec0b}),this['logger'][_0x3b2b51(0x171)]('Models\x20refreshed\x20with\x20new\x20API\x20key',{'sessionId':_0x13069f});}catch(_0x2212fe){this['logger'][_0x3b2b51(0x223)]('Failed\x20to\x20refresh\x20models\x20after\x20API\x20key\x20update',{'error':_0x2212fe[_0x3b2b51(0x201)],'sessionId':_0x13069f});}_0x11400e['json']({'success':!![],'message':'API\x20keys\x20updated\x20successfully','sessionId':_0x13069f,'hasLoxiaKey':!!_0x37ec0b,'vendorKeys':Object['keys'](_0x190207||{})});}catch(_0x4a4115){this[_0x3b2b51(0x135)][_0x3b2b51(0x137)](_0x3b2b51(0x133),{'error':_0x4a4115['message'],'sessionId':_0x653750[_0x3b2b51(0x17c)]['sessionId']}),_0x11400e['status'](0x1f4)[_0x3b2b51(0x1f5)]({'success':![],'error':_0x4a4115['message']});}}),this['app'][_0x8325b2(0x196)](_0x8325b2(0x1c3),async(_0x429102,_0x3eca41)=>{const _0x3c9bb4=_0x8325b2;try{const {sessionId:_0x4e835a}=_0x429102['params'];if(!this[_0x3c9bb4(0x23a)])return _0x3eca41['status'](0x1f4)[_0x3c9bb4(0x1f5)]({'success':![],'error':_0x3c9bb4(0x149)});const _0x12d6e6=this[_0x3c9bb4(0x23a)][_0x3c9bb4(0x20d)](_0x4e835a);_0x3eca41['json']({'success':!![],'sessionId':_0x4e835a,'hasLoxiaKey':!!_0x12d6e6['loxiaApiKey'],'vendorKeys':Object['keys'](_0x12d6e6[_0x3c9bb4(0x180)]||{}),'updatedAt':_0x12d6e6['updatedAt']});}catch(_0x364b91){this[_0x3c9bb4(0x135)]['error'](_0x3c9bb4(0x143),{'error':_0x364b91[_0x3c9bb4(0x201)],'sessionId':_0x429102[_0x3c9bb4(0x1f6)][_0x3c9bb4(0x1a4)]}),_0x3eca41['status'](0x1f4)[_0x3c9bb4(0x1f5)]({'success':![],'error':_0x364b91[_0x3c9bb4(0x201)]});}}),this['app']['delete']('/api/keys/:sessionId',async(_0x5b7feb,_0x5e353f)=>{const _0x34273c=_0x8325b2;try{const {sessionId:_0xce8af3}=_0x5b7feb['params'];if(!this[_0x34273c(0x23a)])return _0x5e353f['status'](0x1f4)['json']({'success':![],'error':'API\x20key\x20manager\x20not\x20available'});const _0x22bc87=this['apiKeyManager'][_0x34273c(0x17f)](_0xce8af3);_0x5e353f['json']({'success':!![],'removed':_0x22bc87,'message':_0x22bc87?_0x34273c(0x1dd):'No\x20API\x20keys\x20found\x20for\x20session'});}catch(_0x5e8a90){this[_0x34273c(0x135)]['error'](_0x34273c(0x1d4),{'error':_0x5e8a90['message'],'sessionId':_0x5b7feb['params'][_0x34273c(0x1a4)]}),_0x5e353f['status'](0x1f4)['json']({'success':![],'error':_0x5e8a90['message']});}}),this['app'][_0x8325b2(0x196)]('/api/keys',async(_0x48421d,_0x245e3d)=>{const _0x129003=_0x8325b2;try{if(!this['apiKeyManager'])return _0x245e3d[_0x129003(0x1e4)](0x1f4)[_0x129003(0x1f5)]({'success':![],'error':_0x129003(0x149)});const _0x5a068b=this[_0x129003(0x23a)][_0x129003(0x194)]();_0x245e3d[_0x129003(0x1f5)]({'success':!![],'sessions':_0x5a068b,'total':_0x5a068b[_0x129003(0x1c0)]});}catch(_0x391298){this['logger']['error'](_0x129003(0x132),{'error':_0x391298[_0x129003(0x201)]}),_0x245e3d['status'](0x1f4)['json']({'success':![],'error':_0x391298['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)]('/api/agents/:agentId/attachments/upload',async(_0x5d2af8,_0x585db4)=>{const _0x5d04c6=_0x8325b2;try{const {agentId:_0x1eeaf8}=_0x5d2af8['params'],{filePath:_0x15b15b,mode:_0x393098,fileName:_0x2392a5}=_0x5d2af8[_0x5d04c6(0x17c)];if(!this[_0x5d04c6(0x1a9)]?.['fileAttachmentService'])return _0x585db4['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x3da97e=await this['orchestrator']['fileAttachmentService'][_0x5d04c6(0x207)]({'agentId':_0x1eeaf8,'filePath':_0x15b15b,'mode':_0x393098||'content','fileName':_0x2392a5});this['logger']['info']('File\x20attachment\x20uploaded',{'agentId':_0x1eeaf8,'fileId':_0x3da97e['fileId'],'fileName':_0x3da97e['fileName']}),_0x585db4['json']({'success':!![],'attachment':_0x3da97e});}catch(_0x4ac1db){this[_0x5d04c6(0x135)][_0x5d04c6(0x137)](_0x5d04c6(0x1c1),{'agentId':_0x5d2af8['params'][_0x5d04c6(0x215)],'error':_0x4ac1db[_0x5d04c6(0x201)]}),_0x585db4[_0x5d04c6(0x1e4)](0x1f4)['json']({'success':![],'error':_0x4ac1db[_0x5d04c6(0x201)]});}}),this['app']['get'](_0x8325b2(0x1c6),async(_0x497c48,_0x15a58a)=>{const _0x554b03=_0x8325b2;try{const {agentId:_0x34c537}=_0x497c48['params'],{mode:_0x911a7d,active:_0x15a031}=_0x497c48['query'];if(!this['orchestrator']?.['fileAttachmentService'])return _0x15a58a['status'](0x1f4)['json']({'success':![],'error':_0x554b03(0x14b)});const _0x1f4aa5={};if(_0x911a7d)_0x1f4aa5['mode']=_0x911a7d;if(_0x15a031!==undefined)_0x1f4aa5[_0x554b03(0x199)]=_0x15a031===_0x554b03(0x1ff);const _0x524b12=await this['orchestrator']['fileAttachmentService'][_0x554b03(0x231)](_0x34c537,_0x1f4aa5);_0x15a58a[_0x554b03(0x1f5)]({'success':!![],'attachments':_0x524b12,'total':_0x524b12[_0x554b03(0x1c0)]});}catch(_0x318a09){this['logger'][_0x554b03(0x137)]('Failed\x20to\x20get\x20attachments',{'agentId':_0x497c48[_0x554b03(0x1f6)][_0x554b03(0x215)],'error':_0x318a09[_0x554b03(0x201)]}),_0x15a58a[_0x554b03(0x1e4)](0x1f4)[_0x554b03(0x1f5)]({'success':![],'error':_0x318a09['message']});}}),this['app'][_0x8325b2(0x196)]('/api/attachments/:fileId',async(_0x5517b1,_0x3f7292)=>{const _0x374d3b=_0x8325b2;try{const {fileId:_0x3b315d}=_0x5517b1[_0x374d3b(0x1f6)];if(!this['orchestrator']?.[_0x374d3b(0x1a8)])return _0x3f7292['status'](0x1f4)[_0x374d3b(0x1f5)]({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x4adfea=await this['orchestrator'][_0x374d3b(0x1a8)][_0x374d3b(0x1b3)](_0x3b315d);if(!_0x4adfea)return _0x3f7292['status'](0x194)['json']({'success':![],'error':_0x374d3b(0x163)});_0x3f7292['json']({'success':!![],'attachment':_0x4adfea});}catch(_0x58c691){this['logger'][_0x374d3b(0x137)](_0x374d3b(0x181),{'fileId':_0x5517b1['params']['fileId'],'error':_0x58c691[_0x374d3b(0x201)]}),_0x3f7292['status'](0x1f4)[_0x374d3b(0x1f5)]({'success':![],'error':_0x58c691['message']});}}),this['app'][_0x8325b2(0x161)]('/api/attachments/:fileId/toggle',async(_0x4f5e09,_0x31f8e)=>{const _0x5c730a=_0x8325b2;try{const {fileId:_0x243830}=_0x4f5e09[_0x5c730a(0x1f6)];if(!this['orchestrator']?.['fileAttachmentService'])return _0x31f8e[_0x5c730a(0x1e4)](0x1f4)[_0x5c730a(0x1f5)]({'success':![],'error':_0x5c730a(0x14b)});const _0x397ab5=await this[_0x5c730a(0x1a9)]['fileAttachmentService']['toggleActive'](_0x243830);this['logger'][_0x5c730a(0x171)](_0x5c730a(0x221),{'fileId':_0x243830,'active':_0x397ab5[_0x5c730a(0x199)]}),_0x31f8e[_0x5c730a(0x1f5)]({'success':!![],'attachment':_0x397ab5});}catch(_0x579a19){this[_0x5c730a(0x135)][_0x5c730a(0x137)](_0x5c730a(0x1a1),{'fileId':_0x4f5e09[_0x5c730a(0x1f6)][_0x5c730a(0x18b)],'error':_0x579a19[_0x5c730a(0x201)]}),_0x31f8e['status'](0x1f4)['json']({'success':![],'error':_0x579a19['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x161)](_0x8325b2(0x146),async(_0x2644e4,_0x2dcdb6)=>{const _0x458980=_0x8325b2;try{const {fileId:_0x5a89ab}=_0x2644e4['params'],{mode:_0x1cca81,active:_0x4b6775}=_0x2644e4['body'];if(!this['orchestrator']?.['fileAttachmentService'])return _0x2dcdb6['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x40fbcf={};if(_0x1cca81!==undefined)_0x40fbcf[_0x458980(0x17a)]=_0x1cca81;if(_0x4b6775!==undefined)_0x40fbcf[_0x458980(0x199)]=_0x4b6775;const _0x26b165=await this['orchestrator'][_0x458980(0x1a8)]['updateAttachment'](_0x5a89ab,_0x40fbcf);this[_0x458980(0x135)]['info']('Attachment\x20updated',{'fileId':_0x5a89ab,'updates':_0x40fbcf}),_0x2dcdb6['json']({'success':!![],'attachment':_0x26b165});}catch(_0x581fa1){this['logger'][_0x458980(0x137)](_0x458980(0x1a2),{'fileId':_0x2644e4[_0x458980(0x1f6)][_0x458980(0x18b)],'error':_0x581fa1[_0x458980(0x201)]}),_0x2dcdb6[_0x458980(0x1e4)](0x1f4)[_0x458980(0x1f5)]({'success':![],'error':_0x581fa1[_0x458980(0x201)]});}}),this['app']['delete']('/api/attachments/:fileId',async(_0x55d3ab,_0x2ae8ec)=>{const _0x76cd3=_0x8325b2;try{const {fileId:_0x582b2f}=_0x55d3ab['params'],{agentId:_0x29fef0}=_0x55d3ab[_0x76cd3(0x217)];if(!_0x29fef0)return _0x2ae8ec['status'](0x190)[_0x76cd3(0x1f5)]({'success':![],'error':'agentId\x20query\x20parameter\x20is\x20required'});if(!this['orchestrator']?.['fileAttachmentService'])return _0x2ae8ec['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x1d4978=await this[_0x76cd3(0x1a9)]['fileAttachmentService'][_0x76cd3(0x169)](_0x582b2f,_0x29fef0);this[_0x76cd3(0x135)]['info'](_0x76cd3(0x1bb),{'fileId':_0x582b2f,'agentId':_0x29fef0,'physicallyDeleted':_0x1d4978['physicallyDeleted']}),_0x2ae8ec['json']({'success':!![],'message':_0x1d4978[_0x76cd3(0x21b)]?_0x76cd3(0x1bb):_0x76cd3(0x19f),'physicallyDeleted':_0x1d4978[_0x76cd3(0x21b)]});}catch(_0x1bd903){this['logger'][_0x76cd3(0x137)](_0x76cd3(0x212),{'fileId':_0x55d3ab[_0x76cd3(0x1f6)]['fileId'],'error':_0x1bd903[_0x76cd3(0x201)]}),_0x2ae8ec[_0x76cd3(0x1e4)](0x1f4)[_0x76cd3(0x1f5)]({'success':![],'error':_0x1bd903['message']});}}),this['app'][_0x8325b2(0x17e)]('/api/attachments/:fileId/import',async(_0x335560,_0x2cdb43)=>{const _0x454611=_0x8325b2;try{const {fileId:_0x1d08a0}=_0x335560[_0x454611(0x1f6)],{targetAgentId:_0x3c6ae1}=_0x335560[_0x454611(0x17c)];if(!_0x3c6ae1)return _0x2cdb43[_0x454611(0x1e4)](0x190)[_0x454611(0x1f5)]({'success':![],'error':'targetAgentId\x20is\x20required'});if(!this[_0x454611(0x1a9)]?.[_0x454611(0x1a8)])return _0x2cdb43['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x26edb4=await this['orchestrator'][_0x454611(0x1a8)][_0x454611(0x233)](_0x1d08a0,_0x3c6ae1);this['logger'][_0x454611(0x171)]('Attachment imported',{'fileId':_0x1d08a0,'targetAgentId':_0x3c6ae1}),_0x2cdb43['json']({'success':!![],'attachment':_0x26edb4});}catch(_0x304e1d){this['logger']['error']('Failed to import attachment',{'fileId':_0x335560[_0x454611(0x1f6)][_0x454611(0x18b)],'error':_0x304e1d[_0x454611(0x201)]}),_0x2cdb43['status'](0x1f4)['json']({'success':![],'error':_0x304e1d[_0x454611(0x201)]});}}),this[_0x8325b2(0x225)]['get'](_0x8325b2(0x19b),async(_0x5e3da9,_0x5ac51e)=>{const _0x310113=_0x8325b2;try{const {fileId:_0x13370d}=_0x5e3da9[_0x310113(0x1f6)];if(!this['orchestrator']?.['fileAttachmentService'])return _0x5ac51e['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x2618e6=await this['orchestrator'][_0x310113(0x1a8)]['getAttachmentPreview'](_0x13370d);if(!_0x2618e6)return _0x5ac51e[_0x310113(0x1e4)](0x194)[_0x310113(0x1f5)]({'success':![],'error':'Attachment\x20not\x20found'});_0x5ac51e[_0x310113(0x1f5)]({'success':!![],'preview':_0x2618e6});}catch(_0xfa6b0d){this['logger'][_0x310113(0x137)](_0x310113(0x1d9),{'fileId':_0x5e3da9[_0x310113(0x1f6)][_0x310113(0x18b)],'error':_0xfa6b0d[_0x310113(0x201)]}),_0x5ac51e[_0x310113(0x1e4)](0x1f4)[_0x310113(0x1f5)]({'success':![],'error':_0xfa6b0d[_0x310113(0x201)]});}}),this['app'][_0x8325b2(0x196)](_0x8325b2(0x18c),async(_0x178f5a,_0x7b5c1a)=>{const _0x2f21b0=_0x8325b2;try{const {sessionId:_0x2bfe79,filename:_0x334580}=_0x178f5a[_0x2f21b0(0x1f6)],_0x519ab3=this['sessions'][_0x2f21b0(0x196)](_0x2bfe79);if(!_0x519ab3)return _0x7b5c1a['status'](HTTP_STATUS[_0x2f21b0(0x22d)])['json']({'success':![],'error':'Invalid\x20session'});const _0x1ab0d9=a0_0x51a210[_0x2f21b0(0x237)](_0x334580);if(_0x1ab0d9!==_0x334580||_0x334580['includes']('..')||_0x334580[_0x2f21b0(0x1f7)]('/')||_0x334580[_0x2f21b0(0x1f7)]('\x5c'))return _0x7b5c1a[_0x2f21b0(0x1e4)](HTTP_STATUS[_0x2f21b0(0x18f)])['json']({'success':![],'error':_0x2f21b0(0x234)});let _0x31c4ef=null;const _0x48217d=[a0_0x51a210['join'](_0x519ab3['projectDir']||process[_0x2f21b0(0x1d8)](),'images',_0x1ab0d9),a0_0x51a210['join'](_0x2f21b0(0x222),_0x2bfe79,_0x1ab0d9),a0_0x51a210[_0x2f21b0(0x1be)]('/tmp/loxia-images',_0x1ab0d9)];if(this['orchestrator']?.[_0x2f21b0(0x166)])try{const _0x136030=await this[_0x2f21b0(0x1a9)][_0x2f21b0(0x166)][_0x2f21b0(0x15d)]();for(const _0x18064b of _0x136030){_0x18064b[_0x2f21b0(0x177)]?.['workingDirectory']&&_0x48217d[_0x2f21b0(0x224)](a0_0x51a210['join'](_0x18064b[_0x2f21b0(0x177)][_0x2f21b0(0x16f)],'images',_0x1ab0d9));}}catch(_0x742cf9){this['logger'][_0x2f21b0(0x223)]('Failed\x20to\x20get\x20agent\x20working\x20directories\x20for\x20image\x20search',{'error':_0x742cf9[_0x2f21b0(0x201)]});}for(const _0x561304 of _0x48217d){try{const _0x5b0e2f=await a0_0x1c8270['stat'](_0x561304);if(_0x5b0e2f[_0x2f21b0(0x1a6)]()){_0x31c4ef=_0x561304,this[_0x2f21b0(0x135)][_0x2f21b0(0x171)]('Image\x20found',{'filename':_0x1ab0d9,'path':_0x31c4ef,'sessionId':_0x2bfe79});break;}}catch(_0x453846){continue;}}if(!_0x31c4ef)return this['logger']['warn']('Image\x20not\x20found\x20in\x20any\x20search\x20path',{'filename':_0x1ab0d9,'sessionId':_0x2bfe79,'searchPaths':_0x48217d}),_0x7b5c1a['status'](HTTP_STATUS['NOT_FOUND'])[_0x2f21b0(0x1f5)]({'success':![],'error':_0x2f21b0(0x12d)});_0x7b5c1a['sendFile'](_0x31c4ef,_0x3228ae=>{const _0x5dc932=_0x2f21b0;_0x3228ae?(this[_0x5dc932(0x135)]['error']('Failed\x20to\x20send\x20image\x20file',{'error':_0x3228ae[_0x5dc932(0x201)],'imagePath':_0x31c4ef,'filename':_0x1ab0d9}),!_0x7b5c1a['headersSent']&&_0x7b5c1a[_0x5dc932(0x1e4)](HTTP_STATUS[_0x5dc932(0x1b0)])['json']({'success':![],'error':_0x5dc932(0x230)})):this['logger']['info'](_0x5dc932(0x18a),{'filename':_0x1ab0d9,'path':_0x31c4ef,'sessionId':_0x2bfe79});});}catch(_0x1d6c6a){this[_0x2f21b0(0x135)][_0x2f21b0(0x137)]('Image\x20serving\x20error',{'error':_0x1d6c6a['message'],'sessionId':_0x178f5a[_0x2f21b0(0x1f6)][_0x2f21b0(0x1a4)],'filename':_0x178f5a['params'][_0x2f21b0(0x226)]}),_0x7b5c1a[_0x2f21b0(0x1e4)](HTTP_STATUS['INTERNAL_SERVER_ERROR'])['json']({'success':![],'error':_0x1d6c6a['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x17e)](_0x8325b2(0x1dc),async(_0x2d220b,_0x517f01)=>{const _0x1e2a22=_0x8325b2;try{const {agentId:_0x36c9c9}=_0x2d220b[_0x1e2a22(0x1f6)],{mode:_0x45e55d,lockMode:lockMode=![],sessionId:_0x568775}=_0x2d220b[_0x1e2a22(0x17c)];if(!Object[_0x1e2a22(0x236)](AGENT_MODES)['includes'](_0x45e55d))return _0x517f01['status'](0x190)[_0x1e2a22(0x1f5)]({'success':![],'error':_0x1e2a22(0x12f)+Object['values'](AGENT_MODES)['join'](',\x20')});const _0x3d2d69=_0x568775||_0x2d220b[_0x1e2a22(0x16c)];!_0x3d2d69&&this[_0x1e2a22(0x135)]['warn']('Agent\x20mode\x20update\x20requested\x20without\x20session\x20ID',{'agentId':_0x36c9c9,'hasBodySessionId':!!_0x568775,'hasReqSessionId':!!_0x2d220b[_0x1e2a22(0x16c)]});const _0x252492={'interface':INTERFACE_TYPES[_0x1e2a22(0x1e7)],'sessionId':_0x3d2d69,'action':'update_agent','payload':{'agentId':_0x36c9c9,'updates':{'mode':_0x45e55d}}},_0x5adbb7=await this[_0x1e2a22(0x1a9)][_0x1e2a22(0x15b)](_0x252492);if(_0x5adbb7[_0x1e2a22(0x16a)]){const _0x3291d8=_0x5adbb7['data'];this['logger'][_0x1e2a22(0x171)]('Agent\x20mode\x20updated:\x20'+_0x36c9c9,{'newMode':_0x45e55d,'lockMode':lockMode,'finalMode':_0x3291d8?.[_0x1e2a22(0x17a)]}),this[_0x1e2a22(0x160)](_0x252492[_0x1e2a22(0x1a4)],{'type':'agent_mode_changed','agentId':_0x36c9c9,'mode':_0x3291d8?.[_0x1e2a22(0x17a)],'modeState':_0x3291d8?.['modeState']}),_0x517f01['json']({'success':!![],'agent':_0x3291d8,'message':'Agent\x20mode\x20switched\x20to\x20'+_0x3291d8?.[_0x1e2a22(0x17a)]});}else _0x517f01[_0x1e2a22(0x1e4)](0x190)['json']({'success':![],'error':_0x5adbb7['error']||'Failed\x20to\x20update\x20agent\x20mode'});}catch(_0x4033ea){this[_0x1e2a22(0x135)]['error']('Failed\x20to\x20update\x20agent\x20mode',{'agentId':_0x2d220b[_0x1e2a22(0x1f6)][_0x1e2a22(0x215)],'error':_0x4033ea['message']}),_0x517f01['status'](0x1f4)[_0x1e2a22(0x1f5)]({'success':![],'error':_0x4033ea[_0x1e2a22(0x201)]});}}),this['app']['post'](_0x8325b2(0x1e8),async(_0x1202a8,_0x28f82d)=>{const _0x277b18=_0x8325b2;try{const {agentId:_0x5cfcf7}=_0x1202a8['params'],_0x39e879=this['orchestrator']['messageProcessor'];if(!_0x39e879)return _0x28f82d[_0x277b18(0x1e4)](0x1f4)[_0x277b18(0x1f5)]({'success':![],'error':_0x277b18(0x130)});const _0x282a88=await _0x39e879[_0x277b18(0x154)](_0x5cfcf7);this[_0x277b18(0x135)]['info']('Autonomous\x20execution\x20stop\x20requested:\x20'+_0x5cfcf7);const _0x1dca7b=_0x1202a8['sessionID']||_0x282a88['agent']?.[_0x277b18(0x1a4)];_0x1dca7b&&this['broadcastToSession'](_0x1dca7b,{'type':'agent_mode_changed','agentId':_0x5cfcf7,'mode':_0x282a88[_0x277b18(0x1ee)]?.['mode'],'modeState':_0x282a88[_0x277b18(0x1ee)]?.[_0x277b18(0x22b)]}),_0x28f82d['json'](_0x282a88);}catch(_0x40b2d9){this['logger'][_0x277b18(0x137)]('Failed\x20to\x20stop\x20autonomous\x20execution',{'agentId':_0x1202a8['params']['agentId'],'error':_0x40b2d9[_0x277b18(0x201)]}),_0x28f82d['status'](0x1f4)[_0x277b18(0x1f5)]({'success':![],'error':_0x40b2d9['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x196)]('/api/agents/:agentId/mode',async(_0x3f364e,_0x384878)=>{const _0xb8838e=_0x8325b2;try{const {agentId:_0x49452c}=_0x3f364e[_0xb8838e(0x1f6)],_0x3be80e={'interface':INTERFACE_TYPES[_0xb8838e(0x1e7)],'sessionId':_0x3f364e['sessionID'],'action':'get_agent_status','payload':{'agentId':_0x49452c}},_0x3f8aae=await this['orchestrator']['processRequest'](_0x3be80e);_0x3f8aae[_0xb8838e(0x16a)]&&_0x3f8aae['agent']?_0x384878['json']({'success':!![],'mode':_0x3f8aae[_0xb8838e(0x1ee)]['mode'],'modeState':_0x3f8aae[_0xb8838e(0x1ee)]['modeState'],'currentTask':_0x3f8aae[_0xb8838e(0x1ee)]['currentTask'],'iterationCount':_0x3f8aae[_0xb8838e(0x1ee)][_0xb8838e(0x1f2)],'taskStartTime':_0x3f8aae[_0xb8838e(0x1ee)][_0xb8838e(0x202)],'stopRequested':_0x3f8aae['agent'][_0xb8838e(0x193)]}):_0x384878[_0xb8838e(0x1e4)](0x194)['json']({'success':![],'error':_0xb8838e(0x20a)});}catch(_0x3426a6){this[_0xb8838e(0x135)][_0xb8838e(0x137)](_0xb8838e(0x1a0),{'agentId':_0x3f364e['params'][_0xb8838e(0x215)],'error':_0x3426a6['message']}),_0x384878['status'](0x1f4)['json']({'success':![],'error':_0x3426a6[_0xb8838e(0x201)]});}}),this['app']['get']('/api/agents/available',async(_0x26f068,_0x37abd6)=>{const _0x3818c8=_0x8325b2;try{const _0x592e0e=this[_0x3818c8(0x1a9)]['config']['project']?.['directory']||process[_0x3818c8(0x1d8)](),_0x47c0e3=await this['orchestrator'][_0x3818c8(0x13d)][_0x3818c8(0x1b1)](_0x592e0e,this[_0x3818c8(0x1a9)]['agentPool']);_0x37abd6['json']({'success':!![],'agents':_0x47c0e3,'total':_0x47c0e3['length'],'active':_0x47c0e3['filter'](_0x386098=>_0x386098[_0x3818c8(0x1da)])[_0x3818c8(0x1c0)],'archived':_0x47c0e3[_0x3818c8(0x200)](_0x129244=>!_0x129244['isLoaded'])[_0x3818c8(0x1c0)]});}catch(_0xed1ca9){this[_0x3818c8(0x135)]['error']('Failed\x20to\x20get\x20available\x20agents',{'error':_0xed1ca9['message'],'stack':_0xed1ca9['stack']}),_0x37abd6[_0x3818c8(0x1e4)](0x1f4)['json']({'success':![],'error':_0xed1ca9['message']});}}),this['app'][_0x8325b2(0x196)]('/api/agents/:agentId/metadata',async(_0x5b6978,_0x2fc648)=>{const _0x30e638=_0x8325b2;try{const {agentId:_0x5a8714}=_0x5b6978[_0x30e638(0x1f6)],_0x7cd96b=this[_0x30e638(0x1a9)]['config']['project']?.['directory']||process['cwd'](),_0x18eaf7=await this[_0x30e638(0x1a9)][_0x30e638(0x13d)]['getAgentMetadata'](_0x5a8714,_0x7cd96b);_0x2fc648['json']({'success':!![],'metadata':_0x18eaf7});}catch(_0x367d11){this[_0x30e638(0x135)][_0x30e638(0x137)](_0x30e638(0x156),{'agentId':_0x5b6978[_0x30e638(0x1f6)]['agentId'],'error':_0x367d11[_0x30e638(0x201)]}),_0x2fc648[_0x30e638(0x1e4)](0x194)['json']({'success':![],'error':_0x367d11['message']});}}),this['app'][_0x8325b2(0x17e)]('/api/agents/import',async(_0x4aa2e7,_0x4f7ae7)=>{const _0x3c80a2=_0x8325b2;try{const {agentId:_0x6f72de}=_0x4aa2e7['body'];if(!_0x6f72de)return _0x4f7ae7[_0x3c80a2(0x1e4)](0x190)[_0x3c80a2(0x1f5)]({'success':![],'error':_0x3c80a2(0x1a7)});const _0x3bec3e=this[_0x3c80a2(0x1a9)][_0x3c80a2(0x21c)]['project']?.['directory']||process[_0x3c80a2(0x1d8)](),_0x2eb2ad=await this[_0x3c80a2(0x1a9)]['stateManager'][_0x3c80a2(0x18e)](_0x6f72de,_0x3bec3e,this[_0x3c80a2(0x1a9)]['agentPool']);this[_0x3c80a2(0x1af)]&&this[_0x3c80a2(0x1af)]['broadcast']({'type':'agent-imported','agent':{'id':_0x2eb2ad['id'],'name':_0x2eb2ad['name'],'status':_0x2eb2ad['status'],'capabilities':_0x2eb2ad['capabilities'],'model':_0x2eb2ad[_0x3c80a2(0x188)]||_0x2eb2ad['preferredModel']}}),this[_0x3c80a2(0x135)]['info']('Agent imported successfully',{'agentId':_0x2eb2ad['id'],'name':_0x2eb2ad[_0x3c80a2(0x1c5)]}),_0x4f7ae7[_0x3c80a2(0x1f5)]({'success':!![],'agent':{'id':_0x2eb2ad['id'],'name':_0x2eb2ad[_0x3c80a2(0x1c5)],'status':_0x2eb2ad['status'],'model':_0x2eb2ad[_0x3c80a2(0x188)]||_0x2eb2ad[_0x3c80a2(0x1b6)],'capabilities':_0x2eb2ad[_0x3c80a2(0x1d7)],'lastActivity':_0x2eb2ad[_0x3c80a2(0x148)]},'message':_0x3c80a2(0x164)+_0x2eb2ad['name']+'\x20imported\x20successfully'});}catch(_0x212e54){this[_0x3c80a2(0x135)][_0x3c80a2(0x137)]('Failed to import agent',{'agentId':_0x4aa2e7[_0x3c80a2(0x17c)][_0x3c80a2(0x215)],'error':_0x212e54['message'],'stack':_0x212e54[_0x3c80a2(0x203)]});const _0x165bb3=_0x212e54['message'][_0x3c80a2(0x1f7)](_0x3c80a2(0x13e))?0x199:_0x212e54[_0x3c80a2(0x201)][_0x3c80a2(0x1f7)]('not\x20found')?0x194:_0x212e54[_0x3c80a2(0x201)]['includes']('Invalid')?0x190:0x1f4;_0x4f7ae7['status'](_0x165bb3)['json']({'success':![],'error':_0x212e54['message']});}}),this[_0x8325b2(0x225)][_0x8325b2(0x196)]('*',(_0xc1459a,_0x29f8c1)=>{const _0xf792d2=_0x8325b2,_0x18404d=a0_0x51a210[_0xf792d2(0x1be)](__dirname,'../../web-ui/build/index.html');_0x29f8c1[_0xf792d2(0x136)](_0x18404d,_0x1bbd58=>{const _0x55514a=_0xf792d2;_0x1bbd58&&_0x29f8c1['status'](HTTP_STATUS['NOT_FOUND'])['send'](_0x55514a(0x182));});});}[a0_0x452fa2(0x140)](){const _0x5eb650=a0_0x452fa2;this['logger']['info'](_0x5eb650(0x238),{'port':this['port'],'host':this[_0x5eb650(0x235)],'wsServerExists':!!this['wss'],'httpServerExists':!!this['server']}),this['wss']['on']('error',_0x4ec1a3=>{const _0x1b582e=_0x5eb650;this[_0x1b582e(0x135)][_0x1b582e(0x137)]('WebSocket\x20server\x20error:',{'error':_0x4ec1a3['message'],'stack':_0x4ec1a3[_0x1b582e(0x203)],'port':this['port']});}),this[_0x5eb650(0x1fc)]['on'](_0x5eb650(0x15f),()=>{const _0x451c52=_0x5eb650;this[_0x451c52(0x135)][_0x451c52(0x171)](_0x451c52(0x13c),{'port':this[_0x451c52(0x1e0)],'host':this[_0x451c52(0x235)]});}),this['wss']['on']('connection',(_0x460aa6,_0x262154)=>{const _0x1068e9=_0x5eb650,_0x41a71f='conn-'+Date['now']()+'-'+Math[_0x1068e9(0x185)]()[_0x1068e9(0x227)](0x24)[_0x1068e9(0x159)](0x2,0x9);this['logger']['info'](_0x1068e9(0x16b),{'connectionId':_0x41a71f,'ip':_0x262154[_0x1068e9(0x1e3)][_0x1068e9(0x232)],'origin':_0x262154['headers']['origin'],'host':_0x262154[_0x1068e9(0x152)]['host'],'userAgent':_0x262154[_0x1068e9(0x152)]['user-agent'],'url':_0x262154['url']});const _0xc14a28={'id':_0x41a71f,'ws':_0x460aa6,'sessionId':null,'connectedAt':new Date()[_0x1068e9(0x16e)](),'lastActivity':new Date()[_0x1068e9(0x16e)]()};this['connections']['set'](_0x41a71f,_0xc14a28),_0x460aa6['on'](_0x1068e9(0x201),async _0x56a161=>{const _0x1e4cfa=_0x1068e9;try{const _0x147376=JSON[_0x1e4cfa(0x1ea)](_0x56a161[_0x1e4cfa(0x227)]());await this['handleWebSocketMessage'](_0x41a71f,_0x147376);}catch(_0x446932){this[_0x1e4cfa(0x135)]['error']('WebSocket\x20message\x20error',{'connectionId':_0x41a71f,'error':_0x446932[_0x1e4cfa(0x201)]}),_0x460aa6[_0x1e4cfa(0x151)](JSON['stringify']({'type':_0x1e4cfa(0x137),'error':_0x446932['message']}));}}),_0x460aa6['on']('close',()=>{const _0x5edbd9=_0x1068e9;this[_0x5edbd9(0x135)][_0x5edbd9(0x171)]('WebSocket\x20connection\x20closed',{'connectionId':_0x41a71f}),this[_0x5edbd9(0x214)]['delete'](_0x41a71f);}),_0x460aa6[_0x1068e9(0x151)](JSON['stringify']({'type':_0x1068e9(0x19d),'connectionId':_0x41a71f,'timestamp':new Date()[_0x1068e9(0x16e)]()}));});}async[a0_0x452fa2(0x213)](_0x3ff97a,_0x43cc20){const _0x28d40b=a0_0x452fa2,_0xf5c750=this[_0x28d40b(0x214)]['get'](_0x3ff97a);if(!_0xf5c750)return;_0xf5c750[_0x28d40b(0x148)]=new Date()[_0x28d40b(0x16e)]();switch(_0x43cc20['type']){case'join_session':const _0x231129=_0x43cc20['sessionId'];_0xf5c750[_0x28d40b(0x1a4)]=_0x231129,this[_0x28d40b(0x135)][_0x28d40b(0x171)](_0x28d40b(0x1cd),{'connectionId':_0x3ff97a,'sessionId':_0x231129,'totalConnectionsForSession':Array[_0x28d40b(0x216)](this['connections']['values']())[_0x28d40b(0x200)](_0x1d9513=>_0x1d9513['sessionId']===_0x231129)[_0x28d40b(0x1c0)]}),_0xf5c750['ws']['send'](JSON['stringify']({'type':'session_joined','sessionId':_0x231129}));break;case'ping':_0xf5c750['ws']['send'](JSON[_0x28d40b(0x191)]({'type':_0x28d40b(0x15e),'timestamp':new Date()['toISOString']()}));break;case _0x28d40b(0x1de):try{const _0x184eea={'interface':INTERFACE_TYPES['WEB'],'sessionId':_0xf5c750['sessionId'],'action':_0x43cc20['action'],'payload':_0x43cc20[_0x28d40b(0x172)],'projectDir':_0x43cc20['projectDir']||process['cwd']()},_0x5ba375=await this[_0x28d40b(0x1a9)]['processRequest'](_0x184eea);_0xf5c750['ws']['send'](JSON['stringify']({'type':_0x28d40b(0x20c),'requestId':_0x43cc20['requestId'],'response':_0x5ba375}));}catch(_0x1119d1){_0xf5c750['ws'][_0x28d40b(0x151)](JSON['stringify']({'type':_0x28d40b(0x137),'requestId':_0x43cc20[_0x28d40b(0x19a)],'error':_0x1119d1['message']}));}break;default:this[_0x28d40b(0x135)][_0x28d40b(0x223)]('Unknown\x20WebSocket\x20message\x20type',{'connectionId':_0x3ff97a,'type':_0x43cc20['type']});}}['broadcastToSession'](_0x411227,_0x59ac43){const _0x40ad15=a0_0x452fa2,_0x2e1f11=Array[_0x40ad15(0x216)](this['connections'][_0x40ad15(0x236)]())[_0x40ad15(0x200)](_0x54887e=>_0x54887e[_0x40ad15(0x1a4)]===_0x411227);let _0x42b8d4=[];_0x2e1f11[_0x40ad15(0x1c0)]===0x0&&(_0x42b8d4=Array['from'](this['connections'][_0x40ad15(0x236)]()),this[_0x40ad15(0x135)]?.['warn']('🔄\x20No\x20connections\x20for\x20session,\x20trying\x20all\x20connections:',{'targetSessionId':_0x411227,'totalConnections':this['connections']['size'],'allSessionIds':Array[_0x40ad15(0x216)](this[_0x40ad15(0x214)][_0x40ad15(0x236)]())['map'](_0x29fe57=>_0x29fe57[_0x40ad15(0x1a4)])['filter'](Boolean)}));const _0x4b647e=_0x2e1f11['length']>0x0?_0x2e1f11:_0x42b8d4;this[_0x40ad15(0x135)]?.['info'](_0x40ad15(0x239),{'sessionId':_0x411227,'messageType':_0x59ac43[_0x40ad15(0x183)],'agentId':_0x59ac43[_0x40ad15(0x215)],'totalConnections':this['connections'][_0x40ad15(0x1cb)],'sessionConnections':_0x2e1f11[_0x40ad15(0x1c0)],'targetConnections':_0x4b647e[_0x40ad15(0x1c0)],'connectionIds':_0x4b647e['map'](_0x480354=>_0x480354['id']),'usingFallback':_0x2e1f11['length']===0x0,'messagePreview':_0x59ac43[_0x40ad15(0x183)]===_0x40ad15(0x17b)&&_0x59ac43['message']?{'messageId':_0x59ac43[_0x40ad15(0x201)]['id'],'messageRole':_0x59ac43[_0x40ad15(0x201)][_0x40ad15(0x1d0)],'contentLength':_0x59ac43[_0x40ad15(0x201)]['content']?.['length'],'hasToolResults':!!_0x59ac43[_0x40ad15(0x201)][_0x40ad15(0x15a)]}:undefined});for(const _0x59a9b9 of _0x4b647e){try{const _0x30d1cd={..._0x59ac43,'timestamp':new Date()[_0x40ad15(0x16e)]()};_0x59a9b9['ws'][_0x40ad15(0x151)](JSON['stringify'](_0x30d1cd)),this[_0x40ad15(0x135)]?.[_0x40ad15(0x171)]('✅\x20WebSocket\x20message\x20sent\x20to\x20connection:',{'connectionId':_0x59a9b9['id'],'messageType':_0x59ac43[_0x40ad15(0x183)],'agentId':_0x59ac43[_0x40ad15(0x215)]});}catch(_0x23d1aa){this['logger']['warn']('❌\x20Failed\x20to\x20send\x20WebSocket\x20message',{'connectionId':_0x59a9b9['id'],'sessionId':_0x411227,'messageType':_0x59ac43[_0x40ad15(0x183)],'error':_0x23d1aa[_0x40ad15(0x201)]});}}}async['startServer'](){return new Promise((_0x1e0d94,_0x7412ae)=>{const _0x2dae25=a0_0x3e1c;this[_0x2dae25(0x1f9)][_0x2dae25(0x187)](this[_0x2dae25(0x1e0)],this['host'],_0x491246=>{const _0x557dee=_0x2dae25;_0x491246?(this['logger']['error']('Failed\x20to\x20start\x20HTTP\x20server',{'error':_0x491246[_0x557dee(0x201)],'port':this[_0x557dee(0x1e0)],'host':this['host']}),_0x7412ae(_0x491246)):(this[_0x557dee(0x210)]=!![],this[_0x557dee(0x135)]['info'](_0x557dee(0x1e1),{'port':this[_0x557dee(0x1e0)],'host':this['host'],'httpUrl':'http://'+this[_0x557dee(0x235)]+':'+this[_0x557dee(0x1e0)],'wsUrl':'ws://'+this['host']+':'+this['port'],'wsServerAttached':!!this[_0x557dee(0x1fc)],'wsConnections':this[_0x557dee(0x214)][_0x557dee(0x1cb)]}),setTimeout(async()=>{await this['testWebSocketServer']();},0x3e8),_0x1e0d94());}),this['server']['on']('error',_0x298961=>{const _0x411639=_0x2dae25;this['logger']['error']('HTTP\x20server\x20error:',{'error':_0x298961[_0x411639(0x201)],'stack':_0x298961[_0x411639(0x203)],'port':this[_0x411639(0x1e0)]});});});}async[a0_0x452fa2(0x1ec)](){const _0x29fa86=a0_0x452fa2;try{const {default:_0x3ffb26}=await import('ws'),_0x303934=new _0x3ffb26(_0x29fa86(0x195)+this[_0x29fa86(0x1e0)]);_0x303934['on'](_0x29fa86(0x14f),()=>{const _0x14a903=_0x29fa86;this[_0x14a903(0x135)][_0x14a903(0x171)]('✅\x20WebSocket\x20server\x20test:\x20SUCCESSFUL',{'port':this[_0x14a903(0x1e0)],'url':_0x14a903(0x195)+this[_0x14a903(0x1e0)]}),_0x303934[_0x14a903(0x1ca)]();}),_0x303934['on'](_0x29fa86(0x137),_0x489b9d=>{const _0x366c6c=_0x29fa86;this['logger'][_0x366c6c(0x137)]('❌\x20WebSocket\x20server\x20test:\x20FAILED',{'port':this['port'],'url':'ws://localhost:'+this[_0x366c6c(0x1e0)],'error':_0x489b9d['message'],'code':_0x489b9d[_0x366c6c(0x167)]});}),_0x303934['on'](_0x29fa86(0x1ca),(_0x443dfd,_0x550858)=>{const _0x6c8fa3=_0x29fa86;_0x443dfd===0x3e8&&this[_0x6c8fa3(0x135)][_0x6c8fa3(0x171)]('WebSocket\x20test\x20connection\x20closed\x20cleanly');}),setTimeout(()=>{const _0x3feb0e=_0x29fa86;_0x303934[_0x3feb0e(0x1d2)]===_0x3ffb26['CONNECTING']&&(this[_0x3feb0e(0x135)][_0x3feb0e(0x137)]('❌\x20WebSocket\x20server\x20test:\x20TIMEOUT',{'port':this[_0x3feb0e(0x1e0)],'url':_0x3feb0e(0x195)+this[_0x3feb0e(0x1e0)],'readyState':_0x303934['readyState']}),_0x303934[_0x3feb0e(0x1ed)]());},0x1388);}catch(_0x5313f3){this[_0x29fa86(0x135)]['error'](_0x29fa86(0x186),{'error':_0x5313f3[_0x29fa86(0x201)],'stack':_0x5313f3['stack']});}}['setApiKeyManager'](_0x4217ee){const _0x24947d=a0_0x452fa2;this[_0x24947d(0x23a)]=_0x4217ee,this['logger']?.['info']('API\x20key\x20manager\x20set\x20for\x20web\x20server',{'hasManager':!!_0x4217ee});}[a0_0x452fa2(0x1df)](_0x241292){const _0x25ee2c=a0_0x452fa2;if(!_0x241292)return null;const _0x30c506=_0x241292[_0x25ee2c(0x1f8)]();if(_0x30c506[_0x25ee2c(0x1f7)]('anthropic')||_0x30c506['includes']('claude'))return _0x25ee2c(0x1ef);else{if(_0x30c506[_0x25ee2c(0x1f7)]('openai')||_0x30c506['includes']('gpt'))return'openai';else{if(_0x30c506['includes'](_0x25ee2c(0x178)))return _0x25ee2c(0x178);else{if(_0x30c506[_0x25ee2c(0x1f7)](_0x25ee2c(0x1ce)))return _0x25ee2c(0x165);}}}return null;}['getStatus'](){const _0x4c2727=a0_0x452fa2;return{'isRunning':this[_0x4c2727(0x210)],'port':this[_0x4c2727(0x1e0)],'host':this[_0x4c2727(0x235)],'connections':this[_0x4c2727(0x214)]['size'],'sessions':this['sessions']['size'],'url':_0x4c2727(0x192)+this['host']+':'+this['port']};}async[a0_0x452fa2(0x1b9)](){const _0x4e9c74=a0_0x452fa2;if(!this[_0x4e9c74(0x210)])return;this['logger'][_0x4e9c74(0x171)](_0x4e9c74(0x204));for(const _0x4d46ee of this['connections'][_0x4e9c74(0x236)]()){_0x4d46ee['ws'][_0x4e9c74(0x1ca)]();}return this[_0x4e9c74(0x214)]['clear'](),this[_0x4e9c74(0x1fc)][_0x4e9c74(0x1ca)](),new Promise(_0xd9df0e=>{const _0x4d3476=_0x4e9c74;this[_0x4d3476(0x1f9)][_0x4d3476(0x1ca)](()=>{const _0x2ba74f=_0x4d3476;this[_0x2ba74f(0x210)]=![],this['logger'][_0x2ba74f(0x171)](_0x2ba74f(0x18d)),_0xd9df0e();});});}}export default WebServer;if(import.meta.url===a0_0x452fa2(0x12e)+process['argv'][0x1]){const simpleLogger={'info':(_0x493d1f,_0x4ddb0d)=>console['log'](a0_0x452fa2(0x190)+_0x493d1f,_0x4ddb0d?JSON['stringify'](_0x4ddb0d,null,0x2):''),'error':(_0x326225,_0x34f428)=>console[a0_0x452fa2(0x137)](a0_0x452fa2(0x1ab)+_0x326225,_0x34f428?JSON[a0_0x452fa2(0x191)](_0x34f428,null,0x2):''),'warn':(_0x4d444c,_0x3cd811)=>console[a0_0x452fa2(0x223)]('[WARN]\x20'+_0x4d444c,_0x3cd811?JSON['stringify'](_0x3cd811,null,0x2):''),'debug':(_0x18c84e,_0x2695d1)=>console[a0_0x452fa2(0x170)](a0_0x452fa2(0x1c4)+_0x18c84e,_0x2695d1?JSON['stringify'](_0x2695d1,null,0x2):'')},mockOrchestrator={'processAction':async(_0x221121,_0xadced0)=>{const _0x53348d=a0_0x452fa2;simpleLogger['info']('Mock\x20orchestrator\x20action',{'action':_0x221121,'data':_0xadced0});switch(_0x221121){case ORCHESTRATOR_ACTIONS[_0x53348d(0x22f)]:return{'success':!![],'data':[]};case ORCHESTRATOR_ACTIONS['CREATE_AGENT']:return{'success':!![],'data':{'id':_0x53348d(0x21d)+Date[_0x53348d(0x14a)](),'name':_0xadced0['name']||_0x53348d(0x220),'status':'active','model':_0xadced0[_0x53348d(0x1e2)]||_0x53348d(0x139),'systemPrompt':_0xadced0['systemPrompt']||_0x53348d(0x229)}};case ORCHESTRATOR_ACTIONS[_0x53348d(0x173)]:return{'success':!![],'data':{'message':{'id':'msg-'+Date[_0x53348d(0x14a)](),'content':'Echo:\x20'+_0xadced0[_0x53348d(0x201)],'timestamp':new Date()['toISOString']()}}};default:return{'success':![],'error':_0x53348d(0x1d5)+_0x221121};}}},server=new WebServer(mockOrchestrator,simpleLogger,{'port':0x1f90,'host':'0.0.0.0'});console[a0_0x452fa2(0x170)]('🚀\x20Starting\x20Loxia\x20Web\x20Server\x20in\x20standalone\x20mode...'),server['startServer']()[a0_0x452fa2(0x1e6)](()=>{const _0x48a7b9=a0_0x452fa2,_0x314738=server[_0x48a7b9(0x1d3)]();console['log']('✅\x20Web\x20Server\x20running\x20at\x20'+_0x314738[_0x48a7b9(0x22a)]),console[_0x48a7b9(0x170)](_0x48a7b9(0x1d6)),console[_0x48a7b9(0x170)]('🔧\x20API\x20available\x20at:\x20http://localhost:8080/api');})['catch'](_0x42988a=>{const _0x21fb4e=a0_0x452fa2;console[_0x21fb4e(0x137)](_0x21fb4e(0x22e),_0x42988a[_0x21fb4e(0x201)]),process[_0x21fb4e(0x20b)](0x1);}),process['on'](a0_0x452fa2(0x158),async()=>{const _0x338f8d=a0_0x452fa2;console[_0x338f8d(0x170)]('\x0a🛑\x20Shutting\x20down\x20web\x20server...'),await server['shutdown'](),process[_0x338f8d(0x20b)](0x0);});}
|
|
1
|
+
function a0_0x2cf8(){const _0xd0b18a=['teLtvf9br0vovfm','ywDLBNrqB29S','DMfSDwvZ','qxr0ywnOBwvUDcbKzwXLDgvK','D2vIlq','lI4VlI4VD2vIlxvPl2j1AwXK','DhLWzq','yNjVywrJyxn0','CgLUzW','DxbKyxrLzef0','Bw9KzwW','w0rfqLvhxsa','CgfYyw1Z','vg9VBhmGCMvNAxn0CNKGBM90igf2ywLSywjSzq','yM9KEq','y2XVC2u','v2vIu29JA2v0ihrLC3qGy29UBMvJDgLVBIbJBg9ZzwqGy2XLyw5SEq','y29UBMvJDgLVBNm','vw5RBM93BIbHy3rPB246ia','ms4WlJa','C2v0qxbPs2v5twfUywDLCG','CMfUzg9T','DgfZA1n0yxj0vgLTzq','mZCWANvkBM1O','mZq3mZHVtfPgAMu','qxr0ywnOBwvUDcbHy3rPDMuGC3rHDhvZihrVz2DSzwq','qvbjigTLEsbTyw5Hz2vYihnLDcbMB3iGD2vIihnLCNzLCG','zMLSzuLK','AxnsDw5UAw5N','z2v0u3rHDhvZ','4PYfifDLyIbtzxj2zxiGCNvUBMLUzYbHDca','rMfPBgvKihrVihn0yxj0ieHuvfaGC2vYDMvY','qvbjigTLEsbTyw5Hz2vYig5VDcbHDMfPBgfIBgu','CMvHzezPBgu','CMvSyxrPDMu','8j+AGcbtDgfYDgLUzYbmB3HPysbxzwiGu2vYDMvYigLUihn0yw5KywXVBMuGBw9Kzs4UlG','l2fWAs9Hz2vUDhmVoMfNzw50swqVBw9Kzq','C2H1DgrVD24','C2vZC2LVBNm','yxbPs2v5twfUywDLCG','C2L6zq','AgfUzgXLv2vIu29JA2v0twvZC2fNzq','BM93','AxnmB2fKzwq','l2fWAs9Hz2vUDhmVoMfNzw50swqVBwv0ywrHDge','tM8GqvbjigTLEsbJB25MAwD1CMvKlIbqBgvHC2uGy29UzMLNDxjLihLVDxiGtg94AweGqvbjigTLEsbPBIbtzxr0Aw5NCY4','yxbW','ohzjwfzbCa','ywDLBNqT','ue9tva','Dg9mB3DLCKnHC2u','4P2miezHAwXLzcb0BYbZDgfYDcb3zwiGC2vYDMvYoG','C2vZC2LVBKLK','zgvSzxrL','C2vUzezPBgu','DxbKyxrLqxr0ywnOBwvUDa','rMLSzsbHDhrHy2HTzw50ihnLCNzPy2uGBM90igf2ywLSywjSzq','ChjLzMvYCMvKtw9KzwW','D3nnyw5Hz2vY','sw52ywXPzcbZzxnZAw9U','C3rYAw5NAwz5','yw50AhjVCgLJ','rMfPBgvKihrVigDLDcbHDhrHy2HTzw50','l2fWAs9VCMnOzxn0CMf0B3i','C3rVCfjLCxvLC3rLza','tw9JAYbVCMnOzxn0CMf0B3iGywn0Aw9U','qwDLBNqGBM90igzVDw5K','l2fWAs9SBg0Vy2HHDa','ywn0AxzL','te9ysufFqvbjx0Tfwq','zMLSzuf0DgfJAg1LBNrtzxj2AwnL','BwvZC2fNzq','Cgf0y2G','4P2mifDLyLnVy2TLDcbZzxj2zxiGDgvZDdOGveLnru9vva','Bg9Nz2vY','yNjVywrJyxn0vg9tzxnZAw9U','zw52','tM8GqvbjigTLExmGzM91BMqGzM9YihnLC3nPB24','qxr0ywnOBwvUDcbUB3qGzM91BMq','DxbSB2fKrMLSzq','z2v0','Dg9tDhjPBMC','ywDLBNrjzcbPCYbYzxf1AxjLzcbPBIbYzxf1zxn0igjVzhK','AxngAwXL','CMvZB2X2zq','z2v0s2v5C0zVCLjLCxvLC3q','BM9YBwfSAxPL','C3rHy2S','yxbWBgLJyxrPB24VANnVBG','B3bLBG','y2fWywjPBgL0AwvZ','l2fWAs9OzwfSDgG','qKfex1jfuvvfu1q','u2vYDMLUzYb0B29SCYbPBMzVCM1HDgLVBG','AM9PBG','rMfPBgvKihrVigDLDcbHz2vUDcbTzxrHzgf0yq','D2fYBG','l2fWAs9Hz2vUDhmVyxzHAwXHyMXL','C2vYDMvY','CMvTB3rLqwrKCMvZCW','C2vUza','qwDLBNqGBw9Kzsb1CgrHDguGCMvXDwvZDgvKihDPDgHVDxqGC2vZC2LVBIbjra','C3rHDhvZvgv4Da','Cg9ZDa','DxjS','ANnVBG','C2vUzfn0yxr1CW','rMfPBgvKihrVigrLBgv0zsbHDhrHy2HTzw50','ChjVy2vZC1jLCxvLC3q','rMfPBgvKihrVihnLDcbbueKGA2v5CW','C3rHDa','Aw5PDgLHBgL6zq','rMfPBgvKihrVihn0B3aGyxv0B25VBw91CYbLEgvJDxrPB24','yxv0B25VBw91C191CgrHDgu','Cg9YDa','Aw1Hz2vZ','Bw9KzwXZu2vYDMLJzq','8j+tOsbxzwjtB2nRzxqGyNjVywrJyxn0vg9tzxnZAw9UignHBgXLzdO','Dg9VBfjLC3vSDhm','l2fWAs9PBwfNzxmVoNnLC3nPB25jzc86zMLSzw5HBwu','mJmZntuWChrwEwnK','qxP1CMuGyMfJA2vUzcbJAgf0ihjLCxvLC3qGzMfPBgvK','Bw9KzwXZ','mJbkzNP4Bfq','zgLYzwn0B3j5','BgLZDgvU','v2vIu29JA2v0igPVAw5LzcbZzxnZAw9U','Aw1WB3j0rNjVBufNzw50','w0vsuK9sxsa','z2v0qxzHAwXHyMXLvg9VBhngB3jvsq','BgvUz3rO','Ahr0Chm6lY9HDxrVCgLSB3qTyxbPlMf6DxjLD2vIC2L0zxmUBMv0l2XSBs9JAgf0','zMLSDgvY','Ag9ZDa','zxHPDa','z2v0qxr0ywnOBwvUDa','z2v0qwXSqwDLBNrZ','sfruucbZzxj2zxiGzxjYB3i6','y29UDgvUDa','l3rTCc9SB3HPys1PBwfNzxm','CMvHzhLtDgf0zq','sw1Hz2uGC2vYDMLUzYbLCNjVCG','C3rHCNrZv2L0Aa','igLTCg9YDgvKihn1y2nLC3nMDwXSEq','AgvHzgvYC1nLBNq','zxjYB3i','ywDLBNq','B3bLBMfP','DxrMoa','ywDLBNrFBw9Kzv9JAgfUz2vK','v2vIu29JA2v0ignVBM5Ly3rPB24Gzxn0ywjSAxnOzwq','rMfPBgvKihrVigDLDcbbueKGA2v5ihn0yxr1CW','ChjVAMvJDa','4P2miezHAwXLzcb0BYbZzw5KifDLyLnVy2TLDcbTzxnZywDL','l2fWAs9Hz2vUDhmVoMfNzw50swqVyxr0ywnOBwvUDhm','B3jJAgvZDhjHDg9Y','y3DK','y2f0zwDVCNK','8j+tSsbxzwiGvuKGyxzHAwXHyMXLigf0oIbODhrWoI8VBg9JywXOB3n0oJmWmdeGkgLMihj1BM5PBMCP','y3vYCMvUDfrHC2S','l2fWAs9HDhrHy2HTzw50CY86zMLSzuLKl3rVz2DSzq','sfruucbZzxj2zxiGC3rHCNrLzcbZDwnJzxnZzNvSBhK','Bwv0Ag9K','AgvHBhrOEq','CM91DgvY','zgvLChnLzwS','Aw5MBW','y29UzMLN','Bw9Kzq','DxnL','D3m6lY9SB2nHBgHVC3q6','AxneAxjLy3rVCNK','zNjVBq','BgfZDefJDgL2Axr5','ywXS','CMvX','Bg9N','C3rHDhvZ','yxbPs2v5','mta3mhnRr1HACW','l2fWAs9RzxLZlZPZzxnZAw9Uswq','z2v0x2fNzw50x3n0yxr1CW','BMfTzq','C29JA2v0','r0vulcbqt1nulcbqvvqSierftevursWGt1busu9ouW','Cg9UzW','CxvLCNK','AgvHzgvY','sw52ywXPza','A2v5CW','y29UBMvJDgLVBG','y29Kzq','BwfW','rMfPBgvKihrVihbYB3H5ignOyxqGCMvXDwvZDcb0BYbbENvYzsbIywnRzw5K','z2v0u2vZC2LVBKTLExm','q09otKvdveLorW','8j+uHcboBYbJB25Uzwn0Aw9UCYbMB3iGC2vZC2LVBIWGDhj5Aw5NigfSBcbJB25Uzwn0Aw9UCZO','C3vJy2vZCW','l2fWAs9HDhrHy2HTzw50CY86zMLSzuLK','ywn0Aw9U','u2vZC2LVBIbjrcbPCYbYzxf1AxjLza','CM9Szq','lI4VlI4VCgfJA2fNzs5QC29U','qwnJzxnZlunVBNrYB2WTqwXSB3CTtwv0Ag9KCW','ywDLBNrjza','C29YDa','Cgf0Aa','mJe4mJH4vgfpzfK','yxv0Ag9YAxPHDgLVBG','Dg9Nz2XLqwn0AxzL','BxrPBwu','l2fWAs9RzxLZ','u2v0DgLUzYb1CcbxzwjtB2nRzxqGC2vYDMvY','odi2mZCXBuHfAxLk','Dhj1zq','l2fWAs9ZzxnZAw9UCW','mtbTyG','Dg9VBhnszwDPC3rYEq','C3rVCef1Dg9UB21VDxnfEgvJDxrPB24','zMLSzuv4CgXVCMvYtw9KDwXL','B3jJAgvZDhjHDg9Yx3jLC3bVBNnL','C2v0DxbsB3v0zxm','l2fWAs9SBg0VBw9KzwXZ','rMfPBgvKihrVihjLBw92zsbbueKGA2v5CW','y3vYCMvUDe1VzgvS','D3nZ','tK9ux0zpvu5e','C3rHDgvnyw5Hz2vY','ntiZmJzrBfLiseC','Bg94AwfbCgLlzxK','Dg9ju09tDhjPBMC','D3m6lY8','su5urvjoquXFu0vsvKvsx0vsuK9s','rMfPBgvKihrVihnLBMqGAw1Hz2uGzMLSzq','otK0ofDVEw9gBW','l2fWAs9LEhbSB3jLCI9TA2rPCG','rMLSzsbHDhrHy2HTzw50ihvWBg9HzgvK','u0vorf9nrvntquDf','l2fWAs9MAwXLCY91CgXVywq','rwnOBZOG','v0vc','cVcFM5eGu2H1DhrPBMCGzg93BIb3zwiGC2vYDMvYlI4U','mtmZmJC0nevNrxn0sG','ChjVAMvJDerPCG','C2v0DxbnAwrKBgv3yxjL','zgLYBMfTzq','CgH5C2LJywXSEurLBgv0zwq','ywXYzwfKEsbHy3rPDMu','rMfPBgvKihrVigzLDgnOig1VzgvSCYbMCM9TigjHy2TLBMq6ia','B3jPz2LU','Aw5JBhvKzxm','Bw9Kzvn0yxrL','Ahr0CdOVlW','rMfPBgvKihrVigDLDcbHz2vUDcbTB2rLihn0yxr1CW','C3rHCNrtzxj2zxi','y29UBI0','AgvHzgvYCW','zMLSzq','DgvYBwLUyxrL','y2f0y2G','mJe5mZiXouHIEefNAq','Dgv4Da','qMvHCMvYia','rMfPBgvKihrVihvWzgf0zsbHz2vUDcbTB2rL'];a0_0x2cf8=function(){return _0xd0b18a;};return a0_0x2cf8();}const a0_0x14a8a3=a0_0x366e;(function(_0x290ea1,_0x1bd004){const _0x255cb3=a0_0x366e,_0x2a0ae5=_0x290ea1();while(!![]){try{const _0x39fa96=parseInt(_0x255cb3(0x18a))/0x1+parseInt(_0x255cb3(0xfc))/0x2+parseInt(_0x255cb3(0x1e7))/0x3*(parseInt(_0x255cb3(0x18d))/0x4)+-parseInt(_0x255cb3(0x1c5))/0x5*(-parseInt(_0x255cb3(0x1e1))/0x6)+-parseInt(_0x255cb3(0x10e))/0x7*(-parseInt(_0x255cb3(0x141))/0x8)+-parseInt(_0x255cb3(0x1f6))/0x9*(-parseInt(_0x255cb3(0x129))/0xa)+parseInt(_0x255cb3(0x12a))/0xb*(-parseInt(_0x255cb3(0x1fc))/0xc);if(_0x39fa96===_0x1bd004)break;else _0x2a0ae5['push'](_0x2a0ae5['shift']());}catch(_0x20984d){_0x2a0ae5['push'](_0x2a0ae5['shift']());}}}(a0_0x2cf8,0xebe30));import a0_0x113173 from'express';import{createServer}from'http';import{WebSocketServer}from'ws';function a0_0x366e(_0x80ae0d,_0x427e5e){_0x80ae0d=_0x80ae0d-0xfa;const _0x2cf843=a0_0x2cf8();let _0x366e0b=_0x2cf843[_0x80ae0d];if(a0_0x366e['gXTlhf']===undefined){var _0x357612=function(_0x436f25){const _0x34cd7d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x113173='',_0x48bada='';for(let _0x30df96=0x0,_0x7a099d,_0x5a3e3b,_0x184ca5=0x0;_0x5a3e3b=_0x436f25['charAt'](_0x184ca5++);~_0x5a3e3b&&(_0x7a099d=_0x30df96%0x4?_0x7a099d*0x40+_0x5a3e3b:_0x5a3e3b,_0x30df96++%0x4)?_0x113173+=String['fromCharCode'](0xff&_0x7a099d>>(-0x2*_0x30df96&0x6)):0x0){_0x5a3e3b=_0x34cd7d['indexOf'](_0x5a3e3b);}for(let _0x24654f=0x0,_0x2a30ed=_0x113173['length'];_0x24654f<_0x2a30ed;_0x24654f++){_0x48bada+='%'+('00'+_0x113173['charCodeAt'](_0x24654f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48bada);};a0_0x366e['JrdSMB']=_0x357612,a0_0x366e['SBRMno']={},a0_0x366e['gXTlhf']=!![];}const _0xb84078=_0x2cf843[0x0],_0x42f3fa=_0x80ae0d+_0xb84078,_0x45b25b=a0_0x366e['SBRMno'][_0x42f3fa];return!_0x45b25b?(_0x366e0b=a0_0x366e['JrdSMB'](_0x366e0b),a0_0x366e['SBRMno'][_0x42f3fa]=_0x366e0b):_0x366e0b=_0x45b25b,_0x366e0b;}import a0_0x48bada from'path';import{promises as a0_0x30df96}from'fs';import{fileURLToPath}from'url';import{INTERFACE_TYPES,ORCHESTRATOR_ACTIONS,HTTP_STATUS,AGENT_MODES}from'../utilities/constants.js';import{initFileExplorerModule}from'../modules/fileExplorer/index.js';const __filename=fileURLToPath(import.meta.url),__dirname=a0_0x48bada[a0_0x14a8a3(0xff)](__filename);class WebServer{constructor(_0x7a099d,_0x5a3e3b,_0x184ca5={}){const _0x1e1207=a0_0x14a8a3;this['orchestrator']=_0x7a099d,this['logger']=_0x5a3e3b,this['config']=_0x184ca5,this[_0x1e1207(0x184)]=_0x184ca5['port']||0x1f90,this[_0x1e1207(0x197)]=_0x184ca5[_0x1e1207(0x197)]||'localhost',this[_0x1e1207(0x140)]=a0_0x113173(),this[_0x1e1207(0x174)]=createServer(this['app']),this['wss']=new WebSocketServer({'server':this['server'],'verifyClient':_0x24654f=>{const _0x2280f5=_0x1e1207;return this['logger']?.[_0x2280f5(0x1b8)]('WebSocket\x20connection\x20attempt',{'origin':_0x24654f['origin'],'host':_0x24654f['req']['headers']['host'],'userAgent':_0x24654f[_0x2280f5(0x1c1)][_0x2280f5(0x10a)]['user-agent'],'url':_0x24654f['req']['url']}),!![];}}),this['connections']=new Map(),this[_0x1e1207(0x138)]=new Map(),this['apiKeyManager']=null,this['isRunning']=![];}async[a0_0x14a8a3(0x181)](){const _0x483e60=a0_0x14a8a3;try{this[_0x483e60(0xfe)](),this['setupRoutes'](),this['setupWebSocket'](),await this['startServer'](),this[_0x483e60(0x15c)][_0x483e60(0x1b8)]('Web\x20server\x20initialized',{'port':this[_0x483e60(0x184)],'host':this['host'],'url':'http://'+this['host']+':'+this[_0x483e60(0x184)]});}catch(_0x2a30ed){this[_0x483e60(0x15c)][_0x483e60(0x1a3)]('Web\x20server\x20initialization\x20failed',{'error':_0x2a30ed['message'],'stack':_0x2a30ed[_0x483e60(0x169)]});throw _0x2a30ed;}}['setupMiddleware'](){const _0x10c3b9=a0_0x14a8a3;this['app']['use']((_0x43b27b,_0x2534df,_0x2a92bc)=>{const _0x503c70=a0_0x366e;_0x2534df['header']('Access-Control-Allow-Origin','*'),_0x2534df[_0x503c70(0x1cd)](_0x503c70(0x1dd),_0x503c70(0x1ca)),_0x2534df['header']('Access-Control-Allow-Headers','Origin,\x20X-Requested-With,\x20Content-Type,\x20Accept,\x20Authorization'),_0x43b27b[_0x503c70(0x1b4)]==='OPTIONS'?_0x2534df[_0x503c70(0x17c)](HTTP_STATUS['OK']):_0x2a92bc();}),this[_0x10c3b9(0x140)]['use'](a0_0x113173['json']({'limit':'10mb'})),this[_0x10c3b9(0x140)]['use'](a0_0x113173['urlencoded']({'extended':!![],'limit':_0x10c3b9(0x1ea)})),this[_0x10c3b9(0x1ed)]=initFileExplorerModule({'showHidden':![],'restrictedPaths':[]}),this[_0x10c3b9(0x140)][_0x10c3b9(0x1bb)]('/api/file-explorer',this['fileExplorerModule'][_0x10c3b9(0x1b6)]);const _0x5cb9fd=a0_0x48bada[_0x10c3b9(0x170)](__dirname,_0x10c3b9(0x117));this['app'][_0x10c3b9(0x1bb)](a0_0x113173['static'](_0x5cb9fd)),this[_0x10c3b9(0x140)]['use']((_0x973d8d,_0x51defa,_0x3da86d)=>{const _0x4ab3b1=_0x10c3b9;this[_0x4ab3b1(0x15c)]['debug'](_0x973d8d['method']+'\x20'+_0x973d8d[_0x4ab3b1(0x1e0)],{'ip':_0x973d8d['ip'],'userAgent':_0x973d8d['get']('User-Agent')}),_0x3da86d();});}[a0_0x14a8a3(0x1ef)](){const _0x53134c=a0_0x14a8a3;this[_0x53134c(0x140)]['get'](_0x53134c(0x16d),async(_0x199bab,_0x41b416)=>{const _0x17fee3=_0x53134c;try{const _0x1cd77a=a0_0x48bada['join'](__dirname,_0x17fee3(0x1dc)),_0x168f31=JSON['parse'](await a0_0x30df96[_0x17fee3(0x133)](_0x1cd77a,_0x17fee3(0x1a6)));_0x41b416['json']({'status':_0x17fee3(0x1b5),'version':_0x168f31['version']||_0x17fee3(0x125),'timestamp':new Date()[_0x17fee3(0x1f8)]()});}catch(_0x235658){_0x41b416['json']({'status':_0x17fee3(0x1b5),'version':_0x17fee3(0x125),'timestamp':new Date()[_0x17fee3(0x1f8)]()});}}),this[_0x53134c(0x140)][_0x53134c(0x179)](_0x53134c(0x1e9),async(_0x55abb3,_0x440ded)=>{const _0x2cc172=_0x53134c;try{const _0xcb0ec9=_0x2cc172(0x116)+Date[_0x2cc172(0x13c)]()+'-'+Math[_0x2cc172(0x127)]()[_0x2cc172(0x163)](0x24)['substr'](0x2,0x9),_0x27fd4b=_0x55abb3[_0x2cc172(0x120)]['projectDir']||process[_0x2cc172(0x1ae)](),_0x261069={'id':_0xcb0ec9,'projectDir':_0x27fd4b,'createdAt':new Date()[_0x2cc172(0x1f8)](),'lastActivity':new Date()['toISOString']()};this['sessions']['set'](_0xcb0ec9,_0x261069),_0x440ded[_0x2cc172(0x17b)]({'success':!![],'session':_0x261069});}catch(_0xad4d9e){_0x440ded[_0x2cc172(0x1c3)](HTTP_STATUS[_0x2cc172(0x1fa)])[_0x2cc172(0x17b)]({'success':![],'error':_0xad4d9e['message']});}}),this[_0x53134c(0x140)][_0x53134c(0x179)](_0x53134c(0x151),async(_0x1b112f,_0xf9b130)=>{const _0x3c0d39=_0x53134c;try{const _0x41d2bd={'interface':INTERFACE_TYPES['WEB'],'sessionId':_0x1b112f['body']['sessionId'],'action':_0x1b112f['body'][_0x3c0d39(0x1d9)],'payload':_0x1b112f[_0x3c0d39(0x120)]['payload'],'projectDir':_0x1b112f['body'][_0x3c0d39(0xfd)]||process[_0x3c0d39(0x1ae)]()},_0x5e3401=await this['orchestrator']['processRequest'](_0x41d2bd);this[_0x3c0d39(0x15d)](_0x41d2bd[_0x3c0d39(0x146)],{'type':'orchestrator_response','action':_0x41d2bd['action'],'response':_0x5e3401}),_0xf9b130['json'](_0x5e3401);}catch(_0x3ee484){this['logger'][_0x3c0d39(0x1a3)]('Orchestrator\x20API\x20error',{'error':_0x3ee484[_0x3c0d39(0x159)],'body':_0x1b112f[_0x3c0d39(0x120)]}),_0xf9b130['status'](HTTP_STATUS['INTERNAL_SERVER_ERROR'])[_0x3c0d39(0x17b)]({'success':![],'error':_0x3ee484['message']});}}),this[_0x53134c(0x140)][_0x53134c(0x162)]('/api/files',async(_0x103725,_0x3dc9e0)=>{const _0x4667f9=_0x53134c;try{const {path:_0x4abcdc,projectDir:_0x1f0ac1}=_0x103725[_0x4667f9(0x1cc)],_0x108409=a0_0x48bada[_0x4667f9(0x166)](_0x1f0ac1||process['cwd'](),_0x4abcdc||'.'),_0x146e74=await a0_0x30df96[_0x4667f9(0x180)](_0x108409);if(_0x146e74['isDirectory']()){const _0x472b8d=await a0_0x30df96['readdir'](_0x108409,{'withFileTypes':!![]}),_0x3192ea=_0x472b8d['map'](_0x33a619=>({'name':_0x33a619['name'],'type':_0x33a619['isDirectory']()?_0x4667f9(0x18e):'file','path':a0_0x48bada['join'](_0x4abcdc||'.',_0x33a619[_0x4667f9(0x1c8)])}));_0x3dc9e0['json']({'success':!![],'files':_0x3192ea});}else{const _0x34355f=await a0_0x30df96[_0x4667f9(0x133)](_0x108409,'utf8');_0x3dc9e0['json']({'success':!![],'content':_0x34355f,'type':_0x4667f9(0x10b)});}}catch(_0x3f3bfb){_0x3dc9e0[_0x4667f9(0x1c3)](HTTP_STATUS[_0x4667f9(0x1f4)])['json']({'success':![],'error':_0x3f3bfb['message']});}}),this[_0x53134c(0x140)]['post'](_0x53134c(0x200),async(_0x5e4035,_0x3b4880)=>{const _0x27a4e8=_0x53134c;try{const {fileName:_0x2319dc,content:_0x1d9d06,projectDir:_0x1c2ff6}=_0x5e4035[_0x27a4e8(0x120)],_0x366e64=_0x1c2ff6||process[_0x27a4e8(0x1ae)](),_0x22ddf4=a0_0x48bada[_0x27a4e8(0x166)](_0x366e64,_0x2319dc);await a0_0x30df96['mkdir'](_0x366e64,{'recursive':!![]}),await a0_0x30df96['writeFile'](_0x22ddf4,_0x1d9d06,_0x27a4e8(0x1a6)),_0x3b4880[_0x27a4e8(0x17b)]({'success':!![],'message':'File\x20uploaded\x20successfully','path':_0x22ddf4});}catch(_0x2254c0){_0x3b4880[_0x27a4e8(0x1c3)](HTTP_STATUS[_0x27a4e8(0x1fa)])[_0x27a4e8(0x17b)]({'success':![],'error':_0x2254c0['message']});}}),this['app'][_0x53134c(0x162)]('/api/explorer',async(_0x549bca,_0x580214)=>{const _0x1d30ce=_0x53134c;try{const {path:_0x2d2429,showHidden:showHidden=![]}=_0x549bca['query'],_0x27d443=_0x2d2429||process['cwd'](),_0x1a1edd=a0_0x48bada[_0x1d30ce(0x166)](_0x27d443),_0xdd6d38=a0_0x48bada[_0x1d30ce(0x168)](_0x1a1edd),_0x45bd98=await a0_0x30df96[_0x1d30ce(0x180)](_0xdd6d38);if(!_0x45bd98[_0x1d30ce(0x1bd)]())return _0x580214['status'](HTTP_STATUS['BAD_REQUEST'])['json']({'success':![],'error':'Path\x20is\x20not\x20a\x20directory'});const _0x58e88d=await a0_0x30df96['readdir'](_0xdd6d38,{'withFileTypes':!![]}),_0x30b806=await Promise[_0x1d30ce(0x1c0)](_0x58e88d['filter'](_0x2759a4=>showHidden===_0x1d30ce(0x1e8)||!_0x2759a4['name']['startsWith']('.'))['map'](async _0x451714=>{const _0x1f8ad5=_0x1d30ce,_0x2f3bf2=a0_0x48bada[_0x1f8ad5(0x170)](_0xdd6d38,_0x451714['name']),_0x406f73=await a0_0x30df96['stat'](_0x2f3bf2)['catch'](()=>null);return{'name':_0x451714[_0x1f8ad5(0x1c8)],'type':_0x451714['isDirectory']()?_0x1f8ad5(0x18e):'file','path':_0x2f3bf2,'relativePath':a0_0x48bada['relative'](process['cwd'](),_0x2f3bf2),'size':_0x406f73?.[_0x1f8ad5(0x13a)]||0x0,'modified':_0x406f73?.[_0x1f8ad5(0x1e4)]||null,'isHidden':_0x451714['name'][_0x1f8ad5(0x1a0)]('.'),'permissions':{'readable':!![],'writable':!![]}};}));_0x30b806[_0x1d30ce(0x1df)]((_0x5d79df,_0x2ac62a)=>{const _0x2777f1=_0x1d30ce;if(_0x5d79df['type']!==_0x2ac62a['type'])return _0x5d79df[_0x2777f1(0x118)]==='directory'?-0x1:0x1;return _0x5d79df['name']['localeCompare'](_0x2ac62a['name']);});const _0x41fedd=a0_0x48bada[_0x1d30ce(0xff)](_0xdd6d38),_0x919d0=_0x41fedd!==_0xdd6d38;_0x580214[_0x1d30ce(0x17b)]({'success':!![],'currentPath':_0xdd6d38,'currentRelativePath':a0_0x48bada['relative'](process['cwd'](),_0xdd6d38),'parentPath':_0x919d0?_0x41fedd:null,'items':_0x30b806,'totalItems':_0x30b806[_0x1d30ce(0x194)],'directories':_0x30b806[_0x1d30ce(0x196)](_0x530046=>_0x530046['type']===_0x1d30ce(0x18e))['length'],'files':_0x30b806[_0x1d30ce(0x196)](_0x2daee3=>_0x2daee3[_0x1d30ce(0x118)]===_0x1d30ce(0x10b))[_0x1d30ce(0x194)]});}catch(_0x343814){_0x580214['status'](HTTP_STATUS[_0x1d30ce(0x1fa)])[_0x1d30ce(0x17b)]({'success':![],'error':_0x343814['message'],'code':_0x343814[_0x1d30ce(0x1d1)]});}}),this[_0x53134c(0x140)][_0x53134c(0x179)](_0x53134c(0x1fd),async(_0x3bc845,_0x59c180)=>{const _0xc99b7d=_0x53134c;try{const {path:_0x36832f,name:_0x1a9204}=_0x3bc845['body'],_0x577c7f=a0_0x48bada[_0xc99b7d(0x166)](_0x36832f,_0x1a9204);await a0_0x30df96['mkdir'](_0x577c7f,{'recursive':![]}),_0x59c180[_0xc99b7d(0x17b)]({'success':!![],'path':_0x577c7f,'relativePath':a0_0x48bada[_0xc99b7d(0x134)](process[_0xc99b7d(0x1ae)](),_0x577c7f)});}catch(_0x2e0bba){_0x59c180[_0xc99b7d(0x1c3)](HTTP_STATUS['INTERNAL_SERVER_ERROR'])['json']({'success':![],'error':_0x2e0bba['message'],'code':_0x2e0bba[_0xc99b7d(0x1d1)]});}}),this[_0x53134c(0x140)][_0x53134c(0x162)]('/api/explorer/info',async(_0x3abd7e,_0x4b542a)=>{const _0x31c10e=_0x53134c;try{const {path:_0x5e73a4}=_0x3abd7e[_0x31c10e(0x1cc)],_0x323e38=a0_0x48bada['resolve'](_0x5e73a4),_0x1e0449=await a0_0x30df96['stat'](_0x323e38);_0x4b542a[_0x31c10e(0x17b)]({'success':!![],'path':_0x323e38,'relativePath':a0_0x48bada['relative'](process[_0x31c10e(0x1ae)](),_0x323e38),'isDirectory':_0x1e0449['isDirectory'](),'isFile':_0x1e0449[_0x31c10e(0x165)](),'size':_0x1e0449[_0x31c10e(0x13a)],'created':_0x1e0449['birthtime'],'modified':_0x1e0449[_0x31c10e(0x1e4)],'accessed':_0x1e0449['atime']});}catch(_0x429b3f){_0x4b542a[_0x31c10e(0x1c3)](HTTP_STATUS['INTERNAL_SERVER_ERROR'])[_0x31c10e(0x17b)]({'success':![],'error':_0x429b3f[_0x31c10e(0x159)],'code':_0x429b3f[_0x31c10e(0x1d1)]});}}),this[_0x53134c(0x140)]['post'](_0x53134c(0x155),async(_0x1af982,_0x103b4b)=>{const _0x57bcdb=_0x53134c;try{const {sessionId:_0x4e7e7b,model:_0x14a53d,platformProvided:_0x36239b}=_0x1af982['body'];if(!_0x4e7e7b)return _0x103b4b[_0x57bcdb(0x1c3)](0x190)['json']({'error':_0x57bcdb(0x1da)});let _0x5a77c2=null,_0x710d80=null;if(this['apiKeyManager']){const _0x1d44e0=this[_0x57bcdb(0x139)][_0x57bcdb(0x167)](_0x4e7e7b,{'platformProvided':_0x36239b||![],'vendor':this['_getVendorFromModel'](_0x14a53d)});_0x5a77c2=_0x1d44e0[_0x57bcdb(0x1f7)],_0x710d80=_0x1d44e0['vendorApiKey'];}!_0x5a77c2&&(_0x5a77c2=this[_0x57bcdb(0x1b9)][_0x57bcdb(0x1f7)]||process[_0x57bcdb(0x15e)]['LOXIA_API_KEY']);!_0x5a77c2&&_0x1af982[_0x57bcdb(0x120)][_0x57bcdb(0x1c4)]&&(_0x5a77c2=_0x1af982[_0x57bcdb(0x120)]['apiKey']);if(!_0x5a77c2)return this['logger']['warn']('No\x20API\x20key\x20available\x20for\x20chat\x20request',{'sessionId':_0x4e7e7b,'model':_0x14a53d,'platformProvided':_0x36239b,'hasSessionManager':!!this['apiKeyManager']}),_0x103b4b['status'](0x191)[_0x57bcdb(0x17b)]({'error':_0x57bcdb(0x13f)});const _0x1c6902=_0x57bcdb(0x195),_0x289cf2={..._0x1af982['body'],'apiKey':_0x5a77c2,..._0x710d80&&{'vendorApiKey':_0x710d80}},_0x30bdbf={'method':_0x57bcdb(0x143),'headers':{'Content-Type':'application/json','Authorization':_0x57bcdb(0x110)+_0x5a77c2},'body':JSON['stringify'](_0x289cf2)};this[_0x57bcdb(0x15c)]['info']('Proxying\x20chat\x20request\x20to\x20Loxia\x20Azure\x20backend',{'url':_0x1c6902,'model':_0x1af982[_0x57bcdb(0x120)][_0x57bcdb(0x11c)],'hasApiKey':!!_0x5a77c2});const _0x31cd80=await fetch(_0x1c6902,_0x30bdbf);if(_0x31cd80['ok']){const _0x58583c=await _0x31cd80[_0x57bcdb(0x17b)]();this['logger'][_0x57bcdb(0x1b8)]('Successfully received response from Azure backend',{'model':_0x58583c[_0x57bcdb(0x11c)],'contentLength':_0x58583c['content']?.['length']||0x0}),_0x103b4b[_0x57bcdb(0x17b)](_0x58583c);}else{const _0x4b3fa2=await _0x31cd80['text']();this[_0x57bcdb(0x15c)]['warn'](_0x57bcdb(0x18b),{'status':_0x31cd80['status'],'statusText':_0x31cd80['statusText'],'error':_0x4b3fa2}),_0x103b4b['status'](_0x31cd80['status'])['json']({'error':'Azure\x20backend\x20error:\x20'+_0x31cd80[_0x57bcdb(0x1c3)]+'\x20'+_0x31cd80[_0x57bcdb(0x178)],'details':_0x4b3fa2});}}catch(_0x5e9ad0){this['logger']['error'](_0x57bcdb(0x1d3),{'error':_0x5e9ad0['message'],'stack':_0x5e9ad0['stack']}),_0x103b4b['status'](0x1f4)[_0x57bcdb(0x17b)]({'error':'Failed\x20to\x20connect\x20to\x20AI\x20service','details':_0x5e9ad0['message']});}}),this[_0x53134c(0x140)][_0x53134c(0x162)](_0x53134c(0x1f0),async(_0x302f1c,_0xe47f1b)=>{const _0x2f669e=_0x53134c;try{const _0x35e6ad=_0x302f1c['headers'][_0x2f669e(0x1e2)];let _0x3011f9=null;_0x35e6ad&&_0x35e6ad[_0x2f669e(0x1a0)](_0x2f669e(0x110))&&(_0x3011f9=_0x35e6ad['substring'](0x7));!_0x3011f9&&(_0x3011f9=this[_0x2f669e(0x1b9)]['loxiaApiKey']||process[_0x2f669e(0x15e)][_0x2f669e(0x157)]);const _0x5d6613='https://autopilot-api.azurewebsites.net/llm/models',_0x781920={'method':'GET','headers':{'Content-Type':_0x2f669e(0x16a),..._0x3011f9&&{'Authorization':_0x2f669e(0x110)+_0x3011f9}}};this[_0x2f669e(0x15c)]['info']('Fetching models from Loxia Azure backend',{'url':_0x5d6613,'hasApiKey':!!_0x3011f9});const _0x4294b7=await fetch(_0x5d6613,_0x781920);if(_0x4294b7['ok']){const _0x43e2c7=await _0x4294b7['json']();this['logger'][_0x2f669e(0x1b8)]('Successfully fetched models from Azure backend',{'modelCount':_0x43e2c7[_0x2f669e(0x18c)]?.[_0x2f669e(0x194)]||0x0}),_0xe47f1b['json'](_0x43e2c7);}else{const _0x13b8bf=await _0x4294b7[_0x2f669e(0x10f)]();this['logger']['error']('Azure\x20backend\x20request\x20failed\x20-\x20NO\x20FALLBACK\x20AVAILABLE',{'status':_0x4294b7['status'],'statusText':_0x4294b7[_0x2f669e(0x178)],'error':_0x13b8bf}),_0xe47f1b['status'](_0x4294b7['status'])[_0x2f669e(0x17b)]({'success':![],'error':_0x2f669e(0x102)+_0x4294b7[_0x2f669e(0x1c3)]+'\x20'+_0x4294b7[_0x2f669e(0x178)],'details':_0x13b8bf});}}catch(_0x3e4022){this[_0x2f669e(0x15c)]['error']('Failed to fetch models from Azure backend - NO FALLBACK',{'error':_0x3e4022[_0x2f669e(0x159)],'stack':_0x3e4022['stack']}),_0xe47f1b['status'](0x1f4)[_0x2f669e(0x17b)]({'success':![],'error':'Failed to fetch models from backend','details':_0x3e4022[_0x2f669e(0x159)]});}}),this[_0x53134c(0x140)]['get']('/api/tools',async(_0x3edd30,_0x219c13)=>{const _0x48fc58=_0x53134c;try{const _0x1e191d=this[_0x48fc58(0x1eb)];if(!_0x1e191d)return _0x219c13['status'](0x1f4)['json']({'error':_0x48fc58(0x11f)});const _0x2e07e6=_0x1e191d[_0x48fc58(0x193)]();this[_0x48fc58(0x15c)][_0x48fc58(0x1b8)](_0x48fc58(0x16f),{'toolCount':_0x2e07e6['length'],'tools':_0x2e07e6[_0x48fc58(0x1d2)](_0x3871a3=>({'id':_0x3871a3['id'],'name':_0x3871a3[_0x48fc58(0x1c8)],'category':_0x3871a3[_0x48fc58(0x1af)]}))}),_0x219c13[_0x48fc58(0x17b)]({'success':!![],'tools':_0x2e07e6,'total':_0x2e07e6['length']});}catch(_0x48f51c){this['logger'][_0x48fc58(0x1a3)]('Failed\x20to\x20get\x20tools\x20information',{'error':_0x48f51c['message'],'stack':_0x48f51c['stack']}),_0x219c13[_0x48fc58(0x1c3)](0x1f4)[_0x48fc58(0x17b)]({'error':'Failed\x20to\x20retrieve\x20tools\x20information','message':_0x48f51c['message']});}}),this['app']['post'](_0x53134c(0x1e5),async(_0x52b4c4,_0x567162)=>{const _0xa2d741=_0x53134c;try{const {sessionId:_0x26beef,loxiaApiKey:_0x4efcc8,vendorKeys:_0x24fe8a}=_0x52b4c4[_0xa2d741(0x120)];if(!_0x26beef)return _0x567162['status'](0x190)['json']({'success':![],'error':_0xa2d741(0x1da)});if(!this['apiKeyManager'])return _0x567162[_0xa2d741(0x1c3)](0x1f4)[_0xa2d741(0x17b)]({'success':![],'error':_0xa2d741(0x132)});this[_0xa2d741(0x139)]['setSessionKeys'](_0x26beef,{'loxiaApiKey':_0x4efcc8,'vendorKeys':_0x24fe8a||{}}),this['logger'][_0xa2d741(0x1b8)]('API\x20keys\x20updated\x20for\x20session',{'sessionId':_0x26beef,'hasLoxiaKey':!!_0x4efcc8,'vendorKeys':Object['keys'](_0x24fe8a||{})});if(this['orchestrator']&&this['orchestrator'][_0xa2d741(0x186)]&&_0x4efcc8)try{await this[_0xa2d741(0x1ad)][_0xa2d741(0x186)]['refresh']({'sessionId':_0x26beef,'apiKey':_0x4efcc8}),this[_0xa2d741(0x15c)][_0xa2d741(0x1b8)]('Models\x20refreshed\x20with\x20new\x20API\x20key',{'sessionId':_0x26beef});}catch(_0x891c17){this[_0xa2d741(0x15c)][_0xa2d741(0x172)]('Failed\x20to\x20refresh\x20models\x20after\x20API\x20key\x20update',{'error':_0x891c17['message'],'sessionId':_0x26beef});}_0x567162['json']({'success':!![],'message':'API\x20keys\x20updated\x20successfully','sessionId':_0x26beef,'hasLoxiaKey':!!_0x4efcc8,'vendorKeys':Object['keys'](_0x24fe8a||{})});}catch(_0x520e02){this['logger']['error'](_0xa2d741(0x17f),{'error':_0x520e02[_0xa2d741(0x159)],'sessionId':_0x52b4c4['body'][_0xa2d741(0x146)]}),_0x567162[_0xa2d741(0x1c3)](0x1f4)['json']({'success':![],'error':_0x520e02['message']});}}),this[_0x53134c(0x140)]['get'](_0x53134c(0x1c6),async(_0x1c3433,_0xeafe1b)=>{const _0x4b44a8=_0x53134c;try{const {sessionId:_0x25f4a6}=_0x1c3433['params'];if(!this['apiKeyManager'])return _0xeafe1b['status'](0x1f4)['json']({'success':![],'error':_0x4b44a8(0x132)});const _0x4ee01d=this['apiKeyManager'][_0x4b44a8(0x1d4)](_0x25f4a6);_0xeafe1b[_0x4b44a8(0x17b)]({'success':!![],'sessionId':_0x25f4a6,'hasLoxiaKey':!!_0x4ee01d['loxiaApiKey'],'vendorKeys':Object[_0x4b44a8(0x1cf)](_0x4ee01d['vendorKeys']||{}),'updatedAt':_0x4ee01d[_0x4b44a8(0x11b)]});}catch(_0x4ac469){this[_0x4b44a8(0x15c)]['error'](_0x4b44a8(0x1a9),{'error':_0x4ac469['message'],'sessionId':_0x1c3433[_0x4b44a8(0x11e)]['sessionId']}),_0xeafe1b[_0x4b44a8(0x1c3)](0x1f4)[_0x4b44a8(0x17b)]({'success':![],'error':_0x4ac469['message']});}}),this[_0x53134c(0x140)]['delete'](_0x53134c(0x1c6),async(_0x2b0361,_0x4e4792)=>{const _0x38f8f3=_0x53134c;try{const {sessionId:_0x49b840}=_0x2b0361[_0x38f8f3(0x11e)];if(!this[_0x38f8f3(0x139)])return _0x4e4792['status'](0x1f4)[_0x38f8f3(0x17b)]({'success':![],'error':_0x38f8f3(0x132)});const _0x110780=this['apiKeyManager']['removeSessionKeys'](_0x49b840);_0x4e4792[_0x38f8f3(0x17b)]({'success':!![],'removed':_0x110780,'message':_0x110780?'API\x20keys\x20removed\x20successfully':_0x38f8f3(0x15f)});}catch(_0x2b70cb){this['logger'][_0x38f8f3(0x1a3)](_0x38f8f3(0x1f1),{'error':_0x2b70cb['message'],'sessionId':_0x2b0361[_0x38f8f3(0x11e)]['sessionId']}),_0x4e4792['status'](0x1f4)[_0x38f8f3(0x17b)]({'success':![],'error':_0x2b70cb['message']});}}),this[_0x53134c(0x140)][_0x53134c(0x162)](_0x53134c(0x1e5),async(_0x187542,_0x448547)=>{const _0x34d8be=_0x53134c;try{if(!this[_0x34d8be(0x139)])return _0x448547[_0x34d8be(0x1c3)](0x1f4)[_0x34d8be(0x17b)]({'success':![],'error':_0x34d8be(0x132)});const _0x553aa8=this[_0x34d8be(0x139)]['getActiveSessions']();_0x448547['json']({'success':!![],'sessions':_0x553aa8,'total':_0x553aa8['length']});}catch(_0x31986f){this['logger']['error']('Failed\x20to\x20get\x20active\x20sessions',{'error':_0x31986f[_0x34d8be(0x159)]}),_0x448547[_0x34d8be(0x1c3)](0x1f4)[_0x34d8be(0x17b)]({'success':![],'error':_0x31986f['message']});}}),this[_0x53134c(0x140)]['post']('/api/agents/:agentId/attachments/upload',async(_0x596884,_0x295097)=>{const _0x5a5a75=_0x53134c;try{const {agentId:_0x41d480}=_0x596884[_0x5a5a75(0x11e)],{filePath:_0xdbb2f5,mode:_0x1eec06,fileName:_0x956d4a}=_0x596884[_0x5a5a75(0x120)];if(!this[_0x5a5a75(0x1ad)]?.['fileAttachmentService'])return _0x295097[_0x5a5a75(0x1c3)](0x1f4)[_0x5a5a75(0x17b)]({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x53038e=await this[_0x5a5a75(0x1ad)][_0x5a5a75(0x158)][_0x5a5a75(0x161)]({'agentId':_0x41d480,'filePath':_0xdbb2f5,'mode':_0x1eec06||_0x5a5a75(0x19c),'fileName':_0x956d4a});this['logger'][_0x5a5a75(0x1b8)](_0x5a5a75(0x1fe),{'agentId':_0x41d480,'fileId':_0x53038e[_0x5a5a75(0x12d)],'fileName':_0x53038e['fileName']}),_0x295097[_0x5a5a75(0x17b)]({'success':!![],'attachment':_0x53038e});}catch(_0x407a6e){this[_0x5a5a75(0x15c)]['error']('Failed\x20to\x20upload\x20file\x20attachment',{'agentId':_0x596884[_0x5a5a75(0x11e)]['agentId'],'error':_0x407a6e[_0x5a5a75(0x159)]}),_0x295097[_0x5a5a75(0x1c3)](0x1f4)['json']({'success':![],'error':_0x407a6e['message']});}}),this[_0x53134c(0x140)]['get'](_0x53134c(0x1ac),async(_0x202f03,_0x1ca81b)=>{const _0xb81804=_0x53134c;try{const {agentId:_0x173d5e}=_0x202f03['params'],{mode:_0x2481bd,active:_0x202fee}=_0x202f03[_0xb81804(0x1cc)];if(!this[_0xb81804(0x1ad)]?.['fileAttachmentService'])return _0x1ca81b[_0xb81804(0x1c3)](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x1985a5={};if(_0x2481bd)_0x1985a5[_0xb81804(0x1ba)]=_0x2481bd;if(_0x202fee!==undefined)_0x1985a5[_0xb81804(0x156)]=_0x202fee==='true';const _0xdb53cd=await this[_0xb81804(0x1ad)]['fileAttachmentService']['getAttachments'](_0x173d5e,_0x1985a5);_0x1ca81b[_0xb81804(0x17b)]({'success':!![],'attachments':_0xdb53cd,'total':_0xdb53cd[_0xb81804(0x194)]});}catch(_0x54a481){this['logger'][_0xb81804(0x1a3)]('Failed\x20to\x20get\x20attachments',{'agentId':_0x202f03[_0xb81804(0x11e)][_0xb81804(0x1de)],'error':_0x54a481['message']}),_0x1ca81b['status'](0x1f4)[_0xb81804(0x17b)]({'success':![],'error':_0x54a481['message']});}}),this[_0x53134c(0x140)][_0x53134c(0x162)]('/api/attachments/:fileId',async(_0x47cc15,_0x578701)=>{const _0x5b415a=_0x53134c;try{const {fileId:_0x2274ef}=_0x47cc15[_0x5b415a(0x11e)];if(!this[_0x5b415a(0x1ad)]?.['fileAttachmentService'])return _0x578701['status'](0x1f4)[_0x5b415a(0x17b)]({'success':![],'error':_0x5b415a(0x14a)});const _0x5dbaa1=await this[_0x5b415a(0x1ad)][_0x5b415a(0x158)][_0x5b415a(0x199)](_0x2274ef);if(!_0x5dbaa1)return _0x578701['status'](0x194)['json']({'success':![],'error':_0x5b415a(0x160)});_0x578701[_0x5b415a(0x17b)]({'success':!![],'attachment':_0x5dbaa1});}catch(_0x380994){this['logger'][_0x5b415a(0x1a3)](_0x5b415a(0x150),{'fileId':_0x47cc15['params'][_0x5b415a(0x12d)],'error':_0x380994[_0x5b415a(0x159)]}),_0x578701['status'](0x1f4)[_0x5b415a(0x17b)]({'success':![],'error':_0x380994['message']});}}),this['app'][_0x53134c(0x15a)](_0x53134c(0x1b2),async(_0x5ea830,_0x192ac6)=>{const _0x87b75f=_0x53134c;try{const {fileId:_0x39306b}=_0x5ea830['params'];if(!this[_0x87b75f(0x1ad)]?.[_0x87b75f(0x158)])return _0x192ac6['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x2b7093=await this['orchestrator'][_0x87b75f(0x158)][_0x87b75f(0x1e3)](_0x39306b);this['logger']['info'](_0x87b75f(0x12b),{'fileId':_0x39306b,'active':_0x2b7093[_0x87b75f(0x156)]}),_0x192ac6['json']({'success':!![],'attachment':_0x2b7093});}catch(_0x36d1b2){this[_0x87b75f(0x15c)][_0x87b75f(0x1a3)]('Failed\x20to\x20toggle\x20attachment',{'fileId':_0x5ea830['params']['fileId'],'error':_0x36d1b2[_0x87b75f(0x159)]}),_0x192ac6['status'](0x1f4)[_0x87b75f(0x17b)]({'success':![],'error':_0x36d1b2[_0x87b75f(0x159)]});}}),this[_0x53134c(0x140)]['patch'](_0x53134c(0x1d8),async(_0xb8beeb,_0x550171)=>{const _0x24aa01=_0x53134c;try{const {fileId:_0x37e63b}=_0xb8beeb['params'],{mode:_0x73a439,active:_0x378258}=_0xb8beeb['body'];if(!this['orchestrator']?.[_0x24aa01(0x158)])return _0x550171['status'](0x1f4)[_0x24aa01(0x17b)]({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x663970={};if(_0x73a439!==undefined)_0x663970[_0x24aa01(0x1ba)]=_0x73a439;if(_0x378258!==undefined)_0x663970[_0x24aa01(0x156)]=_0x378258;const _0x56e8d6=await this['orchestrator']['fileAttachmentService'][_0x24aa01(0x149)](_0x37e63b,_0x663970);this[_0x24aa01(0x15c)][_0x24aa01(0x1b8)]('Attachment\x20updated',{'fileId':_0x37e63b,'updates':_0x663970}),_0x550171[_0x24aa01(0x17b)]({'success':!![],'attachment':_0x56e8d6});}catch(_0x482a27){this['logger'][_0x24aa01(0x1a3)]('Failed\x20to\x20update\x20attachment',{'fileId':_0xb8beeb[_0x24aa01(0x11e)][_0x24aa01(0x12d)],'error':_0x482a27['message']}),_0x550171[_0x24aa01(0x1c3)](0x1f4)['json']({'success':![],'error':_0x482a27['message']});}}),this['app'][_0x53134c(0x147)](_0x53134c(0x1d8),async(_0x5041f1,_0x58a658)=>{const _0x559847=_0x53134c;try{const {fileId:_0x2e7548}=_0x5041f1[_0x559847(0x11e)],{agentId:_0x5f3ce7}=_0x5041f1[_0x559847(0x1cc)];if(!_0x5f3ce7)return _0x58a658['status'](0x190)[_0x559847(0x17b)]({'success':![],'error':'agentId\x20query\x20parameter\x20is\x20required'});if(!this['orchestrator']?.['fileAttachmentService'])return _0x58a658['status'](0x1f4)[_0x559847(0x17b)]({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x3ec559=await this[_0x559847(0x1ad)][_0x559847(0x158)]['deleteAttachment'](_0x2e7548,_0x5f3ce7);this[_0x559847(0x15c)][_0x559847(0x1b8)](_0x559847(0x115),{'fileId':_0x2e7548,'agentId':_0x5f3ce7,'physicallyDeleted':_0x3ec559[_0x559847(0x100)]}),_0x58a658['json']({'success':!![],'message':_0x3ec559[_0x559847(0x100)]?'Attachment\x20deleted':'Reference\x20removed','physicallyDeleted':_0x3ec559[_0x559847(0x100)]});}catch(_0x337189){this['logger'][_0x559847(0x1a3)](_0x559847(0x17d),{'fileId':_0x5041f1[_0x559847(0x11e)]['fileId'],'error':_0x337189['message']}),_0x58a658['status'](0x1f4)['json']({'success':![],'error':_0x337189[_0x559847(0x159)]});}}),this['app']['post']('/api/attachments/:fileId/import',async(_0x121570,_0x3d1894)=>{const _0x5b0c82=_0x53134c;try{const {fileId:_0x2aecb2}=_0x121570[_0x5b0c82(0x11e)],{targetAgentId:_0x4743a8}=_0x121570['body'];if(!_0x4743a8)return _0x3d1894['status'](0x190)['json']({'success':![],'error':'targetAgentId\x20is\x20required'});if(!this['orchestrator']?.[_0x5b0c82(0x158)])return _0x3d1894['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0xe6c272=await this['orchestrator'][_0x5b0c82(0x158)][_0x5b0c82(0x191)](_0x2aecb2,_0x4743a8);this['logger'][_0x5b0c82(0x1b8)]('Attachment imported',{'fileId':_0x2aecb2,'targetAgentId':_0x4743a8}),_0x3d1894[_0x5b0c82(0x17b)]({'success':!![],'attachment':_0xe6c272});}catch(_0x51737f){this['logger'][_0x5b0c82(0x1a3)]('Failed to import attachment',{'fileId':_0x121570['params']['fileId'],'error':_0x51737f[_0x5b0c82(0x159)]}),_0x3d1894['status'](0x1f4)['json']({'success':![],'error':_0x51737f['message']});}}),this[_0x53134c(0x140)][_0x53134c(0x162)]('/api/attachments/:fileId/preview',async(_0x32b4e6,_0x53138a)=>{const _0x36eefc=_0x53134c;try{const {fileId:_0x1a5c39}=_0x32b4e6[_0x36eefc(0x11e)];if(!this['orchestrator']?.['fileAttachmentService'])return _0x53138a['status'](0x1f4)['json']({'success':![],'error':'File\x20attachment\x20service\x20not\x20available'});const _0x1dae1d=await this[_0x36eefc(0x1ad)]['fileAttachmentService']['getAttachmentPreview'](_0x1a5c39);if(!_0x1dae1d)return _0x53138a['status'](0x194)[_0x36eefc(0x17b)]({'success':![],'error':_0x36eefc(0x160)});_0x53138a['json']({'success':!![],'preview':_0x1dae1d});}catch(_0x226461){this[_0x36eefc(0x15c)][_0x36eefc(0x1a3)]('Failed\x20to\x20get\x20attachment\x20preview',{'fileId':_0x32b4e6['params'][_0x36eefc(0x12d)],'error':_0x226461[_0x36eefc(0x159)]}),_0x53138a[_0x36eefc(0x1c3)](0x1f4)[_0x36eefc(0x17b)]({'success':![],'error':_0x226461[_0x36eefc(0x159)]});}}),this['app'][_0x53134c(0x162)](_0x53134c(0x189),async(_0x157943,_0x3f86af)=>{const _0x2afd08=_0x53134c;try{const {sessionId:_0x7c02f4,filename:_0x25b11e}=_0x157943[_0x2afd08(0x11e)],_0x1c2fbc=this['sessions']['get'](_0x7c02f4);if(!_0x1c2fbc)return _0x3f86af['status'](HTTP_STATUS['FORBIDDEN'])[_0x2afd08(0x17b)]({'success':![],'error':_0x2afd08(0x14d)});const _0x57a05e=a0_0x48bada['basename'](_0x25b11e);if(_0x57a05e!==_0x25b11e||_0x25b11e['includes']('..')||_0x25b11e['includes']('/')||_0x25b11e['includes']('\x5c'))return _0x3f86af['status'](HTTP_STATUS[_0x2afd08(0x16e)])['json']({'success':![],'error':'Invalid\x20filename'});let _0xfae216=null;const _0x2ca663=[a0_0x48bada[_0x2afd08(0x170)](_0x1c2fbc[_0x2afd08(0xfd)]||process['cwd'](),_0x2afd08(0x185),_0x57a05e),a0_0x48bada[_0x2afd08(0x170)](_0x2afd08(0x19d),_0x7c02f4,_0x57a05e),a0_0x48bada['join'](_0x2afd08(0x19d),_0x57a05e)];if(this['orchestrator']?.[_0x2afd08(0x113)])try{const _0x3bb32c=await this['orchestrator'][_0x2afd08(0x113)][_0x2afd08(0x19a)]();for(const _0x57d67d of _0x3bb32c){_0x57d67d['directoryAccess']?.['workingDirectory']&&_0x2ca663['push'](a0_0x48bada[_0x2afd08(0x170)](_0x57d67d['directoryAccess']['workingDirectory'],'images',_0x57a05e));}}catch(_0x59e345){this['logger'][_0x2afd08(0x172)]('Failed\x20to\x20get\x20agent\x20working\x20directories\x20for\x20image\x20search',{'error':_0x59e345['message']});}for(const _0x23d05a of _0x2ca663){try{const _0x547911=await a0_0x30df96[_0x2afd08(0x180)](_0x23d05a);if(_0x547911[_0x2afd08(0x165)]()){_0xfae216=_0x23d05a,this[_0x2afd08(0x15c)][_0x2afd08(0x1b8)]('Image\x20found',{'filename':_0x57a05e,'path':_0xfae216,'sessionId':_0x7c02f4});break;}}catch(_0x3c4d96){continue;}}if(!_0xfae216)return this[_0x2afd08(0x15c)]['warn']('Image\x20not\x20found\x20in\x20any\x20search\x20path',{'filename':_0x57a05e,'sessionId':_0x7c02f4,'searchPaths':_0x2ca663}),_0x3f86af['status'](HTTP_STATUS['NOT_FOUND'])[_0x2afd08(0x17b)]({'success':![],'error':'Image\x20not\x20found'});_0x3f86af[_0x2afd08(0x148)](_0xfae216,_0x55d89b=>{const _0x281a56=_0x2afd08;_0x55d89b?(this['logger'][_0x281a56(0x1a3)](_0x281a56(0x1fb),{'error':_0x55d89b['message'],'imagePath':_0xfae216,'filename':_0x57a05e}),!_0x3f86af[_0x281a56(0x1a2)]&&_0x3f86af[_0x281a56(0x1c3)](HTTP_STATUS['INTERNAL_SERVER_ERROR'])[_0x281a56(0x17b)]({'success':![],'error':'Failed\x20to\x20serve\x20image'})):this['logger']['info']('Image\x20served\x20successfully',{'filename':_0x57a05e,'path':_0xfae216,'sessionId':_0x7c02f4});});}catch(_0x5c1a03){this[_0x2afd08(0x15c)]['error'](_0x2afd08(0x19f),{'error':_0x5c1a03['message'],'sessionId':_0x157943['params']['sessionId'],'filename':_0x157943[_0x2afd08(0x11e)]['filename']}),_0x3f86af['status'](HTTP_STATUS['INTERNAL_SERVER_ERROR'])[_0x2afd08(0x17b)]({'success':![],'error':_0x5c1a03[_0x2afd08(0x159)]});}}),this[_0x53134c(0x140)]['post'](_0x53134c(0x136),async(_0x1bcb17,_0x5ce7b6)=>{const _0x3d5ab8=_0x53134c;try{const {agentId:_0x1987aa}=_0x1bcb17[_0x3d5ab8(0x11e)],{mode:_0xb446e6,lockMode:lockMode=![],sessionId:_0x412364}=_0x1bcb17[_0x3d5ab8(0x120)];if(!Object[_0x3d5ab8(0x114)](AGENT_MODES)[_0x3d5ab8(0x104)](_0xb446e6))return _0x5ce7b6['status'](0x190)[_0x3d5ab8(0x17b)]({'success':![],'error':'Invalid\x20mode.\x20Must\x20be\x20one\x20of:\x20'+Object[_0x3d5ab8(0x114)](AGENT_MODES)['join'](',\x20')});const _0x49cb2d=_0x412364||_0x1bcb17['sessionID'];!_0x49cb2d&&this[_0x3d5ab8(0x15c)][_0x3d5ab8(0x172)](_0x3d5ab8(0x177),{'agentId':_0x1987aa,'hasBodySessionId':!!_0x412364,'hasReqSessionId':!!_0x1bcb17['sessionID']});const _0x16be09={'interface':INTERFACE_TYPES[_0x3d5ab8(0xfa)],'sessionId':_0x49cb2d,'action':'update_agent','payload':{'agentId':_0x1987aa,'updates':{'mode':_0xb446e6}}},_0x24cb8d=await this[_0x3d5ab8(0x1ad)][_0x3d5ab8(0x17e)](_0x16be09);if(_0x24cb8d[_0x3d5ab8(0x1d7)]){const _0xa9515c=_0x24cb8d['data'];this[_0x3d5ab8(0x15c)][_0x3d5ab8(0x1b8)]('Agent\x20mode\x20updated:\x20'+_0x1987aa,{'newMode':_0xb446e6,'lockMode':lockMode,'finalMode':_0xa9515c?.[_0x3d5ab8(0x1ba)]}),this[_0x3d5ab8(0x15d)](_0x16be09[_0x3d5ab8(0x146)],{'type':_0x3d5ab8(0x1a7),'agentId':_0x1987aa,'mode':_0xa9515c?.[_0x3d5ab8(0x1ba)],'modeState':_0xa9515c?.['modeState']}),_0x5ce7b6[_0x3d5ab8(0x17b)]({'success':!![],'agent':_0xa9515c,'message':'Agent\x20mode\x20switched\x20to\x20'+_0xa9515c?.[_0x3d5ab8(0x1ba)]});}else _0x5ce7b6[_0x3d5ab8(0x1c3)](0x190)[_0x3d5ab8(0x17b)]({'success':![],'error':_0x24cb8d['error']||'Failed\x20to\x20update\x20agent\x20mode'});}catch(_0x22a82d){this['logger'][_0x3d5ab8(0x1a3)](_0x3d5ab8(0x111),{'agentId':_0x1bcb17['params']['agentId'],'error':_0x22a82d['message']}),_0x5ce7b6[_0x3d5ab8(0x1c3)](0x1f4)[_0x3d5ab8(0x17b)]({'success':![],'error':_0x22a82d[_0x3d5ab8(0x159)]});}}),this[_0x53134c(0x140)]['post']('/api/agents/:agentId/stop',async(_0x3bfa76,_0x1defac)=>{const _0x1c7fd9=_0x53134c;try{const {agentId:_0x5bf324}=_0x3bfa76['params'],_0x2fedb3=this['orchestrator']['messageProcessor'];if(!_0x2fedb3)return _0x1defac['status'](0x1f4)['json']({'success':![],'error':'Message\x20processor\x20not\x20available'});const _0x24fd4c=await _0x2fedb3[_0x1c7fd9(0x1ec)](_0x5bf324);this[_0x1c7fd9(0x15c)][_0x1c7fd9(0x1b8)]('Autonomous\x20execution\x20stop\x20requested:\x20'+_0x5bf324);const _0x3a795a=_0x3bfa76['sessionID']||_0x24fd4c['agent']?.[_0x1c7fd9(0x146)];_0x3a795a&&this['broadcastToSession'](_0x3a795a,{'type':_0x1c7fd9(0x1a7),'agentId':_0x5bf324,'mode':_0x24fd4c[_0x1c7fd9(0x1a4)]?.[_0x1c7fd9(0x1ba)],'modeState':_0x24fd4c['agent']?.[_0x1c7fd9(0x105)]}),_0x1defac['json'](_0x24fd4c);}catch(_0xfe924a){this['logger'][_0x1c7fd9(0x1a3)](_0x1c7fd9(0x182),{'agentId':_0x3bfa76['params']['agentId'],'error':_0xfe924a[_0x1c7fd9(0x159)]}),_0x1defac['status'](0x1f4)[_0x1c7fd9(0x17b)]({'success':![],'error':_0xfe924a[_0x1c7fd9(0x159)]});}}),this[_0x53134c(0x140)]['get']('/api/agents/:agentId/mode',async(_0xfc16ee,_0xbd73b4)=>{const _0x24ba94=_0x53134c;try{const {agentId:_0x34fae8}=_0xfc16ee['params'],_0x754952={'interface':INTERFACE_TYPES[_0x24ba94(0xfa)],'sessionId':_0xfc16ee['sessionID'],'action':_0x24ba94(0x1c7),'payload':{'agentId':_0x34fae8}},_0x6bb98f=await this[_0x24ba94(0x1ad)][_0x24ba94(0x17e)](_0x754952);_0x6bb98f[_0x24ba94(0x1d7)]&&_0x6bb98f['agent']?_0xbd73b4['json']({'success':!![],'mode':_0x6bb98f['agent'][_0x24ba94(0x1ba)],'modeState':_0x6bb98f[_0x24ba94(0x1a4)][_0x24ba94(0x105)],'currentTask':_0x6bb98f['agent'][_0x24ba94(0x1b1)],'iterationCount':_0x6bb98f[_0x24ba94(0x1a4)]['iterationCount'],'taskStartTime':_0x6bb98f[_0x24ba94(0x1a4)][_0x24ba94(0x128)],'stopRequested':_0x6bb98f['agent'][_0x24ba94(0x152)]}):_0xbd73b4[_0x24ba94(0x1c3)](0x194)[_0x24ba94(0x17b)]({'success':![],'error':_0x24ba94(0x154)});}catch(_0xf25727){this[_0x24ba94(0x15c)][_0x24ba94(0x1a3)](_0x24ba94(0x107),{'agentId':_0xfc16ee[_0x24ba94(0x11e)][_0x24ba94(0x1de)],'error':_0xf25727[_0x24ba94(0x159)]}),_0xbd73b4['status'](0x1f4)['json']({'success':![],'error':_0xf25727[_0x24ba94(0x159)]});}}),this['app'][_0x53134c(0x162)](_0x53134c(0x173),async(_0x53130b,_0xdc7d40)=>{const _0x522499=_0x53134c;try{const _0x5d84dd=this[_0x522499(0x1ad)][_0x522499(0x1b9)]['project']?.['directory']||process['cwd'](),_0x201bf2=await this['orchestrator']['stateManager']['getAllAvailableAgents'](_0x5d84dd,this[_0x522499(0x1ad)][_0x522499(0x113)]);_0xdc7d40[_0x522499(0x17b)]({'success':!![],'agents':_0x201bf2,'total':_0x201bf2['length'],'active':_0x201bf2['filter'](_0x197362=>_0x197362[_0x522499(0x13d)])['length'],'archived':_0x201bf2['filter'](_0x567ed4=>!_0x567ed4[_0x522499(0x13d)])[_0x522499(0x194)]});}catch(_0x297f66){this['logger']['error']('Failed\x20to\x20get\x20available\x20agents',{'error':_0x297f66[_0x522499(0x159)],'stack':_0x297f66['stack']}),_0xdc7d40[_0x522499(0x1c3)](0x1f4)[_0x522499(0x17b)]({'success':![],'error':_0x297f66[_0x522499(0x159)]});}}),this['app']['get'](_0x53134c(0x13e),async(_0x455c60,_0x38142e)=>{const _0x1e4eb1=_0x53134c;try{const {agentId:_0x8b7974}=_0x455c60[_0x1e4eb1(0x11e)],_0x37ca0a=this['orchestrator']['config'][_0x1e4eb1(0x1aa)]?.[_0x1e4eb1(0x18e)]||process[_0x1e4eb1(0x1ae)](),_0x14583d=await this['orchestrator'][_0x1e4eb1(0x1f5)]['getAgentMetadata'](_0x8b7974,_0x37ca0a);_0x38142e[_0x1e4eb1(0x17b)]({'success':!![],'metadata':_0x14583d});}catch(_0x57b06a){this['logger']['error'](_0x1e4eb1(0x171),{'agentId':_0x455c60['params']['agentId'],'error':_0x57b06a[_0x1e4eb1(0x159)]}),_0x38142e['status'](0x194)['json']({'success':![],'error':_0x57b06a[_0x1e4eb1(0x159)]});}}),this[_0x53134c(0x140)][_0x53134c(0x179)]('/api/agents/import',async(_0x329d51,_0x44258d)=>{const _0xaf342f=_0x53134c;try{const {agentId:_0x51d1be}=_0x329d51[_0xaf342f(0x120)];if(!_0x51d1be)return _0x44258d['status'](0x190)['json']({'success':![],'error':_0xaf342f(0x164)});const _0xeee4e5=this[_0xaf342f(0x1ad)]['config']['project']?.['directory']||process[_0xaf342f(0x1ae)](),_0x50fabd=await this['orchestrator']['stateManager']['importArchivedAgent'](_0x51d1be,_0xeee4e5,this[_0xaf342f(0x1ad)]['agentPool']);this[_0xaf342f(0x14c)]&&this[_0xaf342f(0x14c)][_0xaf342f(0x119)]({'type':'agent-imported','agent':{'id':_0x50fabd['id'],'name':_0x50fabd['name'],'status':_0x50fabd[_0xaf342f(0x1c3)],'capabilities':_0x50fabd[_0xaf342f(0x16c)],'model':_0x50fabd[_0xaf342f(0x1f2)]||_0x50fabd[_0xaf342f(0x14b)]}}),this['logger']['info']('Agent imported successfully',{'agentId':_0x50fabd['id'],'name':_0x50fabd['name']}),_0x44258d['json']({'success':!![],'agent':{'id':_0x50fabd['id'],'name':_0x50fabd['name'],'status':_0x50fabd[_0xaf342f(0x1c3)],'model':_0x50fabd[_0xaf342f(0x1f2)]||_0x50fabd['preferredModel'],'capabilities':_0x50fabd['capabilities'],'lastActivity':_0x50fabd[_0xaf342f(0x1bf)]},'message':'Agent\x20'+_0x50fabd[_0xaf342f(0x1c8)]+_0xaf342f(0x1a1)});}catch(_0x3cfc31){this[_0xaf342f(0x15c)][_0xaf342f(0x1a3)]('Failed to import agent',{'agentId':_0x329d51['body']['agentId'],'error':_0x3cfc31[_0xaf342f(0x159)],'stack':_0x3cfc31['stack']});const _0x3e5cc8=_0x3cfc31['message'][_0xaf342f(0x104)](_0xaf342f(0x101))?0x199:_0x3cfc31[_0xaf342f(0x159)]['includes']('not\x20found')?0x194:_0x3cfc31['message']['includes'](_0xaf342f(0x1ce))?0x190:0x1f4;_0x44258d[_0xaf342f(0x1c3)](_0x3e5cc8)[_0xaf342f(0x17b)]({'success':![],'error':_0x3cfc31[_0xaf342f(0x159)]});}}),this[_0x53134c(0x140)]['get']('*',(_0x48d0e9,_0xfbce2a)=>{const _0x2c1f45=_0x53134c,_0x2a2276=a0_0x48bada[_0x2c1f45(0x170)](__dirname,'../../web-ui/build/index.html');_0xfbce2a[_0x2c1f45(0x148)](_0x2a2276,_0x442c74=>{const _0x1300c7=_0x2c1f45;_0x442c74&&_0xfbce2a['status'](HTTP_STATUS['NOT_FOUND'])[_0x1300c7(0x176)]('Web\x20UI\x20not\x20built.\x20Run:\x20npm\x20run\x20build:ui');});});}['setupWebSocket'](){const _0x3fda88=a0_0x14a8a3;this['logger']['info'](_0x3fda88(0x1e6),{'port':this[_0x3fda88(0x184)],'host':this['host'],'wsServerExists':!!this[_0x3fda88(0x1f3)],'httpServerExists':!!this[_0x3fda88(0x174)]}),this['wss']['on'](_0x3fda88(0x1a3),_0x10e920=>{const _0x3c59b6=_0x3fda88;this['logger']['error']('WebSocket\x20server\x20error:',{'error':_0x10e920[_0x3c59b6(0x159)],'stack':_0x10e920[_0x3c59b6(0x169)],'port':this['port']});}),this['wss']['on']('listening',()=>{this['logger']['info']('WebSocket\x20server\x20is\x20now\x20listening',{'port':this['port'],'host':this['host']});}),this['wss']['on'](_0x3fda88(0x1d0),(_0x101d6e,_0xff6b82)=>{const _0x482fe3=_0x3fda88,_0x10e844=_0x482fe3(0x109)+Date['now']()+'-'+Math[_0x482fe3(0x127)]()['toString'](0x24)['substr'](0x2,0x9);this[_0x482fe3(0x15c)]['info'](_0x482fe3(0x1a8),{'connectionId':_0x10e844,'ip':_0xff6b82[_0x482fe3(0x1c9)][_0x482fe3(0x175)],'origin':_0xff6b82['headers'][_0x482fe3(0x103)],'host':_0xff6b82['headers'][_0x482fe3(0x197)],'userAgent':_0xff6b82[_0x482fe3(0x10a)]['user-agent'],'url':_0xff6b82[_0x482fe3(0x17a)]});const _0x34878c={'id':_0x10e844,'ws':_0x101d6e,'sessionId':null,'connectedAt':new Date()['toISOString'](),'lastActivity':new Date()[_0x482fe3(0x1f8)]()};this[_0x482fe3(0x123)]['set'](_0x10e844,_0x34878c),_0x101d6e['on']('message',async _0x2305ff=>{const _0x200342=_0x482fe3;try{const _0x189eeb=JSON['parse'](_0x2305ff['toString']());await this[_0x200342(0x13b)](_0x10e844,_0x189eeb);}catch(_0xf919a8){this['logger'][_0x200342(0x1a3)]('WebSocket\x20message\x20error',{'connectionId':_0x10e844,'error':_0xf919a8[_0x200342(0x159)]}),_0x101d6e['send'](JSON[_0x200342(0x14e)]({'type':'error','error':_0xf919a8[_0x200342(0x159)]}));}}),_0x101d6e['on']('close',()=>{this['logger']['info']('WebSocket\x20connection\x20closed',{'connectionId':_0x10e844}),this['connections']['delete'](_0x10e844);}),_0x101d6e['send'](JSON['stringify']({'type':'connected','connectionId':_0x10e844,'timestamp':new Date()[_0x482fe3(0x1f8)]()}));});}async['handleWebSocketMessage'](_0x518370,_0x1ccf26){const _0x28cf9f=a0_0x14a8a3,_0x537bba=this[_0x28cf9f(0x123)][_0x28cf9f(0x162)](_0x518370);if(!_0x537bba)return;_0x537bba[_0x28cf9f(0x1bf)]=new Date()[_0x28cf9f(0x1f8)]();switch(_0x1ccf26[_0x28cf9f(0x118)]){case'join_session':const _0x261c01=_0x1ccf26['sessionId'];_0x537bba['sessionId']=_0x261c01,this[_0x28cf9f(0x15c)]['info'](_0x28cf9f(0x190),{'connectionId':_0x518370,'sessionId':_0x261c01,'totalConnectionsForSession':Array['from'](this[_0x28cf9f(0x123)][_0x28cf9f(0x114)]())['filter'](_0x2399b5=>_0x2399b5[_0x28cf9f(0x146)]===_0x261c01)[_0x28cf9f(0x194)]}),_0x537bba['ws']['send'](JSON['stringify']({'type':'session_joined','sessionId':_0x261c01}));break;case _0x28cf9f(0x11a):_0x537bba['ws'][_0x28cf9f(0x176)](JSON[_0x28cf9f(0x14e)]({'type':_0x28cf9f(0x1cb),'timestamp':new Date()['toISOString']()}));break;case'orchestrator_request':try{const _0x26ca98={'interface':INTERFACE_TYPES[_0x28cf9f(0xfa)],'sessionId':_0x537bba['sessionId'],'action':_0x1ccf26[_0x28cf9f(0x1d9)],'payload':_0x1ccf26['payload'],'projectDir':_0x1ccf26['projectDir']||process[_0x28cf9f(0x1ae)]()},_0x1556ca=await this[_0x28cf9f(0x1ad)]['processRequest'](_0x26ca98);_0x537bba['ws']['send'](JSON['stringify']({'type':_0x28cf9f(0x1ee),'requestId':_0x1ccf26['requestId'],'response':_0x1556ca}));}catch(_0x1e22cf){_0x537bba['ws'][_0x28cf9f(0x176)](JSON[_0x28cf9f(0x14e)]({'type':_0x28cf9f(0x1a3),'requestId':_0x1ccf26['requestId'],'error':_0x1e22cf['message']}));}break;default:this[_0x28cf9f(0x15c)]['warn']('Unknown\x20WebSocket\x20message\x20type',{'connectionId':_0x518370,'type':_0x1ccf26[_0x28cf9f(0x118)]});}}[a0_0x14a8a3(0x15d)](_0x3bcc87,_0x3c5f5b){const _0xe7dcb2=a0_0x14a8a3,_0x47a3da=Array[_0xe7dcb2(0x1be)](this[_0xe7dcb2(0x123)][_0xe7dcb2(0x114)]())['filter'](_0x365969=>_0x365969[_0xe7dcb2(0x146)]===_0x3bcc87);let _0x1b3be0=[];_0x47a3da[_0xe7dcb2(0x194)]===0x0&&(_0x1b3be0=Array['from'](this['connections']['values']()),this['logger']?.['warn'](_0xe7dcb2(0x1d6),{'targetSessionId':_0x3bcc87,'totalConnections':this['connections']['size'],'allSessionIds':Array['from'](this['connections'][_0xe7dcb2(0x114)]())['map'](_0x3c4c02=>_0x3c4c02[_0xe7dcb2(0x146)])[_0xe7dcb2(0x196)](Boolean)}));const _0x5e5651=_0x47a3da['length']>0x0?_0x47a3da:_0x1b3be0;this[_0xe7dcb2(0x15c)]?.[_0xe7dcb2(0x1b8)](_0xe7dcb2(0x187),{'sessionId':_0x3bcc87,'messageType':_0x3c5f5b['type'],'agentId':_0x3c5f5b['agentId'],'totalConnections':this[_0xe7dcb2(0x123)][_0xe7dcb2(0x13a)],'sessionConnections':_0x47a3da[_0xe7dcb2(0x194)],'targetConnections':_0x5e5651[_0xe7dcb2(0x194)],'connectionIds':_0x5e5651['map'](_0x50193e=>_0x50193e['id']),'usingFallback':_0x47a3da[_0xe7dcb2(0x194)]===0x0,'messagePreview':_0x3c5f5b[_0xe7dcb2(0x118)]===_0xe7dcb2(0x183)&&_0x3c5f5b['message']?{'messageId':_0x3c5f5b[_0xe7dcb2(0x159)]['id'],'messageRole':_0x3c5f5b['message'][_0xe7dcb2(0x1db)],'contentLength':_0x3c5f5b['message']['content']?.['length'],'hasToolResults':!!_0x3c5f5b[_0xe7dcb2(0x159)][_0xe7dcb2(0x188)]}:undefined});for(const _0x197c7c of _0x5e5651){try{const _0x3205ec={..._0x3c5f5b,'timestamp':new Date()[_0xe7dcb2(0x1f8)]()};_0x197c7c['ws']['send'](JSON[_0xe7dcb2(0x14e)](_0x3205ec)),this[_0xe7dcb2(0x15c)]?.['info']('✅\x20WebSocket\x20message\x20sent\x20to\x20connection:',{'connectionId':_0x197c7c['id'],'messageType':_0x3c5f5b['type'],'agentId':_0x3c5f5b['agentId']});}catch(_0x2dde04){this[_0xe7dcb2(0x15c)][_0xe7dcb2(0x172)](_0xe7dcb2(0x1ab),{'connectionId':_0x197c7c['id'],'sessionId':_0x3bcc87,'messageType':_0x3c5f5b['type'],'error':_0x2dde04[_0xe7dcb2(0x159)]});}}}async['startServer'](){return new Promise((_0x3d01af,_0x4269ab)=>{const _0x1d2c12=a0_0x366e;this['server'][_0x1d2c12(0x18f)](this['port'],this[_0x1d2c12(0x197)],_0x50d2c7=>{const _0x5c00dc=_0x1d2c12;_0x50d2c7?(this['logger'][_0x5c00dc(0x1a3)](_0x5c00dc(0x131),{'error':_0x50d2c7['message'],'port':this[_0x5c00dc(0x184)],'host':this['host']}),_0x4269ab(_0x50d2c7)):(this['isRunning']=!![],this['logger'][_0x5c00dc(0x1b8)](_0x5c00dc(0x1b3),{'port':this[_0x5c00dc(0x184)],'host':this[_0x5c00dc(0x197)],'httpUrl':_0x5c00dc(0x106)+this['host']+':'+this[_0x5c00dc(0x184)],'wsUrl':_0x5c00dc(0x1f9)+this[_0x5c00dc(0x197)]+':'+this['port'],'wsServerAttached':!!this[_0x5c00dc(0x1f3)],'wsConnections':this['connections']['size']}),setTimeout(async()=>{await this['testWebSocketServer']();},0x3e8),_0x3d01af());}),this[_0x1d2c12(0x174)]['on']('error',_0x457d95=>{const _0x1f4a11=_0x1d2c12;this['logger'][_0x1f4a11(0x1a3)](_0x1f4a11(0x19b),{'error':_0x457d95[_0x1f4a11(0x159)],'stack':_0x457d95['stack'],'port':this[_0x1f4a11(0x184)]});});});}async['testWebSocketServer'](){const _0x51385b=a0_0x14a8a3;try{const {default:_0x78f7b3}=await import('ws'),_0x24fa69=new _0x78f7b3('ws://localhost:'+this['port']);_0x24fa69['on'](_0x51385b(0x16b),()=>{const _0x215949=_0x51385b;this[_0x215949(0x15c)]['info']('✅\x20WebSocket\x20server\x20test:\x20SUCCESSFUL',{'port':this[_0x215949(0x184)],'url':'ws://localhost:'+this['port']}),_0x24fa69['close']();}),_0x24fa69['on'](_0x51385b(0x1a3),_0x22cac1=>{const _0x3084d0=_0x51385b;this['logger'][_0x3084d0(0x1a3)]('❌\x20WebSocket\x20server\x20test:\x20FAILED',{'port':this[_0x3084d0(0x184)],'url':'ws://localhost:'+this['port'],'error':_0x22cac1[_0x3084d0(0x159)],'code':_0x22cac1[_0x3084d0(0x1d1)]});}),_0x24fa69['on'](_0x51385b(0x121),(_0x38a66f,_0x4e5a5a)=>{const _0x14c112=_0x51385b;_0x38a66f===0x3e8&&this[_0x14c112(0x15c)]['info'](_0x14c112(0x122));}),setTimeout(()=>{const _0x3aa44b=_0x51385b;_0x24fa69[_0x3aa44b(0x19e)]===_0x78f7b3[_0x3aa44b(0x1d5)]&&(this['logger'][_0x3aa44b(0x1a3)](_0x3aa44b(0x15b),{'port':this[_0x3aa44b(0x184)],'url':_0x3aa44b(0x1bc)+this[_0x3aa44b(0x184)],'readyState':_0x24fa69[_0x3aa44b(0x19e)]}),_0x24fa69[_0x3aa44b(0x10c)]());},0x1388);}catch(_0x151994){this['logger']['error']('❌\x20WebSocket\x20server\x20test:\x20EXCEPTION',{'error':_0x151994[_0x51385b(0x159)],'stack':_0x151994['stack']});}}[a0_0x14a8a3(0x126)](_0x57c284){const _0x338f41=a0_0x14a8a3;this[_0x338f41(0x139)]=_0x57c284,this['logger']?.[_0x338f41(0x1b8)](_0x338f41(0x12c),{'hasManager':!!_0x57c284});}['_getVendorFromModel'](_0x56a362){const _0x1e6b24=a0_0x14a8a3;if(!_0x56a362)return null;const _0x535121=_0x56a362[_0x1e6b24(0x144)]();if(_0x535121['includes']('anthropic')||_0x535121['includes']('claude'))return _0x1e6b24(0x14f);else{if(_0x535121['includes'](_0x1e6b24(0x1a5))||_0x535121['includes']('gpt'))return _0x1e6b24(0x1a5);else{if(_0x535121[_0x1e6b24(0x104)](_0x1e6b24(0x1b7)))return _0x1e6b24(0x1b7);else{if(_0x535121[_0x1e6b24(0x104)]('phi'))return'microsoft';}}}return null;}['getStatus'](){const _0x31f4b5=a0_0x14a8a3;return{'isRunning':this['isRunning'],'port':this['port'],'host':this['host'],'connections':this['connections'][_0x31f4b5(0x13a)],'sessions':this[_0x31f4b5(0x138)][_0x31f4b5(0x13a)],'url':'http://'+this[_0x31f4b5(0x197)]+':'+this[_0x31f4b5(0x184)]};}async[a0_0x14a8a3(0x137)](){const _0x1578f6=a0_0x14a8a3;if(!this[_0x1578f6(0x12e)])return;this[_0x1578f6(0x15c)][_0x1578f6(0x1b8)]('Shutting\x20down\x20web\x20server...');for(const _0xaaa80 of this['connections']['values']()){_0xaaa80['ws'][_0x1578f6(0x121)]();}return this['connections']['clear'](),this['wss']['close'](),new Promise(_0x8d574c=>{const _0x39376f=_0x1578f6;this[_0x39376f(0x174)][_0x39376f(0x121)](()=>{const _0x5de1d6=_0x39376f;this[_0x5de1d6(0x12e)]=![],this[_0x5de1d6(0x15c)]['info']('Web\x20server\x20shutdown\x20complete'),_0x8d574c();});});}}export default WebServer;if(import.meta.url==='file://'+process['argv'][0x1]){const simpleLogger={'info':(_0x21adf9,_0x4a1880)=>console[a0_0x14a8a3(0x1c2)]('[INFO]\x20'+_0x21adf9,_0x4a1880?JSON['stringify'](_0x4a1880,null,0x2):''),'error':(_0x485cc5,_0x4fe385)=>console[a0_0x14a8a3(0x1a3)](a0_0x14a8a3(0x192)+_0x485cc5,_0x4fe385?JSON[a0_0x14a8a3(0x14e)](_0x4fe385,null,0x2):''),'warn':(_0x4e4862,_0x3ba530)=>console['warn']('[WARN]\x20'+_0x4e4862,_0x3ba530?JSON['stringify'](_0x3ba530,null,0x2):''),'debug':(_0x3f3fbe,_0x4b439a)=>console['log'](a0_0x14a8a3(0x11d)+_0x3f3fbe,_0x4b439a?JSON[a0_0x14a8a3(0x14e)](_0x4b439a,null,0x2):'')},mockOrchestrator={'processAction':async(_0x2228bb,_0x19fdbf)=>{const _0xfe76e=a0_0x14a8a3;simpleLogger['info'](_0xfe76e(0x153),{'action':_0x2228bb,'data':_0x19fdbf});switch(_0x2228bb){case ORCHESTRATOR_ACTIONS[_0xfe76e(0x112)]:return{'success':!![],'data':[]};case ORCHESTRATOR_ACTIONS['CREATE_AGENT']:return{'success':!![],'data':{'id':_0xfe76e(0x142)+Date['now'](),'name':_0x19fdbf[_0xfe76e(0x1c8)]||'New\x20Agent','status':'active','model':_0x19fdbf['model']||'anthropic-sonnet','systemPrompt':_0x19fdbf['systemPrompt']||'You\x20are\x20a\x20helpful\x20AI\x20assistant.'}};case ORCHESTRATOR_ACTIONS[_0xfe76e(0x1ff)]:return{'success':!![],'data':{'message':{'id':'msg-'+Date['now'](),'content':_0xfe76e(0x201)+_0x19fdbf[_0xfe76e(0x159)],'timestamp':new Date()['toISOString']()}}};default:return{'success':![],'error':_0xfe76e(0x124)+_0x2228bb};}}},server=new WebServer(mockOrchestrator,simpleLogger,{'port':0x1f90,'host':'0.0.0.0'});console[a0_0x14a8a3(0x1c2)](a0_0x14a8a3(0x135)),server[a0_0x14a8a3(0x108)]()['then'](()=>{const _0xbf95d5=a0_0x14a8a3,_0x288781=server[_0xbf95d5(0x12f)]();console[_0xbf95d5(0x1c2)](_0xbf95d5(0x130)+_0x288781[_0xbf95d5(0x17a)]),console['log'](_0xbf95d5(0x1b0)),console['log']('🔧\x20API\x20available\x20at:\x20http://localhost:8080/api');})[a0_0x14a8a3(0x10d)](_0xe8549c=>{const _0xb0f16f=a0_0x14a8a3;console[_0xb0f16f(0x1a3)](_0xb0f16f(0x145),_0xe8549c['message']),process['exit'](0x1);}),process['on']('SIGINT',async()=>{const _0x448331=a0_0x14a8a3;console[_0x448331(0x1c2)](_0x448331(0xfb)),await server['shutdown'](),process[_0x448331(0x198)](0x0);});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0_0x1425(_0x71db3a,_0x204795){_0x71db3a=_0x71db3a-0x12c;const _0xaf429f=a0_0xaf42();let _0x142577=_0xaf429f[_0x71db3a];if(a0_0x1425['dMKjMN']===undefined){var _0x42c042=function(_0x4c6944){const _0x3b6c0e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x576489='',_0x348d8a='';for(let _0x506b9e=0x0,_0x4fda9d,_0x47a0b2,_0x3b9ddc=0x0;_0x47a0b2=_0x4c6944['charAt'](_0x3b9ddc++);~_0x47a0b2&&(_0x4fda9d=_0x506b9e%0x4?_0x4fda9d*0x40+_0x47a0b2:_0x47a0b2,_0x506b9e++%0x4)?_0x576489+=String['fromCharCode'](0xff&_0x4fda9d>>(-0x2*_0x506b9e&0x6)):0x0){_0x47a0b2=_0x3b6c0e['indexOf'](_0x47a0b2);}for(let _0x444572=0x0,_0x467577=_0x576489['length'];_0x444572<_0x467577;_0x444572++){_0x348d8a+='%'+('00'+_0x576489['charCodeAt'](_0x444572)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x348d8a);};a0_0x1425['gyqQEW']=_0x42c042,a0_0x1425['mEUFMD']={},a0_0x1425['dMKjMN']=!![];}const _0x19609c=_0xaf429f[0x0],_0x4a382f=_0x71db3a+_0x19609c,_0x4b6b1b=a0_0x1425['mEUFMD'][_0x4a382f];return!_0x4b6b1b?(_0x142577=a0_0x1425['gyqQEW'](_0x142577),a0_0x1425['mEUFMD'][_0x4a382f]=_0x142577):_0x142577=_0x4b6b1b,_0x142577;}const a0_0x50d7c2=a0_0x1425;(function(_0x50f175,_0x51c471){const _0x14316b=a0_0x1425,_0x1bfa3d=_0x50f175();while(!![]){try{const _0x5bf800=-parseInt(_0x14316b(0x130))/0x1*(-parseInt(_0x14316b(0x136))/0x2)+parseInt(_0x14316b(0x14f))/0x3+parseInt(_0x14316b(0x12e))/0x4+-parseInt(_0x14316b(0x143))/0x5*(parseInt(_0x14316b(0x157))/0x6)+-parseInt(_0x14316b(0x149))/0x7+-parseInt(_0x14316b(0x152))/0x8+-parseInt(_0x14316b(0x138))/0x9*(-parseInt(_0x14316b(0x12d))/0xa);if(_0x5bf800===_0x51c471)break;else _0x1bfa3d['push'](_0x1bfa3d['shift']());}catch(_0x4c2297){_0x1bfa3d['push'](_0x1bfa3d['shift']());}}}(a0_0xaf42,0x5ca4f));import{promises as a0_0x576489}from'fs';import a0_0x348d8a from'path';import a0_0x506b9e from'os';class FileExplorerController{constructor(_0x4fda9d={}){const _0x330a80=a0_0x1425;this[_0x330a80(0x13b)]={'showHidden':![],'allowedExtensions':[],'maxDepth':0x32,'restrictedPaths':[],..._0x4fda9d};}async['getFileStats'](_0x47a0b2){const _0x339f45=a0_0x1425;try{const _0x3b9ddc=await a0_0x576489[_0x339f45(0x12c)](_0x47a0b2);return{'stats':_0x3b9ddc};}catch(_0x444572){return{'stats':null,'error':_0x444572 instanceof Error?_0x444572[_0x339f45(0x13e)]:'Unknown\x20error'};}}['isSafePath'](_0x467577){const _0x3632b0=a0_0x1425;try{const _0x234f69=a0_0x348d8a['resolve'](_0x467577);if(this[_0x3632b0(0x13b)]['restrictedPaths']['some'](_0x2c5252=>_0x234f69[_0x3632b0(0x14e)](a0_0x348d8a['resolve'](_0x2c5252))))return![];return!![];}catch(_0x43f8f4){return![];}}['shouldIncludeItem'](_0x51201b,_0x1c2a03){const _0xc5a0a7=a0_0x1425;if(!this['config']['showHidden']&&_0x51201b['startsWith']('.'))return![];if(_0x1c2a03[_0xc5a0a7(0x150)]()&&this['config']['allowedExtensions'][_0xc5a0a7(0x14a)]>0x0){const _0xb15ab3=a0_0x348d8a[_0xc5a0a7(0x14c)](_0x51201b)[_0xc5a0a7(0x141)]();if(!this[_0xc5a0a7(0x13b)]['allowedExtensions']['includes'](_0xb15ab3))return![];}return!![];}async[a0_0x50d7c2(0x13a)](_0xf185f1=process['cwd'](),_0x3c0fc9={}){const _0x1d5f3f=a0_0x50d7c2;try{const _0x52289c=a0_0x348d8a[_0x1d5f3f(0x146)](_0xf185f1);if(!this['isSafePath'](_0x52289c))return{'success':![],'error':'Access\x20to\x20this\x20path\x20is\x20restricted'};const {stats:_0x4b5a12,error:_0x1723b9}=await this[_0x1d5f3f(0x137)](_0x52289c);if(_0x1723b9||!_0x4b5a12)return{'success':![],'error':_0x1d5f3f(0x155)};if(!_0x4b5a12['isDirectory']())return{'success':![],'error':_0x1d5f3f(0x133)};const _0x37c03e=await a0_0x576489['readdir'](_0x52289c),_0x3c534c=[];for(const _0xf367a1 of _0x37c03e){const _0x1e94cd=a0_0x348d8a[_0x1d5f3f(0x142)](_0x52289c,_0xf367a1),{stats:_0xfdb7db}=await this[_0x1d5f3f(0x137)](_0x1e94cd);if(_0xfdb7db&&this['shouldIncludeItem'](_0xf367a1,_0xfdb7db)){const _0x5018e8={'name':_0xf367a1,'path':_0x1e94cd,'type':_0xfdb7db[_0x1d5f3f(0x132)]()?_0x1d5f3f(0x140):'file','size':_0xfdb7db[_0x1d5f3f(0x150)]()?_0xfdb7db['size']:undefined,'lastModified':_0xfdb7db['mtime'],'extension':_0xfdb7db[_0x1d5f3f(0x150)]()?a0_0x348d8a['extname'](_0xf367a1)[_0x1d5f3f(0x141)]():undefined};_0x3c534c['push'](_0x5018e8);}}_0x3c534c[_0x1d5f3f(0x154)]((_0x313982,_0x3ea4f7)=>{const _0x29662e=_0x1d5f3f;if(_0x313982['type']===_0x3ea4f7[_0x29662e(0x144)])return _0x313982['name']['localeCompare'](_0x3ea4f7['name']);return _0x313982[_0x29662e(0x144)]===_0x29662e(0x140)?-0x1:0x1;});const _0x2ddcf5=a0_0x348d8a[_0x1d5f3f(0x134)](_0x52289c),_0x5ef638=_0x2ddcf5!==_0x52289c;return{'success':!![],'data':{'currentPath':_0x52289c,'parentPath':_0x5ef638?_0x2ddcf5:null,'items':_0x3c534c,'totalItems':_0x3c534c['length'],'directories':_0x3c534c[_0x1d5f3f(0x131)](_0x3c286c=>_0x3c286c['type']===_0x1d5f3f(0x140))['length'],'files':_0x3c534c['filter'](_0x37816a=>_0x37816a[_0x1d5f3f(0x144)]==='file')['length']}};}catch(_0x5b5b91){return{'success':![],'error':_0x5b5b91 instanceof Error?_0x5b5b91['message']:_0x1d5f3f(0x12f)};}}async[a0_0x50d7c2(0x135)](_0x1ff3c0){const _0x53c9df=a0_0x50d7c2;try{if(!_0x1ff3c0||!this[_0x53c9df(0x139)](_0x1ff3c0))return{'success':![],'error':_0x53c9df(0x14d)};const {stats:_0xcd42f6,error:_0x54bb26}=await this['getFileStats'](_0x1ff3c0);if(_0x54bb26||!_0xcd42f6)return{'success':![],'error':_0x53c9df(0x13d)};const _0x24b462={'name':a0_0x348d8a[_0x53c9df(0x14b)](_0x1ff3c0),'path':_0x1ff3c0,'type':_0xcd42f6[_0x53c9df(0x132)]()?_0x53c9df(0x140):_0x53c9df(0x153),'size':_0xcd42f6[_0x53c9df(0x150)]()?_0xcd42f6[_0x53c9df(0x151)]:undefined,'lastModified':_0xcd42f6['mtime'],'extension':_0xcd42f6['isFile']()?a0_0x348d8a[_0x53c9df(0x14c)](_0x1ff3c0)[_0x53c9df(0x141)]():undefined};return{'success':!![],'data':_0x24b462};}catch(_0x190418){return{'success':![],'error':_0x190418 instanceof Error?_0x190418[_0x53c9df(0x13e)]:_0x53c9df(0x12f)};}}['getCurrentWorkingDirectory'](){return{'success':!![],'data':{'cwd':process['cwd'](),'platform':process['platform'],'homedir':a0_0x506b9e['homedir']()}};}async['createDirectory'](_0x5c2f64,_0x13b271={}){const _0xed6a9f=a0_0x50d7c2;try{if(!this[_0xed6a9f(0x139)](_0x5c2f64))return{'success':![],'error':'Invalid\x20directory\x20path'};return await a0_0x576489['mkdir'](_0x5c2f64,{'recursive':_0x13b271[_0xed6a9f(0x156)]||![]}),{'success':!![],'data':{'path':_0x5c2f64,'relativePath':a0_0x348d8a[_0xed6a9f(0x145)](process['cwd'](),_0x5c2f64)}};}catch(_0x30148a){return{'success':![],'error':_0x30148a instanceof Error?_0x30148a['message']:_0xed6a9f(0x147),'code':_0x30148a[_0xed6a9f(0x13f)]};}}[a0_0x50d7c2(0x13c)](){const _0x483c82=a0_0x50d7c2;return{'success':!![],'data':{'status':_0x483c82(0x148),'timestamp':new Date()['toISOString'](),'module':'fileExplorer'}};}}function a0_0xaf42(){const _0x21c14a=['y29UzMLN','AgvHBhrOq2HLy2S','rMLSzsbUB3qGzM91BMq','BwvZC2fNzq','y29Kzq','zgLYzwn0B3j5','Dg9mB3DLCKnHC2u','AM9PBG','mJvyEwTls3i','DhLWzq','CMvSyxrPDMu','CMvZB2X2zq','rMfPBgvKihrVignYzwf0zsbKAxjLy3rVCNK','AgvHBhrOEq','ndu5nZiXnwTKBwjzBW','BgvUz3rO','yMfZzw5HBwu','zxH0BMfTzq','sw52ywXPzcbMAwXLihbHDgG','C3rHCNrZv2L0Aa','mtuZnde4mNr1D0TvrG','AxngAwXL','C2L6zq','mte4mtKWne1Hs2Pqrq','zMLSzq','C29YDa','ugf0AcbUB3qGzM91BMqGB3iGAw5Hy2nLC3nPyMXL','CMvJDxjZAxzL','mZe5mtq2AwfjzNzu','C3rHDa','ndbVD1jADfu','mti4mtu0nez0yw9TCW','u2vYDMvYigvYCM9Y','ntq1otmZquPuBgfq','zMLSDgvY','AxneAxjLy3rVCNK','ugf0AcbPCYbUB3qGysbKAxjLy3rVCNK','zgLYBMfTzq','z2v0rMLSzuLUzM8','mNrzwMLHrW','z2v0rMLSzvn0yxrZ','mtyYndqXEgLlAgrY','AxntywzLugf0Aa','yNjVD3nLrgLYzwn0B3j5'];a0_0xaf42=function(){return _0x21c14a;};return a0_0xaf42();}export default FileExplorerController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x38e66a,_0x1ddfad){const _0x1c50f5=a0_0xea78,_0x3999bd=_0x38e66a();while(!![]){try{const _0x2489a2=parseInt(_0x1c50f5(0x91))/0x1+-parseInt(_0x1c50f5(0x8e))/0x2*(-parseInt(_0x1c50f5(0x8c))/0x3)+parseInt(_0x1c50f5(0x92))/0x4+-parseInt(_0x1c50f5(0x8d))/0x5+parseInt(_0x1c50f5(0x93))/0x6*(-parseInt(_0x1c50f5(0x8b))/0x7)+-parseInt(_0x1c50f5(0x8f))/0x8+-parseInt(_0x1c50f5(0x94))/0x9*(-parseInt(_0x1c50f5(0x90))/0xa);if(_0x2489a2===_0x1ddfad)break;else _0x3999bd['push'](_0x3999bd['shift']());}catch(_0x5900ce){_0x3999bd['push'](_0x3999bd['shift']());}}}(a0_0x38be,0xba6ba));function a0_0x38be(){const _0x159851=['odu3ntC0CwjoruXi','ntiYntK3nw5owLHMra','mKXMzfvKra','mZyZmdCYDfHly0fp','mJbXrLzfsuy','mtq1mJiZou1xv2jyDG','nZyYotqWr1DKuwLy','ntu2odu1oeHtvfvpyW','mZG0mdm4mwLZCe16uG','n0DIwevsCq'];a0_0x38be=function(){return _0x159851;};return a0_0x38be();}import{createFileExplorerRouter,defaultConfig}from'./routes.js';import a0_0x3f247c from'./controller.js';export function initFileExplorerModule(_0x5259ac={}){const _0x25f38e={...defaultConfig,..._0x5259ac},_0x187e38=createFileExplorerRouter(_0x25f38e),_0x110727=new a0_0x3f247c(_0x25f38e);return{'router':_0x187e38,'controller':_0x110727,'config':_0x25f38e};}export{default as FileExplorerController}from'./controller.js';export{createFileExplorerRouter,defaultConfig}from'./routes.js';function a0_0xea78(_0x2c3e60,_0x386b04){_0x2c3e60=_0x2c3e60-0x8b;const _0x38be6c=a0_0x38be();let _0xea783=_0x38be6c[_0x2c3e60];if(a0_0xea78['qlHTgc']===undefined){var _0x251696=function(_0x2d53d9){const _0x5340f9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f247c='',_0x5259ac='';for(let _0x25f38e=0x0,_0x187e38,_0x110727,_0x465157=0x0;_0x110727=_0x2d53d9['charAt'](_0x465157++);~_0x110727&&(_0x187e38=_0x25f38e%0x4?_0x187e38*0x40+_0x110727:_0x110727,_0x25f38e++%0x4)?_0x3f247c+=String['fromCharCode'](0xff&_0x187e38>>(-0x2*_0x25f38e&0x6)):0x0){_0x110727=_0x5340f9['indexOf'](_0x110727);}for(let _0x5d0748=0x0,_0x389cf9=_0x3f247c['length'];_0x5d0748<_0x389cf9;_0x5d0748++){_0x5259ac+='%'+('00'+_0x3f247c['charCodeAt'](_0x5d0748)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5259ac);};a0_0xea78['aGuqPk']=_0x251696,a0_0xea78['QfphRV']={},a0_0xea78['qlHTgc']=!![];}const _0x16fd53=_0x38be6c[0x0],_0x32008a=_0x2c3e60+_0x16fd53,_0x2e086c=a0_0xea78['QfphRV'][_0x32008a];return!_0x2e086c?(_0xea783=a0_0xea78['aGuqPk'](_0xea783),a0_0xea78['QfphRV'][_0x32008a]=_0xea783):_0xea783=_0x2e086c,_0xea783;}export*from'./middleware.js';export default{'init':initFileExplorerModule,'Controller':a0_0x3f247c,'createRouter':createFileExplorerRouter,'defaultConfig':defaultConfig};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x44e32e,_0x287b09){const _0x4466a6=a0_0x26de,_0x4eb2eb=_0x44e32e();while(!![]){try{const _0x33602a=parseInt(_0x4466a6(0x79))/0x1+parseInt(_0x4466a6(0x77))/0x2*(-parseInt(_0x4466a6(0x8a))/0x3)+-parseInt(_0x4466a6(0x89))/0x4*(-parseInt(_0x4466a6(0x82))/0x5)+parseInt(_0x4466a6(0x88))/0x6*(-parseInt(_0x4466a6(0x81))/0x7)+parseInt(_0x4466a6(0x76))/0x8*(-parseInt(_0x4466a6(0x86))/0x9)+-parseInt(_0x4466a6(0x72))/0xa*(parseInt(_0x4466a6(0x84))/0xb)+parseInt(_0x4466a6(0x7f))/0xc;if(_0x33602a===_0x287b09)break;else _0x4eb2eb['push'](_0x4eb2eb['shift']());}catch(_0x12bbec){_0x4eb2eb['push'](_0x4eb2eb['shift']());}}}(a0_0x2464,0x8a9a5));export function validatePath(_0x390417,_0x126b3e,_0x48ae04){const _0x1c81ef=a0_0x26de,{path:_0x36ee2d}=_0x390417[_0x1c81ef(0x83)];if(_0x36ee2d&&typeof _0x36ee2d!==_0x1c81ef(0x8c))return _0x126b3e['status'](0x190)[_0x1c81ef(0x7b)]({'success':![],'error':'Path\x20parameter\x20must\x20be\x20a\x20string'});_0x48ae04();}function a0_0x26de(_0xc8810c,_0x44a723){_0xc8810c=_0xc8810c-0x70;const _0x246403=a0_0x2464();let _0x26de58=_0x246403[_0xc8810c];if(a0_0x26de['XdzTwD']===undefined){var _0x1380ec=function(_0x446cf0){const _0x3583bb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x390417='',_0x126b3e='';for(let _0x48ae04=0x0,_0x36ee2d,_0x690851,_0x3412bc=0x0;_0x690851=_0x446cf0['charAt'](_0x3412bc++);~_0x690851&&(_0x36ee2d=_0x48ae04%0x4?_0x36ee2d*0x40+_0x690851:_0x690851,_0x48ae04++%0x4)?_0x390417+=String['fromCharCode'](0xff&_0x36ee2d>>(-0x2*_0x48ae04&0x6)):0x0){_0x690851=_0x3583bb['indexOf'](_0x690851);}for(let _0x5481b0=0x0,_0x2e2e4a=_0x390417['length'];_0x5481b0<_0x2e2e4a;_0x5481b0++){_0x126b3e+='%'+('00'+_0x390417['charCodeAt'](_0x5481b0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x126b3e);};a0_0x26de['DTZVtn']=_0x1380ec,a0_0x26de['hkDhwi']={},a0_0x26de['XdzTwD']=!![];}const _0x22ee83=_0x246403[0x0],_0x1edd39=_0xc8810c+_0x22ee83,_0x41e168=a0_0x26de['hkDhwi'][_0x1edd39];return!_0x41e168?(_0x26de58=a0_0x26de['DTZVtn'](_0x26de58),a0_0x26de['hkDhwi'][_0x1edd39]=_0x26de58):_0x26de58=_0x41e168,_0x26de58;}function a0_0x2464(){const _0x4d0c50=['nJC4mZC1BgPwtNbZ','ic0G','ANnVBG','BM93','AgfZ','BgvUz3rO','mJu2mZmZmdHPD0rvD2K','Bwv0Ag9K','mJfQCKPUueC','mZvpDeXcCKS','CxvLCNK','nZDkEuHPz3q','ChvZAa','mJmZmtLUqM1HA1u','zMLSDgvY','mtaWnZa4mNnMyMHwrW','mZqZodu2DhrJr1Pu','nK5iz3HVAq','Dw5RBM93BG','C3rYAw5N','z2v0','w0zPBgvfEhbSB3jLCL0G','BxmP','mtm3nZq3mhv2ve1jrW','C3rHDhvZ','C2v0','y29UBMvJDgLVBG','mJm3nMfQAfzbrq','nJeXmJe4zxncwhDX','BM8Ty2fJAguSig5Vlxn0B3jLlcbTDxn0lxjLDMfSAwrHDgu'];a0_0x2464=function(){return _0x4d0c50;};return a0_0x2464();}export function createRateLimit(_0x690851=0x64,_0x3412bc=0xea60){const _0x5481b0=new Map();return(_0x2e2e4a,_0x4519c8,_0x4e718f)=>{const _0x39d128=a0_0x26de,_0x5ecb77=_0x2e2e4a['ip']||_0x2e2e4a[_0x39d128(0x75)]['remoteAddress']||_0x39d128(0x8b),_0x3200c0=Date[_0x39d128(0x7c)](),_0x3436cd=_0x3200c0-_0x3412bc;!_0x5481b0[_0x39d128(0x7d)](_0x5ecb77)&&_0x5481b0[_0x39d128(0x74)](_0x5ecb77,[]);const _0x38d762=_0x5481b0[_0x39d128(0x8d)](_0x5ecb77),_0x51fdab=_0x38d762[_0x39d128(0x87)](_0x2c9c11=>_0x2c9c11>_0x3436cd);_0x5481b0['set'](_0x5ecb77,_0x51fdab);if(_0x51fdab[_0x39d128(0x7e)]>=_0x690851)return _0x4519c8[_0x39d128(0x73)](0x1ad)[_0x39d128(0x7b)]({'success':![],'error':'Too\x20many\x20requests','retryAfter':Math['ceil'](_0x3412bc/0x3e8)});_0x51fdab[_0x39d128(0x85)](_0x3200c0),_0x4e718f();};}export function securityHeaders(_0x24f65f,_0x74c046,_0x39ef75){const _0x30bdc1=a0_0x26de;_0x74c046['set']({'Cache-Control':_0x30bdc1(0x78),'Pragma':'no-cache','Expires':'0'}),_0x39ef75();}export function requestLogger(_0x23ea91,_0x1e98ee,_0x246e31){const _0x50a88a=a0_0x26de,_0x5ba5ec=Date[_0x50a88a(0x7c)]();_0x1e98ee['on']('finish',()=>{const _0x50b626=_0x50a88a,_0x56298e=Date['now']()-_0x5ba5ec;console['log'](_0x50b626(0x70)+_0x23ea91[_0x50b626(0x80)]+'\x20'+_0x23ea91['originalUrl']+_0x50b626(0x7a)+_0x1e98ee['statusCode']+'\x20('+_0x56298e+_0x50b626(0x71));}),_0x246e31();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4c60e4,_0x190bb4){const _0x2678ed=a0_0x1b2a,_0x34d707=_0x4c60e4();while(!![]){try{const _0x29ebb6=parseInt(_0x2678ed(0x179))/0x1*(parseInt(_0x2678ed(0x16d))/0x2)+parseInt(_0x2678ed(0x16b))/0x3+-parseInt(_0x2678ed(0x172))/0x4+-parseInt(_0x2678ed(0x17e))/0x5*(-parseInt(_0x2678ed(0x182))/0x6)+-parseInt(_0x2678ed(0x181))/0x7*(-parseInt(_0x2678ed(0x17d))/0x8)+parseInt(_0x2678ed(0x164))/0x9+-parseInt(_0x2678ed(0x180))/0xa;if(_0x29ebb6===_0x190bb4)break;else _0x34d707['push'](_0x34d707['shift']());}catch(_0x50bdc9){_0x34d707['push'](_0x34d707['shift']());}}}(a0_0x1269,0x71c0b));import a0_0x268906 from'express';import a0_0x1855a3 from'./controller.js';function a0_0x1b2a(_0x35d200,_0x4695ee){_0x35d200=_0x35d200-0x162;const _0x1269c5=a0_0x1269();let _0x1b2a88=_0x1269c5[_0x35d200];if(a0_0x1b2a['KBysjg']===undefined){var _0x4b915d=function(_0x4ed299){const _0x457b55='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x268906='',_0x1855a3='';for(let _0x5b2a62=0x0,_0x42436c,_0x246c8b,_0x2d2313=0x0;_0x246c8b=_0x4ed299['charAt'](_0x2d2313++);~_0x246c8b&&(_0x42436c=_0x5b2a62%0x4?_0x42436c*0x40+_0x246c8b:_0x246c8b,_0x5b2a62++%0x4)?_0x268906+=String['fromCharCode'](0xff&_0x42436c>>(-0x2*_0x5b2a62&0x6)):0x0){_0x246c8b=_0x457b55['indexOf'](_0x246c8b);}for(let _0x2d4902=0x0,_0x26f6fa=_0x268906['length'];_0x2d4902<_0x26f6fa;_0x2d4902++){_0x1855a3+='%'+('00'+_0x268906['charCodeAt'](_0x2d4902)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1855a3);};a0_0x1b2a['quzxAr']=_0x4b915d,a0_0x1b2a['gRlclw']={},a0_0x1b2a['KBysjg']=!![];}const _0xc11c40=_0x1269c5[0x0],_0x1c971d=_0x35d200+_0xc11c40,_0x1db982=a0_0x1b2a['gRlclw'][_0x1c971d];return!_0x1db982?(_0x1b2a88=a0_0x1b2a['quzxAr'](_0x1b2a88),a0_0x1b2a['gRlclw'][_0x1c971d]=_0x1b2a88):_0x1b2a88=_0x1db982,_0x1b2a88;}import{validatePath,createRateLimit,securityHeaders,requestLogger}from'./middleware.js';function a0_0x1269(){const _0x37c57d=['DxnL','zxjYB3i','ANnVBG','mtqZmZCZmMTOCMvsDG','l2HLywX0Aa','l2jYB3DZzq','yM9KEq','z2v0','uM91DgvY','sw50zxjUywWGC2vYDMvYigvYCM9Y','nduZnJfPtMz6CeC','l21RzgLY','l2n3za','C3rHDhvZ','nZuYwNPNufDm','nwrhB2X2Da','ruvysvnu','mtqWmZC0odbPAhDhCNu','mte0mtDMswHAz0W','ndi3mZuXohDXvvnKzq','Cg9ZDa','Aw5JBhvKzxm','ntm4mtK5mw1NCgr6va','Cgf0Aa','rgLYzwn0B3j5ihbHDgGGAxmGCMvXDwLYzwq','CxvLCNK','yNjVD3nLrgLYzwn0B3j5','C3vJy2vZCW','z2v0rMLSzuLUzM8','mJe1nZu1nxrzAvDQvG','l2zPBguTAw5MBW','mKzMDhbZra','CMvZDhjPy3rLza'];a0_0x1269=function(){return _0x37c57d;};return a0_0x1269();}export function createFileExplorerRouter(_0x5b2a62={}){const _0x404ed3=a0_0x1b2a,_0x42436c=a0_0x268906[_0x404ed3(0x177)](),_0x246c8b=new a0_0x1855a3(_0x5b2a62);return _0x42436c['use'](requestLogger),_0x42436c[_0x404ed3(0x16f)](securityHeaders),_0x42436c[_0x404ed3(0x16f)](createRateLimit(0x64,0xea60)),_0x42436c[_0x404ed3(0x176)](_0x404ed3(0x173),(_0x2d2313,_0x2d4902)=>{const _0x26f6fa=_0x246c8b['healthCheck']();_0x2d4902['json'](_0x26f6fa);}),_0x42436c['get'](_0x404ed3(0x17b),(_0x4d40bf,_0x2aafaa)=>{const _0x67a5a7=_0x404ed3,_0x35114e=_0x246c8b['getCurrentWorkingDirectory']();_0x2aafaa[_0x67a5a7(0x171)](_0x35114e);}),_0x42436c[_0x404ed3(0x176)](_0x404ed3(0x174),validatePath,async(_0x1919b8,_0x440334)=>{const _0x55579c=_0x404ed3;try{const _0x3400d9=_0x1919b8[_0x55579c(0x167)][_0x55579c(0x165)],_0x23e1e0={'showHidden':_0x1919b8['query']['showHidden']==='true'},_0x2837f2=await _0x246c8b[_0x55579c(0x168)](_0x3400d9,_0x23e1e0);if(_0x2837f2[_0x55579c(0x169)])_0x440334['json'](_0x2837f2);else{const _0x14a8ed=_0x2837f2['error'][_0x55579c(0x163)](_0x55579c(0x16e))?0x193:_0x2837f2[_0x55579c(0x170)]['includes']('not\x20found')?0x194:0x190;_0x440334[_0x55579c(0x17c)](_0x14a8ed)['json'](_0x2837f2);}}catch(_0xa05964){_0x440334['status'](0x1f4)['json']({'success':![],'error':_0x55579c(0x178)});}}),_0x42436c['get'](_0x404ed3(0x16c),validatePath,async(_0x438708,_0x4acd2e)=>{const _0x29408d=_0x404ed3;try{const _0x497b30=_0x438708['query'][_0x29408d(0x165)],_0x56640c=await _0x246c8b[_0x29408d(0x16a)](_0x497b30);if(_0x56640c['success'])_0x4acd2e[_0x29408d(0x171)](_0x56640c);else{const _0x2089c0=_0x56640c['error'][_0x29408d(0x163)]('not\x20found')?0x194:0x190;_0x4acd2e['status'](_0x2089c0)['json'](_0x56640c);}}catch(_0x3e23bd){_0x4acd2e[_0x29408d(0x17c)](0x1f4)['json']({'success':![],'error':_0x29408d(0x178)});}}),_0x42436c[_0x404ed3(0x162)](_0x404ed3(0x17a),a0_0x268906['json'](),async(_0x5e9d02,_0x4a5b4e)=>{const _0x2177b7=_0x404ed3;try{const {path:_0x4a8956,recursive:recursive=![]}=_0x5e9d02[_0x2177b7(0x175)];if(!_0x4a8956)return _0x4a5b4e['status'](0x190)[_0x2177b7(0x171)]({'success':![],'error':_0x2177b7(0x166)});const _0xdcde89=await _0x246c8b['createDirectory'](_0x4a8956,{'recursive':recursive});if(_0xdcde89['success'])_0x4a5b4e[_0x2177b7(0x171)](_0xdcde89);else{const _0x252d28=_0xdcde89['code']===_0x2177b7(0x17f)?0x199:0x190;_0x4a5b4e[_0x2177b7(0x17c)](_0x252d28)['json'](_0xdcde89);}}catch(_0x218cc8){_0x4a5b4e['status'](0x1f4)['json']({'success':![],'error':_0x2177b7(0x178)});}}),_0x42436c;}export const defaultConfig={'showHidden':![],'allowedExtensions':[],'maxDepth':0x32,'restrictedPaths':[]};export default createFileExplorerRouter;
|