Algemene functionaliteitscontracten
Deze uitvoerbare inventaris omvat elke expliciete paginaroute in frontend/src/App.tsx, elke letterlijke methode-/paddeclaratie in elke gekoppelde Express-router backend/src/routes/*.ts en elk letterlijk WebSocket-upgradepad in backend/src/websocketServer.ts. Elk eindpunt heeft precies één eigenaar van de functionaliteit en elk WebSocket-eindpunt heeft bewijs van authenticatie. Elke functionaliteit declareert ook of schema's, manifesten en standaardwaarden van toepassing zijn, met bewijs uit de broncode of een specifieke reden waarom iets niet van toepassing is, plus documentatie en een benoemde gedragstest die in de normale pakket- of browser-CI is geregistreerd.
Uitvoerbare providerdetails blijven onder het beheer van scripts/capability-contracts.json en scripts/test-capability-contracts.mjs; deze algemene inventaris verwijst naar dat contract in plaats van de regels voor manifesten en standaardwaarden te dupliceren.
| Functionaliteit | UI-routes | HTTP-eindpunten | WebSocket-eindpunten | Schema's | Manifesten | Standaardwaarden | Documentatie | Benoemde gedragstests |
|---|---|---|---|---|---|---|---|---|
| Startpagina | / | 0 | 0 | Niet van toepassing — De startpagina is een navigatie- en samenstellingsinterface zonder onafhankelijke aanvraag- of antwoordpayload. | Niet van toepassing — De startpagina is in de applicatie ingebouwd en wordt niet via een manifest geïnstalleerd of ontdekt. | 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) |
| Modelbeheer | — | 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) |
| Persona's | /personas | 12 | 0 | backend/src/types/index.ts | Niet van toepassing — Persona's zijn accountresources die Libre permanent opslaat en gebruiken geen installatie- of discoverymanifest. | 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) |
| Mediagalerij | /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) |
| Notities | /notes | 12 | 0 | backend/src/types/index.tsbackend/src/persistence/resourceTypes.ts | Niet van toepassing — Notities zijn ingebouwde accountresources en hebben geen installatie- of discoverymanifest. | Niet van toepassing — Notities hebben naast expliciete door de gebruiker opgegeven velden geen impliciete standaardinhoud of -weergave. | 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) |
| Agenda | /calendar | 10 | 0 | backend/src/types/index.ts | Niet van toepassing — Agendagebeurtenissen zijn ingebouwde accountresources en hebben geen installatie- of discoverymanifest. | Niet van toepassing — Agendagebeurtenissen hebben naast expliciete door de gebruiker opgegeven velden geen impliciete standaardinhoud; herhalingsberekeningen gebruiken de servertijdzone die in docs/47-CALENDAR.md is gedocumenteerd. | 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) |
| Automatiseringen | /automations | 15 | 0 | backend/src/types/index.ts | Niet van toepassing — Automatiseringen zijn ingebouwde accountresources en hebben geen installatie- of discoverymanifest. | docs/48-AUTOMATIONS.md | docs/48-AUTOMATIONS.md | the scheduler fires due automations once and settles stalled runsscripts/test-automations.mjs (test:package) |
| Kanalen | /channels | 24 | 0 | backend/src/types/index.ts | Niet van toepassing — Kanalen zijn ingebouwde accountresources en hebben geen installatie- of discoverymanifest. | 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) |
| Meldingen | — | 13 | 0 | backend/src/types/index.ts | Niet van toepassing — Meldingen zijn ingebouwde accountstatus en hebben geen installatie- of discoverymanifest. | 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) |
| Promptbibliotheek | — | 9 | 0 | backend/src/services/promptService.ts | Niet van toepassing — Prompts zijn ingebouwde accountresources; hun draagbare vorm is het geversioneerde exportdocument libre-prompt.v1, geen installatie- of discoverymanifest. | Niet van toepassing — Een prompt heeft geen impliciete standaardinhoud: elk veld wordt door de gebruiker opgegeven en bij renderen worden alleen gedeclareerde variabelen vervangen, afgedwongen door 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 | Niet van toepassing — Een skill heeft geen impliciete standaardinhoud: het manifest en de instructies zijn exact wat de eigenaar schreef en uitgeschakelde skills verdwijnen volledig uit het 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) |
| Chattools | — | 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-modellen | /agents | 1 | 0 | backend/src/services/agentCliService.ts | Niet van toepassing — Agent CLI-adapters zijn gecompileerde ingebouwde definities en worden niet uit providermanifesten geladen. | 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) |
| Artefacten | /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) |
| Providergebruik | /usage | 10 | 0 | backend/src/services/pluginUsageService.ts | Niet van toepassing — Gebruiksanalyse verwerkt providergebeurtenissen, maar definieert geen eigen installatie- of discoverymanifest. | 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) |
| Evaluatieplatform | /evaluations | 16 | 0 | backend/src/persistence/resourceTypes.ts | Niet van toepassing — Evaluaties zijn accountresources die Libre permanent opslaat en gebruiken geen installatie- of discoverymanifest. | 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) |
| Systeemdiagnostiek | /system | 5 | 0 | backend/src/services/systemDiagnosticsService.ts | Niet van toepassing — Systeemdiagnostiek is een ingebouwd geauthenticeerd rapport en heeft geen installatie- of discoverymanifest. | 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) |
| Gebruikersbeheer | /users | 8 | 0 | backend/src/types/index.ts | Niet van toepassing — Gebruikersbeheer is ingebouwde identiteitsfunctionaliteit en heeft geen installatie- of discoverymanifest. | Niet van toepassing — Gebruikersrol en accountstatus worden bepaald door bootstrap- of goedkeuringsbeleid, niet door een herbruikbare standaardwaarde van de functionaliteit. | docs/12-AUTHENTICATION.md | public registrations require administrator approval before authenticationscripts/test-user-approval.mjs (test:package) |
| Authenticatie | /login | 40 | 0 | backend/src/types/index.ts | Niet van toepassing — Authenticatie is een ingebouwde beveiligingsgrens en wordt niet via een manifest geïnstalleerd of ontdekt. | 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) |
| Toegangsbeheer | — | 14 | 0 | backend/src/persistence/securityTypes.ts | Niet van toepassing — Toegangsbeheer is een ingebouwde beveiligingsgrens en wordt niet via een manifest geïnstalleerd of ontdekt. | 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) |
| Openbare API | — | 2 | 0 | backend/src/routes/openaiCompat.ts | Niet van toepassing — De OpenAI-compatibele interface weerspiegelt een externe draadindeling en heeft geen installeerbaar manifest. | Niet van toepassing — Standaardwaarden voor sampling komen uit de aanvraag van de aanroeper en de eigen configuratie van het model, nooit uit deze interface. | docs/53-PUBLIC_API.md | a streaming completion emits OpenAI chunk frames and [DONE]scripts/test-openai-compat.mjs (test:package) |
| Gegevensportabiliteit | — | 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) |
| Documentkennis en ophalen | — | 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) |
| Personageheugen | — | 6 | 0 | backend/src/types/index.ts | Niet van toepassing — Personageheugen is een interne personaresource en heeft geen installatie- of discoverymanifest. | 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) |
| Webzoeken | — | 6 | 0 | backend/src/services/webSearchService.ts | Niet van toepassing — Webzoeken gebruikt verbindingsinstellingen van de beheerder in plaats van een installeerbaar providermanifest. | 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) |
| Instellingen en voorkeuren | — | 11 | 0 | backend/src/types/index.ts | Niet van toepassing — Instellingen voegen ingebouwde en providerconfiguratie samen, maar definiëren geen afzonderlijk installeerbaar 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) |
| Spraakinvoer en -uitvoer | — | 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 | Niet van toepassing — Hub-modelmetadata zijn externe API-gegevens; Libre definieert geen lokaal installeerbaar manifest voor de browserfunctionaliteit. | 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 | Niet van toepassing — Libre Claw is een expliciet geconfigureerde dienstintegratie en gebruikt geen Libre-providermanifest. | 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) |
| Duurzame taken en gebeurtenissen | — | 4 | 0 | backend/src/platform/jobs/durableJobTypes.ts | Niet van toepassing — Duurzame taken gebruiken geregistreerde handlertypen en permanente payloadcontracten, geen installeerbare manifesten. | 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- en teamimplementatieprofielen | — | 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) |
| Herstel en back-up | — | 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) |
Exacte inventaris van backendroutes
Startpagina
Geen gekoppeld Express-eindpunt. De uitvoerbare grens bestaat uit de hierboven geregistreerde interface en/of het bronbewijs.
Chat
DELETE /api/chat/folders/:folderId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/folders/:folderId)DELETE /api/chat/sessions—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions)DELETE /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId)DELETE /api/chat/sessions/:sessionId/queue/:entryId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/queue/:entryId)GET /api/chat/compaction-config—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/compaction-config)GET /api/chat/context-policy—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/context-policy)GET /api/chat/folders—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/folders)GET /api/chat/sessions—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions)GET /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId)GET /api/chat/sessions/:sessionId/events—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/events)GET /api/chat/sessions/:sessionId/messages/:messageId/branches—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/messages/:messageId/branches)POST /api/chat/folders—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/folders)POST /api/chat/sessions—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions)POST /api/chat/sessions/:sessionId/compaction/:messageId/restore—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/compaction/:messageId/restore)POST /api/chat/sessions/:sessionId/followups—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/followups)POST /api/chat/sessions/:sessionId/fork—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/fork)POST /api/chat/sessions/:sessionId/generate—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/generate)POST /api/chat/sessions/:sessionId/generate-title—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/generate-title)POST /api/chat/sessions/:sessionId/generate/stream—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/generate/stream)POST /api/chat/sessions/:sessionId/generations—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/generations)POST /api/chat/sessions/:sessionId/generations/:assistantMessageId/cancel—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/generations/:assistantMessageId/cancel)POST /api/chat/sessions/:sessionId/messages—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/messages)POST /api/chat/sessions/:sessionId/messages/:messageId/branch—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/messages/:messageId/branch)POST /api/chat/sessions/:sessionId/messages/:messageId/branches—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/messages/:messageId/branches)POST /api/chat/sessions/:sessionId/messages/:messageId/truncate—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/messages/:messageId/truncate)POST /api/chat/sessions/:sessionId/queue—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/queue)PUT /api/chat/compaction-config—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/compaction-config)PUT /api/chat/folders/:folderId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/folders/:folderId)PUT /api/chat/sessions/:sessionId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId)PUT /api/chat/sessions/:sessionId/messages/:messageId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/messages/:messageId)PUT /api/chat/sessions/:sessionId/queue—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/queue)PUT /api/chat/sessions/:sessionId/queue/:entryId—backend/src/routes/chat.ts(koppelpunt/api/chat, subpad/sessions/:sessionId/queue/:entryId)
Modelbeheer
DELETE /api/ollama/models—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models)GET /api/ollama/health—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/health)GET /api/ollama/library—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/library)GET /api/ollama/models—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models)GET /api/ollama/models/:modelName/defaults—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/:modelName/defaults)GET /api/ollama/models/access—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/access)GET /api/ollama/models/pull-all/stream—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/pull-all/stream)GET /api/ollama/models/show—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/show)GET /api/ollama/models/visibility—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/visibility)GET /api/ollama/pull/stream—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/pull/stream)GET /api/ollama/running—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/running)GET /api/ollama/settings—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/settings)GET /api/ollama/version—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/version)HEAD /api/ollama/blobs/:digest—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/blobs/:digest)POST /api/ollama/blobs/:digest—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/blobs/:digest)POST /api/ollama/chat—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/chat)POST /api/ollama/chat/stream—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/chat/stream)POST /api/ollama/embed—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/embed)POST /api/ollama/embeddings—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/embeddings)POST /api/ollama/models—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models)POST /api/ollama/models/copy—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/copy)POST /api/ollama/models/pull—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/pull)POST /api/ollama/models/pull-all—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/pull-all)POST /api/ollama/models/push—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/push)POST /api/ollama/models/unload—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/unload)POST /api/ollama/models/unload-all—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/unload-all)PUT /api/ollama/models/access—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/access)PUT /api/ollama/models/visibility—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/models/visibility)PUT /api/ollama/settings—backend/src/routes/ollama.ts(koppelpunt/api/ollama, subpad/settings)DELETE /api/plugins/:id—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id)DELETE /api/plugins/:id/credentials—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/credentials)DELETE /api/plugins/:id/variables—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/variables)GET /api/plugins—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/)GET /api/plugins/:id—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id)GET /api/plugins/:id/credentials/check—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/credentials/check)GET /api/plugins/:id/export—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/export)GET /api/plugins/:id/variables—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/variables)GET /api/plugins/active—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/active)GET /api/plugins/active/current—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/active/current)GET /api/plugins/credentials/all—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/credentials/all)GET /api/plugins/status/all—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/status/all)POST /api/plugins/:id/credentials—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/credentials)POST /api/plugins/activate/:id—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/activate/:id)POST /api/plugins/deactivate—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/deactivate)POST /api/plugins/deactivate/:id—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/deactivate/:id)POST /api/plugins/discover/:id—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/discover/:id)POST /api/plugins/install—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/install)POST /api/plugins/probe-endpoint—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/probe-endpoint)POST /api/plugins/upload—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/upload)PUT /api/plugins/:id—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id)PUT /api/plugins/:id/variables—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/:id/variables)
Persona's
DELETE /api/personas/:id—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id)GET /api/personas—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/)GET /api/personas/:id—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id)GET /api/personas/:id/backup—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/backup)GET /api/personas/:id/download—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/download)GET /api/personas/:id/export—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/export)GET /api/personas/:id/export/dna—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/export/dna)GET /api/personas/defaults/parameters—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/defaults/parameters)GET /api/personas/stats/count—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/stats/count)POST /api/personas—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/)POST /api/personas/import—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/import)PUT /api/personas/:id—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id)
Mediagalerij
DELETE /api/image-gen/gallery/:imageId—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/gallery/:imageId)GET /api/image-gen/config/:pluginId—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/config/:pluginId)GET /api/image-gen/gallery—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/gallery)GET /api/image-gen/gallery/:imageId—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/gallery/:imageId)GET /api/image-gen/models—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/models)GET /api/image-gen/plugins—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/plugins)POST /api/image-gen/generate—backend/src/routes/imageGen.ts(koppelpunt/api/image-gen, subpad/generate)DELETE /api/media/gallery/:mediaId—backend/src/routes/media.ts(koppelpunt/api/media, subpad/gallery/:mediaId)DELETE /api/media/video/jobs/:jobId—backend/src/routes/media.ts(koppelpunt/api/media, subpad/video/jobs/:jobId)GET /api/media/gallery—backend/src/routes/media.ts(koppelpunt/api/media, subpad/gallery)GET /api/media/gallery/:mediaId/content—backend/src/routes/media.ts(koppelpunt/api/media, subpad/gallery/:mediaId/content)GET /api/media/models—backend/src/routes/media.ts(koppelpunt/api/media, subpad/models)GET /api/media/video/jobs—backend/src/routes/media.ts(koppelpunt/api/media, subpad/video/jobs)GET /api/media/video/jobs/:jobId—backend/src/routes/media.ts(koppelpunt/api/media, subpad/video/jobs/:jobId)POST /api/media/audio/generate—backend/src/routes/media.ts(koppelpunt/api/media, subpad/audio/generate)POST /api/media/audio/voice-clone—backend/src/routes/media.ts(koppelpunt/api/media, subpad/audio/voice-clone)POST /api/media/image/edit—backend/src/routes/media.ts(koppelpunt/api/media, subpad/image/edit)POST /api/media/sound/generate—backend/src/routes/media.ts(koppelpunt/api/media, subpad/sound/generate)POST /api/media/video/generate—backend/src/routes/media.ts(koppelpunt/api/media, subpad/video/generate)POST /api/media/video/jobs/:jobId/resume—backend/src/routes/media.ts(koppelpunt/api/media, subpad/video/jobs/:jobId/resume)
Notities
DELETE /api/notes/:noteId—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId)DELETE /api/notes/:noteId/attachments/:attachmentId—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/attachments/:attachmentId)GET /api/notes—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/)GET /api/notes/:noteId—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId)GET /api/notes/:noteId/attachments—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/attachments)GET /api/notes/:noteId/attachments/:attachmentId—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/attachments/:attachmentId)GET /api/notes/:noteId/revisions—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/revisions)POST /api/notes—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/)POST /api/notes/:noteId/assist—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/assist)POST /api/notes/:noteId/attachments—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/attachments)POST /api/notes/:noteId/revisions/:revisionId/restore—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId/revisions/:revisionId/restore)PUT /api/notes/:noteId—backend/src/routes/notes.ts(koppelpunt/api/notes, subpad/:noteId)
Agenda
DELETE /api/calendar/calendars/:calendarId—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/calendars/:calendarId)DELETE /api/calendar/events/:eventId—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/events/:eventId)GET /api/calendar/calendars—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/calendars)GET /api/calendar/events—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/events)GET /api/calendar/export—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/export)POST /api/calendar/calendars—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/calendars)POST /api/calendar/events—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/events)POST /api/calendar/import—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/import)PUT /api/calendar/calendars/:calendarId—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/calendars/:calendarId)PUT /api/calendar/events/:eventId—backend/src/routes/calendar.ts(koppelpunt/api/calendar, subpad/events/:eventId)
Automatiseringen
DELETE /api/automations/:automationId—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId)DELETE /api/automations/:automationId/webhook-secret—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId/webhook-secret)GET /api/automations—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/)GET /api/automations/:automationId—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId)GET /api/automations/occurrences—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/occurrences)GET /api/automations/runs—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/runs)GET /api/automations/runs/summary—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/runs/summary)POST /api/automations—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/)POST /api/automations/:automationId/pause—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId/pause)POST /api/automations/:automationId/resume—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId/resume)POST /api/automations/:automationId/run—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId/run)POST /api/automations/:automationId/webhook—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId/webhook)POST /api/automations/:automationId/webhook-secret—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId/webhook-secret)POST /api/automations/runs/seen—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/runs/seen)PUT /api/automations/:automationId—backend/src/routes/automations.ts(koppelpunt/api/automations, subpad/:automationId)
Kanalen
DELETE /api/channels/:channelId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId)DELETE /api/channels/:channelId/members/:userId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/members/:userId)DELETE /api/channels/messages/:messageId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/messages/:messageId)DELETE /api/channels/messages/:messageId/reactions/:emoji—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/messages/:messageId/reactions/:emoji)GET /api/channels—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/)GET /api/channels/:channelId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId)GET /api/channels/:channelId/events—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/events)GET /api/channels/:channelId/members—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/members)GET /api/channels/:channelId/messages—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/messages)GET /api/channels/:channelId/pins—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/pins)GET /api/channels/attachments/:attachmentId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/attachments/:attachmentId)GET /api/channels/messages/:messageId/thread—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/messages/:messageId/thread)GET /api/channels/public—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/public)PATCH /api/channels/:channelId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId)PATCH /api/channels/messages/:messageId—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/messages/:messageId)POST /api/channels—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/)POST /api/channels/:channelId/attachments—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/attachments)POST /api/channels/:channelId/join—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/join)POST /api/channels/:channelId/members—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/members)POST /api/channels/:channelId/messages—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/messages)POST /api/channels/:channelId/read—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/:channelId/read)POST /api/channels/dm—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/dm)POST /api/channels/messages/:messageId/pin—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/messages/:messageId/pin)POST /api/channels/messages/:messageId/reactions—backend/src/routes/channels.ts(koppelpunt/api/channels, subpad/messages/:messageId/reactions)
Meldingen
DELETE /api/notifications/:notificationId—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/:notificationId)DELETE /api/notifications/webhooks/:targetId—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/webhooks/:targetId)GET /api/notifications—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/)GET /api/notifications/events—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/events)GET /api/notifications/unread-count—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/unread-count)GET /api/notifications/webhooks—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/webhooks)POST /api/notifications/:notificationId/read—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/:notificationId/read)POST /api/notifications/read-all—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/read-all)POST /api/notifications/webhooks—backend/src/routes/notifications.ts(koppelpunt/api/notifications, subpad/webhooks)DELETE /api/push/subscriptions—backend/src/routes/push.ts(koppelpunt/api/push, subpad/subscriptions)GET /api/push/public-key—backend/src/routes/push.ts(koppelpunt/api/push, subpad/public-key)GET /api/push/subscriptions—backend/src/routes/push.ts(koppelpunt/api/push, subpad/subscriptions)POST /api/push/subscriptions—backend/src/routes/push.ts(koppelpunt/api/push, subpad/subscriptions)
Promptbibliotheek
DELETE /api/prompts/:promptId—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/:promptId)GET /api/prompts—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/)GET /api/prompts/:promptId—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/:promptId)GET /api/prompts/:promptId/export—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/:promptId/export)GET /api/prompts/:promptId/versions—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/:promptId/versions)POST /api/prompts—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/)POST /api/prompts/:promptId/rollback—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/:promptId/rollback)POST /api/prompts/import—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/import)PUT /api/prompts/:promptId—backend/src/routes/prompts.ts(koppelpunt/api/prompts, subpad/:promptId)
Skills
DELETE /api/skills/:skillId—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId)DELETE /api/skills/:skillId/files—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/files)GET /api/skills—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/)GET /api/skills/:skillId—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId)GET /api/skills/:skillId/export—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/export)GET /api/skills/:skillId/files—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/files)GET /api/skills/:skillId/files/content—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/files/content)GET /api/skills/:skillId/versions—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/versions)POST /api/skills—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/)POST /api/skills/:skillId/rollback—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/rollback)POST /api/skills/import—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/import)POST /api/skills/import-url—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/import-url)PUT /api/skills/:skillId—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId)PUT /api/skills/:skillId/files—backend/src/routes/skills.ts(koppelpunt/api/skills, subpad/:skillId/files)
Chattools
DELETE /api/tools/approvals/:id—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/approvals/:id)DELETE /api/tools/servers/:id—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id)DELETE /api/tools/servers/:id/credential—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id/credential)GET /api/tools/access—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/access)GET /api/tools/approvals—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/approvals)GET /api/tools/catalog—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/catalog)GET /api/tools/servers—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers)GET /api/tools/servers/:id—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id)POST /api/tools/approvals/:id—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/approvals/:id)POST /api/tools/servers—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers)POST /api/tools/servers/:id/refresh—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id/refresh)PUT /api/tools/access—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/access)PUT /api/tools/servers/:id—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id)PUT /api/tools/servers/:id/credential—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id/credential)PUT /api/tools/servers/:id/tools/:toolName—backend/src/routes/tools.ts(koppelpunt/api/tools, subpad/servers/:id/tools/:toolName)
Work
DELETE /api/work/policies/:id—backend/src/routes/work.ts(koppelpunt/api/work, subpad/policies/:id)DELETE /api/work/tasks/:id—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id)DELETE /api/work/tasks/:id/approval-rules/:ruleId—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/approval-rules/:ruleId)DELETE /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/computer/control)GET /api/work/access—backend/src/routes/work.ts(koppelpunt/api/work, subpad/access)GET /api/work/admin/overview—backend/src/routes/work.ts(koppelpunt/api/work, subpad/admin/overview)GET /api/work/capabilities—backend/src/routes/work.ts(koppelpunt/api/work, subpad/capabilities)GET /api/work/computer/setup—backend/src/routes/work.ts(koppelpunt/api/work, subpad/computer/setup)GET /api/work/policies—backend/src/routes/work.ts(koppelpunt/api/work, subpad/policies)GET /api/work/tasks—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks)GET /api/work/tasks/:id—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id)GET /api/work/tasks/:id/approvals—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/approvals)GET /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/computer/control)GET /api/work/tasks/:id/file—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/file)GET /api/work/tasks/:id/files—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/files)GET /api/work/tasks/:id/git—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git)GET /api/work/tasks/:id/git/diff—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git/diff)GET /api/work/tasks/:id/messages—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/messages)GET /api/work/tasks/:taskId/runs/:runId/events—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:taskId/runs/:runId/events)PATCH /api/work/tasks/:id—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id)POST /api/work/computer/setup—backend/src/routes/work.ts(koppelpunt/api/work, subpad/computer/setup)POST /api/work/computer/skills/:slug/trace—backend/src/routes/work.ts(koppelpunt/api/work, subpad/computer/skills/:slug/trace)POST /api/work/policies—backend/src/routes/work.ts(koppelpunt/api/work, subpad/policies)POST /api/work/tasks—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks)POST /api/work/tasks/:id/approvals/:approvalId—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/approvals/:approvalId)POST /api/work/tasks/:id/cancel—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/cancel)POST /api/work/tasks/:id/computer/anchor—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/computer/anchor)POST /api/work/tasks/:id/computer/control—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/computer/control)POST /api/work/tasks/:id/computer/start—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/computer/start)POST /api/work/tasks/:id/computer/teach—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/computer/teach)POST /api/work/tasks/:id/git/branches—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git/branches)POST /api/work/tasks/:id/git/commit—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git/commit)POST /api/work/tasks/:id/git/init—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git/init)POST /api/work/tasks/:id/git/stage—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git/stage)POST /api/work/tasks/:id/git/switch—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/git/switch)POST /api/work/tasks/:id/messages—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/messages)POST /api/work/tasks/:id/preview/start—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/preview/start)POST /api/work/tasks/:id/preview/stop—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/preview/stop)POST /api/work/tasks/:id/runs—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/runs)POST /api/work/tasks/:id/seen—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/seen)PUT /api/work/access—backend/src/routes/work.ts(koppelpunt/api/work, subpad/access)PUT /api/work/policies/:id—backend/src/routes/work.ts(koppelpunt/api/work, subpad/policies/:id)PUT /api/work/tasks/:id/approvals—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/approvals)PUT /api/work/tasks/:id/file—backend/src/routes/work.ts(koppelpunt/api/work, subpad/tasks/:id/file)
Agent CLI-modellen
GET /api/agent-clis/models—backend/src/routes/agentCli.ts(koppelpunt/api/agent-clis, subpad/models)
Artefacten
GET /api/artifacts/sandbox—backend/src/routes/artifacts.ts(koppelpunt/api/artifacts, subpad/sandbox)
Providergebruik
DELETE /api/costs/budgets/:budgetId—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/budgets/:budgetId)DELETE /api/costs/tariffs/:tariffId—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/tariffs/:tariffId)GET /api/costs/analytics—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/analytics)GET /api/costs/budgets—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/budgets)GET /api/costs/export—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/export)GET /api/costs/tariffs—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/tariffs)POST /api/costs/budgets—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/budgets)POST /api/costs/tariffs—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/tariffs)PUT /api/costs/budgets/:budgetId—backend/src/routes/costs.ts(koppelpunt/api/costs, subpad/budgets/:budgetId)GET /api/plugins/usage—backend/src/routes/plugins.ts(koppelpunt/api/plugins, subpad/usage)
Evaluatieplatform
DELETE /api/evaluations/feedback/:messageId—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/feedback/:messageId)DELETE /api/evaluations/sets/:setId—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/sets/:setId)GET /api/evaluations/arena/leaderboard—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/arena/leaderboard)GET /api/evaluations/feedback—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/feedback)GET /api/evaluations/feedback/all—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/feedback/all)GET /api/evaluations/runs—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/runs)GET /api/evaluations/runs/:runId—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/runs/:runId)GET /api/evaluations/runs/:runId/export—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/runs/:runId/export)GET /api/evaluations/sets—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/sets)POST /api/evaluations/arena/matches—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/arena/matches)POST /api/evaluations/arena/votes—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/arena/votes)POST /api/evaluations/feedback—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/feedback)POST /api/evaluations/runs—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/runs)POST /api/evaluations/runs/:runId/cancel—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/runs/:runId/cancel)POST /api/evaluations/sets—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/sets)PUT /api/evaluations/sets/:setId—backend/src/routes/evaluations.ts(koppelpunt/api/evaluations, subpad/sets/:setId)
Systeemdiagnostiek
GET /health—backend/src/routes/health.ts(koppelpunt/health, subpad/)GET /health/deep—backend/src/routes/health.ts(koppelpunt/health, subpad/deep)GET /health/live—backend/src/routes/health.ts(koppelpunt/health, subpad/live)GET /health/ready—backend/src/routes/health.ts(koppelpunt/health, subpad/ready)GET /api/system—backend/src/routes/systemDiagnostics.ts(koppelpunt/api/system, subpad/)
Gebruikersbeheer
DELETE /api/users/:id—backend/src/routes/users.ts(koppelpunt/api/users, subpad/:id)GET /api/users—backend/src/routes/users.ts(koppelpunt/api/users, subpad/)GET /api/users/pending-approvals—backend/src/routes/users.ts(koppelpunt/api/users, subpad/pending-approvals)PATCH /api/users/:id—backend/src/routes/users.ts(koppelpunt/api/users, subpad/:id)PATCH /api/users/:id/approve—backend/src/routes/users.ts(koppelpunt/api/users, subpad/:id/approve)PATCH /api/users/me/avatar—backend/src/routes/users.ts(koppelpunt/api/users, subpad/me/avatar)POST /api/users—backend/src/routes/users.ts(koppelpunt/api/users, subpad/)POST /api/users/:id/mfa/reset—backend/src/routes/users.ts(koppelpunt/api/users, subpad/:id/mfa/reset)
Authenticatie
DELETE /api/auth/passkeys/:id—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/passkeys/:id)DELETE /api/auth/sessions/:id—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/sessions/:id)DELETE /api/auth/tokens/:id—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/tokens/:id)GET /api/auth/encryption-key—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/encryption-key)GET /api/auth/me—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/me)GET /api/auth/mfa—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa)GET /api/auth/mfa/policy—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/policy)GET /api/auth/oauth/github—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/github)GET /api/auth/oauth/github/callback—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/github/callback)GET /api/auth/oauth/github/status—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/github/status)GET /api/auth/oauth/huggingface—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/huggingface)GET /api/auth/oauth/huggingface/callback—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/huggingface/callback)GET /api/auth/oauth/huggingface/status—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/huggingface/status)GET /api/auth/oauth/oidc—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/oidc)GET /api/auth/oauth/oidc/callback—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/oidc/callback)GET /api/auth/oauth/oidc/status—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/oidc/status)GET /api/auth/passkeys—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/passkeys)GET /api/auth/sessions—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/sessions)GET /api/auth/system-info—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/system-info)GET /api/auth/tokens—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/tokens)GET /api/auth/verify—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/verify)POST /api/auth/login—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/login)POST /api/auth/logout—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/logout)POST /api/auth/mfa/activate—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/activate)POST /api/auth/mfa/activate-challenge—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/activate-challenge)POST /api/auth/mfa/disable—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/disable)POST /api/auth/mfa/enroll—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/enroll)POST /api/auth/mfa/enroll-challenge—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/enroll-challenge)POST /api/auth/mfa/recovery-codes—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/recovery-codes)POST /api/auth/mfa/verify—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/verify)POST /api/auth/oauth/exchange—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/oauth/exchange)POST /api/auth/passkeys/login—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/passkeys/login)POST /api/auth/passkeys/login-options—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/passkeys/login-options)POST /api/auth/passkeys/register—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/passkeys/register)POST /api/auth/passkeys/register-options—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/passkeys/register-options)POST /api/auth/sessions/revoke-others—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/sessions/revoke-others)POST /api/auth/signup—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/signup)POST /api/auth/tokens—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/tokens)POST /api/auth/websocket-ticket—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/websocket-ticket)PUT /api/auth/mfa/policy—backend/src/routes/auth.ts(koppelpunt/api/auth, subpad/mfa/policy)
Toegangsbeheer
DELETE /api/access/grants/:id—backend/src/routes/access.ts(koppelpunt/api/access, subpad/grants/:id)GET /api/access/grants—backend/src/routes/access.ts(koppelpunt/api/access, subpad/grants)GET /api/access/principals—backend/src/routes/access.ts(koppelpunt/api/access, subpad/principals)GET /api/access/principals/groups—backend/src/routes/access.ts(koppelpunt/api/access, subpad/principals/groups)GET /api/access/shared-with-me—backend/src/routes/access.ts(koppelpunt/api/access, subpad/shared-with-me)POST /api/access/grants—backend/src/routes/access.ts(koppelpunt/api/access, subpad/grants)GET /api/audit—backend/src/routes/audit.ts(koppelpunt/api/audit, subpad/)DELETE /api/groups/:id—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/:id)DELETE /api/groups/:id/members/:userId—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/:id/members/:userId)GET /api/groups—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/)GET /api/groups/effective/:userId—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/effective/:userId)PATCH /api/groups/:id—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/:id)POST /api/groups—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/)POST /api/groups/:id/members—backend/src/routes/groups.ts(koppelpunt/api/groups, subpad/:id/members)
Openbare API
GET /v1/models—backend/src/routes/openaiCompat.ts(koppelpunt/v1, subpad/models)POST /v1/chat/completions—backend/src/routes/openaiCompat.ts(koppelpunt/v1, subpad/chat/completions)
Gegevensportabiliteit
GET /api/preferences/export—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/export)POST /api/preferences/import—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/import)POST /api/preferences/import/preflight—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/import/preflight)
Documentkennis en ophalen
DELETE /api/documents/:documentId—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/:documentId)DELETE /api/documents/collections/:collectionId—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/collections/:collectionId)GET /api/documents—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/)GET /api/documents/:documentId—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/:documentId)GET /api/documents/:documentId/source—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/:documentId/source)GET /api/documents/collections—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/collections)GET /api/documents/embeddings/status—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/embeddings/status)GET /api/documents/session/:sessionId—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/session/:sessionId)POST /api/documents/collections—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/collections)POST /api/documents/embeddings/regenerate—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/embeddings/regenerate)POST /api/documents/fetch-url—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/fetch-url)POST /api/documents/search—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/search)POST /api/documents/upload—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/upload)PUT /api/documents/:documentId/collection—backend/src/routes/documents.ts(koppelpunt/api/documents, subpad/:documentId/collection)GET /api/embeddings/models—backend/src/routes/embeddings.ts(koppelpunt/api/embeddings, subpad/models)
Personageheugen
DELETE /api/personas/:id/memory—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/memory)GET /api/personas/:id/memory/core—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/memory/core)GET /api/personas/:id/memory/stats—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/memory/stats)GET /api/personas/:id/memory/status—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/memory/status)POST /api/personas/:id/memory/consolidate—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/memory/consolidate)POST /api/personas/:id/memory/decay—backend/src/routes/personas.ts(koppelpunt/api/personas, subpad/:id/memory/decay)
Webzoeken
GET /api/search/access—backend/src/routes/search.ts(koppelpunt/api/search, subpad/access)GET /api/search/app—backend/src/routes/search.ts(koppelpunt/api/search, subpad/app)GET /api/search/config—backend/src/routes/search.ts(koppelpunt/api/search, subpad/config)POST /api/search/test—backend/src/routes/search.ts(koppelpunt/api/search, subpad/test)PUT /api/search/access—backend/src/routes/search.ts(koppelpunt/api/search, subpad/access)PUT /api/search/config—backend/src/routes/search.ts(koppelpunt/api/search, subpad/config)
Instellingen en voorkeuren
GET /api/preferences—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/)GET /api/preferences/default-theme—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/default-theme)POST /api/preferences/embedding-settings/reset—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/embedding-settings/reset)POST /api/preferences/generation-options/reset—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/generation-options/reset)PUT /api/preferences—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/)PUT /api/preferences/default-model—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/default-model)PUT /api/preferences/default-theme—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/default-theme)PUT /api/preferences/embedding-settings—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/embedding-settings)PUT /api/preferences/generation-options—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/generation-options)PUT /api/preferences/model-generation-options—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/model-generation-options)PUT /api/preferences/system-message—backend/src/routes/preferences.ts(koppelpunt/api/preferences, subpad/system-message)
Spraakinvoer en -uitvoer
GET /api/stt/models—backend/src/routes/stt.ts(koppelpunt/api/stt, subpad/models)POST /api/stt/transcribe—backend/src/routes/stt.ts(koppelpunt/api/stt, subpad/transcribe)DELETE /api/tts/voice-profiles/:profileId—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/voice-profiles/:profileId)GET /api/tts/models—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/models)GET /api/tts/plugins—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/plugins)GET /api/tts/voice-profiles—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/voice-profiles)GET /api/tts/voices/:pluginId—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/voices/:pluginId)POST /api/tts/generate—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/generate)POST /api/tts/generate-base64—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/generate-base64)POST /api/tts/voice-clone—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/voice-clone)POST /api/tts/voice-profiles/:profileId/revoke—backend/src/routes/tts.ts(koppelpunt/api/tts, subpad/voice-profiles/:profileId/revoke)GET /api/voice-access—backend/src/routes/voiceAccess.ts(koppelpunt/api/voice-access, subpad/)PUT /api/voice-access/:feature—backend/src/routes/voiceAccess.ts(koppelpunt/api/voice-access, subpad/:feature)
Hugging Face Hub
GET /api/huggingface-hub/models—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/models)GET /api/huggingface-hub/models/:author/:modelName—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/models/:author/:modelName)GET /api/huggingface-hub/models/:author/:modelName/gguf—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/models/:author/:modelName/gguf)GET /api/huggingface-hub/models/:author/:modelName/has-gguf—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/models/:author/:modelName/has-gguf)GET /api/huggingface-hub/tasks—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/tasks)GET /api/huggingface-hub/trending—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/trending)POST /api/huggingface-hub/cache/clear—backend/src/routes/huggingfaceHub.ts(koppelpunt/api/huggingface-hub, subpad/cache/clear)
Libre Claw
DELETE /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId)GET /api/libre-claw/access—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/access)GET /api/libre-claw/automations—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations)GET /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId)GET /api/libre-claw/config/fallback—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/config/fallback)GET /api/libre-claw/config/model—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/config/model)GET /api/libre-claw/dashboard—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/dashboard)GET /api/libre-claw/health—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/health)GET /api/libre-claw/runs—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/runs)GET /api/libre-claw/runs/:runId—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/runs/:runId)GET /api/libre-claw/runs/:runId/events—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/runs/:runId/events)GET /api/libre-claw/status—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/status)GET /api/libre-claw/usage—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/usage)PATCH /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId)PATCH /api/libre-claw/config/fallback—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/config/fallback)PATCH /api/libre-claw/config/model—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/config/model)PATCH /api/libre-claw/config/theme—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/config/theme)POST /api/libre-claw/automations—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations)POST /api/libre-claw/automations/:automationId/pause—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId/pause)POST /api/libre-claw/automations/:automationId/resume—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId/resume)POST /api/libre-claw/automations/:automationId/run—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId/run)POST /api/libre-claw/runs—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/runs)POST /api/libre-claw/runs/:runId/cancel—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/runs/:runId/cancel)POST /api/libre-claw/runs/:runId/permissions/:toolCallId—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/runs/:runId/permissions/:toolCallId)PUT /api/libre-claw/access—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/access)PUT /api/libre-claw/automations/:automationId—backend/src/routes/libreClaw.ts(koppelpunt/api/libre-claw, subpad/automations/:automationId)
Duurzame taken en gebeurtenissen
GET /api/jobs—backend/src/routes/jobs.ts(koppelpunt/api/jobs, subpad/)GET /api/jobs/:jobId—backend/src/routes/jobs.ts(koppelpunt/api/jobs, subpad/:jobId)GET /api/jobs/:jobId/events—backend/src/routes/jobs.ts(koppelpunt/api/jobs, subpad/:jobId/events)POST /api/jobs/:jobId/cancel—backend/src/routes/jobs.ts(koppelpunt/api/jobs, subpad/:jobId/cancel)
Solo- en teamimplementatieprofielen
Geen gekoppeld Express-eindpunt. De uitvoerbare grens bestaat uit de hierboven geregistreerde interface en/of het bronbewijs.
Herstel en back-up
GET /api/recovery/drills—backend/src/routes/recovery.ts(koppelpunt/api/recovery, subpad/drills)POST /api/recovery/drills/run—backend/src/routes/recovery.ts(koppelpunt/api/recovery, subpad/drills/run)
Exacte inventaris van WebSocket-routes
WEBSOCKET /ws— Chat,backend/src/websocketServer.ts; authenticatiebewijs:backend/src/websocketServer.ts,scripts/test-websocket-tickets.mjsWEBSOCKET /ws/work-terminal— Work,backend/src/websocketServer.ts; authenticatiebewijs:backend/src/workTerminalServer.ts,scripts/test-websocket-tickets.mjsWEBSOCKET /ws/work-screen— Work,backend/src/websocketServer.ts; authenticatiebewijs:backend/src/workScreenServer.tsWEBSOCKET /ws/work-audio— Work,backend/src/websocketServer.ts; authenticatiebewijs:backend/src/workScreenServer.ts
Afdwingingsgrens
De pakketpoort ontleedt TypeScript-/JavaScript-broncode, herleidt elke geïmporteerde Express-router naar het letterlijke koppelpunt in de applicatie en brengt elke letterlijke methode-/paddeclaratie van routers en elk WebSocket-upgradepad één op één met deze inventaris in overeenstemming. De poort faalt bij een niet-gekoppeld routebestand, een niet-ondersteunde bouwer router.route(), een dynamisch routepad, een ontbrekende of dubbele eigenaar van een eindpunt, ontbrekend authenticatiebewijs voor WebSocket, een gewijzigde interfaceroute, ontbrekende toepasselijkheid van schema/manifest/standaardwaarde, verouderd bewijs of een verouderd gegenereerd document.
Bewijs uit gerichte tests is beperkt tot één exact benoemde declaratie test(...) en minstens twee gedragspatronen in de body van die test. Backendtests moeten exacte bestandsargumenten voor test:package zijn; Playwright-specificaties moeten met de normale detectie overeenkomen. De poort bewijst ook dat beide runners in de normale workflow Format & Lint voor pull requests en dev/main worden uitgevoerd.