Backend module catalog¶
Owned Python modules parsed without importing the application. Counts describe top-level declarations and are navigation aids, not complexity scores.
Regenerate with python pipeline/skills/technical_documentation/scripts/generate.py.
Module groups¶
| Group | Modules | Lines |
|---|---|---|
agent |
46 | 18246 |
api |
38 | 37705 |
app |
6 | 617 |
application root |
4 | 107 |
config |
9 | 992 |
data |
2 | 203 |
domains |
9 | 1020 |
mcp |
3 | 394 |
migrations |
33 | 1949 |
models |
12 | 1221 |
platform |
10 | 1012 |
scheduler |
2 | 1019 |
scripts |
3 | 130 |
security |
5 | 804 |
services |
148 | 48829 |
sh |
1 | 69 |
sync |
1 | 1 |
utils |
4 | 444 |
Total: 336 modules and 114762 source lines.
agent¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/agent/__init__.py |
0 | 0 | 0 | 0 | 0 | No module docstring |
backend/agent/action_confirmations.py |
755 | 0 | 28 | 0 | 22 | Persistent, scope-bound confirmations for consequential agent actions. |
backend/agent/agent_context.py |
1905 | 0 | 35 | 0 | 24 | Attached context sources for a Cognition agent. |
backend/agent/calendar_tools.py |
125 | 0 | 6 | 5 | 5 | Governed adapters for exact calendar reads and external mutations. |
backend/agent/contact_tools.py |
157 | 0 | 6 | 0 | 4 | Governed adapters for local contact maintenance. |
backend/agent/context_safety.py |
47 | 0 | 2 | 0 | 2 | Boundaries for untrusted evidence supplied to the agent. |
backend/agent/context_sources/__init__.py |
32 | 0 | 2 | 0 | 1 | Catalogue of large searchable sources an agent can attach (phase 3). |
backend/agent/context_sources/boe.py |
174 | 0 | 6 | 0 | 4 | BOE adapter: search the Spanish official gazette through its open API. |
backend/agent/conversation_memory.py |
28 | 0 | 1 | 0 | 1 | Deterministic, bounded conversation-memory compaction. |
backend/agent/directive_tools.py |
90 | 0 | 4 | 0 | 4 | No module docstring |
backend/agent/evals/__init__.py |
1 | 0 | 0 | 0 | 0 | Deterministic evaluation corpus for the universal agent contract. |
backend/agent/evals/response_runner.py |
99 | 0 | 5 | 0 | 3 | Run deterministic final-response quality evaluations without a model. |
backend/agent/evals/runner.py |
144 | 0 | 5 | 0 | 3 | Run the deterministic universal-turn evaluation corpus. |
backend/agent/factory.py |
4057 | 1 | 65 | 1 | 62 | No module docstring |
backend/agent/generated_tools/__init__.py |
3 | 0 | 0 | 0 | 0 | No module docstring |
backend/agent/generated_tools/creator.py |
226 | 0 | 4 | 0 | 4 | Tool Creator: The meta-tool that allows the agent to create new tools. |
backend/agent/generated_tools/dry_run.py |
139 | 2 | 1 | 0 | 3 | Dry-Run Wrapper: Preview external operations before execution. |
backend/agent/generated_tools/learning_loop.py |
218 | 2 | 0 | 0 | 2 | Learning Loop: Auto-correction and knowledge preservation for tool development. |
backend/agent/generated_tools/loader.py |
102 | 1 | 0 | 0 | 1 | Tool Loader: Dynamically loads approved tools at runtime. |
backend/agent/generated_tools/registry.py |
263 | 3 | 0 | 0 | 1 | Tool Registry: Persistent storage and lookup for generated tools. |
backend/agent/generated_tools/sandbox_runner.py |
187 | 1 | 5 | 0 | 3 | Run approved generated tools in a short-lived restricted subprocess. |
backend/agent/generated_tools/validator.py |
273 | 3 | 0 | 0 | 1 | Tool Validator: Validates auto-generated tool code for security. |
backend/agent/gnosi_tools.py |
2256 | 1 | 62 | 11 | 45 | Stable first-party Gnosi tools exposed to tool-capable chat models. |
backend/agent/graph.py |
47 | 1 | 1 | 0 | 1 | No module docstring |
backend/agent/internal_sources.py |
1593 | 0 | 59 | 0 | 17 | Scoped read adapters for first-party Gnosi data modules. |
backend/agent/job_tools.py |
83 | 0 | 7 | 0 | 6 | Governed tools for provider-neutral durable capability jobs. |
backend/agent/llm_wiki_tools.py |
120 | 0 | 4 | 0 | 4 | Governed agent adapters for the built-in LLM Wiki plugin. |
backend/agent/mail_tools.py |
168 | 0 | 10 | 8 | 8 | Governed adapters for exact mail reads and mutations. |
backend/agent/memory.py |
185 | 2 | 4 | 0 | 3 | No module docstring |
backend/agent/model_catalog.py |
529 | 0 | 24 | 0 | 20 | Provider → model catalog for the model-comparison activation workflow. |
backend/agent/model_reliability.py |
220 | 0 | 10 | 0 | 5 | Why a model call failed, recorded as evidence per provider:model. |
backend/agent/model_router.py |
552 | 1 | 14 | 0 | 13 | Data-driven, budget-aware model router. |
backend/agent/notion_tools.py |
76 | 0 | 5 | 5 | 5 | Governed adapters for connected Notion discovery and exact cloning. |
backend/agent/planning_tools.py |
167 | 0 | 13 | 12 | 12 | Governed tools over Gnosi's authoritative project-planning services. |
backend/agent/provider_resilience.py |
175 | 1 | 3 | 0 | 3 | Provider failover that is safe for cached, request-independent workflows. |
backend/agent/reader_tools.py |
288 | 0 | 16 | 0 | 13 | Governed tools for inspecting and analysing Gnosi Reader content. |
backend/agent/recovery.py |
39 | 0 | 2 | 0 | 2 | Safe, bounded recovery metadata for failed agent turns. |
backend/agent/semantic_interpreter.py |
113 | 0 | 5 | 0 | 3 | Bounded, multilingual interpretation before capability routing. |
backend/agent/social_tools.py |
142 | 0 | 8 | 7 | 7 | Governed adapters for Gnosi social reading, composition, and publishing. |
backend/agent/system_tools.py |
430 | 0 | 13 | 0 | 13 | No module docstring |
backend/agent/tools.py |
75 | 0 | 2 | 0 | 2 | No module docstring |
backend/agent/translation_tools.py |
70 | 0 | 3 | 3 | 3 | Governed adapters for the existing idempotent translation workflows. |
backend/agent/turn_contract.py |
980 | 0 | 17 | 0 | 9 | Provider-independent planning and deterministic response verification. |
backend/agent/vault_admin_tools.py |
333 | 0 | 11 | 0 | 10 | Governed adapters for Vault schema discovery and page organization. |
backend/agent/vault_tools.py |
436 | 0 | 15 | 0 | 14 | Knowledge tool belt: gives the agent HANDS on the vault (not just search). |
backend/agent/web_context.py |
144 | 0 | 3 | 0 | 3 | Fetching web pages attached to an agent's context (phase 2). |
api¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/api/__init__.py |
30 | 0 | 0 | 0 | 0 | No module docstring |
backend/api/agent_routes.py |
2883 | 9 | 50 | 22 | 40 | No module docstring |
backend/api/agent_skills_routes.py |
1004 | 7 | 47 | 1 | 25 | Settings APIs for governed agent skills and tools. |
backend/api/ai_routes.py |
800 | 6 | 18 | 13 | 15 | No module docstring |
backend/api/analytics_routes.py |
352 | 0 | 12 | 7 | 12 | No module docstring |
backend/api/auth_routes.py |
365 | 5 | 11 | 0 | 11 | Auth endpoints — register / login / logout / me. |
backend/api/calendar_routes.py |
776 | 0 | 28 | 18 | 21 | No module docstring |
backend/api/collab_routes.py |
262 | 2 | 3 | 1 | 4 | Real-time collaboration — presence + per-page message relay. |
backend/api/config_routes.py |
13 | 0 | 0 | 0 | 0 | Compatibility facade for the configuration settings router. |
backend/api/contacts_routes.py |
289 | 0 | 9 | 7 | 1 | No module docstring |
backend/api/credentials_routes.py |
30 | 0 | 0 | 0 | 0 | Compatibility facade for the secure credentials router. |
backend/api/env_routes.py |
22 | 0 | 0 | 0 | 0 | Compatibility facade for the local environment router. |
backend/api/google_auth_routes.py |
251 | 0 | 6 | 4 | 1 | No module docstring |
backend/api/handwriting_routes.py |
77 | 0 | 3 | 3 | 3 | LOCAL handwriting recognition endpoint (ink → text) using TrOCR. |
backend/api/identity_routes.py |
60 | 1 | 3 | 2 | 0 | No module docstring |
backend/api/integrations_routes.py |
428 | 0 | 17 | 12 | 16 | No module docstring |
backend/api/literature_routes.py |
377 | 15 | 33 | 15 | 0 | HTTP contracts for academic search and systematic literature review. |
backend/api/mail_routes.py |
1942 | 0 | 62 | 43 | 30 | No module docstring |
backend/api/meeting_routes.py |
58 | 0 | 3 | 2 | 2 | Endpoints for the AI meeting notetaker. |
backend/api/microsoft_auth_routes.py |
160 | 0 | 4 | 3 | 0 | Microsoft OAuth2 authentication routes. |
backend/api/notebook_routes.py |
305 | 4 | 16 | 2 | 1 | HTTP contracts for the grounded notebook workspace. |
backend/api/notion_oauth_routes.py |
176 | 0 | 8 | 4 | 3 | OAuth 2.1 to Notion's hosted MCP (mcp.notion.com) — for recreating views. |
backend/api/notion_routes.py |
748 | 3 | 24 | 13 | 13 | Endpoints for the Notion CLONE → Gnosi Vault. |
backend/api/planning_routes.py |
511 | 9 | 28 | 23 | 10 | API for normalized project-planning resources and allocation reports. |
backend/api/public_routes.py |
343 | 3 | 14 | 1 | 10 | Gnosi's public API with Personal Access Token (PAT) authentication. |
backend/api/reader.py |
697 | 1 | 30 | 1 | 31 | No module docstring |
backend/api/scheduler_routes.py |
100 | 1 | 6 | 6 | 6 | No module docstring |
backend/api/share_routes.py |
205 | 1 | 7 | 4 | 5 | External share links for single vault pages (Notion-style). |
backend/api/social_routes.py |
696 | 8 | 23 | 18 | 22 | No module docstring |
backend/api/system_routes.py |
673 | 4 | 14 | 9 | 13 | No module docstring |
backend/api/tools_routes.py |
164 | 3 | 6 | 5 | 6 | API Routes for Generated Tools Management. |
backend/api/vault_graph_routes.py |
25 | 0 | 1 | 1 | 1 | No module docstring |
backend/api/vault_routes.py |
21296 | 31 | 581 | 196 | 481 | No module docstring |
backend/api/vault_templates_routes.py |
246 | 2 | 9 | 0 | 7 | Vault template catalog, creation, export, and moderated submission routes. |
backend/api/vault_views_routes.py |
350 | 2 | 9 | 3 | 7 | vault_views_routes.py — API to manage per-page views. |
backend/api/vaults_routes.py |
280 | 2 | 10 | 0 | 9 | Vaults API (personal multi-vault mode): list, create and choose vaults. |
backend/api/virtual_fields.py |
676 | 0 | 32 | 0 | 26 | Virtual fields: derived properties computed by the backend at read-time. |
backend/api/workspace_routes.py |
35 | 0 | 0 | 0 | 0 | Compatibility facade for the workspace domain router. |
app¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/app/__init__.py |
5 | 0 | 0 | 0 | 0 | FastAPI composition for the Gnosi backend. |
backend/app/errors.py |
50 | 0 | 2 | 1 | 2 | Global HTTP error translation and private diagnostic notification. |
backend/app/factory.py |
53 | 0 | 2 | 1 | 1 | Typed construction of the Gnosi FastAPI application. |
backend/app/lifespan.py |
317 | 0 | 3 | 2 | 2 | Application startup, maintenance and shutdown lifecycle. |
backend/app/middleware.py |
30 | 0 | 1 | 0 | 1 | Ordered middleware composition for Gnosi's FastAPI application. |
backend/app/routes.py |
162 | 0 | 1 | 0 | 1 | Single ordered registry for every public Gnosi router. |
application root¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/__init__.py |
0 | 0 | 0 | 0 | 0 | No module docstring |
backend/patch_sources.py |
36 | 0 | 1 | 0 | 0 | No module docstring |
backend/scratch_sync.py |
30 | 0 | 1 | 0 | 0 | No module docstring |
backend/server.py |
41 | 0 | 0 | 0 | 0 | Stable Uvicorn and Electron entrypoint for the Gnosi backend. |
config¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/config/__init__.py |
0 | 0 | 0 | 0 | 0 | No module docstring |
backend/config/app_config.py |
201 | 1 | 4 | 0 | 4 | No module docstring |
backend/config/data_dir.py |
104 | 0 | 4 | 0 | 4 | Canonical per-device data directory resolution for Gnosi 3.x. |
backend/config/env_config.py |
269 | 0 | 16 | 0 | 12 | Environment loading with explicit Gnosi 3.x precedence and boundaries. |
backend/config/logger_config.py |
40 | 0 | 2 | 0 | 1 | No module docstring |
backend/config/mcp_config.py |
6 | 0 | 0 | 0 | 0 | No module docstring |
backend/config/paths_config.py |
188 | 0 | 1 | 0 | 1 | No module docstring |
backend/config/schema_keys.py |
109 | 0 | 2 | 0 | 2 | Candidate keys and aliases for data extraction from JSON and local Markdown. |
backend/config/text_normalization.py |
75 | 0 | 3 | 0 | 1 | No module docstring |
data¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/data/db.py |
128 | 1 | 4 | 0 | 5 | No module docstring |
backend/data/management_db.py |
75 | 0 | 4 | 0 | 1 | No module docstring |
domains¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/domains/__init__.py |
1 | 0 | 0 | 0 | 0 | Gnosi backend domain packages. |
backend/domains/configuration/__init__.py |
1 | 0 | 0 | 0 | 0 | Configuration domain. |
backend/domains/configuration/api/__init__.py |
1 | 0 | 0 | 0 | 0 | Configuration HTTP APIs. |
backend/domains/configuration/api/credentials.py |
208 | 2 | 5 | 5 | 5 | No module docstring |
backend/domains/configuration/api/environment.py |
177 | 0 | 4 | 2 | 4 | No module docstring |
backend/domains/configuration/api/settings.py |
204 | 0 | 3 | 2 | 1 | No module docstring |
backend/domains/workspace/__init__.py |
1 | 0 | 0 | 0 | 0 | Workspace domain. |
backend/domains/workspace/api/__init__.py |
1 | 0 | 0 | 0 | 0 | Workspace HTTP API. |
backend/domains/workspace/api/routes.py |
426 | 0 | 11 | 11 | 0 | No module docstring |
mcp¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/mcp/__init__.py |
0 | 0 | 0 | 0 | 0 | No module docstring |
backend/mcp/client.py |
285 | 3 | 1 | 1 | 2 | No module docstring |
backend/mcp/http_client.py |
109 | 1 | 2 | 0 | 3 | MCP client over HTTP (streamable) with Bearer OAuth. |
migrations¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/migrations/__init__.py |
1 | 0 | 0 | 0 | 0 | Versioned, recoverable schema migrations for Gnosi-owned databases. |
backend/migrations/alembic/env.py |
27 | 0 | 1 | 0 | 1 | Shared online-only Alembic environment for independent schema branches. |
backend/migrations/alembic/versions/actions_0001.py |
34 | 0 | 2 | 0 | 0 | Create the initial governed-action confirmation store. |
backend/migrations/alembic/versions/actions_0002.py |
39 | 0 | 2 | 0 | 0 | Track the execution lease claim time for governed actions. |
backend/migrations/alembic/versions/automations_0001.py |
42 | 0 | 2 | 0 | 0 | Create governed capability automation definitions and run history. |
backend/migrations/alembic/versions/capability_audit_0001.py |
29 | 0 | 2 | 0 | 0 | Create the governed capability audit log. |
backend/migrations/alembic/versions/evaluations_0001.py |
37 | 0 | 2 | 0 | 0 | Create the initial model-evaluation metadata store. |
backend/migrations/alembic/versions/health_0001.py |
27 | 0 | 2 | 0 | 0 | Create the capability-health history store. |
backend/migrations/alembic/versions/jobs_0001.py |
27 | 0 | 2 | 0 | 0 | Create the durable agent-job queue. |
backend/migrations/alembic/versions/management_0001.py |
106 | 0 | 2 | 0 | 0 | Create the legacy Gnosi management schema. |
backend/migrations/alembic/versions/management_0002.py |
33 | 0 | 2 | 0 | 0 | Add the first generation of access and authentication columns. |
backend/migrations/alembic/versions/management_0003.py |
34 | 0 | 2 | 0 | 0 | Add explicit account provenance. |
backend/migrations/alembic/versions/management_0004.py |
23 | 0 | 2 | 0 | 0 | Add stable vault slugs for Gnosi 2.0.6. |
backend/migrations/alembic/versions/management_0005.py |
22 | 0 | 2 | 0 | 0 | Repair the missing vault-slug index on upgraded 2.0.6 databases. |
backend/migrations/alembic/versions/notebooks_0001.py |
102 | 0 | 2 | 0 | 0 | Create the initial grounded-notebooks repository. |
backend/migrations/alembic/versions/notebooks_0002.py |
35 | 0 | 2 | 0 | 0 | Persist URL validators and the last URL validation time. |
backend/migrations/alembic/versions/notebooks_0003.py |
61 | 0 | 2 | 0 | 0 | Add notebook refresh progress, cancellation and retention state. |
backend/migrations/alembic/versions/notebooks_0004.py |
31 | 0 | 2 | 0 | 0 | Persist the selected source set for notebook analyses. |
backend/migrations/alembic/versions/notebooks_0005.py |
26 | 0 | 2 | 0 | 0 | Add notebook group visibility state. |
backend/migrations/alembic/versions/personal_memory_0001.py |
27 | 0 | 2 | 0 | 0 | Create the explicit personal-memory store. |
backend/migrations/alembic/versions/quality_0001.py |
43 | 0 | 2 | 0 | 0 | Create privacy-safe agent quality telemetry stores. |
backend/migrations/alembic/versions/replay_0001.py |
22 | 0 | 2 | 0 | 0 | Create the deterministic agent replay event store. |
backend/migrations/alembic/versions/semantic_memory_0001.py |
27 | 0 | 2 | 0 | 0 | Create the scoped semantic-association store. |
backend/migrations/alembic/versions/stream_journal_0001.py |
22 | 0 | 2 | 0 | 0 | Create the resumable agent-stream journal. |
backend/migrations/alembic/versions/tool_registry_0001.py |
25 | 0 | 2 | 0 | 0 | Create the generated-tool approval registry. |
backend/migrations/alembic/versions/turns_0001.py |
20 | 0 | 2 | 0 | 0 | Create the idempotent agent-turn claim store. |
backend/migrations/alembic/versions/vault_0001.py |
84 | 0 | 2 | 0 | 0 | Create the legacy per-vault relational schema. |
backend/migrations/alembic/versions/vault_0002.py |
23 | 0 | 2 | 0 | 0 | Persist full Reader article content. |
backend/migrations/alembic/versions/vault_0003.py |
29 | 0 | 2 | 0 | 0 | Add stable managed keys for PDF annotations. |
backend/migrations/coordinator.py |
76 | 1 | 3 | 0 | 4 | Explicit ownership map and startup coordinator for Gnosi SQLite stores. |
backend/migrations/families.py |
99 | 1 | 1 | 0 | 2 | Stable identities for each Gnosi-owned Alembic revision line. |
backend/migrations/runner.py |
364 | 2 | 19 | 0 | 6 | Guarded Alembic runner for Gnosi-owned SQLite databases. |
backend/migrations/schema_audit.py |
352 | 0 | 16 | 0 | 6 | Inventory SQLite schemas without reading application row values. |
models¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/models/__init__.py |
15 | 0 | 0 | 0 | 0 | No module docstring |
backend/models/_datetime_utils.py |
32 | 0 | 1 | 0 | 1 | Helpers to ensure datetime fields always come out with timezone |
backend/models/agent_skills.py |
323 | 11 | 2 | 0 | 11 | Typed contracts for agent skills and governed tools. |
backend/models/calendar.py |
18 | 1 | 0 | 0 | 1 | No module docstring |
backend/models/contact.py |
136 | 8 | 0 | 0 | 0 | No module docstring |
backend/models/mail.py |
182 | 15 | 0 | 0 | 0 | No module docstring |
backend/models/management.py |
208 | 17 | 0 | 0 | 2 | No module docstring |
backend/models/notification.py |
47 | 4 | 0 | 0 | 0 | No module docstring |
backend/models/pdf_annotation.py |
61 | 1 | 0 | 0 | 0 | Persistent annotations for PDFs opened in the Vault viewer. |
backend/models/reader.py |
128 | 11 | 0 | 0 | 3 | No module docstring |
backend/models/scheduled_post.py |
34 | 3 | 0 | 0 | 3 | Scheduled Posts Model |
backend/models/scheduler.py |
37 | 2 | 0 | 0 | 0 | No module docstring |
platform¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/platform/__init__.py |
1 | 0 | 0 | 0 | 0 | Provider-neutral adapters shared by Gnosi domains. |
backend/platform/files/__init__.py |
136 | 0 | 3 | 0 | 2 | Abstraction layer for cloud-on-demand storage providers. |
backend/platform/files/base.py |
106 | 1 | 0 | 0 | 1 | Base interface for cloud-on-demand storage providers. |
backend/platform/files/dropbox.py |
12 | 1 | 0 | 0 | 1 | Dropbox adapter for macOS File Provider based folders. |
backend/platform/files/gdrive.py |
54 | 1 | 0 | 0 | 1 | GoogleDriveProvider: vault over Google Drive (Drive for Desktop, macOS). |
backend/platform/files/icloud.py |
49 | 1 | 0 | 0 | 1 | iCloudDriveProvider: vault over iCloud Drive with the macOS File Provider. |
backend/platform/files/local.py |
28 | 1 | 0 | 0 | 1 | LocalProvider: vault on pure local disk, without files-on-demand. |
backend/platform/files/nextcloud.py |
107 | 1 | 0 | 0 | 1 | NextCloudProvider: vault over NextCloud Virtual Files (EXPERIMENTAL). |
backend/platform/files/on_demand.py |
429 | 1 | 3 | 0 | 4 | Provider-neutral support for vaults with files on demand. |
backend/platform/files/onedrive.py |
90 | 1 | 0 | 0 | 1 | OneDrive adapter for the provider-neutral files-on-demand runtime. |
scheduler¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/scheduler/__init__.py |
1 | 0 | 0 | 0 | 0 | No module docstring |
backend/scheduler/manager.py |
1018 | 2 | 0 | 0 | 1 | Scheduler Manager: Manages scheduled tasks using APScheduler. |
scripts¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/scripts/__init__.py |
0 | 0 | 0 | 0 | 0 | No module docstring |
backend/scripts/migrate_config.py |
66 | 0 | 1 | 0 | 0 | No module docstring |
backend/scripts/refresh_model_catalog.py |
64 | 0 | 2 | 0 | 0 | Regenerate the vendored model catalog from models.dev. |
security¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/security/__init__.py |
4 | 0 | 0 | 0 | 0 | No module docstring |
backend/security/ai_credentials.py |
324 | 0 | 11 | 0 | 3 | No module docstring |
backend/security/egress_policy.py |
31 | 0 | 1 | 0 | 0 | Conservative URL egress checks for generated/connector tools. |
backend/security/keychain_manager.py |
426 | 1 | 2 | 0 | 3 | Keychain Manager - Secure credentials storage using macOS Keychain. |
backend/security/secret_redaction.py |
19 | 0 | 1 | 0 | 0 | Redact common credentials before errors, spans or tool output are persisted. |
services¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/services/__init__.py |
0 | 0 | 0 | 0 | 0 | No module docstring |
backend/services/academic_connectors.py |
1199 | 1 | 52 | 26 | 19 | Authorized academic APIs, safe custom HTTP, and OAI-PMH parsing. |
backend/services/action_rules.py |
279 | 0 | 10 | 0 | 7 | Declarative action rules per table (table.action_rules block). |
backend/services/active_vault_middleware.py |
203 | 1 | 5 | 1 | 5 | Resolve canonical vault API routes and propagate the active vault context. |
backend/services/agent_cancellation.py |
195 | 1 | 11 | 1 | 10 | Cooperative cancellation for streamed agent turns. |
backend/services/agent_capability_conformance.py |
81 | 0 | 3 | 0 | 0 | Versioned conformance reporting for governed skills and tools. |
backend/services/agent_capability_contract.py |
46 | 0 | 2 | 0 | 2 | Versioned extension contract for governed agent capabilities. |
backend/services/agent_capability_health.py |
257 | 0 | 13 | 0 | 7 | Persistent, bounded health checks for governed runtime capabilities. |
backend/services/agent_evidence_security.py |
58 | 0 | 2 | 0 | 1 | Bounded semantic taint analysis for untrusted agent evidence. |
backend/services/agent_model_evaluations.py |
133 | 0 | 5 | 0 | 2 | Explicit privacy-safe evaluations for configured agent models. |
backend/services/agent_model_strategy.py |
186 | 0 | 6 | 0 | 5 | Profile-owned model routing for Gnosi agents. |
backend/services/agent_observability.py |
118 | 0 | 8 | 0 | 1 | Privacy-preserving local spans for end-to-end agent diagnostics. |
backend/services/agent_personal_memory.py |
194 | 0 | 11 | 0 | 0 | Explicit, editable long-term memory for Gnosi agents. |
backend/services/agent_quality_telemetry.py |
542 | 0 | 18 | 0 | 3 | Privacy-safe agent quality signals and reviewable evaluation candidates. |
backend/services/agent_replay.py |
95 | 0 | 5 | 0 | 1 | Privacy-safe turn replay metadata for diagnosing agent behavior. |
backend/services/agent_response_quality.py |
162 | 0 | 5 | 0 | 3 | Deterministic response-quality and evidence-conflict evaluation. |
backend/services/agent_semantic_memory.py |
172 | 0 | 8 | 0 | 6 | Reviewable Vault-scoped vocabulary associations for agent retrieval. |
backend/services/agent_skill_assignments.py |
308 | 4 | 2 | 0 | 5 | Revision-aware agent skill assignments and legacy migration. |
backend/services/agent_skill_catalog.py |
792 | 6 | 21 | 0 | 18 | Effective catalogs and runtime resolution for agent skills and tools. |
backend/services/agent_stream_journal.py |
114 | 0 | 7 | 0 | 0 | Short-lived encrypted replay journal for accepted agent streams. |
backend/services/agent_stream_protocol.py |
224 | 0 | 2 | 1 | 2 | Versioned, bounded protocol for streamed agent events. |
backend/services/article_extractor.py |
137 | 0 | 2 | 0 | 2 | Full-text extraction for RSS articles whose feed only ships an excerpt. |
backend/services/artificial_analysis.py |
668 | 1 | 19 | 0 | 16 | Artificial Analysis model-comparison feed. |
backend/services/audio_summarizer.py |
456 | 1 | 13 | 0 | 14 | No module docstring |
backend/services/auth_public_surface.py |
164 | 1 | 4 | 1 | 4 | The set of endpoints that must stay reachable without a session. |
backend/services/auth_service.py |
636 | 0 | 25 | 0 | 24 | Authentication service — JWT cookies + bcrypt password hashing. |
backend/services/builtin_plugins.py |
253 | 0 | 7 | 0 | 6 | Registry and state rules for Gnosi's optional built-in capabilities. |
backend/services/capability_audit.py |
240 | 0 | 8 | 0 | 3 | Bounded metadata-only audit log for governed capability execution. |
backend/services/capability_automations.py |
432 | 1 | 16 | 2 | 4 | Durable, budgeted automation definitions for governed agent skills. |
backend/services/capability_jobs.py |
236 | 1 | 16 | 0 | 5 | Provider-neutral facade for durable Gnosi capability jobs. |
backend/services/contacts_service.py |
215 | 1 | 0 | 0 | 0 | No module docstring |
backend/services/contacts_sync_engine.py |
717 | 4 | 2 | 0 | 3 | No module docstring |
backend/services/content_revision.py |
55 | 0 | 3 | 0 | 2 | Stable content revisions for confirmed filesystem operations. |
backend/services/context_vars.py |
33 | 0 | 2 | 0 | 1 | No module docstring |
backend/services/csl_styles.py |
124 | 0 | 3 | 0 | 3 | Management of CSL files on disk — listing and upload. |
backend/services/csl_type_resolver.py |
201 | 0 | 5 | 0 | 4 | Resolves the Vault's "Item Type" field across its value spaces. |
backend/services/data_dir_migration.py |
479 | 2 | 23 | 0 | 5 | Journaled and recoverable migration of Gnosi's per-device data directory. |
backend/services/drupal_sync_service.py |
529 | 2 | 19 | 9 | 18 | Drupal sync client (JSON:API + custom n8n_helper endpoints). |
backend/services/durable_job_queue.py |
246 | 0 | 19 | 0 | 8 | Small SQLite-backed queue for restart-safe background capabilities. |
backend/services/durable_job_worker.py |
229 | 2 | 7 | 0 | 4 | Process-local dispatcher for the durable capability queue. |
backend/services/feed_ingester.py |
167 | 0 | 2 | 0 | 2 | No module docstring |
backend/services/field_resolver.py |
211 | 0 | 11 | 0 | 9 | Field resolution by immutable ID or name (compatibility layer). |
backend/services/files_provider/__init__.py |
29 | 0 | 0 | 0 | 0 | Compatibility facade for the provider-neutral file platform. |
backend/services/files_provider/base.py |
5 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.base. |
backend/services/files_provider/dropbox.py |
5 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.dropbox. |
backend/services/files_provider/gdrive.py |
5 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.gdrive. |
backend/services/files_provider/icloud.py |
5 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.icloud. |
backend/services/files_provider/local.py |
5 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.local. |
backend/services/files_provider/nextcloud.py |
5 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.nextcloud. |
backend/services/files_provider/on_demand.py |
15 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.on_demand. |
backend/services/files_provider/onedrive.py |
15 | 0 | 0 | 0 | 0 | Compatibility facade for :mod:backend.platform.files.onedrive. |
backend/services/frontmatter_fallback.py |
65 | 0 | 1 | 0 | 1 | Tolerant frontmatter parser for when yaml.safe_load fails. |
backend/services/fx_rates.py |
188 | 0 | 9 | 0 | 5 | USD → user-currency conversion for the AI spend cap. |
backend/services/generated_tool_contributions.py |
159 | 0 | 6 | 0 | 2 | Expose approved generated tools to skills without granting them globally. |
backend/services/gnosi_ai_contributions.py |
693 | 0 | 9 | 0 | 2 | Governed core skills and tools for first-party Gnosi operations. |
backend/services/google_calendar_service.py |
306 | 0 | 7 | 0 | 7 | No module docstring |
backend/services/google_contacts_service.py |
335 | 0 | 7 | 0 | 7 | No module docstring |
backend/services/google_mail_service.py |
343 | 0 | 13 | 0 | 11 | No module docstring |
backend/services/graph_service.py |
958 | 1 | 8 | 0 | 8 | No module docstring |
backend/services/handwriting.py |
271 | 0 | 10 | 0 | 6 | Handwriting recognition (ink → text) LOCAL with TrOCR. |
backend/services/hybrid_calendar_service.py |
439 | 1 | 19 | 0 | 5 | Hybrid Calendar Service — queries Google Calendar and CalDAV directly without a vault. |
backend/services/hybrid_mail_service.py |
869 | 0 | 18 | 0 | 6 | Hybrid Mail Service — queries the Gmail API and IMAP directly without a vault. |
backend/services/imap_idle_service.py |
271 | 2 | 0 | 0 | 2 | IMAP IDLE service: push notifications when new messages arrive. |
backend/services/imap_mail_sync_service.py |
1340 | 1 | 5 | 0 | 3 | IMAP mail sync service. |
backend/services/import_dedup.py |
134 | 0 | 5 | 0 | 3 | Deduplication in POST /import-references. |
backend/services/integration_manager.py |
442 | 1 | 0 | 0 | 0 | No module docstring |
backend/services/library_paths.py |
25 | 0 | 2 | 0 | 2 | SINGLE resolution of the attachments folder: ALWAYS <vault>/Library. |
backend/services/literature_ai_service.py |
186 | 0 | 8 | 0 | 2 | Explicit, audited AI assistance for literature workflows. |
backend/services/literature_import_service.py |
250 | 0 | 7 | 1 | 5 | Atomic AcademicWork import into the designated Resources table. |
backend/services/literature_models.py |
351 | 0 | 21 | 0 | 10 | Canonical academic-work normalization and deterministic deduplication. |
backend/services/literature_review_service.py |
593 | 0 | 32 | 10 | 4 | Vault-native systematic-review records, blind decisions, and exports. |
backend/services/literature_service.py |
1036 | 0 | 50 | 4 | 11 | Federated academic search, repository configuration, and OAI indexing. |
backend/services/llm_wiki.py |
1160 | 0 | 29 | 0 | 11 | Incremental Zettelkasten ingestion for Gnosi's built-in LLM Wiki. |
backend/services/llm_wiki_actions.py |
185 | 1 | 4 | 1 | 5 | Application actions shared by LLM Wiki HTTP routes and agent tools. |
backend/services/llm_wiki_agent.py |
215 | 1 | 7 | 0 | 8 | Lifecycle and protection rules for the built-in LLM Wiki agent profile. |
backend/services/llm_wiki_ai_contributions.py |
263 | 0 | 4 | 0 | 2 | Declarative agent skills and governed tools contributed by LLM Wiki. |
backend/services/llm_wiki_assist.py |
185 | 0 | 7 | 0 | 4 | Accessible editing for the Brain Inbox (F6). |
backend/services/llm_wiki_config.py |
462 | 0 | 29 | 0 | 12 | Per-vault configuration for the built-in LLM Wiki ("Brain") plugin. |
backend/services/llm_wiki_extractors.py |
1002 | 1 | 36 | 0 | 10 | Ordered, provenance-preserving source extraction for LLM Wiki. |
backend/services/llm_wiki_indices.py |
923 | 0 | 44 | 0 | 17 | Deterministic managed indexes and logs for the LLM Wiki Brain table. |
backend/services/llm_wiki_lint.py |
296 | 0 | 8 | 0 | 3 | LLM Wiki (Brain) lint — the "Lint" operation of Karpathy's pattern. |
backend/services/llm_wiki_pdf_annotations.py |
302 | 0 | 9 | 0 | 2 | Persistent PDF highlights generated from grounded LLM Wiki citations. |
backend/services/llm_wiki_storage.py |
454 | 0 | 29 | 0 | 11 | Durable jobs, provenance manifests, and evidence snapshots for LLM Wiki. |
backend/services/llm_wiki_suggestions.py |
280 | 0 | 13 | 0 | 10 | Read-only connection proposals for the Brain. |
backend/services/lookup_normalizers.py |
557 | 0 | 10 | 0 | 8 | Normalizers: raw payload from each lookup source → canonical Zotero item. |
backend/services/mail_ingester.py |
460 | 0 | 10 | 0 | 10 | Newsletter ingestion via POP3 (STARTTLS). |
backend/services/mail_inline_images.py |
313 | 0 | 11 | 0 | 10 | Converts vault images referenced in an email body into inline |
backend/services/mail_metadata_manager.py |
50 | 1 | 0 | 0 | 0 | No module docstring |
backend/services/marketplace_http.py |
109 | 2 | 2 | 0 | 3 | Bounded public HTTP access for marketplace indexes and packages. |
backend/services/marketplace_submission.py |
85 | 1 | 2 | 0 | 3 | Optional broker client for moderated marketplace submissions. |
backend/services/mcp_tool_contributions.py |
94 | 0 | 3 | 0 | 1 | Governed read-only MCP tools exposed for explicit skill composition. |
backend/services/media_service.py |
1002 | 1 | 0 | 0 | 0 | No module docstring |
backend/services/meeting_notes.py |
161 | 0 | 6 | 0 | 3 | AI-powered meeting minutes taker orchestrator. |
backend/services/meeting_reminders.py |
328 | 0 | 15 | 0 | 4 | AI-powered meeting reminder engine (agenda). |
backend/services/microsoft_mail_service.py |
397 | 0 | 20 | 0 | 8 | Microsoft Graph API mail service. |
backend/services/notebook_service.py |
2873 | 1 | 73 | 0 | 22 | Local, revisioned storage and retrieval for grounded notebooks. |
backend/services/notion_attachments.py |
182 | 0 | 8 | 0 | 6 | Downloading Notion attachments (clone) → local Vault, with path rewriting. |
backend/services/notion_clone.py |
636 | 1 | 13 | 0 | 12 | Orchestrator for the EXACT CLONE of Notion → Gnosi (into a new folder, Notion = source of truth). |
backend/services/notion_clone_verify.py |
217 | 0 | 5 | 0 | 5 | Health check of a Notion clone (Notion ↔ vault clone). |
backend/services/notion_importer.py |
532 | 1 | 15 | 0 | 11 | Notion importer (public REST API) → Gnosi Vault. |
backend/services/notion_mcp.py |
202 | 0 | 12 | 0 | 5 | Access to Notion's hosted MCP (for view recreation — Phase 2). |
backend/services/notion_mcp_md.py |
297 | 0 | 15 | 0 | 9 | Converter from Notion MCP's rich Markdown → Gnosi Markdown (for the exact CLONE). |
backend/services/notion_schema_config.py |
92 | 0 | 3 | 0 | 3 | Notion schema conversion ↔ SchemaConfigModal format (configurable import/clone). |
backend/services/notion_view_recreator.py |
522 | 0 | 19 | 0 | 18 | Recreator of embedded Notion views (Phase 2, via hosted MCP). |
backend/services/oauth2_helpers.py |
175 | 1 | 5 | 0 | 6 | OAuth2 helpers shared by IMAP+XOAUTH2 and SMTP+XOAUTH2. |
backend/services/option_catalogs.py |
413 | 0 | 19 | 0 | 14 | Rich option catalogs, semantic field roles, and per-table seeds. |
backend/services/page_sidecar.py |
225 | 0 | 11 | 0 | 11 | Sidecar I/O for internal page metadata. |
backend/services/path_resolver.py |
85 | 1 | 0 | 0 | 1 | No module docstring |
backend/services/planning_engine.py |
296 | 2 | 7 | 0 | 7 | Deterministic, rebuildable scheduling for Gnosi project planning. |
backend/services/planning_scheduler.py |
134 | 0 | 7 | 0 | 4 | Coalesced, ETag-safe project schedule refreshes triggered by page changes. |
backend/services/plugin_access.py |
42 | 0 | 2 | 1 | 2 | FastAPI guards for optional per-vault capabilities. |
backend/services/plugin_ai_contributions.py |
516 | 0 | 15 | 0 | 6 | Governed AI contributions from installed third-party plugins. |
backend/services/plugin_catalog.py |
235 | 0 | 10 | 0 | 7 | Plugin catalog/gallery (phase 2.2 of plugin_system.md). |
backend/services/plugin_dispatcher.py |
306 | 0 | 13 | 0 | 7 | Dispatcher: joins the event bus with the data sandbox (phase 3). |
backend/services/plugin_events.py |
107 | 0 | 3 | 0 | 3 | Vault event bus for data plugins (phase 3). |
backend/services/plugin_sandbox.py |
226 | 0 | 4 | 0 | 3 | Data sandbox: runs a third-party plugin inside a restricted Node (phase 3). |
backend/services/plugin_signing.py |
148 | 0 | 8 | 0 | 6 | Plugin signing and trust (phase 3 of plugin_system.md). |
backend/services/plugin_system.py |
468 | 1 | 14 | 0 | 13 | Gnosi plugin system v2 — discovery, manifest and permissions. |
backend/services/project_planning.py |
393 | 2 | 13 | 0 | 11 | Vault-scoped storage and pure calculations for project planning resources. |
backend/services/provider_health.py |
87 | 1 | 6 | 0 | 5 | Process-local provider circuit breaker with bounded cooldowns. |
backend/services/reader_analysis.py |
1057 | 1 | 42 | 0 | 9 | Durable hierarchical analysis for large Reader collections. |
backend/services/recursos_zotero_mapping.py |
71 | 0 | 1 | 0 | 1 | Bidirectional mapping between Recursos columns and Zotero fields. |
backend/services/reference_table_config.py |
63 | 0 | 2 | 0 | 2 | Storage for the Vault's "References Table" designation. |
backend/services/references_io.py |
556 | 0 | 19 | 0 | 10 | Import/Export BibTeX and RIS ↔ Recursos fields (Gnosi). |
backend/services/relation_links.py |
151 | 0 | 6 | 0 | 5 | Relation wikilinks in the frontmatter — shared helpers. |
backend/services/relation_sync.py |
129 | 0 | 5 | 0 | 4 | Bidirectional relation sync — pure logic. |
backend/services/rule_engine.py |
1001 | 1 | 1 | 0 | 1 | No module docstring |
backend/services/social_clients.py |
587 | 4 | 0 | 0 | 4 | Social Network API Clients |
backend/services/social_compose.py |
144 | 0 | 5 | 0 | 5 | AI layer for composing social media posts. |
backend/services/social_store.py |
206 | 0 | 6 | 4 | 6 | Persistence of social posts in a Vault table. |
backend/services/table_system_dates.py |
266 | 0 | 10 | 0 | 6 | System creation and modification date fields for Vault tables. |
backend/services/tool_runtime.py |
171 | 0 | 7 | 0 | 5 | Runtime contract for bounded, observable tool calls. |
backend/services/transcription.py |
109 | 0 | 5 | 0 | 2 | Local audio transcription with faster-whisper (CTranslate2, WITHOUT torch). |
backend/services/translation_helpers.py |
343 | 0 | 15 | 0 | 14 | Pure helpers for content translation (translate_row / translate_page skills). |
backend/services/translation_index.py |
104 | 0 | 6 | 0 | 4 | Local translation index for translate-row idempotency. |
backend/services/turn_idempotency.py |
41 | 0 | 3 | 0 | 0 | Durable turn claims preventing duplicate concurrent execution. |
backend/services/user_skill_store.py |
302 | 4 | 3 | 0 | 4 | Portable per-vault storage for user-authored declarative skills. |
backend/services/vault_calendar_sync_service.py |
210 | 1 | 0 | 0 | 0 | No module docstring |
backend/services/vault_file_index.py |
360 | 0 | 12 | 0 | 12 | vault_file_index.py — Vault file/folder name index. |
backend/services/vault_mail_sync_service.py |
206 | 1 | 0 | 0 | 0 | No module docstring |
backend/services/vault_routing.py |
95 | 0 | 6 | 0 | 6 | Canonical vault slug helpers shared by routing and management APIs. |
backend/services/vault_templates.py |
491 | 1 | 17 | 0 | 10 | Verified Vault template catalogs, packages, exports, and installation. |
backend/services/vault_warmup.py |
127 | 0 | 3 | 1 | 3 | Proactive warmup of the vault's CRITICAL files (OneDrive online-only). |
backend/services/view_snapshot.py |
943 | 0 | 33 | 0 | 29 | Snapshot of the results of a view embedded in the markdown body. |
backend/services/web_clipper.py |
257 | 0 | 9 | 0 | 6 | Web Clipper as a configurable plugin: destination table and field mapping. |
backend/services/workspace_service.py |
312 | 1 | 5 | 0 | 4 | No module docstring |
backend/services/zotero_schema.py |
558 | 0 | 0 | 0 | 0 | GENERATED — DO NOT EDIT. Source: pipeline/skills/zotero_schema/schema.json. Regenerate with pipeline/skills/zotero_schema/scripts/build_constants.py. |
backend/services/zotero_to_recursos_mapper.py |
148 | 0 | 3 | 0 | 3 | Declarative Zotero item → Recursos columns dict mapper. |
sh¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/sh/init_management.py |
69 | 0 | 1 | 0 | 0 | No module docstring |
sync¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/sync/__init__.py |
1 | 0 | 0 | 0 | 0 | No module docstring |
utils¶
| Module | Lines | Classes | Functions | Async | Documented declarations | Purpose signal |
|---|---|---|---|---|---|---|
backend/utils/cache.py |
98 | 1 | 0 | 0 | 1 | Thread-safe in-memory cache with TTL and bounded size. |
backend/utils/errors.py |
49 | 0 | 1 | 0 | 1 | Safe error handling helpers for HTTP responses. |
backend/utils/http_retry.py |
54 | 0 | 1 | 0 | 1 | Tolerant parsing of the HTTP Retry-After header (RFC 7231). |
backend/utils/safe_io.py |
243 | 0 | 11 | 0 | 11 | safe_io.py — Atomic and cloud-safe filesystem helpers. |