Update the LLM client to support streaming responses and improve
database migration idempotency.
- Add `stream` support to `llmChat` with dynamic chunk parsing for
compatibility across different LLM providers.
- Remove hardcoded default temperature and top_p to allow for more
flexible parameter passing.
- Update database migrations to use `IF NOT EXISTS` for tables and
indexes to prevent errors during re-runs.