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.
Files changed (152) hide show
  1. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/PKG-INFO +5 -5
  2. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/README.md +2 -2
  3. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/pyproject.toml +3 -3
  4. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/card_wire.py +2 -2
  5. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/run_cmd.py +3 -3
  6. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/main.py +1 -1
  7. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/binding.py +1 -1
  8. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/command_registry.py +0 -6
  9. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/slash_commands.py +0 -6
  10. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/subagent_routing.py +0 -2
  11. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/cli_config.py +1 -1
  12. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/logging_setup.py +1 -1
  13. soothe_cli-1.2.0/src/soothe_cli/display/card_binder.py +787 -0
  14. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/preview_limits.py +9 -0
  15. soothe_cli-1.2.0/src/soothe_cli/display/text_extract.py +127 -0
  16. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/tool_display.py +5 -5
  17. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/model_config.py +2 -2
  18. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/headless/processor.py +7 -7
  19. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/parse/tool_call_resolution.py +16 -13
  20. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/policy/tui_trace_log.py +1 -1
  21. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/engine.py +3 -3
  22. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/step_id_format.py +1 -1
  23. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/subagent_task_display.py +1 -1
  24. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/file_tracker.py +3 -3
  25. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/step_router.py +4 -4
  26. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/turn/prepare.py +4 -4
  27. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/wire/chunk_filter.py +19 -1
  28. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/wire/message_text.py +1 -1
  29. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/wire/messages.py +1 -1
  30. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/bootstrap.py +1 -1
  31. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/core.py +1 -1
  32. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_history.py +12 -11
  33. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_messages_mixin.py +7 -8
  34. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_startup.py +1 -1
  35. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/textual_adapter.py +50 -15
  36. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/chat_input.py +1 -1
  37. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/history.py +1 -1
  38. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/message_store.py +2 -2
  39. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/cognition_goal_tree.py +1 -1
  40. soothe_cli-1.2.0/src/soothe_cli/tui/widgets/messages/cognition_reason.py +176 -0
  41. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/cognition_step.py +20 -7
  42. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/cognition_step_activity.py +48 -7
  43. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/status.py +2 -2
  44. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/update_check.py +1 -1
  45. soothe_cli-1.2.0/src/soothe_cli/ux/__init__.py +19 -0
  46. soothe_cli-1.2.0/src/soothe_cli/ux/subagent_progress.py +171 -0
  47. soothe_cli-1.2.0/src/soothe_cli/ux/subagent_wire_display.py +120 -0
  48. soothe_cli-1.0.22/src/soothe_cli/tui/widgets/messages/cognition_reason.py +0 -85
  49. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/.gitignore +0 -0
  50. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/__init__.py +0 -0
  51. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/_cli_context.py +0 -0
  52. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/_env_vars.py +0 -0
  53. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/_version.py +0 -0
  54. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/__init__.py +0 -0
  55. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/__init__.py +0 -0
  56. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/config_cmd.py +0 -0
  57. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/cron_cmd.py +0 -0
  58. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/loop_cmd.py +0 -0
  59. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/commands/status_cmd.py +0 -0
  60. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/__init__.py +0 -0
  61. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/daemon.py +0 -0
  62. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/daemon_errors.py +0 -0
  63. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/headless.py +0 -0
  64. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/headless_renderer.py +0 -0
  65. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/execution/launcher.py +0 -0
  66. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/cli/soothecli.py +0 -0
  67. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/__init__.py +0 -0
  68. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/commands/command_router.py +0 -0
  69. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/__init__.py +0 -0
  70. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/config/loader.py +0 -0
  71. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/__init__.py +0 -0
  72. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/card.py +0 -0
  73. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/markdown_theme.py +0 -0
  74. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/media_utils.py +0 -0
  75. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/mermaid_render.py +0 -0
  76. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/path_utils.py +0 -0
  77. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/shell_color.py +0 -0
  78. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/spinner_labels.py +0 -0
  79. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/theme.py +0 -0
  80. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/tips.py +0 -0
  81. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/display/unicode_security.py +0 -0
  82. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/loops/__init__.py +0 -0
  83. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/loops/sessions.py +0 -0
  84. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/project_utils.py +0 -0
  85. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/__init__.py +0 -0
  86. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/headless/processor_state.py +0 -0
  87. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/duration_format.py +0 -0
  88. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/id_format.py +0 -0
  89. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/renderer_base.py +0 -0
  90. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/presentation/renderer_protocol.py +0 -0
  91. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/session_stats.py +0 -0
  92. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/state/stream_accumulator.py +0 -0
  93. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/token_events_debug.py +0 -0
  94. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/token_usage.py +0 -0
  95. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/runtime/transport/session.py +0 -0
  96. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/__init__.py +0 -0
  97. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/_console_impl.py +0 -0
  98. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/glyphs.py +0 -0
  99. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/provider.py +0 -0
  100. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/shell_allow.py +0 -0
  101. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/skills_dirs.py +0 -0
  102. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/settings/stream_config.py +0 -0
  103. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/__init__.py +0 -0
  104. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/__init__.py +0 -0
  105. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_app.py +0 -0
  106. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_clarification.py +0 -0
  107. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_entrypoints.py +0 -0
  108. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_execution.py +0 -0
  109. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_model.py +0 -0
  110. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_model_params.py +0 -0
  111. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_terminal.py +0 -0
  112. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_theme_prefs.py +0 -0
  113. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_types.py +0 -0
  114. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/_ui.py +0 -0
  115. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/app/app.tcss +0 -0
  116. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/composer_mode.py +0 -0
  117. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/file_change_notify.py +0 -0
  118. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/file_change_renderers.py +0 -0
  119. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/input.py +0 -0
  120. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/skills/__init__.py +0 -0
  121. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/skills/invocation.py +0 -0
  122. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/skills/load.py +0 -0
  123. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/__init__.py +0 -0
  124. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/_links.py +0 -0
  125. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/autocomplete.py +0 -0
  126. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/clipboard.py +0 -0
  127. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/context_data.py +0 -0
  128. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/context_viewer.py +0 -0
  129. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/diff.py +0 -0
  130. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/editor.py +0 -0
  131. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/file_change_preview.py +0 -0
  132. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/help_screen.py +0 -0
  133. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/loading.py +0 -0
  134. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/loop_selector.py +0 -0
  135. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/mcp_viewer.py +0 -0
  136. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/__init__.py +0 -0
  137. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/_helpers.py +0 -0
  138. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/app.py +0 -0
  139. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/assistant.py +0 -0
  140. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/diff_message.py +0 -0
  141. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/error.py +0 -0
  142. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/skill.py +0 -0
  143. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/structured_ask_user.py +0 -0
  144. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/messages/user.py +0 -0
  145. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/model_selector.py +0 -0
  146. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/notification_settings.py +0 -0
  147. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/pinned_goal_bar.py +0 -0
  148. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/plan_quick_view_overlay.py +0 -0
  149. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/queued_goals_bar.py +0 -0
  150. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/router_profile_selector.py +0 -0
  151. {soothe_cli-1.0.22 → soothe_cli-1.2.0}/src/soothe_cli/tui/widgets/theme_selector.py +0 -0
  152. {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.22
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.24
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-sdk>=1.0.0` - events, display, wire contracts
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-sdk**: Shared SDK (WebSocket client, types)
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-sdk>=1.0.0` - events, display, wire contracts
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-sdk**: Shared SDK (WebSocket client, types)
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-sdk>=1.0.12,<2.0.0", # events/display/wire contracts
26
- "soothe-client-python>=1.0.24,<2.0.0", # WebSocket transport client; requires interaction_mode plan|bypass support (v1.0.24)
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 soothe_sdk.core.events import (
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 soothe_sdk.display.card_wire import parse_card_custom_payload
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 soothe_sdk.paths import SOOTHE_HOME
10
- from soothe_sdk.utils.logging import resolve_cli_log_level
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 soothe_sdk.utils import format_cli_error
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 soothe_sdk.paths import SOOTHE_HOME # noqa: E402
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 soothe_sdk.display.transcript_types import MessageData, MessageType
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
  from dataclasses import dataclass, field
6
6
  from pathlib import Path
7
7
 
8
- from soothe_sdk.paths import SOOTHE_HOME
8
+ from soothe_client.paths import SOOTHE_HOME
9
9
 
10
10
 
11
11
  @dataclass
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import logging
6
6
  from pathlib import Path
7
7
 
8
- from soothe_sdk.utils.logging import setup_logging as _setup_sdk_logging
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 = (