@geminilight/mindos 0.6.61 → 0.6.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_standalone/.antigravity/mcp_config.json +14 -0
- package/_standalone/.mindos-build-version +1 -1
- package/_standalone/.next/BUILD_ID +1 -1
- package/_standalone/.next/app-path-routes-manifest.json +23 -23
- package/_standalone/.next/build-manifest.json +2 -2
- package/_standalone/.next/cache/.previewinfo +1 -1
- package/_standalone/.next/cache/.rscinfo +1 -1
- package/_standalone/.next/cache/config.json +3 -3
- package/_standalone/.next/prerender-manifest.json +3 -3
- package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/_global-error.html +2 -2
- package/_standalone/.next/server/app/_global-error.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/_standalone/.next/server/app/_not-found/page.js +1 -1
- package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/agents/page.js +1 -1
- package/_standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route.js +1 -1
- package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask/route.js +53 -47
- package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route.js +1 -1
- package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route.js +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route.js +1 -1
- package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/route.js +1 -1
- package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route.js +1 -1
- package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/setup/route.js +1 -1
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/skills/route.js +1 -1
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/changes/page.js +1 -1
- package/_standalone/.next/server/app/changes/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page.js +2 -2
- package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/echo/page.js +1 -1
- package/_standalone/.next/server/app/echo/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/explore/page.js +1 -1
- package/_standalone/.next/server/app/explore/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/help/page.js +1 -1
- package/_standalone/.next/server/app/help/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js +1 -1
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/login/page.js +1 -1
- package/_standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/page.js +1 -1
- package/_standalone/.next/server/app/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/setup/page.js +2 -2
- package/_standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/trash/page.js +3 -3
- package/_standalone/.next/server/app/trash/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/view/[...path]/page.js +2 -2
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js +1 -1
- package/_standalone/.next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/.next/server/app-paths-manifest.json +23 -23
- package/_standalone/.next/server/chunks/122.js +222 -0
- package/_standalone/.next/server/chunks/1550.js +1 -1
- package/_standalone/.next/server/chunks/1750.js +1 -1
- package/_standalone/.next/server/chunks/3113.js +52 -0
- package/_standalone/.next/server/chunks/6539.js +1 -1
- package/_standalone/.next/server/chunks/8388.js +3 -3
- package/_standalone/.next/server/chunks/953.js +3 -3
- package/_standalone/.next/server/pages/500.html +2 -2
- package/_standalone/.next/server/server-reference-manifest.js +1 -1
- package/_standalone/.next/server/server-reference-manifest.json +1 -1
- package/_standalone/.next/static/chunks/1001-99da82ec8d8c136f.js +1 -0
- package/_standalone/.next/static/chunks/1088-77544af0a50cb7a4.js +1 -0
- package/_standalone/.next/static/chunks/1467-87dde7eed498806f.js +1 -0
- package/_standalone/.next/static/chunks/5149-4d828886dda479fa.js +1 -0
- package/_standalone/.next/static/chunks/5581-c671163a2fe1b312.js +29 -0
- package/_standalone/.next/static/chunks/{7266-bb7be1128eccd48e.js → 5718-3837c3210a0e175f.js} +2 -2
- package/_standalone/.next/static/chunks/6636-53238eff89503f03.js +6 -0
- package/_standalone/.next/static/chunks/6757-1c1a89720fdda8f0.js +1 -0
- package/_standalone/.next/static/chunks/7129-20e9d2463a9da646.js +1 -0
- package/_standalone/.next/static/chunks/7294-cac25d97869afadc.js +1 -0
- package/_standalone/.next/static/chunks/8225-21e5cebc3731ddf0.js +1 -0
- package/_standalone/.next/static/chunks/8520-b51810e66293ceb8.js +22 -0
- package/_standalone/.next/static/chunks/9207-dc9c31b351a2ed78.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-2f5cf97e03dc1cc9.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/page-50eac58d511dcc6e.js +1 -0
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-2a00f4686adf3885.js +11 -0
- package/_standalone/.next/static/chunks/app/layout-2cb7a6602d2e5d5f.js +168 -0
- package/_standalone/.next/static/chunks/app/{page-6a1f8d21c12b829e.js → page-5ab911b2226f6ff7.js} +1 -1
- package/_standalone/.next/static/chunks/app/setup/page-907b7c57fad2292b.js +1 -0
- package/_standalone/.next/static/chunks/app/trash/page-11a511b065ea84c2.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/page-26e47dd4c533a58c.js +12 -0
- package/_standalone/.next/static/chunks/app/wiki/page-dce495b9048022fb.js +1 -0
- package/_standalone/.next/static/css/67e7918f5ed7d147.css +1 -0
- package/_standalone/.next/trace +65 -65
- package/_standalone/__tests__/acp/registry.test.ts +30 -20
- package/_standalone/__tests__/api/ask-attachments.test.ts +194 -0
- package/_standalone/__tests__/api/mcp-install.test.ts +49 -2
- package/_standalone/__tests__/api/settings.test.ts +16 -12
- package/_standalone/__tests__/api/setup.test.ts +11 -9
- package/_standalone/__tests__/api/test-key.test.ts +0 -10
- package/_standalone/__tests__/components/UpdateToast.test.ts +344 -0
- package/_standalone/__tests__/core/context.test.ts +48 -426
- package/_standalone/__tests__/lib/pi-skills.test.ts +4 -4
- package/_standalone/__tests__/lib/settings-ai-client.test.ts +32 -12
- package/_standalone/__tests__/setup.ts +5 -5
- package/_standalone/app/globals.css +4 -4
- package/_standalone/components/ActivityBar.tsx +17 -6
- package/_standalone/components/Panel.tsx +24 -6
- package/_standalone/components/SidebarLayout.tsx +36 -8
- package/_standalone/components/agents/AgentsMcpSection.tsx +2 -2
- package/_standalone/components/agents/AgentsOverviewSection.tsx +5 -1
- package/_standalone/components/agents/AgentsPanelA2aTab.tsx +173 -113
- package/_standalone/components/agents/AgentsSkillsSection.tsx +2 -2
- package/_standalone/components/ask/AskContent.tsx +83 -44
- package/_standalone/components/ask/AskHeader.tsx +8 -1
- package/_standalone/components/ask/MessageList.tsx +37 -3
- package/_standalone/components/ask/ProviderModelCapsule.tsx +444 -174
- package/_standalone/components/home/InboxSection.tsx +25 -25
- package/_standalone/components/settings/AiTab.tsx +353 -298
- package/_standalone/components/settings/CustomProviderFields.tsx +121 -0
- package/_standalone/components/settings/CustomProvidersCard.tsx +154 -0
- package/_standalone/components/settings/KnowledgeTab.tsx +6 -20
- package/_standalone/components/settings/McpAgentInstall.tsx +7 -2
- package/_standalone/components/settings/Primitives.tsx +48 -104
- package/_standalone/components/settings/ProviderModal.tsx +87 -0
- package/_standalone/components/settings/SettingsContent.tsx +2 -5
- package/_standalone/components/settings/TestButton.tsx +64 -0
- package/_standalone/components/settings/types.ts +3 -9
- package/_standalone/components/settings/useCustomProviderForm.ts +132 -0
- package/_standalone/components/setup/StepAI.tsx +12 -5
- package/_standalone/components/shared/ModelInput.tsx +220 -0
- package/_standalone/components/shared/ProviderSelect.tsx +126 -36
- package/_standalone/hooks/useAskChat.ts +100 -13
- package/_standalone/hooks/useAskPanel.ts +17 -1
- package/_standalone/lib/settings-ai-client.ts +17 -8
- package/_standalone/tsconfig.tsbuildinfo +1 -1
- package/app/.antigravity/mcp_config.json +14 -0
- package/app/app/api/ask/route.ts +154 -45
- package/app/app/api/mcp/agents/route.ts +3 -3
- package/app/app/api/settings/list-models/route.ts +36 -9
- package/app/app/api/settings/route.ts +14 -42
- package/app/app/api/settings/test-key/route.ts +78 -2
- package/app/app/api/setup/route.ts +36 -18
- package/app/app/api/skills/route.ts +1 -1
- package/app/app/globals.css +4 -4
- package/app/app/layout.tsx +5 -3
- package/app/app/view/[...path]/page.tsx +5 -0
- package/app/components/ActivityBar.tsx +17 -6
- package/app/components/HomeContent.tsx +11 -0
- package/app/components/InboxView.tsx +656 -0
- package/app/components/Panel.tsx +24 -6
- package/app/components/SidebarLayout.tsx +36 -8
- package/app/components/UpdateToast.tsx +255 -0
- package/app/components/agents/AgentDetailContent.tsx +8 -8
- package/app/components/agents/AgentsMcpSection.tsx +2 -2
- package/app/components/agents/AgentsOverviewSection.tsx +5 -1
- package/app/components/agents/AgentsPanelA2aTab.tsx +173 -113
- package/app/components/agents/AgentsSkillsSection.tsx +2 -2
- package/app/components/ask/AskContent.tsx +83 -44
- package/app/components/ask/AskHeader.tsx +8 -1
- package/app/components/ask/MessageList.tsx +37 -3
- package/app/components/ask/ProviderModelCapsule.tsx +444 -174
- package/app/components/home/InboxSection.tsx +25 -25
- package/app/components/settings/AiTab.tsx +353 -298
- package/app/components/settings/CustomProviderFields.tsx +121 -0
- package/app/components/settings/CustomProvidersCard.tsx +154 -0
- package/app/components/settings/KnowledgeTab.tsx +6 -20
- package/app/components/settings/McpAgentInstall.tsx +7 -2
- package/app/components/settings/Primitives.tsx +48 -104
- package/app/components/settings/ProviderModal.tsx +87 -0
- package/app/components/settings/SettingsContent.tsx +2 -5
- package/app/components/settings/TestButton.tsx +64 -0
- package/app/components/settings/types.ts +3 -9
- package/app/components/settings/useCustomProviderForm.ts +132 -0
- package/app/components/setup/StepAI.tsx +12 -5
- package/app/components/shared/ModelInput.tsx +220 -0
- package/app/components/shared/ProviderSelect.tsx +126 -36
- package/app/hooks/useAskChat.ts +100 -13
- package/app/hooks/useAskPanel.ts +17 -1
- package/app/lib/acp/registry.ts +92 -10
- package/app/lib/agent/context.ts +65 -0
- package/app/lib/agent/providers.ts +25 -0
- package/app/lib/agent/tools.ts +1 -1
- package/app/lib/custom-endpoints.ts +160 -0
- package/app/lib/fs.ts +8 -1
- package/app/lib/i18n/modules/ai-chat.ts +6 -0
- package/app/lib/i18n/modules/knowledge.ts +16 -0
- package/app/lib/i18n/modules/onboarding.ts +4 -0
- package/app/lib/i18n/modules/settings.ts +88 -2
- package/app/lib/mcp-agents.ts +11 -0
- package/app/lib/pi-integration/skills.ts +16 -4
- package/app/lib/settings-ai-client.ts +17 -8
- package/app/lib/settings.ts +68 -72
- package/app/lib/types.ts +4 -0
- package/bin/lib/mcp-agents.js +11 -0
- package/bin/lib/mcp-install.js +71 -7
- package/package.json +1 -1
- package/_standalone/.next/server/chunks/530.js +0 -218
- package/_standalone/.next/server/chunks/8955.js +0 -52
- package/_standalone/.next/static/chunks/1369-7d0ac5d1564eed1e.js +0 -1
- package/_standalone/.next/static/chunks/3427-2e61a5df1f5e55fb.js +0 -1
- package/_standalone/.next/static/chunks/5581-0c700c20718bd916.js +0 -29
- package/_standalone/.next/static/chunks/6297-085daa21037d5f81.js +0 -1
- package/_standalone/.next/static/chunks/6636-9bbc90fb3b8731fe.js +0 -6
- package/_standalone/.next/static/chunks/7637-904b0a381dc3ec02.js +0 -1
- package/_standalone/.next/static/chunks/8520-76d1b05072178b43.js +0 -22
- package/_standalone/.next/static/chunks/8658-16ff58b75ae37fbb.js +0 -1
- package/_standalone/.next/static/chunks/9905-a19d379cb225246e.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-0ea3571c8fbae823.js +0 -1
- package/_standalone/.next/static/chunks/app/agents/page-66858acbcd1d4bf8.js +0 -1
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-bf5c290fa3ccff09.js +0 -11
- package/_standalone/.next/static/chunks/app/layout-a5d5925b47e87cc3.js +0 -164
- package/_standalone/.next/static/chunks/app/setup/page-821714e7477be46c.js +0 -1
- package/_standalone/.next/static/chunks/app/trash/page-40bc7316806acd62.js +0 -1
- package/_standalone/.next/static/chunks/app/view/[...path]/page-6fbb14b8f322d0f0.js +0 -12
- package/_standalone/.next/static/chunks/app/wiki/page-ba36eccf4fe62cfe.js +0 -1
- package/_standalone/.next/static/css/b57c4eb3cc88308b.css +0 -1
- package/_standalone/lib/agent/context.ts +0 -403
- /package/_standalone/.next/static/{5GmVArEG8OX03azKICsGq → eIlwbGas1iRGonlPyEwj7}/_buildManifest.js +0 -0
- /package/_standalone/.next/static/{5GmVArEG8OX03azKICsGq → eIlwbGas1iRGonlPyEwj7}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[620],{439:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]])},1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>n});var s=r(12115);let a=e=>{let t,r=new Set,s=(e,s)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=s?s:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:s,getState:a,getInitialState:()=>n,subscribe:e=>(r.add(e),()=>r.delete(e))},n=t=e(s,a,o);return o},o=e=>{let t=e?a(e):a,r=e=>(function(e,t=e=>e){let r=s.useSyncExternalStore(e.subscribe,s.useCallback(()=>t(e.getState()),[e,t]),s.useCallback(()=>t(e.getInitialState()),[e,t]));return s.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},n=e=>e?o(e):o},4235:(e,t,r)=>{"use strict";r.d(t,{B1:()=>l,X8:()=>d,dV:()=>i,oR:()=>u});let s=[],a=[],o=0;function n(){for(let e of a)e()}function l(e){return a=[...a,e],()=>{a=a.filter(t=>t!==e)}}function i(){return s}function d(e){s=s.filter(t=>t.id!==e),n()}function c(e){let t=`toast-${++o}`,r={id:t,message:e.message,type:e.type??"info",duration:e.duration??2e3,action:e.action};s=[...s,r].slice(-3),n(),r.duration>0&&setTimeout(()=>d(t),r.duration)}function u(e,t){c({message:e,...t})}u.success=(e,t)=>c({message:e,type:"success",duration:t}),u.undo=(e,t,r)=>c({message:e,type:"info",duration:r?.duration??5e3,action:{label:r?.label??"Undo",onClick:t}}),u.error=(e,t)=>c({message:e,type:"error",duration:t}),u.copy=(e="Copied")=>c({message:e,type:"success",duration:1500})},6296:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},7834:(e,t,r)=>{"use strict";async function s(e){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let r=document.execCommand("copy");return document.body.removeChild(t),r}catch{return!1}}r.d(t,{l:()=>s})},10762:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]])},13545:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},15721:(e,t,r)=>{Promise.resolve().then(r.bind(r,22952))},20171:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>p,Bt:()=>c,D0:()=>l,L7:()=>x,jn:()=>m,l6:()=>d,lM:()=>u,pM:()=>h,pd:()=>i});var s=r(95155),a=r(12115),o=r(66088),n=r(94514);function l({label:e,hint:t,children:r}){return(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-sm text-foreground font-medium",children:e}),r,t&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:t})]})}function i({className:e="",...t}){return(0,s.jsx)("input",{...t,className:`w-full px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-50 ${e}`})}function d({value:e,onChange:t,children:r,className:l="",disabled:i}){let d=(0,a.useId)(),[c,u]=(0,a.useState)(!1),[p,m]=(0,a.useState)(-1),x=(0,a.useRef)(null),h=(0,a.useRef)(null),g=(0,a.useMemo)(()=>a.Children.toArray(r).filter(e=>a.isValidElement(e)&&"option"===e.type).map(e=>({value:String(e.props.value??""),label:String(e.props.children??e.props.value??"")})),[r]),f=g.findIndex(t=>t.value===e),b=g[f]?.label??"";(0,a.useEffect)(()=>{if(!c)return;let e=e=>{x.current&&!x.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c]),(0,a.useEffect)(()=>{if(c&&h.current&&p>=0){let e=h.current.children[p];e?.scrollIntoView({block:"nearest"})}},[c,p]);let v=(0,a.useCallback)(e=>{e>=0&&e<g.length&&(t?.({target:{value:g[e].value}}),u(!1))},[g,t]),y=(0,a.useCallback)(e=>{if(!c){["Enter"," ","ArrowDown","ArrowUp"].includes(e.key)&&(e.preventDefault(),u(!0),m(f>=0?f:0));return}switch(e.key){case"ArrowDown":e.preventDefault(),m(e=>Math.min(e+1,g.length-1));break;case"ArrowUp":e.preventDefault(),m(e=>Math.max(e-1,0));break;case"Enter":case" ":e.preventDefault(),v(p);break;case"Escape":e.preventDefault(),u(!1);break;case"Tab":u(!1)}},[c,g.length,f,p,v]);return(0,s.jsxs)("div",{ref:x,className:`relative ${l}`,children:[(0,s.jsxs)("button",{type:"button",disabled:i,onClick:()=>{u(e=>!e),m(f>=0?f:0)},onKeyDown:y,"aria-haspopup":"listbox","aria-expanded":c,className:"w-full px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground text-left flex items-center justify-between gap-2 outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,s.jsx)("span",{className:`truncate ${b?"":"text-muted-foreground"}`,children:b||"—"}),(0,s.jsx)(o.A,{size:14,className:`shrink-0 text-muted-foreground transition-transform duration-150 ${c?"rotate-180":""}`})]}),c&&(0,s.jsx)("div",{ref:h,role:"listbox","aria-activedescendant":p>=0?`${d}-opt-${p}`:void 0,className:"absolute z-20 w-full mt-1 py-1 border border-border rounded-lg bg-card shadow-lg max-h-60 overflow-auto animate-in fade-in-0 zoom-in-95 duration-100",children:g.map((t,r)=>{let a=t.value===e,o=r===p;return(0,s.jsxs)("button",{id:`${d}-opt-${r}`,role:"option","aria-selected":a,type:"button",onMouseDown:e=>{e.preventDefault(),v(r)},onMouseEnter:()=>m(r),className:`w-full px-3 py-1.5 text-sm text-left flex items-center gap-2 transition-colors ${o?"bg-accent text-accent-foreground":"text-foreground"}`,children:[(0,s.jsx)(n.A,{size:14,className:`shrink-0 ${a?"text-[var(--amber)]":"invisible"}`}),(0,s.jsx)("span",{className:"truncate",children:t.label})]},t.value)})})]})}function c({overridden:e}){return e?(0,s.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded bg-[var(--amber-subtle)] text-[var(--amber-text)] font-mono ml-1.5",children:"env"}):null}function u({checked:e,onChange:t,size:r="md",disabled:a,title:o,onClick:n}){let l="sm"===r;return(0,s.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:a,title:o,onClick:n??(()=>t?.(!e)),className:`relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60 ${l?"h-4 w-7":"h-5 w-9"} ${e?"bg-[var(--amber)]":"bg-muted"}`,children:(0,s.jsx)("span",{className:`pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform ${l?"h-3 w-3":"h-4 w-4"} ${e?l?"translate-x-3":"translate-x-4":"translate-x-0"}`})})}function p({value:e,onChange:t,placeholder:r,disabled:o,labels:n}){let l="***set***"===e,[i,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(""),p=(0,a.useRef)(null),m=(0,a.useRef)(e);(0,a.useEffect)(()=>{m.current!==e&&(m.current=e,d(!1),u(""))},[e]);let x=(0,a.useCallback)(()=>{c.trim()&&t(c),d(!1),u("")},[c,t]),h=(0,a.useCallback)(()=>{d(!1),u("")},[]),g=n?.change??"Change",f=n?.cancel??"Cancel";return l&&!i?(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"flex-1 px-3 py-2 text-sm bg-muted/50 border border-border rounded-lg text-muted-foreground select-none tracking-widest",children:"••••••••••••"}),(0,s.jsx)("button",{type:"button",onClick:()=>{u(""),d(!0),requestAnimationFrame(()=>p.current?.focus())},disabled:o,className:"shrink-0 px-3 py-2 text-xs font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors disabled:opacity-50",children:g})]}):i?(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("input",{ref:p,type:"password",value:c,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"===e.key&&x()},onBlur:x,placeholder:r??"sk-...",disabled:o,className:"flex-1 px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-50"}),(0,s.jsx)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:h,className:"shrink-0 px-3 py-2 text-xs font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:f})]}):(0,s.jsx)("input",{type:"password",value:e,onChange:e=>t(e.target.value),placeholder:r??"sk-...",disabled:o,className:"w-full px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:opacity-50"})}function m({children:e,disabled:t,onClick:r,type:a="button",className:o="",...n}){return(0,s.jsx)("button",{type:a,onClick:r,disabled:t,className:`px-4 py-2 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${o}`,...n,children:e})}function x({icon:e,title:t,description:r,badge:a,children:o,className:n=""}){return(0,s.jsxs)("div",{className:`rounded-xl border border-border/50 bg-card/50 p-5 ${n}`,children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 mb-4",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-lg bg-muted/50 flex items-center justify-center shrink-0 mt-0.5",children:(0,s.jsx)("span",{className:"text-muted-foreground",children:e})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:t}),a]}),r&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:r})]})]}),(0,s.jsx)("div",{className:"space-y-4 pl-11",children:o})]})}function h({label:e,hint:t,children:r}){return(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("div",{className:"text-sm text-foreground",children:e}),t&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:t})]}),(0,s.jsx)("div",{className:"shrink-0",children:r})]})}},21362:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},22164:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},22952:(e,t,r)=>{"use strict";r.d(t,{default:()=>q});var s=r(95155),a=r(12115),o=r(86901),n=r(41641),l=r(21362),i=r(6296),d=r(35581),c=r(7834),u=r(4235),p=r(47376),m=r(92451),x=r(97810),h=r(48368);let g=[{id:"en",icon:(0,s.jsx)(m.A,{size:18}),dirs:["Profile/","Connections/","Notes/","Workflows/","Resources/","Projects/"]},{id:"zh",icon:(0,s.jsx)(x.A,{size:18}),dirs:["画像/","关系/","笔记/","流程/","资源/","项目/"]},{id:"empty",icon:(0,s.jsx)(h.A,{size:18}),dirs:["README.md","CONFIG.json","INSTRUCTION.md"]}];var f=r(13545),b=r(20171);function v({state:e,update:t,t:r,homeDir:o}){let n=r.setup,[l,i]=(0,a.useState)(!1),d=o.includes("\\")?"\\":"/",c="~"!==o?[o,"MindOS","mind"].join(d):n.kbPathDefault,[u,p]=(0,a.useState)(null),[m,x]=(0,a.useState)([]),[h,v]=(0,a.useState)(!1),[y,k]=(0,a.useState)(-1),[j,N]=(0,a.useState)(!1),w=(0,a.useRef)(null),A=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(A.current){A.current=!1;return}if(!e.mindRoot.trim())return void x([]);let t=setTimeout(()=>{let t=function(e){if(!e.trim())return"";let t=e.trim();if(t.endsWith("/")||t.endsWith("\\"))return t;let r=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return r>=0?t.slice(0,r+1):""}(e.mindRoot)||o;fetch("/api/setup/ls",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})}).then(e=>e.json()).then(r=>{if(!r.dirs?.length)return void x([]);let s=t.endsWith("/")||t.endsWith("\\"),a=t.includes("\\")?"\\":"/",o=s?t:t+a,n=e.mindRoot.trim(),l=r.dirs.map(e=>o+e),i=n.endsWith("/")||n.endsWith("\\")?l:l.filter(e=>e.startsWith(n));x(i.slice(0,20)),v(i.length>0),k(-1)}).catch(e=>{console.warn("[SetupWizard] autocomplete fetch failed:",e),x([])})},300);return()=>clearTimeout(t)},[e.mindRoot,o]),(0,a.useEffect)(()=>{if(!e.mindRoot.trim())return void p(null);let r=setTimeout(()=>{fetch("/api/setup/check-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.mindRoot})}).then(e=>e.json()).then(e=>{p(e),N(!1),e?.exists&&!e.empty&&t("template","")}).catch(e=>{console.warn("[SetupWizard] check-path failed:",e),p(null)})},600);return()=>clearTimeout(r)},[e.mindRoot,t]);let S=()=>{x([]),v(!1),k(-1)},C=e=>{A.current=!0,t("mindRoot",e),S(),w.current?.focus()};return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)(b.D0,{label:n.kbPath,hint:n.kbPathHint,children:[(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("input",{ref:w,value:e.mindRoot,onChange:e=>{t("mindRoot",e.target.value),v(!0)},onKeyDown:e=>{h&&0!==m.length&&("ArrowDown"===e.key?(e.preventDefault(),k(e=>Math.min(e+1,m.length-1))):"ArrowUp"===e.key?(e.preventDefault(),k(e=>Math.max(e-1,-1))):"Enter"===e.key&&y>=0?(e.preventDefault(),C(m[y])):"Escape"===e.key&&v(!1))},onBlur:()=>setTimeout(()=>S(),150),onFocus:()=>m.length>0&&v(!0),placeholder:c,className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus-visible:ring-1 focus-visible:ring-ring",style:{background:"var(--input, var(--card))",borderColor:"var(--border)",color:"var(--foreground)"}}),h&&m.length>0&&(0,s.jsx)("div",{role:"listbox",className:"absolute z-50 left-0 right-0 top-full mt-1 rounded-lg border overflow-auto",style:{background:"var(--card)",borderColor:"var(--border)",boxShadow:"0 4px 16px rgba(0,0,0,0.12)",maxHeight:"220px"},children:m.map((e,t)=>(0,s.jsx)("button",{type:"button",role:"option","aria-selected":t===y,onMouseDown:()=>C(e),className:"w-full text-left px-3 py-2 text-sm font-mono transition-colors",style:{background:t===y?"var(--muted)":"transparent",color:"var(--foreground)",borderTop:t>0?"1px solid var(--border)":void 0},children:e},e))})]}),e.mindRoot!==c&&c!==n.kbPathDefault&&(0,s.jsx)("button",{type:"button",onClick:()=>t("mindRoot",c),className:"mt-1.5 px-2.5 py-1 text-xs rounded-md border transition-colors hover:bg-muted/50",style:{borderColor:"var(--amber)",color:"var(--amber)"},children:n.kbPathUseDefault(c)})]}),u&&u.exists&&!u.empty&&!j?(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-sm text-foreground font-medium mb-3 block",children:n.template}),(0,s.jsxs)("div",{className:"rounded-lg border p-3 text-sm",style:{borderColor:"var(--amber)",background:"color-mix(in srgb, var(--amber) 6%, transparent)"},children:[(0,s.jsx)("p",{style:{color:"var(--amber)"},children:n.kbPathHasFiles(u.count)}),(0,s.jsxs)("div",{className:"flex gap-2 mt-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>t("template",""),className:"px-2.5 py-1 text-xs rounded-md border transition-colors",style:{borderColor:"var(--amber)",color:""===e.template?"var(--background)":"var(--amber)",background:""===e.template?"var(--amber)":"transparent"},children:""===e.template?(0,s.jsxs)(s.Fragment,{children:[n.kbTemplateSkip," ✓"]}):n.kbTemplateSkip}),(0,s.jsx)("button",{type:"button",onClick:()=>N(!0),className:"px-2.5 py-1 text-xs rounded-md border transition-colors hover:bg-muted/50",style:{borderColor:"var(--border)",color:"var(--muted-foreground)"},children:n.kbTemplateMerge})]})]})]}):(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-sm text-foreground font-medium mb-3 block",children:n.template}),(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3",children:g.map(a=>(0,s.jsxs)("button",{onClick:()=>t("template",a.id),className:"flex flex-col items-start gap-2 p-4 rounded-xl border text-left transition-all duration-150",style:{background:e.template===a.id?"var(--amber-dim)":"var(--card)",borderColor:e.template===a.id?"var(--amber)":"var(--border)"},children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{style:{color:"var(--amber)"},children:a.icon}),(0,s.jsx)("span",{className:"text-sm font-medium",style:{color:"var(--foreground)"},children:r.onboarding.templates[a.id].title})]}),(0,s.jsx)("div",{className:"w-full rounded-lg px-2.5 py-1.5 text-xs leading-relaxed font-display",style:{background:"var(--muted)",color:"var(--muted-foreground)"},children:a.dirs.map(e=>(0,s.jsx)("div",{children:e},e))})]},a.id))})]}),(0,s.jsx)("div",{className:"pt-2 mt-2",style:{borderTop:"1px solid var(--border)"},children:(0,s.jsxs)(b.D0,{label:(0,s.jsxs)(s.Fragment,{children:[n.webPassword," ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),hint:n.webPasswordHint,children:[(0,s.jsx)("input",{type:"password",value:e.webPassword,onChange:e=>{t("webPassword",e.target.value),i(!0)},onBlur:()=>i(!0),placeholder:"••••••••",className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus-visible:ring-1 focus-visible:ring-ring",style:{background:"var(--input, var(--card))",borderColor:l&&!e.webPassword.trim()?"var(--error)":"var(--border)",color:"var(--foreground)"}}),l&&!e.webPassword.trim()&&(0,s.jsxs)("p",{className:"text-xs flex items-center gap-1 mt-1",style:{color:"var(--error)"},children:[(0,s.jsx)(f.A,{size:11})," ",n.webPasswordRequired]})]})})]})}var y=r(22164),k=r(66088),j=r(67635),N=r(51842),w=r(41585),A=r(12651),S=r(68822);function C({label:e,hint:t,value:r,onChange:o,status:n,onCheckPort:l,s:d}){let c=(0,a.useRef)(void 0);return(0,a.useEffect)(()=>()=>clearTimeout(c.current),[]),(0,s.jsx)(b.D0,{label:e,hint:t,children:(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)(b.pd,{type:"number",min:1024,max:65535,value:r,onChange:e=>{let t=parseInt(e.target.value,10)||r;o(t),clearTimeout(c.current),t>=1024&&t<=65535&&(c.current=setTimeout(()=>l(t),500))},onBlur:()=>{clearTimeout(c.current),l(r)}}),n.checking&&(0,s.jsxs)("p",{className:"text-xs flex items-center gap-1",role:"status",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(i.A,{size:11,className:"animate-spin"})," ",d.portChecking]}),!n.checking&&!1===n.available&&(0,s.jsxs)("div",{className:"flex items-center gap-2",role:"alert",children:[(0,s.jsxs)("p",{className:"text-xs flex items-center gap-1",style:{color:"var(--amber)"},children:[(0,s.jsx)(w.A,{size:11})," ",d.portInUse(r)]}),null!==n.suggestion&&(0,s.jsx)("button",{type:"button",onClick:()=>{o(n.suggestion),setTimeout(()=>l(n.suggestion),0)},className:"text-xs px-2 py-0.5 rounded border transition-colors",style:{borderColor:"var(--amber)",color:"var(--amber)"},children:d.portSuggest(n.suggestion)})]}),!n.checking&&!0===n.available&&(0,s.jsxs)("p",{className:"text-xs flex items-center gap-1",style:{color:"var(--success)"},children:[(0,s.jsx)(A.A,{size:11})," ",n.isSelf?d.portSelf:d.portAvailable]})]})})}function T({state:e,update:t,webPortStatus:r,mcpPortStatus:a,setWebPortStatus:o,setMcpPortStatus:n,checkPort:l,portConflict:i,s:d}){return(0,s.jsxs)("div",{className:"space-y-5",children:[(0,s.jsx)(C,{label:d.webPort,hint:d.portHint,value:e.webPort,onChange:e=>{t("webPort",e),o({checking:!1,available:null,isSelf:!1,suggestion:null})},status:r,onCheckPort:e=>l(e,"web"),s:d}),(0,s.jsx)(C,{label:d.mcpPort,hint:d.portHint,value:e.mcpPort,onChange:e=>{t("mcpPort",e),n({checking:!1,available:null,isSelf:!1,suggestion:null})},status:a,onCheckPort:e=>l(e,"mcp"),s:d}),i&&(0,s.jsxs)("p",{className:"text-xs flex items-center gap-1.5",role:"alert",style:{color:"var(--amber)"},children:[(0,s.jsx)(w.A,{size:12})," ",d.portConflict]}),!i&&(null===r.available||null===a.available)&&!r.checking&&!a.checking&&(0,s.jsx)("p",{className:"text-xs",style:{color:"var(--muted-foreground)"},children:d.portVerifyHint}),(0,s.jsxs)("p",{className:"text-xs flex items-center gap-1.5",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(S.A,{size:12})," ",d.portRestartWarning]})]})}function M({state:e,update:t,s:r,onCopyToken:o,webPortStatus:n,mcpPortStatus:i,setWebPortStatus:c,setMcpPortStatus:u,checkPort:m,portConflict:x}){let{locale:h}=(0,d.Y)(),[g,f]=(0,a.useState)(!1);(0,a.useEffect)(()=>{!g&&x&&f(!0)},[x,g]);let v="skip"!==e.provider&&(0,p.rl)(e.provider)?e.provider:null,w=v?p.T_[v]:null,A=v?e.providerConfigs[v]??{apiKey:"",model:w?.defaultModel??""}:null,S=r=>{if(!v)return;let s=e.providerConfigs[v]??{apiKey:"",model:w?.defaultModel??""};t("providerConfigs",{...e.providerConfigs,[v]:{...s,...r}})},C=new Set(Object.entries(e.providerConfigs).filter(([e,t])=>t&&(t.apiKey||t.apiKeyMask)||p.T_[e]?.apiKeyFallback).map(([e])=>e));return(0,s.jsxs)("div",{className:"space-y-5",children:[(0,s.jsx)(N.A,{value:e.provider,onChange:e=>t("provider",e),showSkip:!0,compact:!0,configuredProviders:C}),v&&w&&A&&(0,s.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,s.jsxs)(b.D0,{label:r.apiKey,children:[(0,s.jsx)(b.Ak,{value:A.apiKey,onChange:e=>S({apiKey:e}),placeholder:A.apiKeyMask||`${(0,p.Ux)(v)??"API Key"}...`}),A.apiKeyMask&&!A.apiKey&&(0,s.jsx)("p",{className:"text-xs mt-1",style:{color:"var(--muted-foreground)"},children:r.apiKeyExisting??"Existing key configured. Leave blank to keep it."}),w.signupUrl&&!A.apiKey&&!A.apiKeyMask&&(0,s.jsxs)("a",{href:w.signupUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs mt-1.5 hover:underline",style:{color:"var(--amber)"},children:[(0,s.jsx)(y.A,{size:10}),w.apiKeyFallback?"zh"===h?`下载 ${w.nameZh}`:`Download ${w.name}`:"zh"===h?`获取 ${w.nameZh} API Key`:`Get ${w.name} API Key`]})]}),w.supportsBaseUrl&&(0,s.jsx)(b.D0,{label:r.baseUrl,hint:r.baseUrlHint,children:(0,s.jsx)(b.pd,{value:A.baseUrl??"",onChange:e=>S({baseUrl:e.target.value}),placeholder:w.fixedBaseUrl||(0,p.Ot)(v)||"https://api.openai.com/v1"})}),(0,s.jsx)(b.D0,{label:r.model,children:(0,s.jsx)(b.pd,{value:A.model,onChange:e=>S({model:e.target.value}),placeholder:w.defaultModel})})]}),(0,s.jsxs)("div",{className:"pt-3 mt-1",style:{borderTop:"1px solid var(--border)"},children:[(0,s.jsxs)("button",{type:"button",onClick:()=>f(!g),className:"flex items-center gap-1.5 text-xs font-medium",style:{color:"var(--muted-foreground)"},children:[g?(0,s.jsx)(k.A,{size:12}):(0,s.jsx)(l.A,{size:12}),r.advancedPorts]}),g&&(0,s.jsxs)("div",{className:"mt-3 space-y-5",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)("p",{className:"text-xs font-medium",style:{color:"var(--foreground)"},children:["\uD83D\uDD11 ",r.tokenSectionTitle]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("code",{className:"flex-1 truncate text-xs font-mono px-3 py-2 rounded-lg",style:{background:"var(--muted)",color:"var(--foreground)"},children:e.authToken}),(0,s.jsxs)("button",{type:"button",onClick:o,className:"flex items-center gap-1 px-2.5 py-2 text-xs rounded-lg border transition-colors hover:bg-muted shrink-0",style:{borderColor:"var(--border)",color:"var(--foreground)"},children:[(0,s.jsx)(j.A,{size:12})," ",r.copyToken]})]}),(0,s.jsx)("p",{className:"text-xs",style:{color:"var(--muted-foreground)"},children:r.tokenSectionHint})]}),(0,s.jsx)(T,{state:e,update:t,webPortStatus:n,mcpPortStatus:i,setWebPortStatus:c,setMcpPortStatus:u,checkPort:m,portConflict:x,s:r})]})]})]})}var P=r(62791),z=r(10762),E=r(68806),I=r(90718);let O={"claude-code":"https://docs.anthropic.com/en/docs/claude-code/overview",cursor:"https://www.cursor.com/",windsurf:"https://codeium.com/windsurf",cline:"https://github.com/cline/cline",trae:"https://www.trae.ai/","gemini-cli":"https://github.com/google-gemini/gemini-cli",augment:"https://www.augmentcode.com/"};function U({agents:e,agentsLoading:t,selectedAgents:r,setSelectedAgents:o,connectionMode:n,setConnectionMode:l,agentTransport:d,setAgentTransport:c,agentScope:u,setAgentScope:p,agentStatuses:m,s:x,settingsMcp:h}){let[g,f]=(0,a.useState)(!1),[v,y]=(0,a.useState)(!1),{detected:j,other:N}=(0,a.useMemo)(()=>({detected:e.filter(e=>e.installed||e.present),other:e.filter(e=>!e.installed&&!e.present)}),[e]),w=(e,t)=>(0,s.jsxs)("label",{className:"flex items-center gap-3 px-4 py-3 cursor-pointer hover:bg-muted/50 transition-colors",style:{background:t%2==0?"var(--card)":"transparent",borderTop:t>0?"1px solid var(--border)":void 0},children:[(0,s.jsx)("input",{type:"checkbox",checked:r.has(e.key),onChange:()=>{var t;return t=e.key,void o(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},className:"form-check",disabled:m[e.key]?.state==="installing"}),(0,s.jsx)("span",{className:"text-sm flex-1",style:{color:"var(--foreground)"},children:e.name}),n.mcp&&(0,s.jsx)("span",{className:"text-2xs px-1.5 py-0.5 rounded font-mono",style:{background:"color-mix(in srgb, var(--muted-foreground) 8%, transparent)",color:"var(--muted-foreground)"},children:"auto"===d?e.preferredTransport:d}),((e,t)=>{let r=m[e];if(r){if("installing"===r.state)return(0,s.jsxs)("span",{className:"flex items-center gap-1 text-xs",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(i.A,{size:10,className:"animate-spin"})," ",x.agentInstalling]});if("ok"===r.state)return(0,s.jsxs)("span",{className:"flex items-center gap-1 text-xs px-1.5 py-0.5 rounded",style:{background:"color-mix(in srgb, var(--success) 12%, transparent)",color:"var(--success)"},children:[(0,s.jsx)(A.A,{size:10})," ",x.agentStatusOk]});if("error"===r.state)return(0,s.jsxs)("span",{className:"flex items-center gap-1 text-xs px-1.5 py-0.5 rounded",style:{background:"color-mix(in srgb, var(--error) 10%, transparent)",color:"var(--error)"},children:[(0,s.jsx)(P.A,{size:10})," ",x.agentStatusError,r.message&&(0,s.jsxs)("span",{className:"ml-1 text-2xs",children:["(",r.message,")"]})]})}if(t.installed)return(0,s.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded",style:{background:"color-mix(in srgb, var(--success) 12%, transparent)",color:"var(--success)"},children:h.installed});if(t.present)return(0,s.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded",style:{background:"var(--amber-dim)",color:"var(--amber)"},children:x.agentDetected});let a=O[e];return(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded",style:{background:"color-mix(in srgb, var(--muted-foreground) 10%, transparent)",color:"var(--muted-foreground)"},children:x.agentNotFound}),a&&(0,s.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"text-2xs hover:underline",style:{color:"var(--amber)"},children:x.agentGetIt})]})})(e.key,e)]},e.key);return(0,s.jsxs)("div",{className:"space-y-5",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("p",{className:"text-xs font-medium",style:{color:"var(--muted-foreground)"},children:x.connectionModeTitle}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("label",{className:"flex items-start gap-3 px-4 py-3 rounded-xl border cursor-pointer transition-all",style:{borderColor:n.cli?"var(--amber)":"var(--border)",background:n.cli?"color-mix(in srgb, var(--amber) 6%, transparent)":"transparent"},children:[(0,s.jsx)("input",{type:"checkbox",checked:n.cli,onChange:()=>l(e=>({...e,cli:!e.cli})),className:"form-check mt-0.5"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-sm font-medium",style:{color:"var(--foreground)"},children:[(0,s.jsx)(z.A,{size:13,className:"shrink-0"})," CLI"]}),(0,s.jsx)("p",{className:"text-2xs mt-0.5",style:{color:"var(--muted-foreground)"},children:x.connectionModeCliHint})]})]}),(0,s.jsxs)("label",{className:"flex items-start gap-3 px-4 py-3 rounded-xl border cursor-pointer transition-all",style:{borderColor:n.mcp?"var(--amber)":"var(--border)",background:n.mcp?"color-mix(in srgb, var(--amber) 6%, transparent)":"transparent"},children:[(0,s.jsx)("input",{type:"checkbox",checked:n.mcp,onChange:()=>l(e=>({...e,mcp:!e.mcp})),className:"form-check mt-0.5"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-sm font-medium",style:{color:"var(--foreground)"},children:[(0,s.jsx)(E.A,{size:13,className:"shrink-0"})," MCP"]}),(0,s.jsx)("p",{className:"text-2xs mt-0.5",style:{color:"var(--muted-foreground)"},children:x.connectionModeMcpHint})]})]})]})]}),n.cli||n.mcp?(0,s.jsx)("p",{className:"text-sm",style:{color:"var(--muted-foreground)"},children:!n.mcp&&n.cli?x.agentToolsHintCliOnly:x.agentToolsHint}):(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2.5 rounded-lg text-xs",style:{background:"color-mix(in srgb, var(--amber) 8%, transparent)",color:"var(--amber)"},children:[(0,s.jsx)(I.A,{size:13,className:"shrink-0"}),(0,s.jsx)("span",{children:x.agentToolsHintNone})]}),t?(0,s.jsxs)("div",{className:"flex items-center gap-2 py-4",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(i.A,{size:14,className:"animate-spin"}),(0,s.jsx)("span",{className:"text-sm",children:x.agentToolsLoading})]}):0===e.length?(0,s.jsx)("p",{className:"text-sm py-4 text-center",style:{color:"var(--muted-foreground)"},children:x.agentToolsEmpty}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 text-2xs",style:{color:"var(--muted-foreground)"},children:[(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full",style:{background:"var(--success)"}}),x.badgeInstalled]}),(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full",style:{background:"var(--amber)"}}),x.badgeDetected]}),(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full",style:{background:"var(--muted-foreground)"}}),x.badgeNotFound]})]}),j.length>0?(0,s.jsx)("div",{className:"rounded-xl border overflow-hidden",style:{borderColor:"var(--border)"},children:j.map((e,t)=>w(e,t))}):(0,s.jsx)("p",{className:"text-xs py-2",style:{color:"var(--muted-foreground)"},children:x.agentNoneDetected}),N.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("button",{type:"button",onClick:()=>f(!g),"aria-expanded":g,className:"flex items-center gap-1.5 text-xs py-1.5 transition-colors",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(k.A,{size:12,className:`transition-transform ${g?"rotate-180":""}`}),x.agentShowMore(N.length)]}),g&&(0,s.jsx)("div",{className:"rounded-xl border overflow-hidden mt-1",style:{borderColor:"var(--border)"},children:N.map((e,t)=>w(e,t))})]}),n.mcp&&0===r.size&&(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2.5 rounded-lg text-xs",style:{background:"color-mix(in srgb, var(--amber) 8%, transparent)",color:"var(--amber)"},children:[(0,s.jsx)(I.A,{size:13,className:"shrink-0"}),(0,s.jsx)("span",{children:x.agentNoneSelected})]}),n.mcp&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("button",{type:"button",onClick:()=>y(!v),"aria-expanded":v,className:"flex items-center gap-1.5 text-xs py-1.5 transition-colors",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(k.A,{size:12,className:`transition-transform ${v?"rotate-180":""}`}),x.agentAdvanced]}),v&&(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-4 mt-2",children:[(0,s.jsx)(b.D0,{label:x.agentTransport,children:(0,s.jsxs)(b.l6,{value:d,onChange:e=>c(e.target.value),children:[(0,s.jsx)("option",{value:"auto",children:x.agentTransportAuto}),(0,s.jsx)("option",{value:"stdio",children:h.transportStdio}),(0,s.jsx)("option",{value:"http",children:h.transportHttp})]})}),(0,s.jsx)(b.D0,{label:x.agentScope,children:(0,s.jsxs)(b.l6,{value:u,onChange:e=>p(e.target.value),children:[(0,s.jsx)("option",{value:"global",children:x.agentScopeGlobal}),(0,s.jsx)("option",{value:"project",children:x.agentScopeProject})]})})]})]}),(0,s.jsxs)("div",{className:"flex gap-2 mt-1",children:[(0,s.jsx)("button",{type:"button",onClick:()=>o(new Set(e.filter(e=>e.installed||e.present).map(e=>e.key))),className:"text-xs px-2.5 py-1 rounded-md border transition-colors hover:bg-muted/50",style:{borderColor:"var(--amber)",color:"var(--amber)"},children:x.agentSelectDetected}),(0,s.jsx)("button",{type:"button",onClick:()=>o(new Set),className:"text-xs px-2.5 py-1 rounded-md border transition-colors hover:bg-muted/50",style:{borderColor:"var(--border)",color:"var(--muted-foreground)"},children:x.agentSkipLater})]})]})]})}var R=r(42129),K=r(439),$=r(94514);function _({s:e}){return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"p-3 rounded-lg text-sm flex items-center gap-2",style:{background:"color-mix(in srgb, var(--amber) 10%, transparent)",color:"var(--amber)"},children:[(0,s.jsx)(w.A,{size:14})," ",e.restartRequired]}),(0,s.jsxs)("p",{className:"text-xs",style:{color:"var(--muted-foreground)"},children:[e.restartManual," ",(0,s.jsx)("code",{className:"font-mono",children:"mindos start"})]})]})}function D({s:e,newPort:t,webPassword:r}){let[o,n]=(0,a.useState)(!1),[l,d]=(0,a.useState)(!1),c=(0,a.useRef)(void 0),u=(0,a.useRef)(void 0);(0,a.useEffect)(()=>()=>{clearTimeout(u.current),clearInterval(c.current)},[]);let p=async()=>{n(!0);try{let e=await fetch("/api/restart",{method:"POST"});if(!e.ok)throw Error(`restart failed (${e.status})`);d(!0);let s=window.location.hostname||"localhost",a=s.includes(":")?`[${s}]`:s,o=`http://${a}:${t}`,n=()=>{window.location.href=`${o}/?welcome=1`},l=0;clearInterval(c.current),u.current=setTimeout(()=>{c.current=setInterval(async()=>{l++;try{if((await fetch(`${o}/api/health`)).status<500){if(clearInterval(c.current),r)try{await fetch(`${o}/api/auth`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:r}),credentials:"include"})}catch{}n();return}}catch{}l>=30&&(clearInterval(c.current),n())},800)},2e3)}catch(e){console.warn("[SetupWizard] restart request failed:",e),n(!1)}};return l?(0,s.jsxs)("span",{className:"flex items-center gap-1.5 px-5 py-2 text-sm font-medium rounded-lg",style:{background:"color-mix(in srgb, var(--success) 15%, transparent)",color:"var(--success)"},children:[(0,s.jsx)(A.A,{size:14})," ",e.restartDone]}):(0,s.jsxs)("button",{type:"button",onClick:p,disabled:o,className:"flex items-center gap-1.5 px-5 py-2 text-sm font-medium rounded-lg transition-colors disabled:opacity-50",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[o?(0,s.jsx)(i.A,{size:13,className:"animate-spin"}):null,o?e.restarting:e.restartNow]})}function L({state:e,selectedAgents:t,agentStatuses:r,onRetryAgent:a,error:o,needsRestart:n,s:l,setupPhase:d,cliEnabled:c,mcpEnabled:u,skillInstallStatus:p="pending"}){let m=Object.entries(r).filter(([,e])=>"error"===e.state),x=c&&u?"CLI + MCP":c?"CLI":u?"MCP":"—",h=[[l.kbPath,e.mindRoot],[l.webPort,`${e.webPort} / ${e.mcpPort}`],[l.agentToolsTitle,u&&t.size>0?`${x} \xb7 ${l.agentCountSummary(t.size)}`:x]],g=u&&t.size>0,f=t.size>0,b=[{key:"saving",label:l.phaseSaving},...g?[{key:"agents",label:l.phaseAgents}]:[],...f?[{key:"skills",label:l.phaseSkill??"Installing skills"}]:[],{key:"done",label:l.phaseDone}],v=b.map(e=>e.key),y=v.indexOf(d);return(0,s.jsxs)("div",{className:"space-y-5",children:["done"!==d&&(0,s.jsx)("div",{className:"rounded-xl border overflow-hidden",style:{borderColor:"var(--border)"},children:h.map(([e,t],r)=>(0,s.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 text-sm",style:{background:r%2==0?"var(--card)":"transparent",borderTop:r>0?"1px solid var(--border)":void 0},children:[(0,s.jsx)("span",{style:{color:"var(--muted-foreground)"},children:e}),(0,s.jsx)("span",{className:"font-mono text-xs truncate ml-4",style:{color:"var(--foreground)"},children:t})]},r))}),"review"===d&&(0,s.jsx)("p",{className:"text-sm",style:{color:"var(--muted-foreground)"},children:l.reviewHint}),"review"!==d&&"done"!==d&&(0,s.jsx)("div",{className:"space-y-2 py-2",children:b.map(({key:e,label:t},r)=>{let a=v.indexOf(e),o=y>a,n=d===e;return(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("div",{className:"w-5 h-5 rounded-full flex items-center justify-center shrink-0 text-2xs",style:{background:o?"color-mix(in srgb, var(--success) 15%, transparent)":n?"color-mix(in srgb, var(--amber) 15%, transparent)":"var(--muted)",color:o?"var(--success)":n?"var(--amber)":"var(--muted-foreground)"},children:o?(0,s.jsx)(A.A,{size:12}):n?(0,s.jsx)(i.A,{size:12,className:"animate-spin"}):r+1}),(0,s.jsx)("span",{className:"text-sm",style:{color:o?"var(--success)":n?"var(--foreground)":"var(--muted-foreground)",fontWeight:n?500:400,opacity:y<a?.5:1},children:t})]},e)})}),m.length>0&&"done"===d&&(0,s.jsxs)("div",{className:"p-3 rounded-lg space-y-2",style:{background:"color-mix(in srgb, var(--error) 8%, transparent)"},children:[(0,s.jsx)("p",{className:"text-xs font-medium",style:{color:"var(--error)"},children:l.agentFailedCount(m.length)}),m.map(([e,t])=>(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("span",{className:"text-xs flex items-center gap-1",style:{color:"var(--error)"},children:[(0,s.jsx)(P.A,{size:11})," ",e,t.message?` — ${t.message}`:""]}),(0,s.jsx)("button",{type:"button",onClick:()=>a(e),className:"text-xs px-2 py-0.5 rounded border transition-colors",style:{borderColor:"var(--error)",color:"var(--error)"},children:l.retryAgent})]},e)),(0,s.jsx)("p",{className:"text-xs",style:{color:"var(--muted-foreground)"},children:l.agentFailureNote})]}),o&&(0,s.jsxs)("div",{className:"p-3 rounded-lg text-sm text-error",style:{background:"color-mix(in srgb, var(--error) 10%, transparent)"},children:[l.completeFailed,": ",o]}),"done"===d&&(0,s.jsx)(B,{state:e,selectedAgents:t,agentStatuses:r,needsRestart:n,skillInstallStatus:p,s:l})]})}function B({state:e,selectedAgents:t,agentStatuses:r,needsRestart:n,s:l,skillInstallStatus:i="pending"}){let[m,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!m)return;let e=setTimeout(()=>x(!1),2e3);return()=>clearTimeout(e)},[m]);let h=(0,a.useCallback)(async()=>{!e.authToken||await (0,c.l)(e.authToken)&&(x(!0),u.oR.copy())},[e.authToken]),{locale:g}=(0,d.Y)(),f=!!e.mindRoot,b="skip"!==e.provider,v=Object.values(r).filter(e=>"ok"===e.state).length,y=v>0,k=!!e.authToken,N="",S="";if(b&&(0,p.rl)(e.provider)){let t=p.T_[e.provider];N="zh"===g?t.nameZh:t.name;let r=e.providerConfigs[e.provider];S=r?.model||t.defaultModel}let C=[{ok:f,icon:(0,s.jsx)(R.A,{size:14}),title:l.healthKb??"Knowledge Base",detail:f?e.mindRoot:l.healthKbNone??"Not configured"},{ok:b,icon:(0,s.jsx)(I.A,{size:14}),title:l.healthAi??"AI Provider",detail:b?`${N} (${S||"default"})`:l.healthAiNone??"Not configured — AI features disabled",action:b?void 0:l.healthAiAction??"Add an API key in Settings → AI."},{ok:y,icon:(0,s.jsx)(E.A,{size:14}),title:l.healthAgents??"Agent Connection",detail:y?l.healthAgentsOk?.(v)??`${v} agent(s) configured`:t.size>0?l.healthAgentsPartial??"Configuration in progress...":l.healthAgentsNone??"No agents configured",action:y?void 0:l.healthAgentsAction??"You can add agents later in Settings → Connections."},...t.size>0?[{ok:"ok"===i,icon:(0,s.jsx)(o.A,{size:14}),title:l.healthSkills??"Skills",detail:"ok"===i?l.healthSkillsOk??"Skills installed successfully":"error"===i?l.healthSkillsError??"Skill installation failed":"skipped"===i?l.healthSkillsSkipped??"Skipped":l.healthSkillsInstalling??"Installing skills...",action:"error"===i?l.healthSkillsAction??"You can install skills manually later.":void 0}]:[]];return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)("div",{className:"rounded-xl border overflow-hidden",style:{borderColor:"var(--border)"},children:C.map(({ok:e,icon:t,title:r,detail:a,action:o},n)=>(0,s.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3",style:{background:n%2==0?"var(--card)":"transparent",borderTop:n>0?"1px solid var(--border)":void 0},children:[(0,s.jsx)("div",{className:"w-5 h-5 rounded-full flex items-center justify-center shrink-0 mt-0.5",style:{background:e?"color-mix(in srgb, var(--success) 15%, transparent)":"color-mix(in srgb, var(--amber) 15%, transparent)",color:e?"var(--success)":"var(--amber)"},children:e?(0,s.jsx)(A.A,{size:12}):(0,s.jsx)(w.A,{size:10})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-sm font-medium",style:{color:"var(--foreground)"},children:[t," ",r]}),(0,s.jsx)("p",{className:"text-xs mt-0.5 break-words",style:{color:e?"var(--muted-foreground)":"var(--amber-text)"},children:a}),o&&(0,s.jsx)("p",{className:"text-xs mt-0.5",style:{color:"var(--muted-foreground)"},children:o})]})]},n))}),k&&(0,s.jsxs)("div",{className:"rounded-xl border p-4 space-y-2",style:{borderColor:"var(--border)",background:"var(--card)"},children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium uppercase tracking-wider",style:{color:"var(--muted-foreground)"},children:[(0,s.jsx)(K.A,{size:11}),l.healthTokenTitle??"Auth Token"]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"flex-1 flex items-center px-3 py-2 rounded-lg min-h-[38px]",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:(0,s.jsx)("code",{className:"flex-1 text-xs font-mono break-all select-all leading-relaxed",style:{color:"var(--foreground)"},children:e.authToken})}),(0,s.jsx)("button",{type:"button",onClick:h,className:"shrink-0 p-2 rounded-lg border transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",style:{borderColor:m?"color-mix(in srgb, var(--success) 50%, transparent)":"var(--border)",background:m?"color-mix(in srgb, var(--success) 10%, transparent)":"transparent",color:m?"var(--success)":"var(--muted-foreground)"},title:l.healthTokenCopy??"Copy token",children:m?(0,s.jsx)($.A,{size:14}):(0,s.jsx)(j.A,{size:14})})]}),(0,s.jsx)("p",{className:"text-xs",style:{color:"var(--muted-foreground)"},children:l.healthTokenHint??"Use this token when connecting AI agents. Also available in Settings → Connections."})]}),n&&(0,s.jsx)(_,{s:l})]})}function H({step:e,setStep:t,stepTitles:r,disabled:a,numberedSteps:o}){let{t:n}=(0,d.Y)(),l=o??r.length,i=r.slice(0,l),c=e>=l;return(0,s.jsx)("div",{className:"flex items-center gap-2 mb-8",role:"navigation","aria-label":"Setup steps",children:i.map((r,o)=>(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[o>0&&(0,s.jsx)("div",{className:"w-8 h-px",style:{background:o<=e||c?"var(--amber)":"var(--border)"}}),(0,s.jsxs)("button",{onClick:()=>t(o),"aria-current":o===e?"step":void 0,"aria-label":r,className:"flex flex-col items-center gap-1 p-1 -m-1 disabled:cursor-not-allowed disabled:opacity-60",disabled:a||o>e,title:a||o>e?n.hints.cannotJumpForward:void 0,children:[(0,s.jsx)("div",{className:"w-6 h-6 rounded-full text-xs font-medium flex items-center justify-center transition-colors",style:{background:o<e||c||o===e?"var(--amber)":"var(--muted)",color:o<=e||c?"var(--amber-foreground)":"var(--muted-foreground)",opacity:o<=e||c?1:.5},children:o<e||c?(0,s.jsx)(A.A,{size:14}):o+1}),(0,s.jsx)("span",{className:"text-[10px] leading-tight hidden sm:inline max-w-[4rem] text-center truncate",style:{color:o!==e||c?"var(--muted-foreground)":"var(--foreground)",opacity:o<=e||c?1:.5},children:r})]})]},o))})}function W(e,t,r,s){let a=t.find(t=>t.key===e);return{key:e,scope:s,transport:"auto"===r?a?.preferredTransport||"stdio":r}}function Z(e){return{state:"ok"===e.status?"ok":"error",message:e.message,transport:e.transport,verified:e.verified,verifyError:e.verifyError}}async function F(e,t){let r={};if("skip"!==e.provider)for(let[t,s]of Object.entries(e.providerConfigs))s&&(r[t]={apiKey:s.apiKey,model:s.model,...s.baseUrl?{baseUrl:s.baseUrl}:{}});let s={mindRoot:e.mindRoot,template:e.template||void 0,port:e.webPort,mcpPort:e.mcpPort,authToken:e.authToken,webPassword:e.webPassword,ai:"skip"===e.provider?void 0:{provider:e.provider,providers:r},connectionMode:t??{cli:!0,mcp:!1}},a=await fetch("/api/setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}),o=await a.json();if(!a.ok)throw Error(o.error||`HTTP ${a.status}`);return!!o.needsRestart}async function Y(e,t,r,s,a,o){let n=e.map(e=>W(e,t,r,s)),l=await fetch("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:n,transport:r,url:`http://localhost:${a}/mcp`,token:o||void 0})}),i=await l.json(),d={};if(i.results)for(let e of i.results)d[e.agent]=Z(e);return d}async function G(e,t){if(0===t.length)return!0;try{let r=await fetch("/api/mcp/install-skill",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({skill:e,agents:t})}),s=await r.json();return!0===s.ok}catch(e){return console.warn("[SetupWizard] Skill installation failed:",e),!1}}function q(){let{t:e}=(0,d.Y)(),t=e.setup,[r,m]=(0,a.useState)(0),[x,h]=(0,a.useState)({mindRoot:"~/MindOS/mind",template:"en",provider:"anthropic",providerConfigs:{anthropic:{apiKey:"",model:"claude-sonnet-4-6"},openai:{apiKey:"",model:"gpt-5.4",baseUrl:""}},webPort:3456,mcpPort:8781,authToken:"",webPassword:""}),[g,f]=(0,a.useState)("~"),[b,y]=(0,a.useState)(!1),[k,j]=(0,a.useState)(!1),[N,w]=(0,a.useState)(""),[A,S]=(0,a.useState)(!1),[C,T]=(0,a.useState)("pending"),[P,z]=(0,a.useState)({checking:!1,available:null,isSelf:!1,suggestion:null}),[E,I]=(0,a.useState)({checking:!1,available:null,isSelf:!1,suggestion:null}),[O,R]=(0,a.useState)([]),[K,$]=(0,a.useState)(!1),[_,B]=(0,a.useState)(!1),[q,V]=(0,a.useState)(new Set),[J,X]=(0,a.useState)("auto"),[Q,ee]=(0,a.useState)("global"),[et,er]=(0,a.useState)({}),[es,ea]=(0,a.useState)({cli:!0,mcp:!1}),[eo,en]=(0,a.useState)("review");(0,a.useEffect)(()=>{fetch("/api/setup").then(e=>e.json()).then(e=>{e.homeDir&&f(e.homeDir),h(t=>{let r={...t.providerConfigs};if(e.providerConfigs&&"object"==typeof e.providerConfigs)for(let[t,s]of Object.entries(e.providerConfigs))(0,p.rl)(t)&&s&&(r[t]={apiKey:r[t]?.apiKey??"",model:s.model||p.T_[t].defaultModel,baseUrl:s.baseUrl??"",apiKeyMask:s.apiKeyMask||""});let s=e.provider&&(0,p.rl)(e.provider)?e.provider:t.provider;return{...t,mindRoot:e.mindRoot||t.mindRoot,webPort:"number"==typeof e.port?e.port:t.webPort,mcpPort:"number"==typeof e.mcpPort?e.mcpPort:t.mcpPort,authToken:e.authToken||t.authToken,webPassword:e.webPassword||t.webPassword,provider:s,providerConfigs:r}}),e.authToken||fetch("/api/setup/generate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}).then(e=>e.json()).then(e=>{e.token&&h(t=>({...t,authToken:e.token}))}).catch(e=>console.warn("[SetupWizard] Token generation failed:",e))}).catch(e=>{console.warn("[SetupWizard] Failed to load config, generating token as fallback:",e),fetch("/api/setup/generate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}).then(e=>e.json()).then(e=>{e.token&&h(t=>({...t,authToken:e.token}))}).catch(e=>console.warn("[SetupWizard] Fallback token generation also failed:",e))})},[]),(0,a.useEffect)(()=>{1===r&&(ed(x.webPort,"web",!0),ed(x.mcpPort,"mcp",!0))},[r]),(0,a.useEffect)(()=>{2!==r||_||K||($(!0),fetch("/api/mcp/agents").then(e=>e.json()).then(e=>{if(e.agents){let t=e.agents.filter(e=>"builtin"!==e.scope);R(t),V(new Set(t.filter(e=>e.installed||e.present).map(e=>e.key)))}B(!0)}).catch(e=>{console.warn("[SetupWizard] Failed to load agents:",e),B(!0)}).finally(()=>$(!1)))},[r,_,K]);let el=(0,a.useCallback)((e,t)=>{h(r=>({...r,[e]:t}))},[]);(0,a.useCallback)(async e=>{try{let t=await fetch("/api/setup/generate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({seed:e||void 0})}),r=await t.json();r.token&&h(e=>({...e,authToken:r.token}))}catch(e){console.warn("[SetupWizard] generateToken failed:",e)}},[]);let ei=(0,a.useCallback)(()=>{(0,c.l)(x.authToken).then(e=>{e&&u.oR.copy()})},[x.authToken]),ed=(0,a.useCallback)(async(e,t,r=!1)=>{if(e<1024||e>65535)return;let s="web"===t?z:I;s({checking:!0,available:null,isSelf:!1,suggestion:null});try{let a=await fetch("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:e})}),o=await a.json(),n=o.available??null,l=o.suggestion??null;if(s({checking:!1,available:n,isSelf:!!o.isSelf,suggestion:l}),r&&!1===n&&l){let e="web"===t?"webPort":"mcpPort";h(t=>({...t,[e]:l})),setTimeout(()=>ed(l,t,!1),0)}}catch(e){console.warn("[SetupWizard] checkPort failed:",e),s({checking:!1,available:null,isSelf:!1,suggestion:null})}},[]),ec=x.webPort===x.mcpPort,eu=async()=>{y(!0),w("");let e=Array.from(q),t=x;if(!x.authToken)try{let e=await fetch("/api/setup/generate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),r=await e.json();r.token&&(t={...x,authToken:r.token},h(t))}catch{}en("saving");try{await F(t,es)&&S(!0)}catch(e){w(e instanceof Error?e.message:String(e)),en("review"),y(!1);return}if(es.mcp&&e.length>0){en("agents");let r={};for(let t of e)r[t]={state:"installing"};er(r);try{let r=await Y(e,O,J,Q,t.mcpPort,t.authToken);er(r)}catch(r){console.warn("[SetupWizard] agent batch install failed:",r);let t={};for(let r of e)t[r]={state:"error"};er(t)}}if(e.length>0){en("skills"),T("installing");let r="zh"===t.template?"mindos-zh":"mindos";try{let t=await G(r,e);T(t?"ok":"error")}catch(e){console.warn("[SetupWizard] skill install failed:",e),T("error")}}else T("skipped");y(!1),j(!0),en("done")},ep=(0,a.useCallback)(async e=>{er(t=>({...t,[e]:{state:"installing"}}));try{let t=W(e,O,J,Q),r=await fetch("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:[t],transport:J,url:`http://localhost:${x.mcpPort}/mcp`,token:x.authToken||void 0})}),s=await r.json();if(s.results?.[0]){let t=s.results[0];er(r=>({...r,[e]:Z(t)}))}}catch(t){console.warn("[SetupWizard] retryAgent failed:",t),er(t=>({...t,[e]:{state:"error"}}))}},[O,Q,J,x.mcpPort,x.authToken]);return(0,s.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col overflow-y-auto",role:"dialog","aria-modal":"true","aria-labelledby":"setup-title",style:{background:"var(--background)"},children:[(0,s.jsx)("div",{className:"sticky top-0 z-10 pt-6 pb-3 px-6",style:{background:"var(--background)"},children:(0,s.jsxs)("div",{className:"max-w-xl mx-auto",children:[(0,s.jsx)("div",{className:"text-center mb-3",children:(0,s.jsxs)("div",{className:"inline-flex items-center gap-2",children:[(0,s.jsx)(o.A,{size:18,style:{color:"var(--amber)"}}),(0,s.jsx)("h1",{id:"setup-title",className:"text-2xl font-brand",style:{color:"var(--foreground)"},children:"MindOS"})]})}),(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(H,{step:r,setStep:m,stepTitles:t.stepTitles,disabled:b||k,numberedSteps:3})})]})}),(0,s.jsxs)("div",{className:"flex-1 w-full max-w-xl mx-auto px-6 pb-8",children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-5",style:{color:"var(--foreground)"},children:3===r?`✓ ${t.stepTitles[r]}`:t.stepTitles[r]}),0===r&&(0,s.jsx)(v,{state:x,update:el,t:e,homeDir:g}),1===r&&(0,s.jsx)(M,{state:x,update:el,s:t,onCopyToken:ei,webPortStatus:P,mcpPortStatus:E,setWebPortStatus:z,setMcpPortStatus:I,checkPort:ed,portConflict:ec}),2===r&&(0,s.jsx)(U,{agents:O,agentsLoading:K,selectedAgents:q,setSelectedAgents:V,connectionMode:es,setConnectionMode:ea,agentTransport:J,setAgentTransport:X,agentScope:Q,setAgentScope:ee,agentStatuses:et,s:t,settingsMcp:e.settings.mcp}),3===r&&(0,s.jsx)(L,{state:x,selectedAgents:q,agentStatuses:et,onRetryAgent:ep,error:N,needsRestart:A,s:t,setupPhase:eo,cliEnabled:es.cli,mcpEnabled:es.mcp,skillInstallStatus:C}),(0,s.jsxs)("div",{className:"flex items-center justify-between mt-8 pt-6",style:{borderTop:"1px solid var(--border)"},children:[(0,s.jsxs)("button",{onClick:()=>m(r-1),disabled:0===r||b||k,className:"flex items-center gap-1 px-4 py-2 text-sm rounded-lg border border-border hover:bg-muted transition-colors disabled:opacity-30 disabled:cursor-not-allowed",style:{color:"var(--foreground)"},children:[(0,s.jsx)(n.A,{size:14})," ",t.back]}),r<3?(0,s.jsxs)("button",{onClick:()=>m(r+1),disabled:!(0===r?x.mindRoot.trim().length>0&&x.webPassword.trim().length>0:1===r?!ec&&!P.checking&&!E.checking&&!1!==P.available&&!1!==E.available:2!==r||es.cli||es.mcp),className:"flex items-center gap-1 px-4 py-2 text-sm rounded-lg transition-colors disabled:opacity-30 disabled:cursor-not-allowed",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[t.next," ",(0,s.jsx)(l.A,{size:14})]}):k?A?(0,s.jsx)(D,{s:t,newPort:x.webPort,webPassword:x.webPassword}):(0,s.jsxs)("a",{href:"/?welcome=1",className:"flex items-center gap-1.5 px-5 py-2 text-sm font-medium rounded-lg transition-colors hover:opacity-90 focus-visible:ring-2 focus-visible:ring-ring",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[t.healthGoHome??"Go to MindOS"," →"]}):(0,s.jsxs)("button",{onClick:eu,disabled:b,className:"flex items-center gap-1 px-5 py-2 text-sm font-medium rounded-lg transition-colors disabled:opacity-50",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[b&&(0,s.jsx)(i.A,{size:14,className:"animate-spin"}),b?t.completing:t.complete]})]})]})]})}},30125:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("skip-forward",[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]])},41585:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},41641:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},42129:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},47376:(e,t,r)=>{"use strict";r.d(t,{Ot:()=>u,T_:()=>a,Ux:()=>c,bf:()=>l,jt:()=>o,rl:()=>n});var s=r(20699);r(87358);let a={anthropic:{id:"anthropic",name:"Anthropic",nameZh:"Anthropic",defaultModel:"claude-sonnet-4-6",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://console.anthropic.com/settings/keys",category:"primary"},openai:{id:"openai",name:"OpenAI",nameZh:"OpenAI",defaultModel:"gpt-5.4",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.openai.com/api-keys",category:"primary"},google:{id:"google",name:"Google Gemini",nameZh:"Google Gemini",defaultModel:"gemini-2.5-flash",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://aistudio.google.com/apikey",category:"primary"},groq:{id:"groq",name:"Groq",nameZh:"Groq",defaultModel:"llama-3.3-70b-versatile",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://console.groq.com/keys",category:"more"},xai:{id:"xai",name:"xAI (Grok)",nameZh:"xAI (Grok)",defaultModel:"grok-3",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},openrouter:{id:"openrouter",name:"OpenRouter",nameZh:"OpenRouter",defaultModel:"anthropic/claude-sonnet-4",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},mistral:{id:"mistral",name:"Mistral",nameZh:"Mistral",defaultModel:"mistral-large-latest",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},deepseek:{id:"deepseek",name:"DeepSeek",nameZh:"DeepSeek",defaultModel:"deepseek-chat",piProviderOverride:"openai",fixedBaseUrl:"https://api.deepseek.com/v1",supportsBaseUrl:!0,supportsThinking:!0,supportsListModels:!0,signupUrl:"https://platform.deepseek.com/api_keys",category:"more"},zai:{id:"zai",name:"ZhipuAI (GLM)",nameZh:"智谱 AI (GLM 国际版)",defaultModel:"glm-4-plus",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"zai-cn":{id:"zai-cn",name:"ZhipuAI (GLM China)",nameZh:"智谱 AI (GLM 国内版)",defaultModel:"glm-4-plus",piProviderOverride:"zai",fixedBaseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,signupUrl:"https://open.bigmodel.cn/",category:"more"},"kimi-coding":{id:"kimi-coding",name:"Kimi Coding",nameZh:"Kimi Coding (月之暗面)",defaultModel:"kimi-k2-thinking",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},cerebras:{id:"cerebras",name:"Cerebras",nameZh:"Cerebras",defaultModel:"llama-4-scout-17b-16e",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},minimax:{id:"minimax",name:"MiniMax",nameZh:"MiniMax (国际版)",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"minimax-cn":{id:"minimax-cn",name:"MiniMax (China)",nameZh:"MiniMax (国内版)",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},huggingface:{id:"huggingface",name:"Hugging Face",nameZh:"Hugging Face",defaultModel:"Qwen/Qwen3-235B-A22B-Thinking-2507",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},ollama:{id:"ollama",name:"Ollama",nameZh:"Ollama (本地)",defaultModel:"llama3.2",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:11434/v1",apiKeyFallback:"ollama",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://ollama.com/download",category:"more"}},o=Object.keys(a);function n(e){return e in a}function l(){let e=[],t=[];for(let r of o)"primary"===a[r].category?e.push(r):t.push(r);return t.sort((e,t)=>a[e].name.localeCompare(a[t].name)),{primary:e,more:t}}function i(e){return a[e].piProviderOverride??e}let d={deepseek:"DEEPSEEK_API_KEY"};function c(e){return d[e]?d[e]:p[i(e)]}function u(e){let t=a[e];if(t.fixedBaseUrl)return t.fixedBaseUrl;try{let t=(0,s.zr)(i(e));return t[0]?.baseUrl??""}catch{return""}}let p={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY","azure-openai-responses":"AZURE_OPENAI_API_KEY",google:"GEMINI_API_KEY",groq:"GROQ_API_KEY",cerebras:"CEREBRAS_API_KEY",xai:"XAI_API_KEY",openrouter:"OPENROUTER_API_KEY",zai:"ZAI_API_KEY","zai-cn":"ZAI_API_KEY",mistral:"MISTRAL_API_KEY",minimax:"MINIMAX_API_KEY","minimax-cn":"MINIMAX_API_KEY",huggingface:"HF_TOKEN","kimi-coding":"KIMI_API_KEY"}},48368:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},51842:(e,t,r)=>{"use strict";r.d(t,{A:()=>c});var s=r(95155),a=r(12115),o=r(12651),n=r(66088),l=r(30125),i=r(47376),d=r(35581);function c({value:e,onChange:t,showSkip:r=!1,compact:c=!1,configuredProviders:u}){let{locale:p}=(0,d.Y)(),[m,x]=(0,a.useState)(!1),h=(0,i.bf)(),g=r=>{let a=i.T_[r],n="zh"===p?a.nameZh:a.name,l=e===r,d=u?.has(r);return c?(0,s.jsxs)("button",{type:"button",onClick:()=>t(r),className:`flex items-center gap-2 px-3 py-2 rounded-lg border text-left transition-all text-sm ${l?"border-[var(--amber)] bg-[var(--amber-subtle)] shadow-sm":"border-border/50 hover:border-border hover:bg-muted/30"}`,children:[(0,s.jsx)("span",{className:`font-medium ${l?"text-foreground":"text-muted-foreground"}`,children:n}),d&&!l&&(0,s.jsx)(o.A,{size:12,className:"text-success ml-auto shrink-0"}),l&&(0,s.jsx)(o.A,{size:14,className:"ml-auto shrink-0",style:{color:"var(--amber)"}})]},r):(0,s.jsxs)("button",{type:"button",onClick:()=>t(r),className:"flex items-start gap-3 p-4 rounded-xl border text-left transition-all duration-150",style:{background:l?"var(--amber-dim)":"var(--card)",borderColor:l?"var(--amber)":"var(--border)"},children:[(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium",style:{color:"var(--foreground)"},children:n}),(0,s.jsx)("p",{className:"text-xs mt-0.5",style:{color:"var(--muted-foreground)"},children:a.defaultModel})]}),d&&!l&&(0,s.jsx)(o.A,{size:14,className:"text-success shrink-0 mt-0.5"}),l&&(0,s.jsx)(o.A,{size:16,className:"shrink-0 mt-0.5",style:{color:"var(--amber)"}})]},r)},{primary:f,more:b}=h;return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("div",{className:c?"flex flex-wrap gap-2":"grid grid-cols-1 gap-2",children:f.map(g)}),b.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{type:"button",onClick:()=>x(!m),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors py-1",children:[(0,s.jsx)(n.A,{size:12,className:`transition-transform ${m?"rotate-180":""}`}),m?"zh"===p?"收起":"Show less":"zh"===p?`更多 (${b.length})`:`More providers (${b.length})`]}),m&&(0,s.jsx)("div",{className:c?"flex flex-wrap gap-2":"grid grid-cols-1 gap-2",children:b.map(g)})]}),r&&(0,s.jsxs)("button",{type:"button",onClick:()=>t("skip"),className:"flex items-center gap-2 px-3 py-2 rounded-lg border text-left transition-all text-sm w-full mt-1",style:{background:"skip"===e?"var(--amber-dim)":"var(--card)",borderColor:"skip"===e?"var(--amber)":"var(--border)"},children:[(0,s.jsx)(l.A,{size:14,className:"shrink-0",style:{color:"skip"===e?"var(--amber)":"var(--muted-foreground)"}}),(0,s.jsx)("span",{className:`font-medium ${"skip"===e?"text-foreground":"text-muted-foreground"}`,children:"zh"===p?"暂时跳过":"Skip for now"}),"skip"===e&&(0,s.jsx)(o.A,{size:14,className:"ml-auto shrink-0",style:{color:"var(--amber)"}})]})]})}},60392:e=>{function t(e){return Promise.resolve().then(()=>{var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}t.keys=()=>[],t.resolve=t,t.id=60392,e.exports=t},62791:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},66088:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},67635:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},68806:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]])},68822:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},84825:e=>{function t(e){return Promise.resolve().then(()=>{var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t})}t.keys=()=>[],t.resolve=t,t.id=84825,e.exports=t},90425:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var s=r(12115);let a=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),o=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,s.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:l="",children:i,iconNode:d,...c},u)=>(0,s.createElement)("svg",{ref:u,...n,width:t,height:t,stroke:e,strokeWidth:o?24*Number(r)/Number(t):r,className:a("lucide",l),...!i&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...d.map(([e,t])=>(0,s.createElement)(e,t)),...Array.isArray(i)?i:[i]])),i=(e,t)=>{let r=(0,s.forwardRef)(({className:r,...n},i)=>(0,s.createElement)(l,{ref:i,iconNode:t,className:a(`lucide-${o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...n}));return r.displayName=o(e),r}},92451:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},94514:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},97810:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])}},e=>{e.O(0,[4913,7266,5581,8441,3794,7358],()=>e(e.s=15721)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1227],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var s=r(12115);let a=e=>{let t,r=new Set,s=(e,s)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=s?s:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,l={setState:s,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(s,a,l);return l},l=e=>{let t=e?a(e):a,r=e=>(function(e,t=e=>e){let r=s.useSyncExternalStore(e.subscribe,s.useCallback(()=>t(e.getState()),[e,t]),s.useCallback(()=>t(e.getInitialState()),[e,t]));return s.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},i=e=>e?l(e):l},6296:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},9199:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},9339:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={callServer:function(){return l.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var a in s)Object.defineProperty(t,a,{enumerable:!0,get:s[a]});let l=r(77304),i=r(4060),n=r(77197)},33078:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]])},33210:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},38798:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},41585:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},48368:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},51914:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},54839:(e,t,r)=>{Promise.resolve().then(r.bind(r,62147))},62147:(e,t,r)=>{"use strict";r.d(t,{default:()=>j});var s=r(95155),a=r(12115),l=r(68459),i=r(38798),n=r(33078),d=r(48368),o=r(41585),c=r(6296),u=r(9199),m=r(33210),h=r(73321),x=r(35581),f=r(9339);let p=(0,f.createServerReference)("603dfc4e51b50521a1ace7d13b87085c76787591d8",f.callServer,void 0,f.findSourceMapURL,"restoreFromTrashAction"),b=(0,f.createServerReference)("40b63ea38c3b1eb0f034fa8b586f969c8aa2e167df",f.callServer,void 0,f.findSourceMapURL,"permanentlyDeleteAction"),v=(0,f.createServerReference)("005d61cc26dd79b46775adef800e98e1b368cb496a",f.callServer,void 0,f.findSourceMapURL,"emptyTrashAction");var g=r(39498),y=r(4235);function j({initialItems:e}){let{t}=(0,x.Y)(),r=(0,h.useRouter)(),[f,j]=(0,a.useState)(e),[N,k]=(0,a.useTransition)(),[A,w]=(0,a.useState)(!1),[M,C]=(0,a.useState)(null),[S,R]=(0,a.useState)(null),[z,P]=(0,a.useState)(null),L=(0,a.useCallback)(async e=>{P(e.id);try{let s=await p(e.id,"restore");s.success?(j(t=>t.filter(t=>t.id!==e.id)),y.oR.success(t.trash.restored),r.refresh()):s.conflict?R(e):y.oR.error(s.error??t.trash.restoreFailed)}finally{P(null)}},[t,r]),T=(0,a.useCallback)(async e=>{if(!S)return;let s=await p(S.id,e);s.success?(j(e=>e.filter(e=>e.id!==S.id)),y.oR.success(t.trash.restored),R(null),r.refresh()):y.oR.error(s.error??t.trash.restoreFailed)},[S,t,r]),_=(0,a.useCallback)(async()=>{if(!M)return;let e=await b(M.id);e.success?(j(e=>e.filter(e=>e.id!==M.id)),y.oR.success(t.trash.deleted)):y.oR.error(e.error??t.trash.deleteFailed),C(null)},[M,t]),E=(0,a.useCallback)(async()=>{k(async()=>{let e=await v();e.success?(j([]),y.oR.success(t.trash.emptied(e.count??0))):y.oR.error(e.error??t.trash.emptyFailed),w(!1)})},[t]);return(0,s.jsxs)("div",{className:"min-h-screen",children:[(0,s.jsx)("div",{className:"px-4 md:px-6 pt-6 md:pt-8",children:(0,s.jsx)("div",{className:"content-width xl:mr-[220px] rounded-xl border border-border bg-card px-4 py-3 md:px-5 md:py-4",children:(0,s.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,s.jsx)(l.A,{size:15}),t.trash.title]}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t.trash.subtitle}),f.length>0&&(0,s.jsx)("div",{className:"mt-2 text-xs text-muted-foreground",children:t.trash.itemCount(f.length)})]}),f.length>0&&(0,s.jsx)("button",{type:"button",onClick:()=>w(!0),disabled:N,className:"px-2.5 py-1.5 rounded-md text-xs font-medium bg-error/10 text-error hover:bg-error/20 transition-colors disabled:opacity-50",children:t.trash.emptyTrash})]})})}),(0,s.jsx)("div",{className:"px-4 md:px-6 py-4 md:py-6",children:(0,s.jsx)("div",{className:"content-width xl:mr-[220px]",children:0===f.length?(0,s.jsxs)("div",{className:"rounded-xl border border-border/40 bg-card/30 p-12 text-center",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-muted/60 mb-4",children:(0,s.jsx)(l.A,{size:22,className:"text-muted-foreground/40"})}),(0,s.jsx)("p",{className:"text-sm font-medium text-muted-foreground/70",children:t.trash.empty}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground/40 mt-1 max-w-xs mx-auto leading-relaxed",children:t.trash.emptySubtext})]}):(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:f.map(e=>{let r=Math.max(0,Math.ceil((new Date(e.expiresAt).getTime()-Date.now())/864e5)),a=r<=3;return(0,s.jsxs)("div",{className:"rounded-xl border border-border bg-card p-4 flex flex-col gap-3 hover:border-border/80 transition-colors",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 min-w-0",children:[(0,s.jsx)("div",{className:"w-9 h-9 rounded-lg bg-muted/50 flex items-center justify-center shrink-0",children:e.isDirectory?(0,s.jsx)(i.A,{size:16,className:"text-muted-foreground"}):e.fileName.endsWith(".csv")?(0,s.jsx)(n.A,{size:16,className:"text-success"}):(0,s.jsx)(d.A,{size:16,className:"text-muted-foreground"})}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground truncate",title:e.fileName,children:e.fileName}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground truncate mt-0.5",title:e.originalPath,children:[t.trash.from,": ",e.originalPath.split("/").slice(0,-1).join("/")||"/"]})]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsx)("span",{className:"text-2xs text-muted-foreground",children:t.trash.deletedAgo(function(e,t){let r=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(r<1)return t.justNow??"just now";if(r<60)return t.minutesAgo?.(r)??`${r}m ago`;let s=Math.floor(r/60);if(s<24)return t.hoursAgo?.(s)??`${s}h ago`;let a=Math.floor(s/24);return t.daysAgo?.(a)??`${a}d ago`}(e.deletedAt,t.trash))}),(0,s.jsxs)("span",{className:`text-2xs ${a?"text-error":"text-muted-foreground/60"}`,children:[a&&(0,s.jsx)(o.A,{size:9,className:"inline mr-0.5"}),t.trash.expiresIn(r)]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>L(e),disabled:z===e.id,className:"inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs font-medium bg-success/10 text-success hover:bg-success/20 transition-colors disabled:opacity-50",children:[z===e.id?(0,s.jsx)(c.A,{size:11,className:"animate-spin"}):(0,s.jsx)(u.A,{size:11}),t.trash.restore]}),(0,s.jsx)("button",{type:"button",onClick:()=>C(e),className:"p-1 rounded-md text-muted-foreground hover:text-error hover:bg-error/10 transition-colors",title:t.trash.deletePermanently,children:(0,s.jsx)(m.A,{size:13})})]})]})]},e.id)})})})}),(0,s.jsx)(g.TM,{open:A,title:t.trash.emptyTrash,message:t.trash.emptyTrashConfirm,confirmLabel:t.trash.emptyTrash,cancelLabel:t.trash.cancel??"Cancel",onConfirm:()=>void E(),onCancel:()=>w(!1),variant:"destructive"}),(0,s.jsx)(g.TM,{open:!!M,title:t.trash.deletePermanently,message:M?t.trash.deletePermanentlyConfirm(M.fileName):"",confirmLabel:t.trash.deletePermanently,cancelLabel:t.trash.cancel??"Cancel",onConfirm:()=>void _(),onCancel:()=>C(null),variant:"destructive"}),S&&(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm",children:(0,s.jsxs)("div",{className:"bg-card border border-border rounded-xl shadow-xl max-w-sm w-full mx-4 p-5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,s.jsx)(o.A,{size:16,className:"text-[var(--amber)]"}),(0,s.jsx)("h3",{className:"text-sm font-semibold",children:t.trash.restoreConflict})]}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground mb-4",children:['"',S.fileName,'" — ',S.originalPath]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 justify-end",children:[(0,s.jsx)("button",{type:"button",onClick:()=>R(null),className:"px-3 py-1.5 rounded-md text-xs font-medium text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:t.trash.cancel??"Cancel"}),(0,s.jsx)("button",{type:"button",onClick:()=>void T("copy"),className:"px-3 py-1.5 rounded-md text-xs font-medium bg-muted text-foreground hover:bg-muted/80 transition-colors",children:t.trash.saveAsCopy}),(0,s.jsx)("button",{type:"button",onClick:()=>void T("overwrite"),className:"px-3 py-1.5 rounded-md text-xs font-medium bg-[var(--amber-dim)] text-[var(--amber-text)] hover:opacity-80 transition-colors",children:t.trash.overwrite})]})]})})]})}},68459:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},73321:(e,t,r)=>{"use strict";var s=r(74645);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},90425:(e,t,r)=>{"use strict";r.d(t,{A:()=>d});var s=r(12115);let a=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),l=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,s.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:l,className:n="",children:d,iconNode:o,...c},u)=>(0,s.createElement)("svg",{ref:u,...i,width:t,height:t,stroke:e,strokeWidth:l?24*Number(r)/Number(t):r,className:a("lucide",n),...!d&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...o.map(([e,t])=>(0,s.createElement)(e,t)),...Array.isArray(d)?d:[d]])),d=(e,t)=>{let r=(0,s.forwardRef)(({className:r,...i},d)=>(0,s.createElement)(n,{ref:d,iconNode:t,className:a(`lucide-${l(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...i}));return r.displayName=l(e),r}}},e=>{e.O(0,[5581,8252,8441,3794,7358],()=>e(e.s=54839)),_N_E=e.O()}]);
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3637,9508],{7337:(e,t,r)=>{"use strict";function s(e){if(/^(https?|file):\/\//.test(e))return e;if(e.startsWith("/")){let t=e.slice(1);return`/api/file/raw?path=${encodeURIComponent(t)}`}return e}r.d(t,{X:()=>s})},7834:(e,t,r)=>{"use strict";async function s(e){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let r=document.execCommand("copy");return document.body.removeChild(t),r}catch{return!1}}r.d(t,{l:()=>s})},9921:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},10377:(e,t,r)=>{"use strict";r.d(t,{Z:()=>h});var s=r(12115);let n="mindos-pinned-files",a="mindos:pins-changed";function o(){try{let e=localStorage.getItem(n);return e?JSON.parse(e):[]}catch{return[]}}function l(){return c}let i=[];function d(){return i}let c=[],u=!1;function m(){u||(c=o(),u=!0)}function x(e){m();let t=t=>{t.key===n&&(c=o(),e())},r=()=>{c=o(),e()};return window.addEventListener("storage",t),window.addEventListener(a,r),()=>{window.removeEventListener("storage",t),window.removeEventListener(a,r)}}function p(e){c=e;try{localStorage.setItem(n,JSON.stringify(e))}catch{}window.dispatchEvent(new Event(a))}function h(){m();let e=(0,s.useSyncExternalStore)(x,l,d),t=(0,s.useCallback)(t=>e.includes(t),[e]),r=(0,s.useCallback)(e=>{let t=o(),r=t.indexOf(e);r>=0?t.splice(r,1):t.unshift(e),p(t)},[]);return{pinnedFiles:e,isPinned:t,togglePin:r,reorderPins:(0,s.useCallback)(e=>{p(e)},[]),removePin:(0,s.useCallback)(e=>{p(o().filter(t=>t!==e))},[])}}},16416:(e,t,r)=>{"use strict";r.d(t,{default:()=>ef});var s=r(95155),n=r(12115),a=r(73321),o=r(80723),l=r(95057),i=r(90425);let d=(0,i.A)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var c=r(37618),u=r(33210),m=r(6296),x=r(55243),p=r(94290),h=r(60285),f=r(48368);let g=(0,i.A)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var v=r(6962),b=r(67635),y=r(49387),j=r(68459),w=r(63637);function N({content:e}){let t=(0,n.useMemo)(()=>{try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},[e]);return(0,s.jsx)("pre",{className:"rounded-xl border border-border bg-card px-4 py-3 overflow-x-auto text-sm leading-relaxed font-display",children:(0,s.jsx)("code",{suppressHydrationWarning:!0,children:t})})}var k=r(59386),C=r.n(k),A=r(9921),E=r(66088),S=r(56563),z=r(51914);function M(e,t){return C().unparse([e,...t])}function L({value:e,editable:t,onCommit:r}){let[a,o]=(0,n.useState)(!1),[l,i]=(0,n.useState)(e),d=(0,n.useRef)(null);function c(){o(!1),l!==e&&r(l)}return((0,n.useEffect)(()=>{a&&d.current?.select()},[a]),a)?(0,s.jsx)("input",{ref:d,value:l,onChange:e=>i(e.target.value),onBlur:c,onKeyDown:t=>{"Enter"===t.key&&c(),"Escape"===t.key&&(i(e),o(!1))},className:"w-full bg-transparent outline-none text-sm",style:{color:"var(--foreground)",borderBottom:"1px solid var(--amber)",minWidth:60},onClick:e=>e.stopPropagation()}):(0,s.jsx)("div",{className:`truncate text-sm ${t?"cursor-text":""}`,style:{color:"var(--foreground)",minWidth:60},onClick:t?function(){t&&(i(e),o(!0))}:void 0,title:e,children:e||(0,s.jsx)("span",{style:{color:"var(--muted-foreground)",opacity:.4},children:"—"})})}function T({headers:e,onAdd:t,onCancel:r}){let[a,o]=(0,n.useState)(()=>Array(e.length).fill("")),l=(0,n.useRef)(null);return(0,s.jsxs)("tr",{style:{background:"color-mix(in srgb, var(--amber) 6%, transparent)",borderTop:"1px solid var(--amber)"},children:[e.map((e,n)=>(0,s.jsx)("td",{className:"px-3 py-2",style:{borderBottom:"1px solid var(--border)"},children:(0,s.jsx)("input",{ref:0===n?l:void 0,autoFocus:0===n,value:a[n],onChange:e=>{var t;return t=e.target.value,void o(e=>{let r=[...e];return r[n]=t,r})},onKeyDown:e=>{"Enter"===e.key&&t(a),"Escape"===e.key&&r()},placeholder:e,className:"w-full bg-transparent outline-none text-sm placeholder:opacity-30",style:{color:"var(--foreground)",borderBottom:"1px solid var(--border)"}})},n)),(0,s.jsx)("td",{className:"px-2 py-2",style:{borderBottom:"1px solid var(--border)"}})]})}function R({content:e,appendAction:t,saveAction:r}){let[a,o]=(0,n.useState)(e),[l,i]=(0,n.useState)(null),[d,c]=(0,n.useState)(null),[u,x]=(0,n.useState)(!1),[p,h]=(0,n.useState)(!1),f=(0,n.useMemo)(()=>C().parse(a,{skipEmptyLines:!0}).data,[a]),g=f[0]||[],v=f.slice(1),b=(0,n.useMemo)(()=>null===l||null===d?v:[...v].sort((e,t)=>{let r=e[l]??"",s=t[l]??"",n=parseFloat(r),a=parseFloat(s);return isNaN(n)||isNaN(a)?"asc"===d?r.localeCompare(s):s.localeCompare(r):"asc"===d?n-a:a-n}),[v,l,d]),y=(0,n.useCallback)(async(e,t,s)=>{if(!r)return;let n=M(g,v.map(r=>r===b[e]?r.map((e,r)=>r===t?s:e):r));o(n),h(!0);try{await r(n)}catch(e){console.error("[CsvView] Cell save failed:",e)}finally{h(!1)}},[r,v,b,g]),w=(0,n.useCallback)(async e=>{if(!r||p)return;let t=b[e],s=M(g,v.filter(e=>e!==t));o(s),h(!0);try{await r(s)}catch(e){console.error("[CsvView] Row delete failed:",e)}finally{h(!1)}},[r,v,b,g,p]),N=(0,n.useCallback)(async e=>{h(!0);try{if(t){let r=await t(e);o(r.newContent)}else if(r){let t=M(g,[...v,e]);o(t),await r(t)}x(!1)}catch(e){console.error("[CsvView] Add row failed:",e)}finally{h(!1)}},[t,r,g,v]),k=!!r||!!t;return 0===g.length?(0,s.jsx)("div",{className:"text-sm py-4",style:{color:"var(--muted-foreground)"},children:"Empty CSV file"}):(0,s.jsxs)("div",{className:"w-full rounded-xl overflow-hidden border",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"min-w-full text-sm border-collapse",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{style:{background:"var(--muted)"},children:[g.map((e,t)=>(0,s.jsx)("th",{onClick:()=>(function(e){if(l!==e){i(e),c("asc");return}"asc"===d?c("desc"):(i(null),c(null))})(t),className:"px-4 py-2.5 text-left font-semibold cursor-pointer select-none whitespace-nowrap transition-colors hover:bg-accent",style:{color:"var(--foreground)",borderBottom:"1px solid var(--border)",fontSize:"0.75rem",letterSpacing:"0.04em",textTransform:"uppercase"},children:(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{children:e}),l===t?"asc"===d?(0,s.jsx)(A.A,{size:11,style:{color:"var(--amber)"}}):(0,s.jsx)(E.A,{size:11,style:{color:"var(--amber)"}}):(0,s.jsx)(S.A,{size:11,style:{color:"var(--muted-foreground)",opacity:.4}})]})},t)),k&&(0,s.jsx)("th",{className:"w-8",style:{borderBottom:"1px solid var(--border)",background:"var(--muted)"}})]})}),(0,s.jsxs)("tbody",{children:[b.map((e,t)=>(0,s.jsxs)("tr",{className:"group transition-colors",style:{background:t%2==0?"var(--background)":"var(--card)"},onMouseEnter:e=>e.currentTarget.style.background="var(--muted)",onMouseLeave:e=>e.currentTarget.style.background=t%2==0?"var(--background)":"var(--card)",children:[g.map((n,a)=>(0,s.jsx)("td",{className:"px-4 py-2.5 max-w-xs",style:{borderBottom:"1px solid var(--border)"},children:(0,s.jsx)(L,{value:e[a]??"",editable:!!r,onCommit:e=>y(t,a,e)})},a)),k&&(0,s.jsx)("td",{className:"px-2 py-2",style:{borderBottom:"1px solid var(--border)"},children:r&&(0,s.jsx)("button",{onClick:()=>w(t),disabled:p,className:"opacity-0 group-hover:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/10 disabled:opacity-30",style:{color:"var(--muted-foreground)"},title:p?"Saving...":"Delete row",children:(0,s.jsx)(j.A,{size:12})})})]},t)),u&&(0,s.jsx)(T,{headers:g,onAdd:N,onCancel:()=>x(!1)})]})]})}),(0,s.jsxs)("div",{className:"px-4 py-2 flex items-center justify-between",style:{background:"var(--muted)",borderTop:"1px solid var(--border)"},children:[(0,s.jsxs)("span",{className:"text-xs font-display flex items-center gap-1.5",style:{color:"var(--muted-foreground)"},children:[v.length," rows \xb7 ",g.length," cols",p&&(0,s.jsx)(m.A,{size:10,className:"animate-spin",style:{color:"var(--amber)"}})]}),k&&!u&&(0,s.jsxs)("button",{onClick:()=>x(!0),className:"flex items-center gap-1 text-xs px-2.5 py-1 rounded-md transition-colors font-display",style:{color:"var(--amber)",background:"var(--amber-dim)"},children:[(0,s.jsx)(z.A,{size:12}),"Add row"]}),u&&(0,s.jsx)("button",{onClick:()=>x(!1),className:"text-xs px-2.5 py-1 rounded-md transition-colors font-display",style:{color:"var(--muted-foreground)"},children:"Cancel"})]})]})}var P=r(98500),$=r.n(P);let I=(0,i.A)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);var D=r(35581),F=r(22356);function O({filePath:e}){let[t,r]=(0,n.useState)([]),[a,o]=(0,n.useState)(!0),{t:l}=(0,D.Y)();return((0,n.useEffect)(()=>{o(!0),(0,F.n)(`/api/backlinks?path=${encodeURIComponent(e)}`).then(e=>{r(Array.isArray(e)?e:[]),o(!1)}).catch(()=>{r([]),o(!1)})},[e]),a||0!==t.length)?(0,s.jsxs)("div",{className:"mt-12 pt-8 border-t border-border",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-6 text-muted-foreground",children:[(0,s.jsx)(I,{size:16,className:"text-[var(--amber)]/70"}),(0,s.jsx)("h3",{className:"text-sm font-semibold tracking-wider uppercase",children:l.common?.relatedFiles||"Related Files"}),(0,s.jsx)("span",{className:"text-xs bg-muted px-1.5 py-0.5 rounded-full font-mono",children:t.length})]}),(0,s.jsx)("div",{className:"grid gap-3",children:a?(0,s.jsx)("div",{className:"space-y-3",children:[1,2].map(e=>(0,s.jsx)("div",{className:"h-20 bg-muted/30 rounded-lg animate-pulse"},e))}):t.map(e=>(0,s.jsx)($(),{href:`/view/${e.filePath.split("/").map(encodeURIComponent).join("/")}`,className:"group block p-4 rounded-xl border border-border/50 bg-card/30 hover:bg-muted/30 hover:border-[var(--amber)]/30 transition-all duration-200",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("div",{className:"mt-1 p-1.5 rounded-md bg-muted group-hover:bg-[var(--amber)]/10 transition-colors",children:(0,s.jsx)(f.A,{size:14,className:"text-muted-foreground group-hover:text-[var(--amber)]"})}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:"font-medium text-sm text-foreground group-hover:text-[var(--amber)] transition-colors truncate mb-1",title:e.filePath,children:e.filePath}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground line-clamp-2 leading-relaxed italic opacity-80 group-hover:opacity-100 transition-opacity",title:e.snippets[0]||"",children:e.snippets[0]||""})]})]})},e.filePath))})]}):null}var H=r(77148),V=r(44406),W=r(37206),U=r(8434);let B=(0,i.A)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var Y=r(7915);let _=(0,W.default)(()=>Promise.all([r.e(6079),r.e(1477),r.e(362)]).then(r.bind(r,90362)),{loadableGenerated:{webpack:()=>[90362]},ssr:!1,loading:()=>(0,s.jsx)("div",{className:"h-full w-full min-h-[400px] rounded-lg border border-border bg-background flex items-center justify-center",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground text-sm",children:[(0,s.jsx)("div",{className:"w-4 h-4 border-2 border-border border-t-foreground rounded-full animate-spin"}),(0,s.jsx)("span",{children:"Loading editor..."})]})})}),q=(0,W.default)(()=>Promise.all([r.e(5004),r.e(277),r.e(2647),r.e(6087)]).then(r.bind(r,16087)),{loadableGenerated:{webpack:()=>[16087]},ssr:!1}),K=[{id:"wysiwyg",icon:(0,s.jsx)(y.A,{size:12}),label:"WYSIWYG"},{id:"split",icon:(0,s.jsx)(U.A,{size:12}),label:"Split"},{id:"source",icon:(0,s.jsx)(B,{size:12}),label:"Source"},{id:"preview",icon:(0,s.jsx)(Y.A,{size:12}),label:"Preview"}];function G({value:e,onChange:t,viewMode:r,onViewModeChange:n}){return(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("div",{className:"flex items-center gap-1 p-1 bg-muted rounded-lg self-start",children:K.map(e=>(0,s.jsxs)("button",{onClick:()=>n(e.id),className:`flex items-center gap-1.5 px-2.5 py-1.5 rounded text-xs font-medium transition-colors ${r===e.id?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:[e.icon,e.label]},e.id))}),(0,s.jsxs)("div",{className:"rounded-xl overflow-hidden border border-border flex",style:{height:"calc(100vh - 160px)"},children:["wysiwyg"===r&&(0,s.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,s.jsx)(q,{value:e,onChange:t})}),"split"===r&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"w-1/2 h-full overflow-auto border-r border-border",children:(0,s.jsx)(_,{value:e,onChange:t,language:"markdown"})}),(0,s.jsx)("div",{className:"w-1/2 h-full overflow-auto bg-background",children:(0,s.jsx)("div",{className:"px-6 py-5",children:(0,s.jsx)(w.default,{content:e})})})]}),"source"===r&&(0,s.jsx)("div",{className:"w-full h-full overflow-auto",children:(0,s.jsx)(_,{value:e,onChange:t,language:"markdown"})}),"preview"===r&&(0,s.jsx)("div",{className:"w-full h-full overflow-auto bg-background",children:(0,s.jsx)("div",{className:"px-6 py-5",children:(0,s.jsx)(w.default,{content:e})})})]})]})}var J=r(21362),Z=r(36306),X=r(91337);function Q({content:e}){let{t}=(0,D.Y)(),{headings:r,minLevel:a}=(0,n.useMemo)(()=>{let t=function(e){let t=new Z.A,r=e.split("\n"),s=[],n=!1;for(let e of r){if(/^(`{3,}|~{3,})/.test(e)){n=!n;continue}if(n)continue;let r=e.match(/^(#{1,4})\s+(.+)/);if(r){let e=r[1].length,n=r[2].trim(),a=t.slug(n);s.push({id:a,text:n,level:e})}}return s}(e);return{headings:t,minLevel:t.length>0?Math.min(...t.map(e=>e.level)):1}},[e]),[o,l]=(0,n.useState)(""),[i,d]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=document.documentElement.style;return e.setProperty("--toc-width",i?"0px":"212px"),i?e.removeProperty("--toc-margin"):e.setProperty("--toc-margin","220px"),()=>{e.removeProperty("--toc-width"),e.removeProperty("--toc-margin")}},[i]);let c=(0,n.useRef)(null),u=(0,n.useRef)(null),m=(0,n.useRef)(new Map),x=(0,n.useCallback)(e=>{let t=m.current.get(e),r=u.current;if(!t||!r||!t.isConnected)return;let s=r.getBoundingClientRect(),n=t.getBoundingClientRect(),a=n.top<s.top+40,o=n.bottom>s.bottom-40;(a||o)&&t.scrollIntoView({block:"center",behavior:"auto"})},[]);return((0,n.useEffect)(()=>{if(0===r.length)return;let e=setTimeout(()=>{let e=r.map(e=>document.getElementById(e.id)).filter(Boolean);0!==e.length&&(c.current?.disconnect(),c.current=new IntersectionObserver(e=>{for(let t of e)if(t.isIntersecting){l(t.target.id),x(t.target.id);break}},{rootMargin:"-56px 0% -70% 0%",threshold:0}),e.forEach(e=>c.current?.observe(e)))},150);return()=>{clearTimeout(e),c.current?.disconnect()}},[r]),r.length<2)?null:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:()=>d(e=>!e),className:"hidden xl:flex fixed z-10 top-[50px] flex items-center justify-center w-5 h-8 rounded-l-md border border-r-0 border-border hover:bg-muted transition-colors",style:{right:`calc(var(--right-panel-width, 0px) + ${212*!i}px)`,background:"var(--background)",transition:"right 200ms ease-in-out"},title:i?t.view.tocExpand:t.view.tocCollapse,children:(0,s.jsx)(J.A,{size:11,className:"text-muted-foreground/60 transition-transform duration-200",style:{transform:i?"rotate(180deg)":"rotate(0deg)"}})}),(0,s.jsx)("aside",{className:"hidden xl:flex flex-col fixed z-10 overflow-hidden",style:{top:44,height:"calc(100vh - 44px)",width:212,right:"var(--right-panel-width, 0px)",transform:i?"translateX(212px)":"translateX(0)",transition:"transform 200ms ease-in-out, right 200ms ease-out"},children:(0,s.jsxs)("nav",{ref:u,"aria-label":t.view.tocTitle,className:"flex flex-col gap-0.5 overflow-y-auto min-h-0 flex-1 py-5 pl-2 pr-3 border-l border-border",style:{background:"var(--background)"},children:[(0,s.jsx)("p",{className:"text-2xs font-semibold uppercase tracking-wider px-2 mb-1 text-muted-foreground/50 shrink-0",children:t.view.tocTitle}),r.map((e,t)=>{let r=(e.level-a)*14,n=o===e.id,i=e.level>a;return(0,s.jsx)("a",{ref:t=>{t?m.current.set(e.id,t):m.current.delete(e.id)},href:`#${e.id}`,onClick:t=>((e,t)=>{e.preventDefault();let r=document.getElementById(t);if(!r)return;let s=r.getBoundingClientRect().top+window.scrollY-56;window.scrollTo({top:s,behavior:"smooth"}),l(t)})(t,e.id),className:(0,X.cn)("block text-xs py-1 rounded transition-colors duration-100 leading-snug shrink-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",n&&"font-medium"),style:{paddingLeft:`${8+r}px`,paddingRight:"8px",borderLeft:"2px solid",borderLeftColor:n?"var(--amber)":i?"var(--border)":"transparent",marginLeft:i?"7px":"0",...n?{color:"var(--amber)",background:"var(--amber-dim)"}:{color:"var(--muted-foreground)"}},title:e.text,children:(0,s.jsx)("span",{className:"line-clamp-2",suppressHydrationWarning:!0,children:e.text})},`${e.id}-${t}`)})]})})]})}let ee="findip-highlight",et="findip-active";function er({containerRef:e,onClose:t}){let{t:r}=(0,D.Y)(),[a,o]=(0,n.useState)(""),[l,i]=(0,n.useState)(0),d=(0,n.useRef)(null),c=(0,n.useRef)([]);(0,n.useEffect)(()=>{d.current?.focus()},[]);let m=(0,n.useCallback)(()=>{for(let e of c.current){let t=e.parentNode;t&&(t.replaceChild(document.createTextNode(e.textContent||""),e),t.normalize())}c.current=[]},[]);(0,n.useEffect)(()=>{m(),i(0);let t=e.current;if(!t||!a.trim())return;let r=a.toLowerCase(),s=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode:e=>e.parentElement?.closest("[data-find-in-page]")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),n=[];for(;s.nextNode();)n.push(s.currentNode);let o=[];for(let e of n){let t=e.textContent||"",s=t.toLowerCase(),n=0,a=[];for(;;){let e=s.indexOf(r,n);if(-1===e)break;a.push(e),n=e+r.length}if(0===a.length)continue;let l=e.parentNode;if(!l)continue;let i=document.createDocumentFragment(),d=0;for(let e of a){e>d&&i.appendChild(document.createTextNode(t.slice(d,e)));let s=document.createElement("mark");s.className=ee,s.textContent=t.slice(e,e+r.length),i.appendChild(s),o.push(s),d=e+r.length}d<t.length&&i.appendChild(document.createTextNode(t.slice(d))),l.replaceChild(i,e)}return c.current=o,i(+(o.length>0)),o.length>0&&(o[0].classList.add(et),o[0].scrollIntoView({block:"center",behavior:"smooth"})),()=>{}},[a,e,m]),(0,n.useEffect)(()=>()=>{m()},[m]);let x=c.current.length,p=(0,n.useCallback)(e=>{let t=c.current;if(0===t.length)return;for(let e of t)e.classList.remove(et);let r=((e-1)%t.length+t.length)%t.length;t[r].classList.add(et),t[r].scrollIntoView({block:"center",behavior:"smooth"}),i(r+1)},[]),h=(0,n.useCallback)(()=>p(l+1),[l,p]),f=(0,n.useCallback)(()=>p(l-1),[l,p]),g=(0,n.useCallback)(e=>{"Escape"===e.key?(e.preventDefault(),t()):"Enter"===e.key&&(e.preventDefault(),e.shiftKey?f():h())},[t,h,f]);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{children:`
|
|
2
|
-
mark.${ee} {
|
|
3
|
-
background: rgba(250, 204, 21, 0.3);
|
|
4
|
-
color: inherit;
|
|
5
|
-
border-radius: 2px;
|
|
6
|
-
padding: 0;
|
|
7
|
-
}
|
|
8
|
-
mark.${et} {
|
|
9
|
-
background: rgba(250, 204, 21, 0.7);
|
|
10
|
-
outline: 2px solid rgba(250, 204, 21, 0.5);
|
|
11
|
-
}
|
|
12
|
-
`}),(0,s.jsx)("div",{className:"sticky top-[96px] md:top-[44px] z-30 flex justify-end px-4 md:px-6 pointer-events-none","data-find-in-page":!0,children:(0,s.jsxs)("div",{className:"pointer-events-auto flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-border bg-card shadow-lg",children:[(0,s.jsx)("input",{ref:d,type:"text",value:a,onChange:e=>o(e.target.value),onKeyDown:g,placeholder:r.findInPage.placeholder,className:"w-[180px] sm:w-[220px] px-2 py-1 text-sm bg-transparent text-foreground placeholder:text-muted-foreground outline-none"}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground tabular-nums shrink-0 min-w-[48px] text-center font-display",children:a.trim()?x>0?r.findInPage.matchCount(l,x):r.findInPage.noResults:""}),(0,s.jsx)("button",{onClick:f,disabled:0===x,className:"p-1 rounded text-muted-foreground hover:text-foreground disabled:opacity-30 transition-colors","aria-label":"Previous match",children:(0,s.jsx)(A.A,{size:14})}),(0,s.jsx)("button",{onClick:h,disabled:0===x,className:"p-1 rounded text-muted-foreground hover:text-foreground disabled:opacity-30 transition-colors","aria-label":"Next match",children:(0,s.jsx)(E.A,{size:14})}),(0,s.jsx)("button",{onClick:t,className:"p-1 rounded text-muted-foreground hover:text-foreground transition-colors","aria-label":"Close find",children:(0,s.jsx)(u.A,{size:14})})]})})]})}var es=r(46838),en=r(70620),ea=r(59592),eo=r(51509),el=r(52592),ei=r(4235),ed=r(39498),ec=r(97631),eu=r(10377),em=r(24332),ex=r(92451),ep=r(94514);function eh({open:e,onClose:t,filePath:r,isDirectory:a,fileName:o}){let{t:l}=(0,D.Y)(),[i,d]=(0,n.useState)(a?"zip":"md"),[c,x]=(0,n.useState)("idle"),[p,h]=(0,n.useState)(""),g=(0,n.useRef)(null),b=(0,n.useCallback)(()=>{x("exporting"),h("");let e=new AbortController;g.current=e,fetch(`/api/export?path=${encodeURIComponent(r)}&format=${i}`,{signal:e.signal}).then(e=>{if(!e.ok){if((e.headers.get("content-type")??"").includes("json"))return e.json().then(e=>{throw Error(e.error||"Export failed")});throw Error(`Export failed (${e.status})`)}return e.blob().then(t=>({blob:t,res:e}))}).then(({blob:e,res:t})=>{let r=(t.headers.get("Content-Disposition")??"").match(/filename="?([^"]+)"?/),s=r?decodeURIComponent(r[1]):o,n=document.createElement("a");n.href=URL.createObjectURL(e),n.download=s,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(n.href),x("done"),ei.oR.success(l.export?.downloaded??"Downloaded")}).catch(e=>{"AbortError"!==e.name&&(x("error"),h(e.message??"Export failed"))}).finally(()=>{g.current=null})},[r,i,o,l]),y=(0,n.useCallback)(()=>{g.current&&(g.current.abort(),g.current=null),x("idle"),h("")},[]),j=(0,n.useCallback)(()=>{x("idle"),h("")},[]),w=(0,n.useCallback)(()=>{g.current&&g.current.abort(),g.current=null,x("idle"),h(""),t()},[t]);if(!e)return null;let N=a?[{value:"zip",label:l.export?.formatZipMd??"Markdown ZIP",desc:l.export?.formatZipMdDesc??"All files in original format",icon:(0,s.jsx)(em.A,{size:14})},{value:"zip-html",label:l.export?.formatZipHtml??"HTML ZIP",desc:l.export?.formatZipHtmlDesc??"All files as webpages",icon:(0,s.jsx)(ex.A,{size:14})}]:[{value:"md",label:l.export?.formatMd??"Markdown (.md)",desc:l.export?.formatMdDesc??"Original format, editable",icon:(0,s.jsx)(f.A,{size:14})},{value:"html",label:l.export?.formatHtml??"HTML (.html)",desc:l.export?.formatHtmlDesc??"Static webpage, shareable",icon:(0,s.jsx)(ex.A,{size:14})}];return(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm",onClick:"exporting"===c?void 0:w,children:(0,s.jsxs)("div",{className:"bg-card border border-border rounded-xl shadow-xl max-w-md w-full mx-4 animate-in fade-in-0 zoom-in-95 duration-200",role:"dialog","aria-modal":"true","aria-labelledby":"export-modal-title",onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(v.A,{size:15,className:"text-[var(--amber)]"}),(0,s.jsx)("h3",{id:"export-modal-title",className:"text-sm font-semibold",children:a?l.export?.exportSpace??"Export Space":l.export?.exportFile??"Export File"})]}),(0,s.jsx)("button",{onClick:w,className:"p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring","aria-label":l.export?.cancel??"Close",children:(0,s.jsx)(u.A,{size:14})})]}),(0,s.jsx)("div",{className:"px-5 py-4",children:"done"===c?(0,s.jsxs)("div",{className:"text-center py-6",children:[(0,s.jsx)("div",{className:"w-10 h-10 rounded-full bg-success/10 flex items-center justify-center mx-auto mb-3",children:(0,s.jsx)(ep.A,{size:20,className:"text-success"})}),(0,s.jsx)("p",{className:"text-sm font-medium",children:l.export?.done??"Export Complete"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:o})]}):"error"===c?(0,s.jsxs)("div",{className:"text-center py-6",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-error",children:l.export?.error??"Export failed"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:p})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{className:"text-xs text-muted-foreground mb-3 truncate",title:r,children:r}),(0,s.jsx)("p",{className:"text-xs font-medium text-foreground mb-2",children:l.export?.chooseFormat??"Choose format"}),(0,s.jsx)("div",{className:"space-y-1.5",children:N.map(e=>(0,s.jsxs)("label",{className:`flex items-start gap-3 p-3 rounded-lg border cursor-pointer transition-all ${i===e.value?"border-[var(--amber)]/40 bg-[var(--amber-dim)]":"border-border hover:border-border/80 hover:bg-muted/30"} ${e.disabled?"opacity-40 cursor-not-allowed":""}`,children:[(0,s.jsx)("input",{type:"radio",name:"export-format",value:e.value,checked:i===e.value,onChange:()=>!e.disabled&&d(e.value),disabled:e.disabled,className:"sr-only"}),(0,s.jsx)("span",{className:`mt-0.5 ${i===e.value?"text-[var(--amber)]":"text-muted-foreground"}`,children:e.icon}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-sm font-medium text-foreground",children:e.label}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground block mt-0.5",children:e.desc})]})]},e.value))})]})}),(0,s.jsx)("div",{className:"flex items-center justify-end gap-2 px-5 py-3 border-t border-border",children:"done"===c?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:j,className:"px-3 py-1.5 rounded-md text-xs font-medium text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:l.export?.downloadAgain??"Download Again"}),(0,s.jsx)("button",{onClick:w,className:"px-3 py-1.5 rounded-md text-xs font-medium bg-[var(--amber-dim)] text-[var(--amber-text)] hover:opacity-80 transition-colors",children:l.export?.close??"Done"})]}):"error"===c?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:w,className:"px-3 py-1.5 rounded-md text-xs font-medium text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:l.export?.cancel??"Cancel"}),(0,s.jsx)("button",{onClick:j,className:"px-3 py-1.5 rounded-md text-xs font-medium bg-[var(--amber-dim)] text-[var(--amber-text)] hover:opacity-80 transition-colors",children:l.export?.retry??"Retry"})]}):"exporting"===c?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:y,className:"px-3 py-1.5 rounded-md text-xs font-medium text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:l.export?.cancel??"Cancel"}),(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium text-[var(--amber-text)] opacity-70",children:[(0,s.jsx)(m.A,{size:12,className:"animate-spin"})," ",l.export?.exporting??"Exporting..."]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:w,className:"px-3 py-1.5 rounded-md text-xs font-medium text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:l.export?.cancel??"Cancel"}),(0,s.jsxs)("button",{onClick:b,className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium bg-[var(--amber-dim)] text-[var(--amber-text)] hover:opacity-80 transition-colors",children:[(0,s.jsx)(v.A,{size:12})," ",l.export?.exportButton??"Export"]})]})})]})})}function ef({filePath:e,content:t,extension:r,saveAction:i,appendRowAction:k,initialEditing:C=!1,isDraft:A=!1,draftDirectories:E=[],createDraftAction:S}){let{t:z}=(0,D.Y)(),{isPinned:M,togglePin:L}=(0,eu.Z)(),T=M(e),[P,$]=(0,n.useState)(!1),I=(0,n.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1),[F,W]=(0,H.Un)("_raw",e,!1),[U,B]=(0,n.useState)(!1),Y=(0,a.useRouter)(),_=["pdf","png","jpg","jpeg","gif","webp","svg","bmp","ico","mp3","wav","m4a","ogg","flac","aac","mp4","webm","mov","mkv"].includes(r),[q,K]=(0,n.useState)(!_&&(C||""===t)),[J,Z]=(0,n.useState)(t),[ee,et]=(0,n.useState)(t);(0,n.useEffect)(()=>{q||et(t)},[t,q]);let[em,ex]=(0,n.useTransition)(),[ep,ef]=(0,n.useState)(null),[eg,ev]=(0,n.useState)(!1),[eb,ey]=(0,n.useState)("wysiwyg"),[ej,ew]=(0,n.useState)(!1),eN=(0,n.useRef)(null),[ek,eC]=(0,n.useState)(!1),eA=(0,n.useRef)(null),eE=(0,n.useRef)(null),[eS,ez]=(0,n.useState)(!1),[eM,eL]=(0,n.useState)(!1),[eT,eR]=(0,n.useState)(""),[,eP]=(0,n.useTransition)(),e$=e.split("/").pop()||"Untitled.md",[eI,eD]=(0,n.useState)(A),[eF,eO]=(0,n.useState)(""),[eH,eV]=(0,n.useState)(e$);(0,n.useEffect)(()=>{if(!ek)return;let e=e=>{eA.current&&!eA.current.contains(e.target)&&eE.current&&!eE.current.contains(e.target)&&eC(!1)},t=e=>{"Escape"===e.key&&eC(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[ek]);let eW=(0,n.useCallback)(()=>{navigator.clipboard.writeText(e).catch(()=>{}),eC(!1)},[e]),eU=(0,n.useCallback)(()=>{eC(!1),eR(e.split("/").pop()??""),eL(!0)},[e]),eB=(0,n.useCallback)(()=>{let t=eT.trim();t&&t!==e.split("/").pop()?eP(async()=>{let r=await (0,ea.f)(e,t);eL(!1),r.success&&r.newPath&&(Y.push(`/view/${(0,X.O0)(r.newPath)}`),Y.refresh(),window.dispatchEvent(new Event("mindos:files-changed")))}):eL(!1)},[eT,e,Y]),eY=(0,n.useCallback)(()=>{ez(!1);let t=e.split("/").pop()??e;ex(async()=>{let r=await (0,eo.i)(e);if(r.success){if(r.trashId){let e=r.trashId;ei.oR.undo(`${z.trash?.movedToTrash??"Deleted"} ${t}`,async()=>{let t=await (0,el.Y)(e);t.success?(Y.refresh(),window.dispatchEvent(new Event("mindos:files-changed"))):ei.oR.error(t.error??"Undo failed")},{label:z.trash?.undo??"Undo"})}Y.push("/"),Y.refresh(),window.dispatchEvent(new Event("mindos:files-changed"))}})},[e,Y,z]),e_=!!I&&F,eq=(0,n.useCallback)(()=>{W(e=>!e)},[W]),eK=(0,n.useCallback)(()=>{B(e=>!e)},[B]),eG=(0,es.YB)(e,r),eJ="md"===r&&U?(0,es.YB)(e,r,"graph"):void 0,eZ=eJ||eG,eX="csv"===r,eQ=!q&&!!eZ&&(!e_||!!eJ),e0=(0,n.useMemo)(()=>eZ?eZ.component?eZ.component:eZ.load?(0,n.lazy)(eZ.load):null:null,[eZ]),e1=(0,n.useCallback)(()=>{Z(ee),K(!0),ef(null),ev(!1)},[ee]),e2=(0,n.useCallback)(()=>{A?Y.push("/"):(K(!1),ef(null))},[A,Y]),e5=(0,n.useCallback)(()=>{let e=eH.trim();if(!e)return void ef("Please enter a file name");if(/[/\\:*?"<>|]/.test(e)||e.includes(".."))return void ef("File name contains invalid characters");if(!S)return void ef("Draft save is not available");let t=e.endsWith(".md")||e.endsWith(".csv")?e:`${e}.md`,r=eF?`${eF}/${t}`:t;ef(null),ex(async()=>{try{await S(r,J),et(J),K(!1),eD(!1),ev(!0),setTimeout(()=>ev(!1),2500),Y.push(`/view/${(0,X.O0)(r)}`),Y.refresh()}catch(e){ef(e instanceof Error?e.message:"Failed to save")}})},[eH,S,eF,J,Y]),e3=(0,n.useCallback)(()=>{if(eX){K(!1),ev(!0),setTimeout(()=>ev(!1),2500);return}A?eD(!0):(ef(null),ex(async()=>{try{await i(J),et(J),K(!1),ev(!0),setTimeout(()=>ev(!1),2500)}catch(e){ef(e instanceof Error?e.message:"Failed to save")}}))},[eX,A,i,J]),e4=(0,n.useCallback)(async e=>{await i(e),et(e)},[i]);(0,n.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),q&&e3()),(e.metaKey||e.ctrlKey)&&"f"===e.key&&!q&&(e.preventDefault(),ew(!0)),"e"!==e.key||q||_||document.activeElement?.tagName!=="BODY"||e1(),"Escape"===e.key&&q&&e2()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[q,e3,e1,e2]);let[e6,e8]=(0,n.useState)(!1),[e9,e7]=(0,n.useState)([]),te=(0,n.useRef)(t),tt=(0,n.useRef)(!1),tr=(0,n.useRef)(null),ts=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!q&&tt.current&&t!==te.current&&""!==te.current){tt.current=!1;let e=(0,ec.m)(te.current,t),r=[],s=1;for(let t of e)"insert"===t.type?(r.push(s),s++):"equal"===t.type&&s++;r.length>0&&(e7(r),tr.current&&clearTimeout(tr.current),tr.current=setTimeout(()=>e7([]),6e3),setTimeout(()=>{let e=document.querySelector("[data-highlight-line]");e&&e.scrollIntoView({block:"center",behavior:"smooth"})},100))}te.current=t},[t,q]),(0,n.useEffect)(()=>{let e=null,t=()=>{q||(e&&clearTimeout(e),e=setTimeout(()=>{tt.current=!0,Y.refresh(),e8(!0),ts.current&&clearTimeout(ts.current),ts.current=setTimeout(()=>e8(!1),3e3)},300))};return window.addEventListener("mindos:files-changed",t),()=>{window.removeEventListener("mindos:files-changed",t),e&&clearTimeout(e)}},[q,Y]),(0,s.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,s.jsx)("div",{className:"sticky top-[52px] md:top-0 z-20 border-b border-border px-4 md:px-6 py-2.5",style:{background:"var(--background)"},children:(0,s.jsxs)("div",{className:"content-width flex items-center justify-between gap-2",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,s.jsx)("button",{onClick:()=>Y.back(),className:"md:hidden p-1 -ml-1 rounded text-muted-foreground hover:text-foreground transition-colors shrink-0","aria-label":"Go back",children:(0,s.jsx)(o.A,{size:16})}),(0,s.jsx)(V.A,{filePath:e})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5 md:gap-2 shrink-0",children:[e6&&!q&&(0,s.jsxs)("span",{className:"text-xs flex items-center gap-1.5 text-[var(--amber)] animate-in fade-in-0 duration-200",children:[(0,s.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--amber)]"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"updated"})]}),eg&&(0,s.jsxs)("span",{className:"text-xs flex items-center gap-1.5",style:{color:"var(--success)"},children:[(0,s.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:"var(--success)"}}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"saved"})]}),ep&&(0,s.jsx)("span",{className:"text-xs text-error hidden sm:inline",children:ep}),eG&&!q&&!A&&!eJ&&!_&&(0,s.jsxs)("button",{onClick:eq,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium transition-colors",style:{background:e_?"var(--amber)22":"var(--muted)",color:e_?"var(--amber)":"var(--muted-foreground)"},title:e_?`Switch to ${eG?.name}`:"View raw",children:[e_?(0,s.jsx)(l.A,{size:13}):(0,s.jsx)(d,{size:13}),(0,s.jsx)("span",{className:"hidden sm:inline",children:e_?eG.name:"Raw"})]}),!q&&!eQ&&!A&&!_&&(0,s.jsxs)("button",{onClick:e1,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium transition-colors",style:{background:"var(--muted)",color:"var(--muted-foreground)"},onMouseEnter:e=>{e.currentTarget.style.color="var(--foreground)",e.currentTarget.style.background="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--muted-foreground)",e.currentTarget.style.background="var(--muted)"},children:[(0,s.jsx)(c.A,{size:13}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"Edit"})]}),q&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{onClick:e2,disabled:em,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium transition-colors disabled:opacity-50",style:{background:"var(--muted)",color:"var(--muted-foreground)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--muted)"},children:[(0,s.jsx)(u.A,{size:13}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"Cancel"})]}),(0,s.jsxs)("button",{onClick:A&&eI?e5:e3,disabled:em,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium disabled:opacity-50",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[em?(0,s.jsx)(m.A,{size:13,className:"animate-spin"}):(0,s.jsx)(x.A,{size:13}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"Save"})]})]}),!A&&(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("button",{type:"button",onClick:()=>L(e),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:T?z.fileTree.removeFromFavorites:z.fileTree.pinToFavorites,children:(0,s.jsx)(p.A,{size:16,className:T?"fill-[var(--amber)] text-[var(--amber)]":""})}),(0,s.jsx)("button",{ref:eA,type:"button",onClick:()=>eC(e=>!e),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:z.view?.more??"More",children:(0,s.jsx)(h.A,{size:16})}),ek&&(0,s.jsxs)("div",{ref:eE,className:"absolute right-0 top-full mt-1 z-50 min-w-[160px] rounded-lg border border-border bg-card shadow-lg py-1",children:["md"===r&&!q&&!A&&(0,es.pl)("graph")&&(0,s.jsxs)("button",{className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground hover:bg-muted transition-colors text-left",onClick:()=>{eC(!1),eK()},children:[U?(0,s.jsx)(f.A,{size:14,className:"shrink-0"}):(0,s.jsx)(g,{size:14,className:"shrink-0"}),U?z.view?.switchToDoc??"Document view":z.view?.switchToGraph??"Wiki Graph"]}),(0,s.jsxs)("button",{className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground hover:bg-muted transition-colors text-left",onClick:()=>{eC(!1),$(!0)},children:[(0,s.jsx)(v.A,{size:14,className:"shrink-0"})," ",z.fileTree?.export??"Export"]}),(0,s.jsxs)("button",{className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground hover:bg-muted transition-colors text-left",onClick:eW,children:[(0,s.jsx)(b.A,{size:14,className:"shrink-0"})," ",z.view?.copyPath??z.fileTree?.copyPath??"Copy Path"]}),(0,s.jsxs)("button",{className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-foreground hover:bg-muted transition-colors text-left",onClick:eU,children:[(0,s.jsx)(y.A,{size:14,className:"shrink-0"})," ",z.view?.rename??"Rename"]}),(0,s.jsx)("div",{className:"my-1 border-t border-border/50"}),(0,s.jsxs)("button",{className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-error hover:bg-error/10 transition-colors text-left",onClick:()=>{eC(!1),ez(!0)},children:[(0,s.jsx)(j.A,{size:14,className:"shrink-0"})," ",z.view?.delete??"Delete"]})]})]})]})]})}),(0,s.jsx)("div",{className:"flex-1 px-4 md:px-6 py-6 md:py-8",children:q?(0,s.jsxs)("div",{className:"content-width",children:[A&&eI&&(0,s.jsxs)("div",{className:"mb-3 rounded-lg border border-border bg-card p-3 flex flex-col gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs text-muted-foreground",children:z.view?.saveDirectory??"Directory"}),(0,s.jsx)("div",{className:"mt-1",children:(0,s.jsx)(en.A,{dirPaths:E,value:eF,onChange:eO,rootLabel:z.home?.rootLevel??"Root"})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs text-muted-foreground",children:z.view?.saveFileName??"File name"}),(0,s.jsx)("input",{value:eH,onChange:e=>eV(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e5()},className:"mt-1 w-full px-2.5 py-1.5 text-sm bg-background border border-border rounded-lg text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring",placeholder:"Untitled.md"})]})]}),eX?(0,s.jsx)(R,{content:J,filePath:e,appendAction:k,saveAction:async e=>{await i(e),Z(e),et(e)}}):(0,s.jsx)(G,{value:J,onChange:Z,viewMode:eb,onViewModeChange:ey})]}):eQ&&e0?(0,s.jsxs)("div",{ref:eN,className:"content-width",children:[ej&&(0,s.jsx)(er,{containerRef:eN,onClose:()=>ew(!1)}),(0,s.jsx)(n.Suspense,{fallback:(0,s.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,s.jsx)(m.A,{size:20,className:"animate-spin text-muted-foreground"})}),children:(0,s.jsx)(e0,{filePath:e,content:ee,extension:r,saveAction:e4})}),(0,s.jsx)(O,{filePath:e})]}):(0,s.jsxs)("div",{ref:eN,className:"content-width",children:[ej&&(0,s.jsx)(er,{containerRef:eN,onClose:()=>ew(!1)}),"csv"===r?(0,s.jsx)(R,{content:ee,filePath:e}):"json"===r?(0,s.jsx)(N,{content:ee}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(w.default,{content:ee,highlightLines:e9,onDismissHighlight:()=>e7([]),emptyPlaceholder:z.view?.emptyNote}),(0,s.jsx)(Q,{content:ee})]}),(0,s.jsx)(O,{filePath:e})]})}),eM&&(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/60 backdrop-blur-sm",children:(0,s.jsxs)("div",{className:"bg-card border border-border rounded-lg shadow-lg p-4 w-80",children:[(0,s.jsx)("h3",{className:"text-sm font-medium mb-2",children:"Rename"}),(0,s.jsx)("input",{autoFocus:!0,value:eT,onChange:e=>eR(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eB(),"Escape"===e.key&&eL(!1)},className:"w-full bg-muted border border-border rounded-md px-3 py-1.5 text-sm text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 mt-3",children:[(0,s.jsx)("button",{onClick:()=>eL(!1),className:"px-3 py-1.5 rounded-md text-xs bg-muted text-muted-foreground hover:bg-accent transition-colors",children:z.view?.cancel??"Cancel"}),(0,s.jsx)("button",{onClick:eB,className:"px-3 py-1.5 rounded-md text-xs bg-[var(--amber)] text-[var(--amber-foreground)] transition-colors",children:z.view?.rename??"Rename"})]})]})}),(0,s.jsx)(ed.TM,{open:eS,title:z.view?.delete??"Delete",message:z.view?.deleteConfirm?.(e.split("/").pop()??"")??`Delete "${e.split("/").pop()}"?`,confirmLabel:z.view?.delete??"Delete",cancelLabel:z.view?.cancel??"Cancel",variant:"destructive",onCancel:()=>ez(!1),onConfirm:eY}),(0,s.jsx)(eh,{open:P,onClose:()=>$(!1),filePath:e,isDirectory:!1,fileName:e.split("/").pop()??e})]})}},21362:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},22356:(e,t,r)=>{"use strict";r.d(t,{h:()=>s,n:()=>n});class s extends Error{constructor(e,t,r){super(e),this.name="ApiError",this.status=t,this.code=r}}async function n(e,t={}){let r,a,o,{timeout:l=3e4,signal:i,...d}=t;if((l>0||i)&&(r=new AbortController),l>0&&r&&(a=setTimeout(()=>{r.abort(Error(`Request timed out after ${Math.round(l/1e3)}s`))},l)),i&&r)if(i.aborted)r.abort();else{let e=()=>r?.abort();i.addEventListener("abort",e,{once:!0}),o=()=>{i.removeEventListener("abort",e)}}let c=r?.signal??i;try{let t=await fetch(e,{...d,signal:c});if(!t.ok){let e,r=`Request failed (${t.status})`;try{let s=await t.json();s?.error?.code&&s?.error?.message?(r=s.error.message,e=s.error.code):s?.error&&(r="string"==typeof s.error?s.error:s.error.message??r)}catch{}throw new s(r,t.status,e)}return await t.json()}finally{a&&clearTimeout(a),o&&o()}}},24332:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]])},33210:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},34367:(e,t,r)=>{"use strict";r.d(t,{default:()=>I});var s=r(95155),n=r(12115),a=r(98500),o=r.n(a),l=r(38798),i=r(33078),d=r(48368),c=r(42129),u=r(997),m=r(97810),x=r(67635),p=r(41585),h=r(49387),f=r(89363),g=r(33210),v=r(93631),b=r(37595);let y=(0,r(90425).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);var j=r(44406),w=r(91337),N=r(82125),k=r(35581);async function C(e){try{await navigator.clipboard.writeText(e)}catch{}}function A({node:e}){return"directory"===e.type?(0,s.jsx)(l.A,{size:16,className:"text-yellow-400 shrink-0"}):".csv"===e.extension?(0,s.jsx)(i.A,{size:16,className:"text-success shrink-0"}):(0,s.jsx)(d.A,{size:16,className:"text-muted-foreground shrink-0"})}function E({node:e}){return"directory"===e.type?(0,s.jsx)(c.A,{size:28,className:"text-yellow-400"}):".csv"===e.extension?(0,s.jsx)(i.A,{size:28,className:"text-success"}):(0,s.jsx)(d.A,{size:28,className:"text-muted-foreground"})}let S="mindos-dir-view",z="show-hidden-files";function M(e){let t=t=>{t.key===z&&e()},r=()=>e();return window.addEventListener("storage",t),window.addEventListener("mindos:hidden-files-changed",r),()=>{window.removeEventListener("storage",t),window.removeEventListener("mindos:hidden-files-changed",r)}}function L(){return"true"===localStorage.getItem(z)}function T({icon:e,title:t,lines:r,viewAllHref:n,viewAllLabel:a}){return 0===r.length?null:(0,s.jsxs)("div",{className:"bg-muted/30 border border-border/40 rounded-lg px-4 py-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 mb-2",children:[e,(0,s.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:t})]}),(0,s.jsx)("div",{className:"space-y-1",children:r.map((e,t)=>(0,s.jsxs)("p",{className:"text-sm text-muted-foreground/80 leading-relaxed",suppressHydrationWarning:!0,children:["\xb7 ",e]},t))}),(0,s.jsx)("div",{className:"flex justify-end mt-2",children:(0,s.jsx)(o(),{href:n,className:"text-xs hover:underline transition-colors text-[var(--amber)]",children:a})})]})}function R({preview:e,dirPath:t}){let{t:r}=(0,k.Y)(),n=e.instructionLines.length>0,a=e.readmeLines.length>0;return n||a?(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 mb-6",children:[n&&(0,s.jsx)(T,{icon:(0,s.jsx)(u.A,{size:14,className:"text-muted-foreground shrink-0"}),title:r.fileTree.rules,lines:e.instructionLines,viewAllHref:`/view/${(0,w.O0)(`${t}/INSTRUCTION.md`)}`,viewAllLabel:r.fileTree.viewAll}),a&&(0,s.jsx)(T,{icon:(0,s.jsx)(m.A,{size:14,className:"text-muted-foreground shrink-0"}),title:r.fileTree.about,lines:e.readmeLines,viewAllHref:`/view/${(0,w.O0)(`${t}/README.md`)}`,viewAllLabel:r.fileTree.viewAll})]}):null}function P({x:e,y:t,path:r,label:a,onClose:o}){let l=(0,n.useRef)(null),{t:i}=(0,k.Y)();(0,n.useEffect)(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&o()},t=e=>{"Escape"===e.key&&o()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[o]);let d=Math.min(e,window.innerWidth-200),c=Math.min(t,window.innerHeight-60);return(0,s.jsx)("div",{ref:l,className:"fixed z-50 min-w-[160px] bg-card border border-border rounded-lg shadow-lg py-1",style:{top:c,left:d},children:(0,s.jsxs)("button",{className:"w-full flex items-center gap-2 px-3 py-1.5 text-sm text-foreground hover:bg-muted transition-colors text-left",onClick:()=>{C(r),o()},children:[(0,s.jsx)(x.A,{size:14,className:"shrink-0"})," ",i.fileTree.copyPath]})})}function $({dirPath:e}){let{t}=(0,k.Y)(),r="mindos-space-uninit-dismissed:"+e,[a,l]=(0,n.useState)(!1);return((0,n.useEffect)(()=>{"1"===localStorage.getItem(r)&&l(!0)},[r]),a)?null:(0,s.jsx)("div",{className:"mb-4 rounded-lg border border-error/40 bg-error/5 px-4 py-3",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)(p.A,{size:18,className:"text-error shrink-0 mt-0.5"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:t.dirView.uninitTitle}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:t.dirView.uninitDesc}),(0,s.jsxs)("div",{className:"flex items-center gap-3 mt-2.5",children:[(0,s.jsxs)(o(),{href:`/view/${(0,w.O0)(`${e}/README.md`)}`,className:"inline-flex items-center gap-1 text-xs text-[var(--amber)] hover:underline",children:[(0,s.jsx)(h.A,{size:12})," ",t.dirView.uninitEditReadme]}),(0,s.jsxs)(o(),{href:`/view/${(0,w.O0)(`${e}/INSTRUCTION.md`)}`,className:"inline-flex items-center gap-1 text-xs text-[var(--amber)] hover:underline",children:[(0,s.jsx)(h.A,{size:12})," ",t.dirView.uninitEditInstruction]}),(0,s.jsxs)(o(),{href:"/settings",className:"inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",children:[(0,s.jsx)(f.A,{size:12})," ",t.dirView.uninitSettings]})]})]}),(0,s.jsx)("button",{onClick:()=>{localStorage.setItem(r,"1"),l(!0)},className:"text-muted-foreground hover:text-foreground transition-colors p-0.5 shrink-0","aria-label":"Dismiss",children:(0,s.jsx)(g.A,{size:14})})]})})}function I({dirPath:e,entries:t,spacePreview:r}){let[a,l]=[(0,n.useSyncExternalStore)(e=>{let t=()=>e();return window.addEventListener("mindos-dir-view-change",t),()=>window.removeEventListener("mindos-dir-view-change",t)},()=>{let e=localStorage.getItem(S);return"list"===e||"grid"===e?e:"grid"},()=>"grid"),e=>{localStorage.setItem(S,e),window.dispatchEvent(new Event("mindos-dir-view-change"))}],i=(0,n.useSyncExternalStore)(M,L,()=>!1),{t:d}=(0,k.Y)(),u=e=>(0,w.KW)(e,d.home.relativeTime),[m,x]=(0,n.useState)(null),p=(0,n.useCallback)((e,t)=>{e.preventDefault(),e.stopPropagation(),x({x:e.clientX,y:e.clientY,path:t})},[]),h=(0,n.useMemo)(()=>i?t:t.filter(e=>"file"!==e.type||!N.C.has(e.name)),[t,i]),f=(0,n.useMemo)(()=>{let e=new Map;for(let t of h)e.set(t.path,function e(t){return"file"===t.type?1:(t.children||[]).reduce((t,r)=>t+e(r),0)}(t));return e},[h]);return(0,s.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,s.jsx)("div",{className:"sticky top-[52px] md:top-0 z-20 border-b border-border px-4 md:px-6 py-2.5 bg-background",children:(0,s.jsxs)("div",{className:"max-w-[860px] mx-auto flex items-center justify-between gap-2",children:[(0,s.jsx)("div",{className:"min-w-0 flex-1",children:(0,s.jsx)(j.A,{filePath:e})}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,s.jsxs)(o(),{href:`/view/${(0,w.O0)(e?`${e}/Untitled.md`:"Untitled.md")}`,className:"flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-colors text-muted-foreground hover:text-foreground hover:bg-muted",children:[(0,s.jsx)(v.A,{size:13}),(0,s.jsx)("span",{className:"hidden sm:inline",children:d.dirView.newFile})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 p-1 bg-muted rounded-lg",children:[(0,s.jsx)("button",{onClick:()=>l("grid"),className:`p-1.5 rounded transition-colors ${"grid"===a?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,title:d.dirView.gridView,children:(0,s.jsx)(b.A,{size:14})}),(0,s.jsx)("button",{onClick:()=>l("list"),className:`p-1.5 rounded transition-colors ${"list"===a?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,title:d.dirView.listView,children:(0,s.jsx)(y,{size:14})})]})]})]})}),(0,s.jsx)("div",{className:"flex-1 px-4 md:px-6 py-6",children:(0,s.jsxs)("div",{className:"max-w-[860px] mx-auto",children:[r?.isTemplate&&(0,s.jsx)($,{dirPath:e}),r&&!r.isTemplate&&(0,s.jsx)(R,{preview:r,dirPath:e}),0===h.length?(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:d.dirView.emptyFolder}):"grid"===a?(0,s.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-5 gap-3",children:h.map(e=>(0,s.jsxs)(o(),{href:`/view/${(0,w.O0)(e.path)}`,onContextMenu:t=>p(t,e.path),className:"directory"===e.type?"flex flex-col items-center gap-1.5 p-3 rounded-xl border border-border bg-card hover:bg-accent hover:border-border/80 transition-all duration-100 text-center":"flex flex-col items-center gap-2 p-4 rounded-xl border border-border bg-card hover:bg-accent hover:border-border/80 transition-all duration-100 text-center",children:["directory"===e.type?(0,s.jsx)(c.A,{size:22,className:"text-yellow-400"}):(0,s.jsx)(E,{node:e}),(0,s.jsx)("span",{className:"text-xs text-foreground leading-snug line-clamp-2 w-full",title:e.name,suppressHydrationWarning:!0,children:e.name}),"directory"===e.type&&(0,s.jsx)("span",{className:"text-2xs text-muted-foreground",children:d.dirView.fileCount(f.get(e.path)??0)}),"file"===e.type&&e.mtime&&(0,s.jsx)("span",{className:"text-2xs text-muted-foreground",suppressHydrationWarning:!0,children:u(e.mtime)})]},e.path))}):(0,s.jsx)("div",{className:"flex flex-col divide-y divide-border border border-border rounded-xl overflow-hidden",children:h.map(e=>(0,s.jsxs)(o(),{href:`/view/${(0,w.O0)(e.path)}`,onContextMenu:t=>p(t,e.path),className:"flex items-center gap-3 px-4 py-3 bg-card hover:bg-accent transition-colors duration-100",children:[(0,s.jsx)(A,{node:e}),(0,s.jsx)("span",{className:"flex-1 text-sm text-foreground truncate",title:e.name,suppressHydrationWarning:!0,children:e.name}),"directory"===e.type?(0,s.jsx)("span",{className:"text-xs text-muted-foreground shrink-0",children:d.dirView.fileCount(f.get(e.path)??0)}):e.mtime?(0,s.jsx)("span",{className:"text-xs text-muted-foreground shrink-0 tabular-nums",suppressHydrationWarning:!0,children:u(e.mtime)}):null]},e.path))})]})}),m&&(0,s.jsx)(P,{x:m.x,y:m.y,path:m.path,label:d.fileTree.copyPath,onClose:()=>x(null)})]})}},41585:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},44406:(e,t,r)=>{"use strict";r.d(t,{A:()=>m});var s=r(95155),n=r(98500),a=r.n(n),o=r(33078),l=r(48368),i=r(38798),d=r(66614),c=r(21362);function u({name:e}){let t=e.includes(".")?e.slice(e.lastIndexOf(".")).toLowerCase():"";return".csv"===t?(0,s.jsx)(o.A,{size:13,className:"text-success shrink-0"}):t?(0,s.jsx)(l.A,{size:13,className:"text-muted-foreground shrink-0"}):(0,s.jsx)(i.A,{size:13,className:"text-yellow-400 shrink-0"})}function m({filePath:e}){let t=e.split("/");return(0,s.jsxs)("nav",{className:"flex items-center gap-0.5 text-xs text-muted-foreground flex-wrap",children:[(0,s.jsx)(a(),{href:"/",className:"p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors",title:"Home",children:(0,s.jsx)(d.A,{size:14})}),t.map((e,r)=>{let n=r===t.length-1,o="/view/"+t.slice(0,r+1).map(encodeURIComponent).join("/");return(0,s.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,s.jsx)(c.A,{size:12,className:"text-muted-foreground/50 shrink-0"}),n?(0,s.jsxs)("span",{className:"flex items-center gap-1.5 px-2 py-1 text-foreground font-medium",children:[(0,s.jsx)(u,{name:e}),(0,s.jsx)("span",{suppressHydrationWarning:!0,children:e})]}):(0,s.jsx)(a(),{href:o,className:"px-2 py-1 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors truncate max-w-[200px]",title:e,children:(0,s.jsx)("span",{suppressHydrationWarning:!0,children:e})})]},r)})]})}},46838:(e,t,r)=>{"use strict";r.d(t,{$7:()=>o,MZ:()=>c,TS:()=>i,UG:()=>a,YB:()=>d,pl:()=>l});let s=[],n=new Set;function a(){try{let e=localStorage.getItem("mindos-disabled-renderers");n=new Set(e?JSON.parse(e):[])}catch{n=new Set}}function o(e,t){let r=s.find(t=>t.id===e);r?.core||(t?n.delete(e):n.add(e),localStorage.setItem("mindos-disabled-renderers",JSON.stringify([...n])))}function l(e){let t=s.find(t=>t.id===e);return!!t?.core||!n.has(e)}function i(e){s.find(t=>t.id===e.id)||s.push(e)}function d(e,t,r){if(r){let e=s.find(e=>e.id===r);return e&&l(e.id)?e:void 0}return s.find(r=>l(r.id)&&r.match({filePath:e,extension:t}))}function c(){return s.filter(e=>!e.appBuiltinFeature)}},51509:(e,t,r)=>{"use strict";r.d(t,{i:()=>n});var s=r(9339);let n=(0,s.createServerReference)("4034f606760908535f5f7cd820a62714756441642c",s.callServer,void 0,s.findSourceMapURL,"deleteFileAction")},51914:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},52592:(e,t,r)=>{"use strict";r.d(t,{Y:()=>n});var s=r(9339);let n=(0,s.createServerReference)("40d1ccdb3bfbd3b45067cf4fc3593e34d34aec672e",s.callServer,void 0,s.findSourceMapURL,"undoDeleteAction")},55243:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},56699:(e,t,r)=>{Promise.resolve().then(r.bind(r,16416)),Promise.resolve().then(r.bind(r,34367))},59592:(e,t,r)=>{"use strict";r.d(t,{f:()=>n});var s=r(9339);let n=(0,s.createServerReference)("60243dca79d5ab1ef1e0297569c5320b53b6f27b29",s.callServer,void 0,s.findSourceMapURL,"renameFileAction")},60285:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]])},63637:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>y});var s=r(95155),n=r(66804),a=r(32957),o=r(98076),l=r(96182),i=r(16535),d=r(12115),c=r(94514),u=r(67635),m=r(33210),x=r(7834),p=r(4235),h=r(7337);function f({code:e}){let[t,r]=(0,d.useState)(!1),n=(0,d.useCallback)(()=>{(0,x.l)(e).then(e=>{e&&(r(!0),setTimeout(()=>r(!1),2e3),p.oR.copy())})},[e]);return(0,s.jsx)("button",{onClick:n,className:" absolute top-2.5 right-2.5 p-1.5 rounded-md bg-muted hover:bg-accent text-muted-foreground hover:text-foreground transition-colors duration-100 opacity-0 group-hover:opacity-100 ",title:"Copy code",children:t?(0,s.jsx)(c.A,{size:13}):(0,s.jsx)(u.A,{size:13})})}function g(e){let{node:t,inline:r,ordered:s,depth:n,isHeader:a,...o}=e;return o}function v(e){let t=({children:t,...r})=>(0,s.jsx)(e,{...g(r),suppressHydrationWarning:!0,children:t});return t.displayName=e,t}let b={h1:v("h1"),h2:v("h2"),h3:v("h3"),h4:v("h4"),h5:v("h5"),h6:v("h6"),code:({children:e,node:t,...r})=>(0,s.jsx)("code",{...g(r),suppressHydrationWarning:!0,children:e}),pre({children:e,node:t,...r}){let n="";return e&&"object"==typeof e&&"props"in e&&(n=function e(t){return"string"==typeof t?t:Array.isArray(t)?t.map(e).join(""):t&&"object"==typeof t&&"props"in t?e(t.props?.children):""}(e.props?.children)),(0,s.jsxs)("div",{className:"relative group",children:[(0,s.jsx)("pre",{...g(r),suppressHydrationWarning:!0,children:e}),(0,s.jsx)(f,{code:n})]})},li:({children:e,node:t,...r})=>(0,s.jsx)("li",{...g(r),suppressHydrationWarning:!0,children:e}),p:({children:e,node:t,...r})=>(0,s.jsx)("p",{...g(r),suppressHydrationWarning:!0,children:e}),a({href:e,children:t,node:r,...n}){let a=e?.startsWith("http");return(0,s.jsx)("a",{href:e,target:a?"_blank":void 0,rel:a?"noopener noreferrer":void 0,...g(n),children:t})},img({src:e,alt:t,node:r,...n}){if(!e)return null;let a="string"==typeof e?(0,h.X)(e):e;return(0,s.jsx)("img",{src:a,alt:t??"",...g(n)})}};function y({content:e,highlightLines:t,onDismissHighlight:r,emptyPlaceholder:d}){let c=t&&t.length>0;return!e.trim()&&d?(0,s.jsx)("div",{className:"py-12 text-center text-sm text-muted-foreground/50",children:d}):(0,s.jsxs)("div",{children:[c&&(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-2 rounded-md border px-3 py-2 text-xs animate-in fade-in-0 duration-300",style:{borderColor:"color-mix(in srgb, var(--amber) 40%, var(--border))",background:"color-mix(in srgb, var(--amber) 8%, var(--card))",color:"var(--amber)"},"data-highlight-line":!0,children:[(0,s.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--amber)] animate-pulse shrink-0"}),(0,s.jsxs)("span",{className:"font-display font-medium flex-1",children:[t.length," line",1!==t.length?"s":""," updated by AI"]}),r&&(0,s.jsx)("button",{type:"button",onClick:r,className:"p-0.5 rounded hover:bg-[var(--amber)]/15 transition-colors shrink-0","aria-label":"Dismiss",children:(0,s.jsx)(m.A,{size:12})})]}),(0,s.jsx)("div",{className:"prose max-w-none",children:(0,s.jsx)(n.oz,{remarkPlugins:[a.A],rehypePlugins:[i.A,o.A,l.A],components:b,children:e})})]})}},66614:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]])},67635:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},68459:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},70620:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var s=r(95155),n=r(12115),a=r(47650),o=r(21362),l=r(38798),i=r(94514),d=r(66088),c=r(91337);function u({dirPaths:e,value:t,onChange:r,rootLabel:u="Root"}){let[m,x]=(0,n.useState)(!1),[p,h]=(0,n.useState)(t),[f,g]=(0,n.useState)(null),v=(0,n.useRef)(null),b=(0,n.useRef)(null);(0,n.useEffect)(()=>{h(t)},[t]);let y=(0,n.useCallback)(()=>{if(!v.current)return;let e=v.current.getBoundingClientRect(),t=window.innerHeight-e.bottom,r=e.top,s=t<208&&r>t;g({top:s?e.top:e.bottom,left:e.left,width:e.width,flipUp:s})},[]);(0,n.useEffect)(()=>m?(y(),window.addEventListener("scroll",y,!0),window.addEventListener("resize",y),()=>{window.removeEventListener("scroll",y,!0),window.removeEventListener("resize",y)}):void g(null),[m,y]);let j=(0,n.useCallback)(()=>x(!1),[]);(0,n.useEffect)(()=>{if(!m)return;let e=e=>{"Escape"===e.key&&(e.preventDefault(),j())},t=e=>{let t=e.target;v.current?.contains(t)||b.current?.contains(t)||j()};return document.addEventListener("keydown",e),document.addEventListener("mousedown",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("mousedown",t)}},[m,j]);let w=(0,n.useMemo)(()=>{let t=p?p+"/":"";return e.filter(e=>{if(!e.startsWith(t))return!1;let r=e.slice(t.length);return r.length>0&&!r.includes("/")}).sort()},[e,p]),N=(0,n.useMemo)(()=>p?p.split("/"):[],[p]),k=e=>{if(e<0)h(""),r("");else{let t=N.slice(0,e+1).join("/");h(t),r(t)}},C=t?t.split("/").map(e=>(0,c.vr)(e)).join(" / "):"/ "+u,A=m&&f&&(0,a.createPortal)((0,s.jsxs)("div",{ref:b,className:"fixed z-[9999] rounded-lg border border-[var(--amber)] bg-card shadow-lg overflow-hidden flex flex-col",style:{left:f.left,width:f.width,maxHeight:200,...f.flipUp?{bottom:window.innerHeight-f.top+4}:{top:f.top+4}},children:[(0,s.jsxs)("div",{className:"flex items-center gap-0.5 px-3 py-1.5 bg-muted/30 border-b border-border overflow-x-auto text-xs shrink-0",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>k(-1),className:`shrink-0 px-1.5 py-0.5 rounded transition-colors ${""===p?"text-[var(--amber)] font-medium":"text-muted-foreground hover:text-foreground"}`,children:["/ ",u]}),N.map((e,t)=>(0,s.jsxs)("span",{className:"flex items-center gap-0.5 shrink-0",children:[(0,s.jsx)(o.A,{size:10,className:"text-muted-foreground/50"}),(0,s.jsx)("button",{type:"button",onClick:()=>k(t),className:`px-1.5 py-0.5 rounded transition-colors truncate max-w-[100px] ${t===N.length-1?"text-[var(--amber)] font-medium":"text-muted-foreground hover:text-foreground"}`,children:e})]},t))]}),w.length>0?(0,s.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:w.map(t=>{let n=t.split("/").pop()||t,a=e.some(e=>e.startsWith(t+"/"));return(0,s.jsxs)("button",{type:"button",onClick:()=>{h(t),r(t)},className:"w-full flex items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-muted/60 transition-colors",children:[(0,s.jsx)(l.A,{size:12,className:"shrink-0 text-[var(--amber)]"}),(0,s.jsx)("span",{className:"flex-1 text-left truncate",children:n}),a&&(0,s.jsx)(o.A,{size:11,className:"shrink-0 text-muted-foreground/40"})]},t)})}):(0,s.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground/50 text-center",children:"—"}),(0,s.jsx)("button",{type:"button",onClick:j,className:"w-full py-1.5 flex items-center justify-center gap-1 text-xs font-medium text-[var(--amber)] border-t border-border hover:bg-muted/30 transition-colors shrink-0",children:(0,s.jsx)(i.A,{size:12})})]}),document.body);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{ref:v,type:"button",onClick:()=>x(e=>!e),"aria-haspopup":"true","aria-expanded":m,className:`w-full flex items-center gap-2 px-3 py-2 text-sm rounded-lg border bg-background text-foreground transition-colors text-left focus-visible:ring-1 focus-visible:ring-ring outline-none ${m?"border-[var(--amber)]":"border-border hover:border-[var(--amber)]/40"}`,children:[(0,s.jsx)(l.A,{size:14,className:"shrink-0 text-[var(--amber)]"}),(0,s.jsx)("span",{className:"flex-1 truncate",children:C}),(0,s.jsx)(d.A,{size:14,className:`shrink-0 text-muted-foreground transition-transform duration-150 ${m?"rotate-180":""}`})]}),A]})}},73321:(e,t,r)=>{"use strict";var s=r(74645);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},77148:(e,t,r)=>{"use strict";r.d(t,{Un:()=>a});var s=r(12115);let n="mindos-renderer-state-change";function a(e,t,r){let a=`mindos-renderer:${e}:${t}`,o=(0,s.useRef)({key:a,raw:null,parsed:r});return o.current.key!==a&&(o.current={key:a,raw:null,parsed:r}),[(0,s.useSyncExternalStore)(e=>{let t=()=>e();return window.addEventListener("storage",t),window.addEventListener(n,t),()=>{window.removeEventListener("storage",t),window.removeEventListener(n,t)}},()=>{try{let e=localStorage.getItem(a);if(e===o.current.raw)return o.current.parsed;if(null===e)return o.current={key:a,raw:null,parsed:r},r;let t=JSON.parse(e);return o.current={key:a,raw:e,parsed:t},t}catch{return r}},()=>r),(0,s.useCallback)(e=>{try{let t=(()=>{try{let e=localStorage.getItem(a);return null!==e?JSON.parse(e):r}catch{return r}})(),s="function"==typeof e?e(t):e,n=JSON.stringify(s);localStorage.setItem(a,n),o.current={key:a,raw:n,parsed:s}}catch{}window.dispatchEvent(new Event(n))},[a,r])]}},80723:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},82125:(e,t,r)=>{"use strict";r.d(t,{A:()=>n,C:()=>s});let s=new Set(["INSTRUCTION.md","README.md","CONFIG.json","CHANGELOG.md"]),n=new Set(["TODO.md"])},91337:(e,t,r)=>{"use strict";r.d(t,{IX:()=>i,KW:()=>l,O0:()=>o,cn:()=>a,vr:()=>d});var s=r(29722),n=r(622);function a(...e){return(0,n.QP)((0,s.$)(e))}function o(e){return e.split("/").map(encodeURIComponent).join("/")}function l(e,t){let r=Date.now()-e,s=Math.floor(r/6e4),n=Math.floor(r/36e5),a=Math.floor(r/864e5);return s<1?t.justNow:s<60?t.minutesAgo(s):n<24?t.hoursAgo(n):a<7?t.daysAgo(a):new Date(e).toLocaleDateString()}function i(e){let t=e.match(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+/u);return t?.[0]??""}function d(e){return e.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||e}},92451:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},93631:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]])},97631:(e,t,r)=>{"use strict";function s(e,t){let r=e.split("\n"),s=t.split("\n"),n=r.length,a=s.length,o=Array.from({length:n+1},()=>Array(a+1).fill(0));for(let e=n-1;e>=0;e--)for(let t=a-1;t>=0;t--)o[e][t]=r[e]===s[t]?1+o[e+1][t+1]:Math.max(o[e+1][t],o[e][t+1]);let l=[],i=0,d=0;for(;i<n||d<a;){if(i<n&&d<a&&r[i]===s[d]){l.push({type:"equal",text:r[i]}),i+=1,d+=1;continue}if(d<a&&(i>=n||o[i][d+1]>=o[i+1][d])){l.push({type:"insert",text:s[d]}),d+=1;continue}l.push({type:"delete",text:r[i]}),i+=1}return l}function n(e,t=2){let r=new Set;e.forEach((s,n)=>{if("equal"!==s.type)for(let s=Math.max(0,n-t);s<=Math.min(e.length-1,n+t);s++)r.add(s)});let s=[],a=-1;for(let t=0;t<e.length;t++){if(r.has(t)){-1!==a&&(s.push({type:"gap",count:t-a}),a=-1),s.push(e[t]);continue}-1===a&&(a=t)}return -1!==a&&s.push({type:"gap",count:e.length-a}),s}r.d(t,{S:()=>n,m:()=>s})},97810:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])}},e=>{e.O(0,[9186,8409,1369,3013,9905,5581,8252,8441,3794,7358],()=>e(e.s=56699)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6023],{4235:(e,t,r)=>{"use strict";r.d(t,{B1:()=>i,X8:()=>d,dV:()=>l,oR:()=>u});let s=[],n=[],a=0;function o(){for(let e of n)e()}function i(e){return n=[...n,e],()=>{n=n.filter(t=>t!==e)}}function l(){return s}function d(e){s=s.filter(t=>t.id!==e),o()}function c(e){let t=`toast-${++a}`,r={id:t,message:e.message,type:e.type??"info",duration:e.duration??2e3,action:e.action};s=[...s,r].slice(-3),o(),r.duration>0&&setTimeout(()=>d(t),r.duration)}function u(e,t){c({message:e,...t})}u.success=(e,t)=>c({message:e,type:"success",duration:t}),u.undo=(e,t,r)=>c({message:e,type:"info",duration:r?.duration??5e3,action:{label:r?.label??"Undo",onClick:t}}),u.error=(e,t)=>c({message:e,type:"error",duration:t}),u.copy=(e="Copied")=>c({message:e,type:"success",duration:1500})},6296:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},10377:(e,t,r)=>{"use strict";r.d(t,{Z:()=>p});var s=r(12115);let n="mindos-pinned-files",a="mindos:pins-changed";function o(){try{let e=localStorage.getItem(n);return e?JSON.parse(e):[]}catch{return[]}}function i(){return c}let l=[];function d(){return l}let c=[],u=!1;function m(){u||(c=o(),u=!0)}function x(e){m();let t=t=>{t.key===n&&(c=o(),e())},r=()=>{c=o(),e()};return window.addEventListener("storage",t),window.addEventListener(a,r),()=>{window.removeEventListener("storage",t),window.removeEventListener(a,r)}}function h(e){c=e;try{localStorage.setItem(n,JSON.stringify(e))}catch{}window.dispatchEvent(new Event(a))}function p(){m();let e=(0,s.useSyncExternalStore)(x,i,d),t=(0,s.useCallback)(t=>e.includes(t),[e]),r=(0,s.useCallback)(e=>{let t=o(),r=t.indexOf(e);r>=0?t.splice(r,1):t.unshift(e),h(t)},[]);return{pinnedFiles:e,isPinned:t,togglePin:r,reorderPins:(0,s.useCallback)(e=>{h(e)},[]),removePin:(0,s.useCallback)(e=>{h(o().filter(t=>t!==e))},[])}}},13545:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},15282:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]])},19257:(e,t,r)=>{"use strict";r.d(t,{default:()=>V});var s=r(95155),n=r(12115),a=r(98500),o=r.n(a),i=r(86901),l=r(61878),d=r(93631),c=r(21628),u=r(90718),m=r(51914),x=r(42129),h=r(66088),p=r(94290),f=r(33078),g=r(48368),b=r(33210),v=r(84980),y=r(50538),j=r(10377),w=r(35581),k=r(91337),N=r(15282),A=r(21975),z=r(6296),E=r(21362),M=r(59511),C=r(13545),S=r(22164),$=r(67635),R=r(68459),L=r(94514),F=r(73321),D=r(4235),T=r(29494),O=r(78520);function P({isOrganizing:e=!1}){let{t}=(0,w.Y)(),[r,a]=(0,n.useState)([]),[l,d]=(0,n.useState)(!0),[c,u]=(0,n.useState)(!1),[m,x]=(0,n.useState)(!1),[h,p]=(0,n.useState)([]),f=(0,n.useRef)(null),g=(0,n.useRef)(0),b=e||c,y=(0,n.useCallback)(()=>{0===r.length||b||(u(!0),window.dispatchEvent(new CustomEvent("mindos:inbox-organize",{detail:{files:r}})))},[r,b]),j=(0,n.useCallback)(async e=>{try{if(!(await fetch("/api/inbox",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({names:[e]})})).ok)throw Error("Failed to delete");a(t=>t.filter(t=>t.name!==e)),window.dispatchEvent(new Event("mindos:inbox-updated")),D.oR.success(t.inbox.fileRemoved)}catch{D.oR.error(t.inbox.fileRemoveFailed)}},[t]),k=(0,n.useCallback)(e=>{e&&0!==e.length&&((0,T.Q)(Array.from(e),t),f.current&&(f.current.value=""))},[t]),C=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g.current=0,x(!1),e.dataTransfer.files.length>0&&(0,T.Q)(Array.from(e.dataTransfer.files),t)},[t]),S=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/inbox");if(!e.ok)return;let t=await e.json();Array.isArray(t.files)&&a(t.files)}catch(e){console.warn("[InboxSection] Failed to fetch inbox:",e)}finally{d(!1)}},[]),$=(0,n.useCallback)(()=>{p((0,O.FB)().slice(0,3))},[]),R=(0,n.useRef)(void 0),L=(0,n.useCallback)(()=>{clearTimeout(R.current),R.current=setTimeout(()=>{S(),$()},80)},[S,$]);(0,n.useEffect)(()=>{let e=()=>{g.current=0,x(!1)};return window.addEventListener("drop",e,!0),window.addEventListener("dragend",e,!0),()=>{window.removeEventListener("drop",e,!0),window.removeEventListener("dragend",e,!0)}},[]),(0,n.useEffect)(()=>{S(),$();let e=()=>{u(!1),L()};return window.addEventListener("mindos:files-changed",L),window.addEventListener("mindos:inbox-updated",L),window.addEventListener("mindos:organize-done",e),window.addEventListener("mindos:organize-history-update",$),()=>{clearTimeout(R.current),window.removeEventListener("mindos:files-changed",L),window.removeEventListener("mindos:inbox-updated",L),window.removeEventListener("mindos:organize-done",e),window.removeEventListener("mindos:organize-history-update",$)}},[S,L,$]);let F=(0,n.useMemo)(()=>r.slice(0,5),[r]),P=Math.max(0,r.length-5),H=r.length>0,[q,B]=(0,n.useState)(0);return((0,n.useEffect)(()=>{B((0,O.FB)().length)},[h]),l)?(0,s.jsxs)("section",{className:"mb-10 animate-pulse",children:[(0,s.jsx)("div",{className:"h-4 w-24 bg-muted rounded mb-3"}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("div",{className:"h-10 bg-muted/50 rounded-lg"}),(0,s.jsx)("div",{className:"h-10 bg-muted/50 rounded-lg"})]})]}):(0,s.jsxs)("section",{className:"mb-10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5 mb-5",children:[(0,s.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]",children:(0,s.jsx)(N.A,{size:13})}),(0,s.jsx)("h2",{className:"text-[13px] font-semibold text-foreground tracking-wide",children:t.inbox.title}),H&&(0,s.jsx)("span",{className:"inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[10px] font-semibold rounded-full bg-muted text-muted-foreground tabular-nums",children:t.inbox.count(r.length)}),H&&(0,s.jsxs)("div",{className:"ml-auto flex items-center gap-3",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>f.current?.click(),className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground cursor-pointer",title:t.inbox.uploadButton,children:[(0,s.jsx)(A.A,{size:12}),(0,s.jsx)("span",{className:"hidden sm:inline",children:t.inbox.uploadButton})]}),(0,s.jsxs)("button",{onClick:y,disabled:b,className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",title:b?t.inbox.organizing:void 0,children:[b?(0,s.jsx)(z.A,{size:12,className:"animate-spin"}):(0,s.jsx)(i.A,{size:12}),(0,s.jsx)("span",{children:b?t.inbox.organizing:t.inbox.organizeButton})]})]})]}),(0,s.jsx)("input",{ref:f,type:"file",multiple:!0,accept:".md,.txt,.csv,.json,.pdf",className:"hidden",onChange:e=>k(e.target.files)}),H&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex flex-col gap-0.5 mb-3",children:F.map(e=>(0,s.jsx)(W,{file:e,onDelete:j},e.path))}),P>0&&(0,s.jsxs)(o(),{href:"/view/Inbox/",className:"flex items-center gap-1 mb-3 text-xs text-muted-foreground hover:text-[var(--amber)] transition-colors",children:[(0,s.jsx)(E.A,{size:12}),t.inbox.viewAllFiles(r.length)]})]}),(0,s.jsx)("div",{className:`rounded-xl border-2 border-dashed transition-all duration-200 cursor-pointer ${m?"border-[var(--amber)] bg-[var(--amber-subtle)]":H?"border-border/60 hover:border-[var(--amber)]/40":"border-border hover:border-[var(--amber)]/40"} ${H?"px-4 py-4":"px-4 py-8"}`,role:"button",tabIndex:0,"aria-label":t.inbox.uploadButton,onClick:()=>f.current?.click(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),f.current?.click())},onDragEnter:e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),g.current++,1===g.current&&x(!0))},onDragOver:e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation())},onDragLeave:e=>{e.stopPropagation(),g.current=Math.max(0,g.current-1),0===g.current&&x(!1)},onDrop:C,children:H?(0,s.jsxs)("div",{className:"flex items-center justify-center gap-2 text-center",children:[(0,s.jsx)(M.A,{size:16,className:`shrink-0 ${m?"text-[var(--amber)]":"text-muted-foreground/40"}`}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:[t.fileImport.dropzoneCompact," ",(0,s.jsx)("span",{className:"text-[var(--amber)] hover:underline",children:t.fileImport.dropzoneCompactButton})]})]}):(0,s.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center",children:[(0,s.jsx)(M.A,{size:28,className:`${m?"text-[var(--amber)]":"text-muted-foreground/20"}`}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground/70",children:t.inbox.emptyTitle}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground/40",children:t.inbox.emptyDesc}),(0,s.jsx)("p",{className:"text-2xs text-muted-foreground/30",children:t.inbox.dropOverlayFormats}),(0,s.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),f.current?.click()},className:"mt-1 inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-colors bg-muted text-muted-foreground hover:text-foreground hover:bg-muted/80",children:[(0,s.jsx)(A.A,{size:12}),t.inbox.uploadButton]})]})}),h.length>0&&(0,s.jsxs)("div",{className:"mt-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,s.jsx)(v.A,{size:11,className:"text-muted-foreground/40"}),(0,s.jsx)("span",{className:"text-2xs font-medium text-muted-foreground/60 uppercase tracking-wider",children:t.importHistory.title}),(0,s.jsx)(o(),{href:"/inbox/history",className:"ml-auto text-2xs text-muted-foreground/50 hover:text-[var(--amber)] transition-colors",children:t.inbox.viewAllHistory(q)})]}),(0,s.jsx)("div",{className:"flex flex-col gap-1",children:h.map(e=>(0,s.jsx)(I,{entry:e},e.id))})]})]})}function W({file:e,onDelete:t}){let{t:r}=(0,w.Y)(),a=(0,F.useRouter)(),o=e.name.endsWith(".csv"),i=q(e.modifiedAt,r.home.relativeTime),[l,d]=(0,n.useState)(null),c=()=>{a.push(`/view/${(0,k.O0)(e.path)}`)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{role:"button",tabIndex:0,onClick:c,onKeyDown:e=>{"Enter"===e.key&&c()},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),d({x:e.clientX,y:e.clientY})},className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 hover:translate-x-0.5 hover:bg-muted group cursor-pointer",children:[(0,s.jsx)("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${e.isAging?"bg-[var(--amber)]/60":"bg-[var(--amber)]"}`}),o?(0,s.jsx)(f.A,{size:12,className:"shrink-0 text-success"}):(0,s.jsx)(g.A,{size:12,className:"shrink-0 text-muted-foreground"}),(0,s.jsx)("span",{className:"text-sm truncate flex-1 text-foreground",title:e.name,suppressHydrationWarning:!0,children:e.name}),(0,s.jsx)("span",{className:"text-2xs text-muted-foreground/50 tabular-nums shrink-0 group-hover:hidden",children:i}),e.isAging&&(0,s.jsx)("span",{title:"7+ days",className:"group-hover:hidden",children:(0,s.jsx)(C.A,{size:11,className:"shrink-0 text-[var(--amber)]/60"})}),(0,s.jsx)("button",{type:"button",onClick:r=>{r.stopPropagation(),r.preventDefault(),t(e.name)},className:"hidden group-hover:flex items-center justify-center w-5 h-5 rounded shrink-0 text-muted-foreground/50 hover:text-destructive hover:bg-destructive/10 transition-colors",title:r.inbox.removeFile,children:(0,s.jsx)(b.A,{size:12})})]}),l&&(0,s.jsx)(H,{x:l.x,y:l.y,file:e,onDelete:()=>{d(null),t(e.name)},onClose:()=>d(null)})]})}function H({x:e,y:t,file:r,onDelete:a,onClose:o}){let i=(0,n.useRef)(null),l=(0,F.useRouter)(),{t:d}=(0,w.Y)();(0,n.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&o()},t=e=>{"Escape"===e.key&&o()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[o]);let c=Math.min(e,window.innerWidth-200),u=Math.min(t,window.innerHeight-120),m="w-full flex items-center gap-2 px-3 py-1.5 text-sm text-foreground hover:bg-muted transition-colors text-left";return(0,s.jsxs)("div",{ref:i,className:"fixed z-50 min-w-[160px] bg-card border border-border rounded-lg shadow-lg py-1",style:{top:u,left:c},children:[(0,s.jsxs)("button",{className:m,onClick:()=>{l.push(`/view/${(0,k.O0)(r.path)}`),o()},children:[(0,s.jsx)(S.A,{size:14,className:"shrink-0"})," ",d.inbox.openFile]}),(0,s.jsxs)("button",{className:m,onClick:()=>{navigator.clipboard.writeText(r.name),D.oR.copy(),o()},children:[(0,s.jsx)($.A,{size:14,className:"shrink-0"})," ",d.inbox.copyName]}),(0,s.jsx)("div",{className:"border-t border-border my-1"}),(0,s.jsxs)("button",{className:`${m} text-destructive hover:text-destructive`,onClick:a,children:[(0,s.jsx)(R.A,{size:14,className:"shrink-0"})," ",d.inbox.removeFile]})]})}function I({entry:e}){let[t,r]=(0,n.useState)(!1),a="undone"===e.status,i=function(e){switch(e){case"drag-drop":return{label:"drop",className:"bg-muted/50 text-muted-foreground/50"};case"inbox-organize":return{label:"inbox",className:"bg-[var(--amber)]/10 text-[var(--amber)]/70"};case"import-modal":return{label:"import",className:"bg-blue-500/10 text-blue-500/70"};case"plugin":return{label:"plugin",className:"bg-violet-500/10 text-violet-500/70"};case"upload":return{label:"upload",className:"bg-teal-500/10 text-teal-500/70"};case"web-clipper":return{label:"clip",className:"bg-emerald-500/10 text-emerald-500/70"};default:return null}}(e.source),l=e.durationMs?function(e){let t=Math.round(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),s=t%60;return`${r}m${s>0?`${s}s`:""}`}(e.durationMs):null,d=q(new Date(e.timestamp).toISOString(),{justNow:"just now",minutesAgo:e=>`${e}m ago`,hoursAgo:e=>`${e}h ago`,daysAgo:e=>`${e}d ago`});return(0,s.jsxs)("div",{className:"rounded-lg border border-border/30 overflow-hidden",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>r(e=>!e),className:"w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-muted/20 transition-colors",children:[a?(0,s.jsx)(C.A,{size:12,className:"text-muted-foreground/40 shrink-0"}):(0,s.jsx)(L.A,{size:12,className:"text-success/70 shrink-0"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:`text-xs truncate ${a?"text-muted-foreground/50 line-through":"text-foreground/80"}`,children:1===e.sourceFiles.length?e.sourceFiles[0]:`${e.sourceFiles.length} files`}),i&&(0,s.jsx)("span",{className:`text-2xs px-1.5 py-0.5 rounded shrink-0 ${i.className}`,children:i.label})]}),(0,s.jsxs)("span",{className:"text-2xs text-muted-foreground/40 tabular-nums shrink-0",children:[l&&`${l} \xb7 `,d]}),e.files.length>0&&(0,s.jsx)(h.A,{size:10,className:`text-muted-foreground/30 shrink-0 transition-transform duration-150 ${t?"rotate-180":""}`})]}),t&&e.files.length>0&&(0,s.jsx)("div",{className:"border-t border-border/20 px-3 py-1.5 space-y-0.5",children:e.files.map((e,t)=>{let r=e.path.split("/"),n=r.pop()??e.path,a=r.length>0?r.join("/"):null,i=!e.undone&&e.ok,l=`flex items-center gap-2 py-1 text-2xs${e.undone?" opacity-40":""}${i?" rounded -mx-1 px-1 hover:bg-muted/20 transition-colors":""}`,d=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:`w-1 h-1 rounded-full shrink-0 ${e.ok&&!e.undone?"bg-success/60":"bg-muted-foreground/30"}`}),(0,s.jsxs)("span",{className:`truncate flex-1 min-w-0 ${e.undone?"line-through text-muted-foreground":""}`,children:[a&&(0,s.jsxs)("span",{className:"text-muted-foreground/30",children:[a,"/"]}),(0,s.jsx)("span",{className:e.undone?"":"text-foreground/70",children:n})]}),(0,s.jsx)("span",{className:"text-muted-foreground/40 shrink-0",children:e.undone?"undone":"create"===e.action?"created":"updated"})]});return i?(0,s.jsx)(o(),{href:`/view/${(0,k.O0)(e.path)}`,className:l,children:d},`${e.path}-${t}`):(0,s.jsx)("div",{className:l,children:d},`${e.path}-${t}`)})})]})}function q(e,t){let r=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(r<1)return t.justNow;if(r<60)return t.minutesAgo(r);let s=Math.floor(r/60);if(s<24)return t.hoursAgo(s);let n=Math.floor(s/24);return t.daysAgo(n)}function B(){window.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,bubbles:!0}))}function K(){window.dispatchEvent(new KeyboardEvent("keydown",{key:"/",metaKey:!0,bubbles:!0}))}function _(e,t){let r=0;for(let s of t)s.path.startsWith(`${e}/`)&&(r=Math.max(r,s.mtime));return r}function V({spaces:e,recent:t}){let{t:r}=(0,w.Y)(),[a,p]=(0,n.useState)("recent"),[f,g]=(0,n.useState)(!1),[b,v]=(0,n.useState)(0),y=r.ask?.suggestions??["Summarize this document","List all action items","What are the key points?","Find related notes"];(0,n.useEffect)(()=>{let e=setInterval(()=>{v(e=>(e+1)%y.length)},4e3);return()=>clearInterval(e)},[y.length]);let j=(0,n.useMemo)(()=>{let r=[...e];return"recent"===a?r.sort((e,r)=>{let s=_(e.name,t);return _(r.name,t)-s}):"name"===a?r.sort((e,t)=>e.name.localeCompare(t.name)):"fileCount"===a&&r.sort((e,t)=>t.fileCount-e.fileCount),r},[e,t,a]),N=f?j:j.slice(0,6),A=e=>(0,k.KW)(e,r.home.relativeTime),z=t[0];return(0,s.jsxs)("div",{className:"content-width px-4 md:px-6 py-10 md:py-14",children:[(0,s.jsxs)("div",{className:"mb-10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,s.jsx)("div",{className:"w-1 h-7 rounded-full bg-gradient-to-b from-[var(--amber)] to-[var(--amber)]/20"}),(0,s.jsx)("h1",{className:"text-2xl font-semibold tracking-tight text-foreground",children:r.sidebar.files})]}),(0,s.jsxs)("div",{className:"w-full max-w-xl flex flex-col sm:flex-row items-stretch sm:items-center gap-2 pl-4",children:[(0,s.jsxs)("button",{onClick:K,title:"⌘/",className:"flex-1 flex items-center gap-3 px-4 py-3.5 rounded-xl border border-border/50 shadow-sm bg-card/80 backdrop-blur-sm transition-all duration-200 hover:border-[var(--amber)]/40 hover:shadow-md hover:-translate-y-0.5 group",children:[(0,s.jsx)(i.A,{size:16,className:"shrink-0 text-[var(--amber)] group-hover:scale-110 transition-transform duration-150"}),(0,s.jsx)("div",{className:"flex-1 min-h-[1.5rem] flex items-center",children:(0,s.jsx)("span",{className:"text-sm text-left text-muted-foreground animate-in fade-in duration-300",children:y[b].label},b)}),(0,s.jsx)("kbd",{className:"hidden sm:inline-flex items-center gap-0.5 px-2 py-0.5 rounded text-xs font-mono font-medium bg-[var(--amber-dim)] text-[var(--amber-text)]",children:"⌘/"})]}),(0,s.jsxs)("button",{onClick:B,title:"⌘K",className:"flex items-center gap-2 px-3.5 py-3 rounded-xl border border-border/50 text-sm text-muted-foreground transition-all duration-200 shrink-0 hover:bg-muted/60 hover:shadow-sm hover:-translate-y-0.5",children:[(0,s.jsx)(l.A,{size:14}),(0,s.jsx)("kbd",{className:"hidden sm:inline-flex items-center px-1.5 py-0.5 rounded text-xs font-mono bg-muted",children:"⌘K"})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3 mt-4 pl-4",children:[(0,s.jsxs)(o(),{href:"/view/Untitled.md",className:"inline-flex items-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium transition-all duration-200 hover:shadow-md hover:-translate-y-0.5 bg-[var(--amber)] text-[var(--amber-foreground)]",children:[(0,s.jsx)(d.A,{size:14}),(0,s.jsx)("span",{children:r.home.newNote})]}),z&&(0,s.jsxs)(o(),{href:`/view/${(0,k.O0)(z.path)}`,className:"inline-flex items-center gap-2 px-3.5 py-2 rounded-lg text-sm font-medium transition-colors text-muted-foreground hover:text-foreground hover:bg-muted",children:[(0,s.jsx)(c.A,{size:14,className:"text-[var(--amber)]/60"}),(0,s.jsx)("span",{children:r.home.continueEditing}),(0,s.jsx)("span",{className:"text-xs opacity-40 truncate max-w-32",suppressHydrationWarning:!0,children:z.path.split("/").pop()})]})]})]}),(0,s.jsxs)("section",{className:"mb-10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5 mb-5",children:[(0,s.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]",children:(0,s.jsx)(u.A,{size:14})}),(0,s.jsx)("h2",{className:"text-[13px] font-semibold text-foreground tracking-wide",children:r.home.spaces}),e.length>0&&(0,s.jsx)("span",{className:"inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[10px] font-semibold rounded-full bg-muted text-muted-foreground tabular-nums",children:e.length}),(0,s.jsxs)("div",{className:"ml-auto flex items-center gap-3",children:[e.length>0&&(0,s.jsxs)("select",{value:a,onChange:e=>p(e.target.value),className:"text-xs font-medium text-muted-foreground hover:text-foreground cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded px-2 py-1 transition-colors bg-transparent",children:[(0,s.jsx)("option",{value:"recent",children:r.home.sortRecent??"Recent"}),(0,s.jsx)("option",{value:"name",children:r.home.sortName??"A-Z"}),(0,s.jsx)("option",{value:"fileCount",children:r.home.sortCount??"File Count"})]}),(0,s.jsxs)("button",{onClick:()=>window.dispatchEvent(new Event("mindos:create-space")),className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display",children:[(0,s.jsx)(m.A,{size:12}),(0,s.jsx)("span",{children:r.home.newSpace})]})]})]}),0===e.length?(0,s.jsxs)("div",{className:"rounded-xl border border-border/40 bg-card/30 px-6 py-12 text-center",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-[var(--amber-subtle)] mb-4",children:(0,s.jsx)(u.A,{size:22,className:"text-[var(--amber)]/60"})}),(0,s.jsx)("p",{className:"text-sm font-medium text-muted-foreground/70 mb-1",children:r.home.noSpacesYet??"No spaces yet"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground/60 mb-4",children:"Create your first space to organize your knowledge"}),(0,s.jsxs)("button",{onClick:()=>window.dispatchEvent(new Event("mindos:create-space")),className:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg transition-colors bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-80",children:[(0,s.jsx)(m.A,{size:14}),"Create Space"]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2",children:N.map(e=>{let n=(0,k.IX)(e.name),a=(0,k.vr)(e.name),i=_(e.name,t),l=0===e.fileCount;return(0,s.jsxs)(o(),{href:`/view/${(0,k.O0)(e.path)}`,className:`flex items-start gap-3 px-4 py-3.5 rounded-xl border transition-all duration-200 ${l?"border-dashed border-border/50 opacity-50 hover:opacity-70":"border-border/60 hover:border-[var(--amber)]/30 hover:shadow-md hover:-translate-y-0.5 bg-card/40"}`,children:[n?(0,s.jsx)("span",{className:"text-lg leading-none shrink-0 mt-0.5",suppressHydrationWarning:!0,children:n}):(0,s.jsx)(x.A,{size:16,className:"shrink-0 text-[var(--amber)] mt-0.5"}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("span",{className:"text-sm font-medium truncate block text-foreground",children:a}),e.description&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground line-clamp-1 mt-0.5",suppressHydrationWarning:!0,children:e.description}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground/50 mt-0.5 block tabular-nums",children:[r.home.nFiles(e.fileCount),i>0&&` \xb7 ${A(i)}`]})]})]},e.name)})}),j.length>6&&(0,s.jsxs)("button",{onClick:()=>g(!f),"aria-expanded":f,className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer font-display mt-3",children:[(0,s.jsx)(h.A,{size:12,className:`transition-transform duration-200 ${f?"rotate-180":""}`}),(0,s.jsx)("span",{children:f?r.home.showLess:r.home.showMore})]})]})]}),(0,s.jsx)(P,{}),(0,s.jsx)(J,{formatTime:A}),(0,s.jsx)("div",{className:"border-t border-border/30 mb-8"}),t.length>0&&(0,s.jsx)(Q,{recent:t,formatTime:A}),(0,s.jsxs)("div",{className:"py-6 border-t border-border/20 flex items-center gap-1.5 text-xs font-display text-muted-foreground/30",children:[(0,s.jsx)(i.A,{size:10,className:"text-[var(--amber)]/40"}),(0,s.jsx)("span",{children:r.app.footer})]})]})}function Y({icon:e,children:t,count:r,action:n}){return(0,s.jsxs)("div",{className:"flex items-center gap-2.5 mb-4",children:[(0,s.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-md bg-[var(--amber-subtle)] text-[var(--amber)]",children:e}),(0,s.jsx)("h2",{className:"text-[13px] font-semibold text-foreground tracking-wide",children:t}),null!=r&&r>0&&(0,s.jsx)("span",{className:"inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-[10px] font-semibold rounded-full bg-muted text-muted-foreground tabular-nums",children:r}),n?(0,s.jsx)("div",{className:"ml-auto",children:n}):null]})}function J({formatTime:e}){let{t}=(0,w.Y)(),{pinnedFiles:r,removePin:n}=(0,j.Z)();return 0===r.length?null:(0,s.jsxs)("section",{className:"mb-8",children:[(0,s.jsx)(Y,{icon:(0,s.jsx)(p.A,{size:14}),count:r.length,children:t.pinnedFiles.title}),(0,s.jsx)("div",{className:"flex flex-col gap-0.5",children:r.map(e=>{let r=e.split("/").pop()||e,a=e.split("/").slice(0,-1).join("/"),i=e.endsWith(".csv");return(0,s.jsxs)("div",{className:"group/pin relative",children:[(0,s.jsxs)(o(),{href:`/view/${(0,k.O0)(e)}`,className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 hover:translate-x-0.5 hover:bg-muted overflow-hidden",children:[(0,s.jsx)(p.A,{size:12,className:"shrink-0 fill-[var(--amber)] text-[var(--amber)]"}),i?(0,s.jsx)(f.A,{size:12,className:"shrink-0 text-success"}):(0,s.jsx)(g.A,{size:12,className:"shrink-0 text-muted-foreground"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("span",{className:"text-sm truncate block text-foreground",suppressHydrationWarning:!0,children:r}),a&&(0,s.jsx)("span",{className:"text-xs truncate block text-muted-foreground opacity-50",suppressHydrationWarning:!0,children:a})]})]}),(0,s.jsx)("button",{onClick:t=>{t.preventDefault(),t.stopPropagation(),n(e)},className:"absolute right-2 top-1/2 -translate-y-1/2 hidden group-hover/pin:flex p-1 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:t.pinnedFiles.removedToast,children:(0,s.jsx)(b.A,{size:12})})]},e)})})]})}function Q({recent:e,formatTime:t}){let{t:r}=(0,w.Y)(),[a,i]=(0,n.useState)(!1);return(0,s.jsxs)("section",{className:"mb-8",children:[(0,s.jsx)(Y,{icon:(0,s.jsx)(v.A,{size:14}),count:e.length,action:(0,s.jsxs)(o(),{href:"/changes",className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80",children:[(0,s.jsx)(y.A,{size:12}),(0,s.jsx)("span",{children:r.home.changeHistory})]}),children:r.home.recentlyEdited}),(0,s.jsx)("div",{className:"flex flex-col gap-0.5",children:(a?e:e.slice(0,8)).map(({path:e,mtime:r})=>{let n=e.split("/").pop()||e,a=e.split("/").slice(0,-1).join("/"),i=e.endsWith(".csv");return(0,s.jsxs)(o(),{href:`/view/${(0,k.O0)(e)}`,className:"flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-100 hover:translate-x-0.5 hover:bg-muted group overflow-hidden",children:[i?(0,s.jsx)(f.A,{size:12,className:"shrink-0 text-success"}):(0,s.jsx)(g.A,{size:12,className:"shrink-0 text-muted-foreground"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("span",{className:"text-sm truncate block text-foreground",suppressHydrationWarning:!0,children:n}),a&&(0,s.jsx)("span",{className:"text-xs truncate block text-muted-foreground opacity-50",suppressHydrationWarning:!0,children:a})]}),(0,s.jsx)("span",{className:"text-xs shrink-0 tabular-nums text-muted-foreground/40",suppressHydrationWarning:!0,children:t(r)})]},e)})}),e.length>8&&(0,s.jsxs)("button",{onClick:()=>i(e=>!e),"aria-expanded":a,className:"flex items-center gap-1.5 text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer mt-2 ml-1",children:[(0,s.jsx)(h.A,{size:12,className:`transition-transform duration-200 ${a?"rotate-180":""}`}),(0,s.jsx)("span",{children:a?r.home.showLess:r.home.showMore})]})]})}},21362:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},21628:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},21975:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]])},22164:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},29494:(e,t,r)=>{"use strict";r.d(t,{N:()=>o,Q:()=>a});var s=r(4235);function n(e){let t=new Uint8Array(e),r=[];for(let e=0;e<t.length;e+=8192)r.push(String.fromCharCode(...t.subarray(e,e+8192)));return btoa(r.join(""))}async function a(e,t){let r=[],a=0;for(let t of e){if(t.size>0xa00000){a++;continue}try{if(t.name.toLowerCase().endsWith(".pdf")){let e=await t.arrayBuffer();r.push({name:t.name,content:n(e),encoding:"base64"})}else{let e=await t.text();r.push({name:t.name,content:e})}}catch{}}if(0===r.length)return void(a>0?s.oR.error(t.inbox.tooLarge(a),4e3):e.length>0&&s.oR.error(t.inbox.saveFailed,4e3));try{var o;let e=await fetch("/api/inbox",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:r})});if(!e.ok){let r=await e.json().catch(()=>({}));console.error("[QuickDrop] Save failed:",r.error),s.oR.error(t.inbox.saveFailed,4e3);return}let n=await e.json(),i=n.saved?.length??0,l=n.skipped?.length??0;o=a,i>0&&o>0&&0===l?s.oR.success(t.inbox.savedWithOversized(i,o),4e3):i>0&&l+o>0?s.oR.success(t.inbox.savedWithSkipped(i,l+o),4e3):i>0?s.oR.success(t.inbox.savedToast(i),3e3):(o>0&&s.oR.error(t.inbox.tooLarge(o),4e3),l>0&&s.oR.error(t.inbox.savedWithSkipped(0,l),4e3),0===o&&0===l&&s.oR.error(t.inbox.saveFailed,4e3)),window.dispatchEvent(new Event("mindos:files-changed")),window.dispatchEvent(new Event("mindos:inbox-updated"))}catch(e){console.error("[QuickDrop] Network error:",e),s.oR.error(t.inbox.saveFailed,4e3)}}async function o(e,t,r){let a=[],o=0,i=new Set(["pdf","png","jpg","jpeg","gif","webp","bmp","ico","mp3","wav","m4a","ogg","flac","aac","mp4","webm","mov","mkv"]);for(let t of e){if(t.size>0xa00000){o++;continue}try{let e=(t.name.split(".").pop()??"").toLowerCase();if(i.has(e)){let e=await t.arrayBuffer();a.push({name:t.name,content:n(e),encoding:"base64"})}else{let e=await t.text();a.push({name:t.name,content:e})}}catch{}}if(0===a.length)return void(o>0?s.oR.error(r.inbox.tooLarge(o),4e3):e.length>0&&s.oR.error(r.inbox.saveFailed,4e3));let l=t.split("/").pop()||t;try{let e=await fetch("/api/file/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:a,targetSpace:t,organize:!1,conflict:"rename"})});if(!e.ok){let t=await e.json().catch(()=>({}));console.error("[TreeDrop] Save failed:",t.error),s.oR.error(r.inbox.saveFailed,4e3);return}let n=await e.json(),i=n.created?.length??0,d=n.skipped?.length??0;i>0&&d+o>0?s.oR.success(r.inbox.savedWithSkipped(i,d+o),4e3):i>0?s.oR.success(r.inbox.savedToDir(i,l),3e3):(o>0&&s.oR.error(r.inbox.tooLarge(o),4e3),d>0&&s.oR.error(r.inbox.savedWithSkipped(0,d),4e3)),window.dispatchEvent(new Event("mindos:files-changed"))}catch(e){console.error("[TreeDrop] Network error:",e),s.oR.error(r.inbox.saveFailed,4e3)}}},33078:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("table",[["path",{d:"M12 3v18",key:"108xh3"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}]])},33210:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},38549:(e,t,r)=>{Promise.resolve().then(r.bind(r,19257))},42129:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},50538:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]])},51914:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},59511:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("folder-input",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",key:"fm4g5t"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m9 16 3-3-3-3",key:"6m91ic"}]])},61878:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},67635:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},68459:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},73321:(e,t,r)=>{"use strict";var s=r(74645);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},78520:(e,t,r)=>{"use strict";r.d(t,{D4:()=>o,FB:()=>n,W8:()=>i,g4:()=>l,jQ:()=>c});let s="mindos:organize-history";function n(){try{let e=localStorage.getItem(s);if(!e)return[];return JSON.parse(e)}catch{return[]}}function a(e){try{localStorage.setItem(s,JSON.stringify(e.slice(0,50)))}catch{}}function o(e){let t=n();t.unshift(e);let r=t.slice(0,50);return a(r),r}function i(e,t){let r=n(),s=r.findIndex(t=>t.id===e);return s>=0&&(r[s]={...r[s],...t},a(r)),r}function l(){try{localStorage.removeItem(s)}catch{}}let d=0;function c(){return`org-${Date.now()}-${++d}`}},84980:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]])},86901:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]])},90718:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]])},91337:(e,t,r)=>{"use strict";r.d(t,{IX:()=>l,KW:()=>i,O0:()=>o,cn:()=>a,vr:()=>d});var s=r(29722),n=r(622);function a(...e){return(0,n.QP)((0,s.$)(e))}function o(e){return e.split("/").map(encodeURIComponent).join("/")}function i(e,t){let r=Date.now()-e,s=Math.floor(r/6e4),n=Math.floor(r/36e5),a=Math.floor(r/864e5);return s<1?t.justNow:s<60?t.minutesAgo(s):n<24?t.hoursAgo(n):a<7?t.daysAgo(a):new Date(e).toLocaleDateString()}function l(e){let t=e.match(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+/u);return t?.[0]??""}function d(e){return e.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||e}},93631:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]])},94290:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(90425).A)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]])}},e=>{e.O(0,[9186,8409,5581,8441,3794,7358],()=>e(e.s=38549)),_N_E=e.O()}]);
|