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.
Files changed (234) hide show
  1. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/PKG-INFO +1 -2
  2. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/package-lock.json +2 -2
  3. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/package.json +1 -1
  4. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/core/appInitializer.ts +111 -37
  5. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/vite.config.ts +2 -0
  6. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/package-lock.json +95 -2
  7. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/package.json +4 -1
  8. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/App.vue +20 -11
  9. neuro_simulator-0.6.1/dashboard/src/components/config/FieldRenderer.vue +294 -0
  10. neuro_simulator-0.6.1/dashboard/src/locales/en.json +52 -0
  11. neuro_simulator-0.6.1/dashboard/src/locales/zh.json +52 -0
  12. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/main.ts +18 -1
  13. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/ConfigView.vue +31 -8
  14. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/hatch_build.py +14 -0
  15. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/pyproject.toml +2 -3
  16. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/llm.py +23 -19
  17. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/core.py +10 -10
  18. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/llm.py +22 -19
  19. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/generator.py +3 -3
  20. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/manager.py +10 -8
  21. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/cli.py +7 -12
  22. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/agent_factory.py +9 -18
  23. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/application.py +86 -56
  24. neuro_simulator-0.6.1/server/neuro_simulator/core/config.py +113 -0
  25. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/path_manager.py +7 -7
  26. neuro_simulator-0.6.1/server/neuro_simulator/services/audio.py +106 -0
  27. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/services/builtin.py +3 -0
  28. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/services/stream.py +1 -1
  29. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/queue.py +2 -2
  30. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/requirements.txt +1 -1
  31. neuro_simulator-0.5.4/dashboard/src/components/config/FieldRenderer.vue +0 -129
  32. neuro_simulator-0.5.4/docs/working_dir_example/config.yaml.example +0 -117
  33. neuro_simulator-0.5.4/server/neuro_simulator/config.yaml.example +0 -117
  34. neuro_simulator-0.5.4/server/neuro_simulator/core/config.py +0 -326
  35. neuro_simulator-0.5.4/server/neuro_simulator/services/audio.py +0 -98
  36. neuro_simulator-0.5.4/server/neuro_simulator/services/letta.py +0 -254
  37. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/.github/workflows/release.yml +0 -0
  38. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/.gitignore +0 -0
  39. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/LICENSE +0 -0
  40. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/README.md +0 -0
  41. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/README.md +0 -0
  42. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/index.html +0 -0
  43. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/avatar.webp +0 -0
  44. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/background.webp +0 -0
  45. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/background_old.webp +0 -0
  46. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/banner.jpeg +0 -0
  47. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/channel_points.png +0 -0
  48. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/error.mp3 +0 -0
  49. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/favicon.ico +0 -0
  50. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/causten.woff2 +0 -0
  51. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/comic.woff2 +0 -0
  52. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/first-coffee.woff2 +0 -0
  53. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/fonts/noto-sans-sc.woff2 +0 -0
  54. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/neuro_start.mp4 +0 -0
  55. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/neurosama.png +0 -0
  56. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/sc_pink.png +0 -0
  57. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/sc_purple.png +0 -0
  58. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/sub_badge.svg +0 -0
  59. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/public/user_avatar.jpg +0 -0
  60. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/core/layoutManager.ts +0 -0
  61. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/core/singletonManager.ts +0 -0
  62. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/javascript/tooltip.js +0 -0
  63. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/javascript/viewers.js +0 -0
  64. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/main.ts +0 -0
  65. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/apiClient.ts +0 -0
  66. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/audioPlayer.ts +0 -0
  67. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/bilibiliService.ts +0 -0
  68. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/services/websocketClient.ts +0 -0
  69. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/stream/neuroAvatar.ts +0 -0
  70. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/stream/videoPlayer.ts +0 -0
  71. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/style.css +0 -0
  72. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/base.css +0 -0
  73. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/chat.css +0 -0
  74. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/header.css +0 -0
  75. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/offline.css +0 -0
  76. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/responsive.css +0 -0
  77. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/settings.css +0 -0
  78. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/stream-info.css +0 -0
  79. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/stream.css +0 -0
  80. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/styles/tooltip.css +0 -0
  81. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/types/common.ts +0 -0
  82. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/chatDisplay.ts +0 -0
  83. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/chatSidebar.ts +0 -0
  84. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/liveIndicator.ts +0 -0
  85. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/muteButton.ts +0 -0
  86. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/neuroCaption.ts +0 -0
  87. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/settingsModal.ts +0 -0
  88. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/streamInfoDisplay.ts +0 -0
  89. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/streamTimer.ts +0 -0
  90. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/ui/userInput.ts +0 -0
  91. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/utils/wakeLockManager.ts +0 -0
  92. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src/vite-env.d.ts +0 -0
  93. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/.cargo/config.toml +0 -0
  94. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/Cargo.lock +0 -0
  95. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/Cargo.toml +0 -0
  96. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/build.rs +0 -0
  97. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/capabilities/migrated.json +0 -0
  98. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/icons/icon.ico +0 -0
  99. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/icons/icon.png +0 -0
  100. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/src/lib.rs +0 -0
  101. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/src/main.rs +0 -0
  102. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/src-tauri/tauri.conf.json +0 -0
  103. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/client/tsconfig.json +0 -0
  104. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/e2e/tsconfig.json +0 -0
  105. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/e2e/vue.spec.ts +0 -0
  106. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/env.d.ts +0 -0
  107. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/eslint.config.ts +0 -0
  108. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/index.html +0 -0
  109. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/playwright.config.ts +0 -0
  110. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/public/favicon.ico +0 -0
  111. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/public/first-coffee.woff2 +0 -0
  112. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/base.css +0 -0
  113. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/fonts.css +0 -0
  114. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/logo.svg +0 -0
  115. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/assets/main.css +0 -0
  116. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/ContextTab.vue +0 -0
  117. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/LogsTab.vue +0 -0
  118. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/MemoryTab.vue +0 -0
  119. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/agent/ToolsTab.vue +0 -0
  120. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/components/common/ConfirmDialog.vue +0 -0
  121. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/router/index.ts +0 -0
  122. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/agent.ts +0 -0
  123. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/config.ts +0 -0
  124. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/connection.ts +0 -0
  125. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/counter.ts +0 -0
  126. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/logs.ts +0 -0
  127. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/stream.ts +0 -0
  128. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/tools.ts +0 -0
  129. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/stores/ui.ts +0 -0
  130. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/AgentView.vue +0 -0
  131. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/ChatBotView.vue +0 -0
  132. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/ControlView.vue +0 -0
  133. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/HomeView.vue +0 -0
  134. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/src/views/LogsView.vue +0 -0
  135. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.app.json +0 -0
  136. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.json +0 -0
  137. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.node.json +0 -0
  138. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/tsconfig.vitest.json +0 -0
  139. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/vite.config.ts +0 -0
  140. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/dashboard/vitest.config.ts +0 -0
  141. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/assets/start.gif +0 -0
  142. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/letta_agents_example/LETTA_CLOUD_ONLY_neuro-sama.af +0 -0
  143. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/letta_agents_example/README.md +0 -0
  144. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/letta_agents_example/sys_prompt_for_sleeptime.txt +0 -0
  145. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memories/core_memory.json +0 -0
  146. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memories/init_memory.json +0 -0
  147. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memories/temp_memory.json +0 -0
  148. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memory_manager/history.jsonl +0 -0
  149. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memory_manager/memory_prompt.txt +0 -0
  150. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/memory_manager/tools.json +0 -0
  151. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/neuro/history.jsonl +0 -0
  152. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/neuro/neuro_prompt.txt +0 -0
  153. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/neuro/tools.json +0 -0
  154. {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
  155. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/add_temp_memory.py +0 -0
  156. {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
  157. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/base.py +0 -0
  158. {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
  159. {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
  160. {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
  161. {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
  162. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/model_spin.py +0 -0
  163. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/model_zoom.py +0 -0
  164. {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
  165. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/agents/tools/builtin_tools/speak.py +0 -0
  166. {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
  167. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/assets/neuro_start.mp4 +0 -0
  168. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/chatbot/chatbot_prompt.txt +0 -0
  169. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/chatbot/tools.json +0 -0
  170. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memories/core_memory.json +0 -0
  171. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memories/init_memory.json +0 -0
  172. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memories/temp_memory.json +0 -0
  173. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memory_agent/memory_prompt.txt +0 -0
  174. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/memory_agent/tools.json +0 -0
  175. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/nickname_gen/data/adjectives.txt +0 -0
  176. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/nickname_gen/data/nouns.txt +0 -0
  177. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/nickname_gen/data/special_users.txt +0 -0
  178. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/tools/builtin_tools/add_temp_memory.py +0 -0
  179. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/docs/working_dir_example/chatbot/tools/builtin_tools/post_chat_message.py +0 -0
  180. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/README.md +0 -0
  181. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/WEBSOCKET_API.md +0 -0
  182. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/__init__.py +0 -0
  183. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/__init__.py +0 -0
  184. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/core.py +0 -0
  185. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/__init__.py +0 -0
  186. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/chat_history.json +0 -0
  187. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/core_memory.json +0 -0
  188. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/init_memory.json +0 -0
  189. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/manager.py +0 -0
  190. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory/temp_memory.json +0 -0
  191. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/memory_prompt.txt +0 -0
  192. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/neuro_prompt.txt +0 -0
  193. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/__init__.py +0 -0
  194. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/add_temp_memory.py +0 -0
  195. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/add_to_core_memory_block.py +0 -0
  196. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/base.py +0 -0
  197. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/create_core_memory_block.py +0 -0
  198. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/delete_core_memory_block.py +0 -0
  199. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/get_core_memory_block.py +0 -0
  200. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/get_core_memory_blocks.py +0 -0
  201. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/manager.py +0 -0
  202. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/model_spin.py +0 -0
  203. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/model_zoom.py +0 -0
  204. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/remove_from_core_memory_block.py +0 -0
  205. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/speak.py +0 -0
  206. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/agent/tools/update_core_memory_block.py +0 -0
  207. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/api/__init__.py +0 -0
  208. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/api/system.py +0 -0
  209. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/assets/neuro_start.mp4 +0 -0
  210. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/__init__.py +0 -0
  211. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/__init__.py +0 -0
  212. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/core_memory.json +0 -0
  213. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/init_memory.json +0 -0
  214. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/manager.py +0 -0
  215. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/memory/temp_memory.json +0 -0
  216. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/__init__.py +0 -0
  217. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/data/adjectives.txt +0 -0
  218. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/data/nouns.txt +0 -0
  219. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/nickname_gen/data/special_users.txt +0 -0
  220. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/prompts/__init__.py +0 -0
  221. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/prompts/chatbot_prompt.txt +0 -0
  222. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/prompts/memory_prompt.txt +0 -0
  223. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/__init__.py +0 -0
  224. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/add_temp_memory.py +0 -0
  225. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/base.py +0 -0
  226. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/chatbot/tools/post_chat_message.py +0 -0
  227. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/__init__.py +0 -0
  228. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/core/agent_interface.py +0 -0
  229. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/services/__init__.py +0 -0
  230. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/__init__.py +0 -0
  231. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/logging.py +0 -0
  232. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/process.py +0 -0
  233. {neuro_simulator-0.5.4 → neuro_simulator-0.6.1}/server/neuro_simulator/utils/state.py +0 -0
  234. {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.5.4
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.1.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.1.0",
9
+ "version": "0.2.11",
10
10
  "dependencies": {
11
11
  "@fontsource/inter": "^5.2.6",
12
12
  "@tauri-apps/api": "^2.6.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "Neuro Simulator Client",
3
3
  "private": true,
4
- "version": "0.2.10",
4
+ "version": "0.2.11",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -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
- const universalMessageHandler = (message: WebSocketMessage) => this.handleWebSocketMessage(message);
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
- const newUrl = newSettings.backendUrl ? `${newSettings.backendUrl}/ws/stream` : '';
146
- this.wsClient.updateOptions({
147
- url: newUrl,
148
- maxReconnectAttempts: newSettings.reconnectAttempts,
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
- this.wsClient.disconnect();
152
-
153
- setTimeout(() => {
154
- if(this.wsClient.getUrl()) {
155
- this.wsClient.connect();
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.warn("Cannot connect: Backend URL is empty after update.");
213
+ console.log("Health check failed, not an integrated server. Status:", response.status);
158
214
  }
159
- }, 500);
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.send(message);
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 {
@@ -14,6 +14,8 @@ export default defineConfig({
14
14
  // 为调试构建生成 sourcemap
15
15
  sourcemap: !!process.env.TAURI_DEBUG,
16
16
  },
17
+ // 设置基础路径,使构建后的资源引用正确(当应用部署在子路径如 /client 时)
18
+ base: './', // 使用相对路径基础,这样在任何子路径下都能正确引用资源
17
19
  // Tauri 需要一个固定的端口来连接前端开发服务器
18
20
  server: {
19
21
  port: 5173,
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "neuro-simulator-dashboard",
3
- "version": "0.5.4",
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.5.4",
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.5.4",
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">连接已断开</v-card-title>
49
- <v-card-text>与后端的连接已意外断开,请重新连接。</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">返回连接页面</v-btn>
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: '连接', icon: 'mdi-connection', to: '/' },
72
- { title: '控制', icon: 'mdi-gamepad-variant', to: '/control' },
73
- { title: '配置', icon: 'mdi-cog', to: '/config' },
74
- { title: '日志', icon: 'mdi-file-document-outline', to: '/logs' },
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>