systemr-cli 2.2.0__tar.gz → 2.3.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 (61) hide show
  1. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/PKG-INFO +1 -1
  2. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/__init__.py +1 -1
  3. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/chat_commands.py +23 -4
  4. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/pyproject.toml +1 -1
  5. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/.gitignore +0 -0
  6. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/DESIGN.md +0 -0
  7. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/README.md +0 -0
  8. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/clawhub/systemr-trading/SKILL.md +0 -0
  9. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/clawhub/systemr-trading/scripts/mcp_stdio_proxy.py +0 -0
  10. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/__main__.py +0 -0
  11. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/auth.py +0 -0
  12. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/cli.py +0 -0
  13. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/client.py +0 -0
  14. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/__init__.py +0 -0
  15. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/auth_commands.py +0 -0
  16. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/cron_commands.py +0 -0
  17. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/doctor_command.py +0 -0
  18. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/eval_commands.py +0 -0
  19. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/journal_commands.py +0 -0
  20. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/plan_commands.py +0 -0
  21. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/risk_commands.py +0 -0
  22. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/scan_commands.py +0 -0
  23. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/commands/size_commands.py +0 -0
  24. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/config.py +0 -0
  25. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/confirmation.py +0 -0
  26. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/credits.py +0 -0
  27. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/cron.py +0 -0
  28. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/display/__init__.py +0 -0
  29. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/display/chat_renderer.py +0 -0
  30. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/display/formatters.py +0 -0
  31. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/display/tables.py +0 -0
  32. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/display/theme.py +0 -0
  33. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/hooks.py +0 -0
  34. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/logging.py +0 -0
  35. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/model_failover.py +0 -0
  36. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/orchestrator.py +0 -0
  37. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/profile.py +0 -0
  38. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/store.py +0 -0
  39. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/streaming.py +0 -0
  40. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/tool_router.py +0 -0
  41. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/neo/types.py +0 -0
  42. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/__init__.py +0 -0
  43. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_auth.py +0 -0
  44. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_chat_helpers.py +0 -0
  45. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_chat_renderer.py +0 -0
  46. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_cli.py +0 -0
  47. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_config.py +0 -0
  48. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_confirmation.py +0 -0
  49. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_credits.py +0 -0
  50. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_cron.py +0 -0
  51. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_doctor.py +0 -0
  52. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_formatters.py +0 -0
  53. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_hooks.py +0 -0
  54. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_logging.py +0 -0
  55. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_model_failover.py +0 -0
  56. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_orchestrator.py +0 -0
  57. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_profile.py +0 -0
  58. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_store.py +0 -0
  59. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_streaming.py +0 -0
  60. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_tool_router.py +0 -0
  61. {systemr_cli-2.2.0 → systemr_cli-2.3.0}/tests/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: systemr-cli
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Summary: System R AI — trading operating system for agents
5
5
  Author-email: System R AI <ashim@systemr.ai>
6
6
  License-Expression: MIT
@@ -1,3 +1,3 @@
1
1
  """System R CLI — trading operating system in your terminal."""
2
2
 
3
- __version__ = "2.2.0"
3
+ __version__ = "2.3.0"
@@ -234,9 +234,12 @@ def chat(ctx: click.Context, model_name: str | None, research: bool, resume: boo
234
234
  fire_hook(HookEvent.PRE_SESSION, context={"model": model_name})
235
235
  logger.info("session_started", model=model_name, resume=resume)
236
236
 
237
+ first_prompt = True
237
238
  try:
238
239
  while True:
239
- print_separator()
240
+ if not first_prompt:
241
+ print_separator()
242
+ first_prompt = False
240
243
  try:
241
244
  user_input = prompt_session.prompt(" ❯ ").strip()
242
245
  except (EOFError, KeyboardInterrupt):
@@ -244,11 +247,27 @@ def chat(ctx: click.Context, model_name: str | None, research: bool, resume: boo
244
247
  console.print(f" [{DIM}]Session closed.[/]")
245
248
  break
246
249
 
247
- # Bottom separator + status bar
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
248
256
  print_separator()
249
257
  print_prompt_bar(model=display_model, broker=connected_broker)
250
-
251
- if not user_input:
258
+ import sys as _sys
259
+ _sys.stdout.write(f"\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?"})
252
271
  continue
253
272
 
254
273
  # Handle slash commands
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "systemr-cli"
7
- version = "2.2.0"
7
+ version = "2.3.0"
8
8
  description = "System R AI — trading operating system for agents"
9
9
  readme = "README.md"
10
10
  license = "MIT"
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