vaal-code 0.6.950__tar.gz → 0.6.970__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 (99) hide show
  1. {vaal_code-0.6.950 → vaal_code-0.6.970}/PKG-INFO +1 -1
  2. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/__init__.py +1 -1
  3. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/repl.py +25 -36
  4. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal_code.egg-info/PKG-INFO +1 -1
  5. {vaal_code-0.6.950 → vaal_code-0.6.970}/README.md +0 -0
  6. {vaal_code-0.6.950 → vaal_code-0.6.970}/pyproject.toml +0 -0
  7. {vaal_code-0.6.950 → vaal_code-0.6.970}/setup.cfg +0 -0
  8. {vaal_code-0.6.950 → vaal_code-0.6.970}/tests/test_all.py +0 -0
  9. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/__main__.py +0 -0
  10. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/__init__.py +0 -0
  11. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/agent.py +0 -0
  12. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/auto_fix.py +0 -0
  13. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/bootstrap.py +0 -0
  14. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/branching.py +0 -0
  15. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/bridge.py +0 -0
  16. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/buddy.py +0 -0
  17. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/changelog.py +0 -0
  18. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/clipboard.py +0 -0
  19. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/code_review.py +0 -0
  20. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/collaborative.py +0 -0
  21. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/command_palette.py +0 -0
  22. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/config.py +0 -0
  23. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/context.py +0 -0
  24. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/cost_tracker.py +0 -0
  25. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/cot_display.py +0 -0
  26. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/deps.py +0 -0
  27. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/env_manager.py +0 -0
  28. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/error_explain.py +0 -0
  29. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/font_screen.py +0 -0
  30. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/generate_icon.py +0 -0
  31. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/history.py +0 -0
  32. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/hooks.py +0 -0
  33. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/image_input.py +0 -0
  34. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/init_project.py +0 -0
  35. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/interactive.py +0 -0
  36. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/keybindings.py +0 -0
  37. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/llm.py +0 -0
  38. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/login_screen.py +0 -0
  39. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/logout_screen.py +0 -0
  40. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/mcp_client.py +0 -0
  41. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/memory.py +0 -0
  42. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/migration.py +0 -0
  43. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/model_manager.py +0 -0
  44. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/multiline.py +0 -0
  45. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/notifications.py +0 -0
  46. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/oauth.py +0 -0
  47. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/output_styles.py +0 -0
  48. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/permissions.py +0 -0
  49. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/plans.py +0 -0
  50. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/plugins.py +0 -0
  51. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/preview_overlay.py +0 -0
  52. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/preview_server.py +0 -0
  53. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/progress.py +0 -0
  54. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/providers.py +0 -0
  55. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/raw_input.py +0 -0
  56. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/remote_control.py +0 -0
  57. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/scheduler.py +0 -0
  58. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/self_repair.py +0 -0
  59. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/server.py +0 -0
  60. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/session.py +0 -0
  61. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/skills.py +0 -0
  62. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/split_pane.py +0 -0
  63. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/ssh_remote.py +0 -0
  64. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/task_manager.py +0 -0
  65. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/terminal_profile.py +0 -0
  66. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/terminal_theme.py +0 -0
  67. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/theme.py +0 -0
  68. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/theme_screen.py +0 -0
  69. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/tool_executor.py +0 -0
  70. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/undo_system.py +0 -0
  71. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/user_config.py +0 -0
  72. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/vim_mode.py +0 -0
  73. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/voice.py +0 -0
  74. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/core/watch_mode.py +0 -0
  75. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/__init__.py +0 -0
  76. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/agent_tools.py +0 -0
  77. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/api_tools.py +0 -0
  78. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/bash_tool.py +0 -0
  79. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/db_tools.py +0 -0
  80. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/diff_tools.py +0 -0
  81. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/file_tools.py +0 -0
  82. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/git_tools.py +0 -0
  83. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/interaction_tools.py +0 -0
  84. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/lsp_tools.py +0 -0
  85. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/memory_tools.py +0 -0
  86. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/notebook_tools.py +0 -0
  87. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/plugin_tools.py +0 -0
  88. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/regex_tools.py +0 -0
  89. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/registry.py +0 -0
  90. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/search_tools.py +0 -0
  91. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/sql_tools.py +0 -0
  92. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/ssh_tools.py +0 -0
  93. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/todo_tools.py +0 -0
  94. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal/tools/web_tools.py +0 -0
  95. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal_code.egg-info/SOURCES.txt +0 -0
  96. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal_code.egg-info/dependency_links.txt +0 -0
  97. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal_code.egg-info/entry_points.txt +0 -0
  98. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal_code.egg-info/requires.txt +0 -0
  99. {vaal_code-0.6.950 → vaal_code-0.6.970}/vaal_code.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vaal-code
3
- Version: 0.6.950
3
+ Version: 0.6.970
4
4
  Summary: AI coding agent CLI — local LLMs via Ollama or cloud models via API
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://e-e.tools/vaal
@@ -1,2 +1,2 @@
1
1
  """Vaal — Local LLM coding assistant CLI."""
2
- __version__ = "0.6.950"
2
+ __version__ = "0.6.970"
@@ -1148,7 +1148,7 @@ def run_repl(model: str = DEFAULT_MODEL, permission_mode: str = DEFAULT_PERMISSI
1148
1148
  }
1149
1149
 
1150
1150
  def print_prompt_line():
1151
- """Print separator + buddy on the right + bottom line, like Claude Code."""
1151
+ """Print separator with buddy on right, like Claude Code."""
1152
1152
  from .buddy import get_buddy, render_sprite
1153
1153
 
1154
1154
  try:
@@ -1157,51 +1157,40 @@ def run_repl(model: str = DEFAULT_MODEL, permission_mode: str = DEFAULT_PERMISSI
1157
1157
  term_w = 80
1158
1158
 
1159
1159
  buddy = get_buddy()
1160
+ sep_w = min(term_w - 2, 70)
1161
+
1160
1162
  if not buddy:
1161
- _write(f"\033[2m{'─' * min(term_w - 2, 70)}\033[0m\n")
1163
+ _write(f"\033[2m{'─' * sep_w}\033[0m\n")
1162
1164
  return
1163
1165
 
1164
1166
  sprite = render_sprite(buddy)
1165
1167
  bname = buddy.get("name", "")
1166
1168
  sprite_w = max(len(s) for s in sprite)
1167
- right_col = term_w - sprite_w - 2
1168
- line_w = right_col - 2
1169
-
1170
- # Build the block:
1171
- # ───────────────────────────── /^\ /^\
1172
- # > (cursor here) < · · >
1173
- # ( ~~ )
1174
- # `-vvvv-´
1175
- # ───────────────────────────── Dragon
1176
-
1177
- # Top separator + sprite lines
1178
- num_sprite = len(sprite)
1179
- total = num_sprite + 2 # top sep + sprite lines + bottom sep with name
1180
-
1181
- # Print blank lines first so cursor math works
1182
- for _ in range(total):
1183
- _write("\n")
1184
- # Move back to top
1185
- _write(f"\033[{total}A")
1186
-
1187
- # Line 0: top separator + sprite[0]
1188
- _write(f"\033[2m{'─' * line_w}\033[0m")
1189
- if num_sprite > 0:
1190
- _write(f"\033[{right_col}G\033[2m{sprite[0]}\033[0m")
1169
+ rcol = term_w - sprite_w - 1
1170
+
1171
+ # Print top separator
1172
+ _write(f"\033[2m{'─' * (rcol - 2)}\033[0m")
1173
+ # First sprite line on same row
1174
+ if sprite:
1175
+ _write(f"\033[{rcol}G\033[2m{sprite[0]}\033[0m")
1191
1176
  _write("\n")
1192
1177
 
1193
- # Lines 1..N-1: empty left + sprite lines
1194
- for i in range(1, num_sprite):
1195
- _write(f"\033[{right_col}G\033[2m{sprite[i]}\033[0m\n")
1178
+ # Middle sprite lines (these are below the > prompt line)
1179
+ # We DON'T print them — they'd interfere with typing
1180
+ # Instead save them to render after user submits
1181
+ # For now just show top line + name on the separator
1196
1182
 
1197
- # Bottom line: separator + name
1198
- pad = (sprite_w - len(bname)) // 2
1199
- _write(f"\033[2m{'─' * line_w}\033[0m")
1200
- _write(f"\033[{right_col + pad}G\033[2;3m{bname}\033[0m")
1201
- _write("\n")
1183
+ # Bottom separator with remaining sprite + name
1184
+ # Actually just do it simple: sprite on right of top sep only
1185
+ # Rest of sprite below, then bottom sep
1186
+
1187
+ for i in range(1, len(sprite)):
1188
+ _write(f"\033[{rcol}G\033[2m{sprite[i]}\033[0m\n")
1202
1189
 
1203
- # Move cursor back up to line 1 (the line after top separator = where > goes)
1204
- _write(f"\033[{num_sprite}A\r")
1190
+ # Name + bottom separator on same line
1191
+ _write(f"\033[2m{'─' * (rcol - 2)}\033[0m")
1192
+ pad = max(0, (sprite_w - len(bname)) // 2)
1193
+ _write(f"\033[{rcol + pad}G\033[2;3m{bname}\033[0m\n")
1205
1194
 
1206
1195
  # Check if any models are installed — if not, open model selector
1207
1196
  from .llm import list_models as _check_models
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vaal-code
3
- Version: 0.6.950
3
+ Version: 0.6.970
4
4
  Summary: AI coding agent CLI — local LLMs via Ollama or cloud models via API
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://e-e.tools/vaal
File without changes
File without changes
File without changes