soothe-cli 0.7.9__tar.gz → 0.7.10__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_cli-0.7.9 → soothe_cli-0.7.10}/PKG-INFO +1 -1
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/policy/display_policy.py +3 -3
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/textual_adapter.py +65 -39
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/.gitignore +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/README.md +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/pyproject.toml +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/autopilot_cmd.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/config_cmd.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/cron_cmd.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/loop_cmd.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/run_cmd.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/commands/status_cmd.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/execution/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/execution/daemon.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/execution/daemon_errors.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/execution/headless.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/execution/headless_renderer.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/execution/launcher.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/cli/main.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/config/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/config/cli_config.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/config/loader.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/config/logging_setup.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/headless/processor.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/headless/processor_state.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/parse/message_processing.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/parse/tool_call_resolution.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/parse/tool_result.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/policy/essential_events.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/policy/tui_trace_log.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/duration_format.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/engine.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/renderer_base.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/renderer_protocol.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/subagent_task_display.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/state/file_tracker.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/state/session_stats.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/state/step_router.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/state/stream_accumulator.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/state/transcript.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/transport/session.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/turn/pipeline.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/turn/prepare.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/wire/chunk_filter.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/wire/message_text.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/wire/messages.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/_cli_context.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/_env_vars.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/_version.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_app.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_execution.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_history.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_messages_mixin.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_model.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_module_init.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_startup.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/_ui.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/app/app.tcss +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/binding.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/command_registry.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/commands/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/commands/command_router.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/commands/slash_commands.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/commands/subagent_routing.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/config.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/file_change_notify.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/file_change_renderers.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/hooks.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/input.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/markdown_theme.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/media_utils.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/model_config.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/path_utils.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/preview_limits.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/project_utils.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/sessions.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/shell_color.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/skills/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/skills/invocation.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/skills/load.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/spinner_labels.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/theme.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/tips.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/tool_display.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/unicode_security.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/update_check.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/_links.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/autocomplete.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/chat_input.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/clipboard.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/context_viewer.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/diff.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/editor.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/file_change_preview.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/help_screen.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/history.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/loading.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/loop_selector.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/mcp_viewer.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/message_store.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/__init__.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/_helpers.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/app.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/assistant.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/clarification.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_goal_tree.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_reason.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_step.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_step_activity.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_subagent.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/diff_message.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/error.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/skill.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/user.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/model_selector.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/notification_settings.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/plan_quick_view_overlay.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/status.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/theme_selector.py +0 -0
- {soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/welcome.py +0 -0
|
@@ -134,9 +134,9 @@ class DisplayPolicy:
|
|
|
134
134
|
"""Check if this is a plan-related event."""
|
|
135
135
|
return event_type.startswith("soothe.cognition.plan.")
|
|
136
136
|
|
|
137
|
-
def
|
|
138
|
-
"""Check if this is a
|
|
139
|
-
return event_type.startswith("soothe.subagent.
|
|
137
|
+
def is_subagent_wire_event(self, event_type: str) -> bool:
|
|
138
|
+
"""Check if this is a curated subagent wire event."""
|
|
139
|
+
return event_type.startswith("soothe.subagent.")
|
|
140
140
|
|
|
141
141
|
def is_internal_event(self, event_type: str) -> bool:
|
|
142
142
|
"""Check if this is an internal (never-shown) event."""
|
|
@@ -52,6 +52,11 @@ from soothe_sdk.ux.loop_stream import (
|
|
|
52
52
|
is_stream_terminal,
|
|
53
53
|
)
|
|
54
54
|
from soothe_sdk.ux.stream_tool_wire import STREAM_TOOL_CALL_UPDATE, TOOL_CALL_UPDATES_BATCH
|
|
55
|
+
from soothe_sdk.ux.subagent_wire_display import (
|
|
56
|
+
SubagentWireRenderKind,
|
|
57
|
+
classify_subagent_wire_render,
|
|
58
|
+
subagent_wire_row_params,
|
|
59
|
+
)
|
|
55
60
|
from soothe_sdk.ux.task_namespace import (
|
|
56
61
|
TaskScope,
|
|
57
62
|
is_inner_subgraph_task_tool_id,
|
|
@@ -951,34 +956,6 @@ def _ingest_wire_step_on_subagent_card(
|
|
|
951
956
|
subagent_card.set_tool_success(row_id, "", duration_ms=duration_ms)
|
|
952
957
|
|
|
953
958
|
|
|
954
|
-
def _subagent_wire_step_params(
|
|
955
|
-
event_type: str,
|
|
956
|
-
data: dict[str, Any],
|
|
957
|
-
) -> tuple[str, dict[str, Any], str, int] | None:
|
|
958
|
-
"""Map curated subagent wire events to SubAgent card row fields."""
|
|
959
|
-
et = str(event_type or "").strip()
|
|
960
|
-
if et.endswith(".gather.summary"):
|
|
961
|
-
query = str(data.get("query_preview", "") or "").strip()
|
|
962
|
-
rc = int(data.get("result_count", 0) or 0)
|
|
963
|
-
st = int(data.get("sources_touched", 0) or 0)
|
|
964
|
-
preview = query
|
|
965
|
-
if rc or st:
|
|
966
|
-
tail = f"{rc} hits, {st} sources"
|
|
967
|
-
preview = f"{query} → {tail}" if query else tail
|
|
968
|
-
return "WebSearch", {"query": preview or query}, "success", 0
|
|
969
|
-
if et.endswith(".step.completed"):
|
|
970
|
-
tool_name = str(data.get("tool_name", "") or "").strip() or "Step"
|
|
971
|
-
args_preview = str(data.get("args_preview", "") or "").strip()
|
|
972
|
-
status = str(data.get("status", "done") or "done").strip().lower()
|
|
973
|
-
phase = "success" if status in ("done", "success", "complete") else "running"
|
|
974
|
-
if status in ("error", "failed"):
|
|
975
|
-
phase = "error"
|
|
976
|
-
duration_ms = int(data.get("duration_ms", 0) or 0)
|
|
977
|
-
args = {"preview": args_preview} if args_preview else {}
|
|
978
|
-
return tool_name, args, phase, duration_ms
|
|
979
|
-
return None
|
|
980
|
-
|
|
981
|
-
|
|
982
959
|
def _apply_subagent_wire_step_event(
|
|
983
960
|
adapter: TextualUIAdapter,
|
|
984
961
|
*,
|
|
@@ -986,8 +963,8 @@ def _apply_subagent_wire_step_event(
|
|
|
986
963
|
data: dict[str, Any],
|
|
987
964
|
task_scope: TaskScope,
|
|
988
965
|
) -> bool:
|
|
989
|
-
"""Render
|
|
990
|
-
params =
|
|
966
|
+
"""Render row-style subagent wire events on the SubAgent (TASK) card."""
|
|
967
|
+
params = subagent_wire_row_params(event_type, data)
|
|
991
968
|
if params is None:
|
|
992
969
|
return False
|
|
993
970
|
tool_name, args, phase, duration_ms = params
|
|
@@ -1011,6 +988,29 @@ def _apply_subagent_wire_step_event(
|
|
|
1011
988
|
return True
|
|
1012
989
|
|
|
1013
990
|
|
|
991
|
+
def _apply_subagent_wire_activity_event(
|
|
992
|
+
adapter: TextualUIAdapter,
|
|
993
|
+
*,
|
|
994
|
+
event_type: str,
|
|
995
|
+
data: dict[str, Any],
|
|
996
|
+
task_scope: TaskScope,
|
|
997
|
+
) -> bool:
|
|
998
|
+
"""Render note-style subagent wire events on the SubAgent card."""
|
|
999
|
+
from soothe_sdk.ux.subagent_progress import summarize_subagent_wire_activity
|
|
1000
|
+
|
|
1001
|
+
line = summarize_subagent_wire_activity(str(event_type or "").strip(), data).strip()
|
|
1002
|
+
if not line:
|
|
1003
|
+
return False
|
|
1004
|
+
step_id = task_scope_step_id(task_scope)
|
|
1005
|
+
if not step_id:
|
|
1006
|
+
return True
|
|
1007
|
+
subagent_card = _ensure_subagent_card_for_task_scope(adapter, task_scope)
|
|
1008
|
+
if subagent_card is None:
|
|
1009
|
+
return True
|
|
1010
|
+
subagent_card.append_subagent_activity(line)
|
|
1011
|
+
return True
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
1014
|
def _apply_subagent_wire_lifecycle_event(
|
|
1015
1015
|
adapter: TextualUIAdapter,
|
|
1016
1016
|
*,
|
|
@@ -1021,7 +1021,7 @@ def _apply_subagent_wire_lifecycle_event(
|
|
|
1021
1021
|
"""Handle subagent ``*.completed`` / ``*.failed`` wire events (RFC-628, IG-513)."""
|
|
1022
1022
|
et = str(event_type or "").strip()
|
|
1023
1023
|
if not (et.endswith(".completed") or et.endswith(".failed")):
|
|
1024
|
-
return
|
|
1024
|
+
return False
|
|
1025
1025
|
step_id = task_scope_step_id(task_scope)
|
|
1026
1026
|
task_idx = task_scope_task_idx(task_scope, step_id)
|
|
1027
1027
|
card = adapter._subagent_cards_by_key.get(_subagent_registry_key(step_id, task_idx))
|
|
@@ -1048,6 +1048,39 @@ def _apply_subagent_wire_lifecycle_event(
|
|
|
1048
1048
|
return True
|
|
1049
1049
|
|
|
1050
1050
|
|
|
1051
|
+
def _route_subagent_wire_event(
|
|
1052
|
+
adapter: TextualUIAdapter,
|
|
1053
|
+
*,
|
|
1054
|
+
event_type: str,
|
|
1055
|
+
data: dict[str, Any],
|
|
1056
|
+
task_scope: TaskScope,
|
|
1057
|
+
) -> bool:
|
|
1058
|
+
"""Route a curated subagent wire event to the unified display protocol handlers."""
|
|
1059
|
+
kind = classify_subagent_wire_render(event_type)
|
|
1060
|
+
if kind is SubagentWireRenderKind.ACTIVITY_ROW:
|
|
1061
|
+
return _apply_subagent_wire_step_event(
|
|
1062
|
+
adapter,
|
|
1063
|
+
event_type=event_type,
|
|
1064
|
+
data=data,
|
|
1065
|
+
task_scope=task_scope,
|
|
1066
|
+
)
|
|
1067
|
+
if kind is SubagentWireRenderKind.ACTIVITY_NOTE:
|
|
1068
|
+
return _apply_subagent_wire_activity_event(
|
|
1069
|
+
adapter,
|
|
1070
|
+
event_type=event_type,
|
|
1071
|
+
data=data,
|
|
1072
|
+
task_scope=task_scope,
|
|
1073
|
+
)
|
|
1074
|
+
if kind is SubagentWireRenderKind.LIFECYCLE_END:
|
|
1075
|
+
return _apply_subagent_wire_lifecycle_event(
|
|
1076
|
+
adapter,
|
|
1077
|
+
event_type=event_type,
|
|
1078
|
+
data=data,
|
|
1079
|
+
task_scope=task_scope,
|
|
1080
|
+
)
|
|
1081
|
+
return False
|
|
1082
|
+
|
|
1083
|
+
|
|
1051
1084
|
def _route_subgraph_tool_call(
|
|
1052
1085
|
adapter: TextualUIAdapter,
|
|
1053
1086
|
router: StepTaskRouter,
|
|
@@ -4172,20 +4205,13 @@ async def execute_task_textual(
|
|
|
4172
4205
|
and event_type.startswith("soothe.subagent.")
|
|
4173
4206
|
and is_allowlisted_subagent_event_type(event_type)
|
|
4174
4207
|
):
|
|
4175
|
-
if
|
|
4208
|
+
if _route_subagent_wire_event(
|
|
4176
4209
|
adapter,
|
|
4177
4210
|
event_type=event_type,
|
|
4178
4211
|
data=data,
|
|
4179
4212
|
task_scope=task_scope,
|
|
4180
4213
|
):
|
|
4181
4214
|
continue
|
|
4182
|
-
_apply_subagent_wire_lifecycle_event(
|
|
4183
|
-
adapter,
|
|
4184
|
-
event_type=event_type,
|
|
4185
|
-
data=data,
|
|
4186
|
-
task_scope=task_scope,
|
|
4187
|
-
)
|
|
4188
|
-
continue
|
|
4189
4215
|
finally:
|
|
4190
4216
|
await ui_coalesce.after_chunk()
|
|
4191
4217
|
|
|
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
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/duration_format.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/renderer_protocol.py
RENAMED
|
File without changes
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/runtime/presentation/subagent_task_display.py
RENAMED
|
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
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_goal_tree.py
RENAMED
|
File without changes
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_reason.py
RENAMED
|
File without changes
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_step.py
RENAMED
|
File without changes
|
|
File without changes
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/messages/cognition_subagent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_cli-0.7.9 → soothe_cli-0.7.10}/src/soothe_cli/tui/widgets/plan_quick_view_overlay.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|