realtimex-deeptutor 0.5.0.post1__tar.gz → 0.5.0.post3__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 (306) hide show
  1. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/PKG-INFO +24 -17
  2. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/README.md +22 -16
  3. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/pyproject.toml +12 -4
  4. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/PKG-INFO +24 -17
  5. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/SOURCES.txt +21 -1
  6. realtimex_deeptutor-0.5.0.post3/realtimex_deeptutor.egg-info/entry_points.txt +4 -0
  7. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/requires.txt +1 -0
  8. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/top_level.txt +1 -0
  9. realtimex_deeptutor-0.5.0.post3/scripts/__init__.py +1 -0
  10. realtimex_deeptutor-0.5.0.post3/scripts/audit_prompts.py +179 -0
  11. realtimex_deeptutor-0.5.0.post3/scripts/check_install.py +460 -0
  12. realtimex_deeptutor-0.5.0.post3/scripts/generate_roster.py +327 -0
  13. realtimex_deeptutor-0.5.0.post3/scripts/install_all.py +653 -0
  14. realtimex_deeptutor-0.5.0.post3/scripts/migrate_kb.py +655 -0
  15. realtimex_deeptutor-0.5.0.post3/scripts/start.py +807 -0
  16. realtimex_deeptutor-0.5.0.post3/scripts/start_web.py +632 -0
  17. realtimex_deeptutor-0.5.0.post3/scripts/sync_prompts_from_en.py +147 -0
  18. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/__init__.py +2 -2
  19. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/material_organizer_agent.py +2 -0
  20. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/__init__.py +6 -0
  21. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/main_solver.py +9 -0
  22. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/analysis_loop/investigate_agent.yaml +9 -7
  23. realtimex_deeptutor-0.5.0.post3/src/agents/solve/session_manager.py +345 -0
  24. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/main.py +14 -0
  25. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/chat.py +3 -3
  26. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/co_writer.py +12 -7
  27. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/config.py +1 -0
  28. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/guide.py +3 -1
  29. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/ideagen.py +7 -0
  30. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/knowledge.py +64 -12
  31. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/question.py +2 -0
  32. realtimex_deeptutor-0.5.0.post3/src/api/routers/realtimex.py +137 -0
  33. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/research.py +9 -0
  34. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/solve.py +120 -2
  35. realtimex_deeptutor-0.5.0.post3/src/cli/__init__.py +13 -0
  36. realtimex_deeptutor-0.5.0.post3/src/cli/start.py +209 -0
  37. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/constants.py +11 -9
  38. realtimex_deeptutor-0.5.0.post3/src/knowledge/add_documents.py +846 -0
  39. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/extract_numbered_items.py +9 -10
  40. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/initializer.py +102 -101
  41. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/manager.py +251 -74
  42. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/progress_tracker.py +43 -2
  43. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/start_kb.py +11 -2
  44. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/__init__.py +5 -0
  45. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/adapters/__init__.py +1 -0
  46. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/adapters/lightrag.py +25 -18
  47. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/adapters/llamaindex.py +1 -0
  48. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/config.py +30 -27
  49. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/handlers/__init__.py +1 -0
  50. realtimex_deeptutor-0.5.0.post3/src/logging/handlers/console.py +32 -0
  51. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/handlers/file.py +5 -20
  52. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/handlers/websocket.py +23 -19
  53. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/logger.py +161 -126
  54. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/stats/__init__.py +1 -0
  55. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/logging/stats/llm_stats.py +37 -17
  56. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/__init__.py +17 -1
  57. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/__init__.py +1 -0
  58. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/knowledge_base_config.py +1 -0
  59. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/loader.py +1 -1
  60. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/config/unified_config.py +211 -4
  61. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/__init__.py +1 -0
  62. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/__init__.py +3 -0
  63. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/base.py +1 -0
  64. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/cohere.py +1 -0
  65. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/jina.py +1 -0
  66. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/ollama.py +1 -0
  67. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/adapters/openai_compatible.py +1 -0
  68. realtimex_deeptutor-0.5.0.post3/src/services/embedding/adapters/realtimex.py +125 -0
  69. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/client.py +27 -0
  70. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/config.py +3 -0
  71. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/embedding/provider.py +1 -0
  72. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/__init__.py +17 -3
  73. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/capabilities.py +47 -0
  74. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/client.py +32 -0
  75. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/cloud_provider.py +21 -4
  76. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/config.py +36 -2
  77. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/error_mapping.py +1 -0
  78. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/exceptions.py +30 -0
  79. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/factory.py +55 -16
  80. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/local_provider.py +1 -0
  81. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/providers/anthropic.py +1 -0
  82. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/providers/base_provider.py +1 -0
  83. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/providers/open_ai.py +1 -0
  84. realtimex_deeptutor-0.5.0.post3/src/services/llm/realtimex_provider.py +240 -0
  85. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/registry.py +1 -0
  86. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/telemetry.py +1 -0
  87. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/types.py +1 -0
  88. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/llm/utils.py +1 -0
  89. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/prompt/__init__.py +1 -0
  90. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/prompt/manager.py +3 -2
  91. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/__init__.py +27 -5
  92. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/__init__.py +1 -0
  93. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/base.py +1 -0
  94. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/__init__.py +1 -0
  95. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/base.py +1 -0
  96. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/fixed.py +1 -0
  97. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/numbered_item.py +1 -0
  98. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/chunkers/semantic.py +1 -0
  99. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/embedders/__init__.py +1 -0
  100. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/embedders/base.py +1 -0
  101. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/embedders/openai.py +1 -0
  102. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/__init__.py +1 -0
  103. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/base.py +1 -0
  104. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/graph.py +5 -44
  105. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/lightrag.py +5 -44
  106. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/indexers/vector.py +1 -0
  107. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/__init__.py +1 -0
  108. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/base.py +1 -0
  109. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/markdown.py +1 -0
  110. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/pdf.py +1 -0
  111. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/parsers/text.py +1 -0
  112. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/__init__.py +1 -0
  113. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/base.py +1 -0
  114. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/dense.py +1 -0
  115. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/hybrid.py +5 -44
  116. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/retrievers/lightrag.py +5 -44
  117. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/components/routing.py +48 -0
  118. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/factory.py +112 -46
  119. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipeline.py +1 -0
  120. realtimex_deeptutor-0.5.0.post3/src/services/rag/pipelines/__init__.py +41 -0
  121. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipelines/lightrag.py +1 -0
  122. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipelines/llamaindex.py +99 -0
  123. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/pipelines/raganything.py +67 -100
  124. realtimex_deeptutor-0.5.0.post3/src/services/rag/pipelines/raganything_docling.py +368 -0
  125. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/service.py +5 -12
  126. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/rag/types.py +1 -0
  127. realtimex_deeptutor-0.5.0.post3/src/services/rag/utils/__init__.py +17 -0
  128. realtimex_deeptutor-0.5.0.post3/src/services/rag/utils/image_migration.py +279 -0
  129. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/__init__.py +1 -0
  130. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/base.py +1 -0
  131. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/consolidation.py +1 -0
  132. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/__init__.py +1 -0
  133. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/baidu.py +1 -0
  134. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/exa.py +1 -0
  135. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/jina.py +1 -0
  136. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/perplexity.py +1 -0
  137. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/serper.py +1 -0
  138. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/providers/tavily.py +1 -0
  139. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/search/types.py +1 -0
  140. realtimex_deeptutor-0.5.0.post3/src/services/settings/__init__.py +1 -0
  141. realtimex_deeptutor-0.5.0.post3/src/services/settings/interface_settings.py +78 -0
  142. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/setup/__init__.py +1 -0
  143. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/tts/__init__.py +1 -0
  144. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/tts/config.py +1 -0
  145. realtimex_deeptutor-0.5.0.post3/src/utils/realtimex.py +284 -0
  146. realtimex_deeptutor-0.5.0.post1/realtimex_deeptutor.egg-info/entry_points.txt +0 -2
  147. realtimex_deeptutor-0.5.0.post1/src/knowledge/add_documents.py +0 -606
  148. realtimex_deeptutor-0.5.0.post1/src/logging/handlers/console.py +0 -75
  149. realtimex_deeptutor-0.5.0.post1/src/services/rag/pipelines/__init__.py +0 -32
  150. realtimex_deeptutor-0.5.0.post1/src/services/rag/pipelines/academic.py +0 -44
  151. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/LICENSE +0 -0
  152. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor/__init__.py +0 -0
  153. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/realtimex_deeptutor.egg-info/dependency_links.txt +0 -0
  154. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/setup.cfg +0 -0
  155. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/__init__.py +0 -0
  156. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/base_agent.py +0 -0
  157. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/__init__.py +0 -0
  158. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/chat_agent.py +0 -0
  159. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/prompts/en/chat_agent.yaml +0 -0
  160. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/prompts/zh/chat_agent.yaml +0 -0
  161. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/chat/session_manager.py +0 -0
  162. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/__init__.py +0 -0
  163. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/edit_agent.py +0 -0
  164. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/narrator_agent.py +0 -0
  165. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/en/edit_agent.yaml +0 -0
  166. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/en/narrator_agent.yaml +0 -0
  167. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/zh/edit_agent.yaml +0 -0
  168. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/co_writer/prompts/zh/narrator_agent.yaml +0 -0
  169. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/__init__.py +0 -0
  170. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/__init__.py +0 -0
  171. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/chat_agent.py +0 -0
  172. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/interactive_agent.py +0 -0
  173. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/locate_agent.py +0 -0
  174. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/agents/summary_agent.py +0 -0
  175. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/guide_manager.py +0 -0
  176. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/chat_agent.yaml +0 -0
  177. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/interactive_agent.yaml +0 -0
  178. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/locate_agent.yaml +0 -0
  179. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/en/summary_agent.yaml +0 -0
  180. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/chat_agent.yaml +0 -0
  181. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/interactive_agent.yaml +0 -0
  182. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/locate_agent.yaml +0 -0
  183. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/guide/prompts/zh/summary_agent.yaml +0 -0
  184. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/__init__.py +0 -0
  185. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/idea_generation_workflow.py +0 -0
  186. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/en/idea_generation.yaml +0 -0
  187. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/en/material_organizer.yaml +0 -0
  188. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/zh/idea_generation.yaml +0 -0
  189. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/ideagen/prompts/zh/material_organizer.yaml +0 -0
  190. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/__init__.py +0 -0
  191. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/__init__.py +0 -0
  192. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/generate_agent.py +0 -0
  193. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/relevance_analyzer.py +0 -0
  194. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/agents/retrieve_agent.py +0 -0
  195. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/coordinator.py +0 -0
  196. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/example.py +0 -0
  197. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/coordinator.yaml +0 -0
  198. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/generate_agent.yaml +0 -0
  199. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/relevance_analyzer.yaml +0 -0
  200. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/en/retrieve_agent.yaml +0 -0
  201. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/coordinator.yaml +0 -0
  202. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/generate_agent.yaml +0 -0
  203. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/relevance_analyzer.yaml +0 -0
  204. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/question/prompts/zh/retrieve_agent.yaml +0 -0
  205. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/__init__.py +0 -0
  206. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/decompose_agent.py +0 -0
  207. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/manager_agent.py +0 -0
  208. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/note_agent.py +0 -0
  209. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/rephrase_agent.py +0 -0
  210. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/reporting_agent.py +0 -0
  211. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/agents/research_agent.py +0 -0
  212. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/data_structures.py +0 -0
  213. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/main.py +0 -0
  214. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/decompose_agent.yaml +0 -0
  215. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/manager_agent.yaml +0 -0
  216. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/note_agent.yaml +0 -0
  217. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/rephrase_agent.yaml +0 -0
  218. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/reporting_agent.yaml +0 -0
  219. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/en/research_agent.yaml +0 -0
  220. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/decompose_agent.yaml +0 -0
  221. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/manager_agent.yaml +0 -0
  222. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/note_agent.yaml +0 -0
  223. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/rephrase_agent.yaml +0 -0
  224. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/reporting_agent.yaml +0 -0
  225. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/prompts/zh/research_agent.yaml +0 -0
  226. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/research_pipeline.py +0 -0
  227. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/__init__.py +0 -0
  228. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/citation_manager.py +0 -0
  229. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/json_utils.py +0 -0
  230. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/research/utils/token_tracker.py +0 -0
  231. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/analysis_loop/__init__.py +0 -0
  232. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/analysis_loop/investigate_agent.py +0 -0
  233. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/analysis_loop/note_agent.py +0 -0
  234. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/__init__.py +0 -0
  235. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/citation_memory.py +0 -0
  236. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/investigate_memory.py +0 -0
  237. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/memory/solve_memory.py +0 -0
  238. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/analysis_loop/investigate_agent.yaml +0 -0
  239. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/analysis_loop/note_agent.yaml +0 -0
  240. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/manager_agent.yaml +0 -0
  241. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/precision_answer_agent.yaml +0 -0
  242. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/response_agent.yaml +0 -0
  243. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/solve_agent.yaml +0 -0
  244. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/en/solve_loop/tool_agent.yaml +0 -0
  245. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/analysis_loop/note_agent.yaml +0 -0
  246. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/manager_agent.yaml +0 -0
  247. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/precision_answer_agent.yaml +0 -0
  248. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/response_agent.yaml +0 -0
  249. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/solve_agent.yaml +0 -0
  250. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/prompts/zh/solve_loop/tool_agent.yaml +0 -0
  251. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/__init__.py +0 -0
  252. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/citation_manager.py +0 -0
  253. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/manager_agent.py +0 -0
  254. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/precision_answer_agent.py +0 -0
  255. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/response_agent.py +0 -0
  256. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/solve_agent.py +0 -0
  257. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/solve_loop/tool_agent.py +0 -0
  258. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/__init__.py +0 -0
  259. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/config_validator.py +0 -0
  260. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/display_manager.py +0 -0
  261. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/error_handler.py +0 -0
  262. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/json_utils.py +0 -0
  263. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/performance_monitor.py +0 -0
  264. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/agents/solve/utils/token_tracker.py +0 -0
  265. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/__init__.py +0 -0
  266. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/__init__.py +0 -0
  267. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/agent_config.py +0 -0
  268. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/dashboard.py +0 -0
  269. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/notebook.py +0 -0
  270. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/settings.py +0 -0
  271. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/routers/system.py +0 -0
  272. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/run_server.py +0 -0
  273. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/history.py +0 -0
  274. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/log_interceptor.py +0 -0
  275. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/notebook_manager.py +0 -0
  276. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/progress_broadcaster.py +0 -0
  277. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/api/utils/task_id_manager.py +0 -0
  278. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/__init__.py +0 -0
  279. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/accessors.py +0 -0
  280. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/defaults.py +0 -0
  281. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/schema.py +0 -0
  282. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/config/settings.py +0 -0
  283. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/core/errors.py +0 -0
  284. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/__init__.py +0 -0
  285. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/config.py +0 -0
  286. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/example_add_documents.py +0 -0
  287. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/knowledge/kb.py +0 -0
  288. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/services/setup/init.py +0 -0
  289. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/__init__.py +0 -0
  290. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/code_executor.py +0 -0
  291. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/paper_search_tool.py +0 -0
  292. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/query_item_tool.py +0 -0
  293. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/__init__.py +0 -0
  294. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/exam_mimic.py +0 -0
  295. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/pdf_parser.py +0 -0
  296. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/question/question_extractor.py +0 -0
  297. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/rag_tool.py +0 -0
  298. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/tex_chunker.py +0 -0
  299. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/tex_downloader.py +0 -0
  300. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/tools/web_search.py +0 -0
  301. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/config_manager.py +0 -0
  302. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/document_validator.py +0 -0
  303. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/error_rate_tracker.py +0 -0
  304. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/error_utils.py +0 -0
  305. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/json_parser.py +0 -0
  306. {realtimex_deeptutor-0.5.0.post1 → realtimex_deeptutor-0.5.0.post3}/src/utils/network/circuit_breaker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: realtimex-deeptutor
3
- Version: 0.5.0.post1
3
+ Version: 0.5.0.post3
4
4
  Summary: RealTimeX DeepTutor - Intelligent learning companion with multi-agent collaboration and LightRAG
5
5
  License: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -26,6 +26,7 @@ Requires-Dist: lightrag-hku>=1.0.0
26
26
  Requires-Dist: PyMuPDF>=1.26.0
27
27
  Requires-Dist: numpy<2.0.0,>=1.24.0
28
28
  Requires-Dist: arxiv>=2.0.0
29
+ Requires-Dist: realtimex-sdk>=1.1.2
29
30
  Provides-Extra: anthropic
30
31
  Requires-Dist: anthropic>=0.30.0; extra == "anthropic"
31
32
  Provides-Extra: dashscope
@@ -90,8 +91,6 @@ Dynamic: license-file
90
91
  ---
91
92
  ### 📰 News
92
93
 
93
- > **[2026.1.15]** DeepTutor [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) is out! Fixed multiple environment configuration and stability issues. We recommend everyone to pull the latest version! 🎉
94
-
95
94
  > **[2026.1.1]** Happy New Year! Join our [Discord Community](https://discord.gg/zpP9cssj), [Wechat Community](https://github.com/HKUDS/DeepTutor/issues/78), or [Discussions](https://github.com/HKUDS/DeepTutor/discussions) - shape the future of DeepTutor! 💬
96
95
 
97
96
  > **[2025.12.30]** Visit our [Official Website](https://hkuds.github.io/DeepTutor/) for more details!
@@ -100,10 +99,16 @@ Dynamic: license-file
100
99
 
101
100
  ### 📦 Releases
102
101
 
103
- > **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
102
+ > **[2026.1.23]** Release [v0.6.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.6.0) - Frontend session persistence, full Chinese support, Docker deployment updates, and minor bug fixes -- Thanks for all the feedback!
103
+
104
104
  <details>
105
105
  <summary>History releases</summary>
106
106
 
107
+ > **[2026.1.18]** Release [v0.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.1) - Enhance RAG pipeline with Docling support and improve CI/CD workflows with several minor bugs fixed -- Thanks to all the feedbacks!
108
+
109
+
110
+ > **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
111
+
107
112
  > **[2026.1.9]** Release [v0.4.1](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.1) with LLM Provider system overhaul, Question Generation robustness improvements, and codebase cleanup - Thanks to all the contributors!
108
113
 
109
114
  > **[2026.1.9]** Release [v0.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.0) with new code structure, multiple llm & embeddings support - Thanks to all the contributors!
@@ -390,14 +395,14 @@ cp .env.example .env
390
395
  **Quick Start** — Build from source:
391
396
 
392
397
  ```bash
393
- docker compose up --build -d # Build and start (~5-10 min first run)
394
- docker compose logs -f # View logs
398
+ docker compose up # Build and start (~11 min first run on mac mini M4)
399
+ docker compose build --no-cache # Clear cache and rebuild after pull the newest repo
395
400
  ```
396
401
 
397
402
  **Or use pre-built image** (faster):
398
403
 
399
404
  ```bash
400
- # Linux/macOS (AMD64)
405
+ # Works on all platforms - Docker auto-detects your architecture
401
406
  docker run -d --name deeptutor \
402
407
  -p 8001:8001 -p 3782:3782 \
403
408
  --env-file .env \
@@ -405,7 +410,6 @@ docker run -d --name deeptutor \
405
410
  -v $(pwd)/config:/app/config:ro \
406
411
  ghcr.io/hkuds/deeptutor:latest
407
412
 
408
- # Apple Silicon (ARM64): use ghcr.io/hkuds/deeptutor:latest-arm64
409
413
  # Windows PowerShell: use ${PWD} instead of $(pwd)
410
414
  ```
411
415
 
@@ -421,14 +425,16 @@ docker compose up --build # Rebuild after changes
421
425
  <details>
422
426
  <summary>📋 <b>More Docker Options</b> (Pre-built images, Cloud deployment, Custom ports)</summary>
423
427
 
424
- **Pre-built Image Architecture Reference:**
428
+ **Pre-built Image Tags:**
425
429
 
426
- | Architecture | Image Tag | Use Case |
427
- |:-------------|:----------|:---------|
428
- | **AMD64** | `ghcr.io/hkuds/deeptutor:latest` | Intel/AMD (most servers, Windows/Linux PCs) |
429
- | **ARM64** | `ghcr.io/hkuds/deeptutor:latest-arm64` | Apple Silicon, AWS Graviton, Raspberry Pi |
430
+ | Tag | Architectures | Description |
431
+ |:----|:--------------|:------------|
432
+ | `:latest` | AMD64 + ARM64 | Latest stable release (auto-detects your architecture) |
433
+ | `:v0.5.x` | AMD64 + ARM64 | Specific version (auto-detects your architecture) |
434
+ | `:v0.5.x-amd64` | AMD64 only | Explicit AMD64 image |
435
+ | `:v0.5.x-arm64` | ARM64 only | Explicit ARM64 image |
430
436
 
431
- > 💡 Run `uname -m` to check: `x86_64` = AMD64, `arm64`/`aarch64` = ARM64
437
+ > 💡 The `:latest` tag is a **multi-architecture image** Docker automatically pulls the correct version for your system (Intel/AMD or Apple Silicon/ARM)
432
438
 
433
439
  **Cloud Deployment** — Must set external API URL:
434
440
 
@@ -1605,8 +1611,9 @@ We hope DeepTutor could become a gift for the community. 🎁
1605
1611
 
1606
1612
  This project is licensed under the ***[AGPL-3.0 License](LICENSE)***.
1607
1613
 
1608
- *✨ Thanks for visiting **DeepTutor**!*
1609
-
1610
- <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
1614
+ <p align="center">
1615
+ <em> Thanks for visiting ✨ DeepTutor!</em><br><br>
1616
+ <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
1617
+ </p>
1611
1618
 
1612
1619
  </div>
@@ -37,8 +37,6 @@
37
37
  ---
38
38
  ### 📰 News
39
39
 
40
- > **[2026.1.15]** DeepTutor [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) is out! Fixed multiple environment configuration and stability issues. We recommend everyone to pull the latest version! 🎉
41
-
42
40
  > **[2026.1.1]** Happy New Year! Join our [Discord Community](https://discord.gg/zpP9cssj), [Wechat Community](https://github.com/HKUDS/DeepTutor/issues/78), or [Discussions](https://github.com/HKUDS/DeepTutor/discussions) - shape the future of DeepTutor! 💬
43
41
 
44
42
  > **[2025.12.30]** Visit our [Official Website](https://hkuds.github.io/DeepTutor/) for more details!
@@ -47,10 +45,16 @@
47
45
 
48
46
  ### 📦 Releases
49
47
 
50
- > **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
48
+ > **[2026.1.23]** Release [v0.6.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.6.0) - Frontend session persistence, full Chinese support, Docker deployment updates, and minor bug fixes -- Thanks for all the feedback!
49
+
51
50
  <details>
52
51
  <summary>History releases</summary>
53
52
 
53
+ > **[2026.1.18]** Release [v0.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.1) - Enhance RAG pipeline with Docling support and improve CI/CD workflows with several minor bugs fixed -- Thanks to all the feedbacks!
54
+
55
+
56
+ > **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
57
+
54
58
  > **[2026.1.9]** Release [v0.4.1](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.1) with LLM Provider system overhaul, Question Generation robustness improvements, and codebase cleanup - Thanks to all the contributors!
55
59
 
56
60
  > **[2026.1.9]** Release [v0.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.0) with new code structure, multiple llm & embeddings support - Thanks to all the contributors!
@@ -337,14 +341,14 @@ cp .env.example .env
337
341
  **Quick Start** — Build from source:
338
342
 
339
343
  ```bash
340
- docker compose up --build -d # Build and start (~5-10 min first run)
341
- docker compose logs -f # View logs
344
+ docker compose up # Build and start (~11 min first run on mac mini M4)
345
+ docker compose build --no-cache # Clear cache and rebuild after pull the newest repo
342
346
  ```
343
347
 
344
348
  **Or use pre-built image** (faster):
345
349
 
346
350
  ```bash
347
- # Linux/macOS (AMD64)
351
+ # Works on all platforms - Docker auto-detects your architecture
348
352
  docker run -d --name deeptutor \
349
353
  -p 8001:8001 -p 3782:3782 \
350
354
  --env-file .env \
@@ -352,7 +356,6 @@ docker run -d --name deeptutor \
352
356
  -v $(pwd)/config:/app/config:ro \
353
357
  ghcr.io/hkuds/deeptutor:latest
354
358
 
355
- # Apple Silicon (ARM64): use ghcr.io/hkuds/deeptutor:latest-arm64
356
359
  # Windows PowerShell: use ${PWD} instead of $(pwd)
357
360
  ```
358
361
 
@@ -368,14 +371,16 @@ docker compose up --build # Rebuild after changes
368
371
  <details>
369
372
  <summary>📋 <b>More Docker Options</b> (Pre-built images, Cloud deployment, Custom ports)</summary>
370
373
 
371
- **Pre-built Image Architecture Reference:**
374
+ **Pre-built Image Tags:**
372
375
 
373
- | Architecture | Image Tag | Use Case |
374
- |:-------------|:----------|:---------|
375
- | **AMD64** | `ghcr.io/hkuds/deeptutor:latest` | Intel/AMD (most servers, Windows/Linux PCs) |
376
- | **ARM64** | `ghcr.io/hkuds/deeptutor:latest-arm64` | Apple Silicon, AWS Graviton, Raspberry Pi |
376
+ | Tag | Architectures | Description |
377
+ |:----|:--------------|:------------|
378
+ | `:latest` | AMD64 + ARM64 | Latest stable release (auto-detects your architecture) |
379
+ | `:v0.5.x` | AMD64 + ARM64 | Specific version (auto-detects your architecture) |
380
+ | `:v0.5.x-amd64` | AMD64 only | Explicit AMD64 image |
381
+ | `:v0.5.x-arm64` | ARM64 only | Explicit ARM64 image |
377
382
 
378
- > 💡 Run `uname -m` to check: `x86_64` = AMD64, `arm64`/`aarch64` = ARM64
383
+ > 💡 The `:latest` tag is a **multi-architecture image** Docker automatically pulls the correct version for your system (Intel/AMD or Apple Silicon/ARM)
379
384
 
380
385
  **Cloud Deployment** — Must set external API URL:
381
386
 
@@ -1552,8 +1557,9 @@ We hope DeepTutor could become a gift for the community. 🎁
1552
1557
 
1553
1558
  This project is licensed under the ***[AGPL-3.0 License](LICENSE)***.
1554
1559
 
1555
- *✨ Thanks for visiting **DeepTutor**!*
1556
-
1557
- <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
1560
+ <p align="center">
1561
+ <em> Thanks for visiting ✨ DeepTutor!</em><br><br>
1562
+ <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
1563
+ </p>
1558
1564
 
1559
1565
  </div>
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "realtimex-deeptutor"
10
- version = "0.5.0.post1"
10
+ version = "0.5.0.post3"
11
11
  description = "RealTimeX DeepTutor - Intelligent learning companion with multi-agent collaboration and LightRAG"
12
12
  requires-python = ">=3.10"
13
13
  readme = "README.md"
@@ -43,6 +43,8 @@ dependencies = [
43
43
  "numpy>=1.24.0,<2.0.0",
44
44
  # Academic and research tools
45
45
  "arxiv>=2.0.0",
46
+ # RealTimeX SDK
47
+ "realtimex-sdk>=1.1.2",
46
48
  ]
47
49
 
48
50
  # Optional dependencies for different providers and features
@@ -79,11 +81,16 @@ dev = [
79
81
  ]
80
82
 
81
83
  [project.scripts]
82
- deeptutor = "src.api.run_server:main"
84
+ # Main entry point for full-stack startup (uvx realtimex-deeptutor)
85
+ realtimex-deeptutor = "src.cli.start:main"
86
+ deeptutor = "src.cli.start:main" # Shorter alias
87
+
88
+ # Backend-only mode (existing, for advanced users)
89
+ deeptutor-backend = "src.api.run_server:main"
83
90
 
84
91
  [tool.setuptools.packages.find]
85
92
  where = ["."]
86
- include = ["src*", "realtimex_deeptutor*"]
93
+ include = ["src*", "realtimex_deeptutor*", "scripts*"]
87
94
 
88
95
  [tool.setuptools.package-data]
89
96
  # Include non-Python files in the package distribution
@@ -231,7 +238,8 @@ split-on-trailing-comma = true
231
238
  # ============================================
232
239
  [tool.ruff.lint.per-file-ignores]
233
240
  # Allow longer lines in test files
234
- "**/test_*.py" = ["E501", "PLR2004"]
241
+ # F401: Allow unused imports for availability checks in tests
242
+ "**/test_*.py" = ["E501", "PLR2004", "F401"]
235
243
  "**/__init__.py" = ["F401"] # Allow unused imports in __init__.py
236
244
 
237
245
  # ============================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: realtimex-deeptutor
3
- Version: 0.5.0.post1
3
+ Version: 0.5.0.post3
4
4
  Summary: RealTimeX DeepTutor - Intelligent learning companion with multi-agent collaboration and LightRAG
5
5
  License: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -26,6 +26,7 @@ Requires-Dist: lightrag-hku>=1.0.0
26
26
  Requires-Dist: PyMuPDF>=1.26.0
27
27
  Requires-Dist: numpy<2.0.0,>=1.24.0
28
28
  Requires-Dist: arxiv>=2.0.0
29
+ Requires-Dist: realtimex-sdk>=1.1.2
29
30
  Provides-Extra: anthropic
30
31
  Requires-Dist: anthropic>=0.30.0; extra == "anthropic"
31
32
  Provides-Extra: dashscope
@@ -90,8 +91,6 @@ Dynamic: license-file
90
91
  ---
91
92
  ### 📰 News
92
93
 
93
- > **[2026.1.15]** DeepTutor [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) is out! Fixed multiple environment configuration and stability issues. We recommend everyone to pull the latest version! 🎉
94
-
95
94
  > **[2026.1.1]** Happy New Year! Join our [Discord Community](https://discord.gg/zpP9cssj), [Wechat Community](https://github.com/HKUDS/DeepTutor/issues/78), or [Discussions](https://github.com/HKUDS/DeepTutor/discussions) - shape the future of DeepTutor! 💬
96
95
 
97
96
  > **[2025.12.30]** Visit our [Official Website](https://hkuds.github.io/DeepTutor/) for more details!
@@ -100,10 +99,16 @@ Dynamic: license-file
100
99
 
101
100
  ### 📦 Releases
102
101
 
103
- > **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
102
+ > **[2026.1.23]** Release [v0.6.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.6.0) - Frontend session persistence, full Chinese support, Docker deployment updates, and minor bug fixes -- Thanks for all the feedback!
103
+
104
104
  <details>
105
105
  <summary>History releases</summary>
106
106
 
107
+ > **[2026.1.18]** Release [v0.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.1) - Enhance RAG pipeline with Docling support and improve CI/CD workflows with several minor bugs fixed -- Thanks to all the feedbacks!
108
+
109
+
110
+ > **[2026.1.15]** Release [v0.5.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.5.0) - Unified LLM & Embedding services, RAG pipeline selection, and major enhancements to Home, History, QuestionGen & Settings modules -- Thanks to all the contributors!
111
+
107
112
  > **[2026.1.9]** Release [v0.4.1](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.1) with LLM Provider system overhaul, Question Generation robustness improvements, and codebase cleanup - Thanks to all the contributors!
108
113
 
109
114
  > **[2026.1.9]** Release [v0.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v0.4.0) with new code structure, multiple llm & embeddings support - Thanks to all the contributors!
@@ -390,14 +395,14 @@ cp .env.example .env
390
395
  **Quick Start** — Build from source:
391
396
 
392
397
  ```bash
393
- docker compose up --build -d # Build and start (~5-10 min first run)
394
- docker compose logs -f # View logs
398
+ docker compose up # Build and start (~11 min first run on mac mini M4)
399
+ docker compose build --no-cache # Clear cache and rebuild after pull the newest repo
395
400
  ```
396
401
 
397
402
  **Or use pre-built image** (faster):
398
403
 
399
404
  ```bash
400
- # Linux/macOS (AMD64)
405
+ # Works on all platforms - Docker auto-detects your architecture
401
406
  docker run -d --name deeptutor \
402
407
  -p 8001:8001 -p 3782:3782 \
403
408
  --env-file .env \
@@ -405,7 +410,6 @@ docker run -d --name deeptutor \
405
410
  -v $(pwd)/config:/app/config:ro \
406
411
  ghcr.io/hkuds/deeptutor:latest
407
412
 
408
- # Apple Silicon (ARM64): use ghcr.io/hkuds/deeptutor:latest-arm64
409
413
  # Windows PowerShell: use ${PWD} instead of $(pwd)
410
414
  ```
411
415
 
@@ -421,14 +425,16 @@ docker compose up --build # Rebuild after changes
421
425
  <details>
422
426
  <summary>📋 <b>More Docker Options</b> (Pre-built images, Cloud deployment, Custom ports)</summary>
423
427
 
424
- **Pre-built Image Architecture Reference:**
428
+ **Pre-built Image Tags:**
425
429
 
426
- | Architecture | Image Tag | Use Case |
427
- |:-------------|:----------|:---------|
428
- | **AMD64** | `ghcr.io/hkuds/deeptutor:latest` | Intel/AMD (most servers, Windows/Linux PCs) |
429
- | **ARM64** | `ghcr.io/hkuds/deeptutor:latest-arm64` | Apple Silicon, AWS Graviton, Raspberry Pi |
430
+ | Tag | Architectures | Description |
431
+ |:----|:--------------|:------------|
432
+ | `:latest` | AMD64 + ARM64 | Latest stable release (auto-detects your architecture) |
433
+ | `:v0.5.x` | AMD64 + ARM64 | Specific version (auto-detects your architecture) |
434
+ | `:v0.5.x-amd64` | AMD64 only | Explicit AMD64 image |
435
+ | `:v0.5.x-arm64` | ARM64 only | Explicit ARM64 image |
430
436
 
431
- > 💡 Run `uname -m` to check: `x86_64` = AMD64, `arm64`/`aarch64` = ARM64
437
+ > 💡 The `:latest` tag is a **multi-architecture image** Docker automatically pulls the correct version for your system (Intel/AMD or Apple Silicon/ARM)
432
438
 
433
439
  **Cloud Deployment** — Must set external API URL:
434
440
 
@@ -1605,8 +1611,9 @@ We hope DeepTutor could become a gift for the community. 🎁
1605
1611
 
1606
1612
  This project is licensed under the ***[AGPL-3.0 License](LICENSE)***.
1607
1613
 
1608
- *✨ Thanks for visiting **DeepTutor**!*
1609
-
1610
- <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
1614
+ <p align="center">
1615
+ <em> Thanks for visiting ✨ DeepTutor!</em><br><br>
1616
+ <img src="https://visitor-badge.laobi.icu/badge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff" alt="Views">
1617
+ </p>
1611
1618
 
1612
1619
  </div>
@@ -8,6 +8,15 @@ realtimex_deeptutor.egg-info/dependency_links.txt
8
8
  realtimex_deeptutor.egg-info/entry_points.txt
9
9
  realtimex_deeptutor.egg-info/requires.txt
10
10
  realtimex_deeptutor.egg-info/top_level.txt
11
+ scripts/__init__.py
12
+ scripts/audit_prompts.py
13
+ scripts/check_install.py
14
+ scripts/generate_roster.py
15
+ scripts/install_all.py
16
+ scripts/migrate_kb.py
17
+ scripts/start.py
18
+ scripts/start_web.py
19
+ scripts/sync_prompts_from_en.py
11
20
  src/__init__.py
12
21
  src/agents/__init__.py
13
22
  src/agents/base_agent.py
@@ -88,6 +97,7 @@ src/agents/research/utils/json_utils.py
88
97
  src/agents/research/utils/token_tracker.py
89
98
  src/agents/solve/__init__.py
90
99
  src/agents/solve/main_solver.py
100
+ src/agents/solve/session_manager.py
91
101
  src/agents/solve/analysis_loop/__init__.py
92
102
  src/agents/solve/analysis_loop/investigate_agent.py
93
103
  src/agents/solve/analysis_loop/note_agent.py
@@ -137,6 +147,7 @@ src/api/routers/ideagen.py
137
147
  src/api/routers/knowledge.py
138
148
  src/api/routers/notebook.py
139
149
  src/api/routers/question.py
150
+ src/api/routers/realtimex.py
140
151
  src/api/routers/research.py
141
152
  src/api/routers/settings.py
142
153
  src/api/routers/solve.py
@@ -146,6 +157,8 @@ src/api/utils/log_interceptor.py
146
157
  src/api/utils/notebook_manager.py
147
158
  src/api/utils/progress_broadcaster.py
148
159
  src/api/utils/task_id_manager.py
160
+ src/cli/__init__.py
161
+ src/cli/start.py
149
162
  src/config/__init__.py
150
163
  src/config/accessors.py
151
164
  src/config/constants.py
@@ -190,6 +203,7 @@ src/services/embedding/adapters/cohere.py
190
203
  src/services/embedding/adapters/jina.py
191
204
  src/services/embedding/adapters/ollama.py
192
205
  src/services/embedding/adapters/openai_compatible.py
206
+ src/services/embedding/adapters/realtimex.py
193
207
  src/services/llm/__init__.py
194
208
  src/services/llm/capabilities.py
195
209
  src/services/llm/client.py
@@ -199,6 +213,7 @@ src/services/llm/error_mapping.py
199
213
  src/services/llm/exceptions.py
200
214
  src/services/llm/factory.py
201
215
  src/services/llm/local_provider.py
216
+ src/services/llm/realtimex_provider.py
202
217
  src/services/llm/registry.py
203
218
  src/services/llm/telemetry.py
204
219
  src/services/llm/types.py
@@ -240,10 +255,12 @@ src/services/rag/components/retrievers/dense.py
240
255
  src/services/rag/components/retrievers/hybrid.py
241
256
  src/services/rag/components/retrievers/lightrag.py
242
257
  src/services/rag/pipelines/__init__.py
243
- src/services/rag/pipelines/academic.py
244
258
  src/services/rag/pipelines/lightrag.py
245
259
  src/services/rag/pipelines/llamaindex.py
246
260
  src/services/rag/pipelines/raganything.py
261
+ src/services/rag/pipelines/raganything_docling.py
262
+ src/services/rag/utils/__init__.py
263
+ src/services/rag/utils/image_migration.py
247
264
  src/services/search/__init__.py
248
265
  src/services/search/base.py
249
266
  src/services/search/consolidation.py
@@ -255,6 +272,8 @@ src/services/search/providers/jina.py
255
272
  src/services/search/providers/perplexity.py
256
273
  src/services/search/providers/serper.py
257
274
  src/services/search/providers/tavily.py
275
+ src/services/settings/__init__.py
276
+ src/services/settings/interface_settings.py
258
277
  src/services/setup/__init__.py
259
278
  src/services/setup/init.py
260
279
  src/services/tts/__init__.py
@@ -276,4 +295,5 @@ src/utils/document_validator.py
276
295
  src/utils/error_rate_tracker.py
277
296
  src/utils/error_utils.py
278
297
  src/utils/json_parser.py
298
+ src/utils/realtimex.py
279
299
  src/utils/network/circuit_breaker.py
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ deeptutor = src.cli.start:main
3
+ deeptutor-backend = src.api.run_server:main
4
+ realtimex-deeptutor = src.cli.start:main
@@ -18,6 +18,7 @@ lightrag-hku>=1.0.0
18
18
  PyMuPDF>=1.26.0
19
19
  numpy<2.0.0,>=1.24.0
20
20
  arxiv>=2.0.0
21
+ realtimex-sdk>=1.1.2
21
22
 
22
23
  [academic]
23
24
  arxiv>=2.0.0
@@ -0,0 +1 @@
1
+ # Scripts package - included for package distribution
@@ -0,0 +1,179 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ """
5
+ Audit prompt parity between prompts/en and prompts/zh|prompts/cn.
6
+
7
+ Checks:
8
+ - Missing/extra keys (recursive)
9
+ - Placeholder drift in string templates (e.g. {question}, {context})
10
+
11
+ Usage:
12
+ python scripts/audit_prompts.py
13
+ python scripts/audit_prompts.py --fail
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ import argparse
19
+ from dataclasses import dataclass
20
+ from pathlib import Path
21
+ import re
22
+ import sys
23
+ from typing import Any, Iterable
24
+
25
+ import yaml
26
+
27
+ PROJECT_ROOT = Path(__file__).resolve().parents[1]
28
+ AGENTS_DIR = PROJECT_ROOT / "src" / "agents"
29
+
30
+ # Template placeholders are expected to be like {topic}, {knowledge_title}, etc.
31
+ # Avoid false positives from LaTeX (\frac{1}{3}) and Mermaid (B{{Processing}}).
32
+ PLACEHOLDER_RE = re.compile(r"(?<!\{)\{[A-Za-z_][A-Za-z0-9_]*\}(?!\})")
33
+
34
+
35
+ def _load_yaml(path: Path) -> Any:
36
+ with open(path, encoding="utf-8") as f:
37
+ return yaml.safe_load(f) or {}
38
+
39
+
40
+ def _iter_yaml_files(root: Path) -> Iterable[Path]:
41
+ if not root.exists():
42
+ return []
43
+ return sorted([p for p in root.rglob("*.yaml") if p.is_file()])
44
+
45
+
46
+ def _get_placeholders(value: Any) -> set[str]:
47
+ found: set[str] = set()
48
+ if isinstance(value, str):
49
+ found |= set(PLACEHOLDER_RE.findall(value))
50
+ elif isinstance(value, dict):
51
+ for v in value.values():
52
+ found |= _get_placeholders(v)
53
+ elif isinstance(value, list):
54
+ for v in value:
55
+ found |= _get_placeholders(v)
56
+ return found
57
+
58
+
59
+ def _collect_keys(value: Any, prefix: str = "") -> set[str]:
60
+ """
61
+ Collect dotted key paths for all dict nodes.
62
+ Leaves (non-dict) are also included as paths.
63
+ """
64
+ keys: set[str] = set()
65
+ if isinstance(value, dict):
66
+ for k, v in value.items():
67
+ path = f"{prefix}.{k}" if prefix else str(k)
68
+ keys.add(path)
69
+ keys |= _collect_keys(v, path)
70
+ elif isinstance(value, list):
71
+ # Lists: we don't expand indices; still consider it a leaf container.
72
+ if prefix:
73
+ keys.add(prefix)
74
+ else:
75
+ if prefix:
76
+ keys.add(prefix)
77
+ return keys
78
+
79
+
80
+ @dataclass
81
+ class Diff:
82
+ missing_zh: list[str]
83
+ extra_zh: list[str]
84
+ placeholder_missing_zh: list[str]
85
+ placeholder_extra_zh: list[str]
86
+
87
+
88
+ def _diff(en_obj: Any, zh_obj: Any) -> Diff:
89
+ en_keys = _collect_keys(en_obj)
90
+ zh_keys = _collect_keys(zh_obj)
91
+
92
+ en_ph = _get_placeholders(en_obj)
93
+ zh_ph = _get_placeholders(zh_obj)
94
+
95
+ return Diff(
96
+ missing_zh=sorted(en_keys - zh_keys),
97
+ extra_zh=sorted(zh_keys - en_keys),
98
+ placeholder_missing_zh=sorted(en_ph - zh_ph),
99
+ placeholder_extra_zh=sorted(zh_ph - en_ph),
100
+ )
101
+
102
+
103
+ def main() -> int:
104
+ parser = argparse.ArgumentParser()
105
+ parser.add_argument("--fail", action="store_true", help="exit non-zero on any issue")
106
+ args = parser.parse_args()
107
+
108
+ if not AGENTS_DIR.exists():
109
+ print(f"Agents directory not found: {AGENTS_DIR}", file=sys.stderr)
110
+ return 2
111
+
112
+ issues = 0
113
+
114
+ for module_dir in sorted([p for p in AGENTS_DIR.iterdir() if p.is_dir()]):
115
+ prompts_dir = module_dir / "prompts"
116
+ en_dir = prompts_dir / "en"
117
+ if not en_dir.exists():
118
+ continue
119
+
120
+ # Prefer zh if exists, else cn if exists (but we also compare against cn if present)
121
+ zh_dir = prompts_dir / "zh"
122
+ cn_dir = prompts_dir / "cn"
123
+
124
+ for en_file in _iter_yaml_files(en_dir):
125
+ rel = en_file.relative_to(en_dir)
126
+ candidates = []
127
+ if zh_dir.exists():
128
+ candidates.append(("zh", zh_dir / rel))
129
+ if cn_dir.exists():
130
+ candidates.append(("cn", cn_dir / rel))
131
+
132
+ if not candidates:
133
+ continue
134
+
135
+ en_obj = _load_yaml(en_file)
136
+
137
+ for lang_name, zh_file in candidates:
138
+ if not zh_file.exists():
139
+ issues += 1
140
+ print(f"[MISSING {lang_name}] {module_dir.name}: {rel.as_posix()}")
141
+ continue
142
+
143
+ zh_obj = _load_yaml(zh_file)
144
+ d = _diff(en_obj, zh_obj)
145
+
146
+ if d.missing_zh or d.extra_zh or d.placeholder_missing_zh or d.placeholder_extra_zh:
147
+ issues += 1
148
+ print(f"[DIFF {lang_name}] {module_dir.name}: {rel.as_posix()}")
149
+ if d.missing_zh:
150
+ print(" - missing keys:")
151
+ for k in d.missing_zh[:50]:
152
+ print(f" - {k}")
153
+ if len(d.missing_zh) > 50:
154
+ print(f" ... ({len(d.missing_zh) - 50} more)")
155
+ if d.extra_zh:
156
+ print(" - extra keys:")
157
+ for k in d.extra_zh[:50]:
158
+ print(f" - {k}")
159
+ if len(d.extra_zh) > 50:
160
+ print(f" ... ({len(d.extra_zh) - 50} more)")
161
+ if d.placeholder_missing_zh:
162
+ print(" - missing placeholders:")
163
+ for p in d.placeholder_missing_zh:
164
+ print(f" - {p}")
165
+ if d.placeholder_extra_zh:
166
+ print(" - extra placeholders:")
167
+ for p in d.placeholder_extra_zh:
168
+ print(f" - {p}")
169
+
170
+ if issues == 0:
171
+ print("OK: prompts are structurally aligned (keys/placeholders).")
172
+ return 0
173
+
174
+ print(f"Found {issues} prompt parity issue(s).")
175
+ return 1 if args.fail else 0
176
+
177
+
178
+ if __name__ == "__main__":
179
+ raise SystemExit(main())