@jami-studio/core 0.92.11 → 0.92.13
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/corpus/core/CHANGELOG.md +12 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/cli/workspace-dev.ts +1816 -1557
- package/corpus/core/src/deploy/build.ts +3797 -3754
- package/corpus/core/src/vite/client.ts +1 -0
- package/dist/cli/workspace-dev.d.ts +43 -0
- package/dist/cli/workspace-dev.d.ts.map +1 -1
- package/dist/cli/workspace-dev.js +299 -74
- package/dist/cli/workspace-dev.js.map +1 -1
- package/dist/deploy/build.d.ts +10 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +694 -656
- package/dist/deploy/build.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/package.json +1 -1
package/dist/vite/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"events\";\r\nimport fs from \"fs\";\r\nimport type { IncomingMessage, ServerResponse } from \"http\";\r\nimport { createRequire, syncBuiltinESMExports } from \"module\";\r\nimport path from \"path\";\r\nimport { fileURLToPath } from \"url\";\r\n\r\nimport type { ConfigEnv, Plugin, UserConfig } from \"vite\";\r\n\r\nimport {\r\n mergePendingChangelog,\r\n parsePendingEntry,\r\n} from \"../changelog/parse.js\";\r\nimport { getViteDevRecoveryScript } from \"../client/vite-dev-recovery-script.js\";\r\nimport { findWorkspaceRoot } from \"../scripts/utils.js\";\r\nimport { verifyEmbedSessionToken } from \"../server/embed-session.js\";\r\nimport {\r\n EMBED_SESSION_COOKIE,\r\n EMBED_TOKEN_QUERY_PARAM,\r\n MCP_APP_CHAT_BRIDGE_QUERY_PARAM,\r\n} from \"../shared/embed-auth.js\";\r\nimport {\r\n isMcpEmbedCorsOrigin,\r\n MCP_EMBED_CORS_ALLOW_HEADERS,\r\n MCP_EMBED_STATIC_ASSET_HEADERS,\r\n mcpEmbedStaticAssetRouteRules,\r\n shouldAllowMcpEmbedCredentials,\r\n} from \"../shared/mcp-embed-headers.js\";\r\nimport {\r\n normalizeMcpIntegrationsConfig,\r\n type McpIntegrationsConfigInput,\r\n} from \"../shared/mcp-integration-config.js\";\r\nimport {\r\n normalizeAgentNativeRouteWarmupConfig,\r\n type AgentNativeRouteWarmupConfigInput,\r\n} from \"../shared/route-warmup-config.js\";\r\nimport { actionTypesPlugin } from \"./action-types-plugin.js\";\r\nimport { agentsBundlePlugin } from \"./agents-bundle-plugin.js\";\r\n\r\nconst require = createRequire(import.meta.url);\r\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\r\nlet nitroFsWatchGuardInstalled = false;\r\n\r\ntype FsWatchArgs = [fs.PathLike, ...any[]];\r\n\r\nfunction isFileWatchLimitError(\r\n error: NodeJS.ErrnoException | undefined,\r\n): boolean {\r\n return error?.code === \"EMFILE\" || error?.code === \"ENOSPC\";\r\n}\r\n\r\nfunction watchPollingIntervalMs(): number {\r\n const raw = Number(process.env.CHOKIDAR_INTERVAL ?? 1000);\r\n return Number.isFinite(raw) && raw > 0 ? raw : 1000;\r\n}\r\n\r\nfunction fsWatchListener(args: FsWatchArgs): fs.WatchListener<string> | null {\r\n const maybeOptionsOrListener = args[1];\r\n const maybeListener = args[2];\r\n if (typeof maybeOptionsOrListener === \"function\")\r\n return maybeOptionsOrListener as fs.WatchListener<string>;\r\n if (typeof maybeListener === \"function\")\r\n return maybeListener as fs.WatchListener<string>;\r\n return null;\r\n}\r\n\r\nfunction fsWatchPersistent(args: FsWatchArgs): boolean {\r\n const options = args[1];\r\n if (!options || typeof options === \"function\") return true;\r\n if (typeof options === \"string\" || Buffer.isBuffer(options)) return true;\r\n return options.persistent !== false;\r\n}\r\n\r\nfunction directEntrySnapshot(\r\n target: string,\r\n): Map<string, { mtimeMs: number; size: number; directory: boolean }> {\r\n const snapshot = new Map<\r\n string,\r\n { mtimeMs: number; size: number; directory: boolean }\r\n >();\r\n const stat = fs.statSync(target);\r\n if (!stat.isDirectory()) {\r\n snapshot.set(path.basename(target), {\r\n mtimeMs: stat.mtimeMs,\r\n size: stat.size,\r\n directory: false,\r\n });\r\n return snapshot;\r\n }\r\n for (const entry of fs.readdirSync(target, { withFileTypes: true })) {\r\n const entryPath = path.join(target, entry.name);\r\n try {\r\n const entryStat = fs.statSync(entryPath);\r\n snapshot.set(entry.name, {\r\n mtimeMs: entryStat.mtimeMs,\r\n size: entryStat.size,\r\n directory: entryStat.isDirectory(),\r\n });\r\n } catch {\r\n // The entry may have disappeared between readdir and stat.\r\n }\r\n }\r\n return snapshot;\r\n}\r\n\r\nfunction createPollingFsWatcher(args: FsWatchArgs): fs.FSWatcher {\r\n const target = String(args[0]);\r\n const listener = fsWatchListener(args);\r\n const emitter = new EventEmitter() as fs.FSWatcher;\r\n let closed = false;\r\n let previous = directEntrySnapshot(target);\r\n\r\n if (listener) emitter.on(\"change\", listener);\r\n\r\n const emitChange = (eventName: \"change\" | \"rename\", filename: string) => {\r\n emitter.emit(\"change\", eventName, filename);\r\n };\r\n\r\n const timer = setInterval(() => {\r\n if (closed) return;\r\n let next: typeof previous;\r\n try {\r\n next = directEntrySnapshot(target);\r\n } catch (error) {\r\n emitter.emit(\"error\", error);\r\n return;\r\n }\r\n\r\n for (const [filename, current] of next) {\r\n const old = previous.get(filename);\r\n if (!old) {\r\n emitChange(\"rename\", filename);\r\n continue;\r\n }\r\n if (\r\n old.mtimeMs !== current.mtimeMs ||\r\n old.size !== current.size ||\r\n old.directory !== current.directory\r\n ) {\r\n emitChange(\"change\", filename);\r\n }\r\n }\r\n for (const filename of previous.keys()) {\r\n if (!next.has(filename)) emitChange(\"rename\", filename);\r\n }\r\n previous = next;\r\n }, watchPollingIntervalMs());\r\n\r\n if (!fsWatchPersistent(args)) timer.unref();\r\n\r\n emitter.close = () => {\r\n if (closed) return;\r\n closed = true;\r\n clearInterval(timer);\r\n emitter.removeAllListeners();\r\n };\r\n emitter.ref = () => {\r\n timer.ref();\r\n return emitter;\r\n };\r\n emitter.unref = () => {\r\n timer.unref();\r\n return emitter;\r\n };\r\n\r\n return emitter;\r\n}\r\n\r\nfunction warnNitroFsWatchFallback(target: unknown, err: NodeJS.ErrnoException) {\r\n console.warn(\r\n `[agent-native] Falling back to polling Nitro fs.watch for ${String(target)}: ${err.message}`,\r\n );\r\n}\r\n\r\nfunction installNitroFsWatchGuard(): void {\r\n if (nitroFsWatchGuardInstalled) return;\r\n nitroFsWatchGuardInstalled = true;\r\n\r\n const originalWatch = fs.watch.bind(fs) as (...args: any[]) => fs.FSWatcher;\r\n (fs as typeof fs & { watch: (...args: any[]) => fs.FSWatcher }).watch = (\r\n ...args: any[]\r\n ) => {\r\n let watcher: fs.FSWatcher;\r\n try {\r\n watcher = originalWatch(...args);\r\n } catch (error) {\r\n const err = error as NodeJS.ErrnoException;\r\n if (!isFileWatchLimitError(err)) throw error;\r\n warnNitroFsWatchFallback(args[0], err);\r\n return createPollingFsWatcher(args as FsWatchArgs);\r\n }\r\n\r\n const originalEmit = watcher.emit.bind(watcher);\r\n const originalClose = watcher.close.bind(watcher);\r\n let pollingFallback: fs.FSWatcher | undefined;\r\n\r\n watcher.close = (() => {\r\n pollingFallback?.close();\r\n return originalClose();\r\n }) as fs.FSWatcher[\"close\"];\r\n\r\n watcher.emit = ((eventName: string | symbol, ...eventArgs: any[]) => {\r\n const err = eventArgs[0] as NodeJS.ErrnoException | undefined;\r\n if (eventName === \"error\" && isFileWatchLimitError(err) && err) {\r\n warnNitroFsWatchFallback(args[0], err);\r\n watcher.close();\r\n pollingFallback = createPollingFsWatcher(args as FsWatchArgs);\r\n pollingFallback.on(\"change\", (changeEvent, filename) => {\r\n originalEmit(\"change\", changeEvent, filename);\r\n });\r\n pollingFallback.on(\"error\", (pollingError) => {\r\n originalEmit(\"error\", pollingError);\r\n });\r\n return false;\r\n }\r\n return originalEmit(eventName, ...eventArgs);\r\n }) as fs.FSWatcher[\"emit\"];\r\n return watcher;\r\n };\r\n syncBuiltinESMExports();\r\n}\r\n\r\nfunction nitroVitePlugin(\r\n ...args: Parameters<typeof import(\"nitro/vite\").nitro>\r\n) {\r\n installNitroFsWatchGuard();\r\n return require(\"nitro/vite\").nitro(...args);\r\n}\r\n\r\n/**\r\n * Sync discovery for the workspace-core in an enterprise monorepo.\r\n *\r\n * Mirrors `getWorkspaceCoreExports` in deploy/workspace-core.ts but stays\r\n * synchronous so it can run inline in `defineConfig`. Returns the workspace\r\n * core's package name + absolute directory, or null if no workspace core is\r\n * declared in the ancestor chain.\r\n *\r\n * Walks up from `startDir` looking for a package.json with\r\n * `agent-native.workspaceCore`. Resolves the declared package name through\r\n * `<workspaceRoot>/node_modules/<name>` (pnpm symlink, fastest) or by\r\n * scanning `packages/*` for a matching `name` field (fallback for\r\n * pre-install scenarios).\r\n */\r\nfunction findWorkspaceCoreSync(\r\n startDir: string,\r\n): { packageName: string; packageDir: string; workspaceRoot: string } | null {\r\n // 1) Walk up looking for the root package.json that declares workspaceCore.\r\n let dir = path.resolve(startDir);\r\n let workspaceRoot: string | null = null;\r\n let packageName: string | null = null;\r\n for (let i = 0; i < 20; i++) {\r\n const pkgPath = path.join(dir, \"package.json\");\r\n if (fs.existsSync(pkgPath)) {\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\r\n const declared = pkg?.[\"agent-native\"]?.workspaceCore;\r\n if (typeof declared === \"string\" && declared.length > 0) {\r\n workspaceRoot = dir;\r\n packageName = declared;\r\n break;\r\n }\r\n } catch {\r\n // Malformed package.json — keep walking up.\r\n }\r\n }\r\n const parent = path.dirname(dir);\r\n if (parent === dir) break;\r\n dir = parent;\r\n }\r\n if (!workspaceRoot || !packageName) return null;\r\n\r\n // 2a) pnpm/npm symlink under workspaceRoot/node_modules.\r\n const nm = path.join(workspaceRoot, \"node_modules\", packageName);\r\n if (fs.existsSync(path.join(nm, \"package.json\"))) {\r\n return { packageName, packageDir: fs.realpathSync(nm), workspaceRoot };\r\n }\r\n\r\n // 2b) Scan packages/* and packages/@scope/* for a matching `name`.\r\n const packagesDir = path.join(workspaceRoot, \"packages\");\r\n if (fs.existsSync(packagesDir)) {\r\n const candidates: string[] = [];\r\n for (const entry of fs.readdirSync(packagesDir, { withFileTypes: true })) {\r\n if (!entry.isDirectory()) continue;\r\n candidates.push(path.join(packagesDir, entry.name));\r\n if (entry.name.startsWith(\"@\")) {\r\n const scopeDir = path.join(packagesDir, entry.name);\r\n for (const sub of fs.readdirSync(scopeDir, { withFileTypes: true })) {\r\n if (sub.isDirectory()) candidates.push(path.join(scopeDir, sub.name));\r\n }\r\n }\r\n }\r\n for (const c of candidates) {\r\n const p = path.join(c, \"package.json\");\r\n if (!fs.existsSync(p)) continue;\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(p, \"utf-8\"));\r\n if (pkg?.name === packageName)\r\n return { packageName, packageDir: fs.realpathSync(c), workspaceRoot };\r\n } catch {\r\n // ignore malformed package.json\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction findLocalWorkspacePackageDeps(\r\n startDir: string,\r\n workspaceRoot: string | null,\r\n): Array<{ packageName: string; packageDir: string }> {\r\n const pkgPath = path.join(startDir, \"package.json\");\r\n if (!fs.existsSync(pkgPath)) return [];\r\n\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\r\n const deps = {\r\n ...(pkg.dependencies ?? {}),\r\n ...(pkg.devDependencies ?? {}),\r\n ...(pkg.peerDependencies ?? {}),\r\n } as Record<string, string>;\r\n const seen = new Set<string>();\r\n const packages: Array<{ packageName: string; packageDir: string }> = [];\r\n\r\n for (const [packageName, range] of Object.entries(deps)) {\r\n if (seen.has(packageName)) continue;\r\n seen.add(packageName);\r\n\r\n try {\r\n let packageJsonPath: string | null = null;\r\n if (range.startsWith(\"file:\")) {\r\n packageJsonPath = findFilePackageJsonPath(pkgPath, range);\r\n } else if (range.startsWith(\"workspace:\")) {\r\n packageJsonPath = findWorkspacePackageJsonPath(\r\n pkgPath,\r\n packageName,\r\n workspaceRoot,\r\n );\r\n } else {\r\n continue;\r\n }\r\n if (!packageJsonPath) continue;\r\n const packageDir = fs.realpathSync(path.dirname(packageJsonPath));\r\n const packageJson = JSON.parse(\r\n fs.readFileSync(packageJsonPath, \"utf-8\"),\r\n );\r\n if (packageJson?.name !== packageName) continue;\r\n packages.push({ packageName, packageDir });\r\n } catch {\r\n // Dependency may not have been installed yet; ignore it for dev config.\r\n }\r\n }\r\n\r\n return packages;\r\n } catch {\r\n return [];\r\n }\r\n}\r\n\r\nfunction packagePathSegments(packageName: string): string[] {\r\n return packageName.split(\"/\");\r\n}\r\n\r\nfunction findWorkspacePackageJsonPath(\r\n pkgPath: string,\r\n packageName: string,\r\n workspaceRoot: string | null,\r\n): string | null {\r\n const packageSegments = packagePathSegments(packageName);\r\n const candidates = [\r\n path.join(path.dirname(pkgPath), \"node_modules\", ...packageSegments),\r\n ...(workspaceRoot\r\n ? [path.join(workspaceRoot, \"node_modules\", ...packageSegments)]\r\n : []),\r\n ];\r\n\r\n for (const candidate of candidates) {\r\n const packageJsonPath = path.join(candidate, \"package.json\");\r\n if (!fs.existsSync(packageJsonPath)) continue;\r\n const realPath = fs.realpathSync(packageJsonPath);\r\n if (\r\n workspaceRoot &&\r\n !realPath.startsWith(`${fs.realpathSync(workspaceRoot)}${path.sep}`)\r\n ) {\r\n continue;\r\n }\r\n return realPath;\r\n }\r\n\r\n if (workspaceRoot) {\r\n return findWorkspacePackageJsonByName(workspaceRoot, packageName);\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findWorkspacePackageJsonByName(\r\n workspaceRoot: string,\r\n packageName: string,\r\n): string | null {\r\n const searchRoots = [\"packages\", \"templates\"].map((name) =>\r\n path.join(workspaceRoot, name),\r\n );\r\n\r\n for (const searchRoot of searchRoots) {\r\n const packageJsonPath = findPackageJsonInTree(searchRoot, packageName, 2);\r\n if (packageJsonPath) return packageJsonPath;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findPackageJsonInTree(\r\n root: string,\r\n packageName: string,\r\n maxDepth: number,\r\n): string | null {\r\n if (!fs.existsSync(root)) return null;\r\n\r\n const packageJsonPath = path.join(root, \"package.json\");\r\n if (fs.existsSync(packageJsonPath)) {\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\r\n if (pkg?.name === packageName) return fs.realpathSync(packageJsonPath);\r\n } catch {\r\n // Ignore malformed workspace package metadata.\r\n }\r\n }\r\n\r\n if (maxDepth <= 0) return null;\r\n\r\n for (const entry of fs.readdirSync(root, { withFileTypes: true })) {\r\n if (!entry.isDirectory()) continue;\r\n if (entry.name === \"node_modules\" || entry.name.startsWith(\".\")) continue;\r\n\r\n const found = findPackageJsonInTree(\r\n path.join(root, entry.name),\r\n packageName,\r\n maxDepth - 1,\r\n );\r\n if (found) return found;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findFilePackageJsonPath(\r\n pkgPath: string,\r\n range: string,\r\n): string | null {\r\n const spec = range.slice(\"file:\".length);\r\n const packageDir = spec.startsWith(\"//\")\r\n ? fileURLToPath(range)\r\n : path.resolve(path.dirname(pkgPath), spec);\r\n const packageJsonPath = path.join(packageDir, \"package.json\");\r\n return fs.existsSync(packageJsonPath) ? packageJsonPath : null;\r\n}\r\n\r\nfunction findPnpmWorkspaceRoot(startDir: string): string | null {\r\n let dir = path.resolve(startDir);\r\n for (let i = 0; i < 20; i++) {\r\n if (fs.existsSync(path.join(dir, \"pnpm-workspace.yaml\"))) return dir;\r\n const parent = path.dirname(dir);\r\n if (parent === dir) break;\r\n dir = parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Escape a string so it can be embedded as a regex literal. */\r\nfunction escapeRegex(s: string): string {\r\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\r\n}\r\n\r\n/** Check if a package is installed in the project */\r\nfunction hasDep(pkg: string, cwd: string): boolean {\r\n try {\r\n const pkgJson = JSON.parse(\r\n fs.readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\r\n );\r\n return !!(\r\n pkgJson.dependencies?.[pkg] ||\r\n pkgJson.devDependencies?.[pkg] ||\r\n pkgJson.peerDependencies?.[pkg]\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction hasCoreDep(pkg: string, cwd: string): boolean {\r\n const coreRoot = findCorePackageRoot(cwd);\r\n if (!coreRoot) return false;\r\n try {\r\n const pkgJson = JSON.parse(\r\n fs.readFileSync(path.join(coreRoot, \"package.json\"), \"utf-8\"),\r\n );\r\n return !!(pkgJson.dependencies?.[pkg] || pkgJson.devDependencies?.[pkg]);\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction hasOptimizeDep(pkg: string, cwd: string): boolean {\r\n return hasDep(pkg, cwd) || hasCoreDep(pkg, cwd);\r\n}\r\n\r\n/**\r\n * Build the `resolve.dedupe` list dynamically. Reads core's package.json and\r\n * collects every peerDependency that the consuming app also declares. This\r\n * ensures Vite resolves them from the app root, not from core's own\r\n * node_modules — preventing duplicate React context / singleton issues.\r\n */\r\nfunction getClientDedupe(cwd: string): string[] {\r\n // Always dedupe React internals (sub-path exports aren't in peerDeps)\r\n const always = new Set([\r\n \"react\",\r\n \"react-dom\",\r\n \"react-dom/client\",\r\n // Framework routers must share one react-router instance so\r\n // FrameworkContext (Meta/Links/Scripts) matches ServerRouter/HydratedRouter.\r\n ...(hasDep(\"react-router\", cwd)\r\n ? [\"react-router\", \"react-router/dom\"]\r\n : []),\r\n ]);\r\n\r\n // Server-only packages that never run in the browser — no point deduping.\r\n const serverOnly = new Set([\r\n \"drizzle-kit\",\r\n \"node-pty\",\r\n \"postgres\",\r\n \"ws\",\r\n \"typescript\",\r\n \"vite\",\r\n \"@vitejs/plugin-react-swc\",\r\n \"tailwindcss\",\r\n \"@tailwindcss/vite\",\r\n ]);\r\n\r\n try {\r\n const corePkgPath = path.resolve(__dirname, \"../../package.json\");\r\n const corePkg = JSON.parse(fs.readFileSync(corePkgPath, \"utf-8\"));\r\n\r\n // Scan both peerDependencies and dependencies. Direct deps like\r\n // @radix-ui/* use React internally — they must resolve against the\r\n // app's React, not a second copy inside core's node_modules.\r\n const coreDeps = new Set([\r\n ...Object.keys(corePkg.peerDependencies ?? {}),\r\n ...Object.keys(corePkg.dependencies ?? {}),\r\n ]);\r\n\r\n // Read the consuming app's dependencies\r\n const appPkg = JSON.parse(\r\n fs.readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\r\n );\r\n const appDeps = new Set([\r\n ...Object.keys(appPkg.dependencies ?? {}),\r\n ...Object.keys(appPkg.devDependencies ?? {}),\r\n ]);\r\n\r\n for (const dep of coreDeps) {\r\n if (serverOnly.has(dep)) continue;\r\n // Dedupe if the app also declares it, OR if it's a React-based\r\n // UI library (Radix, Tanstack) that must share the app's React.\r\n if (\r\n appDeps.has(dep) ||\r\n dep.startsWith(\"@radix-ui/\") ||\r\n dep.startsWith(\"@tanstack/\")\r\n ) {\r\n always.add(dep);\r\n }\r\n }\r\n } catch {\r\n // Can't read package.json — fall back to known singletons\r\n }\r\n\r\n return [...always];\r\n}\r\n\r\n/**\r\n * Locate `packages/core/src` if we're inside the framework monorepo.\r\n * Shared between `getCoreSourceAliases` (which redirects imports to src/)\r\n * and `getDefaultOptimizeDeps` (which must NOT prebundle from dist/ when\r\n * the alias is active — otherwise the prebundle is built from a snapshot\r\n * of dist/ at startup and never picks up new exports).\r\n */\r\nfunction findCorePackageRoot(cwd: string): string | null {\r\n try {\r\n const pkg = JSON.parse(\r\n fs.readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\r\n ) as {\r\n dependencies?: Record<string, string>;\r\n devDependencies?: Record<string, string>;\r\n };\r\n const spec =\r\n pkg.dependencies?.[\"@agent-native/core\"] ??\r\n pkg.devDependencies?.[\"@agent-native/core\"];\r\n if (typeof spec === \"string\" && spec.startsWith(\"file:\")) {\r\n const rooted = fileURLToPath(spec);\r\n if (fs.existsSync(path.join(rooted, \"src/index.ts\"))) return rooted;\r\n }\r\n } catch {\r\n // package.json missing or unreadable — fall through to path heuristics.\r\n }\r\n\r\n const candidates = [\r\n path.resolve(cwd, \"../../packages/core\"), // templates/<name>/\r\n path.resolve(cwd, \"../core\"), // packages/<name>/\r\n path.resolve(cwd, \"node_modules/@agent-native/core\"),\r\n ];\r\n for (const candidate of candidates) {\r\n try {\r\n if (!fs.existsSync(candidate)) continue;\r\n const root = fs.realpathSync(candidate);\r\n if (fs.existsSync(path.join(root, \"src/index.ts\"))) return root;\r\n } catch {\r\n continue;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction findCoreSrcDir(cwd: string): string | null {\r\n const root = findCorePackageRoot(cwd);\r\n return root ? path.join(root, \"src\") : null;\r\n}\r\n\r\n/**\r\n * Pin react-router imports to the consuming app's install. pnpm keeps a peer\r\n * copy under `@agent-native/core/node_modules/react-router`; `resolve.dedupe`\r\n * alone can still leave SSR `Meta`/`Links` on a different FrameworkContext\r\n * than React Router's dev server router.\r\n */\r\nfunction getReactRouterAliases(\r\n cwd: string,\r\n): Array<{ find: RegExp; replacement: string }> {\r\n if (!hasDep(\"react-router\", cwd)) return [];\r\n try {\r\n const req = createRequire(path.join(cwd, \"package.json\"));\r\n return [\r\n {\r\n find: /^react-router\\/dom$/,\r\n replacement: req.resolve(\"react-router/dom\"),\r\n },\r\n { find: /^react-router$/, replacement: req.resolve(\"react-router\") },\r\n ];\r\n } catch {\r\n return [];\r\n }\r\n}\r\n\r\n/**\r\n * Every `@agent-native/core` subpath that gets a source alias. Must stay in\r\n * sync with `getCoreSourceAliases`. Used by `getDefaultOptimizeDeps` to skip\r\n * prebundling in monorepo mode, and by the consumer config to add them to\r\n * `optimizeDeps.exclude` so Vite always resolves them through the source\r\n * alias on every request — never from a stale dist/ snapshot.\r\n */\r\nconst CORE_CLIENT_SUBPATHS = [\r\n \"@agent-native/core\",\r\n \"@agent-native/core/client\",\r\n \"@agent-native/core/client/chat\",\r\n \"@agent-native/core/client/collab\",\r\n \"@agent-native/core/client/composer\",\r\n \"@agent-native/core/client/conversation\",\r\n \"@agent-native/core/client/editor\",\r\n \"@agent-native/core/client/i18n\",\r\n \"@agent-native/core/client/resources\",\r\n // Dedicated subpath that exports ONLY appBasePath/agentNativePath/appPath.\r\n // entry.client.tsx imports from here so it never pulls the full client barrel\r\n // (and its transitive ~650-700 KB gzip chat stack) onto the critical path.\r\n \"@agent-native/core/client/api-path\",\r\n \"@agent-native/core/blocks\",\r\n \"@agent-native/core/blocks/server\",\r\n \"@agent-native/core/client/extensions\",\r\n \"@agent-native/core/client/tools\", // legacy alias\r\n \"@agent-native/core/client/org\",\r\n \"@agent-native/core/client/db-admin\",\r\n \"@agent-native/core/client/observability\",\r\n \"@agent-native/core/client/onboarding\",\r\n \"@agent-native/core/client/sharing\",\r\n \"@agent-native/core/client/notifications\",\r\n \"@agent-native/core/client/progress\",\r\n \"@agent-native/core/client/transcription/use-live-transcription\",\r\n \"@agent-native/core/voice\",\r\n];\r\n\r\nconst TOOLKIT_CLIENT_SUBPATHS = [\r\n \"@agent-native/toolkit\",\r\n \"@agent-native/toolkit/app-shell\",\r\n \"@agent-native/toolkit/collab-ui\",\r\n \"@agent-native/toolkit/hooks\",\r\n \"@agent-native/toolkit/onboarding\",\r\n \"@agent-native/toolkit/provider\",\r\n \"@agent-native/toolkit/sharing\",\r\n \"@agent-native/toolkit/ui\",\r\n \"@agent-native/toolkit/utils\",\r\n];\r\n\r\nconst NODE_SSR_NATIVE_EXTERNALS = [\"better-sqlite3\", \"bindings\"];\r\n\r\nfunction getDefaultOptimizeDeps(cwd: string): string[] {\r\n const inMonorepo = findCoreSrcDir(cwd) !== null;\r\n const entries: Array<{ specifier: string; packageName?: string }> = [\r\n // In monorepo mode the source alias resolves these to src/ on every\r\n // import, so prebundling from dist/ would just create a stale snapshot.\r\n // Skip them entirely — `optimizeDeps.exclude` below makes that explicit.\r\n ...(inMonorepo\r\n ? []\r\n : ([\r\n { specifier: \"@agent-native/core\" },\r\n {\r\n specifier: \"@agent-native/core/client\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/chat\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/collab\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/composer\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/conversation\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/editor\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/i18n\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/resources\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/org\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/extensions\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n // Legacy alias — prior name for @agent-native/core/client/extensions.\r\n // Keep so deployed templates that haven't been updated still resolve.\r\n specifier: \"@agent-native/core/client/tools\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n ...TOOLKIT_CLIENT_SUBPATHS.map((specifier) => ({\r\n specifier,\r\n packageName: \"@agent-native/toolkit\",\r\n })),\r\n ] as Array<{ specifier: string; packageName?: string }>)),\r\n { specifier: \"@libsql/client\" },\r\n { specifier: \"@amplitude/analytics-browser\" },\r\n { specifier: \"@assistant-ui/react\" },\r\n { specifier: \"@codemirror/lang-sql\" },\r\n { specifier: \"@codemirror/theme-one-dark\" },\r\n { specifier: \"@excalidraw/excalidraw\" },\r\n { specifier: \"@excalidraw/mermaid-to-excalidraw\" },\r\n {\r\n specifier: \"@modelcontextprotocol/ext-apps/app-bridge\",\r\n packageName: \"@modelcontextprotocol/ext-apps\",\r\n },\r\n { specifier: \"@paper-design/shaders-react\" },\r\n { specifier: \"@radix-ui/react-accordion\" },\r\n { specifier: \"@radix-ui/react-alert-dialog\" },\r\n { specifier: \"@radix-ui/react-aspect-ratio\" },\r\n { specifier: \"@radix-ui/react-avatar\" },\r\n { specifier: \"@radix-ui/react-checkbox\" },\r\n { specifier: \"@radix-ui/react-collapsible\" },\r\n { specifier: \"@radix-ui/react-context-menu\" },\r\n { specifier: \"@radix-ui/react-dialog\" },\r\n { specifier: \"@radix-ui/react-dropdown-menu\" },\r\n { specifier: \"@radix-ui/react-hover-card\" },\r\n { specifier: \"@radix-ui/react-label\" },\r\n { specifier: \"@radix-ui/react-menubar\" },\r\n { specifier: \"@radix-ui/react-navigation-menu\" },\r\n { specifier: \"@radix-ui/react-popover\" },\r\n { specifier: \"@radix-ui/react-progress\" },\r\n { specifier: \"@radix-ui/react-radio-group\" },\r\n { specifier: \"@radix-ui/react-scroll-area\" },\r\n { specifier: \"@radix-ui/react-select\" },\r\n { specifier: \"@radix-ui/react-separator\" },\r\n { specifier: \"@radix-ui/react-slider\" },\r\n { specifier: \"@radix-ui/react-slot\" },\r\n { specifier: \"@radix-ui/react-switch\" },\r\n { specifier: \"@radix-ui/react-tabs\" },\r\n { specifier: \"@radix-ui/react-toast\" },\r\n { specifier: \"@radix-ui/react-toggle\" },\r\n { specifier: \"@radix-ui/react-toggle-group\" },\r\n { specifier: \"@radix-ui/react-tooltip\" },\r\n { specifier: \"@sentry/browser\" },\r\n {\r\n specifier: \"@shadcn/react/message-scroller\",\r\n packageName: \"@shadcn/react\",\r\n },\r\n { specifier: \"@tanstack/react-query\" },\r\n { specifier: \"@tabler/icons-react\" },\r\n { specifier: \"@tiptap/core\" },\r\n { specifier: \"@tiptap/extension-code-block-lowlight\" },\r\n { specifier: \"@tiptap/extension-collaboration\" },\r\n { specifier: \"@tiptap/extension-collaboration-caret\" },\r\n { specifier: \"@tiptap/extension-image\" },\r\n { specifier: \"@tiptap/extension-link\" },\r\n { specifier: \"@tiptap/extension-placeholder\" },\r\n { specifier: \"@tiptap/extension-table\" },\r\n { specifier: \"@tiptap/extension-table-cell\" },\r\n { specifier: \"@tiptap/extension-table-header\" },\r\n { specifier: \"@tiptap/extension-table-row\" },\r\n { specifier: \"@tiptap/extension-task-item\" },\r\n { specifier: \"@tiptap/extension-task-list\" },\r\n { specifier: \"@tiptap/pm/state\", packageName: \"@tiptap/pm\" },\r\n { specifier: \"@tiptap/react\" },\r\n { specifier: \"@tiptap/starter-kit\" },\r\n { specifier: \"@uiw/react-codemirror\" },\r\n { specifier: \"@xterm/addon-fit\" },\r\n { specifier: \"@xterm/addon-web-links\" },\r\n { specifier: \"@xterm/xterm\" },\r\n { specifier: \"class-variance-authority\" },\r\n { specifier: \"clsx\" },\r\n { specifier: \"cmdk\" },\r\n { specifier: \"date-fns\" },\r\n { specifier: \"drizzle-orm\" },\r\n { specifier: \"drizzle-orm/pg-core\", packageName: \"drizzle-orm\" },\r\n { specifier: \"drizzle-orm/sqlite-core\", packageName: \"drizzle-orm\" },\r\n { specifier: \"embla-carousel-react\" },\r\n { specifier: \"h3\" },\r\n {\r\n specifier: \"highlight.js/lib/languages/bash\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/css\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/javascript\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/json\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/markdown\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/python\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/sql\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/typescript\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/xml\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/yaml\",\r\n packageName: \"highlight.js\",\r\n },\r\n { specifier: \"html2canvas\" },\r\n { specifier: \"i18next\" },\r\n { specifier: \"input-otp\" },\r\n { specifier: \"lowlight\" },\r\n { specifier: \"mermaid\" },\r\n { specifier: \"nanoid\" },\r\n { specifier: \"next-themes\" },\r\n { specifier: \"react-hook-form\" },\r\n { specifier: \"react-day-picker\" },\r\n { specifier: \"react-i18next\" },\r\n { specifier: \"react-markdown\" },\r\n { specifier: \"react-resizable-panels\" },\r\n { specifier: \"recharts\" },\r\n ...(hasDep(\"react-router\", cwd)\r\n ? [\r\n { specifier: \"react-router\" },\r\n { specifier: \"react-router/dom\", packageName: \"react-router\" },\r\n ]\r\n : []),\r\n { specifier: \"remark-gfm\" },\r\n { specifier: \"roughjs\" },\r\n { specifier: \"shiki/core\", packageName: \"shiki\" },\r\n { specifier: \"shiki/engine/javascript\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/bash.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/css.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/html.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/javascript.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/json.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/jsx.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/markdown.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/python.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/shellscript.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/sql.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/tsx.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/typescript.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/yaml.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/themes/github-dark-default.mjs\", packageName: \"shiki\" },\r\n {\r\n specifier: \"shiki/themes/github-light-default.mjs\",\r\n packageName: \"shiki\",\r\n },\r\n { specifier: \"sonner\" },\r\n { specifier: \"tailwind-merge\" },\r\n { specifier: \"tiptap-markdown\" },\r\n { specifier: \"vaul\" },\r\n { specifier: \"y-protocols/awareness\", packageName: \"y-protocols\" },\r\n { specifier: \"yjs\" },\r\n { specifier: \"zod\" },\r\n ];\r\n\r\n return entries\r\n .filter(({ specifier, packageName }) =>\r\n hasOptimizeDep(packageName ?? specifier, cwd),\r\n )\r\n .map(({ specifier, packageName }) => {\r\n const dependencyName = packageName ?? specifier;\r\n // In the monorepo, core is source-aliased and its dependencies live\r\n // under packages/core/node_modules. A bare optimizeDeps.include entry\r\n // is resolved from the template root, so core-only dependencies fail\r\n // the initial prebundle and are rediscovered after the page loads. Vite\r\n // then rebundles and reloads the editor. Its documented nested-dependency\r\n // syntax resolves the right-hand package from core's package directory,\r\n // while app-owned dependencies should remain direct entries.\r\n if (\r\n inMonorepo &&\r\n !hasDep(dependencyName, cwd) &&\r\n hasCoreDep(dependencyName, cwd)\r\n ) {\r\n return `@agent-native/core > ${specifier}`;\r\n }\r\n return specifier;\r\n });\r\n}\r\n\r\n/**\r\n * In monorepo dev mode, resolve @agent-native/core imports to source (src/)\r\n * instead of dist/ so that Vite HMR picks up changes without rebuilding.\r\n *\r\n * Returns Vite array-style aliases with exact matching (regex anchored with $)\r\n * to prevent `@agent-native/core` from prefix-matching and swallowing\r\n * sub-path imports like `@agent-native/core/client`.\r\n */\r\nfunction getCoreSourceAliases(\r\n cwd: string,\r\n): Array<{ find: RegExp; replacement: string }> {\r\n const coreSrc = findCoreSrcDir(cwd);\r\n if (!coreSrc) return []; // Not in monorepo — use dist as normal\r\n\r\n // Map every @agent-native/core/* export to its src/ equivalent.\r\n // Each entry uses a regex with $ anchor for exact matching.\r\n const entries: Record<string, string> = {\r\n \"@agent-native/core\": path.join(coreSrc, \"index.browser.ts\"),\r\n \"@agent-native/core/server\": path.join(coreSrc, \"server/index.ts\"),\r\n \"@agent-native/core/server/edge\": path.join(coreSrc, \"server/edge.ts\"),\r\n \"@agent-native/core/client\": path.join(coreSrc, \"client/index.ts\"),\r\n \"@agent-native/core/client/chat\": path.join(\r\n coreSrc,\r\n \"client/chat/index.ts\",\r\n ),\r\n \"@agent-native/core/client/collab\": path.join(\r\n coreSrc,\r\n \"client/collab/index.ts\",\r\n ),\r\n \"@agent-native/core/client/composer\": path.join(\r\n coreSrc,\r\n \"client/composer/index.ts\",\r\n ),\r\n \"@agent-native/core/client/conversation\": path.join(\r\n coreSrc,\r\n \"client/conversation/index.ts\",\r\n ),\r\n \"@agent-native/core/client/editor\": path.join(\r\n coreSrc,\r\n \"client/editor/index.ts\",\r\n ),\r\n \"@agent-native/core/client/i18n\": path.join(coreSrc, \"client/i18n.tsx\"),\r\n \"@agent-native/core/client/resources\": path.join(\r\n coreSrc,\r\n \"client/resources/index.ts\",\r\n ),\r\n // Dedicated thin subpath — only the URL helpers, no chat stack in the closure.\r\n \"@agent-native/core/client/api-path\": path.join(\r\n coreSrc,\r\n \"client/api-path.ts\",\r\n ),\r\n \"@agent-native/core/blocks\": path.join(coreSrc, \"client/blocks/index.ts\"),\r\n \"@agent-native/core/blocks/server\": path.join(\r\n coreSrc,\r\n \"client/blocks/server.ts\",\r\n ),\r\n \"@agent-native/core/client/extensions\": path.join(\r\n coreSrc,\r\n \"client/extensions/index.ts\",\r\n ),\r\n // Legacy alias — see exports map note above.\r\n \"@agent-native/core/client/tools\": path.join(\r\n coreSrc,\r\n \"client/extensions/index.ts\",\r\n ),\r\n \"@agent-native/core/client/org\": path.join(coreSrc, \"client/org/index.ts\"),\r\n \"@agent-native/core/client/db-admin\": path.join(\r\n coreSrc,\r\n \"client/db-admin/index.ts\",\r\n ),\r\n \"@agent-native/core/client/observability\": path.join(\r\n coreSrc,\r\n \"client/observability/index.ts\",\r\n ),\r\n \"@agent-native/core/client/onboarding\": path.join(\r\n coreSrc,\r\n \"client/onboarding/index.ts\",\r\n ),\r\n \"@agent-native/core/client/sharing\": path.join(\r\n coreSrc,\r\n \"client/sharing/index.ts\",\r\n ),\r\n \"@agent-native/core/client/notifications\": path.join(\r\n coreSrc,\r\n \"client/notifications/index.ts\",\r\n ),\r\n \"@agent-native/core/client/progress\": path.join(\r\n coreSrc,\r\n \"client/progress/index.ts\",\r\n ),\r\n \"@agent-native/core/client/transcription/use-live-transcription\": path.join(\r\n coreSrc,\r\n \"client/transcription/use-live-transcription.ts\",\r\n ),\r\n \"@agent-native/core/voice\": path.join(coreSrc, \"voice/index.ts\"),\r\n \"@agent-native/core/db\": path.join(coreSrc, \"db/index.ts\"),\r\n \"@agent-native/core/db/schema\": path.join(coreSrc, \"db/schema.ts\"),\r\n \"@agent-native/core/shared\": path.join(coreSrc, \"shared/index.ts\"),\r\n \"@agent-native/core/scripts\": path.join(coreSrc, \"scripts/index.ts\"),\r\n \"@agent-native/core/application-state\": path.join(\r\n coreSrc,\r\n \"application-state/index.ts\",\r\n ),\r\n \"@agent-native/core/settings\": path.join(coreSrc, \"settings/index.ts\"),\r\n \"@agent-native/core/credentials\": path.join(\r\n coreSrc,\r\n \"credentials/index.ts\",\r\n ),\r\n \"@agent-native/core/resources\": path.join(coreSrc, \"resources/index.ts\"),\r\n \"@agent-native/core/oauth-tokens\": path.join(\r\n coreSrc,\r\n \"oauth-tokens/index.ts\",\r\n ),\r\n \"@agent-native/core/workspace-connections\": path.join(\r\n coreSrc,\r\n \"workspace-connections/index.ts\",\r\n ),\r\n \"@agent-native/core/provider-api\": path.join(\r\n coreSrc,\r\n \"provider-api/index.ts\",\r\n ),\r\n \"@agent-native/core/a2a\": path.join(coreSrc, \"a2a/index.ts\"),\r\n \"@agent-native/core/router\": path.join(coreSrc, \"router/index.ts\"),\r\n \"@agent-native/core/terminal\": path.join(\r\n coreSrc,\r\n \"client/terminal/index.ts\",\r\n ),\r\n \"@agent-native/core/terminal/server\": path.join(\r\n coreSrc,\r\n \"terminal/index.ts\",\r\n ),\r\n \"@agent-native/core/adapters/cli\": path.join(\r\n coreSrc,\r\n \"adapters/cli/index.ts\",\r\n ),\r\n \"@agent-native/core/usage\": path.join(coreSrc, \"usage/store.ts\"),\r\n \"@agent-native/core/brand-kit\": path.join(coreSrc, \"brand-kit/index.ts\"),\r\n \"@agent-native/core/data-widgets\": path.join(\r\n coreSrc,\r\n \"data-widgets/index.ts\",\r\n ),\r\n \"@agent-native/core/server/design-token-utils\": path.join(\r\n coreSrc,\r\n \"server/design-token-utils.ts\",\r\n ),\r\n \"@agent-native/core/server/entry-server\": path.join(\r\n coreSrc,\r\n \"server/entry-server.tsx\",\r\n ),\r\n // Shared stylesheet — alias to src so CSS edits (composer/theme rules)\r\n // take effect live in dev instead of silently loading the stale built\r\n // copy at dist/styles/. From src/styles/ the `@source \"../client/**\"`\r\n // directive resolves to the real .tsx source, which is what dev should\r\n // scan for Tailwind classes anyway.\r\n \"@agent-native/core/styles/agent-native.css\": path.join(\r\n coreSrc,\r\n \"styles/agent-native.css\",\r\n ),\r\n };\r\n\r\n // Escape special regex chars in the key and anchor with $\r\n return Object.entries(entries).map(([find, replacement]) => ({\r\n find: new RegExp(`^${find.replace(/[/]/g, \"\\\\/\")}$`),\r\n replacement,\r\n }));\r\n}\r\n\r\nexport interface NitroOptions {\r\n /** Nitro deployment preset (e.g. \"node\", \"vercel\", \"netlify\", \"cloudflare_pages\"). Default: \"node\" */\r\n preset?: string;\r\n /** Source directory for server files. Default: \"./server\" */\r\n srcDir?: string;\r\n /** Routes directory name (relative to srcDir). Default: \"routes\" */\r\n routesDir?: string;\r\n /** Any additional Nitro config overrides */\r\n [key: string]: unknown;\r\n}\r\n\r\nexport interface ClientConfigOptions {\r\n /** Port for dev server. Default: 8080 */\r\n port?: number;\r\n /** Additional hostnames allowed to access the dev server. */\r\n allowedHosts?: NonNullable<NonNullable<UserConfig[\"server\"]>[\"allowedHosts\"]>;\r\n /** Vite log level. Workspace child apps default to \"warn\" so only the gateway URL is advertised. */\r\n logLevel?: UserConfig[\"logLevel\"];\r\n /** Additional Vite plugins */\r\n plugins?: any[];\r\n /** Nitro plugin options (preset, srcDir, etc) */\r\n nitro?: NitroOptions;\r\n /** Override resolve aliases */\r\n aliases?: Record<string, string>;\r\n /** Override build.outDir. Default: \"dist/spa\" */\r\n outDir?: string;\r\n /** Additional fs.allow paths */\r\n fsAllow?: string[];\r\n /** Additional fs.deny patterns */\r\n fsDeny?: string[];\r\n /** Additional Vite optimizeDeps configuration */\r\n optimizeDeps?: NonNullable<UserConfig[\"optimizeDeps\"]>;\r\n /** Additional Vite define constants. */\r\n define?: UserConfig[\"define\"];\r\n /**\r\n * Framework route warmup behavior mounted by AgentSidebar.\r\n *\r\n * React Router's native prefetch warms both `.data` and JS, but its `.data`\r\n * request uses browser link prefetch. Chrome sends `Sec-Purpose: prefetch`\r\n * on those requests, which some production CDNs reject for dynamic `.data`\r\n * URLs before our SWR cache headers can help. Agent-Native therefore uses\r\n * ordinary fetches for `.data` and `modulepreload` for route JS by default.\r\n */\r\n routeWarmup?: AgentNativeRouteWarmupConfigInput;\r\n /**\r\n * Controls the MCP integrations catalog exposed from the composer + menu.\r\n *\r\n * - `false` hides the whole MCP integrations entry.\r\n * - `{ defaults: false }` hides all bundled provider presets but still\r\n * allows custom MCP servers.\r\n * - `{ defaults: { include: [\"context7\"] } }` allows only those preset ids.\r\n * - `{ defaults: { exclude: [\"stripe\"] } }` hides specific preset ids.\r\n */\r\n mcpIntegrations?: McpIntegrationsConfigInput;\r\n /**\r\n * Whether to auto-inject the Tailwind v4 Vite plugin (`@tailwindcss/vite`).\r\n * Defaults to true — set to `false` if a template wants to manage Tailwind\r\n * itself (e.g. the legacy v3 PostCSS pipeline).\r\n */\r\n tailwind?: boolean;\r\n /**\r\n * Package names to stub in the SSR bundle with an empty proxy object.\r\n *\r\n * Use this for dependencies that only run in the browser (canvas / diagram\r\n * libraries, editors, WebGL) but would otherwise get pulled into the\r\n * server bundle via SSR's noExternal policy — pushing the CF Pages\r\n * Functions bundle over the 25 MiB limit.\r\n *\r\n * Only add packages that are provably never called during SSR. If the\r\n * server imports one, it will receive a Proxy that throws on any real\r\n * use (which is better than bundling a 10 MiB dep the worker never calls).\r\n *\r\n * @example\r\n * ssrStubs: [\"mermaid\", \"@excalidraw/excalidraw\"]\r\n */\r\n ssrStubs?: string[];\r\n /**\r\n * @deprecated Pass `reactRouter()` directly in the `plugins` array instead.\r\n * Previously used to auto-load the React Router Vite plugin via require(),\r\n * but this fails in ESM contexts. Templates should now do:\r\n * ```ts\r\n * import { reactRouter } from \"@react-router/dev/vite\";\r\n * defineConfig({ plugins: [reactRouter()] })\r\n * ```\r\n */\r\n reactRouter?: boolean | Record<string, unknown>;\r\n}\r\n\r\nexport interface AgentNativeVitePluginOptions extends Omit<\r\n ClientConfigOptions,\r\n \"plugins\" | \"reactRouter\"\r\n> {\r\n /**\r\n * Include the legacy React SWC transform for non-React Router SPA apps.\r\n *\r\n * React Router framework-mode apps should pass `reactRouter()` as a normal\r\n * Vite plugin and leave this off.\r\n */\r\n legacySpa?: boolean;\r\n}\r\n\r\n/**\r\n * Vite plugin that recovers the page when Vite's dependency optimizer\r\n * invalidates modules mid-load (the \"504 Outdated Optimize Dep\" error).\r\n *\r\n * Without this, the page silently fails: <script type=\"module\"> tags 504,\r\n * React never mounts, and the user is stuck on a blank screen until they\r\n * manually refresh. We catch the failure modes and auto-reload, with a\r\n * visible overlay so the user knows what's happening, and a loop guard\r\n * so we never thrash forever.\r\n *\r\n * CRITICAL: this must be a SYNCHRONOUS (non-module) script injected at\r\n * `head-prepend`. Module scripts are deferred — the browser starts fetching\r\n * all module scripts in parallel during HTML parsing, so a module listener\r\n * registers AFTER sibling modules have already started loading and\r\n * possibly errored out. A regular <script> blocks parsing and runs\r\n * synchronously, so the listener is registered before ANY module fetch\r\n * begins.\r\n *\r\n * Catches three failure modes (all before React needs to mount):\r\n * 1. <script type=\"module\"> / <link> 504 — window \"error\" event, capture phase\r\n * 2. Dynamic import 504 — \"unhandledrejection\" with \"dynamically imported module\"\r\n * 3. Child module 504 — resource timing when browser exposes the HTTP status\r\n */\r\nfunction autoReloadOnOptimizeDep(): Plugin {\r\n return {\r\n name: \"agent-native-auto-reload-optimize-dep\",\r\n apply: \"serve\",\r\n transformIndexHtml() {\r\n return [\r\n {\r\n tag: \"script\",\r\n // NOTE: no `type: \"module\"` — this must be a synchronous script.\r\n children: getViteDevRecoveryScript(),\r\n injectTo: \"head-prepend\",\r\n },\r\n ];\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Vite handles outdated optimized-dep requests inside its own transform\r\n * middleware and ends the HTTP response with `504 Outdated Optimize Dep`.\r\n * Browser module loaders do not consistently surface those child-module\r\n * failures to userland JavaScript, so also nudge the Vite HMR client from the\r\n * server side. This turns the confusing blank-screen state into the same\r\n * full-page reload Vite would have requested once optimization settled.\r\n */\r\nfunction fullReloadOnOptimizeDep504(): Plugin {\r\n return {\r\n name: \"agent-native-full-reload-optimize-dep-504\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n let lastReloadAt = 0;\r\n server.middlewares.use((req, res, next) => {\r\n const originalEnd = res.end;\r\n (res as unknown as { end: (...args: unknown[]) => unknown }).end = (\r\n ...endArgs: unknown[]\r\n ) => {\r\n const statusMessage = String(res.statusMessage || \"\");\r\n if (\r\n res.statusCode === 504 &&\r\n statusMessage === \"Outdated Optimize Dep\"\r\n ) {\r\n const now = Date.now();\r\n if (now - lastReloadAt > 500) {\r\n lastReloadAt = now;\r\n server.ws.send({ type: \"full-reload\" });\r\n server.config.logger.info(\r\n `[agent-native] Vite optimized deps changed while loading ${\r\n req.url ?? \"a module\"\r\n }; reloading the page.`,\r\n { timestamp: true },\r\n );\r\n }\r\n }\r\n return (originalEnd as (...args: unknown[]) => unknown).apply(\r\n res,\r\n endArgs,\r\n );\r\n };\r\n next();\r\n });\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Vite plugin that prevents the built-in base middleware from redirecting\r\n * \"/\" → \"/app/\" (or whatever the base is). When agent-native apps run with\r\n * --base /app/ in single-port mode, Vite's baseMiddleware sends a 302 from\r\n * \"/\" to the base path. This breaks Electron webview and iframe embeds\r\n * that load the app at the root. Instead, we rewrite \"/\" to the base path\r\n * internally so the app serves without a visible redirect.\r\n */\r\nfunction baseRedirectGuard(): Plugin {\r\n return {\r\n name: \"agent-native-base-redirect-guard\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n // Return a function so the middleware is added AFTER Vite's internal\r\n // middleware is built — but we insert BEFORE by using the pre-hook\r\n // approach: configureServer hooks that return nothing run before\r\n // internal middleware.\r\n server.middlewares.use((req, res, next) => {\r\n const base = server.config.base;\r\n if (base && base !== \"/\" && req.url?.startsWith(base)) {\r\n const relativeUrl = req.url.slice(base.length - 1);\r\n try {\r\n const url = new URL(relativeUrl, \"http://agent-native.local\");\r\n const publicDir = server.config.publicDir;\r\n if (typeof publicDir !== \"string\") {\r\n return next();\r\n }\r\n const publicPath = path.normalize(\r\n path.join(publicDir, decodeURIComponent(url.pathname)),\r\n );\r\n if (\r\n publicPath.startsWith(publicDir + path.sep) &&\r\n fs.existsSync(publicPath) &&\r\n fs.statSync(publicPath).isFile()\r\n ) {\r\n const contentType = contentTypeForPublicFile(publicPath);\r\n if (contentType) res.setHeader(\"content-type\", contentType);\r\n if (req.method === \"HEAD\") {\r\n res.statusCode = 200;\r\n res.end();\r\n return;\r\n }\r\n fs.createReadStream(publicPath).pipe(res);\r\n return;\r\n }\r\n } catch {\r\n // Fall through to Vite/Nitro. Malformed URLs should keep their\r\n // original path so the normal dev-server error handling applies.\r\n }\r\n }\r\n if (serveExternalEmbedBrowserManifest(server, req, res)) {\r\n return;\r\n }\r\n if (serveMountedEmbedRuntimeModule(server, req, res, base)) {\r\n return;\r\n }\r\n // Nitro's pre-middleware only intercepts document/iframe/frame/empty\r\n // fetch-dest requests. For video/audio/image etc. it calls next() and\r\n // the post-internal Nitro middleware handles them instead. If we strip\r\n // the base path here for those requests, Vite's base middleware sees the\r\n // stripped path (e.g. /api/video/:id without /clips/) and responds with\r\n // a \"did you mean /clips/api/video/:id\" error before Nitro can handle it.\r\n // Only strip when the request type matches Nitro's pre-middleware gate.\r\n const secFetchDest = req.headers[\"sec-fetch-dest\"] as\r\n | string\r\n | undefined;\r\n const isNitroPreHandled =\r\n !secFetchDest || /^(document|iframe|frame|empty)$/.test(secFetchDest);\r\n if (isNitroPreHandled) {\r\n req.url = stripMountedDevApiPath(req.url, base);\r\n }\r\n if (\r\n req.method === \"HEAD\" &&\r\n req.url &&\r\n !isFrameworkDevPath(req.url, base)\r\n ) {\r\n req.method = \"GET\";\r\n }\r\n if (\r\n base &&\r\n base !== \"/\" &&\r\n (req.url === \"/\" || req.url === \"/index.html\")\r\n ) {\r\n // Rewrite to the base path so Vite serves the app directly\r\n req.url = base;\r\n }\r\n next();\r\n });\r\n },\r\n };\r\n}\r\n\r\nconst VITE_RUNTIME_PATH_PREFIXES = [\r\n \"/@fs/\",\r\n \"/@id/\",\r\n \"/@vite/\",\r\n \"/app/\",\r\n \"/node_modules/\",\r\n \"/packages/\",\r\n \"/src/\",\r\n];\r\n\r\nconst EMBED_DEV_STATIC_ASSET_PATH_PREFIXES = [\r\n ...VITE_RUNTIME_PATH_PREFIXES,\r\n \"/assets/\",\r\n \"/library-presets/\",\r\n];\r\n\r\nconst EMBED_DEV_STATIC_ASSET_PATHS = new Set([\r\n \"/favicon.ico\",\r\n \"/favicon.svg\",\r\n \"/manifest.json\",\r\n]);\r\n\r\nfunction mountedPathCandidates(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): string[] {\r\n if (!reqUrl) return [];\r\n let pathname: string;\r\n try {\r\n pathname = new URL(reqUrl, \"http://agent-native.local\").pathname;\r\n } catch {\r\n return [];\r\n }\r\n if (base && base !== \"/\") {\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n if (pathname.startsWith(normalizedBase)) {\r\n return [pathname.slice(normalizedBase.length - 1) || \"/\"];\r\n }\r\n }\r\n return [pathname];\r\n}\r\n\r\nfunction isEmbedDevStaticAssetRequest(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): boolean {\r\n return mountedPathCandidates(reqUrl, base).some((pathname) => {\r\n if (EMBED_DEV_STATIC_ASSET_PATHS.has(pathname)) return true;\r\n if (/^\\/icon-[^/]+\\.svg$/i.test(pathname)) return true;\r\n if (/^\\/agent-native-[^/]+\\.svg$/i.test(pathname)) return true;\r\n return EMBED_DEV_STATIC_ASSET_PATH_PREFIXES.some((prefix) =>\r\n pathname.startsWith(prefix),\r\n );\r\n });\r\n}\r\n\r\nfunction cookieValue(req: IncomingMessage, name: string): string | undefined {\r\n const header = req.headers.cookie;\r\n if (typeof header !== \"string\" || !header) return undefined;\r\n for (const part of header.split(\";\")) {\r\n const index = part.indexOf(\"=\");\r\n if (index < 0) continue;\r\n const key = part.slice(0, index).trim();\r\n if (key !== name) continue;\r\n try {\r\n return decodeURIComponent(part.slice(index + 1).trim());\r\n } catch {\r\n return part.slice(index + 1).trim();\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction hasValidEmbedRuntimeToken(req: IncomingMessage): boolean {\r\n try {\r\n const url = new URL(req.url ?? \"/\", \"http://agent-native.local\");\r\n const queryToken = url.searchParams.get(EMBED_TOKEN_QUERY_PARAM);\r\n const cookieToken = cookieValue(req, EMBED_SESSION_COOKIE);\r\n return [queryToken, cookieToken].some(\r\n (token) => verifyEmbedSessionToken(token).ok,\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction mountedEmbedRuntimeModuleUrl(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): string | null {\r\n if (!reqUrl || !base || base === \"/\") return null;\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n if (!reqUrl.startsWith(normalizedBase)) return null;\r\n\r\n const runtimeUrl = reqUrl.slice(normalizedBase.length - 1) || \"/\";\r\n let url: URL;\r\n try {\r\n url = new URL(runtimeUrl, \"http://agent-native.local\");\r\n } catch {\r\n return null;\r\n }\r\n if (\r\n !VITE_RUNTIME_PATH_PREFIXES.some((prefix) =>\r\n url.pathname.startsWith(prefix),\r\n )\r\n ) {\r\n return null;\r\n }\r\n url.searchParams.delete(EMBED_TOKEN_QUERY_PARAM);\r\n url.searchParams.delete(MCP_APP_CHAT_BRIDGE_QUERY_PARAM);\r\n return `${url.pathname}${url.search}${url.hash}`;\r\n}\r\n\r\nfunction virtualModuleIdFromRuntimeUrl(runtimeUrl: string): string | null {\r\n try {\r\n const pathname = new URL(runtimeUrl, \"http://agent-native.local\").pathname;\r\n const prefix = \"/@id/__x00__\";\r\n if (!pathname.startsWith(prefix)) return null;\r\n return `\\0${decodeURIComponent(pathname.slice(prefix.length))}`;\r\n } catch {\r\n return null;\r\n }\r\n}\r\n\r\nasync function loadMountedEmbedRuntimeModule(\r\n server: any,\r\n runtimeUrl: string,\r\n): Promise<string | null> {\r\n const virtualId = virtualModuleIdFromRuntimeUrl(runtimeUrl);\r\n if (virtualId) {\r\n const loaded = await server.pluginContainer?.load?.(virtualId);\r\n if (typeof loaded === \"string\") return loaded;\r\n if (loaded && typeof loaded.code === \"string\") return loaded.code;\r\n }\r\n const result = await server.transformRequest(runtimeUrl);\r\n return result?.code ?? null;\r\n}\r\n\r\nfunction serveMountedEmbedRuntimeModule(\r\n server: any,\r\n req: IncomingMessage,\r\n res: ServerResponse,\r\n base: string | undefined,\r\n): boolean {\r\n if (req.method !== \"GET\" && req.method !== \"HEAD\") return false;\r\n if (!hasValidEmbedRuntimeToken(req)) return false;\r\n const runtimeUrl = mountedEmbedRuntimeModuleUrl(req.url, base);\r\n if (!runtimeUrl) return false;\r\n\r\n void loadMountedEmbedRuntimeModule(server, runtimeUrl)\r\n .then((code: string | null) => {\r\n if (!code) {\r\n if (!res.headersSent) {\r\n res.statusCode = 404;\r\n res.end();\r\n }\r\n return;\r\n }\r\n res.statusCode = 200;\r\n res.setHeader(\"content-type\", \"text/javascript\");\r\n if (req.method === \"HEAD\") {\r\n res.end();\r\n return;\r\n }\r\n res.end(code);\r\n })\r\n .catch((err: unknown) => {\r\n if (res.headersSent) return;\r\n res.statusCode = 500;\r\n res.setHeader(\"content-type\", \"text/plain\");\r\n res.end(err instanceof Error ? err.message : String(err));\r\n });\r\n return true;\r\n}\r\n\r\nfunction publicOriginFromDevRequest(req: IncomingMessage): string | null {\r\n const forwardedHost = String(req.headers[\"x-forwarded-host\"] ?? \"\")\r\n .split(\",\")[0]\r\n ?.trim();\r\n const host =\r\n forwardedHost ||\r\n String(req.headers.host ?? \"\")\r\n .split(\",\")[0]\r\n ?.trim();\r\n if (!host) return null;\r\n const forwardedProto = String(req.headers[\"x-forwarded-proto\"] ?? \"\")\r\n .split(\",\")[0]\r\n ?.trim();\r\n const proto =\r\n forwardedProto ||\r\n (/^(localhost|127\\.0\\.0\\.1|\\[::1\\])(?::\\d+)?$/i.test(host)\r\n ? \"http\"\r\n : \"https\");\r\n return `${proto}://${host}`;\r\n}\r\n\r\nfunction isReactRouterBrowserManifestUrl(reqUrl: string | undefined): boolean {\r\n if (!reqUrl) return false;\r\n try {\r\n const url = new URL(reqUrl, \"http://agent-native.local\");\r\n return (\r\n virtualModuleIdFromRuntimeUrl(url.pathname) ===\r\n \"\\0virtual:react-router/browser-manifest\"\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction rewriteRootRelativeManifestUrls(\r\n code: string,\r\n publicOrigin: string,\r\n): string {\r\n return code.replace(/'\\/(?!\\/)([^']*)'/g, (match, rest: string) => {\r\n try {\r\n return JSON.stringify(new URL(`/${rest}`, publicOrigin).toString());\r\n } catch {\r\n return match;\r\n }\r\n });\r\n}\r\n\r\nfunction serveExternalEmbedBrowserManifest(\r\n server: any,\r\n req: IncomingMessage,\r\n res: ServerResponse,\r\n): boolean {\r\n if (req.method !== \"GET\" && req.method !== \"HEAD\") return false;\r\n if (!isMcpEmbedCorsOrigin(String(req.headers.origin ?? \"\"))) return false;\r\n if (!isReactRouterBrowserManifestUrl(req.url)) return false;\r\n const publicOrigin = publicOriginFromDevRequest(req);\r\n if (!publicOrigin) return false;\r\n const runtimeUrl = mountedEmbedRuntimeModuleUrl(req.url, \"/\") ?? req.url;\r\n if (!runtimeUrl) return false;\r\n\r\n void loadMountedEmbedRuntimeModule(server, runtimeUrl)\r\n .then((code: string | null) => {\r\n if (!code) {\r\n if (!res.headersSent) {\r\n res.statusCode = 404;\r\n res.end();\r\n }\r\n return;\r\n }\r\n res.statusCode = 200;\r\n res.setHeader(\"content-type\", \"text/javascript\");\r\n if (req.method === \"HEAD\") {\r\n res.end();\r\n return;\r\n }\r\n res.end(rewriteRootRelativeManifestUrls(code, publicOrigin));\r\n })\r\n .catch((err: unknown) => {\r\n if (res.headersSent) return;\r\n res.statusCode = 500;\r\n res.setHeader(\"content-type\", \"text/plain\");\r\n res.end(err instanceof Error ? err.message : String(err));\r\n });\r\n return true;\r\n}\r\n\r\nfunction embedDevFrameHeaders(): Plugin {\r\n return {\r\n name: \"agent-native-embed-dev-frame-headers\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n server.middlewares.use((req, res, next) => {\r\n const origin = String(req.headers.origin ?? \"\");\r\n if (isEmbedDevStaticAssetRequest(req.url, server.config?.base)) {\r\n for (const [name, value] of Object.entries(\r\n MCP_EMBED_STATIC_ASSET_HEADERS,\r\n )) {\r\n res.setHeader(name, value);\r\n }\r\n }\r\n if (isMcpEmbedCorsOrigin(origin)) {\r\n res.setHeader(\"Access-Control-Allow-Origin\", origin);\r\n res.setHeader(\"Vary\", \"Origin\");\r\n // The desktop app's dev origin (http://localhost:1420) also matches\r\n // here, and it logs in with `credentials: \"include\"`. A credentialed\r\n // request needs this header or the browser discards the response.\r\n // The OPTIONS short-circuit below means we can't rely on the real\r\n // auth handler to set it, so set it here too (production already does\r\n // the same).\r\n if (shouldAllowMcpEmbedCredentials(origin)) {\r\n res.setHeader(\"Access-Control-Allow-Credentials\", \"true\");\r\n }\r\n res.setHeader(\r\n \"Access-Control-Allow-Methods\",\r\n \"GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS\",\r\n );\r\n res.setHeader(\r\n \"Access-Control-Allow-Headers\",\r\n MCP_EMBED_CORS_ALLOW_HEADERS,\r\n );\r\n for (const [name, value] of Object.entries(\r\n MCP_EMBED_STATIC_ASSET_HEADERS,\r\n )) {\r\n if (name === \"Access-Control-Allow-Origin\") continue;\r\n res.setHeader(name, value);\r\n }\r\n if (req.method === \"OPTIONS\") {\r\n res.statusCode = 204;\r\n res.end();\r\n return;\r\n }\r\n }\r\n\r\n const cookieHeader = String(req.headers.cookie ?? \"\");\r\n let hasEmbedMarker = /\\ban_embed_session=/.test(cookieHeader);\r\n try {\r\n const url = new URL(req.url ?? \"/\", \"http://agent-native.local\");\r\n hasEmbedMarker =\r\n hasEmbedMarker || url.searchParams.has(\"__an_embed_token\");\r\n } catch {\r\n // Malformed URLs should continue through Vite's normal handling.\r\n }\r\n if (hasEmbedMarker) {\r\n res.setHeader(\"Cross-Origin-Embedder-Policy\", \"require-corp\");\r\n res.setHeader(\"Cross-Origin-Opener-Policy\", \"same-origin\");\r\n res.setHeader(\"Cross-Origin-Resource-Policy\", \"cross-origin\");\r\n res.setHeader(\"Referrer-Policy\", \"no-referrer\");\r\n }\r\n next();\r\n });\r\n },\r\n };\r\n}\r\n\r\nfunction contentTypeForPublicFile(filePath: string): string | null {\r\n switch (path.extname(filePath).toLowerCase()) {\r\n case \".css\":\r\n return \"text/css\";\r\n case \".html\":\r\n return \"text/html\";\r\n case \".ico\":\r\n return \"image/x-icon\";\r\n case \".json\":\r\n case \".webmanifest\":\r\n return \"application/json\";\r\n case \".js\":\r\n case \".mjs\":\r\n return \"text/javascript\";\r\n case \".png\":\r\n return \"image/png\";\r\n case \".svg\":\r\n return \"image/svg+xml\";\r\n case \".txt\":\r\n return \"text/plain\";\r\n case \".xml\":\r\n return \"application/xml\";\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nfunction devPathname(reqUrl: string): string {\r\n return new URL(reqUrl, \"http://agent-native.local\").pathname;\r\n}\r\n\r\nfunction isApiDevPath(reqUrl: string): boolean {\r\n const pathname = devPathname(reqUrl);\r\n return pathname === \"/api\" || pathname.startsWith(\"/api/\");\r\n}\r\n\r\nexport function stripMountedDevApiPath(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): string | undefined {\r\n if (!reqUrl || !base || base === \"/\") return reqUrl;\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n if (!reqUrl.startsWith(normalizedBase)) return reqUrl;\r\n const stripped = reqUrl.slice(normalizedBase.length - 1) || \"/\";\r\n return isApiDevPath(stripped) ? stripped : reqUrl;\r\n}\r\n\r\nexport function isFrameworkDevPath(\r\n reqUrl: string,\r\n base: string | undefined,\r\n): boolean {\r\n const pathname = devPathname(reqUrl);\r\n if (pathname === \"/_agent-native\" || pathname.startsWith(\"/_agent-native/\")) {\r\n return true;\r\n }\r\n if (!base || base === \"/\") return false;\r\n const normalizedBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\r\n return (\r\n pathname === `${normalizedBase}/_agent-native` ||\r\n pathname.startsWith(`${normalizedBase}/_agent-native/`)\r\n );\r\n}\r\n\r\n/**\r\n * Work around a Rolldown bug where Nitro passes service entries as objects\r\n * ({index: \"path\"}) but Rolldown expects strings. This plugin normalizes\r\n * rollupOptions.input entries in the SSR environment.\r\n */\r\nfunction rolldownInputFix(): Plugin {\r\n return {\r\n name: \"agent-native-rolldown-input-fix\",\r\n configEnvironment(_name, config) {\r\n const input = config.build?.rollupOptions?.input;\r\n if (!Array.isArray(input)) return;\r\n // Flatten any object entries to just their string values\r\n const fixed = input.map((entry: any) => {\r\n if (typeof entry === \"string\") return entry;\r\n if (typeof entry === \"object\" && entry !== null) {\r\n const values = Object.values(entry);\r\n return values[0] as string;\r\n }\r\n return entry;\r\n });\r\n config.build!.rollupOptions!.input = fixed;\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Replace caller-specified packages with an empty proxy stub during SSR\r\n * builds. For apps whose heavy browser-only deps would otherwise bloat the\r\n * edge worker past CF Pages' 25 MiB Functions limit.\r\n *\r\n * The template lists the packages in its `defineConfig({ ssrStubs })` call —\r\n * the framework never hardcodes package names.\r\n */\r\nfunction ssrStubPlugin(packages: string[]): Plugin | null {\r\n if (!packages.length) return null;\r\n const stubbed = new Set(packages);\r\n const STUB_ID = \"\\0agent-native-ssr-stub\";\r\n const namedExports = [\r\n \"ActionBarPrimitive\",\r\n \"AllSelection\",\r\n \"Array\",\r\n \"AssistantRuntimeProvider\",\r\n \"Awareness\",\r\n \"BranchPickerPrimitive\",\r\n \"BubbleMenu\",\r\n \"CodeBlockLowlight\",\r\n \"Collaboration\",\r\n \"CollaborationCaret\",\r\n \"ComposerPrimitive\",\r\n \"CompositeAttachmentAdapter\",\r\n \"DOMParser\",\r\n \"Decoration\",\r\n \"DecorationSet\",\r\n \"Editor\",\r\n \"EditorContent\",\r\n \"Extension\",\r\n \"FitAddon\",\r\n \"Fragment\",\r\n \"Image\",\r\n \"Link\",\r\n \"Map\",\r\n \"Markdown\",\r\n \"Mark\",\r\n \"MessagePrimitive\",\r\n \"Node\",\r\n \"NodeSelection\",\r\n \"NodeViewContent\",\r\n \"NodeViewWrapper\",\r\n \"Placeholder\",\r\n \"Plugin\",\r\n \"PluginKey\",\r\n \"ReactNodeViewRenderer\",\r\n \"Selection\",\r\n \"SimpleImageAttachmentAdapter\",\r\n \"SimpleTextAttachmentAdapter\",\r\n \"StarterKit\",\r\n \"Table\",\r\n \"TableCell\",\r\n \"TableHeader\",\r\n \"TableRow\",\r\n \"TaskItem\",\r\n \"TaskList\",\r\n \"Terminal\",\r\n \"TextSelection\",\r\n \"ThreadPrimitive\",\r\n \"WebLinksAddon\",\r\n \"captureException\",\r\n \"common\",\r\n \"createLowlight\",\r\n \"createNodeFromContent\",\r\n \"defaultUrlTransform\",\r\n \"extensions\",\r\n \"findTable\",\r\n \"format\",\r\n \"Doc\",\r\n \"getHTMLFromFragment\",\r\n \"getIsolationScope\",\r\n \"init\",\r\n \"isChangeOrigin\",\r\n \"mergeAttributes\",\r\n \"renderToString\",\r\n \"applyUpdate\",\r\n \"encodeStateVector\",\r\n \"encodeStateAsUpdate\",\r\n \"mergeUpdates\",\r\n \"useAui\",\r\n \"useComposer\",\r\n \"useComposerRuntime\",\r\n \"useCurrentEditor\",\r\n \"useEditor\",\r\n \"useLocalRuntime\",\r\n \"useMessagePartText\",\r\n \"useMessageRuntime\",\r\n \"useThread\",\r\n \"useThreadRuntime\",\r\n \"withScope\",\r\n \"XmlFragment\",\r\n \"XmlText\",\r\n ];\r\n return {\r\n name: \"agent-native-ssr-stub-heavy-libs\",\r\n enforce: \"pre\",\r\n resolveId(id, _importer, opts) {\r\n if (!opts?.ssr) return null;\r\n // Match the bare package name or any subpath\r\n const pkg = id\r\n .split(\"/\")\r\n .slice(0, id.startsWith(\"@\") ? 2 : 1)\r\n .join(\"/\");\r\n if (stubbed.has(pkg)) return STUB_ID;\r\n return null;\r\n },\r\n load(id) {\r\n if (id !== STUB_ID) return null;\r\n // Proxy that answers any property access with itself — lets dead\r\n // import/re-export chains parse without blowing up, and still throws\r\n // if code actually tries to call any of it on the server.\r\n return (\r\n \"const handler = { get(_, p) { \" +\r\n \"if (p === Symbol.toPrimitive) return () => ''; \" +\r\n \"if (p === 'then') return undefined; \" +\r\n \"return new Proxy(() => {}, handler); \" +\r\n \"} };\" +\r\n \"const stub = new Proxy(() => {}, handler);\" +\r\n \"export default stub;\" +\r\n namedExports.map((name) => `export const ${name} = stub;`).join(\"\")\r\n );\r\n },\r\n };\r\n}\r\n\r\nfunction splitViteRequest(id: string): { file: string; query: string } | null {\r\n const queryIndex = id.indexOf(\"?\");\r\n if (queryIndex === -1) return null;\r\n return {\r\n file: id.slice(0, queryIndex),\r\n query: id.slice(queryIndex + 1),\r\n };\r\n}\r\n\r\nfunction hasRawQuery(query: string): boolean {\r\n return new URLSearchParams(query).has(\"raw\");\r\n}\r\n\r\nfunction normalizeViteFilePath(file: string): string | null {\r\n if (!file || file.startsWith(\"\\0\")) return null;\r\n const fsPath = file.startsWith(\"/@fs/\") ? file.slice(\"/@fs\".length) : file;\r\n try {\r\n return decodeURI(fsPath);\r\n } catch {\r\n return fsPath;\r\n }\r\n}\r\n\r\nfunction changelogRawPathFromId(id: string): string | null {\r\n const request = splitViteRequest(id);\r\n if (!request || !hasRawQuery(request.query)) return null;\r\n const file = normalizeViteFilePath(request.file);\r\n if (!file || path.basename(file) !== \"CHANGELOG.md\") return null;\r\n return path.resolve(file);\r\n}\r\n\r\nfunction resolveChangelogRawImport(\r\n source: string,\r\n importer: string | undefined,\r\n): string | null {\r\n const request = splitViteRequest(source);\r\n if (!request || !hasRawQuery(request.query)) return null;\r\n const rawFile = normalizeViteFilePath(request.file);\r\n if (!rawFile || path.basename(rawFile) !== \"CHANGELOG.md\") return null;\r\n\r\n const rawImporter = importer?.split(\"?\")[0];\r\n const importerFile =\r\n (rawImporter && normalizeViteFilePath(rawImporter)) ||\r\n rawImporter ||\r\n path.join(process.cwd(), \"index.ts\");\r\n const resolved = path.isAbsolute(rawFile)\r\n ? rawFile\r\n : path.resolve(path.dirname(importerFile), rawFile);\r\n return `${resolved}?${request.query}`;\r\n}\r\n\r\nfunction readAppChangelogMarkdown(\r\n changelogPath: string,\r\n watchFile: (file: string) => void,\r\n): string {\r\n // Only ever register real files with Vite's `addWatchFile`. Passing a\r\n // directory makes import-analysis try to resolve it as a module and fail\r\n // with \"Failed to resolve import .../changelog\", which breaks hydration for\r\n // every template in dev. New/removed pending files are still picked up via\r\n // `handleHotUpdate` (Vite watches the project root recursively).\r\n watchFile(changelogPath);\r\n const existing = fs.existsSync(changelogPath)\r\n ? fs.readFileSync(changelogPath, \"utf-8\")\r\n : \"\";\r\n const pendingDir = path.join(path.dirname(changelogPath), \"changelog\");\r\n if (!fs.existsSync(pendingDir)) {\r\n return existing;\r\n }\r\n\r\n const pending = fs\r\n .readdirSync(pendingDir)\r\n .filter(\r\n (file) => file.endsWith(\".md\") && file.toLowerCase() !== \"readme.md\",\r\n )\r\n .sort()\r\n .map((file) => {\r\n const filePath = path.join(pendingDir, file);\r\n watchFile(filePath);\r\n return parsePendingEntry(fs.readFileSync(filePath, \"utf-8\"));\r\n });\r\n return mergePendingChangelog(existing, pending);\r\n}\r\n\r\nfunction isChangelogSourceFile(file: string): boolean {\r\n if (path.basename(file) === \"CHANGELOG.md\") return true;\r\n return (\r\n path.basename(path.dirname(file)) === \"changelog\" &&\r\n file.endsWith(\".md\") &&\r\n path.basename(file).toLowerCase() !== \"readme.md\"\r\n );\r\n}\r\n\r\nfunction invalidateChangelogRawModules(server: {\r\n moduleGraph?: { idToModuleMap?: Map<string, any>; invalidateModule?: any };\r\n}) {\r\n const moduleGraph = server.moduleGraph;\r\n if (!moduleGraph?.idToModuleMap || !moduleGraph.invalidateModule) return;\r\n for (const mod of moduleGraph.idToModuleMap.values()) {\r\n if (!mod?.id || !changelogRawPathFromId(mod.id)) continue;\r\n moduleGraph.invalidateModule(mod);\r\n }\r\n}\r\n\r\nfunction appChangelogRawPlugin(): Plugin {\r\n return {\r\n name: \"agent-native-app-changelog-raw\",\r\n enforce: \"pre\",\r\n resolveId(source, importer) {\r\n return resolveChangelogRawImport(source, importer);\r\n },\r\n load(id) {\r\n const changelogPath = changelogRawPathFromId(id);\r\n if (!changelogPath) return null;\r\n const markdown = readAppChangelogMarkdown(changelogPath, (file) =>\r\n this.addWatchFile(file),\r\n );\r\n return `export default ${JSON.stringify(markdown)};`;\r\n },\r\n handleHotUpdate(ctx) {\r\n if (!isChangelogSourceFile(ctx.file)) return;\r\n invalidateChangelogRawModules(ctx.server as any);\r\n ctx.server.ws.send({ type: \"full-reload\" });\r\n return [];\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Expose the resolved Vite dev server port as process.env.PORT so that\r\n * in-process scripts (which use localFetch → http://localhost:${PORT}/api/...)\r\n * hit the right address even when Vite auto-increments the port.\r\n */\r\nfunction portExposer(): Plugin {\r\n return {\r\n name: \"agent-native-port-exposer\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n server.httpServer?.once(\"listening\", () => {\r\n const addr = server.httpServer?.address();\r\n if (addr && typeof addr === \"object\" && addr.port) {\r\n process.env.PORT = String(addr.port); // guard:allow-env-mutation — Vite dev server port published once at boot before any request\r\n }\r\n });\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Silence benign connection-reset noise from Vite's dev middleware.\r\n * Fires when a browser closes/reloads/navigates mid-request — the peer has\r\n * already gone away, there's nothing to fix, and Vite's error middleware\r\n * spams the terminal and browser HMR overlay with errors like\r\n * \"read ECONNRESET\" and \"socket hang up\". Our H3 server layer already\r\n * swallows these (create-server.ts onError); this plugin does the same for\r\n * Vite's own connect pipeline.\r\n */\r\nfunction silenceConnectionResets(): Plugin {\r\n const isClosedWebStreamController = (err: unknown) => {\r\n const e = err as\r\n | (NodeJS.ErrnoException & { cause?: NodeJS.ErrnoException })\r\n | undefined;\r\n const code = e?.code || (e?.cause as NodeJS.ErrnoException)?.code;\r\n const message = [\r\n String(e?.message ?? \"\"),\r\n String((e?.cause as NodeJS.ErrnoException | undefined)?.message ?? \"\"),\r\n ].join(\"\\n\");\r\n const stack = [\r\n String(e?.stack ?? \"\"),\r\n String((e?.cause as NodeJS.ErrnoException | undefined)?.stack ?? \"\"),\r\n ].join(\"\\n\");\r\n return (\r\n code === \"ERR_INVALID_STATE\" &&\r\n /Controller is already closed/i.test(message) &&\r\n (!stack ||\r\n /ReadableStreamDefaultController\\.close|internal\\/webstreams\\/adapters|IncomingMessage\\.onclose/.test(\r\n stack,\r\n ))\r\n );\r\n };\r\n const isBenign = (err: unknown) => {\r\n const e = err as\r\n | (NodeJS.ErrnoException & { cause?: NodeJS.ErrnoException })\r\n | undefined;\r\n const code = e?.code || (e?.cause as NodeJS.ErrnoException)?.code;\r\n const message = String(e?.message ?? \"\");\r\n return (\r\n code === \"ECONNRESET\" ||\r\n code === \"ECONNABORTED\" ||\r\n code === \"EPIPE\" ||\r\n isClosedWebStreamController(err) ||\r\n /^(read ECONNRESET|write ECONNRESET|socket hang up|aborted|write EPIPE)$/i.test(\r\n message,\r\n )\r\n );\r\n };\r\n const isBenignErrorPayload = (payload: unknown) => {\r\n const p = payload as { type?: string; err?: unknown } | undefined;\r\n return p?.type === \"error\" && isBenign(p.err);\r\n };\r\n return {\r\n name: \"agent-native-silence-connection-resets\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n // Swallow socket-level resets so Node doesn't surface them as uncaught.\r\n server.httpServer?.on(\"connection\", (socket) => {\r\n socket.on(\"error\", (err: Error) => {\r\n if (!isBenign(err)) throw err;\r\n });\r\n });\r\n // Drop Vite's \"Internal server error: read ECONNRESET\" log lines.\r\n const origError = server.config.logger.error.bind(server.config.logger);\r\n server.config.logger.error = (msg, opts) => {\r\n const text = typeof msg === \"string\" ? msg : String(msg ?? \"\");\r\n if (\r\n (opts?.error && isBenign(opts.error)) ||\r\n /Internal server error:\\s*(read ECONNRESET|write ECONNRESET|socket hang up|aborted|EPIPE)/i.test(\r\n text,\r\n )\r\n ) {\r\n return;\r\n }\r\n origError(msg, opts);\r\n };\r\n\r\n // Vite's error middleware sends these same benign errors to the HMR\r\n // client, which turns them into the full-screen browser overlay.\r\n // Suppress just those payloads while leaving real transform/runtime\r\n // errors untouched.\r\n const hot = (\r\n server as unknown as {\r\n environments?: { client?: { hot?: { send?: Function } } };\r\n }\r\n ).environments?.client?.hot;\r\n if (hot?.send) {\r\n const origHotSend = hot.send.bind(hot);\r\n hot.send = (payload: unknown, ...args: unknown[]) => {\r\n if (isBenignErrorPayload(payload)) return;\r\n return origHotSend(payload, ...args);\r\n };\r\n }\r\n\r\n const ws = (server as unknown as { ws?: { send?: Function } }).ws;\r\n if (ws?.send) {\r\n const origWsSend = ws.send.bind(ws);\r\n ws.send = (payload: unknown, ...args: unknown[]) => {\r\n if (isBenignErrorPayload(payload)) return;\r\n return origWsSend(payload, ...args);\r\n };\r\n }\r\n },\r\n };\r\n}\r\n\r\ntype AgentNativeViteCommand = ConfigEnv[\"command\"];\r\n\r\nfunction isBuildCommand(command?: AgentNativeViteCommand): boolean {\r\n return command === \"build\" || (!command && process.argv.includes(\"build\"));\r\n}\r\n\r\nfunction hasReactRouterPlugin(plugins: any[] | undefined): boolean {\r\n return Boolean(\r\n plugins?.some(\r\n (p: any) =>\r\n p?.name === \"react-router\" ||\r\n (Array.isArray(p) && p.some((pp: any) => pp?.name === \"react-router\")),\r\n ),\r\n );\r\n}\r\n\r\nfunction createReactTransformPlugin(): any {\r\n try {\r\n let reactTransformPlugin = require(\"@vitejs/plugin-react-swc\");\r\n if (reactTransformPlugin.default)\r\n reactTransformPlugin = reactTransformPlugin.default;\r\n return reactTransformPlugin?.();\r\n } catch {\r\n // Will be resolved at runtime by Vite\r\n return null;\r\n }\r\n}\r\n\r\nfunction createTailwindPlugin(options: Pick<ClientConfigOptions, \"tailwind\">) {\r\n if (options.tailwind === false) return null;\r\n try {\r\n let tailwindPlugin = require(\"@tailwindcss/vite\");\r\n if (tailwindPlugin.default) tailwindPlugin = tailwindPlugin.default;\r\n // Tailwind's Vite optimizer uses Lightning CSS internally and runs\r\n // before Vite's own CSS minifier. Lightning CSS collapses the standard\r\n // `backdrop-filter` declaration when a `-webkit-` fallback is present,\r\n // so let Vite/esbuild handle the production CSS pass instead.\r\n return tailwindPlugin({ optimize: false });\r\n } catch {\r\n // Plugin not installed — silently skip. Old templates may still be on v3.\r\n return null;\r\n }\r\n}\r\n\r\nfunction getConfiguredAppBasePath(): { appBasePath: string; base: string } {\r\n // APP_BASE_PATH lets this app be mounted under a prefix (e.g. \"/mail\") as\r\n // part of a unified workspace deploy. Defaults to \"/\" for standalone apps.\r\n const appBasePath =\r\n process.env.VITE_APP_BASE_PATH || process.env.APP_BASE_PATH || \"/\";\r\n const base = appBasePath.endsWith(\"/\") ? appBasePath : `${appBasePath}/`;\r\n return { appBasePath, base };\r\n}\r\n\r\nfunction createNitroDevPlugin(\r\n options: Pick<ClientConfigOptions, \"nitro\">,\r\n appBasePath: string,\r\n) {\r\n return nitroVitePlugin({\r\n serverDir: \"./server\",\r\n ...(options.nitro ?? {}),\r\n // Never auto-load test files as server handlers/plugins/middleware.\r\n // Nitro scans server/{plugins,middleware,routes,api}/*; a co-located\r\n // *.spec.ts would otherwise be loaded at runtime and crash the server\r\n // (its top-level vitest calls throw). Keep tests next to their source safely.\r\n ignore: [\r\n ...((options.nitro as { ignore?: string[] })?.ignore ?? []),\r\n \"**/*.spec.ts\",\r\n \"**/*.spec.tsx\",\r\n \"**/*.test.ts\",\r\n \"**/*.test.tsx\",\r\n ],\r\n routeRules: {\r\n ...mcpEmbedStaticAssetRouteRules(appBasePath),\r\n ...((options.nitro as { routeRules?: Record<string, any> })?.routeRules ??\r\n {}),\r\n },\r\n } as any);\r\n}\r\n\r\nfunction arrayFrom<T>(value: T | T[] | undefined): T[] {\r\n if (value === undefined) return [];\r\n return Array.isArray(value) ? value : [value];\r\n}\r\n\r\nfunction localWorkspacePackageAliases(\r\n packages: Array<{ packageName: string; packageDir: string }>,\r\n): any[] {\r\n const aliases: any[] = [];\r\n const sourceAliasExcludes = new Set([\"@agent-native/pinpoint\"]);\r\n\r\n for (const { packageName, packageDir } of packages) {\r\n if (sourceAliasExcludes.has(packageName)) continue;\r\n const pkgPath = path.join(packageDir, \"package.json\");\r\n if (!fs.existsSync(pkgPath)) continue;\r\n\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\r\n const exportsMap = pkg.exports as Record<string, unknown> | undefined;\r\n if (!exportsMap || typeof exportsMap !== \"object\") continue;\r\n\r\n for (const [exportPath, target] of Object.entries(exportsMap)) {\r\n const exportTarget = localWorkspaceExportTarget(packageDir, target);\r\n if (!exportTarget) continue;\r\n const importPath =\r\n exportPath === \".\"\r\n ? packageName\r\n : `${packageName}${exportPath.slice(1)}`;\r\n const replacement = path.resolve(packageDir, exportTarget);\r\n\r\n if (importPath.includes(\"*\") || replacement.includes(\"*\")) {\r\n aliases.push({\r\n find: new RegExp(\r\n `^${escapeRegex(importPath).replace(\"\\\\*\", \"(.+)\")}$`,\r\n ),\r\n replacement: replacement.replace(\"*\", \"$1\"),\r\n });\r\n continue;\r\n }\r\n\r\n aliases.push({\r\n find: new RegExp(`^${escapeRegex(importPath)}$`),\r\n replacement,\r\n });\r\n }\r\n } catch {\r\n // Ignore malformed package metadata; normal package resolution can handle it.\r\n }\r\n }\r\n\r\n return aliases;\r\n}\r\n\r\nfunction localWorkspaceExportTarget(\r\n packageDir: string,\r\n target: unknown,\r\n): string | null {\r\n const rawTarget = pickLocalWorkspaceExportTarget(target);\r\n if (!rawTarget) return null;\r\n return distExportToSourceTarget(packageDir, rawTarget);\r\n}\r\n\r\nfunction pickLocalWorkspaceExportTarget(target: unknown): string | null {\r\n if (typeof target === \"string\") return target;\r\n if (!target || typeof target !== \"object\" || Array.isArray(target)) {\r\n return null;\r\n }\r\n\r\n const record = target as Record<string, unknown>;\r\n for (const condition of [\"development\", \"browser\", \"import\", \"default\"]) {\r\n const resolved = pickLocalWorkspaceExportTarget(record[condition]);\r\n if (resolved) return resolved;\r\n }\r\n return null;\r\n}\r\n\r\nfunction distExportToSourceTarget(packageDir: string, target: string): string {\r\n if (!target.startsWith(\"./dist/\")) return target;\r\n\r\n if (target.includes(\"*\")) {\r\n return target\r\n .replace(\"./dist/\", \"./src/\")\r\n .replace(/\\.d\\.ts$/, \"\")\r\n .replace(/\\.js$/, \"\");\r\n }\r\n\r\n const sourceBase = target\r\n .replace(\"./dist/\", \"./src/\")\r\n .replace(/\\.d\\.ts$/, \"\")\r\n .replace(/\\.js$/, \"\");\r\n const candidates = target.endsWith(\".css\")\r\n ? [sourceBase]\r\n : [`${sourceBase}.tsx`, `${sourceBase}.ts`, sourceBase];\r\n\r\n for (const candidate of candidates) {\r\n if (fs.existsSync(path.resolve(packageDir, candidate))) return candidate;\r\n }\r\n return target;\r\n}\r\n\r\nfunction aliasArrayFrom(alias: unknown): any[] {\r\n if (!alias) return [];\r\n if (Array.isArray(alias)) return alias;\r\n if (typeof alias === \"object\") {\r\n return Object.entries(alias as Record<string, string>).map(\r\n ([find, replacement]) => ({ find, replacement }),\r\n );\r\n }\r\n return [];\r\n}\r\n\r\nconst DEFAULT_VITE_WATCH_IGNORES = [\r\n \"**/.git/**\",\r\n \"**/node_modules/**\",\r\n \"**/.react-router/**\",\r\n \"**/.generated/**\",\r\n \"**/.agents/**\",\r\n \"**/.claude/**\",\r\n \"**/data/**\",\r\n \"**/dist/**\",\r\n \"**/build/**\",\r\n];\r\n\r\nfunction forceServeOnly(pluginOrPreset: any): any {\r\n if (Array.isArray(pluginOrPreset)) return pluginOrPreset.map(forceServeOnly);\r\n return { ...pluginOrPreset, apply: \"serve\" };\r\n}\r\n\r\nfunction createAgentNativePlugins(\r\n options: ClientConfigOptions | AgentNativeVitePluginOptions,\r\n {\r\n command,\r\n includeReactTransform,\r\n useServeOnlyNitroPlugin = false,\r\n userPlugins = [],\r\n }: {\r\n command?: AgentNativeViteCommand;\r\n includeReactTransform: boolean;\r\n useServeOnlyNitroPlugin?: boolean;\r\n userPlugins?: any[];\r\n },\r\n): any[] {\r\n const { appBasePath } = getConfiguredAppBasePath();\r\n const nitroPlugin = createNitroDevPlugin(options, appBasePath);\r\n const includeNitro = !isBuildCommand(command);\r\n\r\n return [\r\n // Stub packages from `options.ssrStubs` in the SSR bundle so they\r\n // don't bloat the edge worker. Opt-in per template — the framework\r\n // hardcodes nothing (e.g. docs sites legitimately import `shiki` on\r\n // the server, so we can't blanket-stub it here).\r\n ssrStubPlugin(options.ssrStubs ?? []),\r\n ...userPlugins,\r\n appChangelogRawPlugin(),\r\n actionTypesPlugin(),\r\n agentsBundlePlugin(),\r\n autoReloadOnOptimizeDep(),\r\n fullReloadOnOptimizeDep504(),\r\n embedDevFrameHeaders(),\r\n baseRedirectGuard(),\r\n portExposer(),\r\n silenceConnectionResets(),\r\n rolldownInputFix(),\r\n // Nitro Vite plugin for dev-mode API route serving and HMR.\r\n // Disabled during build — React Router's build handles production.\r\n ...(useServeOnlyNitroPlugin\r\n ? [forceServeOnly(nitroPlugin)]\r\n : includeNitro\r\n ? [nitroPlugin]\r\n : []),\r\n includeReactTransform ? createReactTransformPlugin() : null,\r\n createTailwindPlugin(options),\r\n ].filter(Boolean);\r\n}\r\n\r\nfunction createAgentNativeConfig(\r\n options: ClientConfigOptions | AgentNativeVitePluginOptions = {},\r\n command?: AgentNativeViteCommand,\r\n userConfig: UserConfig = {},\r\n): UserConfig {\r\n const cwd = process.cwd();\r\n\r\n // Workspace env fallback. If this app is inside a workspace, tell Vite to\r\n // also look for .env files at the workspace root. Per-app .env still wins\r\n // (Vite's loadEnv merges in precedence order — app dir is loaded after).\r\n const workspaceRoot = findWorkspaceRoot(cwd);\r\n const envDir = workspaceRoot && workspaceRoot !== cwd ? workspaceRoot : cwd;\r\n\r\n // Preload workspace-root .env into process.env so Nitro server code sees\r\n // shared keys during dev (Nitro reads process.env, not vite's envDir).\r\n if (workspaceRoot && workspaceRoot !== cwd) {\r\n try {\r\n const dotenv = require(\"dotenv\");\r\n dotenv.config({\r\n path: path.join(workspaceRoot, \".env\"),\r\n override: false,\r\n // Suppress the dotenv v17 tip line — this loader fires alongside\r\n // utils.ts loadEnv() during dev startup and would otherwise emit a\r\n // duplicate \"[dotenv] injecting env\" message.\r\n quiet: true,\r\n });\r\n } catch {}\r\n }\r\n\r\n const { base } = getConfiguredAppBasePath();\r\n const isWorkspaceChild = process.env.AGENT_NATIVE_WORKSPACE === \"1\";\r\n const monorepoCoreAllow = [\r\n path.resolve(cwd, \"../../packages/core\"),\r\n path.resolve(cwd, \"../core\"),\r\n ].filter((candidate) => fs.existsSync(path.join(candidate, \"package.json\")));\r\n const monorepoNodeModulesAllow = [\r\n path.resolve(cwd, \"../../node_modules\"),\r\n ].filter((candidate) => fs.existsSync(candidate));\r\n\r\n // Workspace-core (enterprise monorepo): pull its directory into Vite's\r\n // file watcher + module graph so edits to its TS sources hot-reload the\r\n // dev server, and its package name into ssr.noExternal so the dynamic\r\n // import in framework-request-handler.ts goes through Vite's transform\r\n // pipeline (TypeScript, SSR HMR, the works).\r\n const workspaceCore = findWorkspaceCoreSync(cwd);\r\n const workspaceCoreFsAllow = workspaceCore\r\n ? [\r\n workspaceCore.packageDir,\r\n // Also allow the workspace root's node_modules so Vite can serve\r\n // pnpm-hoisted transitive deps (e.g. recharts, es-toolkit) as native\r\n // ESM when they are excluded from the Rolldown optimizer.\r\n path.join(workspaceCore.workspaceRoot, \"node_modules\"),\r\n ]\r\n : [];\r\n const workspaceNodeModulesAllow = isWorkspaceChild\r\n ? [path.resolve(cwd, \"../../node_modules\")]\r\n : [];\r\n const packageWorkspaceRoot = workspaceRoot ?? findPnpmWorkspaceRoot(cwd);\r\n const localWorkspacePackageDeps = findLocalWorkspacePackageDeps(\r\n cwd,\r\n packageWorkspaceRoot,\r\n );\r\n const localWorkspacePackageAllow = localWorkspacePackageDeps.map(\r\n (pkg) => pkg.packageDir,\r\n );\r\n const localWorkspacePackageResolveAliases = localWorkspacePackageAliases(\r\n localWorkspacePackageDeps,\r\n );\r\n const workspaceCoreNoExternal = workspaceCore\r\n ? [new RegExp(`^${escapeRegex(workspaceCore.packageName)}(/.*)?$`)]\r\n : [];\r\n const localWorkspacePackageNoExternal = localWorkspacePackageDeps.map(\r\n (pkg) => new RegExp(`^${escapeRegex(pkg.packageName)}(/.*)?$`),\r\n );\r\n const forcePollingWatch = process.env.CHOKIDAR_USEPOLLING === \"1\";\r\n const pollingWatchInterval = Number(process.env.CHOKIDAR_INTERVAL ?? 1000);\r\n const userWatch = userConfig.server?.watch ?? {};\r\n\r\n return {\r\n logLevel:\r\n options.logLevel ??\r\n userConfig.logLevel ??\r\n (isWorkspaceChild ? \"warn\" : undefined),\r\n envDir,\r\n base,\r\n define: {\r\n ...(userConfig.define ?? {}),\r\n ...(options.define ?? {}),\r\n __AGENT_NATIVE_BUILD_GA_MEASUREMENT_ID__: JSON.stringify(\r\n process.env.GA_MEASUREMENT_ID?.trim() || \"\",\r\n ),\r\n \"process.env.AGENT_NATIVE_BUILD_GA_MEASUREMENT_ID\": JSON.stringify(\r\n process.env.GA_MEASUREMENT_ID?.trim() || \"\",\r\n ),\r\n // Framework route warmup controls how SSR `.data` routes are fetched:\r\n // ordinary fetches keep them CDN-cacheable, while native prefetch headers\r\n // can be refused before the CDN/origin sees the request. Keep this value\r\n // authoritative even if app config provides its own `define` entries.\r\n __AGENT_NATIVE_ROUTE_WARMUP_CONFIG__: JSON.stringify(\r\n normalizeAgentNativeRouteWarmupConfig(options.routeWarmup),\r\n ),\r\n __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__: JSON.stringify(\r\n normalizeMcpIntegrationsConfig(options.mcpIntegrations),\r\n ),\r\n },\r\n server: {\r\n ...(userConfig.server ?? {}),\r\n host: userConfig.server?.host ?? \"::\",\r\n port: options.port ?? userConfig.server?.port ?? 8080,\r\n allowedHosts: options.allowedHosts ??\r\n userConfig.server?.allowedHosts ?? [\r\n \".ngrok-free.dev\",\r\n \".ngrok-free.app\",\r\n \".ngrok.io\",\r\n \".trycloudflare.com\",\r\n ],\r\n watch: {\r\n ...userWatch,\r\n ignored: [\r\n ...DEFAULT_VITE_WATCH_IGNORES,\r\n ...arrayFrom((userWatch as { ignored?: any })?.ignored),\r\n ],\r\n ...(forcePollingWatch\r\n ? {\r\n usePolling: true,\r\n interval: Number.isFinite(pollingWatchInterval)\r\n ? pollingWatchInterval\r\n : 1000,\r\n }\r\n : {}),\r\n },\r\n fs: {\r\n ...(userConfig.server?.fs ?? {}),\r\n allow: [\r\n \".\",\r\n ...monorepoCoreAllow,\r\n ...monorepoNodeModulesAllow,\r\n ...workspaceCoreFsAllow,\r\n ...localWorkspacePackageAllow,\r\n ...workspaceNodeModulesAllow,\r\n ...(userConfig.server?.fs?.allow ?? []),\r\n ...(options.fsAllow ?? []),\r\n ],\r\n deny: [\r\n \".env\",\r\n \".env.*\",\r\n \"*.{crt,pem}\",\r\n \"**/.git/**\",\r\n ...(userConfig.server?.fs?.deny ?? []),\r\n ...(options.fsDeny ?? []),\r\n ],\r\n },\r\n },\r\n build: {\r\n ...(userConfig.build ?? {}),\r\n outDir: options.outDir ?? userConfig.build?.outDir ?? \"dist/spa\",\r\n // Vite 8 defaults CSS minification to Lightning CSS, which collapses a\r\n // `backdrop-filter` + `-webkit-backdrop-filter` pair down to only the\r\n // prefixed form. Chrome ignores that, so glass effects disappear in\r\n // production. Keep esbuild as the CSS minifier and target Safari 18+ so\r\n // the standard property survives the production pipeline.\r\n cssMinify: userConfig.build?.cssMinify ?? \"esbuild\",\r\n cssTarget: userConfig.build?.cssTarget ?? [\"es2020\", \"safari18\"],\r\n },\r\n // Bundle all non-Node.js deps into the production SSR server build.\r\n // Edge runtimes (CF Workers, Deno) don't have node_modules at runtime.\r\n // In dev, React Router's Vite Environment runner expects CJS packages\r\n // like React to stay external; forcing them through the module runner\r\n // raises `module is not defined`.\r\n ssr: isBuildCommand(command)\r\n ? {\r\n ...(userConfig.ssr ?? {}),\r\n noExternal: /^(?!node:)/,\r\n external: [\r\n // Yjs is used by both server-side collaboration actions and the\r\n // client SSR graph. If Vite inlines it here, Nitro also emits its\r\n // own server copy and a single request imports Yjs twice, breaking\r\n // Yjs constructor identity. This externalizes only Vite's\r\n // intermediate React Router SSR graph; Nitro's final Node/edge\r\n // bundle still owns and bundles the dependency, so both paths\r\n // share one portable module instance.\r\n \"yjs\",\r\n ...NODE_SSR_NATIVE_EXTERNALS,\r\n ...arrayFrom((userConfig.ssr as { external?: any })?.external),\r\n ],\r\n // Pick the workspace-core's compiled `dist/` exports in prod —\r\n // Node-style `default` condition matches what edge runtimes (CF\r\n // Workers, Deno) can actually load. Without this, Vite's prod\r\n // build inherits the dev-condition src/ entry and ships unbuilt\r\n // TypeScript into the worker.\r\n resolve: {\r\n ...((\r\n userConfig.ssr as\r\n | { resolve?: Record<string, unknown> }\r\n | undefined\r\n )?.resolve ?? {}),\r\n conditions: [\"node\", \"module\", \"import\", \"default\"],\r\n externalConditions: [\"node\", \"module\", \"import\", \"default\"],\r\n },\r\n }\r\n : {\r\n ...(userConfig.ssr ?? {}),\r\n // Vite already sets `development` in the dev resolve conditions,\r\n // so the workspace-core template's exports.development → src/\r\n // entry is picked automatically — Vite handles TS compilation\r\n // and triggers a server restart when those files change.\r\n noExternal: [\r\n /^@agent-native\\/core(\\/.*)?$/,\r\n // Keep React Router in Vite's SSR module graph so resolve.dedupe\r\n // can force root.tsx and core's shared entry-server through the\r\n // same FrameworkContext instance.\r\n ...(hasDep(\"react-router\", cwd) ? [/^react-router(\\/.*)?$/] : []),\r\n // Radix UI primitives are transitive deps of @agent-native/core\r\n // (used by FeedbackButton, AgentSidebar, ShareDialog, etc.). When\r\n // a consumer app SSRs a component that imports Radix, Node's\r\n // externalized resolver can't find @radix-ui/* from the app cwd\r\n // because pnpm doesn't hoist transitive deps. Bundling them\r\n // through Vite resolves them via the workspace store.\r\n /^@radix-ui\\//,\r\n // scheduling ships TypeScript-compiled dist files that contain literal\r\n // `@/` path-alias imports (e.g. `import { Input } from\r\n // \"@/components/ui/input\"`). In standalone (published) mode Node\r\n // treats the package as an external CJS dep and can't resolve\r\n // `@/components`. Adding it to noExternal makes Vite process it\r\n // through the module pipeline, where the consumer app's `@` →\r\n // `./app` alias is already registered.\r\n ...(hasDep(\"@agent-native/scheduling\", cwd)\r\n ? [/^@agent-native\\/scheduling(\\/.*)?$/]\r\n : []),\r\n ...workspaceCoreNoExternal,\r\n ...localWorkspacePackageNoExternal,\r\n ...arrayFrom((userConfig.ssr as { noExternal?: any })?.noExternal),\r\n ],\r\n external: [\r\n \"react\",\r\n \"react-dom\",\r\n \"react-dom/server\",\r\n ...arrayFrom((userConfig.ssr as { external?: any })?.external),\r\n ],\r\n },\r\n optimizeDeps: {\r\n ...(userConfig.optimizeDeps ?? {}),\r\n include: [\r\n ...getDefaultOptimizeDeps(cwd),\r\n ...(hasDep(\"@agent-native/pinpoint\", cwd)\r\n ? [\"@agent-native/pinpoint/react\"]\r\n : []),\r\n ...(userConfig.optimizeDeps?.include ?? []),\r\n ...(options.optimizeDeps?.include ?? []),\r\n ],\r\n // In monorepo mode: explicitly exclude @agent-native/core subpaths so\r\n // Vite never prebundles them from dist/. The source alias above\r\n // (`getCoreSourceAliases`) resolves every import to src/ on every\r\n // request, so HMR picks up new exports immediately. Without exclude,\r\n // the prebundle is built from dist/ once at startup and silently\r\n // serves stale code even after the source / dist is updated.\r\n exclude: [\r\n ...(findCoreSrcDir(cwd) !== null ? CORE_CLIENT_SUBPATHS : []),\r\n ...(userConfig.optimizeDeps?.exclude ?? []),\r\n ...(options.optimizeDeps?.exclude ?? []),\r\n ],\r\n },\r\n resolve: {\r\n ...(userConfig.resolve ?? {}),\r\n // Dedupe all client-side packages that core shares with the consuming\r\n // app. In pnpm monorepos, core's devDependencies can install separate\r\n // copies (linked to different React versions). Without deduping, each\r\n // copy creates its own React context — QueryClientProvider, RouterProvider,\r\n // Radix, etc. — causing \"No provider\" crashes at runtime.\r\n dedupe: [\r\n ...getClientDedupe(cwd),\r\n ...arrayFrom((userConfig.resolve as { dedupe?: any })?.dedupe),\r\n ],\r\n alias: [\r\n // Published npm installs: one react-router instance for app + core.\r\n ...getReactRouterAliases(cwd),\r\n // In monorepo dev: resolve @agent-native/core to source for HMR.\r\n // Uses regex with $ anchor for exact matching to prevent\r\n // @agent-native/core from prefix-matching @agent-native/core/client.\r\n ...getCoreSourceAliases(cwd),\r\n ...localWorkspacePackageResolveAliases,\r\n // Standard path aliases (prefix matching is fine here)\r\n { find: \"@\", replacement: path.resolve(cwd, \"./app\") },\r\n { find: \"@shared\", replacement: path.resolve(cwd, \"./shared\") },\r\n ...Object.entries(options.aliases ?? {}).map(([find, replacement]) => ({\r\n find,\r\n replacement,\r\n })),\r\n ...aliasArrayFrom((userConfig.resolve as { alias?: unknown })?.alias),\r\n ],\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Agent-Native's Vite plugin preset.\r\n *\r\n * Use this in ordinary Vite configs so `vite.config.ts` keeps Vite's native\r\n * `UserConfig` type surface:\r\n *\r\n * ```ts\r\n * import { defineConfig } from \"vite\";\r\n * import { reactRouter } from \"@react-router/dev/vite\";\r\n * import { agentNative } from \"@agent-native/core/vite\";\r\n *\r\n * export default defineConfig({\r\n * plugins: [reactRouter(), agentNative({ ssrStubs: [\"shiki\"] })],\r\n * });\r\n * ```\r\n */\r\nexport function agentNative(\r\n options: AgentNativeVitePluginOptions = {},\r\n): Plugin[] {\r\n return [\r\n {\r\n name: \"agent-native-config\",\r\n enforce: \"pre\",\r\n config(config: UserConfig, env: ConfigEnv) {\r\n return createAgentNativeConfig(options, env.command, config);\r\n },\r\n },\r\n ...createAgentNativePlugins(options, {\r\n includeReactTransform: options.legacySpa === true,\r\n useServeOnlyNitroPlugin: true,\r\n }),\r\n ] as Plugin[];\r\n}\r\n\r\n/**\r\n * Create the client Vite config with sensible agent-native defaults.\r\n *\r\n * @deprecated Prefer `defineConfig` from `vite` plus the `agentNative()` plugin\r\n * preset. This compatibility wrapper remains for existing templates.\r\n */\r\nexport function defineConfig(options: ClientConfigOptions = {}): UserConfig {\r\n const includeReactTransform =\r\n !hasReactRouterPlugin(options.plugins) && !options.reactRouter;\r\n return {\r\n ...createAgentNativeConfig(options),\r\n plugins: createAgentNativePlugins(options, {\r\n includeReactTransform,\r\n userPlugins: options.plugins,\r\n }),\r\n };\r\n}\r\n\r\nexport {\r\n getClientDedupe as _getClientDedupe,\r\n getDefaultOptimizeDeps as _getDefaultOptimizeDeps,\r\n findCorePackageRoot as _findCorePackageRoot,\r\n getReactRouterAliases as _getReactRouterAliases,\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"events\";\r\nimport fs from \"fs\";\r\nimport type { IncomingMessage, ServerResponse } from \"http\";\r\nimport { createRequire, syncBuiltinESMExports } from \"module\";\r\nimport path from \"path\";\r\nimport { fileURLToPath } from \"url\";\r\n\r\nimport type { ConfigEnv, Plugin, UserConfig } from \"vite\";\r\n\r\nimport {\r\n mergePendingChangelog,\r\n parsePendingEntry,\r\n} from \"../changelog/parse.js\";\r\nimport { getViteDevRecoveryScript } from \"../client/vite-dev-recovery-script.js\";\r\nimport { findWorkspaceRoot } from \"../scripts/utils.js\";\r\nimport { verifyEmbedSessionToken } from \"../server/embed-session.js\";\r\nimport {\r\n EMBED_SESSION_COOKIE,\r\n EMBED_TOKEN_QUERY_PARAM,\r\n MCP_APP_CHAT_BRIDGE_QUERY_PARAM,\r\n} from \"../shared/embed-auth.js\";\r\nimport {\r\n isMcpEmbedCorsOrigin,\r\n MCP_EMBED_CORS_ALLOW_HEADERS,\r\n MCP_EMBED_STATIC_ASSET_HEADERS,\r\n mcpEmbedStaticAssetRouteRules,\r\n shouldAllowMcpEmbedCredentials,\r\n} from \"../shared/mcp-embed-headers.js\";\r\nimport {\r\n normalizeMcpIntegrationsConfig,\r\n type McpIntegrationsConfigInput,\r\n} from \"../shared/mcp-integration-config.js\";\r\nimport {\r\n normalizeAgentNativeRouteWarmupConfig,\r\n type AgentNativeRouteWarmupConfigInput,\r\n} from \"../shared/route-warmup-config.js\";\r\nimport { actionTypesPlugin } from \"./action-types-plugin.js\";\r\nimport { agentsBundlePlugin } from \"./agents-bundle-plugin.js\";\r\n\r\nconst require = createRequire(import.meta.url);\r\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\r\nlet nitroFsWatchGuardInstalled = false;\r\n\r\ntype FsWatchArgs = [fs.PathLike, ...any[]];\r\n\r\nfunction isFileWatchLimitError(\r\n error: NodeJS.ErrnoException | undefined,\r\n): boolean {\r\n return error?.code === \"EMFILE\" || error?.code === \"ENOSPC\";\r\n}\r\n\r\nfunction watchPollingIntervalMs(): number {\r\n const raw = Number(process.env.CHOKIDAR_INTERVAL ?? 1000);\r\n return Number.isFinite(raw) && raw > 0 ? raw : 1000;\r\n}\r\n\r\nfunction fsWatchListener(args: FsWatchArgs): fs.WatchListener<string> | null {\r\n const maybeOptionsOrListener = args[1];\r\n const maybeListener = args[2];\r\n if (typeof maybeOptionsOrListener === \"function\")\r\n return maybeOptionsOrListener as fs.WatchListener<string>;\r\n if (typeof maybeListener === \"function\")\r\n return maybeListener as fs.WatchListener<string>;\r\n return null;\r\n}\r\n\r\nfunction fsWatchPersistent(args: FsWatchArgs): boolean {\r\n const options = args[1];\r\n if (!options || typeof options === \"function\") return true;\r\n if (typeof options === \"string\" || Buffer.isBuffer(options)) return true;\r\n return options.persistent !== false;\r\n}\r\n\r\nfunction directEntrySnapshot(\r\n target: string,\r\n): Map<string, { mtimeMs: number; size: number; directory: boolean }> {\r\n const snapshot = new Map<\r\n string,\r\n { mtimeMs: number; size: number; directory: boolean }\r\n >();\r\n const stat = fs.statSync(target);\r\n if (!stat.isDirectory()) {\r\n snapshot.set(path.basename(target), {\r\n mtimeMs: stat.mtimeMs,\r\n size: stat.size,\r\n directory: false,\r\n });\r\n return snapshot;\r\n }\r\n for (const entry of fs.readdirSync(target, { withFileTypes: true })) {\r\n const entryPath = path.join(target, entry.name);\r\n try {\r\n const entryStat = fs.statSync(entryPath);\r\n snapshot.set(entry.name, {\r\n mtimeMs: entryStat.mtimeMs,\r\n size: entryStat.size,\r\n directory: entryStat.isDirectory(),\r\n });\r\n } catch {\r\n // The entry may have disappeared between readdir and stat.\r\n }\r\n }\r\n return snapshot;\r\n}\r\n\r\nfunction createPollingFsWatcher(args: FsWatchArgs): fs.FSWatcher {\r\n const target = String(args[0]);\r\n const listener = fsWatchListener(args);\r\n const emitter = new EventEmitter() as fs.FSWatcher;\r\n let closed = false;\r\n let previous = directEntrySnapshot(target);\r\n\r\n if (listener) emitter.on(\"change\", listener);\r\n\r\n const emitChange = (eventName: \"change\" | \"rename\", filename: string) => {\r\n emitter.emit(\"change\", eventName, filename);\r\n };\r\n\r\n const timer = setInterval(() => {\r\n if (closed) return;\r\n let next: typeof previous;\r\n try {\r\n next = directEntrySnapshot(target);\r\n } catch (error) {\r\n emitter.emit(\"error\", error);\r\n return;\r\n }\r\n\r\n for (const [filename, current] of next) {\r\n const old = previous.get(filename);\r\n if (!old) {\r\n emitChange(\"rename\", filename);\r\n continue;\r\n }\r\n if (\r\n old.mtimeMs !== current.mtimeMs ||\r\n old.size !== current.size ||\r\n old.directory !== current.directory\r\n ) {\r\n emitChange(\"change\", filename);\r\n }\r\n }\r\n for (const filename of previous.keys()) {\r\n if (!next.has(filename)) emitChange(\"rename\", filename);\r\n }\r\n previous = next;\r\n }, watchPollingIntervalMs());\r\n\r\n if (!fsWatchPersistent(args)) timer.unref();\r\n\r\n emitter.close = () => {\r\n if (closed) return;\r\n closed = true;\r\n clearInterval(timer);\r\n emitter.removeAllListeners();\r\n };\r\n emitter.ref = () => {\r\n timer.ref();\r\n return emitter;\r\n };\r\n emitter.unref = () => {\r\n timer.unref();\r\n return emitter;\r\n };\r\n\r\n return emitter;\r\n}\r\n\r\nfunction warnNitroFsWatchFallback(target: unknown, err: NodeJS.ErrnoException) {\r\n console.warn(\r\n `[agent-native] Falling back to polling Nitro fs.watch for ${String(target)}: ${err.message}`,\r\n );\r\n}\r\n\r\nfunction installNitroFsWatchGuard(): void {\r\n if (nitroFsWatchGuardInstalled) return;\r\n nitroFsWatchGuardInstalled = true;\r\n\r\n const originalWatch = fs.watch.bind(fs) as (...args: any[]) => fs.FSWatcher;\r\n (fs as typeof fs & { watch: (...args: any[]) => fs.FSWatcher }).watch = (\r\n ...args: any[]\r\n ) => {\r\n let watcher: fs.FSWatcher;\r\n try {\r\n watcher = originalWatch(...args);\r\n } catch (error) {\r\n const err = error as NodeJS.ErrnoException;\r\n if (!isFileWatchLimitError(err)) throw error;\r\n warnNitroFsWatchFallback(args[0], err);\r\n return createPollingFsWatcher(args as FsWatchArgs);\r\n }\r\n\r\n const originalEmit = watcher.emit.bind(watcher);\r\n const originalClose = watcher.close.bind(watcher);\r\n let pollingFallback: fs.FSWatcher | undefined;\r\n\r\n watcher.close = (() => {\r\n pollingFallback?.close();\r\n return originalClose();\r\n }) as fs.FSWatcher[\"close\"];\r\n\r\n watcher.emit = ((eventName: string | symbol, ...eventArgs: any[]) => {\r\n const err = eventArgs[0] as NodeJS.ErrnoException | undefined;\r\n if (eventName === \"error\" && isFileWatchLimitError(err) && err) {\r\n warnNitroFsWatchFallback(args[0], err);\r\n watcher.close();\r\n pollingFallback = createPollingFsWatcher(args as FsWatchArgs);\r\n pollingFallback.on(\"change\", (changeEvent, filename) => {\r\n originalEmit(\"change\", changeEvent, filename);\r\n });\r\n pollingFallback.on(\"error\", (pollingError) => {\r\n originalEmit(\"error\", pollingError);\r\n });\r\n return false;\r\n }\r\n return originalEmit(eventName, ...eventArgs);\r\n }) as fs.FSWatcher[\"emit\"];\r\n return watcher;\r\n };\r\n syncBuiltinESMExports();\r\n}\r\n\r\nfunction nitroVitePlugin(\r\n ...args: Parameters<typeof import(\"nitro/vite\").nitro>\r\n) {\r\n installNitroFsWatchGuard();\r\n return require(\"nitro/vite\").nitro(...args);\r\n}\r\n\r\n/**\r\n * Sync discovery for the workspace-core in an enterprise monorepo.\r\n *\r\n * Mirrors `getWorkspaceCoreExports` in deploy/workspace-core.ts but stays\r\n * synchronous so it can run inline in `defineConfig`. Returns the workspace\r\n * core's package name + absolute directory, or null if no workspace core is\r\n * declared in the ancestor chain.\r\n *\r\n * Walks up from `startDir` looking for a package.json with\r\n * `agent-native.workspaceCore`. Resolves the declared package name through\r\n * `<workspaceRoot>/node_modules/<name>` (pnpm symlink, fastest) or by\r\n * scanning `packages/*` for a matching `name` field (fallback for\r\n * pre-install scenarios).\r\n */\r\nfunction findWorkspaceCoreSync(\r\n startDir: string,\r\n): { packageName: string; packageDir: string; workspaceRoot: string } | null {\r\n // 1) Walk up looking for the root package.json that declares workspaceCore.\r\n let dir = path.resolve(startDir);\r\n let workspaceRoot: string | null = null;\r\n let packageName: string | null = null;\r\n for (let i = 0; i < 20; i++) {\r\n const pkgPath = path.join(dir, \"package.json\");\r\n if (fs.existsSync(pkgPath)) {\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\r\n const declared = pkg?.[\"agent-native\"]?.workspaceCore;\r\n if (typeof declared === \"string\" && declared.length > 0) {\r\n workspaceRoot = dir;\r\n packageName = declared;\r\n break;\r\n }\r\n } catch {\r\n // Malformed package.json — keep walking up.\r\n }\r\n }\r\n const parent = path.dirname(dir);\r\n if (parent === dir) break;\r\n dir = parent;\r\n }\r\n if (!workspaceRoot || !packageName) return null;\r\n\r\n // 2a) pnpm/npm symlink under workspaceRoot/node_modules.\r\n const nm = path.join(workspaceRoot, \"node_modules\", packageName);\r\n if (fs.existsSync(path.join(nm, \"package.json\"))) {\r\n return { packageName, packageDir: fs.realpathSync(nm), workspaceRoot };\r\n }\r\n\r\n // 2b) Scan packages/* and packages/@scope/* for a matching `name`.\r\n const packagesDir = path.join(workspaceRoot, \"packages\");\r\n if (fs.existsSync(packagesDir)) {\r\n const candidates: string[] = [];\r\n for (const entry of fs.readdirSync(packagesDir, { withFileTypes: true })) {\r\n if (!entry.isDirectory()) continue;\r\n candidates.push(path.join(packagesDir, entry.name));\r\n if (entry.name.startsWith(\"@\")) {\r\n const scopeDir = path.join(packagesDir, entry.name);\r\n for (const sub of fs.readdirSync(scopeDir, { withFileTypes: true })) {\r\n if (sub.isDirectory()) candidates.push(path.join(scopeDir, sub.name));\r\n }\r\n }\r\n }\r\n for (const c of candidates) {\r\n const p = path.join(c, \"package.json\");\r\n if (!fs.existsSync(p)) continue;\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(p, \"utf-8\"));\r\n if (pkg?.name === packageName)\r\n return { packageName, packageDir: fs.realpathSync(c), workspaceRoot };\r\n } catch {\r\n // ignore malformed package.json\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction findLocalWorkspacePackageDeps(\r\n startDir: string,\r\n workspaceRoot: string | null,\r\n): Array<{ packageName: string; packageDir: string }> {\r\n const pkgPath = path.join(startDir, \"package.json\");\r\n if (!fs.existsSync(pkgPath)) return [];\r\n\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\r\n const deps = {\r\n ...(pkg.dependencies ?? {}),\r\n ...(pkg.devDependencies ?? {}),\r\n ...(pkg.peerDependencies ?? {}),\r\n } as Record<string, string>;\r\n const seen = new Set<string>();\r\n const packages: Array<{ packageName: string; packageDir: string }> = [];\r\n\r\n for (const [packageName, range] of Object.entries(deps)) {\r\n if (seen.has(packageName)) continue;\r\n seen.add(packageName);\r\n\r\n try {\r\n let packageJsonPath: string | null = null;\r\n if (range.startsWith(\"file:\")) {\r\n packageJsonPath = findFilePackageJsonPath(pkgPath, range);\r\n } else if (range.startsWith(\"workspace:\")) {\r\n packageJsonPath = findWorkspacePackageJsonPath(\r\n pkgPath,\r\n packageName,\r\n workspaceRoot,\r\n );\r\n } else {\r\n continue;\r\n }\r\n if (!packageJsonPath) continue;\r\n const packageDir = fs.realpathSync(path.dirname(packageJsonPath));\r\n const packageJson = JSON.parse(\r\n fs.readFileSync(packageJsonPath, \"utf-8\"),\r\n );\r\n if (packageJson?.name !== packageName) continue;\r\n packages.push({ packageName, packageDir });\r\n } catch {\r\n // Dependency may not have been installed yet; ignore it for dev config.\r\n }\r\n }\r\n\r\n return packages;\r\n } catch {\r\n return [];\r\n }\r\n}\r\n\r\nfunction packagePathSegments(packageName: string): string[] {\r\n return packageName.split(\"/\");\r\n}\r\n\r\nfunction findWorkspacePackageJsonPath(\r\n pkgPath: string,\r\n packageName: string,\r\n workspaceRoot: string | null,\r\n): string | null {\r\n const packageSegments = packagePathSegments(packageName);\r\n const candidates = [\r\n path.join(path.dirname(pkgPath), \"node_modules\", ...packageSegments),\r\n ...(workspaceRoot\r\n ? [path.join(workspaceRoot, \"node_modules\", ...packageSegments)]\r\n : []),\r\n ];\r\n\r\n for (const candidate of candidates) {\r\n const packageJsonPath = path.join(candidate, \"package.json\");\r\n if (!fs.existsSync(packageJsonPath)) continue;\r\n const realPath = fs.realpathSync(packageJsonPath);\r\n if (\r\n workspaceRoot &&\r\n !realPath.startsWith(`${fs.realpathSync(workspaceRoot)}${path.sep}`)\r\n ) {\r\n continue;\r\n }\r\n return realPath;\r\n }\r\n\r\n if (workspaceRoot) {\r\n return findWorkspacePackageJsonByName(workspaceRoot, packageName);\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findWorkspacePackageJsonByName(\r\n workspaceRoot: string,\r\n packageName: string,\r\n): string | null {\r\n const searchRoots = [\"packages\", \"templates\"].map((name) =>\r\n path.join(workspaceRoot, name),\r\n );\r\n\r\n for (const searchRoot of searchRoots) {\r\n const packageJsonPath = findPackageJsonInTree(searchRoot, packageName, 2);\r\n if (packageJsonPath) return packageJsonPath;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findPackageJsonInTree(\r\n root: string,\r\n packageName: string,\r\n maxDepth: number,\r\n): string | null {\r\n if (!fs.existsSync(root)) return null;\r\n\r\n const packageJsonPath = path.join(root, \"package.json\");\r\n if (fs.existsSync(packageJsonPath)) {\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\r\n if (pkg?.name === packageName) return fs.realpathSync(packageJsonPath);\r\n } catch {\r\n // Ignore malformed workspace package metadata.\r\n }\r\n }\r\n\r\n if (maxDepth <= 0) return null;\r\n\r\n for (const entry of fs.readdirSync(root, { withFileTypes: true })) {\r\n if (!entry.isDirectory()) continue;\r\n if (entry.name === \"node_modules\" || entry.name.startsWith(\".\")) continue;\r\n\r\n const found = findPackageJsonInTree(\r\n path.join(root, entry.name),\r\n packageName,\r\n maxDepth - 1,\r\n );\r\n if (found) return found;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction findFilePackageJsonPath(\r\n pkgPath: string,\r\n range: string,\r\n): string | null {\r\n const spec = range.slice(\"file:\".length);\r\n const packageDir = spec.startsWith(\"//\")\r\n ? fileURLToPath(range)\r\n : path.resolve(path.dirname(pkgPath), spec);\r\n const packageJsonPath = path.join(packageDir, \"package.json\");\r\n return fs.existsSync(packageJsonPath) ? packageJsonPath : null;\r\n}\r\n\r\nfunction findPnpmWorkspaceRoot(startDir: string): string | null {\r\n let dir = path.resolve(startDir);\r\n for (let i = 0; i < 20; i++) {\r\n if (fs.existsSync(path.join(dir, \"pnpm-workspace.yaml\"))) return dir;\r\n const parent = path.dirname(dir);\r\n if (parent === dir) break;\r\n dir = parent;\r\n }\r\n return null;\r\n}\r\n\r\n/** Escape a string so it can be embedded as a regex literal. */\r\nfunction escapeRegex(s: string): string {\r\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\r\n}\r\n\r\n/** Check if a package is installed in the project */\r\nfunction hasDep(pkg: string, cwd: string): boolean {\r\n try {\r\n const pkgJson = JSON.parse(\r\n fs.readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\r\n );\r\n return !!(\r\n pkgJson.dependencies?.[pkg] ||\r\n pkgJson.devDependencies?.[pkg] ||\r\n pkgJson.peerDependencies?.[pkg]\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction hasCoreDep(pkg: string, cwd: string): boolean {\r\n const coreRoot = findCorePackageRoot(cwd);\r\n if (!coreRoot) return false;\r\n try {\r\n const pkgJson = JSON.parse(\r\n fs.readFileSync(path.join(coreRoot, \"package.json\"), \"utf-8\"),\r\n );\r\n return !!(pkgJson.dependencies?.[pkg] || pkgJson.devDependencies?.[pkg]);\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction hasOptimizeDep(pkg: string, cwd: string): boolean {\r\n return hasDep(pkg, cwd) || hasCoreDep(pkg, cwd);\r\n}\r\n\r\n/**\r\n * Build the `resolve.dedupe` list dynamically. Reads core's package.json and\r\n * collects every peerDependency that the consuming app also declares. This\r\n * ensures Vite resolves them from the app root, not from core's own\r\n * node_modules — preventing duplicate React context / singleton issues.\r\n */\r\nfunction getClientDedupe(cwd: string): string[] {\r\n // Always dedupe React internals (sub-path exports aren't in peerDeps)\r\n const always = new Set([\r\n \"react\",\r\n \"react-dom\",\r\n \"react-dom/client\",\r\n // Framework routers must share one react-router instance so\r\n // FrameworkContext (Meta/Links/Scripts) matches ServerRouter/HydratedRouter.\r\n ...(hasDep(\"react-router\", cwd)\r\n ? [\"react-router\", \"react-router/dom\"]\r\n : []),\r\n ]);\r\n\r\n // Server-only packages that never run in the browser — no point deduping.\r\n const serverOnly = new Set([\r\n \"drizzle-kit\",\r\n \"node-pty\",\r\n \"postgres\",\r\n \"ws\",\r\n \"typescript\",\r\n \"vite\",\r\n \"@vitejs/plugin-react-swc\",\r\n \"tailwindcss\",\r\n \"@tailwindcss/vite\",\r\n ]);\r\n\r\n try {\r\n const corePkgPath = path.resolve(__dirname, \"../../package.json\");\r\n const corePkg = JSON.parse(fs.readFileSync(corePkgPath, \"utf-8\"));\r\n\r\n // Scan both peerDependencies and dependencies. Direct deps like\r\n // @radix-ui/* use React internally — they must resolve against the\r\n // app's React, not a second copy inside core's node_modules.\r\n const coreDeps = new Set([\r\n ...Object.keys(corePkg.peerDependencies ?? {}),\r\n ...Object.keys(corePkg.dependencies ?? {}),\r\n ]);\r\n\r\n // Read the consuming app's dependencies\r\n const appPkg = JSON.parse(\r\n fs.readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\r\n );\r\n const appDeps = new Set([\r\n ...Object.keys(appPkg.dependencies ?? {}),\r\n ...Object.keys(appPkg.devDependencies ?? {}),\r\n ]);\r\n\r\n for (const dep of coreDeps) {\r\n if (serverOnly.has(dep)) continue;\r\n // Dedupe if the app also declares it, OR if it's a React-based\r\n // UI library (Radix, Tanstack) that must share the app's React.\r\n if (\r\n appDeps.has(dep) ||\r\n dep.startsWith(\"@radix-ui/\") ||\r\n dep.startsWith(\"@tanstack/\")\r\n ) {\r\n always.add(dep);\r\n }\r\n }\r\n } catch {\r\n // Can't read package.json — fall back to known singletons\r\n }\r\n\r\n return [...always];\r\n}\r\n\r\n/**\r\n * Locate `packages/core/src` if we're inside the framework monorepo.\r\n * Shared between `getCoreSourceAliases` (which redirects imports to src/)\r\n * and `getDefaultOptimizeDeps` (which must NOT prebundle from dist/ when\r\n * the alias is active — otherwise the prebundle is built from a snapshot\r\n * of dist/ at startup and never picks up new exports).\r\n */\r\nfunction findCorePackageRoot(cwd: string): string | null {\r\n try {\r\n const pkg = JSON.parse(\r\n fs.readFileSync(path.join(cwd, \"package.json\"), \"utf-8\"),\r\n ) as {\r\n dependencies?: Record<string, string>;\r\n devDependencies?: Record<string, string>;\r\n };\r\n const spec =\r\n pkg.dependencies?.[\"@agent-native/core\"] ??\r\n pkg.devDependencies?.[\"@agent-native/core\"];\r\n if (typeof spec === \"string\" && spec.startsWith(\"file:\")) {\r\n const rooted = fileURLToPath(spec);\r\n if (fs.existsSync(path.join(rooted, \"src/index.ts\"))) return rooted;\r\n }\r\n } catch {\r\n // package.json missing or unreadable — fall through to path heuristics.\r\n }\r\n\r\n const candidates = [\r\n path.resolve(cwd, \"../../packages/core\"), // templates/<name>/\r\n path.resolve(cwd, \"../core\"), // packages/<name>/\r\n path.resolve(cwd, \"node_modules/@agent-native/core\"),\r\n ];\r\n for (const candidate of candidates) {\r\n try {\r\n if (!fs.existsSync(candidate)) continue;\r\n const root = fs.realpathSync(candidate);\r\n if (fs.existsSync(path.join(root, \"src/index.ts\"))) return root;\r\n } catch {\r\n continue;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction findCoreSrcDir(cwd: string): string | null {\r\n const root = findCorePackageRoot(cwd);\r\n return root ? path.join(root, \"src\") : null;\r\n}\r\n\r\n/**\r\n * Pin react-router imports to the consuming app's install. pnpm keeps a peer\r\n * copy under `@agent-native/core/node_modules/react-router`; `resolve.dedupe`\r\n * alone can still leave SSR `Meta`/`Links` on a different FrameworkContext\r\n * than React Router's dev server router.\r\n */\r\nfunction getReactRouterAliases(\r\n cwd: string,\r\n): Array<{ find: RegExp; replacement: string }> {\r\n if (!hasDep(\"react-router\", cwd)) return [];\r\n try {\r\n const req = createRequire(path.join(cwd, \"package.json\"));\r\n return [\r\n {\r\n find: /^react-router\\/dom$/,\r\n replacement: req.resolve(\"react-router/dom\"),\r\n },\r\n { find: /^react-router$/, replacement: req.resolve(\"react-router\") },\r\n ];\r\n } catch {\r\n return [];\r\n }\r\n}\r\n\r\n/**\r\n * Every `@agent-native/core` subpath that gets a source alias. Must stay in\r\n * sync with `getCoreSourceAliases`. Used by `getDefaultOptimizeDeps` to skip\r\n * prebundling in monorepo mode, and by the consumer config to add them to\r\n * `optimizeDeps.exclude` so Vite always resolves them through the source\r\n * alias on every request — never from a stale dist/ snapshot.\r\n */\r\nconst CORE_CLIENT_SUBPATHS = [\r\n \"@agent-native/core\",\r\n \"@agent-native/core/client\",\r\n \"@agent-native/core/client/chat\",\r\n \"@agent-native/core/client/collab\",\r\n \"@agent-native/core/client/composer\",\r\n \"@agent-native/core/client/conversation\",\r\n \"@agent-native/core/client/editor\",\r\n \"@agent-native/core/client/i18n\",\r\n \"@agent-native/core/client/resources\",\r\n // Dedicated subpath that exports ONLY appBasePath/agentNativePath/appPath.\r\n // entry.client.tsx imports from here so it never pulls the full client barrel\r\n // (and its transitive ~650-700 KB gzip chat stack) onto the critical path.\r\n \"@agent-native/core/client/api-path\",\r\n \"@agent-native/core/blocks\",\r\n \"@agent-native/core/blocks/server\",\r\n \"@agent-native/core/client/extensions\",\r\n \"@agent-native/core/client/tools\", // legacy alias\r\n \"@agent-native/core/client/org\",\r\n \"@agent-native/core/client/db-admin\",\r\n \"@agent-native/core/client/observability\",\r\n \"@agent-native/core/client/onboarding\",\r\n \"@agent-native/core/client/sharing\",\r\n \"@agent-native/core/client/notifications\",\r\n \"@agent-native/core/client/progress\",\r\n \"@agent-native/core/client/transcription/use-live-transcription\",\r\n \"@agent-native/core/voice\",\r\n];\r\n\r\nconst TOOLKIT_CLIENT_SUBPATHS = [\r\n \"@agent-native/toolkit\",\r\n \"@agent-native/toolkit/app-shell\",\r\n \"@agent-native/toolkit/collab-ui\",\r\n \"@agent-native/toolkit/hooks\",\r\n \"@agent-native/toolkit/onboarding\",\r\n \"@agent-native/toolkit/provider\",\r\n \"@agent-native/toolkit/sharing\",\r\n \"@agent-native/toolkit/ui\",\r\n \"@agent-native/toolkit/utils\",\r\n];\r\n\r\nconst NODE_SSR_NATIVE_EXTERNALS = [\"better-sqlite3\", \"bindings\"];\r\n\r\nfunction getDefaultOptimizeDeps(cwd: string): string[] {\r\n const inMonorepo = findCoreSrcDir(cwd) !== null;\r\n const entries: Array<{ specifier: string; packageName?: string }> = [\r\n // In monorepo mode the source alias resolves these to src/ on every\r\n // import, so prebundling from dist/ would just create a stale snapshot.\r\n // Skip them entirely — `optimizeDeps.exclude` below makes that explicit.\r\n ...(inMonorepo\r\n ? []\r\n : ([\r\n { specifier: \"@agent-native/core\" },\r\n {\r\n specifier: \"@agent-native/core/client\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/chat\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/collab\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/composer\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/conversation\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/editor\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/i18n\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/resources\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/org\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n specifier: \"@agent-native/core/client/extensions\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n {\r\n // Legacy alias — prior name for @agent-native/core/client/extensions.\r\n // Keep so deployed templates that haven't been updated still resolve.\r\n specifier: \"@agent-native/core/client/tools\",\r\n packageName: \"@agent-native/core\",\r\n },\r\n ...TOOLKIT_CLIENT_SUBPATHS.map((specifier) => ({\r\n specifier,\r\n packageName: \"@agent-native/toolkit\",\r\n })),\r\n ] as Array<{ specifier: string; packageName?: string }>)),\r\n { specifier: \"@libsql/client\" },\r\n { specifier: \"@amplitude/analytics-browser\" },\r\n { specifier: \"@assistant-ui/react\" },\r\n { specifier: \"@codemirror/lang-sql\" },\r\n { specifier: \"@codemirror/theme-one-dark\" },\r\n { specifier: \"@excalidraw/excalidraw\" },\r\n { specifier: \"@excalidraw/mermaid-to-excalidraw\" },\r\n {\r\n specifier: \"@modelcontextprotocol/ext-apps/app-bridge\",\r\n packageName: \"@modelcontextprotocol/ext-apps\",\r\n },\r\n { specifier: \"@paper-design/shaders-react\" },\r\n { specifier: \"@radix-ui/react-accordion\" },\r\n { specifier: \"@radix-ui/react-alert-dialog\" },\r\n { specifier: \"@radix-ui/react-aspect-ratio\" },\r\n { specifier: \"@radix-ui/react-avatar\" },\r\n { specifier: \"@radix-ui/react-checkbox\" },\r\n { specifier: \"@radix-ui/react-collapsible\" },\r\n { specifier: \"@radix-ui/react-context-menu\" },\r\n { specifier: \"@radix-ui/react-dialog\" },\r\n { specifier: \"@radix-ui/react-dropdown-menu\" },\r\n { specifier: \"@radix-ui/react-hover-card\" },\r\n { specifier: \"@radix-ui/react-label\" },\r\n { specifier: \"@radix-ui/react-menubar\" },\r\n { specifier: \"@radix-ui/react-navigation-menu\" },\r\n { specifier: \"@radix-ui/react-popover\" },\r\n { specifier: \"@radix-ui/react-progress\" },\r\n { specifier: \"@radix-ui/react-radio-group\" },\r\n { specifier: \"@radix-ui/react-scroll-area\" },\r\n { specifier: \"@radix-ui/react-select\" },\r\n { specifier: \"@radix-ui/react-separator\" },\r\n { specifier: \"@radix-ui/react-slider\" },\r\n { specifier: \"@radix-ui/react-slot\" },\r\n { specifier: \"@radix-ui/react-switch\" },\r\n { specifier: \"@radix-ui/react-tabs\" },\r\n { specifier: \"@radix-ui/react-toast\" },\r\n { specifier: \"@radix-ui/react-toggle\" },\r\n { specifier: \"@radix-ui/react-toggle-group\" },\r\n { specifier: \"@radix-ui/react-tooltip\" },\r\n { specifier: \"@sentry/browser\" },\r\n {\r\n specifier: \"@shadcn/react/message-scroller\",\r\n packageName: \"@shadcn/react\",\r\n },\r\n { specifier: \"@tanstack/react-query\" },\r\n { specifier: \"@tabler/icons-react\" },\r\n { specifier: \"@tiptap/core\" },\r\n { specifier: \"@tiptap/extension-code-block-lowlight\" },\r\n { specifier: \"@tiptap/extension-collaboration\" },\r\n { specifier: \"@tiptap/extension-collaboration-caret\" },\r\n { specifier: \"@tiptap/extension-image\" },\r\n { specifier: \"@tiptap/extension-link\" },\r\n { specifier: \"@tiptap/extension-placeholder\" },\r\n { specifier: \"@tiptap/extension-table\" },\r\n { specifier: \"@tiptap/extension-table-cell\" },\r\n { specifier: \"@tiptap/extension-table-header\" },\r\n { specifier: \"@tiptap/extension-table-row\" },\r\n { specifier: \"@tiptap/extension-task-item\" },\r\n { specifier: \"@tiptap/extension-task-list\" },\r\n { specifier: \"@tiptap/pm/state\", packageName: \"@tiptap/pm\" },\r\n { specifier: \"@tiptap/react\" },\r\n { specifier: \"@tiptap/starter-kit\" },\r\n { specifier: \"@uiw/react-codemirror\" },\r\n { specifier: \"@xterm/addon-fit\" },\r\n { specifier: \"@xterm/addon-web-links\" },\r\n { specifier: \"@xterm/xterm\" },\r\n { specifier: \"class-variance-authority\" },\r\n { specifier: \"clsx\" },\r\n { specifier: \"cmdk\" },\r\n { specifier: \"date-fns\" },\r\n { specifier: \"drizzle-orm\" },\r\n { specifier: \"drizzle-orm/pg-core\", packageName: \"drizzle-orm\" },\r\n { specifier: \"drizzle-orm/sqlite-core\", packageName: \"drizzle-orm\" },\r\n { specifier: \"embla-carousel-react\" },\r\n { specifier: \"h3\" },\r\n {\r\n specifier: \"highlight.js/lib/languages/bash\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/css\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/javascript\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/json\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/markdown\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/python\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/sql\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/typescript\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/xml\",\r\n packageName: \"highlight.js\",\r\n },\r\n {\r\n specifier: \"highlight.js/lib/languages/yaml\",\r\n packageName: \"highlight.js\",\r\n },\r\n { specifier: \"html2canvas\" },\r\n { specifier: \"i18next\" },\r\n { specifier: \"input-otp\" },\r\n { specifier: \"lowlight\" },\r\n { specifier: \"mermaid\" },\r\n { specifier: \"nanoid\" },\r\n { specifier: \"next-themes\" },\r\n { specifier: \"react-hook-form\" },\r\n { specifier: \"react-day-picker\" },\r\n { specifier: \"react-i18next\" },\r\n { specifier: \"react-markdown\" },\r\n { specifier: \"react-resizable-panels\" },\r\n { specifier: \"recharts\" },\r\n ...(hasDep(\"react-router\", cwd)\r\n ? [\r\n { specifier: \"react-router\" },\r\n { specifier: \"react-router/dom\", packageName: \"react-router\" },\r\n ]\r\n : []),\r\n { specifier: \"remark-gfm\" },\r\n { specifier: \"roughjs\" },\r\n { specifier: \"shiki/core\", packageName: \"shiki\" },\r\n { specifier: \"shiki/engine/javascript\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/bash.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/css.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/html.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/javascript.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/json.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/jsx.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/markdown.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/python.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/shellscript.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/sql.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/tsx.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/typescript.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/langs/yaml.mjs\", packageName: \"shiki\" },\r\n { specifier: \"shiki/themes/github-dark-default.mjs\", packageName: \"shiki\" },\r\n {\r\n specifier: \"shiki/themes/github-light-default.mjs\",\r\n packageName: \"shiki\",\r\n },\r\n { specifier: \"sonner\" },\r\n { specifier: \"tailwind-merge\" },\r\n { specifier: \"tiptap-markdown\" },\r\n { specifier: \"vaul\" },\r\n { specifier: \"y-protocols/awareness\", packageName: \"y-protocols\" },\r\n { specifier: \"yjs\" },\r\n { specifier: \"zod\" },\r\n ];\r\n\r\n return entries\r\n .filter(({ specifier, packageName }) =>\r\n hasOptimizeDep(packageName ?? specifier, cwd),\r\n )\r\n .map(({ specifier, packageName }) => {\r\n const dependencyName = packageName ?? specifier;\r\n // In the monorepo, core is source-aliased and its dependencies live\r\n // under packages/core/node_modules. A bare optimizeDeps.include entry\r\n // is resolved from the template root, so core-only dependencies fail\r\n // the initial prebundle and are rediscovered after the page loads. Vite\r\n // then rebundles and reloads the editor. Its documented nested-dependency\r\n // syntax resolves the right-hand package from core's package directory,\r\n // while app-owned dependencies should remain direct entries.\r\n if (\r\n inMonorepo &&\r\n !hasDep(dependencyName, cwd) &&\r\n hasCoreDep(dependencyName, cwd)\r\n ) {\r\n return `@agent-native/core > ${specifier}`;\r\n }\r\n return specifier;\r\n });\r\n}\r\n\r\n/**\r\n * In monorepo dev mode, resolve @agent-native/core imports to source (src/)\r\n * instead of dist/ so that Vite HMR picks up changes without rebuilding.\r\n *\r\n * Returns Vite array-style aliases with exact matching (regex anchored with $)\r\n * to prevent `@agent-native/core` from prefix-matching and swallowing\r\n * sub-path imports like `@agent-native/core/client`.\r\n */\r\nfunction getCoreSourceAliases(\r\n cwd: string,\r\n): Array<{ find: RegExp; replacement: string }> {\r\n const coreSrc = findCoreSrcDir(cwd);\r\n if (!coreSrc) return []; // Not in monorepo — use dist as normal\r\n\r\n // Map every @agent-native/core/* export to its src/ equivalent.\r\n // Each entry uses a regex with $ anchor for exact matching.\r\n const entries: Record<string, string> = {\r\n \"@agent-native/core\": path.join(coreSrc, \"index.browser.ts\"),\r\n \"@agent-native/core/server\": path.join(coreSrc, \"server/index.ts\"),\r\n \"@agent-native/core/server/edge\": path.join(coreSrc, \"server/edge.ts\"),\r\n \"@agent-native/core/client\": path.join(coreSrc, \"client/index.ts\"),\r\n \"@agent-native/core/client/chat\": path.join(\r\n coreSrc,\r\n \"client/chat/index.ts\",\r\n ),\r\n \"@agent-native/core/client/collab\": path.join(\r\n coreSrc,\r\n \"client/collab/index.ts\",\r\n ),\r\n \"@agent-native/core/client/composer\": path.join(\r\n coreSrc,\r\n \"client/composer/index.ts\",\r\n ),\r\n \"@agent-native/core/client/conversation\": path.join(\r\n coreSrc,\r\n \"client/conversation/index.ts\",\r\n ),\r\n \"@agent-native/core/client/editor\": path.join(\r\n coreSrc,\r\n \"client/editor/index.ts\",\r\n ),\r\n \"@agent-native/core/client/i18n\": path.join(coreSrc, \"client/i18n.tsx\"),\r\n \"@agent-native/core/client/resources\": path.join(\r\n coreSrc,\r\n \"client/resources/index.ts\",\r\n ),\r\n // Dedicated thin subpath — only the URL helpers, no chat stack in the closure.\r\n \"@agent-native/core/client/api-path\": path.join(\r\n coreSrc,\r\n \"client/api-path.ts\",\r\n ),\r\n \"@agent-native/core/blocks\": path.join(coreSrc, \"client/blocks/index.ts\"),\r\n \"@agent-native/core/blocks/server\": path.join(\r\n coreSrc,\r\n \"client/blocks/server.ts\",\r\n ),\r\n \"@agent-native/core/client/extensions\": path.join(\r\n coreSrc,\r\n \"client/extensions/index.ts\",\r\n ),\r\n // Legacy alias — see exports map note above.\r\n \"@agent-native/core/client/tools\": path.join(\r\n coreSrc,\r\n \"client/extensions/index.ts\",\r\n ),\r\n \"@agent-native/core/client/org\": path.join(coreSrc, \"client/org/index.ts\"),\r\n \"@agent-native/core/client/db-admin\": path.join(\r\n coreSrc,\r\n \"client/db-admin/index.ts\",\r\n ),\r\n \"@agent-native/core/client/observability\": path.join(\r\n coreSrc,\r\n \"client/observability/index.ts\",\r\n ),\r\n \"@agent-native/core/client/onboarding\": path.join(\r\n coreSrc,\r\n \"client/onboarding/index.ts\",\r\n ),\r\n \"@agent-native/core/client/sharing\": path.join(\r\n coreSrc,\r\n \"client/sharing/index.ts\",\r\n ),\r\n \"@agent-native/core/client/notifications\": path.join(\r\n coreSrc,\r\n \"client/notifications/index.ts\",\r\n ),\r\n \"@agent-native/core/client/progress\": path.join(\r\n coreSrc,\r\n \"client/progress/index.ts\",\r\n ),\r\n \"@agent-native/core/client/transcription/use-live-transcription\": path.join(\r\n coreSrc,\r\n \"client/transcription/use-live-transcription.ts\",\r\n ),\r\n \"@agent-native/core/voice\": path.join(coreSrc, \"voice/index.ts\"),\r\n \"@agent-native/core/db\": path.join(coreSrc, \"db/index.ts\"),\r\n \"@agent-native/core/db/schema\": path.join(coreSrc, \"db/schema.ts\"),\r\n \"@agent-native/core/shared\": path.join(coreSrc, \"shared/index.ts\"),\r\n \"@agent-native/core/scripts\": path.join(coreSrc, \"scripts/index.ts\"),\r\n \"@agent-native/core/application-state\": path.join(\r\n coreSrc,\r\n \"application-state/index.ts\",\r\n ),\r\n \"@agent-native/core/settings\": path.join(coreSrc, \"settings/index.ts\"),\r\n \"@agent-native/core/credentials\": path.join(\r\n coreSrc,\r\n \"credentials/index.ts\",\r\n ),\r\n \"@agent-native/core/resources\": path.join(coreSrc, \"resources/index.ts\"),\r\n \"@agent-native/core/oauth-tokens\": path.join(\r\n coreSrc,\r\n \"oauth-tokens/index.ts\",\r\n ),\r\n \"@agent-native/core/workspace-connections\": path.join(\r\n coreSrc,\r\n \"workspace-connections/index.ts\",\r\n ),\r\n \"@agent-native/core/provider-api\": path.join(\r\n coreSrc,\r\n \"provider-api/index.ts\",\r\n ),\r\n \"@agent-native/core/a2a\": path.join(coreSrc, \"a2a/index.ts\"),\r\n \"@agent-native/core/router\": path.join(coreSrc, \"router/index.ts\"),\r\n \"@agent-native/core/terminal\": path.join(\r\n coreSrc,\r\n \"client/terminal/index.ts\",\r\n ),\r\n \"@agent-native/core/terminal/server\": path.join(\r\n coreSrc,\r\n \"terminal/index.ts\",\r\n ),\r\n \"@agent-native/core/adapters/cli\": path.join(\r\n coreSrc,\r\n \"adapters/cli/index.ts\",\r\n ),\r\n \"@agent-native/core/usage\": path.join(coreSrc, \"usage/store.ts\"),\r\n \"@agent-native/core/brand-kit\": path.join(coreSrc, \"brand-kit/index.ts\"),\r\n \"@agent-native/core/data-widgets\": path.join(\r\n coreSrc,\r\n \"data-widgets/index.ts\",\r\n ),\r\n \"@agent-native/core/server/design-token-utils\": path.join(\r\n coreSrc,\r\n \"server/design-token-utils.ts\",\r\n ),\r\n \"@agent-native/core/server/entry-server\": path.join(\r\n coreSrc,\r\n \"server/entry-server.tsx\",\r\n ),\r\n // Shared stylesheet — alias to src so CSS edits (composer/theme rules)\r\n // take effect live in dev instead of silently loading the stale built\r\n // copy at dist/styles/. From src/styles/ the `@source \"../client/**\"`\r\n // directive resolves to the real .tsx source, which is what dev should\r\n // scan for Tailwind classes anyway.\r\n \"@agent-native/core/styles/agent-native.css\": path.join(\r\n coreSrc,\r\n \"styles/agent-native.css\",\r\n ),\r\n };\r\n\r\n // Escape special regex chars in the key and anchor with $\r\n return Object.entries(entries).map(([find, replacement]) => ({\r\n find: new RegExp(`^${find.replace(/[/]/g, \"\\\\/\")}$`),\r\n replacement,\r\n }));\r\n}\r\n\r\nexport interface NitroOptions {\r\n /** Nitro deployment preset (e.g. \"node\", \"vercel\", \"netlify\", \"cloudflare_pages\"). Default: \"node\" */\r\n preset?: string;\r\n /** Source directory for server files. Default: \"./server\" */\r\n srcDir?: string;\r\n /** Routes directory name (relative to srcDir). Default: \"routes\" */\r\n routesDir?: string;\r\n /** Any additional Nitro config overrides */\r\n [key: string]: unknown;\r\n}\r\n\r\nexport interface ClientConfigOptions {\r\n /** Port for dev server. Default: 8080 */\r\n port?: number;\r\n /** Additional hostnames allowed to access the dev server. */\r\n allowedHosts?: NonNullable<NonNullable<UserConfig[\"server\"]>[\"allowedHosts\"]>;\r\n /** Vite log level. Workspace child apps default to \"warn\" so only the gateway URL is advertised. */\r\n logLevel?: UserConfig[\"logLevel\"];\r\n /** Additional Vite plugins */\r\n plugins?: any[];\r\n /** Nitro plugin options (preset, srcDir, etc) */\r\n nitro?: NitroOptions;\r\n /** Override resolve aliases */\r\n aliases?: Record<string, string>;\r\n /** Override build.outDir. Default: \"dist/spa\" */\r\n outDir?: string;\r\n /** Additional fs.allow paths */\r\n fsAllow?: string[];\r\n /** Additional fs.deny patterns */\r\n fsDeny?: string[];\r\n /** Additional Vite optimizeDeps configuration */\r\n optimizeDeps?: NonNullable<UserConfig[\"optimizeDeps\"]>;\r\n /** Additional Vite define constants. */\r\n define?: UserConfig[\"define\"];\r\n /**\r\n * Framework route warmup behavior mounted by AgentSidebar.\r\n *\r\n * React Router's native prefetch warms both `.data` and JS, but its `.data`\r\n * request uses browser link prefetch. Chrome sends `Sec-Purpose: prefetch`\r\n * on those requests, which some production CDNs reject for dynamic `.data`\r\n * URLs before our SWR cache headers can help. Agent-Native therefore uses\r\n * ordinary fetches for `.data` and `modulepreload` for route JS by default.\r\n */\r\n routeWarmup?: AgentNativeRouteWarmupConfigInput;\r\n /**\r\n * Controls the MCP integrations catalog exposed from the composer + menu.\r\n *\r\n * - `false` hides the whole MCP integrations entry.\r\n * - `{ defaults: false }` hides all bundled provider presets but still\r\n * allows custom MCP servers.\r\n * - `{ defaults: { include: [\"context7\"] } }` allows only those preset ids.\r\n * - `{ defaults: { exclude: [\"stripe\"] } }` hides specific preset ids.\r\n */\r\n mcpIntegrations?: McpIntegrationsConfigInput;\r\n /**\r\n * Whether to auto-inject the Tailwind v4 Vite plugin (`@tailwindcss/vite`).\r\n * Defaults to true — set to `false` if a template wants to manage Tailwind\r\n * itself (e.g. the legacy v3 PostCSS pipeline).\r\n */\r\n tailwind?: boolean;\r\n /**\r\n * Package names to stub in the SSR bundle with an empty proxy object.\r\n *\r\n * Use this for dependencies that only run in the browser (canvas / diagram\r\n * libraries, editors, WebGL) but would otherwise get pulled into the\r\n * server bundle via SSR's noExternal policy — pushing the CF Pages\r\n * Functions bundle over the 25 MiB limit.\r\n *\r\n * Only add packages that are provably never called during SSR. If the\r\n * server imports one, it will receive a Proxy that throws on any real\r\n * use (which is better than bundling a 10 MiB dep the worker never calls).\r\n *\r\n * @example\r\n * ssrStubs: [\"mermaid\", \"@excalidraw/excalidraw\"]\r\n */\r\n ssrStubs?: string[];\r\n /**\r\n * @deprecated Pass `reactRouter()` directly in the `plugins` array instead.\r\n * Previously used to auto-load the React Router Vite plugin via require(),\r\n * but this fails in ESM contexts. Templates should now do:\r\n * ```ts\r\n * import { reactRouter } from \"@react-router/dev/vite\";\r\n * defineConfig({ plugins: [reactRouter()] })\r\n * ```\r\n */\r\n reactRouter?: boolean | Record<string, unknown>;\r\n}\r\n\r\nexport interface AgentNativeVitePluginOptions extends Omit<\r\n ClientConfigOptions,\r\n \"plugins\" | \"reactRouter\"\r\n> {\r\n /**\r\n * Include the legacy React SWC transform for non-React Router SPA apps.\r\n *\r\n * React Router framework-mode apps should pass `reactRouter()` as a normal\r\n * Vite plugin and leave this off.\r\n */\r\n legacySpa?: boolean;\r\n}\r\n\r\n/**\r\n * Vite plugin that recovers the page when Vite's dependency optimizer\r\n * invalidates modules mid-load (the \"504 Outdated Optimize Dep\" error).\r\n *\r\n * Without this, the page silently fails: <script type=\"module\"> tags 504,\r\n * React never mounts, and the user is stuck on a blank screen until they\r\n * manually refresh. We catch the failure modes and auto-reload, with a\r\n * visible overlay so the user knows what's happening, and a loop guard\r\n * so we never thrash forever.\r\n *\r\n * CRITICAL: this must be a SYNCHRONOUS (non-module) script injected at\r\n * `head-prepend`. Module scripts are deferred — the browser starts fetching\r\n * all module scripts in parallel during HTML parsing, so a module listener\r\n * registers AFTER sibling modules have already started loading and\r\n * possibly errored out. A regular <script> blocks parsing and runs\r\n * synchronously, so the listener is registered before ANY module fetch\r\n * begins.\r\n *\r\n * Catches three failure modes (all before React needs to mount):\r\n * 1. <script type=\"module\"> / <link> 504 — window \"error\" event, capture phase\r\n * 2. Dynamic import 504 — \"unhandledrejection\" with \"dynamically imported module\"\r\n * 3. Child module 504 — resource timing when browser exposes the HTTP status\r\n */\r\nfunction autoReloadOnOptimizeDep(): Plugin {\r\n return {\r\n name: \"agent-native-auto-reload-optimize-dep\",\r\n apply: \"serve\",\r\n transformIndexHtml() {\r\n return [\r\n {\r\n tag: \"script\",\r\n // NOTE: no `type: \"module\"` — this must be a synchronous script.\r\n children: getViteDevRecoveryScript(),\r\n injectTo: \"head-prepend\",\r\n },\r\n ];\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Vite handles outdated optimized-dep requests inside its own transform\r\n * middleware and ends the HTTP response with `504 Outdated Optimize Dep`.\r\n * Browser module loaders do not consistently surface those child-module\r\n * failures to userland JavaScript, so also nudge the Vite HMR client from the\r\n * server side. This turns the confusing blank-screen state into the same\r\n * full-page reload Vite would have requested once optimization settled.\r\n */\r\nfunction fullReloadOnOptimizeDep504(): Plugin {\r\n return {\r\n name: \"agent-native-full-reload-optimize-dep-504\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n let lastReloadAt = 0;\r\n server.middlewares.use((req, res, next) => {\r\n const originalEnd = res.end;\r\n (res as unknown as { end: (...args: unknown[]) => unknown }).end = (\r\n ...endArgs: unknown[]\r\n ) => {\r\n const statusMessage = String(res.statusMessage || \"\");\r\n if (\r\n res.statusCode === 504 &&\r\n statusMessage === \"Outdated Optimize Dep\"\r\n ) {\r\n const now = Date.now();\r\n if (now - lastReloadAt > 500) {\r\n lastReloadAt = now;\r\n server.ws.send({ type: \"full-reload\" });\r\n server.config.logger.info(\r\n `[agent-native] Vite optimized deps changed while loading ${\r\n req.url ?? \"a module\"\r\n }; reloading the page.`,\r\n { timestamp: true },\r\n );\r\n }\r\n }\r\n return (originalEnd as (...args: unknown[]) => unknown).apply(\r\n res,\r\n endArgs,\r\n );\r\n };\r\n next();\r\n });\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Vite plugin that prevents the built-in base middleware from redirecting\r\n * \"/\" → \"/app/\" (or whatever the base is). When agent-native apps run with\r\n * --base /app/ in single-port mode, Vite's baseMiddleware sends a 302 from\r\n * \"/\" to the base path. This breaks Electron webview and iframe embeds\r\n * that load the app at the root. Instead, we rewrite \"/\" to the base path\r\n * internally so the app serves without a visible redirect.\r\n */\r\nfunction baseRedirectGuard(): Plugin {\r\n return {\r\n name: \"agent-native-base-redirect-guard\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n // Return a function so the middleware is added AFTER Vite's internal\r\n // middleware is built — but we insert BEFORE by using the pre-hook\r\n // approach: configureServer hooks that return nothing run before\r\n // internal middleware.\r\n server.middlewares.use((req, res, next) => {\r\n const base = server.config.base;\r\n if (base && base !== \"/\" && req.url?.startsWith(base)) {\r\n const relativeUrl = req.url.slice(base.length - 1);\r\n try {\r\n const url = new URL(relativeUrl, \"http://agent-native.local\");\r\n const publicDir = server.config.publicDir;\r\n if (typeof publicDir !== \"string\") {\r\n return next();\r\n }\r\n const publicPath = path.normalize(\r\n path.join(publicDir, decodeURIComponent(url.pathname)),\r\n );\r\n if (\r\n publicPath.startsWith(publicDir + path.sep) &&\r\n fs.existsSync(publicPath) &&\r\n fs.statSync(publicPath).isFile()\r\n ) {\r\n const contentType = contentTypeForPublicFile(publicPath);\r\n if (contentType) res.setHeader(\"content-type\", contentType);\r\n if (req.method === \"HEAD\") {\r\n res.statusCode = 200;\r\n res.end();\r\n return;\r\n }\r\n fs.createReadStream(publicPath).pipe(res);\r\n return;\r\n }\r\n } catch {\r\n // Fall through to Vite/Nitro. Malformed URLs should keep their\r\n // original path so the normal dev-server error handling applies.\r\n }\r\n }\r\n if (serveExternalEmbedBrowserManifest(server, req, res)) {\r\n return;\r\n }\r\n if (serveMountedEmbedRuntimeModule(server, req, res, base)) {\r\n return;\r\n }\r\n // Nitro's pre-middleware only intercepts document/iframe/frame/empty\r\n // fetch-dest requests. For video/audio/image etc. it calls next() and\r\n // the post-internal Nitro middleware handles them instead. If we strip\r\n // the base path here for those requests, Vite's base middleware sees the\r\n // stripped path (e.g. /api/video/:id without /clips/) and responds with\r\n // a \"did you mean /clips/api/video/:id\" error before Nitro can handle it.\r\n // Only strip when the request type matches Nitro's pre-middleware gate.\r\n const secFetchDest = req.headers[\"sec-fetch-dest\"] as\r\n | string\r\n | undefined;\r\n const isNitroPreHandled =\r\n !secFetchDest || /^(document|iframe|frame|empty)$/.test(secFetchDest);\r\n if (isNitroPreHandled) {\r\n req.url = stripMountedDevApiPath(req.url, base);\r\n }\r\n if (\r\n req.method === \"HEAD\" &&\r\n req.url &&\r\n !isFrameworkDevPath(req.url, base)\r\n ) {\r\n req.method = \"GET\";\r\n }\r\n if (\r\n base &&\r\n base !== \"/\" &&\r\n (req.url === \"/\" || req.url === \"/index.html\")\r\n ) {\r\n // Rewrite to the base path so Vite serves the app directly\r\n req.url = base;\r\n }\r\n next();\r\n });\r\n },\r\n };\r\n}\r\n\r\nconst VITE_RUNTIME_PATH_PREFIXES = [\r\n \"/@fs/\",\r\n \"/@id/\",\r\n \"/@vite/\",\r\n \"/app/\",\r\n \"/node_modules/\",\r\n \"/packages/\",\r\n \"/src/\",\r\n];\r\n\r\nconst EMBED_DEV_STATIC_ASSET_PATH_PREFIXES = [\r\n ...VITE_RUNTIME_PATH_PREFIXES,\r\n \"/assets/\",\r\n \"/library-presets/\",\r\n];\r\n\r\nconst EMBED_DEV_STATIC_ASSET_PATHS = new Set([\r\n \"/favicon.ico\",\r\n \"/favicon.svg\",\r\n \"/manifest.json\",\r\n]);\r\n\r\nfunction mountedPathCandidates(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): string[] {\r\n if (!reqUrl) return [];\r\n let pathname: string;\r\n try {\r\n pathname = new URL(reqUrl, \"http://agent-native.local\").pathname;\r\n } catch {\r\n return [];\r\n }\r\n if (base && base !== \"/\") {\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n if (pathname.startsWith(normalizedBase)) {\r\n return [pathname.slice(normalizedBase.length - 1) || \"/\"];\r\n }\r\n }\r\n return [pathname];\r\n}\r\n\r\nfunction isEmbedDevStaticAssetRequest(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): boolean {\r\n return mountedPathCandidates(reqUrl, base).some((pathname) => {\r\n if (EMBED_DEV_STATIC_ASSET_PATHS.has(pathname)) return true;\r\n if (/^\\/icon-[^/]+\\.svg$/i.test(pathname)) return true;\r\n if (/^\\/agent-native-[^/]+\\.svg$/i.test(pathname)) return true;\r\n return EMBED_DEV_STATIC_ASSET_PATH_PREFIXES.some((prefix) =>\r\n pathname.startsWith(prefix),\r\n );\r\n });\r\n}\r\n\r\nfunction cookieValue(req: IncomingMessage, name: string): string | undefined {\r\n const header = req.headers.cookie;\r\n if (typeof header !== \"string\" || !header) return undefined;\r\n for (const part of header.split(\";\")) {\r\n const index = part.indexOf(\"=\");\r\n if (index < 0) continue;\r\n const key = part.slice(0, index).trim();\r\n if (key !== name) continue;\r\n try {\r\n return decodeURIComponent(part.slice(index + 1).trim());\r\n } catch {\r\n return part.slice(index + 1).trim();\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction hasValidEmbedRuntimeToken(req: IncomingMessage): boolean {\r\n try {\r\n const url = new URL(req.url ?? \"/\", \"http://agent-native.local\");\r\n const queryToken = url.searchParams.get(EMBED_TOKEN_QUERY_PARAM);\r\n const cookieToken = cookieValue(req, EMBED_SESSION_COOKIE);\r\n return [queryToken, cookieToken].some(\r\n (token) => verifyEmbedSessionToken(token).ok,\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction mountedEmbedRuntimeModuleUrl(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): string | null {\r\n if (!reqUrl || !base || base === \"/\") return null;\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n if (!reqUrl.startsWith(normalizedBase)) return null;\r\n\r\n const runtimeUrl = reqUrl.slice(normalizedBase.length - 1) || \"/\";\r\n let url: URL;\r\n try {\r\n url = new URL(runtimeUrl, \"http://agent-native.local\");\r\n } catch {\r\n return null;\r\n }\r\n if (\r\n !VITE_RUNTIME_PATH_PREFIXES.some((prefix) =>\r\n url.pathname.startsWith(prefix),\r\n )\r\n ) {\r\n return null;\r\n }\r\n url.searchParams.delete(EMBED_TOKEN_QUERY_PARAM);\r\n url.searchParams.delete(MCP_APP_CHAT_BRIDGE_QUERY_PARAM);\r\n return `${url.pathname}${url.search}${url.hash}`;\r\n}\r\n\r\nfunction virtualModuleIdFromRuntimeUrl(runtimeUrl: string): string | null {\r\n try {\r\n const pathname = new URL(runtimeUrl, \"http://agent-native.local\").pathname;\r\n const prefix = \"/@id/__x00__\";\r\n if (!pathname.startsWith(prefix)) return null;\r\n return `\\0${decodeURIComponent(pathname.slice(prefix.length))}`;\r\n } catch {\r\n return null;\r\n }\r\n}\r\n\r\nasync function loadMountedEmbedRuntimeModule(\r\n server: any,\r\n runtimeUrl: string,\r\n): Promise<string | null> {\r\n const virtualId = virtualModuleIdFromRuntimeUrl(runtimeUrl);\r\n if (virtualId) {\r\n const loaded = await server.pluginContainer?.load?.(virtualId);\r\n if (typeof loaded === \"string\") return loaded;\r\n if (loaded && typeof loaded.code === \"string\") return loaded.code;\r\n }\r\n const result = await server.transformRequest(runtimeUrl);\r\n return result?.code ?? null;\r\n}\r\n\r\nfunction serveMountedEmbedRuntimeModule(\r\n server: any,\r\n req: IncomingMessage,\r\n res: ServerResponse,\r\n base: string | undefined,\r\n): boolean {\r\n if (req.method !== \"GET\" && req.method !== \"HEAD\") return false;\r\n if (!hasValidEmbedRuntimeToken(req)) return false;\r\n const runtimeUrl = mountedEmbedRuntimeModuleUrl(req.url, base);\r\n if (!runtimeUrl) return false;\r\n\r\n void loadMountedEmbedRuntimeModule(server, runtimeUrl)\r\n .then((code: string | null) => {\r\n if (!code) {\r\n if (!res.headersSent) {\r\n res.statusCode = 404;\r\n res.end();\r\n }\r\n return;\r\n }\r\n res.statusCode = 200;\r\n res.setHeader(\"content-type\", \"text/javascript\");\r\n if (req.method === \"HEAD\") {\r\n res.end();\r\n return;\r\n }\r\n res.end(code);\r\n })\r\n .catch((err: unknown) => {\r\n if (res.headersSent) return;\r\n res.statusCode = 500;\r\n res.setHeader(\"content-type\", \"text/plain\");\r\n res.end(err instanceof Error ? err.message : String(err));\r\n });\r\n return true;\r\n}\r\n\r\nfunction publicOriginFromDevRequest(req: IncomingMessage): string | null {\r\n const forwardedHost = String(req.headers[\"x-forwarded-host\"] ?? \"\")\r\n .split(\",\")[0]\r\n ?.trim();\r\n const host =\r\n forwardedHost ||\r\n String(req.headers.host ?? \"\")\r\n .split(\",\")[0]\r\n ?.trim();\r\n if (!host) return null;\r\n const forwardedProto = String(req.headers[\"x-forwarded-proto\"] ?? \"\")\r\n .split(\",\")[0]\r\n ?.trim();\r\n const proto =\r\n forwardedProto ||\r\n (/^(localhost|127\\.0\\.0\\.1|\\[::1\\])(?::\\d+)?$/i.test(host)\r\n ? \"http\"\r\n : \"https\");\r\n return `${proto}://${host}`;\r\n}\r\n\r\nfunction isReactRouterBrowserManifestUrl(reqUrl: string | undefined): boolean {\r\n if (!reqUrl) return false;\r\n try {\r\n const url = new URL(reqUrl, \"http://agent-native.local\");\r\n return (\r\n virtualModuleIdFromRuntimeUrl(url.pathname) ===\r\n \"\\0virtual:react-router/browser-manifest\"\r\n );\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nfunction rewriteRootRelativeManifestUrls(\r\n code: string,\r\n publicOrigin: string,\r\n): string {\r\n return code.replace(/'\\/(?!\\/)([^']*)'/g, (match, rest: string) => {\r\n try {\r\n return JSON.stringify(new URL(`/${rest}`, publicOrigin).toString());\r\n } catch {\r\n return match;\r\n }\r\n });\r\n}\r\n\r\nfunction serveExternalEmbedBrowserManifest(\r\n server: any,\r\n req: IncomingMessage,\r\n res: ServerResponse,\r\n): boolean {\r\n if (req.method !== \"GET\" && req.method !== \"HEAD\") return false;\r\n if (!isMcpEmbedCorsOrigin(String(req.headers.origin ?? \"\"))) return false;\r\n if (!isReactRouterBrowserManifestUrl(req.url)) return false;\r\n const publicOrigin = publicOriginFromDevRequest(req);\r\n if (!publicOrigin) return false;\r\n const runtimeUrl = mountedEmbedRuntimeModuleUrl(req.url, \"/\") ?? req.url;\r\n if (!runtimeUrl) return false;\r\n\r\n void loadMountedEmbedRuntimeModule(server, runtimeUrl)\r\n .then((code: string | null) => {\r\n if (!code) {\r\n if (!res.headersSent) {\r\n res.statusCode = 404;\r\n res.end();\r\n }\r\n return;\r\n }\r\n res.statusCode = 200;\r\n res.setHeader(\"content-type\", \"text/javascript\");\r\n if (req.method === \"HEAD\") {\r\n res.end();\r\n return;\r\n }\r\n res.end(rewriteRootRelativeManifestUrls(code, publicOrigin));\r\n })\r\n .catch((err: unknown) => {\r\n if (res.headersSent) return;\r\n res.statusCode = 500;\r\n res.setHeader(\"content-type\", \"text/plain\");\r\n res.end(err instanceof Error ? err.message : String(err));\r\n });\r\n return true;\r\n}\r\n\r\nfunction embedDevFrameHeaders(): Plugin {\r\n return {\r\n name: \"agent-native-embed-dev-frame-headers\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n server.middlewares.use((req, res, next) => {\r\n const origin = String(req.headers.origin ?? \"\");\r\n if (isEmbedDevStaticAssetRequest(req.url, server.config?.base)) {\r\n for (const [name, value] of Object.entries(\r\n MCP_EMBED_STATIC_ASSET_HEADERS,\r\n )) {\r\n res.setHeader(name, value);\r\n }\r\n }\r\n if (isMcpEmbedCorsOrigin(origin)) {\r\n res.setHeader(\"Access-Control-Allow-Origin\", origin);\r\n res.setHeader(\"Vary\", \"Origin\");\r\n // The desktop app's dev origin (http://localhost:1420) also matches\r\n // here, and it logs in with `credentials: \"include\"`. A credentialed\r\n // request needs this header or the browser discards the response.\r\n // The OPTIONS short-circuit below means we can't rely on the real\r\n // auth handler to set it, so set it here too (production already does\r\n // the same).\r\n if (shouldAllowMcpEmbedCredentials(origin)) {\r\n res.setHeader(\"Access-Control-Allow-Credentials\", \"true\");\r\n }\r\n res.setHeader(\r\n \"Access-Control-Allow-Methods\",\r\n \"GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS\",\r\n );\r\n res.setHeader(\r\n \"Access-Control-Allow-Headers\",\r\n MCP_EMBED_CORS_ALLOW_HEADERS,\r\n );\r\n for (const [name, value] of Object.entries(\r\n MCP_EMBED_STATIC_ASSET_HEADERS,\r\n )) {\r\n if (name === \"Access-Control-Allow-Origin\") continue;\r\n res.setHeader(name, value);\r\n }\r\n if (req.method === \"OPTIONS\") {\r\n res.statusCode = 204;\r\n res.end();\r\n return;\r\n }\r\n }\r\n\r\n const cookieHeader = String(req.headers.cookie ?? \"\");\r\n let hasEmbedMarker = /\\ban_embed_session=/.test(cookieHeader);\r\n try {\r\n const url = new URL(req.url ?? \"/\", \"http://agent-native.local\");\r\n hasEmbedMarker =\r\n hasEmbedMarker || url.searchParams.has(\"__an_embed_token\");\r\n } catch {\r\n // Malformed URLs should continue through Vite's normal handling.\r\n }\r\n if (hasEmbedMarker) {\r\n res.setHeader(\"Cross-Origin-Embedder-Policy\", \"require-corp\");\r\n res.setHeader(\"Cross-Origin-Opener-Policy\", \"same-origin\");\r\n res.setHeader(\"Cross-Origin-Resource-Policy\", \"cross-origin\");\r\n res.setHeader(\"Referrer-Policy\", \"no-referrer\");\r\n }\r\n next();\r\n });\r\n },\r\n };\r\n}\r\n\r\nfunction contentTypeForPublicFile(filePath: string): string | null {\r\n switch (path.extname(filePath).toLowerCase()) {\r\n case \".css\":\r\n return \"text/css\";\r\n case \".html\":\r\n return \"text/html\";\r\n case \".ico\":\r\n return \"image/x-icon\";\r\n case \".json\":\r\n case \".webmanifest\":\r\n return \"application/json\";\r\n case \".js\":\r\n case \".mjs\":\r\n return \"text/javascript\";\r\n case \".png\":\r\n return \"image/png\";\r\n case \".svg\":\r\n return \"image/svg+xml\";\r\n case \".txt\":\r\n return \"text/plain\";\r\n case \".xml\":\r\n return \"application/xml\";\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nfunction devPathname(reqUrl: string): string {\r\n return new URL(reqUrl, \"http://agent-native.local\").pathname;\r\n}\r\n\r\nfunction isApiDevPath(reqUrl: string): boolean {\r\n const pathname = devPathname(reqUrl);\r\n return pathname === \"/api\" || pathname.startsWith(\"/api/\");\r\n}\r\n\r\nexport function stripMountedDevApiPath(\r\n reqUrl: string | undefined,\r\n base: string | undefined,\r\n): string | undefined {\r\n if (!reqUrl || !base || base === \"/\") return reqUrl;\r\n const normalizedBase = base.endsWith(\"/\") ? base : `${base}/`;\r\n if (!reqUrl.startsWith(normalizedBase)) return reqUrl;\r\n const stripped = reqUrl.slice(normalizedBase.length - 1) || \"/\";\r\n return isApiDevPath(stripped) ? stripped : reqUrl;\r\n}\r\n\r\nexport function isFrameworkDevPath(\r\n reqUrl: string,\r\n base: string | undefined,\r\n): boolean {\r\n const pathname = devPathname(reqUrl);\r\n if (pathname === \"/_agent-native\" || pathname.startsWith(\"/_agent-native/\")) {\r\n return true;\r\n }\r\n if (!base || base === \"/\") return false;\r\n const normalizedBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\r\n return (\r\n pathname === `${normalizedBase}/_agent-native` ||\r\n pathname.startsWith(`${normalizedBase}/_agent-native/`)\r\n );\r\n}\r\n\r\n/**\r\n * Work around a Rolldown bug where Nitro passes service entries as objects\r\n * ({index: \"path\"}) but Rolldown expects strings. This plugin normalizes\r\n * rollupOptions.input entries in the SSR environment.\r\n */\r\nfunction rolldownInputFix(): Plugin {\r\n return {\r\n name: \"agent-native-rolldown-input-fix\",\r\n configEnvironment(_name, config) {\r\n const input = config.build?.rollupOptions?.input;\r\n if (!Array.isArray(input)) return;\r\n // Flatten any object entries to just their string values\r\n const fixed = input.map((entry: any) => {\r\n if (typeof entry === \"string\") return entry;\r\n if (typeof entry === \"object\" && entry !== null) {\r\n const values = Object.values(entry);\r\n return values[0] as string;\r\n }\r\n return entry;\r\n });\r\n config.build!.rollupOptions!.input = fixed;\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Replace caller-specified packages with an empty proxy stub during SSR\r\n * builds. For apps whose heavy browser-only deps would otherwise bloat the\r\n * edge worker past CF Pages' 25 MiB Functions limit.\r\n *\r\n * The template lists the packages in its `defineConfig({ ssrStubs })` call —\r\n * the framework never hardcodes package names.\r\n */\r\nfunction ssrStubPlugin(packages: string[]): Plugin | null {\r\n if (!packages.length) return null;\r\n const stubbed = new Set(packages);\r\n const STUB_ID = \"\\0agent-native-ssr-stub\";\r\n const namedExports = [\r\n \"ActionBarPrimitive\",\r\n \"AllSelection\",\r\n \"Array\",\r\n \"AssistantRuntimeProvider\",\r\n \"Awareness\",\r\n \"BranchPickerPrimitive\",\r\n \"BubbleMenu\",\r\n \"CodeBlockLowlight\",\r\n \"Collaboration\",\r\n \"CollaborationCaret\",\r\n \"ComposerPrimitive\",\r\n \"CompositeAttachmentAdapter\",\r\n \"DOMParser\",\r\n \"Decoration\",\r\n \"DecorationSet\",\r\n \"Editor\",\r\n \"EditorContent\",\r\n \"Extension\",\r\n \"FitAddon\",\r\n \"Fragment\",\r\n \"Image\",\r\n \"Link\",\r\n \"Map\",\r\n \"Markdown\",\r\n \"Mark\",\r\n \"MessagePrimitive\",\r\n \"Node\",\r\n \"NodeSelection\",\r\n \"NodeViewContent\",\r\n \"NodeViewWrapper\",\r\n \"Placeholder\",\r\n \"Plugin\",\r\n \"PluginKey\",\r\n \"ReactNodeViewRenderer\",\r\n \"Selection\",\r\n \"SimpleImageAttachmentAdapter\",\r\n \"SimpleTextAttachmentAdapter\",\r\n \"StarterKit\",\r\n \"Table\",\r\n \"TableCell\",\r\n \"TableHeader\",\r\n \"TableRow\",\r\n \"TaskItem\",\r\n \"TaskList\",\r\n \"Terminal\",\r\n \"TextSelection\",\r\n \"ThreadPrimitive\",\r\n \"WebLinksAddon\",\r\n \"captureException\",\r\n \"common\",\r\n \"createLowlight\",\r\n \"createNodeFromContent\",\r\n \"defaultUrlTransform\",\r\n \"extensions\",\r\n \"findTable\",\r\n \"format\",\r\n \"Doc\",\r\n \"getHTMLFromFragment\",\r\n \"getIsolationScope\",\r\n \"init\",\r\n \"isChangeOrigin\",\r\n \"mergeAttributes\",\r\n \"renderToString\",\r\n \"applyUpdate\",\r\n \"encodeStateVector\",\r\n \"encodeStateAsUpdate\",\r\n \"mergeUpdates\",\r\n \"useAui\",\r\n \"useComposer\",\r\n \"useComposerRuntime\",\r\n \"useCurrentEditor\",\r\n \"useEditor\",\r\n \"useLocalRuntime\",\r\n \"useMessagePartReasoning\",\r\n \"useMessagePartText\",\r\n \"useMessageRuntime\",\r\n \"useThread\",\r\n \"useThreadRuntime\",\r\n \"withScope\",\r\n \"XmlFragment\",\r\n \"XmlText\",\r\n ];\r\n return {\r\n name: \"agent-native-ssr-stub-heavy-libs\",\r\n enforce: \"pre\",\r\n resolveId(id, _importer, opts) {\r\n if (!opts?.ssr) return null;\r\n // Match the bare package name or any subpath\r\n const pkg = id\r\n .split(\"/\")\r\n .slice(0, id.startsWith(\"@\") ? 2 : 1)\r\n .join(\"/\");\r\n if (stubbed.has(pkg)) return STUB_ID;\r\n return null;\r\n },\r\n load(id) {\r\n if (id !== STUB_ID) return null;\r\n // Proxy that answers any property access with itself — lets dead\r\n // import/re-export chains parse without blowing up, and still throws\r\n // if code actually tries to call any of it on the server.\r\n return (\r\n \"const handler = { get(_, p) { \" +\r\n \"if (p === Symbol.toPrimitive) return () => ''; \" +\r\n \"if (p === 'then') return undefined; \" +\r\n \"return new Proxy(() => {}, handler); \" +\r\n \"} };\" +\r\n \"const stub = new Proxy(() => {}, handler);\" +\r\n \"export default stub;\" +\r\n namedExports.map((name) => `export const ${name} = stub;`).join(\"\")\r\n );\r\n },\r\n };\r\n}\r\n\r\nfunction splitViteRequest(id: string): { file: string; query: string } | null {\r\n const queryIndex = id.indexOf(\"?\");\r\n if (queryIndex === -1) return null;\r\n return {\r\n file: id.slice(0, queryIndex),\r\n query: id.slice(queryIndex + 1),\r\n };\r\n}\r\n\r\nfunction hasRawQuery(query: string): boolean {\r\n return new URLSearchParams(query).has(\"raw\");\r\n}\r\n\r\nfunction normalizeViteFilePath(file: string): string | null {\r\n if (!file || file.startsWith(\"\\0\")) return null;\r\n const fsPath = file.startsWith(\"/@fs/\") ? file.slice(\"/@fs\".length) : file;\r\n try {\r\n return decodeURI(fsPath);\r\n } catch {\r\n return fsPath;\r\n }\r\n}\r\n\r\nfunction changelogRawPathFromId(id: string): string | null {\r\n const request = splitViteRequest(id);\r\n if (!request || !hasRawQuery(request.query)) return null;\r\n const file = normalizeViteFilePath(request.file);\r\n if (!file || path.basename(file) !== \"CHANGELOG.md\") return null;\r\n return path.resolve(file);\r\n}\r\n\r\nfunction resolveChangelogRawImport(\r\n source: string,\r\n importer: string | undefined,\r\n): string | null {\r\n const request = splitViteRequest(source);\r\n if (!request || !hasRawQuery(request.query)) return null;\r\n const rawFile = normalizeViteFilePath(request.file);\r\n if (!rawFile || path.basename(rawFile) !== \"CHANGELOG.md\") return null;\r\n\r\n const rawImporter = importer?.split(\"?\")[0];\r\n const importerFile =\r\n (rawImporter && normalizeViteFilePath(rawImporter)) ||\r\n rawImporter ||\r\n path.join(process.cwd(), \"index.ts\");\r\n const resolved = path.isAbsolute(rawFile)\r\n ? rawFile\r\n : path.resolve(path.dirname(importerFile), rawFile);\r\n return `${resolved}?${request.query}`;\r\n}\r\n\r\nfunction readAppChangelogMarkdown(\r\n changelogPath: string,\r\n watchFile: (file: string) => void,\r\n): string {\r\n // Only ever register real files with Vite's `addWatchFile`. Passing a\r\n // directory makes import-analysis try to resolve it as a module and fail\r\n // with \"Failed to resolve import .../changelog\", which breaks hydration for\r\n // every template in dev. New/removed pending files are still picked up via\r\n // `handleHotUpdate` (Vite watches the project root recursively).\r\n watchFile(changelogPath);\r\n const existing = fs.existsSync(changelogPath)\r\n ? fs.readFileSync(changelogPath, \"utf-8\")\r\n : \"\";\r\n const pendingDir = path.join(path.dirname(changelogPath), \"changelog\");\r\n if (!fs.existsSync(pendingDir)) {\r\n return existing;\r\n }\r\n\r\n const pending = fs\r\n .readdirSync(pendingDir)\r\n .filter(\r\n (file) => file.endsWith(\".md\") && file.toLowerCase() !== \"readme.md\",\r\n )\r\n .sort()\r\n .map((file) => {\r\n const filePath = path.join(pendingDir, file);\r\n watchFile(filePath);\r\n return parsePendingEntry(fs.readFileSync(filePath, \"utf-8\"));\r\n });\r\n return mergePendingChangelog(existing, pending);\r\n}\r\n\r\nfunction isChangelogSourceFile(file: string): boolean {\r\n if (path.basename(file) === \"CHANGELOG.md\") return true;\r\n return (\r\n path.basename(path.dirname(file)) === \"changelog\" &&\r\n file.endsWith(\".md\") &&\r\n path.basename(file).toLowerCase() !== \"readme.md\"\r\n );\r\n}\r\n\r\nfunction invalidateChangelogRawModules(server: {\r\n moduleGraph?: { idToModuleMap?: Map<string, any>; invalidateModule?: any };\r\n}) {\r\n const moduleGraph = server.moduleGraph;\r\n if (!moduleGraph?.idToModuleMap || !moduleGraph.invalidateModule) return;\r\n for (const mod of moduleGraph.idToModuleMap.values()) {\r\n if (!mod?.id || !changelogRawPathFromId(mod.id)) continue;\r\n moduleGraph.invalidateModule(mod);\r\n }\r\n}\r\n\r\nfunction appChangelogRawPlugin(): Plugin {\r\n return {\r\n name: \"agent-native-app-changelog-raw\",\r\n enforce: \"pre\",\r\n resolveId(source, importer) {\r\n return resolveChangelogRawImport(source, importer);\r\n },\r\n load(id) {\r\n const changelogPath = changelogRawPathFromId(id);\r\n if (!changelogPath) return null;\r\n const markdown = readAppChangelogMarkdown(changelogPath, (file) =>\r\n this.addWatchFile(file),\r\n );\r\n return `export default ${JSON.stringify(markdown)};`;\r\n },\r\n handleHotUpdate(ctx) {\r\n if (!isChangelogSourceFile(ctx.file)) return;\r\n invalidateChangelogRawModules(ctx.server as any);\r\n ctx.server.ws.send({ type: \"full-reload\" });\r\n return [];\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Expose the resolved Vite dev server port as process.env.PORT so that\r\n * in-process scripts (which use localFetch → http://localhost:${PORT}/api/...)\r\n * hit the right address even when Vite auto-increments the port.\r\n */\r\nfunction portExposer(): Plugin {\r\n return {\r\n name: \"agent-native-port-exposer\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n server.httpServer?.once(\"listening\", () => {\r\n const addr = server.httpServer?.address();\r\n if (addr && typeof addr === \"object\" && addr.port) {\r\n process.env.PORT = String(addr.port); // guard:allow-env-mutation — Vite dev server port published once at boot before any request\r\n }\r\n });\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Silence benign connection-reset noise from Vite's dev middleware.\r\n * Fires when a browser closes/reloads/navigates mid-request — the peer has\r\n * already gone away, there's nothing to fix, and Vite's error middleware\r\n * spams the terminal and browser HMR overlay with errors like\r\n * \"read ECONNRESET\" and \"socket hang up\". Our H3 server layer already\r\n * swallows these (create-server.ts onError); this plugin does the same for\r\n * Vite's own connect pipeline.\r\n */\r\nfunction silenceConnectionResets(): Plugin {\r\n const isClosedWebStreamController = (err: unknown) => {\r\n const e = err as\r\n | (NodeJS.ErrnoException & { cause?: NodeJS.ErrnoException })\r\n | undefined;\r\n const code = e?.code || (e?.cause as NodeJS.ErrnoException)?.code;\r\n const message = [\r\n String(e?.message ?? \"\"),\r\n String((e?.cause as NodeJS.ErrnoException | undefined)?.message ?? \"\"),\r\n ].join(\"\\n\");\r\n const stack = [\r\n String(e?.stack ?? \"\"),\r\n String((e?.cause as NodeJS.ErrnoException | undefined)?.stack ?? \"\"),\r\n ].join(\"\\n\");\r\n return (\r\n code === \"ERR_INVALID_STATE\" &&\r\n /Controller is already closed/i.test(message) &&\r\n (!stack ||\r\n /ReadableStreamDefaultController\\.close|internal\\/webstreams\\/adapters|IncomingMessage\\.onclose/.test(\r\n stack,\r\n ))\r\n );\r\n };\r\n const isBenign = (err: unknown) => {\r\n const e = err as\r\n | (NodeJS.ErrnoException & { cause?: NodeJS.ErrnoException })\r\n | undefined;\r\n const code = e?.code || (e?.cause as NodeJS.ErrnoException)?.code;\r\n const message = String(e?.message ?? \"\");\r\n return (\r\n code === \"ECONNRESET\" ||\r\n code === \"ECONNABORTED\" ||\r\n code === \"EPIPE\" ||\r\n isClosedWebStreamController(err) ||\r\n /^(read ECONNRESET|write ECONNRESET|socket hang up|aborted|write EPIPE)$/i.test(\r\n message,\r\n )\r\n );\r\n };\r\n const isBenignErrorPayload = (payload: unknown) => {\r\n const p = payload as { type?: string; err?: unknown } | undefined;\r\n return p?.type === \"error\" && isBenign(p.err);\r\n };\r\n return {\r\n name: \"agent-native-silence-connection-resets\",\r\n apply: \"serve\",\r\n configureServer(server) {\r\n // Swallow socket-level resets so Node doesn't surface them as uncaught.\r\n server.httpServer?.on(\"connection\", (socket) => {\r\n socket.on(\"error\", (err: Error) => {\r\n if (!isBenign(err)) throw err;\r\n });\r\n });\r\n // Drop Vite's \"Internal server error: read ECONNRESET\" log lines.\r\n const origError = server.config.logger.error.bind(server.config.logger);\r\n server.config.logger.error = (msg, opts) => {\r\n const text = typeof msg === \"string\" ? msg : String(msg ?? \"\");\r\n if (\r\n (opts?.error && isBenign(opts.error)) ||\r\n /Internal server error:\\s*(read ECONNRESET|write ECONNRESET|socket hang up|aborted|EPIPE)/i.test(\r\n text,\r\n )\r\n ) {\r\n return;\r\n }\r\n origError(msg, opts);\r\n };\r\n\r\n // Vite's error middleware sends these same benign errors to the HMR\r\n // client, which turns them into the full-screen browser overlay.\r\n // Suppress just those payloads while leaving real transform/runtime\r\n // errors untouched.\r\n const hot = (\r\n server as unknown as {\r\n environments?: { client?: { hot?: { send?: Function } } };\r\n }\r\n ).environments?.client?.hot;\r\n if (hot?.send) {\r\n const origHotSend = hot.send.bind(hot);\r\n hot.send = (payload: unknown, ...args: unknown[]) => {\r\n if (isBenignErrorPayload(payload)) return;\r\n return origHotSend(payload, ...args);\r\n };\r\n }\r\n\r\n const ws = (server as unknown as { ws?: { send?: Function } }).ws;\r\n if (ws?.send) {\r\n const origWsSend = ws.send.bind(ws);\r\n ws.send = (payload: unknown, ...args: unknown[]) => {\r\n if (isBenignErrorPayload(payload)) return;\r\n return origWsSend(payload, ...args);\r\n };\r\n }\r\n },\r\n };\r\n}\r\n\r\ntype AgentNativeViteCommand = ConfigEnv[\"command\"];\r\n\r\nfunction isBuildCommand(command?: AgentNativeViteCommand): boolean {\r\n return command === \"build\" || (!command && process.argv.includes(\"build\"));\r\n}\r\n\r\nfunction hasReactRouterPlugin(plugins: any[] | undefined): boolean {\r\n return Boolean(\r\n plugins?.some(\r\n (p: any) =>\r\n p?.name === \"react-router\" ||\r\n (Array.isArray(p) && p.some((pp: any) => pp?.name === \"react-router\")),\r\n ),\r\n );\r\n}\r\n\r\nfunction createReactTransformPlugin(): any {\r\n try {\r\n let reactTransformPlugin = require(\"@vitejs/plugin-react-swc\");\r\n if (reactTransformPlugin.default)\r\n reactTransformPlugin = reactTransformPlugin.default;\r\n return reactTransformPlugin?.();\r\n } catch {\r\n // Will be resolved at runtime by Vite\r\n return null;\r\n }\r\n}\r\n\r\nfunction createTailwindPlugin(options: Pick<ClientConfigOptions, \"tailwind\">) {\r\n if (options.tailwind === false) return null;\r\n try {\r\n let tailwindPlugin = require(\"@tailwindcss/vite\");\r\n if (tailwindPlugin.default) tailwindPlugin = tailwindPlugin.default;\r\n // Tailwind's Vite optimizer uses Lightning CSS internally and runs\r\n // before Vite's own CSS minifier. Lightning CSS collapses the standard\r\n // `backdrop-filter` declaration when a `-webkit-` fallback is present,\r\n // so let Vite/esbuild handle the production CSS pass instead.\r\n return tailwindPlugin({ optimize: false });\r\n } catch {\r\n // Plugin not installed — silently skip. Old templates may still be on v3.\r\n return null;\r\n }\r\n}\r\n\r\nfunction getConfiguredAppBasePath(): { appBasePath: string; base: string } {\r\n // APP_BASE_PATH lets this app be mounted under a prefix (e.g. \"/mail\") as\r\n // part of a unified workspace deploy. Defaults to \"/\" for standalone apps.\r\n const appBasePath =\r\n process.env.VITE_APP_BASE_PATH || process.env.APP_BASE_PATH || \"/\";\r\n const base = appBasePath.endsWith(\"/\") ? appBasePath : `${appBasePath}/`;\r\n return { appBasePath, base };\r\n}\r\n\r\nfunction createNitroDevPlugin(\r\n options: Pick<ClientConfigOptions, \"nitro\">,\r\n appBasePath: string,\r\n) {\r\n return nitroVitePlugin({\r\n serverDir: \"./server\",\r\n ...(options.nitro ?? {}),\r\n // Never auto-load test files as server handlers/plugins/middleware.\r\n // Nitro scans server/{plugins,middleware,routes,api}/*; a co-located\r\n // *.spec.ts would otherwise be loaded at runtime and crash the server\r\n // (its top-level vitest calls throw). Keep tests next to their source safely.\r\n ignore: [\r\n ...((options.nitro as { ignore?: string[] })?.ignore ?? []),\r\n \"**/*.spec.ts\",\r\n \"**/*.spec.tsx\",\r\n \"**/*.test.ts\",\r\n \"**/*.test.tsx\",\r\n ],\r\n routeRules: {\r\n ...mcpEmbedStaticAssetRouteRules(appBasePath),\r\n ...((options.nitro as { routeRules?: Record<string, any> })?.routeRules ??\r\n {}),\r\n },\r\n } as any);\r\n}\r\n\r\nfunction arrayFrom<T>(value: T | T[] | undefined): T[] {\r\n if (value === undefined) return [];\r\n return Array.isArray(value) ? value : [value];\r\n}\r\n\r\nfunction localWorkspacePackageAliases(\r\n packages: Array<{ packageName: string; packageDir: string }>,\r\n): any[] {\r\n const aliases: any[] = [];\r\n const sourceAliasExcludes = new Set([\"@agent-native/pinpoint\"]);\r\n\r\n for (const { packageName, packageDir } of packages) {\r\n if (sourceAliasExcludes.has(packageName)) continue;\r\n const pkgPath = path.join(packageDir, \"package.json\");\r\n if (!fs.existsSync(pkgPath)) continue;\r\n\r\n try {\r\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\r\n const exportsMap = pkg.exports as Record<string, unknown> | undefined;\r\n if (!exportsMap || typeof exportsMap !== \"object\") continue;\r\n\r\n for (const [exportPath, target] of Object.entries(exportsMap)) {\r\n const exportTarget = localWorkspaceExportTarget(packageDir, target);\r\n if (!exportTarget) continue;\r\n const importPath =\r\n exportPath === \".\"\r\n ? packageName\r\n : `${packageName}${exportPath.slice(1)}`;\r\n const replacement = path.resolve(packageDir, exportTarget);\r\n\r\n if (importPath.includes(\"*\") || replacement.includes(\"*\")) {\r\n aliases.push({\r\n find: new RegExp(\r\n `^${escapeRegex(importPath).replace(\"\\\\*\", \"(.+)\")}$`,\r\n ),\r\n replacement: replacement.replace(\"*\", \"$1\"),\r\n });\r\n continue;\r\n }\r\n\r\n aliases.push({\r\n find: new RegExp(`^${escapeRegex(importPath)}$`),\r\n replacement,\r\n });\r\n }\r\n } catch {\r\n // Ignore malformed package metadata; normal package resolution can handle it.\r\n }\r\n }\r\n\r\n return aliases;\r\n}\r\n\r\nfunction localWorkspaceExportTarget(\r\n packageDir: string,\r\n target: unknown,\r\n): string | null {\r\n const rawTarget = pickLocalWorkspaceExportTarget(target);\r\n if (!rawTarget) return null;\r\n return distExportToSourceTarget(packageDir, rawTarget);\r\n}\r\n\r\nfunction pickLocalWorkspaceExportTarget(target: unknown): string | null {\r\n if (typeof target === \"string\") return target;\r\n if (!target || typeof target !== \"object\" || Array.isArray(target)) {\r\n return null;\r\n }\r\n\r\n const record = target as Record<string, unknown>;\r\n for (const condition of [\"development\", \"browser\", \"import\", \"default\"]) {\r\n const resolved = pickLocalWorkspaceExportTarget(record[condition]);\r\n if (resolved) return resolved;\r\n }\r\n return null;\r\n}\r\n\r\nfunction distExportToSourceTarget(packageDir: string, target: string): string {\r\n if (!target.startsWith(\"./dist/\")) return target;\r\n\r\n if (target.includes(\"*\")) {\r\n return target\r\n .replace(\"./dist/\", \"./src/\")\r\n .replace(/\\.d\\.ts$/, \"\")\r\n .replace(/\\.js$/, \"\");\r\n }\r\n\r\n const sourceBase = target\r\n .replace(\"./dist/\", \"./src/\")\r\n .replace(/\\.d\\.ts$/, \"\")\r\n .replace(/\\.js$/, \"\");\r\n const candidates = target.endsWith(\".css\")\r\n ? [sourceBase]\r\n : [`${sourceBase}.tsx`, `${sourceBase}.ts`, sourceBase];\r\n\r\n for (const candidate of candidates) {\r\n if (fs.existsSync(path.resolve(packageDir, candidate))) return candidate;\r\n }\r\n return target;\r\n}\r\n\r\nfunction aliasArrayFrom(alias: unknown): any[] {\r\n if (!alias) return [];\r\n if (Array.isArray(alias)) return alias;\r\n if (typeof alias === \"object\") {\r\n return Object.entries(alias as Record<string, string>).map(\r\n ([find, replacement]) => ({ find, replacement }),\r\n );\r\n }\r\n return [];\r\n}\r\n\r\nconst DEFAULT_VITE_WATCH_IGNORES = [\r\n \"**/.git/**\",\r\n \"**/node_modules/**\",\r\n \"**/.react-router/**\",\r\n \"**/.generated/**\",\r\n \"**/.agents/**\",\r\n \"**/.claude/**\",\r\n \"**/data/**\",\r\n \"**/dist/**\",\r\n \"**/build/**\",\r\n];\r\n\r\nfunction forceServeOnly(pluginOrPreset: any): any {\r\n if (Array.isArray(pluginOrPreset)) return pluginOrPreset.map(forceServeOnly);\r\n return { ...pluginOrPreset, apply: \"serve\" };\r\n}\r\n\r\nfunction createAgentNativePlugins(\r\n options: ClientConfigOptions | AgentNativeVitePluginOptions,\r\n {\r\n command,\r\n includeReactTransform,\r\n useServeOnlyNitroPlugin = false,\r\n userPlugins = [],\r\n }: {\r\n command?: AgentNativeViteCommand;\r\n includeReactTransform: boolean;\r\n useServeOnlyNitroPlugin?: boolean;\r\n userPlugins?: any[];\r\n },\r\n): any[] {\r\n const { appBasePath } = getConfiguredAppBasePath();\r\n const nitroPlugin = createNitroDevPlugin(options, appBasePath);\r\n const includeNitro = !isBuildCommand(command);\r\n\r\n return [\r\n // Stub packages from `options.ssrStubs` in the SSR bundle so they\r\n // don't bloat the edge worker. Opt-in per template — the framework\r\n // hardcodes nothing (e.g. docs sites legitimately import `shiki` on\r\n // the server, so we can't blanket-stub it here).\r\n ssrStubPlugin(options.ssrStubs ?? []),\r\n ...userPlugins,\r\n appChangelogRawPlugin(),\r\n actionTypesPlugin(),\r\n agentsBundlePlugin(),\r\n autoReloadOnOptimizeDep(),\r\n fullReloadOnOptimizeDep504(),\r\n embedDevFrameHeaders(),\r\n baseRedirectGuard(),\r\n portExposer(),\r\n silenceConnectionResets(),\r\n rolldownInputFix(),\r\n // Nitro Vite plugin for dev-mode API route serving and HMR.\r\n // Disabled during build — React Router's build handles production.\r\n ...(useServeOnlyNitroPlugin\r\n ? [forceServeOnly(nitroPlugin)]\r\n : includeNitro\r\n ? [nitroPlugin]\r\n : []),\r\n includeReactTransform ? createReactTransformPlugin() : null,\r\n createTailwindPlugin(options),\r\n ].filter(Boolean);\r\n}\r\n\r\nfunction createAgentNativeConfig(\r\n options: ClientConfigOptions | AgentNativeVitePluginOptions = {},\r\n command?: AgentNativeViteCommand,\r\n userConfig: UserConfig = {},\r\n): UserConfig {\r\n const cwd = process.cwd();\r\n\r\n // Workspace env fallback. If this app is inside a workspace, tell Vite to\r\n // also look for .env files at the workspace root. Per-app .env still wins\r\n // (Vite's loadEnv merges in precedence order — app dir is loaded after).\r\n const workspaceRoot = findWorkspaceRoot(cwd);\r\n const envDir = workspaceRoot && workspaceRoot !== cwd ? workspaceRoot : cwd;\r\n\r\n // Preload workspace-root .env into process.env so Nitro server code sees\r\n // shared keys during dev (Nitro reads process.env, not vite's envDir).\r\n if (workspaceRoot && workspaceRoot !== cwd) {\r\n try {\r\n const dotenv = require(\"dotenv\");\r\n dotenv.config({\r\n path: path.join(workspaceRoot, \".env\"),\r\n override: false,\r\n // Suppress the dotenv v17 tip line — this loader fires alongside\r\n // utils.ts loadEnv() during dev startup and would otherwise emit a\r\n // duplicate \"[dotenv] injecting env\" message.\r\n quiet: true,\r\n });\r\n } catch {}\r\n }\r\n\r\n const { base } = getConfiguredAppBasePath();\r\n const isWorkspaceChild = process.env.AGENT_NATIVE_WORKSPACE === \"1\";\r\n const monorepoCoreAllow = [\r\n path.resolve(cwd, \"../../packages/core\"),\r\n path.resolve(cwd, \"../core\"),\r\n ].filter((candidate) => fs.existsSync(path.join(candidate, \"package.json\")));\r\n const monorepoNodeModulesAllow = [\r\n path.resolve(cwd, \"../../node_modules\"),\r\n ].filter((candidate) => fs.existsSync(candidate));\r\n\r\n // Workspace-core (enterprise monorepo): pull its directory into Vite's\r\n // file watcher + module graph so edits to its TS sources hot-reload the\r\n // dev server, and its package name into ssr.noExternal so the dynamic\r\n // import in framework-request-handler.ts goes through Vite's transform\r\n // pipeline (TypeScript, SSR HMR, the works).\r\n const workspaceCore = findWorkspaceCoreSync(cwd);\r\n const workspaceCoreFsAllow = workspaceCore\r\n ? [\r\n workspaceCore.packageDir,\r\n // Also allow the workspace root's node_modules so Vite can serve\r\n // pnpm-hoisted transitive deps (e.g. recharts, es-toolkit) as native\r\n // ESM when they are excluded from the Rolldown optimizer.\r\n path.join(workspaceCore.workspaceRoot, \"node_modules\"),\r\n ]\r\n : [];\r\n const workspaceNodeModulesAllow = isWorkspaceChild\r\n ? [path.resolve(cwd, \"../../node_modules\")]\r\n : [];\r\n const packageWorkspaceRoot = workspaceRoot ?? findPnpmWorkspaceRoot(cwd);\r\n const localWorkspacePackageDeps = findLocalWorkspacePackageDeps(\r\n cwd,\r\n packageWorkspaceRoot,\r\n );\r\n const localWorkspacePackageAllow = localWorkspacePackageDeps.map(\r\n (pkg) => pkg.packageDir,\r\n );\r\n const localWorkspacePackageResolveAliases = localWorkspacePackageAliases(\r\n localWorkspacePackageDeps,\r\n );\r\n const workspaceCoreNoExternal = workspaceCore\r\n ? [new RegExp(`^${escapeRegex(workspaceCore.packageName)}(/.*)?$`)]\r\n : [];\r\n const localWorkspacePackageNoExternal = localWorkspacePackageDeps.map(\r\n (pkg) => new RegExp(`^${escapeRegex(pkg.packageName)}(/.*)?$`),\r\n );\r\n const forcePollingWatch = process.env.CHOKIDAR_USEPOLLING === \"1\";\r\n const pollingWatchInterval = Number(process.env.CHOKIDAR_INTERVAL ?? 1000);\r\n const userWatch = userConfig.server?.watch ?? {};\r\n\r\n return {\r\n logLevel:\r\n options.logLevel ??\r\n userConfig.logLevel ??\r\n (isWorkspaceChild ? \"warn\" : undefined),\r\n envDir,\r\n base,\r\n define: {\r\n ...(userConfig.define ?? {}),\r\n ...(options.define ?? {}),\r\n __AGENT_NATIVE_BUILD_GA_MEASUREMENT_ID__: JSON.stringify(\r\n process.env.GA_MEASUREMENT_ID?.trim() || \"\",\r\n ),\r\n \"process.env.AGENT_NATIVE_BUILD_GA_MEASUREMENT_ID\": JSON.stringify(\r\n process.env.GA_MEASUREMENT_ID?.trim() || \"\",\r\n ),\r\n // Framework route warmup controls how SSR `.data` routes are fetched:\r\n // ordinary fetches keep them CDN-cacheable, while native prefetch headers\r\n // can be refused before the CDN/origin sees the request. Keep this value\r\n // authoritative even if app config provides its own `define` entries.\r\n __AGENT_NATIVE_ROUTE_WARMUP_CONFIG__: JSON.stringify(\r\n normalizeAgentNativeRouteWarmupConfig(options.routeWarmup),\r\n ),\r\n __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__: JSON.stringify(\r\n normalizeMcpIntegrationsConfig(options.mcpIntegrations),\r\n ),\r\n },\r\n server: {\r\n ...(userConfig.server ?? {}),\r\n host: userConfig.server?.host ?? \"::\",\r\n port: options.port ?? userConfig.server?.port ?? 8080,\r\n allowedHosts: options.allowedHosts ??\r\n userConfig.server?.allowedHosts ?? [\r\n \".ngrok-free.dev\",\r\n \".ngrok-free.app\",\r\n \".ngrok.io\",\r\n \".trycloudflare.com\",\r\n ],\r\n watch: {\r\n ...userWatch,\r\n ignored: [\r\n ...DEFAULT_VITE_WATCH_IGNORES,\r\n ...arrayFrom((userWatch as { ignored?: any })?.ignored),\r\n ],\r\n ...(forcePollingWatch\r\n ? {\r\n usePolling: true,\r\n interval: Number.isFinite(pollingWatchInterval)\r\n ? pollingWatchInterval\r\n : 1000,\r\n }\r\n : {}),\r\n },\r\n fs: {\r\n ...(userConfig.server?.fs ?? {}),\r\n allow: [\r\n \".\",\r\n ...monorepoCoreAllow,\r\n ...monorepoNodeModulesAllow,\r\n ...workspaceCoreFsAllow,\r\n ...localWorkspacePackageAllow,\r\n ...workspaceNodeModulesAllow,\r\n ...(userConfig.server?.fs?.allow ?? []),\r\n ...(options.fsAllow ?? []),\r\n ],\r\n deny: [\r\n \".env\",\r\n \".env.*\",\r\n \"*.{crt,pem}\",\r\n \"**/.git/**\",\r\n ...(userConfig.server?.fs?.deny ?? []),\r\n ...(options.fsDeny ?? []),\r\n ],\r\n },\r\n },\r\n build: {\r\n ...(userConfig.build ?? {}),\r\n outDir: options.outDir ?? userConfig.build?.outDir ?? \"dist/spa\",\r\n // Vite 8 defaults CSS minification to Lightning CSS, which collapses a\r\n // `backdrop-filter` + `-webkit-backdrop-filter` pair down to only the\r\n // prefixed form. Chrome ignores that, so glass effects disappear in\r\n // production. Keep esbuild as the CSS minifier and target Safari 18+ so\r\n // the standard property survives the production pipeline.\r\n cssMinify: userConfig.build?.cssMinify ?? \"esbuild\",\r\n cssTarget: userConfig.build?.cssTarget ?? [\"es2020\", \"safari18\"],\r\n },\r\n // Bundle all non-Node.js deps into the production SSR server build.\r\n // Edge runtimes (CF Workers, Deno) don't have node_modules at runtime.\r\n // In dev, React Router's Vite Environment runner expects CJS packages\r\n // like React to stay external; forcing them through the module runner\r\n // raises `module is not defined`.\r\n ssr: isBuildCommand(command)\r\n ? {\r\n ...(userConfig.ssr ?? {}),\r\n noExternal: /^(?!node:)/,\r\n external: [\r\n // Yjs is used by both server-side collaboration actions and the\r\n // client SSR graph. If Vite inlines it here, Nitro also emits its\r\n // own server copy and a single request imports Yjs twice, breaking\r\n // Yjs constructor identity. This externalizes only Vite's\r\n // intermediate React Router SSR graph; Nitro's final Node/edge\r\n // bundle still owns and bundles the dependency, so both paths\r\n // share one portable module instance.\r\n \"yjs\",\r\n ...NODE_SSR_NATIVE_EXTERNALS,\r\n ...arrayFrom((userConfig.ssr as { external?: any })?.external),\r\n ],\r\n // Pick the workspace-core's compiled `dist/` exports in prod —\r\n // Node-style `default` condition matches what edge runtimes (CF\r\n // Workers, Deno) can actually load. Without this, Vite's prod\r\n // build inherits the dev-condition src/ entry and ships unbuilt\r\n // TypeScript into the worker.\r\n resolve: {\r\n ...((\r\n userConfig.ssr as\r\n | { resolve?: Record<string, unknown> }\r\n | undefined\r\n )?.resolve ?? {}),\r\n conditions: [\"node\", \"module\", \"import\", \"default\"],\r\n externalConditions: [\"node\", \"module\", \"import\", \"default\"],\r\n },\r\n }\r\n : {\r\n ...(userConfig.ssr ?? {}),\r\n // Vite already sets `development` in the dev resolve conditions,\r\n // so the workspace-core template's exports.development → src/\r\n // entry is picked automatically — Vite handles TS compilation\r\n // and triggers a server restart when those files change.\r\n noExternal: [\r\n /^@agent-native\\/core(\\/.*)?$/,\r\n // Keep React Router in Vite's SSR module graph so resolve.dedupe\r\n // can force root.tsx and core's shared entry-server through the\r\n // same FrameworkContext instance.\r\n ...(hasDep(\"react-router\", cwd) ? [/^react-router(\\/.*)?$/] : []),\r\n // Radix UI primitives are transitive deps of @agent-native/core\r\n // (used by FeedbackButton, AgentSidebar, ShareDialog, etc.). When\r\n // a consumer app SSRs a component that imports Radix, Node's\r\n // externalized resolver can't find @radix-ui/* from the app cwd\r\n // because pnpm doesn't hoist transitive deps. Bundling them\r\n // through Vite resolves them via the workspace store.\r\n /^@radix-ui\\//,\r\n // scheduling ships TypeScript-compiled dist files that contain literal\r\n // `@/` path-alias imports (e.g. `import { Input } from\r\n // \"@/components/ui/input\"`). In standalone (published) mode Node\r\n // treats the package as an external CJS dep and can't resolve\r\n // `@/components`. Adding it to noExternal makes Vite process it\r\n // through the module pipeline, where the consumer app's `@` →\r\n // `./app` alias is already registered.\r\n ...(hasDep(\"@agent-native/scheduling\", cwd)\r\n ? [/^@agent-native\\/scheduling(\\/.*)?$/]\r\n : []),\r\n ...workspaceCoreNoExternal,\r\n ...localWorkspacePackageNoExternal,\r\n ...arrayFrom((userConfig.ssr as { noExternal?: any })?.noExternal),\r\n ],\r\n external: [\r\n \"react\",\r\n \"react-dom\",\r\n \"react-dom/server\",\r\n ...arrayFrom((userConfig.ssr as { external?: any })?.external),\r\n ],\r\n },\r\n optimizeDeps: {\r\n ...(userConfig.optimizeDeps ?? {}),\r\n include: [\r\n ...getDefaultOptimizeDeps(cwd),\r\n ...(hasDep(\"@agent-native/pinpoint\", cwd)\r\n ? [\"@agent-native/pinpoint/react\"]\r\n : []),\r\n ...(userConfig.optimizeDeps?.include ?? []),\r\n ...(options.optimizeDeps?.include ?? []),\r\n ],\r\n // In monorepo mode: explicitly exclude @agent-native/core subpaths so\r\n // Vite never prebundles them from dist/. The source alias above\r\n // (`getCoreSourceAliases`) resolves every import to src/ on every\r\n // request, so HMR picks up new exports immediately. Without exclude,\r\n // the prebundle is built from dist/ once at startup and silently\r\n // serves stale code even after the source / dist is updated.\r\n exclude: [\r\n ...(findCoreSrcDir(cwd) !== null ? CORE_CLIENT_SUBPATHS : []),\r\n ...(userConfig.optimizeDeps?.exclude ?? []),\r\n ...(options.optimizeDeps?.exclude ?? []),\r\n ],\r\n },\r\n resolve: {\r\n ...(userConfig.resolve ?? {}),\r\n // Dedupe all client-side packages that core shares with the consuming\r\n // app. In pnpm monorepos, core's devDependencies can install separate\r\n // copies (linked to different React versions). Without deduping, each\r\n // copy creates its own React context — QueryClientProvider, RouterProvider,\r\n // Radix, etc. — causing \"No provider\" crashes at runtime.\r\n dedupe: [\r\n ...getClientDedupe(cwd),\r\n ...arrayFrom((userConfig.resolve as { dedupe?: any })?.dedupe),\r\n ],\r\n alias: [\r\n // Published npm installs: one react-router instance for app + core.\r\n ...getReactRouterAliases(cwd),\r\n // In monorepo dev: resolve @agent-native/core to source for HMR.\r\n // Uses regex with $ anchor for exact matching to prevent\r\n // @agent-native/core from prefix-matching @agent-native/core/client.\r\n ...getCoreSourceAliases(cwd),\r\n ...localWorkspacePackageResolveAliases,\r\n // Standard path aliases (prefix matching is fine here)\r\n { find: \"@\", replacement: path.resolve(cwd, \"./app\") },\r\n { find: \"@shared\", replacement: path.resolve(cwd, \"./shared\") },\r\n ...Object.entries(options.aliases ?? {}).map(([find, replacement]) => ({\r\n find,\r\n replacement,\r\n })),\r\n ...aliasArrayFrom((userConfig.resolve as { alias?: unknown })?.alias),\r\n ],\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Agent-Native's Vite plugin preset.\r\n *\r\n * Use this in ordinary Vite configs so `vite.config.ts` keeps Vite's native\r\n * `UserConfig` type surface:\r\n *\r\n * ```ts\r\n * import { defineConfig } from \"vite\";\r\n * import { reactRouter } from \"@react-router/dev/vite\";\r\n * import { agentNative } from \"@agent-native/core/vite\";\r\n *\r\n * export default defineConfig({\r\n * plugins: [reactRouter(), agentNative({ ssrStubs: [\"shiki\"] })],\r\n * });\r\n * ```\r\n */\r\nexport function agentNative(\r\n options: AgentNativeVitePluginOptions = {},\r\n): Plugin[] {\r\n return [\r\n {\r\n name: \"agent-native-config\",\r\n enforce: \"pre\",\r\n config(config: UserConfig, env: ConfigEnv) {\r\n return createAgentNativeConfig(options, env.command, config);\r\n },\r\n },\r\n ...createAgentNativePlugins(options, {\r\n includeReactTransform: options.legacySpa === true,\r\n useServeOnlyNitroPlugin: true,\r\n }),\r\n ] as Plugin[];\r\n}\r\n\r\n/**\r\n * Create the client Vite config with sensible agent-native defaults.\r\n *\r\n * @deprecated Prefer `defineConfig` from `vite` plus the `agentNative()` plugin\r\n * preset. This compatibility wrapper remains for existing templates.\r\n */\r\nexport function defineConfig(options: ClientConfigOptions = {}): UserConfig {\r\n const includeReactTransform =\r\n !hasReactRouterPlugin(options.plugins) && !options.reactRouter;\r\n return {\r\n ...createAgentNativeConfig(options),\r\n plugins: createAgentNativePlugins(options, {\r\n includeReactTransform,\r\n userPlugins: options.plugins,\r\n }),\r\n };\r\n}\r\n\r\nexport {\r\n getClientDedupe as _getClientDedupe,\r\n getDefaultOptimizeDeps as _getDefaultOptimizeDeps,\r\n findCorePackageRoot as _findCorePackageRoot,\r\n getReactRouterAliases as _getReactRouterAliases,\r\n};\r\n"]}
|