File size: 1,345 Bytes
5e0532d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import asyncio
from app.services.repl import repl_service
from app.services.rlm import rlm_service

async def main():
    print("=== ORA REPL & RLM Verification ===")
    
    # 1. Basic REPL test
    print("\n1. Testing basic REPL (Math/Logic)...")
    code = "x = 10\ny = 20\nprint(f'{x} + {y} = {x+y}')"
    res = repl_service.execute(code)
    print(f"   Output: {res['output'].strip()}")
    
    # 2. Safety Test
    print("\n2. Testing Safety (Attempting to import OS)...")
    unsafe_code = "import os\nprint(os.name)"
    res = repl_service.execute(unsafe_code)
    if not res["success"]:
        print(f"   [SAFE] Blocked/Failed correctly: {res['error'].splitlines()[-1]}")
    else:
        print(f"   [DANGER] OS access was allowed!")

    # 3. RLM Test (Requires Mock LLM to cooperate)
    # We update mock logic to handle "calculate" keywords
    print("\n3. Testing RLM (Reasoning Loop)...")
    problem = "Calculate the number of days between the destruction of the first temple (586 BC) and the second temple (70 AD)."
    
    # Note: Mock LLM needs a fallback for this to work in offline mode
    print("   (Verifying code generation -> execution flow)")
    reasoning_result = await rlm_service.reason(problem)
    print(f"   RLM Final Result: {reasoning_result.strip()}")

if __name__ == "__main__":
    asyncio.run(main())