soothe-cli 1.0.0__tar.gz → 1.0.1__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 (145) hide show
  1. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/PKG-INFO +1 -1
  2. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/context_data.py +1 -1
  3. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/cognition_goal_tree.py +5 -5
  4. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/cognition_step.py +3 -3
  5. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/plan_quick_view_overlay.py +1 -1
  6. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/.gitignore +0 -0
  7. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/README.md +0 -0
  8. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/pyproject.toml +0 -0
  9. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/__init__.py +0 -0
  10. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/_cli_context.py +0 -0
  11. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/_env_vars.py +0 -0
  12. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/_version.py +0 -0
  13. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/card_wire.py +0 -0
  14. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/__init__.py +0 -0
  15. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/__init__.py +0 -0
  16. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/autopilot_cmd.py +0 -0
  17. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/config_cmd.py +0 -0
  18. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/cron_cmd.py +0 -0
  19. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/loop_cmd.py +0 -0
  20. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/run_cmd.py +0 -0
  21. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/commands/status_cmd.py +0 -0
  22. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/execution/__init__.py +0 -0
  23. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/execution/daemon.py +0 -0
  24. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/execution/daemon_errors.py +0 -0
  25. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/execution/headless.py +0 -0
  26. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/execution/headless_renderer.py +0 -0
  27. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/execution/launcher.py +0 -0
  28. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/main.py +0 -0
  29. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/cli/soothecli.py +0 -0
  30. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/commands/__init__.py +0 -0
  31. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/commands/binding.py +0 -0
  32. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/commands/command_registry.py +0 -0
  33. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/commands/command_router.py +0 -0
  34. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/commands/slash_commands.py +0 -0
  35. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/commands/subagent_routing.py +0 -0
  36. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/config/__init__.py +0 -0
  37. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/config/cli_config.py +0 -0
  38. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/config/loader.py +0 -0
  39. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/config/logging_setup.py +0 -0
  40. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/__init__.py +0 -0
  41. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/markdown_theme.py +0 -0
  42. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/media_utils.py +0 -0
  43. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/mermaid_render.py +0 -0
  44. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/path_utils.py +0 -0
  45. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/preview_limits.py +0 -0
  46. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/shell_color.py +0 -0
  47. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/spinner_labels.py +0 -0
  48. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/theme.py +0 -0
  49. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/tips.py +0 -0
  50. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/tool_display.py +0 -0
  51. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/display/unicode_security.py +0 -0
  52. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/loops/__init__.py +0 -0
  53. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/loops/sessions.py +0 -0
  54. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/model_config.py +0 -0
  55. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/project_utils.py +0 -0
  56. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/__init__.py +0 -0
  57. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/headless/processor.py +0 -0
  58. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/headless/processor_state.py +0 -0
  59. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/parse/tool_call_resolution.py +0 -0
  60. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/policy/tui_trace_log.py +0 -0
  61. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/duration_format.py +0 -0
  62. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/engine.py +0 -0
  63. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/id_format.py +0 -0
  64. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/renderer_base.py +0 -0
  65. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/renderer_protocol.py +0 -0
  66. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/step_id_format.py +0 -0
  67. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/presentation/subagent_task_display.py +0 -0
  68. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/state/file_tracker.py +0 -0
  69. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/state/session_stats.py +0 -0
  70. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/state/step_router.py +0 -0
  71. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/state/stream_accumulator.py +0 -0
  72. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/token_events_debug.py +0 -0
  73. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/token_usage.py +0 -0
  74. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/transport/session.py +0 -0
  75. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/turn/prepare.py +0 -0
  76. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/wire/chunk_filter.py +0 -0
  77. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/wire/message_text.py +0 -0
  78. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/runtime/wire/messages.py +0 -0
  79. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/__init__.py +0 -0
  80. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/_console_impl.py +0 -0
  81. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/bootstrap.py +0 -0
  82. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/core.py +0 -0
  83. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/glyphs.py +0 -0
  84. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/provider.py +0 -0
  85. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/shell_allow.py +0 -0
  86. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/skills_dirs.py +0 -0
  87. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/settings/stream_config.py +0 -0
  88. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/__init__.py +0 -0
  89. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/__init__.py +0 -0
  90. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_app.py +0 -0
  91. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_clarification.py +0 -0
  92. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_entrypoints.py +0 -0
  93. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_execution.py +0 -0
  94. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_history.py +0 -0
  95. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_messages_mixin.py +0 -0
  96. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_model.py +0 -0
  97. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_model_params.py +0 -0
  98. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_startup.py +0 -0
  99. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_terminal.py +0 -0
  100. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_theme_prefs.py +0 -0
  101. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_types.py +0 -0
  102. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/_ui.py +0 -0
  103. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/app/app.tcss +0 -0
  104. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/composer_mode.py +0 -0
  105. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/file_change_notify.py +0 -0
  106. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/file_change_renderers.py +0 -0
  107. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/input.py +0 -0
  108. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/skills/__init__.py +0 -0
  109. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/skills/invocation.py +0 -0
  110. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/skills/load.py +0 -0
  111. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/textual_adapter.py +0 -0
  112. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/__init__.py +0 -0
  113. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/_links.py +0 -0
  114. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/autocomplete.py +0 -0
  115. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/chat_input.py +0 -0
  116. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/clipboard.py +0 -0
  117. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/context_viewer.py +0 -0
  118. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/diff.py +0 -0
  119. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/editor.py +0 -0
  120. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/file_change_preview.py +0 -0
  121. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/help_screen.py +0 -0
  122. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/history.py +0 -0
  123. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/loading.py +0 -0
  124. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/loop_selector.py +0 -0
  125. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/mcp_viewer.py +0 -0
  126. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/message_store.py +0 -0
  127. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/__init__.py +0 -0
  128. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/_helpers.py +0 -0
  129. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/app.py +0 -0
  130. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/assistant.py +0 -0
  131. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/cognition_reason.py +0 -0
  132. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/cognition_step_activity.py +0 -0
  133. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/diff_message.py +0 -0
  134. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/error.py +0 -0
  135. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/skill.py +0 -0
  136. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/structured_ask_user.py +0 -0
  137. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/messages/user.py +0 -0
  138. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/model_selector.py +0 -0
  139. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/notification_settings.py +0 -0
  140. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/pinned_goal_bar.py +0 -0
  141. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/router_profile_selector.py +0 -0
  142. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/status.py +0 -0
  143. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/theme_selector.py +0 -0
  144. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/src/soothe_cli/tui/widgets/welcome.py +0 -0
  145. {soothe_cli-1.0.0 → soothe_cli-1.0.1}/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.0
3
+ Version: 1.0.1
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
@@ -138,7 +138,7 @@ def format_token_usage(snapshot: TokenUsageSnapshot) -> str:
138
138
  formatted = format_token_count(count)
139
139
  usage = f"{formatted}{suffix} tokens used this loop"
140
140
  if in_count > 0 or out_count > 0:
141
- usage += f" (in: {format_token_count(in_count)} · out: {format_token_count(out_count)})"
141
+ usage += f" (↑{format_token_count(in_count)} · ↓{format_token_count(out_count)})"
142
142
 
143
143
  msg = f"{usage} · {model_name}" if model_name else usage
144
144
 
@@ -331,7 +331,7 @@ class CognitionGoalTreeMessage(Vertical):
331
331
  self._goal_out_tokens += out_t
332
332
 
333
333
  def goal_token_suffix(self) -> str:
334
- """Compact `in:1.2K out:345` suffix for the plan panel title.
334
+ """Compact `↑1.2K ↓345` suffix for the plan panel title.
335
335
 
336
336
  Returns an empty string when no step has recorded any tokens.
337
337
  """
@@ -340,7 +340,7 @@ class CognitionGoalTreeMessage(Vertical):
340
340
  return ""
341
341
  from soothe_cli.runtime.state.session_stats import format_token_count
342
342
 
343
- return f"in:{format_token_count(total_in)} out:{format_token_count(total_out)}"
343
+ return f"↑{format_token_count(total_in)} ↓{format_token_count(total_out)}"
344
344
 
345
345
  def mark_loop_started(self, started_at: float | None = None) -> None:
346
346
  """Anchor plan-level elapsed time (matches thinking-row turn start)."""
@@ -390,14 +390,14 @@ class CognitionGoalTreeMessage(Vertical):
390
390
 
391
391
  @staticmethod
392
392
  def _step_token_parts(st: _StepLineState) -> list[str]:
393
- """In/out token labels for a step row, e.g. `in:1.2K out:345`."""
393
+ """Arrow token labels for a step row, e.g. `↑1.2K ↓345`."""
394
394
  if not (st.input_tokens or st.output_tokens):
395
395
  return []
396
396
  from soothe_cli.runtime.state.session_stats import format_token_count
397
397
 
398
398
  return [
399
- f"in:{format_token_count(st.input_tokens)}",
400
- f"out:{format_token_count(st.output_tokens)}",
399
+ f"↑{format_token_count(st.input_tokens)}",
400
+ f"↓{format_token_count(st.output_tokens)}",
401
401
  ]
402
402
 
403
403
  def _step_summary_suffix(self, st: _StepLineState) -> str:
@@ -251,14 +251,14 @@ class CognitionStepMessage(Vertical):
251
251
  self._sync_step_card_surface()
252
252
 
253
253
  def _token_budget_suffix(self) -> str:
254
- """Token budget suffix for status lines, e.g. `in:1.2K out:345`."""
254
+ """Token budget suffix for status lines, e.g. `↑1.2K ↓345`."""
255
255
  if not (self._input_tokens or self._output_tokens):
256
256
  return ""
257
257
  from soothe_cli.runtime.state.session_stats import format_token_count
258
258
 
259
259
  parts: list[str] = []
260
- parts.append(f"in:{format_token_count(self._input_tokens)}")
261
- parts.append(f"out:{format_token_count(self._output_tokens)}")
260
+ parts.append(f"↑{format_token_count(self._input_tokens)}")
261
+ parts.append(f"↓{format_token_count(self._output_tokens)}")
262
262
  return " · " + " ".join(parts)
263
263
 
264
264
  def _compact_title_meta_suffix(self) -> str:
@@ -37,7 +37,7 @@ def _plan_quick_view_title(
37
37
  elapsed: str | None = None,
38
38
  tokens: str | None = None,
39
39
  ) -> str:
40
- """Compose the panel title: `Orchestrating [8d26] · complex · 37s · in:1.2K out:345`."""
40
+ """Compose the panel title: `Orchestrating [8d26] · complex · 37s · ↑1.2K ↓345`."""
41
41
  title = "Orchestrating"
42
42
  short_id = compact_id_suffix(loop_id or "")
43
43
  if short_id:
File without changes
File without changes
File without changes