Contrats globaux des fonctionnalités
Cet inventaire exécutable couvre chaque route de page explicite dans frontend/src/App.tsx, chaque déclaration littérale de méthode et de chemin dans tous les routeurs Express backend/src/routes/*.ts montés, ainsi que chaque chemin littéral de mise à niveau WebSocket dans backend/src/websocketServer.ts. Chaque point de terminaison appartient à une seule fonctionnalité et chaque point de terminaison WebSocket possède des preuves d’authentification. Chaque fonctionnalité indique également si des schémas, manifestes et valeurs par défaut s’appliquent, avec des preuves sources ou une raison précise justifiant leur non-applicabilité, ainsi qu’une documentation et un test comportemental nommé enregistré dans la CI normale des paquets ou du navigateur.
Les détails exécutables des fournisseurs restent régis par scripts/capability-contracts.json et scripts/test-capability-contracts.mjs ; cet inventaire global renvoie à ce contrat au lieu de dupliquer ses règles de manifeste et de valeurs par défaut.
| Fonctionnalité | Routes de l’interface | Points de terminaison HTTP | Points de terminaison WebSocket | Schémas | Manifestes | Valeurs par défaut | Documentation | Tests comportementaux nommés |
|---|---|---|---|---|---|---|---|---|
| Accueil | / | 0 | 0 | S. O. — La page d’accueil est une surface de navigation et de composition sans charge utile indépendante de requête ou de réponse. | S. O. — La page d’accueil est intégrée à l’application et n’est ni installée ni découverte au moyen d’un manifeste. | frontend/src/utils/welcomePrompts.ts | docs/00-README.md | new chats rotate through distinct creator promptsfrontend/e2e/welcome-prompts.spec.ts (test:e2e) |
| Chat | /chat/c/:sessionId | 32 | 1 | backend/src/types/index.ts | scripts/capability-contracts.json | backend/src/services/preferencesService.ts | docs/01-QUICK_START.md | ChatRequestService prepares target, persona prompt, and shared messagesscripts/test-chat-context.mjs (test:package)oversized history compacts into one summary on a user-turn boundaryscripts/test-context-compaction.mjs (test:package)queued prompts can be edited, reordered, and removed atomicallyscripts/test-prompt-queue.mjs (test:package)a comparison fan-out shares one user turn across independent jobsscripts/test-multi-model-compare.mjs (test:package)forking at a message copies the prefix with remapped identitiesscripts/test-chat-fork.mjs (test:package) |
| Gestion des modèles | — | 51 | 0 | backend/src/types/index.ts | scripts/capability-contracts.json | backend/src/services/ollamaService.ts | docs/02-WORKING_WITH_MODELS.md | cloud library pulls append the Ollama cloud suffix automaticallyfrontend/e2e/model-manager.spec.ts (test:e2e) |
| Personas | /personas | 12 | 0 | backend/src/types/index.ts | S. O. — Les personas sont des ressources de compte conservées par Libre et n’utilisent aucun manifeste d’installation ou de découverte. | frontend/src/components/persona-form/defaults.ts | docs/16-PERSONA_DEVELOPMENT_FRAMEWORK.mddocs/52-ASSISTANT_PROFILES.md | memory insert acknowledgement loss resolves the committed row and retry is idempotentscripts/test-memory-reliability.mjs (test:package)a profile stores its bindings normalized, versioned, and encryptedscripts/test-assistant-profiles.mjs (test:package) |
| Galerie de médias | /gallery | 20 | 0 | backend/src/types/index.ts | scripts/capability-contracts.json | scripts/test-capability-contracts.mjs | docs/38-MEDIA_GENERATION.md | video jobs can stop waiting, reopen, and resume without losing the handlefrontend/e2e/media-generation.spec.ts (test:e2e)edits post an authorized multipart request and meter usagescripts/test-image-editing.mjs (test:package) |
| Notes | /notes | 12 | 0 | backend/src/types/index.tsbackend/src/persistence/resourceTypes.ts | S. O. — Les notes sont des ressources de compte natives et ne possèdent aucun manifeste d’installation ou de découverte. | S. O. — Les notes n’ont aucune valeur implicite de contenu ou de présentation au-delà des champs explicitement fournis par l’utilisateur. | docs/61-NOTES.md | notes open in Markdown preview and make editing explicitfrontend/e2e/notes.spec.ts (test:e2e)content changes snapshot restorable revisions and prune beyond the capscripts/test-notes.mjs (test:package) |
| Calendrier | /calendar | 10 | 0 | backend/src/types/index.ts | S. O. — Les événements du calendrier sont des ressources de compte natives et ne possèdent aucun manifeste d’installation ou de découverte. | S. O. — Les événements du calendrier n’ont aucune valeur implicite de contenu au-delà des champs explicitement fournis par l’utilisateur ; le calcul des récurrences utilise le fuseau horaire du serveur documenté dans docs/47-CALENDAR.md. | docs/47-CALENDAR.md | calendar events persist per owner and expand recurrence into range queriesscripts/test-calendar.mjs (test:package)named calendars carry colors and share read/write through grantsscripts/test-calendar-team.mjs (test:package)reminders fire once per occurrence into the notification inboxscripts/test-calendar-team.mjs (test:package) |
| Automatisations | /automations | 15 | 0 | backend/src/types/index.ts | S. O. — Les automatisations sont des ressources de compte natives et ne possèdent aucun manifeste d’installation ou de découverte. | docs/48-AUTOMATIONS.md | docs/48-AUTOMATIONS.md | the scheduler fires due automations once and settles stalled runsscripts/test-automations.mjs (test:package) |
| Canaux | /channels | 24 | 0 | backend/src/types/index.ts | S. O. — Les canaux sont des ressources de compte natives et ne possèdent aucun manifeste d’installation ou de découverte. | docs/54-CHANNELS.md | docs/54-CHANNELS.md | timeline: idempotent posts, ordering, threads, edit and tombstone rulesscripts/test-channels.mjs (test:package)@model mentions run under the invoking member and fail safelyscripts/test-channels.mjs (test:package) |
| Notifications | — | 13 | 0 | backend/src/types/index.ts | S. O. — Les notifications sont un état de compte natif et ne possèdent aucun manifeste d’installation ou de découverte. | docs/55-NOTIFICATIONS.md | docs/55-NOTIFICATIONS.mddocs/55-NOTIFICATIONS.md | the inbox is durable, encrypted, deduplicated, and cappedscripts/test-notifications.mjs (test:package)webhook targets are egress-guarded, signed, redacted, and retriedscripts/test-notifications.mjs (test:package)payload encryption reproduces the RFC 8291 test vectorscripts/test-web-push.mjs (test:package)revoking an auth session removes its device subscriptionsscripts/test-web-push.mjs (test:package) |
| Bibliothèque de requêtes | — | 9 | 0 | backend/src/services/promptService.ts | S. O. — Les requêtes sont des ressources de compte natives ; leur forme portable est le document d’exportation versionné libre-prompt.v1, et non un manifeste d’installation ou de découverte. | S. O. — Une requête n’a aucun contenu implicite par défaut : chaque champ est fourni par l’utilisateur et le rendu ne remplace que les variables déclarées, comme l’impose scripts/test-prompts.mjs. | docs/50-PROMPTS.md | prompts round-trip through the API and stay encrypted at restscripts/test-prompts.mjs (test:package) |
| Compétences | — | 14 | 0 | backend/src/services/skillService.ts | backend/src/services/skillService.ts | S. O. — Une compétence n’a aucun contenu implicite par défaut : le manifeste et les instructions correspondent exactement à ce qu’a écrit son propriétaire, et les compétences désactivées disparaissent entièrement du manifeste. | docs/51-SKILLS.md | skills round-trip through the API and stay encrypted at restscripts/test-skills.mjs (test:package)a skill imports from a remote store URL through the egress guardscripts/test-skills.mjs (test:package) |
| Outils du chat | — | 15 | 0 | backend/src/types/tools.ts | backend/src/services/toolServerService.ts | backend/src/services/toolAccessService.ts | docs/49-CHAT_TOOLS.md | registering an OpenAPI server pins the spec and extracts its toolsscripts/test-tool-gateway.mjs (test:package)a side-effecting call waits for approval and then executesscripts/test-chat-tool-loop.mjs (test:package) |
| Work | /work/work/:taskId | 44 | 3 | backend/src/types/work.ts | scripts/capability-contracts.json | backend/src/services/workRuntimeShared.ts | docs/33-WORKSPACES.md | runtime limits expose admission capacity and live occupancyscripts/test-work-runtime.mjs (test:package)approval decisions gate side-effecting Work actionsscripts/test-work-approvals.mjs (test:package)an agent delegates to a peer and the report returns to its conversationscripts/test-work-delegation.mjs (test:package)connected tools reach network-enabled runs and stay off offline onesscripts/test-work-mcp.mjs (test:package)production Work upgrade applies task-bound ticket authenticationscripts/test-websocket-tickets.mjs (test:package) |
| Modèles Agent CLI | /agents | 1 | 0 | backend/src/services/agentCliService.ts | S. O. — Les adaptateurs Agent CLI sont des définitions natives compilées et ne sont pas chargés depuis les manifestes de fournisseurs. | backend/src/services/agentAccessService.ts | docs/36-AGENT_CLI_MODELS.md | every agent CLI passes an explicit model through to its argvscripts/test-agent-cli-chat.mjs (test:package) |
| Artefacts | /artifacts | 1 | 0 | frontend/src/utils/artifactParser.ts | frontend/src/artifact-runtime/manifest.ts | frontend/src/components/ArtifactSlideOutPanel.tsxfrontend/src/store/appStore.ts | docs/13-ARTIFACTS_FEATURE.md | chat detects multi-file HTML artifacts and renders them in the slide-out panelfrontend/e2e/artifacts.spec.ts (test:e2e) |
| Utilisation des fournisseurs | /usage | 10 | 0 | backend/src/services/pluginUsageService.ts | S. O. — Les analyses d’utilisation consomment les événements des fournisseurs, mais ne définissent aucun manifeste propre d’installation ou de découverte. | backend/src/services/pluginUsageService.ts | docs/37-SYSTEM_MONITORING.mddocs/58-COST_GOVERNANCE.mddocs/60-OBSERVABILITY.md | the usage endpoint is explicitly protected by administrator middlewarescripts/test-plugin-usage-analytics.mjs (test:package)hard budgets block exhausted principals and fail open otherwisescripts/test-cost-governance.mjs (test:package) |
| Plateforme d’évaluation | /evaluations | 16 | 0 | backend/src/persistence/resourceTypes.ts | S. O. — Les évaluations sont des ressources de compte conservées par Libre et n’utilisent aucun manifeste d’installation ou de découverte. | backend/src/services/evaluationService.ts | docs/59-EVALUATIONS.md | arena votes are one per user per comparison and Elo replays deterministicallyscripts/test-evaluations.mjs (test:package) |
| Diagnostics système | /system | 5 | 0 | backend/src/services/systemDiagnosticsService.ts | S. O. — Les diagnostics système sont un rapport authentifié intégré et ne possèdent aucun manifeste d’installation ou de découverte. | backend/src/services/healthService.ts | docs/37-SYSTEM_MONITORING.md | system route requires both authentication and current administrator statusscripts/test-system-diagnostics.mjs (test:package) |
| Administration des utilisateurs | /users | 8 | 0 | backend/src/types/index.ts | S. O. — L’administration des utilisateurs est une fonctionnalité d’identité intégrée et ne possède aucun manifeste d’installation ou de découverte. | S. O. — Le rôle utilisateur et l’état du compte sont déterminés par la politique d’amorçage ou d’approbation, et non par une valeur de fonctionnalité réutilisable par défaut. | docs/12-AUTHENTICATION.md | public registrations require administrator approval before authenticationscripts/test-user-approval.mjs (test:package) |
| Authentification | /login | 40 | 0 | backend/src/types/index.ts | S. O. — L’authentification est une limite de sécurité intégrée qui n’est ni installée ni découverte au moyen d’un manifeste. | backend/src/services/registrationPolicy.ts | docs/12-AUTHENTICATION.mddocs/12-AUTHENTICATION.mddocs/12-AUTHENTICATION.md | password login requires and submits a Turnstile tokenfrontend/e2e/auth.spec.ts (test:e2e)revoking the session rejects its token with 401scripts/test-auth-sessions.mjs (test:package)scope-to-path matrix: notes scope on notes, chat, and auth routesscripts/test-api-tokens.mjs (test:package)verifyIdToken accepts a good token and returns its claimsscripts/test-oidc-provider.mjs (test:package)password login returns an MFA challenge, and the challenge is not a sessionscripts/test-mfa.mjs (test:package)a passkey assertion signs the user in and challenges are one-usescripts/test-mfa.mjs (test:package)the signup password field grades strength live against the real policyfrontend/e2e/password-strength.spec.ts (test:e2e) |
| Contrôle d’accès | — | 14 | 0 | backend/src/persistence/securityTypes.ts | S. O. — Le contrôle d’accès est une limite de sécurité intégrée qui n’est ni installée ni découverte au moyen d’un manifeste. | backend/src/services/authorizationService.ts | docs/12-AUTHENTICATION.md | group grants reach members and die with the membershipscripts/test-authorization.mjs (test:package)a rolled-back duplicate group create leaves no audit rowscripts/test-security-audit.mjs (test:package)group principal lookup and grant names surface through the APIscripts/test-resource-sharing.mjs (test:package) |
| API publique | — | 2 | 0 | backend/src/routes/openaiCompat.ts | S. O. — La surface compatible OpenAI reproduit un format de transmission externe et ne possède aucun manifeste installable. | S. O. — Les valeurs d’échantillonnage par défaut proviennent de la requête de l’appelant et de la propre configuration du modèle, jamais de cette surface. | docs/53-PUBLIC_API.md | a streaming completion emits OpenAI chunk frames and [DONE]scripts/test-openai-compat.mjs (test:package) |
| Portabilité des données | — | 3 | 0 | backend/src/services/dataArchiveService.ts | backend/src/services/dataArchiveService.ts | backend/src/services/dataArchiveService.ts | docs/41-DATA_PORTABILITY.md | v3 export is complete, checksummed, user-scoped, and explicit about exclusionsscripts/test-data-archive.mjs (test:package) |
| Connaissances et recherche documentaires | — | 15 | 0 | backend/src/types/index.ts | scripts/capability-contracts.json | backend/src/services/preferencesService.ts | docs/09-RAG_FEATURE.mddocs/09-RAG_FEATURE.md | keyword retrieval sees session documents AND user-scoped uploadsscripts/test-rag-retrieval.mjs (test:package)multi-image OCR produces one labeled page segment per imagescripts/test-media-extraction.mjs (test:package)audio transcripts carry one Transcript section and respect the stt gatescripts/test-media-extraction.mjs (test:package) |
| Mémoire des personas | — | 6 | 0 | backend/src/types/index.ts | S. O. — La mémoire des personas est une ressource interne aux personas et ne possède aucun manifeste d’installation ou de découverte. | frontend/src/components/persona-form/defaults.ts | docs/16-PERSONA_DEVELOPMENT_FRAMEWORK.md | persona deletion during vector publication still removes the recreated vectorscripts/test-memory-reliability.mjs (test:package) |
| Recherche web | — | 6 | 0 | backend/src/services/webSearchService.ts | S. O. — La recherche web utilise les paramètres de connexion de l’administrateur plutôt qu’un manifeste de fournisseur installable. | backend/src/services/webSearchService.ts | docs/39-WEB_SEARCH.md | web search ships disabled and validates its configurationscripts/test-web-search.mjs (test:package)search is scoped to what the actor can readscripts/test-workspace-search.mjs (test:package) |
| Paramètres et préférences | — | 11 | 0 | backend/src/types/index.ts | S. O. — Les paramètres regroupent la configuration native et celle des fournisseurs, mais ne définissent aucun manifeste installable distinct. | backend/src/services/preferencesService.ts | docs/35-PROVIDER_CONNECTIONS.md | theme preference survives refresh and retries a failed savefrontend/e2e/settings.spec.ts (test:e2e) |
| Entrée et sortie vocales | — | 13 | 0 | backend/src/types/index.ts | scripts/capability-contracts.json | scripts/test-capability-contracts.mjs | docs/42-SPEECH_TO_TEXT.mddocs/27-QWEN3_TTS.mddocs/57-VOICE_MODE.md | STT sends an OpenAI-compatible multipart request to the selected routescripts/test-stt-routing.mjs (test:package)provider speech input discloses its route and transcribes recorded audiofrontend/e2e/stt.spec.ts (test:e2e)invalid provider audio is rejected safely without inserting a transcriptfrontend/e2e/stt.spec.ts (test:e2e)TTS routes a shared model alias through the selected plugin and user valvescripts/test-tts-routing.mjs (test:package)voice mode opens hands-free conversation and transcribes a manual turnfrontend/e2e/voice-mode.spec.ts (test:e2e) |
| Hugging Face Hub | — | 7 | 0 | backend/src/routes/huggingfaceHub.ts | S. O. — Les métadonnées des modèles du Hub sont des données d’API distantes ; Libre ne définit aucun manifeste local installable pour la fonctionnalité de navigation. | backend/src/routes/huggingfaceHub.ts | docs/29-HUGGINGFACE_HUB.md | Hugging Face Hub task discovery is authenticated route behaviorscripts/test-huggingface-hub-routes.mjs (test:package) |
| Libre Claw | — | 26 | 0 | backend/src/services/libreClawService.ts | S. O. — Libre Claw est une intégration de service configurée explicitement et n’utilise aucun manifeste de fournisseur Libre. | backend/src/services/libreClawService.ts | docs/31-LIBRE_CLAW_INTEGRATION.md | Work and Agents are hidden and route-protected for non-admin usersfrontend/e2e/sidebar-create-actions.spec.ts (test:e2e) |
| Tâches et événements durables | — | 4 | 0 | backend/src/platform/jobs/durableJobTypes.ts | S. O. — Les tâches durables utilisent des types de gestionnaires enregistrés et des contrats de charges utiles persistantes, et non des manifestes installables. | backend/src/platform/jobs/embeddedDurableJobWorker.ts | docs/45-PLATFORM_FOUNDATION.md | ordered event replay uses global cursors and per-stream sequencesscripts/test-durable-jobs.mjs (test:package) |
| Profils de déploiement solo et équipe | — | 0 | 0 | backend/src/platform/runtimeConfig.ts | helm/libre-webui/values.schema.json | helm/libre-webui/values.yaml | docs/45-PLATFORM_FOUNDATION.md | real Redis coordinates independent replicas and fails closed after shutdownscripts/test-platform-coordination.mjs (test:package) |
| Restauration et sauvegarde | — | 2 | 0 | backend/src/services/recoveryInventoryService.ts | backend/src/platform/recovery/backupArchive.ts | backend/src/services/recoveryInventoryService.ts | docs/44-RECOVERY_READINESS.mddocs/44-RECOVERY_READINESS.md | integrated backup is signed, encrypted, tamper-evident, and clean-restorablescripts/test-integrated-backup.mjs (test:package)team backup restores a clean PostgreSQL and versioned S3 target with authenticated PGVector statescripts/test-team-backup.mjs (test:package)a manual drill backs up, restores in isolation, verifies, and measuresscripts/test-recovery-drills.mjs (test:package)an unattended drill failure alerts every administrator oncescripts/test-recovery-drills.mjs (test:package) |
Inventaire exact des routes du serveur
Accueil
Aucun point de terminaison Express monté. La limite exécutable est l’interface et/ou les preuves sources consignées ci-dessus.
Chat
DELETE /api/chat/folders/:folderId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/folders/:folderId)DELETE /api/chat/sessions—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions)DELETE /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId)DELETE /api/chat/sessions/:sessionId/queue/:entryId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/queue/:entryId)GET /api/chat/compaction-config—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/compaction-config)GET /api/chat/context-policy—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/context-policy)GET /api/chat/folders—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/folders)GET /api/chat/sessions—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions)GET /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId)GET /api/chat/sessions/:sessionId/events—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/events)GET /api/chat/sessions/:sessionId/messages/:messageId/branches—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/messages/:messageId/branches)POST /api/chat/folders—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/folders)POST /api/chat/sessions—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions)POST /api/chat/sessions/:sessionId/compaction/:messageId/restore—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/compaction/:messageId/restore)POST /api/chat/sessions/:sessionId/followups—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/followups)POST /api/chat/sessions/:sessionId/fork—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/fork)POST /api/chat/sessions/:sessionId/generate—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/generate)POST /api/chat/sessions/:sessionId/generate-title—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/generate-title)POST /api/chat/sessions/:sessionId/generate/stream—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/generate/stream)POST /api/chat/sessions/:sessionId/generations—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/generations)POST /api/chat/sessions/:sessionId/generations/:assistantMessageId/cancel—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/generations/:assistantMessageId/cancel)POST /api/chat/sessions/:sessionId/messages—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/messages)POST /api/chat/sessions/:sessionId/messages/:messageId/branch—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/messages/:messageId/branch)POST /api/chat/sessions/:sessionId/messages/:messageId/branches—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/messages/:messageId/branches)POST /api/chat/sessions/:sessionId/messages/:messageId/truncate—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/messages/:messageId/truncate)POST /api/chat/sessions/:sessionId/queue—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/queue)PUT /api/chat/compaction-config—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/compaction-config)PUT /api/chat/folders/:folderId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/folders/:folderId)PUT /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId)PUT /api/chat/sessions/:sessionId/messages/:messageId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/messages/:messageId)PUT /api/chat/sessions/:sessionId/queue—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/queue)PUT /api/chat/sessions/:sessionId/queue/:entryId—backend/src/routes/chat.ts(montage/api/chat, sous-chemin/sessions/:sessionId/queue/:entryId)
Gestion des modèles
DELETE /api/ollama/models—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models)GET /api/ollama/health—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/health)GET /api/ollama/library—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/library)GET /api/ollama/models—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models)GET /api/ollama/models/:modelName/defaults—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/:modelName/defaults)GET /api/ollama/models/access—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/access)GET /api/ollama/models/pull-all/stream—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/pull-all/stream)GET /api/ollama/models/show—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/show)GET /api/ollama/models/visibility—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/visibility)GET /api/ollama/pull/stream—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/pull/stream)GET /api/ollama/running—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/running)GET /api/ollama/settings—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/settings)GET /api/ollama/version—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/version)HEAD /api/ollama/blobs/:digest—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/blobs/:digest)POST /api/ollama/blobs/:digest—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/blobs/:digest)POST /api/ollama/chat—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/chat)POST /api/ollama/chat/stream—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/chat/stream)POST /api/ollama/embed—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/embed)POST /api/ollama/embeddings—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/embeddings)POST /api/ollama/models—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models)POST /api/ollama/models/copy—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/copy)POST /api/ollama/models/pull—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/pull)POST /api/ollama/models/pull-all—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/pull-all)POST /api/ollama/models/push—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/push)POST /api/ollama/models/unload—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/unload)POST /api/ollama/models/unload-all—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/unload-all)PUT /api/ollama/models/access—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/access)PUT /api/ollama/models/visibility—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/models/visibility)PUT /api/ollama/settings—backend/src/routes/ollama.ts(montage/api/ollama, sous-chemin/settings)DELETE /api/plugins/:id—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id)DELETE /api/plugins/:id/credentials—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/credentials)DELETE /api/plugins/:id/variables—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/variables)GET /api/plugins—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/)GET /api/plugins/:id—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id)GET /api/plugins/:id/credentials/check—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/credentials/check)GET /api/plugins/:id/export—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/export)GET /api/plugins/:id/variables—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/variables)GET /api/plugins/active—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/active)GET /api/plugins/active/current—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/active/current)GET /api/plugins/credentials/all—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/credentials/all)GET /api/plugins/status/all—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/status/all)POST /api/plugins/:id/credentials—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/credentials)POST /api/plugins/activate/:id—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/activate/:id)POST /api/plugins/deactivate—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/deactivate)POST /api/plugins/deactivate/:id—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/deactivate/:id)POST /api/plugins/discover/:id—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/discover/:id)POST /api/plugins/install—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/install)POST /api/plugins/probe-endpoint—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/probe-endpoint)POST /api/plugins/upload—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/upload)PUT /api/plugins/:id—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id)PUT /api/plugins/:id/variables—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/:id/variables)
Personas
DELETE /api/personas/:id—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id)GET /api/personas—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/)GET /api/personas/:id—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id)GET /api/personas/:id/backup—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/backup)GET /api/personas/:id/download—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/download)GET /api/personas/:id/export—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/export)GET /api/personas/:id/export/dna—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/export/dna)GET /api/personas/defaults/parameters—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/defaults/parameters)GET /api/personas/stats/count—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/stats/count)POST /api/personas—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/)POST /api/personas/import—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/import)PUT /api/personas/:id—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id)
Galerie de médias
DELETE /api/image-gen/gallery/:imageId—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/gallery/:imageId)GET /api/image-gen/config/:pluginId—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/config/:pluginId)GET /api/image-gen/gallery—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/gallery)GET /api/image-gen/gallery/:imageId—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/gallery/:imageId)GET /api/image-gen/models—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/models)GET /api/image-gen/plugins—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/plugins)POST /api/image-gen/generate—backend/src/routes/imageGen.ts(montage/api/image-gen, sous-chemin/generate)DELETE /api/media/gallery/:mediaId—backend/src/routes/media.ts(montage/api/media, sous-chemin/gallery/:mediaId)DELETE /api/media/video/jobs/:jobId—backend/src/routes/media.ts(montage/api/media, sous-chemin/video/jobs/:jobId)GET /api/media/gallery—backend/src/routes/media.ts(montage/api/media, sous-chemin/gallery)GET /api/media/gallery/:mediaId/content—backend/src/routes/media.ts(montage/api/media, sous-chemin/gallery/:mediaId/content)GET /api/media/models—backend/src/routes/media.ts(montage/api/media, sous-chemin/models)GET /api/media/video/jobs—backend/src/routes/media.ts(montage/api/media, sous-chemin/video/jobs)GET /api/media/video/jobs/:jobId—backend/src/routes/media.ts(montage/api/media, sous-chemin/video/jobs/:jobId)POST /api/media/audio/generate—backend/src/routes/media.ts(montage/api/media, sous-chemin/audio/generate)POST /api/media/audio/voice-clone—backend/src/routes/media.ts(montage/api/media, sous-chemin/audio/voice-clone)POST /api/media/image/edit—backend/src/routes/media.ts(montage/api/media, sous-chemin/image/edit)POST /api/media/sound/generate—backend/src/routes/media.ts(montage/api/media, sous-chemin/sound/generate)POST /api/media/video/generate—backend/src/routes/media.ts(montage/api/media, sous-chemin/video/generate)POST /api/media/video/jobs/:jobId/resume—backend/src/routes/media.ts(montage/api/media, sous-chemin/video/jobs/:jobId/resume)
Notes
DELETE /api/notes/:noteId—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId)DELETE /api/notes/:noteId/attachments/:attachmentId—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/attachments/:attachmentId)GET /api/notes—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/)GET /api/notes/:noteId—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId)GET /api/notes/:noteId/attachments—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/attachments)GET /api/notes/:noteId/attachments/:attachmentId—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/attachments/:attachmentId)GET /api/notes/:noteId/revisions—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/revisions)POST /api/notes—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/)POST /api/notes/:noteId/assist—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/assist)POST /api/notes/:noteId/attachments—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/attachments)POST /api/notes/:noteId/revisions/:revisionId/restore—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId/revisions/:revisionId/restore)PUT /api/notes/:noteId—backend/src/routes/notes.ts(montage/api/notes, sous-chemin/:noteId)
Calendrier
DELETE /api/calendar/calendars/:calendarId—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/calendars/:calendarId)DELETE /api/calendar/events/:eventId—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/events/:eventId)GET /api/calendar/calendars—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/calendars)GET /api/calendar/events—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/events)GET /api/calendar/export—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/export)POST /api/calendar/calendars—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/calendars)POST /api/calendar/events—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/events)POST /api/calendar/import—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/import)PUT /api/calendar/calendars/:calendarId—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/calendars/:calendarId)PUT /api/calendar/events/:eventId—backend/src/routes/calendar.ts(montage/api/calendar, sous-chemin/events/:eventId)
Automatisations
DELETE /api/automations/:automationId—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId)DELETE /api/automations/:automationId/webhook-secret—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId/webhook-secret)GET /api/automations—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/)GET /api/automations/:automationId—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId)GET /api/automations/occurrences—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/occurrences)GET /api/automations/runs—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/runs)GET /api/automations/runs/summary—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/runs/summary)POST /api/automations—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/)POST /api/automations/:automationId/pause—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId/pause)POST /api/automations/:automationId/resume—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId/resume)POST /api/automations/:automationId/run—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId/run)POST /api/automations/:automationId/webhook—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId/webhook)POST /api/automations/:automationId/webhook-secret—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId/webhook-secret)POST /api/automations/runs/seen—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/runs/seen)PUT /api/automations/:automationId—backend/src/routes/automations.ts(montage/api/automations, sous-chemin/:automationId)
Canaux
DELETE /api/channels/:channelId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId)DELETE /api/channels/:channelId/members/:userId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/members/:userId)DELETE /api/channels/messages/:messageId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/messages/:messageId)DELETE /api/channels/messages/:messageId/reactions/:emoji—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/messages/:messageId/reactions/:emoji)GET /api/channels—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/)GET /api/channels/:channelId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId)GET /api/channels/:channelId/events—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/events)GET /api/channels/:channelId/members—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/members)GET /api/channels/:channelId/messages—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/messages)GET /api/channels/:channelId/pins—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/pins)GET /api/channels/attachments/:attachmentId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/attachments/:attachmentId)GET /api/channels/messages/:messageId/thread—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/messages/:messageId/thread)GET /api/channels/public—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/public)PATCH /api/channels/:channelId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId)PATCH /api/channels/messages/:messageId—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/messages/:messageId)POST /api/channels—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/)POST /api/channels/:channelId/attachments—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/attachments)POST /api/channels/:channelId/join—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/join)POST /api/channels/:channelId/members—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/members)POST /api/channels/:channelId/messages—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/messages)POST /api/channels/:channelId/read—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/:channelId/read)POST /api/channels/dm—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/dm)POST /api/channels/messages/:messageId/pin—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/messages/:messageId/pin)POST /api/channels/messages/:messageId/reactions—backend/src/routes/channels.ts(montage/api/channels, sous-chemin/messages/:messageId/reactions)
Notifications
DELETE /api/notifications/:notificationId—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/:notificationId)DELETE /api/notifications/webhooks/:targetId—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/webhooks/:targetId)GET /api/notifications—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/)GET /api/notifications/events—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/events)GET /api/notifications/unread-count—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/unread-count)GET /api/notifications/webhooks—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/webhooks)POST /api/notifications/:notificationId/read—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/:notificationId/read)POST /api/notifications/read-all—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/read-all)POST /api/notifications/webhooks—backend/src/routes/notifications.ts(montage/api/notifications, sous-chemin/webhooks)DELETE /api/push/subscriptions—backend/src/routes/push.ts(montage/api/push, sous-chemin/subscriptions)GET /api/push/public-key—backend/src/routes/push.ts(montage/api/push, sous-chemin/public-key)GET /api/push/subscriptions—backend/src/routes/push.ts(montage/api/push, sous-chemin/subscriptions)POST /api/push/subscriptions—backend/src/routes/push.ts(montage/api/push, sous-chemin/subscriptions)
Bibliothèque de requêtes
DELETE /api/prompts/:promptId—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/:promptId)GET /api/prompts—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/)GET /api/prompts/:promptId—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/:promptId)GET /api/prompts/:promptId/export—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/:promptId/export)GET /api/prompts/:promptId/versions—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/:promptId/versions)POST /api/prompts—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/)POST /api/prompts/:promptId/rollback—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/:promptId/rollback)POST /api/prompts/import—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/import)PUT /api/prompts/:promptId—backend/src/routes/prompts.ts(montage/api/prompts, sous-chemin/:promptId)
Compétences
DELETE /api/skills/:skillId—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId)DELETE /api/skills/:skillId/files—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/files)GET /api/skills—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/)GET /api/skills/:skillId—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId)GET /api/skills/:skillId/export—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/export)GET /api/skills/:skillId/files—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/files)GET /api/skills/:skillId/files/content—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/files/content)GET /api/skills/:skillId/versions—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/versions)POST /api/skills—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/)POST /api/skills/:skillId/rollback—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/rollback)POST /api/skills/import—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/import)POST /api/skills/import-url—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/import-url)PUT /api/skills/:skillId—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId)PUT /api/skills/:skillId/files—backend/src/routes/skills.ts(montage/api/skills, sous-chemin/:skillId/files)
Outils du chat
DELETE /api/tools/approvals/:id—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/approvals/:id)DELETE /api/tools/servers/:id—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id)DELETE /api/tools/servers/:id/credential—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id/credential)GET /api/tools/access—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/access)GET /api/tools/approvals—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/approvals)GET /api/tools/catalog—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/catalog)GET /api/tools/servers—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers)GET /api/tools/servers/:id—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id)POST /api/tools/approvals/:id—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/approvals/:id)POST /api/tools/servers—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers)POST /api/tools/servers/:id/refresh—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id/refresh)PUT /api/tools/access—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/access)PUT /api/tools/servers/:id—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id)PUT /api/tools/servers/:id/credential—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id/credential)PUT /api/tools/servers/:id/tools/:toolName—backend/src/routes/tools.ts(montage/api/tools, sous-chemin/servers/:id/tools/:toolName)
Work
DELETE /api/work/policies/:id—backend/src/routes/work.ts(montage/api/work, sous-chemin/policies/:id)DELETE /api/work/tasks/:id—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id)DELETE /api/work/tasks/:id/approval-rules/:ruleId—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/approval-rules/:ruleId)DELETE /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/computer/control)GET /api/work/access—backend/src/routes/work.ts(montage/api/work, sous-chemin/access)GET /api/work/admin/overview—backend/src/routes/work.ts(montage/api/work, sous-chemin/admin/overview)GET /api/work/capabilities—backend/src/routes/work.ts(montage/api/work, sous-chemin/capabilities)GET /api/work/computer/setup—backend/src/routes/work.ts(montage/api/work, sous-chemin/computer/setup)GET /api/work/policies—backend/src/routes/work.ts(montage/api/work, sous-chemin/policies)GET /api/work/tasks—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks)GET /api/work/tasks/:id—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id)GET /api/work/tasks/:id/approvals—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/approvals)GET /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/computer/control)GET /api/work/tasks/:id/file—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/file)GET /api/work/tasks/:id/files—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/files)GET /api/work/tasks/:id/git—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git)GET /api/work/tasks/:id/git/diff—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git/diff)GET /api/work/tasks/:id/messages—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/messages)GET /api/work/tasks/:taskId/runs/:runId/events—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:taskId/runs/:runId/events)PATCH /api/work/tasks/:id—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id)POST /api/work/computer/setup—backend/src/routes/work.ts(montage/api/work, sous-chemin/computer/setup)POST /api/work/computer/skills/:slug/trace—backend/src/routes/work.ts(montage/api/work, sous-chemin/computer/skills/:slug/trace)POST /api/work/policies—backend/src/routes/work.ts(montage/api/work, sous-chemin/policies)POST /api/work/tasks—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks)POST /api/work/tasks/:id/approvals/:approvalId—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/approvals/:approvalId)POST /api/work/tasks/:id/cancel—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/cancel)POST /api/work/tasks/:id/computer/anchor—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/computer/anchor)POST /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/computer/control)POST /api/work/tasks/:id/computer/start—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/computer/start)POST /api/work/tasks/:id/computer/teach—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/computer/teach)POST /api/work/tasks/:id/git/branches—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git/branches)POST /api/work/tasks/:id/git/commit—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git/commit)POST /api/work/tasks/:id/git/init—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git/init)POST /api/work/tasks/:id/git/stage—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git/stage)POST /api/work/tasks/:id/git/switch—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/git/switch)POST /api/work/tasks/:id/messages—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/messages)POST /api/work/tasks/:id/preview/start—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/preview/start)POST /api/work/tasks/:id/preview/stop—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/preview/stop)POST /api/work/tasks/:id/runs—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/runs)POST /api/work/tasks/:id/seen—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/seen)PUT /api/work/access—backend/src/routes/work.ts(montage/api/work, sous-chemin/access)PUT /api/work/policies/:id—backend/src/routes/work.ts(montage/api/work, sous-chemin/policies/:id)PUT /api/work/tasks/:id/approvals—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/approvals)PUT /api/work/tasks/:id/file—backend/src/routes/work.ts(montage/api/work, sous-chemin/tasks/:id/file)
Modèles Agent CLI
GET /api/agent-clis/models—backend/src/routes/agentCli.ts(montage/api/agent-clis, sous-chemin/models)
Artefacts
GET /api/artifacts/sandbox—backend/src/routes/artifacts.ts(montage/api/artifacts, sous-chemin/sandbox)
Utilisation des fournisseurs
DELETE /api/costs/budgets/:budgetId—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/budgets/:budgetId)DELETE /api/costs/tariffs/:tariffId—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/tariffs/:tariffId)GET /api/costs/analytics—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/analytics)GET /api/costs/budgets—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/budgets)GET /api/costs/export—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/export)GET /api/costs/tariffs—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/tariffs)POST /api/costs/budgets—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/budgets)POST /api/costs/tariffs—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/tariffs)PUT /api/costs/budgets/:budgetId—backend/src/routes/costs.ts(montage/api/costs, sous-chemin/budgets/:budgetId)GET /api/plugins/usage—backend/src/routes/plugins.ts(montage/api/plugins, sous-chemin/usage)
Plateforme d’évaluation
DELETE /api/evaluations/feedback/:messageId—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/feedback/:messageId)DELETE /api/evaluations/sets/:setId—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/sets/:setId)GET /api/evaluations/arena/leaderboard—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/arena/leaderboard)GET /api/evaluations/feedback—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/feedback)GET /api/evaluations/feedback/all—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/feedback/all)GET /api/evaluations/runs—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/runs)GET /api/evaluations/runs/:runId—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/runs/:runId)GET /api/evaluations/runs/:runId/export—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/runs/:runId/export)GET /api/evaluations/sets—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/sets)POST /api/evaluations/arena/matches—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/arena/matches)POST /api/evaluations/arena/votes—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/arena/votes)POST /api/evaluations/feedback—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/feedback)POST /api/evaluations/runs—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/runs)POST /api/evaluations/runs/:runId/cancel—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/runs/:runId/cancel)POST /api/evaluations/sets—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/sets)PUT /api/evaluations/sets/:setId—backend/src/routes/evaluations.ts(montage/api/evaluations, sous-chemin/sets/:setId)
Diagnostics système
GET /health—backend/src/routes/health.ts(montage/health, sous-chemin/)GET /health/deep—backend/src/routes/health.ts(montage/health, sous-chemin/deep)GET /health/live—backend/src/routes/health.ts(montage/health, sous-chemin/live)GET /health/ready—backend/src/routes/health.ts(montage/health, sous-chemin/ready)GET /api/system—backend/src/routes/systemDiagnostics.ts(montage/api/system, sous-chemin/)
Administration des utilisateurs
DELETE /api/users/:id—backend/src/routes/users.ts(montage/api/users, sous-chemin/:id)GET /api/users—backend/src/routes/users.ts(montage/api/users, sous-chemin/)GET /api/users/pending-approvals—backend/src/routes/users.ts(montage/api/users, sous-chemin/pending-approvals)PATCH /api/users/:id—backend/src/routes/users.ts(montage/api/users, sous-chemin/:id)PATCH /api/users/:id/approve—backend/src/routes/users.ts(montage/api/users, sous-chemin/:id/approve)PATCH /api/users/me/avatar—backend/src/routes/users.ts(montage/api/users, sous-chemin/me/avatar)POST /api/users—backend/src/routes/users.ts(montage/api/users, sous-chemin/)POST /api/users/:id/mfa/reset—backend/src/routes/users.ts(montage/api/users, sous-chemin/:id/mfa/reset)
Authentification
DELETE /api/auth/passkeys/:id—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/passkeys/:id)DELETE /api/auth/sessions/:id—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/sessions/:id)DELETE /api/auth/tokens/:id—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/tokens/:id)GET /api/auth/encryption-key—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/encryption-key)GET /api/auth/me—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/me)GET /api/auth/mfa—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa)GET /api/auth/mfa/policy—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/policy)GET /api/auth/oauth/github—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/github)GET /api/auth/oauth/github/callback—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/github/callback)GET /api/auth/oauth/github/status—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/github/status)GET /api/auth/oauth/huggingface—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/huggingface)GET /api/auth/oauth/huggingface/callback—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/huggingface/callback)GET /api/auth/oauth/huggingface/status—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/huggingface/status)GET /api/auth/oauth/oidc—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/oidc)GET /api/auth/oauth/oidc/callback—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/oidc/callback)GET /api/auth/oauth/oidc/status—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/oidc/status)GET /api/auth/passkeys—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/passkeys)GET /api/auth/sessions—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/sessions)GET /api/auth/system-info—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/system-info)GET /api/auth/tokens—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/tokens)GET /api/auth/verify—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/verify)POST /api/auth/login—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/login)POST /api/auth/logout—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/logout)POST /api/auth/mfa/activate—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/activate)POST /api/auth/mfa/activate-challenge—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/activate-challenge)POST /api/auth/mfa/disable—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/disable)POST /api/auth/mfa/enroll—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/enroll)POST /api/auth/mfa/enroll-challenge—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/enroll-challenge)POST /api/auth/mfa/recovery-codes—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/recovery-codes)POST /api/auth/mfa/verify—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/verify)POST /api/auth/oauth/exchange—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/oauth/exchange)POST /api/auth/passkeys/login—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/passkeys/login)POST /api/auth/passkeys/login-options—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/passkeys/login-options)POST /api/auth/passkeys/register—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/passkeys/register)POST /api/auth/passkeys/register-options—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/passkeys/register-options)POST /api/auth/sessions/revoke-others—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/sessions/revoke-others)POST /api/auth/signup—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/signup)POST /api/auth/tokens—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/tokens)POST /api/auth/websocket-ticket—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/websocket-ticket)PUT /api/auth/mfa/policy—backend/src/routes/auth.ts(montage/api/auth, sous-chemin/mfa/policy)
Contrôle d’accès
DELETE /api/access/grants/:id—backend/src/routes/access.ts(montage/api/access, sous-chemin/grants/:id)GET /api/access/grants—backend/src/routes/access.ts(montage/api/access, sous-chemin/grants)GET /api/access/principals—backend/src/routes/access.ts(montage/api/access, sous-chemin/principals)GET /api/access/principals/groups—backend/src/routes/access.ts(montage/api/access, sous-chemin/principals/groups)GET /api/access/shared-with-me—backend/src/routes/access.ts(montage/api/access, sous-chemin/shared-with-me)POST /api/access/grants—backend/src/routes/access.ts(montage/api/access, sous-chemin/grants)GET /api/audit—backend/src/routes/audit.ts(montage/api/audit, sous-chemin/)DELETE /api/groups/:id—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/:id)DELETE /api/groups/:id/members/:userId—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/:id/members/:userId)GET /api/groups—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/)GET /api/groups/effective/:userId—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/effective/:userId)PATCH /api/groups/:id—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/:id)POST /api/groups—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/)POST /api/groups/:id/members—backend/src/routes/groups.ts(montage/api/groups, sous-chemin/:id/members)
API publique
GET /v1/models—backend/src/routes/openaiCompat.ts(montage/v1, sous-chemin/models)POST /v1/chat/completions—backend/src/routes/openaiCompat.ts(montage/v1, sous-chemin/chat/completions)
Portabilité des données
GET /api/preferences/export—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/export)POST /api/preferences/import—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/import)POST /api/preferences/import/preflight—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/import/preflight)
Connaissances et recherche documentaires
DELETE /api/documents/:documentId—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/:documentId)DELETE /api/documents/collections/:collectionId—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/collections/:collectionId)GET /api/documents—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/)GET /api/documents/:documentId—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/:documentId)GET /api/documents/:documentId/source—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/:documentId/source)GET /api/documents/collections—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/collections)GET /api/documents/embeddings/status—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/embeddings/status)GET /api/documents/session/:sessionId—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/session/:sessionId)POST /api/documents/collections—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/collections)POST /api/documents/embeddings/regenerate—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/embeddings/regenerate)POST /api/documents/fetch-url—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/fetch-url)POST /api/documents/search—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/search)POST /api/documents/upload—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/upload)PUT /api/documents/:documentId/collection—backend/src/routes/documents.ts(montage/api/documents, sous-chemin/:documentId/collection)GET /api/embeddings/models—backend/src/routes/embeddings.ts(montage/api/embeddings, sous-chemin/models)
Mémoire des personas
DELETE /api/personas/:id/memory—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/memory)GET /api/personas/:id/memory/core—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/memory/core)GET /api/personas/:id/memory/stats—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/memory/stats)GET /api/personas/:id/memory/status—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/memory/status)POST /api/personas/:id/memory/consolidate—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/memory/consolidate)POST /api/personas/:id/memory/decay—backend/src/routes/personas.ts(montage/api/personas, sous-chemin/:id/memory/decay)
Recherche web
GET /api/search/access—backend/src/routes/search.ts(montage/api/search, sous-chemin/access)GET /api/search/app—backend/src/routes/search.ts(montage/api/search, sous-chemin/app)GET /api/search/config—backend/src/routes/search.ts(montage/api/search, sous-chemin/config)POST /api/search/test—backend/src/routes/search.ts(montage/api/search, sous-chemin/test)PUT /api/search/access—backend/src/routes/search.ts(montage/api/search, sous-chemin/access)PUT /api/search/config—backend/src/routes/search.ts(montage/api/search, sous-chemin/config)
Paramètres et préférences
GET /api/preferences—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/)GET /api/preferences/default-theme—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/default-theme)POST /api/preferences/embedding-settings/reset—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/embedding-settings/reset)POST /api/preferences/generation-options/reset—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/generation-options/reset)PUT /api/preferences—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/)PUT /api/preferences/default-model—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/default-model)PUT /api/preferences/default-theme—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/default-theme)PUT /api/preferences/embedding-settings—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/embedding-settings)PUT /api/preferences/generation-options—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/generation-options)PUT /api/preferences/model-generation-options—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/model-generation-options)PUT /api/preferences/system-message—backend/src/routes/preferences.ts(montage/api/preferences, sous-chemin/system-message)
Entrée et sortie vocales
GET /api/stt/models—backend/src/routes/stt.ts(montage/api/stt, sous-chemin/models)POST /api/stt/transcribe—backend/src/routes/stt.ts(montage/api/stt, sous-chemin/transcribe)DELETE /api/tts/voice-profiles/:profileId—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/voice-profiles/:profileId)GET /api/tts/models—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/models)GET /api/tts/plugins—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/plugins)GET /api/tts/voice-profiles—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/voice-profiles)GET /api/tts/voices/:pluginId—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/voices/:pluginId)POST /api/tts/generate—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/generate)POST /api/tts/generate-base64—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/generate-base64)POST /api/tts/voice-clone—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/voice-clone)POST /api/tts/voice-profiles/:profileId/revoke—backend/src/routes/tts.ts(montage/api/tts, sous-chemin/voice-profiles/:profileId/revoke)GET /api/voice-access—backend/src/routes/voiceAccess.ts(montage/api/voice-access, sous-chemin/)PUT /api/voice-access/:feature—backend/src/routes/voiceAccess.ts(montage/api/voice-access, sous-chemin/:feature)
Hugging Face Hub
GET /api/huggingface-hub/models—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/models)GET /api/huggingface-hub/models/:author/:modelName—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/models/:author/:modelName)GET /api/huggingface-hub/models/:author/:modelName/gguf—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/models/:author/:modelName/gguf)GET /api/huggingface-hub/models/:author/:modelName/has-gguf—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/models/:author/:modelName/has-gguf)GET /api/huggingface-hub/tasks—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/tasks)GET /api/huggingface-hub/trending—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/trending)POST /api/huggingface-hub/cache/clear—backend/src/routes/huggingfaceHub.ts(montage/api/huggingface-hub, sous-chemin/cache/clear)
Libre Claw
DELETE /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId)GET /api/libre-claw/access—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/access)GET /api/libre-claw/automations—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations)GET /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId)GET /api/libre-claw/config/fallback—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/config/fallback)GET /api/libre-claw/config/model—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/config/model)GET /api/libre-claw/dashboard—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/dashboard)GET /api/libre-claw/health—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/health)GET /api/libre-claw/runs—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/runs)GET /api/libre-claw/runs/:runId—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/runs/:runId)GET /api/libre-claw/runs/:runId/events—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/runs/:runId/events)GET /api/libre-claw/status—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/status)GET /api/libre-claw/usage—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/usage)PATCH /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId)PATCH /api/libre-claw/config/fallback—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/config/fallback)PATCH /api/libre-claw/config/model—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/config/model)PATCH /api/libre-claw/config/theme—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/config/theme)POST /api/libre-claw/automations—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations)POST /api/libre-claw/automations/:automationId/pause—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId/pause)POST /api/libre-claw/automations/:automationId/resume—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId/resume)POST /api/libre-claw/automations/:automationId/run—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId/run)POST /api/libre-claw/runs—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/runs)POST /api/libre-claw/runs/:runId/cancel—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/runs/:runId/cancel)POST /api/libre-claw/runs/:runId/permissions/:toolCallId—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/runs/:runId/permissions/:toolCallId)PUT /api/libre-claw/access—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/access)PUT /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(montage/api/libre-claw, sous-chemin/automations/:automationId)
Tâches et événements durables
GET /api/jobs—backend/src/routes/jobs.ts(montage/api/jobs, sous-chemin/)GET /api/jobs/:jobId—backend/src/routes/jobs.ts(montage/api/jobs, sous-chemin/:jobId)GET /api/jobs/:jobId/events—backend/src/routes/jobs.ts(montage/api/jobs, sous-chemin/:jobId/events)POST /api/jobs/:jobId/cancel—backend/src/routes/jobs.ts(montage/api/jobs, sous-chemin/:jobId/cancel)
Profils de déploiement solo et équipe
Aucun point de terminaison Express monté. La limite exécutable est l’interface et/ou les preuves sources consignées ci-dessus.
Restauration et sauvegarde
GET /api/recovery/drills—backend/src/routes/recovery.ts(montage/api/recovery, sous-chemin/drills)POST /api/recovery/drills/run—backend/src/routes/recovery.ts(montage/api/recovery, sous-chemin/drills/run)
Inventaire exact des routes WebSocket
WEBSOCKET /ws— Chat,backend/src/websocketServer.ts; preuves d’authentification :backend/src/websocketServer.ts,scripts/test-websocket-tickets.mjsWEBSOCKET /ws/work-terminal— Work,backend/src/websocketServer.ts; preuves d’authentification :backend/src/workTerminalServer.ts,scripts/test-websocket-tickets.mjsWEBSOCKET /ws/work-screen— Work,backend/src/websocketServer.ts; preuves d’authentification :backend/src/workScreenServer.tsWEBSOCKET /ws/work-audio— Work,backend/src/websocketServer.ts; preuves d’authentification :backend/src/workScreenServer.ts
Limite d’application
La barrière du paquet analyse les sources TypeScript/JavaScript, résout chaque routeur Express importé vers son montage littéral dans l’application et rapproche individuellement chaque déclaration littérale de méthode et de chemin du routeur et chaque chemin de mise à niveau WebSocket avec cet inventaire. Elle échoue en présence d’un fichier de routes non monté, d’un constructeur router.route() non pris en charge, d’un chemin de route dynamique, d’un propriétaire de point de terminaison absent ou dupliqué, de preuves d’authentification WebSocket manquantes, d’une route d’interface modifiée, d’informations manquantes sur l’applicabilité des schémas, manifestes ou valeurs par défaut, de preuves obsolètes ou d’un document généré obsolète.
Les preuves de test ciblé sont limitées à une déclaration test(...) nommée exacte et à au moins deux motifs comportementaux dans le corps de ce test. Les tests du serveur doivent être des arguments de fichier exacts pour test:package ; les spécifications Playwright doivent correspondre à la découverte normale. La barrière prouve également que les deux lanceurs s’exécutent dans le workflow normal Format & Lint des Pull Requests et des branches dev/main.