feat(agent): adaptive tool timing with slow tool notification

Track per-tool execution time statistics in session metadata. When a tool
call exceeds its adaptive threshold (2x historical max, min 120s default),
send a direct outbound notification to the user.

- ToolTimingMap: parse/serialize/record/threshold from session metadata
- StartSlowTimer: fires once per tool call, auto-cancels on completion
- Team config: slow_tool toggle (default on, always direct, never leader)
- UI: toggle in team settings with i18n (en/vi/zh)
- Store: add GetSessionMetadata to session store interface
This commit is contained in:
viettranx
2026-03-19 13:35:57 +07:00
parent 0df619023c
commit 4e9f155a4c
12 changed files with 236 additions and 1 deletions
+1
View File
@@ -97,6 +97,7 @@ type SessionStore interface {
GetCompactionCount(key string) int
GetMemoryFlushCompactionCount(key string) int
SetMemoryFlushDone(key string)
GetSessionMetadata(key string) map[string]string
SetSessionMetadata(key string, metadata map[string]string)
SetSpawnInfo(key, spawnedBy string, depth int)
SetContextWindow(key string, cw int)