16
0
Files
python-mistral-vibe/python-mistral-vibe.spec
Matej Cepl a4552e8d23 - Update to 2.3.0:
- 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
2026-03-03 00:25:46 +00:00

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