43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""Get reasoning configuration for current user"""
|
|
import json
|
|
|
|
result = {'success': False, 'config': {}}
|
|
|
|
try:
|
|
dbname = get_module_dbname('harnessed_reasoning')
|
|
user_id = await get_user()
|
|
|
|
sql = """SELECT * FROM harnessed_reasoning_config
|
|
WHERE user_id = ${user_id}$
|
|
ORDER BY updated_at DESC
|
|
LIMIT 1"""
|
|
|
|
async with DBPools().sqlorContext(dbname) as sor:
|
|
rows = await sor.sqlExe(sql, {'user_id': user_id})
|
|
if rows and len(rows) > 0:
|
|
config = dict(rows[0])
|
|
# Convert string booleans to actual booleans for UI
|
|
config['enable_cross_session_search'] = config.get('enable_cross_session_search', '1') == '1'
|
|
config['enable_skill_auto_loading'] = config.get('enable_skill_auto_loading', '1') == '1'
|
|
config['enable_error_recovery'] = config.get('enable_error_recovery', '1') == '1'
|
|
result['config'] = config
|
|
else:
|
|
result['config'] = {
|
|
'max_reasoning_steps': 10,
|
|
'max_tool_calls_per_step': 5,
|
|
'enable_cross_session_search': True,
|
|
'enable_skill_auto_loading': True,
|
|
'safety_mode': 'strict',
|
|
'max_context_tokens': 4000,
|
|
'enable_error_recovery': True,
|
|
'max_recovery_attempts': 3
|
|
}
|
|
result['success'] = True
|
|
|
|
except Exception as e:
|
|
result['error'] = str(e)
|
|
|
|
return json.dumps(result, ensure_ascii=False, default=str)
|