William Valentin
9c8e9cd546
fix(tui): narrow tool inventory query detection
2026-02-22 17:12:30 -08:00
William Valentin
44c7409a20
feat(councils): add preflight, schema-driven outputs, and artifact reporting
2026-02-22 15:56:30 -08:00
William Valentin
b09bfc8373
Unify TUI slash commands and harden tool inventory responses
2026-02-21 12:39:27 -08:00
William Valentin
16af5e75fd
feat: make /transfer bidirectional across telegram and tui
2026-02-18 07:55:08 -08:00
William Valentin
409ab04ca1
feat(tui,dashboard,docs): add context command parity and context health panel
2026-02-16 18:08:19 -08:00
William Valentin
1d16cd54e6
fix(tui): align slash command parsing and handlers
2026-02-16 12:22:40 -08:00
William Valentin
fd7ad7bfb0
fix(tui): add /queue command support across tui and routing
2026-02-16 12:19:21 -08:00
William Valentin
25482b8516
feat: sync PROVIDER_NAMES with config schema and update README docs
...
Extract MODEL_PROVIDERS const from config schema as single source of truth
for provider names. PROVIDER_NAMES in TUI commands now imports from schema
instead of maintaining a hardcoded list. Adds tests verifying sync.
Updates README TUI Commands section with /model hot-swap documentation,
supported providers, and runtime model switching examples.
2026-02-10 21:26:18 -08:00
William Valentin
64e3716ede
test(tui): add /pair command parsing tests
2026-02-09 21:56:27 -08:00
William Valentin
1c2f54fae3
feat: implement tier 1 quick wins (tool groups, typing, pruning, verbose, think)
...
Five additive features with no breaking changes:
- Tool groups: group:fs, group:runtime, group:web, group:memory syntactic
sugar for allow/deny lists in tool policy config
- Typing indicators: Discord sendTyping() and WhatsApp sendStateTyping()
on message receipt for better UX feedback
- Session pruning: TTL-based auto-cleanup via sessions.ttl config with
hourly daemon timer and SQLite GROUP BY pruning
- /verbose command: TUI command parser toggle for raw streaming display
- !!think prefix: per-message extended thinking mode wired through
Anthropic (budget_tokens), OpenAI/GitHub (reasoning_effort), and
Gemini (thinkingConfig) providers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 13:35:00 -08:00
William Valentin
d4530a7034
feat: add runtime provider/model switching via /model <tier> <provider/model>
...
- ModelRouter: add setClient(), labels map, getLabel(), getAllLabels()
- TUI commands: parse /model <tier> <provider/model> syntax with autocompletion
- TUI minimal: handle provider switching via createClientFromConfig factory
- Daemon: wire initial labels into router config
- Fix /model alias mappings (opus=complex, sonnet=default, haiku=fast)
- Add design doc and update state.json with feature status
2026-02-06 23:42:14 -08:00
William Valentin
4316dbd3be
feat: add P2 features — retry policy, prompt templating, usage tracking, tech debt cleanup
...
- Extract shared splitMessage() into channels/utils.ts (dedup 4 adapters)
- Add Slack user name resolution with caching (users.info API)
- Add withRetry() with exponential backoff + jitter, isRetryable() filter
- Wire retry config into ModelRouter.chat() (non-streaming only)
- Add assembleSystemPrompt() multi-file template system (SOUL/AGENTS/IDENTITY/USER/TOOLS.md)
- Add usage tracking accumulators in NativeAgent + AgentOrchestrator
- Add estimateCost() with per-model pricing table
- Add /usage TUI command with full usage report formatting
- Add retrySchema and promptSchema to config schema
Tests: 569 passing, typecheck clean
2026-02-06 15:12:35 -08:00
William Valentin
306e11bd2e
feat: add multi-model delegation (Phase 0) and context compaction (Phase 1)
...
Phase 0 — Multi-Model Delegation:
- AgentOrchestrator wraps NativeAgent with delegate() for stateless
single-turn calls to any model tier (fast/default/complex/local)
- DelegationConfig maps task types (compaction, classification, etc.)
to model tiers
- Delegation prompts for compaction, memory extraction, classification,
and tool summarisation
- Per-tier usage tracking for cost visibility
- Config schema: agents.delegation and agents.primary_tier
Phase 1 — Context Compaction:
- Token estimation (char/4 heuristic) with context window lookup
- shouldCompact() threshold check against context window percentage
- compactHistory() splits old/recent messages, delegates summary to
fast tier, returns CompactionResult
- Automatic compaction in AgentOrchestrator.process() when configured
- Force-compact via orchestrator.compact() with session persistence
- Session.replaceHistory() with atomic SQLite transaction
- /compact TUI command with feedback on compacted token counts
- Config schema: compaction.enabled, threshold_pct, keep_turns,
summary_max_tokens
Tests: 385 passing across 50 files (22 new tests in 2 new test files)
2026-02-06 13:17:02 -08:00
William Valentin
465b4a0c3c
feat: add /backend command parsing
...
Add support for /backend command to show or switch local backend providers. Follows the same pattern as /model command with optional argument support.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-05 13:35:10 -08:00
William Valentin
435146344e
feat(tui): add unified command parser with model switching
2026-02-05 10:52:49 -08:00