systemr-cli 2.2.1__tar.gz → 2.3.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.
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/PKG-INFO +1 -1
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/__init__.py +1 -1
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/cli.py +1 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/chat_commands.py +19 -3
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/pyproject.toml +1 -1
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/.gitignore +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/DESIGN.md +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/README.md +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/clawhub/systemr-trading/SKILL.md +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/clawhub/systemr-trading/scripts/mcp_stdio_proxy.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/__main__.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/auth.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/client.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/__init__.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/auth_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/cron_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/doctor_command.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/eval_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/journal_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/plan_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/risk_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/scan_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/commands/size_commands.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/config.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/confirmation.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/credits.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/cron.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/display/__init__.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/display/chat_renderer.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/display/formatters.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/display/tables.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/display/theme.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/hooks.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/logging.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/model_failover.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/orchestrator.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/profile.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/store.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/streaming.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/tool_router.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/neo/types.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/__init__.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_auth.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_chat_helpers.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_chat_renderer.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_cli.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_config.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_confirmation.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_credits.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_cron.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_doctor.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_formatters.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_hooks.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_logging.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_model_failover.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_orchestrator.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_profile.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_store.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_streaming.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_tool_router.py +0 -0
- {systemr_cli-2.2.1 → systemr_cli-2.3.1}/tests/test_types.py +0 -0
|
@@ -71,6 +71,7 @@ def _show_home_and_chat(ctx: click.Context) -> None:
|
|
|
71
71
|
# Connected — print banner then drop into chat (chat skips its own banner)
|
|
72
72
|
print_banner()
|
|
73
73
|
console.print(f" [{GREEN}]● connected[/]")
|
|
74
|
+
console.print()
|
|
74
75
|
ctx.ensure_object(dict)
|
|
75
76
|
ctx.obj["banner_shown"] = True
|
|
76
77
|
ctx.invoke(chat)
|
|
@@ -247,11 +247,27 @@ def chat(ctx: click.Context, model_name: str | None, research: bool, resume: boo
|
|
|
247
247
|
console.print(f" [{DIM}]Session closed.[/]")
|
|
248
248
|
break
|
|
249
249
|
|
|
250
|
-
#
|
|
250
|
+
# Empty input — do nothing, no separator, no status bar
|
|
251
|
+
if not user_input:
|
|
252
|
+
first_prompt = True # suppress separator on next loop
|
|
253
|
+
continue
|
|
254
|
+
|
|
255
|
+
# Show separator + status + immediate thinking feedback
|
|
251
256
|
print_separator()
|
|
252
257
|
print_prompt_bar(model=display_model, broker=connected_broker)
|
|
253
|
-
|
|
254
|
-
|
|
258
|
+
import sys as _sys
|
|
259
|
+
_sys.stdout.write(f"\n\n \033[2m◐ Processing...\033[0m")
|
|
260
|
+
_sys.stdout.flush()
|
|
261
|
+
|
|
262
|
+
# Trivial messages — handle locally, no API call
|
|
263
|
+
trivial = user_input.lower().strip(".,!? ")
|
|
264
|
+
if trivial in ("ok", "okay", "k", "yes", "no", "thanks", "thank you", "ty", "cool", "got it", "sure", "yep", "nope", "hmm", "hm"):
|
|
265
|
+
_sys.stdout.write(f"\r\033[K") # clear thinking
|
|
266
|
+
console.print(f"\n [{GREEN}]┃[/] [{GRAY}]Ready. What would you like to do?[/]")
|
|
267
|
+
console.print()
|
|
268
|
+
store.add_chat_message(db_session_id, "user", user_input)
|
|
269
|
+
messages.append({"role": "user", "content": user_input})
|
|
270
|
+
messages.append({"role": "assistant", "content": "Ready. What would you like to do?"})
|
|
255
271
|
continue
|
|
256
272
|
|
|
257
273
|
# Handle slash commands
|
|
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
|