diff --git a/agentmain.py b/agentmain.py index a4f433b7..cf1d47c0 100644 --- a/agentmain.py +++ b/agentmain.py @@ -6,13 +6,11 @@ if sys.stderr is None: sys.stderr = open(os.devnull, "w") elif hasattr(sys.stderr, 'reconfigure'): sys.stderr.reconfigure(errors='replace') sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from llmcore import reload_mykeys, LLMSession, ToolClient, ClaudeSession, MixinSession, NativeToolClient, NativeClaudeSession, NativeOAISession, resolve_client +from llmcore import reload_mykeys, ToolClient, MixinSession, NativeToolClient, NativeClaudeSession, NativeOAISession, resolve_client from agent_loop import agent_runner_loop try: - from plugins.hooks import discover_and_load as _discover_plugins - _discover_plugins() -except Exception: - pass + from plugins.hooks import discover_and_load; discover_and_load() +except Exception: pass from ga import GenericAgentHandler, smart_format, get_global_memory, format_error, consume_file script_dir = os.path.dirname(os.path.abspath(__file__)) diff --git a/llmcore.py b/llmcore.py index c81fb0bb..c1091059 100644 --- a/llmcore.py +++ b/llmcore.py @@ -2,15 +2,21 @@ import os, json, re, time, requests, sys, threading, urllib3, base64, importlib, from datetime import datetime urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) _RESP_CACHE_KEY = str(uuid.uuid4()) +_ROOT = os.path.dirname(os.path.abspath(__file__)) +if _ROOT not in sys.path: sys.path.append(_ROOT) def _load_mykeys(): global _mykey_path try: import mykey; importlib.reload(mykey); _mykey_path = mykey.__file__ return {k: v for k, v in vars(mykey).items() if not k.startswith('_')} - except ImportError: pass + except ImportError as e: + if getattr(e, 'name', None) != 'mykey': + raise Exception(f'[ERROR] mykey.py found but failed to import: {e}') from e + except SyntaxError as e: + raise Exception(f'[ERROR] mykey.py has syntax error: {e}') from e _mykey_path = p = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'mykey.json') - if not os.path.exists(p): raise Exception('[ERROR] mykey.py or mykey.json not found, please create one from mykey_template.') + if not os.path.exists(p): raise Exception('[ERROR] mykey.py not found in sys.path and mykey.json not found. Run "python configure_mykey.py" or copy mykey_template.py to mykey.py and fill in your keys.') with open(p, encoding='utf-8') as f: return json.load(f) _mykey_path = _mykey_mtime = None