v2.6.0 (#524)
Co-authored-by: Clément Drouin <clement.drouin@mistral.ai> Co-authored-by: Clément Sirieix <clement.sirieix@mistral.ai> Co-authored-by: Gauthier Guinet <43207538+Gguinet@users.noreply.github.com> Co-authored-by: Kim-Adeline Miguel <kimadeline.miguel@mistral.ai> Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com> Co-authored-by: Quentin <torroba.q@gmail.com> Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com> Co-authored-by: Simon Van de Kerckhove <simon.vandekerckhove@mistral.ai> Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com> Co-authored-by: angelapopopo <angele.lenglemetz@mistral.ai> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
parent
5103019b01
commit
eb580209d4
180 changed files with 11136 additions and 1030 deletions
|
|
@ -13,7 +13,7 @@ from tests.stubs.fake_tool import FakeTool
|
|||
from vibe.core.agent_loop import AgentLoop
|
||||
from vibe.core.agents.models import BuiltinAgentName
|
||||
from vibe.core.config import VibeConfig
|
||||
from vibe.core.tools.base import BaseToolConfig, ToolPermission
|
||||
from vibe.core.tools.base import ToolPermission
|
||||
from vibe.core.tools.builtins.todo import TodoItem
|
||||
from vibe.core.types import (
|
||||
ApprovalCallback,
|
||||
|
|
@ -37,7 +37,7 @@ async def act_and_collect_events(agent_loop: AgentLoop, prompt: str) -> list[Bas
|
|||
def make_config(todo_permission: ToolPermission = ToolPermission.ALWAYS) -> VibeConfig:
|
||||
return build_test_vibe_config(
|
||||
enabled_tools=["todo"],
|
||||
tools={"todo": BaseToolConfig(permission=todo_permission)},
|
||||
tools={"todo": {"permission": todo_permission.value}},
|
||||
system_prompt_id="tests",
|
||||
include_project_context=False,
|
||||
include_prompt_detail=False,
|
||||
|
|
@ -166,7 +166,7 @@ async def test_tool_call_requires_approval_if_not_auto_approved(
|
|||
@pytest.mark.asyncio
|
||||
async def test_tool_call_approved_by_callback(telemetry_events: list[dict]) -> None:
|
||||
async def approval_callback(
|
||||
_tool_name: str, _args: BaseModel, _tool_call_id: str
|
||||
_tool_name: str, _args: BaseModel, _tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
return (ApprovalResponse.YES, None)
|
||||
|
||||
|
|
@ -210,7 +210,7 @@ async def test_tool_call_rejected_when_auto_approve_disabled_and_rejected_by_cal
|
|||
custom_feedback = "User declined tool execution"
|
||||
|
||||
async def approval_callback(
|
||||
_tool_name: str, _args: BaseModel, _tool_call_id: str
|
||||
_tool_name: str, _args: BaseModel, _tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
return (ApprovalResponse.NO, custom_feedback)
|
||||
|
||||
|
|
@ -299,14 +299,14 @@ async def test_approval_always_sets_tool_permission_for_subsequent_calls() -> No
|
|||
agent_ref: AgentLoop | None = None
|
||||
|
||||
async def approval_callback(
|
||||
tool_name: str, _args: BaseModel, _tool_call_id: str
|
||||
tool_name: str, _args: BaseModel, _tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
callback_invocations.append(tool_name)
|
||||
# Set permission to ALWAYS for this tool (simulating the new behavior)
|
||||
assert agent_ref is not None
|
||||
if tool_name not in agent_ref.config.tools:
|
||||
agent_ref.config.tools[tool_name] = BaseToolConfig()
|
||||
agent_ref.config.tools[tool_name].permission = ToolPermission.ALWAYS
|
||||
agent_ref.config.tools[tool_name] = {}
|
||||
agent_ref.config.tools[tool_name]["permission"] = "always"
|
||||
return (ApprovalResponse.YES, None)
|
||||
|
||||
agent_loop = make_agent_loop(
|
||||
|
|
@ -596,7 +596,7 @@ async def test_parallel_tool_calls_with_approval_callback(
|
|||
approval_calls: list[str] = []
|
||||
|
||||
async def approval_callback(
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
approval_calls.append(tool_call_id)
|
||||
return (ApprovalResponse.YES, None)
|
||||
|
|
@ -640,7 +640,7 @@ async def test_parallel_approvals_can_run_concurrently() -> None:
|
|||
max_concurrency = 0
|
||||
|
||||
async def approval_callback(
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
nonlocal concurrency, max_concurrency
|
||||
concurrency += 1
|
||||
|
|
@ -674,7 +674,7 @@ async def test_parallel_mixed_approval_and_rejection(
|
|||
"""One tool approved, one rejected — both should produce correct events."""
|
||||
|
||||
async def approval_callback(
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
if tool_call_id == "call_yes":
|
||||
return (ApprovalResponse.YES, None)
|
||||
|
|
@ -813,7 +813,7 @@ async def test_parallel_all_permission_never() -> None:
|
|||
approval_calls: list[str] = []
|
||||
|
||||
async def approval_callback(
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str
|
||||
tool_name: str, _args: BaseModel, tool_call_id: str, _rp: list | None = None
|
||||
) -> tuple[ApprovalResponse, str | None]:
|
||||
approval_calls.append(tool_call_id)
|
||||
return (ApprovalResponse.YES, None)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue