feat: AgentDetector + AgentInfo pour la crate fractal-ai (#11, #20) #119

Closed
charles wants to merge 4 commits from feat/11-20-agent-detector into main
Owner

Résumé

Implémentation des issues #11 et #20 : fondations de la crate fractal-ai avec la détection d'agents IA dans les salons Matrix.

  • AgentDetector : détection via flag m.bot dans le profil, patterns regex sur le localpart (.*-bot, .*-agent, openclaw.*), et liste manuelle de known_agents. Cache concurrent via DashMap.
  • AgentInfo : struct avec user_id, agent_type, display_name, capabilities, model.
  • AgentType : enum OpenClaw / Generic / Custom(String)OpenClaw détecté via champ io.openclaw.agent dans le profil ou présence de "openclaw" dans le localpart.
  • Workspace Cargo.toml : ajout de dashmap = "6" et regex = "1" dans [workspace.dependencies].
  • fractal-ai/Cargo.toml : migration vers { workspace = true } pour ces deux dépendances.

Plan de test

  • cargo test -p fractal-ai : 9 tests unitaires dans agent.rs (patterns, profil JSON, cache, localpart)
  • cargo check --workspace : pas de régression sur les autres crates
  • Vérifier que AgentDetector::with_defaults compile et retourne AgentType::OpenClaw pour @openclaw-ai:matrix.org

Closes #11
Closes #20

## Résumé Implémentation des issues #11 et #20 : fondations de la crate `fractal-ai` avec la détection d'agents IA dans les salons Matrix. - **`AgentDetector`** : détection via flag `m.bot` dans le profil, patterns regex sur le localpart (`.*-bot`, `.*-agent`, `openclaw.*`), et liste manuelle de `known_agents`. Cache concurrent via `DashMap`. - **`AgentInfo`** : struct avec `user_id`, `agent_type`, `display_name`, `capabilities`, `model`. - **`AgentType`** : enum `OpenClaw` / `Generic` / `Custom(String)` — `OpenClaw` détecté via champ `io.openclaw.agent` dans le profil ou présence de "openclaw" dans le localpart. - Workspace `Cargo.toml` : ajout de `dashmap = "6"` et `regex = "1"` dans `[workspace.dependencies]`. - `fractal-ai/Cargo.toml` : migration vers `{ workspace = true }` pour ces deux dépendances. ## Plan de test - [ ] `cargo test -p fractal-ai` : 9 tests unitaires dans `agent.rs` (patterns, profil JSON, cache, localpart) - [ ] `cargo check --workspace` : pas de régression sur les autres crates - [ ] Vérifier que `AgentDetector::with_defaults` compile et retourne `AgentType::OpenClaw` pour `@openclaw-ai:matrix.org` Closes #11 Closes #20
charles closed this pull request 2026-04-06 02:10:19 +00:00
Some checks are pending
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
qa
Required

Pull request closed

Sign in to join this conversation.
No description provided.