soothe-cli 1.0.6__tar.gz → 1.0.7__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 (147) hide show
  1. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/PKG-INFO +1 -1
  2. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_messages_mixin.py +29 -12
  3. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/.gitignore +0 -0
  4. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/README.md +0 -0
  5. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/pyproject.toml +0 -0
  6. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/__init__.py +0 -0
  7. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/_cli_context.py +0 -0
  8. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/_env_vars.py +0 -0
  9. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/_version.py +0 -0
  10. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/card_wire.py +0 -0
  11. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/__init__.py +0 -0
  12. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/__init__.py +0 -0
  13. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/autopilot_cmd.py +0 -0
  14. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/config_cmd.py +0 -0
  15. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/cron_cmd.py +0 -0
  16. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/loop_cmd.py +0 -0
  17. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/run_cmd.py +0 -0
  18. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/commands/status_cmd.py +0 -0
  19. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/execution/__init__.py +0 -0
  20. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/execution/daemon.py +0 -0
  21. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/execution/daemon_errors.py +0 -0
  22. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/execution/headless.py +0 -0
  23. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/execution/headless_renderer.py +0 -0
  24. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/execution/launcher.py +0 -0
  25. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/main.py +0 -0
  26. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/cli/soothecli.py +0 -0
  27. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/commands/__init__.py +0 -0
  28. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/commands/binding.py +0 -0
  29. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/commands/command_registry.py +0 -0
  30. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/commands/command_router.py +0 -0
  31. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/commands/slash_commands.py +0 -0
  32. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/commands/subagent_routing.py +0 -0
  33. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/config/__init__.py +0 -0
  34. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/config/cli_config.py +0 -0
  35. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/config/loader.py +0 -0
  36. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/config/logging_setup.py +0 -0
  37. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/__init__.py +0 -0
  38. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/card.py +0 -0
  39. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/markdown_theme.py +0 -0
  40. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/media_utils.py +0 -0
  41. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/mermaid_render.py +0 -0
  42. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/path_utils.py +0 -0
  43. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/preview_limits.py +0 -0
  44. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/shell_color.py +0 -0
  45. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/spinner_labels.py +0 -0
  46. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/theme.py +0 -0
  47. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/tips.py +0 -0
  48. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/tool_display.py +0 -0
  49. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/display/unicode_security.py +0 -0
  50. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/loops/__init__.py +0 -0
  51. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/loops/sessions.py +0 -0
  52. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/model_config.py +0 -0
  53. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/project_utils.py +0 -0
  54. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/__init__.py +0 -0
  55. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/headless/processor.py +0 -0
  56. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/headless/processor_state.py +0 -0
  57. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/parse/tool_call_resolution.py +0 -0
  58. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/policy/tui_trace_log.py +0 -0
  59. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/duration_format.py +0 -0
  60. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/engine.py +0 -0
  61. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/id_format.py +0 -0
  62. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/renderer_base.py +0 -0
  63. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/renderer_protocol.py +0 -0
  64. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/step_id_format.py +0 -0
  65. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/presentation/subagent_task_display.py +0 -0
  66. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/state/file_tracker.py +0 -0
  67. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/state/session_stats.py +0 -0
  68. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/state/step_router.py +0 -0
  69. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/state/stream_accumulator.py +0 -0
  70. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/token_events_debug.py +0 -0
  71. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/token_usage.py +0 -0
  72. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/transport/session.py +0 -0
  73. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/turn/prepare.py +0 -0
  74. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/wire/chunk_filter.py +0 -0
  75. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/wire/message_text.py +0 -0
  76. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/runtime/wire/messages.py +0 -0
  77. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/__init__.py +0 -0
  78. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/_console_impl.py +0 -0
  79. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/bootstrap.py +0 -0
  80. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/core.py +0 -0
  81. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/glyphs.py +0 -0
  82. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/provider.py +0 -0
  83. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/shell_allow.py +0 -0
  84. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/skills_dirs.py +0 -0
  85. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/settings/stream_config.py +0 -0
  86. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/__init__.py +0 -0
  87. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/__init__.py +0 -0
  88. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_app.py +0 -0
  89. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_clarification.py +0 -0
  90. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_entrypoints.py +0 -0
  91. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_execution.py +0 -0
  92. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_history.py +0 -0
  93. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_model.py +0 -0
  94. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_model_params.py +0 -0
  95. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_startup.py +0 -0
  96. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_terminal.py +0 -0
  97. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_theme_prefs.py +0 -0
  98. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_types.py +0 -0
  99. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/_ui.py +0 -0
  100. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/app/app.tcss +0 -0
  101. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/composer_mode.py +0 -0
  102. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/file_change_notify.py +0 -0
  103. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/file_change_renderers.py +0 -0
  104. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/input.py +0 -0
  105. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/skills/__init__.py +0 -0
  106. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/skills/invocation.py +0 -0
  107. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/skills/load.py +0 -0
  108. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/textual_adapter.py +0 -0
  109. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/__init__.py +0 -0
  110. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/_links.py +0 -0
  111. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/autocomplete.py +0 -0
  112. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/chat_input.py +0 -0
  113. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/clipboard.py +0 -0
  114. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/context_data.py +0 -0
  115. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/context_viewer.py +0 -0
  116. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/diff.py +0 -0
  117. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/editor.py +0 -0
  118. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/file_change_preview.py +0 -0
  119. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/help_screen.py +0 -0
  120. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/history.py +0 -0
  121. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/loading.py +0 -0
  122. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/loop_selector.py +0 -0
  123. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/mcp_viewer.py +0 -0
  124. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/message_store.py +0 -0
  125. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/__init__.py +0 -0
  126. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/_helpers.py +0 -0
  127. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/app.py +0 -0
  128. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/assistant.py +0 -0
  129. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/cognition_goal_tree.py +0 -0
  130. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/cognition_reason.py +0 -0
  131. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/cognition_step.py +0 -0
  132. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/cognition_step_activity.py +0 -0
  133. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/diff_message.py +0 -0
  134. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/error.py +0 -0
  135. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/skill.py +0 -0
  136. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/structured_ask_user.py +0 -0
  137. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/messages/user.py +0 -0
  138. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/model_selector.py +0 -0
  139. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/notification_settings.py +0 -0
  140. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/pinned_goal_bar.py +0 -0
  141. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/plan_quick_view_overlay.py +0 -0
  142. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/queued_goals_bar.py +0 -0
  143. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/router_profile_selector.py +0 -0
  144. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/status.py +0 -0
  145. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/theme_selector.py +0 -0
  146. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/tui/widgets/welcome.py +0 -0
  147. {soothe_cli-1.0.6 → soothe_cli-1.0.7}/src/soothe_cli/update_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: soothe-cli
3
- Version: 1.0.6
3
+ Version: 1.0.7
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
@@ -1159,11 +1159,15 @@ class _MessagesMixin:
1159
1159
  def cycle_composer_mode(self) -> None:
1160
1160
  """Advance composer mode and refresh the status-bar badge.
1161
1161
 
1162
- Cycle: Auto → Bypass → Manual → Plan → Ask → Auto. When a goal is
1163
- running and the new mode is Auto or Manual, hot-swaps the daemon's
1164
- live clarification policy via `loop_set_clarification_mode`.
1162
+ Cycle: Auto → Bypass → Manual → Plan → Ask → Auto. For agent sub-modes
1163
+ (auto/bypass/manual) hot-swap the running goal's agent mode via
1164
+ `loop_set_clarification_mode`; Plan/Ask take effect on the next turn.
1165
1165
  """
1166
- from soothe_cli.tui.composer_mode import next_composer_mode
1166
+ from soothe_cli.tui.composer_mode import (
1167
+ AGENT_SUB_MODES,
1168
+ next_composer_mode,
1169
+ resolve_composer_wire_fields,
1170
+ )
1167
1171
 
1168
1172
  current = getattr(self, "_composer_mode", "auto")
1169
1173
  new_mode = next_composer_mode(current)
@@ -1171,13 +1175,21 @@ class _MessagesMixin:
1171
1175
  if self._status_bar is not None:
1172
1176
  self._status_bar.set_clarification_mode(new_mode)
1173
1177
 
1174
- # Hot-swap the running goal's clarification policy when applicable.
1175
- # Plan/Ask modes don't carry a clarification_mode wire field, so skip
1176
- # them — they only take effect on the next turn dispatch.
1177
- if new_mode in ("auto", "manual"):
1178
- self._push_clarification_mode_to_running_loop(new_mode)
1178
+ # Bypass carries an `interaction_mode` wire field; Plan/Ask stay
1179
+ # next-turn-only.
1180
+ if new_mode in AGENT_SUB_MODES:
1181
+ wire = resolve_composer_wire_fields(new_mode)
1182
+ self._push_clarification_mode_to_running_loop(
1183
+ wire.clarification_mode,
1184
+ interaction_mode=wire.interaction_mode,
1185
+ )
1179
1186
 
1180
- def _push_clarification_mode_to_running_loop(self, mode: str) -> None:
1187
+ def _push_clarification_mode_to_running_loop(
1188
+ self,
1189
+ mode: str,
1190
+ *,
1191
+ interaction_mode: str | None = None,
1192
+ ) -> None:
1181
1193
  """Best-effort hot-swap RPC; failures are silent (next turn still works)."""
1182
1194
  import asyncio
1183
1195
 
@@ -1190,11 +1202,16 @@ class _MessagesMixin:
1190
1202
 
1191
1203
  async def _push() -> None:
1192
1204
  try:
1193
- await session.set_clarification_mode(mode)
1205
+ await session.set_clarification_mode(
1206
+ mode,
1207
+ interaction_mode=interaction_mode,
1208
+ )
1194
1209
  except Exception:
1195
1210
  logger.debug(
1196
- "set_clarification_mode RPC failed (mode=%s); will apply on next turn",
1211
+ "set_clarification_mode RPC failed (mode=%s, interaction_mode=%s); "
1212
+ "will apply on next turn",
1197
1213
  mode,
1214
+ interaction_mode,
1198
1215
  exc_info=True,
1199
1216
  )
1200
1217
 
File without changes
File without changes
File without changes