openrag 0.7.0.dev3__tar.gz → 0.7.0.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openrag-0.7.0.dev3/src/openrag.egg-info → openrag-0.7.0.dev5}/PKG-INFO +1 -1
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/pyproject.toml +1 -1
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5/src/openrag.egg-info}/PKG-INFO +1 -1
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/cli.py +34 -2
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/config_fields.py +2 -2
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/main.py +61 -52
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/managers/env_manager.py +2 -2
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/LICENSE +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/MANIFEST.in +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/README.md +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/setup.cfg +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/agent.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/acl.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/auth.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/chat.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/config.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/connectors.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/docling.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/documents.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/files.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/flows.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/health.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/ingest_preview.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/keys.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/knowledge_filter.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/langflow_files.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/langflow_ingest.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/models.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/nudges.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/oidc.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/provider_health.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/provider_validation.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/router.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/schemas/status.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/schemas/tasks.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/search.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/settings/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/settings/endpoints.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/settings/helpers.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/settings/langflow_sync.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/settings/models.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/status_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/tasks.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/upload.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/users.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/_filter_resolution.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/chat.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/documents.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/files.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/knowledge_filters.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/models.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/search.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/settings.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v1/status.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v2/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/api/v2/files.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/container.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/factory.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/lifespan.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/middleware.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/router_app.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/routes/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/routes/internal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/routes/mcp.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/routes/public_v1.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/app/routes/public_v2.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth/ibm_auth.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth/jwt_roles.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth/permission_dependencies.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth/request_identity.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth/user_identity_cache.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/auth_context.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/bootstrap.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/config_manager.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/embedding_constants.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/legacy_prompts.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/model_constants.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/paths.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/settings.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/storage_mode.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/config/utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/aws_s3/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/aws_s3/api.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/aws_s3/auth.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/aws_s3/connector.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/aws_s3/models.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/aws_s3/support.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/base.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/chunk_cleanup.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/connection_manager.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/google_drive/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/google_drive/connector.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/google_drive/oauth.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/google_drive_acl.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/microsoft_graph_acl.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/microsoft_oauth_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/onedrive/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/onedrive/connector.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/onedrive/oauth.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/registry.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/sharepoint/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/sharepoint/connector.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/sharepoint/oauth.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/connectors/sharepoint/utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/base.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/engine.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/migrations_runtime.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/api_key.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/audit_log.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/conversation.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/migration_status.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/permission.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/role.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/role_permission.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/session_ownership.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/user.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/user_preferences.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/user_role.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/models/workspace_config.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/_helpers.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/api_key_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/audit_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/conversation_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/permission_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/preferences_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/role_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/session_ownership_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/user_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/repositories/workspace_config_repo.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/seed.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/db/types.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/dependencies.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/main.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/mcp_http/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/mcp_http/server.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/models/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/models/processors.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/models/tasks.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/models/url.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/openrag.egg-info/SOURCES.txt +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/openrag.egg-info/dependency_links.txt +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/openrag.egg-info/entry_points.txt +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/openrag.egg-info/requires.txt +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/openrag.egg-info/top_level.txt +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/api_key_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/auth_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/chat_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/component_logs.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/connector_access_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/connector_oauth_config_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/conversation_persistence_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/default_docs_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/default_role_sync.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/dev_role_toggle.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/dls_principal_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/docling_polling_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/docling_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/document_index_writer.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/document_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/file_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/file_service_v2.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/flows_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/group_acl_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/ingest_preview_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/knowledge_filter_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/langflow_file_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/langflow_history_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/langflow_ingest_token_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/langflow_mcp_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/models_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/monitor_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/onboarding_reset.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/rbac_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/search_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/session_ownership_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/startup_orchestrator.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/status_checks.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/status_diagnostics.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/status_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/task_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/user_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/watsonx_iam.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/services/workspace_config_service.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/session_manager.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/docker-compose.gpu.yml +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/docker-compose.yml +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/flows/ingestion_flow.json +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/flows/openrag_agent.json +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/flows/openrag_nudges.json +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/flows/openrag_url_mcp.json +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/openrag-documents/docling.pdf +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/openrag-documents/ibm_anthropic.pdf +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/_assets/openrag-documents/warmup_ocr.pdf +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/managers/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/managers/container_manager.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/managers/docling_manager.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/screens/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/screens/config.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/screens/diagnostics.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/screens/logs.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/screens/monitor.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/screens/welcome.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/utils/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/utils/clipboard.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/utils/platform.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/utils/startup_checks.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/utils/validation.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/utils/version_check.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/command_modal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/diagnostics_notification.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/error_notification.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/factory_reset_warning_modal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/flow_backup_warning_modal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/prune_options_modal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/upgrade_instructions_modal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/version_mismatch_warning_modal.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/tui/widgets/waves.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/acl_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/container_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/docling_client.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/document_processing.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/embedding_fields.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/embeddings.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/encryption.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/env_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/file_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/gpu_detection.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/group_acl.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/hash_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/ingest_preview_flag.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/jwt_keygen.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/jwt_verification.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/langflow_headers.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/langflow_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/logging_config.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/opensearch_delete.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/opensearch_filenames.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/opensearch_init.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/opensearch_queries.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/opensearch_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/paths.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/provider_health_cache.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/run_mode_utils.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/telemetry/__init__.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/telemetry/category.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/telemetry/client.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/telemetry/message_id.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/url_content_fetcher.py +0 -0
- {openrag-0.7.0.dev3 → openrag-0.7.0.dev5}/src/utils/version_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrag
|
|
3
|
-
Version: 0.7.0.
|
|
3
|
+
Version: 0.7.0.dev5
|
|
4
4
|
Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
|
|
5
5
|
Classifier: Development Status :: 4 - Beta
|
|
6
6
|
Classifier: Environment :: Console
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openrag"
|
|
7
|
-
version = "0.7.0.
|
|
7
|
+
version = "0.7.0.dev5"
|
|
8
8
|
description = "OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrag
|
|
3
|
-
Version: 0.7.0.
|
|
3
|
+
Version: 0.7.0.dev5
|
|
4
4
|
Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
|
|
5
5
|
Classifier: Development Status :: 4 - Beta
|
|
6
6
|
Classifier: Environment :: Console
|
|
@@ -51,7 +51,6 @@ def run_cli():
|
|
|
51
51
|
pass # Non-critical bootstrap errors
|
|
52
52
|
|
|
53
53
|
env_manager = EnvManager()
|
|
54
|
-
env_manager.ensure_openrag_version()
|
|
55
54
|
container_manager = ContainerManager()
|
|
56
55
|
docling_manager = DoclingManager()
|
|
57
56
|
|
|
@@ -349,11 +348,44 @@ def _start_services_cli(
|
|
|
349
348
|
env_manager = EnvManager()
|
|
350
349
|
env_manager.load_existing_env()
|
|
351
350
|
env_manager.setup_secure_defaults()
|
|
351
|
+
|
|
352
|
+
# Check for version mismatch before starting services / writing version
|
|
353
|
+
if hasattr(container_manager, "check_version_mismatch"):
|
|
354
|
+
|
|
355
|
+
async def _check_version():
|
|
356
|
+
return await container_manager.check_version_mismatch()
|
|
357
|
+
|
|
358
|
+
has_mismatch, container_version, cli_version = asyncio.run(_check_version())
|
|
359
|
+
if has_mismatch and container_version:
|
|
360
|
+
console.print()
|
|
361
|
+
console.print("[bold yellow]⚠ Version Mismatch Detected[/bold yellow]")
|
|
362
|
+
console.print(
|
|
363
|
+
f" Existing containers are running version [bold]{container_version}[/bold]"
|
|
364
|
+
)
|
|
365
|
+
console.print(f" Current version is [bold]{cli_version}[/bold]\n")
|
|
366
|
+
console.print(
|
|
367
|
+
f" Starting services will update containers to version [bold]{cli_version}[/bold]."
|
|
368
|
+
)
|
|
369
|
+
console.print(" This may cause compatibility issues with your flows.\n")
|
|
370
|
+
console.print(" [yellow]⚠️ Please backup your flows before continuing.[/yellow]")
|
|
371
|
+
console.print(
|
|
372
|
+
" Customizations to OpenRAG built-in flows are backed up in ~/.openrag/flows/backup/"
|
|
373
|
+
)
|
|
374
|
+
console.print(" Other user created flows are not backed up automatically.\n")
|
|
375
|
+
try:
|
|
376
|
+
proceed = input("Do you want to continue? [y/N]: ").strip().lower()
|
|
377
|
+
except (EOFError, KeyboardInterrupt):
|
|
378
|
+
console.print()
|
|
379
|
+
proceed = "n"
|
|
380
|
+
if proceed != "y":
|
|
381
|
+
console.print("[yellow]Start cancelled.[/yellow]")
|
|
382
|
+
return False
|
|
383
|
+
|
|
352
384
|
env_manager.ensure_openrag_version()
|
|
353
385
|
|
|
354
386
|
if not env_manager.config.langflow_superuser_password:
|
|
355
387
|
console.print("[red]✗ Error: Langflow password is required. Cannot start services.[/red]")
|
|
356
|
-
return
|
|
388
|
+
return False
|
|
357
389
|
|
|
358
390
|
console.print()
|
|
359
391
|
console.print("Starting OpenRAG services...", style="bold")
|
|
@@ -149,8 +149,8 @@ CONFIG_SECTIONS: list[ConfigSection] = [
|
|
|
149
149
|
"langflow_superuser",
|
|
150
150
|
"LANGFLOW_SUPERUSER",
|
|
151
151
|
"Admin Username",
|
|
152
|
-
placeholder="
|
|
153
|
-
default="
|
|
152
|
+
placeholder="langflow",
|
|
153
|
+
default="langflow",
|
|
154
154
|
),
|
|
155
155
|
ConfigField(
|
|
156
156
|
"langflow_data_path",
|
|
@@ -3,28 +3,28 @@
|
|
|
3
3
|
import os
|
|
4
4
|
import subprocess
|
|
5
5
|
import sys
|
|
6
|
+
from collections.abc import Iterable
|
|
6
7
|
from pathlib import Path
|
|
7
|
-
from typing import
|
|
8
|
-
from textual.app import App, ComposeResult
|
|
9
|
-
from utils.logging_config import get_logger
|
|
10
|
-
try:
|
|
11
|
-
from importlib.resources import files
|
|
12
|
-
except ImportError:
|
|
13
|
-
from importlib_resources import files
|
|
8
|
+
from typing import Literal
|
|
14
9
|
|
|
15
|
-
|
|
10
|
+
from textual.app import App
|
|
11
|
+
|
|
12
|
+
from utils.logging_config import get_logger
|
|
16
13
|
|
|
17
|
-
from .screens.welcome import WelcomeScreen
|
|
18
|
-
from .screens.config import ConfigScreen
|
|
19
|
-
from .screens.monitor import MonitorScreen
|
|
20
|
-
from .screens.logs import LogsScreen
|
|
21
|
-
from .screens.diagnostics import DiagnosticsScreen
|
|
22
|
-
from .managers.env_manager import EnvManager
|
|
23
14
|
from .managers.container_manager import ContainerManager
|
|
24
15
|
from .managers.docling_manager import DoclingManager
|
|
16
|
+
from .managers.env_manager import EnvManager
|
|
17
|
+
from .screens.welcome import WelcomeScreen
|
|
25
18
|
from .utils.platform import PlatformDetector
|
|
26
19
|
from .widgets.diagnostics_notification import notify_with_diagnostics
|
|
27
20
|
|
|
21
|
+
try:
|
|
22
|
+
from importlib.resources import files
|
|
23
|
+
except ImportError:
|
|
24
|
+
from importlib_resources import files # type: ignore[no-redef]
|
|
25
|
+
|
|
26
|
+
logger = get_logger(__name__)
|
|
27
|
+
|
|
28
28
|
|
|
29
29
|
class OpenRAGTUI(App):
|
|
30
30
|
"""OpenRAG Terminal User Interface application."""
|
|
@@ -373,7 +373,7 @@ class OpenRAGTUI(App):
|
|
|
373
373
|
message: str,
|
|
374
374
|
*,
|
|
375
375
|
title: str = "",
|
|
376
|
-
severity:
|
|
376
|
+
severity: Literal["information", "warning", "error"] = "information",
|
|
377
377
|
timeout: float | None = None,
|
|
378
378
|
markup: bool = True,
|
|
379
379
|
) -> None:
|
|
@@ -395,7 +395,7 @@ class OpenRAGTUI(App):
|
|
|
395
395
|
)
|
|
396
396
|
|
|
397
397
|
# Load existing config if available
|
|
398
|
-
|
|
398
|
+
self.env_manager.load_existing_env()
|
|
399
399
|
|
|
400
400
|
# Start with welcome screen
|
|
401
401
|
self.push_screen(WelcomeScreen())
|
|
@@ -414,16 +414,20 @@ class OpenRAGTUI(App):
|
|
|
414
414
|
# Check Podman macOS memory if applicable
|
|
415
415
|
runtime_info = self.container_manager.get_runtime_info()
|
|
416
416
|
if runtime_info.runtime_type.value == "podman":
|
|
417
|
-
is_sufficient, _, message = (
|
|
418
|
-
self.platform_detector.check_podman_macos_memory()
|
|
419
|
-
)
|
|
417
|
+
is_sufficient, _, message = self.platform_detector.check_podman_macos_memory()
|
|
420
418
|
if not is_sufficient:
|
|
421
419
|
return False, f"Podman VM memory insufficient:\n{message}"
|
|
422
420
|
|
|
423
421
|
return True, "Runtime requirements satisfied"
|
|
424
422
|
|
|
425
423
|
|
|
426
|
-
def _copy_assets(
|
|
424
|
+
def _copy_assets(
|
|
425
|
+
resource_tree,
|
|
426
|
+
destination: Path,
|
|
427
|
+
allowed_suffixes: Iterable[str] | None = None,
|
|
428
|
+
*,
|
|
429
|
+
force: bool = False,
|
|
430
|
+
) -> None:
|
|
427
431
|
"""Copy packaged assets into destination and optionally overwrite existing files.
|
|
428
432
|
|
|
429
433
|
When ``force`` is True, files are refreshed if the packaged bytes differ.
|
|
@@ -437,7 +441,9 @@ def _copy_assets(resource_tree, destination: Path, allowed_suffixes: Optional[It
|
|
|
437
441
|
_copy_assets(resource, target_path, allowed_suffixes, force=force)
|
|
438
442
|
continue
|
|
439
443
|
|
|
440
|
-
if allowed_suffixes and not any(
|
|
444
|
+
if allowed_suffixes and not any(
|
|
445
|
+
resource.name.endswith(suffix) for suffix in allowed_suffixes
|
|
446
|
+
):
|
|
441
447
|
continue
|
|
442
448
|
resource_bytes = resource.read_bytes()
|
|
443
449
|
|
|
@@ -461,9 +467,10 @@ def copy_sample_documents(*, force: bool = False) -> None:
|
|
|
461
467
|
Uses the first path from OPENRAG_DOCUMENTS_PATHS env var.
|
|
462
468
|
Defaults to ~/.openrag/documents if not configured.
|
|
463
469
|
"""
|
|
464
|
-
from .managers.env_manager import EnvManager
|
|
465
470
|
from pathlib import Path
|
|
466
471
|
|
|
472
|
+
from .managers.env_manager import EnvManager
|
|
473
|
+
|
|
467
474
|
# Get the configured documents path from env
|
|
468
475
|
env_manager = EnvManager()
|
|
469
476
|
env_manager.load_existing_env()
|
|
@@ -471,7 +478,7 @@ def copy_sample_documents(*, force: bool = False) -> None:
|
|
|
471
478
|
# Parse the first path from the documents paths config
|
|
472
479
|
documents_path_str = env_manager.config.openrag_documents_paths
|
|
473
480
|
if documents_path_str:
|
|
474
|
-
first_path = documents_path_str.split(
|
|
481
|
+
first_path = documents_path_str.split(",")[0].strip()
|
|
475
482
|
# Expand $HOME and ~
|
|
476
483
|
first_path = first_path.replace("$HOME", str(Path.home()))
|
|
477
484
|
documents_dir = Path(first_path).expanduser()
|
|
@@ -488,19 +495,6 @@ def copy_sample_documents(*, force: bool = False) -> None:
|
|
|
488
495
|
logger.debug(f"Could not copy sample documents: {e}")
|
|
489
496
|
# This is not a critical error - the app can work without sample documents
|
|
490
497
|
|
|
491
|
-
# Ensure OPENRAG_DOCUMENTS_PATH in .env points to the resolved documents directory.
|
|
492
|
-
# Docker Compose uses this for the volume mount; if unset it defaults to ./openrag-documents
|
|
493
|
-
# (CWD-relative), which may not contain the PDFs copied above.
|
|
494
|
-
try:
|
|
495
|
-
from dotenv import set_key
|
|
496
|
-
resolved_path = str(documents_dir.resolve())
|
|
497
|
-
current = env_manager.config.openrag_documents_path
|
|
498
|
-
if not current or current in ("$HOME/.openrag/documents", "./openrag-documents", "./documents"):
|
|
499
|
-
set_key(str(env_manager.env_file), "OPENRAG_DOCUMENTS_PATH", resolved_path)
|
|
500
|
-
logger.debug(f"Set OPENRAG_DOCUMENTS_PATH={resolved_path} in {env_manager.env_file}")
|
|
501
|
-
except Exception as e:
|
|
502
|
-
logger.debug(f"Could not update OPENRAG_DOCUMENTS_PATH in .env: {e}")
|
|
503
|
-
|
|
504
498
|
|
|
505
499
|
def copy_sample_flows(*, force: bool = False) -> None:
|
|
506
500
|
"""Copy sample flows from package to host directory.
|
|
@@ -550,7 +544,9 @@ def copy_compose_files(*, force: bool = False) -> None:
|
|
|
550
544
|
if destination.read_bytes() == resource_bytes:
|
|
551
545
|
continue
|
|
552
546
|
except Exception as read_error:
|
|
553
|
-
logger.debug(
|
|
547
|
+
logger.debug(
|
|
548
|
+
f"Failed to read existing compose file {destination}: {read_error}"
|
|
549
|
+
)
|
|
554
550
|
|
|
555
551
|
destination.write_bytes(resource_bytes)
|
|
556
552
|
logger.info(f"Copied docker-compose template to {destination}")
|
|
@@ -598,7 +594,8 @@ def migrate_legacy_data_directories():
|
|
|
598
594
|
marker.touch()
|
|
599
595
|
# Still need to update .env with centralized paths
|
|
600
596
|
try:
|
|
601
|
-
from managers.env_manager import EnvManager
|
|
597
|
+
from .managers.env_manager import EnvManager
|
|
598
|
+
|
|
602
599
|
env_manager = EnvManager()
|
|
603
600
|
env_manager.load_existing_env()
|
|
604
601
|
# Explicitly set centralized paths (overrides any old CWD-relative paths)
|
|
@@ -620,7 +617,7 @@ def migrate_legacy_data_directories():
|
|
|
620
617
|
print("\n" + "=" * 60)
|
|
621
618
|
print(" OpenRAG Data Migration Required")
|
|
622
619
|
print("=" * 60)
|
|
623
|
-
print(
|
|
620
|
+
print("\nStarting with this version, OpenRAG stores data in:")
|
|
624
621
|
print(f" {target_base}")
|
|
625
622
|
print("\nThe following will be copied from your current directory:")
|
|
626
623
|
for source, target, desc in sources_to_migrate:
|
|
@@ -677,7 +674,8 @@ def migrate_legacy_data_directories():
|
|
|
677
674
|
|
|
678
675
|
# Update .env file with centralized paths
|
|
679
676
|
try:
|
|
680
|
-
from managers.env_manager import EnvManager
|
|
677
|
+
from .managers.env_manager import EnvManager
|
|
678
|
+
|
|
681
679
|
env_manager = EnvManager()
|
|
682
680
|
env_manager.load_existing_env()
|
|
683
681
|
# Explicitly set centralized paths (overrides any old CWD-relative paths)
|
|
@@ -723,11 +721,7 @@ def _reclaim_host_ownership(directories: list[Path]) -> None:
|
|
|
723
721
|
if not needs_reclaim:
|
|
724
722
|
return
|
|
725
723
|
|
|
726
|
-
runtime = (
|
|
727
|
-
"docker" if _shutil.which("docker")
|
|
728
|
-
else "podman" if _shutil.which("podman")
|
|
729
|
-
else None
|
|
730
|
-
)
|
|
724
|
+
runtime = "docker" if _shutil.which("docker") else "podman" if _shutil.which("podman") else None
|
|
731
725
|
if not runtime:
|
|
732
726
|
logger.error("No container runtime found; cannot reclaim directory ownership")
|
|
733
727
|
return
|
|
@@ -736,9 +730,16 @@ def _reclaim_host_ownership(directories: list[Path]) -> None:
|
|
|
736
730
|
try:
|
|
737
731
|
subprocess.run(
|
|
738
732
|
[
|
|
739
|
-
runtime,
|
|
740
|
-
"
|
|
741
|
-
"
|
|
733
|
+
runtime,
|
|
734
|
+
"run",
|
|
735
|
+
"--rm",
|
|
736
|
+
"-v",
|
|
737
|
+
f"{directory}:/mnt/target",
|
|
738
|
+
"alpine",
|
|
739
|
+
"chown",
|
|
740
|
+
"-R",
|
|
741
|
+
f"{host_uid}:{host_gid}",
|
|
742
|
+
"/mnt/target",
|
|
742
743
|
],
|
|
743
744
|
check=True,
|
|
744
745
|
capture_output=True,
|
|
@@ -777,9 +778,11 @@ def generate_jwt_keys(keys_dir: Path):
|
|
|
777
778
|
[
|
|
778
779
|
"openssl",
|
|
779
780
|
"rsa",
|
|
780
|
-
"-in",
|
|
781
|
+
"-in",
|
|
782
|
+
str(private_key_path),
|
|
781
783
|
"-pubout",
|
|
782
|
-
"-out",
|
|
784
|
+
"-out",
|
|
785
|
+
str(public_key_path),
|
|
783
786
|
],
|
|
784
787
|
check=True,
|
|
785
788
|
capture_output=True,
|
|
@@ -789,7 +792,9 @@ def generate_jwt_keys(keys_dir: Path):
|
|
|
789
792
|
|
|
790
793
|
logger.info("Generated RSA keys for JWT signing")
|
|
791
794
|
except FileNotFoundError:
|
|
792
|
-
logger.warning(
|
|
795
|
+
logger.warning(
|
|
796
|
+
"openssl not found, skipping JWT key generation (will be generated in container)"
|
|
797
|
+
)
|
|
793
798
|
except subprocess.CalledProcessError as e:
|
|
794
799
|
logger.error(f"Failed to generate RSA keys: {e}")
|
|
795
800
|
|
|
@@ -877,6 +882,7 @@ def _resolve_langflow_data_path(base_dir: Path) -> Path:
|
|
|
877
882
|
default = base_dir / "data" / "langflow-data"
|
|
878
883
|
try:
|
|
879
884
|
from .managers.env_manager import EnvManager
|
|
885
|
+
|
|
880
886
|
env_manager = EnvManager()
|
|
881
887
|
env_manager.load_existing_env()
|
|
882
888
|
raw = env_manager.config.langflow_data_path
|
|
@@ -925,7 +931,7 @@ def _run_tui_app():
|
|
|
925
931
|
logger.error("Error running OpenRAG TUI", error=str(e))
|
|
926
932
|
finally:
|
|
927
933
|
# Ensure cleanup happens even on exceptions
|
|
928
|
-
if app and hasattr(app,
|
|
934
|
+
if app and hasattr(app, "docling_manager"):
|
|
929
935
|
app.docling_manager.cleanup()
|
|
930
936
|
sys.exit(0)
|
|
931
937
|
|
|
@@ -947,6 +953,7 @@ def run_tui():
|
|
|
947
953
|
|
|
948
954
|
# Check for native Windows before launching anything
|
|
949
955
|
from .utils.platform import PlatformDetector
|
|
956
|
+
|
|
950
957
|
platform_detector = PlatformDetector()
|
|
951
958
|
|
|
952
959
|
if platform_detector.is_native_windows():
|
|
@@ -959,6 +966,7 @@ def run_tui():
|
|
|
959
966
|
|
|
960
967
|
# Run startup prerequisites (install runtime, health checks, etc.)
|
|
961
968
|
from .utils.startup_checks import run_startup_checks
|
|
969
|
+
|
|
962
970
|
if not run_startup_checks():
|
|
963
971
|
sys.exit(1)
|
|
964
972
|
|
|
@@ -966,6 +974,7 @@ def run_tui():
|
|
|
966
974
|
_run_tui_app()
|
|
967
975
|
else:
|
|
968
976
|
from .cli import run_cli
|
|
977
|
+
|
|
969
978
|
run_cli()
|
|
970
979
|
|
|
971
980
|
|
|
@@ -43,7 +43,7 @@ class EnvConfig:
|
|
|
43
43
|
langflow_port: str = "7860"
|
|
44
44
|
opensearch_index_name: str = "documents"
|
|
45
45
|
langflow_secret_key: str = ""
|
|
46
|
-
langflow_superuser: str = "
|
|
46
|
+
langflow_superuser: str = "langflow"
|
|
47
47
|
langflow_superuser_password: str = ""
|
|
48
48
|
langflow_chat_flow_id: str = "1098eea1-6649-4e1d-aed1-b77249fb8dd0"
|
|
49
49
|
langflow_ingest_flow_id: str = "5488df7c-b93f-4f87-a446-b67028bc0813"
|
|
@@ -481,7 +481,7 @@ class EnvManager:
|
|
|
481
481
|
f"LANGFLOW_SECRET_KEY={self._quote_env_value(self.config.langflow_secret_key)}\n"
|
|
482
482
|
)
|
|
483
483
|
f.write(
|
|
484
|
-
f"LANGFLOW_SUPERUSER={self._quote_env_value(self.config.langflow_superuser or '
|
|
484
|
+
f"LANGFLOW_SUPERUSER={self._quote_env_value(self.config.langflow_superuser or 'langflow')}\n"
|
|
485
485
|
)
|
|
486
486
|
f.write(
|
|
487
487
|
f"LANGFLOW_SUPERUSER_PASSWORD={self._quote_env_value(self.config.langflow_superuser_password)}\n"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|