dominus-sdk-python 4.3.0__py3-none-any.whl → 4.5.0__py3-none-any.whl
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.
- dominus/__init__.py +1 -1
- dominus/namespaces/browser.py +10 -1
- dominus/namespaces/redis.py +117 -0
- {dominus_sdk_python-4.3.0.dist-info → dominus_sdk_python-4.5.0.dist-info}/METADATA +1 -1
- {dominus_sdk_python-4.3.0.dist-info → dominus_sdk_python-4.5.0.dist-info}/RECORD +7 -7
- {dominus_sdk_python-4.3.0.dist-info → dominus_sdk_python-4.5.0.dist-info}/WHEEL +0 -0
- {dominus_sdk_python-4.3.0.dist-info → dominus_sdk_python-4.5.0.dist-info}/top_level.txt +0 -0
dominus/__init__.py
CHANGED
dominus/namespaces/browser.py
CHANGED
|
@@ -98,7 +98,16 @@ class BrowserNamespace:
|
|
|
98
98
|
Ensure a browser run. ``POST /api/browser/runs/ensure``.
|
|
99
99
|
|
|
100
100
|
Browser run metadata remains browser-worker runtime state. Artifact V2
|
|
101
|
-
is
|
|
101
|
+
is used for sanitized `browser-run` result payloads and, when opted-in
|
|
102
|
+
via ``capture_policy["storage_state"] = "always"`` plus
|
|
103
|
+
``auth_ref["session_slot_id"]``, for captured Playwright storage_state
|
|
104
|
+
in the separate ``browser-session`` category. Captured values are
|
|
105
|
+
never returned inline; only the artifact ref appears on the result
|
|
106
|
+
envelope as ``result_summary.captured_session_artifact_ref``.
|
|
107
|
+
|
|
108
|
+
Reuse a captured session by passing the same ``session_slot_id`` (slot
|
|
109
|
+
lookup, returns no storage_state on first call) or an explicit
|
|
110
|
+
``session_artifact_ref`` (hard-error if the ref does not exist).
|
|
102
111
|
"""
|
|
103
112
|
if not target:
|
|
104
113
|
raise ValueError("target is required")
|
dominus/namespaces/redis.py
CHANGED
|
@@ -575,3 +575,120 @@ class RedisNamespace:
|
|
|
575
575
|
body=body,
|
|
576
576
|
use_gateway=True,
|
|
577
577
|
)
|
|
578
|
+
|
|
579
|
+
async def xadd(
|
|
580
|
+
self,
|
|
581
|
+
key: str,
|
|
582
|
+
fields: Dict[str, Any],
|
|
583
|
+
id: Optional[str] = None,
|
|
584
|
+
maxlen: Optional[int] = None,
|
|
585
|
+
ttl: Optional[int] = None,
|
|
586
|
+
category: Optional[str] = None,
|
|
587
|
+
) -> Dict[str, Any]:
|
|
588
|
+
"""
|
|
589
|
+
Append an entry to a Redis stream.
|
|
590
|
+
|
|
591
|
+
Backed by the native dominus-redis-worker /xadd route added 2026-05-09.
|
|
592
|
+
Each field value is independently size-guarded (1 MiB cap per encoded
|
|
593
|
+
value). Use streams for log-style state that scales with iteration
|
|
594
|
+
count (agent step events, audit trails). Replaces RedisWorkerProjectCompat
|
|
595
|
+
shim emulation that did SET/GET whole-collection rewrites.
|
|
596
|
+
|
|
597
|
+
Args:
|
|
598
|
+
key: Stream key (logical_path)
|
|
599
|
+
fields: Field/value dict for the new entry
|
|
600
|
+
id: Optional explicit ID. Defaults to ``*`` (server-generated
|
|
601
|
+
``<ms>-<seq>``). Returned in the response so callers can use
|
|
602
|
+
it for downstream xrange resume-after pagination.
|
|
603
|
+
maxlen: Optional MAXLEN cap. When set, redis-worker calls XADD
|
|
604
|
+
with MAXLEN ~ N (approximate trim).
|
|
605
|
+
ttl: Optional TTL in seconds (default uses worker default 3600).
|
|
606
|
+
category: Optional namespace category (default ``streams``).
|
|
607
|
+
|
|
608
|
+
Returns:
|
|
609
|
+
Dict with {"key", "id", "ttl_seconds"}
|
|
610
|
+
"""
|
|
611
|
+
body: Dict[str, Any] = {
|
|
612
|
+
"logical_path": key,
|
|
613
|
+
"fields": fields,
|
|
614
|
+
}
|
|
615
|
+
if id:
|
|
616
|
+
body["id"] = id
|
|
617
|
+
if maxlen is not None:
|
|
618
|
+
body["maxlen"] = maxlen
|
|
619
|
+
if ttl is not None:
|
|
620
|
+
body["ttl_seconds"] = ttl
|
|
621
|
+
if category:
|
|
622
|
+
body["category"] = category
|
|
623
|
+
return await self._client._request(
|
|
624
|
+
endpoint="/api/redis/xadd",
|
|
625
|
+
body=body,
|
|
626
|
+
use_gateway=True,
|
|
627
|
+
)
|
|
628
|
+
|
|
629
|
+
async def xrange(
|
|
630
|
+
self,
|
|
631
|
+
key: str,
|
|
632
|
+
min: str = "-",
|
|
633
|
+
max: str = "+",
|
|
634
|
+
count: Optional[int] = None,
|
|
635
|
+
category: Optional[str] = None,
|
|
636
|
+
) -> Dict[str, Any]:
|
|
637
|
+
"""
|
|
638
|
+
Read entries from a Redis stream in id order.
|
|
639
|
+
|
|
640
|
+
Backed by /xrange added 2026-05-09. Pass ``-``/``+`` (default) for
|
|
641
|
+
the full range or explicit ``<ms>-<seq>`` ids for resume-after
|
|
642
|
+
pagination.
|
|
643
|
+
|
|
644
|
+
Args:
|
|
645
|
+
key: Stream key (logical_path)
|
|
646
|
+
min: Inclusive lower bound id, ``-`` for oldest.
|
|
647
|
+
max: Inclusive upper bound id, ``+`` for newest.
|
|
648
|
+
count: Optional COUNT cap.
|
|
649
|
+
category: Optional namespace category (default ``streams``).
|
|
650
|
+
|
|
651
|
+
Returns:
|
|
652
|
+
Dict with {"found", "entries": [{"id", "fields"}, ...], "count"}
|
|
653
|
+
"""
|
|
654
|
+
body: Dict[str, Any] = {
|
|
655
|
+
"logical_path": key,
|
|
656
|
+
"min": min,
|
|
657
|
+
"max": max,
|
|
658
|
+
}
|
|
659
|
+
if count is not None:
|
|
660
|
+
body["count"] = count
|
|
661
|
+
if category:
|
|
662
|
+
body["category"] = category
|
|
663
|
+
return await self._client._request(
|
|
664
|
+
endpoint="/api/redis/xrange",
|
|
665
|
+
body=body,
|
|
666
|
+
use_gateway=True,
|
|
667
|
+
)
|
|
668
|
+
|
|
669
|
+
async def xlen(
|
|
670
|
+
self,
|
|
671
|
+
key: str,
|
|
672
|
+
category: Optional[str] = None,
|
|
673
|
+
) -> Dict[str, Any]:
|
|
674
|
+
"""
|
|
675
|
+
Stream entry count.
|
|
676
|
+
|
|
677
|
+
Backed by /xlen added 2026-05-09. Approximate on streams with
|
|
678
|
+
deletions; exact otherwise.
|
|
679
|
+
|
|
680
|
+
Args:
|
|
681
|
+
key: Stream key (logical_path)
|
|
682
|
+
category: Optional namespace category (default ``streams``).
|
|
683
|
+
|
|
684
|
+
Returns:
|
|
685
|
+
Dict with {"length"}
|
|
686
|
+
"""
|
|
687
|
+
body: Dict[str, Any] = {"logical_path": key}
|
|
688
|
+
if category:
|
|
689
|
+
body["category"] = category
|
|
690
|
+
return await self._client._request(
|
|
691
|
+
endpoint="/api/redis/xlen",
|
|
692
|
+
body=body,
|
|
693
|
+
use_gateway=True,
|
|
694
|
+
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
dominus/__init__.py,sha256=
|
|
1
|
+
dominus/__init__.py,sha256=9dUf_NR4QxzaUUK7qpaliliDKq3Q65KC-S9Y2_RdsCo,6997
|
|
2
2
|
dominus/errors.py,sha256=NthcR-o1Q1nQsE3ZSHStcW_RdZ8LQ06mPDSenY1txgM,8547
|
|
3
3
|
dominus/start.py,sha256=_VxLodIPbbY3eDgxDAtkrvGYXctKXOS8RDErRM8JWbc,49468
|
|
4
4
|
dominus/config/__init__.py,sha256=nvLLNh4dM_MCqcfF3XFS2NnVn44q0RYHEfAPP-2G5To,434
|
|
@@ -17,7 +17,7 @@ dominus/namespaces/ai.py,sha256=Kr_eY-SkEfC-b1fhVVv40pXn_GHkxRzMGD47WoTgu9M,4855
|
|
|
17
17
|
dominus/namespaces/artifacts.py,sha256=MgjkjSmUP_5XGTAFU2UQ1VU3Vju3kVuvDqxChosP2J0,22246
|
|
18
18
|
dominus/namespaces/auth.py,sha256=YA61WjeRewatrz6BTPhRC95jDgYk3b2QDlH0xdGUceg,67795
|
|
19
19
|
dominus/namespaces/authority.py,sha256=vfXNc6A-eAeOzSuyMpBmkWjUvFVXvuelrn3O9YcIY9E,76874
|
|
20
|
-
dominus/namespaces/browser.py,sha256=
|
|
20
|
+
dominus/namespaces/browser.py,sha256=_epZQbCQKUP66CnXJLvccZGJd5TVqMy8nGpscwrqTaE,7868
|
|
21
21
|
dominus/namespaces/courier.py,sha256=7ZuwTWzVGBPTnqPV1VqPdme6PkPyhQOddwaI1wxrlE8,8324
|
|
22
22
|
dominus/namespaces/db.py,sha256=dv4IZACziub7OE8i_4q_Z31uVYJglE12TFkFIbFnYjw,15157
|
|
23
23
|
dominus/namespaces/ddl.py,sha256=NTpd3V3595qcBheUZfFq4tQiAZsyYH9O8GR9OZ_czK8,25844
|
|
@@ -29,14 +29,14 @@ dominus/namespaces/jobs.py,sha256=YdiTzajUWtpdhk_jJhOlF0EeFegaRQFiszGSsFLs-Dc,54
|
|
|
29
29
|
dominus/namespaces/logs.py,sha256=uM3yDU2YsqEqOt9eg1I9JyHZdHrFxSQahbknTLhmw_U,22102
|
|
30
30
|
dominus/namespaces/portal.py,sha256=vf0Vu_12yS4_fto7sVCau5vQtghml7Wh7J2-XJnO2zA,15595
|
|
31
31
|
dominus/namespaces/processor.py,sha256=gk-vvWfBTU9LkV34OaB4VdftArhTE67tfhlUtY0YglI,2678
|
|
32
|
-
dominus/namespaces/redis.py,sha256=
|
|
32
|
+
dominus/namespaces/redis.py,sha256=1joYhewLGdN4-OCYJu5rvhsF5yORUUfVtBrgjzLKAzs,19337
|
|
33
33
|
dominus/namespaces/secrets.py,sha256=od8AKgENwW6U-kVfIX3DSphXKeJA6XC-SxbGqsxhhUk,6253
|
|
34
34
|
dominus/namespaces/secure.py,sha256=9idGY5R6k7b-JM1SAF_1Gt-YV5OempyxFBflgLJieLo,7168
|
|
35
35
|
dominus/namespaces/sync.py,sha256=mGwMNwc_iWoKgS94n1staPdsKBHNvliMG7omokl7Qmk,2198
|
|
36
36
|
dominus/namespaces/warden.py,sha256=ebbCeBJJwK9uALEj2aDbvWJ5HTlOXOpXJOwzokH1cso,1139
|
|
37
37
|
dominus/namespaces/workflow.py,sha256=1LMzlYoVImtdpnuenJDtpx7dB2wdNVE3tSBFn-ZAyJA,47204
|
|
38
38
|
dominus/services/__init__.py,sha256=LQl5sx6DHhX1xCN3MRoUgffxqwm3Mfm525hijyFods8,43
|
|
39
|
-
dominus_sdk_python-4.
|
|
40
|
-
dominus_sdk_python-4.
|
|
41
|
-
dominus_sdk_python-4.
|
|
42
|
-
dominus_sdk_python-4.
|
|
39
|
+
dominus_sdk_python-4.5.0.dist-info/METADATA,sha256=OsKJKzfOCg2j9_TMxJL0KBadYk6Nkz5dQ9sL8KSZUAU,8900
|
|
40
|
+
dominus_sdk_python-4.5.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
41
|
+
dominus_sdk_python-4.5.0.dist-info/top_level.txt,sha256=515zxMIbX0DpheRbjvNqKIt_AFqdFjX41jtyp_SqLf4,8
|
|
42
|
+
dominus_sdk_python-4.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|