@geminilight/mindos-windows-arm64 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_standalone/.mindos-build-version +1 -1
- package/_standalone/__next/BUILD_ID +1 -1
- package/_standalone/__next/app-path-routes-manifest.json +25 -25
- package/_standalone/__next/build-manifest.json +3 -3
- package/_standalone/__next/prerender-manifest.json +3 -3
- package/_standalone/__next/react-loadable-manifest.json +4 -4
- package/_standalone/__next/server/app/.well-known/agent-card.json/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/_global-error.html +2 -2
- package/_standalone/__next/server/app/_global-error.rsc +1 -1
- package/_standalone/__next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/_standalone/__next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/_standalone/__next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/_standalone/__next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/_standalone/__next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/_standalone/__next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/_standalone/__next/server/app/_not-found/page.js +1 -1
- package/_standalone/__next/server/app/_not-found/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/agents/[agentKey]/page.js +1 -1
- package/_standalone/__next/server/app/agents/[agentKey]/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/agents/[agentKey]/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/agents/page.js +1 -1
- package/_standalone/__next/server/app/agents/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/a2a/agents/route.js +1 -1
- package/_standalone/__next/server/app/api/a2a/agents/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/a2a/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/a2a/delegations/route.js +1 -1
- package/_standalone/__next/server/app/api/a2a/delegations/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/a2a/delegations/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/a2a/discover/route.js +1 -1
- package/_standalone/__next/server/app/api/a2a/discover/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/a2a/discover/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/a2a/route.js +1 -1
- package/_standalone/__next/server/app/api/a2a/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/a2a/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/acp/config/route.js +1 -1
- package/_standalone/__next/server/app/api/acp/config/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/acp/config/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/acp/detect/route.js +1 -1
- package/_standalone/__next/server/app/api/acp/detect/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/acp/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/acp/install/route.js +1 -1
- package/_standalone/__next/server/app/api/acp/install/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/acp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/acp/registry/route.js +1 -1
- package/_standalone/__next/server/app/api/acp/registry/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/acp/registry/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/acp/session/route.js +1 -1
- package/_standalone/__next/server/app/api/acp/session/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/acp/session/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/agent-activity/route.js +1 -1
- package/_standalone/__next/server/app/api/agent-activity/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/agent-activity/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/agents/copy-skill/route.js +1 -1
- package/_standalone/__next/server/app/api/agents/copy-skill/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/agents/copy-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/agents/custom/detect/route.js +1 -1
- package/_standalone/__next/server/app/api/agents/custom/detect/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/agents/custom/detect/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/agents/custom/route.js +1 -1
- package/_standalone/__next/server/app/api/agents/custom/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/agents/custom/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/ask/route.js +1 -1
- package/_standalone/__next/server/app/api/ask/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/ask/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/ask-sessions/route.js +1 -1
- package/_standalone/__next/server/app/api/ask-sessions/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/ask-sessions/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/auth/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/backlinks/route.js +1 -1
- package/_standalone/__next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/backlinks/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/bootstrap/route.js +1 -1
- package/_standalone/__next/server/app/api/bootstrap/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/bootstrap/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/changes/route.js +1 -1
- package/_standalone/__next/server/app/api/changes/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/changes/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/channels/verify/route.js +1 -1
- package/_standalone/__next/server/app/api/channels/verify/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/channels/verify/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/connect/route.js +1 -1
- package/_standalone/__next/server/app/api/connect/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/connect/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/embedding/route.js +1 -1
- package/_standalone/__next/server/app/api/embedding/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/embedding/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/export/route.js +1 -1
- package/_standalone/__next/server/app/api/export/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/export/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/extract-docx/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/extract-pdf/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/file/import/route.js +1 -1
- package/_standalone/__next/server/app/api/file/import/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/file/import/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/file/raw/route.js +1 -1
- package/_standalone/__next/server/app/api/file/raw/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/file/raw/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/file/route.js +1 -1
- package/_standalone/__next/server/app/api/file/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/file/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/files/route.js +1 -1
- package/_standalone/__next/server/app/api/files/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/git/route.js +1 -1
- package/_standalone/__next/server/app/api/git/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/git/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/graph/route.js +1 -1
- package/_standalone/__next/server/app/api/graph/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/graph/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/health/route.js +1 -1
- package/_standalone/__next/server/app/api/health/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/activity/route.js +1 -1
- package/_standalone/__next/server/app/api/im/activity/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/activity/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/config/route.js +1 -1
- package/_standalone/__next/server/app/api/im/config/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/config/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/feishu/long-connection/event/route.js +1 -1
- package/_standalone/__next/server/app/api/im/feishu/long-connection/event/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/feishu/long-connection/event/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/feishu/long-connection/route.js +1 -1
- package/_standalone/__next/server/app/api/im/feishu/long-connection/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/feishu/long-connection/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/status/route.js +1 -1
- package/_standalone/__next/server/app/api/im/status/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/status/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/test/route.js +1 -1
- package/_standalone/__next/server/app/api/im/test/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/test/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/webhook/feishu/route.js +1 -1
- package/_standalone/__next/server/app/api/im/webhook/feishu/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/webhook/feishu/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/im/webhook-status/route.js +1 -1
- package/_standalone/__next/server/app/api/im/webhook-status/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/im/webhook-status/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/inbox/clip/route.js +1 -1
- package/_standalone/__next/server/app/api/inbox/clip/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/inbox/clip/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/inbox/route.js +1 -1
- package/_standalone/__next/server/app/api/inbox/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/inbox/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/init/route.js +1 -1
- package/_standalone/__next/server/app/api/init/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/lint/route.js +1 -1
- package/_standalone/__next/server/app/api/lint/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/lint/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/agents/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/agents/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/agents/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/direct-tools/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/direct-tools/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/direct-tools/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/install/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/install/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/install/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/install-skill/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/install-skill/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/install-skill/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/restart/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/restart/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/status/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/status/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/tools/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/tools/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/mcp/uninstall/route.js +1 -1
- package/_standalone/__next/server/app/api/mcp/uninstall/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/mcp/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/monitoring/route.js +1 -1
- package/_standalone/__next/server/app/api/monitoring/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/monitoring/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/obsidian/compat-report/route.js +1 -1
- package/_standalone/__next/server/app/api/obsidian/compat-report/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/obsidian/compat-report/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/obsidian/import/route.js +1 -1
- package/_standalone/__next/server/app/api/obsidian/import/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/obsidian/import/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/obsidian-plugins/settings/route.js +1 -1
- package/_standalone/__next/server/app/api/obsidian-plugins/settings/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/obsidian-plugins/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/recent-files/route.js +1 -1
- package/_standalone/__next/server/app/api/recent-files/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/recent-files/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/restart/route.js +1 -1
- package/_standalone/__next/server/app/api/restart/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/search/prewarm/route.js +1 -1
- package/_standalone/__next/server/app/api/search/prewarm/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/search/prewarm/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/search/route.js +1 -1
- package/_standalone/__next/server/app/api/search/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/settings/list-models/route.js +1 -1
- package/_standalone/__next/server/app/api/settings/list-models/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/settings/list-models/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/settings/reset-token/route.js +1 -1
- package/_standalone/__next/server/app/api/settings/reset-token/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/settings/reset-token/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/settings/route.js +1 -1
- package/_standalone/__next/server/app/api/settings/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/settings/test-key/route.js +1 -1
- package/_standalone/__next/server/app/api/settings/test-key/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/settings/test-key/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/setup/check-path/route.js +1 -1
- package/_standalone/__next/server/app/api/setup/check-path/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/setup/check-path/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/setup/check-port/route.js +1 -1
- package/_standalone/__next/server/app/api/setup/check-port/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/setup/check-port/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/setup/generate-token/route.js +1 -1
- package/_standalone/__next/server/app/api/setup/generate-token/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/setup/generate-token/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/setup/ls/route.js +1 -1
- package/_standalone/__next/server/app/api/setup/ls/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/setup/ls/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/setup/route.js +1 -1
- package/_standalone/__next/server/app/api/setup/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/setup/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/skills/route.js +1 -1
- package/_standalone/__next/server/app/api/skills/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/space-overview/route.js +1 -1
- package/_standalone/__next/server/app/api/space-overview/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/space-overview/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/sync/route.js +1 -1
- package/_standalone/__next/server/app/api/sync/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/sync/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/tree-version/route.js +1 -1
- package/_standalone/__next/server/app/api/tree-version/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/tree-version/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/uninstall/route.js +1 -1
- package/_standalone/__next/server/app/api/uninstall/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/uninstall/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/update/route.js +1 -1
- package/_standalone/__next/server/app/api/update/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/update-check/route.js +1 -1
- package/_standalone/__next/server/app/api/update-check/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/update-check/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/update-status/route.js +1 -1
- package/_standalone/__next/server/app/api/update-status/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/update-status/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/api/workflows/route.js +1 -1
- package/_standalone/__next/server/app/api/workflows/route.js.nft.json +1 -1
- package/_standalone/__next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/capture/history/page.js +1 -1
- package/_standalone/__next/server/app/capture/history/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/capture/history/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/capture/page.js +1 -1
- package/_standalone/__next/server/app/capture/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/capture/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/changelog/page.js +1 -1
- package/_standalone/__next/server/app/changelog/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/changes/page.js +1 -1
- package/_standalone/__next/server/app/changes/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/changes/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/echo/[segment]/page.js +1 -1
- package/_standalone/__next/server/app/echo/[segment]/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/echo/[segment]/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/echo/page.js +1 -1
- package/_standalone/__next/server/app/echo/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/echo/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/explore/page.js +1 -1
- package/_standalone/__next/server/app/explore/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/explore/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/help/page.js +1 -1
- package/_standalone/__next/server/app/help/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/help/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/inbox/history/page.js +1 -1
- package/_standalone/__next/server/app/inbox/history/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/inbox/history/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/login/page.js +1 -1
- package/_standalone/__next/server/app/login/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/login/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/page.js +1 -1
- package/_standalone/__next/server/app/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/settings/page.js +2 -2
- package/_standalone/__next/server/app/settings/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/setup/page.js +1 -1
- package/_standalone/__next/server/app/setup/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/todo/page.js +1 -1
- package/_standalone/__next/server/app/todo/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/todo/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/trash/page.js +2 -2
- package/_standalone/__next/server/app/trash/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/trash/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/view/[...path]/page.js +3 -3
- package/_standalone/__next/server/app/view/[...path]/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/view/[...path]/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app/wiki/page.js +1 -1
- package/_standalone/__next/server/app/wiki/page.js.nft.json +1 -1
- package/_standalone/__next/server/app/wiki/page_client-reference-manifest.js +1 -1
- package/_standalone/__next/server/app-paths-manifest.json +25 -25
- package/_standalone/__next/server/chunks/1976.js +3 -3
- package/_standalone/__next/server/chunks/{49.js → 3219.js} +5 -5
- package/_standalone/__next/server/chunks/3566.js +1 -1
- package/_standalone/__next/server/chunks/6602.js +37 -37
- package/_standalone/__next/server/chunks/6754.js +1 -1
- package/_standalone/__next/server/chunks/6965.js +3 -3
- package/_standalone/__next/server/chunks/7765.js +1 -1
- package/_standalone/__next/server/chunks/8028.js +1 -1
- package/_standalone/__next/server/chunks/{7295.js → 8461.js} +19 -19
- package/_standalone/__next/server/middleware-build-manifest.js +1 -1
- package/_standalone/__next/server/middleware-react-loadable-manifest.js +1 -1
- package/_standalone/__next/server/pages/500.html +2 -2
- package/_standalone/__next/server/server-reference-manifest.js +1 -1
- package/_standalone/__next/server/server-reference-manifest.json +1 -1
- package/_standalone/__next/static/chunks/{1430-a3447cf370715cad.js → 1430-c4ffa328888515c1.js} +1 -1
- package/{static-web/_next/static/chunks/2992-509ffe91c9d819fe.js → _standalone/__next/static/chunks/2461-a1073a0bd04c228a.js} +12 -12
- package/_standalone/__next/static/chunks/{862-ad4c9d6035101858.js → 47-41e1a06e6d389b69.js} +1 -1
- package/_standalone/__next/static/chunks/{5200-2447cea5eb41a922.js → 5200-6c82e5ce54a95b4b.js} +2 -2
- package/_standalone/__next/static/chunks/{6947.5f1325c9403c27b2.js → 6947.7e50e18da7dc4aef.js} +1 -1
- package/_standalone/__next/static/chunks/9216.d3339c27169b21bf.js +1 -0
- package/{static-web/_next/static/chunks/app/layout-14395cc1f39f1847.js → _standalone/__next/static/chunks/app/layout-5966cd317bbed698.js} +6 -6
- package/_standalone/__next/static/chunks/app/settings/{page-2786e9eb5103d6f3.js → page-c9f44b3447a41431.js} +1 -1
- package/_standalone/__next/static/chunks/app/trash/page-d87207a63591ee16.js +1 -0
- package/_standalone/__next/static/chunks/app/view/[...path]/page-1898f4ae4ab28db0.js +12 -0
- package/_standalone/__next/static/chunks/{webpack-44b6c35a50fd7205.js → webpack-75abef9cbb1ea912.js} +1 -1
- package/dist/server/handlers/mcp-agents.d.ts +1 -0
- package/dist/server/handlers/mcp-agents.d.ts.map +1 -1
- package/dist/server/handlers/mcp-agents.js +230 -7
- package/dist/server/handlers/mcp-agents.js.map +1 -1
- package/dist/server/http.d.ts +7 -4
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +2 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/mcp-agent-registry.d.ts +4 -0
- package/dist/server/mcp-agent-registry.d.ts.map +1 -0
- package/dist/server/mcp-agent-registry.js +266 -0
- package/dist/server/mcp-agent-registry.js.map +1 -0
- package/package.json +1 -1
- package/runtime-manifest.json +1 -1
- package/scripts/smoke-desktop-app.mjs +82 -8
- package/scripts/verify-desktop-runtime.mjs +2 -1
- package/static-web/.mindos-build-version +1 -1
- package/static-web/_next/static/chunks/{1430-a3447cf370715cad.js → 1430-c4ffa328888515c1.js} +1 -1
- package/{_standalone/__next/static/chunks/2992-509ffe91c9d819fe.js → static-web/_next/static/chunks/2461-a1073a0bd04c228a.js} +12 -12
- package/static-web/_next/static/chunks/{862-ad4c9d6035101858.js → 47-41e1a06e6d389b69.js} +1 -1
- package/static-web/_next/static/chunks/{5200-2447cea5eb41a922.js → 5200-6c82e5ce54a95b4b.js} +2 -2
- package/static-web/_next/static/chunks/{6947.5f1325c9403c27b2.js → 6947.7e50e18da7dc4aef.js} +1 -1
- package/static-web/_next/static/chunks/9216.d3339c27169b21bf.js +1 -0
- package/{_standalone/__next/static/chunks/app/layout-14395cc1f39f1847.js → static-web/_next/static/chunks/app/layout-5966cd317bbed698.js} +6 -6
- package/static-web/_next/static/chunks/app/settings/{page-2786e9eb5103d6f3.js → page-c9f44b3447a41431.js} +1 -1
- package/static-web/_next/static/chunks/app/trash/page-d87207a63591ee16.js +1 -0
- package/static-web/_next/static/chunks/app/view/[...path]/page-1898f4ae4ab28db0.js +12 -0
- package/static-web/_next/static/chunks/{webpack-44b6c35a50fd7205.js → webpack-75abef9cbb1ea912.js} +1 -1
- package/static-web/help/index.html +3 -3
- package/static-web/index.html +3 -3
- package/static-web/setup/index.html +3 -3
- package/static-web/static-web-manifest.json +1 -1
- package/static-web/wiki/index.html +3 -3
- package/_standalone/__next/static/chunks/32.c0cfe8b9737e00f0.js +0 -1
- package/_standalone/__next/static/chunks/app/trash/page-98300a315c5d021a.js +0 -1
- package/_standalone/__next/static/chunks/app/view/[...path]/page-44010b2aff77acd6.js +0 -12
- package/static-web/_next/static/chunks/32.c0cfe8b9737e00f0.js +0 -1
- package/static-web/_next/static/chunks/app/trash/page-98300a315c5d021a.js +0 -1
- package/static-web/_next/static/chunks/app/view/[...path]/page-44010b2aff77acd6.js +0 -12
- /package/_standalone/__next/static/{Zq7WEkb-0jkSRDtJcWLrD → J9M4pgRyRHH7Ofbxuuklh}/_buildManifest.js +0 -0
- /package/_standalone/__next/static/{Zq7WEkb-0jkSRDtJcWLrD → J9M4pgRyRHH7Ofbxuuklh}/_ssgManifest.js +0 -0
- /package/static-web/_next/static/{Zq7WEkb-0jkSRDtJcWLrD → J9M4pgRyRHH7Ofbxuuklh}/_buildManifest.js +0 -0
- /package/static-web/_next/static/{Zq7WEkb-0jkSRDtJcWLrD → J9M4pgRyRHH7Ofbxuuklh}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[862],{30862:(e,t,s)=>{s.d(t,{default:()=>tz});var r=s(66839),a=s(44223),n=s(19378),l=s(95333),o=s(96733),i=s(77932),d=s(82296),c=s(67885),m=s(71481),u=s(31606),x=s(21082),p=s(44361),g=s(52212),h=s(38688),b=s(72799),f=s(97786),v=s(56261),j=s(2073),y=s(65264),N=s(4373),k=s(78610),w=s(38325),S=s(76723),C=s(31082),A=s(40517),z=s(79455),T=s(69527),E=s(69604),R=s(74342),I=s(48892),P=s(87756);function M(e,t=[],s,r){let a=E.T_[e],n="zh"===r?a.nameZh:a.name,l=new Set(t.filter(e=>e&&e!==s).map(e=>e.trim().toLowerCase()));if(!l.has(n.trim().toLowerCase()))return n;let o=2;for(;l.has(`${n} ${o}`.toLowerCase());)o++;return`${n} ${o}`}function U({form:e,t,locale:s,layout:a="full"}){let n=E.T_[e.protocol],l="zh"===s?"名称":"Name",o="zh"===s?"协议":"Protocol",i="zh"===s?"可选,默认使用协议名称":"Optional, defaults to protocol name",d=e.isDuplicateName?"zh"===s?"名称已存在":"Name already exists":void 0;return(0,r.jsxs)("div",{className:"space-y-3",children:["compact"===a?(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(T.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(T.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i,autoFocus:!0})}),(0,r.jsx)(T.D0,{label:o,children:(0,r.jsx)(T.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?E.T_[e].nameZh:E.T_[e].name},e))})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(T.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i})}),(0,r.jsx)(T.D0,{label:o,children:(0,r.jsx)(T.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?E.T_[e].nameZh:E.T_[e].name},e))})})]}),(0,r.jsx)(T.D0,{label:"Base URL",children:(0,r.jsx)(T.pd,{value:e.baseUrl,onChange:t=>e.setBaseUrl(t.target.value),placeholder:n.fixedBaseUrl||"https://api.example.com/v1"})}),(0,r.jsx)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:["API Key ",(0,r.jsx)("span",{className:"text-muted-foreground/50 font-normal",children:"zh"===s?"(可选)":"(optional)"})]}),children:(0,r.jsx)(T.yA,{value:e.apiKey,onChange:e.setApiKey,placeholder:"sk-..."})}),(0,r.jsx)(T.D0,{label:"zh"===s?"模型":"Model",children:(0,r.jsx)(I.A,{value:e.model,onChange:e.setModel,placeholder:n.defaultModel,provider:e.protocol,apiKey:e.apiKey,baseUrl:e.baseUrl,supportsListModels:!!e.baseUrl.trim(),allowNoKey:!0,browseLabel:t.settings.ai.listModels,noModelsLabel:t.settings.ai.noModelsFound})})]})}var D=s(29696);function $({result:e,disabled:t,onTest:s,t:a}){let n="testing"===e.state,l="ok"===e.state,o="error"===e.state;return(0,r.jsxs)("button",{type:"button",disabled:t||n,onClick:s,className:`inline-flex items-center gap-1.5 px-3.5 py-1.5 text-sm font-medium rounded-lg transition-all duration-200 disabled:cursor-not-allowed ${l?"bg-success/10 text-success border border-success/20":o?"bg-destructive/8 text-destructive border border-destructive/20 hover:bg-destructive/12":"border border-border text-muted-foreground hover:text-foreground hover:border-foreground/20 disabled:opacity-40"}`,children:[n?(0,r.jsx)(p.A,{size:13,className:"animate-spin"}):l?(0,r.jsx)(S.A,{size:13}):o?(0,r.jsx)(x.A,{size:13}):(0,r.jsx)(D.A,{size:13}),n?a.settings.ai.testKeyTesting:l&&null!=e.latency?a.settings.ai.testKeyOk(e.latency):o?function(e,t){switch(t){case"auth_error":return e.settings.ai.testKeyAuthError;case"model_not_found":return e.settings.ai.testKeyModelNotFound;case"endpoint_error":return e.settings.ai.testKeyEndpointError;case"rate_limited":return e.settings.ai.testKeyRateLimited;case"network_error":return e.settings.ai.testKeyNetworkError;default:return e.settings.ai.testKeyUnknown}}(a,e.code):a.settings.ai.testKey]})}let F=[10,20,30,40,50,999];function L({value:e,onChange:t}){let s=F.includes(e),[n,l]=(0,a.useState)(!s);return(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)(T.l6,{value:n?"custom":String(e),onChange:e=>{let s=e.target.value;"custom"===s?l(!0):(l(!1),t(Number(s)))},className:"w-28",children:[(0,r.jsx)("option",{value:"10",children:"10"}),(0,r.jsx)("option",{value:"20",children:"20"}),(0,r.jsx)("option",{value:"30",children:"30"}),(0,r.jsx)("option",{value:"40",children:"40"}),(0,r.jsx)("option",{value:"50",children:"50"}),(0,r.jsx)("option",{value:"999",children:"Unlimited"}),(0,r.jsx)("option",{value:"custom",children:"Custom"})]}),n&&(0,r.jsx)("input",{type:"number",value:999===e?"":e,onChange:e=>{let s=parseInt(e.target.value,10);!isNaN(s)&&s>0&&t(Math.min(999,s))},placeholder:"1-999",min:1,max:999,autoFocus:!0,className:"w-20 px-2 py-1 rounded-md border border-border/60 bg-muted/50 text-sm text-foreground"})]})}function O({data:e,setData:t,updateAi:s,updateAgent:l,t:o}){let{locale:i}=(0,j.Y)(),d=e.envOverrides??{},c=e.ai.providers.find(t=>t.id===e.ai.activeProvider),m=c?E.T_[c.protocol]:null,[u,x]=(0,a.useState)({}),[p,g]=(0,a.useState)(!1),h=(0,a.useRef)(void 0),b=(0,a.useRef)(e.ai.activeProvider);(0,a.useEffect)(()=>{b.current!==e.ai.activeProvider&&(b.current=e.ai.activeProvider,x({}),h.current&&(clearTimeout(h.current),h.current=void 0))},[e.ai.activeProvider]),(0,a.useEffect)(()=>()=>{h.current&&clearTimeout(h.current)},[]),(0,a.useEffect)(()=>{let t=e.agent?.reconnectRetries??3;try{localStorage.setItem("mindos-reconnect-retries",String(t))}catch(e){console.warn("[AiTab] localStorage setItem reconnectRetries failed:",e)}},[e.agent?.reconnectRetries]);let f=(0,a.useCallback)(async()=>{if(!c)return;let e=c.id;x(t=>({...t,[e]:{state:"testing"}}));try{let t={provider:c.protocol};c.apiKey&&(t.apiKey=c.apiKey),c.model&&(t.model=c.model),c.baseUrl&&(t.baseUrl=c.baseUrl);let s=await fetch("/api/settings/test-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await s.json();r.ok?(x(t=>({...t,[e]:{state:"ok",latency:r.latency}})),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{x(t=>({...t,[e]:{state:"idle"}}))},8e3)):x(t=>({...t,[e]:{state:"error",error:r.error,code:r.code}}))}catch{x(t=>({...t,[e]:{state:"error",code:"network_error",error:"Network error"}}))}},[c]),v=(0,a.useCallback)(t=>{c&&("apiKey"in t&&x(e=>({...e,[c.id]:{state:"idle"}})),s({providers:e.ai.providers.map(e=>e.id===c.id?{...e,...t}:e)}))},[c,e.ai.providers,s]),y=c?(0,E.Ux)(c.protocol):void 0,w=!!y&&d[y],S=!!m?.apiKeyFallback,C=(0,a.useCallback)(()=>{if(!c)return;let t=E.T_[c.protocol];x(e=>({...e,[c.id]:{state:"idle"}})),s({providers:e.ai.providers.map(e=>e.id===c.id?{...e,apiKey:"",model:"",baseUrl:t?.fixedBaseUrl??""}:e)})},[c,e.ai.providers,s]),A=(0,a.useCallback)(()=>{if(!c)return;let t=e.ai.providers.filter(e=>e.id!==c.id);s({activeProvider:t.length>0?t[0].id:"",providers:t}),x(e=>{let t={...e};return delete t[c.id],t})},[c,e.ai.providers,s]),z=(0,a.useCallback)(t=>{let r={id:t.id||(0,P.mV)(),name:t.name,protocol:t.protocol,apiKey:t.apiKey,model:t.model,baseUrl:t.baseUrl};s({activeProvider:r.id,providers:[...e.ai.providers,r]}),g(!1)},[e.ai.providers,s]),M=c?.name??("zh"===i?"未选择":"No provider");return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:o.settings.ai.provider,description:M,children:[(0,r.jsx)(R.A,{value:e.ai.activeProvider,onChange:e=>{"skip"!==e&&s({activeProvider:e}),g(!1)},compact:!0,customProviders:e.ai.providers,onAdd:()=>{let t=E.T_.openai,s="zh"===i?t.nameZh:t.name,r=new Set(e.ai.providers.map(e=>e.name.toLowerCase())),a=s;if(r.has(a.toLowerCase())){let e=2;for(;r.has(`${s} (${e})`.toLowerCase());)e++;a=`${s} (${e})`}g(!0)}}),p&&(0,r.jsx)(B,{onSave:z,onCancel:()=>g(!1),t:o,existingNames:e.ai.providers.map(e=>e.name)},"new"),!p&&c&&(0,r.jsxs)("div",{className:"space-y-3 pt-3 border-t border-border",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(T.D0,{label:"zh"===i?"名称":"Name",children:(0,r.jsx)(T.pd,{value:c.name,onChange:e=>v({name:e.target.value}),placeholder:"zh"===i?"输入名称":"Enter name"})}),(0,r.jsx)(T.D0,{label:"zh"===i?"协议":"Protocol",children:(0,r.jsx)(T.l6,{value:c.protocol,onChange:e=>v({protocol:e.target.value}),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===i?E.T_[e].nameZh:E.T_[e].name},e))})})]}),(0,r.jsxs)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.settings.ai.apiKey," ",y&&(0,r.jsx)(T.Bt,{overridden:d[y]})]}),hint:m&&w?o.settings.ai.envFieldNote(y):m&&S?o.settings.ai.keyOptionalHint:void 0,children:[(0,r.jsx)(T.yA,{value:c.apiKey,onChange:e=>v({apiKey:e}),placeholder:"sk-..."}),m?.signupUrl&&!c.apiKey&&!w&&(0,r.jsxs)("a",{href:m.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,r.jsx)(N.A,{size:10}),S?"zh"===i?`下载 ${m.nameZh}`:`Download ${m.name}`:"zh"===i?`获取 ${m.nameZh} API Key`:`Get ${m.name} API Key`]})]}),(m?.supportsBaseUrl||c.baseUrl)&&(0,r.jsx)(T.D0,{label:"Base URL",children:(0,r.jsx)(T.pd,{value:c.baseUrl,onChange:e=>v({baseUrl:e.target.value}),placeholder:m?.fixedBaseUrl||(0,E.Ot)(c.protocol)||"https://api.openai.com/v1"})}),(0,r.jsx)(T.D0,{label:"zh"===i?"模型":"Model",children:(0,r.jsx)(I.A,{value:c.model,onChange:e=>v({model:e}),placeholder:m?.defaultModel??"",provider:c.protocol,apiKey:c.apiKey,envKey:!!w,baseUrl:c.baseUrl,supportsListModels:!!c.baseUrl?.trim()||!!m?.supportsListModels,allowNoKey:!!c.baseUrl?.trim(),browseLabel:o.settings.ai.listModels,noModelsLabel:o.settings.ai.noModelsFound})}),(0,r.jsx)(K,{provider:c.protocol,result:u[c.id]??{state:"idle"},hasKey:!!c.apiKey,hasEnv:!!w,hasConfig:!!(c.apiKey||c.model||c.baseUrl),onTest:f,onReset:C,onDelete:A,t:o})]})]}),(0,r.jsx)(G,{data:e,setData:t,t:o}),(0,r.jsx)(V,{data:e,setData:t,t:o}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(k.A,{size:15}),title:o.settings.agent.title,description:o.settings.agent.subtitle??"Configure how the AI agent operates",children:[(0,r.jsx)(T.pM,{label:o.settings.agent.maxSteps,hint:o.settings.agent.maxStepsHint,children:(0,r.jsx)(L,{value:e.agent?.maxSteps??20,onChange:e=>l({maxSteps:e})})}),(0,r.jsx)(T.pM,{label:o.settings.agent.contextStrategy,hint:o.settings.agent.contextStrategyHint,children:(0,r.jsxs)(T.l6,{value:e.agent?.contextStrategy??"auto",onChange:e=>l({contextStrategy:e.target.value}),className:"w-24",children:[(0,r.jsx)("option",{value:"auto",children:o.settings.agent.contextStrategyAuto}),(0,r.jsx)("option",{value:"off",children:o.settings.agent.contextStrategyOff})]})}),(0,r.jsx)(T.pM,{label:o.settings.agent.reconnectRetries,hint:o.settings.agent.reconnectRetriesHint,children:(0,r.jsxs)(T.l6,{value:String(e.agent?.reconnectRetries??3),onChange:e=>{let t=Number(e.target.value);l({reconnectRetries:t});try{localStorage.setItem("mindos-reconnect-retries",String(t))}catch(e){console.warn("[AiTab] localStorage setItem reconnectRetries failed:",e)}},className:"w-20",children:[(0,r.jsx)("option",{value:"0",children:"Off"}),(0,r.jsx)("option",{value:"1",children:"1"}),(0,r.jsx)("option",{value:"2",children:"2"}),(0,r.jsx)("option",{value:"3",children:"3"}),(0,r.jsx)("option",{value:"5",children:"5"}),(0,r.jsx)("option",{value:"10",children:"10"})]})}),m?.supportsThinking&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.pM,{label:o.settings.agent.thinking,hint:o.settings.agent.thinkingHint,children:(0,r.jsx)(T.lM,{checked:e.agent?.enableThinking??!1,onChange:()=>l({enableThinking:!e.agent?.enableThinking})})}),e.agent?.enableThinking&&(0,r.jsx)(T.D0,{label:o.settings.agent.thinkingBudget,hint:o.settings.agent.thinkingBudgetHint,children:(0,r.jsx)(T.pd,{type:"number",value:String(e.agent?.thinkingBudget??5e3),onChange:e=>{let t=parseInt(e.target.value,10);isNaN(t)||l({thinkingBudget:Math.max(1e3,Math.min(5e4,t))})},min:1e3,max:5e4,step:1e3})})]})]}),(0,r.jsx)(Y,{})]})}function K({provider:e,result:t,hasKey:s,hasEnv:n,hasConfig:l,onTest:o,onReset:i,onDelete:d,t:c}){let[m,x]=(0,a.useState)(null),p=(0,a.useRef)(void 0),h=!!E.T_[e]?.apiKeyFallback;(0,a.useEffect)(()=>()=>{p.current&&clearTimeout(p.current)},[]);let b=e=>{m===e?("reset"===e?i?.():d?.(),x(null),p.current&&clearTimeout(p.current)):(x(e),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>x(null),3e3))},{locale:f}=(0,j.Y)();return(0,r.jsx)("div",{className:"space-y-2 pt-2",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)($,{result:t,disabled:!(s||n||h),onTest:o,t:c}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[i&&l&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("reset"),onBlur:()=>{"reset"===m&&(x(null),p.current&&clearTimeout(p.current))},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${"reset"===m?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(g.A,{size:12}),"reset"===m?"zh"===f?"确认重置?":"Confirm?":"zh"===f?"重置":"Reset"]}),d&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("delete"),onBlur:()=>{"delete"===m&&(x(null),p.current&&clearTimeout(p.current))},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${"delete"===m?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(u.A,{size:12}),"delete"===m?"zh"===f?"确认删除?":"Confirm?":"zh"===f?"删除":"Delete"]})]})]})})}function B({initial:e,onSave:t,onCancel:s,onDelete:n,t:l,existingNames:o}){let{locale:i}=(0,j.Y)(),d=function({initial:e,onSave:t,locale:s,existingNames:r}){let n=(0,a.useMemo)(()=>e?.name??M(e?.protocol??"openai",r,e?.name,s),[e?.name,e?.protocol,r,s]),[l,o]=(0,a.useState)(n),[i,d]=(0,a.useState)(e?.protocol??"openai"),[c,m]=(0,a.useState)(e?.apiKey??""),[u,x]=(0,a.useState)(e?.model??""),[p,g]=(0,a.useState)(e?.baseUrl??""),[h,b]=(0,a.useState)({state:"idle"}),[f,v]=(0,a.useState)(!!e?.name),j=(0,a.useMemo)(()=>M(i,r,e?.name,s),[i,r,e?.name,s]);(0,a.useEffect)(()=>{f||o(j)},[j,f]);let y=(0,a.useCallback)(e=>{v(!0),o(e)},[]),N=(0,a.useCallback)(e=>{d(e),b({state:"idle"})},[]),k=l.trim()||j,w=!!(k&&r?.some(t=>t!==e?.name&&t.toLowerCase()===k.toLowerCase())),S=!!(p.trim()&&u.trim()&&!w),C="zh"===s?"接口地址和模型为必填":"Base URL and model are required",A="zh"===s?"名称已存在,请使用其他名称":"Name already exists, please use a different name",z=(0,a.useCallback)(async()=>{if(w)return void b({state:"error",error:A});if(!p.trim()||!u.trim())return void b({state:"error",error:C});b({state:"testing"});try{let t=await fetch("/api/settings/test-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?.id?{provider:e.id,apiKey:c,model:u,baseUrl:p}:{provider:i,apiKey:c,model:u,baseUrl:p,baseProviderId:i})}),s=await t.json();s.ok?b({state:"ok",latency:s.latency}):b({state:"error",error:s.error||"Test failed",code:s.code})}catch{b({state:"error",code:"network_error",error:"Network error"})}},[w,A,p,u,e?.id,c,i,C]),T=(0,a.useCallback)(()=>{w?b({state:"error",error:A}):p.trim()&&u.trim()?t({id:e?.id||(0,P.mV)(),name:k,protocol:i,apiKey:c,model:u.trim(),baseUrl:p.trim()}):b({state:"error",error:C})},[w,A,p,u,C,t,e?.id,k,i,c]);return{name:l,setName:y,protocol:i,setProtocol:N,apiKey:c,setApiKey:m,model:u,setModel:x,baseUrl:p,setBaseUrl:g,testResult:h,canSave:S,isDuplicateName:w,handleTest:z,handleSave:T}}({initial:e,onSave:t,locale:i,existingNames:o}),[c,m]=(0,a.useState)(!1),x=(0,a.useRef)(void 0);(0,a.useEffect)(()=>()=>{x.current&&clearTimeout(x.current)},[]);let p=e?.id?"zh"===i?"编辑 Provider":"Edit Provider":"zh"===i?"添加 Provider":"Add Provider",g=[];return d.name.trim()||g.push("zh"===i?"名称":"Name"),d.baseUrl.trim()||g.push("zh"===i?"接口地址":"Base URL"),d.model.trim()||g.push("zh"===i?"模型":"Model"),(0,r.jsxs)("div",{className:"mt-3 rounded-lg border border-border overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 border-b border-border",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:p}),(0,r.jsx)("button",{type:"button",onClick:s,className:"p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors","aria-label":"zh"===i?"关闭":"Close",children:(0,r.jsx)(b.A,{size:14})})]}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsx)(U,{form:d,t:l,locale:i,layout:"compact"}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-4",children:[(0,r.jsx)($,{result:d.testResult,disabled:!d.canSave,onTest:d.handleTest,t:l}),n&&e?.id&&(0,r.jsxs)("button",{type:"button",onClick:()=>{c?(n(),x.current&&clearTimeout(x.current)):(m(!0),x.current=setTimeout(()=>m(!1),3e3))},onBlur:()=>{m(!1),x.current&&clearTimeout(x.current)},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${c?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(u.A,{size:12}),c?"zh"===i?"确认删除?":"Confirm?":"zh"===i?"删除":"Delete"]}),(0,r.jsxs)("div",{className:"flex-1",children:[d.isDuplicateName&&(0,r.jsx)("span",{className:"text-2xs text-destructive pl-2",children:"zh"===i?"名称已存在":"Name already exists"}),!d.isDuplicateName&&!d.canSave&&g.length>0&&(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/60 pl-2",children:"zh"===i?`需要: ${g.join("、")}`:`Required: ${g.join(", ")}`})]}),(0,r.jsx)("button",{type:"button",onClick:s,className:"px-3 py-1.5 text-sm rounded-lg text-muted-foreground hover:text-foreground transition-colors",children:l.settings?.customProviders?.modal?.buttonCancel??"Cancel"}),(0,r.jsx)("button",{type:"button",onClick:d.handleSave,disabled:!d.canSave,className:"px-4 py-1.5 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] hover:bg-[var(--amber)]/90 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:"zh"===i?"保存":"Save"})]})]})]})}let _=[{label:"SiliconFlow",baseUrl:"https://api.siliconflow.cn/v1",model:"BAAI/bge-m3",badge:"free"},{label:"OpenAI",baseUrl:"https://api.openai.com/v1",model:"text-embedding-3-small",badge:null},{label:"DeepSeek",baseUrl:"https://api.deepseek.com/v1",model:"deepseek-embed",badge:null},{label:"Ollama",baseUrl:"http://localhost:11434/v1",model:"nomic-embed-text",badge:"local"}],H=[{id:"Xenova/bge-small-zh-v1.5",label:"BGE Small ZH (33MB)",desc:"Chinese + English"},{id:"Xenova/all-MiniLM-L6-v2",label:"MiniLM L6 (23MB)",desc:"English only"},{id:"Xenova/bge-small-en-v1.5",label:"BGE Small EN (33MB)",desc:"English only"}];function G({data:e,setData:t,t:s}){let{locale:n}=(0,j.Y)(),l=s.settings.embedding??{},o=e.embedding??{enabled:!1,provider:"local",baseUrl:"",apiKey:"",model:""},i=e.embeddingStatus??{enabled:!1,ready:!1,building:!1,docCount:0},d=o.provider||"local",[c,u]=(0,a.useState)(null),[x,h]=(0,a.useState)("idle"),[f,v]=(0,a.useState)(null);(0,a.useEffect)(()=>{o.enabled&&"local"===d&&(0,y.n)("/api/embedding").then(e=>u(e.downloaded)).catch(()=>u(!1))},[o.enabled,d]),(0,a.useEffect)(()=>{if("downloading"!==x)return;let e=setInterval(()=>{(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"status"})}).then(e=>{e.downloaded&&(u(!0),h("idle"),z.oR.success?.(l.modelReady??"Model downloaded")??(0,z.oR)(l.modelReady??"Model downloaded")),e.error&&(h("error"),v(e.error),z.oR.error?.(e.error)??(0,z.oR)(e.error))}).catch(()=>{})},3e3);return()=>clearInterval(e)},[x,l.modelReady]);let N=(0,a.useCallback)(()=>{h("starting"),v(null),(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"download",model:o.model||void 0})}).then(e=>{e.ok?h("downloading"):(h("error"),v(e.error??"Download request failed"))}).catch(e=>{h("error"),v(e instanceof Error?e.message:"Network error")})},[o.model]),k=(0,a.useCallback)(()=>{h("idle"),v(null)},[]);return(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(w.A,{size:15}),title:l.title??"Embedding Search",description:l.description??"Semantic search with vector embeddings.",children:[(0,r.jsx)(T.pM,{label:l.enable??"Enable embedding search",hint:l.enableHint,children:(0,r.jsx)(T.lM,{checked:o.enabled,onChange:()=>{t(e=>e?{...e,embedding:{...o,enabled:!o.enabled}}:e)}})}),o.enabled&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...o,provider:"local",model:o.model||"Xenova/bge-small-zh-v1.5"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"local"===d?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsxs)("span",{className:"font-medium",children:[l.providerLocal??"Local"," (",l.providerLocalFree??"Free",")"]}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:l.providerLocalDesc??"Runs on your machine"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...o,provider:"api",model:o.model||"BAAI/bge-m3",baseUrl:o.baseUrl||"https://api.siliconflow.cn/v1"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"api"===d?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:"font-medium",children:l.providerApi??"API"}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:l.providerApiDesc??"OpenAI, DeepSeek, Ollama, etc."})]})]}),"local"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.D0,{label:l.model??"Model",hint:l.modelHint,children:(0,r.jsx)("div",{className:"space-y-1.5",children:H.map(e=>(0,r.jsxs)("label",{className:`flex items-center gap-3 px-3 py-2 rounded-lg border cursor-pointer transition-colors ${o.model===e.id?"border-[var(--amber)] bg-[var(--amber)]/5":"border-border hover:bg-muted"}`,children:[(0,r.jsx)("input",{type:"radio",name:"local-model",checked:o.model===e.id,onChange:()=>t(t=>t?{...t,embedding:{...o,model:e.id}}:t),className:"accent-[var(--amber)]"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:e.label}),(0,r.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:e.desc})]})]},e.id))})}),!1===c&&"idle"===x&&(0,r.jsxs)("button",{type:"button",onClick:N,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 transition-opacity",children:[(0,r.jsx)(m.A,{size:14}),l.downloadModel??"Install Runtime & Download Model"]}),"starting"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin"}),(0,r.jsx)("span",{children:l.starting??"Starting download..."})]}),"downloading"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin"}),(0,r.jsx)("span",{children:l.downloading??"Downloading model..."})]}),"error"===x&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,r.jsx)(b.A,{size:14}),(0,r.jsx)("span",{children:f??"Download failed"})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:l.downloadFailedHint??"If install or download keeps failing, try API mode or set HF_ENDPOINT=https://hf-mirror.com"}),(0,r.jsxs)("button",{type:"button",onClick:k,className:"flex items-center gap-2 px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(g.A,{size:12}),l.retry??"Retry"]})]}),!0===c&&"idle"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(S.A,{size:12}),(0,r.jsx)("span",{children:l.modelReady??"Model ready"})]})]}),"api"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"grid grid-cols-2 gap-2",children:_.map(e=>{let s=o.baseUrl===e.baseUrl;return(0,r.jsxs)("button",{type:"button",onClick:()=>{t(t=>t?{...t,embedding:{...o,baseUrl:e.baseUrl,model:e.model}}:t)},className:`relative px-3 py-2 text-left text-sm rounded-lg border transition-colors ${s?"border-[var(--amber)] bg-[var(--amber)]/5":"border-border hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:`font-medium ${s?"text-[var(--amber)]":"text-foreground"}`,children:e.label}),e.badge&&(0,r.jsx)("span",{className:`ml-1.5 inline-flex items-center px-1.5 py-0.5 text-2xs rounded-full font-medium ${"free"===e.badge?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-blue-500/10 text-blue-600 dark:text-blue-400"}`,children:"free"===e.badge?"zh"===n?"免费":"Free":"zh"===n?"本地":"Local"}),(0,r.jsx)("span",{className:"block text-2xs text-muted-foreground mt-0.5 truncate",children:e.model})]},e.label)})}),!o.baseUrl&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"zh"===n?"推荐使用硅基流动 (SiliconFlow),注册即可免费使用嵌入模型。":"SiliconFlow recommended — free embedding models with registration."}),(0,r.jsx)(T.D0,{label:l.baseUrl??"Base URL",hint:l.baseUrlHint,children:(0,r.jsx)(T.pd,{value:o.baseUrl,onChange:e=>t(t=>t?{...t,embedding:{...o,baseUrl:e.target.value}}:t),placeholder:"https://api.siliconflow.cn/v1"})}),(0,r.jsx)(T.D0,{label:l.apiKey??"API Key",hint:o.baseUrl?.includes("localhost")||o.baseUrl?.includes("127.0.0.1")?l.apiKeyHintLocal??("zh"===n?"本地服务可留空":"Leave empty for local services"):l.apiKeyHint??("zh"===n?"在服务商网站获取 API Key":"Get your API key from the provider"),children:(0,r.jsx)(T.yA,{value:o.apiKey,onChange:e=>t(t=>t?{...t,embedding:{...o,apiKey:e}}:t),placeholder:"sk-..."})}),(0,r.jsx)(T.D0,{label:l.model??"Model",hint:l.modelName,children:(0,r.jsx)(T.pd,{value:o.model,onChange:e=>t(t=>t?{...t,embedding:{...o,model:e.target.value}}:t),placeholder:"BAAI/bge-m3"})})]}),(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground pt-1",children:i.building?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{size:12,className:"animate-spin"}),(0,r.jsx)("span",{children:l.indexBuilding??"Building embedding index..."})]}):i.ready?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{children:"function"==typeof l.indexReady?l.indexReady(i.docCount):`${i.docCount} documents indexed`})]}):(0,r.jsx)("span",{children:l.indexPending??"Index will be built on first search"})})]})]})}let J=[{id:"auto",labelKey:"providerAuto",descKey:"providerAutoDesc"},{id:"exa",labelKey:"providerExa",descKey:"providerExaDesc"},{id:"perplexity",labelKey:"providerPerplexity",descKey:"providerPerplexityDesc"},{id:"gemini",labelKey:"providerGemini",descKey:"providerGeminiDesc"}],W=[{key:"exaApiKey",labelKey:"exaApiKey",placeholder:"exa-..."},{key:"perplexityApiKey",labelKey:"perplexityApiKey",placeholder:"pplx-..."},{key:"geminiApiKey",labelKey:"geminiApiKey",placeholder:"AIza..."}];function V({data:e,setData:t,t:s}){let a=s.settings.webSearch??{},n=e.webSearch??{provider:"auto",exaApiKey:"",perplexityApiKey:"",geminiApiKey:""},l=n.provider||"auto";return(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(C.A,{size:15}),title:a.title??"Web Search",description:a.description??"Configure search providers.",children:[(0,r.jsx)("div",{className:"flex gap-2 flex-wrap",children:J.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{t(t=>t?{...t,webSearch:{...n,provider:e.id}}:t)},className:`px-2.5 py-1 text-xs rounded-md border transition-colors ${l===e.id?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:a[e.labelKey]??e.id},e.id))}),(()=>{let e=J.find(e=>e.id===l);if(!e)return null;let t=a[e.descKey];return t?(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t}):null})(),W.map(e=>(0,r.jsx)(T.D0,{label:a[e.labelKey]??e.key,hint:a.apiKeyHint,children:(0,r.jsx)(T.yA,{value:n[e.key]??"",onChange:s=>t(t=>t?{...t,webSearch:{...n,[e.key]:s}}:t),placeholder:e.placeholder})},e.key)),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:a.noKeysHint??"Works without API keys via Exa MCP (zero-config)."})]})}function Y(){let{t:e}=(0,j.Y)(),[t,s]=(0,a.useState)("panel");return(0,a.useEffect)(()=>{try{let e=localStorage.getItem("ask-mode");"popup"===e&&s("popup")}catch(e){console.warn("[AiTab] localStorage getItem ask-mode failed:",e)}},[]),(0,r.jsx)(T.L7,{icon:(0,r.jsx)(A.A,{size:15}),title:e.settings.askDisplayMode?.label??"Display Mode",description:e.settings.askDisplayMode?.hint??"Side panel stays docked on the right. Popup opens a floating dialog.",children:(0,r.jsxs)(T.l6,{value:t,onChange:e=>(e=>{s(e);try{localStorage.setItem("ask-mode",e)}catch(e){console.warn("[AiTab] localStorage setItem ask-mode failed:",e)}window.dispatchEvent(new StorageEvent("storage",{key:"ask-mode",newValue:e}))})(e.target.value),children:[(0,r.jsx)("option",{value:"panel",children:e.settings.askDisplayMode?.panel??"Side Panel"}),(0,r.jsx)("option",{value:"popup",children:e.settings.askDisplayMode?.popup??"Popup"})]})})}var q=s(38125),Z=s(25208),X=s(88283),Q=s(47533),ee=s(95156),et=s(21036),es=s(72615),er=s(98327);let ea=[{value:"lora",label:"Lora",category:"Serif",style:{fontFamily:"Lora, Georgia, serif"}},{value:"ibm-plex-sans",label:"IBM Plex Sans",category:"Sans",style:{fontFamily:"'IBM Plex Sans', sans-serif"}},{value:"inter",label:"Inter",category:"Sans",style:{fontFamily:"var(--font-inter), sans-serif"}},{value:"ibm-plex-mono",label:"IBM Plex Mono",category:"Mono",style:{fontFamily:"'IBM Plex Mono', monospace"}}];function en({icon:e,label:t,children:s}){return(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t})]}),s]})}function el({options:e,value:t,onChange:s}){return(0,r.jsx)("div",{className:"flex gap-2",children:e.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>s(e.value),className:`flex items-center gap-1.5 px-3.5 py-2 text-sm font-medium rounded-xl transition-all ${t===e.value?"bg-[var(--amber)] text-[var(--amber-foreground)] shadow-sm":"bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[e.icon,e.label]},e.value))})}function eo({font:e,setFont:t,fontSize:s,setFontSize:n,contentWidth:l,setContentWidth:o,dark:i,setDark:c,locale:m,setLocale:u,t:x}){let[p,g]=(0,a.useState)(!1),[h,b]=(0,a.useState)(()=>localStorage.getItem("theme")??"system"),[f,v]=(0,a.useState)(()=>localStorage.getItem("locale")??"system"),j=x.settings.appearance;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(d.A,{size:15}),title:j.preferencesTitle??"Preferences",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(q.A,{size:14}),label:j.colorTheme,children:(0,r.jsx)(el,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(A.A,{size:14})},{value:"dark",label:j.dark,icon:(0,r.jsx)(Z.A,{size:14})},{value:"light",label:j.light,icon:(0,r.jsx)(q.A,{size:14})}],value:h,onChange:e=>{b(e),localStorage.setItem("theme",e);let t="system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches:"dark"===e;c(t),document.documentElement.classList.toggle("dark",t)}})}),(0,r.jsx)(en,{icon:(0,r.jsx)(C.A,{size:14}),label:j.language,children:(0,r.jsx)(el,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(A.A,{size:14})},{value:"en",label:"EN"},{value:"zh",label:"中文"}],value:f,onChange:e=>{v(e),localStorage.setItem("locale",e);let t="system"===e?navigator.language.startsWith("zh")?"zh":"en":e;u(t),document.cookie=`locale=${t};path=/;max-age=31536000;SameSite=Lax`}})})]}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(X.A,{size:15}),title:j.readingTitle??"Reading",description:j.readingDesc??"Customize how your notes look",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(Q.A,{size:14}),label:j.readingFont,children:(0,r.jsx)("div",{className:"space-y-0.5",children:ea.map(s=>{let a=e===s.value;return(0,r.jsxs)("button",{type:"button",onClick:()=>t(s.value),className:`flex items-center gap-4 w-full px-3 py-2.5 rounded-lg transition-all text-left relative ${a?"bg-[var(--amber-subtle)]":"hover:bg-muted/50"}`,children:[a&&(0,r.jsx)("div",{className:"absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full bg-[var(--amber)]"}),(0,r.jsx)("span",{className:`text-xl font-medium w-10 text-center shrink-0 ${a?"text-foreground":"text-muted-foreground/60"}`,style:{fontFamily:s.style.fontFamily},children:"Aa"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("span",{className:`text-sm font-medium ${a?"text-foreground":"text-muted-foreground"}`,style:{fontFamily:s.style.fontFamily},children:s.label}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground/50",children:s.category})]}),(0,r.jsx)("p",{className:`text-sm truncate mt-0.5 ${a?"text-muted-foreground":"text-muted-foreground/40"}`,style:{fontFamily:s.style.fontFamily},children:j.fontPreview})]})]},s.value)})})}),(0,r.jsx)(en,{icon:(0,r.jsx)(ee.A,{size:14}),label:j.fontSize,children:(0,r.jsxs)("div",{className:"px-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",style:{fontSize:"11px"},children:"A"}),(0,r.jsx)("input",{type:"range",min:12,max:22,step:1,value:parseInt(s),onChange:e=>n(`${e.target.value}px`),className:"flex-1 h-1.5 rounded-full appearance-none bg-muted cursor-pointer accent-[var(--amber)] [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-[var(--amber)] [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-[var(--amber)] [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:shadow-sm [&::-moz-range-thumb]:cursor-pointer"}),(0,r.jsx)("span",{className:"text-base text-muted-foreground/60 shrink-0",children:"A"})]}),(0,r.jsx)("div",{className:"text-center mt-1.5",children:(0,r.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[parseInt(s),"px"]})}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed mt-2 px-1",style:{fontSize:s,fontFamily:ea.find(t=>t.value===e)?.style.fontFamily},children:j.fontSizePreview})]})}),(0,r.jsx)(en,{icon:(0,r.jsx)(et.A,{size:14}),label:j.contentWidth,children:(0,r.jsxs)("div",{className:"px-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",children:"▬"}),(0,r.jsx)("input",{type:"range",min:50,max:100,step:5,value:parseInt(l)||80,onChange:e=>o(`${e.target.value}%`),className:"flex-1 h-1.5 rounded-full appearance-none bg-muted cursor-pointer accent-[var(--amber)] [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-[var(--amber)] [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-[var(--amber)] [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:shadow-sm [&::-moz-range-thumb]:cursor-pointer"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",children:"▬▬▬"})]}),(0,r.jsx)("div",{className:"text-center mt-1.5",children:(0,r.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[parseInt(l)||80,"%"]})})]})})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground/40 px-0.5",children:j.browserNote}),(0,r.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>g(!p),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors",children:[p?(0,r.jsx)(es.A,{size:14}):(0,r.jsx)(er.A,{size:14}),x.settings.tabs.shortcuts]}),p&&(0,r.jsx)("div",{className:"mt-3 space-y-0.5",children:x.shortcuts.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center justify-between py-1.5 px-1",children:[(0,r.jsx)("span",{className:"text-sm text-foreground",children:e.description}),(0,r.jsx)("div",{className:"flex items-center gap-1",children:e.keys.map((e,t)=>(0,r.jsx)("kbd",{className:"px-1.5 py-0.5 text-2xs font-mono bg-muted border border-border rounded text-muted-foreground",children:e},t))})]},t))})]})]})}var ei=s(10500),ed=s(42973),ec=s(24336),em=s(46884),eu=s(34137),ex=s(84734),ep=s(46990);function eg(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(2)} GB`}var eh=s(84364),eb=s(65799);let ef=(0,eb.createServerReference)("003f1c217001dd6dd57c21cfbc6752ba83ec0a019a",eb.callServer,void 0,eb.findSourceMapURL,"scanExampleFilesAction"),ev=(0,eb.createServerReference)("0050ae20bc47821e2fafea8429e49e391277a5df92",eb.callServer,void 0,eb.findSourceMapURL,"cleanupExamplesAction");var ej=s(5038);let ey={checking:!1,available:null,isSelf:!1,suggestion:null};function eN({message:e,sub:t}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"text-center space-y-4 max-w-sm px-6",children:[(0,r.jsx)(p.A,{size:32,className:"animate-spin mx-auto text-[var(--amber)]"}),(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:e}),t&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t})]})})}function ek({m:e}){let[t,s]=(0,a.useState)(0),[n,l]=(0,a.useState)(0),[o,i]=(0,a.useState)(ey),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)(null),[x,g]=(0,a.useState)(void 0),b=(0,a.useRef)(void 0),f=(0,a.useRef)(void 0);(0,a.useEffect)(()=>{(0,y.n)("/api/settings").then(e=>{let t=e.port||3456;s(t),l(t)}).catch(()=>{})},[]),(0,a.useEffect)(()=>()=>{clearInterval(b.current),clearTimeout(f.current)},[]);let v=n!==t,j=n<1024||n>65535,N=o.checking||!1===o.available&&!o.isSelf,k=(0,a.useCallback)(async e=>{if(e<1024||e>65535)return void i({...ey,available:!1,invalid:!0});i({...ey,checking:!0});try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:e})});i({checking:!1,available:t.available,isSelf:t.isSelf??!1,suggestion:t.suggestion??null})}catch{i(ey)}},[]),w=async()=>{if(v&&!j&&!N&&!d){c(!0);try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})});if(!t.available&&!t.isSelf){i({checking:!1,available:!1,isSelf:!1,suggestion:t.suggestion??null}),c(!1),z.oR.error(e.portInUse(n));return}await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})}),u(e.portWebRestarting),g(e.portRedirecting);try{await (0,y.n)("/api/restart",{method:"POST"})}catch{}let s=`${window.location.protocol}//${window.location.hostname}:${n}`,r=Date.now()+3e4;b.current=setInterval(async()=>{if(Date.now()>r){clearInterval(b.current),u(null),c(!1),z.oR.error(e.portRestartTimeout);return}try{(await fetch(`${s}/api/health`,{signal:AbortSignal.timeout(2e3)})).ok&&(clearInterval(b.current),window.location.href=s)}catch{}},1500)}catch{c(!1),z.oR.error(e.portUpdateFailed)}}};return 0===t?null:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.L7,{icon:(0,r.jsx)(A.A,{size:15}),title:e.webPortLabel,description:e.webPortHint,children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:1024,max:65535,value:n,onChange:e=>{let t=parseInt(e.target.value,10)||n;l(t),i(ey),clearTimeout(f.current),t>=1024&&t<=65535&&(f.current=setTimeout(()=>k(t),500))},onBlur:()=>{clearTimeout(f.current),n>=1024&&n<=65535&&k(n)},className:"flex-1 px-2.5 py-1.5 text-sm rounded-lg border border-border bg-muted/30 text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring tabular-nums"}),(0,r.jsx)("button",{type:"button",onClick:w,disabled:!v||j||N||d,className:"shrink-0 px-4 py-1.5 rounded-lg text-xs font-medium transition-colors bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:d?e.portUpdating:e.portUpdateBtn})]}),o.checking&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:11,className:"animate-spin"})," ",e.portChecking]}),!o.checking&&!1===o.available&&!o.invalid&&(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-[var(--amber)]",children:[(0,r.jsx)(ej.A,{size:11})," ",e.portInUse(n)]}),null!==o.suggestion&&(0,r.jsx)("button",{type:"button",onClick:()=>{l(o.suggestion),i(ey),setTimeout(()=>k(o.suggestion),0)},className:"text-xs px-2 py-0.5 rounded border border-[var(--amber)] text-[var(--amber)] transition-colors hover:bg-[var(--amber-subtle)]",children:e.portSuggest(o.suggestion)})]}),!o.checking&&o.invalid&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-destructive",children:[(0,r.jsx)(ej.A,{size:11})," 1024 – 65535"]}),!o.checking&&!0===o.available&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-success",children:[(0,r.jsx)(h.A,{size:11})," ",o.isSelf?e.portSelf:e.portAvailable]})]})}),m&&(0,r.jsx)(eN,{message:m,sub:x})]})}function ew({data:e,setData:t,t:s}){let l=e.envOverrides??{},o=s.settings.knowledge,i=s.settings.appearance,[d,m]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-echo")),[x,h]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-workflows")),[b,f]=(0,a.useState)(()=>"true"===localStorage.getItem("show-hidden-files")),[v,j]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null);(0,a.useEffect)(()=>{ef().then(e=>j(e.files.length)).catch(e=>{console.warn("[KnowledgeTab] scanExampleFilesAction failed:",e)})},[]);let[A,E]=(0,a.useState)(null),[R,I]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(0,y.n)("/api/setup").then(e=>{let t=e.guideState;t&&(E(t.active),I(!!t.dismissed))}).catch(e=>{console.error("Failed to fetch guide state:",e)})},[]);let P=(0,a.useCallback)(()=>{let e=!R;I(e);let t={dismissed:e};e||(t.active=!0),(0,y.n)("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:t})}).then(()=>window.dispatchEvent(new Event("guide-state-updated"))).catch(t=>{console.error("Failed to update guide state:",t),I(!e)})},[R]),M=(0,a.useCallback)(()=>{(0,y.n)("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:{active:!0,dismissed:!1,walkthroughStep:0,walkthroughDismissed:!1}})}).then(()=>{E(!0),I(!1),window.dispatchEvent(new Event("guide-state-updated"))}).catch(e=>console.error("Failed to restart walkthrough:",e))},[]),U=(0,a.useSyncExternalStore)(()=>()=>{},()=>`${window.location.protocol}//${window.location.hostname}`,()=>"http://localhost"),[D,$]=(0,a.useState)(!1),[F,L]=(0,a.useState)(null),[O,K]=(0,a.useState)(!1),[B,_]=(0,a.useState)(!1),H=!!e.authToken,G=F??e.authToken??"";async function J(){$(!0);try{let e=await (0,y.n)("/api/settings/reset-token",{method:"POST"});L(e.token),t(t=>t?{...t,authToken:e.token}:t)}finally{$(!1)}}async function W(){t(e=>e?{...e,authToken:""}:e),L(null)}return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(ei.A,{size:15}),title:o.cardTitle??"Knowledge Base",description:o.mindRootHint,children:[(0,r.jsx)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.mindRoot," ",(0,r.jsx)(T.Bt,{overridden:l.MIND_ROOT})]}),hint:l.MIND_ROOT?o.envNote:o.mindRootHint,children:(0,r.jsx)(T.pd,{value:e.mindRoot,onChange:e=>t(t=>t?{...t,mindRoot:e.target.value}:t),placeholder:"/path/to/your/notes"})}),(0,r.jsx)(T.pM,{label:o.showHiddenFiles,hint:o.showHiddenFilesHint,children:(0,r.jsx)(T.lM,{checked:b,onChange:()=>{let e=!b;f(e),(0,eh.Fo)(e)}})}),null!==v&&v>0&&null===w&&(0,r.jsx)(T.pM,{label:o.cleanupExamples,hint:o.cleanupExamplesHint,children:(0,r.jsxs)("button",{onClick:()=>_(!0),disabled:N,title:N?s.hints.cleanupInProgress:void 0,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0 disabled:opacity-50",children:[N?(0,r.jsx)(p.A,{size:12,className:"animate-spin"}):(0,r.jsx)(u.A,{size:12}),o.cleanupExamplesButton,(0,r.jsx)("span",{className:"ml-1 tabular-nums text-2xs opacity-70",children:v})]})}),null!==w&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(S.A,{size:14}),o.cleanupExamplesDone(w)]})]}),(0,r.jsx)(ek,{m:s.settings?.mcp??{}}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(ed.A,{size:15}),title:o.securityTitle??"Security",children:[(0,r.jsx)(T.D0,{label:o.webPassword,hint:o.webPasswordHint,children:(0,r.jsx)(T.yA,{value:e.webPassword??"",onChange:e=>t(t=>t?{...t,webPassword:e}:t),placeholder:o.passwordPlaceholder??"Leave empty to disable"})}),(0,r.jsx)(T.pM,{label:o.allowNetworkAccess??"Allow LAN access",hint:o.allowNetworkAccessHint??"Bind the Web UI to 0.0.0.0 so other devices on your network can connect after restart.",children:(0,r.jsx)(T.lM,{checked:!0===e.allowNetworkAccess,onChange:()=>t(e=>e?{...e,allowNetworkAccess:!0!==e.allowNetworkAccess}:e)})}),(0,r.jsx)(T.D0,{label:o.authToken,hint:H?o.authTokenHint:o.authTokenNone,children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-lg min-h-[38px]",children:[(0,r.jsx)("code",{className:"flex-1 text-xs font-mono text-foreground break-all select-all",children:G||(0,r.jsx)("span",{className:"text-muted-foreground italic",children:o.tokenNotSet??"— not set —"})}),G&&(0,r.jsx)("button",{type:"button",onClick:function(){let t=F??e.authToken??"";t&&(0,ep.l)(t).then(e=>{e&&z.oR.copy()})},className:"shrink-0 p-1 rounded text-muted-foreground hover:text-foreground transition-colors",title:o.authTokenCopy,children:(0,r.jsx)(ec.A,{size:13})})]}),e.mcpPort&&(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:[o.authTokenMcpPort,": ",(0,r.jsx)("code",{className:"font-mono",children:e.mcpPort}),G&&(0,r.jsxs)(r.Fragment,{children:[" \xa0\xb7\xa0 ",o.mcpUrl??"MCP URL",": ",(0,r.jsx)("code",{className:"font-mono select-all",children:`${U}:${e.mcpPort}/mcp`})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:function(){K(!0)},disabled:D,title:D?s.hints.tokenResetInProgress:void 0,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[(0,r.jsx)(c.A,{size:14,className:D?"animate-spin":""}),o.authTokenReset]}),H&&(0,r.jsxs)("button",{type:"button",onClick:W,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-destructive hover:border-destructive/50 transition-colors",children:[(0,r.jsx)(u.A,{size:14}),o.authTokenClear]})]}),F&&(0,r.jsx)("p",{className:"text-xs text-[var(--amber-text)]",children:o.tokenGenerated})]})})]}),null!==A&&(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:s.guide?.title??"Getting Started",children:[(0,r.jsx)(T.pM,{label:s.guide?.showGuide??"Show getting started guide",children:(0,r.jsx)(T.lM,{checked:!R,onChange:()=>P()})}),(0,r.jsxs)("button",{onClick:M,className:"flex items-center gap-1.5 mt-2 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(g.A,{size:14}),o.restartWalkthrough??"Restart walkthrough"]})]}),(0,r.jsx)(T.L7,{icon:(0,r.jsx)(em.A,{size:15}),title:i.labsTitle??"Labs",description:i.labsDesc??"Experimental features that are still in development.",children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(eS,{label:i.labsEcho??"Echo",description:i.labsEchoDesc??"Reflective journaling powered by your notes.",checked:d,onChange:e=>{m(e),localStorage.setItem("mindos:labs-echo",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}}),(0,r.jsx)(eS,{label:i.labsWorkflows??"Flows",description:i.labsWorkflowsDesc??"Visual workflow automation for agents.",checked:x,onChange:e=>{h(e),localStorage.setItem("mindos:labs-workflows",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}})]})}),(0,r.jsx)(eC,{k:o}),(0,r.jsx)(ex.TM,{open:O,title:o.authTokenReset??"Regenerate Token",message:o.authTokenResetConfirm,confirmLabel:o.authTokenReset??"Regenerate",cancelLabel:o.cancel??"Cancel",onConfirm:()=>{K(!1),J()},onCancel:()=>K(!1)}),(0,r.jsx)(ex.TM,{open:B,title:o.cleanupExamples??"Cleanup Examples",message:null!==v?o.cleanupExamplesConfirm(v):"",confirmLabel:o.cleanupExamplesButton??"Clean up",cancelLabel:o.cancel??"Cancel",variant:"destructive",onConfirm:async()=>{_(!1),k(!0);let e=await ev();k(!1),e.success&&(C(e.deleted),j(0))},onCancel:()=>_(!1)})]})}function eS({label:e,description:t,checked:s,onChange:a}){return(0,r.jsxs)("label",{className:"flex items-center gap-3 cursor-pointer group",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground block",children:e}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:t})]}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":s,onClick:()=>a(!s),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 ${s?"bg-[var(--amber)]":"bg-muted-foreground/20"}`,children:(0,r.jsx)("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform ${s?"translate-x-4":"translate-x-0"}`})})]})}function eC({k:e}){let[t,s]=(0,a.useState)(!1),[n,l]=(0,a.useState)(null),[o,i]=(0,a.useState)(!1),d=(0,a.useCallback)(async()=>{i(!0);try{let e=await (0,y.n)("/api/monitoring",{timeout:5e3});l(e)}catch{}i(!1)},[]),c=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(!t){c.current=!1;return}c.current||(d(),c.current=!0);let e=setInterval(d,1e4);return()=>clearInterval(e)},[t,d]),(0,r.jsxs)("div",{className:"border-t border-border pt-5",children:[(0,r.jsxs)("button",{onClick:()=>s(e=>!e),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors w-full",children:[t?(0,r.jsx)(es.A,{size:14}):(0,r.jsx)(er.A,{size:14}),(0,r.jsx)(eu.A,{size:12}),e.monitoringTitle??"System Monitoring",o&&(0,r.jsx)(p.A,{size:10,className:"animate-spin ml-1"})]}),t&&n&&(0,r.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-x-6 gap-y-2 text-xs",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorHeap??"Heap"}),(0,r.jsxs)("span",{className:"ml-2 tabular-nums",children:[eg(n.system.memory.heapUsed)," / ",eg(n.system.memory.heapTotal)]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorRss??"RSS"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:eg(n.system.memory.rss)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorUptime??"Uptime"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let s=Math.floor(t/60);if(s<60)return`${s}m ${t%60}s`;let r=Math.floor(s/60);if(r<24)return`${r}h ${s%60}m`;let a=Math.floor(r/24);return`${a}d ${r%24}h`}(n.system.uptimeMs)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorNode??"Node"}),(0,r.jsx)("span",{className:"ml-2",children:n.system.nodeVersion})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorRequests??"Requests"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.agentRequests})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorToolCalls??"Tool Calls"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.toolExecutions})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorTokens??"Tokens"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:(n.application.totalTokens.input+n.application.totalTokens.output).toLocaleString()})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorFiles??"Files"}),(0,r.jsxs)("span",{className:"ml-2 tabular-nums",children:[n.knowledgeBase.fileCount," (",eg(n.knowledgeBase.totalSizeBytes),")"]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:"MCP"}),(0,r.jsx)("span",{className:"ml-2",children:n.mcp.running?e.monitorMcpRunning?.(n.mcp.port)??`Running :${n.mcp.port}`:e.monitorMcpStopped??"Stopped"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorErrors??"Errors"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.errors})]})]}),t&&!n&&!o&&(0,r.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:e.monitoringFailed??"Failed to load monitoring data"})]})}var eA=s(75579),ez=s(19777),eT=s(98480),eE=s(9986),eR=s(55798),eI=s(20677),eP=s(73601),eM=s(27636),eU=s(2408);let eD=(0,s(93738).default)(()=>Promise.all([s.e(8225),s.e(206),s.e(2303)]).then(s.bind(s,32303)),{loadableGenerated:{webpack:()=>[32303]},ssr:!1});function e$({skill:e,expanded:t,onExpand:s,onToggle:a,onDelete:n,onEditStart:l,onEditSave:o,onEditCancel:i,editing:d,editContent:c,setEditContent:m,editError:g,saving:h,fullContent:b,loadingContent:f,loadErrors:v,m:j}){return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>s(e.name),children:[t?(0,r.jsx)(es.A,{size:12}):(0,r.jsx)(er.A,{size:12}),(0,r.jsx)("span",{className:"text-xs font-medium flex-1",children:e.name}),(0,r.jsx)("span",{className:`text-2xs px-1.5 py-0.5 rounded ${"builtin"===e.source?"bg-muted text-muted-foreground":"bg-[var(--amber-subtle)] text-[var(--amber-text)]"}`,children:"builtin"===e.source?j?.skillBuiltin??"Built-in":j?.skillUser??"Custom"}),(0,r.jsx)(T.lM,{size:"sm",checked:e.enabled,onClick:t=>{t.stopPropagation(),a(e.name,!e.enabled)}})]}),t&&(0,r.jsxs)("div",{className:"px-3 py-2 border-t border-border text-xs space-y-2 bg-muted/20",children:[(0,r.jsx)("p",{className:"text-muted-foreground",children:e.description||"No description"}),(0,r.jsx)("p",{className:"text-muted-foreground font-mono text-2xs",children:e.path}),f===e.name?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),(0,r.jsx)("span",{className:"text-2xs",children:"Loading..."})]}):b[e.name]?(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-2xs text-muted-foreground font-medium",children:j?.skillContent??"Content"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.editable&&d!==e.name&&(0,r.jsxs)("button",{onClick:()=>l(e.name),className:"flex items-center gap-1 text-2xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(eU.A,{size:10}),j?.editSkill??"Edit"]}),e.editable&&(0,r.jsxs)("button",{onClick:()=>n(e.name),className:"flex items-center gap-1 text-2xs text-destructive hover:underline",children:[(0,r.jsx)(u.A,{size:10}),j?.deleteSkill??"Delete"]})]})]}),d===e.name?(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("textarea",{value:c,onChange:e=>m(e.target.value),rows:Math.min(20,(c.match(/\n/g)||[]).length+3),className:"w-full px-2.5 py-1.5 text-xs rounded-md border border-border bg-background text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y font-mono"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:()=>o(e.name),disabled:h,className:"flex items-center gap-1 px-2.5 py-1 text-xs rounded-md disabled:opacity-40 disabled:cursor-not-allowed transition-colors bg-[var(--amber)] text-[var(--amber-foreground)]",children:[h&&(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),j?.saveSkill??"Save"]}),(0,r.jsx)("button",{onClick:i,className:"px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground transition-colors",children:j?.cancelSkill??"Cancel"})]}),g&&(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),g]})]}):(0,r.jsx)("div",{className:"w-full rounded-md border border-border bg-background/50 max-h-[300px] overflow-y-auto px-2.5 py-1.5 text-xs [&_.prose]:max-w-none [&_.prose]:text-xs [&_h1]:text-sm [&_h2]:text-xs [&_h3]:text-xs [&_pre]:text-2xs [&_code]:text-2xs",children:(0,r.jsx)(eD,{content:function(e){if(!e.startsWith("---"))return e;let t=e.indexOf("\n---",3);return -1===t?e:e.slice(t+4).replace(/^\n+/,"")}(b[e.name])})})]}):v[e.name]?(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),v[e.name]]}):null]})]})}let eF=e=>`---
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[47],{60047:(e,t,s)=>{s.d(t,{default:()=>tz});var r=s(66839),a=s(44223),n=s(19378),l=s(95333),o=s(96733),i=s(77932),d=s(82296),c=s(67885),m=s(71481),u=s(31606),x=s(21082),p=s(44361),g=s(52212),h=s(38688),b=s(72799),f=s(97786),v=s(56261),j=s(2073),y=s(65264),N=s(4373),k=s(78610),w=s(38325),S=s(76723),C=s(31082),A=s(40517),z=s(79455),T=s(69527),E=s(69604),R=s(74342),I=s(48892),P=s(87756);function M(e,t=[],s,r){let a=E.T_[e],n="zh"===r?a.nameZh:a.name,l=new Set(t.filter(e=>e&&e!==s).map(e=>e.trim().toLowerCase()));if(!l.has(n.trim().toLowerCase()))return n;let o=2;for(;l.has(`${n} ${o}`.toLowerCase());)o++;return`${n} ${o}`}function U({form:e,t,locale:s,layout:a="full"}){let n=E.T_[e.protocol],l="zh"===s?"名称":"Name",o="zh"===s?"协议":"Protocol",i="zh"===s?"可选,默认使用协议名称":"Optional, defaults to protocol name",d=e.isDuplicateName?"zh"===s?"名称已存在":"Name already exists":void 0;return(0,r.jsxs)("div",{className:"space-y-3",children:["compact"===a?(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(T.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(T.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i,autoFocus:!0})}),(0,r.jsx)(T.D0,{label:o,children:(0,r.jsx)(T.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?E.T_[e].nameZh:E.T_[e].name},e))})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.D0,{label:l,hint:d,hintError:e.isDuplicateName,children:(0,r.jsx)(T.pd,{value:e.name,onChange:t=>e.setName(t.target.value),placeholder:i})}),(0,r.jsx)(T.D0,{label:o,children:(0,r.jsx)(T.l6,{value:e.protocol,onChange:t=>e.setProtocol(t.target.value),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===s?E.T_[e].nameZh:E.T_[e].name},e))})})]}),(0,r.jsx)(T.D0,{label:"Base URL",children:(0,r.jsx)(T.pd,{value:e.baseUrl,onChange:t=>e.setBaseUrl(t.target.value),placeholder:n.fixedBaseUrl||"https://api.example.com/v1"})}),(0,r.jsx)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:["API Key ",(0,r.jsx)("span",{className:"text-muted-foreground/50 font-normal",children:"zh"===s?"(可选)":"(optional)"})]}),children:(0,r.jsx)(T.yA,{value:e.apiKey,onChange:e.setApiKey,placeholder:"sk-..."})}),(0,r.jsx)(T.D0,{label:"zh"===s?"模型":"Model",children:(0,r.jsx)(I.A,{value:e.model,onChange:e.setModel,placeholder:n.defaultModel,provider:e.protocol,apiKey:e.apiKey,baseUrl:e.baseUrl,supportsListModels:!!e.baseUrl.trim(),allowNoKey:!0,browseLabel:t.settings.ai.listModels,noModelsLabel:t.settings.ai.noModelsFound})})]})}var D=s(29696);function $({result:e,disabled:t,onTest:s,t:a}){let n="testing"===e.state,l="ok"===e.state,o="error"===e.state;return(0,r.jsxs)("button",{type:"button",disabled:t||n,onClick:s,className:`inline-flex items-center gap-1.5 px-3.5 py-1.5 text-sm font-medium rounded-lg transition-all duration-200 disabled:cursor-not-allowed ${l?"bg-success/10 text-success border border-success/20":o?"bg-destructive/8 text-destructive border border-destructive/20 hover:bg-destructive/12":"border border-border text-muted-foreground hover:text-foreground hover:border-foreground/20 disabled:opacity-40"}`,children:[n?(0,r.jsx)(p.A,{size:13,className:"animate-spin"}):l?(0,r.jsx)(S.A,{size:13}):o?(0,r.jsx)(x.A,{size:13}):(0,r.jsx)(D.A,{size:13}),n?a.settings.ai.testKeyTesting:l&&null!=e.latency?a.settings.ai.testKeyOk(e.latency):o?function(e,t){switch(t){case"auth_error":return e.settings.ai.testKeyAuthError;case"model_not_found":return e.settings.ai.testKeyModelNotFound;case"endpoint_error":return e.settings.ai.testKeyEndpointError;case"rate_limited":return e.settings.ai.testKeyRateLimited;case"network_error":return e.settings.ai.testKeyNetworkError;default:return e.settings.ai.testKeyUnknown}}(a,e.code):a.settings.ai.testKey]})}let F=[10,20,30,40,50,999];function L({value:e,onChange:t}){let s=F.includes(e),[n,l]=(0,a.useState)(!s);return(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)(T.l6,{value:n?"custom":String(e),onChange:e=>{let s=e.target.value;"custom"===s?l(!0):(l(!1),t(Number(s)))},className:"w-28",children:[(0,r.jsx)("option",{value:"10",children:"10"}),(0,r.jsx)("option",{value:"20",children:"20"}),(0,r.jsx)("option",{value:"30",children:"30"}),(0,r.jsx)("option",{value:"40",children:"40"}),(0,r.jsx)("option",{value:"50",children:"50"}),(0,r.jsx)("option",{value:"999",children:"Unlimited"}),(0,r.jsx)("option",{value:"custom",children:"Custom"})]}),n&&(0,r.jsx)("input",{type:"number",value:999===e?"":e,onChange:e=>{let s=parseInt(e.target.value,10);!isNaN(s)&&s>0&&t(Math.min(999,s))},placeholder:"1-999",min:1,max:999,autoFocus:!0,className:"w-20 px-2 py-1 rounded-md border border-border/60 bg-muted/50 text-sm text-foreground"})]})}function O({data:e,setData:t,updateAi:s,updateAgent:l,t:o}){let{locale:i}=(0,j.Y)(),d=e.envOverrides??{},c=e.ai.providers.find(t=>t.id===e.ai.activeProvider),m=c?E.T_[c.protocol]:null,[u,x]=(0,a.useState)({}),[p,g]=(0,a.useState)(!1),h=(0,a.useRef)(void 0),b=(0,a.useRef)(e.ai.activeProvider);(0,a.useEffect)(()=>{b.current!==e.ai.activeProvider&&(b.current=e.ai.activeProvider,x({}),h.current&&(clearTimeout(h.current),h.current=void 0))},[e.ai.activeProvider]),(0,a.useEffect)(()=>()=>{h.current&&clearTimeout(h.current)},[]),(0,a.useEffect)(()=>{let t=e.agent?.reconnectRetries??3;try{localStorage.setItem("mindos-reconnect-retries",String(t))}catch(e){console.warn("[AiTab] localStorage setItem reconnectRetries failed:",e)}},[e.agent?.reconnectRetries]);let f=(0,a.useCallback)(async()=>{if(!c)return;let e=c.id;x(t=>({...t,[e]:{state:"testing"}}));try{let t={provider:c.protocol};c.apiKey&&(t.apiKey=c.apiKey),c.model&&(t.model=c.model),c.baseUrl&&(t.baseUrl=c.baseUrl);let s=await fetch("/api/settings/test-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await s.json();r.ok?(x(t=>({...t,[e]:{state:"ok",latency:r.latency}})),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{x(t=>({...t,[e]:{state:"idle"}}))},8e3)):x(t=>({...t,[e]:{state:"error",error:r.error,code:r.code}}))}catch{x(t=>({...t,[e]:{state:"error",code:"network_error",error:"Network error"}}))}},[c]),v=(0,a.useCallback)(t=>{c&&("apiKey"in t&&x(e=>({...e,[c.id]:{state:"idle"}})),s({providers:e.ai.providers.map(e=>e.id===c.id?{...e,...t}:e)}))},[c,e.ai.providers,s]),y=c?(0,E.Ux)(c.protocol):void 0,w=!!y&&d[y],S=!!m?.apiKeyFallback,C=(0,a.useCallback)(()=>{if(!c)return;let t=E.T_[c.protocol];x(e=>({...e,[c.id]:{state:"idle"}})),s({providers:e.ai.providers.map(e=>e.id===c.id?{...e,apiKey:"",model:"",baseUrl:t?.fixedBaseUrl??""}:e)})},[c,e.ai.providers,s]),A=(0,a.useCallback)(()=>{if(!c)return;let t=e.ai.providers.filter(e=>e.id!==c.id);s({activeProvider:t.length>0?t[0].id:"",providers:t}),x(e=>{let t={...e};return delete t[c.id],t})},[c,e.ai.providers,s]),z=(0,a.useCallback)(t=>{let r={id:t.id||(0,P.mV)(),name:t.name,protocol:t.protocol,apiKey:t.apiKey,model:t.model,baseUrl:t.baseUrl};s({activeProvider:r.id,providers:[...e.ai.providers,r]}),g(!1)},[e.ai.providers,s]),M=c?.name??("zh"===i?"未选择":"No provider");return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:o.settings.ai.provider,description:M,children:[(0,r.jsx)(R.A,{value:e.ai.activeProvider,onChange:e=>{"skip"!==e&&s({activeProvider:e}),g(!1)},compact:!0,customProviders:e.ai.providers,onAdd:()=>{let t=E.T_.openai,s="zh"===i?t.nameZh:t.name,r=new Set(e.ai.providers.map(e=>e.name.toLowerCase())),a=s;if(r.has(a.toLowerCase())){let e=2;for(;r.has(`${s} (${e})`.toLowerCase());)e++;a=`${s} (${e})`}g(!0)}}),p&&(0,r.jsx)(B,{onSave:z,onCancel:()=>g(!1),t:o,existingNames:e.ai.providers.map(e=>e.name)},"new"),!p&&c&&(0,r.jsxs)("div",{className:"space-y-3 pt-3 border-t border-border",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(T.D0,{label:"zh"===i?"名称":"Name",children:(0,r.jsx)(T.pd,{value:c.name,onChange:e=>v({name:e.target.value}),placeholder:"zh"===i?"输入名称":"Enter name"})}),(0,r.jsx)(T.D0,{label:"zh"===i?"协议":"Protocol",children:(0,r.jsx)(T.l6,{value:c.protocol,onChange:e=>v({protocol:e.target.value}),children:E.jt.map(e=>(0,r.jsx)("option",{value:e,children:"zh"===i?E.T_[e].nameZh:E.T_[e].name},e))})})]}),(0,r.jsxs)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.settings.ai.apiKey," ",y&&(0,r.jsx)(T.Bt,{overridden:d[y]})]}),hint:m&&w?o.settings.ai.envFieldNote(y):m&&S?o.settings.ai.keyOptionalHint:void 0,children:[(0,r.jsx)(T.yA,{value:c.apiKey,onChange:e=>v({apiKey:e}),placeholder:"sk-..."}),m?.signupUrl&&!c.apiKey&&!w&&(0,r.jsxs)("a",{href:m.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,r.jsx)(N.A,{size:10}),S?"zh"===i?`下载 ${m.nameZh}`:`Download ${m.name}`:"zh"===i?`获取 ${m.nameZh} API Key`:`Get ${m.name} API Key`]})]}),(m?.supportsBaseUrl||c.baseUrl)&&(0,r.jsx)(T.D0,{label:"Base URL",children:(0,r.jsx)(T.pd,{value:c.baseUrl,onChange:e=>v({baseUrl:e.target.value}),placeholder:m?.fixedBaseUrl||(0,E.Ot)(c.protocol)||"https://api.openai.com/v1"})}),(0,r.jsx)(T.D0,{label:"zh"===i?"模型":"Model",children:(0,r.jsx)(I.A,{value:c.model,onChange:e=>v({model:e}),placeholder:m?.defaultModel??"",provider:c.protocol,apiKey:c.apiKey,envKey:!!w,baseUrl:c.baseUrl,supportsListModels:!!c.baseUrl?.trim()||!!m?.supportsListModels,allowNoKey:!!c.baseUrl?.trim(),browseLabel:o.settings.ai.listModels,noModelsLabel:o.settings.ai.noModelsFound})}),(0,r.jsx)(K,{provider:c.protocol,result:u[c.id]??{state:"idle"},hasKey:!!c.apiKey,hasEnv:!!w,hasConfig:!!(c.apiKey||c.model||c.baseUrl),onTest:f,onReset:C,onDelete:A,t:o})]})]}),(0,r.jsx)(G,{data:e,setData:t,t:o}),(0,r.jsx)(V,{data:e,setData:t,t:o}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(k.A,{size:15}),title:o.settings.agent.title,description:o.settings.agent.subtitle??"Configure how the AI agent operates",children:[(0,r.jsx)(T.pM,{label:o.settings.agent.maxSteps,hint:o.settings.agent.maxStepsHint,children:(0,r.jsx)(L,{value:e.agent?.maxSteps??20,onChange:e=>l({maxSteps:e})})}),(0,r.jsx)(T.pM,{label:o.settings.agent.contextStrategy,hint:o.settings.agent.contextStrategyHint,children:(0,r.jsxs)(T.l6,{value:e.agent?.contextStrategy??"auto",onChange:e=>l({contextStrategy:e.target.value}),className:"w-24",children:[(0,r.jsx)("option",{value:"auto",children:o.settings.agent.contextStrategyAuto}),(0,r.jsx)("option",{value:"off",children:o.settings.agent.contextStrategyOff})]})}),(0,r.jsx)(T.pM,{label:o.settings.agent.reconnectRetries,hint:o.settings.agent.reconnectRetriesHint,children:(0,r.jsxs)(T.l6,{value:String(e.agent?.reconnectRetries??3),onChange:e=>{let t=Number(e.target.value);l({reconnectRetries:t});try{localStorage.setItem("mindos-reconnect-retries",String(t))}catch(e){console.warn("[AiTab] localStorage setItem reconnectRetries failed:",e)}},className:"w-20",children:[(0,r.jsx)("option",{value:"0",children:"Off"}),(0,r.jsx)("option",{value:"1",children:"1"}),(0,r.jsx)("option",{value:"2",children:"2"}),(0,r.jsx)("option",{value:"3",children:"3"}),(0,r.jsx)("option",{value:"5",children:"5"}),(0,r.jsx)("option",{value:"10",children:"10"})]})}),m?.supportsThinking&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.pM,{label:o.settings.agent.thinking,hint:o.settings.agent.thinkingHint,children:(0,r.jsx)(T.lM,{checked:e.agent?.enableThinking??!1,onChange:()=>l({enableThinking:!e.agent?.enableThinking})})}),e.agent?.enableThinking&&(0,r.jsx)(T.D0,{label:o.settings.agent.thinkingBudget,hint:o.settings.agent.thinkingBudgetHint,children:(0,r.jsx)(T.pd,{type:"number",value:String(e.agent?.thinkingBudget??5e3),onChange:e=>{let t=parseInt(e.target.value,10);isNaN(t)||l({thinkingBudget:Math.max(1e3,Math.min(5e4,t))})},min:1e3,max:5e4,step:1e3})})]})]}),(0,r.jsx)(Y,{})]})}function K({provider:e,result:t,hasKey:s,hasEnv:n,hasConfig:l,onTest:o,onReset:i,onDelete:d,t:c}){let[m,x]=(0,a.useState)(null),p=(0,a.useRef)(void 0),h=!!E.T_[e]?.apiKeyFallback;(0,a.useEffect)(()=>()=>{p.current&&clearTimeout(p.current)},[]);let b=e=>{m===e?("reset"===e?i?.():d?.(),x(null),p.current&&clearTimeout(p.current)):(x(e),p.current&&clearTimeout(p.current),p.current=setTimeout(()=>x(null),3e3))},{locale:f}=(0,j.Y)();return(0,r.jsx)("div",{className:"space-y-2 pt-2",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)($,{result:t,disabled:!(s||n||h),onTest:o,t:c}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[i&&l&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("reset"),onBlur:()=>{"reset"===m&&(x(null),p.current&&clearTimeout(p.current))},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${"reset"===m?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(g.A,{size:12}),"reset"===m?"zh"===f?"确认重置?":"Confirm?":"zh"===f?"重置":"Reset"]}),d&&(0,r.jsxs)("button",{type:"button",onClick:()=>b("delete"),onBlur:()=>{"delete"===m&&(x(null),p.current&&clearTimeout(p.current))},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${"delete"===m?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(u.A,{size:12}),"delete"===m?"zh"===f?"确认删除?":"Confirm?":"zh"===f?"删除":"Delete"]})]})]})})}function B({initial:e,onSave:t,onCancel:s,onDelete:n,t:l,existingNames:o}){let{locale:i}=(0,j.Y)(),d=function({initial:e,onSave:t,locale:s,existingNames:r}){let n=(0,a.useMemo)(()=>e?.name??M(e?.protocol??"openai",r,e?.name,s),[e?.name,e?.protocol,r,s]),[l,o]=(0,a.useState)(n),[i,d]=(0,a.useState)(e?.protocol??"openai"),[c,m]=(0,a.useState)(e?.apiKey??""),[u,x]=(0,a.useState)(e?.model??""),[p,g]=(0,a.useState)(e?.baseUrl??""),[h,b]=(0,a.useState)({state:"idle"}),[f,v]=(0,a.useState)(!!e?.name),j=(0,a.useMemo)(()=>M(i,r,e?.name,s),[i,r,e?.name,s]);(0,a.useEffect)(()=>{f||o(j)},[j,f]);let y=(0,a.useCallback)(e=>{v(!0),o(e)},[]),N=(0,a.useCallback)(e=>{d(e),b({state:"idle"})},[]),k=l.trim()||j,w=!!(k&&r?.some(t=>t!==e?.name&&t.toLowerCase()===k.toLowerCase())),S=!!(p.trim()&&u.trim()&&!w),C="zh"===s?"接口地址和模型为必填":"Base URL and model are required",A="zh"===s?"名称已存在,请使用其他名称":"Name already exists, please use a different name",z=(0,a.useCallback)(async()=>{if(w)return void b({state:"error",error:A});if(!p.trim()||!u.trim())return void b({state:"error",error:C});b({state:"testing"});try{let t=await fetch("/api/settings/test-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?.id?{provider:e.id,apiKey:c,model:u,baseUrl:p}:{provider:i,apiKey:c,model:u,baseUrl:p,baseProviderId:i})}),s=await t.json();s.ok?b({state:"ok",latency:s.latency}):b({state:"error",error:s.error||"Test failed",code:s.code})}catch{b({state:"error",code:"network_error",error:"Network error"})}},[w,A,p,u,e?.id,c,i,C]),T=(0,a.useCallback)(()=>{w?b({state:"error",error:A}):p.trim()&&u.trim()?t({id:e?.id||(0,P.mV)(),name:k,protocol:i,apiKey:c,model:u.trim(),baseUrl:p.trim()}):b({state:"error",error:C})},[w,A,p,u,C,t,e?.id,k,i,c]);return{name:l,setName:y,protocol:i,setProtocol:N,apiKey:c,setApiKey:m,model:u,setModel:x,baseUrl:p,setBaseUrl:g,testResult:h,canSave:S,isDuplicateName:w,handleTest:z,handleSave:T}}({initial:e,onSave:t,locale:i,existingNames:o}),[c,m]=(0,a.useState)(!1),x=(0,a.useRef)(void 0);(0,a.useEffect)(()=>()=>{x.current&&clearTimeout(x.current)},[]);let p=e?.id?"zh"===i?"编辑 Provider":"Edit Provider":"zh"===i?"添加 Provider":"Add Provider",g=[];return d.name.trim()||g.push("zh"===i?"名称":"Name"),d.baseUrl.trim()||g.push("zh"===i?"接口地址":"Base URL"),d.model.trim()||g.push("zh"===i?"模型":"Model"),(0,r.jsxs)("div",{className:"mt-3 rounded-lg border border-border overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 border-b border-border",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:p}),(0,r.jsx)("button",{type:"button",onClick:s,className:"p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors","aria-label":"zh"===i?"关闭":"Close",children:(0,r.jsx)(b.A,{size:14})})]}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsx)(U,{form:d,t:l,locale:i,layout:"compact"}),(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-4",children:[(0,r.jsx)($,{result:d.testResult,disabled:!d.canSave,onTest:d.handleTest,t:l}),n&&e?.id&&(0,r.jsxs)("button",{type:"button",onClick:()=>{c?(n(),x.current&&clearTimeout(x.current)):(m(!0),x.current=setTimeout(()=>m(!1),3e3))},onBlur:()=>{m(!1),x.current&&clearTimeout(x.current)},className:`inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-lg transition-all duration-200 ${c?"bg-destructive/10 text-destructive border border-destructive/25 font-medium":"text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50"}`,children:[(0,r.jsx)(u.A,{size:12}),c?"zh"===i?"确认删除?":"Confirm?":"zh"===i?"删除":"Delete"]}),(0,r.jsxs)("div",{className:"flex-1",children:[d.isDuplicateName&&(0,r.jsx)("span",{className:"text-2xs text-destructive pl-2",children:"zh"===i?"名称已存在":"Name already exists"}),!d.isDuplicateName&&!d.canSave&&g.length>0&&(0,r.jsx)("span",{className:"text-2xs text-muted-foreground/60 pl-2",children:"zh"===i?`需要: ${g.join("、")}`:`Required: ${g.join(", ")}`})]}),(0,r.jsx)("button",{type:"button",onClick:s,className:"px-3 py-1.5 text-sm rounded-lg text-muted-foreground hover:text-foreground transition-colors",children:l.settings?.customProviders?.modal?.buttonCancel??"Cancel"}),(0,r.jsx)("button",{type:"button",onClick:d.handleSave,disabled:!d.canSave,className:"px-4 py-1.5 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] hover:bg-[var(--amber)]/90 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:"zh"===i?"保存":"Save"})]})]})]})}let _=[{label:"SiliconFlow",baseUrl:"https://api.siliconflow.cn/v1",model:"BAAI/bge-m3",badge:"free"},{label:"OpenAI",baseUrl:"https://api.openai.com/v1",model:"text-embedding-3-small",badge:null},{label:"DeepSeek",baseUrl:"https://api.deepseek.com/v1",model:"deepseek-embed",badge:null},{label:"Ollama",baseUrl:"http://localhost:11434/v1",model:"nomic-embed-text",badge:"local"}],H=[{id:"Xenova/bge-small-zh-v1.5",label:"BGE Small ZH (33MB)",desc:"Chinese + English"},{id:"Xenova/all-MiniLM-L6-v2",label:"MiniLM L6 (23MB)",desc:"English only"},{id:"Xenova/bge-small-en-v1.5",label:"BGE Small EN (33MB)",desc:"English only"}];function G({data:e,setData:t,t:s}){let{locale:n}=(0,j.Y)(),l=s.settings.embedding??{},o=e.embedding??{enabled:!1,provider:"local",baseUrl:"",apiKey:"",model:""},i=e.embeddingStatus??{enabled:!1,ready:!1,building:!1,docCount:0},d=o.provider||"local",[c,u]=(0,a.useState)(null),[x,h]=(0,a.useState)("idle"),[f,v]=(0,a.useState)(null);(0,a.useEffect)(()=>{o.enabled&&"local"===d&&(0,y.n)("/api/embedding").then(e=>u(e.downloaded)).catch(()=>u(!1))},[o.enabled,d]),(0,a.useEffect)(()=>{if("downloading"!==x)return;let e=setInterval(()=>{(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"status"})}).then(e=>{e.downloaded&&(u(!0),h("idle"),z.oR.success?.(l.modelReady??"Model downloaded")??(0,z.oR)(l.modelReady??"Model downloaded")),e.error&&(h("error"),v(e.error),z.oR.error?.(e.error)??(0,z.oR)(e.error))}).catch(()=>{})},3e3);return()=>clearInterval(e)},[x,l.modelReady]);let N=(0,a.useCallback)(()=>{h("starting"),v(null),(0,y.n)("/api/embedding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"download",model:o.model||void 0})}).then(e=>{e.ok?h("downloading"):(h("error"),v(e.error??"Download request failed"))}).catch(e=>{h("error"),v(e instanceof Error?e.message:"Network error")})},[o.model]),k=(0,a.useCallback)(()=>{h("idle"),v(null)},[]);return(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(w.A,{size:15}),title:l.title??"Embedding Search",description:l.description??"Semantic search with vector embeddings.",children:[(0,r.jsx)(T.pM,{label:l.enable??"Enable embedding search",hint:l.enableHint,children:(0,r.jsx)(T.lM,{checked:o.enabled,onChange:()=>{t(e=>e?{...e,embedding:{...o,enabled:!o.enabled}}:e)}})}),o.enabled&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...o,provider:"local",model:o.model||"Xenova/bge-small-zh-v1.5"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"local"===d?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsxs)("span",{className:"font-medium",children:[l.providerLocal??"Local"," (",l.providerLocalFree??"Free",")"]}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:l.providerLocalDesc??"Runs on your machine"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>t(e=>e?{...e,embedding:{...o,provider:"api",model:o.model||"BAAI/bge-m3",baseUrl:o.baseUrl||"https://api.siliconflow.cn/v1"}}:e),className:`flex-1 px-3 py-2 text-sm rounded-lg border transition-colors text-center ${"api"===d?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:"font-medium",children:l.providerApi??"API"}),(0,r.jsx)("span",{className:"block text-xs opacity-70 mt-0.5",children:l.providerApiDesc??"OpenAI, DeepSeek, Ollama, etc."})]})]}),"local"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.D0,{label:l.model??"Model",hint:l.modelHint,children:(0,r.jsx)("div",{className:"space-y-1.5",children:H.map(e=>(0,r.jsxs)("label",{className:`flex items-center gap-3 px-3 py-2 rounded-lg border cursor-pointer transition-colors ${o.model===e.id?"border-[var(--amber)] bg-[var(--amber)]/5":"border-border hover:bg-muted"}`,children:[(0,r.jsx)("input",{type:"radio",name:"local-model",checked:o.model===e.id,onChange:()=>t(t=>t?{...t,embedding:{...o,model:e.id}}:t),className:"accent-[var(--amber)]"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:e.label}),(0,r.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:e.desc})]})]},e.id))})}),!1===c&&"idle"===x&&(0,r.jsxs)("button",{type:"button",onClick:N,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 transition-opacity",children:[(0,r.jsx)(m.A,{size:14}),l.downloadModel??"Install Runtime & Download Model"]}),"starting"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin"}),(0,r.jsx)("span",{children:l.starting??"Starting download..."})]}),"downloading"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(p.A,{size:14,className:"animate-spin"}),(0,r.jsx)("span",{children:l.downloading??"Downloading model..."})]}),"error"===x&&(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,r.jsx)(b.A,{size:14}),(0,r.jsx)("span",{children:f??"Download failed"})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:l.downloadFailedHint??"If install or download keeps failing, try API mode or set HF_ENDPOINT=https://hf-mirror.com"}),(0,r.jsxs)("button",{type:"button",onClick:k,className:"flex items-center gap-2 px-3 py-1.5 text-xs font-medium rounded-md border border-border text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(g.A,{size:12}),l.retry??"Retry"]})]}),!0===c&&"idle"===x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(S.A,{size:12}),(0,r.jsx)("span",{children:l.modelReady??"Model ready"})]})]}),"api"===d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"grid grid-cols-2 gap-2",children:_.map(e=>{let s=o.baseUrl===e.baseUrl;return(0,r.jsxs)("button",{type:"button",onClick:()=>{t(t=>t?{...t,embedding:{...o,baseUrl:e.baseUrl,model:e.model}}:t)},className:`relative px-3 py-2 text-left text-sm rounded-lg border transition-colors ${s?"border-[var(--amber)] bg-[var(--amber)]/5":"border-border hover:bg-muted"}`,children:[(0,r.jsx)("span",{className:`font-medium ${s?"text-[var(--amber)]":"text-foreground"}`,children:e.label}),e.badge&&(0,r.jsx)("span",{className:`ml-1.5 inline-flex items-center px-1.5 py-0.5 text-2xs rounded-full font-medium ${"free"===e.badge?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-blue-500/10 text-blue-600 dark:text-blue-400"}`,children:"free"===e.badge?"zh"===n?"免费":"Free":"zh"===n?"本地":"Local"}),(0,r.jsx)("span",{className:"block text-2xs text-muted-foreground mt-0.5 truncate",children:e.model})]},e.label)})}),!o.baseUrl&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"zh"===n?"推荐使用硅基流动 (SiliconFlow),注册即可免费使用嵌入模型。":"SiliconFlow recommended — free embedding models with registration."}),(0,r.jsx)(T.D0,{label:l.baseUrl??"Base URL",hint:l.baseUrlHint,children:(0,r.jsx)(T.pd,{value:o.baseUrl,onChange:e=>t(t=>t?{...t,embedding:{...o,baseUrl:e.target.value}}:t),placeholder:"https://api.siliconflow.cn/v1"})}),(0,r.jsx)(T.D0,{label:l.apiKey??"API Key",hint:o.baseUrl?.includes("localhost")||o.baseUrl?.includes("127.0.0.1")?l.apiKeyHintLocal??("zh"===n?"本地服务可留空":"Leave empty for local services"):l.apiKeyHint??("zh"===n?"在服务商网站获取 API Key":"Get your API key from the provider"),children:(0,r.jsx)(T.yA,{value:o.apiKey,onChange:e=>t(t=>t?{...t,embedding:{...o,apiKey:e}}:t),placeholder:"sk-..."})}),(0,r.jsx)(T.D0,{label:l.model??"Model",hint:l.modelName,children:(0,r.jsx)(T.pd,{value:o.model,onChange:e=>t(t=>t?{...t,embedding:{...o,model:e.target.value}}:t),placeholder:"BAAI/bge-m3"})})]}),(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground pt-1",children:i.building?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{size:12,className:"animate-spin"}),(0,r.jsx)("span",{children:l.indexBuilding??"Building embedding index..."})]}):i.ready?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.A,{size:12,className:"text-success"}),(0,r.jsx)("span",{children:"function"==typeof l.indexReady?l.indexReady(i.docCount):`${i.docCount} documents indexed`})]}):(0,r.jsx)("span",{children:l.indexPending??"Index will be built on first search"})})]})]})}let J=[{id:"auto",labelKey:"providerAuto",descKey:"providerAutoDesc"},{id:"exa",labelKey:"providerExa",descKey:"providerExaDesc"},{id:"perplexity",labelKey:"providerPerplexity",descKey:"providerPerplexityDesc"},{id:"gemini",labelKey:"providerGemini",descKey:"providerGeminiDesc"}],W=[{key:"exaApiKey",labelKey:"exaApiKey",placeholder:"exa-..."},{key:"perplexityApiKey",labelKey:"perplexityApiKey",placeholder:"pplx-..."},{key:"geminiApiKey",labelKey:"geminiApiKey",placeholder:"AIza..."}];function V({data:e,setData:t,t:s}){let a=s.settings.webSearch??{},n=e.webSearch??{provider:"auto",exaApiKey:"",perplexityApiKey:"",geminiApiKey:""},l=n.provider||"auto";return(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(C.A,{size:15}),title:a.title??"Web Search",description:a.description??"Configure search providers.",children:[(0,r.jsx)("div",{className:"flex gap-2 flex-wrap",children:J.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>{t(t=>t?{...t,webSearch:{...n,provider:e.id}}:t)},className:`px-2.5 py-1 text-xs rounded-md border transition-colors ${l===e.id?"border-[var(--amber)] text-[var(--amber)] bg-[var(--amber)]/10":"border-border text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:a[e.labelKey]??e.id},e.id))}),(()=>{let e=J.find(e=>e.id===l);if(!e)return null;let t=a[e.descKey];return t?(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t}):null})(),W.map(e=>(0,r.jsx)(T.D0,{label:a[e.labelKey]??e.key,hint:a.apiKeyHint,children:(0,r.jsx)(T.yA,{value:n[e.key]??"",onChange:s=>t(t=>t?{...t,webSearch:{...n,[e.key]:s}}:t),placeholder:e.placeholder})},e.key)),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:a.noKeysHint??"Works without API keys via Exa MCP (zero-config)."})]})}function Y(){let{t:e}=(0,j.Y)(),[t,s]=(0,a.useState)("panel");return(0,a.useEffect)(()=>{try{let e=localStorage.getItem("ask-mode");"popup"===e&&s("popup")}catch(e){console.warn("[AiTab] localStorage getItem ask-mode failed:",e)}},[]),(0,r.jsx)(T.L7,{icon:(0,r.jsx)(A.A,{size:15}),title:e.settings.askDisplayMode?.label??"Display Mode",description:e.settings.askDisplayMode?.hint??"Side panel stays docked on the right. Popup opens a floating dialog.",children:(0,r.jsxs)(T.l6,{value:t,onChange:e=>(e=>{s(e);try{localStorage.setItem("ask-mode",e)}catch(e){console.warn("[AiTab] localStorage setItem ask-mode failed:",e)}window.dispatchEvent(new StorageEvent("storage",{key:"ask-mode",newValue:e}))})(e.target.value),children:[(0,r.jsx)("option",{value:"panel",children:e.settings.askDisplayMode?.panel??"Side Panel"}),(0,r.jsx)("option",{value:"popup",children:e.settings.askDisplayMode?.popup??"Popup"})]})})}var q=s(38125),Z=s(25208),X=s(88283),Q=s(47533),ee=s(95156),et=s(21036),es=s(72615),er=s(98327);let ea=[{value:"lora",label:"Lora",category:"Serif",style:{fontFamily:"Lora, Georgia, serif"}},{value:"ibm-plex-sans",label:"IBM Plex Sans",category:"Sans",style:{fontFamily:"'IBM Plex Sans', sans-serif"}},{value:"inter",label:"Inter",category:"Sans",style:{fontFamily:"var(--font-inter), sans-serif"}},{value:"ibm-plex-mono",label:"IBM Plex Mono",category:"Mono",style:{fontFamily:"'IBM Plex Mono', monospace"}}];function en({icon:e,label:t,children:s}){return(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e}),(0,r.jsx)("span",{className:"text-sm font-medium text-foreground",children:t})]}),s]})}function el({options:e,value:t,onChange:s}){return(0,r.jsx)("div",{className:"flex gap-2",children:e.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>s(e.value),className:`flex items-center gap-1.5 px-3.5 py-2 text-sm font-medium rounded-xl transition-all ${t===e.value?"bg-[var(--amber)] text-[var(--amber-foreground)] shadow-sm":"bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[e.icon,e.label]},e.value))})}function eo({font:e,setFont:t,fontSize:s,setFontSize:n,contentWidth:l,setContentWidth:o,dark:i,setDark:c,locale:m,setLocale:u,t:x}){let[p,g]=(0,a.useState)(!1),[h,b]=(0,a.useState)(()=>localStorage.getItem("theme")??"system"),[f,v]=(0,a.useState)(()=>localStorage.getItem("locale")??"system"),j=x.settings.appearance;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(d.A,{size:15}),title:j.preferencesTitle??"Preferences",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(q.A,{size:14}),label:j.colorTheme,children:(0,r.jsx)(el,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(A.A,{size:14})},{value:"dark",label:j.dark,icon:(0,r.jsx)(Z.A,{size:14})},{value:"light",label:j.light,icon:(0,r.jsx)(q.A,{size:14})}],value:h,onChange:e=>{b(e),localStorage.setItem("theme",e);let t="system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches:"dark"===e;c(t),document.documentElement.classList.toggle("dark",t)}})}),(0,r.jsx)(en,{icon:(0,r.jsx)(C.A,{size:14}),label:j.language,children:(0,r.jsx)(el,{options:[{value:"system",label:j.system,icon:(0,r.jsx)(A.A,{size:14})},{value:"en",label:"EN"},{value:"zh",label:"中文"}],value:f,onChange:e=>{v(e),localStorage.setItem("locale",e);let t="system"===e?navigator.language.startsWith("zh")?"zh":"en":e;u(t),document.cookie=`locale=${t};path=/;max-age=31536000;SameSite=Lax`}})})]}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(X.A,{size:15}),title:j.readingTitle??"Reading",description:j.readingDesc??"Customize how your notes look",children:[(0,r.jsx)(en,{icon:(0,r.jsx)(Q.A,{size:14}),label:j.readingFont,children:(0,r.jsx)("div",{className:"space-y-0.5",children:ea.map(s=>{let a=e===s.value;return(0,r.jsxs)("button",{type:"button",onClick:()=>t(s.value),className:`flex items-center gap-4 w-full px-3 py-2.5 rounded-lg transition-all text-left relative ${a?"bg-[var(--amber-subtle)]":"hover:bg-muted/50"}`,children:[a&&(0,r.jsx)("div",{className:"absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full bg-[var(--amber)]"}),(0,r.jsx)("span",{className:`text-xl font-medium w-10 text-center shrink-0 ${a?"text-foreground":"text-muted-foreground/60"}`,style:{fontFamily:s.style.fontFamily},children:"Aa"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,r.jsx)("span",{className:`text-sm font-medium ${a?"text-foreground":"text-muted-foreground"}`,style:{fontFamily:s.style.fontFamily},children:s.label}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground/50",children:s.category})]}),(0,r.jsx)("p",{className:`text-sm truncate mt-0.5 ${a?"text-muted-foreground":"text-muted-foreground/40"}`,style:{fontFamily:s.style.fontFamily},children:j.fontPreview})]})]},s.value)})})}),(0,r.jsx)(en,{icon:(0,r.jsx)(ee.A,{size:14}),label:j.fontSize,children:(0,r.jsxs)("div",{className:"px-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",style:{fontSize:"11px"},children:"A"}),(0,r.jsx)("input",{type:"range",min:12,max:22,step:1,value:parseInt(s),onChange:e=>n(`${e.target.value}px`),className:"flex-1 h-1.5 rounded-full appearance-none bg-muted cursor-pointer accent-[var(--amber)] [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-[var(--amber)] [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-[var(--amber)] [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:shadow-sm [&::-moz-range-thumb]:cursor-pointer"}),(0,r.jsx)("span",{className:"text-base text-muted-foreground/60 shrink-0",children:"A"})]}),(0,r.jsx)("div",{className:"text-center mt-1.5",children:(0,r.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[parseInt(s),"px"]})}),(0,r.jsx)("p",{className:"text-muted-foreground leading-relaxed mt-2 px-1",style:{fontSize:s,fontFamily:ea.find(t=>t.value===e)?.style.fontFamily},children:j.fontSizePreview})]})}),(0,r.jsx)(en,{icon:(0,r.jsx)(et.A,{size:14}),label:j.contentWidth,children:(0,r.jsxs)("div",{className:"px-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",children:"▬"}),(0,r.jsx)("input",{type:"range",min:50,max:100,step:5,value:parseInt(l)||80,onChange:e=>o(`${e.target.value}%`),className:"flex-1 h-1.5 rounded-full appearance-none bg-muted cursor-pointer accent-[var(--amber)] [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-[var(--amber)] [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-[var(--amber)] [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:shadow-sm [&::-moz-range-thumb]:cursor-pointer"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground/60 shrink-0",children:"▬▬▬"})]}),(0,r.jsx)("div",{className:"text-center mt-1.5",children:(0,r.jsxs)("span",{className:"text-xs tabular-nums text-muted-foreground",children:[parseInt(l)||80,"%"]})})]})})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground/40 px-0.5",children:j.browserNote}),(0,r.jsxs)("div",{className:"border-t border-border pt-4",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>g(!p),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors",children:[p?(0,r.jsx)(es.A,{size:14}):(0,r.jsx)(er.A,{size:14}),x.settings.tabs.shortcuts]}),p&&(0,r.jsx)("div",{className:"mt-3 space-y-0.5",children:x.shortcuts.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center justify-between py-1.5 px-1",children:[(0,r.jsx)("span",{className:"text-sm text-foreground",children:e.description}),(0,r.jsx)("div",{className:"flex items-center gap-1",children:e.keys.map((e,t)=>(0,r.jsx)("kbd",{className:"px-1.5 py-0.5 text-2xs font-mono bg-muted border border-border rounded text-muted-foreground",children:e},t))})]},t))})]})]})}var ei=s(10500),ed=s(42973),ec=s(24336),em=s(46884),eu=s(34137),ex=s(84734),ep=s(46990);function eg(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(2)} GB`}var eh=s(6379),eb=s(65799);let ef=(0,eb.createServerReference)("005aa291b6c5edbf762e5baf93fb7dd69d1a439e1a",eb.callServer,void 0,eb.findSourceMapURL,"scanExampleFilesAction"),ev=(0,eb.createServerReference)("00986a59ec963570c9368bca8f962617f1531ab6f0",eb.callServer,void 0,eb.findSourceMapURL,"cleanupExamplesAction");var ej=s(5038);let ey={checking:!1,available:null,isSelf:!1,suggestion:null};function eN({message:e,sub:t}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm",children:(0,r.jsxs)("div",{className:"text-center space-y-4 max-w-sm px-6",children:[(0,r.jsx)(p.A,{size:32,className:"animate-spin mx-auto text-[var(--amber)]"}),(0,r.jsx)("p",{className:"text-sm font-medium text-foreground",children:e}),t&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:t})]})})}function ek({m:e}){let[t,s]=(0,a.useState)(0),[n,l]=(0,a.useState)(0),[o,i]=(0,a.useState)(ey),[d,c]=(0,a.useState)(!1),[m,u]=(0,a.useState)(null),[x,g]=(0,a.useState)(void 0),b=(0,a.useRef)(void 0),f=(0,a.useRef)(void 0);(0,a.useEffect)(()=>{(0,y.n)("/api/settings").then(e=>{let t=e.port||3456;s(t),l(t)}).catch(()=>{})},[]),(0,a.useEffect)(()=>()=>{clearInterval(b.current),clearTimeout(f.current)},[]);let v=n!==t,j=n<1024||n>65535,N=o.checking||!1===o.available&&!o.isSelf,k=(0,a.useCallback)(async e=>{if(e<1024||e>65535)return void i({...ey,available:!1,invalid:!0});i({...ey,checking:!0});try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:e})});i({checking:!1,available:t.available,isSelf:t.isSelf??!1,suggestion:t.suggestion??null})}catch{i(ey)}},[]),w=async()=>{if(v&&!j&&!N&&!d){c(!0);try{let t=await (0,y.n)("/api/setup/check-port",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})});if(!t.available&&!t.isSelf){i({checking:!1,available:!1,isSelf:!1,suggestion:t.suggestion??null}),c(!1),z.oR.error(e.portInUse(n));return}await (0,y.n)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({port:n})}),u(e.portWebRestarting),g(e.portRedirecting);try{await (0,y.n)("/api/restart",{method:"POST"})}catch{}let s=`${window.location.protocol}//${window.location.hostname}:${n}`,r=Date.now()+3e4;b.current=setInterval(async()=>{if(Date.now()>r){clearInterval(b.current),u(null),c(!1),z.oR.error(e.portRestartTimeout);return}try{(await fetch(`${s}/api/health`,{signal:AbortSignal.timeout(2e3)})).ok&&(clearInterval(b.current),window.location.href=s)}catch{}},1500)}catch{c(!1),z.oR.error(e.portUpdateFailed)}}};return 0===t?null:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(T.L7,{icon:(0,r.jsx)(A.A,{size:15}),title:e.webPortLabel,description:e.webPortHint,children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:1024,max:65535,value:n,onChange:e=>{let t=parseInt(e.target.value,10)||n;l(t),i(ey),clearTimeout(f.current),t>=1024&&t<=65535&&(f.current=setTimeout(()=>k(t),500))},onBlur:()=>{clearTimeout(f.current),n>=1024&&n<=65535&&k(n)},className:"flex-1 px-2.5 py-1.5 text-sm rounded-lg border border-border bg-muted/30 text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring tabular-nums"}),(0,r.jsx)("button",{type:"button",onClick:w,disabled:!v||j||N||d,className:"shrink-0 px-4 py-1.5 rounded-lg text-xs font-medium transition-colors bg-[var(--amber)] text-[var(--amber-foreground)] hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:d?e.portUpdating:e.portUpdateBtn})]}),o.checking&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:11,className:"animate-spin"})," ",e.portChecking]}),!o.checking&&!1===o.available&&!o.invalid&&(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-[var(--amber)]",children:[(0,r.jsx)(ej.A,{size:11})," ",e.portInUse(n)]}),null!==o.suggestion&&(0,r.jsx)("button",{type:"button",onClick:()=>{l(o.suggestion),i(ey),setTimeout(()=>k(o.suggestion),0)},className:"text-xs px-2 py-0.5 rounded border border-[var(--amber)] text-[var(--amber)] transition-colors hover:bg-[var(--amber-subtle)]",children:e.portSuggest(o.suggestion)})]}),!o.checking&&o.invalid&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-destructive",children:[(0,r.jsx)(ej.A,{size:11})," 1024 – 65535"]}),!o.checking&&!0===o.available&&(0,r.jsxs)("p",{className:"text-xs flex items-center gap-1 text-success",children:[(0,r.jsx)(h.A,{size:11})," ",o.isSelf?e.portSelf:e.portAvailable]})]})}),m&&(0,r.jsx)(eN,{message:m,sub:x})]})}function ew({data:e,setData:t,t:s}){let l=e.envOverrides??{},o=s.settings.knowledge,i=s.settings.appearance,[d,m]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-echo")),[x,h]=(0,a.useState)(()=>"1"===localStorage.getItem("mindos:labs-workflows")),[b,f]=(0,a.useState)(()=>"true"===localStorage.getItem("show-hidden-files")),[v,j]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(null);(0,a.useEffect)(()=>{ef().then(e=>j(e.files.length)).catch(e=>{console.warn("[KnowledgeTab] scanExampleFilesAction failed:",e)})},[]);let[A,E]=(0,a.useState)(null),[R,I]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(0,y.n)("/api/setup").then(e=>{let t=e.guideState;t&&(E(t.active),I(!!t.dismissed))}).catch(e=>{console.error("Failed to fetch guide state:",e)})},[]);let P=(0,a.useCallback)(()=>{let e=!R;I(e);let t={dismissed:e};e||(t.active=!0),(0,y.n)("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:t})}).then(()=>window.dispatchEvent(new Event("guide-state-updated"))).catch(t=>{console.error("Failed to update guide state:",t),I(!e)})},[R]),M=(0,a.useCallback)(()=>{(0,y.n)("/api/setup",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({guideState:{active:!0,dismissed:!1,walkthroughStep:0,walkthroughDismissed:!1}})}).then(()=>{E(!0),I(!1),window.dispatchEvent(new Event("guide-state-updated"))}).catch(e=>console.error("Failed to restart walkthrough:",e))},[]),U=(0,a.useSyncExternalStore)(()=>()=>{},()=>`${window.location.protocol}//${window.location.hostname}`,()=>"http://localhost"),[D,$]=(0,a.useState)(!1),[F,L]=(0,a.useState)(null),[O,K]=(0,a.useState)(!1),[B,_]=(0,a.useState)(!1),H=!!e.authToken,G=F??e.authToken??"";async function J(){$(!0);try{let e=await (0,y.n)("/api/settings/reset-token",{method:"POST"});L(e.token),t(t=>t?{...t,authToken:e.token}:t)}finally{$(!1)}}async function W(){t(e=>e?{...e,authToken:""}:e),L(null)}return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(ei.A,{size:15}),title:o.cardTitle??"Knowledge Base",description:o.mindRootHint,children:[(0,r.jsx)(T.D0,{label:(0,r.jsxs)(r.Fragment,{children:[o.mindRoot," ",(0,r.jsx)(T.Bt,{overridden:l.MIND_ROOT})]}),hint:l.MIND_ROOT?o.envNote:o.mindRootHint,children:(0,r.jsx)(T.pd,{value:e.mindRoot,onChange:e=>t(t=>t?{...t,mindRoot:e.target.value}:t),placeholder:"/path/to/your/notes"})}),(0,r.jsx)(T.pM,{label:o.showHiddenFiles,hint:o.showHiddenFilesHint,children:(0,r.jsx)(T.lM,{checked:b,onChange:()=>{let e=!b;f(e),(0,eh.Fo)(e)}})}),null!==v&&v>0&&null===w&&(0,r.jsx)(T.pM,{label:o.cleanupExamples,hint:o.cleanupExamplesHint,children:(0,r.jsxs)("button",{onClick:()=>_(!0),disabled:N,title:N?s.hints.cleanupInProgress:void 0,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0 disabled:opacity-50",children:[N?(0,r.jsx)(p.A,{size:12,className:"animate-spin"}):(0,r.jsx)(u.A,{size:12}),o.cleanupExamplesButton,(0,r.jsx)("span",{className:"ml-1 tabular-nums text-2xs opacity-70",children:v})]})}),null!==w&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-success",children:[(0,r.jsx)(S.A,{size:14}),o.cleanupExamplesDone(w)]})]}),(0,r.jsx)(ek,{m:s.settings?.mcp??{}}),(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(ed.A,{size:15}),title:o.securityTitle??"Security",children:[(0,r.jsx)(T.D0,{label:o.webPassword,hint:o.webPasswordHint,children:(0,r.jsx)(T.yA,{value:e.webPassword??"",onChange:e=>t(t=>t?{...t,webPassword:e}:t),placeholder:o.passwordPlaceholder??"Leave empty to disable"})}),(0,r.jsx)(T.pM,{label:o.allowNetworkAccess??"Allow LAN access",hint:o.allowNetworkAccessHint??"Bind the Web UI to 0.0.0.0 so other devices on your network can connect after restart.",children:(0,r.jsx)(T.lM,{checked:!0===e.allowNetworkAccess,onChange:()=>t(e=>e?{...e,allowNetworkAccess:!0!==e.allowNetworkAccess}:e)})}),(0,r.jsx)(T.D0,{label:o.authToken,hint:H?o.authTokenHint:o.authTokenNone,children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-lg min-h-[38px]",children:[(0,r.jsx)("code",{className:"flex-1 text-xs font-mono text-foreground break-all select-all",children:G||(0,r.jsx)("span",{className:"text-muted-foreground italic",children:o.tokenNotSet??"— not set —"})}),G&&(0,r.jsx)("button",{type:"button",onClick:function(){let t=F??e.authToken??"";t&&(0,ep.l)(t).then(e=>{e&&z.oR.copy()})},className:"shrink-0 p-1 rounded text-muted-foreground hover:text-foreground transition-colors",title:o.authTokenCopy,children:(0,r.jsx)(ec.A,{size:13})})]}),e.mcpPort&&(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:[o.authTokenMcpPort,": ",(0,r.jsx)("code",{className:"font-mono",children:e.mcpPort}),G&&(0,r.jsxs)(r.Fragment,{children:[" \xa0\xb7\xa0 ",o.mcpUrl??"MCP URL",": ",(0,r.jsx)("code",{className:"font-mono select-all",children:`${U}:${e.mcpPort}/mcp`})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:function(){K(!0)},disabled:D,title:D?s.hints.tokenResetInProgress:void 0,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:[(0,r.jsx)(c.A,{size:14,className:D?"animate-spin":""}),o.authTokenReset]}),H&&(0,r.jsxs)("button",{type:"button",onClick:W,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-destructive hover:border-destructive/50 transition-colors",children:[(0,r.jsx)(u.A,{size:14}),o.authTokenClear]})]}),F&&(0,r.jsx)("p",{className:"text-xs text-[var(--amber-text)]",children:o.tokenGenerated})]})})]}),null!==A&&(0,r.jsxs)(T.L7,{icon:(0,r.jsx)(n.A,{size:15}),title:s.guide?.title??"Getting Started",children:[(0,r.jsx)(T.pM,{label:s.guide?.showGuide??"Show getting started guide",children:(0,r.jsx)(T.lM,{checked:!R,onChange:()=>P()})}),(0,r.jsxs)("button",{onClick:M,className:"flex items-center gap-1.5 mt-2 px-3 py-1.5 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:[(0,r.jsx)(g.A,{size:14}),o.restartWalkthrough??"Restart walkthrough"]})]}),(0,r.jsx)(T.L7,{icon:(0,r.jsx)(em.A,{size:15}),title:i.labsTitle??"Labs",description:i.labsDesc??"Experimental features that are still in development.",children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(eS,{label:i.labsEcho??"Echo",description:i.labsEchoDesc??"Reflective journaling powered by your notes.",checked:d,onChange:e=>{m(e),localStorage.setItem("mindos:labs-echo",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}}),(0,r.jsx)(eS,{label:i.labsWorkflows??"Flows",description:i.labsWorkflowsDesc??"Visual workflow automation for agents.",checked:x,onChange:e=>{h(e),localStorage.setItem("mindos:labs-workflows",e?"1":"0"),window.dispatchEvent(new Event("mindos:labs-changed"))}})]})}),(0,r.jsx)(eC,{k:o}),(0,r.jsx)(ex.TM,{open:O,title:o.authTokenReset??"Regenerate Token",message:o.authTokenResetConfirm,confirmLabel:o.authTokenReset??"Regenerate",cancelLabel:o.cancel??"Cancel",onConfirm:()=>{K(!1),J()},onCancel:()=>K(!1)}),(0,r.jsx)(ex.TM,{open:B,title:o.cleanupExamples??"Cleanup Examples",message:null!==v?o.cleanupExamplesConfirm(v):"",confirmLabel:o.cleanupExamplesButton??"Clean up",cancelLabel:o.cancel??"Cancel",variant:"destructive",onConfirm:async()=>{_(!1),k(!0);let e=await ev();k(!1),e.success&&(C(e.deleted),j(0))},onCancel:()=>_(!1)})]})}function eS({label:e,description:t,checked:s,onChange:a}){return(0,r.jsxs)("label",{className:"flex items-center gap-3 cursor-pointer group",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-foreground block",children:e}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:t})]}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":s,onClick:()=>a(!s),className:`relative w-9 h-5 rounded-full transition-colors shrink-0 ${s?"bg-[var(--amber)]":"bg-muted-foreground/20"}`,children:(0,r.jsx)("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white shadow-sm transition-transform ${s?"translate-x-4":"translate-x-0"}`})})]})}function eC({k:e}){let[t,s]=(0,a.useState)(!1),[n,l]=(0,a.useState)(null),[o,i]=(0,a.useState)(!1),d=(0,a.useCallback)(async()=>{i(!0);try{let e=await (0,y.n)("/api/monitoring",{timeout:5e3});l(e)}catch{}i(!1)},[]),c=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(!t){c.current=!1;return}c.current||(d(),c.current=!0);let e=setInterval(d,1e4);return()=>clearInterval(e)},[t,d]),(0,r.jsxs)("div",{className:"border-t border-border pt-5",children:[(0,r.jsxs)("button",{onClick:()=>s(e=>!e),className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors w-full",children:[t?(0,r.jsx)(es.A,{size:14}):(0,r.jsx)(er.A,{size:14}),(0,r.jsx)(eu.A,{size:12}),e.monitoringTitle??"System Monitoring",o&&(0,r.jsx)(p.A,{size:10,className:"animate-spin ml-1"})]}),t&&n&&(0,r.jsxs)("div",{className:"mt-3 grid grid-cols-2 gap-x-6 gap-y-2 text-xs",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorHeap??"Heap"}),(0,r.jsxs)("span",{className:"ml-2 tabular-nums",children:[eg(n.system.memory.heapUsed)," / ",eg(n.system.memory.heapTotal)]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorRss??"RSS"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:eg(n.system.memory.rss)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorUptime??"Uptime"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let s=Math.floor(t/60);if(s<60)return`${s}m ${t%60}s`;let r=Math.floor(s/60);if(r<24)return`${r}h ${s%60}m`;let a=Math.floor(r/24);return`${a}d ${r%24}h`}(n.system.uptimeMs)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorNode??"Node"}),(0,r.jsx)("span",{className:"ml-2",children:n.system.nodeVersion})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorRequests??"Requests"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.agentRequests})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorToolCalls??"Tool Calls"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.toolExecutions})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorTokens??"Tokens"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:(n.application.totalTokens.input+n.application.totalTokens.output).toLocaleString()})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorFiles??"Files"}),(0,r.jsxs)("span",{className:"ml-2 tabular-nums",children:[n.knowledgeBase.fileCount," (",eg(n.knowledgeBase.totalSizeBytes),")"]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:"MCP"}),(0,r.jsx)("span",{className:"ml-2",children:n.mcp.running?e.monitorMcpRunning?.(n.mcp.port)??`Running :${n.mcp.port}`:e.monitorMcpStopped??"Stopped"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-muted-foreground",children:e.monitorErrors??"Errors"}),(0,r.jsx)("span",{className:"ml-2 tabular-nums",children:n.application.errors})]})]}),t&&!n&&!o&&(0,r.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:e.monitoringFailed??"Failed to load monitoring data"})]})}var eA=s(75579),ez=s(19777),eT=s(98480),eE=s(9986),eR=s(55798),eI=s(20677),eP=s(73601),eM=s(27636),eU=s(2408);let eD=(0,s(93738).default)(()=>Promise.all([s.e(8225),s.e(206),s.e(2303)]).then(s.bind(s,32303)),{loadableGenerated:{webpack:()=>[32303]},ssr:!1});function e$({skill:e,expanded:t,onExpand:s,onToggle:a,onDelete:n,onEditStart:l,onEditSave:o,onEditCancel:i,editing:d,editContent:c,setEditContent:m,editError:g,saving:h,fullContent:b,loadingContent:f,loadErrors:v,m:j}){return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>s(e.name),children:[t?(0,r.jsx)(es.A,{size:12}):(0,r.jsx)(er.A,{size:12}),(0,r.jsx)("span",{className:"text-xs font-medium flex-1",children:e.name}),(0,r.jsx)("span",{className:`text-2xs px-1.5 py-0.5 rounded ${"builtin"===e.source?"bg-muted text-muted-foreground":"bg-[var(--amber-subtle)] text-[var(--amber-text)]"}`,children:"builtin"===e.source?j?.skillBuiltin??"Built-in":j?.skillUser??"Custom"}),(0,r.jsx)(T.lM,{size:"sm",checked:e.enabled,onClick:t=>{t.stopPropagation(),a(e.name,!e.enabled)}})]}),t&&(0,r.jsxs)("div",{className:"px-3 py-2 border-t border-border text-xs space-y-2 bg-muted/20",children:[(0,r.jsx)("p",{className:"text-muted-foreground",children:e.description||"No description"}),(0,r.jsx)("p",{className:"text-muted-foreground font-mono text-2xs",children:e.path}),f===e.name?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),(0,r.jsx)("span",{className:"text-2xs",children:"Loading..."})]}):b[e.name]?(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-2xs text-muted-foreground font-medium",children:j?.skillContent??"Content"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.editable&&d!==e.name&&(0,r.jsxs)("button",{onClick:()=>l(e.name),className:"flex items-center gap-1 text-2xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,r.jsx)(eU.A,{size:10}),j?.editSkill??"Edit"]}),e.editable&&(0,r.jsxs)("button",{onClick:()=>n(e.name),className:"flex items-center gap-1 text-2xs text-destructive hover:underline",children:[(0,r.jsx)(u.A,{size:10}),j?.deleteSkill??"Delete"]})]})]}),d===e.name?(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("textarea",{value:c,onChange:e=>m(e.target.value),rows:Math.min(20,(c.match(/\n/g)||[]).length+3),className:"w-full px-2.5 py-1.5 text-xs rounded-md border border-border bg-background text-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring resize-y font-mono"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{onClick:()=>o(e.name),disabled:h,className:"flex items-center gap-1 px-2.5 py-1 text-xs rounded-md disabled:opacity-40 disabled:cursor-not-allowed transition-colors bg-[var(--amber)] text-[var(--amber-foreground)]",children:[h&&(0,r.jsx)(p.A,{size:10,className:"animate-spin"}),j?.saveSkill??"Save"]}),(0,r.jsx)("button",{onClick:i,className:"px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground transition-colors",children:j?.cancelSkill??"Cancel"})]}),g&&(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),g]})]}):(0,r.jsx)("div",{className:"w-full rounded-md border border-border bg-background/50 max-h-[300px] overflow-y-auto px-2.5 py-1.5 text-xs [&_.prose]:max-w-none [&_.prose]:text-xs [&_h1]:text-sm [&_h2]:text-xs [&_h3]:text-xs [&_pre]:text-2xs [&_code]:text-2xs",children:(0,r.jsx)(eD,{content:function(e){if(!e.startsWith("---"))return e;let t=e.indexOf("\n---",3);return -1===t?e:e.slice(t+4).replace(/^\n+/,"")}(b[e.name])})})]}):v[e.name]?(0,r.jsxs)("p",{className:"text-2xs text-destructive flex items-center gap-1",children:[(0,r.jsx)(x.A,{size:10}),v[e.name]]}):null]})]})}let eF=e=>`---
|
|
2
2
|
name: ${e}
|
|
3
3
|
description: >
|
|
4
4
|
Describe WHEN the agent should use this
|
package/static-web/_next/static/chunks/{5200-2447cea5eb41a922.js → 5200-6c82e5ce54a95b4b.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5200],{20677:(e,t,r)=>{r.d(t,{av:()=>u,cd:()=>d,kr:()=>l,oc:()=>c,u_:()=>p,zd:()=>i});var n=r(59029),s=r(65264);let a=null;async function o(e){a?.abort();let t=new AbortController;a=t;try{let[r,n,a]=await Promise.all([(0,s.n)("/api/mcp/status",{signal:t.signal}),(0,s.n)("/api/mcp/agents",{signal:t.signal}),(0,s.n)("/api/skills",{signal:t.signal})]);t.signal.aborted||e({status:r,agents:n.agents,skills:a.skills})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return}finally{t.signal.aborted||e({loading:!1})}}let i=(0,n.v)((e,t)=>({status:null,agents:[],skills:[],loading:!0,refresh:()=>o(e),toggleSkill:async(r,n)=>{e({skills:t().skills.map(e=>e.name===r?{...e,enabled:n}:e)});try{return await (0,s.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",name:r,enabled:n})}),!0}catch{return e({skills:t().skills.map(e=>e.name===r?{...e,enabled:!n}:e)}),!1}},installAgent:async(r,n)=>{let a=t().agents.find(e=>e.key===r);if(!a)return!1;try{let t=await (0,s.n)("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:[{key:r,scope:n?.scope??(a.hasProjectScope?"project":"global"),transport:n?.transport??a.preferredTransport}],transport:"auto"})}),i=t.results?.[0],l=i?.ok===!0||i?.status==="ok";return l&&await o(e),l}catch{return!1}},_init:()=>{let t;o(e);let r=()=>{clearTimeout(t),t=setTimeout(()=>o(e),500)};window.addEventListener("mindos:skills-changed",r);let n=setInterval(()=>{"visible"===document.visibilityState&&o(e)},3e4);return()=>{a?.abort(),clearTimeout(t),clearInterval(n),window.removeEventListener("mindos:skills-changed",r)}}}));function l(){return i()}function d(){return i()}let c=()=>i(e=>e.agents),u=()=>i(e=>e.status),p=()=>i(e=>e.installAgent)},46990:(e,t,r)=>{r.d(t,{l:()=>n});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}}},58221:(e,t,r)=>{r.d(t,{IX:()=>l,KW:()=>i,O0:()=>o,cn:()=>a,vr:()=>d});var n=r(10325),s=r(91498);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}},65264:(e,t,r)=>{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()}}},69527:(e,t,r)=>{r.d(t,{Bt:()=>m,D0:()=>d,L7:()=>b,jn:()=>g,l6:()=>p,lM:()=>f,pM:()=>h,pd:()=>c,yA:()=>u});var n=r(66839),s=r(44223),a=r(9986),o=r(55798),i=r(72615),l=r(76723);function d({label:e,hint:t,hintError:r,children:s}){return(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-sm text-foreground font-medium",children:e}),s,t&&(0,n.jsx)("p",{className:`text-xs ${r?"text-destructive":"text-muted-foreground"}`,children:t})]})}function c({className:e="",...t}){return(0,n.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:i,className:l="",size:d="md"}){let[c,u]=(0,s.useState)(!1),p="sm"===d;return(0,n.jsxs)("div",{className:`flex items-center border border-border rounded-lg bg-background focus-within:ring-1 focus-within:ring-ring overflow-hidden ${l}`,children:[(0,n.jsx)("input",{type:c?"text":"password",value:e,onChange:e=>t(e.target.value),placeholder:r??"••••••••",disabled:i,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,n.jsx)("button",{type:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:()=>u(e=>!e),disabled:i,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,n.jsx)(a.A,{size:p?14:16}):(0,n.jsx)(o.A,{size:p?14:16})})]})}function p({value:e,onChange:t,children:r,className:a="",disabled:o,size:d="md"}){let c=(0,s.useId)(),[u,p]=(0,s.useState)(!1),[m,f]=(0,s.useState)(-1),g=(0,s.useRef)(null),b=(0,s.useRef)(null),h=(0,s.useMemo)(()=>s.Children.toArray(r).filter(e=>s.isValidElement(e)&&"option"===e.type).map(e=>({value:String(e.props.value??""),label:String(e.props.children??e.props.value??"")})),[r]),x=h.findIndex(t=>t.value===e),y=h[x]?.label??"";(0,s.useEffect)(()=>{if(!u)return;let e=e=>{g.current&&!g.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]),(0,s.useEffect)(()=>{if(u&&b.current&&m>=0){let e=b.current.children[m];e?.scrollIntoView({block:"nearest"})}},[u,m]);let v=(0,s.useCallback)(e=>{e>=0&&e<h.length&&(t?.({target:{value:h[e].value}}),p(!1))},[h,t]),w=(0,s.useCallback)(e=>{if(!u){["Enter"," ","ArrowDown","ArrowUp"].includes(e.key)&&(e.preventDefault(),p(!0),f(x>=0?x:0));return}switch(e.key){case"ArrowDown":e.preventDefault(),f(e=>Math.min(e+1,h.length-1));break;case"ArrowUp":e.preventDefault(),f(e=>Math.max(e-1,0));break;case"Enter":case" ":e.preventDefault(),v(m);break;case"Escape":e.preventDefault(),p(!1);break;case"Tab":p(!1)}},[u,h.length,x,m,v]);return(0,n.jsxs)("div",{ref:g,className:`relative ${a}`,children:[(0,n.jsxs)("button",{type:"button",disabled:o,onClick:()=>{p(e=>!e),f(x>=0?x:0)},onKeyDown:w,"aria-haspopup":"listbox","aria-expanded":u,className:`${"sm"===d?"px-1.5 py-0.5 text-xs rounded cursor-pointer":"w-full px-3 py-2 text-sm rounded-lg"} bg-background border border-border 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,n.jsx)("span",{className:`truncate ${y?"":"text-muted-foreground"}`,children:y||"—"}),(0,n.jsx)(i.A,{size:"sm"===d?10:14,className:`shrink-0 text-muted-foreground transition-transform duration-150 ${u?"rotate-180":""}`})]}),u&&(0,n.jsx)("div",{ref:b,role:"listbox","aria-activedescendant":m>=0?`${c}-opt-${m}`:void 0,className:`absolute z-20 ${"sm"===d?"min-w-[8rem]":"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:h.map((t,r)=>{let s=t.value===e,a=r===m;return(0,n.jsxs)("button",{id:`${c}-opt-${r}`,role:"option","aria-selected":s,type:"button",onMouseDown:e=>{e.preventDefault(),v(r)},onMouseEnter:()=>f(r),className:`w-full ${"sm"===d?"px-2 py-1 text-xs":"px-3 py-1.5 text-sm"} text-left flex items-center gap-2 transition-colors ${a?"bg-accent text-accent-foreground":"text-foreground"}`,children:[(0,n.jsx)(l.A,{size:"sm"===d?10:14,className:`shrink-0 ${s?"text-[var(--amber)]":"invisible"}`}),(0,n.jsx)("span",{className:"truncate",children:t.label})]},t.value)})})]})}function m({overridden:e}){return e?(0,n.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 f({checked:e,onChange:t,size:r="md",disabled:s,title:a,onClick:o}){let i="sm"===r;return(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:s,title:a,onClick:o??(()=>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 ${i?"h-4 w-7":"h-5 w-9"} ${e?"bg-[var(--amber)]":"bg-muted"}`,children:(0,n.jsx)("span",{className:`pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform ${i?"h-3 w-3":"h-4 w-4"} ${e?i?"translate-x-3":"translate-x-4":"translate-x-0"}`})})}function g({children:e,disabled:t,onClick:r,type:s="button",className:a="",...o}){return(0,n.jsx)("button",{type:s,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 ${a}`,...o,children:e})}function b({icon:e,title:t,description:r,badge:s,children:a,className:o=""}){return(0,n.jsxs)("div",{className:`rounded-xl border border-border/50 bg-card/50 p-5 ${o}`,children:[(0,n.jsxs)("div",{className:"flex items-start gap-3 mb-4",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-lg bg-muted/50 flex items-center justify-center shrink-0 mt-0.5",children:(0,n.jsx)("span",{className:"text-muted-foreground",children:e})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:t}),s]}),r&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:r})]})]}),(0,n.jsx)("div",{className:"space-y-4 pl-11",children:a})]})}function h({label:e,hint:t,children:r}){return(0,n.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"text-sm text-foreground",children:e}),t&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:t})]}),(0,n.jsx)("div",{className:"shrink-0",children:r})]})}},98641:(e,t,r)=>{r.d(t,{$k:()=>n});function n(e,t,r){let n,s,a;if("stdio"===r){var o,i;let t={type:"stdio",command:"mindos",args:["mcp"]};if("toml"===e.format){let t=`[${e.configKey}.mindos]
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5200],{20677:(e,t,r)=>{r.d(t,{av:()=>c,cd:()=>d,kr:()=>l,oc:()=>u,u_:()=>p,zd:()=>i});var n=r(59029),s=r(65264);let a=null;async function o(e){a?.abort();let t=new AbortController;a=t;try{let[r,n,a]=await Promise.all([(0,s.n)("/api/mcp/status",{signal:t.signal}),(0,s.n)("/api/mcp/agents",{signal:t.signal}),(0,s.n)("/api/skills",{signal:t.signal})]);t.signal.aborted||e({status:r,agents:n.agents,skills:a.skills})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return}finally{t.signal.aborted||e({loading:!1})}}let i=(0,n.v)((e,t)=>({status:null,agents:[],skills:[],loading:!0,refresh:()=>o(e),toggleSkill:async(r,n)=>{e({skills:t().skills.map(e=>e.name===r?{...e,enabled:n}:e)});try{return await (0,s.n)("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",name:r,enabled:n})}),!0}catch{return e({skills:t().skills.map(e=>e.name===r?{...e,enabled:!n}:e)}),!1}},installAgent:async(r,n)=>{let a=t().agents.find(e=>e.key===r);if(!a)return!1;try{let t=await (0,s.n)("/api/mcp/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:[{key:r,scope:n?.scope??(a.hasProjectScope?"project":"global"),transport:n?.transport??a.preferredTransport}],transport:"auto"})}),i=t.results?.[0],l=i?.ok===!0||i?.status==="ok";return l&&await o(e),l}catch{return!1}},_init:()=>{let t;o(e);let r=()=>{clearTimeout(t),t=setTimeout(()=>o(e),500)};window.addEventListener("mindos:skills-changed",r);let n=setInterval(()=>{"visible"===document.visibilityState&&o(e)},3e4);return()=>{a?.abort(),clearTimeout(t),clearInterval(n),window.removeEventListener("mindos:skills-changed",r)}}}));function l(){return i()}function d(){return i()}let u=()=>i(e=>e.agents),c=()=>i(e=>e.status),p=()=>i(e=>e.installAgent)},46990:(e,t,r)=>{r.d(t,{l:()=>n});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}}},58221:(e,t,r)=>{r.d(t,{IX:()=>l,KW:()=>i,O0:()=>o,cn:()=>a,vr:()=>d});var n=r(10325),s=r(91498);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}},65264:(e,t,r)=>{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 u=r?.signal??l;try{let t=await fetch(e,{...d,signal:u});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()}}},69527:(e,t,r)=>{r.d(t,{Bt:()=>m,D0:()=>d,L7:()=>h,jn:()=>g,l6:()=>p,lM:()=>f,pM:()=>b,pd:()=>u,yA:()=>c});var n=r(66839),s=r(44223),a=r(9986),o=r(55798),i=r(72615),l=r(76723);function d({label:e,hint:t,hintError:r,children:s}){return(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-sm text-foreground font-medium",children:e}),s,t&&(0,n.jsx)("p",{className:`text-xs ${r?"text-destructive":"text-muted-foreground"}`,children:t})]})}function u({className:e="",...t}){return(0,n.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 c({value:e,onChange:t,placeholder:r,disabled:i,className:l="",size:d="md"}){let[u,c]=(0,s.useState)(!1),p="sm"===d;return(0,n.jsxs)("div",{className:`flex items-center border border-border rounded-lg bg-background focus-within:ring-1 focus-within:ring-ring overflow-hidden ${l}`,children:[(0,n.jsx)("input",{type:u?"text":"password",value:e,onChange:e=>t(e.target.value),placeholder:r??"••••••••",disabled:i,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,n.jsx)("button",{type:"button",tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:()=>c(e=>!e),disabled:i,className:`shrink-0 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50 ${p?"p-1.5":"p-2"}`,title:u?"Hide":"Show",children:u?(0,n.jsx)(a.A,{size:p?14:16}):(0,n.jsx)(o.A,{size:p?14:16})})]})}function p({value:e,onChange:t,children:r,className:a="",disabled:o,size:d="md"}){let u=(0,s.useId)(),[c,p]=(0,s.useState)(!1),[m,f]=(0,s.useState)(-1),g=(0,s.useRef)(null),h=(0,s.useRef)(null),b=(0,s.useMemo)(()=>s.Children.toArray(r).filter(e=>s.isValidElement(e)&&"option"===e.type).map(e=>({value:String(e.props.value??""),label:String(e.props.children??e.props.value??"")})),[r]),x=b.findIndex(t=>t.value===e),y=b[x]?.label??"";(0,s.useEffect)(()=>{if(!c)return;let e=e=>{g.current&&!g.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c]),(0,s.useEffect)(()=>{if(c&&h.current&&m>=0){let e=h.current.children[m];e?.scrollIntoView({block:"nearest"})}},[c,m]);let v=(0,s.useCallback)(e=>{e>=0&&e<b.length&&(t?.({target:{value:b[e].value}}),p(!1))},[b,t]),w=(0,s.useCallback)(e=>{if(!c){["Enter"," ","ArrowDown","ArrowUp"].includes(e.key)&&(e.preventDefault(),p(!0),f(x>=0?x:0));return}switch(e.key){case"ArrowDown":e.preventDefault(),f(e=>Math.min(e+1,b.length-1));break;case"ArrowUp":e.preventDefault(),f(e=>Math.max(e-1,0));break;case"Enter":case" ":e.preventDefault(),v(m);break;case"Escape":e.preventDefault(),p(!1);break;case"Tab":p(!1)}},[c,b.length,x,m,v]);return(0,n.jsxs)("div",{ref:g,className:`relative ${a}`,children:[(0,n.jsxs)("button",{type:"button",disabled:o,onClick:()=>{p(e=>!e),f(x>=0?x:0)},onKeyDown:w,"aria-haspopup":"listbox","aria-expanded":c,className:`${"sm"===d?"px-1.5 py-0.5 text-xs rounded cursor-pointer":"w-full px-3 py-2 text-sm rounded-lg"} bg-background border border-border 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,n.jsx)("span",{className:`truncate ${y?"":"text-muted-foreground"}`,children:y||"—"}),(0,n.jsx)(i.A,{size:"sm"===d?10:14,className:`shrink-0 text-muted-foreground transition-transform duration-150 ${c?"rotate-180":""}`})]}),c&&(0,n.jsx)("div",{ref:h,role:"listbox","aria-activedescendant":m>=0?`${u}-opt-${m}`:void 0,className:`absolute z-20 ${"sm"===d?"min-w-[8rem]":"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:b.map((t,r)=>{let s=t.value===e,a=r===m;return(0,n.jsxs)("button",{id:`${u}-opt-${r}`,role:"option","aria-selected":s,type:"button",onMouseDown:e=>{e.preventDefault(),v(r)},onMouseEnter:()=>f(r),className:`w-full ${"sm"===d?"px-2 py-1 text-xs":"px-3 py-1.5 text-sm"} text-left flex items-center gap-2 transition-colors ${a?"bg-accent text-accent-foreground":"text-foreground"}`,children:[(0,n.jsx)(l.A,{size:"sm"===d?10:14,className:`shrink-0 ${s?"text-[var(--amber)]":"invisible"}`}),(0,n.jsx)("span",{className:"truncate",children:t.label})]},t.value)})})]})}function m({overridden:e}){return e?(0,n.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 f({checked:e,onChange:t,size:r="md",disabled:s,title:a,onClick:o}){let i="sm"===r;return(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:s,title:a,onClick:o??(()=>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 ${i?"h-4 w-7":"h-5 w-9"} ${e?"bg-[var(--amber)]":"bg-muted"}`,children:(0,n.jsx)("span",{className:`pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform ${i?"h-3 w-3":"h-4 w-4"} ${e?i?"translate-x-3":"translate-x-4":"translate-x-0"}`})})}function g({children:e,disabled:t,onClick:r,type:s="button",className:a="",...o}){return(0,n.jsx)("button",{type:s,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 ${a}`,...o,children:e})}function h({icon:e,title:t,description:r,badge:s,children:a,className:o=""}){return(0,n.jsxs)("div",{className:`rounded-xl border border-border/50 bg-card/50 p-5 ${o}`,children:[(0,n.jsxs)("div",{className:"flex items-start gap-3 mb-4",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-lg bg-muted/50 flex items-center justify-center shrink-0 mt-0.5",children:(0,n.jsx)("span",{className:"text-muted-foreground",children:e})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:t}),s]}),r&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:r})]})]}),(0,n.jsx)("div",{className:"space-y-4 pl-11",children:a})]})}function b({label:e,hint:t,children:r}){return(0,n.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"text-sm text-foreground",children:e}),t&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:t})]}),(0,n.jsx)("div",{className:"shrink-0",children:r})]})}},98641:(e,t,r)=>{function n(e){return JSON.stringify(String(e))}function s(e){return/^[A-Za-z0-9_-]+$/.test(e)?e:n(e)}function a(e,t){let r=e.split(".").map(e=>e.trim()).filter(Boolean),n={},s=n;for(let e of r)s[e]={},s=s[e];return Object.assign(s,t),n}function o(e,t){let r=[`${s(e)}:`," mindos:"];if(t.type&&r.push(` type: ${n(t.type)}`),t.command&&r.push(` command: ${n(t.command)}`),t.url&&r.push(` url: ${n(t.url)}`),Array.isArray(t.args)&&r.push(` args: [${t.args.map(n).join(", ")}]`),t.env&&"object"==typeof t.env)for(let[e,a]of(r.push(" env:"),Object.entries(t.env)))r.push(` ${s(e)}: ${n(a)}`);if(t.headers&&"object"==typeof t.headers)for(let[e,a]of(r.push(" headers:"),Object.entries(t.headers)))r.push(` ${s(e)}: ${n(a)}`);return r.join("\n")}function i(e,t,r){var n,s;let i,l,d;if("stdio"===r)return function(e){let t={type:"stdio",command:"mindos",args:["mcp"],env:{MCP_TRANSPORT:"stdio"}};if("toml"===e.format){let t=`[${e.configKey}.mindos]
|
|
2
2
|
command = "mindos"
|
|
3
3
|
args = ["mcp"]
|
|
4
4
|
|
|
5
5
|
[${e.configKey}.mindos.env]
|
|
6
|
-
MCP_TRANSPORT = "stdio"`;return{snippet:t,displaySnippet:t,path:e.globalPath}}if(e.globalNestedKey){let r=JSON.stringify(
|
|
6
|
+
MCP_TRANSPORT = "stdio"`;return{snippet:t,displaySnippet:t,path:e.globalPath}}if("yaml"===e.format){let r=o(e.configKey,t);return{snippet:r,displaySnippet:r,path:e.globalPath}}if(e.globalNestedKey){let r=JSON.stringify(a(e.globalNestedKey,{mindos:t}),null,2);return{snippet:r,displaySnippet:r,path:e.globalPath}}let r=JSON.stringify({[e.configKey]:{mindos:t}},null,2);return{snippet:r,displaySnippet:r,path:e.globalPath}}(e);let u=t?.localIP?`http://${t.localIP}:${t.port}/mcp`:t?.endpoint??"http://127.0.0.1:8781/mcp";return n=t?.authToken,s=t?.maskedToken,i={url:u},n&&(i.headers={Authorization:`Bearer ${n}`}),l={url:u},s&&(l.headers={Authorization:`Bearer ${s}`}),{snippet:(d=t=>{if("toml"===e.format){let r=[`[${e.configKey}.mindos]`,'type = "http"',`url = "${u}"`],n=t.headers?.Authorization;return n&&(r.push(""),r.push(`[${e.configKey}.mindos.headers]`),r.push(`Authorization = "${n}"`)),r.join("\n")}return"yaml"===e.format?o(e.configKey,t):e.globalNestedKey?JSON.stringify(a(e.globalNestedKey,{mindos:t}),null,2):JSON.stringify({[e.configKey]:{mindos:t}},null,2)})(i),displaySnippet:d(n?l:i),path:(e.format,e.globalPath)}}r.d(t,{$k:()=>i})}}]);
|
package/static-web/_next/static/chunks/{6947.5f1325c9403c27b2.js → 6947.7e50e18da7dc4aef.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6947],{10500:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]])},13591:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},21036:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("columns-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]])},25208:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]])},38125:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]])},42973:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("hard-drive",[["path",{d:"M10 16h.01",key:"1bzywj"}],["path",{d:"M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"18tbho"}],["path",{d:"M21.946 12.013H2.054",key:"zqlbp7"}],["path",{d:"M6 16h.01",key:"1pmjb7"}]])},46884:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]])},47533:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]])},52285:(e,a,t)=>{t.r(a),t.d(a,{default:()=>h});var d=t(66839),l=t(
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6947],{10500:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]])},13591:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},21036:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("columns-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]])},25208:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]])},38125:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]])},42973:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("hard-drive",[["path",{d:"M10 16h.01",key:"1bzywj"}],["path",{d:"M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"18tbho"}],["path",{d:"M21.946 12.013H2.054",key:"zqlbp7"}],["path",{d:"M6 16h.01",key:"1pmjb7"}]])},46884:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]])},47533:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("type",[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]])},52285:(e,a,t)=>{t.r(a),t.d(a,{default:()=>h});var d=t(66839),l=t(60047);function h({open:e,onClose:a,initialTab:t}){return(0,d.jsx)("div",{style:{display:e?void 0:"none"},children:(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[10vh] modal-backdrop",onClick:e=>e.target===e.currentTarget&&a(),children:(0,d.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":"Settings",className:"w-full md:max-w-3xl md:mx-4 bg-card border-t md:border border-border rounded-t-2xl md:rounded-xl shadow-2xl flex flex-col h-[88vh] md:h-[80vh] md:max-h-[85vh]",children:(0,d.jsx)(l.default,{visible:e,variant:"modal",onClose:a,initialTab:t})})})})}},82296:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]])},95156:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("a-large-small",[["path",{d:"m15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16",key:"xik6mr"}],["path",{d:"M15.697 14h5.606",key:"1stdlc"}],["path",{d:"m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16",key:"d5nyq2"}],["path",{d:"M3.304 13h6.392",key:"1q3zxz"}]])},95333:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]])},96733:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]])},97786:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},98480:(e,a,t)=>{t.d(a,{A:()=>d});let d=(0,t(73015).A)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]])}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9216],{19216:(e,s,t)=>{t.r(s),t.d(s,{default:()=>h});var a=t(66839),r=t(44223),n=t(53454),i=t(72799),l=t(19378),o=t(5038),c=t(61017),d=t(44361),u=t(56261),m=t(58221),x=t(65799);let p=(0,x.createServerReference)("70be09a9f013847c12ad72ab50703b88ee5a6b2a06",x.callServer,void 0,x.findSourceMapURL,"createSpaceAction");var b=t(62800),f=t(25176);function h({t:e,dirPaths:s}){let t=(0,u.useRouter)(),[x,h]=(0,r.useState)(!1),[g,v]=(0,r.useState)(""),[N,j]=(0,r.useState)(""),[w,y]=(0,r.useState)(""),[k,S]=(0,r.useState)(!1),[C,A]=(0,r.useState)(""),[E,I]=(0,r.useState)(""),[L,z]=(0,r.useState)(null),[D,R]=(0,r.useState)(!0),K=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=()=>{h(!0),A(""),I(""),setTimeout(()=>K.current?.focus(),80)};return window.addEventListener("mindos:create-space",e),()=>window.removeEventListener("mindos:create-space",e)},[]),(0,r.useEffect)(()=>{x&&null===L&&(0,b.wD)().then(e=>{z(e),R(e)})},[x,L]);let M=(0,r.useCallback)(()=>{h(!1),v(""),j(""),y(""),A(""),I(""),z(null)},[]),P=(0,r.useCallback)(s=>s.includes("/")||s.includes("\\")?(I(e.home.spaceNameNoSlash??"Name cannot contain / or \\"),!1):(I(""),!0),[e]),T=(0,r.useMemo)(()=>{let e=g.trim();return e?(w?w+"/":"")+e+"/":""},[g,w]),$=(0,r.useCallback)(async()=>{if(!g.trim()||k||!P(g))return;S(!0),A("");let s=g.trim(),a=await p(s,N,w);if(a.success){let e=a.path??s;D&&L&&(0,b.Vz)(s,e,N),M(),t.refresh(),window.dispatchEvent(new Event("mindos:files-changed")),t.push(`/view/${(0,m.O0)(e+"/")}`)}else(a.error??"").includes("already exists")?A(e.home.spaceExists??"A space with this name already exists"):A(e.home.spaceCreateFailed??"Failed to create space");S(!1)},[g,N,w,k,M,t,e,P,D,L]),_=(0,r.useCallback)(e=>{"Escape"===e.key&&M(),"Enter"===e.key&&!e.shiftKey&&e.target instanceof HTMLInputElement&&(e.preventDefault(),$())},[M,$]);if(!x)return null;let F=e.home;return(0,n.createPortal)((0,a.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",onKeyDown:_,children:[(0,a.jsx)("div",{className:"absolute inset-0 overlay-backdrop",onClick:M}),(0,a.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":F.newSpace,className:"relative w-full max-w-md mx-4 rounded-2xl border border-border bg-card shadow-xl",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-5 pt-5 pb-3",children:[(0,a.jsx)("h3",{className:"text-base font-semibold text-foreground",children:F.newSpace}),(0,a.jsx)("button",{onClick:M,className:"p-1 rounded-md text-muted-foreground hover:bg-muted transition-colors",children:(0,a.jsx)(i.A,{size:14})})]}),(0,a.jsxs)("div",{className:"px-5 pb-5 flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:F.spaceLocation??"Location"}),(0,a.jsx)(f.A,{dirPaths:s,value:w,onChange:y,rootLabel:F.rootLevel??"Root"})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:F.spaceName}),(0,a.jsx)("input",{ref:K,type:"text",value:g,onChange:e=>{v(e.target.value),A(""),P(e.target.value)},placeholder:"e.g. \uD83D\uDCDD Notes",maxLength:80,"aria-invalid":!!E,"aria-describedby":E?"space-name-hint":void 0,className:`w-full px-3 py-2 text-sm rounded-lg border bg-background outline-none transition-colors ${E?"border-error focus-visible:border-error":"border-border focus-visible:ring-1 focus-visible:ring-ring"}`}),E&&(0,a.jsx)("span",{id:"space-name-hint",className:"text-xs text-error",children:E})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsxs)("label",{className:"text-xs font-medium text-muted-foreground",children:[F.spaceDescription," ",(0,a.jsxs)("span",{className:"opacity-50",children:["(",F.optional??"optional",")"]})]}),(0,a.jsx)("input",{type:"text",value:N,onChange:e=>j(e.target.value),placeholder:F.spaceDescPlaceholder??"Describe the purpose of this space",maxLength:200,className:"w-full px-3 py-2 text-sm rounded-lg border border-border bg-background text-foreground placeholder:text-muted-foreground outline-none focus-visible:ring-1 focus-visible:ring-ring transition-colors"})]}),(0,a.jsxs)("div",{className:"flex items-start gap-2.5 px-1 py-1",children:[(0,a.jsx)("button",{type:"button",role:"switch","aria-checked":D,disabled:!L,title:L?void 0:e.hints.configureAiKey,onClick:()=>R(e=>!e),className:`relative mt-0.5 inline-flex shrink-0 h-4 w-7 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 ${D?"bg-[var(--amber)]":"bg-muted"}`,children:(0,a.jsx)("span",{className:`pointer-events-none inline-block h-3 w-3 rounded-full bg-white shadow-sm transition-transform ${D?"translate-x-3":"translate-x-0"}`})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)(l.A,{size:12,className:"text-[var(--amber)] shrink-0"}),(0,a.jsx)("span",{className:"text-xs font-medium text-foreground",children:F.aiInit??"AI initialize content"})]}),!1===L&&(0,a.jsxs)("p",{className:"text-2xs text-muted-foreground mt-0.5 flex items-center gap-1",children:[(0,a.jsx)(o.A,{size:10,className:"text-[var(--amber)] shrink-0"}),F.aiInitNoKey??"Configure an API key in Settings → AI to enable"]}),L&&D&&(0,a.jsx)("p",{className:"text-2xs text-muted-foreground mt-0.5",children:F.aiInitHint??"AI will generate README and INSTRUCTION for this space"})]})]}),T&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground font-mono px-1",children:[(0,a.jsx)(c.A,{size:12,className:"shrink-0 text-[var(--amber)]"}),(0,a.jsx)("span",{className:"truncate",children:T})]}),C&&(0,a.jsx)("span",{role:"alert",className:"text-xs text-error px-1",children:C}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,a.jsx)("button",{onClick:M,className:"px-4 py-2 rounded-lg text-sm font-medium text-muted-foreground transition-colors hover:bg-muted",children:F.cancelCreate}),(0,a.jsxs)("button",{onClick:$,disabled:!g.trim()||k||!!E,className:"flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm font-medium bg-[var(--amber)] text-[var(--amber-foreground)] transition-colors hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed",children:[k&&(0,a.jsx)(d.A,{size:14,className:"animate-spin"}),F.createSpace]})]})]})]})]}),document.body)}}}]);
|