Otto 0.1.2
·
56 commits
to 1cd1693983f337f29ec68887a4b2e98669636fa9
since this release
Otto as a library, and the phone as a place to work (#12, #13, #14).
Added
- Embedding API (
agent/embed.py,API_VERSION = 1):configure(home, environ=...)with a keystore mode that never writes a key file,Runtime, sessions whoserunstreams JSON events, andanswer/cancelfrom another thread.OTTO_HOME/OTTO_ENV_FILEmove otto's state. - Phone tools (
agent/phone/): a device-agnostic backend protocol, a bounded screen digest that never shows a password field, and tools of which onlyphone_installandphone_commitchange anything. Used by the Otto Android app. - A money guard that judges the whole page (rules v3): secure, payment, checkout and cart pages are scored from the page's structure, not from single words, with a page corpus shared with the app. Explicit pay controls are never tapped, and PIN/OTP/CVV/password fields are never typed into.
otto serve: the same runtime behind a token-protected WebSocket.
Changed
- fastembed and langgraph-cli are optional extras; a missing vendor SDK disables that vendor, not the router.
numpy>=1.26.2, so otto installs on Android CPython 3.13.- A connection error names its root cause, and a failed provider check logs its whole exception chain.
- A provider that answers with a credits or quota 429 is cooled down for an hour.