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.
- velune_cli-0.9.2/.gitignore +112 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/PKG-INFO +273 -77
- velune_cli-0.9.2/README.md +420 -0
- velune_cli-0.9.2/docs/CHANGELOG.md +608 -0
- velune_cli-0.9.2/pyproject.toml +247 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/__init__.py +1 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/__main__.py +2 -2
- velune_cli-0.9.2/velune/analysis/__init__.py +1 -0
- velune_cli-0.9.2/velune/analysis/linter.py +207 -0
- velune_cli-0.9.2/velune/analysis/refactor.py +231 -0
- velune_cli-0.9.2/velune/analysis/symbol_search.py +59 -0
- velune_cli-0.9.2/velune/analysis/type_inferrer.py +241 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/app.py +51 -9
- velune_cli-0.9.2/velune/cli/autocomplete.py +260 -0
- velune_cli-0.9.2/velune/cli/banner.py +102 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/__init__.py +24 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/ask.py +1 -1
- velune_cli-0.9.2/velune/cli/commands/chat.py +542 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/config.py +1 -1
- velune_cli-0.9.2/velune/cli/commands/context.py +188 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/daemon.py +1 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/doctor.py +170 -30
- velune_cli-0.9.2/velune/cli/commands/file_commands.py +213 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/mcp.py +11 -2
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/memory.py +3 -3
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/models.py +1 -1
- velune_cli-0.9.2/velune/cli/commands/providers.py +535 -0
- velune_cli-0.9.2/velune/cli/commands/retrieval.py +163 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/run.py +1 -1
- velune_cli-0.9.2/velune/cli/commands/session.py +128 -0
- velune_cli-0.9.2/velune/cli/commands/setup.py +316 -0
- velune_cli-0.9.2/velune/cli/commands/trace.py +218 -0
- velune_cli-0.9.2/velune/cli/commands/usage.py +482 -0
- velune_cli-0.9.2/velune/cli/commands/workspace.py +884 -0
- velune_cli-0.9.2/velune/cli/design.py +87 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/council_view.py +81 -46
- velune_cli-0.9.2/velune/cli/display/dashboard.py +209 -0
- velune_cli-0.9.2/velune/cli/display/pipeline.py +116 -0
- velune_cli-0.9.2/velune/cli/display/themes.py +29 -0
- velune_cli-0.9.2/velune/cli/interrupts.py +141 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/model_selector.py +24 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/modes.py +25 -3
- velune_cli-0.9.2/velune/cli/picker.py +131 -0
- velune_cli-0.9.2/velune/cli/registry.py +174 -0
- velune_cli-0.9.2/velune/cli/rendering/__init__.py +5 -0
- velune_cli-0.9.2/velune/cli/rendering/markdown.py +127 -0
- velune_cli-0.9.2/velune/cli/repl.py +3687 -0
- velune_cli-0.9.2/velune/cli/session_manager.py +42 -0
- velune_cli-0.9.2/velune/cli/sessions.py +224 -0
- velune_cli-0.9.2/velune/cli/slash_dispatcher.py +465 -0
- velune_cli-0.9.2/velune/cli/statusbar.py +164 -0
- velune_cli-0.9.2/velune/cli/stream_renderer.py +130 -0
- velune_cli-0.9.2/velune/cli/theme.py +16 -0
- velune_cli-0.9.2/velune/cli/validators.py +79 -0
- velune_cli-0.9.2/velune/cli/workspaces.py +218 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/__init__.py +1 -4
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/coder.py +33 -57
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/base.py +36 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/coder.py +11 -4
- velune_cli-0.9.2/velune/cognition/council/debate.py +151 -0
- velune_cli-0.9.2/velune/cognition/council_runner.py +222 -0
- velune_cli-0.9.2/velune/cognition/intent.py +231 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/module.py +5 -2
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/orchestrator.py +236 -50
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/__init__.py +1 -4
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/assembler.py +79 -9
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/extractive.py +1 -6
- velune_cli-0.9.2/velune/context/mentions.py +206 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/prompt_adaptation.py +1 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/token_counter.py +29 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/utilization.py +1 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/logging.py +9 -2
- velune_cli-0.9.2/velune/core/loop_detector.py +100 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/paths.py +4 -1
- velune_cli-0.9.2/velune/core/redaction.py +98 -0
- velune_cli-0.9.2/velune/core/retry.py +134 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/task_registry.py +118 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/daemon/server.py +3 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/daemon/transport.py +3 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/events.py +2 -3
- velune_cli-0.9.2/velune/execution/command_spec.py +309 -0
- velune_cli-0.9.2/velune/execution/docker_sandbox.py +293 -0
- velune_cli-0.9.2/velune/execution/edit_formats/__init__.py +19 -0
- velune_cli-0.9.2/velune/execution/edit_formats/applier.py +66 -0
- velune_cli-0.9.2/velune/execution/edit_formats/base.py +49 -0
- velune_cli-0.9.2/velune/execution/edit_formats/registry.py +83 -0
- velune_cli-0.9.2/velune/execution/edit_formats/search_replace.py +191 -0
- velune_cli-0.9.2/velune/execution/edit_formats/udiff.py +137 -0
- velune_cli-0.9.2/velune/execution/edit_formats/whole_file.py +113 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/executor.py +44 -6
- velune_cli-0.9.2/velune/execution/hunk_review.py +166 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/path_guard.py +19 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/sandbox.py +111 -6
- velune_cli-0.9.2/velune/hardware/profiles.py +109 -0
- velune_cli-0.9.2/velune/hooks/__init__.py +41 -0
- velune_cli-0.9.2/velune/hooks/config.py +260 -0
- velune_cli-0.9.2/velune/hooks/dispatcher.py +320 -0
- velune_cli-0.9.2/velune/hooks/executor.py +251 -0
- velune_cli-0.9.2/velune/hooks/matcher.py +112 -0
- velune_cli-0.9.2/velune/hooks/types.py +144 -0
- velune_cli-0.9.2/velune/integrations/__init__.py +56 -0
- velune_cli-0.9.2/velune/integrations/base.py +149 -0
- velune_cli-0.9.2/velune/integrations/github.py +206 -0
- velune_cli-0.9.2/velune/integrations/gitlab.py +199 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/bootstrap.py +12 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/config.py +10 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/entrypoint.py +53 -3
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/modules.py +2 -0
- velune_cli-0.9.2/velune/main.py +54 -0
- velune_cli-0.9.2/velune/mcp/__init__.py +55 -0
- velune_cli-0.9.2/velune/mcp/client.py +184 -0
- velune_cli-0.9.2/velune/mcp/registry.py +399 -0
- velune_cli-0.9.2/velune/mcp/security.py +109 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/mcp/server.py +34 -3
- velune_cli-0.9.2/velune/mcp/transports/__init__.py +37 -0
- velune_cli-0.9.2/velune/mcp/transports/base.py +155 -0
- velune_cli-0.9.2/velune/mcp/transports/factory.py +72 -0
- velune_cli-0.9.2/velune/mcp/transports/http.py +198 -0
- velune_cli-0.9.2/velune/mcp/transports/sse.py +171 -0
- velune_cli-0.9.2/velune/mcp/transports/stdio.py +188 -0
- velune_cli-0.9.2/velune/mcp/transports/websocket.py +306 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/embedding_pipeline.py +1 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/lifecycle.py +51 -6
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/registry.py +12 -6
- velune_cli-0.9.2/velune/observability/__init__.py +17 -0
- velune_cli-0.9.2/velune/observability/context_report.py +335 -0
- velune_cli-0.9.2/velune/observability/format.py +42 -0
- velune_cli-0.9.2/velune/observability/module.py +59 -0
- velune_cli-0.9.2/velune/observability/retrieval_report.py +201 -0
- velune_cli-0.9.2/velune/observability/trace_log.py +191 -0
- velune_cli-0.9.2/velune/observability/trace_sink.py +95 -0
- velune_cli-0.9.2/velune/observability/workspace_graph.py +312 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/engine.py +78 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/schemas.py +4 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/plugins/__init__.py +2 -2
- velune_cli-0.9.2/velune/plugins/declarative/__init__.py +36 -0
- velune_cli-0.9.2/velune/plugins/declarative/agent.py +122 -0
- velune_cli-0.9.2/velune/plugins/declarative/command.py +213 -0
- velune_cli-0.9.2/velune/plugins/declarative/manifest.py +145 -0
- velune_cli-0.9.2/velune/plugins/declarative/scanner.py +146 -0
- velune_cli-0.9.2/velune/plugins/declarative/skill.py +177 -0
- velune_cli-0.9.2/velune/plugins/hooks.py +166 -0
- velune_cli-0.9.2/velune/plugins/loader.py +161 -0
- velune_cli-0.9.2/velune/plugins/manager.py +240 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/plugins/registry.py +32 -6
- velune_cli-0.9.2/velune/plugins/runner.py +55 -0
- velune_cli-0.9.2/velune/plugins/sandbox.py +128 -0
- velune_cli-0.9.2/velune/proactive/__init__.py +1 -0
- velune_cli-0.9.2/velune/proactive/alerts.py +68 -0
- velune_cli-0.9.2/velune/proactive/watcher.py +176 -0
- velune_cli-0.9.2/velune/providers/adapters/cohere.py +238 -0
- velune_cli-0.9.2/velune/providers/adapters/deepseek.py +185 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/llamacpp.py +7 -1
- velune_cli-0.9.2/velune/providers/adapters/mistral.py +214 -0
- velune_cli-0.9.2/velune/providers/adapters/nvidia.py +202 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/health_monitor.py +4 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/keystore.py +4 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/local_resolver.py +1 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/ollama_manager.py +4 -1
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/registry.py +22 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/router.py +51 -0
- velune_cli-0.9.2/velune/providers/validation.py +711 -0
- velune_cli-0.9.2/velune/repository/analyzer.py +401 -0
- velune_cli-0.9.2/velune/repository/api_mapper.py +825 -0
- velune_cli-0.9.2/velune/repository/architecture_detector.py +364 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/cognition.py +191 -13
- velune_cli-0.9.2/velune/repository/commit_message.py +69 -0
- velune_cli-0.9.2/velune/repository/config_intelligence.py +312 -0
- velune_cli-0.9.2/velune/repository/context_builder.py +301 -0
- velune_cli-0.9.2/velune/repository/git_context.py +188 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/grapher.py +67 -37
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/incremental_indexer.py +82 -29
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/indexer.py +12 -2
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/parser.py +0 -8
- velune_cli-0.9.2/velune/repository/scanner.py +340 -0
- velune_cli-0.9.2/velune/repository/technology_detector.py +370 -0
- velune_cli-0.9.2/velune/repository/watcher.py +119 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/hybrid.py +50 -3
- velune_cli-0.9.2/velune/retrieval/module.py +59 -0
- velune_cli-0.9.2/velune/retrieval/reranker.py +163 -0
- velune_cli-0.9.2/velune/telemetry/usage_tracker.py +623 -0
- velune_cli-0.9.2/velune/tools/base/tool.py +140 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/code/navigate.py +2 -2
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/code/search.py +2 -2
- velune_cli-0.9.2/velune/tools/filesystem/ignore.py +200 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/filesystem/read.py +7 -7
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/filesystem/search.py +6 -2
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/filesystem/write.py +4 -7
- velune_cli-0.9.2/velune/tools/git/providers.py +428 -0
- velune_cli-0.9.2/velune/tools/safety.py +236 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/terminal/execute.py +35 -4
- velune_cli-0.9.0/.gitignore +0 -98
- velune_cli-0.9.0/CHANGELOG.md +0 -260
- velune_cli-0.9.0/README.md +0 -237
- velune_cli-0.9.0/pyproject.toml +0 -291
- velune_cli-0.9.0/velune/cli/autocomplete.py +0 -80
- velune_cli-0.9.0/velune/cli/banner.py +0 -60
- velune_cli-0.9.0/velune/cli/commands/chat.py +0 -228
- velune_cli-0.9.0/velune/cli/commands/setup.py +0 -184
- velune_cli-0.9.0/velune/cli/commands/workspace.py +0 -249
- velune_cli-0.9.0/velune/cli/display/themes.py +0 -25
- velune_cli-0.9.0/velune/cli/registry.py +0 -80
- velune_cli-0.9.0/velune/cli/rendering/__init__.py +0 -5
- velune_cli-0.9.0/velune/cli/rendering/markdown.py +0 -63
- velune_cli-0.9.0/velune/cli/repl.py +0 -1855
- velune_cli-0.9.0/velune/cli/session_manager.py +0 -71
- velune_cli-0.9.0/velune/cli/theme.py +0 -8
- velune_cli-0.9.0/velune/cognition/council/debate.py +0 -46
- velune_cli-0.9.0/velune/cognition/council_orchestrator.py +0 -282
- velune_cli-0.9.0/velune/context/window.py +0 -63
- velune_cli-0.9.0/velune/execution/command_spec.py +0 -165
- velune_cli-0.9.0/velune/main.py +0 -9
- velune_cli-0.9.0/velune/mcp/__init__.py +0 -9
- velune_cli-0.9.0/velune/mcp/client.py +0 -115
- velune_cli-0.9.0/velune/plugins/hooks.py +0 -50
- velune_cli-0.9.0/velune/plugins/loader.py +0 -161
- velune_cli-0.9.0/velune/plugins/schemas.py +0 -21
- velune_cli-0.9.0/velune/repository/analyzer.py +0 -127
- velune_cli-0.9.0/velune/repository/scanner.py +0 -193
- velune_cli-0.9.0/velune/retrieval/module.py +0 -26
- velune_cli-0.9.0/velune/retrieval/reranker.py +0 -102
- velune_cli-0.9.0/velune/telemetry/usage_tracker.py +0 -340
- velune_cli-0.9.0/velune/tools/base/tool.py +0 -63
- {velune_cli-0.9.0 → velune_cli-0.9.2}/LICENSE +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/base.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/init.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/commands/preflight.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/context.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/councilmodel_ui.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/memory_view.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/panels.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/display/progress.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/main.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/pull_ui.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/rendering/error_panel.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cli/slash_commands.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/planner.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/agents/reviewer.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/arbitrator.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/architecture.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/budget.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/challenger.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/critic_agent.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/critic_configs.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/critics.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/factory.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/messages.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/planner.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/reviewer.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/synthesizer.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/council/tiers.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/firewall.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/personality.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/state.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/style_resolver.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/cognition/verification.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/budget.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/context/sections.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/background.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/config/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/catalog.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/execution.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/memory.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/orchestration.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/errors/provider.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/event_loop.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/runtime.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/startup_profiler.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/trace.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/agent.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/context.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/inference.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/memory.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/model.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/provider.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/repository.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/task.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/core/types/workspace.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/daemon/client.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/benchmarker.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/cancellation.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/checkpointer.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/diff_preview.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/multi_diff.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/planner.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/rollback.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/execution/validator.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/hardware/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/hardware/detector.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/health.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/lifecycle.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/registry.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/kernel/schemas.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/mcp/config.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/compaction.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/prioritizer.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/episodic_schema.sql +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/lancedb_store.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/sqlite_manager.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/storage/sqlite_pool.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/episodic.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/graph.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/lineage.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/semantic.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/tiers/working.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/memory/vitality.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/family.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/probes.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/profile_cache.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/profiler.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/scorer.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/models/specializations.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/orchestration/role_assignments.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/anthropic.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/fireworks.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/google.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/groq.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/huggingface.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/lmstudio.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/ollama.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/openai.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/openrouter.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/together.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/adapters/xai.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/base.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/benchmarker.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/anthropic.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/benchmarks.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/classifier.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/fireworks.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/gguf.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/google.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/gpu.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/groq.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/huggingface.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/lmstudio.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/ollama.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/openai.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/openrouter.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/scanner.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/together.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/discovery/xai.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/health.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/local_paths.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/providers/task_classifier.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/py.typed +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/ast_parser.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/blast_radius.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/boundary_classifier.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/import_graph.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/index_state.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/project_type.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/rename_journal.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/schemas.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/symbol_registry.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/repository/tracker.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/cache.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/fast_path.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/graph.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/keyword.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/pipeline.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/schemas.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/slow_path.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/retrieval/vector.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/cognition.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/cost_estimator.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/debug.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/doctor.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/logging.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/spans.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/telemetry/token_tracker.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/__init__.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/base/registry.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/git/history.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/git/operations.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/git/state.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/module.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/terminal/history.py +0 -0
- {velune_cli-0.9.0 → velune_cli-0.9.2}/velune/tools/web/fetch.py +0 -0
- {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.
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
[](https://pypi.org/project/velune/)
|
|
301
|
+
[](https://pypi.org/project/velune-cli/)
|
|
289
302
|
[](https://python.org)
|
|
290
303
|
[](LICENSE)
|
|
291
304
|
[](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
|
|
378
|
-
|
|
379
|
-
| Ollama
|
|
380
|
-
|
|
|
381
|
-
|
|
|
382
|
-
|
|
|
383
|
-
|
|
|
384
|
-
|
|
|
385
|
-
|
|
|
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
|
|
442
|
+
### CLI (terminal, before the REPL)
|
|
394
443
|
|
|
395
444
|
```bash
|
|
396
|
-
|
|
397
|
-
velune
|
|
398
|
-
velune
|
|
399
|
-
velune
|
|
400
|
-
velune
|
|
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
|
-
|
|
407
|
-
/
|
|
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
|
|
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
|
-
├──
|
|
436
|
-
├──
|
|
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
|
-
├──
|
|
439
|
-
├──
|
|
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
|
-
|
|
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
|
|
481
|
-
|
|
482
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|