neuro-simulator 0.5.4__tar.gz → 0.6.1__tar.gz
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.
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/PKG-INFO +1 -2
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/package-lock.json +2 -2
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/package.json +1 -1
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/core/appInitializer.ts +111 -37
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/vite.config.ts +2 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/package-lock.json +95 -2
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/package.json +4 -1
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/App.vue +20 -11
- neuro_simulator-0.6.1/dashboard/src/components/config/FieldRenderer.vue +294 -0
- neuro_simulator-0.6.1/dashboard/src/locales/en.json +52 -0
- neuro_simulator-0.6.1/dashboard/src/locales/zh.json +52 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/main.ts +18 -1
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/ConfigView.vue +31 -8
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/hatch_build.py +14 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/pyproject.toml +2 -3
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/llm.py +23 -19
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/core.py +10 -10
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/llm.py +22 -19
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/generator.py +3 -3
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/manager.py +10 -8
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/cli.py +7 -12
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/agent_factory.py +9 -18
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/application.py +86 -56
- neuro_simulator-0.6.1/server/neuro_simulator/core/config.py +113 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/path_manager.py +7 -7
- neuro_simulator-0.6.1/server/neuro_simulator/services/audio.py +106 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/services/builtin.py +3 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/services/stream.py +1 -1
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/queue.py +2 -2
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/requirements.txt +1 -1
- neuro_simulator-0.5.4/dashboard/src/components/config/FieldRenderer.vue +0 -129
- neuro_simulator-0.5.4/docs/working_dir_example/config.yaml.example +0 -117
- neuro_simulator-0.5.4/server/neuro_simulator/config.yaml.example +0 -117
- neuro_simulator-0.5.4/server/neuro_simulator/core/config.py +0 -326
- neuro_simulator-0.5.4/server/neuro_simulator/services/audio.py +0 -98
- neuro_simulator-0.5.4/server/neuro_simulator/services/letta.py +0 -254
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/.github/workflows/release.yml +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/.gitignore +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/LICENSE +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/README.md +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/README.md +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/index.html +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/avatar.webp +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/background.webp +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/background_old.webp +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/banner.jpeg +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/channel_points.png +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/error.mp3 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/favicon.ico +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/causten.woff2 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/comic.woff2 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/first-coffee.woff2 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/noto-sans-sc.woff2 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/neuro_start.mp4 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/neurosama.png +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/sc_pink.png +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/sc_purple.png +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/sub_badge.svg +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/user_avatar.jpg +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/core/layoutManager.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/core/singletonManager.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/javascript/tooltip.js +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/javascript/viewers.js +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/main.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/apiClient.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/audioPlayer.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/bilibiliService.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/websocketClient.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/stream/neuroAvatar.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/stream/videoPlayer.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/style.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/base.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/chat.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/header.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/offline.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/responsive.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/settings.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/stream-info.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/stream.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/tooltip.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/types/common.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/chatDisplay.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/chatSidebar.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/liveIndicator.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/muteButton.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/neuroCaption.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/settingsModal.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/streamInfoDisplay.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/streamTimer.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/userInput.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/utils/wakeLockManager.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/vite-env.d.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/.cargo/config.toml +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/Cargo.lock +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/Cargo.toml +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/build.rs +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/capabilities/migrated.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/icons/icon.ico +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/icons/icon.png +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/src/lib.rs +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/src/main.rs +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/tauri.conf.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/tsconfig.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/e2e/tsconfig.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/e2e/vue.spec.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/env.d.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/eslint.config.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/index.html +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/playwright.config.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/public/favicon.ico +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/public/first-coffee.woff2 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/base.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/fonts.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/logo.svg +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/main.css +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/ContextTab.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/LogsTab.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/MemoryTab.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/ToolsTab.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/common/ConfirmDialog.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/router/index.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/agent.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/config.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/connection.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/counter.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/logs.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/stream.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/tools.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/ui.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/AgentView.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/ChatBotView.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/ControlView.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/HomeView.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/LogsView.vue +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.app.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.node.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.vitest.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/vite.config.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/vitest.config.ts +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/assets/start.gif +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/letta_agents_example/LETTA_CLOUD_ONLY_neuro-sama.af +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/letta_agents_example/README.md +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/letta_agents_example/sys_prompt_for_sleeptime.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memories/core_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memories/init_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memories/temp_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memory_manager/history.jsonl +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memory_manager/memory_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memory_manager/tools.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/neuro/history.jsonl +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/neuro/neuro_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/neuro/tools.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/!!!NO-CHANGE-WILL-BE-SAVED-AFTER-RESTART!!! +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/add_to_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/base.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/create_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/delete_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/get_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/get_core_memory_blocks.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/model_spin.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/model_zoom.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/remove_from_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/speak.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/update_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/assets/neuro_start.mp4 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/chatbot/chatbot_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/chatbot/tools.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memories/core_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memories/init_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memories/temp_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memory_agent/memory_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memory_agent/tools.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/nickname_gen/data/adjectives.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/nickname_gen/data/nouns.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/nickname_gen/data/special_users.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/tools/builtin_tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/tools/builtin_tools/post_chat_message.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/README.md +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/WEBSOCKET_API.md +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/core.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/chat_history.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/core_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/init_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/manager.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/temp_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/neuro_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/add_to_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/base.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/create_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/delete_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/get_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/get_core_memory_blocks.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/manager.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/model_spin.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/model_zoom.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/remove_from_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/speak.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/update_core_memory_block.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/api/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/api/system.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/assets/neuro_start.mp4 +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/core_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/init_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/manager.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/temp_memory.json +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/data/adjectives.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/data/nouns.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/data/special_users.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/prompts/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/prompts/chatbot_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/prompts/memory_prompt.txt +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/base.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/post_chat_message.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/agent_interface.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/services/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/__init__.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/logging.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/process.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/state.py +0 -0
- {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/websocket.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: neuro_simulator
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.6.1
|
4
4
|
Summary: Neuro Simulator Server
|
5
5
|
Project-URL: Homepage, https://github.com/Moha-Master/neuro-simulator
|
6
6
|
Project-URL: Repository, https://github.com/Moha-Master/neuro-simulator
|
@@ -22,7 +22,6 @@ Requires-Dist: azure-cognitiveservices-speech
|
|
22
22
|
Requires-Dist: fastapi
|
23
23
|
Requires-Dist: google-genai
|
24
24
|
Requires-Dist: jinja2
|
25
|
-
Requires-Dist: letta-client
|
26
25
|
Requires-Dist: mutagen
|
27
26
|
Requires-Dist: openai
|
28
27
|
Requires-Dist: pydantic
|
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "Neuro Simulator Client",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.2.11",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "Neuro Simulator Client",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.2.11",
|
10
10
|
"dependencies": {
|
11
11
|
"@fontsource/inter": "^5.2.6",
|
12
12
|
"@tauri-apps/api": "^2.6.0",
|
@@ -19,7 +19,7 @@ import { MuteButton } from '../ui/muteButton';
|
|
19
19
|
import { getLatestReplayVideo, buildBilibiliIframeUrl } from '../services/bilibiliService';
|
20
20
|
|
21
21
|
export class AppInitializer {
|
22
|
-
private wsClient: WebSocketClient;
|
22
|
+
private wsClient: WebSocketClient | null;
|
23
23
|
private audioPlayer: AudioPlayer;
|
24
24
|
private videoPlayer: VideoPlayer;
|
25
25
|
private neuroAvatar: NeuroAvatar;
|
@@ -48,21 +48,9 @@ export class AppInitializer {
|
|
48
48
|
|
49
49
|
this.currentSettings = SettingsModal.getSettings();
|
50
50
|
this.settingsModal = new SettingsModal((newSettings) => this.handleSettingsUpdate(newSettings));
|
51
|
-
|
52
|
-
const backendWsUrl = this.currentSettings.backendUrl
|
53
|
-
? `${this.currentSettings.backendUrl}/ws/stream`
|
54
|
-
: '';
|
55
51
|
|
56
|
-
|
57
|
-
|
58
|
-
this.wsClient = new WebSocketClient({
|
59
|
-
url: backendWsUrl,
|
60
|
-
autoReconnect: true,
|
61
|
-
maxReconnectAttempts: this.currentSettings.reconnectAttempts,
|
62
|
-
onMessage: universalMessageHandler,
|
63
|
-
onOpen: () => this.goOnline(),
|
64
|
-
onDisconnect: () => this.goOffline(),
|
65
|
-
});
|
52
|
+
// 初始化 wsClient 为 null,等待 start 方法中的探测逻辑
|
53
|
+
this.wsClient = null;
|
66
54
|
|
67
55
|
this.audioPlayer = new AudioPlayer();
|
68
56
|
this.videoPlayer = new VideoPlayer();
|
@@ -90,17 +78,14 @@ export class AppInitializer {
|
|
90
78
|
if (this.isStarted) return;
|
91
79
|
this.isStarted = true;
|
92
80
|
|
81
|
+
// First, probe for an integrated server
|
82
|
+
this.probeForIntegratedServer();
|
83
|
+
|
84
|
+
// Then start the layout manager and go offline
|
93
85
|
this.layoutManager.start();
|
94
|
-
this.goOffline(); // Start in offline state
|
95
|
-
|
86
|
+
this.goOffline(); // Start in offline state, connection status will update UI via goOnline
|
96
87
|
this.updateUiWithSettings();
|
97
|
-
|
98
|
-
if (this.wsClient.getUrl()) {
|
99
|
-
this.wsClient.connect();
|
100
|
-
} else {
|
101
|
-
console.warn("Backend URL is not configured. Opening settings modal.");
|
102
|
-
this.settingsModal.open();
|
103
|
-
}
|
88
|
+
// Connection logic is handled by probeForIntegratedServer
|
104
89
|
}
|
105
90
|
|
106
91
|
private setupSettingsModalTrigger(): void {
|
@@ -142,21 +127,106 @@ export class AppInitializer {
|
|
142
127
|
|
143
128
|
this.updateUiWithSettings();
|
144
129
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
130
|
+
if (this.wsClient) {
|
131
|
+
const newUrl = newSettings.backendUrl ? `${newSettings.backendUrl}/ws/stream` : '';
|
132
|
+
this.wsClient.updateOptions({
|
133
|
+
url: newUrl,
|
134
|
+
maxReconnectAttempts: newSettings.reconnectAttempts,
|
135
|
+
});
|
150
136
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
137
|
+
this.wsClient.disconnect();
|
138
|
+
|
139
|
+
setTimeout(() => {
|
140
|
+
if(this.wsClient && this.wsClient.getUrl()) {
|
141
|
+
this.wsClient.connect();
|
142
|
+
} else {
|
143
|
+
console.warn("Cannot connect: Backend URL is empty after update or WebSocket client not ready.");
|
144
|
+
}
|
145
|
+
}, 500);
|
146
|
+
} else {
|
147
|
+
console.warn("WebSocket client not initialized, cannot update settings.");
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
private initWebSocketClient(backendUrl: string): void {
|
152
|
+
const url = backendUrl ? `${backendUrl}/ws/stream` : '';
|
153
|
+
const universalMessageHandler = (message: WebSocketMessage) => this.handleWebSocketMessage(message);
|
154
|
+
|
155
|
+
// If wsClient already exists, update its configuration; otherwise, create a new instance
|
156
|
+
if (this.wsClient) {
|
157
|
+
this.wsClient.updateOptions({
|
158
|
+
url: url,
|
159
|
+
autoReconnect: true,
|
160
|
+
maxReconnectAttempts: this.currentSettings.reconnectAttempts,
|
161
|
+
onMessage: universalMessageHandler,
|
162
|
+
onOpen: () => this.goOnline(),
|
163
|
+
onDisconnect: () => this.goOffline(),
|
164
|
+
});
|
165
|
+
// If the new URL is valid, disconnect the old connection and try the new one
|
166
|
+
if (url) {
|
167
|
+
this.wsClient.disconnect();
|
168
|
+
setTimeout(() => {
|
169
|
+
this.wsClient!.connect();
|
170
|
+
}, 500);
|
171
|
+
}
|
172
|
+
} else {
|
173
|
+
this.wsClient = new WebSocketClient({
|
174
|
+
url: url,
|
175
|
+
autoReconnect: true,
|
176
|
+
maxReconnectAttempts: this.currentSettings.reconnectAttempts,
|
177
|
+
onMessage: universalMessageHandler,
|
178
|
+
onOpen: () => this.goOnline(),
|
179
|
+
onDisconnect: () => this.goOffline(),
|
180
|
+
});
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
private async probeForIntegratedServer(): Promise<void> {
|
185
|
+
// First, load the currently stored settings
|
186
|
+
const storedSettings = SettingsModal.getSettings();
|
187
|
+
console.log("Probing for integrated server. Stored settings:", storedSettings);
|
188
|
+
|
189
|
+
// Try to connect to the local Server's health check endpoint
|
190
|
+
try {
|
191
|
+
// Construct the health check URL using the current page's origin
|
192
|
+
const healthUrl = new URL('/api/system/health', window.location.origin).toString();
|
193
|
+
console.log("Probing integrated server at:", healthUrl);
|
194
|
+
|
195
|
+
const response = await fetch(healthUrl);
|
196
|
+
|
197
|
+
if (response.ok) {
|
198
|
+
console.log("Integrated server detected via health check. Auto-connecting...");
|
199
|
+
// 1. Set to integrated mode, using the current origin
|
200
|
+
const integratedBackendUrl = window.location.origin;
|
201
|
+
// 2. Update the current settings' backendUrl
|
202
|
+
this.currentSettings = { ...this.currentSettings, backendUrl: integratedBackendUrl };
|
203
|
+
// 3. Save to localStorage for future use
|
204
|
+
localStorage.setItem('neuro_settings', JSON.stringify(this.currentSettings));
|
205
|
+
// 4. Initialize or update the WebSocket client
|
206
|
+
this.initWebSocketClient(integratedBackendUrl);
|
207
|
+
// 5. Try to connect if the client and URL are valid
|
208
|
+
if (this.wsClient && integratedBackendUrl) {
|
209
|
+
this.wsClient.connect();
|
210
|
+
}
|
211
|
+
return; // Success, exit
|
156
212
|
} else {
|
157
|
-
console.
|
213
|
+
console.log("Health check failed, not an integrated server. Status:", response.status);
|
158
214
|
}
|
159
|
-
}
|
215
|
+
} catch (error) {
|
216
|
+
console.log("Failed to probe for integrated server, assuming standalone mode.", error);
|
217
|
+
}
|
218
|
+
|
219
|
+
// If probing fails, fall back to using the stored settings
|
220
|
+
console.log("Falling back to stored backend URL:", storedSettings.backendUrl);
|
221
|
+
this.initWebSocketClient(storedSettings.backendUrl);
|
222
|
+
|
223
|
+
// Attempt to connect if the client and URL are valid
|
224
|
+
if (this.wsClient && storedSettings.backendUrl) {
|
225
|
+
this.wsClient.connect();
|
226
|
+
} else if (!storedSettings.backendUrl) {
|
227
|
+
console.warn("Backend URL is not configured via probe or stored settings. Opening settings modal.");
|
228
|
+
this.settingsModal.open();
|
229
|
+
}
|
160
230
|
}
|
161
231
|
|
162
232
|
private updateUiWithSettings(): void {
|
@@ -366,7 +436,11 @@ export class AppInitializer {
|
|
366
436
|
username: this.currentSettings.username,
|
367
437
|
...payload
|
368
438
|
};
|
369
|
-
this.wsClient
|
439
|
+
if (this.wsClient) {
|
440
|
+
this.wsClient.send(message);
|
441
|
+
} else {
|
442
|
+
console.warn("Cannot send message: WebSocket client is not initialized.");
|
443
|
+
}
|
370
444
|
}
|
371
445
|
|
372
446
|
private showStreamContent(): void {
|
@@ -1,16 +1,18 @@
|
|
1
1
|
{
|
2
2
|
"name": "neuro-simulator-dashboard",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.6.0",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "neuro-simulator-dashboard",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.6.0",
|
10
10
|
"dependencies": {
|
11
11
|
"@mdi/font": "^7.4.47",
|
12
12
|
"pinia": "^3.0.3",
|
13
|
+
"uuid": "^9.0.1",
|
13
14
|
"vue": "^3.5.18",
|
15
|
+
"vue-i18n": "^11.1.12",
|
14
16
|
"vue-router": "^4.5.1",
|
15
17
|
"vuetify": "^3.10.3"
|
16
18
|
},
|
@@ -19,6 +21,7 @@
|
|
19
21
|
"@tsconfig/node22": "^22.0.2",
|
20
22
|
"@types/jsdom": "^21.1.7",
|
21
23
|
"@types/node": "^22.16.5",
|
24
|
+
"@types/uuid": "^9.0.8",
|
22
25
|
"@vitejs/plugin-vue": "^6.0.1",
|
23
26
|
"@vitest/eslint-plugin": "^1.3.4",
|
24
27
|
"@vue/eslint-config-prettier": "^10.2.0",
|
@@ -1336,6 +1339,50 @@
|
|
1336
1339
|
"url": "https://github.com/sponsors/nzakas"
|
1337
1340
|
}
|
1338
1341
|
},
|
1342
|
+
"node_modules/@intlify/core-base": {
|
1343
|
+
"version": "11.1.12",
|
1344
|
+
"resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.1.12.tgz",
|
1345
|
+
"integrity": "sha512-whh0trqRsSqVLNEUCwU59pyJZYpU8AmSWl8M3Jz2Mv5ESPP6kFh4juas2NpZ1iCvy7GlNRffUD1xr84gceimjg==",
|
1346
|
+
"license": "MIT",
|
1347
|
+
"dependencies": {
|
1348
|
+
"@intlify/message-compiler": "11.1.12",
|
1349
|
+
"@intlify/shared": "11.1.12"
|
1350
|
+
},
|
1351
|
+
"engines": {
|
1352
|
+
"node": ">= 16"
|
1353
|
+
},
|
1354
|
+
"funding": {
|
1355
|
+
"url": "https://github.com/sponsors/kazupon"
|
1356
|
+
}
|
1357
|
+
},
|
1358
|
+
"node_modules/@intlify/message-compiler": {
|
1359
|
+
"version": "11.1.12",
|
1360
|
+
"resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.1.12.tgz",
|
1361
|
+
"integrity": "sha512-Fv9iQSJoJaXl4ZGkOCN1LDM3trzze0AS2zRz2EHLiwenwL6t0Ki9KySYlyr27yVOj5aVz0e55JePO+kELIvfdQ==",
|
1362
|
+
"license": "MIT",
|
1363
|
+
"dependencies": {
|
1364
|
+
"@intlify/shared": "11.1.12",
|
1365
|
+
"source-map-js": "^1.0.2"
|
1366
|
+
},
|
1367
|
+
"engines": {
|
1368
|
+
"node": ">= 16"
|
1369
|
+
},
|
1370
|
+
"funding": {
|
1371
|
+
"url": "https://github.com/sponsors/kazupon"
|
1372
|
+
}
|
1373
|
+
},
|
1374
|
+
"node_modules/@intlify/shared": {
|
1375
|
+
"version": "11.1.12",
|
1376
|
+
"resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.1.12.tgz",
|
1377
|
+
"integrity": "sha512-Om86EjuQtA69hdNj3GQec9ZC0L0vPSAnXzB3gP/gyJ7+mA7t06d9aOAiqMZ+xEOsumGP4eEBlfl8zF2LOTzf2A==",
|
1378
|
+
"license": "MIT",
|
1379
|
+
"engines": {
|
1380
|
+
"node": ">= 16"
|
1381
|
+
},
|
1382
|
+
"funding": {
|
1383
|
+
"url": "https://github.com/sponsors/kazupon"
|
1384
|
+
}
|
1385
|
+
},
|
1339
1386
|
"node_modules/@isaacs/cliui": {
|
1340
1387
|
"version": "8.0.2",
|
1341
1388
|
"resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
@@ -1903,6 +1950,13 @@
|
|
1903
1950
|
"dev": true,
|
1904
1951
|
"license": "MIT"
|
1905
1952
|
},
|
1953
|
+
"node_modules/@types/uuid": {
|
1954
|
+
"version": "9.0.8",
|
1955
|
+
"resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-9.0.8.tgz",
|
1956
|
+
"integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==",
|
1957
|
+
"dev": true,
|
1958
|
+
"license": "MIT"
|
1959
|
+
},
|
1906
1960
|
"node_modules/@typescript-eslint/eslint-plugin": {
|
1907
1961
|
"version": "8.44.1",
|
1908
1962
|
"resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.44.1.tgz",
|
@@ -6073,6 +6127,19 @@
|
|
6073
6127
|
"dev": true,
|
6074
6128
|
"license": "MIT"
|
6075
6129
|
},
|
6130
|
+
"node_modules/uuid": {
|
6131
|
+
"version": "9.0.1",
|
6132
|
+
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
|
6133
|
+
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
|
6134
|
+
"funding": [
|
6135
|
+
"https://github.com/sponsors/broofa",
|
6136
|
+
"https://github.com/sponsors/ctavan"
|
6137
|
+
],
|
6138
|
+
"license": "MIT",
|
6139
|
+
"bin": {
|
6140
|
+
"uuid": "dist/bin/uuid"
|
6141
|
+
}
|
6142
|
+
},
|
6076
6143
|
"node_modules/vite": {
|
6077
6144
|
"version": "7.1.7",
|
6078
6145
|
"resolved": "https://registry.npmmirror.com/vite/-/vite-7.1.7.tgz",
|
@@ -6520,6 +6587,32 @@
|
|
6520
6587
|
"url": "https://opencollective.com/eslint"
|
6521
6588
|
}
|
6522
6589
|
},
|
6590
|
+
"node_modules/vue-i18n": {
|
6591
|
+
"version": "11.1.12",
|
6592
|
+
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.1.12.tgz",
|
6593
|
+
"integrity": "sha512-BnstPj3KLHLrsqbVU2UOrPmr0+Mv11bsUZG0PyCOzsawCivk8W00GMXHeVUWIDOgNaScCuZah47CZFE+Wnl8mw==",
|
6594
|
+
"license": "MIT",
|
6595
|
+
"dependencies": {
|
6596
|
+
"@intlify/core-base": "11.1.12",
|
6597
|
+
"@intlify/shared": "11.1.12",
|
6598
|
+
"@vue/devtools-api": "^6.5.0"
|
6599
|
+
},
|
6600
|
+
"engines": {
|
6601
|
+
"node": ">= 16"
|
6602
|
+
},
|
6603
|
+
"funding": {
|
6604
|
+
"url": "https://github.com/sponsors/kazupon"
|
6605
|
+
},
|
6606
|
+
"peerDependencies": {
|
6607
|
+
"vue": "^3.0.0"
|
6608
|
+
}
|
6609
|
+
},
|
6610
|
+
"node_modules/vue-i18n/node_modules/@vue/devtools-api": {
|
6611
|
+
"version": "6.6.4",
|
6612
|
+
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
|
6613
|
+
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
|
6614
|
+
"license": "MIT"
|
6615
|
+
},
|
6523
6616
|
"node_modules/vue-router": {
|
6524
6617
|
"version": "4.5.1",
|
6525
6618
|
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "neuro-simulator-dashboard",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.6.0",
|
4
4
|
"private": true,
|
5
5
|
"type": "module",
|
6
6
|
"engines": {
|
@@ -20,7 +20,9 @@
|
|
20
20
|
"dependencies": {
|
21
21
|
"@mdi/font": "^7.4.47",
|
22
22
|
"pinia": "^3.0.3",
|
23
|
+
"uuid": "^9.0.1",
|
23
24
|
"vue": "^3.5.18",
|
25
|
+
"vue-i18n": "^11.1.12",
|
24
26
|
"vue-router": "^4.5.1",
|
25
27
|
"vuetify": "^3.10.3"
|
26
28
|
},
|
@@ -29,6 +31,7 @@
|
|
29
31
|
"@tsconfig/node22": "^22.0.2",
|
30
32
|
"@types/jsdom": "^21.1.7",
|
31
33
|
"@types/node": "^22.16.5",
|
34
|
+
"@types/uuid": "^9.0.8",
|
32
35
|
"@vitejs/plugin-vue": "^6.0.1",
|
33
36
|
"@vitest/eslint-plugin": "^1.3.4",
|
34
37
|
"@vue/eslint-config-prettier": "^10.2.0",
|
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
<template>
|
2
3
|
<v-app>
|
3
4
|
<v-app-bar app>
|
@@ -6,6 +7,11 @@
|
|
6
7
|
|
7
8
|
<v-spacer></v-spacer>
|
8
9
|
|
10
|
+
<v-btn-toggle v-model="locale" rounded="0" variant="outlined" density="compact" mandatory class="mr-4">
|
11
|
+
<v-btn value="en">EN</v-btn>
|
12
|
+
<v-btn value="zh">ZH</v-btn>
|
13
|
+
</v-btn-toggle>
|
14
|
+
|
9
15
|
<v-chip
|
10
16
|
:color="statusColor"
|
11
17
|
text-color="white"
|
@@ -23,7 +29,7 @@
|
|
23
29
|
<template v-slot:prepend>
|
24
30
|
<v-icon>{{ item.icon }}</v-icon>
|
25
31
|
</template>
|
26
|
-
<v-list-item-title>{{ item.title }}</v-list-item-title>
|
32
|
+
<v-list-item-title>{{ t(item.title) }}</v-list-item-title>
|
27
33
|
</v-list-item>
|
28
34
|
</v-list>
|
29
35
|
|
@@ -45,11 +51,11 @@
|
|
45
51
|
<!-- Disconnection Dialog -->
|
46
52
|
<v-dialog v-model="connectionStore.wasUnexpectedlyDisconnected" persistent max-width="400">
|
47
53
|
<v-card>
|
48
|
-
<v-card-title class="text-h5"
|
49
|
-
<v-card-text
|
54
|
+
<v-card-title class="text-h5">{{ t('Connection Lost') }}</v-card-title>
|
55
|
+
<v-card-text>{{ t('The connection to the backend was unexpectedly lost. Please reconnect.') }}</v-card-text>
|
50
56
|
<v-card-actions>
|
51
57
|
<v-spacer></v-spacer>
|
52
|
-
<v-btn color="primary" variant="flat" @click="handleReconnectRedirect"
|
58
|
+
<v-btn color="primary" variant="flat" @click="handleReconnectRedirect">{{ t('Go to Connection Page') }}</v-btn>
|
53
59
|
</v-card-actions>
|
54
60
|
</v-card>
|
55
61
|
</v-dialog>
|
@@ -60,18 +66,21 @@
|
|
60
66
|
|
61
67
|
<script setup lang="ts">
|
62
68
|
import { ref, onMounted, computed } from 'vue';
|
69
|
+
import { useI18n } from 'vue-i18n';
|
63
70
|
import { useConnectionStore } from '@/stores/connection';
|
64
71
|
import { useConfigStore } from '@/stores/config';
|
65
72
|
import { useRouter } from 'vue-router';
|
66
73
|
import ConfirmDialog from '@/components/common/ConfirmDialog.vue';
|
67
74
|
|
75
|
+
const { t, locale } = useI18n();
|
76
|
+
|
68
77
|
const drawer = ref(true); // Sidebar is open by default
|
69
78
|
|
70
79
|
const allNavItems = [
|
71
|
-
{ title: '
|
72
|
-
{ title: '
|
73
|
-
{ title: '
|
74
|
-
{ title: '
|
80
|
+
{ title: 'Connection', icon: 'mdi-connection', to: '/' },
|
81
|
+
{ title: 'Control', icon: 'mdi-gamepad-variant', to: '/control' },
|
82
|
+
{ title: 'Configuration', icon: 'mdi-cog', to: '/config' },
|
83
|
+
{ title: 'Logs', icon: 'mdi-file-document-outline', to: '/logs' },
|
75
84
|
{ title: 'Agent', icon: 'mdi-robot', to: '/agent', name: 'agent' },
|
76
85
|
{ title: 'ChatBot', icon: 'mdi-forum', to: '/chatbot' },
|
77
86
|
];
|
@@ -90,8 +99,8 @@ const visibleNavItems = computed(() => {
|
|
90
99
|
|
91
100
|
const statusColor = computed(() => {
|
92
101
|
const status = connectionStore.statusText;
|
93
|
-
if (status === '已连接') return 'success';
|
94
|
-
if (status === '连接中...') return 'warning';
|
102
|
+
if (status === '已连接' || status === 'Connected') return 'success';
|
103
|
+
if (status === '连接中...' || status === 'Connecting...') return 'warning';
|
95
104
|
return 'error';
|
96
105
|
});
|
97
106
|
|
@@ -123,4 +132,4 @@ onMounted(async () => {
|
|
123
132
|
color: #8A8A8A; /* A light grey color */
|
124
133
|
text-align: center;
|
125
134
|
}
|
126
|
-
</style>
|
135
|
+
</style>
|