soliplex 0.83.1__tar.gz → 0.83.2__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.1/src/soliplex.egg-info → soliplex-0.83.2}/PKG-INFO +1 -1
- {soliplex-0.83.1 → soliplex-0.83.2}/pyproject.toml +1 -1
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/authn.py +23 -16
- {soliplex-0.83.1 → soliplex-0.83.2/src/soliplex.egg-info}/PKG-INFO +1 -1
- {soliplex-0.83.1 → soliplex-0.83.2}/LICENSE +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/MANIFEST.in +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/README.md +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/example/skills/bare-bones/SKILL.md +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/example/skills/stanzas/SKILL.md +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/setup.cfg +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/skills/soliplex-docs/SKILL.md +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/agents.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/agui/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/agui/parser.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/agui/persistence.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/agui/schema.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/agui/util.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/env.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/versions/216d48e1e2e5_soliplex_v0_53.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/versions/4b63e5f3f39e_soliplex_v0_51_1.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/versions/63edaa5987f6_soliplex_v0_67.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/versions/a1c7d3e90b42_soliplex_v0_80.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/versions/b7e2f41c9d05_soliplex_v0_82.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/alembic_migrations/versions/d5009d4f9874_soliplex_v0_44.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/authn.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/authz/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/authz/persistence.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/authz/schema.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/capabilities/filesystem.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/capabilities/rag_audit.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/admin_users.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/ask.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/_common.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/admin_users.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/completions.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/databases.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/environment.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/installation.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/interpolation.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/logfire.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/logging.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/oidc.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/ollama.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/quizzes.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/room_authz.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/rooms.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/secrets.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/audit/skills.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/cli_util.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/database.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/main.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/ollama.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/room_authz.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/serve.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/cli/types.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/completions.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/_utils.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/agents.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/agui.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/authsystem.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/completions.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/exceptions.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/installation.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/interpolation.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/logfire.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/meta.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/middleware.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/quizzes.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/rag.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/rooms.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/routing.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/secrets.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/skills.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/config/tools.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/examples.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/installation.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/log_ingest.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/loggers.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/main.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/mcp_auth.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/mcp_client.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/mcp_server.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/models.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/ollama.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/quizzes.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/rag_audit.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/sandbox_audit.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/secrets.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/skills/bwrap_sandbox/SKILL.md +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/skills/bwrap_sandbox/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/titles.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tools/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tools/agui_run_feedback.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tools/file_uploads.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tools/rag.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tui/cli.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tui/main.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tui/rest_api.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/tui/serve.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/util.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/__init__.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/agui.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/authz.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/completions.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/installation.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/log_ingest.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/quizzes.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/room_file_uploads.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/rooms.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/sandbox_workdirs.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/stats.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/streaming.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/templates/consent.html.mako +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex/views/thread_file_uploads.py +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex.egg-info/SOURCES.txt +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex.egg-info/dependency_links.txt +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex.egg-info/entry_points.txt +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/src/soliplex.egg-info/requires.txt +0 -0
- {soliplex-0.83.1 → soliplex-0.83.2}/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.2
|
|
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.2"
|
|
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"
|
|
@@ -426,6 +426,26 @@ async def post_login_system_confirm(
|
|
|
426
426
|
)
|
|
427
427
|
|
|
428
428
|
|
|
429
|
+
def _with_callback_params(return_to: str, params: dict) -> str:
|
|
430
|
+
"""Return 'return_to' with 'params' added to its fragment
|
|
431
|
+
|
|
432
|
+
The parameters follow a '?' inside the fragment
|
|
433
|
+
('/#/auth/callback?token=...'), where the web client reads them;
|
|
434
|
+
browsers do not send the fragment to the server. 'return_to' without
|
|
435
|
+
a fragment gets one ('/#?token=...'). Any query string of
|
|
436
|
+
'return_to' is kept unchanged.
|
|
437
|
+
"""
|
|
438
|
+
base, _, fragment = return_to.partition("#")
|
|
439
|
+
if "?" not in fragment:
|
|
440
|
+
separator = "?"
|
|
441
|
+
elif fragment.endswith(("?", "&")):
|
|
442
|
+
separator = ""
|
|
443
|
+
else:
|
|
444
|
+
separator = "&"
|
|
445
|
+
qs = urllib_parse.urlencode(params)
|
|
446
|
+
return f"{base}#{fragment}{separator}{qs}"
|
|
447
|
+
|
|
448
|
+
|
|
429
449
|
@util.logfire_span("GET /auth/{system}")
|
|
430
450
|
@router.get(
|
|
431
451
|
"/auth/{system}",
|
|
@@ -484,26 +504,13 @@ async def get_auth_system(
|
|
|
484
504
|
refresh_token = tokendict["refresh_token"]
|
|
485
505
|
expires_in = tokendict["expires_in"]
|
|
486
506
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
# them
|
|
490
|
-
components = urllib_parse.urlparse(return_to)
|
|
491
|
-
qs = urllib_parse.urlencode(
|
|
507
|
+
return_to = _with_callback_params(
|
|
508
|
+
return_to,
|
|
492
509
|
dict(
|
|
493
510
|
token=access_token,
|
|
494
511
|
refresh_token=refresh_token,
|
|
495
512
|
expires_in=expires_in,
|
|
496
|
-
)
|
|
497
|
-
)
|
|
498
|
-
return_to = urllib_parse.urlunparse(
|
|
499
|
-
(
|
|
500
|
-
components.scheme,
|
|
501
|
-
components.netloc,
|
|
502
|
-
components.path,
|
|
503
|
-
components.params,
|
|
504
|
-
qs,
|
|
505
|
-
components.fragment,
|
|
506
|
-
)
|
|
513
|
+
),
|
|
507
514
|
)
|
|
508
515
|
|
|
509
516
|
return responses.RedirectResponse(return_to)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: soliplex
|
|
3
|
-
Version: 0.83.
|
|
3
|
+
Version: 0.83.2
|
|
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
|