soliplex 0.83.3__tar.gz → 0.83.4__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.
- {soliplex-0.83.3/src/soliplex.egg-info → soliplex-0.83.4}/PKG-INFO +1 -1
- {soliplex-0.83.3 → soliplex-0.83.4}/pyproject.toml +1 -1
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/authn.py +20 -2
- {soliplex-0.83.3 → soliplex-0.83.4/src/soliplex.egg-info}/PKG-INFO +1 -1
- {soliplex-0.83.3 → soliplex-0.83.4}/LICENSE +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/MANIFEST.in +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/README.md +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/example/skills/bare-bones/SKILL.md +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/example/skills/stanzas/SKILL.md +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/setup.cfg +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/skills/soliplex-docs/SKILL.md +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/agents.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/agui/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/agui/parser.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/agui/persistence.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/agui/schema.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/agui/util.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/env.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/versions/216d48e1e2e5_soliplex_v0_53.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/versions/4b63e5f3f39e_soliplex_v0_51_1.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/versions/63edaa5987f6_soliplex_v0_67.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/versions/a1c7d3e90b42_soliplex_v0_80.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/versions/b7e2f41c9d05_soliplex_v0_82.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/alembic_migrations/versions/d5009d4f9874_soliplex_v0_44.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/authn.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/authz/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/authz/persistence.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/authz/schema.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/capabilities/filesystem.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/capabilities/rag_audit.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/admin_users.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/ask.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/_common.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/admin_users.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/completions.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/databases.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/environment.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/installation.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/interpolation.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/logfire.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/logging.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/oidc.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/ollama.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/quizzes.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/room_authz.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/rooms.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/secrets.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/audit/skills.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/cli_util.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/database.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/main.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/ollama.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/room_authz.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/serve.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/cli/types.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/completions.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/_utils.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/agents.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/agui.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/authsystem.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/completions.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/exceptions.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/installation.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/interpolation.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/logfire.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/meta.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/middleware.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/quizzes.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/rag.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/rooms.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/routing.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/secrets.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/skills.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/config/tools.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/examples.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/installation.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/log_ingest.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/loggers.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/main.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/mcp_auth.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/mcp_client.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/mcp_server.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/models.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/ollama.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/quizzes.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/rag_audit.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/sandbox_audit.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/secrets.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/skills/bwrap_sandbox/SKILL.md +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/skills/bwrap_sandbox/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/titles.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tools/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tools/agui_run_feedback.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tools/file_uploads.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tools/rag.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tui/cli.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tui/main.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tui/rest_api.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/tui/serve.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/util.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/__init__.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/agui.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/authz.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/completions.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/installation.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/log_ingest.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/quizzes.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/room_file_uploads.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/rooms.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/sandbox_workdirs.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/stats.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/streaming.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/templates/consent.html.mako +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex/views/thread_file_uploads.py +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex.egg-info/SOURCES.txt +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex.egg-info/dependency_links.txt +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex.egg-info/entry_points.txt +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex.egg-info/requires.txt +0 -0
- {soliplex-0.83.3 → soliplex-0.83.4}/src/soliplex.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: soliplex
|
|
3
|
-
Version: 0.83.
|
|
3
|
+
Version: 0.83.4
|
|
4
4
|
Summary: An AI-powered Retrieval-Augmented Generation (RAG) system with a modern web interface.
|
|
5
5
|
Author-email: Enfold <info@enfoldsystems.net>
|
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "soliplex"
|
|
7
|
-
version = "0.83.
|
|
7
|
+
version = "0.83.4"
|
|
8
8
|
description = "An AI-powered Retrieval-Augmented Generation (RAG) system with a modern web interface."
|
|
9
9
|
authors = [{ name = "Enfold", email = "info@enfoldsystems.net" }]
|
|
10
10
|
readme = "README.md"
|
|
@@ -29,9 +29,27 @@ depend_the_unauth_logger = views.depend_the_unauth_logger
|
|
|
29
29
|
depend_the_logger = views.depend_the_logger
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
_DEFAULT_PORT_SUFFIXES = {"http": ":80", "https": ":443"}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _normalize_origin(scheme: str, netloc: str) -> tuple[str, str]:
|
|
36
|
+
"""Lower-case 'netloc', dropping any default port for 'scheme'
|
|
37
|
+
|
|
38
|
+
A proxy may forward 'Host: example.com:443', which names the same
|
|
39
|
+
origin as 'https://example.com'.
|
|
40
|
+
"""
|
|
41
|
+
netloc = netloc.lower()
|
|
42
|
+
default_port_suffix = _DEFAULT_PORT_SUFFIXES.get(scheme)
|
|
43
|
+
|
|
44
|
+
if default_port_suffix is not None:
|
|
45
|
+
netloc = netloc.removesuffix(default_port_suffix)
|
|
46
|
+
|
|
47
|
+
return scheme, netloc
|
|
48
|
+
|
|
49
|
+
|
|
32
50
|
def _scheme_netloc(url: str) -> tuple[str, str]:
|
|
33
51
|
scheme, netloc = urllib_parse.urlparse(url)[:2]
|
|
34
|
-
return scheme, netloc
|
|
52
|
+
return _normalize_origin(scheme, netloc)
|
|
35
53
|
|
|
36
54
|
|
|
37
55
|
def _is_loopback(host: str) -> bool:
|
|
@@ -91,7 +109,7 @@ def _classify_return_to(
|
|
|
91
109
|
return ReturnTo.MALFORMED
|
|
92
110
|
|
|
93
111
|
trusted = {
|
|
94
|
-
(request.url.scheme, request.url.netloc
|
|
112
|
+
_normalize_origin(request.url.scheme, request.url.netloc),
|
|
95
113
|
*(_scheme_netloc(afo) for afo in allowed_frontend_origins),
|
|
96
114
|
}
|
|
97
115
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: soliplex
|
|
3
|
-
Version: 0.83.
|
|
3
|
+
Version: 0.83.4
|
|
4
4
|
Summary: An AI-powered Retrieval-Augmented Generation (RAG) system with a modern web interface.
|
|
5
5
|
Author-email: Enfold <info@enfoldsystems.net>
|
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
|
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
|
|
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
|