{"runtime":"server-session","fallback":"no-implicit-fallback","engine":{"providers":22,"enabledProviders":5,"sandboxProviders":9,"candidateProviders":8,"capabilities":15,"policies":13,"strictPolicies":4,"sensitiveCapabilities":7,"capabilitiesWithoutReadyProvider":["geo.civic-boundary-resolver","social.public-signal-search","video.public-content-search","archives.leak-document-search","identity.proofing-session"],"mode":"mvp-governed-gateway"},"providers":[{"id":"data-gouv","name":"data.gouv / open data national","domain":"open_data","status":"sandbox","ownerModule":"Legal","capabilities":["open-data.institution-search","open-data.dataset-search"],"requiresSecret":false,"authType":"none","dataBoundary":"public","activationStage":"sandbox_ready","rateLimitPerMinute":90,"costUnitHint":1,"activation":{"providerId":"data-gouv","stage":"sandbox_ready","status":"review","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Open data français. Activer par endpoints publics, licence et attribution visibles."},{"id":"openstreetmap","name":"OpenStreetMap","domain":"geo","status":"candidate","ownerModule":"DAO's Engine","capabilities":["geo.civic-boundary-resolver"],"requiresSecret":false,"authType":"none","dataBoundary":"public","activationStage":"documented","rateLimitPerMinute":30,"costUnitHint":1,"activation":{"providerId":"openstreetmap","stage":"documented","status":"review","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Base géographique ouverte ; attention aux frontières sensibles."},{"id":"librademos-translate","name":"LibraDemos Translate","domain":"translation","status":"enabled","ownerModule":"Translate","capabilities":["translation.contextual-draft"],"requiresSecret":false,"authType":"none","dataBoundary":"server_only","activationStage":"enabled","rateLimitPerMinute":240,"costUnitHint":1,"activation":{"providerId":"librademos-translate","stage":"enabled","status":"ready","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider interne MVP, brouillon déterministe et validation citoyenne."},{"id":"neoma-local","name":"NEOMA local","domain":"ai","status":"enabled","ownerModule":"NEOMA","capabilities":["ai.civic-analysis"],"requiresSecret":false,"authType":"none","dataBoundary":"server_only","activationStage":"enabled","rateLimitPerMinute":120,"costUnitHint":2,"activation":{"providerId":"neoma-local","stage":"enabled","status":"ready","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Analyse assistive, non décisionnelle."},{"id":"audited-llm-provider","name":"LLM externe audité","domain":"ai","status":"sandbox","ownerModule":"NEOMA","capabilities":["ai.civic-analysis","translation.contextual-draft"],"requiresSecret":true,"authType":"bearer","dataBoundary":"sensitive_proxy","activationStage":"security_reviewed","rateLimitPerMinute":30,"costUnitHint":8,"activation":{"providerId":"audited-llm-provider","stage":"security_reviewed","status":"blocked","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":false,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Doit passer par proxy serveur, redaction et consentement si données sensibles."},{"id":"openai","name":"OpenAI","domain":"ai","status":"sandbox","ownerModule":"NEOMA","capabilities":["ai.multi-provider-reasoning","ai.cited-web-answer","translation.contextual-draft"],"requiresSecret":true,"authType":"bearer","dataBoundary":"sensitive_proxy","activationStage":"sandbox_ready","rateLimitPerMinute":30,"costUnitHint":8,"activation":{"providerId":"openai","stage":"sandbox_ready","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider IA généraliste. Activation uniquement via proxy serveur, redaction, consentement et limites NEOMA non décisionnelles."},{"id":"anthropic","name":"Anthropic","domain":"ai","status":"sandbox","ownerModule":"NEOMA","capabilities":["ai.multi-provider-reasoning"],"requiresSecret":true,"authType":"api_key","dataBoundary":"sensitive_proxy","activationStage":"sandbox_ready","rateLimitPerMinute":30,"costUnitHint":8,"activation":{"providerId":"anthropic","stage":"sandbox_ready","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider IA externe. À utiliser pour comparaison, contradiction et synthèse, jamais comme juge final."},{"id":"mistral","name":"Mistral AI","domain":"ai","status":"sandbox","ownerModule":"NEOMA","capabilities":["ai.multi-provider-reasoning","translation.contextual-draft"],"requiresSecret":true,"authType":"api_key","dataBoundary":"sensitive_proxy","activationStage":"sandbox_ready","rateLimitPerMinute":30,"costUnitHint":7,"activation":{"providerId":"mistral","stage":"sandbox_ready","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider IA européen intéressant pour souveraineté relative et comparaison multi-modèles."},{"id":"deepseek","name":"DeepSeek","domain":"ai","status":"sandbox","ownerModule":"NEOMA","capabilities":["ai.multi-provider-reasoning"],"requiresSecret":true,"authType":"api_key","dataBoundary":"sensitive_proxy","activationStage":"sandbox_ready","rateLimitPerMinute":30,"costUnitHint":7,"activation":{"providerId":"deepseek","stage":"sandbox_ready","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider IA externe. À isoler derrière proxy et à exclure des données personnelles sans consentement explicite."},{"id":"perplexity","name":"Perplexity","domain":"ai","status":"sandbox","ownerModule":"NEOMA","capabilities":["ai.multi-provider-reasoning","ai.cited-web-answer"],"requiresSecret":true,"authType":"api_key","dataBoundary":"sensitive_proxy","activationStage":"sandbox_ready","rateLimitPerMinute":20,"costUnitHint":9,"activation":{"providerId":"perplexity","stage":"sandbox_ready","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider utile pour réponses sourcées. Les sources doivent rester visibles, contestables et non décisionnelles."},{"id":"emergent","name":"Emergent","domain":"ai","status":"candidate","ownerModule":"API Orchestrator","capabilities":["ai.multi-provider-reasoning"],"requiresSecret":true,"authType":"custom","dataBoundary":"sensitive_proxy","activationStage":"registered","rateLimitPerMinute":10,"costUnitHint":9,"activation":{"providerId":"emergent","stage":"registered","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Provider à préciser : nom, endpoint, conditions, usage exact et risques avant activation."},{"id":"x-twitter","name":"X / Twitter","domain":"social","status":"candidate","ownerModule":"Media","capabilities":["social.public-signal-search"],"requiresSecret":true,"authType":"bearer","dataBoundary":"server_only","activationStage":"registered","rateLimitPerMinute":15,"costUnitHint":4,"activation":{"providerId":"x-twitter","stage":"registered","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Lecture de signaux publics uniquement en V1. Pas de surveillance individuelle, pas de doxxing, pas de décision automatique."},{"id":"mastodon","name":"Mastodon / fediverse","domain":"social","status":"candidate","ownerModule":"Media","capabilities":["social.public-signal-search"],"requiresSecret":false,"authType":"none","dataBoundary":"server_only","activationStage":"documented","rateLimitPerMinute":20,"costUnitHint":2,"activation":{"providerId":"mastodon","stage":"documented","status":"review","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Hypothèse pour 'mamouth'. Prévoir allowlist d'instances, respect robots/règles locales et attribution."},{"id":"youtube","name":"YouTube Data API","domain":"video","status":"candidate","ownerModule":"Media","capabilities":["video.public-content-search"],"requiresSecret":true,"authType":"api_key","dataBoundary":"server_only","activationStage":"registered","rateLimitPerMinute":20,"costUnitHint":4,"activation":{"providerId":"youtube","stage":"registered","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Métadonnées et recherche publique. Attention quotas, droits d'auteur, commentaires et données personnelles."},{"id":"twitch","name":"Twitch","domain":"video","status":"candidate","ownerModule":"Media","capabilities":["video.public-content-search"],"requiresSecret":true,"authType":"oauth2","dataBoundary":"server_only","activationStage":"registered","rateLimitPerMinute":20,"costUnitHint":4,"activation":{"providerId":"twitch","stage":"registered","status":"review","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Recherche lives, chaînes et métadonnées publiques. Nécessite OAuth app token côté serveur."},{"id":"wikipedia","name":"Wikipedia / Wikimedia","domain":"knowledge","status":"sandbox","ownerModule":"Academy","capabilities":["knowledge.encyclopedia-lookup"],"requiresSecret":false,"authType":"none","dataBoundary":"public","activationStage":"sandbox_ready","rateLimitPerMinute":120,"costUnitHint":1,"activation":{"providerId":"wikipedia","stage":"sandbox_ready","status":"review","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Source encyclopédique publique. Toujours afficher titre, langue, révision si disponible et limites."},{"id":"wikileaks","name":"WikiLeaks","domain":"archives","status":"candidate","ownerModule":"Investigation","capabilities":["archives.leak-document-search"],"requiresSecret":false,"authType":"none","dataBoundary":"server_only","activationStage":"registered","rateLimitPerMinute":5,"costUnitHint":5,"activation":{"providerId":"wikileaks","stage":"registered","status":"review","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Archive très sensible. Toute utilisation doit passer par Legal, Security, droit de réponse et prudence éditoriale."},{"id":"librademos-chain","name":"LibraDemos Chain","domain":"blockchain","status":"enabled","ownerModule":"Chain","capabilities":["blockchain.public-ledger-read"],"requiresSecret":false,"authType":"none","dataBoundary":"public","activationStage":"enabled","rateLimitPerMinute":300,"costUnitHint":1,"activation":{"providerId":"librademos-chain","stage":"enabled","status":"ready","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Registre canonique du protocole."},{"id":"ipfs-gateway","name":"IPFS Gateway","domain":"storage","status":"sandbox","ownerModule":"Investigation","capabilities":["storage.permanent-archive"],"requiresSecret":false,"authType":"none","dataBoundary":"server_only","activationStage":"sandbox_ready","rateLimitPerMinute":30,"costUnitHint":3,"activation":{"providerId":"ipfs-gateway","stage":"sandbox_ready","status":"review","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Ne jamais publier PII ou preuves sensibles sans revue."},{"id":"arweave","name":"Arweave","domain":"storage","status":"candidate","ownerModule":"Legal","capabilities":["storage.permanent-archive"],"requiresSecret":true,"authType":"custom","dataBoundary":"sensitive_proxy","activationStage":"registered","rateLimitPerMinute":10,"costUnitHint":10,"activation":{"providerId":"arweave","stage":"registered","status":"blocked","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":false,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Permanence forte : policy Legal obligatoire."},{"id":"libra-id","name":"Libra ID","domain":"identity","status":"enabled","ownerModule":"Libra ID","capabilities":["identity.proofing-session"],"requiresSecret":true,"authType":"custom","dataBoundary":"forbidden_client","activationStage":"enabled","rateLimitPerMinute":20,"costUnitHint":6,"activation":{"providerId":"libra-id","stage":"enabled","status":"blocked","secretState":"declared_missing","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":false,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Identité forte, proofing, ZK-KYC futur."},{"id":"economy-ledger","name":"Economy Ledger","domain":"payments","status":"enabled","ownerModule":"Economy","capabilities":["payments.cost-metering"],"requiresSecret":false,"authType":"none","dataBoundary":"server_only","activationStage":"enabled","rateLimitPerMinute":300,"costUnitHint":1,"activation":{"providerId":"economy-ledger","stage":"enabled","status":"ready","secretState":"not_required","checks":[{"id":"provider-documented","title":"Nom, domaine, owner, capacite et documentation connus","passed":true,"blocking":true},{"id":"server-boundary","title":"Secret et donnees sensibles confines cote BFF","passed":true,"blocking":true},{"id":"secret-ready","title":"Secret absent si public, ou variable d'environnement declaree si necessaire","passed":true,"blocking":true},{"id":"rate-limit-declared","title":"Quota/rate limit minimal declare","passed":true,"blocking":false},{"id":"cost-known","title":"Cout indicatif connu pour Economy","passed":true,"blocking":false},{"id":"not-blocked","title":"Provider non bloque ni deprecie","passed":true,"blocking":true}]},"notes":"Mesure coût, usage, quotas et durabilité."}],"capabilities":[{"id":"open-data.institution-search","domain":"open_data","title":"Recherche de données institutionnelles","description":"Trouver budgets, marchés publics, votes, textes et documents officiels.","providerIds":["data-gouv","eu-open-data","official-archives"],"consumedBy":["Investigation","NEOMA","Legal","Media"],"criticality":"module_support","piiRisk":"none","defaultPolicyId":"public-open-data","outputContract":"sourced_public_dataset"},{"id":"geo.civic-boundary-resolver","domain":"geo","title":"Résolution de zones civiques","description":"Relier coordonnées, villes, quartiers, régions et DAOs territoriales.","providerIds":["openstreetmap","geonames","local-civic-atlas"],"consumedBy":["DAO's Engine","Chain","Governance"],"criticality":"module_support","piiRisk":"none","defaultPolicyId":"public-cacheable","requiresHumanReview":true,"outputContract":"civic_boundary_candidate"},{"id":"translation.contextual-draft","domain":"translation","title":"Brouillon de traduction contextualisée","description":"Produire un brouillon IA avant validation citoyenne et experte.","providerIds":["librademos-translate","community-memory"],"consumedBy":["Translate","Academy","Legal","Media"],"criticality":"module_support","piiRisk":"pseudonymous","defaultPolicyId":"human-review-required","requiresHumanReview":true,"outputContract":"translation_draft"},{"id":"ai.civic-analysis","domain":"ai","title":"Analyse civique assistée","description":"Résumer, extraire des risques, lister sources, limites et contradictions.","providerIds":["neoma-local","audited-llm-provider"],"consumedBy":["NEOMA","Investigation","Legal","Academy"],"criticality":"civic_sensitive","piiRisk":"sensitive","defaultPolicyId":"sensitive-ai-review","requiresHumanReview":true,"outputContract":"neoma_assistive_analysis"},{"id":"ai.multi-provider-reasoning","domain":"ai","title":"Raisonnement IA multi-provider","description":"Interroger plusieurs modèles IA pour résumé, extraction, comparaison et contradiction contrôlée.","providerIds":["openai","anthropic","mistral","deepseek","perplexity","emergent"],"consumedBy":["NEOMA","Academy","Legal","Investigation","API Orchestrator"],"criticality":"civic_sensitive","piiRisk":"sensitive","defaultPolicyId":"external-llm-proxy","requiresHumanReview":true,"outputContract":"multi_model_draft_with_disagreement"},{"id":"ai.cited-web-answer","domain":"ai","title":"Réponse web sourcée","description":"Obtenir une réponse avec sources affichables, à traiter comme brouillon non souverain.","providerIds":["perplexity","openai"],"consumedBy":["NEOMA","Investigation","Media","Academy"],"criticality":"module_support","piiRisk":"sensitive","defaultPolicyId":"external-llm-proxy","requiresHumanReview":true,"outputContract":"cited_draft_answer"},{"id":"social.public-signal-search","domain":"social","title":"Recherche de signaux publics sociaux","description":"Lire tendances, posts publics et contexte social sans surveillance individuelle.","providerIds":["x-twitter","mastodon"],"consumedBy":["Investigation","Media","NEOMA","Monitoring"],"criticality":"civic_sensitive","piiRisk":"sensitive","defaultPolicyId":"public-social-read","requiresHumanReview":true,"outputContract":"aggregated_public_signal"},{"id":"video.public-content-search","domain":"video","title":"Recherche de contenus vidéo publics","description":"Lire métadonnées publiques, chaînes, vidéos, lives et signaux de diffusion.","providerIds":["youtube","twitch"],"consumedBy":["Media","Investigation","NEOMA","Academy"],"criticality":"module_support","piiRisk":"pseudonymous","defaultPolicyId":"public-video-read","outputContract":"public_video_metadata"},{"id":"knowledge.encyclopedia-lookup","domain":"knowledge","title":"Consultation encyclopédique publique","description":"Récupérer définitions, contexte historique et liens encyclopédiques sourcés.","providerIds":["wikipedia"],"consumedBy":["Academy","NEOMA","Legal","Translate"],"criticality":"public_read","piiRisk":"none","defaultPolicyId":"public-knowledge-read","outputContract":"encyclopedic_context"},{"id":"archives.leak-document-search","domain":"archives","title":"Recherche d'archives sensibles","description":"Rechercher des documents d'archives publiques sensibles avec revue Legal/Security.","providerIds":["wikileaks"],"consumedBy":["Investigation","NEOMA","Legal","Media"],"criticality":"civic_sensitive","piiRisk":"sensitive","defaultPolicyId":"leak-archive-review","requiresHumanReview":true,"outputContract":"sensitive_archive_reference"},{"id":"open-data.dataset-search","domain":"open_data","title":"Recherche de jeux de données publics","description":"Explorer catalogues open data, jeux de données, organisations et métadonnées.","providerIds":["data-gouv"],"consumedBy":["Investigation","Legal","Economy","Academy","NEOMA"],"criticality":"module_support","piiRisk":"none","defaultPolicyId":"public-open-data","outputContract":"sourced_public_dataset"},{"id":"blockchain.public-ledger-read","domain":"blockchain","title":"Lecture ledger public","description":"Lire blocs, transactions, signatures, propositions, DAOs et traces publiques.","providerIds":["librademos-chain","chain-indexer"],"consumedBy":["Chain","Explorer","Wallet","Governance"],"criticality":"proof","piiRisk":"pseudonymous","defaultPolicyId":"proof-read","outputContract":"ledger_read_snapshot"},{"id":"storage.permanent-archive","domain":"storage","title":"Archivage permanent","description":"Publier preuves, versions, médias et documents sur IPFS/Arweave si autorisé.","providerIds":["ipfs-gateway","arweave"],"consumedBy":["Investigation","Media","Legal","Chain"],"criticality":"proof","piiRisk":"sensitive","defaultPolicyId":"permanent-storage-review","requiresHumanReview":true,"outputContract":"permanent_archive_candidate"},{"id":"identity.proofing-session","domain":"identity","title":"Session de proofing identité","description":"Vérifier unicité et statut citoyen sans exposer publiquement l'identité réelle.","providerIds":["libra-id","zk-proofing-provider"],"consumedBy":["Libra ID","Security","Profil","Voting Engine"],"criticality":"mutation","piiRisk":"identifying","defaultPolicyId":"identity-strict","requiresHumanReview":true,"outputContract":"zk_identity_proofing_session"},{"id":"payments.cost-metering","domain":"payments","title":"Mesure et imputation des coûts","description":"Mesurer coût API, factures, quotas et durabilité open source.","providerIds":["economy-ledger","billing-provider"],"consumedBy":["Economy","Monitoring","API Orchestrator"],"criticality":"module_support","piiRisk":"pseudonymous","defaultPolicyId":"cost-controlled","outputContract":"cost_metering_event"}],"policies":[{"id":"public-open-data","maxCostUnit":1,"cacheTtlSeconds":3600,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":60,"dataRetention":"cache","allowClientInvocation":false},{"id":"public-cacheable","maxCostUnit":1,"cacheTtlSeconds":86400,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"local","maxRequestsPerMinute":40,"dataRetention":"cache","allowClientInvocation":false},{"id":"human-review-required","maxCostUnit":3,"cacheTtlSeconds":900,"fallbackMode":"explicit_mock","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":30,"dataRetention":"ephemeral","allowClientInvocation":false},{"id":"sensitive-ai-review","maxCostUnit":5,"cacheTtlSeconds":0,"fallbackMode":"none","requiresServerProxy":true,"requiresConsent":true,"requiresVerifiedCitizen":false,"auditLevel":"chain_anchor","maxRequestsPerMinute":10,"dataRetention":"ephemeral","allowClientInvocation":false},{"id":"external-llm-proxy","maxCostUnit":8,"cacheTtlSeconds":0,"fallbackMode":"none","requiresServerProxy":true,"requiresConsent":true,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":12,"dataRetention":"ephemeral","allowClientInvocation":false},{"id":"public-social-read","maxCostUnit":3,"cacheTtlSeconds":300,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":15,"dataRetention":"cache","allowClientInvocation":false},{"id":"public-video-read","maxCostUnit":3,"cacheTtlSeconds":1800,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":20,"dataRetention":"cache","allowClientInvocation":false},{"id":"public-knowledge-read","maxCostUnit":1,"cacheTtlSeconds":86400,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"local","maxRequestsPerMinute":80,"dataRetention":"cache","allowClientInvocation":false},{"id":"leak-archive-review","maxCostUnit":4,"cacheTtlSeconds":0,"fallbackMode":"none","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"chain_anchor","maxRequestsPerMinute":4,"dataRetention":"ephemeral","allowClientInvocation":false},{"id":"proof-read","maxCostUnit":2,"cacheTtlSeconds":15,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":120,"dataRetention":"cache","allowClientInvocation":false},{"id":"permanent-storage-review","maxCostUnit":8,"cacheTtlSeconds":0,"fallbackMode":"none","requiresServerProxy":true,"requiresConsent":true,"requiresVerifiedCitizen":true,"auditLevel":"chain_anchor","maxRequestsPerMinute":5,"dataRetention":"archive","allowClientInvocation":false},{"id":"identity-strict","maxCostUnit":10,"cacheTtlSeconds":0,"fallbackMode":"none","requiresServerProxy":true,"requiresConsent":true,"requiresVerifiedCitizen":false,"auditLevel":"chain_anchor","maxRequestsPerMinute":5,"dataRetention":"none","allowClientInvocation":false},{"id":"cost-controlled","maxCostUnit":2,"cacheTtlSeconds":300,"fallbackMode":"read_only_cache","requiresServerProxy":true,"requiresConsent":false,"requiresVerifiedCitizen":false,"auditLevel":"monitoring","maxRequestsPerMinute":120,"dataRetention":"cache","allowClientInvocation":false}]}