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
This commit is contained in:
William Valentin
2026-02-06 15:12:35 -08:00
parent de68deb1b2
commit 4316dbd3be
24 changed files with 902 additions and 143 deletions
+5
View File
@@ -30,6 +30,10 @@ describe('parseCommand', () => {
expect(parseCommand('/compact')).toEqual({ type: 'compact' });
});
it('parses /usage command', () => {
expect(parseCommand('/usage')).toEqual({ type: 'usage' });
});
it('parses /model command without argument', () => {
expect(parseCommand('/model')).toEqual({ type: 'model' });
});
@@ -69,6 +73,7 @@ describe('getHelpText', () => {
expect(help).toContain('/model');
expect(help).toContain('/reset');
expect(help).toContain('/compact');
expect(help).toContain('/usage');
expect(help).toContain('/quit');
});
});