Globale Funktionsverträge
Dieses ausführbare Inventar umfasst jede Seitenroute in frontend/src/App.tsx, jede literale Methode und jeden Pfad aller eingebundenen Express-Router unter backend/src/routes/*.ts sowie jeden WebSocket-Upgrade-Pfad in backend/src/websocketServer.ts. Jeder Endpunkt besitzt genau einen Funktionsverantwortlichen, jeder WebSocket einen Authentifizierungsnachweis. Jede Funktion deklariert außerdem Schema-, Manifest- und Standard-Anwendbarkeit mit Quellnachweis oder Begründung sowie Dokumentation und einen benannten Verhaltenstest in der normalen CI.
Ausführbare Anbieterdetails bleiben durch scripts/capability-contracts.json und scripts/test-capability-contracts.mjs geregelt; dieses Inventar verlinkt den Vertrag.
| Funktion | UI-Routen | HTTP-Endpunkte | WebSocket-Endpunkte | Schemas | Manifeste | Standards | Dokumentation | Benannte Verhaltenstests |
|---|---|---|---|---|---|---|---|---|
| Start | / | 0 | 0 | N/A — Start ist eine Navigations- und Kompositionsfläche ohne eigene Nutzlast. | N/A — Start ist integriert und wird nicht über ein Manifest installiert. | 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) |
| Modellverwaltung | — | 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 | N/A — Personas sind gespeicherte Kontoressourcen ohne installierbares Manifest. | 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) |
| Mediengalerie | /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) |
| Notizen | /notes | 12 | 0 | backend/src/types/index.tsbackend/src/persistence/resourceTypes.ts | N/A — Notizen sind eigene Kontoressourcen ohne Manifest. | N/A — Notizen besitzen außerhalb expliziter Felder keine impliziten Inhalte. | 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) |
| Kalender | /calendar | 10 | 0 | backend/src/types/index.ts | N/A — Kalenderereignisse sind eigene Ressourcen ohne Manifest. | N/A — Ereignisse haben keine impliziten Inhalte; Wiederholungen verwenden die in docs/47-CALENDAR.md dokumentierte Server-Zeitzone. | 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) |
| Automatisierungen | /automations | 15 | 0 | backend/src/types/index.ts | N/A — Automatisierungen sind eigene Ressourcen ohne Manifest. | docs/48-AUTOMATIONS.md | docs/48-AUTOMATIONS.md | the scheduler fires due automations once and settles stalled runsscripts/test-automations.mjs (test:package) |
| Kanäle | /channels | 24 | 0 | backend/src/types/index.ts | N/A — Kanäle sind eigene Ressourcen ohne Manifest. | 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) |
| Benachrichtigungen | — | 13 | 0 | backend/src/types/index.ts | N/A — Benachrichtigungen sind eigener Kontostatus ohne Manifest. | 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) |
| Prompt-Bibliothek | — | 9 | 0 | backend/src/services/promptService.ts | N/A — Prompts sind eigene Ressourcen; portable Form ist libre-prompt.v1. | N/A — Prompts haben keine impliziten Inhalte; Felder stammen vom Benutzer und nur deklarierte Variablen werden ersetzt, erzwungen durch scripts/test-prompts.mjs. | docs/50-PROMPTS.md | prompts round-trip through the API and stay encrypted at restscripts/test-prompts.mjs (test:package) |
| Skills | — | 14 | 0 | backend/src/services/skillService.ts | backend/src/services/skillService.ts | N/A — Skills haben keine impliziten Inhalte; deaktivierte verlassen das Manifest. | 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) |
| Chat-Tools | — | 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) |
| Agent-CLI-Modelle | /agents | 1 | 0 | backend/src/services/agentCliService.ts | N/A — Agent-CLI-Adapter sind kompilierte eigene Definitionen. | 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) |
| Artefakte | /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) |
| Anbieternutzung | /usage | 10 | 0 | backend/src/services/pluginUsageService.ts | N/A — Nutzungsanalyse konsumiert Ereignisse, definiert aber kein Manifest. | 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) |
| Evaluierungsplattform | /evaluations | 16 | 0 | backend/src/persistence/resourceTypes.ts | N/A — Evaluierungen sind gespeicherte Ressourcen ohne Manifest. | 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) |
| Systemdiagnose | /system | 5 | 0 | backend/src/services/systemDiagnosticsService.ts | N/A — Systemdiagnose ist ein integrierter authentifizierter Bericht. | 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) |
| Benutzerverwaltung | /users | 8 | 0 | backend/src/types/index.ts | N/A — Benutzerverwaltung ist eine integrierte Identitätsfunktion. | N/A — Rolle und Status folgen Bootstrap- oder Genehmigungsrichtlinie. | docs/12-AUTHENTICATION.md | public registrations require administrator approval before authenticationscripts/test-user-approval.mjs (test:package) |
| Authentifizierung | /login | 40 | 0 | backend/src/types/index.ts | N/A — Authentifizierung ist eine integrierte Sicherheitsgrenze. | 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) |
| Zugriffskontrolle | — | 14 | 0 | backend/src/persistence/securityTypes.ts | N/A — Zugriffskontrolle ist eine integrierte Sicherheitsgrenze. | 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) |
| Öffentliche API | — | 2 | 0 | backend/src/routes/openaiCompat.ts | N/A — Die OpenAI-Fläche spiegelt ein externes Format ohne Manifest. | N/A — Sampling-Standards stammen aus Anfrage und Modell. | docs/53-PUBLIC_API.md | a streaming completion emits OpenAI chunk frames and [DONE]scripts/test-openai-compat.mjs (test:package) |
| Datenportabilität | — | 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) |
| Dokumentwissen und Retrieval | — | 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) |
| Persona-Gedächtnis | — | 6 | 0 | backend/src/types/index.ts | N/A — Persona-Gedächtnis ist intern. | 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) |
| Websuche | — | 6 | 0 | backend/src/services/webSearchService.ts | N/A — Websuche nutzt Admin-Verbindungseinstellungen. | 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) |
| Einstellungen und Präferenzen | — | 11 | 0 | backend/src/types/index.ts | N/A — Einstellungen bündeln Konfiguration ohne eigenes Manifest. | 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) |
| Sprachein- und -ausgabe | — | 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 | N/A — Hub-Metadaten sind entfernte API-Daten ohne lokales Manifest. | 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 | N/A — Libre Claw ist eine explizite Dienstintegration. | 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) |
| Dauerhafte Jobs und Ereignisse | — | 4 | 0 | backend/src/platform/jobs/durableJobTypes.ts | N/A — Dauerhafte Jobs verwenden Handler und Nutzlastverträge statt Manifeste. | 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) |
| Solo- und Team-Profile | — | 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) |
| Wiederherstellung und Sicherung | — | 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) |
Exaktes Backend-Routeninventar
Start
Kein eingebundener Express-Endpunkt; Grenze sind UI oder Nachweise oben.
Chat
DELETE /api/chat/folders/:folderId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/folders/:folderId)DELETE /api/chat/sessions—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions)DELETE /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId)DELETE /api/chat/sessions/:sessionId/queue/:entryId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/queue/:entryId)GET /api/chat/compaction-config—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/compaction-config)GET /api/chat/context-policy—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/context-policy)GET /api/chat/folders—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/folders)GET /api/chat/sessions—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions)GET /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId)GET /api/chat/sessions/:sessionId/events—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/events)GET /api/chat/sessions/:sessionId/messages/:messageId/branches—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/messages/:messageId/branches)POST /api/chat/folders—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/folders)POST /api/chat/sessions—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions)POST /api/chat/sessions/:sessionId/compaction/:messageId/restore—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/compaction/:messageId/restore)POST /api/chat/sessions/:sessionId/followups—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/followups)POST /api/chat/sessions/:sessionId/fork—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/fork)POST /api/chat/sessions/:sessionId/generate—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/generate)POST /api/chat/sessions/:sessionId/generate-title—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/generate-title)POST /api/chat/sessions/:sessionId/generate/stream—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/generate/stream)POST /api/chat/sessions/:sessionId/generations—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/generations)POST /api/chat/sessions/:sessionId/generations/:assistantMessageId/cancel—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/generations/:assistantMessageId/cancel)POST /api/chat/sessions/:sessionId/messages—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/messages)POST /api/chat/sessions/:sessionId/messages/:messageId/branch—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/messages/:messageId/branch)POST /api/chat/sessions/:sessionId/messages/:messageId/branches—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/messages/:messageId/branches)POST /api/chat/sessions/:sessionId/messages/:messageId/truncate—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/messages/:messageId/truncate)POST /api/chat/sessions/:sessionId/queue—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/queue)PUT /api/chat/compaction-config—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/compaction-config)PUT /api/chat/folders/:folderId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/folders/:folderId)PUT /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId)PUT /api/chat/sessions/:sessionId/messages/:messageId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/messages/:messageId)PUT /api/chat/sessions/:sessionId/queue—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/queue)PUT /api/chat/sessions/:sessionId/queue/:entryId—backend/src/routes/chat.ts(Einbindung/api/chat, Unterpfad/sessions/:sessionId/queue/:entryId)
Modellverwaltung
DELETE /api/ollama/models—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models)GET /api/ollama/health—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/health)GET /api/ollama/library—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/library)GET /api/ollama/models—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models)GET /api/ollama/models/:modelName/defaults—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/:modelName/defaults)GET /api/ollama/models/access—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/access)GET /api/ollama/models/pull-all/stream—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/pull-all/stream)GET /api/ollama/models/show—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/show)GET /api/ollama/models/visibility—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/visibility)GET /api/ollama/pull/stream—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/pull/stream)GET /api/ollama/running—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/running)GET /api/ollama/settings—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/settings)GET /api/ollama/version—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/version)HEAD /api/ollama/blobs/:digest—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/blobs/:digest)POST /api/ollama/blobs/:digest—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/blobs/:digest)POST /api/ollama/chat—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/chat)POST /api/ollama/chat/stream—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/chat/stream)POST /api/ollama/embed—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/embed)POST /api/ollama/embeddings—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/embeddings)POST /api/ollama/models—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models)POST /api/ollama/models/copy—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/copy)POST /api/ollama/models/pull—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/pull)POST /api/ollama/models/pull-all—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/pull-all)POST /api/ollama/models/push—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/push)POST /api/ollama/models/unload—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/unload)POST /api/ollama/models/unload-all—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/unload-all)PUT /api/ollama/models/access—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/access)PUT /api/ollama/models/visibility—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/models/visibility)PUT /api/ollama/settings—backend/src/routes/ollama.ts(Einbindung/api/ollama, Unterpfad/settings)DELETE /api/plugins/:id—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id)DELETE /api/plugins/:id/credentials—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/credentials)DELETE /api/plugins/:id/variables—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/variables)GET /api/plugins—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/)GET /api/plugins/:id—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id)GET /api/plugins/:id/credentials/check—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/credentials/check)GET /api/plugins/:id/export—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/export)GET /api/plugins/:id/variables—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/variables)GET /api/plugins/active—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/active)GET /api/plugins/active/current—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/active/current)GET /api/plugins/credentials/all—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/credentials/all)GET /api/plugins/status/all—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/status/all)POST /api/plugins/:id/credentials—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/credentials)POST /api/plugins/activate/:id—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/activate/:id)POST /api/plugins/deactivate—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/deactivate)POST /api/plugins/deactivate/:id—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/deactivate/:id)POST /api/plugins/discover/:id—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/discover/:id)POST /api/plugins/install—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/install)POST /api/plugins/probe-endpoint—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/probe-endpoint)POST /api/plugins/upload—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/upload)PUT /api/plugins/:id—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id)PUT /api/plugins/:id/variables—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/:id/variables)
Personas
DELETE /api/personas/:id—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id)GET /api/personas—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/)GET /api/personas/:id—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id)GET /api/personas/:id/backup—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/backup)GET /api/personas/:id/download—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/download)GET /api/personas/:id/export—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/export)GET /api/personas/:id/export/dna—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/export/dna)GET /api/personas/defaults/parameters—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/defaults/parameters)GET /api/personas/stats/count—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/stats/count)POST /api/personas—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/)POST /api/personas/import—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/import)PUT /api/personas/:id—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id)
Mediengalerie
DELETE /api/image-gen/gallery/:imageId—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/gallery/:imageId)GET /api/image-gen/config/:pluginId—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/config/:pluginId)GET /api/image-gen/gallery—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/gallery)GET /api/image-gen/gallery/:imageId—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/gallery/:imageId)GET /api/image-gen/models—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/models)GET /api/image-gen/plugins—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/plugins)POST /api/image-gen/generate—backend/src/routes/imageGen.ts(Einbindung/api/image-gen, Unterpfad/generate)DELETE /api/media/gallery/:mediaId—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/gallery/:mediaId)DELETE /api/media/video/jobs/:jobId—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/video/jobs/:jobId)GET /api/media/gallery—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/gallery)GET /api/media/gallery/:mediaId/content—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/gallery/:mediaId/content)GET /api/media/models—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/models)GET /api/media/video/jobs—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/video/jobs)GET /api/media/video/jobs/:jobId—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/video/jobs/:jobId)POST /api/media/audio/generate—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/audio/generate)POST /api/media/audio/voice-clone—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/audio/voice-clone)POST /api/media/image/edit—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/image/edit)POST /api/media/sound/generate—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/sound/generate)POST /api/media/video/generate—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/video/generate)POST /api/media/video/jobs/:jobId/resume—backend/src/routes/media.ts(Einbindung/api/media, Unterpfad/video/jobs/:jobId/resume)
Notizen
DELETE /api/notes/:noteId—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId)DELETE /api/notes/:noteId/attachments/:attachmentId—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/attachments/:attachmentId)GET /api/notes—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/)GET /api/notes/:noteId—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId)GET /api/notes/:noteId/attachments—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/attachments)GET /api/notes/:noteId/attachments/:attachmentId—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/attachments/:attachmentId)GET /api/notes/:noteId/revisions—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/revisions)POST /api/notes—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/)POST /api/notes/:noteId/assist—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/assist)POST /api/notes/:noteId/attachments—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/attachments)POST /api/notes/:noteId/revisions/:revisionId/restore—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId/revisions/:revisionId/restore)PUT /api/notes/:noteId—backend/src/routes/notes.ts(Einbindung/api/notes, Unterpfad/:noteId)
Kalender
DELETE /api/calendar/calendars/:calendarId—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/calendars/:calendarId)DELETE /api/calendar/events/:eventId—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/events/:eventId)GET /api/calendar/calendars—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/calendars)GET /api/calendar/events—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/events)GET /api/calendar/export—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/export)POST /api/calendar/calendars—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/calendars)POST /api/calendar/events—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/events)POST /api/calendar/import—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/import)PUT /api/calendar/calendars/:calendarId—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/calendars/:calendarId)PUT /api/calendar/events/:eventId—backend/src/routes/calendar.ts(Einbindung/api/calendar, Unterpfad/events/:eventId)
Automatisierungen
DELETE /api/automations/:automationId—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId)DELETE /api/automations/:automationId/webhook-secret—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId/webhook-secret)GET /api/automations—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/)GET /api/automations/:automationId—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId)GET /api/automations/occurrences—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/occurrences)GET /api/automations/runs—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/runs)GET /api/automations/runs/summary—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/runs/summary)POST /api/automations—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/)POST /api/automations/:automationId/pause—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId/pause)POST /api/automations/:automationId/resume—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId/resume)POST /api/automations/:automationId/run—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId/run)POST /api/automations/:automationId/webhook—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId/webhook)POST /api/automations/:automationId/webhook-secret—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId/webhook-secret)POST /api/automations/runs/seen—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/runs/seen)PUT /api/automations/:automationId—backend/src/routes/automations.ts(Einbindung/api/automations, Unterpfad/:automationId)
Kanäle
DELETE /api/channels/:channelId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId)DELETE /api/channels/:channelId/members/:userId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/members/:userId)DELETE /api/channels/messages/:messageId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/messages/:messageId)DELETE /api/channels/messages/:messageId/reactions/:emoji—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/messages/:messageId/reactions/:emoji)GET /api/channels—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/)GET /api/channels/:channelId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId)GET /api/channels/:channelId/events—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/events)GET /api/channels/:channelId/members—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/members)GET /api/channels/:channelId/messages—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/messages)GET /api/channels/:channelId/pins—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/pins)GET /api/channels/attachments/:attachmentId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/attachments/:attachmentId)GET /api/channels/messages/:messageId/thread—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/messages/:messageId/thread)GET /api/channels/public—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/public)PATCH /api/channels/:channelId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId)PATCH /api/channels/messages/:messageId—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/messages/:messageId)POST /api/channels—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/)POST /api/channels/:channelId/attachments—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/attachments)POST /api/channels/:channelId/join—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/join)POST /api/channels/:channelId/members—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/members)POST /api/channels/:channelId/messages—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/messages)POST /api/channels/:channelId/read—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/:channelId/read)POST /api/channels/dm—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/dm)POST /api/channels/messages/:messageId/pin—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/messages/:messageId/pin)POST /api/channels/messages/:messageId/reactions—backend/src/routes/channels.ts(Einbindung/api/channels, Unterpfad/messages/:messageId/reactions)
Benachrichtigungen
DELETE /api/notifications/:notificationId—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/:notificationId)DELETE /api/notifications/webhooks/:targetId—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/webhooks/:targetId)GET /api/notifications—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/)GET /api/notifications/events—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/events)GET /api/notifications/unread-count—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/unread-count)GET /api/notifications/webhooks—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/webhooks)POST /api/notifications/:notificationId/read—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/:notificationId/read)POST /api/notifications/read-all—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/read-all)POST /api/notifications/webhooks—backend/src/routes/notifications.ts(Einbindung/api/notifications, Unterpfad/webhooks)DELETE /api/push/subscriptions—backend/src/routes/push.ts(Einbindung/api/push, Unterpfad/subscriptions)GET /api/push/public-key—backend/src/routes/push.ts(Einbindung/api/push, Unterpfad/public-key)GET /api/push/subscriptions—backend/src/routes/push.ts(Einbindung/api/push, Unterpfad/subscriptions)POST /api/push/subscriptions—backend/src/routes/push.ts(Einbindung/api/push, Unterpfad/subscriptions)
Prompt-Bibliothek
DELETE /api/prompts/:promptId—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/:promptId)GET /api/prompts—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/)GET /api/prompts/:promptId—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/:promptId)GET /api/prompts/:promptId/export—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/:promptId/export)GET /api/prompts/:promptId/versions—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/:promptId/versions)POST /api/prompts—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/)POST /api/prompts/:promptId/rollback—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/:promptId/rollback)POST /api/prompts/import—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/import)PUT /api/prompts/:promptId—backend/src/routes/prompts.ts(Einbindung/api/prompts, Unterpfad/:promptId)
Skills
DELETE /api/skills/:skillId—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId)DELETE /api/skills/:skillId/files—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/files)GET /api/skills—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/)GET /api/skills/:skillId—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId)GET /api/skills/:skillId/export—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/export)GET /api/skills/:skillId/files—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/files)GET /api/skills/:skillId/files/content—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/files/content)GET /api/skills/:skillId/versions—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/versions)POST /api/skills—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/)POST /api/skills/:skillId/rollback—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/rollback)POST /api/skills/import—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/import)POST /api/skills/import-url—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/import-url)PUT /api/skills/:skillId—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId)PUT /api/skills/:skillId/files—backend/src/routes/skills.ts(Einbindung/api/skills, Unterpfad/:skillId/files)
Chat-Tools
DELETE /api/tools/approvals/:id—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/approvals/:id)DELETE /api/tools/servers/:id—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id)DELETE /api/tools/servers/:id/credential—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id/credential)GET /api/tools/access—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/access)GET /api/tools/approvals—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/approvals)GET /api/tools/catalog—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/catalog)GET /api/tools/servers—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers)GET /api/tools/servers/:id—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id)POST /api/tools/approvals/:id—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/approvals/:id)POST /api/tools/servers—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers)POST /api/tools/servers/:id/refresh—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id/refresh)PUT /api/tools/access—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/access)PUT /api/tools/servers/:id—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id)PUT /api/tools/servers/:id/credential—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id/credential)PUT /api/tools/servers/:id/tools/:toolName—backend/src/routes/tools.ts(Einbindung/api/tools, Unterpfad/servers/:id/tools/:toolName)
Work
DELETE /api/work/policies/:id—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/policies/:id)DELETE /api/work/tasks/:id—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id)DELETE /api/work/tasks/:id/approval-rules/:ruleId—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/approval-rules/:ruleId)DELETE /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/computer/control)GET /api/work/access—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/access)GET /api/work/admin/overview—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/admin/overview)GET /api/work/capabilities—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/capabilities)GET /api/work/computer/setup—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/computer/setup)GET /api/work/policies—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/policies)GET /api/work/tasks—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks)GET /api/work/tasks/:id—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id)GET /api/work/tasks/:id/approvals—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/approvals)GET /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/computer/control)GET /api/work/tasks/:id/file—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/file)GET /api/work/tasks/:id/files—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/files)GET /api/work/tasks/:id/git—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git)GET /api/work/tasks/:id/git/diff—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git/diff)GET /api/work/tasks/:id/messages—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/messages)GET /api/work/tasks/:taskId/runs/:runId/events—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:taskId/runs/:runId/events)PATCH /api/work/tasks/:id—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id)POST /api/work/computer/setup—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/computer/setup)POST /api/work/computer/skills/:slug/trace—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/computer/skills/:slug/trace)POST /api/work/policies—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/policies)POST /api/work/tasks—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks)POST /api/work/tasks/:id/approvals/:approvalId—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/approvals/:approvalId)POST /api/work/tasks/:id/cancel—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/cancel)POST /api/work/tasks/:id/computer/anchor—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/computer/anchor)POST /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/computer/control)POST /api/work/tasks/:id/computer/start—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/computer/start)POST /api/work/tasks/:id/computer/teach—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/computer/teach)POST /api/work/tasks/:id/git/branches—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git/branches)POST /api/work/tasks/:id/git/commit—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git/commit)POST /api/work/tasks/:id/git/init—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git/init)POST /api/work/tasks/:id/git/stage—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git/stage)POST /api/work/tasks/:id/git/switch—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/git/switch)POST /api/work/tasks/:id/messages—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/messages)POST /api/work/tasks/:id/preview/start—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/preview/start)POST /api/work/tasks/:id/preview/stop—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/preview/stop)POST /api/work/tasks/:id/runs—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/runs)POST /api/work/tasks/:id/seen—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/seen)PUT /api/work/access—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/access)PUT /api/work/policies/:id—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/policies/:id)PUT /api/work/tasks/:id/approvals—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/approvals)PUT /api/work/tasks/:id/file—backend/src/routes/work.ts(Einbindung/api/work, Unterpfad/tasks/:id/file)
Agent-CLI-Modelle
GET /api/agent-clis/models—backend/src/routes/agentCli.ts(Einbindung/api/agent-clis, Unterpfad/models)
Artefakte
GET /api/artifacts/sandbox—backend/src/routes/artifacts.ts(Einbindung/api/artifacts, Unterpfad/sandbox)
Anbieternutzung
DELETE /api/costs/budgets/:budgetId—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/budgets/:budgetId)DELETE /api/costs/tariffs/:tariffId—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/tariffs/:tariffId)GET /api/costs/analytics—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/analytics)GET /api/costs/budgets—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/budgets)GET /api/costs/export—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/export)GET /api/costs/tariffs—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/tariffs)POST /api/costs/budgets—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/budgets)POST /api/costs/tariffs—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/tariffs)PUT /api/costs/budgets/:budgetId—backend/src/routes/costs.ts(Einbindung/api/costs, Unterpfad/budgets/:budgetId)GET /api/plugins/usage—backend/src/routes/plugins.ts(Einbindung/api/plugins, Unterpfad/usage)
Evaluierungsplattform
DELETE /api/evaluations/feedback/:messageId—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/feedback/:messageId)DELETE /api/evaluations/sets/:setId—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/sets/:setId)GET /api/evaluations/arena/leaderboard—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/arena/leaderboard)GET /api/evaluations/feedback—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/feedback)GET /api/evaluations/feedback/all—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/feedback/all)GET /api/evaluations/runs—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/runs)GET /api/evaluations/runs/:runId—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/runs/:runId)GET /api/evaluations/runs/:runId/export—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/runs/:runId/export)GET /api/evaluations/sets—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/sets)POST /api/evaluations/arena/matches—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/arena/matches)POST /api/evaluations/arena/votes—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/arena/votes)POST /api/evaluations/feedback—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/feedback)POST /api/evaluations/runs—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/runs)POST /api/evaluations/runs/:runId/cancel—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/runs/:runId/cancel)POST /api/evaluations/sets—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/sets)PUT /api/evaluations/sets/:setId—backend/src/routes/evaluations.ts(Einbindung/api/evaluations, Unterpfad/sets/:setId)
Systemdiagnose
GET /health—backend/src/routes/health.ts(Einbindung/health, Unterpfad/)GET /health/deep—backend/src/routes/health.ts(Einbindung/health, Unterpfad/deep)GET /health/live—backend/src/routes/health.ts(Einbindung/health, Unterpfad/live)GET /health/ready—backend/src/routes/health.ts(Einbindung/health, Unterpfad/ready)GET /api/system—backend/src/routes/systemDiagnostics.ts(Einbindung/api/system, Unterpfad/)
Benutzerverwaltung
DELETE /api/users/:id—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/:id)GET /api/users—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/)GET /api/users/pending-approvals—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/pending-approvals)PATCH /api/users/:id—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/:id)PATCH /api/users/:id/approve—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/:id/approve)PATCH /api/users/me/avatar—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/me/avatar)POST /api/users—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/)POST /api/users/:id/mfa/reset—backend/src/routes/users.ts(Einbindung/api/users, Unterpfad/:id/mfa/reset)
Authentifizierung
DELETE /api/auth/passkeys/:id—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/passkeys/:id)DELETE /api/auth/sessions/:id—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/sessions/:id)DELETE /api/auth/tokens/:id—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/tokens/:id)GET /api/auth/encryption-key—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/encryption-key)GET /api/auth/me—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/me)GET /api/auth/mfa—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa)GET /api/auth/mfa/policy—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/policy)GET /api/auth/oauth/github—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/github)GET /api/auth/oauth/github/callback—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/github/callback)GET /api/auth/oauth/github/status—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/github/status)GET /api/auth/oauth/huggingface—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/huggingface)GET /api/auth/oauth/huggingface/callback—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/huggingface/callback)GET /api/auth/oauth/huggingface/status—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/huggingface/status)GET /api/auth/oauth/oidc—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/oidc)GET /api/auth/oauth/oidc/callback—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/oidc/callback)GET /api/auth/oauth/oidc/status—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/oidc/status)GET /api/auth/passkeys—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/passkeys)GET /api/auth/sessions—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/sessions)GET /api/auth/system-info—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/system-info)GET /api/auth/tokens—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/tokens)GET /api/auth/verify—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/verify)POST /api/auth/login—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/login)POST /api/auth/logout—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/logout)POST /api/auth/mfa/activate—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/activate)POST /api/auth/mfa/activate-challenge—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/activate-challenge)POST /api/auth/mfa/disable—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/disable)POST /api/auth/mfa/enroll—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/enroll)POST /api/auth/mfa/enroll-challenge—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/enroll-challenge)POST /api/auth/mfa/recovery-codes—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/recovery-codes)POST /api/auth/mfa/verify—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/verify)POST /api/auth/oauth/exchange—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/oauth/exchange)POST /api/auth/passkeys/login—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/passkeys/login)POST /api/auth/passkeys/login-options—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/passkeys/login-options)POST /api/auth/passkeys/register—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/passkeys/register)POST /api/auth/passkeys/register-options—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/passkeys/register-options)POST /api/auth/sessions/revoke-others—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/sessions/revoke-others)POST /api/auth/signup—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/signup)POST /api/auth/tokens—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/tokens)POST /api/auth/websocket-ticket—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/websocket-ticket)PUT /api/auth/mfa/policy—backend/src/routes/auth.ts(Einbindung/api/auth, Unterpfad/mfa/policy)
Zugriffskontrolle
DELETE /api/access/grants/:id—backend/src/routes/access.ts(Einbindung/api/access, Unterpfad/grants/:id)GET /api/access/grants—backend/src/routes/access.ts(Einbindung/api/access, Unterpfad/grants)GET /api/access/principals—backend/src/routes/access.ts(Einbindung/api/access, Unterpfad/principals)GET /api/access/principals/groups—backend/src/routes/access.ts(Einbindung/api/access, Unterpfad/principals/groups)GET /api/access/shared-with-me—backend/src/routes/access.ts(Einbindung/api/access, Unterpfad/shared-with-me)POST /api/access/grants—backend/src/routes/access.ts(Einbindung/api/access, Unterpfad/grants)GET /api/audit—backend/src/routes/audit.ts(Einbindung/api/audit, Unterpfad/)DELETE /api/groups/:id—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/:id)DELETE /api/groups/:id/members/:userId—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/:id/members/:userId)GET /api/groups—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/)GET /api/groups/effective/:userId—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/effective/:userId)PATCH /api/groups/:id—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/:id)POST /api/groups—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/)POST /api/groups/:id/members—backend/src/routes/groups.ts(Einbindung/api/groups, Unterpfad/:id/members)
Öffentliche API
GET /v1/models—backend/src/routes/openaiCompat.ts(Einbindung/v1, Unterpfad/models)POST /v1/chat/completions—backend/src/routes/openaiCompat.ts(Einbindung/v1, Unterpfad/chat/completions)
Datenportabilität
GET /api/preferences/export—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/export)POST /api/preferences/import—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/import)POST /api/preferences/import/preflight—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/import/preflight)
Dokumentwissen und Retrieval
DELETE /api/documents/:documentId—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/:documentId)DELETE /api/documents/collections/:collectionId—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/collections/:collectionId)GET /api/documents—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/)GET /api/documents/:documentId—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/:documentId)GET /api/documents/:documentId/source—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/:documentId/source)GET /api/documents/collections—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/collections)GET /api/documents/embeddings/status—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/embeddings/status)GET /api/documents/session/:sessionId—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/session/:sessionId)POST /api/documents/collections—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/collections)POST /api/documents/embeddings/regenerate—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/embeddings/regenerate)POST /api/documents/fetch-url—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/fetch-url)POST /api/documents/search—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/search)POST /api/documents/upload—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/upload)PUT /api/documents/:documentId/collection—backend/src/routes/documents.ts(Einbindung/api/documents, Unterpfad/:documentId/collection)GET /api/embeddings/models—backend/src/routes/embeddings.ts(Einbindung/api/embeddings, Unterpfad/models)
Persona-Gedächtnis
DELETE /api/personas/:id/memory—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/memory)GET /api/personas/:id/memory/core—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/memory/core)GET /api/personas/:id/memory/stats—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/memory/stats)GET /api/personas/:id/memory/status—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/memory/status)POST /api/personas/:id/memory/consolidate—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/memory/consolidate)POST /api/personas/:id/memory/decay—backend/src/routes/personas.ts(Einbindung/api/personas, Unterpfad/:id/memory/decay)
Websuche
GET /api/search/access—backend/src/routes/search.ts(Einbindung/api/search, Unterpfad/access)GET /api/search/app—backend/src/routes/search.ts(Einbindung/api/search, Unterpfad/app)GET /api/search/config—backend/src/routes/search.ts(Einbindung/api/search, Unterpfad/config)POST /api/search/test—backend/src/routes/search.ts(Einbindung/api/search, Unterpfad/test)PUT /api/search/access—backend/src/routes/search.ts(Einbindung/api/search, Unterpfad/access)PUT /api/search/config—backend/src/routes/search.ts(Einbindung/api/search, Unterpfad/config)
Einstellungen und Präferenzen
GET /api/preferences—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/)GET /api/preferences/default-theme—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/default-theme)POST /api/preferences/embedding-settings/reset—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/embedding-settings/reset)POST /api/preferences/generation-options/reset—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/generation-options/reset)PUT /api/preferences—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/)PUT /api/preferences/default-model—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/default-model)PUT /api/preferences/default-theme—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/default-theme)PUT /api/preferences/embedding-settings—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/embedding-settings)PUT /api/preferences/generation-options—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/generation-options)PUT /api/preferences/model-generation-options—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/model-generation-options)PUT /api/preferences/system-message—backend/src/routes/preferences.ts(Einbindung/api/preferences, Unterpfad/system-message)
Sprachein- und -ausgabe
GET /api/stt/models—backend/src/routes/stt.ts(Einbindung/api/stt, Unterpfad/models)POST /api/stt/transcribe—backend/src/routes/stt.ts(Einbindung/api/stt, Unterpfad/transcribe)DELETE /api/tts/voice-profiles/:profileId—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/voice-profiles/:profileId)GET /api/tts/models—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/models)GET /api/tts/plugins—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/plugins)GET /api/tts/voice-profiles—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/voice-profiles)GET /api/tts/voices/:pluginId—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/voices/:pluginId)POST /api/tts/generate—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/generate)POST /api/tts/generate-base64—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/generate-base64)POST /api/tts/voice-clone—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/voice-clone)POST /api/tts/voice-profiles/:profileId/revoke—backend/src/routes/tts.ts(Einbindung/api/tts, Unterpfad/voice-profiles/:profileId/revoke)GET /api/voice-access—backend/src/routes/voiceAccess.ts(Einbindung/api/voice-access, Unterpfad/)PUT /api/voice-access/:feature—backend/src/routes/voiceAccess.ts(Einbindung/api/voice-access, Unterpfad/:feature)
Hugging Face Hub
GET /api/huggingface-hub/models—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/models)GET /api/huggingface-hub/models/:author/:modelName—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/models/:author/:modelName)GET /api/huggingface-hub/models/:author/:modelName/gguf—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/models/:author/:modelName/gguf)GET /api/huggingface-hub/models/:author/:modelName/has-gguf—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/models/:author/:modelName/has-gguf)GET /api/huggingface-hub/tasks—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/tasks)GET /api/huggingface-hub/trending—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/trending)POST /api/huggingface-hub/cache/clear—backend/src/routes/huggingfaceHub.ts(Einbindung/api/huggingface-hub, Unterpfad/cache/clear)
Libre Claw
DELETE /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId)GET /api/libre-claw/access—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/access)GET /api/libre-claw/automations—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations)GET /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId)GET /api/libre-claw/config/fallback—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/config/fallback)GET /api/libre-claw/config/model—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/config/model)GET /api/libre-claw/dashboard—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/dashboard)GET /api/libre-claw/health—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/health)GET /api/libre-claw/runs—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/runs)GET /api/libre-claw/runs/:runId—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/runs/:runId)GET /api/libre-claw/runs/:runId/events—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/runs/:runId/events)GET /api/libre-claw/status—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/status)GET /api/libre-claw/usage—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/usage)PATCH /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId)PATCH /api/libre-claw/config/fallback—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/config/fallback)PATCH /api/libre-claw/config/model—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/config/model)PATCH /api/libre-claw/config/theme—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/config/theme)POST /api/libre-claw/automations—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations)POST /api/libre-claw/automations/:automationId/pause—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId/pause)POST /api/libre-claw/automations/:automationId/resume—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId/resume)POST /api/libre-claw/automations/:automationId/run—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId/run)POST /api/libre-claw/runs—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/runs)POST /api/libre-claw/runs/:runId/cancel—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/runs/:runId/cancel)POST /api/libre-claw/runs/:runId/permissions/:toolCallId—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/runs/:runId/permissions/:toolCallId)PUT /api/libre-claw/access—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/access)PUT /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(Einbindung/api/libre-claw, Unterpfad/automations/:automationId)
Dauerhafte Jobs und Ereignisse
GET /api/jobs—backend/src/routes/jobs.ts(Einbindung/api/jobs, Unterpfad/)GET /api/jobs/:jobId—backend/src/routes/jobs.ts(Einbindung/api/jobs, Unterpfad/:jobId)GET /api/jobs/:jobId/events—backend/src/routes/jobs.ts(Einbindung/api/jobs, Unterpfad/:jobId/events)POST /api/jobs/:jobId/cancel—backend/src/routes/jobs.ts(Einbindung/api/jobs, Unterpfad/:jobId/cancel)
Solo- und Team-Profile
Kein eingebundener Express-Endpunkt; Grenze sind UI oder Nachweise oben.
Wiederherstellung und Sicherung
GET /api/recovery/drills—backend/src/routes/recovery.ts(Einbindung/api/recovery, Unterpfad/drills)POST /api/recovery/drills/run—backend/src/routes/recovery.ts(Einbindung/api/recovery, Unterpfad/drills/run)
Exaktes WebSocket-Routeninventar
WEBSOCKET /ws— Chat,backend/src/websocketServer.ts; Authentifizierungsnachweis:backend/src/websocketServer.ts,scripts/test-websocket-tickets.mjsWEBSOCKET /ws/work-terminal— Work,backend/src/websocketServer.ts; Authentifizierungsnachweis:backend/src/workTerminalServer.ts,scripts/test-websocket-tickets.mjsWEBSOCKET /ws/work-screen— Work,backend/src/websocketServer.ts; Authentifizierungsnachweis:backend/src/workScreenServer.tsWEBSOCKET /ws/work-audio— Work,backend/src/websocketServer.ts; Authentifizierungsnachweis:backend/src/workScreenServer.ts
Durchsetzungsgrenze
Die Paketprüfung analysiert TypeScript/JavaScript, löst jeden Router zur literalen Einbindung auf und gleicht Methoden, Pfade und WebSockets einzeln ab. Sie scheitert bei nicht eingebundenen Dateien, nicht unterstütztem router.route(), dynamischen Pfaden, fehlenden oder doppelten Eigentümern, fehlenden WebSocket-Nachweisen, geänderten UI-Routen, fehlender Anwendbarkeit oder veralteten Nachweisen und Dokumenten.
Fokussierte Nachweise gelten für genau einen benannten test(...) und mindestens zwei Verhaltensmuster. Backend-Tests müssen exakte Dateien für test:package sein, Playwright normal entdeckt werden. Beide Runner laufen im normalen Pull-Request- und dev/main-Workflow.