Skip to main content

Global Capability Contracts

This executable inventory covers every explicit page route in frontend/src/App.tsx, every literal method/path declaration in every mounted backend/src/routes/*.ts Express router, and every literal WebSocket upgrade pathname in backend/src/websocketServer.ts. Each endpoint has exactly one capability owner, and every WebSocket endpoint has authentication evidence. Every capability also declares whether schemas, manifests, and defaults apply, with source evidence or a specific not-applicable reason, plus documentation and a named behavioral test registered in normal package or browser CI.

Executable provider details remain governed by scripts/capability-contracts.json and scripts/test-capability-contracts.mjs; this global inventory links to that contract instead of duplicating its manifest and default rules.

CapabilityUI routesHTTP endpointsWebSocket endpointsSchemasManifestsDefaultsDocumentationNamed behavioral tests
Home/00N/A — The Home page is a navigation and composition surface with no independent request or response payload.N/A — The Home page is built into the application and is not installed or discovered through a manifest.frontend/src/utils/welcomePrompts.tsdocs/00-README.mdnew chats rotate through distinct creator prompts
frontend/e2e/welcome-prompts.spec.ts (test:e2e)
Chat/chat
/c/:sessionId
331backend/src/types/index.ts
backend/src/services/thinkingSummaryService.ts
frontend/src/utils/api/chatApi.ts
scripts/capability-contracts.jsonbackend/src/services/preferencesService.ts
frontend/src/hooks/useThinkingSummary.ts
docs/01-QUICK_START.md
docs/03-PRO_TIPS.md
ChatRequestService prepares target, persona prompt, and shared messages
scripts/test-chat-context.mjs (test:package)
oversized history compacts into one summary on a user-turn boundary
scripts/test-context-compaction.mjs (test:package)
queued prompts can be edited, reordered, and removed atomically
scripts/test-prompt-queue.mjs (test:package)
a comparison fan-out shares one user turn across independent jobs
scripts/test-multi-model-compare.mjs (test:package)
forking at a message copies the prefix with remapped identities
scripts/test-chat-fork.mjs (test:package)
collapsed topics update from serialized requests using the latest bounded reasoning
frontend/e2e/thinking-summary.spec.ts (test:e2e)
Model management—510backend/src/types/index.tsscripts/capability-contracts.jsonbackend/src/services/ollamaService.tsdocs/02-WORKING_WITH_MODELS.mdcloud library pulls append the Ollama cloud suffix automatically
frontend/e2e/model-manager.spec.ts (test:e2e)
Personas/personas120backend/src/types/index.tsN/A — Personas are account resources persisted by Libre and do not use an installable or discovery manifest.frontend/src/components/persona-form/defaults.tsdocs/16-PERSONA_DEVELOPMENT_FRAMEWORK.md
docs/52-ASSISTANT_PROFILES.md
memory insert acknowledgement loss resolves the committed row and retry is idempotent
scripts/test-memory-reliability.mjs (test:package)
a profile stores its bindings normalized, versioned, and encrypted
scripts/test-assistant-profiles.mjs (test:package)
Media gallery/gallery200backend/src/types/index.tsscripts/capability-contracts.jsonscripts/test-capability-contracts.mjsdocs/38-MEDIA_GENERATION.mdvideo jobs can stop waiting, reopen, and resume without losing the handle
frontend/e2e/media-generation.spec.ts (test:e2e)
edits post an authorized multipart request and meter usage
scripts/test-image-editing.mjs (test:package)
Notes/notes120backend/src/types/index.ts
backend/src/persistence/resourceTypes.ts
N/A — Notes are first-party account resources and have no installable or discovery manifest.N/A — Notes have no implicit content or presentation default beyond explicit user-supplied fields.docs/61-NOTES.mdnotes open in Markdown preview and make editing explicit
frontend/e2e/notes.spec.ts (test:e2e)
content changes snapshot restorable revisions and prune beyond the cap
scripts/test-notes.mjs (test:package)
Calendar/calendar100backend/src/types/index.tsN/A — Calendar events are first-party account resources and have no installable or discovery manifest.N/A — Calendar events have no implicit content default beyond explicit user-supplied fields; recurrence math uses the server timezone documented in docs/47-CALENDAR.md.docs/47-CALENDAR.mdcalendar events persist per owner and expand recurrence into range queries
scripts/test-calendar.mjs (test:package)
named calendars carry colors and share read/write through grants
scripts/test-calendar-team.mjs (test:package)
reminders fire once per occurrence into the notification inbox
scripts/test-calendar-team.mjs (test:package)
Automations/automations150backend/src/types/index.tsN/A — Automations are first-party account resources and have no installable or discovery manifest.docs/48-AUTOMATIONS.mddocs/48-AUTOMATIONS.mdthe scheduler fires due automations once and settles stalled runs
scripts/test-automations.mjs (test:package)
Channels/channels240backend/src/types/index.tsN/A — Channels are first-party account resources and have no installable or discovery manifest.docs/54-CHANNELS.mddocs/54-CHANNELS.mdtimeline: idempotent posts, ordering, threads, edit and tombstone rules
scripts/test-channels.mjs (test:package)
@model mentions run under the invoking member and fail safely
scripts/test-channels.mjs (test:package)
Notifications—160backend/src/types/index.tsN/A — Notifications are first-party account state and have no installable or discovery manifest.docs/55-NOTIFICATIONS.mddocs/55-NOTIFICATIONS.md
docs/55-NOTIFICATIONS.md
docs/55-NOTIFICATIONS.md
the inbox is durable, encrypted, deduplicated, and capped
scripts/test-notifications.mjs (test:package)
webhook targets are egress-guarded, signed, redacted, and retried
scripts/test-notifications.mjs (test:package)
payload encryption reproduces the RFC 8291 test vector
scripts/test-web-push.mjs (test:package)
revoking an auth session removes its device subscriptions
scripts/test-web-push.mjs (test:package)
credentials are never sent in clear text when TLS was expected
scripts/test-smtp-client.mjs (test:package)
email settings resolve from the environment, override from the UI, and never return the password
scripts/test-email-notifications.mjs (test:package)
a channel mention and an automation run are emailed only to users who opted in
scripts/test-email-notifications.mjs (test:package)
Prompt Library—90backend/src/services/promptService.tsN/A — Prompts are first-party account resources; their portable form is the versioned libre-prompt.v1 export document, not an installable or discovery manifest.N/A — A prompt has no implicit content default: every field is user-supplied and rendering substitutes only declared variables, enforced by scripts/test-prompts.mjs.docs/50-PROMPTS.mdprompts round-trip through the API and stay encrypted at rest
scripts/test-prompts.mjs (test:package)
Skills—140backend/src/services/skillService.tsbackend/src/services/skillService.tsN/A — A skill has no implicit content default: the manifest and instructions are exactly what the owner wrote, and disabled skills leave the manifest entirely.docs/51-SKILLS.mdskills round-trip through the API and stay encrypted at rest
scripts/test-skills.mjs (test:package)
a skill imports from a remote store URL through the egress guard
scripts/test-skills.mjs (test:package)
Chat Tools—190backend/src/types/tools.tsbackend/src/services/toolServerService.tsbackend/src/services/toolAccessService.tsdocs/49-CHAT_TOOLS.mdregistering an OpenAPI server pins the spec and extracts its tools
scripts/test-tool-gateway.mjs (test:package)
a side-effecting call waits for approval and then executes
scripts/test-chat-tool-loop.mjs (test:package)
the callback exchanges the code and stores an encrypted envelope
scripts/test-tool-oauth.mjs (test:package)
Work/work
/work/:taskId
483backend/src/types/work.tsscripts/capability-contracts.jsonbackend/src/services/workRuntimeShared.tsdocs/33-WORKSPACES.mdruntime limits expose admission capacity and live occupancy
scripts/test-work-runtime.mjs (test:package)
approval decisions gate side-effecting Work actions
scripts/test-work-approvals.mjs (test:package)
an agent delegates to a peer and the report returns to its conversation
scripts/test-work-delegation.mjs (test:package)
connected tools reach network-enabled runs and stay off offline ones
scripts/test-work-mcp.mjs (test:package)
production Work upgrade applies task-bound ticket authentication
scripts/test-websocket-tickets.mjs (test:package)
Agent CLI models—30backend/src/services/agentCliService.tsN/A — Agent CLI adapters are compiled first-party definitions and are not loaded from provider manifests.backend/src/services/agentAccessService.tsdocs/36-AGENT_CLI_MODELS.mdevery agent CLI passes an explicit model through to its argv
scripts/test-agent-cli-chat.mjs (test:package)
enabled CLI models are listed for administrators and never for regular users
scripts/test-agent-cli-access.mjs (test:package)
Artifacts/artifacts10frontend/src/utils/artifactParser.tsfrontend/src/artifact-runtime/manifest.tsfrontend/src/components/ArtifactSlideOutPanel.tsx
frontend/src/store/appStore.ts
docs/13-ARTIFACTS_FEATURE.mdchat detects multi-file HTML artifacts and renders them in the slide-out panel
frontend/e2e/artifacts.spec.ts (test:e2e)
Provider usage/usage100backend/src/services/pluginUsageService.ts
backend/src/routes/plugins.ts
frontend/src/utils/api/pluginApi.ts
frontend/src/components/usage/UsageChart.tsx
N/A — Usage analytics consume provider events but define no installable or discovery manifest of their own.backend/src/services/pluginUsageService.ts
frontend/src/utils/pluginUsage.ts
docs/37-SYSTEM_MONITORING.md
docs/58-COST_GOVERNANCE.md
docs/60-OBSERVABILITY.md
the usage endpoint is explicitly protected by administrator middleware
scripts/test-plugin-usage-analytics.mjs (test:package)
model chart series bound names, combine providers, and reconcile UTC daily counters
scripts/test-plugin-usage-analytics.mjs (test:package)
focused model series isolate exact rare names without double counting
scripts/test-plugin-usage-analytics.mjs (test:package)
focused usage snapshots exclude later events and keep overview UTC boundaries
scripts/test-plugin-usage-analytics.mjs (test:package)
usage route rejects malformed model focus and preserves exact scalar names
scripts/test-plugin-usage-analytics.mjs (test:package)
model colors link the chart and heatmap while highlighting preserves totals
frontend/e2e/plugin-usage.spec.ts (test:e2e)
the daily explorer exposes per-model Calls and Tokens with keyboard navigation
frontend/e2e/plugin-usage.spec.ts (test:e2e)
models outside the busiest twelve load and highlight their own history independently
frontend/e2e/plugin-usage.spec.ts (test:e2e)
hard budgets block exhausted principals and fail open otherwise
scripts/test-cost-governance.mjs (test:package)
agent usage appears before cost and charts with recorded, unmetered, and zero states
frontend/e2e/plugin-usage.spec.ts (test:e2e)
agent totals bypass provider/model top limits and never attribute ordinary provider traffic
scripts/test-plugin-usage-analytics.mjs (test:package)
Codex cumulative totals include caches/reasoning once and replace repeated terminal snapshots
scripts/test-agent-cli-chat.mjs (test:package)
Evaluation platform/evaluations160backend/src/persistence/resourceTypes.tsN/A — Evaluations are account resources persisted by Libre and do not use an installable or discovery manifest.backend/src/services/evaluationService.tsdocs/59-EVALUATIONS.mdarena votes are one per user per comparison and Elo replays deterministically
scripts/test-evaluations.mjs (test:package)
System diagnostics/system50backend/src/services/systemDiagnosticsService.tsN/A — System diagnostics are a built-in authenticated report and have no installable or discovery manifest.backend/src/services/healthService.tsdocs/37-SYSTEM_MONITORING.mdsystem route requires both authentication and current administrator status
scripts/test-system-diagnostics.mjs (test:package)
User administration/users80backend/src/types/index.tsN/A — User administration is a built-in identity capability and has no installable or discovery manifest.N/A — User role and account status are selected by bootstrap or approval policy rather than a reusable capability default.docs/12-AUTHENTICATION.mdpublic registrations require administrator approval before authentication
scripts/test-user-approval.mjs (test:package)
Authentication/login400backend/src/types/index.tsN/A — Authentication is a built-in security boundary and is not installed or discovered through a manifest.backend/src/services/registrationPolicy.tsdocs/12-AUTHENTICATION.md
docs/12-AUTHENTICATION.md
docs/12-AUTHENTICATION.md
password login requires and submits a Turnstile token
frontend/e2e/auth.spec.ts (test:e2e)
revoking the session rejects its token with 401
scripts/test-auth-sessions.mjs (test:package)
scope-to-path matrix: notes scope on notes, chat, and auth routes
scripts/test-api-tokens.mjs (test:package)
verifyIdToken accepts a good token and returns its claims
scripts/test-oidc-provider.mjs (test:package)
password login returns an MFA challenge, and the challenge is not a session
scripts/test-mfa.mjs (test:package)
a passkey assertion signs the user in and challenges are one-use
scripts/test-mfa.mjs (test:package)
the signup password field grades strength live against the real policy
frontend/e2e/password-strength.spec.ts (test:e2e)
Access Control—140backend/src/persistence/securityTypes.tsN/A — Access control is a built-in security boundary and is not installed or discovered through a manifest.backend/src/services/authorizationService.tsdocs/12-AUTHENTICATION.mdgroup grants reach members and die with the membership
scripts/test-authorization.mjs (test:package)
a rolled-back duplicate group create leaves no audit row
scripts/test-security-audit.mjs (test:package)
group principal lookup and grant names surface through the API
scripts/test-resource-sharing.mjs (test:package)
Public API—20backend/src/routes/openaiCompat.tsN/A — The OpenAI-compatible surface mirrors an external wire format and has no installable manifest.N/A — Sampling defaults come from the caller's request and the model's own configuration, never from this surface.docs/53-PUBLIC_API.mda streaming completion emits OpenAI chunk frames and [DONE]
scripts/test-openai-compat.mjs (test:package)
Data portability—30backend/src/services/dataArchiveService.tsbackend/src/services/dataArchiveService.tsbackend/src/services/dataArchiveService.tsdocs/41-DATA_PORTABILITY.mdv3 export is complete, checksummed, user-scoped, and explicit about exclusions
scripts/test-data-archive.mjs (test:package)
Document knowledge and retrieval—150backend/src/types/index.tsscripts/capability-contracts.jsonbackend/src/services/preferencesService.tsdocs/09-RAG_FEATURE.md
docs/09-RAG_FEATURE.md
keyword retrieval sees session documents AND user-scoped uploads
scripts/test-rag-retrieval.mjs (test:package)
multi-image OCR produces one labeled page segment per image
scripts/test-media-extraction.mjs (test:package)
audio transcripts carry one Transcript section and respect the stt gate
scripts/test-media-extraction.mjs (test:package)
Persona memory—60backend/src/types/index.tsN/A — Persona memory is an internal persona resource and has no installable or discovery manifest.frontend/src/components/persona-form/defaults.tsdocs/16-PERSONA_DEVELOPMENT_FRAMEWORK.mdpersona deletion during vector publication still removes the recreated vector
scripts/test-memory-reliability.mjs (test:package)
Web search—60backend/src/services/webSearchService.tsN/A — Web search uses administrator connection settings rather than an installable provider manifest.backend/src/services/webSearchService.tsdocs/39-WEB_SEARCH.mdweb search ships disabled and validates its configuration
scripts/test-web-search.mjs (test:package)
search is scoped to what the actor can read
scripts/test-workspace-search.mjs (test:package)
Settings and preferences—110backend/src/types/index.tsN/A — Settings aggregate first-party and provider configuration but do not define a separate installable manifest.backend/src/services/preferencesService.tsdocs/35-PROVIDER_CONNECTIONS.mdtheme preference survives refresh and retries a failed save
frontend/e2e/settings.spec.ts (test:e2e)
Speech input and output—130backend/src/types/index.tsscripts/capability-contracts.jsonscripts/test-capability-contracts.mjsdocs/42-SPEECH_TO_TEXT.md
docs/27-QWEN3_TTS.md
docs/57-VOICE_MODE.md
STT sends an OpenAI-compatible multipart request to the selected route
scripts/test-stt-routing.mjs (test:package)
provider speech input discloses its route and transcribes recorded audio
frontend/e2e/stt.spec.ts (test:e2e)
invalid provider audio is rejected safely without inserting a transcript
frontend/e2e/stt.spec.ts (test:e2e)
TTS routes a shared model alias through the selected plugin and user valve
scripts/test-tts-routing.mjs (test:package)
voice mode opens hands-free conversation and transcribes a manual turn
frontend/e2e/voice-mode.spec.ts (test:e2e)
Hugging Face Hub—70backend/src/routes/huggingfaceHub.tsN/A — Hub model metadata is remote API data; Libre defines no local installable manifest for the browser capability.backend/src/routes/huggingfaceHub.tsdocs/29-HUGGINGFACE_HUB.mdHugging Face Hub task discovery is authenticated route behavior
scripts/test-huggingface-hub-routes.mjs (test:package)
Strands engine/strands110backend/src/strands/engine.ts
backend/src/strands/work-model.ts
N/A — The Strands engine is built into the backend and drives existing Ollama and provider-plugin routes, so it has no manifest of its own.backend/src/services/strandsAccessService.tsdocs/67-STRANDS_ENGINE.md
docs/06-TROUBLESHOOTING.md
docs/33-WORKSPACES.md
Strands access fails closed and follows the admin setting and environment pin
scripts/test-strands-engine.mjs (test:package)
a Strands turn streams NDJSON, runs a jailed file tool, and persists the transcript
scripts/test-strands-engine.mjs (test:package)
the workspace jail rejects paths that leave the session root
scripts/test-strands-engine.mjs (test:package)
an admin creates a Strands session and streams a turn with a tool call
frontend/e2e/strands-engine.spec.ts (test:e2e)
Durable jobs and events—40backend/src/platform/jobs/durableJobTypes.tsN/A — Durable jobs use registered handler types and persisted payload contracts, not installable manifests.backend/src/platform/jobs/embeddedDurableJobWorker.tsdocs/45-PLATFORM_FOUNDATION.mdordered event replay uses global cursors and per-stream sequences
scripts/test-durable-jobs.mjs (test:package)
Solo and team deployment profiles—00backend/src/platform/runtimeConfig.tshelm/libre-webui/values.schema.jsonhelm/libre-webui/values.yamldocs/45-PLATFORM_FOUNDATION.mdreal Redis coordinates independent replicas and fails closed after shutdown
scripts/test-platform-coordination.mjs (test:package)
Recovery and backup—20backend/src/services/recoveryInventoryService.tsbackend/src/platform/recovery/backupArchive.tsbackend/src/services/recoveryInventoryService.tsdocs/44-RECOVERY_READINESS.md
docs/44-RECOVERY_READINESS.md
integrated backup is signed, encrypted, tamper-evident, and clean-restorable
scripts/test-integrated-backup.mjs (test:package)
team backup restores a clean PostgreSQL and versioned S3 target with authenticated PGVector state
scripts/test-team-backup.mjs (test:package)
a manual drill backs up, restores in isolation, verifies, and measures
scripts/test-recovery-drills.mjs (test:package)
an unattended drill failure alerts every administrator once
scripts/test-recovery-drills.mjs (test:package)

Exact backend route inventory​

Home​

No mounted Express endpoint. The executable boundary is the UI and/or source evidence recorded above.

Chat​

  • DELETE /api/chat/folders/:folderId — backend/src/routes/chat.ts (mount /api/chat, subpath /folders/:folderId)
  • DELETE /api/chat/sessions — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions)
  • DELETE /api/chat/sessions/:sessionId — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId)
  • DELETE /api/chat/sessions/:sessionId/queue/:entryId — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/queue/:entryId)
  • GET /api/chat/compaction-config — backend/src/routes/chat.ts (mount /api/chat, subpath /compaction-config)
  • GET /api/chat/context-policy — backend/src/routes/chat.ts (mount /api/chat, subpath /context-policy)
  • GET /api/chat/folders — backend/src/routes/chat.ts (mount /api/chat, subpath /folders)
  • GET /api/chat/sessions — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions)
  • GET /api/chat/sessions/:sessionId — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId)
  • GET /api/chat/sessions/:sessionId/events — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/events)
  • GET /api/chat/sessions/:sessionId/messages/:messageId/branches — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/messages/:messageId/branches)
  • POST /api/chat/folders — backend/src/routes/chat.ts (mount /api/chat, subpath /folders)
  • POST /api/chat/sessions — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions)
  • POST /api/chat/sessions/:sessionId/compaction/:messageId/restore — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/compaction/:messageId/restore)
  • POST /api/chat/sessions/:sessionId/followups — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/followups)
  • POST /api/chat/sessions/:sessionId/fork — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/fork)
  • POST /api/chat/sessions/:sessionId/generate — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/generate)
  • POST /api/chat/sessions/:sessionId/generate-title — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/generate-title)
  • POST /api/chat/sessions/:sessionId/generate/stream — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/generate/stream)
  • POST /api/chat/sessions/:sessionId/generations — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/generations)
  • POST /api/chat/sessions/:sessionId/generations/:assistantMessageId/cancel — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/generations/:assistantMessageId/cancel)
  • POST /api/chat/sessions/:sessionId/messages — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/messages)
  • POST /api/chat/sessions/:sessionId/messages/:messageId/branch — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/messages/:messageId/branch)
  • POST /api/chat/sessions/:sessionId/messages/:messageId/branches — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/messages/:messageId/branches)
  • POST /api/chat/sessions/:sessionId/messages/:messageId/truncate — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/messages/:messageId/truncate)
  • POST /api/chat/sessions/:sessionId/queue — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/queue)
  • POST /api/chat/sessions/:sessionId/summarize-thinking — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/summarize-thinking)
  • PUT /api/chat/compaction-config — backend/src/routes/chat.ts (mount /api/chat, subpath /compaction-config)
  • PUT /api/chat/folders/:folderId — backend/src/routes/chat.ts (mount /api/chat, subpath /folders/:folderId)
  • PUT /api/chat/sessions/:sessionId — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId)
  • PUT /api/chat/sessions/:sessionId/messages/:messageId — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/messages/:messageId)
  • PUT /api/chat/sessions/:sessionId/queue — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/queue)
  • PUT /api/chat/sessions/:sessionId/queue/:entryId — backend/src/routes/chat.ts (mount /api/chat, subpath /sessions/:sessionId/queue/:entryId)

Model management​

  • DELETE /api/ollama/models — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models)
  • GET /api/ollama/health — backend/src/routes/ollama.ts (mount /api/ollama, subpath /health)
  • GET /api/ollama/library — backend/src/routes/ollama.ts (mount /api/ollama, subpath /library)
  • GET /api/ollama/models — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models)
  • GET /api/ollama/models/:modelName/defaults — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/:modelName/defaults)
  • GET /api/ollama/models/access — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/access)
  • GET /api/ollama/models/pull-all/stream — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/pull-all/stream)
  • GET /api/ollama/models/show — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/show)
  • GET /api/ollama/models/visibility — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/visibility)
  • GET /api/ollama/pull/stream — backend/src/routes/ollama.ts (mount /api/ollama, subpath /pull/stream)
  • GET /api/ollama/running — backend/src/routes/ollama.ts (mount /api/ollama, subpath /running)
  • GET /api/ollama/settings — backend/src/routes/ollama.ts (mount /api/ollama, subpath /settings)
  • GET /api/ollama/version — backend/src/routes/ollama.ts (mount /api/ollama, subpath /version)
  • HEAD /api/ollama/blobs/:digest — backend/src/routes/ollama.ts (mount /api/ollama, subpath /blobs/:digest)
  • POST /api/ollama/blobs/:digest — backend/src/routes/ollama.ts (mount /api/ollama, subpath /blobs/:digest)
  • POST /api/ollama/chat — backend/src/routes/ollama.ts (mount /api/ollama, subpath /chat)
  • POST /api/ollama/chat/stream — backend/src/routes/ollama.ts (mount /api/ollama, subpath /chat/stream)
  • POST /api/ollama/embed — backend/src/routes/ollama.ts (mount /api/ollama, subpath /embed)
  • POST /api/ollama/embeddings — backend/src/routes/ollama.ts (mount /api/ollama, subpath /embeddings)
  • POST /api/ollama/models — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models)
  • POST /api/ollama/models/copy — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/copy)
  • POST /api/ollama/models/pull — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/pull)
  • POST /api/ollama/models/pull-all — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/pull-all)
  • POST /api/ollama/models/push — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/push)
  • POST /api/ollama/models/unload — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/unload)
  • POST /api/ollama/models/unload-all — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/unload-all)
  • PUT /api/ollama/models/access — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/access)
  • PUT /api/ollama/models/visibility — backend/src/routes/ollama.ts (mount /api/ollama, subpath /models/visibility)
  • PUT /api/ollama/settings — backend/src/routes/ollama.ts (mount /api/ollama, subpath /settings)
  • DELETE /api/plugins/:id — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id)
  • DELETE /api/plugins/:id/credentials — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/credentials)
  • DELETE /api/plugins/:id/variables — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/variables)
  • GET /api/plugins — backend/src/routes/plugins.ts (mount /api/plugins, subpath /)
  • GET /api/plugins/:id — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id)
  • GET /api/plugins/:id/credentials/check — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/credentials/check)
  • GET /api/plugins/:id/export — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/export)
  • GET /api/plugins/:id/variables — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/variables)
  • GET /api/plugins/active — backend/src/routes/plugins.ts (mount /api/plugins, subpath /active)
  • GET /api/plugins/active/current — backend/src/routes/plugins.ts (mount /api/plugins, subpath /active/current)
  • GET /api/plugins/credentials/all — backend/src/routes/plugins.ts (mount /api/plugins, subpath /credentials/all)
  • GET /api/plugins/status/all — backend/src/routes/plugins.ts (mount /api/plugins, subpath /status/all)
  • POST /api/plugins/:id/credentials — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/credentials)
  • POST /api/plugins/activate/:id — backend/src/routes/plugins.ts (mount /api/plugins, subpath /activate/:id)
  • POST /api/plugins/deactivate — backend/src/routes/plugins.ts (mount /api/plugins, subpath /deactivate)
  • POST /api/plugins/deactivate/:id — backend/src/routes/plugins.ts (mount /api/plugins, subpath /deactivate/:id)
  • POST /api/plugins/discover/:id — backend/src/routes/plugins.ts (mount /api/plugins, subpath /discover/:id)
  • POST /api/plugins/install — backend/src/routes/plugins.ts (mount /api/plugins, subpath /install)
  • POST /api/plugins/probe-endpoint — backend/src/routes/plugins.ts (mount /api/plugins, subpath /probe-endpoint)
  • POST /api/plugins/upload — backend/src/routes/plugins.ts (mount /api/plugins, subpath /upload)
  • PUT /api/plugins/:id — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id)
  • PUT /api/plugins/:id/variables — backend/src/routes/plugins.ts (mount /api/plugins, subpath /:id/variables)

Personas​

  • DELETE /api/personas/:id — backend/src/routes/personas.ts (mount /api/personas, subpath /:id)
  • GET /api/personas — backend/src/routes/personas.ts (mount /api/personas, subpath /)
  • GET /api/personas/:id — backend/src/routes/personas.ts (mount /api/personas, subpath /:id)
  • GET /api/personas/:id/backup — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/backup)
  • GET /api/personas/:id/download — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/download)
  • GET /api/personas/:id/export — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/export)
  • GET /api/personas/:id/export/dna — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/export/dna)
  • GET /api/personas/defaults/parameters — backend/src/routes/personas.ts (mount /api/personas, subpath /defaults/parameters)
  • GET /api/personas/stats/count — backend/src/routes/personas.ts (mount /api/personas, subpath /stats/count)
  • POST /api/personas — backend/src/routes/personas.ts (mount /api/personas, subpath /)
  • POST /api/personas/import — backend/src/routes/personas.ts (mount /api/personas, subpath /import)
  • PUT /api/personas/:id — backend/src/routes/personas.ts (mount /api/personas, subpath /:id)
  • DELETE /api/image-gen/gallery/:imageId — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /gallery/:imageId)
  • GET /api/image-gen/config/:pluginId — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /config/:pluginId)
  • GET /api/image-gen/gallery — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /gallery)
  • GET /api/image-gen/gallery/:imageId — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /gallery/:imageId)
  • GET /api/image-gen/models — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /models)
  • GET /api/image-gen/plugins — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /plugins)
  • POST /api/image-gen/generate — backend/src/routes/imageGen.ts (mount /api/image-gen, subpath /generate)
  • DELETE /api/media/gallery/:mediaId — backend/src/routes/media.ts (mount /api/media, subpath /gallery/:mediaId)
  • DELETE /api/media/video/jobs/:jobId — backend/src/routes/media.ts (mount /api/media, subpath /video/jobs/:jobId)
  • GET /api/media/gallery — backend/src/routes/media.ts (mount /api/media, subpath /gallery)
  • GET /api/media/gallery/:mediaId/content — backend/src/routes/media.ts (mount /api/media, subpath /gallery/:mediaId/content)
  • GET /api/media/models — backend/src/routes/media.ts (mount /api/media, subpath /models)
  • GET /api/media/video/jobs — backend/src/routes/media.ts (mount /api/media, subpath /video/jobs)
  • GET /api/media/video/jobs/:jobId — backend/src/routes/media.ts (mount /api/media, subpath /video/jobs/:jobId)
  • POST /api/media/audio/generate — backend/src/routes/media.ts (mount /api/media, subpath /audio/generate)
  • POST /api/media/audio/voice-clone — backend/src/routes/media.ts (mount /api/media, subpath /audio/voice-clone)
  • POST /api/media/image/edit — backend/src/routes/media.ts (mount /api/media, subpath /image/edit)
  • POST /api/media/sound/generate — backend/src/routes/media.ts (mount /api/media, subpath /sound/generate)
  • POST /api/media/video/generate — backend/src/routes/media.ts (mount /api/media, subpath /video/generate)
  • POST /api/media/video/jobs/:jobId/resume — backend/src/routes/media.ts (mount /api/media, subpath /video/jobs/:jobId/resume)

Notes​

  • DELETE /api/notes/:noteId — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId)
  • DELETE /api/notes/:noteId/attachments/:attachmentId — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/attachments/:attachmentId)
  • GET /api/notes — backend/src/routes/notes.ts (mount /api/notes, subpath /)
  • GET /api/notes/:noteId — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId)
  • GET /api/notes/:noteId/attachments — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/attachments)
  • GET /api/notes/:noteId/attachments/:attachmentId — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/attachments/:attachmentId)
  • GET /api/notes/:noteId/revisions — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/revisions)
  • POST /api/notes — backend/src/routes/notes.ts (mount /api/notes, subpath /)
  • POST /api/notes/:noteId/assist — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/assist)
  • POST /api/notes/:noteId/attachments — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/attachments)
  • POST /api/notes/:noteId/revisions/:revisionId/restore — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId/revisions/:revisionId/restore)
  • PUT /api/notes/:noteId — backend/src/routes/notes.ts (mount /api/notes, subpath /:noteId)

Calendar​

  • DELETE /api/calendar/calendars/:calendarId — backend/src/routes/calendar.ts (mount /api/calendar, subpath /calendars/:calendarId)
  • DELETE /api/calendar/events/:eventId — backend/src/routes/calendar.ts (mount /api/calendar, subpath /events/:eventId)
  • GET /api/calendar/calendars — backend/src/routes/calendar.ts (mount /api/calendar, subpath /calendars)
  • GET /api/calendar/events — backend/src/routes/calendar.ts (mount /api/calendar, subpath /events)
  • GET /api/calendar/export — backend/src/routes/calendar.ts (mount /api/calendar, subpath /export)
  • POST /api/calendar/calendars — backend/src/routes/calendar.ts (mount /api/calendar, subpath /calendars)
  • POST /api/calendar/events — backend/src/routes/calendar.ts (mount /api/calendar, subpath /events)
  • POST /api/calendar/import — backend/src/routes/calendar.ts (mount /api/calendar, subpath /import)
  • PUT /api/calendar/calendars/:calendarId — backend/src/routes/calendar.ts (mount /api/calendar, subpath /calendars/:calendarId)
  • PUT /api/calendar/events/:eventId — backend/src/routes/calendar.ts (mount /api/calendar, subpath /events/:eventId)

Automations​

  • DELETE /api/automations/:automationId — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId)
  • DELETE /api/automations/:automationId/webhook-secret — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId/webhook-secret)
  • GET /api/automations — backend/src/routes/automations.ts (mount /api/automations, subpath /)
  • GET /api/automations/:automationId — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId)
  • GET /api/automations/occurrences — backend/src/routes/automations.ts (mount /api/automations, subpath /occurrences)
  • GET /api/automations/runs — backend/src/routes/automations.ts (mount /api/automations, subpath /runs)
  • GET /api/automations/runs/summary — backend/src/routes/automations.ts (mount /api/automations, subpath /runs/summary)
  • POST /api/automations — backend/src/routes/automations.ts (mount /api/automations, subpath /)
  • POST /api/automations/:automationId/pause — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId/pause)
  • POST /api/automations/:automationId/resume — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId/resume)
  • POST /api/automations/:automationId/run — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId/run)
  • POST /api/automations/:automationId/webhook — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId/webhook)
  • POST /api/automations/:automationId/webhook-secret — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId/webhook-secret)
  • POST /api/automations/runs/seen — backend/src/routes/automations.ts (mount /api/automations, subpath /runs/seen)
  • PUT /api/automations/:automationId — backend/src/routes/automations.ts (mount /api/automations, subpath /:automationId)

Channels​

  • DELETE /api/channels/:channelId — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId)
  • DELETE /api/channels/:channelId/members/:userId — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/members/:userId)
  • DELETE /api/channels/messages/:messageId — backend/src/routes/channels.ts (mount /api/channels, subpath /messages/:messageId)
  • DELETE /api/channels/messages/:messageId/reactions/:emoji — backend/src/routes/channels.ts (mount /api/channels, subpath /messages/:messageId/reactions/:emoji)
  • GET /api/channels — backend/src/routes/channels.ts (mount /api/channels, subpath /)
  • GET /api/channels/:channelId — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId)
  • GET /api/channels/:channelId/events — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/events)
  • GET /api/channels/:channelId/members — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/members)
  • GET /api/channels/:channelId/messages — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/messages)
  • GET /api/channels/:channelId/pins — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/pins)
  • GET /api/channels/attachments/:attachmentId — backend/src/routes/channels.ts (mount /api/channels, subpath /attachments/:attachmentId)
  • GET /api/channels/messages/:messageId/thread — backend/src/routes/channels.ts (mount /api/channels, subpath /messages/:messageId/thread)
  • GET /api/channels/public — backend/src/routes/channels.ts (mount /api/channels, subpath /public)
  • PATCH /api/channels/:channelId — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId)
  • PATCH /api/channels/messages/:messageId — backend/src/routes/channels.ts (mount /api/channels, subpath /messages/:messageId)
  • POST /api/channels — backend/src/routes/channels.ts (mount /api/channels, subpath /)
  • POST /api/channels/:channelId/attachments — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/attachments)
  • POST /api/channels/:channelId/join — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/join)
  • POST /api/channels/:channelId/members — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/members)
  • POST /api/channels/:channelId/messages — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/messages)
  • POST /api/channels/:channelId/read — backend/src/routes/channels.ts (mount /api/channels, subpath /:channelId/read)
  • POST /api/channels/dm — backend/src/routes/channels.ts (mount /api/channels, subpath /dm)
  • POST /api/channels/messages/:messageId/pin — backend/src/routes/channels.ts (mount /api/channels, subpath /messages/:messageId/pin)
  • POST /api/channels/messages/:messageId/reactions — backend/src/routes/channels.ts (mount /api/channels, subpath /messages/:messageId/reactions)

Notifications​

  • GET /api/email/settings — backend/src/routes/email.ts (mount /api/email, subpath /settings)
  • POST /api/email/test — backend/src/routes/email.ts (mount /api/email, subpath /test)
  • PUT /api/email/settings — backend/src/routes/email.ts (mount /api/email, subpath /settings)
  • DELETE /api/notifications/:notificationId — backend/src/routes/notifications.ts (mount /api/notifications, subpath /:notificationId)
  • DELETE /api/notifications/webhooks/:targetId — backend/src/routes/notifications.ts (mount /api/notifications, subpath /webhooks/:targetId)
  • GET /api/notifications — backend/src/routes/notifications.ts (mount /api/notifications, subpath /)
  • GET /api/notifications/events — backend/src/routes/notifications.ts (mount /api/notifications, subpath /events)
  • GET /api/notifications/unread-count — backend/src/routes/notifications.ts (mount /api/notifications, subpath /unread-count)
  • GET /api/notifications/webhooks — backend/src/routes/notifications.ts (mount /api/notifications, subpath /webhooks)
  • POST /api/notifications/:notificationId/read — backend/src/routes/notifications.ts (mount /api/notifications, subpath /:notificationId/read)
  • POST /api/notifications/read-all — backend/src/routes/notifications.ts (mount /api/notifications, subpath /read-all)
  • POST /api/notifications/webhooks — backend/src/routes/notifications.ts (mount /api/notifications, subpath /webhooks)
  • DELETE /api/push/subscriptions — backend/src/routes/push.ts (mount /api/push, subpath /subscriptions)
  • GET /api/push/public-key — backend/src/routes/push.ts (mount /api/push, subpath /public-key)
  • GET /api/push/subscriptions — backend/src/routes/push.ts (mount /api/push, subpath /subscriptions)
  • POST /api/push/subscriptions — backend/src/routes/push.ts (mount /api/push, subpath /subscriptions)

Prompt Library​

  • DELETE /api/prompts/:promptId — backend/src/routes/prompts.ts (mount /api/prompts, subpath /:promptId)
  • GET /api/prompts — backend/src/routes/prompts.ts (mount /api/prompts, subpath /)
  • GET /api/prompts/:promptId — backend/src/routes/prompts.ts (mount /api/prompts, subpath /:promptId)
  • GET /api/prompts/:promptId/export — backend/src/routes/prompts.ts (mount /api/prompts, subpath /:promptId/export)
  • GET /api/prompts/:promptId/versions — backend/src/routes/prompts.ts (mount /api/prompts, subpath /:promptId/versions)
  • POST /api/prompts — backend/src/routes/prompts.ts (mount /api/prompts, subpath /)
  • POST /api/prompts/:promptId/rollback — backend/src/routes/prompts.ts (mount /api/prompts, subpath /:promptId/rollback)
  • POST /api/prompts/import — backend/src/routes/prompts.ts (mount /api/prompts, subpath /import)
  • PUT /api/prompts/:promptId — backend/src/routes/prompts.ts (mount /api/prompts, subpath /:promptId)

Skills​

  • DELETE /api/skills/:skillId — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId)
  • DELETE /api/skills/:skillId/files — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/files)
  • GET /api/skills — backend/src/routes/skills.ts (mount /api/skills, subpath /)
  • GET /api/skills/:skillId — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId)
  • GET /api/skills/:skillId/export — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/export)
  • GET /api/skills/:skillId/files — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/files)
  • GET /api/skills/:skillId/files/content — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/files/content)
  • GET /api/skills/:skillId/versions — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/versions)
  • POST /api/skills — backend/src/routes/skills.ts (mount /api/skills, subpath /)
  • POST /api/skills/:skillId/rollback — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/rollback)
  • POST /api/skills/import — backend/src/routes/skills.ts (mount /api/skills, subpath /import)
  • POST /api/skills/import-url — backend/src/routes/skills.ts (mount /api/skills, subpath /import-url)
  • PUT /api/skills/:skillId — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId)
  • PUT /api/skills/:skillId/files — backend/src/routes/skills.ts (mount /api/skills, subpath /:skillId/files)

Chat Tools​

  • DELETE /api/tools/approvals/:id — backend/src/routes/tools.ts (mount /api/tools, subpath /approvals/:id)
  • DELETE /api/tools/servers/:id — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id)
  • DELETE /api/tools/servers/:id/credential — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/credential)
  • DELETE /api/tools/servers/:id/oauth — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/oauth)
  • GET /api/tools/access — backend/src/routes/tools.ts (mount /api/tools, subpath /access)
  • GET /api/tools/approvals — backend/src/routes/tools.ts (mount /api/tools, subpath /approvals)
  • GET /api/tools/catalog — backend/src/routes/tools.ts (mount /api/tools, subpath /catalog)
  • GET /api/tools/servers — backend/src/routes/tools.ts (mount /api/tools, subpath /servers)
  • GET /api/tools/servers/:id — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id)
  • GET /api/tools/servers/:id/oauth/callback — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/oauth/callback)
  • GET /api/tools/servers/:id/oauth/status — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/oauth/status)
  • POST /api/tools/approvals/:id — backend/src/routes/tools.ts (mount /api/tools, subpath /approvals/:id)
  • POST /api/tools/servers — backend/src/routes/tools.ts (mount /api/tools, subpath /servers)
  • POST /api/tools/servers/:id/oauth/start — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/oauth/start)
  • POST /api/tools/servers/:id/refresh — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/refresh)
  • PUT /api/tools/access — backend/src/routes/tools.ts (mount /api/tools, subpath /access)
  • PUT /api/tools/servers/:id — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id)
  • PUT /api/tools/servers/:id/credential — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/credential)
  • PUT /api/tools/servers/:id/tools/:toolName — backend/src/routes/tools.ts (mount /api/tools, subpath /servers/:id/tools/:toolName)

Work​

  • DELETE /api/work/policies/:id — backend/src/routes/work.ts (mount /api/work, subpath /policies/:id)
  • DELETE /api/work/tasks/:id — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id)
  • DELETE /api/work/tasks/:id/approval-rules/:ruleId — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/approval-rules/:ruleId)
  • DELETE /api/work/tasks/:id/computer/control — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/computer/control)
  • GET /api/work/access — backend/src/routes/work.ts (mount /api/work, subpath /access)
  • GET /api/work/admin/overview — backend/src/routes/work.ts (mount /api/work, subpath /admin/overview)
  • GET /api/work/admin/recovery — backend/src/routes/work.ts (mount /api/work, subpath /admin/recovery)
  • GET /api/work/capabilities — backend/src/routes/work.ts (mount /api/work, subpath /capabilities)
  • GET /api/work/computer/setup — backend/src/routes/work.ts (mount /api/work, subpath /computer/setup)
  • GET /api/work/policies — backend/src/routes/work.ts (mount /api/work, subpath /policies)
  • GET /api/work/tasks — backend/src/routes/work.ts (mount /api/work, subpath /tasks)
  • GET /api/work/tasks/:id — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id)
  • GET /api/work/tasks/:id/approvals — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/approvals)
  • GET /api/work/tasks/:id/computer/control — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/computer/control)
  • GET /api/work/tasks/:id/file — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/file)
  • GET /api/work/tasks/:id/files — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/files)
  • GET /api/work/tasks/:id/git — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git)
  • GET /api/work/tasks/:id/git/diff — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git/diff)
  • GET /api/work/tasks/:id/messages — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/messages)
  • GET /api/work/tasks/:id/runs — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/runs)
  • GET /api/work/tasks/:id/runs/:runId — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/runs/:runId)
  • GET /api/work/tasks/:taskId/runs/:runId/events — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:taskId/runs/:runId/events)
  • PATCH /api/work/tasks/:id — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id)
  • POST /api/work/admin/recovery/retry — backend/src/routes/work.ts (mount /api/work, subpath /admin/recovery/retry)
  • POST /api/work/computer/setup — backend/src/routes/work.ts (mount /api/work, subpath /computer/setup)
  • POST /api/work/computer/skills/:slug/trace — backend/src/routes/work.ts (mount /api/work, subpath /computer/skills/:slug/trace)
  • POST /api/work/policies — backend/src/routes/work.ts (mount /api/work, subpath /policies)
  • POST /api/work/tasks — backend/src/routes/work.ts (mount /api/work, subpath /tasks)
  • POST /api/work/tasks/:id/approvals/:approvalId — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/approvals/:approvalId)
  • POST /api/work/tasks/:id/cancel — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/cancel)
  • POST /api/work/tasks/:id/computer/anchor — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/computer/anchor)
  • POST /api/work/tasks/:id/computer/control — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/computer/control)
  • POST /api/work/tasks/:id/computer/start — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/computer/start)
  • POST /api/work/tasks/:id/computer/teach — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/computer/teach)
  • POST /api/work/tasks/:id/git/branches — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git/branches)
  • POST /api/work/tasks/:id/git/commit — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git/commit)
  • POST /api/work/tasks/:id/git/init — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git/init)
  • POST /api/work/tasks/:id/git/stage — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git/stage)
  • POST /api/work/tasks/:id/git/switch — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/git/switch)
  • POST /api/work/tasks/:id/messages — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/messages)
  • POST /api/work/tasks/:id/preview/start — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/preview/start)
  • POST /api/work/tasks/:id/preview/stop — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/preview/stop)
  • POST /api/work/tasks/:id/runs — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/runs)
  • POST /api/work/tasks/:id/seen — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/seen)
  • PUT /api/work/access — backend/src/routes/work.ts (mount /api/work, subpath /access)
  • PUT /api/work/policies/:id — backend/src/routes/work.ts (mount /api/work, subpath /policies/:id)
  • PUT /api/work/tasks/:id/approvals — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/approvals)
  • PUT /api/work/tasks/:id/file — backend/src/routes/work.ts (mount /api/work, subpath /tasks/:id/file)

Agent CLI models​

  • GET /api/agent-clis/access — backend/src/routes/agentCli.ts (mount /api/agent-clis, subpath /access)
  • GET /api/agent-clis/models — backend/src/routes/agentCli.ts (mount /api/agent-clis, subpath /models)
  • PUT /api/agent-clis/access — backend/src/routes/agentCli.ts (mount /api/agent-clis, subpath /access)

Artifacts​

  • GET /api/artifacts/sandbox — backend/src/routes/artifacts.ts (mount /api/artifacts, subpath /sandbox)

Provider usage​

  • DELETE /api/costs/budgets/:budgetId — backend/src/routes/costs.ts (mount /api/costs, subpath /budgets/:budgetId)
  • DELETE /api/costs/tariffs/:tariffId — backend/src/routes/costs.ts (mount /api/costs, subpath /tariffs/:tariffId)
  • GET /api/costs/analytics — backend/src/routes/costs.ts (mount /api/costs, subpath /analytics)
  • GET /api/costs/budgets — backend/src/routes/costs.ts (mount /api/costs, subpath /budgets)
  • GET /api/costs/export — backend/src/routes/costs.ts (mount /api/costs, subpath /export)
  • GET /api/costs/tariffs — backend/src/routes/costs.ts (mount /api/costs, subpath /tariffs)
  • POST /api/costs/budgets — backend/src/routes/costs.ts (mount /api/costs, subpath /budgets)
  • POST /api/costs/tariffs — backend/src/routes/costs.ts (mount /api/costs, subpath /tariffs)
  • PUT /api/costs/budgets/:budgetId — backend/src/routes/costs.ts (mount /api/costs, subpath /budgets/:budgetId)
  • GET /api/plugins/usage — backend/src/routes/plugins.ts (mount /api/plugins, subpath /usage)

Evaluation platform​

  • DELETE /api/evaluations/feedback/:messageId — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /feedback/:messageId)
  • DELETE /api/evaluations/sets/:setId — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /sets/:setId)
  • GET /api/evaluations/arena/leaderboard — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /arena/leaderboard)
  • GET /api/evaluations/feedback — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /feedback)
  • GET /api/evaluations/feedback/all — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /feedback/all)
  • GET /api/evaluations/runs — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /runs)
  • GET /api/evaluations/runs/:runId — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /runs/:runId)
  • GET /api/evaluations/runs/:runId/export — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /runs/:runId/export)
  • GET /api/evaluations/sets — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /sets)
  • POST /api/evaluations/arena/matches — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /arena/matches)
  • POST /api/evaluations/arena/votes — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /arena/votes)
  • POST /api/evaluations/feedback — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /feedback)
  • POST /api/evaluations/runs — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /runs)
  • POST /api/evaluations/runs/:runId/cancel — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /runs/:runId/cancel)
  • POST /api/evaluations/sets — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /sets)
  • PUT /api/evaluations/sets/:setId — backend/src/routes/evaluations.ts (mount /api/evaluations, subpath /sets/:setId)

System diagnostics​

  • GET /health — backend/src/routes/health.ts (mount /health, subpath /)
  • GET /health/deep — backend/src/routes/health.ts (mount /health, subpath /deep)
  • GET /health/live — backend/src/routes/health.ts (mount /health, subpath /live)
  • GET /health/ready — backend/src/routes/health.ts (mount /health, subpath /ready)
  • GET /api/system — backend/src/routes/systemDiagnostics.ts (mount /api/system, subpath /)

User administration​

  • DELETE /api/users/:id — backend/src/routes/users.ts (mount /api/users, subpath /:id)
  • GET /api/users — backend/src/routes/users.ts (mount /api/users, subpath /)
  • GET /api/users/pending-approvals — backend/src/routes/users.ts (mount /api/users, subpath /pending-approvals)
  • PATCH /api/users/:id — backend/src/routes/users.ts (mount /api/users, subpath /:id)
  • PATCH /api/users/:id/approve — backend/src/routes/users.ts (mount /api/users, subpath /:id/approve)
  • PATCH /api/users/me/avatar — backend/src/routes/users.ts (mount /api/users, subpath /me/avatar)
  • POST /api/users — backend/src/routes/users.ts (mount /api/users, subpath /)
  • POST /api/users/:id/mfa/reset — backend/src/routes/users.ts (mount /api/users, subpath /:id/mfa/reset)

Authentication​

  • DELETE /api/auth/passkeys/:id — backend/src/routes/auth.ts (mount /api/auth, subpath /passkeys/:id)
  • DELETE /api/auth/sessions/:id — backend/src/routes/auth.ts (mount /api/auth, subpath /sessions/:id)
  • DELETE /api/auth/tokens/:id — backend/src/routes/auth.ts (mount /api/auth, subpath /tokens/:id)
  • GET /api/auth/encryption-key — backend/src/routes/auth.ts (mount /api/auth, subpath /encryption-key)
  • GET /api/auth/me — backend/src/routes/auth.ts (mount /api/auth, subpath /me)
  • GET /api/auth/mfa — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa)
  • GET /api/auth/mfa/policy — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/policy)
  • GET /api/auth/oauth/github — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/github)
  • GET /api/auth/oauth/github/callback — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/github/callback)
  • GET /api/auth/oauth/github/status — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/github/status)
  • GET /api/auth/oauth/huggingface — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/huggingface)
  • GET /api/auth/oauth/huggingface/callback — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/huggingface/callback)
  • GET /api/auth/oauth/huggingface/status — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/huggingface/status)
  • GET /api/auth/oauth/oidc — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/oidc)
  • GET /api/auth/oauth/oidc/callback — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/oidc/callback)
  • GET /api/auth/oauth/oidc/status — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/oidc/status)
  • GET /api/auth/passkeys — backend/src/routes/auth.ts (mount /api/auth, subpath /passkeys)
  • GET /api/auth/sessions — backend/src/routes/auth.ts (mount /api/auth, subpath /sessions)
  • GET /api/auth/system-info — backend/src/routes/auth.ts (mount /api/auth, subpath /system-info)
  • GET /api/auth/tokens — backend/src/routes/auth.ts (mount /api/auth, subpath /tokens)
  • GET /api/auth/verify — backend/src/routes/auth.ts (mount /api/auth, subpath /verify)
  • POST /api/auth/login — backend/src/routes/auth.ts (mount /api/auth, subpath /login)
  • POST /api/auth/logout — backend/src/routes/auth.ts (mount /api/auth, subpath /logout)
  • POST /api/auth/mfa/activate — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/activate)
  • POST /api/auth/mfa/activate-challenge — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/activate-challenge)
  • POST /api/auth/mfa/disable — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/disable)
  • POST /api/auth/mfa/enroll — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/enroll)
  • POST /api/auth/mfa/enroll-challenge — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/enroll-challenge)
  • POST /api/auth/mfa/recovery-codes — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/recovery-codes)
  • POST /api/auth/mfa/verify — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/verify)
  • POST /api/auth/oauth/exchange — backend/src/routes/auth.ts (mount /api/auth, subpath /oauth/exchange)
  • POST /api/auth/passkeys/login — backend/src/routes/auth.ts (mount /api/auth, subpath /passkeys/login)
  • POST /api/auth/passkeys/login-options — backend/src/routes/auth.ts (mount /api/auth, subpath /passkeys/login-options)
  • POST /api/auth/passkeys/register — backend/src/routes/auth.ts (mount /api/auth, subpath /passkeys/register)
  • POST /api/auth/passkeys/register-options — backend/src/routes/auth.ts (mount /api/auth, subpath /passkeys/register-options)
  • POST /api/auth/sessions/revoke-others — backend/src/routes/auth.ts (mount /api/auth, subpath /sessions/revoke-others)
  • POST /api/auth/signup — backend/src/routes/auth.ts (mount /api/auth, subpath /signup)
  • POST /api/auth/tokens — backend/src/routes/auth.ts (mount /api/auth, subpath /tokens)
  • POST /api/auth/websocket-ticket — backend/src/routes/auth.ts (mount /api/auth, subpath /websocket-ticket)
  • PUT /api/auth/mfa/policy — backend/src/routes/auth.ts (mount /api/auth, subpath /mfa/policy)

Access Control​

  • DELETE /api/access/grants/:id — backend/src/routes/access.ts (mount /api/access, subpath /grants/:id)
  • GET /api/access/grants — backend/src/routes/access.ts (mount /api/access, subpath /grants)
  • GET /api/access/principals — backend/src/routes/access.ts (mount /api/access, subpath /principals)
  • GET /api/access/principals/groups — backend/src/routes/access.ts (mount /api/access, subpath /principals/groups)
  • GET /api/access/shared-with-me — backend/src/routes/access.ts (mount /api/access, subpath /shared-with-me)
  • POST /api/access/grants — backend/src/routes/access.ts (mount /api/access, subpath /grants)
  • GET /api/audit — backend/src/routes/audit.ts (mount /api/audit, subpath /)
  • DELETE /api/groups/:id — backend/src/routes/groups.ts (mount /api/groups, subpath /:id)
  • DELETE /api/groups/:id/members/:userId — backend/src/routes/groups.ts (mount /api/groups, subpath /:id/members/:userId)
  • GET /api/groups — backend/src/routes/groups.ts (mount /api/groups, subpath /)
  • GET /api/groups/effective/:userId — backend/src/routes/groups.ts (mount /api/groups, subpath /effective/:userId)
  • PATCH /api/groups/:id — backend/src/routes/groups.ts (mount /api/groups, subpath /:id)
  • POST /api/groups — backend/src/routes/groups.ts (mount /api/groups, subpath /)
  • POST /api/groups/:id/members — backend/src/routes/groups.ts (mount /api/groups, subpath /:id/members)

Public API​

  • GET /v1/models — backend/src/routes/openaiCompat.ts (mount /v1, subpath /models)
  • POST /v1/chat/completions — backend/src/routes/openaiCompat.ts (mount /v1, subpath /chat/completions)

Data portability​

  • GET /api/preferences/export — backend/src/routes/preferences.ts (mount /api/preferences, subpath /export)
  • POST /api/preferences/import — backend/src/routes/preferences.ts (mount /api/preferences, subpath /import)
  • POST /api/preferences/import/preflight — backend/src/routes/preferences.ts (mount /api/preferences, subpath /import/preflight)

Document knowledge and retrieval​

  • DELETE /api/documents/:documentId — backend/src/routes/documents.ts (mount /api/documents, subpath /:documentId)
  • DELETE /api/documents/collections/:collectionId — backend/src/routes/documents.ts (mount /api/documents, subpath /collections/:collectionId)
  • GET /api/documents — backend/src/routes/documents.ts (mount /api/documents, subpath /)
  • GET /api/documents/:documentId — backend/src/routes/documents.ts (mount /api/documents, subpath /:documentId)
  • GET /api/documents/:documentId/source — backend/src/routes/documents.ts (mount /api/documents, subpath /:documentId/source)
  • GET /api/documents/collections — backend/src/routes/documents.ts (mount /api/documents, subpath /collections)
  • GET /api/documents/embeddings/status — backend/src/routes/documents.ts (mount /api/documents, subpath /embeddings/status)
  • GET /api/documents/session/:sessionId — backend/src/routes/documents.ts (mount /api/documents, subpath /session/:sessionId)
  • POST /api/documents/collections — backend/src/routes/documents.ts (mount /api/documents, subpath /collections)
  • POST /api/documents/embeddings/regenerate — backend/src/routes/documents.ts (mount /api/documents, subpath /embeddings/regenerate)
  • POST /api/documents/fetch-url — backend/src/routes/documents.ts (mount /api/documents, subpath /fetch-url)
  • POST /api/documents/search — backend/src/routes/documents.ts (mount /api/documents, subpath /search)
  • POST /api/documents/upload — backend/src/routes/documents.ts (mount /api/documents, subpath /upload)
  • PUT /api/documents/:documentId/collection — backend/src/routes/documents.ts (mount /api/documents, subpath /:documentId/collection)
  • GET /api/embeddings/models — backend/src/routes/embeddings.ts (mount /api/embeddings, subpath /models)

Persona memory​

  • DELETE /api/personas/:id/memory — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/memory)
  • GET /api/personas/:id/memory/core — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/memory/core)
  • GET /api/personas/:id/memory/stats — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/memory/stats)
  • GET /api/personas/:id/memory/status — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/memory/status)
  • POST /api/personas/:id/memory/consolidate — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/memory/consolidate)
  • POST /api/personas/:id/memory/decay — backend/src/routes/personas.ts (mount /api/personas, subpath /:id/memory/decay)
  • GET /api/search/access — backend/src/routes/search.ts (mount /api/search, subpath /access)
  • GET /api/search/app — backend/src/routes/search.ts (mount /api/search, subpath /app)
  • GET /api/search/config — backend/src/routes/search.ts (mount /api/search, subpath /config)
  • POST /api/search/test — backend/src/routes/search.ts (mount /api/search, subpath /test)
  • PUT /api/search/access — backend/src/routes/search.ts (mount /api/search, subpath /access)
  • PUT /api/search/config — backend/src/routes/search.ts (mount /api/search, subpath /config)

Settings and preferences​

  • GET /api/preferences — backend/src/routes/preferences.ts (mount /api/preferences, subpath /)
  • GET /api/preferences/default-theme — backend/src/routes/preferences.ts (mount /api/preferences, subpath /default-theme)
  • POST /api/preferences/embedding-settings/reset — backend/src/routes/preferences.ts (mount /api/preferences, subpath /embedding-settings/reset)
  • POST /api/preferences/generation-options/reset — backend/src/routes/preferences.ts (mount /api/preferences, subpath /generation-options/reset)
  • PUT /api/preferences — backend/src/routes/preferences.ts (mount /api/preferences, subpath /)
  • PUT /api/preferences/default-model — backend/src/routes/preferences.ts (mount /api/preferences, subpath /default-model)
  • PUT /api/preferences/default-theme — backend/src/routes/preferences.ts (mount /api/preferences, subpath /default-theme)
  • PUT /api/preferences/embedding-settings — backend/src/routes/preferences.ts (mount /api/preferences, subpath /embedding-settings)
  • PUT /api/preferences/generation-options — backend/src/routes/preferences.ts (mount /api/preferences, subpath /generation-options)
  • PUT /api/preferences/model-generation-options — backend/src/routes/preferences.ts (mount /api/preferences, subpath /model-generation-options)
  • PUT /api/preferences/system-message — backend/src/routes/preferences.ts (mount /api/preferences, subpath /system-message)

Speech input and output​

  • GET /api/stt/models — backend/src/routes/stt.ts (mount /api/stt, subpath /models)
  • POST /api/stt/transcribe — backend/src/routes/stt.ts (mount /api/stt, subpath /transcribe)
  • DELETE /api/tts/voice-profiles/:profileId — backend/src/routes/tts.ts (mount /api/tts, subpath /voice-profiles/:profileId)
  • GET /api/tts/models — backend/src/routes/tts.ts (mount /api/tts, subpath /models)
  • GET /api/tts/plugins — backend/src/routes/tts.ts (mount /api/tts, subpath /plugins)
  • GET /api/tts/voice-profiles — backend/src/routes/tts.ts (mount /api/tts, subpath /voice-profiles)
  • GET /api/tts/voices/:pluginId — backend/src/routes/tts.ts (mount /api/tts, subpath /voices/:pluginId)
  • POST /api/tts/generate — backend/src/routes/tts.ts (mount /api/tts, subpath /generate)
  • POST /api/tts/generate-base64 — backend/src/routes/tts.ts (mount /api/tts, subpath /generate-base64)
  • POST /api/tts/voice-clone — backend/src/routes/tts.ts (mount /api/tts, subpath /voice-clone)
  • POST /api/tts/voice-profiles/:profileId/revoke — backend/src/routes/tts.ts (mount /api/tts, subpath /voice-profiles/:profileId/revoke)
  • GET /api/voice-access — backend/src/routes/voiceAccess.ts (mount /api/voice-access, subpath /)
  • PUT /api/voice-access/:feature — backend/src/routes/voiceAccess.ts (mount /api/voice-access, subpath /:feature)

Hugging Face Hub​

  • GET /api/huggingface-hub/models — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /models)
  • GET /api/huggingface-hub/models/:author/:modelName — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /models/:author/:modelName)
  • GET /api/huggingface-hub/models/:author/:modelName/gguf — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /models/:author/:modelName/gguf)
  • GET /api/huggingface-hub/models/:author/:modelName/has-gguf — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /models/:author/:modelName/has-gguf)
  • GET /api/huggingface-hub/tasks — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /tasks)
  • GET /api/huggingface-hub/trending — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /trending)
  • POST /api/huggingface-hub/cache/clear — backend/src/routes/huggingfaceHub.ts (mount /api/huggingface-hub, subpath /cache/clear)

Strands engine​

  • DELETE /api/strands/sessions/:sessionId — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions/:sessionId)
  • GET /api/strands/access — backend/src/routes/strands.ts (mount /api/strands, subpath /access)
  • GET /api/strands/health — backend/src/routes/strands.ts (mount /api/strands, subpath /health)
  • GET /api/strands/models — backend/src/routes/strands.ts (mount /api/strands, subpath /models)
  • GET /api/strands/sessions — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions)
  • GET /api/strands/sessions/:sessionId — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions/:sessionId)
  • PATCH /api/strands/sessions/:sessionId — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions/:sessionId)
  • POST /api/strands/sessions — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions)
  • POST /api/strands/sessions/:sessionId/cancel — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions/:sessionId/cancel)
  • POST /api/strands/sessions/:sessionId/messages — backend/src/routes/strands.ts (mount /api/strands, subpath /sessions/:sessionId/messages)
  • PUT /api/strands/access — backend/src/routes/strands.ts (mount /api/strands, subpath /access)

Durable jobs and events​

  • GET /api/jobs — backend/src/routes/jobs.ts (mount /api/jobs, subpath /)
  • GET /api/jobs/:jobId — backend/src/routes/jobs.ts (mount /api/jobs, subpath /:jobId)
  • GET /api/jobs/:jobId/events — backend/src/routes/jobs.ts (mount /api/jobs, subpath /:jobId/events)
  • POST /api/jobs/:jobId/cancel — backend/src/routes/jobs.ts (mount /api/jobs, subpath /:jobId/cancel)

Solo and team deployment profiles​

No mounted Express endpoint. The executable boundary is the UI and/or source evidence recorded above.

Recovery and backup​

  • GET /api/recovery/drills — backend/src/routes/recovery.ts (mount /api/recovery, subpath /drills)
  • POST /api/recovery/drills/run — backend/src/routes/recovery.ts (mount /api/recovery, subpath /drills/run)

Exact WebSocket route inventory​

  • WEBSOCKET /ws — Chat, backend/src/websocketServer.ts; authentication evidence: backend/src/websocketServer.ts, scripts/test-websocket-tickets.mjs
  • WEBSOCKET /ws/work-terminal — Work, backend/src/websocketServer.ts; authentication evidence: backend/src/workTerminalServer.ts, scripts/test-websocket-tickets.mjs
  • WEBSOCKET /ws/work-screen — Work, backend/src/websocketServer.ts; authentication evidence: backend/src/workScreenServer.ts
  • WEBSOCKET /ws/work-audio — Work, backend/src/websocketServer.ts; authentication evidence: backend/src/workScreenServer.ts

Enforcement boundary​

The package gate parses TypeScript/JavaScript source, resolves every imported Express router to its literal application mount, and reconciles every literal router method/path declaration and WebSocket upgrade pathname one-for-one with this inventory. It fails on an unmounted route file, an unsupported router.route() builder, a dynamic route path, a missing or duplicate endpoint owner, missing WebSocket authentication evidence, a changed UI route, missing schema/manifest/default applicability, stale evidence, or a stale generated document.

Focused-test evidence is scoped to one exact named test(...) declaration and at least two behavior patterns inside that test body. Backend tests must be exact file arguments to test:package; Playwright specs must match normal discovery. The gate also proves that both runners execute in the normal pull-request and dev/main Format & Lint workflow.