clawmini 0.0.4 → 0.0.6

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.
Files changed (70) hide show
  1. package/dist/adapter-discord/index.mjs +1 -1
  2. package/dist/adapter-google-chat/index.mjs +1 -1
  3. package/dist/cli/index.mjs +2 -2
  4. package/dist/cli/lite.mjs +5 -3
  5. package/dist/cli/lite.mjs.map +1 -1
  6. package/dist/cli/propose-policy.mjs +2 -0
  7. package/dist/cli/propose-policy.mjs.map +1 -1
  8. package/dist/daemon/index.mjs +23 -8
  9. package/dist/daemon/index.mjs.map +1 -1
  10. package/dist/{lite-BbCFgEjn.mjs → lite-CBxOT1y5.mjs} +2 -2
  11. package/dist/{lite-BbCFgEjn.mjs.map → lite-CBxOT1y5.mjs.map} +1 -1
  12. package/{web/.svelte-kit/output/client/_app/immutable/chunks/uD5YsQE1.js → dist/web/_app/immutable/chunks/9nfWZDAH.js} +1 -1
  13. package/{web/.svelte-kit/output/client/_app/immutable/chunks/ByezTNKv.js → dist/web/_app/immutable/chunks/zsjBVtme.js} +1 -1
  14. package/dist/web/_app/immutable/entry/{app.Dkba_ZYl.js → app.CDP4hzOl.js} +2 -2
  15. package/dist/web/_app/immutable/entry/start.k4GcE1y3.js +1 -0
  16. package/dist/web/_app/immutable/nodes/{0.CFkkEWLe.js → 0.BK2mQuoD.js} +1 -1
  17. package/dist/web/_app/immutable/nodes/{1.BVylC0w0.js → 1.DsQuFekn.js} +1 -1
  18. package/dist/web/_app/immutable/nodes/{3.DEhhZBsS.js → 3.BZVFNxO-.js} +1 -1
  19. package/dist/web/_app/immutable/nodes/{4.C_OhFIXf.js → 4.L2HPGZB4.js} +1 -1
  20. package/dist/web/_app/immutable/nodes/{5.Bj0bsDBW.js → 5.B4lC9vS4.js} +1 -1
  21. package/dist/web/_app/version.json +1 -1
  22. package/dist/web/index.html +6 -6
  23. package/dist/{workspace-CEdb2nPR.mjs → workspace-BJmJBfKi.mjs} +3 -1
  24. package/dist/workspace-BJmJBfKi.mjs.map +1 -0
  25. package/docs/23_custom_token_env/development_log.md +31 -0
  26. package/docs/23_custom_token_env/notes.md +16 -0
  27. package/docs/23_custom_token_env/prd.md +42 -0
  28. package/docs/23_custom_token_env/questions.md +8 -0
  29. package/docs/23_custom_token_env/tickets.md +54 -0
  30. package/napkin.md +1 -0
  31. package/package.json +1 -1
  32. package/src/adapter-google-chat/client.test.ts +1 -1
  33. package/src/cli/e2e/daemon.test.ts +103 -0
  34. package/src/cli/e2e/messages.test.ts +5 -2
  35. package/src/cli/lite.ts +10 -3
  36. package/src/daemon/agent/agent-session.ts +20 -4
  37. package/src/daemon/utils/spawn.ts +2 -1
  38. package/src/shared/config.ts +2 -0
  39. package/templates/environments/macos/sandbox.sb +8 -0
  40. package/templates/environments/macos-proxy/allowlist.txt +4 -0
  41. package/templates/environments/macos-proxy/proxy.mjs +25 -20
  42. package/templates/environments/macos-proxy/sandbox.sb +8 -0
  43. package/templates/gemini/.gemini/settings.json +6 -1
  44. package/templates/gemini/settings.json +22 -21
  45. package/templates/gemini-claw/.gemini/settings.json +6 -1
  46. package/templates/gemini-claw/GEMINI.md +1 -1
  47. package/templates/gemini-claw/settings.json +26 -25
  48. package/web/.svelte-kit/generated/server/internal.js +1 -1
  49. package/web/.svelte-kit/output/client/.vite/manifest.json +26 -26
  50. package/{dist/web/_app/immutable/chunks/uD5YsQE1.js → web/.svelte-kit/output/client/_app/immutable/chunks/9nfWZDAH.js} +1 -1
  51. package/{dist/web/_app/immutable/chunks/ByezTNKv.js → web/.svelte-kit/output/client/_app/immutable/chunks/zsjBVtme.js} +1 -1
  52. package/web/.svelte-kit/output/client/_app/immutable/entry/{app.Dkba_ZYl.js → app.CDP4hzOl.js} +2 -2
  53. package/web/.svelte-kit/output/client/_app/immutable/entry/start.k4GcE1y3.js +1 -0
  54. package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.CFkkEWLe.js → 0.BK2mQuoD.js} +1 -1
  55. package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.BVylC0w0.js → 1.DsQuFekn.js} +1 -1
  56. package/web/.svelte-kit/output/client/_app/immutable/nodes/{3.DEhhZBsS.js → 3.BZVFNxO-.js} +1 -1
  57. package/web/.svelte-kit/output/client/_app/immutable/nodes/{4.C_OhFIXf.js → 4.L2HPGZB4.js} +1 -1
  58. package/web/.svelte-kit/output/client/_app/immutable/nodes/{5.Bj0bsDBW.js → 5.B4lC9vS4.js} +1 -1
  59. package/web/.svelte-kit/output/client/_app/version.json +1 -1
  60. package/web/.svelte-kit/output/server/chunks/internal.js +1 -1
  61. package/web/.svelte-kit/output/server/manifest-full.js +1 -1
  62. package/web/.svelte-kit/output/server/manifest.js +1 -1
  63. package/web/.svelte-kit/output/server/nodes/0.js +1 -1
  64. package/web/.svelte-kit/output/server/nodes/1.js +1 -1
  65. package/web/.svelte-kit/output/server/nodes/3.js +1 -1
  66. package/web/.svelte-kit/output/server/nodes/4.js +1 -1
  67. package/web/.svelte-kit/output/server/nodes/5.js +1 -1
  68. package/dist/web/_app/immutable/entry/start.B_seWfvF.js +0 -1
  69. package/dist/workspace-CEdb2nPR.mjs.map +0 -1
  70. package/web/.svelte-kit/output/client/_app/immutable/entry/start.B_seWfvF.js +0 -1
@@ -1,4 +1,4 @@
1
- import { D as pathIsInsideDir, _ as readEnvironment, c as getClawminiDir, f as getWorkspaceRoot, u as getSettingsPath, y as readSettings } from "./workspace-CEdb2nPR.mjs";
1
+ import { D as pathIsInsideDir, _ as readEnvironment, c as getClawminiDir, f as getWorkspaceRoot, u as getSettingsPath, y as readSettings } from "./workspace-BJmJBfKi.mjs";
2
2
  import { existsSync } from "node:fs";
3
3
  import path from "node:path";
4
4
  import fs$1 from "node:fs/promises";
@@ -238,4 +238,4 @@ async function exportLiteToAllEnvironments(startDir = process.cwd()) {
238
238
 
239
239
  //#endregion
240
240
  export { writeLiteScript as a, createChat as c, getChatsDir as d, getDefaultChatId as f, setDefaultChatId as g, listChats as h, resolveCompiledScript as i, deleteChat as l, isValidChatId as m, exportLiteToEnvironment as n, DEFAULT_CHAT_ID as o, getMessages as p, getLiteScriptContent as r, appendMessage as s, exportLiteToAllEnvironments as t, findLastMessage as u };
241
- //# sourceMappingURL=lite-BbCFgEjn.mjs.map
241
+ //# sourceMappingURL=lite-CBxOT1y5.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lite-BbCFgEjn.mjs","names":["fs","fs"],"sources":["../src/shared/chats.ts","../src/shared/lite.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport fs from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport path from 'node:path';\nimport { getClawminiDir, getSettingsPath } from './workspace.js';\nimport { pathIsInsideDir } from './utils/fs.js';\n\nexport const DEFAULT_CHAT_ID = 'default';\n\nexport interface BaseMessage {\n id: string;\n role: string;\n displayRole?: 'user' | 'agent';\n content: string;\n timestamp: string;\n subagentId?: string;\n}\n\nexport interface UserMessage extends BaseMessage {\n role: 'user';\n agentContent?: string;\n files?: string[];\n}\n\nexport interface AgentReplyMessage extends BaseMessage {\n role: 'agent';\n files?: string[];\n}\n\nexport interface LogMessage extends BaseMessage {\n role: 'log';\n messageId: string;\n type?: 'tool' | 'unknown';\n}\n\nexport interface CommandLogMessage extends BaseMessage {\n role: 'command';\n messageId: string;\n command: string;\n cwd: string;\n stdout: string;\n stderr: string;\n exitCode: number;\n retryAttemptIndex?: number;\n}\n\nexport interface SystemMessage extends BaseMessage {\n role: 'system';\n event: 'cron' | 'policy_approved' | 'policy_rejected' | 'subagent_update' | 'router' | 'other';\n messageId?: string;\n}\n\nexport interface ToolMessage extends BaseMessage {\n role: 'tool';\n messageId: string;\n name: string;\n payload: unknown;\n}\n\nexport interface PolicyRequestMessage extends BaseMessage {\n role: 'policy';\n messageId: string;\n requestId: string;\n commandName: string;\n args: string[];\n status: 'pending' | 'approved' | 'rejected';\n}\n\nexport interface SubagentStatusMessage extends BaseMessage {\n role: 'subagent_status';\n subagentId: string;\n status: 'completed' | 'failed';\n}\n\nexport interface LegacyLogMessage extends BaseMessage {\n role: 'legacy_log';\n messageId?: string;\n source?: string;\n files?: string[];\n level?: 'default' | 'debug' | 'verbose';\n command?: string;\n cwd?: string;\n stdout?: string;\n stderr?: string;\n exitCode?: number;\n}\n\nexport type ChatMessage =\n | UserMessage\n | AgentReplyMessage\n | CommandLogMessage\n | SystemMessage\n | ToolMessage\n | PolicyRequestMessage\n | SubagentStatusMessage\n | LegacyLogMessage;\n\nexport async function getChatsDir(startDir = process.cwd()): Promise<string> {\n const dir = path.join(getClawminiDir(startDir), 'chats');\n if (!existsSync(dir)) {\n await fs.mkdir(dir, { recursive: true });\n }\n return dir;\n}\n\nexport function isValidChatId(chatId: string): boolean {\n if (!chatId || chatId.length === 0) return false;\n return /^[a-zA-Z0-9_-]+$/.test(chatId);\n}\n\nfunction assertValidChatId(id: string): void {\n if (!isValidChatId(id)) {\n throw new Error(`Invalid chat ID: ${id}`);\n }\n}\n\nexport async function createChat(id: string, startDir = process.cwd()): Promise<void> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatDir = path.join(chatsDir, id);\n if (!existsSync(chatDir)) {\n await fs.mkdir(chatDir, { recursive: true });\n }\n const chatFile = path.join(chatDir, 'chat.jsonl');\n if (!existsSync(chatFile)) {\n await fs.writeFile(chatFile, '');\n }\n}\n\nexport async function listChats(startDir = process.cwd()): Promise<string[]> {\n const chatsDir = await getChatsDir(startDir);\n try {\n const entries = await fs.readdir(chatsDir, { withFileTypes: true });\n return entries.filter((e) => e.isDirectory()).map((e) => e.name);\n } catch {\n return [];\n }\n}\n\nexport async function deleteChat(id: string, startDir = process.cwd()): Promise<void> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatDir = path.join(chatsDir, id);\n\n if (!pathIsInsideDir(chatDir, chatsDir)) {\n throw new Error(`Security Error: Cannot delete chat directory outside of ${chatsDir}`);\n }\n\n if (existsSync(chatDir)) {\n await fs.rm(chatDir, { recursive: true, force: true });\n }\n}\n\nexport async function appendMessage(\n id: string,\n message: ChatMessage,\n startDir = process.cwd()\n): Promise<void> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatDir = path.join(chatsDir, id);\n if (!existsSync(chatDir)) {\n await createChat(id, startDir);\n }\n const chatFile = path.join(chatDir, 'chat.jsonl');\n await fs.appendFile(chatFile, JSON.stringify(message) + '\\n');\n}\n\nasync function* readLinesBackwards(filePath: string): AsyncGenerator<string, void, unknown> {\n const fd = await fs.open(filePath, 'r');\n try {\n const stats = await fd.stat();\n if (stats.size === 0) return;\n\n const chunkSize = 64 * 1024;\n let position = stats.size;\n const buffer = Buffer.alloc(chunkSize);\n let leftoverBuffer = Buffer.alloc(0);\n\n while (position > 0) {\n const readSize = Math.min(chunkSize, position);\n position -= readSize;\n\n const { bytesRead } = await fd.read(buffer, 0, readSize, position);\n\n const currentChunk = buffer.subarray(0, bytesRead);\n let combinedBuffer = Buffer.concat([currentChunk, leftoverBuffer]);\n\n let lastNewlineIdx = combinedBuffer.lastIndexOf(0x0a);\n\n while (lastNewlineIdx !== -1) {\n const lineBuffer = combinedBuffer.subarray(lastNewlineIdx + 1);\n const line = lineBuffer.toString('utf8').trim();\n\n if (line) {\n yield line;\n }\n\n combinedBuffer = combinedBuffer.subarray(0, lastNewlineIdx);\n lastNewlineIdx = combinedBuffer.lastIndexOf(0x0a);\n }\n leftoverBuffer = combinedBuffer;\n }\n\n if (leftoverBuffer.length > 0) {\n const line = leftoverBuffer.toString('utf8').trim();\n if (line) {\n yield line;\n }\n }\n } finally {\n await fd.close();\n }\n}\n\nexport function parseChatMessage(line: string): ChatMessage | null {\n try {\n const msg = JSON.parse(line);\n if (msg && msg.role === 'log') {\n msg.role = 'legacy_log';\n }\n return msg as ChatMessage;\n } catch {\n return null;\n }\n}\n\nexport async function getMessages(\n id: string,\n limit?: number,\n startDir = process.cwd(),\n predicate?: (msg: ChatMessage) => boolean,\n before?: string\n): Promise<ChatMessage[]> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatFile = path.join(chatsDir, id, 'chat.jsonl');\n if (!existsSync(chatFile)) {\n throw new Error(`Chat directory or file for '${id}' not found.`);\n }\n\n limit = limit ?? 100;\n\n if (limit <= 0) {\n const content = await fs.readFile(chatFile, 'utf8');\n const lines = content.split('\\n').filter((line) => line.trim() !== '');\n\n let messages = lines\n .map((line) => parseChatMessage(line))\n .filter((msg): msg is ChatMessage => msg !== null);\n\n if (before) {\n const beforeIndex = messages.findIndex((m) => m.id === before);\n if (beforeIndex !== -1) {\n messages = messages.slice(0, beforeIndex);\n } else {\n messages = [];\n }\n }\n\n if (predicate) {\n messages = messages.filter(predicate);\n }\n\n return messages;\n }\n\n // We have a limit > 0, read backwards to avoid parsing the whole file\n const messages: ChatMessage[] = [];\n let skipping = before !== undefined;\n\n for await (const line of readLinesBackwards(chatFile)) {\n try {\n const msg = parseChatMessage(line);\n if (!msg) continue;\n\n if (skipping) {\n if (msg.id === before) {\n skipping = false;\n }\n continue;\n }\n\n if (!predicate || predicate(msg)) {\n messages.push(msg);\n if (messages.length >= limit) {\n break;\n }\n }\n } catch {\n // Ignore invalid JSON lines\n }\n }\n\n return messages.reverse();\n}\n\nexport async function getDefaultChatId(startDir = process.cwd()): Promise<string> {\n const settingsPath = getSettingsPath(startDir);\n if (!existsSync(settingsPath)) return DEFAULT_CHAT_ID;\n\n try {\n const content = await fs.readFile(settingsPath, 'utf8');\n const settings = JSON.parse(content);\n return settings.chats?.defaultId || DEFAULT_CHAT_ID;\n } catch {\n return DEFAULT_CHAT_ID;\n }\n}\n\nexport async function setDefaultChatId(id: string, startDir = process.cwd()): Promise<void> {\n assertValidChatId(id);\n const settingsPath = getSettingsPath(startDir);\n let settings: { chats?: { defaultId?: string; [key: string]: unknown }; [key: string]: unknown } =\n {};\n if (existsSync(settingsPath)) {\n try {\n const content = await fs.readFile(settingsPath, 'utf8');\n settings = JSON.parse(content);\n } catch {\n // Ignore invalid JSON\n }\n }\n\n if (!settings.chats) {\n settings.chats = {};\n }\n settings.chats.defaultId = id;\n\n const clawminiDir = getClawminiDir(startDir);\n if (!existsSync(clawminiDir)) {\n await fs.mkdir(clawminiDir, { recursive: true });\n }\n\n await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2));\n}\n\nexport async function findLastMessage(\n id: string,\n predicate: (msg: ChatMessage) => boolean,\n startDir = process.cwd()\n): Promise<ChatMessage | null> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatFile = path.join(chatsDir, id, 'chat.jsonl');\n if (!existsSync(chatFile)) {\n return null;\n }\n\n for await (const line of readLinesBackwards(chatFile)) {\n try {\n const msg = parseChatMessage(line);\n if (!msg) continue;\n if (predicate(msg)) return msg;\n } catch {\n // Ignore invalid JSON lines\n }\n }\n\n return null;\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { readSettings, readEnvironment, getWorkspaceRoot } from './workspace.js';\nimport type { Environment } from './config.js';\n\nexport async function resolveCompiledScript(scriptName: string, metaUrl: string): Promise<string> {\n const __dirname = path.dirname(fileURLToPath(metaUrl));\n const filename = scriptName.endsWith('.mjs') ? scriptName : `${scriptName}.mjs`;\n\n const searchPaths = [\n path.resolve(__dirname, `cli/${filename}`), // If bundled in a shared chunk at dist/\n path.resolve(__dirname, filename), // If bundled in dist/cli or dist/daemon and lite is next to it\n path.resolve(__dirname, `../cli/${filename}`), // If bundled in dist/daemon, it might be in ../cli/\n path.resolve(__dirname, `../../dist/cli/${filename}`), // Fallback for development/testing when running from src/shared\n path.resolve(__dirname, `../${filename}`), // Used from src/cli/commands (1 level deep) -> dist/cli\n path.resolve(__dirname, `../../${filename}`), // Used from src/cli/commands -> dist/cli (2 levels deep)\n ];\n\n for (const scriptPath of searchPaths) {\n try {\n await fs.access(scriptPath);\n return scriptPath;\n } catch {\n // Continue searching\n }\n }\n\n throw new Error(`Could not find compiled script: ${filename}`);\n}\n\nexport async function getLiteScriptContent(): Promise<string> {\n let liteScriptContent: string;\n const liteScriptPath = await resolveCompiledScript('lite', import.meta.url);\n\n liteScriptContent = await fs.readFile(liteScriptPath, 'utf8');\n\n // Ensure it has the hashbang (if tsdown stripped it or if missing)\n if (!liteScriptContent.startsWith('#!')) {\n liteScriptContent = '#!/usr/bin/env node\\n' + liteScriptContent;\n }\n return liteScriptContent;\n}\n\nexport async function writeLiteScript(outPath: string): Promise<string> {\n const content = await getLiteScriptContent();\n\n let finalPath = outPath;\n const isDir =\n finalPath.endsWith(path.sep) ||\n !(\n path.extname(finalPath) === '.js' ||\n path.extname(finalPath) === '.mjs' ||\n path.basename(finalPath) === 'clawmini-lite'\n );\n\n try {\n const stat = await fs.stat(finalPath);\n if (stat.isDirectory()) {\n finalPath = path.join(finalPath, 'clawmini-lite.js');\n }\n } catch {\n if (\n isDir &&\n !path.extname(finalPath) &&\n !finalPath.endsWith('clawmini-lite') &&\n !finalPath.endsWith('clawmini-lite.js')\n ) {\n await fs.mkdir(finalPath, { recursive: true });\n finalPath = path.join(finalPath, 'clawmini-lite.js');\n }\n }\n\n const dir = path.dirname(finalPath);\n await fs.mkdir(dir, { recursive: true });\n await fs.writeFile(finalPath, content, { mode: 0o755 });\n return finalPath;\n}\n\nexport async function exportLiteToEnvironment(\n envName: string,\n envConfig: Environment,\n affectedDir: string\n): Promise<boolean> {\n if (!envConfig?.exportLiteTo) return false;\n\n const finalExportPath = path.resolve(affectedDir, envConfig.exportLiteTo);\n\n if (\n !finalExportPath.startsWith(affectedDir + path.sep) &&\n finalExportPath !== affectedDir &&\n !finalExportPath.startsWith(affectedDir + '/')\n ) {\n console.warn(\n `Skipping export for environment '${envName}': exportLiteTo path '${envConfig.exportLiteTo}' escapes the environment target directory '${affectedDir}'`\n );\n return false;\n }\n\n try {\n const writtenPath = await writeLiteScript(finalExportPath);\n console.log(`Successfully exported clawmini-lite to ${writtenPath} (Environment: ${envName})`);\n return true;\n } catch (err) {\n console.error(\n `Failed to export clawmini-lite to ${finalExportPath} (Environment: ${envName}): ${err instanceof Error ? err.message : String(err)}`\n );\n return false;\n }\n}\n\nexport async function exportLiteToAllEnvironments(startDir = process.cwd()): Promise<boolean> {\n let exportedToEnvironments = false;\n try {\n const workspaceRoot = getWorkspaceRoot(startDir);\n const settings = await readSettings(workspaceRoot);\n if (settings?.environments) {\n for (const [envPath, envName] of Object.entries(settings.environments)) {\n const envConfig = await readEnvironment(envName, workspaceRoot);\n if (envConfig) {\n const affectedDir = path.resolve(workspaceRoot, envPath);\n const exported = await exportLiteToEnvironment(envName, envConfig, affectedDir);\n if (exported) {\n exportedToEnvironments = true;\n }\n }\n }\n }\n } catch {\n // Ignore settings read errors\n }\n return exportedToEnvironments;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"lite-CBxOT1y5.mjs","names":["fs","fs"],"sources":["../src/shared/chats.ts","../src/shared/lite.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport fs from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport path from 'node:path';\nimport { getClawminiDir, getSettingsPath } from './workspace.js';\nimport { pathIsInsideDir } from './utils/fs.js';\n\nexport const DEFAULT_CHAT_ID = 'default';\n\nexport interface BaseMessage {\n id: string;\n role: string;\n displayRole?: 'user' | 'agent';\n content: string;\n timestamp: string;\n subagentId?: string;\n}\n\nexport interface UserMessage extends BaseMessage {\n role: 'user';\n agentContent?: string;\n files?: string[];\n}\n\nexport interface AgentReplyMessage extends BaseMessage {\n role: 'agent';\n files?: string[];\n}\n\nexport interface LogMessage extends BaseMessage {\n role: 'log';\n messageId: string;\n type?: 'tool' | 'unknown';\n}\n\nexport interface CommandLogMessage extends BaseMessage {\n role: 'command';\n messageId: string;\n command: string;\n cwd: string;\n stdout: string;\n stderr: string;\n exitCode: number;\n retryAttemptIndex?: number;\n}\n\nexport interface SystemMessage extends BaseMessage {\n role: 'system';\n event: 'cron' | 'policy_approved' | 'policy_rejected' | 'subagent_update' | 'router' | 'other';\n messageId?: string;\n}\n\nexport interface ToolMessage extends BaseMessage {\n role: 'tool';\n messageId: string;\n name: string;\n payload: unknown;\n}\n\nexport interface PolicyRequestMessage extends BaseMessage {\n role: 'policy';\n messageId: string;\n requestId: string;\n commandName: string;\n args: string[];\n status: 'pending' | 'approved' | 'rejected';\n}\n\nexport interface SubagentStatusMessage extends BaseMessage {\n role: 'subagent_status';\n subagentId: string;\n status: 'completed' | 'failed';\n}\n\nexport interface LegacyLogMessage extends BaseMessage {\n role: 'legacy_log';\n messageId?: string;\n source?: string;\n files?: string[];\n level?: 'default' | 'debug' | 'verbose';\n command?: string;\n cwd?: string;\n stdout?: string;\n stderr?: string;\n exitCode?: number;\n}\n\nexport type ChatMessage =\n | UserMessage\n | AgentReplyMessage\n | CommandLogMessage\n | SystemMessage\n | ToolMessage\n | PolicyRequestMessage\n | SubagentStatusMessage\n | LegacyLogMessage;\n\nexport async function getChatsDir(startDir = process.cwd()): Promise<string> {\n const dir = path.join(getClawminiDir(startDir), 'chats');\n if (!existsSync(dir)) {\n await fs.mkdir(dir, { recursive: true });\n }\n return dir;\n}\n\nexport function isValidChatId(chatId: string): boolean {\n if (!chatId || chatId.length === 0) return false;\n return /^[a-zA-Z0-9_-]+$/.test(chatId);\n}\n\nfunction assertValidChatId(id: string): void {\n if (!isValidChatId(id)) {\n throw new Error(`Invalid chat ID: ${id}`);\n }\n}\n\nexport async function createChat(id: string, startDir = process.cwd()): Promise<void> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatDir = path.join(chatsDir, id);\n if (!existsSync(chatDir)) {\n await fs.mkdir(chatDir, { recursive: true });\n }\n const chatFile = path.join(chatDir, 'chat.jsonl');\n if (!existsSync(chatFile)) {\n await fs.writeFile(chatFile, '');\n }\n}\n\nexport async function listChats(startDir = process.cwd()): Promise<string[]> {\n const chatsDir = await getChatsDir(startDir);\n try {\n const entries = await fs.readdir(chatsDir, { withFileTypes: true });\n return entries.filter((e) => e.isDirectory()).map((e) => e.name);\n } catch {\n return [];\n }\n}\n\nexport async function deleteChat(id: string, startDir = process.cwd()): Promise<void> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatDir = path.join(chatsDir, id);\n\n if (!pathIsInsideDir(chatDir, chatsDir)) {\n throw new Error(`Security Error: Cannot delete chat directory outside of ${chatsDir}`);\n }\n\n if (existsSync(chatDir)) {\n await fs.rm(chatDir, { recursive: true, force: true });\n }\n}\n\nexport async function appendMessage(\n id: string,\n message: ChatMessage,\n startDir = process.cwd()\n): Promise<void> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatDir = path.join(chatsDir, id);\n if (!existsSync(chatDir)) {\n await createChat(id, startDir);\n }\n const chatFile = path.join(chatDir, 'chat.jsonl');\n await fs.appendFile(chatFile, JSON.stringify(message) + '\\n');\n}\n\nasync function* readLinesBackwards(filePath: string): AsyncGenerator<string, void, unknown> {\n const fd = await fs.open(filePath, 'r');\n try {\n const stats = await fd.stat();\n if (stats.size === 0) return;\n\n const chunkSize = 64 * 1024;\n let position = stats.size;\n const buffer = Buffer.alloc(chunkSize);\n let leftoverBuffer = Buffer.alloc(0);\n\n while (position > 0) {\n const readSize = Math.min(chunkSize, position);\n position -= readSize;\n\n const { bytesRead } = await fd.read(buffer, 0, readSize, position);\n\n const currentChunk = buffer.subarray(0, bytesRead);\n let combinedBuffer = Buffer.concat([currentChunk, leftoverBuffer]);\n\n let lastNewlineIdx = combinedBuffer.lastIndexOf(0x0a);\n\n while (lastNewlineIdx !== -1) {\n const lineBuffer = combinedBuffer.subarray(lastNewlineIdx + 1);\n const line = lineBuffer.toString('utf8').trim();\n\n if (line) {\n yield line;\n }\n\n combinedBuffer = combinedBuffer.subarray(0, lastNewlineIdx);\n lastNewlineIdx = combinedBuffer.lastIndexOf(0x0a);\n }\n leftoverBuffer = combinedBuffer;\n }\n\n if (leftoverBuffer.length > 0) {\n const line = leftoverBuffer.toString('utf8').trim();\n if (line) {\n yield line;\n }\n }\n } finally {\n await fd.close();\n }\n}\n\nexport function parseChatMessage(line: string): ChatMessage | null {\n try {\n const msg = JSON.parse(line);\n if (msg && msg.role === 'log') {\n msg.role = 'legacy_log';\n }\n return msg as ChatMessage;\n } catch {\n return null;\n }\n}\n\nexport async function getMessages(\n id: string,\n limit?: number,\n startDir = process.cwd(),\n predicate?: (msg: ChatMessage) => boolean,\n before?: string\n): Promise<ChatMessage[]> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatFile = path.join(chatsDir, id, 'chat.jsonl');\n if (!existsSync(chatFile)) {\n throw new Error(`Chat directory or file for '${id}' not found.`);\n }\n\n limit = limit ?? 100;\n\n if (limit <= 0) {\n const content = await fs.readFile(chatFile, 'utf8');\n const lines = content.split('\\n').filter((line) => line.trim() !== '');\n\n let messages = lines\n .map((line) => parseChatMessage(line))\n .filter((msg): msg is ChatMessage => msg !== null);\n\n if (before) {\n const beforeIndex = messages.findIndex((m) => m.id === before);\n if (beforeIndex !== -1) {\n messages = messages.slice(0, beforeIndex);\n } else {\n messages = [];\n }\n }\n\n if (predicate) {\n messages = messages.filter(predicate);\n }\n\n return messages;\n }\n\n // We have a limit > 0, read backwards to avoid parsing the whole file\n const messages: ChatMessage[] = [];\n let skipping = before !== undefined;\n\n for await (const line of readLinesBackwards(chatFile)) {\n try {\n const msg = parseChatMessage(line);\n if (!msg) continue;\n\n if (skipping) {\n if (msg.id === before) {\n skipping = false;\n }\n continue;\n }\n\n if (!predicate || predicate(msg)) {\n messages.push(msg);\n if (messages.length >= limit) {\n break;\n }\n }\n } catch {\n // Ignore invalid JSON lines\n }\n }\n\n return messages.reverse();\n}\n\nexport async function getDefaultChatId(startDir = process.cwd()): Promise<string> {\n const settingsPath = getSettingsPath(startDir);\n if (!existsSync(settingsPath)) return DEFAULT_CHAT_ID;\n\n try {\n const content = await fs.readFile(settingsPath, 'utf8');\n const settings = JSON.parse(content);\n return settings.chats?.defaultId || DEFAULT_CHAT_ID;\n } catch {\n return DEFAULT_CHAT_ID;\n }\n}\n\nexport async function setDefaultChatId(id: string, startDir = process.cwd()): Promise<void> {\n assertValidChatId(id);\n const settingsPath = getSettingsPath(startDir);\n let settings: { chats?: { defaultId?: string; [key: string]: unknown }; [key: string]: unknown } =\n {};\n if (existsSync(settingsPath)) {\n try {\n const content = await fs.readFile(settingsPath, 'utf8');\n settings = JSON.parse(content);\n } catch {\n // Ignore invalid JSON\n }\n }\n\n if (!settings.chats) {\n settings.chats = {};\n }\n settings.chats.defaultId = id;\n\n const clawminiDir = getClawminiDir(startDir);\n if (!existsSync(clawminiDir)) {\n await fs.mkdir(clawminiDir, { recursive: true });\n }\n\n await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2));\n}\n\nexport async function findLastMessage(\n id: string,\n predicate: (msg: ChatMessage) => boolean,\n startDir = process.cwd()\n): Promise<ChatMessage | null> {\n assertValidChatId(id);\n const chatsDir = await getChatsDir(startDir);\n const chatFile = path.join(chatsDir, id, 'chat.jsonl');\n if (!existsSync(chatFile)) {\n return null;\n }\n\n for await (const line of readLinesBackwards(chatFile)) {\n try {\n const msg = parseChatMessage(line);\n if (!msg) continue;\n if (predicate(msg)) return msg;\n } catch {\n // Ignore invalid JSON lines\n }\n }\n\n return null;\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { readSettings, readEnvironment, getWorkspaceRoot } from './workspace.js';\nimport type { Environment } from './config.js';\n\nexport async function resolveCompiledScript(scriptName: string, metaUrl: string): Promise<string> {\n const __dirname = path.dirname(fileURLToPath(metaUrl));\n const filename = scriptName.endsWith('.mjs') ? scriptName : `${scriptName}.mjs`;\n\n const searchPaths = [\n path.resolve(__dirname, `cli/${filename}`), // If bundled in a shared chunk at dist/\n path.resolve(__dirname, filename), // If bundled in dist/cli or dist/daemon and lite is next to it\n path.resolve(__dirname, `../cli/${filename}`), // If bundled in dist/daemon, it might be in ../cli/\n path.resolve(__dirname, `../../dist/cli/${filename}`), // Fallback for development/testing when running from src/shared\n path.resolve(__dirname, `../${filename}`), // Used from src/cli/commands (1 level deep) -> dist/cli\n path.resolve(__dirname, `../../${filename}`), // Used from src/cli/commands -> dist/cli (2 levels deep)\n ];\n\n for (const scriptPath of searchPaths) {\n try {\n await fs.access(scriptPath);\n return scriptPath;\n } catch {\n // Continue searching\n }\n }\n\n throw new Error(`Could not find compiled script: ${filename}`);\n}\n\nexport async function getLiteScriptContent(): Promise<string> {\n let liteScriptContent: string;\n const liteScriptPath = await resolveCompiledScript('lite', import.meta.url);\n\n liteScriptContent = await fs.readFile(liteScriptPath, 'utf8');\n\n // Ensure it has the hashbang (if tsdown stripped it or if missing)\n if (!liteScriptContent.startsWith('#!')) {\n liteScriptContent = '#!/usr/bin/env node\\n' + liteScriptContent;\n }\n return liteScriptContent;\n}\n\nexport async function writeLiteScript(outPath: string): Promise<string> {\n const content = await getLiteScriptContent();\n\n let finalPath = outPath;\n const isDir =\n finalPath.endsWith(path.sep) ||\n !(\n path.extname(finalPath) === '.js' ||\n path.extname(finalPath) === '.mjs' ||\n path.basename(finalPath) === 'clawmini-lite'\n );\n\n try {\n const stat = await fs.stat(finalPath);\n if (stat.isDirectory()) {\n finalPath = path.join(finalPath, 'clawmini-lite.js');\n }\n } catch {\n if (\n isDir &&\n !path.extname(finalPath) &&\n !finalPath.endsWith('clawmini-lite') &&\n !finalPath.endsWith('clawmini-lite.js')\n ) {\n await fs.mkdir(finalPath, { recursive: true });\n finalPath = path.join(finalPath, 'clawmini-lite.js');\n }\n }\n\n const dir = path.dirname(finalPath);\n await fs.mkdir(dir, { recursive: true });\n await fs.writeFile(finalPath, content, { mode: 0o755 });\n return finalPath;\n}\n\nexport async function exportLiteToEnvironment(\n envName: string,\n envConfig: Environment,\n affectedDir: string\n): Promise<boolean> {\n if (!envConfig?.exportLiteTo) return false;\n\n const finalExportPath = path.resolve(affectedDir, envConfig.exportLiteTo);\n\n if (\n !finalExportPath.startsWith(affectedDir + path.sep) &&\n finalExportPath !== affectedDir &&\n !finalExportPath.startsWith(affectedDir + '/')\n ) {\n console.warn(\n `Skipping export for environment '${envName}': exportLiteTo path '${envConfig.exportLiteTo}' escapes the environment target directory '${affectedDir}'`\n );\n return false;\n }\n\n try {\n const writtenPath = await writeLiteScript(finalExportPath);\n console.log(`Successfully exported clawmini-lite to ${writtenPath} (Environment: ${envName})`);\n return true;\n } catch (err) {\n console.error(\n `Failed to export clawmini-lite to ${finalExportPath} (Environment: ${envName}): ${err instanceof Error ? err.message : String(err)}`\n );\n return false;\n }\n}\n\nexport async function exportLiteToAllEnvironments(startDir = process.cwd()): Promise<boolean> {\n let exportedToEnvironments = false;\n try {\n const workspaceRoot = getWorkspaceRoot(startDir);\n const settings = await readSettings(workspaceRoot);\n if (settings?.environments) {\n for (const [envPath, envName] of Object.entries(settings.environments)) {\n const envConfig = await readEnvironment(envName, workspaceRoot);\n if (envConfig) {\n const affectedDir = path.resolve(workspaceRoot, envPath);\n const exported = await exportLiteToEnvironment(envName, envConfig, affectedDir);\n if (exported) {\n exportedToEnvironments = true;\n }\n }\n }\n }\n } catch {\n // Ignore settings read errors\n }\n return exportedToEnvironments;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- import{be as we,bo as St,I as U,w as A,D as P,aN as re,bp as Rt}from"./CME08kGM.js";import{o as We}from"./DhD271EB.js";const D=[];function Te(e,t=we){let n=null;const r=new Set;function a(o){if(St(e,o)&&(e=o,n)){const l=!D.length;for(const c of r)c[1](),D.push(c,e);if(l){for(let c=0;c<D.length;c+=2)D[c][0](D[c+1]);D.length=0}}}function i(o){a(o(e))}function s(o,l=we){const c=[o,l];return r.add(c),r.size===1&&(n=t(a,i)||we),o(e),()=>{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:a,update:i,subscribe:s}}class Ie{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Oe{constructor(t,n){this.status=t,this.location=n}}class $e extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function xt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Lt(e){return e.split("%25").map(decodeURI).join("%25")}function Ut(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ye({href:e}){return e.split("#")[0]}function At(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(s,o){if(o==="get"||o==="getAll"||o==="has")return(c,...d)=>(n(c),s[o](c,...d));t();const l=Reflect.get(s,o);return typeof l=="function"?l.bind(s):l}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];r&&i.push("hash");for(const s of i)Object.defineProperty(a,s,{get(){return t(),e[s]},enumerable:!0,configurable:!0});return a}function Pt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function Tt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const It=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&H.delete(Ce(e)),It(e,t));const H=new Map;function Ot(e,t){const n=Ce(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&H.set(n,{body:a,init:i,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=Tt(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function $t(e,t,n){if(H.size>0){const r=Ce(e,n),a=H.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);H.delete(r)}}return window.fetch(t,n)}function Ce(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${Pt(...a)}"]`}return r}const Ct=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function jt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${qt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return be(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return be(String.fromCharCode(...l.slice(2).split("-").map(v=>parseInt(v,16))));const d=Ct.exec(l),[,p,u,f,h]=d;return t.push({name:f,matcher:h,optional:!!p,rest:!!u,chained:u?c===1&&s[0]==="":!1}),u?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return be(l)}).join("")}).join("")}/?$`),params:t}}function Nt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function qt(e){return e.slice(1).split("/").filter(Nt)}function Dt(e,t,n){const r={},a=e.slice(1),i=a.filter(o=>o!==void 0);let s=0;for(let o=0;o<t.length;o+=1){const l=t[o];let c=a[o-s];if(l.chained&&l.rest&&s&&(c=a.slice(o-s,o+1).filter(d=>d).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=t[o+1],p=a[o+1];d&&!d.rest&&d.optional&&p&&l.chained&&(s=0),!d&&!p&&Object.keys(r).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return r}function be(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Vt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:p,params:u}=jt(o),f={id:o,exec:h=>{const v=p.exec(h);if(v)return Dt(v,u,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...c||[]].map(s),leaf:i(l)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function i(o){const l=o<0;return l&&(o=~o),[l,e[o]]}function s(o){return o===void 0?o:[a.has(o),e[o]]}}function nt(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Je(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_461bpx?.base??"",Bt=globalThis.__sveltekit_461bpx?.assets??x??"",Kt="1774925279766",rt="sveltekit:snapshot",at="sveltekit:scroll",ot="sveltekit:states",Ft="sveltekit:pageurl",B="sveltekit:history",J="sveltekit:navigation",N={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},pe=location.origin;function je(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Ye={...N,"":N.hover};function st(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function it(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=st(e)}}function Re(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||ge(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),s=r?.origin===pe&&e.hasAttribute("download");return{url:r,external:i,target:a,download:s}}function ae(e){let t=null,n=null,r=null,a=null,i=null,s=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=V(o,"preload-code")),a===null&&(a=V(o,"preload-data")),t===null&&(t=V(o,"keepfocus")),n===null&&(n=V(o,"noscroll")),i===null&&(i=V(o,"reload")),s===null&&(s=V(o,"replacestate")),o=st(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ye[r??"off"],preload_data:Ye[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(s)}}function Xe(e){const t=Te(e);let n=!0;function r(){n=!0,t.update(s=>s)}function a(s){n=!1,t.set(s)}function i(s){let o;return t.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:r,set:a,subscribe:i}}const lt={v:()=>{}};function Gt(){const{set:e,subscribe:t}=Te(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Bt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==Kt;return s&&(e(!0),lt.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:t,check:r}}function ge(e,t,n){return e.origin!==pe||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function _n(e){}const ct=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ct];const Mt=new Set([...ct]);[...Mt];function zt(e){return e.filter(t=>t!=null)}function Ne(e){return e instanceof Ie||e instanceof $e?e.status:500}function Ht(e){return e instanceof $e?e.text:"Internal Error"}let b,Y,ke;const Wt=We.toString().includes("$$")||/function \w+\(\) \{\}/.test(We.toString()),Qe="a:";Wt?(b={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Qe)},Y={current:null},ke={current:!1}):(b=new class{#e=U({});get data(){return A(this.#e)}set data(t){P(this.#e,t)}#t=U(null);get form(){return A(this.#t)}set form(t){P(this.#t,t)}#n=U(null);get error(){return A(this.#n)}set error(t){P(this.#n,t)}#r=U({});get params(){return A(this.#r)}set params(t){P(this.#r,t)}#a=U({id:null});get route(){return A(this.#a)}set route(t){P(this.#a,t)}#o=U({});get state(){return A(this.#o)}set state(t){P(this.#o,t)}#s=U(-1);get status(){return A(this.#s)}set status(t){P(this.#s,t)}#i=U(new URL(Qe));get url(){return A(this.#i)}set url(t){P(this.#i,t)}},Y=new class{#e=U(null);get current(){return A(this.#e)}set current(t){P(this.#e,t)}},ke=new class{#e=U(!1);get current(){return A(this.#e)}set current(t){P(this.#e,t)}},lt.v=()=>ke.current=!0);function ut(e){Object.assign(b,e)}const Ze={spanContext(){return Jt},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Jt={traceId:"",spanId:"",traceFlags:0},Yt=new Set(["icon","shortcut icon","apple-touch-icon"]);let M=null;const j=nt(at)??{},X=nt(rt)??{},C={url:Xe({}),page:Xe({}),navigating:Te(null),updated:Gt()};function qe(e){j[e]=q()}function Xt(e,t){let n=e+1;for(;j[n];)delete j[n],n+=1;for(n=t+1;X[n];)delete X[n],n+=1}function Q(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ft(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function xe(){}let De,Le,oe,T,Ue,w;const se=[],ie=[];let L=null;function le(){L?.fork?.then(e=>e?.discard()),L=null}const ne=new Map,dt=new Set,Qt=new Set,W=new Set;let m={branch:[],error:null,url:null,nav:null},ht=!1,ce=!1,et=!0,Z=!1,z=!1,pt=!1,_e=!1,Ve,y,R,I;const ue=new Set;let Ee;const fe=new Map;async function yn(e,t,n){globalThis.__sveltekit_461bpx?.data&&globalThis.__sveltekit_461bpx.data,document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),De=Vt(e),T=document.documentElement,Ue=t,Le=e.nodes[0],oe=e.nodes[1],Le(),oe(),y=history.state?.[B],R=history.state?.[J],y||(y=R=Date.now(),history.replaceState({...history.state,[B]:y,[J]:R},""));const r=j[y];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await un(Ue,n)):(await K({type:"enter",url:je(w.hash?hn(new URL(location.href)):location.href),replace_state:!0}),a()),cn()}async function Zt(e=!0,t=!0){if(await(Ee||=Promise.resolve()),!Ee)return;Ee=null;const n=I={},r=await te(m.url,!0);if(le(),_e&&fe.forEach(({resource:a})=>{a.refresh?.()}),e){const a=b.state,i=r&&await Ge(r);if(!i||n!==I)return;if(i.type==="redirect")return Be(new URL(i.location,m.url).href,{replaceState:!0},1,n);t||(i.props.page.state=a),ut(i.props.page),m={...i.state,nav:m.nav},Ae(),Ve.$set(i.props)}else Ae();await Promise.all([...fe.values()].map(({resource:a})=>a)).catch(xe)}function Ae(){se.length=0,_e=!1}function gt(e){ie.some(t=>t?.snapshot)&&(X[e]=ie.map(t=>t?.snapshot?.capture()))}function _t(e){X[e]?.forEach((t,n)=>{ie[n]?.snapshot?.restore(t)})}function tt(){qe(y),Je(at,j),gt(R),Je(rt,X)}async function Be(e,t,n,r){let a;t.invalidateAll&&le(),await K({type:"goto",url:je(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(_e=!0,a=[...fe.keys()]),t.invalidate&&t.invalidate.forEach(bt)}}),t.invalidateAll&&re().then(re).then(()=>{fe.forEach(({resource:i},s)=>{a?.includes(s)&&i.refresh?.()})})}async function en(e){if(e.id!==L?.id){le();const t={};ue.add(t),L={id:e.id,token:t,promise:Ge({...e,preload:t}).then(n=>(ue.delete(t),n.type==="loaded"&&n.state.error&&le(),n)),fork:null}}return L.promise}async function Se(e){const t=(await te(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function mt(e,t,n){const r={params:m.params,route:{id:m.route?.id??null},url:new URL(location.href)};m={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(b,e.props.page),Ve=new w.root({target:t,props:{...e.props,stores:C,components:ie},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),_t(R),n){const i={from:null,to:{...r,scroll:j[y]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};W.forEach(s=>s(i))}ce=!0}async function de({url:e,params:t,branch:n,errors:r,status:a,error:i,route:s,form:o}){let l="never";if(x&&(e.pathname===x||e.pathname===x+"/"))l="always";else for(const h of n)h?.slash!==void 0&&(l=h.slash);e.pathname=xt(e.pathname,l),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:i,route:s},props:{constructors:zt(n).map(h=>h.node.component),page:He(b)}};o!==void 0&&(c.props.form=o);let d={},p=!b,u=0;for(let h=0;h<Math.max(n.length,m.branch.length);h+=1){const v=n[h],_=m.branch[h];v?.data!==_?.data&&(p=!0),v&&(d={...d,...v.data},p&&(c.props[`data_${u}`]=d),u+=1)}return(!m.url||e.href!==m.url.href||m.error!==i||o!==void 0&&o!==b.form||p)&&(c.props.page={error:i,params:t,route:{id:s?.id??null},state:{},status:a,url:new URL(e),form:o??null,data:p?d:b.data}),c}async function Ke({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let s=null,o=!0;const l={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();if(c.universal?.load){let d=function(...u){for(const f of u){const{href:h}=new URL(f,n);l.dependencies.add(h)}};const p={tracing:{enabled:!1,root:Ze,current:Ze},route:new Proxy(a,{get:(u,f)=>(o&&(l.route=!0),u[f])}),params:new Proxy(r,{get:(u,f)=>(o&&l.params.add(f),u[f])}),data:i?.data??null,url:At(n,()=>{o&&(l.url=!0)},u=>{o&&l.search_params.add(u)},w.hash),async fetch(u,f){u instanceof Request&&(f={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u?.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...f});const{resolved:h,promise:v}=vt(u,f,n);return o&&d(h.href),v},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};s=await c.universal.load.call(null,p)??null}return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:s,uses:l}:null,data:s??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function vt(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=ce?$t(r,a.href,t):Ot(r,t);return{resolved:a,promise:i}}function tn(e,t,n,r,a,i){if(_e)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(i[s]!==m.params[s])return!0;for(const s of a.dependencies)if(se.some(o=>o(new URL(s))))return!0;return!1}function Fe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function nn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(s=>i.includes(s))&&i.every(s=>a.includes(s))&&n.delete(r)}return n}function rn({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:He(b),constructors:[]}}}async function Ge({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return ue.delete(L.token),L.promise;const{errors:s,layouts:o,leaf:l}=a,c=[...o,l];s.forEach(_=>_?.().catch(()=>{})),c.forEach(_=>_?.[1]().catch(()=>{}));const d=m.url?e!==he(m.url):!1,p=m.route?a.id!==m.route.id:!1,u=nn(m.url,n);let f=!1;const h=c.map(async(_,g)=>{if(!_)return;const E=m.branch[g];return _[1]===E?.loader&&!tn(f,p,d,u,E.universal?.uses,r)?E:(f=!0,Ke({loader:_[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let $=0;$<g;$+=1)Object.assign(O,(await h[$])?.data);return O},server_data_node:Fe(_[0]?{type:"skip"}:null,_[0]?E?.server:void 0)}))});for(const _ of h)_.catch(()=>{});const v=[];for(let _=0;_<c.length;_+=1)if(c[_])try{v.push(await h[_])}catch(g){if(g instanceof Oe)return{type:"redirect",location:g.location};if(ue.has(i))return rn({error:await ee(g,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Ne(g),S;if(g instanceof Ie)S=g.body;else{if(await C.updated.check())return await ft(),await Q(n);S=await ee(g,{params:r,url:n,route:{id:a.id}})}const O=await an(_,v,s);return O?de({url:n,params:r,branch:v.slice(0,O.idx).concat(O.node),errors:s,status:E,error:S,route:a}):await yt(n,{id:a.id},S,E)}else v.push(void 0);return de({url:n,params:r,branch:v,errors:s,status:200,error:null,route:a,form:t?void 0:null})}async function an(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Me({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const s=await Ke({loader:Le,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Fe(i)}),o={node:await oe(),loader:oe,universal:null,server:null,data:null};return de({url:n,params:a,branch:[s,o],status:e,error:t,errors:[],route:null})}catch(s){if(s instanceof Oe)return Be(new URL(s.location,location.href),{},0);throw s}}async function on(e){const t=e.href;if(ne.has(t))return ne.get(t);let n;try{const r=(async()=>{let a=await w.hooks.reroute({url:new URL(e),fetch:async(i,s)=>vt(i,s,e).promise})??e;if(typeof a=="string"){const i=new URL(e);w.hash?i.hash=a:i.pathname=a,a=i}return a})();ne.set(t,r),n=await r}catch{ne.delete(t);return}return n}async function te(e,t){if(e&&!ge(e,x,w.hash)){const n=await on(e);if(!n)return;const r=sn(n);for(const a of De){const i=a.exec(r);if(i)return{id:he(e),invalidating:t,route:a,params:Ut(i),url:e}}}}function sn(e){return Lt(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function he(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function wt({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let s=!1;const o=ze(m,n,e,t,i??null);r!==void 0&&(o.navigation.delta=r),a!==void 0&&(o.navigation.event=a);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return Z||dt.forEach(c=>c(l)),s?null:o}async function K({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=xe,block:d=xe,event:p}){const u=I;I=l;const f=await te(t,!1),h=e==="enter"?ze(m,f,t,e):wt({url:t,type:e,delta:n?.delta,intent:f,scroll:n?.scroll,event:p});if(!h){d(),I===l&&(I=u);return}const v=y,_=R;c(),Z=!0,ce&&h.navigation.type!=="enter"&&C.navigating.set(Y.current=h.navigation);let g=f&&await Ge(f);if(!g){if(ge(t,x,w.hash))return await Q(t,i);g=await yt(t,{id:null},await ee(new $e(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=f?.url||t,I!==l)return h.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await K({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),h.fulfil(void 0);return}g=await Me({status:500,error:await ee(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await C.updated.check()&&(await ft(),await Q(t,i));if(Ae(),qe(v),gt(_),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const k=i?0:1,F={[B]:y+=k,[J]:R+=k,[ot]:s};(i?history.replaceState:history.pushState).call(history,F,"",t),i||Xt(y,R)}const E=f&&L?.id===f.id?L.fork:null;L=null,g.props.page.state=s;let S;if(ce){const k=(await Promise.all(Array.from(Qt,G=>G(h.navigation)))).filter(G=>typeof G=="function");if(k.length>0){let G=function(){k.forEach(ve=>{W.delete(ve)})};k.push(G),k.forEach(ve=>{W.add(ve)})}const F=h.navigation.to;m={...g.state,nav:{params:F.params,route:F.route,url:F.url}},g.props.page&&(g.props.page.url=t);const me=E&&await E;me?S=me.commit():(M=null,Ve.$set(g.props),M&&Object.assign(g.props.page,M),ut(g.props.page),S=Rt?.()),pt=!0}else await mt(g,Ue,!1);const{activeElement:O}=document;await S,await re(),await re();let $=null;if(et){const k=n?n.scroll:a?q():null;k?scrollTo(k.x,k.y):($=t.hash&&document.getElementById(kt(t)))?$.scrollIntoView():scrollTo(0,0)}const Et=document.activeElement!==O&&document.activeElement!==document.body;!r&&!Et&&dn(t,!$),et=!0,g.props.page&&(M&&Object.assign(g.props.page,M),Object.assign(b,g.props.page)),Z=!1,e==="popstate"&&_t(R),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=q()),W.forEach(k=>k(h.navigation)),C.navigating.set(Y.current=null)}async function yt(e,t,n,r,a){return e.origin===pe&&e.pathname===location.pathname&&!ht?await Me({status:r,error:n,url:e,route:t}):await Q(e,a)}function ln(){let e,t={element:void 0,href:void 0},n;T.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{i(l,N.hover)},20)});function r(o){o.defaultPrevented||i(o.composedPath()[0],N.tap)}T.addEventListener("mousedown",r),T.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(Se(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(o,l){const c=it(o,T),d=c===t.element&&c?.href===t.href&&l>=n;if(!c||d)return;const{url:p,external:u,download:f}=Re(c,x,w.hash);if(u||f)return;const h=ae(c),v=p&&he(m.url)===he(p);if(!(h.reload||v))if(l<=h.preload_data){t={element:c,href:c.href},n=N.tap;const _=await te(p,!1);if(!_)return;en(_)}else l<=h.preload_code&&(t={element:c,href:c.href},n=l,Se(p))}function s(){a.disconnect();for(const o of T.querySelectorAll("a")){const{url:l,external:c,download:d}=Re(o,x,w.hash);if(c||d)continue;const p=ae(o);p.reload||(p.preload_code===N.viewport&&a.observe(o),p.preload_code===N.eager&&Se(l))}}W.add(s),s()}function ee(e,t){if(e instanceof Ie)return e.body;const n=Ne(e),r=Ht(e);return w.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function bn(e,t={}){return e=new URL(je(e)),e.origin!==pe?Promise.reject(new Error("goto: invalid URL")):Be(e,t,0)}function kn(e){return bt(e),Zt()}function bt(e){if(typeof e=="function")se.push(e);else{const{href:t}=new URL(e,location.href);se.push(n=>n.href===t)}}function cn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(tt(),!Z){const r=ze(m,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};dt.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&tt()}),navigator.connection?.saveData||ln(),T.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=it(t.composedPath()[0],T);if(!n)return;const{url:r,external:a,target:i,download:s}=Re(n,x,w.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const o=ae(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;const[c,d]=(w.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===ye(location);if(a||o.reload&&(!p||!d)){wt({url:r,type:"link",event:t})?Z=!0:t.preventDefault();return}if(d!==void 0&&p){const[,u]=m.url.href.split("#");if(u===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const f=n.ownerDocument.getElementById(decodeURIComponent(d));f&&(f.scrollIntoView(),f.focus())}return}if(z=!0,qe(y),e(r),!o.replace_state)return;z=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await K({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href,event:t})}),T.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const s=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ge(s,x,!1))return;const o=t.target,l=ae(o);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(o,r);s.search=new URLSearchParams(c).toString(),K({type:"form",url:s,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??s.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Pe){if(t.state?.[B]){const n=t.state[B];if(I={},n===y)return;const r=j[n],a=t.state[ot]??{},i=new URL(t.state[Ft]??location.href),s=t.state[J],o=m.url?ye(location)===ye(m.url):!1;if(s===R&&(pt||o)){a!==b.state&&(b.state=a),e(i),j[y]=q(),r&&scrollTo(r.x,r.y),y=n;return}const c=n-y;await K({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{y=n,R=s},block:()=>{history.go(-c)},nav_token:I,event:t})}else if(!z){const n=new URL(location.href);e(n),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{z&&(z=!1,history.replaceState({...history.state,[B]:++y,[J]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Yt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&C.navigating.set(Y.current=null)});function e(t){m.url=b.url=t,C.page.set(He(b)),C.page.notify()}}async function un(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:s,data:o,form:l}){ht=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await te(c,!1)||{}),d=De.find(({id:f})=>f===i.id);let p,u=!0;try{const f=r.map(async(v,_)=>{const g=o[_];return g?.uses&&(g.uses=fn(g.uses)),Ke({loader:w.nodes[v],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<_;S+=1)Object.assign(E,(await f[S]).data);return E},server_data_node:Fe(g)})}),h=await Promise.all(f);if(d){const v=d.layouts;for(let _=0;_<v.length;_++)v[_]||h.splice(_,0,void 0)}p=await de({url:c,params:a,branch:h,status:t,error:n,errors:d?.errors,form:l,route:d??null})}catch(f){if(f instanceof Oe){await Q(new URL(f.location,location.href));return}p=await Me({status:Ne(f),error:await ee(f,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",u=!1}p.props.page&&(p.props.page.state={}),await mt(p,e,u)}function fn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Pe=!1;function dn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=kt(e);if(r&&document.getElementById(r)){const{x:i,y:s}=q();setTimeout(()=>{const o=history.state;Pe=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(o,"",e),t&&scrollTo(i,s),Pe=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let s=0;s<a.rangeCount;s+=1)i.push(a.getRangeAt(s));setTimeout(()=>{if(a.rangeCount===i.length){for(let s=0;s<a.rangeCount;s+=1){const o=i[s],l=a.getRangeAt(s);if(o.commonAncestorContainer!==l.commonAncestorContainer||o.startContainer!==l.startContainer||o.endContainer!==l.endContainer||o.startOffset!==l.startOffset||o.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function ze(e,t,n,r,a=null){let i,s;const o=new Promise((c,d)=>{i=c,s=d});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:o},fulfil:i,reject:s}}function He(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function hn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function kt(e){let t;if(w.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{yn as a,bn as g,kn as i,_n as l,b as p,C as s};
1
+ import{be as we,bo as St,I as U,w as A,D as P,aN as re,bp as Rt}from"./CME08kGM.js";import{o as We}from"./DhD271EB.js";const D=[];function Te(e,t=we){let n=null;const r=new Set;function a(o){if(St(e,o)&&(e=o,n)){const l=!D.length;for(const c of r)c[1](),D.push(c,e);if(l){for(let c=0;c<D.length;c+=2)D[c][0](D[c+1]);D.length=0}}}function i(o){a(o(e))}function s(o,l=we){const c=[o,l];return r.add(c),r.size===1&&(n=t(a,i)||we),o(e),()=>{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:a,update:i,subscribe:s}}class Ie{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Oe{constructor(t,n){this.status=t,this.location=n}}class je extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function xt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Lt(e){return e.split("%25").map(decodeURI).join("%25")}function Ut(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ye({href:e}){return e.split("#")[0]}function At(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(s,o){if(o==="get"||o==="getAll"||o==="has")return(c,...d)=>(n(c),s[o](c,...d));t();const l=Reflect.get(s,o);return typeof l=="function"?l.bind(s):l}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];r&&i.push("hash");for(const s of i)Object.defineProperty(a,s,{get(){return t(),e[s]},enumerable:!0,configurable:!0});return a}function Pt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function Tt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const It=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&H.delete($e(e)),It(e,t));const H=new Map;function Ot(e,t){const n=$e(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&H.set(n,{body:a,init:i,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=Tt(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function jt(e,t,n){if(H.size>0){const r=$e(e,n),a=H.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);H.delete(r)}}return window.fetch(t,n)}function $e(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${Pt(...a)}"]`}return r}const $t=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Ct(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${qt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return be(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return be(String.fromCharCode(...l.slice(2).split("-").map(v=>parseInt(v,16))));const d=$t.exec(l),[,p,u,f,h]=d;return t.push({name:f,matcher:h,optional:!!p,rest:!!u,chained:u?c===1&&s[0]==="":!1}),u?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return be(l)}).join("")}).join("")}/?$`),params:t}}function Nt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function qt(e){return e.slice(1).split("/").filter(Nt)}function Dt(e,t,n){const r={},a=e.slice(1),i=a.filter(o=>o!==void 0);let s=0;for(let o=0;o<t.length;o+=1){const l=t[o];let c=a[o-s];if(l.chained&&l.rest&&s&&(c=a.slice(o-s,o+1).filter(d=>d).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=t[o+1],p=a[o+1];d&&!d.rest&&d.optional&&p&&l.chained&&(s=0),!d&&!p&&Object.keys(r).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return r}function be(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Vt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:p,params:u}=Ct(o),f={id:o,exec:h=>{const v=p.exec(h);if(v)return Dt(v,u,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...c||[]].map(s),leaf:i(l)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function i(o){const l=o<0;return l&&(o=~o),[l,e[o]]}function s(o){return o===void 0?o:[a.has(o),e[o]]}}function nt(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Je(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_miui9j?.base??"",Bt=globalThis.__sveltekit_miui9j?.assets??x??"",Kt="1774990031225",rt="sveltekit:snapshot",at="sveltekit:scroll",ot="sveltekit:states",Ft="sveltekit:pageurl",B="sveltekit:history",J="sveltekit:navigation",N={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},pe=location.origin;function Ce(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Ye={...N,"":N.hover};function st(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function it(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=st(e)}}function Re(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||ge(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),s=r?.origin===pe&&e.hasAttribute("download");return{url:r,external:i,target:a,download:s}}function ae(e){let t=null,n=null,r=null,a=null,i=null,s=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=V(o,"preload-code")),a===null&&(a=V(o,"preload-data")),t===null&&(t=V(o,"keepfocus")),n===null&&(n=V(o,"noscroll")),i===null&&(i=V(o,"reload")),s===null&&(s=V(o,"replacestate")),o=st(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ye[r??"off"],preload_data:Ye[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(s)}}function Xe(e){const t=Te(e);let n=!0;function r(){n=!0,t.update(s=>s)}function a(s){n=!1,t.set(s)}function i(s){let o;return t.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:r,set:a,subscribe:i}}const lt={v:()=>{}};function Gt(){const{set:e,subscribe:t}=Te(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Bt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==Kt;return s&&(e(!0),lt.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:t,check:r}}function ge(e,t,n){return e.origin!==pe||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function mn(e){}const ct=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ct];const Mt=new Set([...ct]);[...Mt];function zt(e){return e.filter(t=>t!=null)}function Ne(e){return e instanceof Ie||e instanceof je?e.status:500}function Ht(e){return e instanceof je?e.text:"Internal Error"}let b,Y,ke;const Wt=We.toString().includes("$$")||/function \w+\(\) \{\}/.test(We.toString()),Qe="a:";Wt?(b={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Qe)},Y={current:null},ke={current:!1}):(b=new class{#e=U({});get data(){return A(this.#e)}set data(t){P(this.#e,t)}#t=U(null);get form(){return A(this.#t)}set form(t){P(this.#t,t)}#n=U(null);get error(){return A(this.#n)}set error(t){P(this.#n,t)}#r=U({});get params(){return A(this.#r)}set params(t){P(this.#r,t)}#a=U({id:null});get route(){return A(this.#a)}set route(t){P(this.#a,t)}#o=U({});get state(){return A(this.#o)}set state(t){P(this.#o,t)}#s=U(-1);get status(){return A(this.#s)}set status(t){P(this.#s,t)}#i=U(new URL(Qe));get url(){return A(this.#i)}set url(t){P(this.#i,t)}},Y=new class{#e=U(null);get current(){return A(this.#e)}set current(t){P(this.#e,t)}},ke=new class{#e=U(!1);get current(){return A(this.#e)}set current(t){P(this.#e,t)}},lt.v=()=>ke.current=!0);function ut(e){Object.assign(b,e)}const Ze={spanContext(){return Jt},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Jt={traceId:"",spanId:"",traceFlags:0},Yt=new Set(["icon","shortcut icon","apple-touch-icon"]);let M=null;const C=nt(at)??{},X=nt(rt)??{},$={url:Xe({}),page:Xe({}),navigating:Te(null),updated:Gt()};function qe(e){C[e]=q()}function Xt(e,t){let n=e+1;for(;C[n];)delete C[n],n+=1;for(n=t+1;X[n];)delete X[n],n+=1}function Q(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ft(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function xe(){}let De,Le,oe,T,Ue,w;const se=[],ie=[];let L=null;function le(){L?.fork?.then(e=>e?.discard()),L=null}const ne=new Map,dt=new Set,Qt=new Set,W=new Set;let _={branch:[],error:null,url:null,nav:null},ht=!1,ce=!1,et=!0,Z=!1,z=!1,pt=!1,me=!1,Ve,y,R,I;const ue=new Set;let Ee;const fe=new Map;async function yn(e,t,n){globalThis.__sveltekit_miui9j?.data&&globalThis.__sveltekit_miui9j.data,document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),De=Vt(e),T=document.documentElement,Ue=t,Le=e.nodes[0],oe=e.nodes[1],Le(),oe(),y=history.state?.[B],R=history.state?.[J],y||(y=R=Date.now(),history.replaceState({...history.state,[B]:y,[J]:R},""));const r=C[y];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await un(Ue,n)):(await K({type:"enter",url:Ce(w.hash?hn(new URL(location.href)):location.href),replace_state:!0}),a()),cn()}async function Zt(e=!0,t=!0){if(await(Ee||=Promise.resolve()),!Ee)return;Ee=null;const n=I={},r=await te(_.url,!0);if(le(),me&&fe.forEach(({resource:a})=>{a.refresh?.()}),e){const a=b.state,i=r&&await Ge(r);if(!i||n!==I)return;if(i.type==="redirect")return Be(new URL(i.location,_.url).href,{replaceState:!0},1,n);t||(i.props.page.state=a),ut(i.props.page),_={...i.state,nav:_.nav},Ae(),Ve.$set(i.props)}else Ae();await Promise.all([...fe.values()].map(({resource:a})=>a)).catch(xe)}function Ae(){se.length=0,me=!1}function gt(e){ie.some(t=>t?.snapshot)&&(X[e]=ie.map(t=>t?.snapshot?.capture()))}function mt(e){X[e]?.forEach((t,n)=>{ie[n]?.snapshot?.restore(t)})}function tt(){qe(y),Je(at,C),gt(R),Je(rt,X)}async function Be(e,t,n,r){let a;t.invalidateAll&&le(),await K({type:"goto",url:Ce(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(me=!0,a=[...fe.keys()]),t.invalidate&&t.invalidate.forEach(bt)}}),t.invalidateAll&&re().then(re).then(()=>{fe.forEach(({resource:i},s)=>{a?.includes(s)&&i.refresh?.()})})}async function en(e){if(e.id!==L?.id){le();const t={};ue.add(t),L={id:e.id,token:t,promise:Ge({...e,preload:t}).then(n=>(ue.delete(t),n.type==="loaded"&&n.state.error&&le(),n)),fork:null}}return L.promise}async function Se(e){const t=(await te(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function _t(e,t,n){const r={params:_.params,route:{id:_.route?.id??null},url:new URL(location.href)};_={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(b,e.props.page),Ve=new w.root({target:t,props:{...e.props,stores:$,components:ie},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),mt(R),n){const i={from:null,to:{...r,scroll:C[y]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};W.forEach(s=>s(i))}ce=!0}async function de({url:e,params:t,branch:n,errors:r,status:a,error:i,route:s,form:o}){let l="never";if(x&&(e.pathname===x||e.pathname===x+"/"))l="always";else for(const h of n)h?.slash!==void 0&&(l=h.slash);e.pathname=xt(e.pathname,l),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:i,route:s},props:{constructors:zt(n).map(h=>h.node.component),page:He(b)}};o!==void 0&&(c.props.form=o);let d={},p=!b,u=0;for(let h=0;h<Math.max(n.length,_.branch.length);h+=1){const v=n[h],m=_.branch[h];v?.data!==m?.data&&(p=!0),v&&(d={...d,...v.data},p&&(c.props[`data_${u}`]=d),u+=1)}return(!_.url||e.href!==_.url.href||_.error!==i||o!==void 0&&o!==b.form||p)&&(c.props.page={error:i,params:t,route:{id:s?.id??null},state:{},status:a,url:new URL(e),form:o??null,data:p?d:b.data}),c}async function Ke({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let s=null,o=!0;const l={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();if(c.universal?.load){let d=function(...u){for(const f of u){const{href:h}=new URL(f,n);l.dependencies.add(h)}};const p={tracing:{enabled:!1,root:Ze,current:Ze},route:new Proxy(a,{get:(u,f)=>(o&&(l.route=!0),u[f])}),params:new Proxy(r,{get:(u,f)=>(o&&l.params.add(f),u[f])}),data:i?.data??null,url:At(n,()=>{o&&(l.url=!0)},u=>{o&&l.search_params.add(u)},w.hash),async fetch(u,f){u instanceof Request&&(f={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u?.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...f});const{resolved:h,promise:v}=vt(u,f,n);return o&&d(h.href),v},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};s=await c.universal.load.call(null,p)??null}return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:s,uses:l}:null,data:s??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function vt(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=ce?jt(r,a.href,t):Ot(r,t);return{resolved:a,promise:i}}function tn(e,t,n,r,a,i){if(me)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(i[s]!==_.params[s])return!0;for(const s of a.dependencies)if(se.some(o=>o(new URL(s))))return!0;return!1}function Fe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function nn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(s=>i.includes(s))&&i.every(s=>a.includes(s))&&n.delete(r)}return n}function rn({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:He(b),constructors:[]}}}async function Ge({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return ue.delete(L.token),L.promise;const{errors:s,layouts:o,leaf:l}=a,c=[...o,l];s.forEach(m=>m?.().catch(()=>{})),c.forEach(m=>m?.[1]().catch(()=>{}));const d=_.url?e!==he(_.url):!1,p=_.route?a.id!==_.route.id:!1,u=nn(_.url,n);let f=!1;const h=c.map(async(m,g)=>{if(!m)return;const E=_.branch[g];return m[1]===E?.loader&&!tn(f,p,d,u,E.universal?.uses,r)?E:(f=!0,Ke({loader:m[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let j=0;j<g;j+=1)Object.assign(O,(await h[j])?.data);return O},server_data_node:Fe(m[0]?{type:"skip"}:null,m[0]?E?.server:void 0)}))});for(const m of h)m.catch(()=>{});const v=[];for(let m=0;m<c.length;m+=1)if(c[m])try{v.push(await h[m])}catch(g){if(g instanceof Oe)return{type:"redirect",location:g.location};if(ue.has(i))return rn({error:await ee(g,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Ne(g),S;if(g instanceof Ie)S=g.body;else{if(await $.updated.check())return await ft(),await Q(n);S=await ee(g,{params:r,url:n,route:{id:a.id}})}const O=await an(m,v,s);return O?de({url:n,params:r,branch:v.slice(0,O.idx).concat(O.node),errors:s,status:E,error:S,route:a}):await yt(n,{id:a.id},S,E)}else v.push(void 0);return de({url:n,params:r,branch:v,errors:s,status:200,error:null,route:a,form:t?void 0:null})}async function an(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Me({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const s=await Ke({loader:Le,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Fe(i)}),o={node:await oe(),loader:oe,universal:null,server:null,data:null};return de({url:n,params:a,branch:[s,o],status:e,error:t,errors:[],route:null})}catch(s){if(s instanceof Oe)return Be(new URL(s.location,location.href),{},0);throw s}}async function on(e){const t=e.href;if(ne.has(t))return ne.get(t);let n;try{const r=(async()=>{let a=await w.hooks.reroute({url:new URL(e),fetch:async(i,s)=>vt(i,s,e).promise})??e;if(typeof a=="string"){const i=new URL(e);w.hash?i.hash=a:i.pathname=a,a=i}return a})();ne.set(t,r),n=await r}catch{ne.delete(t);return}return n}async function te(e,t){if(e&&!ge(e,x,w.hash)){const n=await on(e);if(!n)return;const r=sn(n);for(const a of De){const i=a.exec(r);if(i)return{id:he(e),invalidating:t,route:a,params:Ut(i),url:e}}}}function sn(e){return Lt(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function he(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function wt({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let s=!1;const o=ze(_,n,e,t,i??null);r!==void 0&&(o.navigation.delta=r),a!==void 0&&(o.navigation.event=a);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return Z||dt.forEach(c=>c(l)),s?null:o}async function K({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=xe,block:d=xe,event:p}){const u=I;I=l;const f=await te(t,!1),h=e==="enter"?ze(_,f,t,e):wt({url:t,type:e,delta:n?.delta,intent:f,scroll:n?.scroll,event:p});if(!h){d(),I===l&&(I=u);return}const v=y,m=R;c(),Z=!0,ce&&h.navigation.type!=="enter"&&$.navigating.set(Y.current=h.navigation);let g=f&&await Ge(f);if(!g){if(ge(t,x,w.hash))return await Q(t,i);g=await yt(t,{id:null},await ee(new je(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=f?.url||t,I!==l)return h.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await K({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),h.fulfil(void 0);return}g=await Me({status:500,error:await ee(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await $.updated.check()&&(await ft(),await Q(t,i));if(Ae(),qe(v),gt(m),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const k=i?0:1,F={[B]:y+=k,[J]:R+=k,[ot]:s};(i?history.replaceState:history.pushState).call(history,F,"",t),i||Xt(y,R)}const E=f&&L?.id===f.id?L.fork:null;L=null,g.props.page.state=s;let S;if(ce){const k=(await Promise.all(Array.from(Qt,G=>G(h.navigation)))).filter(G=>typeof G=="function");if(k.length>0){let G=function(){k.forEach(ve=>{W.delete(ve)})};k.push(G),k.forEach(ve=>{W.add(ve)})}const F=h.navigation.to;_={...g.state,nav:{params:F.params,route:F.route,url:F.url}},g.props.page&&(g.props.page.url=t);const _e=E&&await E;_e?S=_e.commit():(M=null,Ve.$set(g.props),M&&Object.assign(g.props.page,M),ut(g.props.page),S=Rt?.()),pt=!0}else await _t(g,Ue,!1);const{activeElement:O}=document;await S,await re(),await re();let j=null;if(et){const k=n?n.scroll:a?q():null;k?scrollTo(k.x,k.y):(j=t.hash&&document.getElementById(kt(t)))?j.scrollIntoView():scrollTo(0,0)}const Et=document.activeElement!==O&&document.activeElement!==document.body;!r&&!Et&&dn(t,!j),et=!0,g.props.page&&(M&&Object.assign(g.props.page,M),Object.assign(b,g.props.page)),Z=!1,e==="popstate"&&mt(R),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=q()),W.forEach(k=>k(h.navigation)),$.navigating.set(Y.current=null)}async function yt(e,t,n,r,a){return e.origin===pe&&e.pathname===location.pathname&&!ht?await Me({status:r,error:n,url:e,route:t}):await Q(e,a)}function ln(){let e,t={element:void 0,href:void 0},n;T.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{i(l,N.hover)},20)});function r(o){o.defaultPrevented||i(o.composedPath()[0],N.tap)}T.addEventListener("mousedown",r),T.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(Se(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(o,l){const c=it(o,T),d=c===t.element&&c?.href===t.href&&l>=n;if(!c||d)return;const{url:p,external:u,download:f}=Re(c,x,w.hash);if(u||f)return;const h=ae(c),v=p&&he(_.url)===he(p);if(!(h.reload||v))if(l<=h.preload_data){t={element:c,href:c.href},n=N.tap;const m=await te(p,!1);if(!m)return;en(m)}else l<=h.preload_code&&(t={element:c,href:c.href},n=l,Se(p))}function s(){a.disconnect();for(const o of T.querySelectorAll("a")){const{url:l,external:c,download:d}=Re(o,x,w.hash);if(c||d)continue;const p=ae(o);p.reload||(p.preload_code===N.viewport&&a.observe(o),p.preload_code===N.eager&&Se(l))}}W.add(s),s()}function ee(e,t){if(e instanceof Ie)return e.body;const n=Ne(e),r=Ht(e);return w.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function bn(e,t={}){return e=new URL(Ce(e)),e.origin!==pe?Promise.reject(new Error("goto: invalid URL")):Be(e,t,0)}function kn(e){return bt(e),Zt()}function bt(e){if(typeof e=="function")se.push(e);else{const{href:t}=new URL(e,location.href);se.push(n=>n.href===t)}}function cn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(tt(),!Z){const r=ze(_,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};dt.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&tt()}),navigator.connection?.saveData||ln(),T.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=it(t.composedPath()[0],T);if(!n)return;const{url:r,external:a,target:i,download:s}=Re(n,x,w.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const o=ae(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;const[c,d]=(w.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===ye(location);if(a||o.reload&&(!p||!d)){wt({url:r,type:"link",event:t})?Z=!0:t.preventDefault();return}if(d!==void 0&&p){const[,u]=_.url.href.split("#");if(u===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const f=n.ownerDocument.getElementById(decodeURIComponent(d));f&&(f.scrollIntoView(),f.focus())}return}if(z=!0,qe(y),e(r),!o.replace_state)return;z=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await K({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href,event:t})}),T.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const s=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ge(s,x,!1))return;const o=t.target,l=ae(o);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(o,r);s.search=new URLSearchParams(c).toString(),K({type:"form",url:s,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??s.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Pe){if(t.state?.[B]){const n=t.state[B];if(I={},n===y)return;const r=C[n],a=t.state[ot]??{},i=new URL(t.state[Ft]??location.href),s=t.state[J],o=_.url?ye(location)===ye(_.url):!1;if(s===R&&(pt||o)){a!==b.state&&(b.state=a),e(i),C[y]=q(),r&&scrollTo(r.x,r.y),y=n;return}const c=n-y;await K({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{y=n,R=s},block:()=>{history.go(-c)},nav_token:I,event:t})}else if(!z){const n=new URL(location.href);e(n),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{z&&(z=!1,history.replaceState({...history.state,[B]:++y,[J]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Yt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(Y.current=null)});function e(t){_.url=b.url=t,$.page.set(He(b)),$.page.notify()}}async function un(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:s,data:o,form:l}){ht=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await te(c,!1)||{}),d=De.find(({id:f})=>f===i.id);let p,u=!0;try{const f=r.map(async(v,m)=>{const g=o[m];return g?.uses&&(g.uses=fn(g.uses)),Ke({loader:w.nodes[v],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<m;S+=1)Object.assign(E,(await f[S]).data);return E},server_data_node:Fe(g)})}),h=await Promise.all(f);if(d){const v=d.layouts;for(let m=0;m<v.length;m++)v[m]||h.splice(m,0,void 0)}p=await de({url:c,params:a,branch:h,status:t,error:n,errors:d?.errors,form:l,route:d??null})}catch(f){if(f instanceof Oe){await Q(new URL(f.location,location.href));return}p=await Me({status:Ne(f),error:await ee(f,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",u=!1}p.props.page&&(p.props.page.state={}),await _t(p,e,u)}function fn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Pe=!1;function dn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=kt(e);if(r&&document.getElementById(r)){const{x:i,y:s}=q();setTimeout(()=>{const o=history.state;Pe=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(o,"",e),t&&scrollTo(i,s),Pe=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let s=0;s<a.rangeCount;s+=1)i.push(a.getRangeAt(s));setTimeout(()=>{if(a.rangeCount===i.length){for(let s=0;s<a.rangeCount;s+=1){const o=i[s],l=a.getRangeAt(s);if(o.commonAncestorContainer!==l.commonAncestorContainer||o.startContainer!==l.startContainer||o.endContainer!==l.endContainer||o.startOffset!==l.startOffset||o.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function ze(e,t,n,r,a=null){let i,s;const o=new Promise((c,d)=>{i=c,s=d});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:o},fulfil:i,reject:s}}function He(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function hn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function kt(e){let t;if(w.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{yn as a,bn as g,kn as i,mn as l,b as p,$ as s};
@@ -1 +1 @@
1
- import{s as e,p as r}from"./uD5YsQE1.js";const t={get error(){return r.error},get status(){return r.status},get url(){return r.url}};e.updated.check;const a=t;export{a as p};
1
+ import{s as e,p as r}from"./9nfWZDAH.js";const t={get error(){return r.error},get status(){return r.status},get url(){return r.url}};e.updated.check;const a=t;export{a as p};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CFkkEWLe.js","../chunks/BmRlVmv6.js","../chunks/CME08kGM.js","../chunks/DhD271EB.js","../chunks/DMtIqaiV.js","../chunks/B6YN0Nuq.js","../chunks/CK9JZLaG.js","../chunks/Ck3rYNON.js","../chunks/DpuLqk8d.js","../chunks/Zeh-C-mx.js","../chunks/Ck-be5J2.js","../chunks/ByezTNKv.js","../chunks/uD5YsQE1.js","../chunks/Drm9vgeP.js","../chunks/DsIToJCP.js","../assets/0.C-4eziNy.css","../nodes/1.BVylC0w0.js","../nodes/2.BnwnD1Ki.js","../nodes/3.DEhhZBsS.js","../nodes/4.C_OhFIXf.js","../assets/4.Cc_xwLNl.css","../nodes/5.Bj0bsDBW.js"])))=>i.map(i=>d[i]);
2
- import{D as L,ag as U,w as f,aL as W,aB as Y,aM as z,p as F,u as H,n as J,aN as K,f as O,s as Q,a as X,I as k,c as Z,r as $,G as x,t as tt}from"../chunks/CME08kGM.js";import{h as et,m as rt,u as st,s as nt}from"../chunks/DMtIqaiV.js";import{a as y,c as A,f as V,t as at}from"../chunks/BmRlVmv6.js";import{o as ot}from"../chunks/DhD271EB.js";import{p as S,i as j,b as C}from"../chunks/B6YN0Nuq.js";import{c as D}from"../chunks/Zeh-C-mx.js";function ct(o){return class extends it{constructor(t){super({component:o,...t})}}}class it{#e;#t;constructor(t){var n=new Map,i=(r,e)=>{var s=z(e,!1,!1);return n.set(r,s),s};const u=new Proxy({...t.props||{},$$events:{}},{get(r,e){return f(n.get(e)??i(e,Reflect.get(r,e)))},has(r,e){return e===U?!0:(f(n.get(e)??i(e,Reflect.get(r,e))),Reflect.has(r,e))},set(r,e,s){return L(n.get(e)??i(e,s),s),Reflect.set(r,e,s)}});this.#t=(t.hydrate?et:rt)(t.component,{target:t.target,anchor:t.anchor,props:u,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&W(),this.#e=u.$$events;for(const r of Object.keys(this.#t))r==="$set"||r==="$destroy"||r==="$on"||Y(this,r,{get(){return this.#t[r]},set(e){this.#t[r]=e},enumerable:!0});this.#t.$set=r=>{Object.assign(u,r)},this.#t.$destroy=()=>{st(this.#t)}}$set(t){this.#t.$set(t)}$on(t,n){this.#e[t]=this.#e[t]||[];const i=(...u)=>n.call(this,...u);return this.#e[t].push(i),()=>{this.#e[t]=this.#e[t].filter(u=>u!==i)}}$destroy(){this.#t.$destroy()}}const ut="modulepreload",lt=function(o,t){return new URL(o,t).href},T={},b=function(t,n,i){let u=Promise.resolve();if(n&&n.length>0){let w=function(c){return Promise.all(c.map(m=>Promise.resolve(m).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const e=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),R=s?.nonce||s?.getAttribute("nonce");u=w(n.map(c=>{if(c=lt(c,i),c in T)return;T[c]=!0;const m=c.endsWith(".css"),d=m?'[rel="stylesheet"]':"";if(i)for(let h=e.length-1;h>=0;h--){const a=e[h];if(a.href===c&&(!m||a.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${d}`))return;const l=document.createElement("link");if(l.rel=m?"stylesheet":ut,m||(l.as="script"),l.crossOrigin="",l.href=c,R&&l.setAttribute("nonce",R),document.head.appendChild(l),m)return new Promise((h,a)=>{l.addEventListener("load",h),l.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(e){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=e,window.dispatchEvent(s),!s.defaultPrevented)throw e}return u.then(e=>{for(const s of e||[])s.status==="rejected"&&r(s.reason);return t().catch(r)})},pt={};var mt=V('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),ft=V("<!> <!>",1);function dt(o,t){F(t,!0);let n=S(t,"components",23,()=>[]),i=S(t,"data_0",3,null),u=S(t,"data_1",3,null);H(()=>t.stores.page.set(t.page)),J(()=>{t.stores,t.page,t.constructors,n(),t.form,i(),u(),t.stores.page.notify()});let r=k(!1),e=k(!1),s=k(null);ot(()=>{const a=t.stores.page.subscribe(()=>{f(r)&&(L(e,!0),K().then(()=>{L(s,document.title||"untitled page",!0)}))});return L(r,!0),a});const R=x(()=>t.constructors[1]);var w=ft(),c=O(w);{var m=a=>{const _=x(()=>t.constructors[0]);var v=A(),P=O(v);D(P,()=>f(_),(g,E)=>{C(E(g,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(p,_t)=>{var I=A(),N=O(I);D(N,()=>f(R),(q,B)=>{C(B(q,{get data(){return u()},get form(){return t.form},get params(){return t.page.params}}),G=>n()[1]=G,()=>n()?.[1])}),y(p,I)},$$slots:{default:!0}}),p=>n()[0]=p,()=>n()?.[0])}),y(a,v)},d=a=>{const _=x(()=>t.constructors[0]);var v=A(),P=O(v);D(P,()=>f(_),(g,E)=>{C(E(g,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),p=>n()[0]=p,()=>n()?.[0])}),y(a,v)};j(c,a=>{t.constructors[1]?a(m):a(d,-1)})}var l=Q(c,2);{var h=a=>{var _=mt(),v=Z(_);{var P=g=>{var E=at();tt(()=>nt(E,f(s))),y(g,E)};j(v,g=>{f(e)&&g(P)})}$(_),y(a,_)};j(l,a=>{f(r)&&a(h)})}y(o,w),X()}const Rt=ct(dt),wt=[()=>b(()=>import("../nodes/0.CFkkEWLe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url),()=>b(()=>import("../nodes/1.BVylC0w0.js"),__vite__mapDeps([16,1,2,7,4,8,11,12,3]),import.meta.url),()=>b(()=>import("../nodes/2.BnwnD1Ki.js"),__vite__mapDeps([17,1,2,7]),import.meta.url),()=>b(()=>import("../nodes/3.DEhhZBsS.js"),__vite__mapDeps([18,1,2,4,5,6,7,8,9,12,3,13,10]),import.meta.url),()=>b(()=>import("../nodes/4.C_OhFIXf.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,12,14,20]),import.meta.url),()=>b(()=>import("../nodes/5.Bj0bsDBW.js"),__vite__mapDeps([21,1,2,4,5,6,7,8,12,3,13]),import.meta.url)],Ot=[],Lt={"/":[2],"/agents":[3],"/chats/[id]":[4],"/chats/[id]/settings":[5]},M={handleError:(({error:o})=>{console.error(o)}),reroute:(()=>{}),transport:{}},ht=Object.fromEntries(Object.entries(M.transport).map(([o,t])=>[o,t.decode])),kt=Object.fromEntries(Object.entries(M.transport).map(([o,t])=>[o,t.encode])),xt=!1,At=(o,t)=>ht[o](t);export{At as decode,ht as decoders,Lt as dictionary,kt as encoders,xt as hash,M as hooks,pt as matchers,wt as nodes,Rt as root,Ot as server_loads};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BK2mQuoD.js","../chunks/BmRlVmv6.js","../chunks/CME08kGM.js","../chunks/DhD271EB.js","../chunks/DMtIqaiV.js","../chunks/B6YN0Nuq.js","../chunks/CK9JZLaG.js","../chunks/Ck3rYNON.js","../chunks/DpuLqk8d.js","../chunks/Zeh-C-mx.js","../chunks/Ck-be5J2.js","../chunks/zsjBVtme.js","../chunks/9nfWZDAH.js","../chunks/Drm9vgeP.js","../chunks/DsIToJCP.js","../assets/0.C-4eziNy.css","../nodes/1.DsQuFekn.js","../nodes/2.BnwnD1Ki.js","../nodes/3.BZVFNxO-.js","../nodes/4.L2HPGZB4.js","../assets/4.Cc_xwLNl.css","../nodes/5.B4lC9vS4.js"])))=>i.map(i=>d[i]);
2
+ import{D as L,ag as U,w as f,aL as W,aB as Y,aM as z,p as F,u as H,n as J,aN as K,f as O,s as Q,a as X,I as k,c as Z,r as $,G as x,t as tt}from"../chunks/CME08kGM.js";import{h as et,m as rt,u as st,s as nt}from"../chunks/DMtIqaiV.js";import{a as y,c as A,f as V,t as at}from"../chunks/BmRlVmv6.js";import{o as ot}from"../chunks/DhD271EB.js";import{p as S,i as j,b as C}from"../chunks/B6YN0Nuq.js";import{c as D}from"../chunks/Zeh-C-mx.js";function ct(o){return class extends it{constructor(t){super({component:o,...t})}}}class it{#e;#t;constructor(t){var n=new Map,i=(r,e)=>{var s=z(e,!1,!1);return n.set(r,s),s};const u=new Proxy({...t.props||{},$$events:{}},{get(r,e){return f(n.get(e)??i(e,Reflect.get(r,e)))},has(r,e){return e===U?!0:(f(n.get(e)??i(e,Reflect.get(r,e))),Reflect.has(r,e))},set(r,e,s){return L(n.get(e)??i(e,s),s),Reflect.set(r,e,s)}});this.#t=(t.hydrate?et:rt)(t.component,{target:t.target,anchor:t.anchor,props:u,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&W(),this.#e=u.$$events;for(const r of Object.keys(this.#t))r==="$set"||r==="$destroy"||r==="$on"||Y(this,r,{get(){return this.#t[r]},set(e){this.#t[r]=e},enumerable:!0});this.#t.$set=r=>{Object.assign(u,r)},this.#t.$destroy=()=>{st(this.#t)}}$set(t){this.#t.$set(t)}$on(t,n){this.#e[t]=this.#e[t]||[];const i=(...u)=>n.call(this,...u);return this.#e[t].push(i),()=>{this.#e[t]=this.#e[t].filter(u=>u!==i)}}$destroy(){this.#t.$destroy()}}const ut="modulepreload",lt=function(o,t){return new URL(o,t).href},T={},b=function(t,n,i){let u=Promise.resolve();if(n&&n.length>0){let w=function(c){return Promise.all(c.map(m=>Promise.resolve(m).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const e=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),R=s?.nonce||s?.getAttribute("nonce");u=w(n.map(c=>{if(c=lt(c,i),c in T)return;T[c]=!0;const m=c.endsWith(".css"),d=m?'[rel="stylesheet"]':"";if(i)for(let h=e.length-1;h>=0;h--){const a=e[h];if(a.href===c&&(!m||a.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${d}`))return;const l=document.createElement("link");if(l.rel=m?"stylesheet":ut,m||(l.as="script"),l.crossOrigin="",l.href=c,R&&l.setAttribute("nonce",R),document.head.appendChild(l),m)return new Promise((h,a)=>{l.addEventListener("load",h),l.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(e){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=e,window.dispatchEvent(s),!s.defaultPrevented)throw e}return u.then(e=>{for(const s of e||[])s.status==="rejected"&&r(s.reason);return t().catch(r)})},pt={};var mt=V('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),ft=V("<!> <!>",1);function dt(o,t){F(t,!0);let n=S(t,"components",23,()=>[]),i=S(t,"data_0",3,null),u=S(t,"data_1",3,null);H(()=>t.stores.page.set(t.page)),J(()=>{t.stores,t.page,t.constructors,n(),t.form,i(),u(),t.stores.page.notify()});let r=k(!1),e=k(!1),s=k(null);ot(()=>{const a=t.stores.page.subscribe(()=>{f(r)&&(L(e,!0),K().then(()=>{L(s,document.title||"untitled page",!0)}))});return L(r,!0),a});const R=x(()=>t.constructors[1]);var w=ft(),c=O(w);{var m=a=>{const _=x(()=>t.constructors[0]);var v=A(),P=O(v);D(P,()=>f(_),(g,E)=>{C(E(g,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(p,_t)=>{var I=A(),N=O(I);D(N,()=>f(R),(q,B)=>{C(B(q,{get data(){return u()},get form(){return t.form},get params(){return t.page.params}}),G=>n()[1]=G,()=>n()?.[1])}),y(p,I)},$$slots:{default:!0}}),p=>n()[0]=p,()=>n()?.[0])}),y(a,v)},d=a=>{const _=x(()=>t.constructors[0]);var v=A(),P=O(v);D(P,()=>f(_),(g,E)=>{C(E(g,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),p=>n()[0]=p,()=>n()?.[0])}),y(a,v)};j(c,a=>{t.constructors[1]?a(m):a(d,-1)})}var l=Q(c,2);{var h=a=>{var _=mt(),v=Z(_);{var P=g=>{var E=at();tt(()=>nt(E,f(s))),y(g,E)};j(v,g=>{f(e)&&g(P)})}$(_),y(a,_)};j(l,a=>{f(r)&&a(h)})}y(o,w),X()}const Rt=ct(dt),wt=[()=>b(()=>import("../nodes/0.BK2mQuoD.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url),()=>b(()=>import("../nodes/1.DsQuFekn.js"),__vite__mapDeps([16,1,2,7,4,8,11,12,3]),import.meta.url),()=>b(()=>import("../nodes/2.BnwnD1Ki.js"),__vite__mapDeps([17,1,2,7]),import.meta.url),()=>b(()=>import("../nodes/3.BZVFNxO-.js"),__vite__mapDeps([18,1,2,4,5,6,7,8,9,12,3,13,10]),import.meta.url),()=>b(()=>import("../nodes/4.L2HPGZB4.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,12,14,20]),import.meta.url),()=>b(()=>import("../nodes/5.B4lC9vS4.js"),__vite__mapDeps([21,1,2,4,5,6,7,8,12,3,13]),import.meta.url)],Ot=[],Lt={"/":[2],"/agents":[3],"/chats/[id]":[4],"/chats/[id]/settings":[5]},M={handleError:(({error:o})=>{console.error(o)}),reroute:(()=>{}),transport:{}},ht=Object.fromEntries(Object.entries(M.transport).map(([o,t])=>[o,t.decode])),kt=Object.fromEntries(Object.entries(M.transport).map(([o,t])=>[o,t.encode])),xt=!1,At=(o,t)=>ht[o](t);export{At as decode,ht as decoders,Lt as dictionary,kt as encoders,xt as hash,M as hooks,pt as matchers,wt as nodes,Rt as root,Ot as server_loads};
@@ -0,0 +1 @@
1
+ import{l as o,a as r}from"../chunks/9nfWZDAH.js";export{o as load_css,r as start};