Deterministic AI backend for testing.
Responds with configurable canned responses. Supports a response queue (FIFO) or a static default response.
Usage
# Static response
opts = [response: "Hello from mock"]
{:ok, resp} = Mock.complete([%{role: :user, content: "hi"}], opts)
# Response queue (pops from front)
opts = [responses: ["first", "second", "third"]]
{:ok, resp1} = Mock.complete(messages, opts) # "first"
{:ok, resp2} = Mock.complete(messages, opts) # "second"