Commit Graph

1 Commits

Author SHA1 Message Date
Diego Rodrigues de Sa e Souza
7b564ab5db feat(providers): add Felo chat-aggregator provider (#6666) (#7599)
Adds felo-web, a free no-signup no-API-key chat/search-agent aggregator
(felo.ai), following the same architectural pattern as the existing
duckduckgo-web/blackbox-web "-web" scrape family:

- POST /api-proxy/main/search/threads opens a search thread and returns a
  stream_key.
- GET /api/message/v1/stream/{stream_key} streams Felo's bespoke
  data:{...}-line SSE, translated into OpenAI-compatible chunks.
- 5 models (felo-chat/search/scholar/social/document) map to Felo's
  chat/google/scholar/social/document search categories.

Registered in providers.ts (noauth.ts, no-auth like duckduckgo-web),
providerRegistry.ts, and executors/index.ts. Free-tier catalog entries
added with tos: "avoid" (reverse-engineered endpoint, no published API —
same ToS posture as the other -web scrape providers).

No live network access was available in this environment to smoke-test
against the real felo.ai endpoint, so validation is TDD via mocked fetch
(tests/unit/felo-web-executor.test.ts): thread-creation payload shape,
SSE parsing (answer-snapshot diffing + final_contexts drop), streaming
and non-streaming response translation, and error/timeout paths that
route through sanitizeErrorMessage() per the error-sanitization rule.
2026-07-17 11:31:54 -03:00