{"version":3,"sources":["../src/index.ts","../src/server.ts"],"sourcesContent":["import * as process from \"node:process\";\nexport { default as server } from \"./server.js\";\n\nimport createApp from \"./server.js\";\n\n\nconst port = process.env.PORT || 9000;\nasync function startServer() {\n  const app = await createApp();\n\n  return new Promise<Awaited<ReturnType<typeof createApp>>>((resolve, reject) => {\n    app.listen(port, (err) => {\n      if (err) {\n        reject(err);\n      } else {\n        resolve(app);\n      }\n    });\n  });\n}\n\nstartServer().then(() => {\n  console.log(\"Server running on port \" + port);\n}).catch(console.error);\n","import cors from \"cors\";\nimport dotenv from \"dotenv\";\nimport { LanggraphAgent } from \"@cloudbase/agent-adapter-langgraph\";\nimport { createExpressRoutes } from \"@cloudbase/agent-server\";\nimport { LlamaIndexAgent } from \"@cloudbase/agent-adapter-llamaindex\";\nimport { MastraAgent } from \"@cloudbase/agent-adapter-mastra\";\nimport express from \"express\";\nimport * as undici from \"undici\";\nimport { agenticChatGraph } from \"@cloudbase/agent-examples-langgraph-agentic-chat\";\nimport { humanInTheLoopGraph } from \"@cloudbase/agent-examples-langgraph-human-in-the-loop\";\nimport { createAgenticChatAgent } from \"@cloudbase/agent-examples-agkit-agents-agentic-chat\";\nimport { createHumanInTheLoopAgent } from \"@cloudbase/agent-examples-agkit-agents-human-in-the-loop\";\nimport { createWebReadingMultiAgent } from \"@cloudbase/agent-examples-llamaindex-ts-multi-agent\";\nimport { createAgenticChatAgent as createMastraAgenticChatAgent } from \"@cloudbase/agent-examples-mastra-agentic-chat\";\nimport { createMCPKnowledgeRetrievalAgent } from \"@cloudbase/agent-examples-agkit-agents-mcp-knowledge-retrieval\";\nimport { createMultiAgentOrchestrator } from \"@cloudbase/agent-examples-agkit-agents-multi-agent\";\nimport { createAgent as createLangchainAgenticChatAgent } from \"@cloudbase/agent-examples-langchain-agentic-chat\";\nimport { createOpenAIAgenticChatAgent } from \"@cloudbase/agent-examples-openai-agent-sdk-agentic-chat\";\nimport { OpenAIAgent } from \"@cloudbase/agent-adapter-openai-agent-sdk\";\nimport { InMemoryMemory } from \"@cloudbase/agent-agents\";\nimport { createMangaCreatorAgent } from \"@cloudbase/agent-examples-agkit-agents-manga-creator\";\nimport { createAgent as createClaudeAgenticChatAgent } from \"@cloudbase/agent-examples-claude-agent-agentic-chat\";\nimport { createAgent as createClaudeHumanInTheLoopAgent } from \"@cloudbase/agent-examples-claude-agent-human-in-the-loop\";\nimport { ReactCodingAgent } from \"@cloudbase/agent-react-coding-agent\";\nimport { MySQLMemory, OpenAIProvider } from \"@cloudbase/agent-agents\";\nimport path from \"path\";\nimport { Agent } from \"@cloudbase/agent-agents\";\nimport fs from \"fs\";\n// Load environment variables FIRST\ndotenv.config({ path: \".env\" });\nif (process.env.http_proxy) {\n  undici.setGlobalDispatcher(new undici.ProxyAgent(process.env.http_proxy));\n}\nconst memory = new InMemoryMemory();\n\nasync function createApp(): Promise<express.Express> {\n  const app: express.Express = express();\n\n  app.use(cors());\n\n  const AGENTS = {\n    agentic_chat: () => {\n      return {\n        agent: new LanggraphAgent({\n          description: \"An agent to showcase agentic chat ability.\",\n          compiledWorkflow: agenticChatGraph,\n        }),\n      };\n    },\n\n    human_in_the_loop: () => {\n      return {\n        agent: new LanggraphAgent({\n          description: \"An agent to showcase human in the loop ability.\",\n          compiledWorkflow: humanInTheLoopGraph,\n        }),\n      };\n    },\n\n    agkit_agentic_chat: () => {\n      return {\n        agent: createAgenticChatAgent(),\n      };\n    },\n\n    agkit_human_in_the_loop: () => {\n      return {\n        agent: createHumanInTheLoopAgent(),\n      };\n    },\n\n    agkit_mcp_knowledge_retrieval: async () => {\n      const { agent, cleanup } = await createMCPKnowledgeRetrievalAgent();\n      return {\n        agent,\n        cleanup,\n      };\n    },\n    llamaindex_multi_agent: () => {\n      return {\n        agent: new LlamaIndexAgent({\n          workflowFactory: createWebReadingMultiAgent,\n        }),\n      };\n    },\n    mastra_agentic_chat: () => {\n      return {\n        agent: new MastraAgent({\n          runnableFactory: createMastraAgenticChatAgent,\n        }),\n      };\n    },\n\n    agkit_multi_agent: () => {\n      return {\n        agent: createMultiAgentOrchestrator(),\n      };\n    },\n    langchain_agentic_chat: () => {\n      return {\n        agent: createLangchainAgenticChatAgent(),\n      };\n    },\n\n    claude_agent_agentic_chat: () => {\n      return {\n        agent: createClaudeAgenticChatAgent(),\n      };\n    },\n    claude_agent_human_in_the_loop: () => {\n      return {\n        agent: createClaudeHumanInTheLoopAgent(),\n      };\n    },\n    openai_agentic_chat: () => {\n      return {\n        agent: new OpenAIAgent({\n          ...createOpenAIAgenticChatAgent(),\n          memory,\n        }),\n      };\n    },\n    agkit_manga_creator: () => {\n      return {\n        agent: createMangaCreatorAgent(),\n      };\n    },\n    agkit_ai_coding: async () => {\n      class CodingAgent extends Agent {\n        constructor(data: any) {\n          super(data);\n        }\n\n        async run(input: string | any[], state?: any, options?: any) {\n          const conversationId =\n            state?.conversationId || options.conversationId;\n          if (!conversationId) {\n            throw new Error(\"Conversation ID is required\");\n          }\n\n          // Get configuration from environment\n          const baseProjectPath = process.env.BASE_PROJECT_PATH\n            ? path.resolve(process.env.BASE_PROJECT_PATH)\n            : path.join(__dirname, \"projects\");\n\n          // Initialize memory if MySQL is configured\n          let memory = undefined;\n          if (process.env.MYSQL_HOST) {\n            memory = MySQLMemory.create({\n              connection: {\n                host: process.env.MYSQL_HOST,\n                port: parseInt(process.env.MYSQL_PORT || \"3306\"),\n                username: process.env.MYSQL_USER || \"root\",\n                password: process.env.MYSQL_PASSWORD || \"password\",\n                database: process.env.MYSQL_DATABASE || \"test\",\n              },\n              sessionId: conversationId,\n            });\n          }\n\n          // Create agent instance\n          const agent = new ReactCodingAgent({\n            name: \"ai-coding-agent\",\n            model: new OpenAIProvider({\n              apiKey: process.env.OPENAI_API_KEY!,\n              defaultModel: process.env.OPENAI_MODEL || \"gpt-4o-mini\",\n              baseURL: process.env.OPENAI_BASE_URL,\n            }),\n            instructions: `${ReactCodingAgent.getSystemPrompt()}\\n\\n<important>项目修改完成之后，**一定** 使用 \"npm run build\" 来检查项目是否正常。build 成功后可以通过 \"http://localhost:${process.env.PORT || 3000}/ai_coding/preview/${conversationId}\" 的路径访问应用（服务默认已启动，无需重复启动）。给出用户访问指引。</important>\\n\\n当前项目工作空间为 ${path.join(baseProjectPath, conversationId)}`,\n            baseProjectPath,\n            projectName: conversationId,\n            autoInstallDependencies: false,\n            memory,\n          });\n\n          // Initialize agent\n          await agent.initialize();\n\n          if (!fs.existsSync(path.join(baseProjectPath, conversationId))) {\n            await agent.createReactProject({\n              typescript: true,\n              shadcn: {\n                style: \"default\",\n                baseColor: \"slate\",\n                cssVariables: true,\n              },\n            });\n          }\n\n          return agent.run(input, state, options);\n        }\n      }\n\n      // Generate unique session ID for this conversation\n\n      return {\n        agent: new CodingAgent({\n          name: \"ai-coding-agent\",\n          model: new OpenAIProvider({\n            apiKey: process.env.OPENAI_API_KEY!,\n            defaultModel: process.env.OPENAI_MODEL || \"gpt-4o-mini\",\n            baseURL: process.env.OPENAI_BASE_URL,\n          }),\n        }),\n        cleanup: () => {\n          console.log(`Cleaning up AI Coding Agent`);\n        },\n      };\n    },\n  };\n\n  // Static file serving for AI Coding projects\n  app.use(\"/ai_coding/preview/:conversationId\", (req, res) => {\n    const conversationId = req.params.conversationId;\n\n    // Get the requested file path after the conversationId\n    // req.originalUrl contains the full URL path\n    const baseRoute = `/ai_coding/preview/${conversationId}`;\n    let requestedPath = req.originalUrl\n      .replace(baseRoute, \"\")\n      .replace(/^\\//g, \"\");\n\n    // Remove query parameters if any\n    requestedPath = requestedPath.split(\"?\")[0];\n\n    console.log(`[Static File] Conversation ID: ${conversationId}`);\n    console.log(`[Static File] Original URL: ${req.originalUrl}`);\n    console.log(`[Static File] Requested Path: ${requestedPath}`);\n\n    // Get base project path from environment or use default\n    const baseProjectPath = process.env.BASE_PROJECT_PATH\n      ? path.resolve(process.env.BASE_PROJECT_PATH)\n      : path.join(__dirname, \"projects\");\n\n    const distPath = path.join(baseProjectPath, conversationId, \"dist\");\n    console.log(`[Static File] Dist Path: ${distPath}`);\n\n    // If no specific file is requested (empty path or ends with /), serve index.html\n    let filePath: string;\n    if (!requestedPath || requestedPath.endsWith(\"/\")) {\n      filePath = path.join(distPath, \"index.html\");\n    } else {\n      filePath = path.join(distPath, requestedPath);\n    }\n\n    console.log(`[Static File] Resolved File Path: ${filePath}`);\n\n    // Security check: ensure the resolved path is within the dist directory\n    const normalizedFilePath = path.normalize(filePath);\n    const normalizedDistPath = path.normalize(distPath);\n    if (!normalizedFilePath.startsWith(normalizedDistPath)) {\n      console.log(\n        `[Static File] Security check failed: ${normalizedFilePath} not within ${normalizedDistPath}`\n      );\n      return res.status(403).send(\"Forbidden\");\n    }\n\n    // Check if the requested file exists\n    if (fs.existsSync(filePath) && fs.statSync(filePath).isFile()) {\n      console.log(`[Static File] Serving file: ${filePath}`);\n\n      // Set proper content type\n      if (filePath.endsWith(\".js\")) {\n        res.setHeader(\"Content-Type\", \"application/javascript\");\n      } else if (filePath.endsWith(\".css\")) {\n        res.setHeader(\"Content-Type\", \"text/css\");\n      } else if (filePath.endsWith(\".html\")) {\n        res.setHeader(\"Content-Type\", \"text/html\");\n      } else if (filePath.endsWith(\".json\")) {\n        res.setHeader(\"Content-Type\", \"application/json\");\n      }\n\n      return res.sendFile(path.resolve(filePath));\n    }\n\n    console.log(`[Static File] File not found: ${filePath}`);\n\n    // If file not found, try to serve index.html as fallback (for SPA routing)\n    const indexPath = path.join(distPath, \"index.html\");\n    if (fs.existsSync(indexPath) && fs.statSync(indexPath).isFile()) {\n      console.log(`[Static File] Serving fallback index.html: ${indexPath}`);\n      res.setHeader(\"Content-Type\", \"text/html\");\n      return res.sendFile(path.resolve(indexPath));\n    }\n\n    // If index.html also doesn't exist, return 404\n    console.log(`[Static File] Index.html not found: ${indexPath}`);\n    res.status(404).send(\"Not Found\");\n  });\n\n  Object.entries(AGENTS).forEach(([key, agent]) => {\n    createExpressRoutes({\n      basePath: `/${key}/`,\n      createAgent: agent,\n      express: app,\n    });\n  });\n\n  return app;\n}\n\nexport default createApp;\n"],"mappings":";AAAA,YAAYA,cAAa;;;ACAzB,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,SAAS,sBAAsB;AAC/B,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,OAAO,aAAa;AACpB,YAAY,YAAY;AACxB,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAC1C,SAAS,kCAAkC;AAC3C,SAAS,0BAA0B,oCAAoC;AACvE,SAAS,wCAAwC;AACjD,SAAS,oCAAoC;AAC7C,SAAS,eAAe,uCAAuC;AAC/D,SAAS,oCAAoC;AAC7C,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,+BAA+B;AACxC,SAAS,eAAe,oCAAoC;AAC5D,SAAS,eAAe,uCAAuC;AAC/D,SAAS,wBAAwB;AACjC,SAAS,aAAa,sBAAsB;AAC5C,OAAO,UAAU;AACjB,SAAS,aAAa;AACtB,OAAO,QAAQ;AAEf,OAAO,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9B,IAAI,QAAQ,IAAI,YAAY;AAC1B,EAAO,2BAAoB,IAAW,kBAAW,QAAQ,IAAI,UAAU,CAAC;AAC1E;AACA,IAAM,SAAS,IAAI,eAAe;AAElC,eAAe,YAAsC;AACnD,QAAM,MAAuB,QAAQ;AAErC,MAAI,IAAI,KAAK,CAAC;AAEd,QAAM,SAAS;AAAA,IACb,cAAc,MAAM;AAClB,aAAO;AAAA,QACL,OAAO,IAAI,eAAe;AAAA,UACxB,aAAa;AAAA,UACb,kBAAkB;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,mBAAmB,MAAM;AACvB,aAAO;AAAA,QACL,OAAO,IAAI,eAAe;AAAA,UACxB,aAAa;AAAA,UACb,kBAAkB;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,oBAAoB,MAAM;AACxB,aAAO;AAAA,QACL,OAAO,uBAAuB;AAAA,MAChC;AAAA,IACF;AAAA,IAEA,yBAAyB,MAAM;AAC7B,aAAO;AAAA,QACL,OAAO,0BAA0B;AAAA,MACnC;AAAA,IACF;AAAA,IAEA,+BAA+B,YAAY;AACzC,YAAM,EAAE,OAAO,QAAQ,IAAI,MAAM,iCAAiC;AAClE,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,wBAAwB,MAAM;AAC5B,aAAO;AAAA,QACL,OAAO,IAAI,gBAAgB;AAAA,UACzB,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,qBAAqB,MAAM;AACzB,aAAO;AAAA,QACL,OAAO,IAAI,YAAY;AAAA,UACrB,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,mBAAmB,MAAM;AACvB,aAAO;AAAA,QACL,OAAO,6BAA6B;AAAA,MACtC;AAAA,IACF;AAAA,IACA,wBAAwB,MAAM;AAC5B,aAAO;AAAA,QACL,OAAO,gCAAgC;AAAA,MACzC;AAAA,IACF;AAAA,IAEA,2BAA2B,MAAM;AAC/B,aAAO;AAAA,QACL,OAAO,6BAA6B;AAAA,MACtC;AAAA,IACF;AAAA,IACA,gCAAgC,MAAM;AACpC,aAAO;AAAA,QACL,OAAO,gCAAgC;AAAA,MACzC;AAAA,IACF;AAAA,IACA,qBAAqB,MAAM;AACzB,aAAO;AAAA,QACL,OAAO,IAAI,YAAY;AAAA,UACrB,GAAG,6BAA6B;AAAA,UAChC;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,qBAAqB,MAAM;AACzB,aAAO;AAAA,QACL,OAAO,wBAAwB;AAAA,MACjC;AAAA,IACF;AAAA,IACA,iBAAiB,YAAY;AAAA,MAC3B,MAAM,oBAAoB,MAAM;AAAA,QAC9B,YAAY,MAAW;AACrB,gBAAM,IAAI;AAAA,QACZ;AAAA,QAEA,MAAM,IAAI,OAAuB,OAAa,SAAe;AAC3D,gBAAM,iBACJ,OAAO,kBAAkB,QAAQ;AACnC,cAAI,CAAC,gBAAgB;AACnB,kBAAM,IAAI,MAAM,6BAA6B;AAAA,UAC/C;AAGA,gBAAM,kBAAkB,QAAQ,IAAI,oBAChC,KAAK,QAAQ,QAAQ,IAAI,iBAAiB,IAC1C,KAAK,KAAK,WAAW,UAAU;AAGnC,cAAIC,UAAS;AACb,cAAI,QAAQ,IAAI,YAAY;AAC1B,YAAAA,UAAS,YAAY,OAAO;AAAA,cAC1B,YAAY;AAAA,gBACV,MAAM,QAAQ,IAAI;AAAA,gBAClB,MAAM,SAAS,QAAQ,IAAI,cAAc,MAAM;AAAA,gBAC/C,UAAU,QAAQ,IAAI,cAAc;AAAA,gBACpC,UAAU,QAAQ,IAAI,kBAAkB;AAAA,gBACxC,UAAU,QAAQ,IAAI,kBAAkB;AAAA,cAC1C;AAAA,cACA,WAAW;AAAA,YACb,CAAC;AAAA,UACH;AAGA,gBAAM,QAAQ,IAAI,iBAAiB;AAAA,YACjC,MAAM;AAAA,YACN,OAAO,IAAI,eAAe;AAAA,cACxB,QAAQ,QAAQ,IAAI;AAAA,cACpB,cAAc,QAAQ,IAAI,gBAAgB;AAAA,cAC1C,SAAS,QAAQ,IAAI;AAAA,YACvB,CAAC;AAAA,YACD,cAAc,GAAG,iBAAiB,gBAAgB,CAAC;AAAA;AAAA,gPAA+F,QAAQ,IAAI,QAAQ,GAAI,sBAAsB,cAAc;AAAA;AAAA,yDAAgE,KAAK,KAAK,iBAAiB,cAAc,CAAC;AAAA,YACxT;AAAA,YACA,aAAa;AAAA,YACb,yBAAyB;AAAA,YACzB,QAAAA;AAAA,UACF,CAAC;AAGD,gBAAM,MAAM,WAAW;AAEvB,cAAI,CAAC,GAAG,WAAW,KAAK,KAAK,iBAAiB,cAAc,CAAC,GAAG;AAC9D,kBAAM,MAAM,mBAAmB;AAAA,cAC7B,YAAY;AAAA,cACZ,QAAQ;AAAA,gBACN,OAAO;AAAA,gBACP,WAAW;AAAA,gBACX,cAAc;AAAA,cAChB;AAAA,YACF,CAAC;AAAA,UACH;AAEA,iBAAO,MAAM,IAAI,OAAO,OAAO,OAAO;AAAA,QACxC;AAAA,MACF;AAIA,aAAO;AAAA,QACL,OAAO,IAAI,YAAY;AAAA,UACrB,MAAM;AAAA,UACN,OAAO,IAAI,eAAe;AAAA,YACxB,QAAQ,QAAQ,IAAI;AAAA,YACpB,cAAc,QAAQ,IAAI,gBAAgB;AAAA,YAC1C,SAAS,QAAQ,IAAI;AAAA,UACvB,CAAC;AAAA,QACH,CAAC;AAAA,QACD,SAAS,MAAM;AACb,kBAAQ,IAAI,6BAA6B;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,IAAI,sCAAsC,CAAC,KAAK,QAAQ;AAC1D,UAAM,iBAAiB,IAAI,OAAO;AAIlC,UAAM,YAAY,sBAAsB,cAAc;AACtD,QAAI,gBAAgB,IAAI,YACrB,QAAQ,WAAW,EAAE,EACrB,QAAQ,QAAQ,EAAE;AAGrB,oBAAgB,cAAc,MAAM,GAAG,EAAE,CAAC;AAE1C,YAAQ,IAAI,kCAAkC,cAAc,EAAE;AAC9D,YAAQ,IAAI,+BAA+B,IAAI,WAAW,EAAE;AAC5D,YAAQ,IAAI,iCAAiC,aAAa,EAAE;AAG5D,UAAM,kBAAkB,QAAQ,IAAI,oBAChC,KAAK,QAAQ,QAAQ,IAAI,iBAAiB,IAC1C,KAAK,KAAK,WAAW,UAAU;AAEnC,UAAM,WAAW,KAAK,KAAK,iBAAiB,gBAAgB,MAAM;AAClE,YAAQ,IAAI,4BAA4B,QAAQ,EAAE;AAGlD,QAAI;AACJ,QAAI,CAAC,iBAAiB,cAAc,SAAS,GAAG,GAAG;AACjD,iBAAW,KAAK,KAAK,UAAU,YAAY;AAAA,IAC7C,OAAO;AACL,iBAAW,KAAK,KAAK,UAAU,aAAa;AAAA,IAC9C;AAEA,YAAQ,IAAI,qCAAqC,QAAQ,EAAE;AAG3D,UAAM,qBAAqB,KAAK,UAAU,QAAQ;AAClD,UAAM,qBAAqB,KAAK,UAAU,QAAQ;AAClD,QAAI,CAAC,mBAAmB,WAAW,kBAAkB,GAAG;AACtD,cAAQ;AAAA,QACN,wCAAwC,kBAAkB,eAAe,kBAAkB;AAAA,MAC7F;AACA,aAAO,IAAI,OAAO,GAAG,EAAE,KAAK,WAAW;AAAA,IACzC;AAGA,QAAI,GAAG,WAAW,QAAQ,KAAK,GAAG,SAAS,QAAQ,EAAE,OAAO,GAAG;AAC7D,cAAQ,IAAI,+BAA+B,QAAQ,EAAE;AAGrD,UAAI,SAAS,SAAS,KAAK,GAAG;AAC5B,YAAI,UAAU,gBAAgB,wBAAwB;AAAA,MACxD,WAAW,SAAS,SAAS,MAAM,GAAG;AACpC,YAAI,UAAU,gBAAgB,UAAU;AAAA,MAC1C,WAAW,SAAS,SAAS,OAAO,GAAG;AACrC,YAAI,UAAU,gBAAgB,WAAW;AAAA,MAC3C,WAAW,SAAS,SAAS,OAAO,GAAG;AACrC,YAAI,UAAU,gBAAgB,kBAAkB;AAAA,MAClD;AAEA,aAAO,IAAI,SAAS,KAAK,QAAQ,QAAQ,CAAC;AAAA,IAC5C;AAEA,YAAQ,IAAI,iCAAiC,QAAQ,EAAE;AAGvD,UAAM,YAAY,KAAK,KAAK,UAAU,YAAY;AAClD,QAAI,GAAG,WAAW,SAAS,KAAK,GAAG,SAAS,SAAS,EAAE,OAAO,GAAG;AAC/D,cAAQ,IAAI,8CAA8C,SAAS,EAAE;AACrE,UAAI,UAAU,gBAAgB,WAAW;AACzC,aAAO,IAAI,SAAS,KAAK,QAAQ,SAAS,CAAC;AAAA,IAC7C;AAGA,YAAQ,IAAI,uCAAuC,SAAS,EAAE;AAC9D,QAAI,OAAO,GAAG,EAAE,KAAK,WAAW;AAAA,EAClC,CAAC;AAED,SAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/C,wBAAoB;AAAA,MAClB,UAAU,IAAI,GAAG;AAAA,MACjB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AAED,SAAO;AACT;AAEA,IAAO,iBAAQ;;;ADvSf,IAAM,OAAe,aAAI,QAAQ;AACjC,eAAe,cAAc;AAC3B,QAAM,MAAM,MAAM,eAAU;AAE5B,SAAO,IAAI,QAA+C,CAAC,SAAS,WAAW;AAC7E,QAAI,OAAO,MAAM,CAAC,QAAQ;AACxB,UAAI,KAAK;AACP,eAAO,GAAG;AAAA,MACZ,OAAO;AACL,gBAAQ,GAAG;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAEA,YAAY,EAAE,KAAK,MAAM;AACvB,UAAQ,IAAI,4BAA4B,IAAI;AAC9C,CAAC,EAAE,MAAM,QAAQ,KAAK;","names":["process","memory"]}