soliplex 0.42__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.
Files changed (53) hide show
  1. soliplex-0.42/LICENSE +21 -0
  2. soliplex-0.42/PKG-INFO +357 -0
  3. soliplex-0.42/README.md +326 -0
  4. soliplex-0.42/pyproject.toml +123 -0
  5. soliplex-0.42/setup.cfg +4 -0
  6. soliplex-0.42/src/soliplex/agents.py +137 -0
  7. soliplex-0.42/src/soliplex/agui/__init__.py +380 -0
  8. soliplex-0.42/src/soliplex/agui/features.py +47 -0
  9. soliplex-0.42/src/soliplex/agui/parser.py +577 -0
  10. soliplex-0.42/src/soliplex/agui/persistence.py +938 -0
  11. soliplex-0.42/src/soliplex/agui/util.py +10 -0
  12. soliplex-0.42/src/soliplex/auth.py +10 -0
  13. soliplex-0.42/src/soliplex/authn.py +77 -0
  14. soliplex-0.42/src/soliplex/authz/__init__.py +92 -0
  15. soliplex-0.42/src/soliplex/authz/schema.py +460 -0
  16. soliplex-0.42/src/soliplex/cli.py +992 -0
  17. soliplex-0.42/src/soliplex/completions.py +93 -0
  18. soliplex-0.42/src/soliplex/config.py +2960 -0
  19. soliplex-0.42/src/soliplex/examples.py +273 -0
  20. soliplex-0.42/src/soliplex/haiku_chat.py +257 -0
  21. soliplex-0.42/src/soliplex/installation.py +478 -0
  22. soliplex-0.42/src/soliplex/log_ingest.py +48 -0
  23. soliplex-0.42/src/soliplex/loggers.py +82 -0
  24. soliplex-0.42/src/soliplex/main.py +225 -0
  25. soliplex-0.42/src/soliplex/mcp_auth.py +105 -0
  26. soliplex-0.42/src/soliplex/mcp_client.py +94 -0
  27. soliplex-0.42/src/soliplex/mcp_server.py +94 -0
  28. soliplex-0.42/src/soliplex/models.py +725 -0
  29. soliplex-0.42/src/soliplex/ollama.py +179 -0
  30. soliplex-0.42/src/soliplex/quizzes.py +107 -0
  31. soliplex-0.42/src/soliplex/secrets.py +170 -0
  32. soliplex-0.42/src/soliplex/tools.py +192 -0
  33. soliplex-0.42/src/soliplex/tui/cli.py +47 -0
  34. soliplex-0.42/src/soliplex/tui/main.py +1273 -0
  35. soliplex-0.42/src/soliplex/tui/rest_api.py +266 -0
  36. soliplex-0.42/src/soliplex/tui/serve.py +10 -0
  37. soliplex-0.42/src/soliplex/util.py +244 -0
  38. soliplex-0.42/src/soliplex/views/__init__.py +114 -0
  39. soliplex-0.42/src/soliplex/views/agui.py +754 -0
  40. soliplex-0.42/src/soliplex/views/authn.py +171 -0
  41. soliplex-0.42/src/soliplex/views/authz.py +163 -0
  42. soliplex-0.42/src/soliplex/views/completions.py +97 -0
  43. soliplex-0.42/src/soliplex/views/installation.py +138 -0
  44. soliplex-0.42/src/soliplex/views/log_ingest.py +67 -0
  45. soliplex-0.42/src/soliplex/views/quizzes.py +107 -0
  46. soliplex-0.42/src/soliplex/views/rooms.py +308 -0
  47. soliplex-0.42/src/soliplex/views/streaming.py +53 -0
  48. soliplex-0.42/src/soliplex.egg-info/PKG-INFO +357 -0
  49. soliplex-0.42/src/soliplex.egg-info/SOURCES.txt +51 -0
  50. soliplex-0.42/src/soliplex.egg-info/dependency_links.txt +1 -0
  51. soliplex-0.42/src/soliplex.egg-info/entry_points.txt +4 -0
  52. soliplex-0.42/src/soliplex.egg-info/requires.txt +19 -0
  53. soliplex-0.42/src/soliplex.egg-info/top_level.txt +1 -0
soliplex-0.42/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Enfold Systems, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
soliplex-0.42/PKG-INFO ADDED
@@ -0,0 +1,357 @@
1
+ Metadata-Version: 2.4
2
+ Name: soliplex
3
+ Version: 0.42
4
+ Summary: An AI-powered Retrieval-Augmented Generation (RAG) system with a modern web interface.
5
+ Author-email: Enfold <info@enfoldsystems.net>
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Operating System :: OS Independent
8
+ Requires-Python: >=3.12
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: ag-ui-protocol>=0.1.10
12
+ Requires-Dist: aiosqlite
13
+ Requires-Dist: authlib
14
+ Requires-Dist: fastapi
15
+ Requires-Dist: fastmcp<2.15,>=2.14.0
16
+ Requires-Dist: greenlet
17
+ Requires-Dist: haiku.rag-slim<0.30.0,>=0.29.1
18
+ Requires-Dist: itsdangerous
19
+ Requires-Dist: jsonpatch
20
+ Requires-Dist: jwcrypto
21
+ Requires-Dist: logfire[fastapi]
22
+ Requires-Dist: pydantic-ai-slim[google]
23
+ Requires-Dist: pyjwt
24
+ Requires-Dist: python-keycloak
25
+ Requires-Dist: sqlmodel
26
+ Requires-Dist: starlette
27
+ Requires-Dist: trio
28
+ Requires-Dist: uvicorn[standard]
29
+ Requires-Dist: certifi>=2025.11.12
30
+ Dynamic: license-file
31
+
32
+ https://pypi.org/project/haiku.rag-slim/# Soliplex
33
+
34
+ An AI-powered Retrieval-Augmented Generation (RAG) system with a modern web interface.
35
+
36
+ ## Features
37
+
38
+ - **RAG-Powered Search**: Semantic document retrieval using LanceDB vector database
39
+ - **Multi-Room Architecture**: Independent chat environments (rooms) with separate configurations and knowledge bases
40
+ - **Multiple LLM Providers**: OpenAI, Ollama, and compatible APIs
41
+ - **AI Agent System**: Function calling and tool integration for AI agents
42
+ - **OIDC Authentication**: Enterprise SSO with Keycloak integration
43
+ - **Model Context Protocol (MCP)**: Extended AI capabilities through MCP client or exposing Room as MCP server
44
+ - **Real-time Communication**: WebSocket-based conversation streams
45
+ - **Quiz System**: Custom quizzes with LLM-based evaluation
46
+ - **Observability**: Logfire integration for monitoring
47
+
48
+ ## Architecture
49
+
50
+ ### Backend (`/src/soliplex/`)
51
+ **Python 3.12+ / FastAPI**
52
+
53
+ - **Core**: FastAPI application with async support
54
+ - **RAG Engine**: [haiku.rag-slim](https://pypi.org/project/haiku.rag-slim/)
55
+ with LanceDB vector storage
56
+ - **AI Integration**: [Pydantic AI](https://pypi.org/project/pydantic-ai/)
57
+ for agent management
58
+ - **Authentication**: Python-Keycloak with OIDC/JWT support
59
+ - **MCP**: [FastMCP](https://pypi.org/project/fastmcp/) server and client
60
+ implementations
61
+ - **Configuration**: YAML-based configuration system
62
+
63
+ Key modules:
64
+ - `views/` - API endpoints (auth, completions, conversations, rooms, quizzes)
65
+ - `agents.py` - AI agent configuration and management
66
+ - `agui/` - AG-UI thread persistence and retrieval
67
+ - `tools.py` - Tool definitions for AI agents
68
+ - `mcp_server.py` / `mcp_client.py` - Model Context Protocol integration
69
+ - `tui/` - Terminal user interface
70
+
71
+ ### Frontend (`/src/flutter/`)
72
+ **Flutter 3.35+ / Dart 3.10.0+**
73
+
74
+ - **Framework**: Flutter web with Material Design
75
+ - **State Management**: Riverpod (2.6.1)
76
+ - **Navigation**: Go Router (16.0.0)
77
+ - **Authentication**: Flutter AppAuth (9.0.1) for OIDC
78
+ - **Real-time**: WebSocket communication
79
+ - **Secure Storage**: Flutter Secure Storage for credentials
80
+
81
+ Key files:
82
+ - `main.dart` - Application entry point
83
+ - `soliplex_client.dart` - Backend API client
84
+ - `oidc_client.dart` - OIDC authentication client
85
+ - `controllers.dart` - Riverpod state management
86
+ - `configure.dart` - Configuration UI
87
+
88
+ ### TUI (`src/soliplex/tui`)
89
+
90
+ Quick-and-dirty client for room queries
91
+
92
+ - **Framework**: Python `textual`
93
+
94
+ ## Quick Start
95
+
96
+ For detailed installation instructions, see the [Prerequisites Guide](docs/prerequisites.md).
97
+
98
+ ### Install Soliplex and dependencies
99
+
100
+ ```bash
101
+ # Install
102
+ python3.13 -m venv venv
103
+ source venv/bin/activate
104
+ pip install -e .
105
+
106
+ # Configure environment
107
+ cp .env.example .env
108
+ # Edit .env with your settings
109
+ ```
110
+
111
+ ### Index Soliplex docs into RAG database
112
+
113
+ ```bash
114
+ source venv/bin/activate
115
+ export OLLAMA_BASE_URL=<your Ollama server / port>
116
+ # Run docling-serve if you have not installed the full haiku.rag
117
+ docker run -p 5001:5001 -d -e DOCLING_SERVE_ENABLE_UI=1 \
118
+ quay.io/docling-project/docling-serve
119
+ haiku-rag --config example/haiku.rag.yaml \
120
+ init --db db/rag/rag.lancedb
121
+ haiku-rag --config example/haiku.rag.yaml \
122
+ add-src --db db/rag/rag.lancedb docs/
123
+ ...
124
+ 17 documents added successfully.
125
+ ```
126
+
127
+ See: `docs/rag.md` for more options.
128
+
129
+ ### Backend Server CLI Commands
130
+
131
+ The `soliplex-cli` command provides several utilities for managing your Soliplex installation:
132
+
133
+ #### Check Configuration
134
+ Validate your configuration file and report any missing secrets or environment variables:
135
+ ```bash
136
+ soliplex-cli check-config example/minimal.yaml
137
+ ```
138
+
139
+ #### List Rooms
140
+ Show all configured chat rooms:
141
+ ```bash
142
+ soliplex-cli list-rooms example/minimal.yaml
143
+ ```
144
+
145
+ #### List Completions
146
+ Show all configured completion endpoints:
147
+ ```bash
148
+ soliplex-cli list-completions example/minimal.yaml
149
+ ```
150
+
151
+ #### List Secrets
152
+ Display all configured secrets and their status:
153
+ ```bash
154
+ soliplex-cli list-secrets example/minimal.yaml
155
+ ```
156
+
157
+ #### List Environment Variables
158
+ Show all environment variables and their values:
159
+ ```bash
160
+ soliplex-cli list-environment example/minimal.yaml
161
+ ```
162
+
163
+ #### List OIDC Providers
164
+ Display configured OIDC authentication providers:
165
+ ```bash
166
+ soliplex-cli list-oidc-auth-providers example/minimal.yaml
167
+ ```
168
+
169
+ #### Export Configuration
170
+ Export the installation configuration as YAML:
171
+ ```bash
172
+ soliplex-cli config example/minimal.yaml
173
+ ```
174
+
175
+ #### Export AG-UI Feature Schemas
176
+ Export AG-UI feature schemas as JSON:
177
+ ```bash
178
+ soliplex-cli agui-feature-schemas example/minimal.yaml
179
+ ```
180
+
181
+ #### Run Backend Server
182
+ Start the Soliplex backend server:
183
+ ```bash
184
+ export OLLAMA_BASE_URL=<your Ollama server / port>
185
+ soliplex-cli serve example/minimal.yaml --no-auth-mode
186
+ ```
187
+
188
+ Server options:
189
+ - `--no-auth-mode` - Disable authentication (for development/testing)
190
+ - `--host HOST` - Bind to specific host (default: 127.0.0.1)
191
+ - `--port PORT` - Listen on specific port (default: 8000)
192
+ - `--reload {python,config,both}` - Enable hot reload for python code, config, or both
193
+ - `--reload-dirs DIRS` - Additional directories to watch for reload
194
+ - `--reload-includes PATTERNS` - File patterns to include in reload watch
195
+ - `--proxy-headers` - Enable proxy header parsing
196
+ - `--forwarded-allow-ips IPS` - Trusted IP addresses for proxy headers
197
+
198
+ ### Frontend
199
+
200
+ ```bash
201
+ cd src/flutter
202
+ flutter pub get
203
+ flutter run -d chrome --web-port 59001
204
+ ```
205
+
206
+ ### TUI
207
+
208
+ The TUI does not yet support authentication, so run the back-end with
209
+ `--no-auth-mode` when using the TUI.
210
+
211
+ Within the virtual environment where you installed `soliplex`:
212
+
213
+ ```bash
214
+ soliplex-tui --help
215
+
216
+ Usage: soliplex-tui [OPTIONS]
217
+
218
+ ╭─ Options ────────────────────────────────────────────────────────────────────╮
219
+ │ --version -v │
220
+ │ --url TEXT Base URL for Soliplex back-end │
221
+ │ [default: http://127.0.0.1:8000] │
222
+ │ --help -h Show this message and exit. │
223
+ ╰──────────────────────────────────────────────────────────────────────────────╯
224
+ ```
225
+
226
+ ```bash
227
+ soliplex-tui
228
+ ```
229
+
230
+ By default, the TUI connects to a Soliplex back-end server running
231
+ on port 8000 on your local machine:
232
+
233
+ ```bash
234
+ soliplex-tui --url http://127.0.0.1:8000
235
+ ```
236
+
237
+ ## Development
238
+
239
+ This project uses [PEP 735 Dependency Groups](https://peps.python.org/pep-0735/)
240
+ for managing development dependencies. This is the modern standard supported by
241
+ `uv` and recent versions of `pip`.
242
+
243
+ ### Installing dev dependencies
244
+
245
+ ```bash
246
+ # Using pip (requires pip 24.0+)
247
+ pip install -e . --group dev
248
+
249
+ # Using uv (recommended)
250
+ uv sync --group dev
251
+ ```
252
+
253
+ **Note:** The older syntax `pip install -e ".[dev]"` is for `[project.optional-dependencies]`
254
+ and will NOT work with `[dependency-groups]`. Always use `--group dev` instead.
255
+
256
+ ### Available dependency groups
257
+
258
+ | Group | Purpose |
259
+ |-------|---------|
260
+ | `dev` | Testing tools (pytest, ruff, coverage) |
261
+ | `docs` | Documentation (mkdocs, mkdocs-material) |
262
+ | `postgres` | PostgreSQL support (asyncpg) |
263
+ | `tui` | Terminal UI (textual, typer) |
264
+
265
+ ### Running tests
266
+
267
+ ```bash
268
+ # Run unit tests with coverage
269
+ pytest
270
+
271
+ # Run with specific coverage threshold (CI enforces 100%)
272
+ pytest --cov-fail-under=100
273
+
274
+ # Run linting
275
+ ruff check
276
+
277
+ # Check formatting
278
+ ruff format --check
279
+ ```
280
+
281
+ ## Configuration
282
+
283
+ YAML-based configuration with:
284
+ - **Installation** (`installation.yaml`) - Main config referencing agents, rooms, and OIDC providers
285
+ - **Rooms** (`rooms/*.yaml`) - Individual chat room configurations with RAG settings
286
+ - **Agents** (`completions/*.yaml`) - LLM provider and model configurations
287
+ - **OIDC** (`oidc/*.yaml`) - Authentication provider settings
288
+
289
+ See `example/` directory for sample configurations.
290
+
291
+ ### Environment Variables
292
+
293
+ Non-secret environment variables can and mostly should be configured
294
+ directly in the `installation.yaml` file (e.g. `example/installation.yaml`,
295
+ `example/minimal.yaml`, etc.).
296
+
297
+ Those files are checked into the Soliplex repository, and cannot know
298
+ the URL of your Ollama server (if you use Ollama), They therefore declare
299
+ the `OLLAMA_BASE_URL` variable without a value, meaning that the configuration
300
+ expects the value to be present in the environments (see:
301
+ https://soliplex.github.io/soliplex/config/environment/).
302
+
303
+ Those files also must not contain secrets (API keys, etc.): instead,
304
+ they configure secret values to be found from the environment (see
305
+ https://soliplex.github.io/soliplex/config/secrets/).
306
+
307
+ If your installation configures such values to be found from the OS
308
+ environment, you can create a `.env` file which defines them, and arrange
309
+ for the file to be sourced into your environment before startin the Soliplex
310
+ application.
311
+
312
+ Copy `.env.example` to `.env` and edit it to configure your values:
313
+
314
+ ```bash
315
+ cp .env.example .env
316
+ ```
317
+
318
+ ## Documentation
319
+
320
+ Comprehensive documentation is available in the `docs/` directory:
321
+
322
+ - **[Prerequisites Guide](docs/prerequisites.md)** - Step-by-step installation checklist
323
+ - **[Server Setup](docs/server.md)** - Backend server configuration and CLI reference
324
+ - **[Client Setup](docs/client.md)** - Frontend Flutter application setup
325
+ - **[Docker Deployment](docs/docker.md)** - Complete Docker and docker-compose guide
326
+ - **[RAG Setup](docs/rag.md)** - RAG database initialization and management
327
+ - **[Configuration](docs/config/)** - Detailed configuration options
328
+
329
+ ### Running with Docker
330
+
331
+ See the [Docker Deployment Guide](docs/docker.md) for complete instructions:
332
+
333
+ ```bash
334
+ # Setup
335
+ cp .env.example .env
336
+ # Edit .env with your settings
337
+
338
+ # Run
339
+ docker-compose up
340
+ ```
341
+
342
+ Access:
343
+ - Backend API: http://localhost:8000
344
+ - API Documentation: http://localhost:8000/docs
345
+ - Frontend Web UI: http://localhost:9000
346
+
347
+ ## Related Repositories
348
+
349
+ - **[soliplex/flutter](https://github.com/soliplex/flutter)** - Flutter frontend (cross-platform mobile/desktop)
350
+ - **[Documentation](https://soliplex.github.io/)** - Documentation site (MkDocs)
351
+ - **[soliplex/ingester](https://github.com/soliplex/ingester)** - Content ingestion pipeline
352
+ - **[soliplex/ingester-agents](https://github.com/soliplex/ingester-agents)** - Document ingestion agents
353
+ - **[soliplex/whitelabel](https://github.com/soliplex/whitelabel)** - Customer white-label appshell template
354
+
355
+ ## License
356
+
357
+ MIT License - Copyright (c) 2025 Enfold Systems, Inc.
@@ -0,0 +1,326 @@
1
+ https://pypi.org/project/haiku.rag-slim/# Soliplex
2
+
3
+ An AI-powered Retrieval-Augmented Generation (RAG) system with a modern web interface.
4
+
5
+ ## Features
6
+
7
+ - **RAG-Powered Search**: Semantic document retrieval using LanceDB vector database
8
+ - **Multi-Room Architecture**: Independent chat environments (rooms) with separate configurations and knowledge bases
9
+ - **Multiple LLM Providers**: OpenAI, Ollama, and compatible APIs
10
+ - **AI Agent System**: Function calling and tool integration for AI agents
11
+ - **OIDC Authentication**: Enterprise SSO with Keycloak integration
12
+ - **Model Context Protocol (MCP)**: Extended AI capabilities through MCP client or exposing Room as MCP server
13
+ - **Real-time Communication**: WebSocket-based conversation streams
14
+ - **Quiz System**: Custom quizzes with LLM-based evaluation
15
+ - **Observability**: Logfire integration for monitoring
16
+
17
+ ## Architecture
18
+
19
+ ### Backend (`/src/soliplex/`)
20
+ **Python 3.12+ / FastAPI**
21
+
22
+ - **Core**: FastAPI application with async support
23
+ - **RAG Engine**: [haiku.rag-slim](https://pypi.org/project/haiku.rag-slim/)
24
+ with LanceDB vector storage
25
+ - **AI Integration**: [Pydantic AI](https://pypi.org/project/pydantic-ai/)
26
+ for agent management
27
+ - **Authentication**: Python-Keycloak with OIDC/JWT support
28
+ - **MCP**: [FastMCP](https://pypi.org/project/fastmcp/) server and client
29
+ implementations
30
+ - **Configuration**: YAML-based configuration system
31
+
32
+ Key modules:
33
+ - `views/` - API endpoints (auth, completions, conversations, rooms, quizzes)
34
+ - `agents.py` - AI agent configuration and management
35
+ - `agui/` - AG-UI thread persistence and retrieval
36
+ - `tools.py` - Tool definitions for AI agents
37
+ - `mcp_server.py` / `mcp_client.py` - Model Context Protocol integration
38
+ - `tui/` - Terminal user interface
39
+
40
+ ### Frontend (`/src/flutter/`)
41
+ **Flutter 3.35+ / Dart 3.10.0+**
42
+
43
+ - **Framework**: Flutter web with Material Design
44
+ - **State Management**: Riverpod (2.6.1)
45
+ - **Navigation**: Go Router (16.0.0)
46
+ - **Authentication**: Flutter AppAuth (9.0.1) for OIDC
47
+ - **Real-time**: WebSocket communication
48
+ - **Secure Storage**: Flutter Secure Storage for credentials
49
+
50
+ Key files:
51
+ - `main.dart` - Application entry point
52
+ - `soliplex_client.dart` - Backend API client
53
+ - `oidc_client.dart` - OIDC authentication client
54
+ - `controllers.dart` - Riverpod state management
55
+ - `configure.dart` - Configuration UI
56
+
57
+ ### TUI (`src/soliplex/tui`)
58
+
59
+ Quick-and-dirty client for room queries
60
+
61
+ - **Framework**: Python `textual`
62
+
63
+ ## Quick Start
64
+
65
+ For detailed installation instructions, see the [Prerequisites Guide](docs/prerequisites.md).
66
+
67
+ ### Install Soliplex and dependencies
68
+
69
+ ```bash
70
+ # Install
71
+ python3.13 -m venv venv
72
+ source venv/bin/activate
73
+ pip install -e .
74
+
75
+ # Configure environment
76
+ cp .env.example .env
77
+ # Edit .env with your settings
78
+ ```
79
+
80
+ ### Index Soliplex docs into RAG database
81
+
82
+ ```bash
83
+ source venv/bin/activate
84
+ export OLLAMA_BASE_URL=<your Ollama server / port>
85
+ # Run docling-serve if you have not installed the full haiku.rag
86
+ docker run -p 5001:5001 -d -e DOCLING_SERVE_ENABLE_UI=1 \
87
+ quay.io/docling-project/docling-serve
88
+ haiku-rag --config example/haiku.rag.yaml \
89
+ init --db db/rag/rag.lancedb
90
+ haiku-rag --config example/haiku.rag.yaml \
91
+ add-src --db db/rag/rag.lancedb docs/
92
+ ...
93
+ 17 documents added successfully.
94
+ ```
95
+
96
+ See: `docs/rag.md` for more options.
97
+
98
+ ### Backend Server CLI Commands
99
+
100
+ The `soliplex-cli` command provides several utilities for managing your Soliplex installation:
101
+
102
+ #### Check Configuration
103
+ Validate your configuration file and report any missing secrets or environment variables:
104
+ ```bash
105
+ soliplex-cli check-config example/minimal.yaml
106
+ ```
107
+
108
+ #### List Rooms
109
+ Show all configured chat rooms:
110
+ ```bash
111
+ soliplex-cli list-rooms example/minimal.yaml
112
+ ```
113
+
114
+ #### List Completions
115
+ Show all configured completion endpoints:
116
+ ```bash
117
+ soliplex-cli list-completions example/minimal.yaml
118
+ ```
119
+
120
+ #### List Secrets
121
+ Display all configured secrets and their status:
122
+ ```bash
123
+ soliplex-cli list-secrets example/minimal.yaml
124
+ ```
125
+
126
+ #### List Environment Variables
127
+ Show all environment variables and their values:
128
+ ```bash
129
+ soliplex-cli list-environment example/minimal.yaml
130
+ ```
131
+
132
+ #### List OIDC Providers
133
+ Display configured OIDC authentication providers:
134
+ ```bash
135
+ soliplex-cli list-oidc-auth-providers example/minimal.yaml
136
+ ```
137
+
138
+ #### Export Configuration
139
+ Export the installation configuration as YAML:
140
+ ```bash
141
+ soliplex-cli config example/minimal.yaml
142
+ ```
143
+
144
+ #### Export AG-UI Feature Schemas
145
+ Export AG-UI feature schemas as JSON:
146
+ ```bash
147
+ soliplex-cli agui-feature-schemas example/minimal.yaml
148
+ ```
149
+
150
+ #### Run Backend Server
151
+ Start the Soliplex backend server:
152
+ ```bash
153
+ export OLLAMA_BASE_URL=<your Ollama server / port>
154
+ soliplex-cli serve example/minimal.yaml --no-auth-mode
155
+ ```
156
+
157
+ Server options:
158
+ - `--no-auth-mode` - Disable authentication (for development/testing)
159
+ - `--host HOST` - Bind to specific host (default: 127.0.0.1)
160
+ - `--port PORT` - Listen on specific port (default: 8000)
161
+ - `--reload {python,config,both}` - Enable hot reload for python code, config, or both
162
+ - `--reload-dirs DIRS` - Additional directories to watch for reload
163
+ - `--reload-includes PATTERNS` - File patterns to include in reload watch
164
+ - `--proxy-headers` - Enable proxy header parsing
165
+ - `--forwarded-allow-ips IPS` - Trusted IP addresses for proxy headers
166
+
167
+ ### Frontend
168
+
169
+ ```bash
170
+ cd src/flutter
171
+ flutter pub get
172
+ flutter run -d chrome --web-port 59001
173
+ ```
174
+
175
+ ### TUI
176
+
177
+ The TUI does not yet support authentication, so run the back-end with
178
+ `--no-auth-mode` when using the TUI.
179
+
180
+ Within the virtual environment where you installed `soliplex`:
181
+
182
+ ```bash
183
+ soliplex-tui --help
184
+
185
+ Usage: soliplex-tui [OPTIONS]
186
+
187
+ ╭─ Options ────────────────────────────────────────────────────────────────────╮
188
+ │ --version -v │
189
+ │ --url TEXT Base URL for Soliplex back-end │
190
+ │ [default: http://127.0.0.1:8000] │
191
+ │ --help -h Show this message and exit. │
192
+ ╰──────────────────────────────────────────────────────────────────────────────╯
193
+ ```
194
+
195
+ ```bash
196
+ soliplex-tui
197
+ ```
198
+
199
+ By default, the TUI connects to a Soliplex back-end server running
200
+ on port 8000 on your local machine:
201
+
202
+ ```bash
203
+ soliplex-tui --url http://127.0.0.1:8000
204
+ ```
205
+
206
+ ## Development
207
+
208
+ This project uses [PEP 735 Dependency Groups](https://peps.python.org/pep-0735/)
209
+ for managing development dependencies. This is the modern standard supported by
210
+ `uv` and recent versions of `pip`.
211
+
212
+ ### Installing dev dependencies
213
+
214
+ ```bash
215
+ # Using pip (requires pip 24.0+)
216
+ pip install -e . --group dev
217
+
218
+ # Using uv (recommended)
219
+ uv sync --group dev
220
+ ```
221
+
222
+ **Note:** The older syntax `pip install -e ".[dev]"` is for `[project.optional-dependencies]`
223
+ and will NOT work with `[dependency-groups]`. Always use `--group dev` instead.
224
+
225
+ ### Available dependency groups
226
+
227
+ | Group | Purpose |
228
+ |-------|---------|
229
+ | `dev` | Testing tools (pytest, ruff, coverage) |
230
+ | `docs` | Documentation (mkdocs, mkdocs-material) |
231
+ | `postgres` | PostgreSQL support (asyncpg) |
232
+ | `tui` | Terminal UI (textual, typer) |
233
+
234
+ ### Running tests
235
+
236
+ ```bash
237
+ # Run unit tests with coverage
238
+ pytest
239
+
240
+ # Run with specific coverage threshold (CI enforces 100%)
241
+ pytest --cov-fail-under=100
242
+
243
+ # Run linting
244
+ ruff check
245
+
246
+ # Check formatting
247
+ ruff format --check
248
+ ```
249
+
250
+ ## Configuration
251
+
252
+ YAML-based configuration with:
253
+ - **Installation** (`installation.yaml`) - Main config referencing agents, rooms, and OIDC providers
254
+ - **Rooms** (`rooms/*.yaml`) - Individual chat room configurations with RAG settings
255
+ - **Agents** (`completions/*.yaml`) - LLM provider and model configurations
256
+ - **OIDC** (`oidc/*.yaml`) - Authentication provider settings
257
+
258
+ See `example/` directory for sample configurations.
259
+
260
+ ### Environment Variables
261
+
262
+ Non-secret environment variables can and mostly should be configured
263
+ directly in the `installation.yaml` file (e.g. `example/installation.yaml`,
264
+ `example/minimal.yaml`, etc.).
265
+
266
+ Those files are checked into the Soliplex repository, and cannot know
267
+ the URL of your Ollama server (if you use Ollama), They therefore declare
268
+ the `OLLAMA_BASE_URL` variable without a value, meaning that the configuration
269
+ expects the value to be present in the environments (see:
270
+ https://soliplex.github.io/soliplex/config/environment/).
271
+
272
+ Those files also must not contain secrets (API keys, etc.): instead,
273
+ they configure secret values to be found from the environment (see
274
+ https://soliplex.github.io/soliplex/config/secrets/).
275
+
276
+ If your installation configures such values to be found from the OS
277
+ environment, you can create a `.env` file which defines them, and arrange
278
+ for the file to be sourced into your environment before startin the Soliplex
279
+ application.
280
+
281
+ Copy `.env.example` to `.env` and edit it to configure your values:
282
+
283
+ ```bash
284
+ cp .env.example .env
285
+ ```
286
+
287
+ ## Documentation
288
+
289
+ Comprehensive documentation is available in the `docs/` directory:
290
+
291
+ - **[Prerequisites Guide](docs/prerequisites.md)** - Step-by-step installation checklist
292
+ - **[Server Setup](docs/server.md)** - Backend server configuration and CLI reference
293
+ - **[Client Setup](docs/client.md)** - Frontend Flutter application setup
294
+ - **[Docker Deployment](docs/docker.md)** - Complete Docker and docker-compose guide
295
+ - **[RAG Setup](docs/rag.md)** - RAG database initialization and management
296
+ - **[Configuration](docs/config/)** - Detailed configuration options
297
+
298
+ ### Running with Docker
299
+
300
+ See the [Docker Deployment Guide](docs/docker.md) for complete instructions:
301
+
302
+ ```bash
303
+ # Setup
304
+ cp .env.example .env
305
+ # Edit .env with your settings
306
+
307
+ # Run
308
+ docker-compose up
309
+ ```
310
+
311
+ Access:
312
+ - Backend API: http://localhost:8000
313
+ - API Documentation: http://localhost:8000/docs
314
+ - Frontend Web UI: http://localhost:9000
315
+
316
+ ## Related Repositories
317
+
318
+ - **[soliplex/flutter](https://github.com/soliplex/flutter)** - Flutter frontend (cross-platform mobile/desktop)
319
+ - **[Documentation](https://soliplex.github.io/)** - Documentation site (MkDocs)
320
+ - **[soliplex/ingester](https://github.com/soliplex/ingester)** - Content ingestion pipeline
321
+ - **[soliplex/ingester-agents](https://github.com/soliplex/ingester-agents)** - Document ingestion agents
322
+ - **[soliplex/whitelabel](https://github.com/soliplex/whitelabel)** - Customer white-label appshell template
323
+
324
+ ## License
325
+
326
+ MIT License - Copyright (c) 2025 Enfold Systems, Inc.