soothe-cli 0.6.14__tar.gz → 0.6.15__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.6.14 → soothe_cli-0.6.15}/PKG-INFO +1 -1
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/textual_adapter.py +7 -2
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/messages.py +9 -5
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/.gitignore +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/README.md +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/pyproject.toml +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/commands/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/commands/autopilot_cmd.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/commands/cron_cmd.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/commands/loop_cmd.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/commands/run_cmd.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/commands/status_cmd.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/execution/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/execution/daemon.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/execution/daemon_errors.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/execution/headless.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/execution/headless_renderer.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/execution/launcher.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/cli/main.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/config/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/config/cli_config.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/config/loader.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/config/logging_setup.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/headless/processor.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/headless/processor_state.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/parse/_utils.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/parse/message_processing.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/parse/tool_call_resolution.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/parse/tool_message_format.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/parse/tool_result.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/policy/display_policy.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/policy/essential_events.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/policy/tui_trace_log.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/duration_format.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/engine.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/explore_task_display.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/renderer_base.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/renderer_protocol.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/state/file_tracker.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/state/session_stats.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/state/step_router.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/state/stream_accumulator.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/state/transcript.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/transport/session.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/turn/pipeline.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/turn/prepare.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/wire/chunk_filter.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/wire/display_text.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/wire/message_text.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/wire/messages.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/_cli_context.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/_env_vars.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/_version.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_app.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_commands.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_execution.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_history.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_messages_mixin.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_model.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_module_init.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_startup.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/_ui.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/app/app.tcss +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/binding.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/command_registry.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/commands/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/commands/command_router.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/commands/slash_commands.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/commands/subagent_routing.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/config.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/file_change_notify.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/file_change_renderers.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/hooks.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/input.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/media_utils.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/model_config.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/path_utils.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/preview_limits.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/project_utils.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/sessions.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/skills/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/skills/invocation.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/skills/load.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/theme.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/tips.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/tool_display.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/unicode_security.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/update_check.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/__init__.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/_links.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/autocomplete.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/autopilot_dashboard.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/autopilot_screen.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/chat_input.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/clipboard.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/diff.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/editor.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/file_change_preview.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/history.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/loading.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/loop_selector.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/mcp_viewer.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/message_store.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/model_selector.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/notification_settings.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/status.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/theme_selector.py +0 -0
- {soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/tui/widgets/welcome.py +0 -0
|
@@ -2821,7 +2821,12 @@ async def execute_task_textual(
|
|
|
2821
2821
|
data.get("assessment_reasoning", "")
|
|
2822
2822
|
).strip()
|
|
2823
2823
|
plan_reasoning = str(data.get("plan_reasoning", "")).strip()
|
|
2824
|
-
|
|
2824
|
+
next_action = str(data.get("next_action", "")).strip()
|
|
2825
|
+
if (
|
|
2826
|
+
not assessment_reasoning
|
|
2827
|
+
and not plan_reasoning
|
|
2828
|
+
and not next_action
|
|
2829
|
+
):
|
|
2825
2830
|
continue
|
|
2826
2831
|
pending_text = pending_text_by_namespace.get(ns_key, "")
|
|
2827
2832
|
if pending_text:
|
|
@@ -2837,7 +2842,7 @@ async def execute_task_textual(
|
|
|
2837
2842
|
pa_raw = data.get("plan_action", "")
|
|
2838
2843
|
plan_action = pa_raw if pa_raw in ("keep", "new") else ""
|
|
2839
2844
|
plan_widget = CognitionReasonMessage(
|
|
2840
|
-
next_action=
|
|
2845
|
+
next_action=next_action,
|
|
2841
2846
|
status=str(data.get("status", "")),
|
|
2842
2847
|
iteration=int(data.get("iteration", 0)),
|
|
2843
2848
|
plan_action=str(plan_action),
|
|
@@ -2961,7 +2961,9 @@ class CognitionStepMessage(Vertical):
|
|
|
2961
2961
|
self._status_widget.remove_class("pending")
|
|
2962
2962
|
self._status_widget.remove_class("queued")
|
|
2963
2963
|
self._status_widget.display = True
|
|
2964
|
-
|
|
2964
|
+
# Immediate status line update (bypasses visibility check) so tool count
|
|
2965
|
+
# appears in real-time when tools arrive before the animation timer fires.
|
|
2966
|
+
self._sync_running_status_text()
|
|
2965
2967
|
self._refresh_task_activity_display()
|
|
2966
2968
|
self._animation_timer = self.set_interval(
|
|
2967
2969
|
_RUNNING_SPINNER_INTERVAL_SECONDS,
|
|
@@ -3239,12 +3241,12 @@ class CognitionReasonMessage(Vertical):
|
|
|
3239
3241
|
"""Initialize a plan-reason card.
|
|
3240
3242
|
|
|
3241
3243
|
Args:
|
|
3242
|
-
next_action:
|
|
3244
|
+
next_action: User-facing plan-generate line (RFC-604 / IG-329).
|
|
3243
3245
|
status: Plan status (continue, replan, done).
|
|
3244
3246
|
iteration: Agent-loop iteration index.
|
|
3245
3247
|
plan_action: ``keep`` or ``new`` (execution strategy).
|
|
3246
|
-
assessment_reasoning: Phase-1 status justification.
|
|
3247
|
-
plan_reasoning:
|
|
3248
|
+
assessment_reasoning: Phase-1 status justification from plan-assess.
|
|
3249
|
+
plan_reasoning: Legacy phase-2 strategy text (usually empty after IG-329).
|
|
3248
3250
|
**kwargs: Passed to ``Vertical``.
|
|
3249
3251
|
"""
|
|
3250
3252
|
super().__init__(**kwargs)
|
|
@@ -3261,6 +3263,8 @@ class CognitionReasonMessage(Vertical):
|
|
|
3261
3263
|
parts.append(self._assessment_reasoning)
|
|
3262
3264
|
if self._plan_reasoning:
|
|
3263
3265
|
parts.append(self._plan_reasoning)
|
|
3266
|
+
elif self._next_action:
|
|
3267
|
+
parts.append(self._next_action)
|
|
3264
3268
|
if len(parts) == 2:
|
|
3265
3269
|
first = parts[0]
|
|
3266
3270
|
if not first.endswith((".", "!", "?")):
|
|
@@ -3269,7 +3273,7 @@ class CognitionReasonMessage(Vertical):
|
|
|
3269
3273
|
elif parts:
|
|
3270
3274
|
body = parts[0]
|
|
3271
3275
|
else:
|
|
3272
|
-
body =
|
|
3276
|
+
body = ""
|
|
3273
3277
|
if self._plan_action in ("keep", "new") and body:
|
|
3274
3278
|
body = f"{body} · {self._plan_action}"
|
|
3275
3279
|
return _assemble_card_header(self, "", body)
|
|
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.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/parse/tool_call_resolution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/duration_format.py
RENAMED
|
File without changes
|
|
File without changes
|
{soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/explore_task_display.py
RENAMED
|
File without changes
|
{soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/renderer_base.py
RENAMED
|
File without changes
|
{soothe_cli-0.6.14 → soothe_cli-0.6.15}/src/soothe_cli/runtime/presentation/renderer_protocol.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
|