feat: añadir tools wikipedia_search y exchange_rate

- tools/wikipedia/wikipedia.go: tool wikipedia_search que consulta la
  API pública de Wikipedia (sin auth). Devuelve resumen del artículo.
- tools/exchange/exchange.go: 4 tools de tipo de cambio usando
  exchangerate-api.com: exchange_rate_get, exchange_rate_convert,
  exchange_rate_list, exchange_rate_historical.
- internal/config/schema.go: añadir ExchangeRateToolCfg con Enabled,
  APIKey, APIKeyEnv y Timeout.
- devagents/registry_build.go: registrar ambas tool families.
  wikipedia_search siempre disponible; exchange rate tools requieren
  APIKey configurado (deny-by-default con WARN si falta).
- devagents/registry_build_test.go: actualizar test de registry build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-11 00:25:10 +00:00
parent 04b8d2b461
commit f2718aa17c
5 changed files with 689 additions and 2 deletions
+2 -2
View File
@@ -143,8 +143,8 @@ func TestBuildToolRegistry_ToolCount(t *testing.T) {
reg := buildToolRegistry(cfg, nil, nil, nil, nil, nil, nil, nil, nil, roomCtx, logger)
// 3 always-on + 2 HTTP + 1 SSH + 5 file + 1 IMDb = 12
expected := 12
// 4 always-on (current_time, get_weather, wikipedia_search, matrix_send) + 2 HTTP + 1 SSH + 5 file + 1 IMDb = 13
expected := 13
if got := reg.Len(); got != expected {
t.Errorf("expected %d tools, got %d: %v", expected, got, reg.Names())
}