realtimex-deeptutor 0.5.0.post8__py3-none-any.whl → 0.5.0.post10__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: realtimex-deeptutor
3
- Version: 0.5.0.post8
3
+ Version: 0.5.0.post10
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
@@ -1,5 +1,5 @@
1
1
  realtimex_deeptutor/__init__.py,sha256=sSfuCLjJa6BnayszcU4azNl_sr1OzuKgLP10BAtdoh8,1567
2
- realtimex_deeptutor-0.5.0.post8.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
2
+ realtimex_deeptutor-0.5.0.post10.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
3
3
  scripts/__init__.py,sha256=mxMsCbci-Qon3qWU1JIi93-tYlHAy0NIUbDRmAPVcg0,54
4
4
  scripts/audit_prompts.py,sha256=Ltuk7tvsjpKhiobVbYq1volgVFKiVLgSTaE_Is4MGaM,5651
5
5
  scripts/check_install.py,sha256=GbApEcDLJ6r0QmYrCVHAFCOK4wolpSLwL3eBRmmD3og,13929
@@ -7,7 +7,7 @@ scripts/generate_roster.py,sha256=COsJ12bvZ5W9TI-wAvKpknKBgHr9uQTvJ_JCz2gVMVo,12
7
7
  scripts/install_all.py,sha256=u-A3eLhk1ua_KCjz8WZMkrVNJN6QdYs7NhGOcsm-Mks,23875
8
8
  scripts/migrate_kb.py,sha256=uyJgplkJag35rT2RrwSiT37__gpB4TiA0xh5uVcWIa4,19667
9
9
  scripts/start.py,sha256=EYbyjryor0DN_WcxQMSkKWCboM9UjMkv61fWhLyv63I,30300
10
- scripts/start_web.py,sha256=ZND4cNGYKpd52hygA2HFJFFiB1IGJoFAgP1mBXUNURA,34796
10
+ scripts/start_web.py,sha256=JyFWfDps1P6ErhW8746YC-adODrvQQYQqlNkgLX39pU,35252
11
11
  scripts/sync_prompts_from_en.py,sha256=TkBSFilYSwnwo0a3cgRnJ84i02zByAIW12N3ePzBwE8,4677
12
12
  src/__init__.py,sha256=UNw3C20mbskiQF3rK3HhjglrG8snhfuiVthc5UsoHX0,1046
13
13
  src/agents/__init__.py,sha256=IPhP4RZnCH2kcUDBkdKHO_ciVdyWnuHUCG2flG5Ydcw,885
@@ -127,7 +127,7 @@ src/agents/solve/utils/performance_monitor.py,sha256=v9-bQqlVoTBhKncrXzGspoolq7e
127
127
  src/agents/solve/utils/token_tracker.py,sha256=xYuv4NrBfDA5Aom4xr_q2u1RU1Izgr3CYzoKM01y_zU,19600
128
128
  src/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
129
  src/api/main.py,sha256=OQUxvucW-baBBiLlOlzcR0wQhMSmgaULdU7Qi8_fUqI,8614
130
- src/api/run_server.py,sha256=qXLISU4u15tpw06MEGEHq4rrX9YJ3Gumx0kXhb52hvs,2062
130
+ src/api/run_server.py,sha256=fB9-J1Yh-txGbtWUidAQxVzsd8v8IgaKNqnFoSGZs68,2094
131
131
  src/api/routers/__init__.py,sha256=eH0nWjt-2ODjP6MLdmMl_lgcoD1nCep0eHqUJOTj01k,24
132
132
  src/api/routers/agent_config.py,sha256=kr-UsMiIrZfy-qFSy35nzNvh2wen1MXGRnPrPbsEP-w,1590
133
133
  src/api/routers/chat.py,sha256=bHp6t-C027g02ArTikUbbcZBf18LTiBzXMvZuCZ9WM8,10805
@@ -169,7 +169,7 @@ src/knowledge/manager.py,sha256=i_mR8dXqykWcNy24sdPJV8PRocdgmKG8WPzSI7Y7_cE,3421
169
169
  src/knowledge/progress_tracker.py,sha256=7BGzUDH5ok52L3aLZfkBY5NW-xrOc0tIqZPcYIB_oUY,8214
170
170
  src/knowledge/start_kb.py,sha256=Ye5Ua_jsK5NOW4XoCYY0gTNWDW01bzMB01qEirpk2ig,19108
171
171
  src/logging/__init__.py,sha256=IXaC3j2mtxlY4ousuS4LIRw3VxOlUgJ0V1TZcHopwNE,2286
172
- src/logging/config.py,sha256=BYH5AfOOD1WKPbJda0FbsQFXE6ktHYdZazo8UyyssRA,2469
172
+ src/logging/config.py,sha256=UlyndCCBTQGFafPIi2A6cFopdmPzS9vs_UMPFPWnk50,2658
173
173
  src/logging/logger.py,sha256=IaLX6lOR51IX17EubkM0e6aMMcsNazCUOL3MNkrVsi0,25091
174
174
  src/logging/adapters/__init__.py,sha256=O4tiJX3whFi8jh-IERC-inWmjbcS6GuIQ9BzJUEpNUk,473
175
175
  src/logging/adapters/lightrag.py,sha256=LdOc5ctexBAipWVeUkIHw6fQARLan6jTf81OoVN1KxA,6313
@@ -289,8 +289,8 @@ src/utils/error_utils.py,sha256=ME_9q-DlmxFl-Xvv3ETPZE_iP705x6MXiuAREgWYsjM,2262
289
289
  src/utils/json_parser.py,sha256=M_KfrsrNvQPSiFvpKHQV79Aj85_MEcLVc6hnKzvTV58,3243
290
290
  src/utils/realtimex.py,sha256=vs7fAEnJJ4zpAyyBn-7vUmGWiiQvpTWQCRgax1MLTDw,9769
291
291
  src/utils/network/circuit_breaker.py,sha256=BtjogK5R3tG8fuJniS5-PJKZMtwD5P2SkP2JFiQ9sRA,2722
292
- realtimex_deeptutor-0.5.0.post8.dist-info/METADATA,sha256=UZu0J6h0x9m5V-Rn1_dOZYA0FPdgWSm2Na8eKkmeUxQ,58304
293
- realtimex_deeptutor-0.5.0.post8.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
294
- realtimex_deeptutor-0.5.0.post8.dist-info/entry_points.txt,sha256=slNAzwRLUpqiMtDRZBQIkXbU2vGMHL_om6-o19gYdh8,134
295
- realtimex_deeptutor-0.5.0.post8.dist-info/top_level.txt,sha256=zUAd6V7jDYhdL7bvg2S38YCM-gVhvd36WqkjxrT-02I,32
296
- realtimex_deeptutor-0.5.0.post8.dist-info/RECORD,,
292
+ realtimex_deeptutor-0.5.0.post10.dist-info/METADATA,sha256=XmZlyQW826HMX3Pak6ZS6hdX6rv6v9NcHsslH1Q3oP8,58305
293
+ realtimex_deeptutor-0.5.0.post10.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
294
+ realtimex_deeptutor-0.5.0.post10.dist-info/entry_points.txt,sha256=slNAzwRLUpqiMtDRZBQIkXbU2vGMHL_om6-o19gYdh8,134
295
+ realtimex_deeptutor-0.5.0.post10.dist-info/top_level.txt,sha256=zUAd6V7jDYhdL7bvg2S38YCM-gVhvd36WqkjxrT-02I,32
296
+ realtimex_deeptutor-0.5.0.post10.dist-info/RECORD,,
scripts/start_web.py CHANGED
@@ -811,6 +811,15 @@ def _start_frontend_npx(frontend_port, backend_port):
811
811
 
812
812
  npx_cmd = npx_path or "npx"
813
813
 
814
+ # Ensure the directory containing npx (and node) is in PATH
815
+ # This is critical for bundled environments where node might not be in system PATH
816
+ if npx_path:
817
+ npx_dir = os.path.dirname(os.path.abspath(npx_path))
818
+ current_path = env.get("PATH", "")
819
+ # Prepend to PATH to ensure our bundled node is found first
820
+ env["PATH"] = f"{npx_dir}{os.pathsep}{current_path}"
821
+ print_flush(f"📌 Added to PATH: {npx_dir}")
822
+
814
823
  # Process group configuration
815
824
  popen_kwargs = {
816
825
  "shell": False,
src/api/run_server.py CHANGED
@@ -57,5 +57,5 @@ if __name__ == "__main__":
57
57
  port=backend_port,
58
58
  reload=True,
59
59
  reload_excludes=reload_excludes,
60
- log_level="info",
60
+ log_level=os.getenv("LOG_LEVEL", "info").lower(),
61
61
  )
src/logging/config.py CHANGED
@@ -42,9 +42,17 @@ def get_default_log_dir() -> Path:
42
42
 
43
43
  def get_global_log_level() -> str:
44
44
  """
45
- Get the global log level from config/main.yaml -> logging.level
45
+ Get the global log level from Environment (LOG_LEVEL) or config/main.yaml
46
46
  Default: DEBUG
47
47
  """
48
+ import os
49
+
50
+ # Priority 1: Environment variable
51
+ env_level = os.getenv("LOG_LEVEL")
52
+ if env_level:
53
+ return env_level.upper()
54
+
55
+ # Priority 2: Config file
48
56
  try:
49
57
  from src.services.config import load_config_with_main
50
58