- fastspec
dict2obj -> obj2dicthandling (#43), thanks to @KeremTurgutlu
- Resize images returned from tool call (Anthropic) (#41)
- Anthropic
messages: text content blocks must be non-empty(#44) - Invalid 'input[95].
call_id': string too long. Expected a string with maximum length 64, but got a string with length 116 instead. (#45) - Fireworks generates
tool_call.ids that result in Anthropic API calls failing (#42) - Claude server
tool_resultyield bug (#40) - fix truncation (#39), thanks to @RensDimmendaal
- Anthropic
messages: text content blocks must be non-empty(#44) - Resize images returned from tool call (Anthropic) (#41)
- Invalid 'input[95].
call_id': string too long. Expected a string with maximum length 64, but got a string with length 116 instead. (#45) - Fireworks generates
tool_call.ids that result in Anthropic API calls failing (#42) - Claude server
tool_resultyield bug (#40) - fix truncation (#39), thanks to @RensDimmendaal
- Add
CODEX_AUTH_PATH(#38)
- rename tools to be as safepyrun/safecmd expects (#36), thanks to @RensDimmendaal
- Add Mimo vendor, Opus 4-8,
modern_llmpreset, and fix Anthropic cache cost fallback (#35)
- Wrong roles in
mk_msgswhenfmt2histends withtool(#37) - Update 'gpt-5.3-codex-spark' meta to support tools (#34)
- Model name changes from the server response invalidates model meta patches (#33)
MediaUrlfor direct url handling without byte reading (#31)- Add timeout to
mk_client(#26) - Add retry logic with exponential backoff to acomplete (#25), thanks to @ncoop57
- Yield tool calls JIT (#19)
- force enable
web_searchfor codex models (#22), thanks to @jackhogan
- Add
approx_pricinghelper and fix Fireworks Kimi k2p6 model registration with pricing (#21) - Refactor model info into registry; add
get_model_pricing; add new gemini models (#20)
- Fix
accounts/fireworks/models/kimi-k2p5registration (#23) - force enable
web_searchfor codex models (#22), thanks to @jackhogan
-
Add
finalize_usageto fix anthropic reasoning token tracking; Add debugbriefmode (#18) -
make old web search tool
web_search_20250305the default (#16) -
fastllm chat debug mode (#15)
-
Track reasoning tokens in Anthropic usage; handle token details in mk_msgs; fix _trunc_param escaping; add codex auth module (#13)
- AsyncChat callback system (#11)
-
markdown='1' (#12)
-
stopstatus getting reset in streaming loop (#10)- Fix is to only check the stop condition if it's not met yet, e.g.
if not stop: stop = stop_and_trim(part_accum, d, stop_callables)modelparam inmk_clientshould be optional (#9)
-
get_model_infostrictparam (#8)- If a model can't be resolved in
get_model_infoyou can passstrict=Falseto get placeholder price values to avoid errors withAsyncChat. For example, we usestrict=Truein solveit andstrict=Falsein shell sage where users can pass their custom models with custom base urls.
- If a model can't be resolved in
-
Unresolved model fixes (#7)
- When a model and it's info can't be resolved:
-
Default to
openai_chatapi if not provided -
Default max tokens to 32k
-
Set pricing to codex values
- Code fence tool fixes (#6)
_split_msg_on_fencesfix which now correctly handles mixed msg content, e.g. thinking + text, tool use + text etc.._fence_renew line start check
