@geminilight/mindos 0.6.74 → 0.6.75
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 -0
- package/_standalone/.next/BUILD_ID +1 -0
- package/_standalone/.next/app-path-routes-manifest.json +92 -0
- package/_standalone/.next/build-manifest.json +20 -0
- package/_standalone/.next/cache/.previewinfo +1 -0
- package/_standalone/.next/cache/.rscinfo +1 -0
- package/_standalone/.next/cache/config.json +7 -0
- package/_standalone/.next/diagnostics/build-diagnostics.json +6 -0
- package/_standalone/.next/diagnostics/framework.json +1 -0
- package/_standalone/.next/lock +0 -0
- package/_standalone/.next/package.json +1 -0
- package/_standalone/.next/prerender-manifest.json +65 -0
- package/_standalone/.next/react-loadable-manifest.json +179 -0
- package/_standalone/.next/required-server-files.json +352 -0
- package/_standalone/.next/routes-manifest.json +591 -0
- package/_standalone/.next/server/app/.well-known/agent-card.json/route.js +1 -0
- package/_standalone/.next/server/app/.well-known/agent-card.json/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/_global-error/page.js +3 -0
- package/_standalone/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/_global-error.html +2 -0
- package/_standalone/.next/server/app/_global-error.meta +16 -0
- package/_standalone/.next/server/app/_global-error.rsc +18 -0
- package/_standalone/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
- package/_standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/_standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +4 -0
- package/_standalone/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/_standalone/.next/server/app/_global-error.segments/_index.segment.rsc +10 -0
- package/_standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/_standalone/.next/server/app/_not-found/page.js +2 -0
- package/_standalone/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/agents/[agentKey]/page.js +2 -0
- package/_standalone/.next/server/app/agents/[agentKey]/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/agents/page.js +2 -0
- package/_standalone/.next/server/app/agents/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/a2a/agents/route.js +1 -0
- package/_standalone/.next/server/app/api/a2a/agents/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/a2a/delegations/route.js +1 -0
- package/_standalone/.next/server/app/api/a2a/delegations/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/a2a/discover/route.js +1 -0
- package/_standalone/.next/server/app/api/a2a/discover/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/a2a/route.js +1 -0
- package/_standalone/.next/server/app/api/a2a/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/a2a/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/acp/config/route.js +1 -0
- package/_standalone/.next/server/app/api/acp/config/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/acp/config/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/acp/detect/route.js +1 -0
- package/_standalone/.next/server/app/api/acp/detect/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/acp/install/route.js +1 -0
- package/_standalone/.next/server/app/api/acp/install/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/acp/install/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/acp/registry/route.js +1 -0
- package/_standalone/.next/server/app/api/acp/registry/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/acp/session/route.js +1 -0
- package/_standalone/.next/server/app/api/acp/session/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/acp/session/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/agent-activity/route.js +1 -0
- package/_standalone/.next/server/app/api/agent-activity/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/agents/copy-skill/route.js +1 -0
- package/_standalone/.next/server/app/api/agents/copy-skill/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/agents/custom/detect/route.js +1 -0
- package/_standalone/.next/server/app/api/agents/custom/detect/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/agents/custom/route.js +1 -0
- package/_standalone/.next/server/app/api/agents/custom/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/ask/route.js +130 -0
- package/_standalone/.next/server/app/api/ask/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/ask/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/ask-sessions/route.js +1 -0
- package/_standalone/.next/server/app/api/ask-sessions/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/auth/route.js +1 -0
- package/_standalone/.next/server/app/api/auth/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/auth/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/backlinks/route.js +1 -0
- package/_standalone/.next/server/app/api/backlinks/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/backlinks/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/bootstrap/route.js +1 -0
- package/_standalone/.next/server/app/api/bootstrap/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/changes/route.js +1 -0
- package/_standalone/.next/server/app/api/changes/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/channels/verify/route.js +1 -0
- package/_standalone/.next/server/app/api/channels/verify/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/channels/verify/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/connect/route.js +1 -0
- package/_standalone/.next/server/app/api/connect/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/connect/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/embedding/route.js +1 -0
- package/_standalone/.next/server/app/api/embedding/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/embedding/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/export/route.js +57 -0
- package/_standalone/.next/server/app/api/export/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/export/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/extract-pdf/route.js +3 -0
- package/_standalone/.next/server/app/api/extract-pdf/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/file/import/route.js +4 -0
- package/_standalone/.next/server/app/api/file/import/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/file/import/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/file/raw/route.js +1 -0
- package/_standalone/.next/server/app/api/file/raw/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/file/raw/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/file/route.js +1 -0
- package/_standalone/.next/server/app/api/file/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/file/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/files/route.js +1 -0
- package/_standalone/.next/server/app/api/files/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/git/route.js +1 -0
- package/_standalone/.next/server/app/api/git/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/graph/route.js +1 -0
- package/_standalone/.next/server/app/api/graph/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/graph/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/health/route.js +1 -0
- package/_standalone/.next/server/app/api/health/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/im/activity/route.js +1 -0
- package/_standalone/.next/server/app/api/im/activity/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/im/activity/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/im/config/route.js +1 -0
- package/_standalone/.next/server/app/api/im/config/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/im/config/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/im/status/route.js +1 -0
- package/_standalone/.next/server/app/api/im/status/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/im/status/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/im/test/route.js +1 -0
- package/_standalone/.next/server/app/api/im/test/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/im/test/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/im/webhook/feishu/route.js +1 -0
- package/_standalone/.next/server/app/api/im/webhook/feishu/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/im/webhook/feishu/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/im/webhook-status/route.js +1 -0
- package/_standalone/.next/server/app/api/im/webhook-status/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/im/webhook-status/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/inbox/clip/route.js +8 -0
- package/_standalone/.next/server/app/api/inbox/clip/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/inbox/route.js +1 -0
- package/_standalone/.next/server/app/api/inbox/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/init/route.js +1 -0
- package/_standalone/.next/server/app/api/init/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/init/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/lint/route.js +1 -0
- package/_standalone/.next/server/app/api/lint/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/lint/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/agents/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/agents/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/direct-tools/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/direct-tools/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/install/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/install/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/install-skill/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/install-skill/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/restart/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/restart/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/status/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/status/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/tools/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/tools/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/mcp/uninstall/route.js +1 -0
- package/_standalone/.next/server/app/api/mcp/uninstall/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/monitoring/route.js +1 -0
- package/_standalone/.next/server/app/api/monitoring/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/monitoring/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/recent-files/route.js +1 -0
- package/_standalone/.next/server/app/api/recent-files/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/recent-files/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/restart/route.js +1 -0
- package/_standalone/.next/server/app/api/restart/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/restart/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/search/route.js +1 -0
- package/_standalone/.next/server/app/api/search/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/settings/list-models/route.js +1 -0
- package/_standalone/.next/server/app/api/settings/list-models/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/settings/reset-token/route.js +1 -0
- package/_standalone/.next/server/app/api/settings/reset-token/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/settings/route.js +1 -0
- package/_standalone/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/settings/test-key/route.js +1 -0
- package/_standalone/.next/server/app/api/settings/test-key/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/setup/check-path/route.js +1 -0
- package/_standalone/.next/server/app/api/setup/check-path/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/setup/check-port/route.js +1 -0
- package/_standalone/.next/server/app/api/setup/check-port/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/setup/generate-token/route.js +1 -0
- package/_standalone/.next/server/app/api/setup/generate-token/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/setup/ls/route.js +1 -0
- package/_standalone/.next/server/app/api/setup/ls/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/setup/route.js +1 -0
- package/_standalone/.next/server/app/api/setup/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/setup/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/skills/route.js +6 -0
- package/_standalone/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/space-overview/route.js +60 -0
- package/_standalone/.next/server/app/api/space-overview/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/space-overview/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/sync/route.js +1 -0
- package/_standalone/.next/server/app/api/sync/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/sync/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/tree-version/route.js +1 -0
- package/_standalone/.next/server/app/api/tree-version/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/tree-version/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/uninstall/route.js +4 -0
- package/_standalone/.next/server/app/api/uninstall/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/uninstall/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/update/route.js +1 -0
- package/_standalone/.next/server/app/api/update/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/update-check/route.js +1 -0
- package/_standalone/.next/server/app/api/update-check/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/update-check/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/update-status/route.js +1 -0
- package/_standalone/.next/server/app/api/update-status/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/update-status/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/api/workflows/route.js +9 -0
- package/_standalone/.next/server/app/api/workflows/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/changelog/page.js +2 -0
- package/_standalone/.next/server/app/changelog/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/changelog/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/changes/page.js +2 -0
- package/_standalone/.next/server/app/changes/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/changes/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/echo/[segment]/page.js +158 -0
- package/_standalone/.next/server/app/echo/[segment]/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/echo/page.js +2 -0
- package/_standalone/.next/server/app/echo/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/echo/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/explore/page.js +5 -0
- package/_standalone/.next/server/app/explore/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/explore/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/help/page.js +2 -0
- package/_standalone/.next/server/app/help/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/help/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/icon.svg/route.js +1 -0
- package/_standalone/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/_standalone/.next/server/app/icon.svg.body +37 -0
- package/_standalone/.next/server/app/icon.svg.meta +1 -0
- package/_standalone/.next/server/app/inbox/history/page.js +2 -0
- package/_standalone/.next/server/app/inbox/history/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/inbox/history/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/login/page.js +2 -0
- package/_standalone/.next/server/app/login/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/page.js +2 -0
- package/_standalone/.next/server/app/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/setup/page.js +2 -0
- package/_standalone/.next/server/app/setup/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/trash/page.js +3 -0
- package/_standalone/.next/server/app/trash/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/trash/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app/view/[...path]/page.js +13 -0
- package/_standalone/.next/server/app/view/[...path]/page.js.nft.json +1 -0
- package/_standalone/.next/server/app/view/[...path]/page_client-reference-manifest.js +1 -0
- package/_standalone/.next/server/app-paths-manifest.json +92 -0
- package/_standalone/.next/server/chunks/1076.js +1 -0
- package/_standalone/.next/server/chunks/1104.js +1 -0
- package/_standalone/.next/server/chunks/1299.js +133 -0
- package/_standalone/.next/server/chunks/1546.js +1 -0
- package/_standalone/.next/server/chunks/1549.js +1 -0
- package/_standalone/.next/server/chunks/1550.js +1 -0
- package/_standalone/.next/server/chunks/206.js +2 -0
- package/_standalone/.next/server/chunks/2250.js +38 -0
- package/_standalone/.next/server/chunks/2424.js +54 -0
- package/_standalone/.next/server/chunks/2792.js +1 -0
- package/_standalone/.next/server/chunks/2885.js +7 -0
- package/_standalone/.next/server/chunks/3036.js +1 -0
- package/_standalone/.next/server/chunks/3123.js +3 -0
- package/_standalone/.next/server/chunks/3437.js +60 -0
- package/_standalone/.next/server/chunks/3445.js +22 -0
- package/_standalone/.next/server/chunks/3528.js +1 -0
- package/_standalone/.next/server/chunks/3800.js +1 -0
- package/_standalone/.next/server/chunks/3965.js +11 -0
- package/_standalone/.next/server/chunks/4241.js +1 -0
- package/_standalone/.next/server/chunks/5165.js +1 -0
- package/_standalone/.next/server/chunks/5299.js +1 -0
- package/_standalone/.next/server/chunks/5464.js +9 -0
- package/_standalone/.next/server/chunks/5576.js +36 -0
- package/_standalone/.next/server/chunks/5592.js +1 -0
- package/_standalone/.next/server/chunks/5945.js +1 -0
- package/_standalone/.next/server/chunks/6022.js +193 -0
- package/_standalone/.next/server/chunks/6117.js +13 -0
- package/_standalone/.next/server/chunks/6140.js +1 -0
- package/_standalone/.next/server/chunks/6539.js +1 -0
- package/_standalone/.next/server/chunks/6949.js +1 -0
- package/_standalone/.next/server/chunks/7032.js +1 -0
- package/_standalone/.next/server/chunks/7198.js +23 -0
- package/_standalone/.next/server/chunks/7712.js +1 -0
- package/_standalone/.next/server/chunks/791.js +1 -0
- package/_standalone/.next/server/chunks/7948.js +2 -0
- package/_standalone/.next/server/chunks/8326.js +1 -0
- package/_standalone/.next/server/chunks/8388.js +17 -0
- package/_standalone/.next/server/chunks/9503.js +1 -0
- package/_standalone/.next/server/chunks/953.js +57 -0
- package/_standalone/.next/server/chunks/9938.js +24 -0
- package/_standalone/.next/server/functions-config-manifest.json +22 -0
- package/_standalone/.next/server/instrumentation.js +1 -0
- package/_standalone/.next/server/middleware-build-manifest.js +1 -0
- package/_standalone/.next/server/middleware-manifest.json +6 -0
- package/_standalone/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/_standalone/.next/server/middleware.js +15 -0
- package/_standalone/.next/server/next-font-manifest.js +1 -0
- package/_standalone/.next/server/next-font-manifest.json +1 -0
- package/_standalone/.next/server/pages/500.html +2 -0
- package/_standalone/.next/server/pages-manifest.json +3 -0
- package/_standalone/.next/server/server-reference-manifest.js +1 -0
- package/_standalone/.next/server/server-reference-manifest.json +1 -0
- package/_standalone/.next/server/webpack-runtime.js +1 -0
- package/_standalone/.next/static/chunks/1239.10a0710c2772ab34.js +1 -0
- package/_standalone/.next/static/chunks/1477.33df3cce509578c2.js +1 -0
- package/_standalone/.next/static/chunks/1814.8a1fef15856dce84.js +1 -0
- package/_standalone/.next/static/chunks/1a258343-9803591e4aaee1f6.js +2 -0
- package/_standalone/.next/static/chunks/2631.dc56e83472bde281.js +1 -0
- package/_standalone/.next/static/chunks/2647.e0b67d0c432ad7e7.js +18 -0
- package/_standalone/.next/static/chunks/2872.045858d00bd8307f.js +8 -0
- package/_standalone/.next/static/chunks/2935.a7fdb3a7fb681d61.js +1 -0
- package/_standalone/.next/static/chunks/2968.f10ccee9e7e2324d.js +2 -0
- package/_standalone/.next/static/chunks/3013-3d4aa69636f4a7bd.js +1 -0
- package/_standalone/.next/static/chunks/3523-4e4bb442a2d2f4f5.js +1 -0
- package/_standalone/.next/static/chunks/3562-fadd7213646defa8.js +1 -0
- package/_standalone/.next/static/chunks/362.2bfa40005767b578.js +2 -0
- package/_standalone/.next/static/chunks/363642f4.1ab94f095d889c3a.js +1 -0
- package/_standalone/.next/static/chunks/3637.2b2697198968d83f.js +1 -0
- package/_standalone/.next/static/chunks/3794-c66343cd6a42366f.js +2 -0
- package/_standalone/.next/static/chunks/4033.6666700547b20141.js +1 -0
- package/_standalone/.next/static/chunks/4237-ffc6e7c15d4007b6.js +1 -0
- package/_standalone/.next/static/chunks/4342.ccc18d7a45f204a4.js +48 -0
- package/_standalone/.next/static/chunks/4496.f77a677ac2034e48.js +1 -0
- package/_standalone/.next/static/chunks/4568-6791c1bc47a63f80.js +1 -0
- package/_standalone/.next/static/chunks/4925-6e9a5eb97c10d532.js +1 -0
- package/_standalone/.next/static/chunks/4bd1b696-10cb4c9d2844a506.js +1 -0
- package/_standalone/.next/static/chunks/516.24ee058b1d4b1fed.js +8 -0
- package/_standalone/.next/static/chunks/5358-15ceeb8c1cd9889d.js +28 -0
- package/_standalone/.next/static/chunks/54a60aa6.7a74f547ec1bdd5a.js +79 -0
- package/_standalone/.next/static/chunks/5576.c468f41f1126e837.js +9 -0
- package/_standalone/.next/static/chunks/5581-c3be891101a3e511.js +29 -0
- package/_standalone/.next/static/chunks/5592-85f69f6161d7a028.js +1 -0
- package/_standalone/.next/static/chunks/5627.c4337d7289acb31f.js +1 -0
- package/_standalone/.next/static/chunks/5956.b445072b35915129.js +1 -0
- package/_standalone/.next/static/chunks/6087.e4ec392aa2239719.js +1 -0
- package/_standalone/.next/static/chunks/6636-1b6d7047cffa7dbc.js +6 -0
- package/_standalone/.next/static/chunks/6826.7b7d94dd0fd83812.js +1 -0
- package/_standalone/.next/static/chunks/6902-53a31f849968ddf8.js +3 -0
- package/_standalone/.next/static/chunks/7025-9a4369e5f94b3915.js +1 -0
- package/_standalone/.next/static/chunks/70e0d97a.6903b8594c742784.js +1 -0
- package/_standalone/.next/static/chunks/7249-b0a9c77b9a84b11c.js +11 -0
- package/_standalone/.next/static/chunks/7540-811b466ff82538ac.js +13 -0
- package/_standalone/.next/static/chunks/7753.63831cfc54a55fbb.js +1 -0
- package/_standalone/.next/static/chunks/8252-888b87f30fde5786.js +1 -0
- package/_standalone/.next/static/chunks/8409-de5726a4a278d28f.js +1 -0
- package/_standalone/.next/static/chunks/862.9f526e964489e2e5.js +1 -0
- package/_standalone/.next/static/chunks/8719-becd06dd739825ea.js +1 -0
- package/_standalone/.next/static/chunks/9207-456dc6941d557f33.js +1 -0
- package/_standalone/.next/static/chunks/9300.118b8c840634383f.js +28 -0
- package/_standalone/.next/static/chunks/95247769.3b5caae1c1a76ce1.js +4 -0
- package/_standalone/.next/static/chunks/9688-85f7c423a1dce82c.js +1 -0
- package/_standalone/.next/static/chunks/9748-3e19c82c77c98c0a.js +1 -0
- package/_standalone/.next/static/chunks/app/.well-known/agent-card.json/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/_global-error/page-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/_not-found/page-a4fd983951533d8f.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/[agentKey]/page-d4d8277433073461.js +1 -0
- package/_standalone/.next/static/chunks/app/agents/page-6f021b5bec8169d5.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/agents/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/delegations/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/discover/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/a2a/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/config/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/detect/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/install/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/registry/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/acp/session/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agent-activity/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/copy-skill/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/custom/detect/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/agents/custom/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/ask-sessions/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/auth/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/backlinks/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/bootstrap/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/changes/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/channels/verify/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/connect/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/embedding/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/export/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/extract-pdf/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/import/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/raw/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/file/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/files/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/git/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/graph/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/health/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/activity/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/config/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/status/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/test/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/webhook/feishu/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/im/webhook-status/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/inbox/clip/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/inbox/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/init/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/lint/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/agents/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/direct-tools/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/install-skill/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/restart/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/status/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/tools/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/mcp/uninstall/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/monitoring/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/recent-files/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/restart/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/search/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/list-models/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/reset-token/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/settings/test-key/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-path/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/check-port/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/generate-token/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/ls/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/setup/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/skills/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/space-overview/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/sync/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/tree-version/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/uninstall/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-check/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/update-status/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/api/workflows/route-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/changelog/page-297e0af14471e935.js +1 -0
- package/_standalone/.next/static/chunks/app/changes/page-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/echo/[segment]/page-75a6330292613587.js +157 -0
- package/_standalone/.next/static/chunks/app/echo/page-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/error-fc1491d554a28327.js +1 -0
- package/_standalone/.next/static/chunks/app/explore/page-d9f58000bc445360.js +4 -0
- package/_standalone/.next/static/chunks/app/global-error-c37d50db6128ec01.js +1 -0
- package/_standalone/.next/static/chunks/app/help/page-f8cb806371b3175f.js +1 -0
- package/_standalone/.next/static/chunks/app/inbox/history/page-26e71fb6f716a4c4.js +1 -0
- package/_standalone/.next/static/chunks/app/layout-09f08f52e3cbfc47.js +133 -0
- package/_standalone/.next/static/chunks/app/loading-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/login/page-686d7c84262f2e7c.js +1 -0
- package/_standalone/.next/static/chunks/app/page-174dadc481ca9c86.js +1 -0
- package/_standalone/.next/static/chunks/app/setup/page-64d7fa097ef3f367.js +1 -0
- package/_standalone/.next/static/chunks/app/trash/page-8e0ea3ba71702757.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/error-ec03f5d0a5b93073.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/loading-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/not-found-6e0c75ad26ce8572.js +1 -0
- package/_standalone/.next/static/chunks/app/view/[...path]/page-04f43178679a8bfb.js +12 -0
- package/_standalone/.next/static/chunks/e71f6c19-4df85185bf989b49.js +1 -0
- package/_standalone/.next/static/chunks/framework-a17258b880e6120c.js +1 -0
- package/_standalone/.next/static/chunks/main-app-85439cf6d0f88401.js +1 -0
- package/_standalone/.next/static/chunks/main-dbbd70b57dd91565.js +5 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2471b275cd82ff8d.js +1 -0
- package/_standalone/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/_standalone/.next/static/chunks/webpack-ec9c6076012b75f3.js +1 -0
- package/_standalone/.next/static/css/86153be34ee0f215.css +1 -0
- package/_standalone/.next/static/css/a4a2b71142b311af.css +31 -0
- package/_standalone/.next/static/dZDCx13MSM8QVQk2QNRs8/_buildManifest.js +1 -0
- package/_standalone/.next/static/dZDCx13MSM8QVQk2QNRs8/_ssgManifest.js +1 -0
- package/_standalone/.next/static/media/0086f8992871c45b-s.woff2 +0 -0
- package/_standalone/.next/static/media/011e180705008d6f-s.woff2 +0 -0
- package/_standalone/.next/static/media/03b436aa846269de-s.woff2 +0 -0
- package/_standalone/.next/static/media/05a58683eb2ffca7-s.woff2 +0 -0
- package/_standalone/.next/static/media/08aedeceaf1dcd57-s.woff2 +0 -0
- package/_standalone/.next/static/media/110cbef534704ef8-s.p.woff2 +0 -0
- package/_standalone/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
- package/_standalone/.next/static/media/20535187d867b7b9-s.woff2 +0 -0
- package/_standalone/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
- package/_standalone/.next/static/media/26d4368bf94c0ec4-s.p.woff2 +0 -0
- package/_standalone/.next/static/media/2801417b65625cf5-s.woff2 +0 -0
- package/_standalone/.next/static/media/28793f5c5e3d822d-s.woff2 +0 -0
- package/_standalone/.next/static/media/36008747766f78c6-s.woff2 +0 -0
- package/_standalone/.next/static/media/4f19a67e08e18f3c-s.woff2 +0 -0
- package/_standalone/.next/static/media/5356a6a4f2c8c8d8-s.woff2 +0 -0
- package/_standalone/.next/static/media/58f386aa6b1a2a92-s.woff2 +0 -0
- package/_standalone/.next/static/media/5c0c2bcbaa4149ca-s.p.woff2 +0 -0
- package/_standalone/.next/static/media/6d38f9d4e0f4772b-s.woff2 +0 -0
- package/_standalone/.next/static/media/714ad00c3d008517-s.woff2 +0 -0
- package/_standalone/.next/static/media/73cb51aac9c97f90-s.woff2 +0 -0
- package/_standalone/.next/static/media/7b19b489dc6743ba-s.woff2 +0 -0
- package/_standalone/.next/static/media/7ba5fb2a8c88521c-s.woff2 +0 -0
- package/_standalone/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
- package/_standalone/.next/static/media/92eeb95d069020cc-s.woff2 +0 -0
- package/_standalone/.next/static/media/99bbede094da1c3f-s.woff2 +0 -0
- package/_standalone/.next/static/media/ab00a911ac2adf48-s.woff2 +0 -0
- package/_standalone/.next/static/media/b3bf17a9041d9433-s.woff2 +0 -0
- package/_standalone/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
- package/_standalone/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
- package/_standalone/.next/static/media/c80eef6a0c97798e-s.woff2 +0 -0
- package/_standalone/.next/static/media/c9c3823090ec8b55-s.woff2 +0 -0
- package/_standalone/.next/static/media/d26bbd13d6b70f89-s.woff2 +0 -0
- package/_standalone/.next/static/media/d2f466e69dd54845-s.woff2 +0 -0
- package/_standalone/.next/static/media/d3ebbfd689654d3a-s.p.woff2 +0 -0
- package/_standalone/.next/static/media/db96af6b531dc71f-s.p.woff2 +0 -0
- package/_standalone/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
- package/_standalone/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
- package/_standalone/.next/trace +72 -0
- package/_standalone/.next/types/routes.d.ts +158 -0
- package/_standalone/.next/types/validator.ts +844 -0
- package/_standalone/__tests__/a2a/agent-card.test.ts +60 -0
- package/_standalone/__tests__/a2a/client.test.ts +264 -0
- package/_standalone/__tests__/a2a/delegation-history.test.ts +133 -0
- package/_standalone/__tests__/a2a/orchestrator.test.ts +280 -0
- package/_standalone/__tests__/a2a/task-handler.test.ts +86 -0
- package/_standalone/__tests__/acp/acp-types.test.ts +273 -0
- package/_standalone/__tests__/acp/agent-descriptors.test.ts +284 -0
- package/_standalone/__tests__/acp/bridge.test.ts +188 -0
- package/_standalone/__tests__/acp/registry.test.ts +193 -0
- package/_standalone/__tests__/acp/session.test.ts +466 -0
- package/_standalone/__tests__/agent/backend-retry.test.ts +143 -0
- package/_standalone/__tests__/agent/chat-mode.test.ts +103 -0
- package/_standalone/__tests__/agent/loop-detection.test.ts +85 -0
- package/_standalone/__tests__/agent/paragraph-extract.test.ts +76 -0
- package/_standalone/__tests__/agent/prompt.test.ts +21 -0
- package/_standalone/__tests__/agent/provider-endpoints.test.ts +70 -0
- package/_standalone/__tests__/agent/provider-presets.test.ts +32 -0
- package/_standalone/__tests__/agent/retry-reconnect.test.ts +120 -0
- package/_standalone/__tests__/agent/stream-consumer-status.test.ts +103 -0
- package/_standalone/__tests__/agent/token-estimation.test.ts +54 -0
- package/_standalone/__tests__/agents/agents-content-dashboard.test.tsx +181 -0
- package/_standalone/__tests__/agents/agents-content-model.test.ts +209 -0
- package/_standalone/__tests__/api/ask-attachments.test.ts +194 -0
- package/_standalone/__tests__/api/backlinks.test.ts +55 -0
- package/_standalone/__tests__/api/bootstrap.test.ts +70 -0
- package/_standalone/__tests__/api/changes.test.ts +96 -0
- package/_standalone/__tests__/api/channels-verify.test.ts +75 -0
- package/_standalone/__tests__/api/check-port.test.ts +100 -0
- package/_standalone/__tests__/api/extract-pdf.test.ts +265 -0
- package/_standalone/__tests__/api/file.test.ts +423 -0
- package/_standalone/__tests__/api/files.test.ts +43 -0
- package/_standalone/__tests__/api/git.test.ts +80 -0
- package/_standalone/__tests__/api/im-activity.test.ts +36 -0
- package/_standalone/__tests__/api/im-config-feishu-conversation.test.ts +142 -0
- package/_standalone/__tests__/api/im-webhook-feishu.test.ts +97 -0
- package/_standalone/__tests__/api/install-skill.test.ts +283 -0
- package/_standalone/__tests__/api/mcp-install.test.ts +400 -0
- package/_standalone/__tests__/api/pi-subagents.test.ts +81 -0
- package/_standalone/__tests__/api/recent-files.test.ts +43 -0
- package/_standalone/__tests__/api/retry.test.ts +49 -0
- package/_standalone/__tests__/api/search.test.ts +48 -0
- package/_standalone/__tests__/api/settings.test.ts +56 -0
- package/_standalone/__tests__/api/setup-paths.test.ts +81 -0
- package/_standalone/__tests__/api/setup.test.ts +428 -0
- package/_standalone/__tests__/api/skills.test.ts +362 -0
- package/_standalone/__tests__/api/space-overview.test.ts +79 -0
- package/_standalone/__tests__/api/test-key.test.ts +187 -0
- package/_standalone/__tests__/ask/ask-content-agent-selection.test.tsx +266 -0
- package/_standalone/__tests__/ask/ask-content-attach-menu.test.tsx +205 -0
- package/_standalone/__tests__/ask/ask-content-input-during-run.test.tsx +248 -0
- package/_standalone/__tests__/ask/auto-reconnect.test.ts +142 -0
- package/_standalone/__tests__/ask/file-chip-variants.test.tsx +18 -0
- package/_standalone/__tests__/ask/message-list-agent-attribution.test.tsx +73 -0
- package/_standalone/__tests__/ask/mode-capsule.test.ts +95 -0
- package/_standalone/__tests__/ask/non-streaming-api.test.ts +281 -0
- package/_standalone/__tests__/ask/save-insight.test.ts +84 -0
- package/_standalone/__tests__/ask/save-session.test.ts +73 -0
- package/_standalone/__tests__/channel-cli-layers.test.ts +108 -0
- package/_standalone/__tests__/channel-cli-subprocess.test.ts +73 -0
- package/_standalone/__tests__/channel-command-env.test.ts +82 -0
- package/_standalone/__tests__/channel-mgmt.test.js +75 -0
- package/_standalone/__tests__/channel-prompts.test.ts +48 -0
- package/_standalone/__tests__/cli/agent-routing.test.ts +232 -0
- package/_standalone/__tests__/cli/file-subcommands.test.ts +379 -0
- package/_standalone/__tests__/compile/compile-incremental.test.ts +103 -0
- package/_standalone/__tests__/compile/compile-meta.test.ts +74 -0
- package/_standalone/__tests__/compile/compile.test.ts +98 -0
- package/_standalone/__tests__/components/UpdateToast.test.ts +344 -0
- package/_standalone/__tests__/components/breadcrumb-header-ux.test.ts +14 -0
- package/_standalone/__tests__/components/channel-detail-redesign.test.tsx +222 -0
- package/_standalone/__tests__/components/header-toc-vertical-alignment.test.ts +23 -0
- package/_standalone/__tests__/components/line-diff.test.ts +37 -0
- package/_standalone/__tests__/components/search-modal-drag-drop.test.tsx +466 -0
- package/_standalone/__tests__/components/table-of-contents-header-layout.test.ts +15 -0
- package/_standalone/__tests__/components/view-page-header-layout.test.ts +13 -0
- package/_standalone/__tests__/components/view-page-header-scroll-stability.test.ts +34 -0
- package/_standalone/__tests__/core/agent-audit-log.test.ts +71 -0
- package/_standalone/__tests__/core/api.test.ts +135 -0
- package/_standalone/__tests__/core/atomic-append.test.ts +47 -0
- package/_standalone/__tests__/core/backlinks.test.ts +72 -0
- package/_standalone/__tests__/core/bm25-search.test.ts +78 -0
- package/_standalone/__tests__/core/chinese-segmentation.test.ts +69 -0
- package/_standalone/__tests__/core/config.test.ts +101 -0
- package/_standalone/__tests__/core/content-changes.test.ts +131 -0
- package/_standalone/__tests__/core/context.test.ts +50 -0
- package/_standalone/__tests__/core/create-space.test.ts +39 -0
- package/_standalone/__tests__/core/csv.test.ts +49 -0
- package/_standalone/__tests__/core/detect-agents.test.ts +139 -0
- package/_standalone/__tests__/core/errors.test.ts +119 -0
- package/_standalone/__tests__/core/file-convert.test.ts +148 -0
- package/_standalone/__tests__/core/fs-ops.test.ts +162 -0
- package/_standalone/__tests__/core/helpers.ts +35 -0
- package/_standalone/__tests__/core/hybrid-search.test.ts +109 -0
- package/_standalone/__tests__/core/inbox-url-utils.test.ts +37 -0
- package/_standalone/__tests__/core/inbox.test.ts +418 -0
- package/_standalone/__tests__/core/jwt.test.ts +62 -0
- package/_standalone/__tests__/core/lines.test.ts +148 -0
- package/_standalone/__tests__/core/link-index.test.ts +107 -0
- package/_standalone/__tests__/core/list-spaces.test.ts +45 -0
- package/_standalone/__tests__/core/metrics.test.ts +103 -0
- package/_standalone/__tests__/core/organize.test.ts +90 -0
- package/_standalone/__tests__/core/request-scoped-tools.test.ts +19 -0
- package/_standalone/__tests__/core/resolve-script.test.ts +115 -0
- package/_standalone/__tests__/core/search-index.test.ts +239 -0
- package/_standalone/__tests__/core/search.test.ts +68 -0
- package/_standalone/__tests__/core/security.test.ts +85 -0
- package/_standalone/__tests__/core/skill-install-logic.test.ts +230 -0
- package/_standalone/__tests__/core/space-aware-tree.test.ts +162 -0
- package/_standalone/__tests__/core/space-scaffold.test.ts +120 -0
- package/_standalone/__tests__/core/sync-status.test.ts +121 -0
- package/_standalone/__tests__/core/sync.test.ts +354 -0
- package/_standalone/__tests__/core/tools.test.ts +339 -0
- package/_standalone/__tests__/core/tree-async.test.ts +43 -0
- package/_standalone/__tests__/core/tree.test.ts +160 -0
- package/_standalone/__tests__/core/web-clip.test.ts +229 -0
- package/_standalone/__tests__/hooks/useAiOrganize.test.ts +633 -0
- package/_standalone/__tests__/hooks/useMention.test.ts +92 -0
- package/_standalone/__tests__/hooks/useSlashCommand.test.ts +152 -0
- package/_standalone/__tests__/im/activity.test.ts +74 -0
- package/_standalone/__tests__/im/config.test.ts +114 -0
- package/_standalone/__tests__/im/dingtalk.test.ts +23 -0
- package/_standalone/__tests__/im/feishu-conversation-processing.test.ts +96 -0
- package/_standalone/__tests__/im/feishu-dispatcher.test.ts +151 -0
- package/_standalone/__tests__/im/feishu-webhook.test.ts +187 -0
- package/_standalone/__tests__/im/feishu-ws-client.test.ts +91 -0
- package/_standalone/__tests__/im/format.test.ts +134 -0
- package/_standalone/__tests__/im/qq.test.ts +23 -0
- package/_standalone/__tests__/im/types.test.ts +97 -0
- package/_standalone/__tests__/im/wechat.test.ts +23 -0
- package/_standalone/__tests__/integration/drag-drop-format-verification.test.ts +289 -0
- package/_standalone/__tests__/integration/search-askcontent-drag-drop.test.tsx +565 -0
- package/_standalone/__tests__/lib/ask-agent.test.ts +84 -0
- package/_standalone/__tests__/lib/daily-echo-aggregation.test.ts +225 -0
- package/_standalone/__tests__/lib/daily-echo-config.test.ts +254 -0
- package/_standalone/__tests__/lib/daily-echo-prompts.test.ts +236 -0
- package/_standalone/__tests__/lib/daily-echo-snapshot.test.ts +86 -0
- package/_standalone/__tests__/lib/daily-echo-storage.test.ts +392 -0
- package/_standalone/__tests__/lib/echo-insight-prompt.test.ts +57 -0
- package/_standalone/__tests__/lib/echo-pages-visual-i18n.test.ts +31 -0
- package/_standalone/__tests__/lib/echo-segments.test.ts +48 -0
- package/_standalone/__tests__/lib/explore-use-cases.test.ts +70 -0
- package/_standalone/__tests__/lib/i18n-new-keys.test.ts +153 -0
- package/_standalone/__tests__/lib/mcp-snippets.test.ts +163 -0
- package/_standalone/__tests__/lib/mindos-copy-alignment.test.ts +36 -0
- package/_standalone/__tests__/lib/pi-extensions.test.ts +42 -0
- package/_standalone/__tests__/lib/pi-skills.test.ts +117 -0
- package/_standalone/__tests__/lib/session-store.test.ts +58 -0
- package/_standalone/__tests__/lib/settings-ai-client.test.ts +93 -0
- package/_standalone/__tests__/lib/walkthrough-steps.test.ts +25 -0
- package/_standalone/__tests__/lib/web-search.test.ts +141 -0
- package/_standalone/__tests__/lint/lint.test.ts +257 -0
- package/_standalone/__tests__/middleware.test.ts +112 -0
- package/_standalone/__tests__/obsidian-compat/command-registry.test.ts +56 -0
- package/_standalone/__tests__/obsidian-compat/component-plugin.test.ts +130 -0
- package/_standalone/__tests__/obsidian-compat/integration.test.ts +160 -0
- package/_standalone/__tests__/obsidian-compat/loader.test.ts +130 -0
- package/_standalone/__tests__/obsidian-compat/manifest.test.ts +58 -0
- package/_standalone/__tests__/obsidian-compat/plugin-manager.test.ts +112 -0
- package/_standalone/__tests__/obsidian-compat/ui.test.ts +71 -0
- package/_standalone/__tests__/obsidian-compat/vault.test.ts +93 -0
- package/_standalone/__tests__/panels/agents-panel-hub.test.tsx +66 -0
- package/_standalone/__tests__/panels/search-panel-drag-drop.test.tsx +259 -0
- package/_standalone/__tests__/renderers/csv-core-builtin.test.ts +11 -0
- package/_standalone/__tests__/renderers/plugin-renderers-filtering.test.ts +49 -0
- package/_standalone/__tests__/renderers/renderer-surface-classification.test.ts +45 -0
- package/_standalone/__tests__/renderers/workflow-yaml-execution.test.ts +232 -0
- package/_standalone/__tests__/renderers/workflow-yaml-parser.test.ts +181 -0
- package/_standalone/__tests__/renderers/workflow-yaml-serializer.test.ts +64 -0
- package/_standalone/__tests__/settings/activity-bar-rail-navigation.test.tsx +178 -0
- package/_standalone/__tests__/settings/activity-bar-update-badge.test.tsx +91 -0
- package/_standalone/__tests__/settings/custom-provider-form.test.ts +30 -0
- package/_standalone/__tests__/settings/settings-update-badge.test.tsx +134 -0
- package/_standalone/__tests__/settings/update-tab-availability-sync.test.tsx +115 -0
- package/_standalone/__tests__/settings/update-tab-browser.test.tsx +159 -0
- package/_standalone/__tests__/settings/update-tab-desktop.test.tsx +169 -0
- package/_standalone/__tests__/setup.ts +100 -0
- package/_standalone/__tests__/skills/mindos-skill-copy-alignment.test.ts +27 -0
- package/_standalone/app/globals.css +534 -0
- package/_standalone/app/icon.svg +37 -0
- package/_standalone/components/ActivityBar.tsx +293 -0
- package/_standalone/components/AskFab.tsx +57 -0
- package/_standalone/components/AskModal.tsx +48 -0
- package/_standalone/components/Backlinks.tsx +75 -0
- package/_standalone/components/Breadcrumb.tsx +72 -0
- package/_standalone/components/CreateSpaceModal.tsx +235 -0
- package/_standalone/components/CsvView.tsx +346 -0
- package/_standalone/components/CustomSelect.tsx +256 -0
- package/_standalone/components/DirPicker.tsx +217 -0
- package/_standalone/components/EchoSpotlight.tsx +115 -0
- package/_standalone/components/Editor.tsx +242 -0
- package/_standalone/components/EditorWrapper.tsx +17 -0
- package/_standalone/components/ExportModal.tsx +223 -0
- package/_standalone/components/FileTree.tsx +619 -0
- package/_standalone/components/FindInPage.tsx +211 -0
- package/_standalone/components/GuideCard.tsx +358 -0
- package/_standalone/components/ImportModal.tsx +521 -0
- package/_standalone/components/JsonView.tsx +23 -0
- package/_standalone/components/KeyboardShortcuts.tsx +102 -0
- package/_standalone/components/Logo.tsx +39 -0
- package/_standalone/components/MarkdownEditor.tsx +94 -0
- package/_standalone/components/MarkdownView.tsx +192 -0
- package/_standalone/components/OnboardingView.tsx +164 -0
- package/_standalone/components/OrganizeToast.tsx +543 -0
- package/_standalone/components/Panel.tsx +385 -0
- package/_standalone/components/QuickSuggestion.tsx +69 -0
- package/_standalone/components/RightAgentDetailPanel.tsx +125 -0
- package/_standalone/components/RightAskPanel.tsx +174 -0
- package/_standalone/components/SearchModal.tsx +446 -0
- package/_standalone/components/SettingsModal.tsx +30 -0
- package/_standalone/components/Sidebar.tsx +190 -0
- package/_standalone/components/SidebarLayout.tsx +713 -0
- package/_standalone/components/SpaceInitToast.tsx +173 -0
- package/_standalone/components/SyncStatusBar.tsx +294 -0
- package/_standalone/components/SystemPulse.tsx +216 -0
- package/_standalone/components/TableOfContents.tsx +207 -0
- package/_standalone/components/ThemeToggle.tsx +36 -0
- package/_standalone/components/WysiwygEditor.tsx +165 -0
- package/_standalone/components/agents/AcpRegistrySection.tsx +457 -0
- package/_standalone/components/agents/ActivitySection.tsx +35 -0
- package/_standalone/components/agents/AgentActivitySection.tsx +225 -0
- package/_standalone/components/agents/AgentsContentChannelDetail.tsx +815 -0
- package/_standalone/components/agents/AgentsContentChannels.tsx +150 -0
- package/_standalone/components/agents/AgentsMcpSection.tsx +568 -0
- package/_standalone/components/agents/AgentsOverviewSection.tsx +488 -0
- package/_standalone/components/agents/AgentsPanelA2aTab.tsx +298 -0
- package/_standalone/components/agents/AgentsPanelSessionsTab.tsx +171 -0
- package/_standalone/components/agents/AgentsPrimitives.tsx +360 -0
- package/_standalone/components/agents/AgentsSkillsByAgent.tsx +231 -0
- package/_standalone/components/agents/AgentsSkillsSection.tsx +655 -0
- package/_standalone/components/agents/CustomAgentModal.tsx +691 -0
- package/_standalone/components/agents/DiscoverAgentModal.tsx +149 -0
- package/_standalone/components/agents/EnvPermSection.tsx +82 -0
- package/_standalone/components/agents/KnowledgeInteractionSection.tsx +241 -0
- package/_standalone/components/agents/RecentActivityFeed.tsx +137 -0
- package/_standalone/components/agents/RuntimeDiagSection.tsx +93 -0
- package/_standalone/components/agents/SkillDetailPopover.tsx +584 -0
- package/_standalone/components/agents/agent-activity-shared.tsx +110 -0
- package/_standalone/components/agents/agent-detail-primitives.tsx +43 -0
- package/_standalone/components/ask/AgentSelectorCapsule.tsx +218 -0
- package/_standalone/components/ask/AskContent.tsx +849 -0
- package/_standalone/components/ask/AskHeader.tsx +279 -0
- package/_standalone/components/ask/FileChip.tsx +181 -0
- package/_standalone/components/ask/HighlightMatch.tsx +14 -0
- package/_standalone/components/ask/MentionPopover.tsx +92 -0
- package/_standalone/components/ask/MessageList.tsx +371 -0
- package/_standalone/components/ask/ModeCapsule.tsx +180 -0
- package/_standalone/components/ask/ProviderModelCapsule.tsx +589 -0
- package/_standalone/components/ask/SaveInsightInline.tsx +286 -0
- package/_standalone/components/ask/SaveSessionInline.tsx +491 -0
- package/_standalone/components/ask/SessionHistory.tsx +164 -0
- package/_standalone/components/ask/SessionHistoryPanel.tsx +398 -0
- package/_standalone/components/ask/SessionTabBar.tsx +78 -0
- package/_standalone/components/ask/SlashCommandPopover.tsx +82 -0
- package/_standalone/components/ask/ThinkingBlock.tsx +56 -0
- package/_standalone/components/ask/ToolCallBlock.tsx +187 -0
- package/_standalone/components/ask/save-insight-utils.ts +101 -0
- package/_standalone/components/changes/ChangesBanner.tsx +145 -0
- package/_standalone/components/changes/ChangesContentPage.tsx +540 -0
- package/_standalone/components/echo/DailyEcho/DailyEchoReportButton.tsx +88 -0
- package/_standalone/components/echo/DailyEcho/DailyEchoReportDrawer.tsx +129 -0
- package/_standalone/components/echo/DailyEcho/sections/DailyEchoAlignmentSection.tsx +76 -0
- package/_standalone/components/echo/DailyEcho/sections/DailyEchoReflectionSection.tsx +37 -0
- package/_standalone/components/echo/DailyEcho/sections/DailyEchoSnapshotSection.tsx +39 -0
- package/_standalone/components/echo/DailyEcho/sections/DailyEchoThemesSection.tsx +44 -0
- package/_standalone/components/echo/EchoHero.tsx +35 -0
- package/_standalone/components/echo/EchoInsightCollapsible.tsx +197 -0
- package/_standalone/components/echo/EchoPageSections.tsx +51 -0
- package/_standalone/components/echo/EchoSegmentNav.tsx +57 -0
- package/_standalone/components/explore/UseCaseCard.tsx +56 -0
- package/_standalone/components/explore/use-cases.generated.ts +76 -0
- package/_standalone/components/explore/use-cases.yaml +185 -0
- package/_standalone/components/file-tree/FileTreeContextMenus.tsx +160 -0
- package/_standalone/components/home/InboxSection.tsx +707 -0
- package/_standalone/components/panels/AgentsPanel.tsx +203 -0
- package/_standalone/components/panels/AgentsPanelAgentDetail.tsx +191 -0
- package/_standalone/components/panels/AgentsPanelAgentGroups.tsx +113 -0
- package/_standalone/components/panels/AgentsPanelAgentListRow.tsx +133 -0
- package/_standalone/components/panels/AgentsPanelHubNav.tsx +76 -0
- package/_standalone/components/panels/DiscoverPanel.tsx +212 -0
- package/_standalone/components/panels/EchoPanel.tsx +49 -0
- package/_standalone/components/panels/EchoSidebarStats.tsx +136 -0
- package/_standalone/components/panels/IMChannelsView.tsx +114 -0
- package/_standalone/components/panels/ImportHistoryPanel.tsx +195 -0
- package/_standalone/components/panels/PanelHeader.tsx +35 -0
- package/_standalone/components/panels/PanelNavRow.tsx +77 -0
- package/_standalone/components/panels/PluginsPanel.tsx +168 -0
- package/_standalone/components/panels/SearchPanel.tsx +283 -0
- package/_standalone/components/panels/SyncPopover.tsx +105 -0
- package/_standalone/components/panels/WorkflowsPanel.tsx +206 -0
- package/_standalone/components/panels/agents-panel-resolve-status.ts +13 -0
- package/_standalone/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +322 -0
- package/_standalone/components/renderers/audio/AudioRenderer.tsx +79 -0
- package/_standalone/components/renderers/backlinks/BacklinksRenderer.tsx +147 -0
- package/_standalone/components/renderers/change-log/ChangeLogRenderer.tsx +472 -0
- package/_standalone/components/renderers/config/ConfigRenderer.tsx +236 -0
- package/_standalone/components/renderers/csv/BoardView.tsx +146 -0
- package/_standalone/components/renderers/csv/ConfigPanel.tsx +119 -0
- package/_standalone/components/renderers/csv/CsvRenderer.tsx +70 -0
- package/_standalone/components/renderers/csv/EditableCell.tsx +43 -0
- package/_standalone/components/renderers/csv/GalleryView.tsx +40 -0
- package/_standalone/components/renderers/csv/TableView.tsx +163 -0
- package/_standalone/components/renderers/csv/types.ts +87 -0
- package/_standalone/components/renderers/graph/GraphRenderer.tsx +427 -0
- package/_standalone/components/renderers/image/ImageRenderer.tsx +203 -0
- package/_standalone/components/renderers/pdf/PdfRenderer.tsx +57 -0
- package/_standalone/components/renderers/summary/SummaryRenderer.tsx +226 -0
- package/_standalone/components/renderers/timeline/TimelineRenderer.tsx +213 -0
- package/_standalone/components/renderers/todo/FilterBar.tsx +106 -0
- package/_standalone/components/renderers/todo/SectionCard.tsx +354 -0
- package/_standalone/components/renderers/todo/TodoRenderer.tsx +137 -0
- package/_standalone/components/renderers/video/VideoRenderer.tsx +91 -0
- package/_standalone/components/renderers/workflow-yaml/StepEditor.tsx +164 -0
- package/_standalone/components/renderers/workflow-yaml/WorkflowEditor.tsx +201 -0
- package/_standalone/components/renderers/workflow-yaml/WorkflowRunner.tsx +282 -0
- package/_standalone/components/renderers/workflow-yaml/WorkflowYamlRenderer.tsx +126 -0
- package/_standalone/components/renderers/workflow-yaml/execution.ts +229 -0
- package/_standalone/components/renderers/workflow-yaml/index.ts +6 -0
- package/_standalone/components/renderers/workflow-yaml/parser.ts +172 -0
- package/_standalone/components/renderers/workflow-yaml/selectors.tsx +574 -0
- package/_standalone/components/renderers/workflow-yaml/serializer.ts +56 -0
- package/_standalone/components/renderers/workflow-yaml/types.ts +46 -0
- package/_standalone/components/settings/AiTab.tsx +610 -0
- package/_standalone/components/settings/AppearanceTab.tsx +268 -0
- package/_standalone/components/settings/CustomProviderFields.tsx +121 -0
- package/_standalone/components/settings/CustomProvidersCard.tsx +157 -0
- package/_standalone/components/settings/DesktopUpdateCards.tsx +517 -0
- package/_standalone/components/settings/KnowledgeTab.tsx +719 -0
- package/_standalone/components/settings/McpAgentInstall.tsx +280 -0
- package/_standalone/components/settings/McpConnectGuides.tsx +439 -0
- package/_standalone/components/settings/McpExternalTools.tsx +252 -0
- package/_standalone/components/settings/McpPortSection.tsx +207 -0
- package/_standalone/components/settings/McpSkillCreateForm.tsx +177 -0
- package/_standalone/components/settings/McpSkillRow.tsx +144 -0
- package/_standalone/components/settings/McpSkillsSection.tsx +460 -0
- package/_standalone/components/settings/McpTab.tsx +310 -0
- package/_standalone/components/settings/MonitoringTab.tsx +202 -0
- package/_standalone/components/settings/PluginsTab.tsx +75 -0
- package/_standalone/components/settings/Primitives.tsx +325 -0
- package/_standalone/components/settings/ProviderModal.tsx +87 -0
- package/_standalone/components/settings/SettingsContent.tsx +437 -0
- package/_standalone/components/settings/ShortcutsTab.tsx +20 -0
- package/_standalone/components/settings/SyncEmptyState.tsx +233 -0
- package/_standalone/components/settings/SyncTab.tsx +556 -0
- package/_standalone/components/settings/TestButton.tsx +65 -0
- package/_standalone/components/settings/UninstallTab.tsx +169 -0
- package/_standalone/components/settings/UpdateTab.tsx +362 -0
- package/_standalone/components/settings/WebPortSection.tsx +263 -0
- package/_standalone/components/settings/types.ts +210 -0
- package/_standalone/components/settings/useCustomProviderForm.ts +186 -0
- package/_standalone/components/setup/StepAI.tsx +217 -0
- package/_standalone/components/setup/StepAgents.tsx +324 -0
- package/_standalone/components/setup/StepDots.tsx +51 -0
- package/_standalone/components/setup/StepKB.tsx +263 -0
- package/_standalone/components/setup/StepPorts.tsx +121 -0
- package/_standalone/components/setup/StepReview.tsx +414 -0
- package/_standalone/components/setup/StepSecurity.tsx +77 -0
- package/_standalone/components/setup/constants.tsx +14 -0
- package/_standalone/components/setup/types.ts +61 -0
- package/_standalone/components/shared/ModelInput.tsx +220 -0
- package/_standalone/components/shared/ProviderSelect.tsx +225 -0
- package/_standalone/components/ui/button.tsx +60 -0
- package/_standalone/components/ui/dialog.tsx +157 -0
- package/_standalone/components/ui/input.tsx +20 -0
- package/_standalone/components/ui/scroll-area.tsx +55 -0
- package/_standalone/components/ui/toggle.tsx +44 -0
- package/_standalone/components/walkthrough/WalkthroughOverlay.tsx +266 -0
- package/_standalone/components/walkthrough/WalkthroughTooltip.tsx +131 -0
- package/_standalone/components/walkthrough/index.ts +3 -0
- package/_standalone/components/walkthrough/steps.ts +23 -0
- package/_standalone/components.json +25 -0
- package/_standalone/eslint.config.mjs +18 -0
- package/_standalone/hooks/useA2aRegistry.ts +58 -0
- package/_standalone/hooks/useAcpConfig.ts +96 -0
- package/_standalone/hooks/useAcpDetection.ts +126 -0
- package/_standalone/hooks/useAcpRegistry.ts +86 -0
- package/_standalone/hooks/useAiOrganize.ts +464 -0
- package/_standalone/hooks/useAskChat.ts +339 -0
- package/_standalone/hooks/useAskModal.ts +51 -0
- package/_standalone/hooks/useAskPanel.ts +164 -0
- package/_standalone/hooks/useAskSession.ts +310 -0
- package/_standalone/hooks/useComposerVerticalResize.ts +74 -0
- package/_standalone/hooks/useDelegationHistory.ts +49 -0
- package/_standalone/hooks/useEditorImageUpload.ts +113 -0
- package/_standalone/hooks/useFileImport.ts +233 -0
- package/_standalone/hooks/useFileUpload.ts +206 -0
- package/_standalone/hooks/useImageUpload.ts +153 -0
- package/_standalone/hooks/useLeftPanel.ts +81 -0
- package/_standalone/hooks/useMention.ts +108 -0
- package/_standalone/hooks/useResizeDrag.ts +84 -0
- package/_standalone/hooks/useSettingsAiAvailable.ts +35 -0
- package/_standalone/hooks/useSlashCommand.ts +128 -0
- package/_standalone/instrumentation.ts +60 -0
- package/_standalone/lib/a2a/index.ts +31 -0
- package/_standalone/lib/acp/bridge.ts +144 -0
- package/_standalone/lib/acp/index.ts +38 -0
- package/_standalone/lib/acp/types.ts +247 -0
- package/_standalone/lib/agent/diff-worker.ts +51 -0
- package/_standalone/lib/agent/file-context.ts +116 -0
- package/_standalone/lib/agent/index.ts +8 -0
- package/_standalone/lib/agent/stream-consumer.ts +231 -0
- package/_standalone/lib/api/request-utils.ts +57 -0
- package/_standalone/lib/api.ts +83 -0
- package/_standalone/lib/ask-agent.ts +46 -0
- package/_standalone/lib/clipboard.ts +29 -0
- package/_standalone/lib/config/animation.ts +76 -0
- package/_standalone/lib/config/icon-scale.ts +35 -0
- package/_standalone/lib/config/panel-sizes.ts +58 -0
- package/_standalone/lib/core/types.ts +53 -0
- package/_standalone/lib/daily-echo/aggregator.ts +149 -0
- package/_standalone/lib/daily-echo/ask-llm.ts +77 -0
- package/_standalone/lib/daily-echo/config.ts +72 -0
- package/_standalone/lib/daily-echo/generator.ts +192 -0
- package/_standalone/lib/daily-echo/prompts.ts +200 -0
- package/_standalone/lib/daily-echo/snapshot.ts +19 -0
- package/_standalone/lib/daily-echo/types.ts +340 -0
- package/_standalone/lib/db/daily-echo-db.ts +194 -0
- package/_standalone/lib/echo-insight-prompt.ts +38 -0
- package/_standalone/lib/hooks/useDirectoryDragDrop.ts +94 -0
- package/_standalone/lib/hooks/useFocusTrap.ts +65 -0
- package/_standalone/lib/hooks/usePinnedFiles.ts +95 -0
- package/_standalone/lib/i18n/_core.ts +22 -0
- package/_standalone/lib/im/adapters/dingtalk.ts +210 -0
- package/_standalone/lib/im/adapters/discord.ts +128 -0
- package/_standalone/lib/im/adapters/feishu.ts +248 -0
- package/_standalone/lib/im/adapters/qq.ts +176 -0
- package/_standalone/lib/im/adapters/slack.ts +150 -0
- package/_standalone/lib/im/adapters/telegram.ts +156 -0
- package/_standalone/lib/im/adapters/wechat.ts +127 -0
- package/_standalone/lib/im/adapters/wecom.ts +160 -0
- package/_standalone/lib/im/index.ts +122 -0
- package/_standalone/lib/im/platforms.ts +152 -0
- package/_standalone/lib/image.ts +47 -0
- package/_standalone/lib/inbox-upload.ts +260 -0
- package/_standalone/lib/mcp-snippets.ts +107 -0
- package/_standalone/lib/obsidian-compat/command-registry.ts +85 -0
- package/_standalone/lib/obsidian-compat/component.ts +84 -0
- package/_standalone/lib/obsidian-compat/errors.ts +27 -0
- package/_standalone/lib/obsidian-compat/events.ts +50 -0
- package/_standalone/lib/obsidian-compat/index.ts +18 -0
- package/_standalone/lib/obsidian-compat/loader.ts +225 -0
- package/_standalone/lib/obsidian-compat/manifest.ts +90 -0
- package/_standalone/lib/obsidian-compat/plugin-manager.ts +149 -0
- package/_standalone/lib/obsidian-compat/shims/app.ts +74 -0
- package/_standalone/lib/obsidian-compat/shims/metadata-cache.ts +125 -0
- package/_standalone/lib/obsidian-compat/shims/obsidian.ts +25 -0
- package/_standalone/lib/obsidian-compat/shims/plugin.ts +111 -0
- package/_standalone/lib/obsidian-compat/shims/settings.ts +173 -0
- package/_standalone/lib/obsidian-compat/shims/ui.ts +73 -0
- package/_standalone/lib/obsidian-compat/shims/vault.ts +247 -0
- package/_standalone/lib/obsidian-compat/types.ts +197 -0
- package/_standalone/lib/organize-history.ts +80 -0
- package/_standalone/lib/parsing/parse-todos.ts +325 -0
- package/_standalone/lib/pdf-extract.ts +37 -0
- package/_standalone/lib/pi-integration/session-store.ts +62 -0
- package/_standalone/lib/renderers/useRendererState.ts +114 -0
- package/_standalone/lib/settings-ai-client.ts +36 -0
- package/_standalone/lib/space-ai-init.ts +66 -0
- package/_standalone/lib/stores/McpStoreInit.tsx +18 -0
- package/_standalone/lib/stores/WalkthroughInit.tsx +20 -0
- package/_standalone/lib/stores/hidden-files.ts +43 -0
- package/_standalone/lib/stores/locale-store.ts +69 -0
- package/_standalone/lib/stores/mcp-store.ts +166 -0
- package/_standalone/lib/stores/walkthrough-store.ts +150 -0
- package/_standalone/lib/toast.ts +85 -0
- package/_standalone/lib/utils.ts +45 -0
- package/_standalone/next-env.d.ts +6 -0
- package/_standalone/next.config.ts +68 -0
- package/_standalone/package-lock.json +18664 -0
- package/_standalone/package.json +106 -0
- package/_standalone/postcss.config.mjs +7 -0
- package/_standalone/proxy.ts +88 -0
- package/_standalone/public/file.svg +1 -0
- package/_standalone/public/globe.svg +1 -0
- package/_standalone/public/icons/icon-192.png +0 -0
- package/_standalone/public/icons/icon-512.png +0 -0
- package/_standalone/public/logo-square.svg +37 -0
- package/_standalone/public/logo.svg +37 -0
- package/_standalone/public/manifest.json +26 -0
- package/_standalone/public/next.svg +1 -0
- package/_standalone/public/sw.js +66 -0
- package/_standalone/public/vercel.svg +1 -0
- package/_standalone/public/window.svg +1 -0
- package/_standalone/scripts/extract-pdf.cjs +163 -0
- package/_standalone/scripts/feishu-long-connection.ts +32 -0
- package/_standalone/scripts/generate-explore.ts +145 -0
- package/_standalone/server.js +38 -0
- package/_standalone/tsconfig.json +34 -0
- package/_standalone/tsconfig.tsbuildinfo +1 -0
- package/_standalone/types/semver.d.ts +8 -0
- package/_standalone/vitest.config.ts +14 -0
- package/app/__tests__/agent/provider-presets.test.ts +32 -0
- package/app/__tests__/api/im-config-feishu-conversation.test.ts +39 -0
- package/app/__tests__/api/im-webhook-feishu.test.ts +21 -12
- package/app/__tests__/api/pi-subagents.test.ts +81 -0
- package/app/__tests__/ask/file-chip-variants.test.tsx +18 -0
- package/app/__tests__/ask/message-list-agent-attribution.test.tsx +2 -0
- package/app/__tests__/im/feishu-dispatcher.test.ts +151 -0
- package/app/__tests__/im/feishu-webhook.test.ts +85 -57
- package/app/__tests__/im/feishu-ws-client.test.ts +91 -0
- package/app/__tests__/settings/custom-provider-form.test.ts +30 -0
- package/app/app/api/ask/route.ts +2 -0
- package/app/app/api/im/config/route.ts +2 -0
- package/app/app/api/im/webhook/feishu/route.ts +4 -2
- package/app/components/ask/FileChip.tsx +1 -1
- package/app/components/ask/MessageList.tsx +2 -2
- package/app/components/settings/CustomProviderFields.tsx +1 -1
- package/app/components/settings/CustomProvidersCard.tsx +3 -0
- package/app/components/settings/useCustomProviderForm.ts +78 -24
- package/app/components/shared/ProviderSelect.tsx +6 -5
- package/app/lib/agent/providers.ts +44 -6
- package/app/lib/im/feishu-dispatcher.ts +111 -0
- package/app/lib/im/feishu-ws-client.ts +72 -0
- package/app/lib/im/types.ts +14 -0
- package/app/lib/im/webhook/feishu.ts +44 -55
- package/app/next-env.d.ts +1 -1
- package/app/next.config.ts +28 -4
- package/app/package.json +3 -1
- package/app/scripts/feishu-long-connection.ts +32 -0
- package/bin/cli.js +3 -1
- package/bin/commands/feishu-ws.js +39 -0
- package/package.json +1 -1
- package/scripts/build-runtime-archive.sh +36 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,160,165,332,635,706,910,1124,1131,1150,1165,1212,1288,2036,2092,2191,2229,2287,2437,2522,2772,2839,2920,2950,3358,3390,3757,3896,3945,4048,4209,4230,4473,4503,4558,4828,4888,4896,5177,5245,5411,5620,5684,5704,5931,6047,6202,6306,6540,6819,6828,6988,7113,7330,7538,7581,7607,7646,7711,7822,7839,7851,7858,8141,8167,8181,8232,8372,8529,8616,8641,9120,9188,9249,9303,9336,9491,9596,9725,9861,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{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,n={setState:s,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(s,a,n);return n},n=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?n(e):n},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"}]])},55102:(e,t,r)=>{Promise.resolve().then(r.bind(r,91727))},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:()=>l});var s=r(12115);let a=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),n=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 o=(0,s.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:c,...d},u)=>(0,s.createElement)("svg",{ref:u,...i,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:a("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...c.map(([e,t])=>(0,s.createElement)(e,t)),...Array.isArray(l)?l:[l]])),l=(e,t)=>{let r=(0,s.forwardRef)(({className:r,...i},l)=>(0,s.createElement)(o,{ref:l,iconNode:t,className:a(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...i}));return r.displayName=n(e),r}},91727:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var s=r(95155),a=r(12115),n=r(73321),i=r(6296);let o=(0,r(90425).A)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var l=r(35581);function c(){let e=(0,n.useRouter)(),t=(0,n.useSearchParams)(),{t:r}=(0,l.Y)(),[c,d]=(0,a.useState)(""),[u,p]=(0,a.useState)(!1),[h,x]=(0,a.useState)(""),m=r.login;async function f(r){r.preventDefault(),p(!0),x("");try{if((await fetch("/api/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:c})})).ok){let r=t.get("redirect")??"/",s=r.startsWith("/")&&!r.startsWith("//")?r:"/";e.replace(s)}else x(m?.incorrectPassword??"Incorrect password. Please try again."),d("")}catch{x(m?.connectionError??"Connection error. Please try again.")}finally{p(!1)}}return(0,s.jsx)("div",{className:"min-h-screen bg-background flex items-center justify-center px-4",children:(0,s.jsxs)("div",{className:"bg-card border border-border rounded-xl shadow-2xl w-full max-w-sm p-8",children:[(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 mb-8",children:[(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 80 80",fill:"none",width:40,height:40,children:[(0,s.jsxs)("defs",{children:[(0,s.jsxs)("linearGradient",{id:"lp-grad-human",x1:"35",y1:"40",x2:"5",y2:"40",gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:"0%",stopColor:"#c8873a",stopOpacity:"0.8"}),(0,s.jsx)("stop",{offset:"100%",stopColor:"#c8873a",stopOpacity:"0.3"})]}),(0,s.jsxs)("linearGradient",{id:"lp-grad-agent",x1:"35",y1:"40",x2:"75",y2:"40",gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:"0%",stopColor:"#c8873a",stopOpacity:"0.8"}),(0,s.jsx)("stop",{offset:"100%",stopColor:"#c8873a",stopOpacity:"1"})]})]}),(0,s.jsxs)("g",{transform:"translate(0, 20)",children:[(0,s.jsx)("path",{d:"M35,20 C25,35 8,35 8,20 C8,5 25,5 35,20",stroke:"url(#lp-grad-human)",strokeWidth:"3",strokeDasharray:"2 4",strokeLinecap:"round"}),(0,s.jsx)("path",{d:"M35,20 C45,2 75,2 75,20 C75,38 45,38 35,20",stroke:"url(#lp-grad-agent)",strokeWidth:"4.5",strokeLinecap:"round"}),(0,s.jsx)("path",{d:"M35,17.5 Q35,20 37.5,20 Q35,20 35,22.5 Q35,20 32.5,20 Q35,20 35,17.5 Z",fill:"#FEF3C7"})]})]}),(0,s.jsx)("h1",{className:"text-2xl font-brand text-foreground",children:"MindOS"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground/70 italic",children:m?.tagline??"You think here, Agents act there"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:m?.subtitle??"Enter your password to continue"})]}),(0,s.jsxs)("form",{onSubmit:f,className:"space-y-4",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-sm font-medium text-foreground",htmlFor:"password",children:m?.passwordLabel??"Password"}),(0,s.jsx)("input",{id:"password",type:"password",value:c,onChange:e=>d(e.target.value),placeholder:m?.passwordPlaceholder??"Enter password",autoFocus:!0,autoComplete:"current-password",required:!0,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"})]}),h&&(0,s.jsx)("p",{className:"text-xs text-destructive",role:"alert","aria-live":"polite",children:h}),(0,s.jsxs)("button",{type:"submit",disabled:u||!c,className:"w-full flex items-center justify-center gap-2 py-2 px-4 rounded-lg text-sm font-medium transition-opacity disabled:opacity-50 disabled:cursor-not-allowed mt-2 bg-[var(--amber)] text-[var(--amber-foreground)]",children:[u?(0,s.jsx)(i.A,{size:14,className:"animate-spin"}):(0,s.jsx)(o,{size:14}),u?m?.signingIn??"Signing in…":m?.signIn??"Sign in"]})]})]})})}function d(){return(0,s.jsx)("div",{className:"min-h-screen bg-background flex items-center justify-center px-4",children:(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 text-muted-foreground",children:[(0,s.jsx)(i.A,{className:"h-8 w-8 animate-spin text-[var(--amber)]","aria-hidden":!0}),(0,s.jsx)("p",{className:"text-sm",children:"Loading…"})]})})}function u(){return(0,s.jsx)(a.Suspense,{fallback:(0,s.jsx)(d,{}),children:(0,s.jsx)(c,{})})}}},e=>{e.O(0,[5581,8441,3794,7358],()=>e(e.s=55102)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{4235:(e,t,s)=>{"use strict";s.d(t,{B1:()=>o,X8:()=>l,dV:()=>d,oR:()=>m});let r=[],n=[],a=0;function i(){for(let e of n)e()}function o(e){return n=[...n,e],()=>{n=n.filter(t=>t!==e)}}function d(){return r}function l(e){r=r.filter(t=>t.id!==e),i()}function c(e){let t=`toast-${++a}`,s={id:t,message:e.message,type:e.type??"info",duration:e.duration??2e3,action:e.action};r=[...r,s].slice(-3),i(),s.duration>0&&setTimeout(()=>l(t),s.duration)}function m(e,t){c({message:e,...t})}m.success=(e,t)=>c({message:e,type:"success",duration:t}),m.undo=(e,t,s)=>c({message:e,type:"info",duration:s?.duration??5e3,action:{label:s?.label??"Undo",onClick:t}}),m.error=(e,t)=>c({message:e,type:"error",duration:t}),m.copy=(e="Copied")=>c({message:e,type:"success",duration:1500})},7834:(e,t,s)=>{"use strict";async function r(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 s=document.execCommand("copy");return document.body.removeChild(t),s}catch{return!1}}s.d(t,{l:()=>r})},14153:(e,t,s)=>{Promise.resolve().then(s.bind(s,86847))},22356:(e,t,s)=>{"use strict";s.d(t,{h:()=>r,n:()=>n});class r extends Error{constructor(e,t,s){super(e),this.name="ApiError",this.status=t,this.code=s}}async function n(e,t={}){let s,a,i,{timeout:o=3e4,signal:d,...l}=t;if((o>0||d)&&(s=new AbortController),o>0&&s&&(a=setTimeout(()=>{s.abort(Error(`Request timed out after ${Math.round(o/1e3)}s`))},o)),d&&s)if(d.aborted)s.abort();else{let e=()=>s?.abort();d.addEventListener("abort",e,{once:!0}),i=()=>{d.removeEventListener("abort",e)}}let c=s?.signal??d;try{let t=await fetch(e,{...l,signal:c});if(!t.ok){let e,s=`Request failed (${t.status})`;try{let r=await t.json();r?.error?.code&&r?.error?.message?(s=r.error.message,e=r.error.code):r?.error&&(s="string"==typeof r.error?r.error:r.error.message??s)}catch{}throw new r(s,t.status,e)}return await t.json()}finally{a&&clearTimeout(a),i&&i()}}},86847:(e,t,s)=>{"use strict";s.d(t,{default:()=>L});var r=s(95155),n=s(12115),a=s(73321),i=s(35581),o=s(48990),d=s(37618),l=s(89123),c=s(86901),m=s(42268),x=s(92451),u=s(97810),p=s(48368),h=s(13545),f=s(6296),g=s(31025);let b=[{id:"en",icon:(0,r.jsx)(x.A,{size:20}),dirs:["Profile/","Connections/","Notes/","Workflows/","Resources/","Projects/"]},{id:"zh",icon:(0,r.jsx)(u.A,{size:20}),dirs:["画像/","关系/","笔记/","流程/","资源/","项目/"]},{id:"empty",icon:(0,r.jsx)(p.A,{size:20}),dirs:["README.md","CONFIG.json","INSTRUCTION.md"]}];function v(){let{t:e}=(0,i.Y)(),t=(0,a.useRouter)(),[s,o]=(0,n.useState)(null),[d,l]=(0,n.useState)(null),m=e.onboarding;async function x(e){o(e),l(null);try{let s=await fetch("/api/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({template:e})});if(!s.ok){let e=await s.json().catch(()=>({}));throw Error(e.error||`HTTP ${s.status}`)}t.refresh()}catch(e){console.error("[Onboarding] init failed:",e),l(e instanceof Error?e.message:"Unknown error"),o(null)}}return(0,r.jsxs)("div",{className:"content-width px-4 md:px-6 py-12 md:py-20",children:[(0,r.jsxs)("div",{className:"text-center mb-10",children:[(0,r.jsxs)("div",{className:"inline-flex items-center gap-2 mb-4",children:[(0,r.jsx)(c.A,{size:18,className:"text-[var(--amber)]"}),(0,r.jsx)("h1",{className:"text-2xl font-brand text-foreground",children:"MindOS"})]}),(0,r.jsx)("p",{className:"text-sm leading-relaxed max-w-md mx-auto text-muted-foreground",children:m.subtitle})]}),d&&(0,r.jsxs)("div",{role:"alert",className:"max-w-2xl mx-auto mb-6 flex items-center gap-2.5 px-4 py-3 rounded-lg border border-destructive/30 bg-destructive/5 text-sm text-destructive",children:[(0,r.jsx)(h.A,{size:16,className:"shrink-0"}),(0,r.jsx)("span",{className:"flex-1",children:m.initError??"Initialization failed. Please try again."}),(0,r.jsx)("button",{onClick:()=>l(null),className:"text-xs underline shrink-0 hover:opacity-80",children:m.dismiss??"Dismiss"})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4 max-w-2xl mx-auto mb-10",children:b.map(t=>{let n=s===t.id,a=null!==s;return(0,r.jsxs)("button",{disabled:a,title:a?e.hints.templateInitializing:void 0,onClick:()=>x(t.id),className:"group relative flex flex-col items-start gap-3 p-5 rounded-xl border border-border bg-card text-left transition-all duration-150 hover:border-[var(--amber)]/50 hover:bg-[var(--amber)]/5 disabled:opacity-60 disabled:cursor-not-allowed",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2.5 w-full",children:[(0,r.jsx)("span",{className:"text-[var(--amber)]",children:t.icon}),(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground",children:m.templates[t.id].title}),n&&(0,r.jsx)(f.A,{size:14,className:"animate-spin ml-auto text-[var(--amber)]"})]}),(0,r.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:m.templates[t.id].desc}),(0,r.jsx)("div",{className:"w-full rounded-lg px-3 py-2 text-xs leading-relaxed font-display bg-muted text-muted-foreground opacity-80",children:t.dirs.map(e=>(0,r.jsx)("div",{children:e},e))})]},t.id)})}),(0,r.jsx)("p",{className:"text-center text-xs leading-relaxed max-w-sm mx-auto text-muted-foreground/60",children:m.importHint}),(0,r.jsx)("p",{className:"text-center mt-2",children:(0,r.jsx)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("mindos:open-import")),className:"text-xs text-[var(--amber-text)] hover:underline transition-colors",children:e.fileImport.onboardingHint})}),(0,r.jsxs)("div",{className:"max-w-md mx-auto mt-6 flex items-center gap-3 px-4 py-3 rounded-lg border border-border bg-card text-left",children:[(0,r.jsx)(g.A,{size:16,className:"text-muted-foreground shrink-0"}),(0,r.jsx)("div",{className:"min-w-0",children:(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:[m.syncHint??"Want cross-device sync? Run"," ",(0,r.jsx)("code",{className:"font-mono px-1 py-0.5 rounded select-all bg-muted text-[11px]",children:"mindos sync init"})," ",m.syncHintSuffix??"in the terminal after setup."]})})]})]})}var j=s(59960),N=s(33210),w=s(66088),y=s(21975),k=s(92564),C=s(22164),A=s(94514),E=s(67635),S=s(7834),z=s(4235),D=s(98500),P=s.n(D),T=s(27318),I=s(76449);function $(){let{t:e}=(0,i.Y)(),t=e.guide,[s,a]=(0,n.useState)(null),[o,d]=(0,n.useState)(null),[l,m]=(0,n.useState)(!1),x=(0,n.useRef)(!1),u=(0,n.useCallback)(()=>{fetch("/api/setup").then(e=>e.json()).then(e=>{let t=e.guideState;t?.active&&!t.dismissed?a(t):a(null)}).catch(e=>{console.warn("[GuideCard] Fetch guide state failed:",e)})},[]);(0,n.useEffect)(()=>{u();let e=()=>u();return window.addEventListener("focus",e),window.addEventListener("guide-state-updated",e),()=>{window.removeEventListener("focus",e),window.removeEventListener("guide-state-updated",e)}},[u]);let p=(0,n.useCallback)(e=>{a(t=>t?{...t,...e}:t),fetch("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:e})}).catch(e=>{console.warn("[GuideCard] PATCH guide state failed:",e)})},[]),h=(0,n.useCallback)(()=>{p({dismissed:!0}),a(null)},[p]),f=(0,n.useCallback)(()=>{window.dispatchEvent(new CustomEvent("mindos:open-import"))},[]),g=(0,n.useCallback)(()=>{p({step1Done:!0}),d(null)},[p]);(0,n.useEffect)(()=>{if(!s||s.step1Done)return;let e=()=>p({step1Done:!0});return window.addEventListener("mindos:files-changed",e),()=>window.removeEventListener("mindos:files-changed",e)},[s,s?.step1Done,p]);let b=(0,n.useCallback)(()=>{let e=s?.template==="empty"?t.ai.promptEmpty:t.ai.prompt;(0,T.NH)(e,"guide")},[s,t]),v=(0,n.useCallback)(async()=>{await (0,S.l)(t.agent.copyPrompt)&&z.oR.copy()},[t]),j=(0,n.useCallback)(()=>{m(!0),d(null),p({nextStepIndex:0})},[p]),D=(0,n.useCallback)(()=>{if(!s)return;let e=s.nextStepIndex,r=t.done.steps;e<r.length&&((0,T.NH)(r[e].prompt,"guide-next"),p({nextStepIndex:e+1}))},[s,t,p]);(0,n.useEffect)(()=>{s&&!x.current&&(x.current=!0,s.step1Done?s.askedAI?l||d("agent"):d("ai"):d("import"))},[s,l]);let $=(0,n.useRef)({s1:!1,s2:!1});(0,n.useEffect)(()=>{if(!s)return;let e=$.current;s.step1Done&&!e.s1&&(d("ai"),e.s1=!0),s.askedAI&&!e.s2&&(d("agent"),e.s2=!0)},[s?.step1Done,s?.askedAI,s]);let R=s?.step1Done??!1,O=s?.askedAI??!1,L=s?.nextStepIndex??0,_=R&&O&&l,H=_&&L>=t.done.steps.length,M=(0,n.useRef)(null);if((0,n.useEffect)(()=>(H&&(M.current=setTimeout(()=>h(),8e3)),()=>{M.current&&clearTimeout(M.current)}),[H,h]),!s||void 0!==s.walkthroughStep&&s.walkthroughStep>=0&&s.walkthroughStep<I.g.length&&!s.walkthroughDismissed)return null;let F=R&&O&&!l;if(_&&H)return(0,r.jsxs)("div",{className:"rounded-lg border border-border/50 px-4 py-3 flex items-center gap-3 animate-in fade-in duration-300",children:[(0,r.jsx)(c.A,{size:14,className:"text-[var(--amber)] shrink-0"}),(0,r.jsx)("span",{className:"text-xs font-medium flex-1 text-foreground",children:t.done.titleFinal}),(0,r.jsx)(P(),{href:"/explore",className:"text-xs font-medium text-[var(--amber)] transition-colors hover:opacity-80",children:e.walkthrough.exploreCta}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground",children:(0,r.jsx)(N.A,{size:12})})]});if(_){let e=t.done.steps[L];return(0,r.jsxs)("div",{className:"rounded-lg border border-border/50 px-4 py-3 animate-in fade-in duration-300",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(c.A,{size:14,className:"text-[var(--amber)] shrink-0"}),(0,r.jsx)("span",{className:"text-xs font-medium flex-1 text-foreground",children:t.done.title}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground",children:(0,r.jsx)(N.A,{size:12})})]}),e&&(0,r.jsxs)("button",{onClick:D,className:"mt-2 ml-6 flex items-center gap-1.5 text-xs text-[var(--amber)] transition-colors hover:opacity-80 cursor-pointer",children:[(0,r.jsx)("span",{children:e.hint}),(0,r.jsx)(w.A,{size:10,className:"-rotate-90"})]})]})}let U=[{key:"import",done:R,icon:y.A,title:t.import.title,dimmed:!1},{key:"ai",done:O,icon:k.A,title:t.ai.title,dimmed:!R},{key:"agent",done:l,icon:C.A,title:t.agent.title,dimmed:!R||!O}];return(0,r.jsxs)("div",{className:"rounded-lg border border-border/50 overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,r.jsx)(c.A,{size:14,className:"text-[var(--amber)] shrink-0"}),(0,r.jsx)("span",{className:"text-xs font-semibold text-foreground mr-2",children:t.title}),(0,r.jsx)("div",{className:"flex items-center gap-1 flex-1 min-w-0",children:U.map((e,s)=>{e.icon;let n=o===e.key,a=!e.done&&!e.dimmed;return(0,r.jsxs)("button",{type:"button",onClick:()=>{var t,s,r;return t=e.key,s=e.done,r=e.dimmed,void(!s&&!r&&d(o===t?null:t))},disabled:e.done||e.dimmed,title:e.dimmed?t.stepLocked:void 0,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-md text-2xs font-medium transition-all ${e.done?"text-success/70":e.dimmed?"text-muted-foreground/30":n?"bg-[var(--amber)]/10 text-[var(--amber)]":"text-muted-foreground hover:text-foreground hover:bg-muted/50"} ${a?"cursor-pointer":""}`,children:[e.done?(0,r.jsx)(A.A,{size:11,className:"shrink-0"}):(0,r.jsx)("span",{className:`flex items-center justify-center w-4 h-4 rounded-full text-[9px] font-bold shrink-0 ${n?"bg-[var(--amber)] text-[var(--amber-foreground)] animate-pulse":e.dimmed?"bg-muted/50 text-muted-foreground/30":"bg-muted text-muted-foreground"}`,children:s+1}),(0,r.jsx)("span",{className:"truncate hidden sm:inline",children:e.title})]},e.key)})}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded hover:bg-muted transition-colors text-muted-foreground shrink-0",children:(0,r.jsx)(N.A,{size:12})})]}),(0,r.jsx)("div",{className:`grid transition-[grid-template-rows] duration-200 ease-out ${"import"===o&&!R?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:(0,r.jsx)("div",{className:"overflow-hidden",children:(0,r.jsx)("div",{className:"px-4 pb-3",children:(0,r.jsxs)("div",{className:"flex items-center gap-3 pl-6",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground flex-1",children:t.import.desc}),(0,r.jsx)("button",{onClick:f,className:"shrink-0 text-xs font-medium px-3 py-1.5 rounded-md bg-[var(--amber)] text-[var(--amber-foreground)] transition-all hover:opacity-90",children:t.import.button}),(0,r.jsx)("button",{onClick:g,className:"shrink-0 text-xs px-2 py-1 rounded-md text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted transition-colors",children:t.skip})]})})})}),(0,r.jsx)("div",{className:`grid transition-[grid-template-rows] duration-200 ease-out ${"ai"===o&&R&&!O?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:(0,r.jsx)("div",{className:"overflow-hidden",children:(0,r.jsx)("div",{className:"px-4 pb-3",children:(0,r.jsxs)("div",{className:"flex items-center gap-3 pl-6",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground flex-1",children:t.ai.desc}),(0,r.jsx)("button",{onClick:b,className:"shrink-0 text-xs font-medium px-3 py-1.5 rounded-md bg-[var(--amber)] text-[var(--amber-foreground)] transition-all hover:opacity-90",children:t.ai.cta})]})})})}),(0,r.jsx)("div",{className:`grid transition-[grid-template-rows] duration-200 ease-out ${"agent"===o&&F?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:(0,r.jsx)("div",{className:"overflow-hidden",children:(0,r.jsx)("div",{className:"px-4 pb-3",children:(0,r.jsxs)("div",{className:"pl-6",children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:t.agent.desc}),(0,r.jsxs)("div",{className:"relative rounded-md bg-muted/50 p-3 pr-20",children:[(0,r.jsx)("p",{className:"text-xs font-mono text-foreground/80 leading-relaxed whitespace-pre-wrap",children:t.agent.copyPrompt}),(0,r.jsxs)("button",{onClick:v,className:"absolute top-2 right-2 flex items-center gap-1 text-2xs font-medium px-2 py-1 rounded-md bg-background border border-border/50 text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(E.A,{size:10}),t.agent.copy]})]}),(0,r.jsx)("div",{className:"flex justify-end mt-2",children:(0,r.jsx)("button",{onClick:j,className:"text-xs px-2 py-1 rounded-md text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted transition-colors",children:t.skip})})]})})})})]})}var R=s(68041);let O=[o.A,d.A,l.A,c.A];function L({recent:e,existingFiles:t,spaces:s}){let{t:o}=(0,i.Y)(),d=(0,a.useRouter)(),[l,c]=(0,n.useState)(0),[x,u]=(0,n.useState)(!1),p=(0,n.useCallback)(()=>u(e=>!e),[]),h=(0,n.useCallback)(()=>{u(!0)},[]),f=(0,n.useCallback)(()=>{let t=e.length>0?`/view/${e[0].path}`:"/";window.dispatchEvent(new CustomEvent("mindos:open-ask-panel")),d.push(t)},[e,d]);if(0===e.length)return(0,r.jsx)(v,{});let g=o.ask?.homeCategories??[],b=g[l];return(0,r.jsxs)("div",{className:"flex flex-col h-[100dvh]",children:[!x&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"flex-shrink-0 px-4 md:px-6 pt-4 pb-6",children:(0,r.jsx)("div",{className:"max-w-4xl mx-auto",children:(0,r.jsx)($,{})})}),(0,r.jsx)("div",{className:"flex-1 min-h-0"}),(0,r.jsxs)("div",{className:"flex-shrink-0 flex flex-col items-center text-center px-4 md:px-6 pb-8",children:[(0,r.jsxs)("div",{className:"flex items-center gap-4 mb-3",children:[(0,r.jsx)(j.A,{id:"home-hero",className:"w-10 h-5 opacity-90"}),(0,r.jsxs)("h1",{className:"text-2xl font-brand leading-none",children:[(0,r.jsx)("span",{className:"text-foreground",children:"Mind"}),(0,r.jsx)("span",{className:"text-[var(--amber)]",children:"OS"})]})]}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground/50 max-w-sm leading-relaxed",children:o.app.tagline})]})]}),(0,r.jsx)("div",{className:x?"flex-1 min-h-0 flex flex-col overflow-hidden":"flex-shrink-0 px-4 md:px-6 flex justify-center",onDragOver:e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation())},onDragEnter:e=>{e.dataTransfer.types.includes("Files")&&e.stopPropagation()},onDrop:e=>{e.stopPropagation()},children:(0,r.jsx)("div",{className:x?"flex-1 min-h-0 flex flex-col overflow-hidden":"w-full max-w-4xl",children:(0,r.jsx)("div",{"data-walkthrough":"ask-button",className:x?"flex-1 min-h-0 flex flex-col overflow-hidden":"rounded-xl border border-border/70 shadow-sm overflow-hidden flex flex-col max-h-[50vh]",children:(0,r.jsx)(R.A,{visible:!0,variant:"home",maximized:x,onMaximize:p,onFirstMessage:h,onDockToPanel:f})})})}),!x&&(0,r.jsxs)(r.Fragment,{children:[g.length>0&&b&&(0,r.jsx)("div",{className:"flex-shrink-0 flex justify-center px-4 md:px-6 pt-6",children:(0,r.jsxs)("div",{className:"w-full max-w-4xl",children:[(0,r.jsx)("div",{className:"flex items-center justify-center gap-1.5 mb-5",role:"tablist",children:g.map((e,t)=>{let s=O[t%O.length],n=t===l;return(0,r.jsxs)("button",{type:"button",role:"tab","aria-selected":n,onClick:()=>c(t),className:`flex items-center gap-1.5 px-4 py-2 text-xs font-medium rounded-full transition-all duration-150 ${n?"bg-[var(--amber)]/12 text-[var(--amber)]":"text-muted-foreground/50 hover:text-muted-foreground hover:bg-muted/40"}`,children:[(0,r.jsx)(s,{size:13}),(0,r.jsx)("span",{children:e.label})]},e.label)})}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-2",role:"tabpanel",children:b.items.map((e,t)=>(0,r.jsx)("button",{type:"button",onClick:()=>{var t;return t=e.prompt,void window.dispatchEvent(new CustomEvent("mindos:home-suggestion",{detail:{text:t}}))},className:"group relative text-left px-4 py-3.5 rounded-xl border border-border/30 hover:border-border/60 transition-all duration-150 hover:shadow-sm",children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"text-[13px] font-medium text-foreground/90 leading-snug mb-0.5",children:e.label}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground/60 leading-relaxed",children:e.desc})]}),(0,r.jsx)(m.A,{size:14,className:"shrink-0 mt-0.5 text-muted-foreground/20 group-hover:text-[var(--amber)] transition-colors"})]})},`${l}-${t}`))})]})}),(0,r.jsx)("div",{className:"flex-1 min-h-0"}),(0,r.jsxs)("div",{className:"flex-shrink-0 py-4 flex items-center justify-center gap-2 text-[11px] text-muted-foreground/20",children:[(0,r.jsx)(j.A,{id:"home-footer",className:"w-4 h-2 opacity-20"}),(0,r.jsx)("span",{children:o.app.footer})]})]})]})}},91337:(e,t,s)=>{"use strict";s.d(t,{IX:()=>d,KW:()=>o,O0:()=>i,cn:()=>a,vr:()=>l});var r=s(29722),n=s(622);function a(...e){return(0,n.QP)((0,r.$)(e))}function i(e){return e.split("/").map(encodeURIComponent).join("/")}function o(e,t){let s=Date.now()-e,r=Math.floor(s/6e4),n=Math.floor(s/36e5),a=Math.floor(s/864e5);return r<1?t.justNow:r<60?t.minutesAgo(r):n<24?t.hoursAgo(n):a<7?t.daysAgo(a):new Date(e).toLocaleDateString()}function d(e){let t=e.match(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+/u);return t?.[0]??""}function l(e){return e.replace(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\s]+/u,"")||e}}},e=>{e.O(0,[4913,4237,8409,9748,7540,9688,5581,6902,5358,8441,3794,7358],()=>e(e.s=14153)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[620],{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})},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})},15721:(e,t,r)=>{Promise.resolve().then(r.bind(r,22952))},20171:(e,t,r)=>{"use strict";r.d(t,{Bt:()=>m,D0:()=>d,L7:()=>g,jn:()=>h,l6:()=>p,lM:()=>x,pM:()=>b,pd:()=>c,yA:()=>u});var s=r(95155),a=r(12115),o=r(15411),n=r(7915),l=r(66088),i=r(94514);function d({label:e,hint:t,hintError:r,children:a}){return(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("label",{className:"text-sm text-foreground font-medium",children:e}),a,t&&(0,s.jsx)("p",{className:`text-xs ${r?"text-destructive":"text-muted-foreground"}`,children:t})]})}function c({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 u({value:e,onChange:t,placeholder:r,disabled:l,className:i="",size:d="md"}){let[c,u]=(0,a.useState)(!1),p="sm"===d;return(0,s.jsxs)("div",{className:`flex items-center border border-border rounded-lg bg-background focus-within:ring-1 focus-within:ring-ring overflow-hidden ${i}`,children:[(0,s.jsx)("input",{type:c?"text":"password",value:e,onChange:e=>t(e.target.value),placeholder:r??"••••••••",disabled:l,className:`flex-1 bg-transparent text-foreground placeholder:text-muted-foreground outline-none disabled:opacity-50 ${p?"px-2.5 py-1.5 text-xs font-mono":"px-3 py-2 text-sm"}`}),!!e&&(0,s.jsx)("button",{type:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:()=>u(e=>!e),disabled:l,className:`shrink-0 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50 ${p?"p-1.5":"p-2"}`,title:c?"Hide":"Show",children:c?(0,s.jsx)(o.A,{size:p?14:16}):(0,s.jsx)(n.A,{size:p?14:16})})]})}function p({value:e,onChange:t,children:r,className:o="",disabled:n}){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]),b=g.findIndex(t=>t.value===e),f=g[b]?.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(b>=0?b: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,b,p,v]);return(0,s.jsxs)("div",{ref:x,className:`relative ${o}`,children:[(0,s.jsxs)("button",{type:"button",disabled:n,onClick:()=>{u(e=>!e),m(b>=0?b: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 ${f?"":"text-muted-foreground"}`,children:f||"—"}),(0,s.jsx)(l.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)(i.A,{size:14,className:`shrink-0 ${a?"text-[var(--amber)]":"invisible"}`}),(0,s.jsx)("span",{className:"truncate",children:t.label})]},t.value)})})]})}function m({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 x({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 h({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 g({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 b({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})]})}},22952:(e,t,r)=>{"use strict";r.d(t,{default:()=>V});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(92451),m=r(97810),x=r(48368);let h=[{id:"en",icon:(0,s.jsx)(p.A,{size:18}),dirs:["Profile/","Connections/","Notes/","Workflows/","Resources/","Projects/"]},{id:"zh",icon:(0,s.jsx)(m.A,{size:18}),dirs:["画像/","关系/","笔记/","流程/","资源/","项目/"]},{id:"empty",icon:(0,s.jsx)(x.A,{size:18}),dirs:["README.md","CONFIG.json","INSTRUCTION.md"]}];var g=r(13545),b=r(20171);function f({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)([]),[f,v]=(0,a.useState)(!1),[y,k]=(0,a.useState)(-1),[j,N]=(0,a.useState)(!1),w=(0,a.useRef)(null),S=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(S.current){S.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 A=()=>{x([]),v(!1),k(-1)},P=e=>{S.current=!0,t("mindRoot",e),A(),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=>{f&&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(),P(m[y])):"Escape"===e.key&&v(!1))},onBlur:()=>setTimeout(()=>A(),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)"}}),f&&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:()=>P(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:h.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)(g.A,{size:11})," ",n.webPasswordRequired]})]})})]})}var v=r(22164),y=r(66088),k=r(67635),j=r(47376),N=r(60112),w=r(51842),S=r(79704),A=r(41585),P=r(12651),T=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)(A.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)(P.A,{size:11})," ",n.isSelf?d.portSelf:d.portAvailable]})]})})}function M({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)(A.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)(T.A,{size:12})," ",d.portRestartWarning]})]})}function z({state:e,update:t,s:r,onCopyToken:o,webPortStatus:n,mcpPortStatus:i,setWebPortStatus:c,setMcpPortStatus:u,checkPort:p,portConflict:m}){let{locale:x}=(0,d.Y)(),[h,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{!h&&m&&g(!0)},[m,h]);let f="skip"===e.activeProvider,A=f?null:e.providers.find(t=>t.id===e.activeProvider),P=A?j.T_[A.protocol]:null,T=(0,a.useCallback)(r=>{A&&t("providers",e.providers.map(e=>e.id===A.id?{...e,...r}:e))},[A,e.providers,t]),C=(0,a.useCallback)(r=>{if("skip"===r)return void t("activeProvider","skip");let s=e.providers.find(e=>e.id===r);if(s)return void t("activeProvider",s.id);if((0,j.rl)(r)){let s=e.providers.find(e=>e.protocol===r);if(s)return void t("activeProvider",s.id);let a=j.T_[r],o={id:(0,N.mV)(),name:"zh"===x?a.nameZh:a.name,protocol:r,apiKey:"",model:a.defaultModel,baseUrl:a.fixedBaseUrl??""};t("providers",[...e.providers,o]),t("activeProvider",o.id)}},[e.providers,t,x]),z=new Set(e.providers.filter(e=>e.apiKey||e.apiKeyMask||j.T_[e.protocol]?.apiKeyFallback).map(e=>e.protocol)),I=f?"skip":A?.protocol??"skip";return(0,s.jsxs)("div",{className:"space-y-5",children:[(0,s.jsx)(w.A,{value:I,onChange:C,showSkip:!0,compact:!0,configuredProviders:z}),A&&P&&(0,s.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,s.jsxs)(b.D0,{label:r.apiKey,children:[(0,s.jsx)(b.yA,{value:A.apiKey,onChange:e=>T({apiKey:e}),placeholder:A.apiKeyMask||`${(0,j.Ux)(A.protocol)??"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."}),P.signupUrl&&!A.apiKey&&!A.apiKeyMask&&(0,s.jsxs)("a",{href:P.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)(v.A,{size:10}),P.apiKeyFallback?"zh"===x?`下载 ${P.nameZh}`:`Download ${P.name}`:"zh"===x?`获取 ${P.nameZh} API Key`:`Get ${P.name} API Key`]})]}),P.supportsBaseUrl&&(0,s.jsx)(b.D0,{label:r.baseUrl,hint:r.baseUrlHint,children:(0,s.jsx)(b.pd,{value:A.baseUrl??"",onChange:e=>T({baseUrl:e.target.value}),placeholder:P.fixedBaseUrl||(0,j.Ot)(A.protocol)||"https://api.openai.com/v1"})}),(0,s.jsx)(b.D0,{label:r.model,children:(0,s.jsx)(S.A,{value:A.model,onChange:e=>T({model:e}),placeholder:P.defaultModel,provider:A.protocol,apiKey:A.apiKey,baseUrl:A.baseUrl,supportsListModels:P.supportsListModels,browseLabel:r.listModels,noModelsLabel:r.noModelsFound})})]}),(0,s.jsxs)("div",{className:"pt-3 mt-1",style:{borderTop:"1px solid var(--border)"},children:[(0,s.jsxs)("button",{type:"button",onClick:()=>g(!h),className:"flex items-center gap-1.5 text-xs font-medium",style:{color:"var(--muted-foreground)"},children:[h?(0,s.jsx)(y.A,{size:12}):(0,s.jsx)(l.A,{size:12}),r.advancedPorts]}),h&&(0,s.jsxs)("div",{className:"mt-3 space-y-5",children:[(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("p",{className:"text-xs font-medium",style:{color:"var(--foreground)"},children: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)(k.A,{size:12})," ",r.copyToken]})]}),(0,s.jsx)("p",{className:"text-xs",style:{color:"var(--muted-foreground)"},children:r.tokenSectionHint})]}),(0,s.jsx)(M,{state:e,update:t,webPortStatus:n,mcpPortStatus:i,setWebPortStatus:c,setMcpPortStatus:u,checkPort:p,portConflict:m,s:r})]})]})]})}var I=r(62791),O=r(10762),L=r(68806),E=r(90718);let U={"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 R({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,k]=(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)(P.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)(I.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=U[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)(O.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)(L.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)(E.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)(y.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)(E.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:()=>k(!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)(y.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(42129),K=r(439),D=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)(A.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 B({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)(P.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 Z({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,b=t.size>0,f=[{key:"saving",label:l.phaseSaving},...g?[{key:"agents",label:l.phaseAgents}]:[],...b?[{key:"skills",label:l.phaseSkill??"Installing skills"}]:[],{key:"done",label:l.phaseDone}],v=f.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:f.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)(P.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)(I.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)(F,{state:e,selectedAgents:t,agentStatuses:r,needsRestart:n,skillInstallStatus:p,s:l})]})}function F({state:e,selectedAgents:t,agentStatuses:r,needsRestart:n,s:l,skillInstallStatus:i="pending"}){let[p,m]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!p)return;let e=setTimeout(()=>m(!1),2e3);return()=>clearTimeout(e)},[p]);let x=(0,a.useCallback)(async()=>{!e.authToken||await (0,c.l)(e.authToken)&&(m(!0),u.oR.copy())},[e.authToken]),{locale:h}=(0,d.Y)(),g=!!e.mindRoot,b="skip"!==e.activeProvider&&e.providers.length>0,f=Object.values(r).filter(e=>"ok"===e.state).length,v=f>0,y=!!e.authToken,N="",w="";if(b){let t=e.providers.find(t=>t.id===e.activeProvider);if(t){let e=j.T_[t.protocol];N="zh"===h?e.nameZh:e.name,w=t.model||e.defaultModel}}let S=[{ok:g,icon:(0,s.jsx)(_.A,{size:14}),title:l.healthKb??"Knowledge Base",detail:g?e.mindRoot:l.healthKbNone??"Not configured"},{ok:b,icon:(0,s.jsx)(E.A,{size:14}),title:l.healthAi??"AI Provider",detail:b?`${N} (${w||"default"})`:l.healthAiNone??"Not configured — AI features disabled",action:b?void 0:l.healthAiAction??"Add an API key in Settings → AI."},{ok:v,icon:(0,s.jsx)(L.A,{size:14}),title:l.healthAgents??"Agent Connection",detail:v?l.healthAgentsOk?.(f)??`${f} agent(s) configured`:t.size>0?l.healthAgentsPartial??"Configuration in progress...":l.healthAgentsNone??"No agents configured",action:v?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:S.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)(P.A,{size:12}):(0,s.jsx)(A.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))}),y&&(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:x,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:p?"color-mix(in srgb, var(--success) 50%, transparent)":"var(--border)",background:p?"color-mix(in srgb, var(--success) 10%, transparent)":"transparent",color:p?"var(--success)":"var(--muted-foreground)"},title:l.healthTokenCopy??"Copy token",children:p?(0,s.jsx)(D.A,{size:14}):(0,s.jsx)(k.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 W({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)(P.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 H(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 G(e){return{state:"ok"===e.status?"ok":"error",message:e.message,transport:e.transport,verified:e.verified,verifyError:e.verifyError}}async function Y(e,t){let r="skip"===e.activeProvider||0===e.providers.length,s=e.providers.map(({apiKeyMask:e,...t})=>t),a={mindRoot:e.mindRoot,template:e.template||void 0,port:e.webPort,mcpPort:e.mcpPort,authToken:e.authToken,webPassword:e.webPassword,ai:r?void 0:{activeProvider:e.activeProvider,providers:s},connectionMode:t??{cli:!0,mcp:!1}},o=await fetch("/api/setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),n=await o.json();if(!o.ok)throw Error(n.error||`HTTP ${o.status}`);return!!n.needsRestart}async function q(e,t,r,s,a,o){let n=e.map(e=>H(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]=G(e);return d}async function J(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 V(){let{t:e}=(0,d.Y)(),t=e.setup,[r,p]=(0,a.useState)(0),[m,x]=(0,a.useState)({mindRoot:"~/MindOS/mind",template:"en",activeProvider:"skip",providers:[],webPort:3456,mcpPort:8781,authToken:"",webPassword:""}),[h,g]=(0,a.useState)("~"),[b,v]=(0,a.useState)(!1),[y,k]=(0,a.useState)(!1),[j,N]=(0,a.useState)(""),[w,S]=(0,a.useState)(!1),[A,P]=(0,a.useState)("pending"),[T,C]=(0,a.useState)({checking:!1,available:null,isSelf:!1,suggestion:null}),[M,I]=(0,a.useState)({checking:!1,available:null,isSelf:!1,suggestion:null}),[O,L]=(0,a.useState)([]),[E,U]=(0,a.useState)(!1),[_,K]=(0,a.useState)(!1),[D,$]=(0,a.useState)(new Set),[F,V]=(0,a.useState)("auto"),[X,Q]=(0,a.useState)("global"),[ee,et]=(0,a.useState)({}),[er,es]=(0,a.useState)({cli:!0,mcp:!1}),[ea,eo]=(0,a.useState)("review");(0,a.useEffect)(()=>{fetch("/api/setup").then(e=>e.json()).then(e=>{e.homeDir&&g(e.homeDir),x(t=>{let r=t.providers;Array.isArray(e.providerConfigs)&&e.providerConfigs.length>0&&(r=e.providerConfigs.map(e=>({id:e.id,name:e.name||"",protocol:e.protocol,apiKey:"",model:e.model||"",baseUrl:e.baseUrl||"",apiKeyMask:e.apiKeyMask||""})));let s=e.activeProvider||t.activeProvider;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,activeProvider:s,providers:r}}),e.authToken||fetch("/api/setup/generate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}).then(e=>e.json()).then(e=>{e.token&&x(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&&x(t=>({...t,authToken:e.token}))}).catch(e=>console.warn("[SetupWizard] Fallback token generation also failed:",e))})},[]),(0,a.useEffect)(()=>{1===r&&(ei(m.webPort,"web",!0),ei(m.mcpPort,"mcp",!0))},[r]),(0,a.useEffect)(()=>{2!==r||_||E||(U(!0),fetch("/api/mcp/agents").then(e=>e.json()).then(e=>{if(e.agents){let t=e.agents.filter(e=>"builtin"!==e.scope);L(t),$(new Set(t.filter(e=>e.installed||e.present).map(e=>e.key)))}K(!0)}).catch(e=>{console.warn("[SetupWizard] Failed to load agents:",e),K(!0)}).finally(()=>U(!1)))},[r,_,E]);let en=(0,a.useCallback)((e,t)=>{x(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&&x(e=>({...e,authToken:r.token}))}catch(e){console.warn("[SetupWizard] generateToken failed:",e)}},[]);let el=(0,a.useCallback)(()=>{(0,c.l)(m.authToken).then(e=>{e&&u.oR.copy()})},[m.authToken]),ei=(0,a.useCallback)(async(e,t,r=!1)=>{if(e<1024||e>65535)return;let s="web"===t?C: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";x(t=>({...t,[e]:l})),setTimeout(()=>ei(l,t,!1),0)}}catch(e){console.warn("[SetupWizard] checkPort failed:",e),s({checking:!1,available:null,isSelf:!1,suggestion:null})}},[]),ed=m.webPort===m.mcpPort,ec=async()=>{v(!0),N("");let e=Array.from(D),t=m;if(!m.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={...m,authToken:r.token},x(t))}catch{}eo("saving");try{await Y(t,er)&&S(!0)}catch(e){N(e instanceof Error?e.message:String(e)),eo("review"),v(!1);return}if(er.mcp&&e.length>0){eo("agents");let r={};for(let t of e)r[t]={state:"installing"};et(r);try{let r=await q(e,O,F,X,t.mcpPort,t.authToken);et(r)}catch(r){console.warn("[SetupWizard] agent batch install failed:",r);let t={};for(let r of e)t[r]={state:"error"};et(t)}}if(e.length>0){eo("skills"),P("installing");let r="zh"===t.template?"mindos-zh":"mindos";try{let t=await J(r,e);P(t?"ok":"error")}catch(e){console.warn("[SetupWizard] skill install failed:",e),P("error")}}else P("skipped");v(!1),k(!0),eo("done")},eu=(0,a.useCallback)(async e=>{et(t=>({...t,[e]:{state:"installing"}}));try{let t=H(e,O,F,X),r=await fetch("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:[t],transport:F,url:`http://localhost:${m.mcpPort}/mcp`,token:m.authToken||void 0})}),s=await r.json();if(s.results?.[0]){let t=s.results[0];et(r=>({...r,[e]:G(t)}))}}catch(t){console.warn("[SetupWizard] retryAgent failed:",t),et(t=>({...t,[e]:{state:"error"}}))}},[O,X,F,m.mcpPort,m.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)(W,{step:r,setStep:p,stepTitles:t.stepTitles,disabled:b||y,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)(f,{state:m,update:en,t:e,homeDir:h}),1===r&&(0,s.jsx)(z,{state:m,update:en,s:t,onCopyToken:el,webPortStatus:T,mcpPortStatus:M,setWebPortStatus:C,setMcpPortStatus:I,checkPort:ei,portConflict:ed}),2===r&&(0,s.jsx)(R,{agents:O,agentsLoading:E,selectedAgents:D,setSelectedAgents:$,connectionMode:er,setConnectionMode:es,agentTransport:F,setAgentTransport:V,agentScope:X,setAgentScope:Q,agentStatuses:ee,s:t,settingsMcp:e.settings.mcp}),3===r&&(0,s.jsx)(Z,{state:m,selectedAgents:D,agentStatuses:ee,onRetryAgent:eu,error:j,needsRestart:w,s:t,setupPhase:ea,cliEnabled:er.cli,mcpEnabled:er.mcp,skillInstallStatus:A}),(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:()=>p(r-1),disabled:0===r||b||y,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:()=>p(r+1),disabled:!(0===r?m.mindRoot.trim().length>0&&m.webPassword.trim().length>0:1===r?!ed&&!T.checking&&!M.checking&&!1!==T.available&&!1!==M.available:2!==r||er.cli||er.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})]}):y?w?(0,s.jsx)(B,{s:t,newPort:m.webPort,webPassword:m.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:ec,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]})]})]})]})}},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",shortLabel:"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",shortLabel:"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",shortLabel:"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",shortLabel:"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)",shortLabel:"xAI",defaultModel:"grok-3",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},openrouter:{id:"openrouter",name:"OpenRouter",nameZh:"OpenRouter",shortLabel:"OpenRouter",defaultModel:"anthropic/claude-sonnet-4",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},mistral:{id:"mistral",name:"Mistral",nameZh:"Mistral",shortLabel:"Mistral",defaultModel:"mistral-large-latest",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},deepseek:{id:"deepseek",name:"DeepSeek",nameZh:"DeepSeek",shortLabel:"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 国际版)",shortLabel:"智谱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 国内版)",shortLabel:"智谱GLM-CN",description:"China region version",descriptionZh:"中国区版本",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 (月之暗面)",shortLabel:"Kimi Coding",defaultModel:"kimi-k2-thinking",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},cerebras:{id:"cerebras",name:"Cerebras",nameZh:"Cerebras",shortLabel:"Cerebras",defaultModel:"llama-4-scout-17b-16e",supportsBaseUrl:!1,supportsThinking:!1,supportsListModels:!0,category:"more"},minimax:{id:"minimax",name:"MiniMax",nameZh:"MiniMax (国际版)",shortLabel:"MiniMax",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},"minimax-cn":{id:"minimax-cn",name:"MiniMax (China)",nameZh:"MiniMax (国内版)",shortLabel:"MiniMax-CN",description:"China region version",descriptionZh:"中国区版本",defaultModel:"MiniMax-M2.5",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},huggingface:{id:"huggingface",name:"Hugging Face",nameZh:"Hugging Face",shortLabel:"HuggingFace",defaultModel:"Qwen/Qwen3-235B-A22B-Thinking-2507",supportsBaseUrl:!1,supportsThinking:!0,supportsListModels:!1,category:"more"},ollama:{id:"ollama",name:"Ollama",nameZh:"Ollama (本地)",shortLabel:"Ollama",description:"Local server (requires setup)",descriptionZh:"本地服务器 (需要本地部署)",defaultModel:"llama3.2",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:11434/v1",apiKeyFallback:"ollama",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://ollama.com/download",category:"local"},"lm-studio":{id:"lm-studio",name:"LM Studio",nameZh:"LM Studio (本地)",shortLabel:"LM Studio",description:"Local OpenAI-compatible server",descriptionZh:"本地 OpenAI 兼容服务",defaultModel:"local-model",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:1234/v1",apiKeyFallback:"lm-studio",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://lmstudio.ai/",category:"local"},vllm:{id:"vllm",name:"vLLM",nameZh:"vLLM (本地)",shortLabel:"vLLM",description:"Local OpenAI-compatible server",descriptionZh:"本地 OpenAI 兼容服务",defaultModel:"local-model",piProviderOverride:"openai",fixedBaseUrl:"http://localhost:8000/v1",apiKeyFallback:"vllm",supportsBaseUrl:!0,supportsThinking:!1,supportsListModels:!0,signupUrl:"https://docs.vllm.ai/",category:"local"}},o=Object.keys(a);function n(e){return e in a}function l(){let e=[],t=[],r=[];for(let s of o){let o=a[s].category;"primary"===o?e.push(s):"local"===o?t.push(s):r.push(s)}return t.sort((e,t)=>a[e].name.localeCompare(a[t].name)),r.sort((e,t)=>a[e].name.localeCompare(a[t].name)),{primary:e,local:t,more:r}}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"}},60112:(e,t,r)=>{"use strict";function s(){return"p_"+Math.random().toString(36).slice(2,10)}function a(e){return"string"==typeof e&&e.startsWith("p_")}function o(e,t){return e.find(e=>e.id===t)}r.d(t,{Ny:()=>a,lh:()=>o,mV:()=>s}),r(47376)},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},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}},e=>{e.O(0,[4913,7540,3523,5581,9207,8441,3794,7358],()=>e(e.s=15721)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
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)},10543:(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),c=r(41585),o=r(6296),u=r(9199),m=r(33210),h=r(73321),x=r(35581),f=r(9339);let p=(0,f.createServerReference)("6096bbe912e9134c58dda288830e06ec0f275e25f3",f.callServer,void 0,f.findSourceMapURL,"restoreFromTrashAction"),b=(0,f.createServerReference)("408ee90c5b6189ba2dc4c2dd50104bbf4c5c6c20ca",f.callServer,void 0,f.findSourceMapURL,"permanentlyDeleteAction"),v=(0,f.createServerReference)("00cfee7ba0071f94f02b605594357225daec0db30b",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)(c.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)(o.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 modal-backdrop",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)(c.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})]})]})})]})}},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,10543))},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:c,...o},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})(o)&&{"aria-hidden":"true"},...o},[...c.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()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1525],{53788:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>o});var t=s(95155),n=s(12115);function o({error:e,reset:r}){return(0,n.useEffect)(()=>{console.error("View error:",e)},[e]),(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-[50vh] gap-4 px-6",children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-foreground mb-2",children:"Failed to load file"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground max-w-md",children:e.message||"The file could not be read or rendered."})]}),(0,t.jsx)("button",{onClick:r,className:"px-4 py-2 rounded-md text-sm font-medium transition-colors",style:{background:"var(--muted)",color:"var(--foreground)"},children:"Try again"})]})}},93991:(e,r,s)=>{Promise.resolve().then(s.bind(s,53788))}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=93991)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44,160,165,332,635,706,910,1124,1131,1150,1165,1212,1288,2036,2092,2191,2229,2287,2437,2522,2772,2839,2920,2950,3358,3390,3757,3896,3945,4048,4209,4230,4473,4503,4558,4828,4888,4896,5177,5245,5411,5620,5684,5704,5931,6047,6202,6306,6540,6819,6828,6988,7113,7330,7538,7581,7607,7646,7711,7822,7839,7851,7858,8141,8167,8181,8232,8372,8529,8616,8641,9120,9188,9249,9303,9336,9491,9596,9725,9861,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7875],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>a});var s=r(12115);let n=e=>{let t,r=new Set,s=(e,s)=>{let n="function"==typeof e?e(t):e;if(!Object.is(n,t)){let e=t;t=(null!=s?s:"object"!=typeof n||null===n)?n:Object.assign({},t,n),r.forEach(r=>r(t,e))}},n=()=>t,o={setState:s,getState:n,getInitialState:()=>a,subscribe:e=>(r.add(e),()=>r.delete(e))},a=t=e(s,n,o);return o},o=e=>{let t=e?n(e):n,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},a=e=>e?o(e):o},23074:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>c});var s=r(95155),n=r(73321),o=r(93631),a=r(80723),i=r(66614),l=r(12115),u=r(35581),d=r(91337);function c(){let e=(0,n.usePathname)(),t=(0,n.useRouter)(),{t:r}=(0,u.Y)(),[c,m]=(0,l.useState)(!1),h=e.startsWith("/view/")?decodeURIComponent(e.slice(6)):"",f=h.includes("/")?h.split("/").slice(0,-1).join("/"):"",p=h.endsWith(".md")||!h.includes("."),x=h||"unknown",g=r.notFound,b=async()=>{m(!0);try{let e=p&&!h.includes(".")?`${h}.md`:h;(await fetch("/api/files",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,content:""})})).ok&&(t.replace(`/view/${(0,d.O0)(e)}`),t.refresh())}catch{}finally{m(!1)}};return(0,s.jsxs)("div",{className:"content-width px-4 md:px-6 py-16 md:py-24 flex flex-col items-center text-center",children:[(0,s.jsx)("div",{className:"w-12 h-12 rounded-xl bg-muted flex items-center justify-center mb-6",children:(0,s.jsx)(o.A,{size:24,className:"text-muted-foreground"})}),(0,s.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-foreground mb-2",children:g?.title??"File not found"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mb-1",children:(0,s.jsx)("code",{className:"px-1.5 py-0.5 rounded bg-muted font-mono text-xs",children:x})}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mb-8",children:g?.description??"This file does not exist in your knowledge base."}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-3",children:[p&&(0,s.jsxs)("button",{onClick:b,disabled:c,className:"flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg transition-colors disabled:opacity-50",style:{background:"var(--amber)",color:"var(--amber-foreground)"},children:[(0,s.jsx)(o.A,{size:14}),c?g?.creating??"Creating...":g?.createButton??"Create this file"]}),f&&(0,s.jsxs)("button",{onClick:()=>t.push(`/view/${(0,d.O0)(f)}`),className:"flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,s.jsx)(a.A,{size:14}),g?.goToParent??"Go to parent folder"]}),(0,s.jsxs)("button",{onClick:()=>t.push("/"),className:"flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,s.jsx)(i.A,{size:14}),g?.goHome??"Home"]})]})]})}},63381:(e,t,r)=>{Promise.resolve().then(r.bind(r,23074))},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"}]])},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}})},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"}]])},90425:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var s=r(12115);let n=(...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 a={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 i=(0,s.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:i="",children:l,iconNode:u,...d},c)=>(0,s.createElement)("svg",{ref:c,...a,width:t,height:t,stroke:e,strokeWidth:o?24*Number(r)/Number(t):r,className:n("lucide",i),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...u.map(([e,t])=>(0,s.createElement)(e,t)),...Array.isArray(l)?l:[l]])),l=(e,t)=>{let r=(0,s.forwardRef)(({className:r,...a},l)=>(0,s.createElement)(i,{ref:l,iconNode:t,className:n(`lucide-${o(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...a}));return r.displayName=o(e),r}},91337:(e,t,r)=>{"use strict";r.d(t,{IX:()=>l,KW:()=>i,O0:()=>a,cn:()=>o,vr:()=>u});var s=r(29722),n=r(622);function o(...e){return(0,n.QP)((0,s.$)(e))}function a(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),o=Math.floor(r/864e5);return s<1?t.justNow:s<60?t.minutesAgo(s):n<24?t.hoursAgo(n):o<7?t.daysAgo(o):new Date(e).toLocaleDateString()}function l(e){let t=e.match(/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+/u);return t?.[0]??""}function u(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"}]])}},e=>{e.O(0,[8409,5581,8441,3794,7358],()=>e(e.s=63381)),_N_E=e.O()}]);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3637,9508],{1012:(e,t,r)=>{"use strict";r.d(t,{default:()=>$});var n=r(95155),s=r(12115),a=r(98500),o=r.n(a),i=r(73321),l=r(80723),d=r(15282),c=r(21975),u=r(6296),m=r(86901),x=r(92451),p=r(59511),f=r(97233),h=r(50538),g=r(33078),b=r(48274),v=r(48368),j=r(33210),w=r(22164),y=r(67635),N=r(68459),k=r(13545),C=r(94514),E=r(66088),A=r(4235),S=r(35581),z=r(91337),R=r(29494),T=r(78520);let L={md:{bg:"bg-blue-500/10",text:"text-blue-500/70"},txt:{bg:"bg-muted/50",text:"text-muted-foreground/60"},csv:{bg:"bg-emerald-500/10",text:"text-emerald-500/70"},json:{bg:"bg-violet-500/10",text:"text-violet-500/70"},pdf:{bg:"bg-error/10",text:"text-error/60"}};function $(){let{t:e}=(0,S.Y)(),t=(0,i.useRouter)(),[r,a]=(0,s.useState)([]),[g,b]=(0,s.useState)(!0),[v,j]=(0,s.useState)(!1),[w,y]=(0,s.useState)(!1),[N,k]=(0,s.useState)([]),[C,E]=(0,s.useState)(""),[z,$]=(0,s.useState)(!1),[F,M]=(0,s.useState)(!1),O=(0,s.useRef)(null),I=(0,s.useRef)(null),H=(0,s.useRef)(0),W=(0,s.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("[InboxView] fetch failed:",e)}finally{b(!1)}},[]),U=(0,s.useCallback)(()=>{k((0,T.FB)())},[]),V=(0,s.useRef)(void 0),B=(0,s.useCallback)(()=>{clearTimeout(V.current),V.current=setTimeout(()=>{W(),U()},80)},[W,U]);(0,s.useEffect)(()=>{W(),U();let e=()=>{j(!1),B()},t=()=>{H.current=0,y(!1)};return window.addEventListener("mindos:files-changed",B),window.addEventListener("mindos:inbox-updated",B),window.addEventListener("mindos:organize-done",e),window.addEventListener("mindos:organize-history-update",U),window.addEventListener("drop",t,!0),window.addEventListener("dragend",t,!0),()=>{clearTimeout(V.current),window.removeEventListener("mindos:files-changed",B),window.removeEventListener("mindos:inbox-updated",B),window.removeEventListener("mindos:organize-done",e),window.removeEventListener("mindos:organize-history-update",U),window.removeEventListener("drop",t,!0),window.removeEventListener("dragend",t,!0)}},[W,B,U]);let Y=(0,s.useCallback)(()=>{0===r.length||v||(j(!0),window.dispatchEvent(new CustomEvent("mindos:inbox-organize",{detail:{files:r}})))},[r,v]),_=(0,s.useCallback)(async t=>{try{if(!(await fetch("/api/inbox",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({names:[t]})})).ok)throw Error("Failed to delete");a(e=>e.filter(e=>e.name!==t)),window.dispatchEvent(new Event("mindos:inbox-updated")),A.oR.success(e.inbox.fileRemoved)}catch{A.oR.error(e.inbox.fileRemoveFailed)}},[e]),J=(0,s.useCallback)(t=>{t&&0!==t.length&&((0,R.QL)(Array.from(t),e),O.current&&(O.current.value=""))},[e]),K=(0,s.useCallback)(async t=>{let r=t.trim();if(r&&(0,R.h0)(r)){$(!0);try{await (0,R.TM)(r,e),E("")}finally{$(!1)}}},[e]),G=(0,s.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),H.current=0,y(!1),M(!1);let r=(0,R.Aw)(t.nativeEvent);r?K(r):t.dataTransfer.files.length>0&&(0,R.QL)(Array.from(t.dataTransfer.files),e)},[e,K]),Z=(0,s.useMemo)(()=>r.filter(e=>e.isAging).length,[r]),X=r.length>0,q=(0,s.useMemo)(()=>N.slice(0,5),[N]),[Q,ee]=(0,s.useState)(!0),et=(0,s.useRef)(0);return((0,s.useEffect)(()=>{et.current>0&&r.length>0&&ee(!1),et.current=r.length},[r.length]),g)?(0,n.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,n.jsx)("div",{className:"sticky top-[52px] md:top-0 z-20 border-b border-border px-4 md:px-6 h-[46px] flex items-center bg-background",children:(0,n.jsx)("div",{className:"px-4 md:px-6",children:(0,n.jsx)("div",{className:"h-5 w-32 bg-muted rounded animate-pulse"})})}),(0,n.jsx)("div",{className:"flex-1 px-4 md:px-6 py-8",children:(0,n.jsx)("div",{className:"max-w-[780px] mx-auto space-y-3",children:[void 0,void 0,void 0,void 0].map((e,t)=>(0,n.jsx)("div",{className:"h-12 bg-muted/40 rounded-lg animate-pulse"},t))})})]}):(0,n.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,n.jsx)("input",{ref:O,type:"file",multiple:!0,accept:".md,.txt,.csv,.json,.pdf",className:"hidden",onChange:e=>J(e.target.files)}),(0,n.jsx)("div",{className:"sticky top-[52px] md:top-0 z-20 border-b border-border h-[46px] flex items-center bg-background",children:(0,n.jsx)("div",{className:"w-full px-4 md:px-6 flex items-center justify-between",children:(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("button",{onClick:()=>t.push("/wiki"),className:"p-1.5 -ml-1.5 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:"Back",children:(0,n.jsx)(l.A,{size:16})}),(0,n.jsxs)("div",{className:"flex items-center gap-2.5 flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"flex items-center justify-center w-7 h-7 rounded-lg bg-[var(--amber-subtle)] text-[var(--amber)]",children:(0,n.jsx)(d.A,{size:15})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("h1",{className:"text-sm font-semibold text-foreground tracking-tight leading-tight",children:e.inbox.title}),X&&(0,n.jsxs)("p",{className:"text-2xs text-muted-foreground/60 leading-tight mt-0.5",children:[e.inbox.fileCount(r.length),Z>0&&(0,n.jsxs)("span",{className:"text-[var(--amber)]/70",children:[" \xb7 ",Z," ",e.inbox.agingHint]})]})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>O.current?.click(),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",title:e.inbox.uploadButton,children:[(0,n.jsx)(c.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:e.inbox.uploadButton})]}),X&&(0,n.jsxs)("button",{onClick:Y,disabled:v,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition-all bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed",title:v?e.inbox.organizing:e.inbox.organizeButton,children:[v?(0,n.jsx)(u.A,{size:13,className:"animate-spin"}):(0,n.jsx)(m.A,{size:13}),(0,n.jsx)("span",{children:v?e.inbox.organizing:e.inbox.organizeButton})]})]})]})})}),(0,n.jsx)("div",{className:"flex-1 px-4 md:px-6 py-6",children:(0,n.jsxs)("div",{className:"max-w-[780px] mx-auto",children:[(0,n.jsxs)("div",{className:`rounded-xl border overflow-hidden transition-all duration-200 mb-6 ${w?"border-[var(--amber)] bg-[var(--amber-subtle)] shadow-[inset_0_0_0_1px_var(--amber)]":"border-border/50 bg-card/30"}`,onDragEnter:e=>{let t=e.dataTransfer.types.includes("Files"),r=(0,R.lL)(e.nativeEvent);(t||r)&&(e.preventDefault(),e.stopPropagation(),H.current++,1===H.current&&(y(!0),M(r&&!t)))},onDragOver:e=>{let t=e.dataTransfer.types.includes("Files"),r=(0,R.lL)(e.nativeEvent);(t||r)&&(e.preventDefault(),e.stopPropagation())},onDragLeave:e=>{e.stopPropagation(),H.current=Math.max(0,H.current-1),0===H.current&&(y(!1),M(!1))},onDrop:G,children:[(0,n.jsx)("div",{className:`cursor-pointer transition-colors duration-150 ${X?"px-4 py-3.5":"px-4 py-10"} ${!w?"hover:bg-muted/[0.06]":""}`,role:"button",tabIndex:0,"aria-label":e.inbox.uploadButton,onClick:()=>O.current?.click(),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),O.current?.click())},children:w&&F?(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2.5 text-center py-1",children:[(0,n.jsx)(x.A,{size:22,className:"shrink-0 text-[var(--amber)] animate-pulse"}),(0,n.jsx)("p",{className:"text-sm font-medium text-[var(--amber)]",children:e.inbox.dropUrlOverlay})]}):X?(0,n.jsxs)("div",{className:"flex items-center justify-center gap-2 text-center",children:[(0,n.jsx)(p.A,{size:15,className:`shrink-0 ${w?"text-[var(--amber)]":"text-muted-foreground/30"}`}),(0,n.jsxs)("p",{className:"text-xs text-muted-foreground/50",children:[e.inbox.dropFilesOrLinks," ",(0,n.jsx)("span",{className:"text-[var(--amber)]/70 hover:text-[var(--amber)] hover:underline",children:e.fileImport.dropzoneCompactButton})]})]}):(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,n.jsx)("div",{className:`flex items-center justify-center w-14 h-14 rounded-2xl transition-colors duration-200 ${w?"bg-[var(--amber)]/15":"bg-[var(--amber-subtle)]"}`,children:(0,n.jsx)(p.A,{size:26,className:`transition-colors duration-200 ${w?"text-[var(--amber)]":"text-[var(--amber)]/35"}`})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-sm font-medium text-foreground/70",children:e.inbox.emptyTitle}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground/50 mt-1.5 max-w-[280px] mx-auto leading-relaxed",children:e.inbox.emptyDesc})]}),(0,n.jsx)("div",{className:"flex items-center gap-1.5",children:["md","txt","pdf","csv","json"].map(e=>{let t=L[e]??{bg:"bg-muted/50",text:"text-muted-foreground/50"};return(0,n.jsxs)("span",{className:`text-2xs font-mono px-1.5 py-px rounded ${t.bg} ${t.text}`,children:[".",e]},e)})})]})}),(0,n.jsx)("div",{className:"border-t border-border/20 mx-4"}),(0,n.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 transition-colors duration-150 focus-within:bg-muted/[0.06]",onClick:e=>{e.stopPropagation(),I.current?.focus()},children:[(0,n.jsx)("div",{className:`flex items-center justify-center w-7 h-7 rounded-lg shrink-0 transition-colors duration-150 ${z?"bg-[var(--amber)]/15":C?"bg-[var(--amber)]/10":"bg-muted/50"}`,children:z?(0,n.jsx)(u.A,{size:13,className:"text-[var(--amber)] animate-spin"}):(0,n.jsx)(f.A,{size:13,className:`transition-colors duration-150 ${C?"text-[var(--amber)]":"text-muted-foreground/40"}`})}),(0,n.jsx)("input",{ref:I,type:"url",value:C,onChange:e=>E(e.target.value),onKeyDown:e=>{"Enter"!==e.key||z||(e.preventDefault(),K(C))},onPaste:e=>{let t=e.clipboardData.getData("text/plain").trim();t&&(0,R.h0)(t)&&!C&&(e.preventDefault(),E(t),setTimeout(()=>K(t),50))},placeholder:e.inbox.clipUrlPlaceholder,disabled:z,className:"flex-1 min-w-0 bg-transparent text-sm text-foreground placeholder:text-muted-foreground/30 outline-none disabled:opacity-50"}),C&&!z&&(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),K(C)},className:"shrink-0 flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg bg-[var(--amber)]/10 text-[var(--amber)] hover:bg-[var(--amber)]/20 transition-all duration-150 ease-out cursor-pointer",children:[(0,n.jsx)(x.A,{size:12}),e.inbox.clipButton]}),z&&(0,n.jsx)("span",{className:"shrink-0 text-xs text-[var(--amber)]/70 tabular-nums",children:e.inbox.clipping})]})]}),X&&(0,n.jsx)("div",{className:"mb-8",children:(0,n.jsx)("div",{className:"rounded-xl border border-border overflow-hidden divide-y divide-border/50",children:r.map((e,t)=>(0,n.jsx)(D,{file:e,index:t,animate:Q,onDelete:_},e.path))})}),q.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,n.jsx)(h.A,{size:12,className:"text-muted-foreground/40"}),(0,n.jsx)("span",{className:"text-2xs font-medium text-muted-foreground/50 uppercase tracking-wider",children:e.importHistory.title}),N.length>5&&(0,n.jsx)(o(),{href:"/inbox/history",className:"ml-auto text-2xs text-muted-foreground/50 hover:text-[var(--amber)] transition-colors",children:e.inbox.viewAllHistory(N.length)})]}),(0,n.jsx)("div",{className:"space-y-2",children:q.map(e=>(0,n.jsx)(P,{entry:e},e.id))})]}),X&&0===q.length&&(0,n.jsxs)("div",{className:"flex items-start gap-2.5 px-3.5 py-3 rounded-lg bg-[var(--amber-subtle)]/50 border border-[var(--amber)]/10 animate-[fadeSlideUp_0.22s_ease_both]",children:[(0,n.jsx)(m.A,{size:14,className:"text-[var(--amber)]/60 shrink-0 mt-0.5"}),(0,n.jsx)("p",{className:"text-xs text-foreground/60 leading-relaxed",children:e.inbox.viewOrganizeTip})]}),!X&&0===q.length&&(0,n.jsx)("div",{className:"flex flex-col items-center gap-1.5 py-2 text-center",children:(0,n.jsx)("p",{className:"text-2xs text-muted-foreground/30",children:e.inbox.viewEmptyGuide})})]})})]})}function D({file:e,onDelete:t,index:r,animate:a}){var o,l,d;let c,u,{t:m}=(0,S.Y)(),x=(0,i.useRouter)(),p=(c=(o=e.name).lastIndexOf("."))>0?o.slice(c+1).toLowerCase():"",f=(u=(l=e.name).lastIndexOf("."))>0?l.slice(0,u):l,h=L[p],w=M(e.modifiedAt,m.home.relativeTime),[y,N]=(0,s.useState)(null),k=(d=e.size)<1024?`${d} B`:d<1048576?`${Math.round(d/1024)} KB`:`${(d/1048576).toFixed(1)} MB`,C="csv"===p?g.A:"json"===p?b.A:v.A,E="csv"===p?"text-emerald-500/70":"json"===p?"text-violet-500/70":"pdf"===p?"text-error/60":"text-muted-foreground/60";return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>x.push(`/view/${(0,z.O0)(e.path)}`),onKeyDown:t=>{"Enter"===t.key&&x.push(`/view/${(0,z.O0)(e.path)}`)},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),N({x:e.clientX,y:e.clientY})},className:`flex items-center gap-3 px-4 py-3 bg-card hover:bg-accent transition-colors duration-100 cursor-pointer group${a?" animate-[fadeSlideUp_0.22s_ease_both]":""}`,style:a?{animationDelay:`${30*r}ms`}:void 0,children:[(0,n.jsx)(C,{size:15,className:`shrink-0 ${E}`}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:"text-sm text-foreground truncate",title:e.name,children:f}),h&&(0,n.jsxs)("span",{className:`text-2xs font-mono px-1.5 py-px rounded shrink-0 ${h.bg} ${h.text}`,children:[".",p]}),e.isAging&&(0,n.jsx)("span",{className:"text-2xs px-1.5 py-px rounded shrink-0 bg-[var(--amber)]/10 text-[var(--amber)]/70",title:m.inbox.agingHint,children:m.inbox.agingHint})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,n.jsx)("span",{className:"text-2xs text-muted-foreground/40 tabular-nums",children:k}),(0,n.jsx)("span",{className:"text-2xs text-muted-foreground/30",children:"\xb7"}),(0,n.jsx)("span",{className:"text-2xs text-muted-foreground/40 tabular-nums",children:w})]})]}),(0,n.jsx)("button",{type:"button",onClick:r=>{r.stopPropagation(),r.preventDefault(),t(e.name)},className:"hidden group-hover:flex items-center justify-center w-7 h-7 rounded-md shrink-0 text-muted-foreground/40 hover:text-destructive hover:bg-destructive/10 transition-colors",title:m.inbox.removeFile,children:(0,n.jsx)(j.A,{size:14})})]}),y&&(0,n.jsx)(F,{x:y.x,y:y.y,file:e,onDelete:()=>{N(null),t(e.name)},onClose:()=>N(null)})]})}function F({x:e,y:t,file:r,onDelete:a,onClose:o}){let l=(0,s.useRef)(null),d=(0,i.useRouter)(),{t:c}=(0,S.Y)();(0,s.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 u=Math.min(e,window.innerWidth-200),m=Math.min(t,window.innerHeight-120),x="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,n.jsxs)("div",{ref:l,className:"fixed z-50 min-w-[160px] bg-card border border-border rounded-lg shadow-lg py-1",style:{top:m,left:u},children:[(0,n.jsxs)("button",{className:x,onClick:()=>{d.push(`/view/${(0,z.O0)(r.path)}`),o()},children:[(0,n.jsx)(w.A,{size:14,className:"shrink-0"})," ",c.inbox.openFile]}),(0,n.jsxs)("button",{className:x,onClick:()=>{navigator.clipboard.writeText(r.name),A.oR.copy(),o()},children:[(0,n.jsx)(y.A,{size:14,className:"shrink-0"})," ",c.inbox.copyName]}),(0,n.jsx)("div",{className:"border-t border-border my-1"}),(0,n.jsxs)("button",{className:`${x} text-destructive hover:text-destructive`,onClick:a,children:[(0,n.jsx)(N.A,{size:14,className:"shrink-0"})," ",c.inbox.removeFile]})]})}function P({entry:e}){let{t}=(0,S.Y)(),[r,a]=(0,s.useState)(!1),i="undone"===e.status,l=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),d=e.durationMs?function(e){let t=Math.round(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;return`${r}m${n>0?`${n}s`:""}`}(e.durationMs):null,c=M(new Date(e.timestamp).toISOString(),t.home.relativeTime),u=e.files.filter(e=>e.ok&&!e.undone).length;return(0,n.jsxs)("div",{className:"rounded-lg border border-border/30 overflow-hidden",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>a(e=>!e),"aria-expanded":r,className:"w-full flex items-center gap-2.5 px-3.5 py-2.5 text-left hover:bg-muted/20 transition-colors",children:[i?(0,n.jsx)(k.A,{size:13,className:"text-muted-foreground/40 shrink-0"}):(0,n.jsx)(C.A,{size:13,className:"text-success/70 shrink-0"}),(0,n.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:`text-xs truncate ${i?"text-muted-foreground/50 line-through":"text-foreground/80"}`,children:1===e.sourceFiles.length?e.sourceFiles[0]:t.importHistory.nFiles(e.sourceFiles.length)}),l&&(0,n.jsx)("span",{className:`text-2xs px-1.5 py-0.5 rounded shrink-0 ${l.className}`,children:l.label}),u>0&&(0,n.jsx)("span",{className:"text-2xs text-muted-foreground/40 shrink-0",children:t.importHistory.changesSummary(u)})]}),(0,n.jsxs)("span",{className:"text-2xs text-muted-foreground/40 tabular-nums shrink-0",children:[d&&`${d} \xb7 `,c]}),e.files.length>0&&(0,n.jsx)(E.A,{size:10,className:`text-muted-foreground/30 shrink-0 transition-transform duration-150 ${r?"rotate-180":""}`})]}),r&&e.files.length>0&&(0,n.jsx)("div",{className:"border-t border-border/20 px-3.5 py-2 space-y-0.5",children:e.files.map((e,r)=>{let s=e.path.split("/"),a=s.pop()??e.path,i=s.length>0?s.join("/"):null,l=!e.undone&&e.ok,d=`flex items-center gap-2 py-1 text-2xs${e.undone?" opacity-40":""}${l?" rounded -mx-1 px-1 hover:bg-muted/20 transition-colors":""}`,c=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:`w-1 h-1 rounded-full shrink-0 ${e.ok&&!e.undone?"bg-success/60":"bg-muted-foreground/30"}`}),(0,n.jsxs)("span",{className:`truncate flex-1 min-w-0 ${e.undone?"line-through text-muted-foreground":""}`,children:[i&&(0,n.jsxs)("span",{className:"text-muted-foreground/30",children:[i,"/"]}),(0,n.jsx)("span",{className:e.undone?"":"text-foreground/70",children:a})]}),(0,n.jsx)("span",{className:"text-muted-foreground/40 shrink-0",children:e.undone?t.importHistory.statusUndone:"create"===e.action?t.importHistory.statusCreated:t.importHistory.statusUpdated})]});return l?(0,n.jsx)(o(),{href:`/view/${(0,z.O0)(e.path)}`,className:d,children:c},`${e.path}-${r}`):(0,n.jsx)("div",{className:d,children:c},`${e.path}-${r}`)})})]})}function M(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 n=Math.floor(r/60);if(n<24)return t.hoursAgo(n);let s=Math.floor(n/24);return t.daysAgo(s)}},3109:(e,t,r)=>{"use strict";r.d(t,{default:()=>O});var n=r(95155),s=r(12115),a=r(98500),o=r.n(a),i=r(73321),l=r(38798),d=r(33078),c=r(48368),u=r(42129),m=r(97810),x=r(6296),p=r(41585),f=r(86901),h=r(94514),g=r(997),b=r(67635),v=r(93631),j=r(37595),w=r(38194),y=r(44406),N=r(91337),k=r(82125),C=r(35581);async function E(e){try{await navigator.clipboard.writeText(e)}catch{}}function A({node:e}){return"directory"===e.type?(0,n.jsx)(l.A,{size:16,className:"text-yellow-400 shrink-0"}):".csv"===e.extension?(0,n.jsx)(d.A,{size:16,className:"text-success shrink-0"}):(0,n.jsx)(c.A,{size:16,className:"text-muted-foreground shrink-0"})}function S({node:e}){return"directory"===e.type?(0,n.jsx)(u.A,{size:28,className:"text-yellow-400"}):".csv"===e.extension?(0,n.jsx)(d.A,{size:28,className:"text-success"}):(0,n.jsx)(c.A,{size:28,className:"text-muted-foreground"})}let z="mindos-dir-view",R="show-hidden-files";function T(e){let t=t=>{t.key===R&&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(R)}function $({icon:e,title:t,lines:r,viewAllHref:s,viewAllLabel:a,trailing:i,footer:l}){return 0===r.length?null:(0,n.jsxs)("div",{className:"bg-muted/30 border border-border/40 rounded-lg px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 mb-2",children:[e,(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground flex-1",children:t}),i]}),(0,n.jsx)("div",{className:"space-y-1",children:r.map((e,t)=>(0,n.jsxs)("p",{className:"text-sm text-muted-foreground/80 leading-relaxed",suppressHydrationWarning:!0,children:["\xb7 ",e]},t))}),(0,n.jsxs)("div",{className:"flex items-center justify-between mt-2",children:[l||(0,n.jsx)("span",{}),(0,n.jsx)(o(),{href:s,className:"text-xs hover:underline transition-colors text-[var(--amber)]",children:a})]})]})}function D({dirPath:e}){let{t}=(0,C.Y)(),r=(0,i.useRouter)(),[a,l]=(0,s.useState)("idle"),[d,c]=(0,s.useState)(""),u=function(e){let[t,r]=(0,s.useState)(null);return(0,s.useEffect)(()=>{fetch(`/api/space-overview?space=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>r(e.fileCount??0)).catch(()=>r(null))},[e]),t}(e),h=async()=>{l("loading"),c("");try{let t=await fetch("/api/space-overview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({space:e})}),n=await t.json();if(!t.ok){c(n.error||"Unknown error"),l("error");return}r.refresh()}catch(e){c(e instanceof Error?e.message:"Network error"),l("error")}};return(0,n.jsxs)("div",{className:"bg-muted/30 border border-border/40 rounded-lg px-4 py-4",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 mb-3",children:[(0,n.jsx)(m.A,{size:14,className:"text-muted-foreground shrink-0"}),(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:t.fileTree.about})]}),"loading"===a?(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2 py-3",children:[(0,n.jsx)(x.A,{size:20,className:"text-[var(--amber)] animate-spin"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:t.dirView.overviewGenerating}),null!=u&&u>0&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground/60",children:t.dirView.overviewScanningFiles(u)})]}):"error"===a?(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2 py-3",children:[(0,n.jsx)(p.A,{size:18,className:"text-error"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:t.dirView.overviewError}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-[280px]",children:d}),(0,n.jsxs)("div",{className:"flex items-center gap-3 mt-1",children:[(0,n.jsx)("button",{onClick:h,className:"text-xs text-[var(--amber)] hover:underline",children:t.dirView.overviewRetry}),(0,n.jsx)(o(),{href:"/settings",className:"text-xs text-muted-foreground hover:text-foreground",children:t.dirView.uninitSettings})]})]}):(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2.5 py-2",children:[null!=u&&u>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground text-center",children:t.dirView.overviewCtaHint(u)}),(0,n.jsxs)("button",{onClick:h,className:"inline-flex items-center gap-1.5 px-4 py-2 text-sm rounded-lg transition-colors bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90",children:[(0,n.jsx)(f.A,{size:14}),t.dirView.overviewCta]})]}):0===u?(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:t.dirView.overviewNoFiles}):null,(0,n.jsx)(o(),{href:`/view/${(0,N.O0)(`${e}/README.md`)}`,className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:t.dirView.overviewOrEdit})]})]})}function F({dirPath:e,preview:t}){let{t:r}=(0,C.Y)(),a=(0,i.useRouter)(),[o,l]=(0,s.useState)("idle"),[d,c]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1),[g,b]=(0,s.useState)(""),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!u)return;let e=e=>{v.current&&!v.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]);let j=async()=>{p(!1),l("loading"),c(""),b("");try{let t=await fetch("/api/space-overview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({space:e})}),n=await t.json().catch(()=>({}));if(!t.ok){c(n.error||"Unknown error"),l("error");return}n.unchanged?(l("unchanged"),setTimeout(()=>l("idle"),3e3)):(n.stats?.mode==="incremental"&&(b(r.dirView.overviewIncremental(n.stats.scannedFiles)),setTimeout(()=>b(""),4e3)),a.refresh(),l("idle"))}catch(e){c(e instanceof Error?e.message:"Network error"),l("error")}};if("loading"===o)return(0,n.jsxs)("div",{className:"bg-muted/30 border border-border/40 rounded-lg px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 mb-2",children:[(0,n.jsx)(m.A,{size:14,className:"text-muted-foreground shrink-0"}),(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground flex-1",children:r.fileTree.about})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,n.jsx)(x.A,{size:14,className:"text-[var(--amber)] animate-spin"}),(0,n.jsx)("span",{className:"text-sm text-muted-foreground",children:r.dirView.overviewGenerating})]})]});if("error"===o)return(0,n.jsxs)("div",{className:"bg-muted/30 border border-border/40 rounded-lg px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 mb-2",children:[(0,n.jsx)(m.A,{size:14,className:"text-muted-foreground shrink-0"}),(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground flex-1",children:r.fileTree.about})]}),(0,n.jsxs)("div",{className:"flex flex-col items-center gap-1.5 py-2",children:[(0,n.jsx)("p",{className:"text-xs text-error",children:r.dirView.overviewError}),d&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center",children:d}),(0,n.jsx)("button",{onClick:j,className:"text-xs text-[var(--amber)] hover:underline mt-1",children:r.dirView.overviewRetry})]})]});let w=(0,n.jsxs)("div",{className:"relative",ref:v,children:[(0,n.jsxs)("button",{onClick:()=>p(!0),className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs text-muted-foreground/60 hover:text-[var(--amber)] hover:bg-[var(--amber)]/10 transition-colors",title:r.dirView.overviewRegenerate,children:[(0,n.jsx)(f.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:r.dirView.overviewRegenerateLabel})]}),u&&(0,n.jsxs)("div",{className:"absolute right-0 top-full mt-1.5 z-30 w-[260px] bg-card border border-border rounded-lg shadow-lg p-3",children:[(0,n.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed mb-3",children:r.dirView.overviewRegenerateConfirm}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,n.jsx)("button",{onClick:()=>p(!1),className:"px-2.5 py-1 text-xs rounded-md text-muted-foreground hover:bg-muted transition-colors",children:r.dirView.overviewRegenerateCancel}),(0,n.jsxs)("button",{onClick:j,className:"inline-flex items-center gap-1 px-2.5 py-1 text-xs rounded-md bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 transition-colors",children:[(0,n.jsx)(f.A,{size:11}),r.dirView.overviewRegenerateStart]})]})]})]}),y=(0,n.jsx)("span",{className:"text-2xs text-muted-foreground/50",suppressHydrationWarning:!0,children:"unchanged"===o?(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 text-success",children:[(0,n.jsx)(h.A,{size:10}),r.dirView.overviewUnchanged]}):g?(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 text-success",children:[(0,n.jsx)(h.A,{size:10}),g]}):t.lastCompiled?r.dirView.overviewLastCompiled((0,N.KW)(new Date(t.lastCompiled).getTime(),r.home.relativeTime)):null});return(0,n.jsx)($,{icon:(0,n.jsx)(m.A,{size:14,className:"text-muted-foreground shrink-0"}),title:r.fileTree.about,lines:t.readmeLines,viewAllHref:`/view/${(0,N.O0)(`${e}/README.md`)}`,viewAllLabel:r.fileTree.viewAll,trailing:w,footer:y})}function P({preview:e,dirPath:t}){let{t:r}=(0,C.Y)(),s=e.instructionLines.length>0,a=!(e.readmeLines.length>0)||e.readmeIsTemplate||e.isTemplate;return(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 mb-6",children:[s&&(0,n.jsx)($,{icon:(0,n.jsx)(g.A,{size:14,className:"text-muted-foreground shrink-0"}),title:r.fileTree.rules,lines:e.instructionLines,viewAllHref:`/view/${(0,N.O0)(`${t}/INSTRUCTION.md`)}`,viewAllLabel:r.fileTree.viewAll}),a?(0,n.jsx)(D,{dirPath:t}):(0,n.jsx)(F,{dirPath:t,preview:e})]})}function M({x:e,y:t,path:r,label:a,onClose:o}){let i=(0,s.useRef)(null),{t:l}=(0,C.Y)();(0,s.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 d=Math.min(e,window.innerWidth-200),c=Math.min(t,window.innerHeight-60);return(0,n.jsx)("div",{ref:i,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,n.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:()=>{E(r),o()},children:[(0,n.jsx)(b.A,{size:14,className:"shrink-0"})," ",l.fileTree.copyPath]})})}function O({dirPath:e,entries:t,spacePreview:r}){let[a,i]=[(0,s.useSyncExternalStore)(e=>{let t=()=>e();return window.addEventListener("mindos-dir-view-change",t),()=>window.removeEventListener("mindos-dir-view-change",t)},()=>{let e=localStorage.getItem(z);return"list"===e||"grid"===e?e:"grid"},()=>"grid"),e=>{localStorage.setItem(z,e),window.dispatchEvent(new Event("mindos-dir-view-change"))}],l=(0,s.useSyncExternalStore)(T,L,()=>!1),{t:d}=(0,C.Y)(),c=e=>(0,N.KW)(e,d.home.relativeTime),[m,x]=(0,s.useState)(null),p=(0,s.useCallback)((e,t)=>{e.preventDefault(),e.stopPropagation(),x({x:e.clientX,y:e.clientY,path:t})},[]),f=(0,s.useMemo)(()=>l?t:t.filter(e=>"file"!==e.type||!k.C.has(e.name)),[t,l]),h=(0,s.useMemo)(()=>{let e=new Map;for(let t of f)e.set(t.path,function e(t){return"file"===t.type?1:(t.children||[]).reduce((t,r)=>t+e(r),0)}(t));return e},[f]);return(0,n.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,n.jsx)("div",{className:"sticky top-[52px] md:top-0 z-20 border-b border-border px-4 md:px-6 h-[46px] flex items-center bg-background",children:(0,n.jsxs)("div",{className:"w-full flex items-center justify-between gap-2",children:[(0,n.jsx)("div",{className:"min-w-0 flex-1",children:(0,n.jsx)(y.A,{filePath:e})}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,n.jsxs)(o(),{href:`/view/${(0,N.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,n.jsx)(v.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:d.dirView.newFile})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1 p-1 bg-muted rounded-lg",children:[(0,n.jsx)("button",{onClick:()=>i("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,n.jsx)(j.A,{size:14})}),(0,n.jsx)("button",{onClick:()=>i("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,n.jsx)(w.A,{size:14})})]})]})]})}),(0,n.jsx)("div",{className:"flex-1 px-4 md:px-6 py-6",children:(0,n.jsxs)("div",{className:"max-w-[860px] mx-auto",children:[r&&(0,n.jsx)(P,{preview:r,dirPath:e}),0===f.length?(0,n.jsx)("p",{className:"text-muted-foreground text-sm",children:d.dirView.emptyFolder}):"grid"===a?(0,n.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-5 gap-3",children:f.map(e=>(0,n.jsxs)(o(),{href:`/view/${(0,N.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,n.jsx)(u.A,{size:22,className:"text-yellow-400"}):(0,n.jsx)(S,{node:e}),(0,n.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,n.jsx)("span",{className:"text-2xs text-muted-foreground",children:d.dirView.fileCount(h.get(e.path)??0)}),"file"===e.type&&e.mtime&&(0,n.jsx)("span",{className:"text-2xs text-muted-foreground",suppressHydrationWarning:!0,children:c(e.mtime)})]},e.path))}):(0,n.jsx)("div",{className:"flex flex-col divide-y divide-border border border-border rounded-xl overflow-hidden",children:f.map(e=>(0,n.jsxs)(o(),{href:`/view/${(0,N.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,n.jsx)(A,{node:e}),(0,n.jsx)("span",{className:"flex-1 text-sm text-foreground truncate",title:e.name,suppressHydrationWarning:!0,children:e.name}),"directory"===e.type?(0,n.jsx)("span",{className:"text-xs text-muted-foreground shrink-0",children:d.dirView.fileCount(h.get(e.path)??0)}):e.mtime?(0,n.jsx)("span",{className:"text-xs text-muted-foreground shrink-0 tabular-nums",suppressHydrationWarning:!0,children:c(e.mtime)}):null]},e.path))})]})}),m&&(0,n.jsx)(M,{x:m.x,y:m.y,path:m.path,label:d.fileTree.copyPath,onClose:()=>x(null)})]})}},7337:(e,t,r)=>{"use strict";function n(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:()=>n})},7834:(e,t,r)=>{"use strict";async function n(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:()=>n})},10377:(e,t,r)=>{"use strict";r.d(t,{Z:()=>f});var n=r(12115);let s="mindos-pinned-files",a="mindos:pins-changed";function o(){try{let e=localStorage.getItem(s);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===s&&(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(s,JSON.stringify(e))}catch{}window.dispatchEvent(new Event(a))}function f(){m();let e=(0,n.useSyncExternalStore)(x,i,d),t=(0,n.useCallback)(t=>e.includes(t),[e]),r=(0,n.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,n.useCallback)(e=>{p(e)},[]),removePin:(0,n.useCallback)(e=>{p(o().filter(t=>t!==e))},[])}}},22356:(e,t,r)=>{"use strict";r.d(t,{h:()=>n,n:()=>s});class n extends Error{constructor(e,t,r){super(e),this.name="ApiError",this.status=t,this.code=r}}async function s(e,t={}){let r,a,o,{timeout:i=3e4,signal:l,...d}=t;if((i>0||l)&&(r=new AbortController),i>0&&r&&(a=setTimeout(()=>{r.abort(Error(`Request timed out after ${Math.round(i/1e3)}s`))},i)),l&&r)if(l.aborted)r.abort();else{let e=()=>r?.abort();l.addEventListener("abort",e,{once:!0}),o=()=>{l.removeEventListener("abort",e)}}let c=r?.signal??l;try{let t=await fetch(e,{...d,signal:c});if(!t.ok){let e,r=`Request failed (${t.status})`;try{let n=await t.json();n?.error?.code&&n?.error?.message?(r=n.error.message,e=n.error.code):n?.error&&(r="string"==typeof n.error?n.error:n.error.message??r)}catch{}throw new n(r,t.status,e)}return await t.json()}finally{a&&clearTimeout(a),o&&o()}}},29494:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>l,Nh:()=>c,QL:()=>a,TM:()=>o,h0:()=>i,lL:()=>d});var n=r(4235);function s(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:s(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?n.oR.error(t.inbox.tooLarge(a),4e3):e.length>0&&n.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),n.oR.error(t.inbox.saveFailed,4e3);return}let s=await e.json(),i=s.saved?.length??0,l=s.skipped?.length??0;o=a,i>0&&o>0&&0===l?n.oR.success(t.inbox.savedWithOversized(i,o),4e3):i>0&&l+o>0?n.oR.success(t.inbox.savedWithSkipped(i,l+o),4e3):i>0?n.oR.success(t.inbox.savedToast(i),3e3):(o>0&&n.oR.error(t.inbox.tooLarge(o),4e3),l>0&&n.oR.error(t.inbox.savedWithSkipped(0,l),4e3),0===o&&0===l&&n.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),n.oR.error(t.inbox.saveFailed,4e3)}}async function o(e,t){try{let r=await fetch("/api/inbox/clip",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})}),s=await r.json();if(!r.ok){let e=s.error||t.inbox.clipFailed;return n.oR.error(e,4e3),{ok:!1}}return n.oR.success(t.inbox.clipSuccess(s.title||e),3e3),window.dispatchEvent(new Event("mindos:files-changed")),window.dispatchEvent(new Event("mindos:inbox-updated")),{ok:!0,title:s.title}}catch(e){return console.error("[ClipURL] Network error:",e),n.oR.error(t.inbox.clipFailed,4e3),{ok:!1}}}function i(e){let t=e.trim();if(!t.startsWith("http://")&&!t.startsWith("https://"))return!1;try{return new URL(t),!0}catch{return!1}}function l(e){if(e.dataTransfer?.files&&e.dataTransfer.files.length>0)return null;let t=e.dataTransfer?.getData("text/uri-list");if(t){let e=t.split(/[\r\n]+/).find(e=>!e.startsWith("#")&&e.trim().length>0);if(e&&i(e))return e.trim()}let r=e.dataTransfer?.getData("text/plain");return r&&i(r)?r.trim():null}function d(e){let t=e.dataTransfer?.types??[];return!t.includes("Files")&&(t.includes("text/uri-list")||t.includes("text/plain"))}async function c(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:s(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?n.oR.error(r.inbox.tooLarge(o),4e3):e.length>0&&n.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),n.oR.error(r.inbox.saveFailed,4e3);return}let s=await e.json(),i=s.created?.length??0,d=s.skipped?.length??0;i>0&&d+o>0?n.oR.success(r.inbox.savedWithSkipped(i,d+o),4e3):i>0?n.oR.success(r.inbox.savedToDir(i,l),3e3):(o>0&&n.oR.error(r.inbox.tooLarge(o),4e3),d>0&&n.oR.error(r.inbox.savedWithSkipped(0,d),4e3)),window.dispatchEvent(new Event("mindos:files-changed"))}catch(e){console.error("[TreeDrop] Network error:",e),n.oR.error(r.inbox.saveFailed,4e3)}}},33261:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var n=r(9339);let s=(0,n.createServerReference)("40b3d98d55f3502ddf0bc8dc9c24e3ed5e0ee47dc7",n.callServer,void 0,n.findSourceMapURL,"deleteFileAction")},41068:(e,t,r)=>{"use strict";r.d(t,{Y:()=>s});var n=r(9339);let s=(0,n.createServerReference)("40ba352a8d8394805301f760d14bad6e3f9fa9d5cd",n.callServer,void 0,n.findSourceMapURL,"undoDeleteAction")},44406:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(95155),s=r(98500),a=r.n(s),o=r(50538),i=r(33078),l=r(48368),d=r(38798),c=r(66614),u=r(21362),m=r(35581);let x={".mindos/change-log.json":{icon:(0,n.jsx)(o.A,{size:13,className:"text-[var(--amber)] shrink-0"}),getLabel:e=>e.changes.title}};function p({name:e}){let t=e.includes(".")?e.slice(e.lastIndexOf(".")).toLowerCase():"";return".csv"===t?(0,n.jsx)(i.A,{size:13,className:"text-success shrink-0"}):t?(0,n.jsx)(l.A,{size:13,className:"text-muted-foreground shrink-0"}):(0,n.jsx)(d.A,{size:13,className:"text-yellow-400 shrink-0"})}function f({filePath:e}){let{t}=(0,m.Y)(),r=x[e];if(r)return(0,n.jsxs)("nav",{className:"flex min-w-0 items-center gap-1 text-xs text-muted-foreground flex-nowrap overflow-hidden",children:[(0,n.jsx)(a(),{href:"/",className:"p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors shrink-0",title:"Home",children:(0,n.jsx)(c.A,{size:14})}),(0,n.jsx)(u.A,{size:12,className:"text-muted-foreground/50 shrink-0"}),(0,n.jsxs)("span",{className:"min-w-0 flex items-center gap-1.5 text-foreground font-medium",children:[r.icon,(0,n.jsx)("span",{className:"block truncate max-w-[180px] sm:max-w-[260px] md:max-w-[360px]",children:r.getLabel(t)})]})]});let s=e.split("/");return(0,n.jsxs)("nav",{className:"flex min-w-0 items-center gap-1 text-xs text-muted-foreground flex-nowrap overflow-hidden",children:[(0,n.jsx)(a(),{href:"/",className:"p-1.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors shrink-0",title:"Home",children:(0,n.jsx)(c.A,{size:14})}),s.map((e,t)=>{let r=t===s.length-1,o="/view/"+s.slice(0,t+1).map(encodeURIComponent).join("/");return(0,n.jsxs)("span",{className:"flex items-center gap-1 min-w-0",children:[(0,n.jsx)(u.A,{size:12,className:"text-muted-foreground/50 shrink-0"}),r?(0,n.jsxs)("span",{className:"min-w-0 flex items-center gap-1.5 px-1 py-0.5 text-foreground font-medium",children:[(0,n.jsx)(p,{name:e}),(0,n.jsx)("span",{className:"block truncate max-w-[180px] sm:max-w-[260px] md:max-w-[360px]",suppressHydrationWarning:!0,children:e})]}):(0,n.jsx)(a(),{href:o,className:"block px-1 py-0.5 rounded-md hover:bg-muted/50 hover:text-foreground transition-colors truncate max-w-[120px] sm:max-w-[160px] md:max-w-[200px]",title:e,children:(0,n.jsx)("span",{suppressHydrationWarning:!0,children:e})})]},t)})]})}},46838:(e,t,r)=>{"use strict";r.d(t,{$7:()=>o,MZ:()=>c,TS:()=>l,UG:()=>a,YB:()=>d,pl:()=>i});let n=[],s=new Set;function a(){try{let e=localStorage.getItem("mindos-disabled-renderers");s=new Set(e?JSON.parse(e):[])}catch{s=new Set}}function o(e,t){let r=n.find(t=>t.id===e);r?.core||(t?s.delete(e):s.add(e),localStorage.setItem("mindos-disabled-renderers",JSON.stringify([...s])))}function i(e){let t=n.find(t=>t.id===e);return!!t?.core||!s.has(e)}function l(e){n.find(t=>t.id===e.id)||n.push(e)}function d(e,t,r){if(r){let e=n.find(e=>e.id===r);return e&&i(e.id)?e:void 0}return n.find(r=>i(r.id)&&r.match({filePath:e,extension:t}))}function c(){return n.filter(e=>!e.appBuiltinFeature)}},50037:(e,t,r)=>{"use strict";r.d(t,{default:()=>ef});var n=r(95155),s=r(12115),a=r(73321),o=r(80723),i=r(95057),l=r(52475),d=r(37618),c=r(33210),u=r(6296),m=r(55243),x=r(94290),p=r(60285),f=r(48368),h=r(53810),g=r(6962),b=r(67635),v=r(49387),j=r(68459),w=r(63637);function y({content:e}){let t=(0,s.useMemo)(()=>{try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},[e]);return(0,n.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,n.jsx)("code",{suppressHydrationWarning:!0,children:t})})}var N=r(59386),k=r.n(N),C=r(9921),E=r(66088),A=r(56563),S=r(51914);function z(e,t){return k().unparse([e,...t])}function R({value:e,editable:t,onCommit:r}){let[a,o]=(0,s.useState)(!1),[i,l]=(0,s.useState)(e),d=(0,s.useRef)(null);function c(){o(!1),i!==e&&r(i)}return((0,s.useEffect)(()=>{a&&d.current?.select()},[a]),a)?(0,n.jsx)("input",{ref:d,value:i,onChange:e=>l(e.target.value),onBlur:c,onKeyDown:t=>{"Enter"===t.key&&c(),"Escape"===t.key&&(l(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,n.jsx)("div",{className:`truncate text-sm ${t?"cursor-text":""}`,style:{color:"var(--foreground)",minWidth:60},onClick:t?function(){t&&(l(e),o(!0))}:void 0,title:e,children:e||(0,n.jsx)("span",{style:{color:"var(--muted-foreground)",opacity:.4},children:"—"})})}function T({headers:e,onAdd:t,onCancel:r}){let[a,o]=(0,s.useState)(()=>Array(e.length).fill("")),i=(0,s.useRef)(null);return(0,n.jsxs)("tr",{style:{background:"color-mix(in srgb, var(--amber) 6%, transparent)",borderTop:"1px solid var(--amber)"},children:[e.map((e,s)=>(0,n.jsx)("td",{className:"px-3 py-2",style:{borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("input",{ref:0===s?i:void 0,autoFocus:0===s,value:a[s],onChange:e=>{var t;return t=e.target.value,void o(e=>{let r=[...e];return r[s]=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)"}})},s)),(0,n.jsx)("td",{className:"px-2 py-2",style:{borderBottom:"1px solid var(--border)"}})]})}function L({content:e,appendAction:t,saveAction:r}){let[a,o]=(0,s.useState)(e),[i,l]=(0,s.useState)(null),[d,c]=(0,s.useState)(null),[m,x]=(0,s.useState)(!1),[p,f]=(0,s.useState)(!1),h=(0,s.useMemo)(()=>k().parse(a,{skipEmptyLines:!0}).data,[a]),g=h[0]||[],b=h.slice(1),v=(0,s.useMemo)(()=>null===i||null===d?b:[...b].sort((e,t)=>{let r=e[i]??"",n=t[i]??"",s=parseFloat(r),a=parseFloat(n);return isNaN(s)||isNaN(a)?"asc"===d?r.localeCompare(n):n.localeCompare(r):"asc"===d?s-a:a-s}),[b,i,d]),w=(0,s.useCallback)(async(e,t,n)=>{if(!r)return;let s=z(g,b.map(r=>r===v[e]?r.map((e,r)=>r===t?n:e):r));o(s),f(!0);try{await r(s)}catch(e){console.error("[CsvView] Cell save failed:",e)}finally{f(!1)}},[r,b,v,g]),y=(0,s.useCallback)(async e=>{if(!r||p)return;let t=v[e],n=z(g,b.filter(e=>e!==t));o(n),f(!0);try{await r(n)}catch(e){console.error("[CsvView] Row delete failed:",e)}finally{f(!1)}},[r,b,v,g,p]),N=(0,s.useCallback)(async e=>{f(!0);try{if(t){let r=await t(e);o(r.newContent)}else if(r){let t=z(g,[...b,e]);o(t),await r(t)}x(!1)}catch(e){console.error("[CsvView] Add row failed:",e)}finally{f(!1)}},[t,r,g,b]),L=!!r||!!t;return 0===g.length?(0,n.jsx)("div",{className:"text-sm py-4",style:{color:"var(--muted-foreground)"},children:"Empty CSV file"}):(0,n.jsxs)("div",{className:"w-full rounded-xl overflow-hidden border",style:{borderColor:"var(--border)"},children:[(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"min-w-full text-sm border-collapse",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{style:{background:"var(--muted)"},children:[g.map((e,t)=>(0,n.jsx)("th",{onClick:()=>(function(e){if(i!==e){l(e),c("asc");return}"asc"===d?c("desc"):(l(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,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{children:e}),i===t?"asc"===d?(0,n.jsx)(C.A,{size:11,style:{color:"var(--amber)"}}):(0,n.jsx)(E.A,{size:11,style:{color:"var(--amber)"}}):(0,n.jsx)(A.A,{size:11,style:{color:"var(--muted-foreground)",opacity:.4}})]})},t)),L&&(0,n.jsx)("th",{className:"w-8",style:{borderBottom:"1px solid var(--border)",background:"var(--muted)"}})]})}),(0,n.jsxs)("tbody",{children:[v.map((e,t)=>(0,n.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((s,a)=>(0,n.jsx)("td",{className:"px-4 py-2.5 max-w-xs",style:{borderBottom:"1px solid var(--border)"},children:(0,n.jsx)(R,{value:e[a]??"",editable:!!r,onCommit:e=>w(t,a,e)})},a)),L&&(0,n.jsx)("td",{className:"px-2 py-2",style:{borderBottom:"1px solid var(--border)"},children:r&&(0,n.jsx)("button",{onClick:()=>y(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,n.jsx)(j.A,{size:12})})})]},t)),m&&(0,n.jsx)(T,{headers:g,onAdd:N,onCancel:()=>x(!1)})]})]})}),(0,n.jsxs)("div",{className:"px-4 py-2 flex items-center justify-between",style:{background:"var(--muted)",borderTop:"1px solid var(--border)"},children:[(0,n.jsxs)("span",{className:"text-xs font-display flex items-center gap-1.5",style:{color:"var(--muted-foreground)"},children:[b.length," rows \xb7 ",g.length," cols",p&&(0,n.jsx)(u.A,{size:10,className:"animate-spin",style:{color:"var(--amber)"}})]}),L&&!m&&(0,n.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,n.jsx)(S.A,{size:12}),"Add row"]}),m&&(0,n.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 $=r(98500),D=r.n($),F=r(47834),P=r(35581),M=r(22356);function O({filePath:e}){let[t,r]=(0,s.useState)([]),[a,o]=(0,s.useState)(!0),{t:i}=(0,P.Y)();return((0,s.useEffect)(()=>{o(!0),(0,M.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,n.jsxs)("div",{className:"mt-12 pt-8 border-t border-border",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-6 text-muted-foreground",children:[(0,n.jsx)(F.A,{size:16,className:"text-[var(--amber)]/70"}),(0,n.jsx)("h3",{className:"text-sm font-semibold tracking-wider uppercase",children:i.common?.relatedFiles||"Related Files"}),(0,n.jsx)("span",{className:"text-xs bg-muted px-1.5 py-0.5 rounded-full font-mono",children:t.length})]}),(0,n.jsx)("div",{className:"grid gap-3",children:a?(0,n.jsx)("div",{className:"space-y-3",children:[1,2].map(e=>(0,n.jsx)("div",{className:"h-20 bg-muted/30 rounded-lg animate-pulse"},e))}):t.map(e=>(0,n.jsx)(D(),{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,n.jsxs)("div",{className:"flex items-start gap-3",children:[(0,n.jsx)("div",{className:"mt-1 p-1.5 rounded-md bg-muted group-hover:bg-[var(--amber)]/10 transition-colors",children:(0,n.jsx)(f.A,{size:14,className:"text-muted-foreground group-hover:text-[var(--amber)]"})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.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,n.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 I=r(77148),H=r(44406),W=r(37206),U=r(8434),V=r(12710),B=r(7915);let Y=(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,n.jsx)("div",{className:"h-full w-full min-h-[400px] rounded-lg border border-border bg-background flex items-center justify-center",children:(0,n.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground text-sm",children:[(0,n.jsx)("div",{className:"w-4 h-4 border-2 border-border border-t-foreground rounded-full animate-spin"}),(0,n.jsx)("span",{children:"Loading editor..."})]})})}),_=(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}),J=[{id:"wysiwyg",icon:(0,n.jsx)(v.A,{size:12}),label:"WYSIWYG"},{id:"split",icon:(0,n.jsx)(U.A,{size:12}),label:"Split"},{id:"source",icon:(0,n.jsx)(V.A,{size:12}),label:"Source"},{id:"preview",icon:(0,n.jsx)(B.A,{size:12}),label:"Preview"}];function K({value:e,onChange:t,viewMode:r,onViewModeChange:s}){return(0,n.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,n.jsx)("div",{className:"flex items-center gap-1 p-1 bg-muted rounded-lg self-start",children:J.map(e=>(0,n.jsxs)("button",{onClick:()=>s(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,n.jsxs)("div",{className:"rounded-xl overflow-hidden border border-border flex",style:{height:"calc(100vh - 160px)"},children:["wysiwyg"===r&&(0,n.jsx)("div",{className:"w-full h-full overflow-hidden",children:(0,n.jsx)(_,{value:e,onChange:t})}),"split"===r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"w-1/2 h-full overflow-auto border-r border-border",children:(0,n.jsx)(Y,{value:e,onChange:t,language:"markdown"})}),(0,n.jsx)("div",{className:"w-1/2 h-full overflow-auto bg-background",children:(0,n.jsx)("div",{className:"px-6 py-5",children:(0,n.jsx)(w.default,{content:e})})})]}),"source"===r&&(0,n.jsx)("div",{className:"w-full h-full overflow-auto",children:(0,n.jsx)(Y,{value:e,onChange:t,language:"markdown"})}),"preview"===r&&(0,n.jsx)("div",{className:"w-full h-full overflow-auto bg-background",children:(0,n.jsx)("div",{className:"px-6 py-5",children:(0,n.jsx)(w.default,{content:e})})})]})]})}var G=r(21362),Z=r(36306),X=r(91337);function q({content:e}){let{t}=(0,P.Y)(),{headings:r,minLevel:a}=(0,s.useMemo)(()=>{let t=function(e){let t=new Z.A,r=e.split("\n"),n=[],s=!1;for(let e of r){if(/^(`{3,}|~{3,})/.test(e)){s=!s;continue}if(s)continue;let r=e.match(/^(#{1,4})\s+(.+)/);if(r){let e=r[1].length,s=r[2].trim(),a=t.slug(s);n.push({id:a,text:s,level:e})}}return n}(e);return{headings:t,minLevel:t.length>0?Math.min(...t.map(e=>e.level)):1}},[e]),[o,i]=(0,s.useState)(""),[l,d]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=document.documentElement.style;return e.setProperty("--toc-width",l?"0px":"212px"),l?e.removeProperty("--toc-margin"):e.setProperty("--toc-margin","220px"),()=>{e.removeProperty("--toc-width"),e.removeProperty("--toc-margin")}},[l]);let c=(0,s.useRef)(null),u=(0,s.useRef)(null),m=(0,s.useRef)(new Map),x=(0,s.useCallback)(e=>{let t=m.current.get(e),r=u.current;if(!t||!r||!t.isConnected)return;let n=r.getBoundingClientRect(),s=t.getBoundingClientRect(),a=s.top<n.top+40,o=s.bottom>n.bottom-40;(a||o)&&t.scrollIntoView({block:"center",behavior:"auto"})},[]);return((0,s.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){i(t.target.id),x(t.target.id);break}},{rootMargin:"-58px 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,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:()=>d(e=>!e),className:"hidden xl:flex fixed z-10 top-[46px] 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*!l}px)`,background:"var(--background)",transition:"right 200ms ease-in-out"},title:l?t.view.tocExpand:t.view.tocCollapse,children:(0,n.jsx)(G.A,{size:11,className:"text-muted-foreground/60 transition-transform duration-200",style:{transform:l?"rotate(180deg)":"rotate(0deg)"}})}),(0,n.jsxs)("aside",{className:"hidden xl:flex flex-col fixed z-10 overflow-hidden",style:{top:46,height:"calc(100vh - 46px)",width:212,right:"var(--right-panel-width, 0px)",transform:l?"translateX(212px)":"translateX(0)",transition:"transform 200ms ease-in-out, right 200ms ease-out"},children:[(0,n.jsx)("div",{className:"flex items-center h-[46px] px-4 border-l border-b border-border",style:{background:"var(--background)"},children:(0,n.jsx)("p",{className:"text-2xs font-semibold uppercase tracking-wider text-muted-foreground/55 shrink-0",children:t.view.tocTitle})}),(0,n.jsx)("nav",{ref:u,"aria-label":t.view.tocTitle,className:"flex flex-col gap-0.5 overflow-y-auto min-h-0 flex-1 pt-3 pb-5 pl-2 pr-3 border-l border-border",style:{background:"var(--background)"},children:r.map((e,t)=>{let r=(e.level-a)*14,s=o===e.id,l=e.level>a;return(0,n.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 n=r.getBoundingClientRect().top+window.scrollY-58;window.scrollTo({top:n,behavior:"smooth"}),i(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",s&&"font-medium"),style:{paddingLeft:`${8+r}px`,paddingRight:"8px",borderLeft:"2px solid",borderLeftColor:s?"var(--amber)":l?"var(--border)":"transparent",marginLeft:l?"7px":"0",...s?{color:"var(--amber)",background:"var(--amber-dim)"}:{color:"var(--muted-foreground)"}},title:e.text,children:(0,n.jsx)("span",{className:"block truncate",suppressHydrationWarning:!0,children:e.text})},`${e.id}-${t}`)})})]})]})}let Q="findip-highlight",ee="findip-active";function et({containerRef:e,onClose:t}){let{t:r}=(0,P.Y)(),[a,o]=(0,s.useState)(""),[i,l]=(0,s.useState)(0),d=(0,s.useRef)(null),u=(0,s.useRef)([]);(0,s.useEffect)(()=>{d.current?.focus()},[]);let m=(0,s.useCallback)(()=>{for(let e of u.current){let t=e.parentNode;t&&(t.replaceChild(document.createTextNode(e.textContent||""),e),t.normalize())}u.current=[]},[]);(0,s.useEffect)(()=>{m(),l(0);let t=e.current;if(!t||!a.trim())return;let r=a.toLowerCase(),n=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode:e=>e.parentElement?.closest("[data-find-in-page]")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),s=[];for(;n.nextNode();)s.push(n.currentNode);let o=[];for(let e of s){let t=e.textContent||"",n=t.toLowerCase(),s=0,a=[];for(;;){let e=n.indexOf(r,s);if(-1===e)break;a.push(e),s=e+r.length}if(0===a.length)continue;let i=e.parentNode;if(!i)continue;let l=document.createDocumentFragment(),d=0;for(let e of a){e>d&&l.appendChild(document.createTextNode(t.slice(d,e)));let n=document.createElement("mark");n.className=Q,n.textContent=t.slice(e,e+r.length),l.appendChild(n),o.push(n),d=e+r.length}d<t.length&&l.appendChild(document.createTextNode(t.slice(d))),i.replaceChild(l,e)}return u.current=o,l(+(o.length>0)),o.length>0&&(o[0].classList.add(ee),o[0].scrollIntoView({block:"center",behavior:"smooth"})),()=>{}},[a,e,m]),(0,s.useEffect)(()=>()=>{m()},[m]);let x=u.current.length,p=(0,s.useCallback)(e=>{let t=u.current;if(0===t.length)return;for(let e of t)e.classList.remove(ee);let r=((e-1)%t.length+t.length)%t.length;t[r].classList.add(ee),t[r].scrollIntoView({block:"center",behavior:"smooth"}),l(r+1)},[]),f=(0,s.useCallback)(()=>p(i+1),[i,p]),h=(0,s.useCallback)(()=>p(i-1),[i,p]),g=(0,s.useCallback)(e=>{"Escape"===e.key?(e.preventDefault(),t()):"Enter"===e.key&&(e.preventDefault(),e.shiftKey?h():f())},[t,f,h]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{children:`
|
|
2
|
+
mark.${Q} {
|
|
3
|
+
background: rgba(250, 204, 21, 0.3);
|
|
4
|
+
color: inherit;
|
|
5
|
+
border-radius: 2px;
|
|
6
|
+
padding: 0;
|
|
7
|
+
}
|
|
8
|
+
mark.${ee} {
|
|
9
|
+
background: rgba(250, 204, 21, 0.7);
|
|
10
|
+
outline: 2px solid rgba(250, 204, 21, 0.5);
|
|
11
|
+
}
|
|
12
|
+
`}),(0,n.jsx)("div",{className:"sticky top-[98px] md:top-[46px] z-30 flex justify-end px-4 md:px-6 pointer-events-none","data-find-in-page":!0,children:(0,n.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,n.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,n.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(i,x):r.findInPage.noResults:""}),(0,n.jsx)("button",{onClick:h,disabled:0===x,className:"p-1 rounded text-muted-foreground hover:text-foreground disabled:opacity-30 transition-colors","aria-label":"Previous match",children:(0,n.jsx)(C.A,{size:14})}),(0,n.jsx)("button",{onClick:f,disabled:0===x,className:"p-1 rounded text-muted-foreground hover:text-foreground disabled:opacity-30 transition-colors","aria-label":"Next match",children:(0,n.jsx)(E.A,{size:14})}),(0,n.jsx)("button",{onClick:t,className:"p-1 rounded text-muted-foreground hover:text-foreground transition-colors","aria-label":"Close find",children:(0,n.jsx)(c.A,{size:14})})]})})]})}var er=r(46838),en=r(70620),es=r(67848),ea=r(33261),eo=r(41068),ei=r(4235),el=r(39498),ed=r(97631),ec=r(10377),eu=r(24332),em=r(92451),ex=r(94514);function ep({open:e,onClose:t,filePath:r,isDirectory:a,fileName:o}){let{t:i}=(0,P.Y)(),[l,d]=(0,s.useState)(a?"zip":"md"),[m,x]=(0,s.useState)("idle"),[p,h]=(0,s.useState)(""),b=(0,s.useRef)(null),v=(0,s.useCallback)(()=>{x("exporting"),h("");let e=new AbortController;b.current=e,fetch(`/api/export?path=${encodeURIComponent(r)}&format=${l}`,{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="?([^"]+)"?/),n=r?decodeURIComponent(r[1]):o,s=document.createElement("a");s.href=URL.createObjectURL(e),s.download=n,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(s.href),x("done"),ei.oR.success(i.export?.downloaded??"Downloaded")}).catch(e=>{"AbortError"!==e.name&&(x("error"),h(e.message??"Export failed"))}).finally(()=>{b.current=null})},[r,l,o,i]),j=(0,s.useCallback)(()=>{b.current&&(b.current.abort(),b.current=null),x("idle"),h("")},[]),w=(0,s.useCallback)(()=>{x("idle"),h("")},[]),y=(0,s.useCallback)(()=>{b.current&&b.current.abort(),b.current=null,x("idle"),h(""),t()},[t]);if(!e)return null;let N=a?[{value:"zip",label:i.export?.formatZipMd??"Markdown ZIP",desc:i.export?.formatZipMdDesc??"All files in original format",icon:(0,n.jsx)(eu.A,{size:14})},{value:"zip-html",label:i.export?.formatZipHtml??"HTML ZIP",desc:i.export?.formatZipHtmlDesc??"All files as webpages",icon:(0,n.jsx)(em.A,{size:14})}]:[{value:"md",label:i.export?.formatMd??"Markdown (.md)",desc:i.export?.formatMdDesc??"Original format, editable",icon:(0,n.jsx)(f.A,{size:14})},{value:"html",label:i.export?.formatHtml??"HTML (.html)",desc:i.export?.formatHtmlDesc??"Static webpage, shareable",icon:(0,n.jsx)(em.A,{size:14})}];return(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center modal-backdrop",onClick:"exporting"===m?void 0:y,children:(0,n.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,n.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(g.A,{size:15,className:"text-[var(--amber)]"}),(0,n.jsx)("h3",{id:"export-modal-title",className:"text-sm font-semibold",children:a?i.export?.exportSpace??"Export Space":i.export?.exportFile??"Export File"})]}),(0,n.jsx)("button",{onClick:y,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":i.export?.cancel??"Close",children:(0,n.jsx)(c.A,{size:14})})]}),(0,n.jsx)("div",{className:"px-5 py-4",children:"done"===m?(0,n.jsxs)("div",{className:"text-center py-6",children:[(0,n.jsx)("div",{className:"w-10 h-10 rounded-full bg-success/10 flex items-center justify-center mx-auto mb-3",children:(0,n.jsx)(ex.A,{size:20,className:"text-success"})}),(0,n.jsx)("p",{className:"text-sm font-medium",children:i.export?.done??"Export Complete"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:o})]}):"error"===m?(0,n.jsxs)("div",{className:"text-center py-6",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-error",children:i.export?.error??"Export failed"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:p})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-xs text-muted-foreground mb-3 truncate",title:r,children:r}),(0,n.jsx)("p",{className:"text-xs font-medium text-foreground mb-2",children:i.export?.chooseFormat??"Choose format"}),(0,n.jsx)("div",{className:"space-y-1.5",children:N.map(e=>(0,n.jsxs)("label",{className:`flex items-start gap-3 p-3 rounded-lg border cursor-pointer transition-all ${l===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,n.jsx)("input",{type:"radio",name:"export-format",value:e.value,checked:l===e.value,onChange:()=>!e.disabled&&d(e.value),disabled:e.disabled,className:"sr-only"}),(0,n.jsx)("span",{className:`mt-0.5 ${l===e.value?"text-[var(--amber)]":"text-muted-foreground"}`,children:e.icon}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-sm font-medium text-foreground",children:e.label}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground block mt-0.5",children:e.desc})]})]},e.value))})]})}),(0,n.jsx)("div",{className:"flex items-center justify-end gap-2 px-5 py-3 border-t border-border",children:"done"===m?(0,n.jsxs)(n.Fragment,{children:[(0,n.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:i.export?.downloadAgain??"Download Again"}),(0,n.jsx)("button",{onClick:y,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:i.export?.close??"Done"})]}):"error"===m?(0,n.jsxs)(n.Fragment,{children:[(0,n.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:i.export?.cancel??"Cancel"}),(0,n.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:i.export?.retry??"Retry"})]}):"exporting"===m?(0,n.jsxs)(n.Fragment,{children:[(0,n.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:i.export?.cancel??"Cancel"}),(0,n.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,n.jsx)(u.A,{size:12,className:"animate-spin"})," ",i.export?.exporting??"Exporting..."]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.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:i.export?.cancel??"Cancel"}),(0,n.jsxs)("button",{onClick:v,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,n.jsx)(g.A,{size:12})," ",i.export?.exportButton??"Export"]})]})})]})})}function ef({filePath:e,content:t,extension:r,saveAction:N,appendRowAction:k,initialEditing:C=!1,isDraft:E=!1,draftDirectories:A=[],createDraftAction:S}){let{t:z}=(0,P.Y)(),{isPinned:R,togglePin:T}=(0,ec.Z)(),$=R(e),[D,F]=(0,s.useState)(!1),M=(0,s.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1),[W,U]=(0,I.Un)("_raw",e,!1),[V,B]=(0,s.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),[J,G]=(0,s.useState)(!_&&(C||""===t)),[Z,Q]=(0,s.useState)(t),[ee,eu]=(0,s.useState)(t);(0,s.useEffect)(()=>{J||eu(t)},[t,J]);let[em,ex]=(0,s.useTransition)(),[ef,eh]=(0,s.useState)(null),[eg,eb]=(0,s.useState)(!1),[ev,ej]=(0,s.useState)("wysiwyg"),[ew,ey]=(0,s.useState)(!1),eN=(0,s.useRef)(null),[ek,eC]=(0,s.useState)(!1),eE=(0,s.useRef)(null),eA=(0,s.useRef)(null),[eS,ez]=(0,s.useState)(!1),[eR,eT]=(0,s.useState)(!1),[eL,e$]=(0,s.useState)(""),[,eD]=(0,s.useTransition)(),eF=e.split("/").pop()||"Untitled.md",[eP,eM]=(0,s.useState)(E),[eO,eI]=(0,s.useState)(""),[eH,eW]=(0,s.useState)(eF);(0,s.useEffect)(()=>{if(!ek)return;let e=e=>{eE.current&&!eE.current.contains(e.target)&&eA.current&&!eA.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 eU=(0,s.useCallback)(()=>{navigator.clipboard.writeText(e).catch(()=>{}),eC(!1)},[e]),eV=(0,s.useCallback)(()=>{eC(!1),e$(e.split("/").pop()??""),eT(!0)},[e]),eB=(0,s.useCallback)(()=>{let t=eL.trim();t&&t!==e.split("/").pop()?eD(async()=>{let r=await (0,es.f)(e,t);eT(!1),r.success&&r.newPath&&(Y.push(`/view/${(0,X.O0)(r.newPath)}`),Y.refresh(),window.dispatchEvent(new Event("mindos:files-changed")))}):eT(!1)},[eL,e,Y]),eY=(0,s.useCallback)(()=>{ez(!1);let t=e.split("/").pop()??e;ex(async()=>{let r=await (0,ea.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,eo.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_=!!M&&W,eJ=(0,s.useCallback)(()=>{U(e=>!e)},[U]),eK=(0,s.useCallback)(()=>{B(e=>!e)},[B]),eG=(0,er.YB)(e,r),eZ="md"===r&&V?(0,er.YB)(e,r,"graph"):void 0,eX=eZ||eG,eq="csv"===r,eQ=!J&&!!eX&&(!e_||!!eZ),e0=(0,s.useMemo)(()=>eX?eX.component?eX.component:eX.load?(0,s.lazy)(eX.load):null:null,[eX]),e1=(0,s.useCallback)(()=>{Q(ee),G(!0),eh(null),eb(!1)},[ee]),e5=(0,s.useCallback)(()=>{E?Y.push("/"):(G(!1),eh(null))},[E,Y]),e2=(0,s.useCallback)(()=>{let e=eH.trim();if(!e)return void eh("Please enter a file name");if(/[/\\:*?"<>|]/.test(e)||e.includes(".."))return void eh("File name contains invalid characters");if(!S)return void eh("Draft save is not available");let t=e.endsWith(".md")||e.endsWith(".csv")?e:`${e}.md`,r=eO?`${eO}/${t}`:t;eh(null),ex(async()=>{try{await S(r,Z),eu(Z),G(!1),eM(!1),eb(!0),setTimeout(()=>eb(!1),2500),Y.push(`/view/${(0,X.O0)(r)}`),Y.refresh()}catch(e){eh(e instanceof Error?e.message:"Failed to save")}})},[eH,S,eO,Z,Y]),e3=(0,s.useCallback)(()=>{if(eq){G(!1),eb(!0),setTimeout(()=>eb(!1),2500);return}E?eM(!0):(eh(null),ex(async()=>{try{await N(Z),eu(Z),G(!1),eb(!0),setTimeout(()=>eb(!1),2500)}catch(e){eh(e instanceof Error?e.message:"Failed to save")}}))},[eq,E,N,Z]),e4=(0,s.useCallback)(async e=>{await N(e),eu(e)},[N]);(0,s.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),J&&e3()),(e.metaKey||e.ctrlKey)&&"f"===e.key&&!J&&(e.preventDefault(),ey(!0)),"e"!==e.key||J||_||document.activeElement?.tagName!=="BODY"||e1(),"Escape"===e.key&&J&&e5()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[J,e3,e1,e5]);let[e6,e8]=(0,s.useState)(!1),[e7,e9]=(0,s.useState)([]),te=(0,s.useRef)(t),tt=(0,s.useRef)(!1),tr=(0,s.useRef)(null),tn=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!J&&tt.current&&t!==te.current&&""!==te.current){tt.current=!1;let e=(0,ed.m)(te.current,t),r=[],n=1;for(let t of e)"insert"===t.type?(r.push(n),n++):"equal"===t.type&&n++;r.length>0&&(e9(r),tr.current&&clearTimeout(tr.current),tr.current=setTimeout(()=>e9([]),6e3),setTimeout(()=>{let e=document.querySelector("[data-highlight-line]");e&&e.scrollIntoView({block:"center",behavior:"smooth"})},100))}te.current=t},[t,J]),(0,s.useEffect)(()=>{let e=null,t=()=>{J||(e&&clearTimeout(e),e=setTimeout(()=>{tt.current=!0,Y.refresh(),e8(!0),tn.current&&clearTimeout(tn.current),tn.current=setTimeout(()=>e8(!1),3e3)},300))};return window.addEventListener("mindos:files-changed",t),()=>{window.removeEventListener("mindos:files-changed",t),e&&clearTimeout(e)}},[J,Y]),(0,n.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,n.jsx)("div",{className:"sticky top-[52px] md:top-0 z-20 border-b border-border px-4 md:px-6 h-[46px] flex items-center",style:{background:"var(--background)"},children:(0,n.jsxs)("div",{className:"w-full min-w-0 flex items-center justify-between gap-3 h-full",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1 flex items-center gap-1.5",children:[(0,n.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,n.jsx)(o.A,{size:16})}),(0,n.jsx)(H.A,{filePath:e})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 md:gap-2 shrink-0",children:[e6&&!J&&(0,n.jsxs)("span",{className:"text-xs flex items-center gap-1.5 text-[var(--amber)] animate-in fade-in-0 duration-200",children:[(0,n.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--amber)]"}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"updated"})]}),eg&&(0,n.jsxs)("span",{className:"text-xs flex items-center gap-1.5",style:{color:"var(--success)"},children:[(0,n.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:"var(--success)"}}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"saved"})]}),ef&&(0,n.jsx)("span",{className:"text-xs text-error hidden sm:inline",children:ef}),eG&&!J&&!E&&!eZ&&!_&&(0,n.jsxs)("button",{onClick:eJ,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,n.jsx)(i.A,{size:13}):(0,n.jsx)(l.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:e_?eG.name:"Raw"})]}),!J&&!eQ&&!E&&!_&&(0,n.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,n.jsx)(d.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"Edit"})]}),J&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:e5,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,n.jsx)(c.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"Cancel"})]}),(0,n.jsxs)("button",{onClick:E&&eP?e2: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,n.jsx)(u.A,{size:13,className:"animate-spin"}):(0,n.jsx)(m.A,{size:13}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"Save"})]})]}),!E&&(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("button",{type:"button",onClick:()=>T(e),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",title:$?z.fileTree.removeFromFavorites:z.fileTree.pinToFavorites,children:(0,n.jsx)(x.A,{size:16,className:$?"fill-[var(--amber)] text-[var(--amber)]":""})}),(0,n.jsx)("button",{ref:eE,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,n.jsx)(p.A,{size:16})}),ek&&(0,n.jsxs)("div",{ref:eA,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&&!J&&!E&&(0,er.pl)("graph")&&(0,n.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:[V?(0,n.jsx)(f.A,{size:14,className:"shrink-0"}):(0,n.jsx)(h.A,{size:14,className:"shrink-0"}),V?z.view?.switchToDoc??"Document view":z.view?.switchToGraph??"Wiki Graph"]}),(0,n.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),F(!0)},children:[(0,n.jsx)(g.A,{size:14,className:"shrink-0"})," ",z.fileTree?.export??"Export"]}),(0,n.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,n.jsx)(b.A,{size:14,className:"shrink-0"})," ",z.view?.copyPath??z.fileTree?.copyPath??"Copy Path"]}),(0,n.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:eV,children:[(0,n.jsx)(v.A,{size:14,className:"shrink-0"})," ",z.view?.rename??"Rename"]}),(0,n.jsx)("div",{className:"my-1 border-t border-border/50"}),(0,n.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,n.jsx)(j.A,{size:14,className:"shrink-0"})," ",z.view?.delete??"Delete"]})]})]})]})]})}),(0,n.jsx)("div",{className:"flex-1 px-4 md:px-6 py-6 md:py-8",children:J?(0,n.jsxs)("div",{className:"content-width",children:[E&&eP&&(0,n.jsxs)("div",{className:"mb-3 rounded-lg border border-border bg-card p-3 flex flex-col gap-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-xs text-muted-foreground",children:z.view?.saveDirectory??"Directory"}),(0,n.jsx)("div",{className:"mt-1",children:(0,n.jsx)(en.A,{dirPaths:A,value:eO,onChange:eI,rootLabel:z.home?.rootLevel??"Root"})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-xs text-muted-foreground",children:z.view?.saveFileName??"File name"}),(0,n.jsx)("input",{value:eH,onChange:e=>eW(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e2()},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"})]})]}),eq?(0,n.jsx)(L,{content:Z,filePath:e,appendAction:k,saveAction:async e=>{await N(e),Q(e),eu(e)}}):(0,n.jsx)(K,{value:Z,onChange:Q,viewMode:ev,onViewModeChange:ej})]}):eQ&&e0?(0,n.jsxs)("div",{ref:eN,className:"content-width",children:[ew&&(0,n.jsx)(et,{containerRef:eN,onClose:()=>ey(!1)}),(0,n.jsx)(s.Suspense,{fallback:(0,n.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,n.jsx)(u.A,{size:20,className:"animate-spin text-muted-foreground"})}),children:(0,n.jsx)(e0,{filePath:e,content:ee,extension:r,saveAction:e4})}),(0,n.jsx)(O,{filePath:e})]}):(0,n.jsxs)("div",{ref:eN,className:"content-width",children:[ew&&(0,n.jsx)(et,{containerRef:eN,onClose:()=>ey(!1)}),"csv"===r?(0,n.jsx)(L,{content:ee,filePath:e}):"json"===r?(0,n.jsx)(y,{content:ee}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.default,{content:ee,highlightLines:e7,onDismissHighlight:()=>e9([]),emptyPlaceholder:z.view?.emptyNote}),(0,n.jsx)(q,{content:ee})]}),(0,n.jsx)(O,{filePath:e})]})}),eR&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/60 backdrop-blur-sm",children:(0,n.jsxs)("div",{className:"bg-card border border-border rounded-lg shadow-lg p-4 w-80",children:[(0,n.jsx)("h3",{className:"text-sm font-medium mb-2",children:"Rename"}),(0,n.jsx)("input",{autoFocus:!0,value:eL,onChange:e=>e$(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eB(),"Escape"===e.key&&eT(!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,n.jsxs)("div",{className:"flex justify-end gap-2 mt-3",children:[(0,n.jsx)("button",{onClick:()=>eT(!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,n.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,n.jsx)(el.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,n.jsx)(ep,{open:D,onClose:()=>F(!1),filePath:e,isDirectory:!1,fileName:e.split("/").pop()??e})]})}},50728:(e,t,r)=>{Promise.resolve().then(r.bind(r,50037)),Promise.resolve().then(r.bind(r,3109)),Promise.resolve().then(r.bind(r,1012))},63637:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>j});var n=r(95155),s=r(66804),a=r(32957),o=r(98076),i=r(96182),l=r(16535),d=r(12115),c=r(94514),u=r(67635),m=r(33210),x=r(7834),p=r(4235),f=r(7337);function h({code:e}){let[t,r]=(0,d.useState)(!1),s=(0,d.useCallback)(()=>{(0,x.l)(e).then(e=>{e&&(r(!0),setTimeout(()=>r(!1),2e3),p.oR.copy())})},[e]);return(0,n.jsx)("button",{onClick:s,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,n.jsx)(c.A,{size:13}):(0,n.jsx)(u.A,{size:13})})}function g(e){let{node:t,inline:r,ordered:n,depth:s,isHeader:a,...o}=e;return o}function b(e){let t=({children:t,...r})=>(0,n.jsx)(e,{...g(r),suppressHydrationWarning:!0,children:t});return t.displayName=e,t}let v={h1:b("h1"),h2:b("h2"),h3:b("h3"),h4:b("h4"),h5:b("h5"),h6:b("h6"),code:({children:e,node:t,...r})=>(0,n.jsx)("code",{...g(r),suppressHydrationWarning:!0,children:e}),pre({children:e,node:t,...r}){let s="";return e&&"object"==typeof e&&"props"in e&&(s=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,n.jsxs)("div",{className:"relative group",children:[(0,n.jsx)("pre",{...g(r),suppressHydrationWarning:!0,children:e}),(0,n.jsx)(h,{code:s})]})},li:({children:e,node:t,...r})=>(0,n.jsx)("li",{...g(r),suppressHydrationWarning:!0,children:e}),p:({children:e,node:t,...r})=>(0,n.jsx)("p",{...g(r),suppressHydrationWarning:!0,children:e}),span:({children:e,node:t,...r})=>(0,n.jsx)("span",{...g(r),suppressHydrationWarning:!0,children:e}),a({href:e,children:t,node:r,...s}){let a=e?.startsWith("http");return(0,n.jsx)("a",{href:e,target:a?"_blank":void 0,rel:a?"noopener noreferrer":void 0,...g(s),children:t})},img({src:e,alt:t,node:r,...s}){if(!e)return null;let a="string"==typeof e?(0,f.X)(e):e;return(0,n.jsx)("img",{src:a,alt:t??"",...g(s)})}};function j({content:e,highlightLines:t,onDismissHighlight:r,emptyPlaceholder:d}){let c=t&&t.length>0;return!e.trim()&&d?(0,n.jsx)("div",{className:"py-12 text-center text-sm text-muted-foreground/50",children:d}):(0,n.jsxs)("div",{children:[c&&(0,n.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,n.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--amber)] animate-pulse shrink-0"}),(0,n.jsxs)("span",{className:"font-display font-medium flex-1",children:[t.length," line",1!==t.length?"s":""," updated by AI"]}),r&&(0,n.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,n.jsx)(m.A,{size:12})})]}),(0,n.jsx)("div",{className:"prose max-w-none",children:(0,n.jsx)(s.oz,{remarkPlugins:[a.A],rehypePlugins:[l.A,o.A,i.A],components:v,children:e})})]})}},67848:(e,t,r)=>{"use strict";r.d(t,{f:()=>s});var n=r(9339);let s=(0,n.createServerReference)("60bbcbc4f7bca33ff0fa3311ee13b6502b104fddc1",n.callServer,void 0,n.findSourceMapURL,"renameFileAction")},70620:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(95155),s=r(12115),a=r(47650),o=r(21362),i=r(38798),l=r(94514),d=r(66088),c=r(91337);function u({dirPaths:e,value:t,onChange:r,rootLabel:u="Root"}){let[m,x]=(0,s.useState)(!1),[p,f]=(0,s.useState)(t),[h,g]=(0,s.useState)(null),b=(0,s.useRef)(null),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{f(t)},[t]);let j=(0,s.useCallback)(()=>{if(!b.current)return;let e=b.current.getBoundingClientRect(),t=window.innerHeight-e.bottom,r=e.top,n=t<208&&r>t;g({top:n?e.top:e.bottom,left:e.left,width:e.width,flipUp:n})},[]),w=(0,s.useRef)(0),y=(0,s.useCallback)(()=>{w.current||(w.current=requestAnimationFrame(()=>{w.current=0,j()}))},[j]);(0,s.useEffect)(()=>m?(j(),window.addEventListener("scroll",y,!0),window.addEventListener("resize",y),()=>{window.removeEventListener("scroll",y,!0),window.removeEventListener("resize",y),w.current&&(cancelAnimationFrame(w.current),w.current=0)}):void g(null),[m,j,y]);let N=(0,s.useCallback)(()=>x(!1),[]);(0,s.useEffect)(()=>{if(!m)return;let e=e=>{"Escape"===e.key&&(e.preventDefault(),N())},t=e=>{let t=e.target;b.current?.contains(t)||v.current?.contains(t)||N()};return document.addEventListener("keydown",e),document.addEventListener("mousedown",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("mousedown",t)}},[m,N]);let k=(0,s.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]),C=(0,s.useMemo)(()=>p?p.split("/"):[],[p]),E=e=>{if(e<0)f(""),r("");else{let t=C.slice(0,e+1).join("/");f(t),r(t)}},A=t?t.split("/").map(e=>(0,c.vr)(e)).join(" / "):"/ "+u,S=m&&h&&(0,a.createPortal)((0,n.jsxs)("div",{ref:v,className:"fixed z-50 rounded-lg border border-[var(--amber)] bg-card shadow-lg overflow-hidden flex flex-col",style:{left:h.left,width:h.width,maxHeight:200,...h.flipUp?{bottom:window.innerHeight-h.top+4}:{top:h.top+4}},children:[(0,n.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,n.jsxs)("button",{type:"button",onClick:()=>E(-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]}),C.map((e,t)=>(0,n.jsxs)("span",{className:"flex items-center gap-0.5 shrink-0",children:[(0,n.jsx)(o.A,{size:10,className:"text-muted-foreground/50"}),(0,n.jsx)("button",{type:"button",onClick:()=>E(t),className:`px-1.5 py-0.5 rounded transition-colors truncate max-w-[100px] ${t===C.length-1?"text-[var(--amber)] font-medium":"text-muted-foreground hover:text-foreground"}`,children:e})]},t))]}),k.length>0?(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:k.map(t=>{let s=t.split("/").pop()||t,a=e.some(e=>e.startsWith(t+"/"));return(0,n.jsxs)("button",{type:"button",onClick:()=>{f(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,n.jsx)(i.A,{size:12,className:"shrink-0 text-[var(--amber)]"}),(0,n.jsx)("span",{className:"flex-1 text-left truncate",children:s}),a&&(0,n.jsx)(o.A,{size:11,className:"shrink-0 text-muted-foreground/40"})]},t)})}):(0,n.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground/50 text-center",children:"—"}),(0,n.jsx)("button",{type:"button",onClick:N,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,n.jsx)(l.A,{size:12})})]}),document.body);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{ref:b,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,n.jsx)(i.A,{size:14,className:"shrink-0 text-[var(--amber)]"}),(0,n.jsx)("span",{className:"flex-1 truncate",children:A}),(0,n.jsx)(d.A,{size:14,className:`shrink-0 text-muted-foreground transition-transform duration-150 ${m?"rotate-180":""}`})]}),S]})}},77148:(e,t,r)=>{"use strict";r.d(t,{Un:()=>a});var n=r(12115);let s="mindos-renderer-state-change";function a(e,t,r){let a=`mindos-renderer:${e}:${t}`,o=(0,n.useRef)({key:a,raw:null,parsed:r});return o.current.key!==a&&(o.current={key:a,raw:null,parsed:r}),[(0,n.useSyncExternalStore)(e=>{let t=()=>e();return window.addEventListener("storage",t),window.addEventListener(s,t),()=>{window.removeEventListener("storage",t),window.removeEventListener(s,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,n.useCallback)(e=>{try{let t=(()=>{try{let e=localStorage.getItem(a);return null!==e?JSON.parse(e):r}catch{return r}})(),n="function"==typeof e?e(t):e,s=JSON.stringify(n);localStorage.setItem(a,s),o.current={key:a,raw:s,parsed:n}}catch{}window.dispatchEvent(new Event(s))},[a,r])]}},78520:(e,t,r)=>{"use strict";r.d(t,{D4:()=>o,FB:()=>s,W8:()=>i,g4:()=>l,jQ:()=>c});let n="mindos:organize-history";function s(){try{let e=localStorage.getItem(n);if(!e)return[];return JSON.parse(e)}catch{return[]}}function a(e){try{localStorage.setItem(n,JSON.stringify(e.slice(0,50)))}catch{}}function o(e){let t=s();t.unshift(e);let r=t.slice(0,50);return a(r),r}function i(e,t){let r=s(),n=r.findIndex(t=>t.id===e);return n>=0&&(r[n]={...r[n],...t},a(r)),r}function l(){try{localStorage.removeItem(n)}catch{}}let d=0;function c(){return`org-${Date.now()}-${++d}`}},82125:(e,t,r)=>{"use strict";r.d(t,{A:()=>s,C:()=>n});let n=new Set(["INSTRUCTION.md","README.md","CONFIG.json","CHANGELOG.md"]),s=new Set(["TODO.md"])},91337:(e,t,r)=>{"use strict";r.d(t,{IX:()=>l,KW:()=>i,O0:()=>o,cn:()=>a,vr:()=>d});var n=r(29722),s=r(622);function a(...e){return(0,s.QP)((0,n.$)(e))}function o(e){return e.split("/").map(encodeURIComponent).join("/")}function i(e,t){let r=Date.now()-e,n=Math.floor(r/6e4),s=Math.floor(r/36e5),a=Math.floor(r/864e5);return n<1?t.justNow:n<60?t.minutesAgo(n):s<24?t.hoursAgo(s):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}},97631:(e,t,r)=>{"use strict";function n(e,t){let r=e.split("\n"),n=t.split("\n"),s=r.length,a=n.length,o=Array.from({length:s+1},()=>Array(a+1).fill(0));for(let e=s-1;e>=0;e--)for(let t=a-1;t>=0;t--)o[e][t]=r[e]===n[t]?1+o[e+1][t+1]:Math.max(o[e+1][t],o[e][t+1]);let i=[],l=0,d=0;for(;l<s||d<a;){if(l<s&&d<a&&r[l]===n[d]){i.push({type:"equal",text:r[l]}),l+=1,d+=1;continue}if(d<a&&(l>=s||o[l][d+1]>=o[l+1][d])){i.push({type:"insert",text:n[d]}),d+=1;continue}i.push({type:"delete",text:r[l]}),l+=1}return i}function s(e,t=2){let r=new Set;e.forEach((n,s)=>{if("equal"!==n.type)for(let n=Math.max(0,s-t);n<=Math.min(e.length-1,s+t);n++)r.add(n)});let n=[],a=-1;for(let t=0;t<e.length;t++){if(r.has(t)){-1!==a&&(n.push({type:"gap",count:t-a}),a=-1),n.push(e[t]);continue}-1===a&&(a=t)}return -1!==a&&n.push({type:"gap",count:e.length-a}),n}r.d(t,{S:()=>s,m:()=>n})}},e=>{e.O(0,[4237,8409,9748,3013,8719,4925,5581,8252,8441,3794,7358],()=>e(e.s=50728)),_N_E=e.O()}]);
|