- Added
- /resume command to choose which session to resume
- Web search and web fetch tools for retrieving and searching
web content
- MCP sampling support: MCP servers can request LLM
completions via the sampling protocol
- MCP server discovery cache (MCPRegistry): survives agent
switches without re-discovering unchanged servers
- Chat mode for ACP (session/set_config_options with
mode=chat)
- ACP session/set_config_options support for switching mode
and model
- Tool call streaming: tool call arguments are now streamed
incrementally in the UI
- Notification indicator in CLI: terminal bell and window
title change on action required or completion
- Subagent traces saved in agents/ subfolder of parent
session directory
- IDE detection in new_session telemetry
- Discover agents, tools, and skills in subfolders of trusted
directories (monorepo support)
- E2E test infrastructure for CLI TUI
- Changed
- System prompts rewritten for improved model behavior
(3-phase Orient/Plan/Execute workflow, brevity rules)
- Tool call display refactored with
ToolCallDisplay/ToolResultDisplay models and per-tool UI
customization
- Middleware pipeline replaces observer pattern for system
message injections
- Improved permission handling for write_file, read_file,
search_replace (allowlist/denylist globs, out-of-cwd
detection)
- Proxy setup UI updated with guided bottom-panel wizard
- Smoother color transitions in CLI loader animation
- Dead tool state classes removed (Grep, ReadFile, WriteFile
state)
- Fixed
- Agent switch (Shift+Tab) no longer freezes the UI (moved to
thread worker)
- Empty assistant messages are no longer displayed
- Tool results returned to LLM in correct order matching tool
calls
- Auto-scroll suspended when user has scrolled up; resumes at
bottom
- Retry and timeout handling in Mistral backend (backoff
strategy, configurable timeout)
- Update to 2.3.0:
- Added
- Multiple clipboard copy strategies: OSC52 first, then
pyperclip fallback when system clipboard is available (e.g.
local GUI, SSH without OSC52)
- Ctrl+Z to put Vibe in background
- Changed
- Improve performance around streaming and scrolling
- File watcher is now opt-out by default; opt-in via config
- Bump Textual version in dependencies
- Inline code styling: yellow bold with transparent
background for better readability
- Fixed
- Banner: sync skills count after initial app mount (fixes
wrong count in some cases)
- Collapsed tool results: strip newlines in truncation to
remove extra blank line
- Context token widget: preserve stats listeners across
/clear so token percentage updates correctly
- Vertex AI: cache credentials to avoid blocking the event
loop on every LLM request
- Bash tool: remove NO_COLOR from subprocess env to fix
snapshot tests and colored output
- Update to 2.3.0:
- Added
- Google Vertex AI support
- Telemetry: user interaction and tool usage events sent to
datalake (configurable via enable_telemetry)
- Skill discovery from .agents/skills/ (Agent Skills
standard) in addition to .vibe/skills/
- ACP: session/load and session/list for loading and listing
sessions
- New model behavior prompts (CLI and explore)
- Proxy Wizard (PoC) for CLI and for ACP
- Proxy setup documentation
- Documentation for JetBrains ACP registry
- Changed
- Trusted folders: presence of .agents is now considered
trustable content
- Logging handling updated
- Pin cryptography to >=44.0.0,<=46.0.3; uv sync for
cryptography
- Fixed
- Auto scroll when switching to input
- MCP stdio: redirect stderr to logger to avoid unwanted
console output
- Align pyproject.toml minimum versions with uv.lock for pip
installs
- Middleware injection: use standalone user messages instead
of mutating flushed messages
- Revert cryptography 46.0.5 bump for compatibility
- Pin banner version in UI snapshot tests for stability
OBS-URL: https://build.opensuse.org/package/show/science:machinelearning:mcp/python-mistral-vibe?expand=0&rev=5
131 lines
4.9 KiB
RPMSpec
131 lines
4.9 KiB
RPMSpec
#
|
|
# spec file for package python-mistral-vibe
|
|
#
|
|
# Copyright (c) 2025 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
%define skip_python311 1
|
|
Name: python-mistral-vibe
|
|
Version: 2.3.0
|
|
Release: 0
|
|
Summary: Minimal CLI coding agent by Mistral
|
|
License: Apache-2.0
|
|
URL: https://github.com/mistralai/mistral-vibe
|
|
Source0: https://files.pythonhosted.org/packages/source/m/mistral_vibe/mistral_vibe-%{version}.tar.gz
|
|
BuildRequires: python-rpm-macros
|
|
BuildRequires: %{python_module base >= 3.12}
|
|
BuildRequires: %{python_module editables}
|
|
BuildRequires: %{python_module hatch-vcs}
|
|
BuildRequires: %{python_module hatchling}
|
|
BuildRequires: %{python_module pip}
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module agent-client-protocol >= 0.8.1}
|
|
BuildRequires: %{python_module anyio >= 4.12.0}
|
|
# BuildRequires: %%{python_module cachetools >= 5.5.0}
|
|
BuildRequires: %{python_module httpx >= 0.28.1}
|
|
BuildRequires: %{python_module jinja2}
|
|
BuildRequires: %{python_module jsonschema}
|
|
BuildRequires: %{python_module syrupy}
|
|
BuildRequires: %{python_module tree-sitter}
|
|
BuildRequires: %{python_module tree-sitter-bash}
|
|
BuildRequires: %{python_module mcp >= 1.14.0}
|
|
BuildRequires: %{python_module mistralai >= 1.9.11}
|
|
BuildRequires: %{python_module packaging >= 24.1}
|
|
BuildRequires: %{python_module pexpect >= 4.9.0}
|
|
BuildRequires: %{python_module pydantic-settings >= 2.12.0}
|
|
BuildRequires: %{python_module pydantic >= 2.12.4}
|
|
BuildRequires: %{python_module pyperclip >= 1.11.0}
|
|
BuildRequires: %{python_module pytest-asyncio >= 1.2.0}
|
|
BuildRequires: %{python_module pytest-textual-snapshot >= 1.1.0}
|
|
BuildRequires: %{python_module pytest-timeout >= 2.4.0}
|
|
BuildRequires: %{python_module pytest-xdist >= 3.8.0}
|
|
BuildRequires: %{python_module python-dotenv >= 1.0.0}
|
|
BuildRequires: %{python_module PyYAML >= 6.0.0}
|
|
BuildRequires: %{python_module respx >= 0.22.0}
|
|
BuildRequires: %{python_module rich >= 14.0.0}
|
|
BuildRequires: %{python_module tomli-w >= 1.2.0}
|
|
BuildRequires: %{python_module textual >= 6.3.0}
|
|
BuildRequires: %{python_module textual-speedups >= 0.2.1}
|
|
BuildRequires: %{python_module tomli-w >= 1.2.0}
|
|
BuildRequires: %{python_module watchfiles >= 1.1.1}
|
|
# /SECTION
|
|
BuildRequires: fdupes
|
|
Requires: python-agent-client-protocol >= 0.8.1
|
|
Requires: python-aiofiles >= 24.1.0
|
|
Requires: python-cachetools >= 5.5.0
|
|
Requires: python-GitPython >= 3.1.46
|
|
Requires: python-giturlparse >= 0.14.0
|
|
Requires: python-google-auth >= 2.0.0
|
|
Requires: python-httpx >= 0.28.1
|
|
Requires: python-mcp >= 1.14.0
|
|
Requires: python-mistralai >= 1.12.4
|
|
Requires: python-packaging >= 24.1
|
|
Requires: python-pexpect >= 4.9.0
|
|
Requires: python-pydantic >= 2.12.4
|
|
Requires: python-pydantic-settings >= 2.12.0
|
|
Requires: python-pyperclip >= 1.11.0
|
|
Requires: python-pytest-xdist >= 3.8.0
|
|
Requires: python-python-dotenv >= 1.0.0
|
|
Requires: python-requests >= 2.20.0
|
|
Requires: python-PyYAML >= 6.0.0
|
|
Requires: python-rich >= 14.0.0
|
|
Requires: python-keyring >= 25.6.0
|
|
Requires: python-cryptography >= 44.0.0
|
|
Requires: python-markdownify >= 1.2.2
|
|
Requires: python-textual >= 7.4.0
|
|
Requires: python-textual-speedups >= 0.2.1
|
|
Requires: python-tomli-w >= 1.2.0
|
|
Requires: python-watchfiles >= 1.1.1
|
|
Requires: python-tree-sitter >= 0.25.2
|
|
Requires: python-tree-sitter-bash >= 0.25.1
|
|
Requires: python-zstandard >= 0.25.0
|
|
BuildArch: noarch
|
|
%python_subpackages
|
|
|
|
%description
|
|
Mistral Vibe is a command-line coding assistant powered by Mistral's
|
|
models. It provides a conversational interface to your codebase,
|
|
allowing you to use natural language to explore, modify, and interact
|
|
with your projects through a powerful set of tools.
|
|
|
|
%prep
|
|
%autosetup -p1 -n mistral_vibe-%{version}
|
|
|
|
%build
|
|
%pyproject_wheel
|
|
|
|
%install
|
|
%pyproject_install
|
|
%python_clone -a %{buildroot}%{_bindir}/vibe
|
|
%python_clone -a %{buildroot}%{_bindir}/vibe-acp
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
|
|
%check
|
|
%pytest || true
|
|
|
|
%post
|
|
%python_install_alternative vibe vibe-acp
|
|
|
|
%postun
|
|
%python_uninstall_alternative vibe
|
|
|
|
%files %{python_files}
|
|
%license LICENSE
|
|
%python_alternative %{_bindir}/vibe
|
|
%python_alternative %{_bindir}/vibe-acp
|
|
%{python_sitelib}/vibe
|
|
%{python_sitelib}/mistral_vibe-%{version}.dist-info
|
|
|
|
%changelog
|