indifferentketchup
c4079dd85c
feat: DeepSeek API integration + Whale lift (hooks, tool repair, MCP permissions, token tracking)
DeepSeek API:
- @ai-sdk/deepseek provider replaces openai-compatible for deepseek-* models
- Token tracking: cache_hit/reasoning tokens flow API → DB → WS frames → UI
- thinking effort levels (off/low/medium/high/xhigh/max) via AGENTS.md frontmatter
- V4 models: deepseek-v4-flash, deepseek-v4-pro
- Wired for both chat and coder panes
Whale lifts:
- Tool input repair (schema-based type coercion, markdown link unwrapping)
- Hooks system (6 lifecycle events, shell exec, JSON stdin/stdout contract)
- Per-MCP-server permissions (allow/ask/deny)
- token tracking UI (cache N, think N in message stats line)
Infra:
- New DB columns: messages.cache_tokens, messages.reasoning_tokens
- New WS frame fields: cache_tokens, reasoning_tokens on message_complete
- coder provider snapshot merges DeepSeek models alongside llama-swap
2026-06-08 01:24:23 +00:00
..
2026-06-03 14:55:38 +00:00
2026-06-03 14:59:01 +00:00
2026-05-29 03:12:06 +00:00
2026-06-07 22:16:29 +00:00
2026-05-26 21:02:21 +00:00
2026-05-15 23:36:01 +00:00
2026-06-05 15:14:21 +00:00
2026-06-03 14:55:38 +00:00
2026-06-06 23:25:29 +00:00
2026-06-02 21:12:29 +00:00
2026-05-26 21:54:08 +00:00
2026-05-15 20:39:48 +00:00
2026-05-15 20:39:48 +00:00
2026-05-16 20:07:53 +00:00
2026-05-17 10:31:32 +00:00
2026-06-03 15:22:48 +00:00
2026-06-06 23:25:29 +00:00
2026-05-21 20:45:53 +00:00
2026-05-15 15:32:04 +00:00
2026-06-03 14:55:38 +00:00
2026-05-16 05:11:39 +00:00
2026-06-07 22:16:20 +00:00
2026-05-20 20:28:45 +00:00
2026-05-16 15:23:41 +00:00
2026-05-15 20:39:48 +00:00
2026-06-02 21:12:29 +00:00
2026-06-03 16:17:37 +00:00
2026-06-03 16:17:37 +00:00
2026-06-07 22:16:20 +00:00
2026-06-02 21:12:29 +00:00
2026-06-07 22:16:29 +00:00
2026-06-07 22:16:20 +00:00
2026-06-07 22:16:20 +00:00
2026-06-07 22:16:20 +00:00
2026-06-02 21:12:29 +00:00
2026-06-02 21:12:29 +00:00
2026-06-08 01:24:23 +00:00
2026-05-25 19:20:53 +00:00
2026-06-03 14:55:38 +00:00
2026-06-03 14:55:38 +00:00
2026-06-03 15:22:48 +00:00
2026-06-06 23:25:29 +00:00
2026-05-26 21:28:14 +00:00
2026-06-07 22:16:25 +00:00
2026-05-22 21:45:52 +00:00
2026-06-07 22:16:20 +00:00
2026-06-03 14:55:38 +00:00
2026-06-03 17:00:49 +00:00
2026-05-21 20:48:22 +00:00
2026-05-21 20:32:02 +00:00
2026-06-03 14:59:01 +00:00
2026-05-17 10:31:32 +00:00
2026-06-02 21:12:29 +00:00
2026-06-06 23:25:29 +00:00