2a1b7b0aeb
- LLM: AgentFn<{prompt}> + createAgentAdapter, chatCompletionText unchanged
- Hermes: AgentFn<{prompt}> + createAgentAdapter, config validation in extract
- Cursor: AgentFn<{prompt, workspace}> + createAgentAdapter, workspace
extraction moved to extract fn, AgentFn itself only receives resolved options
All public API signatures preserved. createTextAdapter/TextProducerFn retained.
Closes #261, Phase 2 of #252