fix mykey path, add inject-prompt button, harden reload_mykeys

This commit is contained in:
Jiaqing Liang
2026-05-25 13:28:43 +08:00
parent a33b225967
commit 1eb8c4c78c
4 changed files with 20 additions and 10 deletions
+3
View File
@@ -66,6 +66,9 @@ memory/L4_raw_sessions/*
# Subagent SOP
!memory/subagent_sop.md
# Incubator SOP
!memory/incubator_sop.md
# Supervisor SOP
!memory/supervisor_sop.md
+1 -1
View File
@@ -88,7 +88,7 @@ class AgentManager:
@property
def mykey_path(self) -> str:
return str(Path(self.ga_root) / "mykey.txt")
return str(Path(self.ga_root) / "mykey.py")
def ensure_ga_import_path(self) -> Path:
root = Path(self.ga_root).resolve()
+6 -1
View File
@@ -94,6 +94,9 @@ def render_sidebar():
st.toast("Desktop pet started")
if LANG == 'zh':
if st.button('🎯 给我找点事做'):
st.session_state['_inject_prompt'] = '按照自主行动的规划部分,充分分析我的情况,给我生成一批TODO,务必让我感兴趣'
st.rerun(scope="app")
st.divider()
if st.button("开始空闲自主行动"):
st.session_state.last_reply_time = int(time.time()) - 1800
@@ -257,7 +260,9 @@ _js_ime_fix = ("" if os.name == 'nt' else
"f();new MutationObserver(f).observe(d.body,{childList:1,subtree:1})}()")
_embed_html(f'<script>{_js_scroll_fix};{_js_ime_fix}</script>', height=0)
if prompt := st.chat_input("any task?"):
_injected = st.session_state.pop('_inject_prompt', None)
prompt = st.chat_input("any task?") or _injected
if prompt:
ts = time.strftime("%Y-%m-%d %H:%M:%S")
cmd = (prompt or "").strip()
def _reset_and_rerun():
+10 -8
View File
@@ -15,19 +15,21 @@ def _load_mykeys():
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')
p = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'mykey.json')
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)
with open(_mykey_path := p, encoding='utf-8') as f: return json.load(f)
_mykey_path = _mykey_mtime = None
def reload_mykeys():
global _mykey_mtime
mt = os.stat(_mykey_path).st_mtime_ns if _mykey_path else -1
if mt == _mykey_mtime: return globals().get('mykeys', {}), False
mk = _load_mykeys(); _mykey_mtime = os.stat(_mykey_path).st_mtime_ns
print(f'[Info] Load mykeys from {_mykey_path}')
globals().update(mykeys=mk)
return mk, True
try:
mt = os.stat(_mykey_path).st_mtime_ns if _mykey_path else -1
if mt == _mykey_mtime: return globals().get('mykeys', {}), False
mk = _load_mykeys(); _mykey_mtime = os.stat(_mykey_path).st_mtime_ns
print(f'[Info] Load mykeys from {_mykey_path}')
globals().update(mykeys=mk)
return mk, True
except: return globals().get('mykeys', {}), False
def __getattr__(name): # once guard in PEP 562
if name == 'mykeys': return reload_mykeys()[0]