{ "openapi": "3.1.0", "info": { "title": "Open Notebook API", "description": "API for Open Notebook - Research Assistant", "version": "0.2.2" }, "paths": { "/api/auth/status": { "get": { "tags": [ "auth", "auth" ], "summary": "Get Auth Status", "description": "Check if authentication is enabled.\nReturns whether a password is required to access the API.", "operationId": "get_auth_status_api_auth_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/config": { "get": { "tags": [ "config" ], "summary": "Get Config", "description": "Get frontend configuration.\n\nReturns version information and health status.\nNote: The frontend determines the API URL via its own runtime-config endpoint,\nso this endpoint no longer returns apiUrl.\n\nAlso checks for version updates from GitHub (with caching and error handling).", "operationId": "get_config_api_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/notebooks": { "get": { "tags": [ "notebooks" ], "summary": "Get Notebooks", "description": "Get all notebooks with optional filtering and ordering.", "operationId": "get_notebooks_api_notebooks_get", "parameters": [ { "name": "archived", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Filter by archived status", "title": "Archived" }, "description": "Filter by archived status" }, { "name": "order_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Order by field and direction", "default": "updated desc", "title": "Order By" }, "description": "Order by field and direction" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NotebookResponse" }, "title": "Response Get Notebooks Api Notebooks Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "notebooks" ], "summary": "Create Notebook", "description": "Create a new notebook.", "operationId": "create_notebook_api_notebooks_post", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotebookCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotebookResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/notebooks/{notebook_id}": { "get": { "tags": [ "notebooks" ], "summary": "Get Notebook", "description": "Get a specific notebook by ID.", "operationId": "get_notebook_api_notebooks__notebook_id__get", "parameters": [ { "name": "notebook_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Notebook Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotebookResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "notebooks" ], "summary": "Update Notebook", "description": "Update a notebook.", "operationId": "update_notebook_api_notebooks__notebook_id__put", "parameters": [ { "name": "notebook_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Notebook Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotebookUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotebookResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "notebooks" ], "summary": "Delete Notebook", "description": "Delete a notebook.", "operationId": "delete_notebook_api_notebooks__notebook_id__delete", "parameters": [ { "name": "notebook_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Notebook Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/notebooks/{notebook_id}/sources/{source_id}": { "post": { "tags": [ "notebooks" ], "summary": "Add Source To Notebook", "description": "Add an existing source to a notebook (create the reference).", "operationId": "add_source_to_notebook_api_notebooks__notebook_id__sources__source_id__post", "parameters": [ { "name": "notebook_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Notebook Id" } }, { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "notebooks" ], "summary": "Remove Source From Notebook", "description": "Remove a source from a notebook (delete the reference).", "operationId": "remove_source_from_notebook_api_notebooks__notebook_id__sources__source_id__delete", "parameters": [ { "name": "notebook_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Notebook Id" } }, { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/search": { "post": { "tags": [ "search" ], "summary": "Search Knowledge Base", "description": "Search the knowledge base using text or vector search.", "operationId": "search_knowledge_base_api_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/search/ask": { "post": { "tags": [ "search" ], "summary": "Ask Knowledge Base", "description": "Ask the knowledge base a question using AI models.", "operationId": "ask_knowledge_base_api_search_ask_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AskRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/search/ask/simple": { "post": { "tags": [ "search" ], "summary": "Ask Knowledge Base Simple", "description": "Ask the knowledge base a question and return a simple response (non-streaming).", "operationId": "ask_knowledge_base_simple_api_search_ask_simple_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AskRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AskResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/models": { "get": { "tags": [ "models" ], "summary": "Get Models", "description": "Get all configured models with optional type filtering.", "operationId": "get_models_api_models_get", "parameters": [ { "name": "type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by model type", "title": "Type" }, "description": "Filter by model type" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ModelResponse" }, "title": "Response Get Models Api Models Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "models" ], "summary": "Create Model", "description": "Create a new model configuration.", "operationId": "create_model_api_models_post", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/models/{model_id}": { "delete": { "tags": [ "models" ], "summary": "Delete Model", "description": "Delete a model configuration.", "operationId": "delete_model_api_models__model_id__delete", "parameters": [ { "name": "model_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/models/defaults": { "get": { "tags": [ "models" ], "summary": "Get Default Models", "description": "Get default model assignments.", "operationId": "get_default_models_api_models_defaults_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultModelsResponse" } } } } } }, "put": { "tags": [ "models" ], "summary": "Update Default Models", "description": "Update default model assignments.", "operationId": "update_default_models_api_models_defaults_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultModelsResponse" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultModelsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/models/providers": { "get": { "tags": [ "models" ], "summary": "Get Provider Availability", "description": "Get provider availability based on environment variables.", "operationId": "get_provider_availability_api_models_providers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderAvailabilityResponse" } } } } } } }, "/api/transformations": { "get": { "tags": [ "transformations" ], "summary": "Get Transformations", "description": "Get all transformations.", "operationId": "get_transformations_api_transformations_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TransformationResponse" }, "type": "array", "title": "Response Get Transformations Api Transformations Get" } } } } } }, "post": { "tags": [ "transformations" ], "summary": "Create Transformation", "description": "Create a new transformation.", "operationId": "create_transformation_api_transformations_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/transformations/execute": { "post": { "tags": [ "transformations" ], "summary": "Execute Transformation", "description": "Execute a transformation on input text.", "operationId": "execute_transformation_api_transformations_execute_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationExecuteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationExecuteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/transformations/default-prompt": { "get": { "tags": [ "transformations" ], "summary": "Get Default Prompt", "description": "Get the default transformation prompt.", "operationId": "get_default_prompt_api_transformations_default_prompt_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultPromptResponse" } } } } } }, "put": { "tags": [ "transformations" ], "summary": "Update Default Prompt", "description": "Update the default transformation prompt.", "operationId": "update_default_prompt_api_transformations_default_prompt_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultPromptUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultPromptResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/transformations/{transformation_id}": { "get": { "tags": [ "transformations" ], "summary": "Get Transformation", "description": "Get a specific transformation by ID.", "operationId": "get_transformation_api_transformations__transformation_id__get", "parameters": [ { "name": "transformation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Transformation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "transformations" ], "summary": "Update Transformation", "description": "Update a transformation.", "operationId": "update_transformation_api_transformations__transformation_id__put", "parameters": [ { "name": "transformation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Transformation Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "transformations" ], "summary": "Delete Transformation", "description": "Delete a transformation.", "operationId": "delete_transformation_api_transformations__transformation_id__delete", "parameters": [ { "name": "transformation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Transformation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/notes": { "get": { "tags": [ "notes" ], "summary": "Get Notes", "description": "Get all notes with optional notebook filtering.", "operationId": "get_notes_api_notes_get", "parameters": [ { "name": "notebook_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by notebook ID", "title": "Notebook Id" }, "description": "Filter by notebook ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteResponse" }, "title": "Response Get Notes Api Notes Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "notes" ], "summary": "Create Note", "description": "Create a new note.", "operationId": "create_note_api_notes_post", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/notes/{note_id}": { "get": { "tags": [ "notes" ], "summary": "Get Note", "description": "Get a specific note by ID.", "operationId": "get_note_api_notes__note_id__get", "parameters": [ { "name": "note_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Note Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "notes" ], "summary": "Update Note", "description": "Update a note.", "operationId": "update_note_api_notes__note_id__put", "parameters": [ { "name": "note_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Note Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "notes" ], "summary": "Delete Note", "description": "Delete a note.", "operationId": "delete_note_api_notes__note_id__delete", "parameters": [ { "name": "note_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Note Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/embed": { "post": { "tags": [ "embedding" ], "summary": "Embed Content", "description": "Embed content for vector search.", "operationId": "embed_content_api_embed_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmbedRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmbedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/embeddings/rebuild": { "post": { "tags": [ "embeddings" ], "summary": "Start Rebuild", "description": "Start a background job to rebuild embeddings.\n\n- **mode**: \"existing\" (re-embed items with embeddings) or \"all\" (embed everything)\n- **include_sources**: Include sources in rebuild (default: true)\n- **include_notes**: Include notes in rebuild (default: true)\n- **include_insights**: Include insights in rebuild (default: true)\n\nReturns command ID to track progress and estimated item count.", "operationId": "start_rebuild_api_embeddings_rebuild_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RebuildRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RebuildResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/embeddings/rebuild/{command_id}/status": { "get": { "tags": [ "embeddings" ], "summary": "Get Rebuild Status", "description": "Get the status of a rebuild operation.\n\nReturns:\n- **status**: queued, running, completed, failed\n- **progress**: processed count, total count, percentage\n- **stats**: breakdown by type (sources, notes, insights, failed)\n- **timestamps**: started_at, completed_at", "operationId": "get_rebuild_status_api_embeddings_rebuild__command_id__status_get", "parameters": [ { "name": "command_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Command Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RebuildStatusResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/settings": { "get": { "tags": [ "settings" ], "summary": "Get Settings", "description": "Get all application settings.", "operationId": "get_settings_api_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsResponse" } } } } } }, "put": { "tags": [ "settings" ], "summary": "Update Settings", "description": "Update application settings.", "operationId": "update_settings_api_settings_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SettingsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/notebooks/{notebook_id}/context": { "post": { "tags": [ "context" ], "summary": "Get Notebook Context", "description": "Get context for a notebook based on configuration.", "operationId": "get_notebook_context_api_notebooks__notebook_id__context_post", "parameters": [ { "name": "notebook_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Notebook Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContextRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContextResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources": { "get": { "tags": [ "sources" ], "summary": "Get Sources", "description": "Get sources with pagination and sorting support.", "operationId": "get_sources_api_sources_get", "parameters": [ { "name": "notebook_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by notebook ID", "title": "Notebook Id" }, "description": "Filter by notebook ID" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Number of sources to return (1-100)", "default": 50, "title": "Limit" }, "description": "Number of sources to return (1-100)" }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "description": "Number of sources to skip", "default": 0, "title": "Offset" }, "description": "Number of sources to skip" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Field to sort by (created or updated)", "default": "updated", "title": "Sort By" }, "description": "Field to sort by (created or updated)" }, { "name": "sort_order", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort order (asc or desc)", "default": "desc", "title": "Sort Order" }, "description": "Sort order (asc or desc)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceListResponse" }, "title": "Response Get Sources Api Sources Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "sources" ], "summary": "Create Source", "description": "Create a new source with support for both JSON and multipart form data.", "operationId": "create_source_api_sources_post", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_create_source_api_sources_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/json": { "post": { "tags": [ "sources" ], "summary": "Create Source Json", "description": "Create a new source using JSON payload (legacy endpoint for backward compatibility).", "operationId": "create_source_json_api_sources_json_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}": { "get": { "tags": [ "sources" ], "summary": "Get Source", "description": "Get a specific source by ID.", "operationId": "get_source_api_sources__source_id__get", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "sources" ], "summary": "Update Source", "description": "Update a source.", "operationId": "update_source_api_sources__source_id__put", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "sources" ], "summary": "Delete Source", "description": "Delete a source.", "operationId": "delete_source_api_sources__source_id__delete", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/download": { "head": { "tags": [ "sources" ], "summary": "Check Source File", "description": "Check if a source has a downloadable file.", "operationId": "check_source_file_api_sources__source_id__download_head", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "sources" ], "summary": "Download Source File", "description": "Download the original file associated with an uploaded source.", "operationId": "download_source_file_api_sources__source_id__download_get", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/status": { "get": { "tags": [ "sources" ], "summary": "Get Source Status", "description": "Get processing status for a source.", "operationId": "get_source_status_api_sources__source_id__status_get", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceStatusResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/retry": { "post": { "tags": [ "sources" ], "summary": "Retry Source Processing", "description": "Retry processing for a failed or stuck source.", "operationId": "retry_source_processing_api_sources__source_id__retry_post", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/insights": { "get": { "tags": [ "sources" ], "summary": "Get Source Insights", "description": "Get all insights for a specific source.", "operationId": "get_source_insights_api_sources__source_id__insights_get", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceInsightResponse" }, "title": "Response Get Source Insights Api Sources Source Id Insights Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "sources" ], "summary": "Create Source Insight", "description": "Create a new insight for a source by running a transformation.", "operationId": "create_source_insight_api_sources__source_id__insights_post", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSourceInsightRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceInsightResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/insights/{insight_id}": { "get": { "tags": [ "insights" ], "summary": "Get Insight", "description": "Get a specific insight by ID.", "operationId": "get_insight_api_insights__insight_id__get", "parameters": [ { "name": "insight_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Insight Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceInsightResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "insights" ], "summary": "Delete Insight", "description": "Delete a specific insight.", "operationId": "delete_insight_api_insights__insight_id__delete", "parameters": [ { "name": "insight_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Insight Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/insights/{insight_id}/save-as-note": { "post": { "tags": [ "insights" ], "summary": "Save Insight As Note", "description": "Convert an insight to a note.", "operationId": "save_insight_as_note_api_insights__insight_id__save_as_note_post", "parameters": [ { "name": "insight_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Insight Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveAsNoteRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/commands/jobs": { "post": { "tags": [ "commands" ], "summary": "Execute Command", "description": "Submit a command for background processing.\nReturns immediately with job ID for status tracking.\n\nExample request:\n{\n \"command\": \"process_text\",\n \"app\": \"open_notebook\", \n \"input\": { \n \"text\": \"Hello world\", \n \"operation\": \"uppercase\" \n }\n}", "operationId": "execute_command_api_commands_jobs_post", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommandExecutionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommandJobResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "commands" ], "summary": "List Command Jobs", "description": "List command jobs with optional filtering", "operationId": "list_command_jobs_api_commands_jobs_get", "parameters": [ { "name": "command_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by command name", "title": "Command Filter" }, "description": "Filter by command name" }, { "name": "status_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status", "title": "Status Filter" }, "description": "Filter by status" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Maximum number of jobs to return", "default": 50, "title": "Limit" }, "description": "Maximum number of jobs to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "additionalProperties": true }, "title": "Response List Command Jobs Api Commands Jobs Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/commands/jobs/{job_id}": { "get": { "tags": [ "commands" ], "summary": "Get Command Job Status", "description": "Get the status of a specific command job", "operationId": "get_command_job_status_api_commands_jobs__job_id__get", "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommandJobStatusResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "commands" ], "summary": "Cancel Command Job", "description": "Cancel a running command job", "operationId": "cancel_command_job_api_commands_jobs__job_id__delete", "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/commands/registry/debug": { "get": { "tags": [ "commands" ], "summary": "Debug Registry", "description": "Debug endpoint to see what commands are registered", "operationId": "debug_registry_api_commands_registry_debug_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/podcasts/generate": { "post": { "tags": [ "podcasts" ], "summary": "Generate Podcast", "description": "Generate a podcast episode using Episode Profiles.\nReturns immediately with job ID for status tracking.", "operationId": "generate_podcast_api_podcasts_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PodcastGenerationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PodcastGenerationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/podcasts/jobs/{job_id}": { "get": { "tags": [ "podcasts" ], "summary": "Get Podcast Job Status", "description": "Get the status of a podcast generation job", "operationId": "get_podcast_job_status_api_podcasts_jobs__job_id__get", "parameters": [ { "name": "job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/podcasts/episodes": { "get": { "tags": [ "podcasts" ], "summary": "List Podcast Episodes", "description": "List all podcast episodes", "operationId": "list_podcast_episodes_api_podcasts_episodes_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PodcastEpisodeResponse" }, "type": "array", "title": "Response List Podcast Episodes Api Podcasts Episodes Get" } } } } } } }, "/api/podcasts/episodes/{episode_id}": { "get": { "tags": [ "podcasts" ], "summary": "Get Podcast Episode", "description": "Get a specific podcast episode", "operationId": "get_podcast_episode_api_podcasts_episodes__episode_id__get", "parameters": [ { "name": "episode_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Episode Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PodcastEpisodeResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "podcasts" ], "summary": "Delete Podcast Episode", "description": "Delete a podcast episode and its associated audio file", "operationId": "delete_podcast_episode_api_podcasts_episodes__episode_id__delete", "parameters": [ { "name": "episode_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Episode Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/podcasts/episodes/{episode_id}/audio": { "get": { "tags": [ "podcasts" ], "summary": "Stream Podcast Episode Audio", "description": "Stream the audio file associated with a podcast episode", "operationId": "stream_podcast_episode_audio_api_podcasts_episodes__episode_id__audio_get", "parameters": [ { "name": "episode_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Episode Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/episode-profiles": { "get": { "tags": [ "episode-profiles" ], "summary": "List Episode Profiles", "description": "List all available episode profiles", "operationId": "list_episode_profiles_api_episode_profiles_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/EpisodeProfileResponse" }, "type": "array", "title": "Response List Episode Profiles Api Episode Profiles Get" } } } } } }, "post": { "tags": [ "episode-profiles" ], "summary": "Create Episode Profile", "description": "Create a new episode profile", "operationId": "create_episode_profile_api_episode_profiles_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpisodeProfileCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpisodeProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/episode-profiles/{profile_name}": { "get": { "tags": [ "episode-profiles" ], "summary": "Get Episode Profile", "description": "Get a specific episode profile by name", "operationId": "get_episode_profile_api_episode_profiles__profile_name__get", "parameters": [ { "name": "profile_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpisodeProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/episode-profiles/{profile_id}": { "put": { "tags": [ "episode-profiles" ], "summary": "Update Episode Profile", "description": "Update an existing episode profile", "operationId": "update_episode_profile_api_episode_profiles__profile_id__put", "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpisodeProfileCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpisodeProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "episode-profiles" ], "summary": "Delete Episode Profile", "description": "Delete an episode profile", "operationId": "delete_episode_profile_api_episode_profiles__profile_id__delete", "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/episode-profiles/{profile_id}/duplicate": { "post": { "tags": [ "episode-profiles" ], "summary": "Duplicate Episode Profile", "description": "Duplicate an episode profile", "operationId": "duplicate_episode_profile_api_episode_profiles__profile_id__duplicate_post", "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EpisodeProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/speaker-profiles": { "get": { "tags": [ "speaker-profiles" ], "summary": "List Speaker Profiles", "description": "List all available speaker profiles", "operationId": "list_speaker_profiles_api_speaker_profiles_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SpeakerProfileResponse" }, "type": "array", "title": "Response List Speaker Profiles Api Speaker Profiles Get" } } } } } }, "post": { "tags": [ "speaker-profiles" ], "summary": "Create Speaker Profile", "description": "Create a new speaker profile", "operationId": "create_speaker_profile_api_speaker_profiles_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeakerProfileCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeakerProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/speaker-profiles/{profile_name}": { "get": { "tags": [ "speaker-profiles" ], "summary": "Get Speaker Profile", "description": "Get a specific speaker profile by name", "operationId": "get_speaker_profile_api_speaker_profiles__profile_name__get", "parameters": [ { "name": "profile_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeakerProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/speaker-profiles/{profile_id}": { "put": { "tags": [ "speaker-profiles" ], "summary": "Update Speaker Profile", "description": "Update an existing speaker profile", "operationId": "update_speaker_profile_api_speaker_profiles__profile_id__put", "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeakerProfileCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeakerProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "speaker-profiles" ], "summary": "Delete Speaker Profile", "description": "Delete a speaker profile", "operationId": "delete_speaker_profile_api_speaker_profiles__profile_id__delete", "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/speaker-profiles/{profile_id}/duplicate": { "post": { "tags": [ "speaker-profiles" ], "summary": "Duplicate Speaker Profile", "description": "Duplicate a speaker profile", "operationId": "duplicate_speaker_profile_api_speaker_profiles__profile_id__duplicate_post", "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpeakerProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/chat/sessions": { "get": { "tags": [ "chat" ], "summary": "Get Sessions", "description": "Get all chat sessions for a notebook.", "operationId": "get_sessions_api_chat_sessions_get", "parameters": [ { "name": "notebook_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Notebook ID", "title": "Notebook Id" }, "description": "Notebook ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ChatSessionResponse" }, "title": "Response Get Sessions Api Chat Sessions Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "chat" ], "summary": "Create Session", "description": "Create a new chat session.", "operationId": "create_session_api_chat_sessions_post", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSessionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChatSessionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/chat/sessions/{session_id}": { "get": { "tags": [ "chat" ], "summary": "Get Session", "description": "Get a specific session with its messages.", "operationId": "get_session_api_chat_sessions__session_id__get", "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Session Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChatSessionWithMessagesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "chat" ], "summary": "Update Session", "description": "Update session title.", "operationId": "update_session_api_chat_sessions__session_id__put", "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Session Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSessionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChatSessionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "chat" ], "summary": "Delete Session", "description": "Delete a chat session.", "operationId": "delete_session_api_chat_sessions__session_id__delete", "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Session Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__routers__source_chat__SuccessResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/chat/execute": { "post": { "tags": [ "chat" ], "summary": "Execute Chat", "description": "Execute a chat request and get AI response.", "operationId": "execute_chat_api_chat_execute_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecuteChatRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecuteChatResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/chat/context": { "post": { "tags": [ "chat" ], "summary": "Build Context", "description": "Build context for a notebook based on context configuration.", "operationId": "build_context_api_chat_context_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BuildContextRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BuildContextResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/chat/sessions": { "post": { "tags": [ "source-chat" ], "summary": "Create Source Chat Session", "description": "Create a new chat session for a source.", "operationId": "create_source_chat_session_api_sources__source_id__chat_sessions_post", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Source ID", "title": "Source Id" }, "description": "Source ID" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSourceChatSessionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceChatSessionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "source-chat" ], "summary": "Get Source Chat Sessions", "description": "Get all chat sessions for a source.", "operationId": "get_source_chat_sessions_api_sources__source_id__chat_sessions_get", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Source ID", "title": "Source Id" }, "description": "Source ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SourceChatSessionResponse" }, "title": "Response Get Source Chat Sessions Api Sources Source Id Chat Sessions Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/chat/sessions/{session_id}": { "get": { "tags": [ "source-chat" ], "summary": "Get Source Chat Session", "description": "Get a specific source chat session with its messages.", "operationId": "get_source_chat_session_api_sources__source_id__chat_sessions__session_id__get", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Source ID", "title": "Source Id" }, "description": "Source ID" }, { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Session ID", "title": "Session Id" }, "description": "Session ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceChatSessionWithMessagesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "source-chat" ], "summary": "Update Source Chat Session", "description": "Update source chat session title and/or model override.", "operationId": "update_source_chat_session_api_sources__source_id__chat_sessions__session_id__put", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Source ID", "title": "Source Id" }, "description": "Source ID" }, { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Session ID", "title": "Session Id" }, "description": "Session ID" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSourceChatSessionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceChatSessionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "source-chat" ], "summary": "Delete Source Chat Session", "description": "Delete a source chat session.", "operationId": "delete_source_chat_session_api_sources__source_id__chat_sessions__session_id__delete", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Source ID", "title": "Source Id" }, "description": "Source ID" }, { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Session ID", "title": "Session Id" }, "description": "Session ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__routers__source_chat__SuccessResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/sources/{source_id}/chat/sessions/{session_id}/messages": { "post": { "tags": [ "source-chat" ], "summary": "Send Message To Source Chat", "description": "Send a message to source chat session with SSE streaming response.", "operationId": "send_message_to_source_chat_api_sources__source_id__chat_sessions__session_id__messages_post", "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Source ID", "title": "Source Id" }, "description": "Source ID" }, { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "description": "Session ID", "title": "Session Id" }, "description": "Session ID" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendMessageRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/": { "get": { "summary": "Root", "operationId": "root__get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/health": { "get": { "summary": "Health", "operationId": "health_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } } }, "components": { "schemas": { "AskRequest": { "properties": { "question": { "type": "string", "title": "Question", "description": "Question to ask the knowledge base" }, "strategy_model": { "type": "string", "title": "Strategy Model", "description": "Model ID for query strategy" }, "answer_model": { "type": "string", "title": "Answer Model", "description": "Model ID for individual answers" }, "final_answer_model": { "type": "string", "title": "Final Answer Model", "description": "Model ID for final answer" } }, "type": "object", "required": [ "question", "strategy_model", "answer_model", "final_answer_model" ], "title": "AskRequest" }, "AskResponse": { "properties": { "answer": { "type": "string", "title": "Answer", "description": "Final answer from the knowledge base" }, "question": { "type": "string", "title": "Question", "description": "Original question" } }, "type": "object", "required": [ "answer", "question" ], "title": "AskResponse" }, "AssetModel": { "properties": { "file_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "File Path" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "type": "object", "title": "AssetModel" }, "Body_create_source_api_sources_post": { "properties": { "type": { "type": "string", "title": "Type" }, "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id" }, "notebooks": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebooks" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "transformations": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transformations" }, "embed": { "type": "string", "title": "Embed", "default": "false" }, "delete_source": { "type": "string", "title": "Delete Source", "default": "false" }, "async_processing": { "type": "string", "title": "Async Processing", "default": "false" }, "file": { "anyOf": [ { "type": "string", "format": "binary" }, { "type": "null" } ], "title": "File" } }, "type": "object", "required": [ "type" ], "title": "Body_create_source_api_sources_post" }, "BuildContextRequest": { "properties": { "notebook_id": { "type": "string", "title": "Notebook Id", "description": "Notebook ID" }, "context_config": { "additionalProperties": true, "type": "object", "title": "Context Config", "description": "Context configuration" } }, "type": "object", "required": [ "notebook_id", "context_config" ], "title": "BuildContextRequest" }, "BuildContextResponse": { "properties": { "context": { "additionalProperties": true, "type": "object", "title": "Context", "description": "Built context data" }, "token_count": { "type": "integer", "title": "Token Count", "description": "Estimated token count" }, "char_count": { "type": "integer", "title": "Char Count", "description": "Character count" } }, "type": "object", "required": [ "context", "token_count", "char_count" ], "title": "BuildContextResponse" }, "ChatSessionResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Session ID" }, "title": { "type": "string", "title": "Title", "description": "Session title" }, "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id", "description": "Notebook ID" }, "created": { "type": "string", "title": "Created", "description": "Creation timestamp" }, "updated": { "type": "string", "title": "Updated", "description": "Last update timestamp" }, "message_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Message Count", "description": "Number of messages in session" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Model override for this session" } }, "type": "object", "required": [ "id", "title", "created", "updated" ], "title": "ChatSessionResponse" }, "ChatSessionWithMessagesResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Session ID" }, "title": { "type": "string", "title": "Title", "description": "Session title" }, "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id", "description": "Notebook ID" }, "created": { "type": "string", "title": "Created", "description": "Creation timestamp" }, "updated": { "type": "string", "title": "Updated", "description": "Last update timestamp" }, "message_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Message Count", "description": "Number of messages in session" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Model override for this session" }, "messages": { "items": { "$ref": "#/components/schemas/api__routers__chat__ChatMessage" }, "type": "array", "title": "Messages", "description": "Session messages" } }, "type": "object", "required": [ "id", "title", "created", "updated" ], "title": "ChatSessionWithMessagesResponse" }, "CommandExecutionRequest": { "properties": { "command": { "type": "string", "title": "Command", "description": "Command function name (e.g., 'process_text')" }, "app": { "type": "string", "title": "App", "description": "Application name (e.g., 'open_notebook')" }, "input": { "additionalProperties": true, "type": "object", "title": "Input", "description": "Arguments to pass to the command" } }, "type": "object", "required": [ "command", "app", "input" ], "title": "CommandExecutionRequest" }, "CommandJobResponse": { "properties": { "job_id": { "type": "string", "title": "Job Id" }, "status": { "type": "string", "title": "Status" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "job_id", "status", "message" ], "title": "CommandJobResponse" }, "CommandJobStatusResponse": { "properties": { "job_id": { "type": "string", "title": "Job Id" }, "status": { "type": "string", "title": "Status" }, "result": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Result" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "created": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created" }, "updated": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated" }, "progress": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Progress" } }, "type": "object", "required": [ "job_id", "status" ], "title": "CommandJobStatusResponse" }, "ContextConfig": { "properties": { "sources": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Sources", "description": "Source inclusion config {source_id: level}" }, "notes": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Notes", "description": "Note inclusion config {note_id: level}" } }, "type": "object", "title": "ContextConfig" }, "ContextIndicator": { "properties": { "sources": { "items": { "type": "string" }, "type": "array", "title": "Sources", "description": "Source IDs used in context" }, "insights": { "items": { "type": "string" }, "type": "array", "title": "Insights", "description": "Insight IDs used in context" }, "notes": { "items": { "type": "string" }, "type": "array", "title": "Notes", "description": "Note IDs used in context" } }, "type": "object", "title": "ContextIndicator" }, "ContextRequest": { "properties": { "notebook_id": { "type": "string", "title": "Notebook Id", "description": "Notebook ID to get context for" }, "context_config": { "anyOf": [ { "$ref": "#/components/schemas/ContextConfig" }, { "type": "null" } ], "description": "Context configuration" } }, "type": "object", "required": [ "notebook_id" ], "title": "ContextRequest" }, "ContextResponse": { "properties": { "notebook_id": { "type": "string", "title": "Notebook Id" }, "sources": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Sources", "description": "Source context data" }, "notes": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Notes", "description": "Note context data" }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens", "description": "Estimated token count" } }, "type": "object", "required": [ "notebook_id", "sources", "notes" ], "title": "ContextResponse" }, "CreateSessionRequest": { "properties": { "notebook_id": { "type": "string", "title": "Notebook Id", "description": "Notebook ID to create session for" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Optional session title" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Optional model override for this session" } }, "type": "object", "required": [ "notebook_id" ], "title": "CreateSessionRequest" }, "CreateSourceChatSessionRequest": { "properties": { "source_id": { "type": "string", "title": "Source Id", "description": "Source ID to create chat session for" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Optional session title" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Optional model override for this session" } }, "type": "object", "required": [ "source_id" ], "title": "CreateSourceChatSessionRequest" }, "CreateSourceInsightRequest": { "properties": { "transformation_id": { "type": "string", "title": "Transformation Id", "description": "ID of transformation to apply" }, "model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Id", "description": "Model ID (uses default if not provided)" } }, "type": "object", "required": [ "transformation_id" ], "title": "CreateSourceInsightRequest" }, "DefaultModelsResponse": { "properties": { "default_chat_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Chat Model" }, "default_transformation_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Transformation Model" }, "large_context_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Large Context Model" }, "default_text_to_speech_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Text To Speech Model" }, "default_speech_to_text_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Speech To Text Model" }, "default_embedding_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Embedding Model" }, "default_tools_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Tools Model" } }, "type": "object", "title": "DefaultModelsResponse" }, "DefaultPromptResponse": { "properties": { "transformation_instructions": { "type": "string", "title": "Transformation Instructions", "description": "Default transformation instructions" } }, "type": "object", "required": [ "transformation_instructions" ], "title": "DefaultPromptResponse" }, "DefaultPromptUpdate": { "properties": { "transformation_instructions": { "type": "string", "title": "Transformation Instructions", "description": "Default transformation instructions" } }, "type": "object", "required": [ "transformation_instructions" ], "title": "DefaultPromptUpdate" }, "EmbedRequest": { "properties": { "item_id": { "type": "string", "title": "Item Id", "description": "ID of the item to embed" }, "item_type": { "type": "string", "title": "Item Type", "description": "Type of item (source, note)" }, "async_processing": { "type": "boolean", "title": "Async Processing", "description": "Process asynchronously in background", "default": false } }, "type": "object", "required": [ "item_id", "item_type" ], "title": "EmbedRequest" }, "EmbedResponse": { "properties": { "success": { "type": "boolean", "title": "Success", "description": "Whether embedding was successful" }, "message": { "type": "string", "title": "Message", "description": "Result message" }, "item_id": { "type": "string", "title": "Item Id", "description": "ID of the item that was embedded" }, "item_type": { "type": "string", "title": "Item Type", "description": "Type of item that was embedded" }, "command_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command Id", "description": "Command ID for async processing" } }, "type": "object", "required": [ "success", "message", "item_id", "item_type" ], "title": "EmbedResponse" }, "EpisodeProfileCreate": { "properties": { "name": { "type": "string", "title": "Name", "description": "Unique profile name" }, "description": { "type": "string", "title": "Description", "description": "Profile description", "default": "" }, "speaker_config": { "type": "string", "title": "Speaker Config", "description": "Reference to speaker profile name" }, "outline_provider": { "type": "string", "title": "Outline Provider", "description": "AI provider for outline generation" }, "outline_model": { "type": "string", "title": "Outline Model", "description": "AI model for outline generation" }, "transcript_provider": { "type": "string", "title": "Transcript Provider", "description": "AI provider for transcript generation" }, "transcript_model": { "type": "string", "title": "Transcript Model", "description": "AI model for transcript generation" }, "default_briefing": { "type": "string", "title": "Default Briefing", "description": "Default briefing template" }, "num_segments": { "type": "integer", "title": "Num Segments", "description": "Number of podcast segments", "default": 5 } }, "type": "object", "required": [ "name", "speaker_config", "outline_provider", "outline_model", "transcript_provider", "transcript_model", "default_briefing" ], "title": "EpisodeProfileCreate" }, "EpisodeProfileResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "speaker_config": { "type": "string", "title": "Speaker Config" }, "outline_provider": { "type": "string", "title": "Outline Provider" }, "outline_model": { "type": "string", "title": "Outline Model" }, "transcript_provider": { "type": "string", "title": "Transcript Provider" }, "transcript_model": { "type": "string", "title": "Transcript Model" }, "default_briefing": { "type": "string", "title": "Default Briefing" }, "num_segments": { "type": "integer", "title": "Num Segments" } }, "type": "object", "required": [ "id", "name", "description", "speaker_config", "outline_provider", "outline_model", "transcript_provider", "transcript_model", "default_briefing", "num_segments" ], "title": "EpisodeProfileResponse" }, "ExecuteChatRequest": { "properties": { "session_id": { "type": "string", "title": "Session Id", "description": "Chat session ID" }, "message": { "type": "string", "title": "Message", "description": "User message content" }, "context": { "additionalProperties": true, "type": "object", "title": "Context", "description": "Chat context with sources and notes" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Optional model override for this message" } }, "type": "object", "required": [ "session_id", "message", "context" ], "title": "ExecuteChatRequest" }, "ExecuteChatResponse": { "properties": { "session_id": { "type": "string", "title": "Session Id", "description": "Session ID" }, "messages": { "items": { "$ref": "#/components/schemas/api__routers__chat__ChatMessage" }, "type": "array", "title": "Messages", "description": "Updated message list" } }, "type": "object", "required": [ "session_id", "messages" ], "title": "ExecuteChatResponse" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "ModelCreate": { "properties": { "name": { "type": "string", "title": "Name", "description": "Model name (e.g., gpt-5-mini, claude, gemini)" }, "provider": { "type": "string", "title": "Provider", "description": "Provider name (e.g., openai, anthropic, gemini)" }, "type": { "type": "string", "title": "Type", "description": "Model type (language, embedding, text_to_speech, speech_to_text)" } }, "type": "object", "required": [ "name", "provider", "type" ], "title": "ModelCreate" }, "ModelResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "provider": { "type": "string", "title": "Provider" }, "type": { "type": "string", "title": "Type" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" } }, "type": "object", "required": [ "id", "name", "provider", "type", "created", "updated" ], "title": "ModelResponse" }, "NoteCreate": { "properties": { "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Note title" }, "content": { "type": "string", "title": "Content", "description": "Note content" }, "note_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Note Type", "description": "Type of note (human, ai)", "default": "human" }, "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id", "description": "Notebook ID to add the note to" } }, "type": "object", "required": [ "content" ], "title": "NoteCreate" }, "NoteResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content" }, "note_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Note Type" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" } }, "type": "object", "required": [ "id", "title", "content", "note_type", "created", "updated" ], "title": "NoteResponse" }, "NoteUpdate": { "properties": { "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Note title" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content", "description": "Note content" }, "note_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Note Type", "description": "Type of note (human, ai)" } }, "type": "object", "title": "NoteUpdate" }, "NotebookCreate": { "properties": { "name": { "type": "string", "title": "Name", "description": "Name of the notebook" }, "description": { "type": "string", "title": "Description", "description": "Description of the notebook", "default": "" } }, "type": "object", "required": [ "name" ], "title": "NotebookCreate" }, "NotebookResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "archived": { "type": "boolean", "title": "Archived" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" }, "source_count": { "type": "integer", "title": "Source Count" }, "note_count": { "type": "integer", "title": "Note Count" } }, "type": "object", "required": [ "id", "name", "description", "archived", "created", "updated", "source_count", "note_count" ], "title": "NotebookResponse" }, "NotebookUpdate": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name of the notebook" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Description of the notebook" }, "archived": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Archived", "description": "Whether the notebook is archived" } }, "type": "object", "title": "NotebookUpdate" }, "PodcastEpisodeResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "episode_profile": { "additionalProperties": true, "type": "object", "title": "Episode Profile" }, "speaker_profile": { "additionalProperties": true, "type": "object", "title": "Speaker Profile" }, "briefing": { "type": "string", "title": "Briefing" }, "audio_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Audio File" }, "audio_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Audio Url" }, "transcript": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Transcript" }, "outline": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Outline" }, "created": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created" }, "job_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Job Status" } }, "type": "object", "required": [ "id", "name", "episode_profile", "speaker_profile", "briefing" ], "title": "PodcastEpisodeResponse" }, "PodcastGenerationRequest": { "properties": { "episode_profile": { "type": "string", "title": "Episode Profile" }, "speaker_profile": { "type": "string", "title": "Speaker Profile" }, "episode_name": { "type": "string", "title": "Episode Name" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content" }, "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id" }, "briefing_suffix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Briefing Suffix" } }, "type": "object", "required": [ "episode_profile", "speaker_profile", "episode_name" ], "title": "PodcastGenerationRequest", "description": "Request model for podcast generation" }, "PodcastGenerationResponse": { "properties": { "job_id": { "type": "string", "title": "Job Id" }, "status": { "type": "string", "title": "Status" }, "message": { "type": "string", "title": "Message" }, "episode_profile": { "type": "string", "title": "Episode Profile" }, "episode_name": { "type": "string", "title": "Episode Name" } }, "type": "object", "required": [ "job_id", "status", "message", "episode_profile", "episode_name" ], "title": "PodcastGenerationResponse", "description": "Response model for podcast generation" }, "ProviderAvailabilityResponse": { "properties": { "available": { "items": { "type": "string" }, "type": "array", "title": "Available", "description": "List of available providers" }, "unavailable": { "items": { "type": "string" }, "type": "array", "title": "Unavailable", "description": "List of unavailable providers" }, "supported_types": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object", "title": "Supported Types", "description": "Provider to supported model types mapping" } }, "type": "object", "required": [ "available", "unavailable", "supported_types" ], "title": "ProviderAvailabilityResponse" }, "RebuildProgress": { "properties": { "processed": { "type": "integer", "title": "Processed", "description": "Number of items processed" }, "total": { "type": "integer", "title": "Total", "description": "Total items to process" }, "percentage": { "type": "number", "title": "Percentage", "description": "Progress percentage" } }, "type": "object", "required": [ "processed", "total", "percentage" ], "title": "RebuildProgress" }, "RebuildRequest": { "properties": { "mode": { "type": "string", "enum": [ "existing", "all" ], "title": "Mode", "description": "Rebuild mode: 'existing' only re-embeds items with embeddings, 'all' embeds everything" }, "include_sources": { "type": "boolean", "title": "Include Sources", "description": "Include sources in rebuild", "default": true }, "include_notes": { "type": "boolean", "title": "Include Notes", "description": "Include notes in rebuild", "default": true }, "include_insights": { "type": "boolean", "title": "Include Insights", "description": "Include insights in rebuild", "default": true } }, "type": "object", "required": [ "mode" ], "title": "RebuildRequest" }, "RebuildResponse": { "properties": { "command_id": { "type": "string", "title": "Command Id", "description": "Command ID to track progress" }, "total_items": { "type": "integer", "title": "Total Items", "description": "Estimated number of items to process" }, "message": { "type": "string", "title": "Message", "description": "Status message" } }, "type": "object", "required": [ "command_id", "total_items", "message" ], "title": "RebuildResponse" }, "RebuildStats": { "properties": { "sources": { "type": "integer", "title": "Sources", "description": "Sources processed", "default": 0 }, "notes": { "type": "integer", "title": "Notes", "description": "Notes processed", "default": 0 }, "insights": { "type": "integer", "title": "Insights", "description": "Insights processed", "default": 0 }, "failed": { "type": "integer", "title": "Failed", "description": "Failed items", "default": 0 } }, "type": "object", "title": "RebuildStats" }, "RebuildStatusResponse": { "properties": { "command_id": { "type": "string", "title": "Command Id", "description": "Command ID" }, "status": { "type": "string", "title": "Status", "description": "Status: queued, running, completed, failed" }, "progress": { "anyOf": [ { "$ref": "#/components/schemas/RebuildProgress" }, { "type": "null" } ] }, "stats": { "anyOf": [ { "$ref": "#/components/schemas/RebuildStats" }, { "type": "null" } ] }, "started_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Started At" }, "completed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Completed At" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" } }, "type": "object", "required": [ "command_id", "status" ], "title": "RebuildStatusResponse" }, "SaveAsNoteRequest": { "properties": { "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id", "description": "Notebook ID to add note to" } }, "type": "object", "title": "SaveAsNoteRequest" }, "SearchRequest": { "properties": { "query": { "type": "string", "title": "Query", "description": "Search query" }, "type": { "type": "string", "enum": [ "text", "vector" ], "title": "Type", "description": "Search type", "default": "text" }, "limit": { "type": "integer", "maximum": 1000.0, "title": "Limit", "description": "Maximum number of results", "default": 100 }, "search_sources": { "type": "boolean", "title": "Search Sources", "description": "Include sources in search", "default": true }, "search_notes": { "type": "boolean", "title": "Search Notes", "description": "Include notes in search", "default": true }, "minimum_score": { "type": "number", "maximum": 1.0, "minimum": 0.0, "title": "Minimum Score", "description": "Minimum score for vector search", "default": 0.2 } }, "type": "object", "required": [ "query" ], "title": "SearchRequest" }, "SearchResponse": { "properties": { "results": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Results", "description": "Search results" }, "total_count": { "type": "integer", "title": "Total Count", "description": "Total number of results" }, "search_type": { "type": "string", "title": "Search Type", "description": "Type of search performed" } }, "type": "object", "required": [ "results", "total_count", "search_type" ], "title": "SearchResponse" }, "SendMessageRequest": { "properties": { "message": { "type": "string", "title": "Message", "description": "User message content" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Optional model override for this message" } }, "type": "object", "required": [ "message" ], "title": "SendMessageRequest" }, "SettingsResponse": { "properties": { "default_content_processing_engine_doc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Content Processing Engine Doc" }, "default_content_processing_engine_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Content Processing Engine Url" }, "default_embedding_option": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Embedding Option" }, "auto_delete_files": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Delete Files" }, "youtube_preferred_languages": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Youtube Preferred Languages" } }, "type": "object", "title": "SettingsResponse" }, "SettingsUpdate": { "properties": { "default_content_processing_engine_doc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Content Processing Engine Doc" }, "default_content_processing_engine_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Content Processing Engine Url" }, "default_embedding_option": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Embedding Option" }, "auto_delete_files": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Delete Files" }, "youtube_preferred_languages": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Youtube Preferred Languages" } }, "type": "object", "title": "SettingsUpdate" }, "SourceChatSessionResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Session ID" }, "title": { "type": "string", "title": "Title", "description": "Session title" }, "source_id": { "type": "string", "title": "Source Id", "description": "Source ID" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Model override for this session" }, "created": { "type": "string", "title": "Created", "description": "Creation timestamp" }, "updated": { "type": "string", "title": "Updated", "description": "Last update timestamp" }, "message_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Message Count", "description": "Number of messages in session" } }, "type": "object", "required": [ "id", "title", "source_id", "created", "updated" ], "title": "SourceChatSessionResponse" }, "SourceChatSessionWithMessagesResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Session ID" }, "title": { "type": "string", "title": "Title", "description": "Session title" }, "source_id": { "type": "string", "title": "Source Id", "description": "Source ID" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Model override for this session" }, "created": { "type": "string", "title": "Created", "description": "Creation timestamp" }, "updated": { "type": "string", "title": "Updated", "description": "Last update timestamp" }, "message_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Message Count", "description": "Number of messages in session" }, "messages": { "items": { "$ref": "#/components/schemas/api__routers__chat__ChatMessage" }, "type": "array", "title": "Messages", "description": "Session messages" }, "context_indicators": { "anyOf": [ { "$ref": "#/components/schemas/ContextIndicator" }, { "type": "null" } ], "description": "Context indicators from last response" } }, "type": "object", "required": [ "id", "title", "source_id", "created", "updated" ], "title": "SourceChatSessionWithMessagesResponse" }, "SourceCreate": { "properties": { "notebook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notebook Id", "description": "Notebook ID to add the source to (deprecated, use notebooks)" }, "notebooks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Notebooks", "description": "List of notebook IDs to add the source to" }, "type": { "type": "string", "title": "Type", "description": "Source type: link, upload, or text" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url", "description": "URL for link type" }, "file_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "File Path", "description": "File path for upload type" }, "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content", "description": "Text content for text type" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Source title" }, "transformations": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Transformations", "description": "Transformation IDs to apply" }, "embed": { "type": "boolean", "title": "Embed", "description": "Whether to embed content for vector search", "default": false }, "delete_source": { "type": "boolean", "title": "Delete Source", "description": "Whether to delete uploaded file after processing", "default": false }, "async_processing": { "type": "boolean", "title": "Async Processing", "description": "Whether to process source asynchronously", "default": false } }, "type": "object", "required": [ "type" ], "title": "SourceCreate" }, "SourceInsightResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "source_id": { "type": "string", "title": "Source Id" }, "insight_type": { "type": "string", "title": "Insight Type" }, "content": { "type": "string", "title": "Content" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" } }, "type": "object", "required": [ "id", "source_id", "insight_type", "content", "created", "updated" ], "title": "SourceInsightResponse" }, "SourceListResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "topics": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Topics" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/AssetModel" }, { "type": "null" } ] }, "embedded": { "type": "boolean", "title": "Embedded" }, "embedded_chunks": { "type": "integer", "title": "Embedded Chunks" }, "insights_count": { "type": "integer", "title": "Insights Count" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" }, "file_available": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "File Available" }, "command_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command Id" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" }, "processing_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Processing Info" } }, "type": "object", "required": [ "id", "title", "topics", "asset", "embedded", "embedded_chunks", "insights_count", "created", "updated" ], "title": "SourceListResponse" }, "SourceResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "topics": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Topics" }, "asset": { "anyOf": [ { "$ref": "#/components/schemas/AssetModel" }, { "type": "null" } ] }, "full_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Full Text" }, "embedded": { "type": "boolean", "title": "Embedded" }, "embedded_chunks": { "type": "integer", "title": "Embedded Chunks" }, "file_available": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "File Available" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" }, "command_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command Id" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" }, "processing_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Processing Info" }, "notebooks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Notebooks" } }, "type": "object", "required": [ "id", "title", "topics", "asset", "full_text", "embedded", "embedded_chunks", "created", "updated" ], "title": "SourceResponse" }, "SourceStatusResponse": { "properties": { "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status", "description": "Processing status" }, "message": { "type": "string", "title": "Message", "description": "Descriptive message about the status" }, "processing_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Processing Info", "description": "Detailed processing information" }, "command_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command Id", "description": "Command ID if available" } }, "type": "object", "required": [ "message" ], "title": "SourceStatusResponse" }, "SourceUpdate": { "properties": { "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Source title" }, "topics": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Topics", "description": "Source topics" } }, "type": "object", "title": "SourceUpdate" }, "SpeakerProfileCreate": { "properties": { "name": { "type": "string", "title": "Name", "description": "Unique profile name" }, "description": { "type": "string", "title": "Description", "description": "Profile description", "default": "" }, "tts_provider": { "type": "string", "title": "Tts Provider", "description": "TTS provider" }, "tts_model": { "type": "string", "title": "Tts Model", "description": "TTS model name" }, "speakers": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Speakers", "description": "Array of speaker configurations" } }, "type": "object", "required": [ "name", "tts_provider", "tts_model", "speakers" ], "title": "SpeakerProfileCreate" }, "SpeakerProfileResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "tts_provider": { "type": "string", "title": "Tts Provider" }, "tts_model": { "type": "string", "title": "Tts Model" }, "speakers": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Speakers" } }, "type": "object", "required": [ "id", "name", "description", "tts_provider", "tts_model", "speakers" ], "title": "SpeakerProfileResponse" }, "TransformationCreate": { "properties": { "name": { "type": "string", "title": "Name", "description": "Transformation name" }, "title": { "type": "string", "title": "Title", "description": "Display title for the transformation" }, "description": { "type": "string", "title": "Description", "description": "Description of what this transformation does" }, "prompt": { "type": "string", "title": "Prompt", "description": "The transformation prompt" }, "apply_default": { "type": "boolean", "title": "Apply Default", "description": "Whether to apply this transformation by default", "default": false } }, "type": "object", "required": [ "name", "title", "description", "prompt" ], "title": "TransformationCreate" }, "TransformationExecuteRequest": { "properties": { "transformation_id": { "type": "string", "title": "Transformation Id", "description": "ID of the transformation to execute" }, "input_text": { "type": "string", "title": "Input Text", "description": "Text to transform" }, "model_id": { "type": "string", "title": "Model Id", "description": "Model ID to use for the transformation" } }, "type": "object", "required": [ "transformation_id", "input_text", "model_id" ], "title": "TransformationExecuteRequest" }, "TransformationExecuteResponse": { "properties": { "output": { "type": "string", "title": "Output", "description": "Transformed text" }, "transformation_id": { "type": "string", "title": "Transformation Id", "description": "ID of the transformation used" }, "model_id": { "type": "string", "title": "Model Id", "description": "Model ID used" } }, "type": "object", "required": [ "output", "transformation_id", "model_id" ], "title": "TransformationExecuteResponse" }, "TransformationResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "prompt": { "type": "string", "title": "Prompt" }, "apply_default": { "type": "boolean", "title": "Apply Default" }, "created": { "type": "string", "title": "Created" }, "updated": { "type": "string", "title": "Updated" } }, "type": "object", "required": [ "id", "name", "title", "description", "prompt", "apply_default", "created", "updated" ], "title": "TransformationResponse" }, "TransformationUpdate": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Transformation name" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Display title for the transformation" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Description of what this transformation does" }, "prompt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prompt", "description": "The transformation prompt" }, "apply_default": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Apply Default", "description": "Whether to apply this transformation by default" } }, "type": "object", "title": "TransformationUpdate" }, "UpdateSessionRequest": { "properties": { "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "New session title" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Model override for this session" } }, "type": "object", "title": "UpdateSessionRequest" }, "UpdateSourceChatSessionRequest": { "properties": { "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "New session title" }, "model_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Override", "description": "Model override for this session" } }, "type": "object", "title": "UpdateSourceChatSessionRequest" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" }, "api__routers__chat__ChatMessage": { "properties": { "id": { "type": "string", "title": "Id", "description": "Message ID" }, "type": { "type": "string", "title": "Type", "description": "Message type (human|ai)" }, "content": { "type": "string", "title": "Content", "description": "Message content" }, "timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timestamp", "description": "Message timestamp" } }, "type": "object", "required": [ "id", "type", "content" ], "title": "ChatMessage" }, "api__routers__source_chat__SuccessResponse": { "properties": { "success": { "type": "boolean", "title": "Success", "description": "Operation success status", "default": true }, "message": { "type": "string", "title": "Message", "description": "Success message" } }, "type": "object", "required": [ "message" ], "title": "SuccessResponse" } } } }