soothe-cli 1.0.22__tar.gz → 1.2.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.
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/PKG-INFO +5 -5
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/README.md +2 -2
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/pyproject.toml +3 -3
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/card_wire.py +2 -2
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/run_cmd.py +3 -3
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/main.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/binding.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/command_registry.py +0 -6
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/slash_commands.py +0 -6
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/subagent_routing.py +0 -2
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/cli_config.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/logging_setup.py +1 -1
- soothe_cli-1.2.0/src/soothe_cli/display/card_binder.py +787 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/preview_limits.py +9 -0
- soothe_cli-1.2.0/src/soothe_cli/display/text_extract.py +127 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/tool_display.py +5 -5
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/model_config.py +2 -2
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/headless/processor.py +7 -7
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/parse/tool_call_resolution.py +16 -13
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/policy/tui_trace_log.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/engine.py +3 -3
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/step_id_format.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/subagent_task_display.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/file_tracker.py +3 -3
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/step_router.py +4 -4
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/turn/prepare.py +4 -4
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/wire/chunk_filter.py +19 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/wire/message_text.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/wire/messages.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/bootstrap.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/core.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_history.py +12 -11
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_messages_mixin.py +7 -8
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_startup.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/textual_adapter.py +50 -15
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/chat_input.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/history.py +1 -1
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/message_store.py +2 -2
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/cognition_goal_tree.py +1 -1
- soothe_cli-1.2.0/src/soothe_cli/tui/widgets/messages/cognition_reason.py +176 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/cognition_step.py +20 -7
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/cognition_step_activity.py +48 -7
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/status.py +2 -2
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/update_check.py +1 -1
- soothe_cli-1.2.0/src/soothe_cli/ux/__init__.py +19 -0
- soothe_cli-1.2.0/src/soothe_cli/ux/subagent_progress.py +171 -0
- soothe_cli-1.2.0/src/soothe_cli/ux/subagent_wire_display.py +120 -0
- soothe_cli-1.0.22/src/soothe_cli/tui/widgets/messages/cognition_reason.py +0 -85
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/.gitignore +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/_cli_context.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/_env_vars.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/_version.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/config_cmd.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/cron_cmd.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/loop_cmd.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/status_cmd.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/daemon.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/daemon_errors.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/headless.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/headless_renderer.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/launcher.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/soothecli.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/command_router.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/loader.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/card.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/markdown_theme.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/media_utils.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/mermaid_render.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/path_utils.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/shell_color.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/spinner_labels.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/theme.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/tips.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/unicode_security.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/loops/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/loops/sessions.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/project_utils.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/headless/processor_state.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/duration_format.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/id_format.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/renderer_base.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/renderer_protocol.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/session_stats.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/stream_accumulator.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/token_events_debug.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/token_usage.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/transport/session.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/_console_impl.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/glyphs.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/provider.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/shell_allow.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/skills_dirs.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/stream_config.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_app.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_clarification.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_entrypoints.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_execution.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_model.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_model_params.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_terminal.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_theme_prefs.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_types.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_ui.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/app.tcss +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/composer_mode.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/file_change_notify.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/file_change_renderers.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/input.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/skills/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/skills/invocation.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/skills/load.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/_links.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/autocomplete.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/clipboard.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/context_data.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/context_viewer.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/diff.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/editor.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/file_change_preview.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/help_screen.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/loading.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/loop_selector.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/mcp_viewer.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/__init__.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/_helpers.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/app.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/assistant.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/diff_message.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/error.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/skill.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/structured_ask_user.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/user.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/model_selector.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/notification_settings.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/pinned_goal_bar.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/plan_quick_view_overlay.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/queued_goals_bar.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/router_profile_selector.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/theme_selector.py +0 -0
- {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/welcome.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: soothe-cli
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.2.0
|
|
4
4
|
Summary: Soothe CLI client - communicates with daemon via WebSocket
|
|
5
5
|
Project-URL: Homepage, https://github.com/mirasoth/soothe
|
|
6
6
|
Project-URL: Documentation, https://soothe.readthedocs.io
|
|
@@ -17,12 +17,12 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
17
17
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
18
18
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
19
|
Requires-Python: <3.14,>=3.11
|
|
20
|
+
Requires-Dist: langchain-core<2.0.0,>=1.6.0
|
|
20
21
|
Requires-Dist: pillow<12.0.0,>=10.0.0
|
|
21
22
|
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
|
22
23
|
Requires-Dist: pyyaml<7.0.0,>=6.0.0
|
|
23
24
|
Requires-Dist: rich<15.0.0,>=13.0.0
|
|
24
|
-
Requires-Dist: soothe-client-python<2.0.0,>=1.0
|
|
25
|
-
Requires-Dist: soothe-sdk<2.0.0,>=1.0.12
|
|
25
|
+
Requires-Dist: soothe-client-python<2.0.0,>=1.2.0
|
|
26
26
|
Requires-Dist: termaid<1.0.0,>=0.7.1
|
|
27
27
|
Requires-Dist: textual<10.0.0,>=8.0.0
|
|
28
28
|
Requires-Dist: typer<2.0.0,>=0.9.0
|
|
@@ -76,7 +76,7 @@ This package is the **client** component that communicates with the Soothe daemo
|
|
|
76
76
|
|
|
77
77
|
## Dependencies
|
|
78
78
|
|
|
79
|
-
- `soothe-
|
|
79
|
+
- `soothe-client-python>=1.1.0` - WebSocket transport + wire/display/ux contracts
|
|
80
80
|
- `typer>=0.9.0` - CLI framework
|
|
81
81
|
- `textual>=8.0.0` - TUI framework
|
|
82
82
|
- `rich>=13.0.0` - Console output
|
|
@@ -111,4 +111,4 @@ Global flags apply to subcommands too, e.g. `soothe --daemon-port 9000 loop list
|
|
|
111
111
|
## Related Packages
|
|
112
112
|
|
|
113
113
|
- **soothed**: Server package (agent runtime)
|
|
114
|
-
- **soothe-
|
|
114
|
+
- **soothe-client-python**: WebSocket transport client + shared client-side contracts
|
|
@@ -39,7 +39,7 @@ This package is the **client** component that communicates with the Soothe daemo
|
|
|
39
39
|
|
|
40
40
|
## Dependencies
|
|
41
41
|
|
|
42
|
-
- `soothe-
|
|
42
|
+
- `soothe-client-python>=1.1.0` - WebSocket transport + wire/display/ux contracts
|
|
43
43
|
- `typer>=0.9.0` - CLI framework
|
|
44
44
|
- `textual>=8.0.0` - TUI framework
|
|
45
45
|
- `rich>=13.0.0` - Console output
|
|
@@ -74,4 +74,4 @@ Global flags apply to subcommands too, e.g. `soothe --daemon-port 9000 loop list
|
|
|
74
74
|
## Related Packages
|
|
75
75
|
|
|
76
76
|
- **soothed**: Server package (agent runtime)
|
|
77
|
-
- **soothe-
|
|
77
|
+
- **soothe-client-python**: WebSocket transport client + shared client-side contracts
|
|
@@ -22,8 +22,8 @@ classifiers = [
|
|
|
22
22
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
23
23
|
]
|
|
24
24
|
dependencies = [
|
|
25
|
-
"soothe-
|
|
26
|
-
"
|
|
25
|
+
"soothe-client-python>=1.2.0,<2.0.0", # WebSocket transport + wire/display/ux contracts (absorbed from soothe-sdk in v1.1.0)
|
|
26
|
+
"langchain-core>=1.6.0,<2.0.0", # card_binder message types (CLI-owned transcript binder)
|
|
27
27
|
"typer>=0.9.0,<2.0.0", # CLI framework
|
|
28
28
|
"textual>=8.0.0,<10.0.0", # TUI framework
|
|
29
29
|
"rich>=13.0.0,<15.0.0", # Console output
|
|
@@ -76,7 +76,7 @@ docstring-code-format = true
|
|
|
76
76
|
|
|
77
77
|
[tool.hatch.version]
|
|
78
78
|
path = "../../VERSION"
|
|
79
|
-
pattern = "^(?P<version>[0-9]+\\.[0-9]+\\.[0-9]
|
|
79
|
+
pattern = "^(?P<version>[0-9]+\\.[0-9]+\\.[0-9]+.*)"
|
|
80
80
|
|
|
81
81
|
[tool.mypy]
|
|
82
82
|
python_version = "3.12"
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from soothe_client.core.events import (
|
|
6
6
|
CARD_CREATED,
|
|
7
7
|
CARD_FINALIZED,
|
|
8
8
|
CARD_UPDATED,
|
|
9
9
|
CARD_WIRE_TYPES,
|
|
10
10
|
)
|
|
11
|
-
from
|
|
11
|
+
from soothe_client.display.card_wire import parse_card_custom_payload
|
|
12
12
|
|
|
13
13
|
__all__ = [
|
|
14
14
|
"CARD_CREATED",
|
|
@@ -6,8 +6,8 @@ import time
|
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
|
|
8
8
|
import typer
|
|
9
|
-
from
|
|
10
|
-
from
|
|
9
|
+
from soothe_client.paths import SOOTHE_HOME
|
|
10
|
+
from soothe_client.utils.logging import resolve_cli_log_level
|
|
11
11
|
|
|
12
12
|
from soothe_cli.cli.execution import run_headless, run_tui
|
|
13
13
|
from soothe_cli.runtime import load_config, setup_logging
|
|
@@ -117,7 +117,7 @@ def run_impl(
|
|
|
117
117
|
sys.exit(130)
|
|
118
118
|
except Exception as e:
|
|
119
119
|
logger.exception("CLI run error")
|
|
120
|
-
from
|
|
120
|
+
from soothe_client.utils import format_cli_error
|
|
121
121
|
|
|
122
122
|
typer.echo(f"Error: {format_cli_error(e)}", err=True)
|
|
123
123
|
sys.exit(1)
|
|
@@ -11,7 +11,7 @@ from typing import Annotated # noqa: E402
|
|
|
11
11
|
|
|
12
12
|
import click # noqa: E402
|
|
13
13
|
import typer # noqa: E402
|
|
14
|
-
from
|
|
14
|
+
from soothe_client.paths import SOOTHE_HOME # noqa: E402
|
|
15
15
|
|
|
16
16
|
from soothe_cli._version import __version__ # noqa: E402
|
|
17
17
|
from soothe_cli.config.cli_config import CLIConfig # noqa: E402
|
|
@@ -7,7 +7,7 @@ import logging
|
|
|
7
7
|
import uuid
|
|
8
8
|
from typing import TYPE_CHECKING, Any
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from soothe_client.display.transcript_types import MessageData, MessageType
|
|
11
11
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
13
|
from textual.widget import Widget
|
|
@@ -132,12 +132,6 @@ COMMANDS: tuple[SlashCommand, ...] = (
|
|
|
132
132
|
bypass_tier=BypassTier.QUEUED,
|
|
133
133
|
enter_action=EnterAction.COMPLETE,
|
|
134
134
|
),
|
|
135
|
-
SlashCommand(
|
|
136
|
-
name="/academic_research",
|
|
137
|
-
description="Route prompt to academic_research subagent (usage: /academic_research <query>)",
|
|
138
|
-
bypass_tier=BypassTier.QUEUED,
|
|
139
|
-
enter_action=EnterAction.COMPLETE,
|
|
140
|
-
),
|
|
141
135
|
SlashCommand(
|
|
142
136
|
name="/browser_use",
|
|
143
137
|
description="Route prompt to browser_use subagent (usage: /browser_use <task>)",
|
|
@@ -268,12 +268,6 @@ COMMANDS: dict[str, dict[str, Any]] = {
|
|
|
268
268
|
"description": "Route query to Deep Research subagent",
|
|
269
269
|
"requires_query": True,
|
|
270
270
|
},
|
|
271
|
-
"/academic_research": {
|
|
272
|
-
"location": "daemon",
|
|
273
|
-
"type": "routing",
|
|
274
|
-
"description": "Route query to Academic Research subagent",
|
|
275
|
-
"requires_query": True,
|
|
276
|
-
},
|
|
277
271
|
"/browser_use": {
|
|
278
272
|
"location": "daemon",
|
|
279
273
|
"type": "routing",
|
|
@@ -5,7 +5,6 @@ from __future__ import annotations
|
|
|
5
5
|
# Display names for known soothe core subagents.
|
|
6
6
|
SUBAGENT_DISPLAY_NAMES: dict[str, str] = {
|
|
7
7
|
"deep_research": "Deep Research",
|
|
8
|
-
"academic_research": "Academic Research",
|
|
9
8
|
"browser_use": "Browser",
|
|
10
9
|
}
|
|
11
10
|
|
|
@@ -14,7 +13,6 @@ SUBAGENT_DISPLAY_NAMES: dict[str, str] = {
|
|
|
14
13
|
# Intake-only specialists (601) must stay here so slash sets preferred_subagent.
|
|
15
14
|
# ``/plan`` is now handled separately by command_router (interaction_mode=plan).
|
|
16
15
|
SUBAGENT_SLASH_ROUTE_IDS: tuple[str, ...] = (
|
|
17
|
-
"academic_research",
|
|
18
16
|
"deep_research",
|
|
19
17
|
"browser_use",
|
|
20
18
|
)
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import logging
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
|
|
8
|
-
from
|
|
8
|
+
from soothe_client.utils.logging import setup_logging as _setup_sdk_logging
|
|
9
9
|
|
|
10
10
|
# High-volume routing / step-card traces belong at DEBUG only.
|
|
11
11
|
_QUIET_AT_INFO = (
|