velune-cli 0.9.0__tar.gz → 0.9.2__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 (403) hide show
  1. velune_cli-0.9.2/.gitignore +112 -0
  2. {velune_cli-0.9.0 → velune_cli-0.9.2}/PKG-INFO +273 -77
  3. velune_cli-0.9.2/README.md +420 -0
  4. velune_cli-0.9.2/docs/CHANGELOG.md +608 -0
  5. velune_cli-0.9.2/pyproject.toml +247 -0
  6. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/__init__.py +1 -1
  7. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/__main__.py +2 -2
  8. velune_cli-0.9.2/velune/analysis/__init__.py +1 -0
  9. velune_cli-0.9.2/velune/analysis/linter.py +207 -0
  10. velune_cli-0.9.2/velune/analysis/refactor.py +231 -0
  11. velune_cli-0.9.2/velune/analysis/symbol_search.py +59 -0
  12. velune_cli-0.9.2/velune/analysis/type_inferrer.py +241 -0
  13. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/app.py +51 -9
  14. velune_cli-0.9.2/velune/cli/autocomplete.py +260 -0
  15. velune_cli-0.9.2/velune/cli/banner.py +102 -0
  16. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/__init__.py +24 -0
  17. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/ask.py +1 -1
  18. velune_cli-0.9.2/velune/cli/commands/chat.py +542 -0
  19. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/config.py +1 -1
  20. velune_cli-0.9.2/velune/cli/commands/context.py +188 -0
  21. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/daemon.py +1 -1
  22. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/doctor.py +170 -30
  23. velune_cli-0.9.2/velune/cli/commands/file_commands.py +213 -0
  24. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/mcp.py +11 -2
  25. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/memory.py +3 -3
  26. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/models.py +1 -1
  27. velune_cli-0.9.2/velune/cli/commands/providers.py +535 -0
  28. velune_cli-0.9.2/velune/cli/commands/retrieval.py +163 -0
  29. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/run.py +1 -1
  30. velune_cli-0.9.2/velune/cli/commands/session.py +128 -0
  31. velune_cli-0.9.2/velune/cli/commands/setup.py +316 -0
  32. velune_cli-0.9.2/velune/cli/commands/trace.py +218 -0
  33. velune_cli-0.9.2/velune/cli/commands/usage.py +482 -0
  34. velune_cli-0.9.2/velune/cli/commands/workspace.py +884 -0
  35. velune_cli-0.9.2/velune/cli/design.py +87 -0
  36. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/council_view.py +81 -46
  37. velune_cli-0.9.2/velune/cli/display/dashboard.py +209 -0
  38. velune_cli-0.9.2/velune/cli/display/pipeline.py +116 -0
  39. velune_cli-0.9.2/velune/cli/display/themes.py +29 -0
  40. velune_cli-0.9.2/velune/cli/interrupts.py +141 -0
  41. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/model_selector.py +24 -1
  42. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/modes.py +25 -3
  43. velune_cli-0.9.2/velune/cli/picker.py +131 -0
  44. velune_cli-0.9.2/velune/cli/registry.py +174 -0
  45. velune_cli-0.9.2/velune/cli/rendering/__init__.py +5 -0
  46. velune_cli-0.9.2/velune/cli/rendering/markdown.py +127 -0
  47. velune_cli-0.9.2/velune/cli/repl.py +3687 -0
  48. velune_cli-0.9.2/velune/cli/session_manager.py +42 -0
  49. velune_cli-0.9.2/velune/cli/sessions.py +224 -0
  50. velune_cli-0.9.2/velune/cli/slash_dispatcher.py +465 -0
  51. velune_cli-0.9.2/velune/cli/statusbar.py +164 -0
  52. velune_cli-0.9.2/velune/cli/stream_renderer.py +130 -0
  53. velune_cli-0.9.2/velune/cli/theme.py +16 -0
  54. velune_cli-0.9.2/velune/cli/validators.py +79 -0
  55. velune_cli-0.9.2/velune/cli/workspaces.py +218 -0
  56. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/__init__.py +1 -4
  57. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/coder.py +33 -57
  58. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/base.py +36 -0
  59. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/coder.py +11 -4
  60. velune_cli-0.9.2/velune/cognition/council/debate.py +151 -0
  61. velune_cli-0.9.2/velune/cognition/council_runner.py +222 -0
  62. velune_cli-0.9.2/velune/cognition/intent.py +231 -0
  63. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/module.py +5 -2
  64. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/orchestrator.py +236 -50
  65. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/__init__.py +1 -4
  66. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/assembler.py +79 -9
  67. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/extractive.py +1 -6
  68. velune_cli-0.9.2/velune/context/mentions.py +206 -0
  69. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/prompt_adaptation.py +1 -1
  70. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/token_counter.py +29 -0
  71. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/utilization.py +1 -1
  72. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/logging.py +9 -2
  73. velune_cli-0.9.2/velune/core/loop_detector.py +100 -0
  74. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/paths.py +4 -1
  75. velune_cli-0.9.2/velune/core/redaction.py +98 -0
  76. velune_cli-0.9.2/velune/core/retry.py +134 -0
  77. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/task_registry.py +118 -0
  78. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/daemon/server.py +3 -1
  79. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/daemon/transport.py +3 -1
  80. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/events.py +2 -3
  81. velune_cli-0.9.2/velune/execution/command_spec.py +309 -0
  82. velune_cli-0.9.2/velune/execution/docker_sandbox.py +293 -0
  83. velune_cli-0.9.2/velune/execution/edit_formats/__init__.py +19 -0
  84. velune_cli-0.9.2/velune/execution/edit_formats/applier.py +66 -0
  85. velune_cli-0.9.2/velune/execution/edit_formats/base.py +49 -0
  86. velune_cli-0.9.2/velune/execution/edit_formats/registry.py +83 -0
  87. velune_cli-0.9.2/velune/execution/edit_formats/search_replace.py +191 -0
  88. velune_cli-0.9.2/velune/execution/edit_formats/udiff.py +137 -0
  89. velune_cli-0.9.2/velune/execution/edit_formats/whole_file.py +113 -0
  90. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/executor.py +44 -6
  91. velune_cli-0.9.2/velune/execution/hunk_review.py +166 -0
  92. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/path_guard.py +19 -0
  93. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/sandbox.py +111 -6
  94. velune_cli-0.9.2/velune/hardware/profiles.py +109 -0
  95. velune_cli-0.9.2/velune/hooks/__init__.py +41 -0
  96. velune_cli-0.9.2/velune/hooks/config.py +260 -0
  97. velune_cli-0.9.2/velune/hooks/dispatcher.py +320 -0
  98. velune_cli-0.9.2/velune/hooks/executor.py +251 -0
  99. velune_cli-0.9.2/velune/hooks/matcher.py +112 -0
  100. velune_cli-0.9.2/velune/hooks/types.py +144 -0
  101. velune_cli-0.9.2/velune/integrations/__init__.py +56 -0
  102. velune_cli-0.9.2/velune/integrations/base.py +149 -0
  103. velune_cli-0.9.2/velune/integrations/github.py +206 -0
  104. velune_cli-0.9.2/velune/integrations/gitlab.py +199 -0
  105. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/bootstrap.py +12 -0
  106. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/config.py +10 -0
  107. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/entrypoint.py +53 -3
  108. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/modules.py +2 -0
  109. velune_cli-0.9.2/velune/main.py +54 -0
  110. velune_cli-0.9.2/velune/mcp/__init__.py +55 -0
  111. velune_cli-0.9.2/velune/mcp/client.py +184 -0
  112. velune_cli-0.9.2/velune/mcp/registry.py +399 -0
  113. velune_cli-0.9.2/velune/mcp/security.py +109 -0
  114. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/mcp/server.py +34 -3
  115. velune_cli-0.9.2/velune/mcp/transports/__init__.py +37 -0
  116. velune_cli-0.9.2/velune/mcp/transports/base.py +155 -0
  117. velune_cli-0.9.2/velune/mcp/transports/factory.py +72 -0
  118. velune_cli-0.9.2/velune/mcp/transports/http.py +198 -0
  119. velune_cli-0.9.2/velune/mcp/transports/sse.py +171 -0
  120. velune_cli-0.9.2/velune/mcp/transports/stdio.py +188 -0
  121. velune_cli-0.9.2/velune/mcp/transports/websocket.py +306 -0
  122. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/embedding_pipeline.py +1 -1
  123. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/lifecycle.py +51 -6
  124. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/registry.py +12 -6
  125. velune_cli-0.9.2/velune/observability/__init__.py +17 -0
  126. velune_cli-0.9.2/velune/observability/context_report.py +335 -0
  127. velune_cli-0.9.2/velune/observability/format.py +42 -0
  128. velune_cli-0.9.2/velune/observability/module.py +59 -0
  129. velune_cli-0.9.2/velune/observability/retrieval_report.py +201 -0
  130. velune_cli-0.9.2/velune/observability/trace_log.py +191 -0
  131. velune_cli-0.9.2/velune/observability/trace_sink.py +95 -0
  132. velune_cli-0.9.2/velune/observability/workspace_graph.py +312 -0
  133. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/engine.py +78 -1
  134. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/schemas.py +4 -0
  135. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/plugins/__init__.py +2 -2
  136. velune_cli-0.9.2/velune/plugins/declarative/__init__.py +36 -0
  137. velune_cli-0.9.2/velune/plugins/declarative/agent.py +122 -0
  138. velune_cli-0.9.2/velune/plugins/declarative/command.py +213 -0
  139. velune_cli-0.9.2/velune/plugins/declarative/manifest.py +145 -0
  140. velune_cli-0.9.2/velune/plugins/declarative/scanner.py +146 -0
  141. velune_cli-0.9.2/velune/plugins/declarative/skill.py +177 -0
  142. velune_cli-0.9.2/velune/plugins/hooks.py +166 -0
  143. velune_cli-0.9.2/velune/plugins/loader.py +161 -0
  144. velune_cli-0.9.2/velune/plugins/manager.py +240 -0
  145. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/plugins/registry.py +32 -6
  146. velune_cli-0.9.2/velune/plugins/runner.py +55 -0
  147. velune_cli-0.9.2/velune/plugins/sandbox.py +128 -0
  148. velune_cli-0.9.2/velune/proactive/__init__.py +1 -0
  149. velune_cli-0.9.2/velune/proactive/alerts.py +68 -0
  150. velune_cli-0.9.2/velune/proactive/watcher.py +176 -0
  151. velune_cli-0.9.2/velune/providers/adapters/cohere.py +238 -0
  152. velune_cli-0.9.2/velune/providers/adapters/deepseek.py +185 -0
  153. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/llamacpp.py +7 -1
  154. velune_cli-0.9.2/velune/providers/adapters/mistral.py +214 -0
  155. velune_cli-0.9.2/velune/providers/adapters/nvidia.py +202 -0
  156. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/health_monitor.py +4 -0
  157. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/keystore.py +4 -0
  158. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/local_resolver.py +1 -1
  159. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/ollama_manager.py +4 -1
  160. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/registry.py +22 -0
  161. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/router.py +51 -0
  162. velune_cli-0.9.2/velune/providers/validation.py +711 -0
  163. velune_cli-0.9.2/velune/repository/analyzer.py +401 -0
  164. velune_cli-0.9.2/velune/repository/api_mapper.py +825 -0
  165. velune_cli-0.9.2/velune/repository/architecture_detector.py +364 -0
  166. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/cognition.py +191 -13
  167. velune_cli-0.9.2/velune/repository/commit_message.py +69 -0
  168. velune_cli-0.9.2/velune/repository/config_intelligence.py +312 -0
  169. velune_cli-0.9.2/velune/repository/context_builder.py +301 -0
  170. velune_cli-0.9.2/velune/repository/git_context.py +188 -0
  171. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/grapher.py +67 -37
  172. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/incremental_indexer.py +82 -29
  173. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/indexer.py +12 -2
  174. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/parser.py +0 -8
  175. velune_cli-0.9.2/velune/repository/scanner.py +340 -0
  176. velune_cli-0.9.2/velune/repository/technology_detector.py +370 -0
  177. velune_cli-0.9.2/velune/repository/watcher.py +119 -0
  178. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/hybrid.py +50 -3
  179. velune_cli-0.9.2/velune/retrieval/module.py +59 -0
  180. velune_cli-0.9.2/velune/retrieval/reranker.py +163 -0
  181. velune_cli-0.9.2/velune/telemetry/usage_tracker.py +623 -0
  182. velune_cli-0.9.2/velune/tools/base/tool.py +140 -0
  183. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/code/navigate.py +2 -2
  184. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/code/search.py +2 -2
  185. velune_cli-0.9.2/velune/tools/filesystem/ignore.py +200 -0
  186. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/filesystem/read.py +7 -7
  187. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/filesystem/search.py +6 -2
  188. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/filesystem/write.py +4 -7
  189. velune_cli-0.9.2/velune/tools/git/providers.py +428 -0
  190. velune_cli-0.9.2/velune/tools/safety.py +236 -0
  191. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/terminal/execute.py +35 -4
  192. velune_cli-0.9.0/.gitignore +0 -98
  193. velune_cli-0.9.0/CHANGELOG.md +0 -260
  194. velune_cli-0.9.0/README.md +0 -237
  195. velune_cli-0.9.0/pyproject.toml +0 -291
  196. velune_cli-0.9.0/velune/cli/autocomplete.py +0 -80
  197. velune_cli-0.9.0/velune/cli/banner.py +0 -60
  198. velune_cli-0.9.0/velune/cli/commands/chat.py +0 -228
  199. velune_cli-0.9.0/velune/cli/commands/setup.py +0 -184
  200. velune_cli-0.9.0/velune/cli/commands/workspace.py +0 -249
  201. velune_cli-0.9.0/velune/cli/display/themes.py +0 -25
  202. velune_cli-0.9.0/velune/cli/registry.py +0 -80
  203. velune_cli-0.9.0/velune/cli/rendering/__init__.py +0 -5
  204. velune_cli-0.9.0/velune/cli/rendering/markdown.py +0 -63
  205. velune_cli-0.9.0/velune/cli/repl.py +0 -1855
  206. velune_cli-0.9.0/velune/cli/session_manager.py +0 -71
  207. velune_cli-0.9.0/velune/cli/theme.py +0 -8
  208. velune_cli-0.9.0/velune/cognition/council/debate.py +0 -46
  209. velune_cli-0.9.0/velune/cognition/council_orchestrator.py +0 -282
  210. velune_cli-0.9.0/velune/context/window.py +0 -63
  211. velune_cli-0.9.0/velune/execution/command_spec.py +0 -165
  212. velune_cli-0.9.0/velune/main.py +0 -9
  213. velune_cli-0.9.0/velune/mcp/__init__.py +0 -9
  214. velune_cli-0.9.0/velune/mcp/client.py +0 -115
  215. velune_cli-0.9.0/velune/plugins/hooks.py +0 -50
  216. velune_cli-0.9.0/velune/plugins/loader.py +0 -161
  217. velune_cli-0.9.0/velune/plugins/schemas.py +0 -21
  218. velune_cli-0.9.0/velune/repository/analyzer.py +0 -127
  219. velune_cli-0.9.0/velune/repository/scanner.py +0 -193
  220. velune_cli-0.9.0/velune/retrieval/module.py +0 -26
  221. velune_cli-0.9.0/velune/retrieval/reranker.py +0 -102
  222. velune_cli-0.9.0/velune/telemetry/usage_tracker.py +0 -340
  223. velune_cli-0.9.0/velune/tools/base/tool.py +0 -63
  224. {velune_cli-0.9.0 → velune_cli-0.9.2}/LICENSE +0 -0
  225. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/__init__.py +0 -0
  226. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/base.py +0 -0
  227. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/init.py +0 -0
  228. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/preflight.py +0 -0
  229. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/context.py +0 -0
  230. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/councilmodel_ui.py +0 -0
  231. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/memory_view.py +0 -0
  232. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/panels.py +0 -0
  233. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/progress.py +0 -0
  234. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/main.py +0 -0
  235. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/pull_ui.py +0 -0
  236. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/rendering/error_panel.py +0 -0
  237. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/slash_commands.py +0 -0
  238. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/__init__.py +0 -0
  239. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/planner.py +0 -0
  240. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/reviewer.py +0 -0
  241. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/arbitrator.py +0 -0
  242. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/architecture.py +0 -0
  243. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/budget.py +0 -0
  244. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/__init__.py +0 -0
  245. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/challenger.py +0 -0
  246. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/critic_agent.py +0 -0
  247. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/critic_configs.py +0 -0
  248. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/critics.py +0 -0
  249. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/factory.py +0 -0
  250. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/messages.py +0 -0
  251. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/planner.py +0 -0
  252. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/reviewer.py +0 -0
  253. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/synthesizer.py +0 -0
  254. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/tiers.py +0 -0
  255. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/firewall.py +0 -0
  256. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/personality.py +0 -0
  257. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/state.py +0 -0
  258. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/style_resolver.py +0 -0
  259. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/verification.py +0 -0
  260. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/budget.py +0 -0
  261. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/sections.py +0 -0
  262. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/__init__.py +0 -0
  263. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/background.py +0 -0
  264. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/config/__init__.py +0 -0
  265. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/__init__.py +0 -0
  266. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/catalog.py +0 -0
  267. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/execution.py +0 -0
  268. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/memory.py +0 -0
  269. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/orchestration.py +0 -0
  270. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/provider.py +0 -0
  271. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/event_loop.py +0 -0
  272. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/runtime.py +0 -0
  273. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/startup_profiler.py +0 -0
  274. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/trace.py +0 -0
  275. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/__init__.py +0 -0
  276. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/agent.py +0 -0
  277. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/context.py +0 -0
  278. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/inference.py +0 -0
  279. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/memory.py +0 -0
  280. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/model.py +0 -0
  281. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/provider.py +0 -0
  282. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/repository.py +0 -0
  283. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/task.py +0 -0
  284. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/workspace.py +0 -0
  285. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/daemon/client.py +0 -0
  286. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/__init__.py +0 -0
  287. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/benchmarker.py +0 -0
  288. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/cancellation.py +0 -0
  289. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/checkpointer.py +0 -0
  290. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/diff_preview.py +0 -0
  291. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/module.py +0 -0
  292. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/multi_diff.py +0 -0
  293. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/planner.py +0 -0
  294. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/rollback.py +0 -0
  295. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/validator.py +0 -0
  296. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/hardware/__init__.py +0 -0
  297. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/hardware/detector.py +0 -0
  298. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/__init__.py +0 -0
  299. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/health.py +0 -0
  300. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/lifecycle.py +0 -0
  301. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/module.py +0 -0
  302. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/registry.py +0 -0
  303. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/schemas.py +0 -0
  304. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/mcp/config.py +0 -0
  305. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/__init__.py +0 -0
  306. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/compaction.py +0 -0
  307. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/module.py +0 -0
  308. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/prioritizer.py +0 -0
  309. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/episodic_schema.sql +0 -0
  310. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/lancedb_store.py +0 -0
  311. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/sqlite_manager.py +0 -0
  312. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/sqlite_pool.py +0 -0
  313. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/episodic.py +0 -0
  314. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/graph.py +0 -0
  315. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/lineage.py +0 -0
  316. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/semantic.py +0 -0
  317. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/working.py +0 -0
  318. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/vitality.py +0 -0
  319. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/__init__.py +0 -0
  320. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/family.py +0 -0
  321. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/module.py +0 -0
  322. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/probes.py +0 -0
  323. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/profile_cache.py +0 -0
  324. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/profiler.py +0 -0
  325. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/scorer.py +0 -0
  326. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/specializations.py +0 -0
  327. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/__init__.py +0 -0
  328. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/module.py +0 -0
  329. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/role_assignments.py +0 -0
  330. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/__init__.py +0 -0
  331. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/anthropic.py +0 -0
  332. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/fireworks.py +0 -0
  333. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/google.py +0 -0
  334. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/groq.py +0 -0
  335. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/huggingface.py +0 -0
  336. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/lmstudio.py +0 -0
  337. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/ollama.py +0 -0
  338. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/openai.py +0 -0
  339. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/openrouter.py +0 -0
  340. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/together.py +0 -0
  341. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/xai.py +0 -0
  342. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/base.py +0 -0
  343. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/benchmarker.py +0 -0
  344. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/__init__.py +0 -0
  345. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/anthropic.py +0 -0
  346. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/benchmarks.py +0 -0
  347. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/classifier.py +0 -0
  348. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/fireworks.py +0 -0
  349. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/gguf.py +0 -0
  350. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/google.py +0 -0
  351. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/gpu.py +0 -0
  352. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/groq.py +0 -0
  353. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/huggingface.py +0 -0
  354. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/lmstudio.py +0 -0
  355. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/ollama.py +0 -0
  356. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/openai.py +0 -0
  357. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/openrouter.py +0 -0
  358. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/scanner.py +0 -0
  359. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/together.py +0 -0
  360. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/xai.py +0 -0
  361. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/health.py +0 -0
  362. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/local_paths.py +0 -0
  363. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/module.py +0 -0
  364. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/task_classifier.py +0 -0
  365. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/py.typed +0 -0
  366. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/__init__.py +0 -0
  367. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/ast_parser.py +0 -0
  368. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/blast_radius.py +0 -0
  369. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/boundary_classifier.py +0 -0
  370. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/import_graph.py +0 -0
  371. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/index_state.py +0 -0
  372. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/module.py +0 -0
  373. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/project_type.py +0 -0
  374. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/rename_journal.py +0 -0
  375. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/schemas.py +0 -0
  376. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/symbol_registry.py +0 -0
  377. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/tracker.py +0 -0
  378. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/__init__.py +0 -0
  379. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/cache.py +0 -0
  380. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/fast_path.py +0 -0
  381. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/graph.py +0 -0
  382. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/keyword.py +0 -0
  383. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/pipeline.py +0 -0
  384. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/schemas.py +0 -0
  385. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/slow_path.py +0 -0
  386. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/vector.py +0 -0
  387. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/__init__.py +0 -0
  388. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/cognition.py +0 -0
  389. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/cost_estimator.py +0 -0
  390. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/debug.py +0 -0
  391. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/doctor.py +0 -0
  392. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/logging.py +0 -0
  393. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/spans.py +0 -0
  394. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/token_tracker.py +0 -0
  395. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/__init__.py +0 -0
  396. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/base/registry.py +0 -0
  397. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/git/history.py +0 -0
  398. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/git/operations.py +0 -0
  399. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/git/state.py +0 -0
  400. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/module.py +0 -0
  401. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/terminal/history.py +0 -0
  402. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/web/fetch.py +0 -0
  403. {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/web/validator.py +0 -0
@@ -0,0 +1,112 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+ MANIFEST
23
+ pip-log.txt
24
+ pip-delete-this-directory.txt
25
+
26
+ # Testing & Coverage
27
+ .coverage
28
+ .coverage.*
29
+ htmlcov/
30
+ .pytest_cache/
31
+ .tox/
32
+ .hypothesis/
33
+
34
+ # Type checking & Linting
35
+ .mypy_cache/
36
+ .ruff_cache/
37
+
38
+ # Virtual environments
39
+ venv/
40
+ ENV/
41
+ env/
42
+ .venv/
43
+
44
+ # IDE / Editor
45
+ .vscode/
46
+ .idea/
47
+ *.swp
48
+ *.swo
49
+ *~
50
+ .DS_Store
51
+ Thumbs.db
52
+ *.sublime-project
53
+ *.sublime-workspace
54
+
55
+ # Claude Code / AI tooling internals
56
+ .claude/
57
+
58
+ # Velune runtime/cache
59
+ .velune/
60
+
61
+ # Dev container
62
+ .devcontainer/
63
+
64
+ # Benchmarks
65
+ .benchmarks/
66
+
67
+ # Scripts (local utility scripts)
68
+ scripts/*.sh
69
+ scripts/*.ts
70
+
71
+ # Project-specific
72
+ examples/
73
+
74
+ # Secrets & credentials — never commit these
75
+ .env
76
+ .env.*
77
+ *.env
78
+ secrets/
79
+ credentials/
80
+ *.pem
81
+ *.key
82
+ *.p12
83
+ *.pfx
84
+ *.cer
85
+ *.crt
86
+ config/local.py
87
+ config/local.json
88
+ local_settings.py
89
+
90
+ # OS & system artifacts
91
+ *.log
92
+ *.tmp
93
+ *.temp
94
+ tmp/
95
+ temp/
96
+
97
+ # Distribution / packaging internals
98
+ *.whl
99
+ RECORD
100
+ installer/
101
+
102
+ # Profiling
103
+ *.prof
104
+ *.lprof
105
+
106
+ # Jupyter (if any notebooks are local-only)
107
+ .ipynb_checkpoints/
108
+
109
+ # Node (if any frontend tooling)
110
+ node_modules/
111
+ package-lock.json
112
+ yarn.lock
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: velune-cli
3
- Version: 0.9.0
3
+ Version: 0.9.2
4
4
  Summary: Local-first multi-model AI developer CLI — council-based agents, persistent memory, repository cognition
5
5
  Project-URL: Homepage, https://github.com/Surya-Hariharan/Velune-CLI
6
6
  Project-URL: Repository, https://github.com/Surya-Hariharan/Velune-CLI
7
+ Project-URL: Documentation, https://github.com/Surya-Hariharan/Velune-CLI/tree/main/docs
7
8
  Project-URL: Issues, https://github.com/Surya-Hariharan/Velune-CLI/issues
8
- Project-URL: Changelog, https://github.com/Surya-Hariharan/Velune-CLI/blob/main/CHANGELOG.md
9
+ Project-URL: Changelog, https://github.com/Surya-Hariharan/Velune-CLI/blob/main/docs/CHANGELOG.md
9
10
  Author-email: Surya HA <suryahariharan2006@gmail.com>
10
11
  License: Apache License
11
12
  Version 2.0, January 2004
@@ -218,65 +219,77 @@ Classifier: Operating System :: OS Independent
218
219
  Classifier: Programming Language :: Python :: 3
219
220
  Classifier: Programming Language :: Python :: 3.11
220
221
  Classifier: Programming Language :: Python :: 3.12
222
+ Classifier: Programming Language :: Python :: 3.13
221
223
  Classifier: Topic :: Software Development
222
224
  Classifier: Topic :: Terminals
225
+ Classifier: Typing :: Typed
223
226
  Requires-Python: >=3.11
224
227
  Requires-Dist: aiosqlite>=0.19.0
225
228
  Requires-Dist: anthropic>=0.18.0
226
- Requires-Dist: gitpython>=3.1.40
227
229
  Requires-Dist: httpx>=0.26.0
228
230
  Requires-Dist: keyring>=24.0.0
229
- Requires-Dist: lancedb>=0.5.0
230
231
  Requires-Dist: mcp>=1.0.0
231
232
  Requires-Dist: networkx>=3.2.0
232
233
  Requires-Dist: numpy>=1.24.0
233
234
  Requires-Dist: openai>=1.10.0
234
- Requires-Dist: opentelemetry-api>=1.22.0
235
- Requires-Dist: opentelemetry-exporter-otlp>=1.22.0
236
- Requires-Dist: opentelemetry-sdk>=1.22.0
237
235
  Requires-Dist: orjson>=3.9.0
238
236
  Requires-Dist: pathspec>=0.12.0
239
237
  Requires-Dist: platformdirs>=4.2.0
240
238
  Requires-Dist: prompt-toolkit>=3.0.0
241
239
  Requires-Dist: psutil>=5.9.0
242
- Requires-Dist: pyarrow>=14.0.0
243
- Requires-Dist: pydantic-settings>=2.1.0
240
+ Requires-Dist: pydantic-settings>=2.14.2
244
241
  Requires-Dist: pydantic>=2.5.0
245
- Requires-Dist: qdrant-client>=1.7.0
246
242
  Requires-Dist: rank-bm25>=0.2.2
247
243
  Requires-Dist: rich>=13.7.0
248
244
  Requires-Dist: structlog>=24.0.0
249
245
  Requires-Dist: tiktoken>=0.5.0
250
246
  Requires-Dist: toml>=0.10.2
251
- Requires-Dist: tree-sitter-go>=0.21.0
252
- Requires-Dist: tree-sitter-python>=0.21.0
253
- Requires-Dist: tree-sitter-rust>=0.21.0
254
- Requires-Dist: tree-sitter-typescript>=0.21.0
255
- Requires-Dist: tree-sitter>=0.21.0
256
247
  Requires-Dist: typer>=0.9.0
257
248
  Provides-Extra: all
249
+ Requires-Dist: docker>=7.0.0; extra == 'all'
258
250
  Requires-Dist: gguf>=0.6.0; extra == 'all'
259
- Requires-Dist: llama-cpp-python>=0.2.0; extra == 'all'
251
+ Requires-Dist: gitpython>=3.1.40; extra == 'all'
252
+ Requires-Dist: lancedb>=0.5.0; extra == 'all'
253
+ Requires-Dist: opentelemetry-api>=1.22.0; extra == 'all'
254
+ Requires-Dist: opentelemetry-exporter-otlp>=1.22.0; extra == 'all'
255
+ Requires-Dist: opentelemetry-sdk>=1.22.0; extra == 'all'
256
+ Requires-Dist: pyarrow>=14.0.0; extra == 'all'
257
+ Requires-Dist: qdrant-client>=1.7.0; extra == 'all'
258
+ Requires-Dist: tree-sitter-go>=0.21.0; extra == 'all'
259
+ Requires-Dist: tree-sitter-python>=0.21.0; extra == 'all'
260
+ Requires-Dist: tree-sitter-rust>=0.21.0; extra == 'all'
261
+ Requires-Dist: tree-sitter-typescript>=0.21.0; extra == 'all'
262
+ Requires-Dist: tree-sitter>=0.21.0; extra == 'all'
260
263
  Provides-Extra: dev
261
- Requires-Dist: black>=23.12.0; extra == 'dev'
264
+ Requires-Dist: bandit[toml]>=1.7.0; extra == 'dev'
262
265
  Requires-Dist: build>=1.0.0; extra == 'dev'
263
- Requires-Dist: coverage>=7.0.0; extra == 'dev'
264
- Requires-Dist: mypy>=1.8.0; extra == 'dev'
265
266
  Requires-Dist: pip-audit>=2.6.0; extra == 'dev'
266
267
  Requires-Dist: pre-commit>=3.6.0; extra == 'dev'
267
268
  Requires-Dist: pyright>=1.1.350; extra == 'dev'
268
269
  Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
269
- Requires-Dist: pytest-benchmark>=4.0.0; extra == 'dev'
270
- Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
271
- Requires-Dist: pytest-mock>=3.12.0; extra == 'dev'
272
- Requires-Dist: pytest-timeout>=2.2.0; extra == 'dev'
273
- Requires-Dist: pytest>=7.4.0; extra == 'dev'
270
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
274
271
  Requires-Dist: ruff>=0.1.0; extra == 'dev'
275
272
  Requires-Dist: twine>=4.0.0; extra == 'dev'
276
- Requires-Dist: types-toml>=0.10.0; extra == 'dev'
273
+ Provides-Extra: docker
274
+ Requires-Dist: docker>=7.0.0; extra == 'docker'
277
275
  Provides-Extra: gguf
278
276
  Requires-Dist: gguf>=0.6.0; extra == 'gguf'
279
- Requires-Dist: llama-cpp-python>=0.2.0; extra == 'gguf'
277
+ Provides-Extra: git
278
+ Requires-Dist: gitpython>=3.1.40; extra == 'git'
279
+ Provides-Extra: parsing
280
+ Requires-Dist: tree-sitter-go>=0.21.0; extra == 'parsing'
281
+ Requires-Dist: tree-sitter-python>=0.21.0; extra == 'parsing'
282
+ Requires-Dist: tree-sitter-rust>=0.21.0; extra == 'parsing'
283
+ Requires-Dist: tree-sitter-typescript>=0.21.0; extra == 'parsing'
284
+ Requires-Dist: tree-sitter>=0.21.0; extra == 'parsing'
285
+ Provides-Extra: rag
286
+ Requires-Dist: lancedb>=0.5.0; extra == 'rag'
287
+ Requires-Dist: pyarrow>=14.0.0; extra == 'rag'
288
+ Requires-Dist: qdrant-client>=1.7.0; extra == 'rag'
289
+ Provides-Extra: telemetry
290
+ Requires-Dist: opentelemetry-api>=1.22.0; extra == 'telemetry'
291
+ Requires-Dist: opentelemetry-exporter-otlp>=1.22.0; extra == 'telemetry'
292
+ Requires-Dist: opentelemetry-sdk>=1.22.0; extra == 'telemetry'
280
293
  Description-Content-Type: text/markdown
281
294
 
282
295
  # Velune
@@ -285,7 +298,7 @@ Description-Content-Type: text/markdown
285
298
  > persistent memory, repository cognition.
286
299
  > No cloud required. No quota. No lock-in.
287
300
 
288
- [![PyPI](https://img.shields.io/pypi/v/velune)](https://pypi.org/project/velune/)
301
+ [![PyPI](https://img.shields.io/pypi/v/velune-cli)](https://pypi.org/project/velune-cli/)
289
302
  [![Python](https://img.shields.io/badge/python-3.11%2B-blue)](https://python.org)
290
303
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-green)](LICENSE)
291
304
  [![CI](https://img.shields.io/github/actions/workflow/status/Surya-Hariharan/Velune-CLI/ci.yml?branch=main&label=CI)](https://github.com/Surya-Hariharan/Velune-CLI/actions/workflows/ci.yml)
@@ -320,7 +333,7 @@ curl -fsSL https://ollama.com/install.sh | sh
320
333
  ollama pull qwen2.5-coder:7b
321
334
 
322
335
  # 3. Install Velune
323
- pip install velune
336
+ pip install velune-cli
324
337
 
325
338
  # 4. Initialize in your project
326
339
  cd your-project
@@ -333,7 +346,7 @@ velune
333
346
  ### Option B — Cloud free tier (Groq, fastest, no GPU needed)
334
347
 
335
348
  ```bash
336
- pip install velune
349
+ pip install velune-cli
337
350
  velune init --provider groq
338
351
  velune setup # enter your free Groq key
339
352
  velune
@@ -341,6 +354,34 @@ velune
341
354
 
342
355
  Get a free Groq key at <https://console.groq.com/keys> — no credit card.
343
356
 
357
+ ### Installing the `velune` command
358
+
359
+ ```bash
360
+ pip install velune-cli
361
+ velune --version
362
+ ```
363
+
364
+ If your shell reports **`velune: command not found`** (or, on Windows,
365
+ *"'velune' is not recognized…"*), the install succeeded but your Python
366
+ scripts directory is not on `PATH`. Two reliable fixes:
367
+
368
+ - **Recommended — install with [pipx](https://pipx.pypa.io/)** (isolated env, auto-managed PATH):
369
+
370
+ ```bash
371
+ pipx install velune-cli
372
+ ```
373
+
374
+ - **Or run it as a module** (always works, no PATH changes needed):
375
+
376
+ ```bash
377
+ python -m velune --version
378
+ python -m velune # start the REPL
379
+ ```
380
+
381
+ On Windows, a plain `pip install` puts the launcher in a per-user
382
+ `…\PythonXX\Scripts` folder; re-running the Python installer with **“Add
383
+ Python to PATH”** checked (or using `pipx`) resolves it permanently.
384
+
344
385
  ---
345
386
 
346
387
  ## Hardware requirements
@@ -374,15 +415,23 @@ Velune features a modern, clean terminal interface designed for productivity:
374
415
 
375
416
  ## Providers
376
417
 
377
- | Provider | Type | Cost | Models | Setup |
378
- |-----------------------|-------|----------------|--------------------------------------|----------------------------------|
379
- | Ollama | Local | Free | Any pulled model | Install Ollama, pull a model |
380
- | Groq | Cloud | Free tier | Llama 3.3 70B, Mixtral, Gemma2 | `velune setup` enter key |
381
- | OpenRouter | Cloud | Pay-per-token | 100+ models | `velune setup` → enter key |
382
- | OpenAI | Cloud | Pay-per-token | GPT-4o, GPT-4o Mini | `velune setup` → enter key |
383
- | Anthropic | Cloud | Pay-per-token | Claude Opus, Sonnet, Haiku | `velune setup` → enter key |
384
- | xAI (Grok) | Cloud | Pay-per-token | Grok 2, Grok 2 Mini | `velune setup` → enter key |
385
- | Google Gemini | Cloud | Free quota | Gemini 2.0 Flash, 1.5 Pro/Flash | `velune setup` → enter key |
418
+ | Provider | Type | Cost | Models | Setup |
419
+ |--------------|-------|---------------|-----------------------------------------------|------------------------------|
420
+ | Ollama | Local | Free | Any pulled model | Install Ollama, pull a model |
421
+ | LM Studio | Local | Free | Any GGUF / MLX model | Launch LM Studio server |
422
+ | Groq | Cloud | Free tier | Llama 3.3 70B, Mixtral, Gemma2 | `velune setup` → enter key |
423
+ | OpenRouter | Cloud | Pay-per-token | 100+ models | `velune setup` → enter key |
424
+ | OpenAI | Cloud | Pay-per-token | GPT-4o, GPT-4o Mini | `velune setup` → enter key |
425
+ | Anthropic | Cloud | Pay-per-token | Claude Opus, Sonnet, Haiku | `velune setup` → enter key |
426
+ | xAI (Grok) | Cloud | Pay-per-token | Grok 2, Grok 2 Mini | `velune setup` → enter key |
427
+ | Google | Cloud | Free quota | Gemini 2.0 Flash, 1.5 Pro/Flash | `velune setup` → enter key |
428
+ | Together AI | Cloud | Pay-per-token | Llama 3.3 70B, Qwen 2.5 Coder, DeepSeek R1 | `velune setup` → enter key |
429
+ | Fireworks AI | Cloud | Pay-per-token | DeepSeek R1, Qwen 2.5 Coder, Mixtral 8x22B | `velune setup` → enter key |
430
+ | Mistral | Cloud | Pay-per-token | Mistral Large, Codestral, Mixtral | `velune setup` → enter key |
431
+ | DeepSeek | Cloud | Pay-per-token | DeepSeek R1, DeepSeek Coder | `velune setup` → enter key |
432
+ | Cohere | Cloud | Pay-per-token | Command R+, Command R | `velune setup` → enter key |
433
+ | NVIDIA NIM | Cloud | Pay-per-token | Llama, Mistral, and other NIM models | `velune setup` → enter key |
434
+ | HuggingFace | Cloud | Free/paid | Open models via Inference API | `velune setup` → enter key |
386
435
 
387
436
  Keys are stored in your OS keyring — never in files, never in git.
388
437
 
@@ -390,40 +439,122 @@ Keys are stored in your OS keyring — never in files, never in git.
390
439
 
391
440
  ## Commands
392
441
 
393
- ### CLI (before the REPL starts)
442
+ ### CLI (terminal, before the REPL)
394
443
 
395
444
  ```bash
396
- velune # Start the persistent REPL session
397
- velune init # Initialize Velune in a project
398
- velune setup # Configure API keys securely (stored in OS keyring)
399
- velune doctor # Check hardware, providers, dependencies
400
- velune models scan # Discover all available local and cloud models
445
+ # Core
446
+ velune # Start the interactive REPL session
447
+ velune chat # Same as above (explicit form)
448
+ velune run "<task>" # Run a task non-interactively and exit
449
+ velune ask "<question>" # Ask a one-shot question and exit
450
+ velune init # Initialize Velune in a project directory
451
+
452
+ # Workspace & sessions
453
+ velune workspace init # Index the current workspace
454
+ velune workspace status # Show index freshness and file counts
455
+ velune workspace graph # Render the workspace dependency graph
456
+ velune workspace list # List all known workspaces
457
+ velune session list # List saved chat sessions
458
+ velune session delete <id> # Delete a saved session
459
+
460
+ # Setup & models
461
+ velune setup # Configure API keys (stored in OS keyring)
462
+ velune models scan # Discover all available local and cloud models
463
+ velune models list # List discovered models
464
+ velune provider list # Show all configured providers and their status
465
+ velune provider add # Add a new provider interactively
466
+ velune config show # Print effective velune.toml settings
467
+ velune config set <k> <v> # Write a setting to velune.toml
468
+
469
+ # Analytics & monitoring
470
+ velune usage # Token usage and estimated cost for recent sessions
471
+ velune quota # Check provider rate-limit and quota status
472
+ velune health # Check provider reachability and response time
473
+
474
+ # Diagnostics
475
+ velune doctor # Run full environment health check
476
+ velune logs # View recent execution event log
477
+ velune logs live # Follow new events as they are written
478
+ velune status # Index freshness and workspace health snapshot
479
+ velune pipeline "<query>" # Trace a retrieval query through the search pipeline
480
+ velune daemon start # Start the background Velune service
481
+ velune daemon stop # Stop the background service
482
+ velune mcp serve # Expose Velune's tool council as an MCP server
483
+ velune mcp connect <url> <name> # Connect to an external MCP server and list tools
484
+ velune memory inspect # Show memory tier sizes and record counts
485
+ velune memory clear # Clear all memory tiers for the current workspace
401
486
  ```
402
487
 
403
488
  ### Inside the REPL
404
489
 
405
490
  ```text
406
- /run <task> Execute a task through the council
407
- /model Switch active model (arrow-key picker)
408
- /models List all available models
409
- /optimus Speed mode — instant tier, smallest model
410
- /godly Max power — full council, largest model
411
- /normal Return to balanced mode
412
- /mode Show current mode settings
413
- /memory Inspect memory tiers
414
- /session save Save current session
415
- /session list List saved sessions
416
- /session resume <id> Resume a session
417
- /usage Token count and cost for this session
418
- /context Context window usage indicator
419
- /diff Show pending file changes
420
- /doctor Run health checks
421
- /help Show all commands
422
- /clear Clear screen and context
491
+ ─── Session ───────────────────────────────────────────────────────────────────
492
+ /help Show all commands and their aliases
423
493
  /exit Exit Velune
494
+ /clear Clear the terminal screen (context is preserved)
495
+ /new [title] Start a new conversation (project memory persists)
496
+ /project [name|path] Switch or manage project workspaces
497
+
498
+ ─── Council / Execution ───────────────────────────────────────────────────────
499
+ /run <task> Execute a task through the Reasoning Council
500
+ /run --bg <task> Submit task to background — prompt returns immediately
501
+ /council <task> Force full council tier regardless of task complexity
502
+ /jobs List all background jobs (ID, status, phase, elapsed)
503
+ /jobs cancel <id> Cancel a running background job
504
+ /dashboard Live progress dashboard (jobs + alerts + provider health)
505
+
506
+ ─── Models ────────────────────────────────────────────────────────────────────
507
+ /model [model-id] Switch active model (arrow-key picker if no arg)
508
+ /models List all available models
509
+ /pull [model-id] Download an Ollama model with live progress
510
+ /delete <model-id> Delete a locally installed Ollama model
511
+ /councilmodel Assign specific models to Planner / Coder / Reviewer roles
512
+ /bench [run] View or run empirical model capability benchmarks
513
+
514
+ ─── Session Modes ─────────────────────────────────────────────────────────────
515
+ /optimus Speed mode — instant tier, smallest model, 4k context
516
+ /godly Max power — full council, largest model, 128k context
517
+ /normal Return to balanced mode (auto-tier, 16k context)
518
+ /mode Show current mode settings and active council tier
519
+
520
+ ─── Memory & Context ──────────────────────────────────────────────────────────
521
+ /memory [clear|stats] Inspect or clear memory tiers
522
+ /session Interactive session picker (list / resume / save / export)
523
+ /context Show context window usage for the current conversation
524
+ /graph Render a tree of knowledge graph entities
525
+
526
+ ─── Diffs & Editing ───────────────────────────────────────────────────────────
527
+ /diff Show uncommitted file changes from the last council run
528
+ /undo Revert the last Velune-generated git commit (keeps changes staged)
529
+ /hunk Toggle hunk-by-hunk review mode for edits
530
+ /approve [safe|ask|block] Set tool/command approval gate
531
+
532
+ ─── Git Integration ───────────────────────────────────────────────────────────
533
+ /push [--force] Push current branch to remote origin
534
+ /pr <title> Create a pull request / merge request on GitHub or GitLab
535
+ /issue <number> Fetch a GitHub/GitLab issue and inject it as context
536
+ /sandbox [docker|status] Show or switch sandbox type (subprocess or Docker)
537
+
538
+ ─── Code Intelligence ─────────────────────────────────────────────────────────
539
+ /lint [file] Lint a Python file and display diagnostic output
540
+ /refactor <file> Detect code smells and suggest refactoring targets
541
+ /typify <file> Suggest type hints for unannotated functions
542
+
543
+ ─── MCP & Plugins ─────────────────────────────────────────────────────────────
544
+ /mcp [servers|tools|resources|connect|disconnect] Inspect MCP servers and tools
545
+ /plugin [list|enable|disable|reload|show] Manage declarative plugins
546
+
547
+ ─── Diagnostics ───────────────────────────────────────────────────────────────
548
+ /doctor Run environment health checks
549
+ /config Show current configuration settings
550
+ /stats Session statistics: tokens, cost, turns, uptime
551
+ /history Show REPL command execution history
552
+ /hooks List active lifecycle hooks and their configuration
424
553
  ```
425
554
 
426
- Tab-completion is active for all `/` commands and for model IDs (type `/model` then space to trigger).
555
+ Tab-completion is active for all `/` commands and for model IDs (type `/model` then Space to trigger).
556
+
557
+ The status bar shows `⚙ N bg` for active background jobs and `⚠ N` for unread proactive alerts. Alerts drain automatically after each prompt and are printed as Rich panels above the input line.
427
558
 
428
559
  ---
429
560
 
@@ -432,17 +563,35 @@ Tab-completion is active for all `/` commands and for model IDs (type `/model` t
432
563
  ```text
433
564
  velune/
434
565
  ├── cli/ REPL, slash commands, banner, autocomplete, session manager
435
- ├── providers/ Ollama, Groq, OpenAI, Anthropic, xAI, Google, OpenRouter
436
- ├── cognition/ Council: Planner + Coder + Reviewer + Challenger + Synthesizer
566
+ ├── commands/ Typer subcommands (workspace, session, models, doctor, mcp, …)
567
+ ├── display/ Live dashboards and council pipeline view
568
+ │ └── rendering/ Rich error panels and markdown streaming
569
+ ├── providers/ 15 provider adapters (Ollama, Groq, OpenAI, Anthropic, Mistral, …)
570
+ │ ├── adapters/ Per-provider inference + streaming implementations
571
+ │ └── discovery/ Model catalog discovery for each provider
572
+ ├── cognition/ Council: Planner → Coder → Reviewer → Challenger → Synthesizer
573
+ │ └── council/ DebateSession, CouncilRunner, per-role agents, tier classifier
437
574
  ├── memory/ 5-tier: working → episodic → semantic → graph → lineage
438
- ├── repository/ AST indexing, dependency graph, .veluneignore
439
- ├── execution/ Sandbox, diff preview, rollback, cancellation
575
+ ├── proactive/ Alert store + watcher (CognitiveBus event subscriptions)
576
+ ├── repository/ AST indexing, import graph, blast-radius estimator, .veluneignore
577
+ ├── retrieval/ Hybrid retrieval: BM25 + vector + graph, cross-encoder reranker
578
+ ├── execution/ Managed execution (allowlist + limits), diff preview, rollback
579
+ │ └── edit_formats/ Diff format parsers (unified, search-replace, XML, JSON)
580
+ ├── analysis/ Code intelligence: linting, code-smell detection, type inference
581
+ ├── integrations/ GitHub and GitLab REST clients (push, PR, issues)
582
+ ├── hooks/ Lifecycle hook dispatcher and executor (pre/post tool events)
583
+ ├── observability/ Context reports, execution trace log, workspace dependency graph
584
+ ├── mcp/ MCP server + client; stdio / SSE / HTTP / WebSocket transports
440
585
  ├── hardware/ Hardware detection, tier classification, GPU probe
441
586
  ├── telemetry/ Token tracking, cost estimation, latency profiling
442
587
  ├── models/ Model registry, capability scoring, specializations
443
- ├── context/ Context window tracking, extractive compression
588
+ ├── context/ Context window tracking, token counting, extractive compression
589
+ ├── orchestration/ ContextOrchestrationEngine — wires intent → council → output
590
+ ├── core/ Loop detector, retry policy, task/job registry, error types
444
591
  ├── kernel/ Bootstrap, lifecycle coordinator, service container
445
- └── plugins/ Plugin loader & hook registry (experimental; unsandboxed, off by default)
592
+ ├── daemon/ Background Velune service (server + IPC transport)
593
+ ├── tools/ File-system, git, web-fetch, and terminal tool implementations
594
+ └── plugins/ Declarative plugin loader, SKILL.md injection, hook wiring
446
595
  ```
447
596
 
448
597
  ---
@@ -453,7 +602,7 @@ Velune maintains five memory tiers across sessions:
453
602
 
454
603
  1. **Working** — current conversation turns (in-process, TTL-evicted)
455
604
  2. **Episodic** — session history (SQLite, persisted to `~/.velune/`)
456
- 3. **Semantic** — vector search over past interactions (local Qdrant)
605
+ 3. **Semantic** — vector search over past interactions (local LanceDB and Qdrant)
457
606
  4. **Graph** — repository structure and symbol relationships
458
607
  5. **Lineage** — decision history, what was tried and why
459
608
 
@@ -477,19 +626,66 @@ Switch modes at any time mid-session. The prompt badge updates immediately.
477
626
 
478
627
  ## MCP integration
479
628
 
480
- Velune exposes an MCP server so that Claude Desktop and VS Code can call
481
- Velune's local model council as a tool — giving cloud-based editors access
482
- to local hardware without sending your code to a third party.
629
+ Velune works as both an MCP **server** and an MCP **client**:
630
+
631
+ - **Server** (`velune mcp serve`) exposes Velune's local tool council over
632
+ stdio so Claude Desktop, VS Code, and other MCP-capable editors can call
633
+ Velune's models without sending your code to a third party.
634
+ - **Client** (`velune mcp connect <url> <name>`) — connects to any external MCP
635
+ server, lists its tools, and makes them available inside the REPL via `/mcp`.
636
+ - **Transports** — stdio, SSE, HTTP, and WebSocket (`ws://` / `wss://`) are all
637
+ supported. Servers can also be declared in `.mcp.json` and loaded automatically.
483
638
 
484
- See [`docs/mcp.md`](docs/mcp.md) for configuration examples and the full tool reference.
639
+ Outbound connections to external MCP servers are trust-gated see
640
+ [MCP trust gating](docs/SECURITY.md#mcp-trust-gating) in the security policy.
485
641
 
486
642
  ---
487
643
 
488
644
  ## Windows
489
645
 
490
- Velune runs on Windows via WSL2. Native Windows support is planned.
646
+ Velune runs natively on Windows (supporting native command execution sandboxing, local Ollama integration, and keyring credentials). It can also run via WSL2 if preferred.
647
+
648
+ ---
649
+
650
+ ## Project docs
651
+
652
+ | Doc | What's inside |
653
+ | --- | --- |
654
+ | [docs/SECURITY.md](docs/SECURITY.md) | Security posture, trust boundaries, reporting |
655
+ | [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) | Dev setup and contribution workflow |
656
+ | [docs/CHANGELOG.md](docs/CHANGELOG.md) | Full version history |
657
+
658
+ ---
659
+
660
+ ## Optional extras
661
+
662
+ The default install is intentionally lean and pure-python-friendly so it
663
+ resolves fast and cleanly on every platform. Heavy or feature-specific
664
+ dependencies live in extras — every feature that needs one **degrades
665
+ gracefully** when it is absent (e.g. semantic search becomes a no-op, but
666
+ lexical search and chat keep working).
667
+
668
+ | Extra | Installs | Enables |
669
+ | --- | --- | --- |
670
+ | `[rag]` | `lancedb`, `pyarrow`, `qdrant-client` | Semantic memory + vector retrieval (large compiled wheels) |
671
+ | `[parsing]` | `tree-sitter` + grammars | Tree-sitter source parsing for deep repository cognition |
672
+ | `[telemetry]` | `opentelemetry-*` | Export spans/metrics to an OTLP collector |
673
+ | `[git]` | `gitpython` | Git provider tools (push / PR / issue) and richer git context |
674
+ | `[gguf]` | `gguf` | GGUF file metadata reading — safe, no transitive risk |
675
+ | `[docker]` | `docker` | Docker sandbox for isolated code execution |
676
+ | `[all]` | everything above | Full-featured install |
677
+ | `[dev]` | Test/lint tools | For contributors |
678
+
679
+ ```bash
680
+ pip install velune-cli # lean base (Ollama, cloud providers, chat, lexical search)
681
+ pip install 'velune-cli[rag]' # + semantic memory & vector retrieval
682
+ pip install 'velune-cli[all]' # + every optional feature
683
+ ```
491
684
 
492
- See [WINDOWS.md](WINDOWS.md) for the complete WSL2 setup guide.
685
+ > The former `[llamacpp]` extra has been **permanently removed**:
686
+ > `llama-cpp-python` pulls in `diskcache ≤ 5.6.3` (unsafe pickle
687
+ > deserialization, no patched version). Install `llama-cpp-python` manually,
688
+ > in a trusted single-user environment only, if you accept that risk.
493
689
 
494
690
  ---
495
691
 
@@ -506,8 +702,8 @@ pytest tests/ -q
506
702
  ```
507
703
 
508
704
  Report security issues via
509
- [GitHub Security Advisories](https://github.com/Surya-Hariharan/Velune-CLI/security/advisories/new)
510
- not public issues.
705
+ [GitHub Security Advisories](https://github.com/Surya-Hariharan/Velune-CLI/security/advisories/new)
706
+ not public issues.
511
707
 
512
708
  ---
513
709