dominus-sdk-python 2.10.0__tar.gz → 2.11.0__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 (48) hide show
  1. dominus_sdk_python-2.11.0/PKG-INFO +92 -0
  2. dominus_sdk_python-2.11.0/README.md +50 -0
  3. dominus_sdk_python-2.11.0/dominus/helpers/console_capture.py +164 -0
  4. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/auth.py +12 -1
  5. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/start.py +22 -0
  6. dominus_sdk_python-2.11.0/dominus_sdk_python.egg-info/PKG-INFO +92 -0
  7. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus_sdk_python.egg-info/SOURCES.txt +1 -0
  8. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/pyproject.toml +1 -1
  9. dominus_sdk_python-2.10.0/PKG-INFO +0 -583
  10. dominus_sdk_python-2.10.0/README.md +0 -541
  11. dominus_sdk_python-2.10.0/dominus_sdk_python.egg-info/PKG-INFO +0 -583
  12. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/__init__.py +0 -0
  13. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/config/__init__.py +0 -0
  14. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/config/endpoints.py +0 -0
  15. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/errors.py +0 -0
  16. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/helpers/__init__.py +0 -0
  17. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/helpers/auth.py +0 -0
  18. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/helpers/cache.py +0 -0
  19. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/helpers/core.py +0 -0
  20. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/helpers/crypto.py +0 -0
  21. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/helpers/sse.py +0 -0
  22. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/__init__.py +0 -0
  23. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/admin.py +0 -0
  24. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/ai.py +0 -0
  25. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/courier.py +0 -0
  26. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/db.py +0 -0
  27. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/ddl.py +0 -0
  28. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/fastapi.py +0 -0
  29. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/files.py +0 -0
  30. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/health.py +0 -0
  31. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/logs.py +0 -0
  32. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/open.py +0 -0
  33. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/oracle/__init__.py +0 -0
  34. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/oracle/audio_capture.py +0 -0
  35. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/oracle/oracle_websocket.py +0 -0
  36. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/oracle/session.py +0 -0
  37. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/oracle/types.py +0 -0
  38. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/oracle/vad_gate.py +0 -0
  39. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/portal.py +0 -0
  40. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/redis.py +0 -0
  41. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/secrets.py +0 -0
  42. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/secure.py +0 -0
  43. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/namespaces/workflow.py +0 -0
  44. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus/services/__init__.py +0 -0
  45. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus_sdk_python.egg-info/dependency_links.txt +0 -0
  46. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus_sdk_python.egg-info/requires.txt +0 -0
  47. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/dominus_sdk_python.egg-info/top_level.txt +0 -0
  48. {dominus_sdk_python-2.10.0 → dominus_sdk_python-2.11.0}/setup.cfg +0 -0
@@ -0,0 +1,92 @@
1
+ Metadata-Version: 2.4
2
+ Name: dominus-sdk-python
3
+ Version: 2.11.0
4
+ Summary: Python SDK for the Dominus Orchestrator Platform
5
+ Author-email: CareBridge Systems <dev@carebridge.io>
6
+ License: Proprietary
7
+ Project-URL: Homepage, https://github.com/carebridgesystems/dominus-sdk-python
8
+ Project-URL: Repository, https://github.com/carebridgesystems/dominus-sdk-python
9
+ Keywords: dominus,carebridge,sdk,orchestrator,api,async
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: Other/Proprietary License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Framework :: AsyncIO
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: httpx>=0.24.0
24
+ Requires-Dist: bcrypt>=4.0.0
25
+ Requires-Dist: cryptography>=41.0.0
26
+ Provides-Extra: jwt
27
+ Requires-Dist: PyJWT>=2.8.0; extra == "jwt"
28
+ Provides-Extra: oracle
29
+ Requires-Dist: websockets>=12.0; extra == "oracle"
30
+ Requires-Dist: sounddevice>=0.4.6; extra == "oracle"
31
+ Requires-Dist: numpy>=1.24.0; extra == "oracle"
32
+ Requires-Dist: webrtcvad>=2.0.10; extra == "oracle"
33
+ Provides-Extra: dev
34
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
35
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
36
+ Provides-Extra: all
37
+ Requires-Dist: PyJWT>=2.8.0; extra == "all"
38
+ Requires-Dist: websockets>=12.0; extra == "all"
39
+ Requires-Dist: sounddevice>=0.4.6; extra == "all"
40
+ Requires-Dist: numpy>=1.24.0; extra == "all"
41
+ Requires-Dist: webrtcvad>=2.0.10; extra == "all"
42
+
43
+ # Dominus SDK for Python
44
+
45
+ Async Python SDK for CareBridge Dominus services. It routes service calls to the Dominus Orchestrator and handles gateway-based JWT minting, base64 encoding, retries, and circuit breaking.
46
+
47
+ ## What This Is
48
+ - Server-side, asyncio-first Python SDK (3.9+)
49
+ - Namespace API plus ultra-flat root shortcuts for common operations
50
+ - Defaults to production orchestrator + gateway endpoints (configurable)
51
+
52
+ ## Quick Start
53
+ ```python
54
+ import os
55
+ from dominus import dominus
56
+
57
+ os.environ["DOMINUS_TOKEN"] = "your-psk-token"
58
+
59
+ users = await dominus.db.query("users", filters={"status": "active"})
60
+ await dominus.redis.set("session:123", {"user": "john"}, ttl=3600)
61
+ file = await dominus.files.upload(data=buf, filename="report.pdf", category="reports")
62
+ ```
63
+
64
+ ## Architecture (SDK View)
65
+ - DOMINUS_TOKEN (PSK) -> Gateway `/jwt/mint` -> JWT cached in `dominus_cache`
66
+ - JSON requests/responses are base64-encoded for auth-required routes
67
+ - GET requests send no body; parameters are in path or POST body
68
+ - Gateway routing is optional per-request; AI namespace always uses gateway
69
+
70
+ ## Namespaces
71
+ - `secrets`, `db`, `secure`, `redis`, `files`, `auth`, `ddl`, `logs`, `portal`, `courier`, `open`, `health`
72
+ - `admin` (reseed/reset admin category)
73
+ - `ai` (agent-runtime: LLM, RAG, artifacts, results, orchestration, speech)
74
+ - `workflow` (workflow-manager CRUD and execution)
75
+ - `oracle` / `stt` (streaming speech-to-text sessions)
76
+
77
+ ## Configuration
78
+ Required:
79
+ - `DOMINUS_TOKEN`
80
+
81
+ Optional:
82
+ - `DOMINUS_GATEWAY_URL` (default production gateway)
83
+ - `DOMINUS_BASE_URL` (default production orchestrator)
84
+ - `DOMINUS_HTTP_PROXY` / `DOMINUS_HTTPS_PROXY` (httpx proxies)
85
+
86
+ ## Documentation
87
+ - `docs/architecture.md`
88
+ - `docs/namespaces.md`
89
+ - `docs/development.md`
90
+
91
+ ## License
92
+ Proprietary - CareBridge Systems
@@ -0,0 +1,50 @@
1
+ # Dominus SDK for Python
2
+
3
+ Async Python SDK for CareBridge Dominus services. It routes service calls to the Dominus Orchestrator and handles gateway-based JWT minting, base64 encoding, retries, and circuit breaking.
4
+
5
+ ## What This Is
6
+ - Server-side, asyncio-first Python SDK (3.9+)
7
+ - Namespace API plus ultra-flat root shortcuts for common operations
8
+ - Defaults to production orchestrator + gateway endpoints (configurable)
9
+
10
+ ## Quick Start
11
+ ```python
12
+ import os
13
+ from dominus import dominus
14
+
15
+ os.environ["DOMINUS_TOKEN"] = "your-psk-token"
16
+
17
+ users = await dominus.db.query("users", filters={"status": "active"})
18
+ await dominus.redis.set("session:123", {"user": "john"}, ttl=3600)
19
+ file = await dominus.files.upload(data=buf, filename="report.pdf", category="reports")
20
+ ```
21
+
22
+ ## Architecture (SDK View)
23
+ - DOMINUS_TOKEN (PSK) -> Gateway `/jwt/mint` -> JWT cached in `dominus_cache`
24
+ - JSON requests/responses are base64-encoded for auth-required routes
25
+ - GET requests send no body; parameters are in path or POST body
26
+ - Gateway routing is optional per-request; AI namespace always uses gateway
27
+
28
+ ## Namespaces
29
+ - `secrets`, `db`, `secure`, `redis`, `files`, `auth`, `ddl`, `logs`, `portal`, `courier`, `open`, `health`
30
+ - `admin` (reseed/reset admin category)
31
+ - `ai` (agent-runtime: LLM, RAG, artifacts, results, orchestration, speech)
32
+ - `workflow` (workflow-manager CRUD and execution)
33
+ - `oracle` / `stt` (streaming speech-to-text sessions)
34
+
35
+ ## Configuration
36
+ Required:
37
+ - `DOMINUS_TOKEN`
38
+
39
+ Optional:
40
+ - `DOMINUS_GATEWAY_URL` (default production gateway)
41
+ - `DOMINUS_BASE_URL` (default production orchestrator)
42
+ - `DOMINUS_HTTP_PROXY` / `DOMINUS_HTTPS_PROXY` (httpx proxies)
43
+
44
+ ## Documentation
45
+ - `docs/architecture.md`
46
+ - `docs/namespaces.md`
47
+ - `docs/development.md`
48
+
49
+ ## License
50
+ Proprietary - CareBridge Systems
@@ -0,0 +1,164 @@
1
+ """
2
+ Console Capture - Auto-forwards print() and logging.* to Dominus Logs Worker.
3
+
4
+ Activated by DOMINUS_CAPTURE_CONSOLE=true environment variable.
5
+ Preserves original output and never throws errors.
6
+
7
+ Usage:
8
+ # Automatic (via env var):
9
+ # Set DOMINUS_CAPTURE_CONSOLE=true before importing SDK
10
+
11
+ # Manual:
12
+ from dominus import dominus
13
+ dominus.capture_console() # start capturing
14
+ dominus.release_console() # stop capturing
15
+ """
16
+ import asyncio
17
+ import builtins
18
+ import logging
19
+ import sys
20
+ from typing import Optional, TYPE_CHECKING
21
+
22
+ if TYPE_CHECKING:
23
+ from ..namespaces.logs import LogsNamespace
24
+
25
+ _installed = False
26
+ _logs_ref: Optional["LogsNamespace"] = None
27
+ _original_print = builtins.print
28
+ _log_handler: Optional["DominusLogHandler"] = None
29
+
30
+ # Guard against re-entrant calls (fallback_log uses print to stderr)
31
+ _sending = False
32
+
33
+
34
+ def _format_args(args: tuple, kwargs: dict) -> str:
35
+ """Format print-style arguments into a single string."""
36
+ sep = kwargs.get("sep", " ")
37
+ parts = []
38
+ for arg in args:
39
+ if arg is None:
40
+ parts.append("None")
41
+ elif isinstance(arg, Exception):
42
+ parts.append(f"{type(arg).__name__}: {arg}")
43
+ elif isinstance(arg, (dict, list)):
44
+ try:
45
+ import json
46
+ parts.append(json.dumps(arg, default=str))
47
+ except Exception:
48
+ parts.append(str(arg))
49
+ else:
50
+ parts.append(str(arg))
51
+ return sep.join(parts)
52
+
53
+
54
+ def _fire_log(level: str, message: str) -> None:
55
+ """Fire-and-forget log to Dominus Logs Worker. Never blocks, never throws."""
56
+ global _sending
57
+ if _sending or not _logs_ref:
58
+ return
59
+ _sending = True
60
+
61
+ async def _send():
62
+ global _sending
63
+ try:
64
+ if level == "debug":
65
+ await _logs_ref.debug(message, {"source": "console"}, "console")
66
+ elif level == "info":
67
+ await _logs_ref.info(message, {"source": "console"}, "console")
68
+ elif level == "warn":
69
+ await _logs_ref.warn(message, {"source": "console"}, "console")
70
+ elif level == "error":
71
+ await _logs_ref.error(message, {"source": "console"}, "console")
72
+ except Exception:
73
+ pass
74
+ finally:
75
+ _sending = False
76
+
77
+ # Try to schedule in the running event loop, fall back silently
78
+ try:
79
+ loop = asyncio.get_running_loop()
80
+ loop.create_task(_send())
81
+ except RuntimeError:
82
+ # No running event loop - skip (can't do async without one)
83
+ _sending = False
84
+
85
+
86
+ def _patched_print(*args, **kwargs):
87
+ """Replacement print() that also sends to Logs Worker."""
88
+ # Always call original print first
89
+ _original_print(*args, **kwargs)
90
+
91
+ # Determine if this is stderr output (which may be fallback logging)
92
+ file = kwargs.get("file")
93
+ if file is sys.stderr:
94
+ # Don't capture stderr prints (likely fallback logs - avoid loop)
95
+ return
96
+
97
+ message = _format_args(args, kwargs)
98
+ _fire_log("info", message)
99
+
100
+
101
+ class DominusLogHandler(logging.Handler):
102
+ """Logging handler that forwards records to Dominus Logs Worker."""
103
+
104
+ def emit(self, record: logging.LogRecord) -> None:
105
+ # Map Python log levels to Dominus levels
106
+ level_map = {
107
+ "DEBUG": "debug",
108
+ "INFO": "info",
109
+ "WARNING": "warn",
110
+ "ERROR": "error",
111
+ "CRITICAL": "error",
112
+ }
113
+ level = level_map.get(record.levelname, "info")
114
+ message = self.format(record)
115
+ _fire_log(level, message)
116
+
117
+
118
+ def install_console_capture(logs: "LogsNamespace") -> None:
119
+ """
120
+ Install console capture wrappers.
121
+ Call this after LogsNamespace is initialized.
122
+
123
+ Args:
124
+ logs: The LogsNamespace instance to forward logs to
125
+ """
126
+ global _installed, _logs_ref, _log_handler
127
+
128
+ if _installed:
129
+ return
130
+
131
+ _logs_ref = logs
132
+ _installed = True
133
+
134
+ # Patch builtins.print
135
+ builtins.print = _patched_print
136
+
137
+ # Install logging handler on root logger
138
+ _log_handler = DominusLogHandler()
139
+ _log_handler.setLevel(logging.DEBUG)
140
+ logging.getLogger().addHandler(_log_handler)
141
+
142
+
143
+ def uninstall_console_capture() -> None:
144
+ """Remove console capture wrappers, restoring original behavior."""
145
+ global _installed, _logs_ref, _log_handler
146
+
147
+ if not _installed:
148
+ return
149
+
150
+ _installed = False
151
+ _logs_ref = None
152
+
153
+ # Restore original print
154
+ builtins.print = _original_print
155
+
156
+ # Remove logging handler
157
+ if _log_handler is not None:
158
+ logging.getLogger().removeHandler(_log_handler)
159
+ _log_handler = None
160
+
161
+
162
+ def is_console_capture_active() -> bool:
163
+ """Check if console capture is currently active."""
164
+ return _installed
@@ -81,17 +81,28 @@ class AuthNamespace:
81
81
  limit: int = 100,
82
82
  offset: int = 0,
83
83
  order_by: str = "created_at",
84
- order_desc: bool = True
84
+ order_desc: bool = True,
85
+ include_system: bool = False
85
86
  ) -> Dict[str, Any]:
86
87
  """
87
88
  List users with optional filters.
88
89
 
90
+ Args:
91
+ status: Filter by user status (e.g. 'active')
92
+ limit: Maximum rows to return
93
+ offset: Rows to skip
94
+ order_by: Column to order by
95
+ order_desc: Sort descending
96
+ include_system: Include system (super admin) users in results
97
+
89
98
  Returns:
90
99
  Dict with "items" list and "total" count
91
100
  """
92
101
  params = f"?limit={limit}&offset={offset}&order_by={order_by}&order_desc={str(order_desc).lower()}"
93
102
  if status:
94
103
  params += f"&status={status}"
104
+ if include_system:
105
+ params += "&include_system=true"
95
106
 
96
107
  return await self._client._request(
97
108
  endpoint=f"/api/guardian/users{params}",
@@ -362,6 +362,28 @@ class Dominus:
362
362
  # Cache for JWT public key
363
363
  self._public_key_cache = None
364
364
 
365
+ # Auto-activate console capture if env var is set
366
+ if os.environ.get("DOMINUS_CAPTURE_CONSOLE") == "true":
367
+ from .helpers.console_capture import install_console_capture
368
+ install_console_capture(self.logs)
369
+
370
+ def capture_console(self) -> None:
371
+ """Start capturing print() and logging.* and forwarding to Dominus Logs Worker.
372
+ Original output is preserved (original functions still called)."""
373
+ from .helpers.console_capture import install_console_capture
374
+ install_console_capture(self.logs)
375
+
376
+ def release_console(self) -> None:
377
+ """Stop capturing console output. Restores original print() and removes log handler."""
378
+ from .helpers.console_capture import uninstall_console_capture
379
+ uninstall_console_capture()
380
+
381
+ @property
382
+ def is_capturing_console(self) -> bool:
383
+ """Check if console capture is currently active."""
384
+ from .helpers.console_capture import is_console_capture_active
385
+ return is_console_capture_active()
386
+
365
387
  # ========================================
366
388
  # INTERNAL REQUEST METHOD (for user JWT)
367
389
  # ========================================
@@ -0,0 +1,92 @@
1
+ Metadata-Version: 2.4
2
+ Name: dominus-sdk-python
3
+ Version: 2.11.0
4
+ Summary: Python SDK for the Dominus Orchestrator Platform
5
+ Author-email: CareBridge Systems <dev@carebridge.io>
6
+ License: Proprietary
7
+ Project-URL: Homepage, https://github.com/carebridgesystems/dominus-sdk-python
8
+ Project-URL: Repository, https://github.com/carebridgesystems/dominus-sdk-python
9
+ Keywords: dominus,carebridge,sdk,orchestrator,api,async
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: Other/Proprietary License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Framework :: AsyncIO
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: httpx>=0.24.0
24
+ Requires-Dist: bcrypt>=4.0.0
25
+ Requires-Dist: cryptography>=41.0.0
26
+ Provides-Extra: jwt
27
+ Requires-Dist: PyJWT>=2.8.0; extra == "jwt"
28
+ Provides-Extra: oracle
29
+ Requires-Dist: websockets>=12.0; extra == "oracle"
30
+ Requires-Dist: sounddevice>=0.4.6; extra == "oracle"
31
+ Requires-Dist: numpy>=1.24.0; extra == "oracle"
32
+ Requires-Dist: webrtcvad>=2.0.10; extra == "oracle"
33
+ Provides-Extra: dev
34
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
35
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
36
+ Provides-Extra: all
37
+ Requires-Dist: PyJWT>=2.8.0; extra == "all"
38
+ Requires-Dist: websockets>=12.0; extra == "all"
39
+ Requires-Dist: sounddevice>=0.4.6; extra == "all"
40
+ Requires-Dist: numpy>=1.24.0; extra == "all"
41
+ Requires-Dist: webrtcvad>=2.0.10; extra == "all"
42
+
43
+ # Dominus SDK for Python
44
+
45
+ Async Python SDK for CareBridge Dominus services. It routes service calls to the Dominus Orchestrator and handles gateway-based JWT minting, base64 encoding, retries, and circuit breaking.
46
+
47
+ ## What This Is
48
+ - Server-side, asyncio-first Python SDK (3.9+)
49
+ - Namespace API plus ultra-flat root shortcuts for common operations
50
+ - Defaults to production orchestrator + gateway endpoints (configurable)
51
+
52
+ ## Quick Start
53
+ ```python
54
+ import os
55
+ from dominus import dominus
56
+
57
+ os.environ["DOMINUS_TOKEN"] = "your-psk-token"
58
+
59
+ users = await dominus.db.query("users", filters={"status": "active"})
60
+ await dominus.redis.set("session:123", {"user": "john"}, ttl=3600)
61
+ file = await dominus.files.upload(data=buf, filename="report.pdf", category="reports")
62
+ ```
63
+
64
+ ## Architecture (SDK View)
65
+ - DOMINUS_TOKEN (PSK) -> Gateway `/jwt/mint` -> JWT cached in `dominus_cache`
66
+ - JSON requests/responses are base64-encoded for auth-required routes
67
+ - GET requests send no body; parameters are in path or POST body
68
+ - Gateway routing is optional per-request; AI namespace always uses gateway
69
+
70
+ ## Namespaces
71
+ - `secrets`, `db`, `secure`, `redis`, `files`, `auth`, `ddl`, `logs`, `portal`, `courier`, `open`, `health`
72
+ - `admin` (reseed/reset admin category)
73
+ - `ai` (agent-runtime: LLM, RAG, artifacts, results, orchestration, speech)
74
+ - `workflow` (workflow-manager CRUD and execution)
75
+ - `oracle` / `stt` (streaming speech-to-text sessions)
76
+
77
+ ## Configuration
78
+ Required:
79
+ - `DOMINUS_TOKEN`
80
+
81
+ Optional:
82
+ - `DOMINUS_GATEWAY_URL` (default production gateway)
83
+ - `DOMINUS_BASE_URL` (default production orchestrator)
84
+ - `DOMINUS_HTTP_PROXY` / `DOMINUS_HTTPS_PROXY` (httpx proxies)
85
+
86
+ ## Documentation
87
+ - `docs/architecture.md`
88
+ - `docs/namespaces.md`
89
+ - `docs/development.md`
90
+
91
+ ## License
92
+ Proprietary - CareBridge Systems
@@ -8,6 +8,7 @@ dominus/config/endpoints.py
8
8
  dominus/helpers/__init__.py
9
9
  dominus/helpers/auth.py
10
10
  dominus/helpers/cache.py
11
+ dominus/helpers/console_capture.py
11
12
  dominus/helpers/core.py
12
13
  dominus/helpers/crypto.py
13
14
  dominus/helpers/sse.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dominus-sdk-python"
7
- version = "2.10.0"
7
+ version = "2.11.0"
8
8
  description = "Python SDK for the Dominus Orchestrator Platform"
9
9
  readme = "README.md"
10
10
  license = {text = "Proprietary"}