soothe-client-python 1.0.18__tar.gz → 1.0.20__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.
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/PKG-INFO +1 -1
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/daemon_session.py +18 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/protocol_params.py +0 -24
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/websocket.py +0 -27
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/.gitignore +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/LICENSE +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/README.md +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/pyproject.toml +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/__init__.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/__init__.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/attachments.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/broadcaster.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/card_projection.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/chunk_filter.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/classifier.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/events.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/loop_session_store.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/managed_client.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/observability.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/pool.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/query_gate.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/thinking_step.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/turn.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/turn_boundary.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/turn_runner.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/command_client.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/errors.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/helpers.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/intent_hints.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/py.typed +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/schemas.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/session.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/stream_terminal.py +0 -0
- {soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/turn_boundary.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: soothe-client-python
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.20
|
|
4
4
|
Summary: WebSocket client + appkit for soothe-daemon (Python)
|
|
5
5
|
Project-URL: Homepage, https://github.com/mirasoth/soothe-client-python
|
|
6
6
|
Project-URL: Documentation, https://soothe.readthedocs.io
|
|
@@ -764,6 +764,24 @@ class DaemonSession:
|
|
|
764
764
|
interaction_mode=interaction_mode,
|
|
765
765
|
)
|
|
766
766
|
|
|
767
|
+
async def set_clarification_mode(self, mode: str) -> bool:
|
|
768
|
+
"""Hot-swap the clarification mode on the running goal (RFC-622).
|
|
769
|
+
|
|
770
|
+
Sends ``loop_set_clarification_mode`` on the RPC socket. Returns
|
|
771
|
+
``True`` when the swap landed on a live goal; ``False`` when no goal
|
|
772
|
+
is currently running (retry on the next turn).
|
|
773
|
+
"""
|
|
774
|
+
if not self._loop_id:
|
|
775
|
+
return False
|
|
776
|
+
async with self._rpc_lock:
|
|
777
|
+
await self._ensure_rpc_connected()
|
|
778
|
+
result = await self._rpc_client.request(
|
|
779
|
+
"loop_set_clarification_mode",
|
|
780
|
+
{"loop_id": self._loop_id, "mode": mode},
|
|
781
|
+
timeout=5.0,
|
|
782
|
+
)
|
|
783
|
+
return bool(result.get("applied", False))
|
|
784
|
+
|
|
767
785
|
async def _ensure_rpc_connected(self) -> None:
|
|
768
786
|
if self._rpc_connected:
|
|
769
787
|
return
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/protocol_params.py
RENAMED
|
@@ -13,8 +13,6 @@ __all__ = [
|
|
|
13
13
|
# Loop RPC params
|
|
14
14
|
"LoopGetParams",
|
|
15
15
|
"LoopListParams",
|
|
16
|
-
"LoopTreeParams",
|
|
17
|
-
"LoopPruneParams",
|
|
18
16
|
"LoopDeleteParams",
|
|
19
17
|
"LoopNewParams",
|
|
20
18
|
"LoopReattachParams",
|
|
@@ -120,28 +118,6 @@ class LoopListParams(ParamsBase):
|
|
|
120
118
|
limit: int | None = Field(default=None, ge=1, description="Maximum results")
|
|
121
119
|
|
|
122
120
|
|
|
123
|
-
class LoopTreeParams(ParamsBase):
|
|
124
|
-
"""Params for ``method=loop_tree``.
|
|
125
|
-
|
|
126
|
-
Attributes:
|
|
127
|
-
loop_id: Loop identifier (required).
|
|
128
|
-
"""
|
|
129
|
-
|
|
130
|
-
loop_id: str = Field(..., min_length=1, description="Loop identifier")
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
class LoopPruneParams(ParamsBase):
|
|
134
|
-
"""Params for ``method=loop_prune``.
|
|
135
|
-
|
|
136
|
-
Attributes:
|
|
137
|
-
loop_id: Loop identifier (required).
|
|
138
|
-
keep_latest: Number of recent branches to keep (default 1).
|
|
139
|
-
"""
|
|
140
|
-
|
|
141
|
-
loop_id: str = Field(..., min_length=1)
|
|
142
|
-
keep_latest: int = Field(default=1, ge=1)
|
|
143
|
-
|
|
144
|
-
|
|
145
121
|
class LoopDeleteParams(ParamsBase):
|
|
146
122
|
"""Params for ``method=loop_delete``.
|
|
147
123
|
|
|
@@ -1123,33 +1123,6 @@ class WebSocketClient:
|
|
|
1123
1123
|
params["as_node"] = as_node
|
|
1124
1124
|
return await self.request("loop_state_update", params, timeout=timeout)
|
|
1125
1125
|
|
|
1126
|
-
async def loop_tree(
|
|
1127
|
-
self,
|
|
1128
|
-
loop_id: str,
|
|
1129
|
-
*,
|
|
1130
|
-
timeout: float = 15.0,
|
|
1131
|
-
) -> dict[str, Any]:
|
|
1132
|
-
"""Fetch the loop checkpoint tree (``loop_tree``)."""
|
|
1133
|
-
return await self.request(
|
|
1134
|
-
"loop_tree",
|
|
1135
|
-
{"loop_id": loop_id},
|
|
1136
|
-
timeout=timeout,
|
|
1137
|
-
)
|
|
1138
|
-
|
|
1139
|
-
async def loop_prune(
|
|
1140
|
-
self,
|
|
1141
|
-
loop_id: str,
|
|
1142
|
-
*,
|
|
1143
|
-
keep_latest: int = 1,
|
|
1144
|
-
timeout: float = 15.0,
|
|
1145
|
-
) -> dict[str, Any]:
|
|
1146
|
-
"""Prune old checkpoints from a loop (``loop_prune``)."""
|
|
1147
|
-
return await self.request(
|
|
1148
|
-
"loop_prune",
|
|
1149
|
-
{"loop_id": loop_id, "keep_latest": keep_latest},
|
|
1150
|
-
timeout=timeout,
|
|
1151
|
-
)
|
|
1152
|
-
|
|
1153
1126
|
async def loop_delete(self, loop_id: str, *, timeout: float = 15.0) -> dict[str, Any]:
|
|
1154
1127
|
"""Delete a loop and its checkpoints (``loop_delete``)."""
|
|
1155
1128
|
return await self.request(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/__init__.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/attachments.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/broadcaster.py
RENAMED
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/chunk_filter.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/classifier.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/events.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/pool.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/query_gate.py
RENAMED
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/turn.py
RENAMED
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/appkit/turn_runner.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/command_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/intent_hints.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/stream_terminal.py
RENAMED
|
File without changes
|
{soothe_client_python-1.0.18 → soothe_client_python-1.0.20}/src/soothe_client/turn_boundary.py
RENAMED
|
File without changes
|