"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ self["webpackHotUpdate_N_E"]("app/page",{ /***/ "(app-pages-browser)/./src/app/page.tsx": /*!**************************!*\ !*** ./src/app/page.tsx ***! \**************************/ /***/ ((module, __webpack_exports__, __webpack_require__) => { eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/.pnpm/next@15.5.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/.pnpm/next@15.5.4_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_chat_interface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/chat-interface */ \"(app-pages-browser)/./src/components/chat-interface.tsx\");\n/* harmony import */ var _components_agent_selector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/agent-selector */ \"(app-pages-browser)/./src/components/agent-selector.tsx\");\n/* harmony import */ var _components_header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/header */ \"(app-pages-browser)/./src/components/header.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction Home() {\n _s();\n const [selectedAgent, setSelectedAgent] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [showAgentDialog, setShowAgentDialog] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"Home.useEffect\": ()=>{\n // Try to load previously selected agent from localStorage\n const savedAgent = localStorage.getItem(\"selected-agent\");\n if (savedAgent) {\n try {\n const agent = JSON.parse(savedAgent);\n setSelectedAgent(agent);\n } catch (err) {\n console.error(\"[home] Failed to load saved agent:\", err);\n setShowAgentDialog(true);\n }\n } else {\n // No agent selected, show dialog\n setShowAgentDialog(true);\n }\n setIsLoading(false);\n }\n }[\"Home.useEffect\"], []);\n const handleAgentSelected = (agent)=>{\n setSelectedAgent(agent);\n };\n const handleSwitchAgent = ()=>{\n setShowAgentDialog(true);\n };\n if (isLoading) {\n return null // Avoid hydration mismatch\n ;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"gallery-shell\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex h-screen flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_header__WEBPACK_IMPORTED_MODULE_4__.Header, {\n agent: selectedAgent,\n onChangeAgent: handleSwitchAgent\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 49,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex-1 overflow-hidden px-3 py-4 sm:px-6 sm:py-8\",\n children: selectedAgent ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto flex h-full max-w-5xl justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full w-full\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_chat_interface__WEBPACK_IMPORTED_MODULE_2__.ChatInterface, {\n agent: selectedAgent\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 54,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 53,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 52,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex h-full items-center justify-center px-6 text-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"max-w-sm text-sm uppercase tracking-[0.2em] text-muted-foreground\",\n children: \"Select an agent to begin the dialogue\"\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 59,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_agent_selector__WEBPACK_IMPORTED_MODULE_3__.AgentSelector, {\n open: showAgentDialog,\n onOpenChange: setShowAgentDialog,\n onAgentSelected: handleAgentSelected\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 48,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/nicholai/Documents/dev/multi-agent_chat_interface/src/app/page.tsx\",\n lineNumber: 47,\n columnNumber: 5\n }, this);\n}\n_s(Home, \"aMaSEseBrQGHTlSbHhVPGbPq7gw=\");\n_c = Home;\nvar _c;\n$RefreshReg$(_c, \"Home\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRTJDO0FBQ2dCO0FBQ0E7QUFDZjtBQUc3QixTQUFTSzs7SUFDdEIsTUFBTSxDQUFDQyxlQUFlQyxpQkFBaUIsR0FBR1AsK0NBQVFBLENBQWU7SUFDakUsTUFBTSxDQUFDUSxpQkFBaUJDLG1CQUFtQixHQUFHVCwrQ0FBUUEsQ0FBQztJQUN2RCxNQUFNLENBQUNVLFdBQVdDLGFBQWEsR0FBR1gsK0NBQVFBLENBQUM7SUFFM0NDLGdEQUFTQTswQkFBQztZQUNSLDBEQUEwRDtZQUMxRCxNQUFNVyxhQUFhQyxhQUFhQyxPQUFPLENBQUM7WUFFeEMsSUFBSUYsWUFBWTtnQkFDZCxJQUFJO29CQUNGLE1BQU1HLFFBQVFDLEtBQUtDLEtBQUssQ0FBQ0w7b0JBQ3pCTCxpQkFBaUJRO2dCQUNuQixFQUFFLE9BQU9HLEtBQUs7b0JBQ1pDLFFBQVFDLEtBQUssQ0FBQyxzQ0FBc0NGO29CQUNwRFQsbUJBQW1CO2dCQUNyQjtZQUNGLE9BQU87Z0JBQ0wsaUNBQWlDO2dCQUNqQ0EsbUJBQW1CO1lBQ3JCO1lBRUFFLGFBQWE7UUFDZjt5QkFBRyxFQUFFO0lBRUwsTUFBTVUsc0JBQXNCLENBQUNOO1FBQzNCUixpQkFBaUJRO0lBQ25CO0lBRUEsTUFBTU8sb0JBQW9CO1FBQ3hCYixtQkFBbUI7SUFDckI7SUFFQSxJQUFJQyxXQUFXO1FBQ2IsT0FBTyxLQUFLLDJCQUEyQjs7SUFDekM7SUFFQSxxQkFDRSw4REFBQ2E7UUFBSUMsV0FBVTtrQkFDYiw0RUFBQ0Q7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNwQixzREFBTUE7b0JBQUNXLE9BQU9UO29CQUFlbUIsZUFBZUg7Ozs7Ozs4QkFDN0MsOERBQUNJO29CQUFLRixXQUFVOzhCQUNibEIsOEJBQ0MsOERBQUNpQjt3QkFBSUMsV0FBVTtrQ0FDYiw0RUFBQ0Q7NEJBQUlDLFdBQVU7c0NBQ2IsNEVBQUN0QixxRUFBYUE7Z0NBQUNhLE9BQU9UOzs7Ozs7Ozs7Ozs7Ozs7NkNBSTFCLDhEQUFDaUI7d0JBQUlDLFdBQVU7a0NBQ2IsNEVBQUNHOzRCQUFFSCxXQUFVO3NDQUFvRTs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFPdkYsOERBQUNyQixxRUFBYUE7b0JBQ1p5QixNQUFNcEI7b0JBQ05xQixjQUFjcEI7b0JBQ2RxQixpQkFBaUJUOzs7Ozs7Ozs7Ozs7Ozs7OztBQUszQjtHQWpFd0JoQjtLQUFBQSIsInNvdXJjZXMiOlsiL2hvbWUvbmljaG9sYWkvRG9jdW1lbnRzL2Rldi9tdWx0aS1hZ2VudF9jaGF0X2ludGVyZmFjZS9zcmMvYXBwL3BhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgQ2hhdEludGVyZmFjZSB9IGZyb20gXCJAL2NvbXBvbmVudHMvY2hhdC1pbnRlcmZhY2VcIlxuaW1wb3J0IHsgQWdlbnRTZWxlY3RvciB9IGZyb20gXCJAL2NvbXBvbmVudHMvYWdlbnQtc2VsZWN0b3JcIlxuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSBcIkAvY29tcG9uZW50cy9oZWFkZXJcIlxuaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gXCJAL2xpYi90eXBlc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEhvbWUoKSB7XG4gIGNvbnN0IFtzZWxlY3RlZEFnZW50LCBzZXRTZWxlY3RlZEFnZW50XSA9IHVzZVN0YXRlPEFnZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3Nob3dBZ2VudERpYWxvZywgc2V0U2hvd0FnZW50RGlhbG9nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRyeSB0byBsb2FkIHByZXZpb3VzbHkgc2VsZWN0ZWQgYWdlbnQgZnJvbSBsb2NhbFN0b3JhZ2VcbiAgICBjb25zdCBzYXZlZEFnZW50ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzZWxlY3RlZC1hZ2VudFwiKVxuXG4gICAgaWYgKHNhdmVkQWdlbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGFnZW50ID0gSlNPTi5wYXJzZShzYXZlZEFnZW50KVxuICAgICAgICBzZXRTZWxlY3RlZEFnZW50KGFnZW50KVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJbaG9tZV0gRmFpbGVkIHRvIGxvYWQgc2F2ZWQgYWdlbnQ6XCIsIGVycilcbiAgICAgICAgc2V0U2hvd0FnZW50RGlhbG9nKHRydWUpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGFnZW50IHNlbGVjdGVkLCBzaG93IGRpYWxvZ1xuICAgICAgc2V0U2hvd0FnZW50RGlhbG9nKHRydWUpXG4gICAgfVxuXG4gICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVBZ2VudFNlbGVjdGVkID0gKGFnZW50OiBBZ2VudCkgPT4ge1xuICAgIHNldFNlbGVjdGVkQWdlbnQoYWdlbnQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVTd2l0Y2hBZ2VudCA9ICgpID0+IHtcbiAgICBzZXRTaG93QWdlbnREaWFsb2codHJ1ZSlcbiAgfVxuXG4gIGlmIChpc0xvYWRpbmcpIHtcbiAgICByZXR1cm4gbnVsbCAvLyBBdm9pZCBoeWRyYXRpb24gbWlzbWF0Y2hcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJnYWxsZXJ5LXNoZWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1zY3JlZW4gZmxleC1jb2xcIj5cbiAgICAgICAgPEhlYWRlciBhZ2VudD17c2VsZWN0ZWRBZ2VudH0gb25DaGFuZ2VBZ2VudD17aGFuZGxlU3dpdGNoQWdlbnR9IC8+XG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy1oaWRkZW4gcHgtMyBweS00IHNtOnB4LTYgc206cHktOFwiPlxuICAgICAgICAgIHtzZWxlY3RlZEFnZW50ID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIGZsZXggaC1mdWxsIG1heC13LTV4bCBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtZnVsbCB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8Q2hhdEludGVyZmFjZSBhZ2VudD17c2VsZWN0ZWRBZ2VudH0gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtYXgtdy1zbSB0ZXh0LXNtIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgIFNlbGVjdCBhbiBhZ2VudCB0byBiZWdpbiB0aGUgZGlhbG9ndWVcbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9tYWluPlxuXG4gICAgICAgIDxBZ2VudFNlbGVjdG9yXG4gICAgICAgICAgb3Blbj17c2hvd0FnZW50RGlhbG9nfVxuICAgICAgICAgIG9uT3BlbkNoYW5nZT17c2V0U2hvd0FnZW50RGlhbG9nfVxuICAgICAgICAgIG9uQWdlbnRTZWxlY3RlZD17aGFuZGxlQWdlbnRTZWxlY3RlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJDaGF0SW50ZXJmYWNlIiwiQWdlbnRTZWxlY3RvciIsIkhlYWRlciIsIkhvbWUiLCJzZWxlY3RlZEFnZW50Iiwic2V0U2VsZWN0ZWRBZ2VudCIsInNob3dBZ2VudERpYWxvZyIsInNldFNob3dBZ2VudERpYWxvZyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsInNhdmVkQWdlbnQiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiYWdlbnQiLCJKU09OIiwicGFyc2UiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJoYW5kbGVBZ2VudFNlbGVjdGVkIiwiaGFuZGxlU3dpdGNoQWdlbnQiLCJkaXYiLCJjbGFzc05hbWUiLCJvbkNoYW5nZUFnZW50IiwibWFpbiIsInAiLCJvcGVuIiwib25PcGVuQ2hhbmdlIiwib25BZ2VudFNlbGVjdGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/page.tsx\n")); /***/ }) });