personal memory agent

fix(providers): drop duplicate timeout kwarg on direct cloud generate master

OpenHands SDK 1.27.1 merges the LLM object's `timeout` with call kwargs via `dict(...)`, so passing `timeout` in `_generate_call_kwargs` collided: TypeError on the completion path for google/anthropic and silent override on the openai responses path. Timeout now lives solely on the LLM object built in `_build_generate_llm`; `_generate_call_kwargs` no longer takes or emits `timeout`. Adds an SDK-faithful fake LLM where completion raises on duplicate timeout and responses overrides, plus real-boundary sync and async regression tests across google, anthropic, and openai. Validation probes (timeout_s=10, num_retries=0) are unaffected.


+131 -11
3 changed files