Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai>
Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com>
Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
Clément Sirieix 2026-04-21 15:19:59 +02:00 committed by GitHub
parent 95336528f6
commit 04305bd77c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
68 changed files with 3473 additions and 1764 deletions

View file

@ -28,7 +28,7 @@ class TestACPInitialize:
session_capabilities=SessionCapabilities(list=SessionListCapabilities()),
)
assert response.agent_info == Implementation(
name="@mistralai/mistral-vibe", title="Mistral Vibe", version="2.7.6"
name="@mistralai/mistral-vibe", title="Mistral Vibe", version="2.8.0"
)
assert response.auth_methods == []
@ -52,7 +52,7 @@ class TestACPInitialize:
session_capabilities=SessionCapabilities(list=SessionListCapabilities()),
)
assert response.agent_info == Implementation(
name="@mistralai/mistral-vibe", title="Mistral Vibe", version="2.7.6"
name="@mistralai/mistral-vibe", title="Mistral Vibe", version="2.8.0"
)
assert response.auth_methods is not None

0
tests/banner/__init__.py Normal file
View file

View file

@ -0,0 +1,167 @@
"""Tests for the Banner widget initial state with connectors/MCP."""
from __future__ import annotations
from unittest.mock import Mock, patch
from vibe.cli.textual_ui.widgets.banner.banner import (
Banner,
BannerState,
_connector_count,
_pluralize,
)
from vibe.core.config import VibeConfig
from vibe.core.skills.manager import SkillManager
from vibe.core.tools.connectors.connector_registry import ConnectorRegistry
from vibe.core.tools.mcp.registry import MCPRegistry
class TestBannerInitialState:
"""Test that Banner properly displays initial state including connectors/MCP."""
def test_pluralize(self) -> None:
"""Test pluralization helper."""
assert _pluralize(0, "model") == "0 models"
assert _pluralize(1, "model") == "1 model"
assert _pluralize(2, "model") == "2 models"
assert _pluralize(0, "MCP server") == "0 MCP servers"
assert _pluralize(1, "MCP server") == "1 MCP server"
assert _pluralize(2, "connector") == "2 connectors"
def test_connector_count_with_registry(self) -> None:
"""Test _connector_count with a populated registry."""
registry = Mock(spec=ConnectorRegistry)
registry.connector_count = 3
assert _connector_count(registry) == 3
def test_connector_count_without_registry(self) -> None:
"""Test _connector_count with None registry."""
assert _connector_count(None) == 0
def test_banner_initial_state_includes_connectors(self) -> None:
"""Test that Banner._initial_state includes connector count."""
config = Mock(spec=VibeConfig)
config.active_model = "test-model"
config.models = ["test-model"]
config.mcp_servers = []
config.disable_welcome_banner_animation = False
skill_manager = Mock(spec=SkillManager)
skill_manager.custom_skills_count = 0
mcp_registry = Mock(spec=MCPRegistry)
mcp_registry.count_loaded.return_value = 0
connector_registry = Mock(spec=ConnectorRegistry)
connector_registry.connector_count = 5
banner = Banner(
config=config,
skill_manager=skill_manager,
mcp_registry=mcp_registry,
connector_registry=connector_registry,
)
assert banner._initial_state.active_model == "test-model"
assert banner._initial_state.models_count == 1
assert banner._initial_state.mcp_servers_count == 0
assert banner._initial_state.connectors_count == 5
assert banner._initial_state.skills_count == 0
def test_banner_initial_state_with_none_connector_registry(self) -> None:
"""Test that Banner._initial_state handles None connector registry."""
config = Mock(spec=VibeConfig)
config.active_model = "test-model"
config.models = ["test-model"]
config.mcp_servers = []
config.disable_welcome_banner_animation = False
skill_manager = Mock(spec=SkillManager)
skill_manager.custom_skills_count = 0
mcp_registry = Mock(spec=MCPRegistry)
mcp_registry.count_loaded.return_value = 0
banner = Banner(
config=config,
skill_manager=skill_manager,
mcp_registry=mcp_registry,
connector_registry=None,
)
assert banner._initial_state.connectors_count == 0
def test_format_meta_counts_includes_connectors(self) -> None:
"""Test that _format_meta_counts includes connector count when > 0."""
# Test _format_meta_counts by directly calling it on a Banner instance
config = Mock(spec=VibeConfig)
config.active_model = "test-model"
config.models = [] # Must be a list for len() to work
config.mcp_servers = []
config.disable_welcome_banner_animation = False
skill_manager = Mock(spec=SkillManager)
skill_manager.custom_skills_count = 0
mcp_registry = Mock(spec=MCPRegistry)
mcp_registry.count_loaded.return_value = 0
banner = Banner(
config=config,
skill_manager=skill_manager,
mcp_registry=mcp_registry,
connector_registry=None,
)
# Now test _format_meta_counts by setting state
banner.state = BannerState(
models_count=2, mcp_servers_count=1, connectors_count=3, skills_count=5
)
result = banner._format_meta_counts()
assert "2 models" in result
assert "3 connectors" in result
assert "1 MCP server" in result
assert "5 skills" in result
# Test without connectors
banner.state = BannerState(
models_count=2, mcp_servers_count=1, connectors_count=0, skills_count=5
)
result = banner._format_meta_counts()
assert "2 models" in result
assert "connectors" not in result # Should not appear when 0
assert "1 MCP server" in result
assert "5 skills" in result
class TestBannerWithEnabledConnectors:
"""Integration tests for Banner with EXPERIMENTAL_ENABLE_CONNECTORS=1."""
@patch("vibe.core.tools.connectors.connectors_enabled")
def test_connectors_enabled_flag(self, mock_enabled: Mock) -> None:
"""Test that connector count is read when enabled."""
mock_enabled.return_value = True
config = Mock(spec=VibeConfig)
config.active_model = "test-model"
config.models = ["test-model"]
config.mcp_servers = []
config.disable_welcome_banner_animation = False
skill_manager = Mock(spec=SkillManager)
skill_manager.custom_skills_count = 0
mcp_registry = Mock(spec=MCPRegistry)
mcp_registry.count_loaded.return_value = 0
connector_registry = Mock(spec=ConnectorRegistry)
connector_registry.connector_count = 5
banner = Banner(
config=config,
skill_manager=skill_manager,
mcp_registry=mcp_registry,
connector_registry=connector_registry,
)
assert banner._initial_state.connectors_count == 5

View file

@ -9,6 +9,7 @@ class TestCommandRegistry:
assert registry.get_command_name("/help") == "help"
assert registry.get_command_name("/config") == "config"
assert registry.get_command_name("/model") == "model"
assert registry.get_command_name("/connectors") == "mcp"
assert registry.get_command_name("/clear") == "clear"
assert registry.get_command_name("/exit") == "exit"
assert registry.get_command_name("/data-retention") == "data-retention"
@ -77,6 +78,11 @@ class TestCommandRegistry:
result = registry.parse_command("/mcp filesystem")
assert result == ("mcp", registry.commands["mcp"], "filesystem")
def test_parse_command_maps_connector_alias_to_mcp(self) -> None:
registry = CommandRegistry()
result = registry.parse_command("/connectors filesystem")
assert result == ("mcp", registry.commands["mcp"], "filesystem")
def test_data_retention_command_registration(self) -> None:
registry = CommandRegistry()
result = registry.parse_command("/data-retention")

View file

@ -2,11 +2,19 @@ from __future__ import annotations
from collections.abc import AsyncGenerator
from typing import Any
from unittest.mock import MagicMock
from unittest.mock import AsyncMock, MagicMock
from vibe.cli.textual_ui.widgets.mcp_app import MCPApp, collect_mcp_tool_index
import pytest
from tests.stubs.fake_connector_registry import FakeConnectorRegistry
from vibe.cli.textual_ui.widgets.mcp_app import (
MCPApp,
_sort_connector_names_for_menu,
collect_mcp_tool_index,
)
from vibe.core.config import MCPStdio
from vibe.core.tools.base import InvokeContext
from vibe.core.tools.connectors.connector_registry import RemoteTool
from vibe.core.tools.mcp.tools import MCPTool, MCPToolResult, _OpenArgs
from vibe.core.types import ToolStreamEvent
@ -158,3 +166,103 @@ class TestMCPAppInit:
)
app.action_back()
assert render_calls == []
@pytest.mark.asyncio
async def test_action_refresh_dispatches_worker(self) -> None:
servers = [MCPStdio(name="srv", transport="stdio", command="cmd")]
mgr = _make_tool_manager({})
refresh_callback = AsyncMock(return_value="Refreshed.")
app = MCPApp(
mcp_servers=servers, tool_manager=mgr, refresh_callback=refresh_callback
)
app._viewing_server = "srv"
render_calls: list[tuple[str | None, str | None]] = []
app._refresh_view = lambda server_name, *, kind=None: render_calls.append((
server_name,
kind,
))
app.run_worker = MagicMock()
await app.action_refresh()
assert app._status_message == "Refreshing..."
assert render_calls == [("srv", None)]
app.run_worker.assert_called_once()
def test_on_worker_state_changed_updates_after_refresh(self) -> None:
from textual.worker import Worker
servers = [MCPStdio(name="srv", transport="stdio", command="cmd")]
mgr = _make_tool_manager({})
app = MCPApp(mcp_servers=servers, tool_manager=mgr)
app.refresh_index = MagicMock()
worker = MagicMock(spec=Worker)
worker.group = "refresh"
worker.is_finished = True
worker.result = "Refreshed."
event = MagicMock(spec=Worker.StateChanged)
event.worker = worker
app.on_worker_state_changed(event)
assert app._status_message == "Refreshed."
assert app._refreshing is False
app.refresh_index.assert_called_once()
def test_close_blocked_while_refreshing(self) -> None:
mgr = _make_tool_manager({})
app = MCPApp(mcp_servers=[], tool_manager=mgr)
app._refreshing = True
app.post_message = MagicMock()
app.action_close()
app.post_message.assert_not_called()
def test_back_blocked_while_refreshing(self) -> None:
servers = [MCPStdio(name="srv", transport="stdio", command="cmd")]
mgr = _make_tool_manager({})
app = MCPApp(mcp_servers=servers, tool_manager=mgr)
app._viewing_server = "srv"
app._refreshing = True
render_calls: list[str | None] = []
app._refresh_view = lambda server_name, *, kind=None: render_calls.append(
server_name
)
app.action_back()
assert render_calls == []
class TestConnectorMenuOrdering:
def test_connectors_are_sorted_by_connected_state_then_name(self) -> None:
registry = FakeConnectorRegistry(
connectors={
"zeta": [],
"alpha": [RemoteTool(name="lookup", description="Lookup")],
"beta": [],
}
)
ordered = _sort_connector_names_for_menu(
registry.get_connector_names(), registry
)
assert ordered == ["alpha", "beta", "zeta"]
def test_sorting_is_case_insensitive(self) -> None:
registry = FakeConnectorRegistry(
connectors={
"Zeta": [],
"alpha": [RemoteTool(name="lookup", description="Lookup")],
"Beta": [],
}
)
ordered = _sort_connector_names_for_menu(
registry.get_connector_names(), registry
)
assert ordered == ["alpha", "Beta", "Zeta"]

View file

@ -129,24 +129,3 @@ async def test_skill_without_args_does_not_prepend_invocation_line(
vibe_app_with_skills, pilot, "Do the thing."
)
assert "/my-skill" not in message._content
@pytest.mark.asyncio
async def test_skill_with_missing_file_shows_error(tmp_path: Path) -> None:
skills_dir = tmp_path / "skills"
skills_dir.mkdir()
skill_dir = create_skill(skills_dir, "my-skill", body=SKILL_BODY)
vibe_app = build_test_vibe_app(
config=build_test_vibe_config(skill_paths=[skills_dir])
)
(skill_dir / "SKILL.md").unlink()
async with vibe_app.run_test() as pilot:
await pilot.pause(0.1)
chat_input = vibe_app.query_one(ChatInputContainer)
chat_input.post_message(ChatInputContainer.Submitted("/my-skill"))
error = await _wait_for_error_message_containing(
vibe_app, pilot, "Failed to read skill file"
)
assert "Failed to read skill file" in error._error

View file

@ -0,0 +1,216 @@
from __future__ import annotations
from dataclasses import FrozenInstanceError
from typing import Annotated
from pydantic import BaseModel, Field
import pytest
from vibe.core.config.schema import (
DuplicateMergeMetadataError,
MergeFieldMetadata,
WithConcatMerge,
WithConflictMerge,
WithReplaceMerge,
WithShallowMerge,
WithUnionMerge,
)
from vibe.core.utils.merge import MergeConflictError, MergeKeyError, MergeStrategy
class TestMergeFieldMetadata:
def test_frozen(self) -> None:
info = WithReplaceMerge()
with pytest.raises(FrozenInstanceError):
info.merge_strategy = MergeStrategy.CONCAT # type: ignore[misc]
def test_equality(self) -> None:
assert WithReplaceMerge() == WithReplaceMerge()
def test_inequality(self) -> None:
assert WithReplaceMerge() != WithConcatMerge()
def test_from_field_returns_correct_subclass(self) -> None:
class _M(BaseModel):
x: Annotated[str, WithReplaceMerge()] = "a"
info = MergeFieldMetadata.from_field(_M.model_fields["x"])
assert isinstance(info, WithReplaceMerge)
assert info.merge_strategy is MergeStrategy.REPLACE
def test_from_field_rejects_duplicate_markers(self) -> None:
class _M(BaseModel):
x: Annotated[str, WithReplaceMerge(), WithConflictMerge()] = "a"
with pytest.raises(DuplicateMergeMetadataError):
MergeFieldMetadata.from_field(_M.model_fields["x"])
def test_from_field_returns_none_for_plain_field(self) -> None:
class _M(BaseModel):
x: str = "a"
assert MergeFieldMetadata.from_field(_M.model_fields["x"]) is None
class TestWithUnionMerge:
def test_merge_key_required(self) -> None:
with pytest.raises(TypeError, match="requires merge_key"):
WithUnionMerge()
def test_merge_key_stored(self) -> None:
marker = WithUnionMerge(merge_key="alias")
assert marker.merge_key == "alias"
assert marker.merge_strategy is MergeStrategy.UNION
class _ToolConfig(BaseModel):
enabled: bool = True
timeout: int = 30
class _ModelConfig(BaseModel):
alias: str
provider: str
class _SampleConfig(BaseModel):
active_model: Annotated[str, WithReplaceMerge()] = "devstral-2"
disabled_tools: Annotated[list[str], WithConcatMerge()] = Field(
default_factory=list
)
models: Annotated[list[_ModelConfig], WithUnionMerge(merge_key="alias")] = Field(
default_factory=list
)
tools: Annotated[dict[str, _ToolConfig], WithShallowMerge()] = Field(
default_factory=dict
)
allowed_hosts: Annotated[list[str] | None, WithConflictMerge()] = None
class TestAnnotatedFieldInModel:
def test_model_instantiates_with_defaults(self) -> None:
cfg = _SampleConfig()
assert cfg.active_model == "devstral-2"
assert cfg.disabled_tools == []
assert cfg.models == []
assert cfg.tools == {}
assert cfg.allowed_hosts is None
def test_all_fields_have_merge_info(self) -> None:
for name, field_info in _SampleConfig.model_fields.items():
info = MergeFieldMetadata.from_field(field_info)
assert info is not None, f"Field '{name}' missing MergeFieldMetadata"
def test_merge_replace_via_field(self) -> None:
info = MergeFieldMetadata.from_field(_SampleConfig.model_fields["active_model"])
assert info is not None
assert (
info.merge_strategy.apply("devstral-2", "mistral-large") == "mistral-large"
)
def test_merge_concat_via_field(self) -> None:
info = MergeFieldMetadata.from_field(
_SampleConfig.model_fields["disabled_tools"]
)
assert info is not None
result = info.merge_strategy.apply(["tool_a"], ["tool_b", "tool_c"])
assert result == ["tool_a", "tool_b", "tool_c"]
def test_merge_union_via_field(self) -> None:
info = MergeFieldMetadata.from_field(_SampleConfig.model_fields["models"])
assert info is not None
assert info.merge_key == "alias"
base = [{"alias": "m1", "provider": "p1"}, {"alias": "m2", "provider": "p2"}]
override = [{"alias": "m2", "provider": "p2-override"}]
key_fn = lambda item: item[info.merge_key]
result = info.merge_strategy.apply(base, override, key_fn=key_fn)
assert len(result) == 2
assert result[0] == {"alias": "m1", "provider": "p1"}
assert result[1] == {"alias": "m2", "provider": "p2-override"}
def test_merge_union_missing_key_raises(self) -> None:
base = [{"alias": "m1", "provider": "p1"}]
override = [{"provider": "p2"}] # missing "alias"
key_fn = lambda item: item["alias"]
with pytest.raises(MergeKeyError):
MergeStrategy.UNION.apply(base, override, key_fn=key_fn)
def test_merge_merge_via_field(self) -> None:
info = MergeFieldMetadata.from_field(_SampleConfig.model_fields["tools"])
assert info is not None
base = {
"search": _ToolConfig(enabled=True, timeout=30),
"browser": _ToolConfig(timeout=60),
}
override = {
"browser": _ToolConfig(enabled=False, timeout=120),
"code": _ToolConfig(),
}
result = info.merge_strategy.apply(base, override)
assert result == {
"search": _ToolConfig(enabled=True, timeout=30),
"browser": _ToolConfig(enabled=False, timeout=120),
"code": _ToolConfig(),
}
def test_merge_conflict_via_field(self) -> None:
info = MergeFieldMetadata.from_field(
_SampleConfig.model_fields["allowed_hosts"]
)
assert info is not None
with pytest.raises(MergeConflictError):
info.merge_strategy.apply(["host1"], ["host2"])
def test_merge_conflict_single_side_ok(self) -> None:
info = MergeFieldMetadata.from_field(
_SampleConfig.model_fields["allowed_hosts"]
)
assert info is not None
assert info.merge_strategy.apply(None, ["host1"]) == ["host1"]
assert info.merge_strategy.apply(["host1"], None) == ["host1"]
def test_full_merge_through_model_validate(self) -> None:
base_layer: dict[str, object] = {
"active_model": "devstral-2",
"disabled_tools": ["tool_a"],
"models": [{"alias": "m1", "provider": "p1"}],
"tools": {"search": {"enabled": True, "timeout": 30}},
}
override_layer: dict[str, object] = {
"active_model": "mistral-large",
"disabled_tools": ["tool_b"],
"models": [
{"alias": "m1", "provider": "p1-override"},
{"alias": "m2", "provider": "p2"},
],
"tools": {"code": {"enabled": True, "timeout": 10}},
}
merged = {**base_layer}
for key, override_val in override_layer.items():
info = MergeFieldMetadata.from_field(_SampleConfig.model_fields[key])
assert info is not None
key_fn = None
if info.merge_key is not None:
attr = info.merge_key
key_fn = lambda item, a=attr: item[a]
merged[key] = info.merge_strategy.apply(
base_layer.get(key), override_val, key_fn=key_fn
)
cfg = _SampleConfig.model_validate(merged)
assert cfg.active_model == "mistral-large"
assert cfg.disabled_tools == ["tool_a", "tool_b"]
assert len(cfg.models) == 2
assert cfg.models[0].alias == "m1"
assert cfg.models[0].provider == "p1-override"
assert cfg.models[1].alias == "m2"
assert cfg.tools["search"].enabled is True
assert cfg.tools["code"].timeout == 10
assert cfg.allowed_hosts is None

View file

@ -4,7 +4,7 @@ from unittest.mock import MagicMock
import pytest
from vibe.core.utils.merge import MergeConflictError, MergeStrategy
from vibe.core.utils.merge import MergeConflictError, MergeKeyError, MergeStrategy
class TestMergeStrategyEnum:
@ -103,6 +103,13 @@ class TestUnion:
with pytest.raises(TypeError, match="UNION requires list operands"):
MergeStrategy.UNION.apply("a", [1], key_fn=str)
def test_raises_merge_key_error_for_missing_key(self) -> None:
base = [{"name": "a", "v": 1}]
override = [{"v": 2}] # missing "name"
with pytest.raises(MergeKeyError) as exc_info:
MergeStrategy.UNION.apply(base, override, key_fn=lambda x: x["name"])
assert exc_info.value.key == "name"
class TestMerge:
def test_dicts_merged_one_level(self) -> None:
@ -161,3 +168,16 @@ class TestMergeConflictError:
err = MergeConflictError("active_model")
assert str(err) == "Merge conflict on field 'active_model'"
assert err.field_name == "active_model"
class TestMergeKeyError:
def test_message_includes_key_and_item(self) -> None:
item = {"v": 2}
err = MergeKeyError("name", item)
assert "name" in str(err)
assert str(item) in str(err)
assert err.key == "name"
assert err.item == item
def test_is_key_error(self) -> None:
assert issubclass(MergeKeyError, KeyError)

View file

@ -135,6 +135,7 @@ class TestTelemetryClient:
status="success",
decision=decision,
agent_profile_name="default",
model="mistral-large",
)
assert len(telemetry_events) == 1
@ -146,6 +147,7 @@ class TestTelemetryClient:
assert properties["decision"] == "execute"
assert properties["approval_type"] == "always"
assert properties["agent_profile_name"] == "default"
assert properties["model"] == "mistral-large"
assert properties["nb_files_created"] == 0
assert properties["nb_files_modified"] == 0
@ -161,6 +163,7 @@ class TestTelemetryClient:
status="success",
decision=None,
agent_profile_name="default",
model="mistral-large",
result={"file_existed": False},
)
@ -179,6 +182,7 @@ class TestTelemetryClient:
status="success",
decision=None,
agent_profile_name="default",
model="mistral-large",
result={"file_existed": True},
)
@ -197,6 +201,7 @@ class TestTelemetryClient:
status="skipped",
decision=None,
agent_profile_name="default",
model="mistral-large",
)
assert telemetry_events[0]["properties"]["decision"] is None
@ -384,6 +389,27 @@ class TestTelemetryClient:
calls[1].kwargs["json"]["properties"]["session_id"] == "second-session-id"
)
def test_send_request_sent_payload(
self, telemetry_events: list[dict[str, Any]]
) -> None:
config = build_test_vibe_config(enable_telemetry=True)
client = TelemetryClient(config_getter=lambda: config)
client.send_request_sent(
model="codestral",
nb_context_chars=1234,
nb_context_messages=5,
nb_prompt_chars=42,
)
assert len(telemetry_events) == 1
assert telemetry_events[0]["event_name"] == "vibe.request_sent"
properties = telemetry_events[0]["properties"]
assert properties["model"] == "codestral"
assert properties["nb_context_chars"] == 1234
assert properties["nb_context_messages"] == 5
assert properties["nb_prompt_chars"] == 42
def test_send_user_rating_feedback_payload(
self, telemetry_events: list[dict[str, Any]]
) -> None:

View file

@ -0,0 +1,51 @@
from __future__ import annotations
from pathlib import Path
import pytest
from tests.conftest import build_test_vibe_config
from tests.skills.conftest import create_skill
from vibe.core.skills.builtins import BUILTIN_SKILLS
from vibe.core.skills.manager import SkillManager
class TestBuiltinSkills:
def test_vibe_skill_is_registered(self) -> None:
assert "vibe" in BUILTIN_SKILLS
def test_vibe_skill_has_no_path(self) -> None:
assert BUILTIN_SKILLS["vibe"].skill_path is None
def test_vibe_skill_has_inline_prompt(self) -> None:
assert BUILTIN_SKILLS["vibe"].prompt
def test_discovers_builtin_skills(self, monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setattr("vibe.core.skills.manager.BUILTIN_SKILLS", BUILTIN_SKILLS)
config = build_test_vibe_config(
system_prompt_id="tests", include_project_context=False
)
manager = SkillManager(lambda: config)
assert "vibe" in manager.available_skills
def test_user_skill_cannot_override_builtin(
self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch
) -> None:
monkeypatch.setattr("vibe.core.skills.manager.BUILTIN_SKILLS", BUILTIN_SKILLS)
skills_dir = tmp_path / "skills"
skills_dir.mkdir()
create_skill(skills_dir, "vibe", "Custom vibe override")
config = build_test_vibe_config(
system_prompt_id="tests",
include_project_context=False,
skill_paths=[skills_dir],
)
manager = SkillManager(lambda: config)
assert "vibe" in manager.available_skills
assert (
manager.available_skills["vibe"].description
== BUILTIN_SKILLS["vibe"].description
)

View file

@ -1,12 +1,14 @@
from __future__ import annotations
from pathlib import Path
from typing import cast
import pytest
from tests.conftest import build_test_vibe_config
from tests.skills.conftest import create_skill
from vibe.core.config import VibeConfig
from vibe.core.skills.builtins import BUILTIN_SKILLS
from vibe.core.skills.manager import SkillManager
from vibe.core.trusted_folders import trusted_folders_manager
@ -24,10 +26,15 @@ def skill_manager(config: VibeConfig) -> SkillManager:
class TestSkillManagerDiscovery:
def test_available_skills_is_frozen(self, skill_manager: SkillManager) -> None:
frozen_skills = cast(dict[str, object], skill_manager.available_skills)
with pytest.raises(TypeError):
frozen_skills["new-skill"] = object()
def test_discovers_no_skills_when_directory_empty(
self, skill_manager: SkillManager
) -> None:
assert skill_manager.available_skills == {}
assert skill_manager.available_skills == BUILTIN_SKILLS
def test_discovers_skill_from_skill_paths(self, skills_dir: Path) -> None:
create_skill(skills_dir, "test-skill", "A test skill")
@ -54,7 +61,7 @@ class TestSkillManagerDiscovery:
)
manager = SkillManager(lambda: config)
assert len(manager.available_skills) == 3
assert len(manager.available_skills) == 3 + len(BUILTIN_SKILLS)
assert "skill-one" in manager.available_skills
assert "skill-two" in manager.available_skills
assert "skill-three" in manager.available_skills
@ -76,7 +83,7 @@ class TestSkillManagerDiscovery:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 1
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert "valid-skill" in skills
assert "not-a-skill" not in skills
@ -95,7 +102,7 @@ class TestSkillManagerDiscovery:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 1
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert "valid-skill" in skills
@ -159,7 +166,7 @@ class TestSkillManagerParsing:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 1
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert "valid-skill" in skills
assert "invalid-skill" not in skills
@ -180,7 +187,7 @@ class TestSkillManagerParsing:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 1
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert "valid-skill" in skills
@ -239,9 +246,10 @@ class TestSkillManagerSearchPaths:
)
manager = SkillManager(lambda: config)
assert len(manager.available_skills) == 2
assert manager.available_skills["vibe-only"].description == "From .vibe"
assert manager.available_skills["agents-only"].description == "From .agents"
skills = manager.available_skills
assert len(skills) == 2 + len(BUILTIN_SKILLS)
assert skills["vibe-only"].description == "From .vibe"
assert skills["agents-only"].description == "From .agents"
def test_first_discovered_wins_when_same_skill_in_vibe_and_agents(
self, tmp_working_directory: Path
@ -259,10 +267,9 @@ class TestSkillManagerSearchPaths:
)
manager = SkillManager(lambda: config)
assert len(manager.available_skills) == 1
assert (
manager.available_skills["shared-skill"].description == "First from .vibe"
)
skills = manager.available_skills
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert skills["shared-skill"].description == "First from .vibe"
def test_discovers_from_multiple_skill_paths(self, tmp_path: Path) -> None:
# Create two separate skill directories
@ -282,7 +289,7 @@ class TestSkillManagerSearchPaths:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 2
assert len(skills) == 2 + len(BUILTIN_SKILLS)
assert "skill-from-dir1" in skills
assert "skill-from-dir2" in skills
@ -304,7 +311,7 @@ class TestSkillManagerSearchPaths:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 1
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert skills["duplicate-skill"].description == "First version"
def test_ignores_nonexistent_skill_paths(self, tmp_path: Path) -> None:
@ -319,8 +326,9 @@ class TestSkillManagerSearchPaths:
)
manager = SkillManager(lambda: config)
assert len(manager.available_skills) == 1
assert "valid-skill" in manager.available_skills
skills = manager.available_skills
assert len(skills) == 1 + len(BUILTIN_SKILLS)
assert "valid-skill" in skills
class TestSkillManagerGetSkill:
@ -376,7 +384,7 @@ class TestSkillManagerFiltering:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 2
assert len(skills) == 2 + len(BUILTIN_SKILLS)
assert "skill-a" in skills
assert "skill-b" not in skills
assert "skill-c" in skills
@ -514,7 +522,7 @@ class TestSkillUserInvocable:
manager = SkillManager(lambda: config)
skills = manager.available_skills
assert len(skills) == 3
assert len(skills) == 3 + len(BUILTIN_SKILLS)
assert skills["visible-skill"].user_invocable is True
assert skills["hidden-skill"].user_invocable is False
assert skills["default-skill"].user_invocable is True
@ -561,16 +569,6 @@ class TestParseSkillCommand:
assert parsed is not None
assert parsed.name == "my-skill"
def test_raises_on_unreadable_skill(
self, skills_dir: Path, skill_config: VibeConfig
) -> None:
create_skill(skills_dir, "bad-skill", body="content")
manager = SkillManager(lambda: skill_config)
(skills_dir / "bad-skill" / "SKILL.md").unlink()
with pytest.raises(OSError):
manager.parse_skill_command("/bad-skill")
class TestBuildSkillPrompt:
def test_without_args(self, skills_dir: Path, skill_config: VibeConfig) -> None:

View file

@ -127,13 +127,14 @@ class TestSkillInfo:
meta = SkillMetadata(
name="test-skill", description="A test skill", license="MIT"
)
info = SkillInfo.from_metadata(meta, skill_path)
info = SkillInfo.from_metadata(meta, skill_path, prompt="Skill body")
skill_dir = info.skill_dir
assert info.name == "test-skill"
assert info.description == "A test skill"
assert info.license == "MIT"
assert info.skill_path == skill_path.resolve()
assert info.skill_dir == skill_path.parent.resolve()
assert skill_dir == skill_path.parent.resolve()
def test_creates_with_all_fields(self, tmp_path: Path) -> None:
skill_path = tmp_path / "full-skill" / "SKILL.md"
@ -149,6 +150,7 @@ class TestSkillInfo:
allowed_tools=["bash"],
user_invocable=False,
skill_path=skill_path,
prompt="Skill body",
)
assert info.name == "full-skill"
@ -167,9 +169,11 @@ class TestSkillInfo:
skill_path.touch()
meta = SkillMetadata(name="test-skill", description="A test skill")
info = SkillInfo.from_metadata(meta, skill_path)
info = SkillInfo.from_metadata(meta, skill_path, prompt="Skill body")
assert info.skill_path is not None
assert info.skill_path.is_absolute()
assert info.skill_dir is not None
assert info.skill_dir.is_absolute()
def test_inherits_all_metadata_fields(self, tmp_path: Path) -> None:
@ -186,10 +190,18 @@ class TestSkillInfo:
allowed_tools=["bash", "grep"],
user_invocable=False,
)
info = SkillInfo.from_metadata(meta, skill_path)
info = SkillInfo.from_metadata(meta, skill_path, prompt="Skill body")
assert info.license == meta.license
assert info.compatibility == meta.compatibility
assert info.metadata == meta.metadata
assert info.allowed_tools == meta.allowed_tools
assert info.user_invocable == meta.user_invocable
def test_can_omit_skill_path_for_builtin_inline_prompt(self) -> None:
info = SkillInfo(
name="vibe", description="Builtin skill", prompt="Inline prompt"
)
assert info.skill_path is None
assert info.skill_dir is None

View file

@ -2,10 +2,10 @@ from __future__ import annotations
import pytest
from vibe.core.skills.parser import SkillParseError, parse_frontmatter
from vibe.core.skills.parser import SkillParseError, parse_skill_markdown
class TestParseFrontmatter:
class TestParseSkillMarkdown:
def test_parses_valid_frontmatter(self) -> None:
content = """---
name: test-skill
@ -14,7 +14,7 @@ description: A test skill
## Body content here
"""
frontmatter, body = parse_frontmatter(content)
frontmatter, body = parse_skill_markdown(content)
assert frontmatter["name"] == "test-skill"
assert frontmatter["description"] == "A test skill"
@ -34,7 +34,7 @@ allowed-tools: bash read_file
Instructions here.
"""
frontmatter, body = parse_frontmatter(content)
frontmatter, body = parse_skill_markdown(content)
assert frontmatter["name"] == "full-skill"
assert frontmatter["description"] == "A skill with all fields"
@ -49,7 +49,7 @@ Instructions here.
content = "Just markdown content without frontmatter"
with pytest.raises(SkillParseError) as exc_info:
parse_frontmatter(content)
parse_skill_markdown(content)
assert "Missing or invalid YAML frontmatter" in str(exc_info.value)
@ -60,7 +60,7 @@ description: Missing closing delimiter
"""
with pytest.raises(SkillParseError) as exc_info:
parse_frontmatter(content)
parse_skill_markdown(content)
assert "Missing or invalid YAML frontmatter" in str(exc_info.value)
@ -74,7 +74,7 @@ Body here.
"""
with pytest.raises(SkillParseError) as exc_info:
parse_frontmatter(content)
parse_skill_markdown(content)
assert "Invalid YAML frontmatter" in str(exc_info.value)
@ -88,7 +88,7 @@ Body here.
"""
with pytest.raises(SkillParseError) as exc_info:
parse_frontmatter(content)
parse_skill_markdown(content)
assert "must be a mapping" in str(exc_info.value)
@ -98,7 +98,7 @@ Body here.
Body content.
"""
frontmatter, body = parse_frontmatter(content)
frontmatter, body = parse_skill_markdown(content)
assert frontmatter == {}
assert "Body content." in body
@ -109,7 +109,7 @@ name: minimal
description: No body
---
"""
frontmatter, body = parse_frontmatter(content)
frontmatter, body = parse_skill_markdown(content)
assert frontmatter["name"] == "minimal"
assert body.strip() == ""

View file

@ -19,187 +19,187 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-4926488215-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-4926488215-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #868887 }
.terminal-4926488215-r1 { fill: #c5c8c6 }
.terminal-4926488215-r2 { fill: #ff8205;font-weight: bold }
.terminal-4926488215-r3 { fill: #68a0b3 }
.terminal-4926488215-r4 { fill: #ff8205 }
.terminal-4926488215-r5 { fill: #9a9b99 }
.terminal-4926488215-r6 { fill: #608ab1;font-weight: bold }
.terminal-4926488215-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-4926488215-r8 { fill: #9cafbd;font-weight: bold }
.terminal-4926488215-r9 { fill: #868887 }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-4926488215-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-4926488215-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-4926488215-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-4926488215-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-4926488215-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-4926488215-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-4926488215-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-4926488215-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-4926488215-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-4926488215-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-4926488215-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-4926488215-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-4926488215-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-4926488215-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-4926488215-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-4926488215-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-4926488215-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-4926488215-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-4926488215-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-4926488215-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-4926488215-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-4926488215-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-4926488215-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-4926488215-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-4926488215-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-4926488215-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-4926488215-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-4926488215-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-4926488215-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-4926488215-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-4926488215-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-4926488215-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-4926488215-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-4926488215-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-4926488215-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-4926488215-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-4926488215-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-4926488215-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="733.5" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="183" y="733.5" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="292.8" y="733.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="733.5" width="1037" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-line-17)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-line-17)">devstral-latest</text><text class="terminal-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">Type&#160;</text><text class="terminal-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">/help</text><text class="terminal-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)"></text><text class="terminal-r2" x="24.4" y="556.8" textLength="183" clip-path="url(#terminal-line-22)">/mcp&#160;filesystem</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)"></text><text class="terminal-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-line-27)">MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r7" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-line-30)">&#160;&#160;filesystem</text><text class="terminal-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;[stdio]</text><text class="terminal-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-4926488215-matrix">
<text class="terminal-4926488215-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-4926488215-line-0)">
</text><text class="terminal-4926488215-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-1)">
</text><text class="terminal-4926488215-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-2)">
</text><text class="terminal-4926488215-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-3)">
</text><text class="terminal-4926488215-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-4)">
</text><text class="terminal-4926488215-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-4926488215-line-5)">
</text><text class="terminal-4926488215-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-6)">
</text><text class="terminal-4926488215-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-7)">
</text><text class="terminal-4926488215-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-8)">
</text><text class="terminal-4926488215-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-9)">
</text><text class="terminal-4926488215-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-4926488215-line-10)">
</text><text class="terminal-4926488215-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-11)">
</text><text class="terminal-4926488215-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-12)">
</text><text class="terminal-4926488215-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-13)">
</text><text class="terminal-4926488215-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-14)">
</text><text class="terminal-4926488215-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-4926488215-line-15)">
</text><text class="terminal-4926488215-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-16)">
</text><text class="terminal-4926488215-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-4926488215-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-4926488215-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-4926488215-line-17)">Mistral&#160;Vibe</text><text class="terminal-4926488215-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-4926488215-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-4926488215-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-4926488215-line-17)">devstral-latest</text><text class="terminal-4926488215-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-4926488215-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-4926488215-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-17)">
</text><text class="terminal-4926488215-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-4926488215-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-4926488215-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-4926488215-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-4926488215-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-18)">
</text><text class="terminal-4926488215-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-4926488215-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-4926488215-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-4926488215-line-19)">Type&#160;</text><text class="terminal-4926488215-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-4926488215-line-19)">/help</text><text class="terminal-4926488215-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-4926488215-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-4926488215-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-19)">
</text><text class="terminal-4926488215-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-4926488215-line-20)">
</text><text class="terminal-4926488215-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-21)">
</text><text class="terminal-4926488215-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-22)"></text><text class="terminal-4926488215-r2" x="24.4" y="556.8" textLength="183" clip-path="url(#terminal-4926488215-line-22)">/mcp&#160;filesystem</text><text class="terminal-4926488215-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-22)">
</text><text class="terminal-4926488215-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-23)"></text><text class="terminal-4926488215-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-4926488215-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-4926488215-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-23)">
</text><text class="terminal-4926488215-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-24)">
</text><text class="terminal-4926488215-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-4926488215-line-25)">
</text><text class="terminal-4926488215-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-4926488215-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-4926488215-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-26)">
</text><text class="terminal-4926488215-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-27)"></text><text class="terminal-4926488215-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-4926488215-line-27)">MCP&#160;Servers</text><text class="terminal-4926488215-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-27)"></text><text class="terminal-4926488215-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-27)">
</text><text class="terminal-4926488215-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-28)"></text><text class="terminal-4926488215-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-28)"></text><text class="terminal-4926488215-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-28)">
</text><text class="terminal-4926488215-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-29)"></text><text class="terminal-4926488215-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-4926488215-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-4926488215-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-29)"></text><text class="terminal-4926488215-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-29)">
</text><text class="terminal-4926488215-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-4926488215-line-30)"></text><text class="terminal-4926488215-r7" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-4926488215-line-30)">&#160;&#160;filesystem</text><text class="terminal-4926488215-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-4926488215-line-30)">&#160;&#160;[stdio]</text><text class="terminal-4926488215-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-4926488215-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-4926488215-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-4926488215-line-30)"></text><text class="terminal-4926488215-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-4926488215-line-30)">
</text><text class="terminal-4926488215-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-31)"></text><text class="terminal-4926488215-r1" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-4926488215-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-4926488215-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-4926488215-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-4926488215-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-4926488215-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-4926488215-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-31)"></text><text class="terminal-4926488215-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-4926488215-line-31)">
</text><text class="terminal-4926488215-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-32)"></text><text class="terminal-4926488215-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-32)"></text><text class="terminal-4926488215-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-4926488215-line-32)">
</text><text class="terminal-4926488215-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-33)"></text><text class="terminal-4926488215-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-4926488215-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-4926488215-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-33)"></text><text class="terminal-4926488215-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-4926488215-line-33)">
</text><text class="terminal-4926488215-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-4926488215-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-4926488215-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-4926488215-line-34)">
</text><text class="terminal-4926488215-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-4926488215-line-35)">/test/workdir</text><text class="terminal-4926488215-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-4926488215-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After

View file

@ -19,187 +19,187 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-2811199383-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-2811199383-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #868887 }
.terminal-2811199383-r1 { fill: #c5c8c6 }
.terminal-2811199383-r2 { fill: #ff8205;font-weight: bold }
.terminal-2811199383-r3 { fill: #68a0b3 }
.terminal-2811199383-r4 { fill: #ff8205 }
.terminal-2811199383-r5 { fill: #9a9b99 }
.terminal-2811199383-r6 { fill: #608ab1;font-weight: bold }
.terminal-2811199383-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-2811199383-r8 { fill: #9cafbd;font-weight: bold }
.terminal-2811199383-r9 { fill: #868887 }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-2811199383-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-2811199383-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-2811199383-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-2811199383-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-2811199383-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-2811199383-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-2811199383-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-2811199383-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-2811199383-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-2811199383-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-2811199383-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-2811199383-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-2811199383-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-2811199383-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-2811199383-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-2811199383-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-2811199383-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-2811199383-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-2811199383-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-2811199383-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-2811199383-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-2811199383-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-2811199383-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-2811199383-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-2811199383-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-2811199383-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-2811199383-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-2811199383-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-2811199383-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-2811199383-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-2811199383-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-2811199383-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-2811199383-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-2811199383-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-2811199383-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-2811199383-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithBrokenMcpServer</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-2811199383-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithBrokenMcpServer</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-2811199383-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="709.1" width="183" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="219.6" y="709.1" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="329.4" y="709.1" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="427" y="709.1" width="1000.4" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-line-16)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="410.4" textLength="146.4" clip-path="url(#terminal-line-16)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="410.4" textLength="122" clip-path="url(#terminal-line-16)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="410.4" textLength="183" clip-path="url(#terminal-line-16)">devstral-latest</text><text class="terminal-r1" x="622.2" y="410.4" textLength="256.2" clip-path="url(#terminal-line-16)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-line-17)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="434.8" textLength="414.8" clip-path="url(#terminal-line-17)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="459.2" textLength="61" clip-path="url(#terminal-line-18)">Type&#160;</text><text class="terminal-r3" x="231.8" y="459.2" textLength="61" clip-path="url(#terminal-line-18)">/help</text><text class="terminal-r1" x="292.8" y="459.2" textLength="256.2" clip-path="url(#terminal-line-18)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)"></text><text class="terminal-r2" x="24.4" y="532.4" textLength="48.8" clip-path="url(#terminal-line-21)">/mcp</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r5" x="24.4" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)"></text><text class="terminal-r1" x="48.8" y="556.8" textLength="256.2" clip-path="url(#terminal-line-22)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r5" x="0" y="630" textLength="1464" clip-path="url(#terminal-line-25)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r6" x="24.4" y="654.4" textLength="134.2" clip-path="url(#terminal-line-26)">MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r7" x="36.6" y="703.2" textLength="207.4" clip-path="url(#terminal-line-28)">Local&#160;MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="183" clip-path="url(#terminal-line-29)">&#160;&#160;filesystem&#160;&#160;&#160;</text><text class="terminal-r8" x="219.6" y="727.6" textLength="109.8" clip-path="url(#terminal-line-29)">&#160;&#160;[stdio]</text><text class="terminal-r8" x="329.4" y="727.6" textLength="97.6" clip-path="url(#terminal-line-29)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="36.6" y="752" textLength="183" clip-path="url(#terminal-line-30)">&#160;&#160;broken-server</text><text class="terminal-r9" x="219.6" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;[stdio]</text><text class="terminal-r9" x="329.4" y="752" textLength="122" clip-path="url(#terminal-line-30)">&#160;&#160;no&#160;tools</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="183" clip-path="url(#terminal-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-r9" x="219.6" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-r9" x="329.4" y="776.4" textLength="97.6" clip-path="url(#terminal-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-2811199383-matrix">
<text class="terminal-2811199383-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-2811199383-line-0)">
</text><text class="terminal-2811199383-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-1)">
</text><text class="terminal-2811199383-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-2)">
</text><text class="terminal-2811199383-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-3)">
</text><text class="terminal-2811199383-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-4)">
</text><text class="terminal-2811199383-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-2811199383-line-5)">
</text><text class="terminal-2811199383-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-6)">
</text><text class="terminal-2811199383-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-7)">
</text><text class="terminal-2811199383-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-8)">
</text><text class="terminal-2811199383-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-9)">
</text><text class="terminal-2811199383-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-2811199383-line-10)">
</text><text class="terminal-2811199383-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-11)">
</text><text class="terminal-2811199383-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-12)">
</text><text class="terminal-2811199383-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-13)">
</text><text class="terminal-2811199383-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-14)">
</text><text class="terminal-2811199383-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-2811199383-line-15)">
</text><text class="terminal-2811199383-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-2811199383-line-16)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-2811199383-r2" x="170.8" y="410.4" textLength="146.4" clip-path="url(#terminal-2811199383-line-16)">Mistral&#160;Vibe</text><text class="terminal-2811199383-r1" x="317.2" y="410.4" textLength="122" clip-path="url(#terminal-2811199383-line-16)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-2811199383-r3" x="439.2" y="410.4" textLength="183" clip-path="url(#terminal-2811199383-line-16)">devstral-latest</text><text class="terminal-2811199383-r1" x="622.2" y="410.4" textLength="256.2" clip-path="url(#terminal-2811199383-line-16)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-2811199383-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-16)">
</text><text class="terminal-2811199383-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-2811199383-line-17)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-2811199383-r1" x="170.8" y="434.8" textLength="414.8" clip-path="url(#terminal-2811199383-line-17)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-2811199383-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-17)">
</text><text class="terminal-2811199383-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-2811199383-line-18)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-2811199383-r1" x="170.8" y="459.2" textLength="61" clip-path="url(#terminal-2811199383-line-18)">Type&#160;</text><text class="terminal-2811199383-r3" x="231.8" y="459.2" textLength="61" clip-path="url(#terminal-2811199383-line-18)">/help</text><text class="terminal-2811199383-r1" x="292.8" y="459.2" textLength="256.2" clip-path="url(#terminal-2811199383-line-18)">&#160;for&#160;more&#160;information</text><text class="terminal-2811199383-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-18)">
</text><text class="terminal-2811199383-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-19)">
</text><text class="terminal-2811199383-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-2811199383-line-20)">
</text><text class="terminal-2811199383-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-21)"></text><text class="terminal-2811199383-r2" x="24.4" y="532.4" textLength="48.8" clip-path="url(#terminal-2811199383-line-21)">/mcp</text><text class="terminal-2811199383-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-21)">
</text><text class="terminal-2811199383-r5" x="24.4" y="556.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-22)"></text><text class="terminal-2811199383-r1" x="48.8" y="556.8" textLength="256.2" clip-path="url(#terminal-2811199383-line-22)">MCP&#160;servers&#160;opened...</text><text class="terminal-2811199383-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-22)">
</text><text class="terminal-2811199383-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-23)">
</text><text class="terminal-2811199383-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-24)">
</text><text class="terminal-2811199383-r5" x="0" y="630" textLength="1464" clip-path="url(#terminal-2811199383-line-25)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-2811199383-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-2811199383-line-25)">
</text><text class="terminal-2811199383-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-26)"></text><text class="terminal-2811199383-r6" x="24.4" y="654.4" textLength="134.2" clip-path="url(#terminal-2811199383-line-26)">MCP&#160;Servers</text><text class="terminal-2811199383-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-26)"></text><text class="terminal-2811199383-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-26)">
</text><text class="terminal-2811199383-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-27)"></text><text class="terminal-2811199383-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-27)"></text><text class="terminal-2811199383-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-27)">
</text><text class="terminal-2811199383-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-28)"></text><text class="terminal-2811199383-r7" x="36.6" y="703.2" textLength="207.4" clip-path="url(#terminal-2811199383-line-28)">Local&#160;MCP&#160;Servers</text><text class="terminal-2811199383-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-28)"></text><text class="terminal-2811199383-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-28)">
</text><text class="terminal-2811199383-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-29)"></text><text class="terminal-2811199383-r7" x="36.6" y="727.6" textLength="183" clip-path="url(#terminal-2811199383-line-29)">&#160;&#160;filesystem&#160;&#160;&#160;</text><text class="terminal-2811199383-r8" x="219.6" y="727.6" textLength="109.8" clip-path="url(#terminal-2811199383-line-29)">&#160;&#160;[stdio]</text><text class="terminal-2811199383-r8" x="329.4" y="727.6" textLength="97.6" clip-path="url(#terminal-2811199383-line-29)">&#160;&#160;1&#160;tool</text><text class="terminal-2811199383-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-29)"></text><text class="terminal-2811199383-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-29)">
</text><text class="terminal-2811199383-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-2811199383-line-30)"></text><text class="terminal-2811199383-r1" x="36.6" y="752" textLength="183" clip-path="url(#terminal-2811199383-line-30)">&#160;&#160;broken-server</text><text class="terminal-2811199383-r9" x="219.6" y="752" textLength="109.8" clip-path="url(#terminal-2811199383-line-30)">&#160;&#160;[stdio]</text><text class="terminal-2811199383-r9" x="329.4" y="752" textLength="122" clip-path="url(#terminal-2811199383-line-30)">&#160;&#160;no&#160;tools</text><text class="terminal-2811199383-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-2811199383-line-30)"></text><text class="terminal-2811199383-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-2811199383-line-30)">
</text><text class="terminal-2811199383-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-31)"></text><text class="terminal-2811199383-r1" x="36.6" y="776.4" textLength="183" clip-path="url(#terminal-2811199383-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2811199383-r9" x="219.6" y="776.4" textLength="109.8" clip-path="url(#terminal-2811199383-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-2811199383-r9" x="329.4" y="776.4" textLength="97.6" clip-path="url(#terminal-2811199383-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-2811199383-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-31)"></text><text class="terminal-2811199383-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-2811199383-line-31)">
</text><text class="terminal-2811199383-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-32)"></text><text class="terminal-2811199383-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-32)"></text><text class="terminal-2811199383-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-2811199383-line-32)">
</text><text class="terminal-2811199383-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-33)"></text><text class="terminal-2811199383-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-2811199383-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-2811199383-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-33)"></text><text class="terminal-2811199383-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-2811199383-line-33)">
</text><text class="terminal-2811199383-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-2811199383-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-2811199383-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-2811199383-line-34)">
</text><text class="terminal-2811199383-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-2811199383-line-35)">/test/workdir</text><text class="terminal-2811199383-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-2811199383-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

View file

@ -19,188 +19,188 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-6499786123-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-6499786123-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #868887 }
.terminal-r10 { fill: #98a84b }
.terminal-6499786123-r1 { fill: #c5c8c6 }
.terminal-6499786123-r2 { fill: #ff8205;font-weight: bold }
.terminal-6499786123-r3 { fill: #68a0b3 }
.terminal-6499786123-r4 { fill: #ff8205 }
.terminal-6499786123-r5 { fill: #9a9b99 }
.terminal-6499786123-r6 { fill: #608ab1;font-weight: bold }
.terminal-6499786123-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-6499786123-r8 { fill: #9cafbd;font-weight: bold }
.terminal-6499786123-r9 { fill: #868887 }
.terminal-6499786123-r10 { fill: #98a84b }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-6499786123-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-6499786123-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-6499786123-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-6499786123-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-6499786123-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-6499786123-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-6499786123-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-6499786123-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-6499786123-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-6499786123-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-6499786123-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-6499786123-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-6499786123-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-6499786123-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-6499786123-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-6499786123-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-6499786123-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-6499786123-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-6499786123-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-6499786123-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-6499786123-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-6499786123-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-6499786123-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-6499786123-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-6499786123-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-6499786123-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-6499786123-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-6499786123-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-6499786123-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-6499786123-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-6499786123-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-6499786123-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-6499786123-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-6499786123-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-6499786123-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-6499786123-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithConnectors</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-6499786123-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithConnectors</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-6499786123-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="660.3" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="183" y="660.3" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="292.8" y="660.3" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="660.3" width="1037" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="0" y="361.6" textLength="134.2" clip-path="url(#terminal-line-14)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="361.6" textLength="146.4" clip-path="url(#terminal-line-14)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="361.6" textLength="122" clip-path="url(#terminal-line-14)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="361.6" textLength="183" clip-path="url(#terminal-line-14)">devstral-latest</text><text class="terminal-r1" x="622.2" y="361.6" textLength="256.2" clip-path="url(#terminal-line-14)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="0" y="386" textLength="134.2" clip-path="url(#terminal-line-15)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="386" textLength="585.6" clip-path="url(#terminal-line-15)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;1&#160;MCP&#160;server&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-line-16)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="410.4" textLength="61" clip-path="url(#terminal-line-16)">Type&#160;</text><text class="terminal-r3" x="231.8" y="410.4" textLength="61" clip-path="url(#terminal-line-16)">/help</text><text class="terminal-r1" x="292.8" y="410.4" textLength="256.2" clip-path="url(#terminal-line-16)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)"></text><text class="terminal-r2" x="24.4" y="483.6" textLength="48.8" clip-path="url(#terminal-line-19)">/mcp</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r5" x="24.4" y="508" textLength="12.2" clip-path="url(#terminal-line-20)"></text><text class="terminal-r1" x="48.8" y="508" textLength="256.2" clip-path="url(#terminal-line-20)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r5" x="0" y="581.2" textLength="1464" clip-path="url(#terminal-line-23)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r6" x="24.4" y="605.6" textLength="292.8" clip-path="url(#terminal-line-24)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r5" x="0" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r5" x="1451.8" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r7" x="36.6" y="654.4" textLength="207.4" clip-path="url(#terminal-line-26)">Local&#160;MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r7" x="36.6" y="678.8" textLength="146.4" clip-path="url(#terminal-line-27)">&#160;&#160;filesystem</text><text class="terminal-r8" x="183" y="678.8" textLength="109.8" clip-path="url(#terminal-line-27)">&#160;&#160;[stdio]</text><text class="terminal-r8" x="292.8" y="678.8" textLength="97.6" clip-path="url(#terminal-line-27)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="244" clip-path="url(#terminal-line-29)">Workspace&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-line-30)">&#160;&#160;gmail</text><text class="terminal-r9" x="122" y="752" textLength="158.6" clip-path="url(#terminal-line-30)">&#160;&#160;[connector]</text><text class="terminal-r9" x="280.6" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;3&#160;tools</text><text class="terminal-r10" x="414.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r9" x="427" y="752" textLength="122" clip-path="url(#terminal-line-30)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-line-31)">&#160;&#160;slack</text><text class="terminal-r9" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-line-31)">&#160;&#160;[connector]</text><text class="terminal-r9" x="280.6" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;2&#160;tools</text><text class="terminal-r10" x="414.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r9" x="427" y="776.4" textLength="122" clip-path="url(#terminal-line-31)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-6499786123-matrix">
<text class="terminal-6499786123-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-6499786123-line-0)">
</text><text class="terminal-6499786123-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-1)">
</text><text class="terminal-6499786123-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-2)">
</text><text class="terminal-6499786123-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-3)">
</text><text class="terminal-6499786123-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-4)">
</text><text class="terminal-6499786123-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-6499786123-line-5)">
</text><text class="terminal-6499786123-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-6)">
</text><text class="terminal-6499786123-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-7)">
</text><text class="terminal-6499786123-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-8)">
</text><text class="terminal-6499786123-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-9)">
</text><text class="terminal-6499786123-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-6499786123-line-10)">
</text><text class="terminal-6499786123-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-11)">
</text><text class="terminal-6499786123-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-12)">
</text><text class="terminal-6499786123-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-13)">
</text><text class="terminal-6499786123-r1" x="0" y="361.6" textLength="134.2" clip-path="url(#terminal-6499786123-line-14)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-6499786123-r2" x="170.8" y="361.6" textLength="146.4" clip-path="url(#terminal-6499786123-line-14)">Mistral&#160;Vibe</text><text class="terminal-6499786123-r1" x="317.2" y="361.6" textLength="122" clip-path="url(#terminal-6499786123-line-14)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-6499786123-r3" x="439.2" y="361.6" textLength="183" clip-path="url(#terminal-6499786123-line-14)">devstral-latest</text><text class="terminal-6499786123-r1" x="622.2" y="361.6" textLength="256.2" clip-path="url(#terminal-6499786123-line-14)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-6499786123-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-14)">
</text><text class="terminal-6499786123-r1" x="0" y="386" textLength="134.2" clip-path="url(#terminal-6499786123-line-15)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-6499786123-r1" x="170.8" y="386" textLength="585.6" clip-path="url(#terminal-6499786123-line-15)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;1&#160;MCP&#160;server&#160;·&#160;0&#160;skills</text><text class="terminal-6499786123-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-6499786123-line-15)">
</text><text class="terminal-6499786123-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-6499786123-line-16)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-6499786123-r1" x="170.8" y="410.4" textLength="61" clip-path="url(#terminal-6499786123-line-16)">Type&#160;</text><text class="terminal-6499786123-r3" x="231.8" y="410.4" textLength="61" clip-path="url(#terminal-6499786123-line-16)">/help</text><text class="terminal-6499786123-r1" x="292.8" y="410.4" textLength="256.2" clip-path="url(#terminal-6499786123-line-16)">&#160;for&#160;more&#160;information</text><text class="terminal-6499786123-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-16)">
</text><text class="terminal-6499786123-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-17)">
</text><text class="terminal-6499786123-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-18)">
</text><text class="terminal-6499786123-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-19)"></text><text class="terminal-6499786123-r2" x="24.4" y="483.6" textLength="48.8" clip-path="url(#terminal-6499786123-line-19)">/mcp</text><text class="terminal-6499786123-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-19)">
</text><text class="terminal-6499786123-r5" x="24.4" y="508" textLength="12.2" clip-path="url(#terminal-6499786123-line-20)"></text><text class="terminal-6499786123-r1" x="48.8" y="508" textLength="256.2" clip-path="url(#terminal-6499786123-line-20)">MCP&#160;servers&#160;opened...</text><text class="terminal-6499786123-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-6499786123-line-20)">
</text><text class="terminal-6499786123-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-21)">
</text><text class="terminal-6499786123-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-22)">
</text><text class="terminal-6499786123-r5" x="0" y="581.2" textLength="1464" clip-path="url(#terminal-6499786123-line-23)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-6499786123-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-23)">
</text><text class="terminal-6499786123-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-24)"></text><text class="terminal-6499786123-r6" x="24.4" y="605.6" textLength="292.8" clip-path="url(#terminal-6499786123-line-24)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-6499786123-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-24)"></text><text class="terminal-6499786123-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-24)">
</text><text class="terminal-6499786123-r5" x="0" y="630" textLength="12.2" clip-path="url(#terminal-6499786123-line-25)"></text><text class="terminal-6499786123-r5" x="1451.8" y="630" textLength="12.2" clip-path="url(#terminal-6499786123-line-25)"></text><text class="terminal-6499786123-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-6499786123-line-25)">
</text><text class="terminal-6499786123-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-26)"></text><text class="terminal-6499786123-r7" x="36.6" y="654.4" textLength="207.4" clip-path="url(#terminal-6499786123-line-26)">Local&#160;MCP&#160;Servers</text><text class="terminal-6499786123-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-26)"></text><text class="terminal-6499786123-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-26)">
</text><text class="terminal-6499786123-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-27)"></text><text class="terminal-6499786123-r7" x="36.6" y="678.8" textLength="146.4" clip-path="url(#terminal-6499786123-line-27)">&#160;&#160;filesystem</text><text class="terminal-6499786123-r8" x="183" y="678.8" textLength="109.8" clip-path="url(#terminal-6499786123-line-27)">&#160;&#160;[stdio]</text><text class="terminal-6499786123-r8" x="292.8" y="678.8" textLength="97.6" clip-path="url(#terminal-6499786123-line-27)">&#160;&#160;1&#160;tool</text><text class="terminal-6499786123-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-27)"></text><text class="terminal-6499786123-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-27)">
</text><text class="terminal-6499786123-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-28)"></text><text class="terminal-6499786123-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-28)"></text><text class="terminal-6499786123-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-28)">
</text><text class="terminal-6499786123-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-29)"></text><text class="terminal-6499786123-r7" x="36.6" y="727.6" textLength="244" clip-path="url(#terminal-6499786123-line-29)">Workspace&#160;Connectors</text><text class="terminal-6499786123-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-29)"></text><text class="terminal-6499786123-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-29)">
</text><text class="terminal-6499786123-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-6499786123-line-30)"></text><text class="terminal-6499786123-r1" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-6499786123-line-30)">&#160;&#160;gmail</text><text class="terminal-6499786123-r9" x="122" y="752" textLength="158.6" clip-path="url(#terminal-6499786123-line-30)">&#160;&#160;[connector]</text><text class="terminal-6499786123-r9" x="280.6" y="752" textLength="109.8" clip-path="url(#terminal-6499786123-line-30)">&#160;&#160;3&#160;tools</text><text class="terminal-6499786123-r10" x="414.8" y="752" textLength="12.2" clip-path="url(#terminal-6499786123-line-30)"></text><text class="terminal-6499786123-r9" x="427" y="752" textLength="122" clip-path="url(#terminal-6499786123-line-30)">&#160;connected</text><text class="terminal-6499786123-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-6499786123-line-30)"></text><text class="terminal-6499786123-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-6499786123-line-30)">
</text><text class="terminal-6499786123-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-31)"></text><text class="terminal-6499786123-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-6499786123-line-31)">&#160;&#160;slack</text><text class="terminal-6499786123-r9" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-6499786123-line-31)">&#160;&#160;[connector]</text><text class="terminal-6499786123-r9" x="280.6" y="776.4" textLength="109.8" clip-path="url(#terminal-6499786123-line-31)">&#160;&#160;2&#160;tools</text><text class="terminal-6499786123-r10" x="414.8" y="776.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-31)"></text><text class="terminal-6499786123-r9" x="427" y="776.4" textLength="122" clip-path="url(#terminal-6499786123-line-31)">&#160;connected</text><text class="terminal-6499786123-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-31)"></text><text class="terminal-6499786123-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-6499786123-line-31)">
</text><text class="terminal-6499786123-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-32)"></text><text class="terminal-6499786123-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-32)"></text><text class="terminal-6499786123-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-6499786123-line-32)">
</text><text class="terminal-6499786123-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-33)"></text><text class="terminal-6499786123-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-6499786123-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-6499786123-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-33)"></text><text class="terminal-6499786123-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-6499786123-line-33)">
</text><text class="terminal-6499786123-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-6499786123-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-6499786123-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-6499786123-line-34)">
</text><text class="terminal-6499786123-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-6499786123-line-35)">/test/workdir</text><text class="terminal-6499786123-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-6499786123-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

View file

@ -19,189 +19,189 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-4242019355-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-4242019355-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #98a84b;font-weight: bold }
.terminal-r10 { fill: #868887 }
.terminal-r11 { fill: #98a84b }
.terminal-4242019355-r1 { fill: #c5c8c6 }
.terminal-4242019355-r2 { fill: #ff8205;font-weight: bold }
.terminal-4242019355-r3 { fill: #68a0b3 }
.terminal-4242019355-r4 { fill: #ff8205 }
.terminal-4242019355-r5 { fill: #9a9b99 }
.terminal-4242019355-r6 { fill: #608ab1;font-weight: bold }
.terminal-4242019355-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-4242019355-r8 { fill: #9cafbd;font-weight: bold }
.terminal-4242019355-r9 { fill: #98a84b;font-weight: bold }
.terminal-4242019355-r10 { fill: #868887 }
.terminal-4242019355-r11 { fill: #98a84b }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-4242019355-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-4242019355-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-4242019355-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-4242019355-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-4242019355-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-4242019355-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-4242019355-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-4242019355-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-4242019355-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-4242019355-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-4242019355-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-4242019355-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-4242019355-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-4242019355-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-4242019355-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-4242019355-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-4242019355-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-4242019355-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-4242019355-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-4242019355-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-4242019355-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-4242019355-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-4242019355-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-4242019355-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-4242019355-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-4242019355-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-4242019355-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-4242019355-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-4242019355-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-4242019355-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-4242019355-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-4242019355-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-4242019355-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-4242019355-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-4242019355-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-4242019355-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppConnectorsOnly</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-4242019355-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppConnectorsOnly</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-4242019355-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="733.5" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="122" y="733.5" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="280.6" y="733.5" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="733.5" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="414.8" y="733.5" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="427" y="733.5" width="122" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="549" y="733.5" width="878.4" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-line-17)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-line-17)">devstral-latest</text><text class="terminal-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="459.2" textLength="597.8" clip-path="url(#terminal-line-18)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;0&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">Type&#160;</text><text class="terminal-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">/help</text><text class="terminal-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)"></text><text class="terminal-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-line-22)">/mcp</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)"></text><text class="terminal-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r6" x="24.4" y="678.8" textLength="292.8" clip-path="url(#terminal-line-27)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="244" clip-path="url(#terminal-line-29)">Workspace&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r7" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-line-30)">&#160;&#160;gmail</text><text class="terminal-r8" x="122" y="752" textLength="158.6" clip-path="url(#terminal-line-30)">&#160;&#160;[connector]</text><text class="terminal-r8" x="280.6" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;3&#160;tools</text><text class="terminal-r9" x="414.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r8" x="427" y="752" textLength="122" clip-path="url(#terminal-line-30)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-line-31)">&#160;&#160;slack</text><text class="terminal-r10" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-line-31)">&#160;&#160;[connector]</text><text class="terminal-r10" x="280.6" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;2&#160;tools</text><text class="terminal-r11" x="414.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r10" x="427" y="776.4" textLength="122" clip-path="url(#terminal-line-31)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-4242019355-matrix">
<text class="terminal-4242019355-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-4242019355-line-0)">
</text><text class="terminal-4242019355-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-1)">
</text><text class="terminal-4242019355-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-2)">
</text><text class="terminal-4242019355-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-3)">
</text><text class="terminal-4242019355-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-4)">
</text><text class="terminal-4242019355-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-4242019355-line-5)">
</text><text class="terminal-4242019355-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-6)">
</text><text class="terminal-4242019355-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-7)">
</text><text class="terminal-4242019355-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-8)">
</text><text class="terminal-4242019355-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-9)">
</text><text class="terminal-4242019355-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-4242019355-line-10)">
</text><text class="terminal-4242019355-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-11)">
</text><text class="terminal-4242019355-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-12)">
</text><text class="terminal-4242019355-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-13)">
</text><text class="terminal-4242019355-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-14)">
</text><text class="terminal-4242019355-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-4242019355-line-15)">
</text><text class="terminal-4242019355-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-16)">
</text><text class="terminal-4242019355-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-4242019355-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-4242019355-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-4242019355-line-17)">Mistral&#160;Vibe</text><text class="terminal-4242019355-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-4242019355-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-4242019355-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-4242019355-line-17)">devstral-latest</text><text class="terminal-4242019355-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-4242019355-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-4242019355-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-17)">
</text><text class="terminal-4242019355-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-4242019355-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-4242019355-r1" x="170.8" y="459.2" textLength="597.8" clip-path="url(#terminal-4242019355-line-18)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;0&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-4242019355-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-18)">
</text><text class="terminal-4242019355-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-4242019355-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-4242019355-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-4242019355-line-19)">Type&#160;</text><text class="terminal-4242019355-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-4242019355-line-19)">/help</text><text class="terminal-4242019355-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-4242019355-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-4242019355-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-19)">
</text><text class="terminal-4242019355-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-4242019355-line-20)">
</text><text class="terminal-4242019355-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-21)">
</text><text class="terminal-4242019355-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-22)"></text><text class="terminal-4242019355-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-4242019355-line-22)">/mcp</text><text class="terminal-4242019355-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-22)">
</text><text class="terminal-4242019355-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-23)"></text><text class="terminal-4242019355-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-4242019355-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-4242019355-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-23)">
</text><text class="terminal-4242019355-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-24)">
</text><text class="terminal-4242019355-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-4242019355-line-25)">
</text><text class="terminal-4242019355-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-4242019355-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-4242019355-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-26)">
</text><text class="terminal-4242019355-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-27)"></text><text class="terminal-4242019355-r6" x="24.4" y="678.8" textLength="292.8" clip-path="url(#terminal-4242019355-line-27)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-4242019355-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-27)"></text><text class="terminal-4242019355-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-27)">
</text><text class="terminal-4242019355-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-28)"></text><text class="terminal-4242019355-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-28)"></text><text class="terminal-4242019355-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-28)">
</text><text class="terminal-4242019355-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-29)"></text><text class="terminal-4242019355-r7" x="36.6" y="727.6" textLength="244" clip-path="url(#terminal-4242019355-line-29)">Workspace&#160;Connectors</text><text class="terminal-4242019355-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-29)"></text><text class="terminal-4242019355-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-29)">
</text><text class="terminal-4242019355-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-4242019355-line-30)"></text><text class="terminal-4242019355-r7" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-4242019355-line-30)">&#160;&#160;gmail</text><text class="terminal-4242019355-r8" x="122" y="752" textLength="158.6" clip-path="url(#terminal-4242019355-line-30)">&#160;&#160;[connector]</text><text class="terminal-4242019355-r8" x="280.6" y="752" textLength="109.8" clip-path="url(#terminal-4242019355-line-30)">&#160;&#160;3&#160;tools</text><text class="terminal-4242019355-r9" x="414.8" y="752" textLength="12.2" clip-path="url(#terminal-4242019355-line-30)"></text><text class="terminal-4242019355-r8" x="427" y="752" textLength="122" clip-path="url(#terminal-4242019355-line-30)">&#160;connected</text><text class="terminal-4242019355-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-4242019355-line-30)"></text><text class="terminal-4242019355-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-4242019355-line-30)">
</text><text class="terminal-4242019355-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-31)"></text><text class="terminal-4242019355-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-4242019355-line-31)">&#160;&#160;slack</text><text class="terminal-4242019355-r10" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-4242019355-line-31)">&#160;&#160;[connector]</text><text class="terminal-4242019355-r10" x="280.6" y="776.4" textLength="109.8" clip-path="url(#terminal-4242019355-line-31)">&#160;&#160;2&#160;tools</text><text class="terminal-4242019355-r11" x="414.8" y="776.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-31)"></text><text class="terminal-4242019355-r10" x="427" y="776.4" textLength="122" clip-path="url(#terminal-4242019355-line-31)">&#160;connected</text><text class="terminal-4242019355-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-31)"></text><text class="terminal-4242019355-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-4242019355-line-31)">
</text><text class="terminal-4242019355-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-32)"></text><text class="terminal-4242019355-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-32)"></text><text class="terminal-4242019355-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-4242019355-line-32)">
</text><text class="terminal-4242019355-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-33)"></text><text class="terminal-4242019355-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-4242019355-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-4242019355-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-33)"></text><text class="terminal-4242019355-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-4242019355-line-33)">
</text><text class="terminal-4242019355-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-4242019355-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-4242019355-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-4242019355-line-34)">
</text><text class="terminal-4242019355-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-4242019355-line-35)">/test/workdir</text><text class="terminal-4242019355-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-4242019355-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

View file

@ -0,0 +1,206 @@
<svg class="rich-terminal" viewBox="0 0 1482 928.4" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #98a84b;font-weight: bold }
.terminal-r10 { fill: #868887 }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppConnectorsMixedState</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="709.1" width="85.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="122" y="709.1" width="158.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="280.6" y="709.1" width="122" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="402.6" y="709.1" width="24.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="427" y="709.1" width="12.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="439.2" y="709.1" width="122" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="561.2" y="709.1" width="866.2" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-line-16)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="410.4" textLength="146.4" clip-path="url(#terminal-line-16)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="410.4" textLength="122" clip-path="url(#terminal-line-16)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="410.4" textLength="183" clip-path="url(#terminal-line-16)">devstral-latest</text><text class="terminal-r1" x="622.2" y="410.4" textLength="256.2" clip-path="url(#terminal-line-16)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-line-17)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="434.8" textLength="597.8" clip-path="url(#terminal-line-17)">1&#160;model&#160;·&#160;3&#160;connectors&#160;·&#160;0&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="459.2" textLength="61" clip-path="url(#terminal-line-18)">Type&#160;</text><text class="terminal-r3" x="231.8" y="459.2" textLength="61" clip-path="url(#terminal-line-18)">/help</text><text class="terminal-r1" x="292.8" y="459.2" textLength="256.2" clip-path="url(#terminal-line-18)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)"></text><text class="terminal-r2" x="24.4" y="532.4" textLength="48.8" clip-path="url(#terminal-line-21)">/mcp</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r5" x="24.4" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)"></text><text class="terminal-r1" x="48.8" y="556.8" textLength="256.2" clip-path="url(#terminal-line-22)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r5" x="0" y="630" textLength="1464" clip-path="url(#terminal-line-25)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r6" x="24.4" y="654.4" textLength="292.8" clip-path="url(#terminal-line-26)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r7" x="36.6" y="703.2" textLength="244" clip-path="url(#terminal-line-28)">Workspace&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="85.4" clip-path="url(#terminal-line-29)">&#160;&#160;alpha</text><text class="terminal-r8" x="122" y="727.6" textLength="158.6" clip-path="url(#terminal-line-29)">&#160;&#160;[connector]</text><text class="terminal-r8" x="280.6" y="727.6" textLength="122" clip-path="url(#terminal-line-29)">&#160;&#160;1&#160;tool&#160;&#160;</text><text class="terminal-r9" x="427" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r8" x="439.2" y="727.6" textLength="122" clip-path="url(#terminal-line-29)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-line-30)">&#160;&#160;beta&#160;</text><text class="terminal-r10" x="122" y="752" textLength="158.6" clip-path="url(#terminal-line-30)">&#160;&#160;[connector]</text><text class="terminal-r10" x="280.6" y="752" textLength="122" clip-path="url(#terminal-line-30)">&#160;&#160;no&#160;tools</text><text class="terminal-r10" x="427" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r10" x="439.2" y="752" textLength="170.8" clip-path="url(#terminal-line-30)">&#160;not&#160;connected</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-line-31)">&#160;&#160;zeta&#160;</text><text class="terminal-r10" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-line-31)">&#160;&#160;[connector]</text><text class="terminal-r10" x="280.6" y="776.4" textLength="122" clip-path="url(#terminal-line-31)">&#160;&#160;no&#160;tools</text><text class="terminal-r10" x="427" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r10" x="439.2" y="776.4" textLength="170.8" clip-path="url(#terminal-line-31)">&#160;not&#160;connected</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -19,185 +19,185 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-1928557542-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-1928557542-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-1928557542-r1 { fill: #c5c8c6 }
.terminal-1928557542-r2 { fill: #ff8205;font-weight: bold }
.terminal-1928557542-r3 { fill: #68a0b3 }
.terminal-1928557542-r4 { fill: #ff8205 }
.terminal-1928557542-r5 { fill: #9a9b99 }
.terminal-1928557542-r6 { fill: #608ab1;font-weight: bold }
.terminal-1928557542-r7 { fill: #c5c8c6;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-1928557542-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-1928557542-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-1928557542-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-1928557542-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-1928557542-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-1928557542-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-1928557542-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-1928557542-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-1928557542-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-1928557542-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-1928557542-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-1928557542-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-1928557542-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-1928557542-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-1928557542-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-1928557542-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-1928557542-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-1928557542-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-1928557542-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-1928557542-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-1928557542-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-1928557542-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-1928557542-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-1928557542-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-1928557542-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-1928557542-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-1928557542-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-1928557542-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-1928557542-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-1928557542-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-1928557542-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-1928557542-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-1928557542-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-1928557542-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-1928557542-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-1928557542-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithConnectors</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-1928557542-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithConnectors</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-1928557542-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="733.5" width="183" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="219.6" y="733.5" width="317.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="536.8" y="733.5" width="890.6" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="459.2" textLength="146.4" clip-path="url(#terminal-line-18)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="459.2" textLength="122" clip-path="url(#terminal-line-18)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="459.2" textLength="183" clip-path="url(#terminal-line-18)">devstral-latest</text><text class="terminal-r1" x="622.2" y="459.2" textLength="256.2" clip-path="url(#terminal-line-18)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="483.6" textLength="585.6" clip-path="url(#terminal-line-19)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;1&#160;MCP&#160;server&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-line-20)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="508" textLength="61" clip-path="url(#terminal-line-20)">Type&#160;</text><text class="terminal-r3" x="231.8" y="508" textLength="61" clip-path="url(#terminal-line-20)">/help</text><text class="terminal-r1" x="292.8" y="508" textLength="256.2" clip-path="url(#terminal-line-20)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)"></text><text class="terminal-r2" x="24.4" y="581.2" textLength="48.8" clip-path="url(#terminal-line-23)">/mcp</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r5" x="24.4" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r1" x="48.8" y="605.6" textLength="256.2" clip-path="url(#terminal-line-24)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="1464" clip-path="url(#terminal-line-27)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r6" x="24.4" y="703.2" textLength="195.2" clip-path="url(#terminal-line-28)">Connector:&#160;slack</text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r7" x="36.6" y="752" textLength="183" clip-path="url(#terminal-line-30)">search_messages</text><text class="terminal-r7" x="219.6" y="752" textLength="317.2" clip-path="url(#terminal-line-30)">&#160;&#160;-&#160;&#160;Search&#160;Slack&#160;messages</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r7" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-line-31)">send_message</text><text class="terminal-r1" x="183" y="776.4" textLength="305" clip-path="url(#terminal-line-31)">&#160;&#160;-&#160;&#160;Send&#160;a&#160;Slack&#160;message</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="463.6" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Backspace&#160;Back&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-1928557542-matrix">
<text class="terminal-1928557542-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-1928557542-line-0)">
</text><text class="terminal-1928557542-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-1)">
</text><text class="terminal-1928557542-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-2)">
</text><text class="terminal-1928557542-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-3)">
</text><text class="terminal-1928557542-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-4)">
</text><text class="terminal-1928557542-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-1928557542-line-5)">
</text><text class="terminal-1928557542-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-6)">
</text><text class="terminal-1928557542-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-7)">
</text><text class="terminal-1928557542-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-8)">
</text><text class="terminal-1928557542-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-9)">
</text><text class="terminal-1928557542-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-1928557542-line-10)">
</text><text class="terminal-1928557542-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-11)">
</text><text class="terminal-1928557542-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-12)">
</text><text class="terminal-1928557542-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-13)">
</text><text class="terminal-1928557542-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-14)">
</text><text class="terminal-1928557542-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-1928557542-line-15)">
</text><text class="terminal-1928557542-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-16)">
</text><text class="terminal-1928557542-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-17)">
</text><text class="terminal-1928557542-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-1928557542-line-18)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-1928557542-r2" x="170.8" y="459.2" textLength="146.4" clip-path="url(#terminal-1928557542-line-18)">Mistral&#160;Vibe</text><text class="terminal-1928557542-r1" x="317.2" y="459.2" textLength="122" clip-path="url(#terminal-1928557542-line-18)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-1928557542-r3" x="439.2" y="459.2" textLength="183" clip-path="url(#terminal-1928557542-line-18)">devstral-latest</text><text class="terminal-1928557542-r1" x="622.2" y="459.2" textLength="256.2" clip-path="url(#terminal-1928557542-line-18)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-1928557542-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-18)">
</text><text class="terminal-1928557542-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-1928557542-line-19)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-1928557542-r1" x="170.8" y="483.6" textLength="585.6" clip-path="url(#terminal-1928557542-line-19)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;1&#160;MCP&#160;server&#160;·&#160;0&#160;skills</text><text class="terminal-1928557542-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-19)">
</text><text class="terminal-1928557542-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-1928557542-line-20)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-1928557542-r1" x="170.8" y="508" textLength="61" clip-path="url(#terminal-1928557542-line-20)">Type&#160;</text><text class="terminal-1928557542-r3" x="231.8" y="508" textLength="61" clip-path="url(#terminal-1928557542-line-20)">/help</text><text class="terminal-1928557542-r1" x="292.8" y="508" textLength="256.2" clip-path="url(#terminal-1928557542-line-20)">&#160;for&#160;more&#160;information</text><text class="terminal-1928557542-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-1928557542-line-20)">
</text><text class="terminal-1928557542-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-21)">
</text><text class="terminal-1928557542-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-22)">
</text><text class="terminal-1928557542-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-23)"></text><text class="terminal-1928557542-r2" x="24.4" y="581.2" textLength="48.8" clip-path="url(#terminal-1928557542-line-23)">/mcp</text><text class="terminal-1928557542-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-23)">
</text><text class="terminal-1928557542-r5" x="24.4" y="605.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-24)"></text><text class="terminal-1928557542-r1" x="48.8" y="605.6" textLength="256.2" clip-path="url(#terminal-1928557542-line-24)">MCP&#160;servers&#160;opened...</text><text class="terminal-1928557542-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-24)">
</text><text class="terminal-1928557542-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-1928557542-line-25)">
</text><text class="terminal-1928557542-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-26)">
</text><text class="terminal-1928557542-r5" x="0" y="678.8" textLength="1464" clip-path="url(#terminal-1928557542-line-27)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-1928557542-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-27)">
</text><text class="terminal-1928557542-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-28)"></text><text class="terminal-1928557542-r6" x="24.4" y="703.2" textLength="195.2" clip-path="url(#terminal-1928557542-line-28)">Connector:&#160;slack</text><text class="terminal-1928557542-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-28)"></text><text class="terminal-1928557542-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-28)">
</text><text class="terminal-1928557542-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-29)"></text><text class="terminal-1928557542-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-29)"></text><text class="terminal-1928557542-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-29)">
</text><text class="terminal-1928557542-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-1928557542-line-30)"></text><text class="terminal-1928557542-r7" x="36.6" y="752" textLength="183" clip-path="url(#terminal-1928557542-line-30)">search_messages</text><text class="terminal-1928557542-r7" x="219.6" y="752" textLength="317.2" clip-path="url(#terminal-1928557542-line-30)">&#160;&#160;-&#160;&#160;Search&#160;Slack&#160;messages</text><text class="terminal-1928557542-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-1928557542-line-30)"></text><text class="terminal-1928557542-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-1928557542-line-30)">
</text><text class="terminal-1928557542-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-31)"></text><text class="terminal-1928557542-r7" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-1928557542-line-31)">send_message</text><text class="terminal-1928557542-r1" x="183" y="776.4" textLength="305" clip-path="url(#terminal-1928557542-line-31)">&#160;&#160;-&#160;&#160;Send&#160;a&#160;Slack&#160;message</text><text class="terminal-1928557542-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-31)"></text><text class="terminal-1928557542-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-1928557542-line-31)">
</text><text class="terminal-1928557542-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-32)"></text><text class="terminal-1928557542-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-32)"></text><text class="terminal-1928557542-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-1928557542-line-32)">
</text><text class="terminal-1928557542-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-33)"></text><text class="terminal-1928557542-r5" x="24.4" y="825.2" textLength="597.8" clip-path="url(#terminal-1928557542-line-33)">↑↓&#160;Navigate&#160;&#160;Backspace&#160;Back&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-1928557542-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-33)"></text><text class="terminal-1928557542-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-1928557542-line-33)">
</text><text class="terminal-1928557542-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-1928557542-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-1928557542-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-1928557542-line-34)">
</text><text class="terminal-1928557542-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-1928557542-line-35)">/test/workdir</text><text class="terminal-1928557542-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-1928557542-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

@ -19,185 +19,185 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-4237726511-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-4237726511-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-4237726511-r1 { fill: #c5c8c6 }
.terminal-4237726511-r2 { fill: #ff8205;font-weight: bold }
.terminal-4237726511-r3 { fill: #68a0b3 }
.terminal-4237726511-r4 { fill: #ff8205 }
.terminal-4237726511-r5 { fill: #9a9b99 }
.terminal-4237726511-r6 { fill: #608ab1;font-weight: bold }
.terminal-4237726511-r7 { fill: #c5c8c6;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-4237726511-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-4237726511-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-4237726511-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-4237726511-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-4237726511-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-4237726511-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-4237726511-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-4237726511-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-4237726511-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-4237726511-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-4237726511-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-4237726511-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-4237726511-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-4237726511-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-4237726511-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-4237726511-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-4237726511-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-4237726511-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-4237726511-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-4237726511-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-4237726511-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-4237726511-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-4237726511-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-4237726511-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-4237726511-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-4237726511-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-4237726511-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-4237726511-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-4237726511-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-4237726511-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-4237726511-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-4237726511-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-4237726511-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-4237726511-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-4237726511-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-4237726511-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-4237726511-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-4237726511-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="757.9" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="146.4" y="757.9" width="378.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="524.6" y="757.9" width="902.8" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="483.6" textLength="146.4" clip-path="url(#terminal-line-19)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="483.6" textLength="122" clip-path="url(#terminal-line-19)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="483.6" textLength="183" clip-path="url(#terminal-line-19)">devstral-latest</text><text class="terminal-r1" x="622.2" y="483.6" textLength="256.2" clip-path="url(#terminal-line-19)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-line-20)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="508" textLength="414.8" clip-path="url(#terminal-line-20)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-line-21)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="532.4" textLength="61" clip-path="url(#terminal-line-21)">Type&#160;</text><text class="terminal-r3" x="231.8" y="532.4" textLength="61" clip-path="url(#terminal-line-21)">/help</text><text class="terminal-r1" x="292.8" y="532.4" textLength="256.2" clip-path="url(#terminal-line-21)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r2" x="24.4" y="605.6" textLength="48.8" clip-path="url(#terminal-line-24)">/mcp</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r1" x="48.8" y="630" textLength="256.2" clip-path="url(#terminal-line-25)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="1464" clip-path="url(#terminal-line-28)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r6" x="24.4" y="727.6" textLength="268.4" clip-path="url(#terminal-line-29)">MCP&#160;Server:&#160;filesystem</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r7" x="36.6" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">fake_tool</text><text class="terminal-r7" x="146.4" y="776.4" textLength="378.2" clip-path="url(#terminal-line-31)">&#160;&#160;-&#160;&#160;A&#160;fake&#160;tool&#160;for&#160;filesystem</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="463.6" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Backspace&#160;Back&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-4237726511-matrix">
<text class="terminal-4237726511-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-4237726511-line-0)">
</text><text class="terminal-4237726511-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-1)">
</text><text class="terminal-4237726511-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-2)">
</text><text class="terminal-4237726511-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-3)">
</text><text class="terminal-4237726511-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-4)">
</text><text class="terminal-4237726511-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-4237726511-line-5)">
</text><text class="terminal-4237726511-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-6)">
</text><text class="terminal-4237726511-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-7)">
</text><text class="terminal-4237726511-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-8)">
</text><text class="terminal-4237726511-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-9)">
</text><text class="terminal-4237726511-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-4237726511-line-10)">
</text><text class="terminal-4237726511-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-11)">
</text><text class="terminal-4237726511-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-12)">
</text><text class="terminal-4237726511-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-13)">
</text><text class="terminal-4237726511-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-14)">
</text><text class="terminal-4237726511-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-4237726511-line-15)">
</text><text class="terminal-4237726511-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-16)">
</text><text class="terminal-4237726511-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-17)">
</text><text class="terminal-4237726511-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-18)">
</text><text class="terminal-4237726511-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-4237726511-line-19)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-4237726511-r2" x="170.8" y="483.6" textLength="146.4" clip-path="url(#terminal-4237726511-line-19)">Mistral&#160;Vibe</text><text class="terminal-4237726511-r1" x="317.2" y="483.6" textLength="122" clip-path="url(#terminal-4237726511-line-19)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-4237726511-r3" x="439.2" y="483.6" textLength="183" clip-path="url(#terminal-4237726511-line-19)">devstral-latest</text><text class="terminal-4237726511-r1" x="622.2" y="483.6" textLength="256.2" clip-path="url(#terminal-4237726511-line-19)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-4237726511-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-19)">
</text><text class="terminal-4237726511-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-4237726511-line-20)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-4237726511-r1" x="170.8" y="508" textLength="414.8" clip-path="url(#terminal-4237726511-line-20)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-4237726511-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-4237726511-line-20)">
</text><text class="terminal-4237726511-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-4237726511-line-21)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-4237726511-r1" x="170.8" y="532.4" textLength="61" clip-path="url(#terminal-4237726511-line-21)">Type&#160;</text><text class="terminal-4237726511-r3" x="231.8" y="532.4" textLength="61" clip-path="url(#terminal-4237726511-line-21)">/help</text><text class="terminal-4237726511-r1" x="292.8" y="532.4" textLength="256.2" clip-path="url(#terminal-4237726511-line-21)">&#160;for&#160;more&#160;information</text><text class="terminal-4237726511-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-21)">
</text><text class="terminal-4237726511-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-22)">
</text><text class="terminal-4237726511-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-23)">
</text><text class="terminal-4237726511-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-24)"></text><text class="terminal-4237726511-r2" x="24.4" y="605.6" textLength="48.8" clip-path="url(#terminal-4237726511-line-24)">/mcp</text><text class="terminal-4237726511-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-24)">
</text><text class="terminal-4237726511-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#terminal-4237726511-line-25)"></text><text class="terminal-4237726511-r1" x="48.8" y="630" textLength="256.2" clip-path="url(#terminal-4237726511-line-25)">MCP&#160;servers&#160;opened...</text><text class="terminal-4237726511-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-4237726511-line-25)">
</text><text class="terminal-4237726511-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-26)">
</text><text class="terminal-4237726511-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-27)">
</text><text class="terminal-4237726511-r5" x="0" y="703.2" textLength="1464" clip-path="url(#terminal-4237726511-line-28)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-4237726511-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-28)">
</text><text class="terminal-4237726511-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-29)"></text><text class="terminal-4237726511-r6" x="24.4" y="727.6" textLength="268.4" clip-path="url(#terminal-4237726511-line-29)">MCP&#160;Server:&#160;filesystem</text><text class="terminal-4237726511-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-29)"></text><text class="terminal-4237726511-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-29)">
</text><text class="terminal-4237726511-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-4237726511-line-30)"></text><text class="terminal-4237726511-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-4237726511-line-30)"></text><text class="terminal-4237726511-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-4237726511-line-30)">
</text><text class="terminal-4237726511-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-31)"></text><text class="terminal-4237726511-r7" x="36.6" y="776.4" textLength="109.8" clip-path="url(#terminal-4237726511-line-31)">fake_tool</text><text class="terminal-4237726511-r7" x="146.4" y="776.4" textLength="378.2" clip-path="url(#terminal-4237726511-line-31)">&#160;&#160;-&#160;&#160;A&#160;fake&#160;tool&#160;for&#160;filesystem</text><text class="terminal-4237726511-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-31)"></text><text class="terminal-4237726511-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-4237726511-line-31)">
</text><text class="terminal-4237726511-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-32)"></text><text class="terminal-4237726511-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-32)"></text><text class="terminal-4237726511-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-4237726511-line-32)">
</text><text class="terminal-4237726511-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-33)"></text><text class="terminal-4237726511-r5" x="24.4" y="825.2" textLength="597.8" clip-path="url(#terminal-4237726511-line-33)">↑↓&#160;Navigate&#160;&#160;Backspace&#160;Back&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-4237726511-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-33)"></text><text class="terminal-4237726511-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-4237726511-line-33)">
</text><text class="terminal-4237726511-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-4237726511-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-4237726511-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-4237726511-line-34)">
</text><text class="terminal-4237726511-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-4237726511-line-35)">/test/workdir</text><text class="terminal-4237726511-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-4237726511-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

@ -19,183 +19,183 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-7514237046-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-7514237046-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-7514237046-r1 { fill: #c5c8c6 }
.terminal-7514237046-r2 { fill: #ff8205;font-weight: bold }
.terminal-7514237046-r3 { fill: #68a0b3 }
.terminal-7514237046-r4 { fill: #ff8205 }
.terminal-7514237046-r5 { fill: #9a9b99 }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-7514237046-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-7514237046-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-7514237046-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-7514237046-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-7514237046-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-7514237046-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-7514237046-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-7514237046-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-7514237046-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-7514237046-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-7514237046-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-7514237046-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-7514237046-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-7514237046-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-7514237046-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-7514237046-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-7514237046-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-7514237046-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-7514237046-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-7514237046-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-7514237046-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-7514237046-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-7514237046-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-7514237046-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-7514237046-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-7514237046-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-7514237046-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-7514237046-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-7514237046-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-7514237046-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-7514237046-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-7514237046-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-7514237046-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-7514237046-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-7514237046-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-7514237046-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-7514237046-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-7514237046-clip-terminal)">
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-line-20)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="508" textLength="146.4" clip-path="url(#terminal-line-20)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="508" textLength="122" clip-path="url(#terminal-line-20)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="508" textLength="183" clip-path="url(#terminal-line-20)">devstral-latest</text><text class="terminal-r1" x="622.2" y="508" textLength="256.2" clip-path="url(#terminal-line-20)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-line-21)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="532.4" textLength="414.8" clip-path="url(#terminal-line-21)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="0" y="556.8" textLength="134.2" clip-path="url(#terminal-line-22)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="556.8" textLength="61" clip-path="url(#terminal-line-22)">Type&#160;</text><text class="terminal-r3" x="231.8" y="556.8" textLength="61" clip-path="url(#terminal-line-22)">/help</text><text class="terminal-r1" x="292.8" y="556.8" textLength="256.2" clip-path="url(#terminal-line-22)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r4" x="0" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r2" x="24.4" y="630" textLength="48.8" clip-path="url(#terminal-line-25)">/mcp</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="24.4" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r1" x="48.8" y="654.4" textLength="256.2" clip-path="url(#terminal-line-26)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="24.4" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="48.8" y="678.8" textLength="231.8" clip-path="url(#terminal-line-27)">MCP&#160;servers&#160;closed.</text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="1464" clip-path="url(#terminal-line-30)">┌────────────────────────────────────────────────────────────────────────────────────────────────────────────&#160;default&#160;─┐</text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r2" x="24.4" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">&gt;</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-7514237046-matrix">
<text class="terminal-7514237046-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-7514237046-line-0)">
</text><text class="terminal-7514237046-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-1)">
</text><text class="terminal-7514237046-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-2)">
</text><text class="terminal-7514237046-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-3)">
</text><text class="terminal-7514237046-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-4)">
</text><text class="terminal-7514237046-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-7514237046-line-5)">
</text><text class="terminal-7514237046-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-6)">
</text><text class="terminal-7514237046-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-7)">
</text><text class="terminal-7514237046-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-8)">
</text><text class="terminal-7514237046-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-9)">
</text><text class="terminal-7514237046-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-7514237046-line-10)">
</text><text class="terminal-7514237046-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-11)">
</text><text class="terminal-7514237046-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-12)">
</text><text class="terminal-7514237046-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-13)">
</text><text class="terminal-7514237046-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-14)">
</text><text class="terminal-7514237046-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-7514237046-line-15)">
</text><text class="terminal-7514237046-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-16)">
</text><text class="terminal-7514237046-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-17)">
</text><text class="terminal-7514237046-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-18)">
</text><text class="terminal-7514237046-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-19)">
</text><text class="terminal-7514237046-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-7514237046-line-20)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-7514237046-r2" x="170.8" y="508" textLength="146.4" clip-path="url(#terminal-7514237046-line-20)">Mistral&#160;Vibe</text><text class="terminal-7514237046-r1" x="317.2" y="508" textLength="122" clip-path="url(#terminal-7514237046-line-20)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-7514237046-r3" x="439.2" y="508" textLength="183" clip-path="url(#terminal-7514237046-line-20)">devstral-latest</text><text class="terminal-7514237046-r1" x="622.2" y="508" textLength="256.2" clip-path="url(#terminal-7514237046-line-20)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-7514237046-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-7514237046-line-20)">
</text><text class="terminal-7514237046-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-7514237046-line-21)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-7514237046-r1" x="170.8" y="532.4" textLength="414.8" clip-path="url(#terminal-7514237046-line-21)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-7514237046-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-21)">
</text><text class="terminal-7514237046-r1" x="0" y="556.8" textLength="134.2" clip-path="url(#terminal-7514237046-line-22)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-7514237046-r1" x="170.8" y="556.8" textLength="61" clip-path="url(#terminal-7514237046-line-22)">Type&#160;</text><text class="terminal-7514237046-r3" x="231.8" y="556.8" textLength="61" clip-path="url(#terminal-7514237046-line-22)">/help</text><text class="terminal-7514237046-r1" x="292.8" y="556.8" textLength="256.2" clip-path="url(#terminal-7514237046-line-22)">&#160;for&#160;more&#160;information</text><text class="terminal-7514237046-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-22)">
</text><text class="terminal-7514237046-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-23)">
</text><text class="terminal-7514237046-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-24)">
</text><text class="terminal-7514237046-r4" x="0" y="630" textLength="12.2" clip-path="url(#terminal-7514237046-line-25)"></text><text class="terminal-7514237046-r2" x="24.4" y="630" textLength="48.8" clip-path="url(#terminal-7514237046-line-25)">/mcp</text><text class="terminal-7514237046-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-7514237046-line-25)">
</text><text class="terminal-7514237046-r5" x="24.4" y="654.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-26)"></text><text class="terminal-7514237046-r1" x="48.8" y="654.4" textLength="256.2" clip-path="url(#terminal-7514237046-line-26)">MCP&#160;servers&#160;opened...</text><text class="terminal-7514237046-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-26)">
</text><text class="terminal-7514237046-r5" x="24.4" y="678.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-27)"></text><text class="terminal-7514237046-r1" x="48.8" y="678.8" textLength="231.8" clip-path="url(#terminal-7514237046-line-27)">MCP&#160;servers&#160;closed.</text><text class="terminal-7514237046-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-27)">
</text><text class="terminal-7514237046-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-28)">
</text><text class="terminal-7514237046-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-29)">
</text><text class="terminal-7514237046-r5" x="0" y="752" textLength="1464" clip-path="url(#terminal-7514237046-line-30)">┌────────────────────────────────────────────────────────────────────────────────────────────────────────────&#160;default&#160;─┐</text><text class="terminal-7514237046-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-7514237046-line-30)">
</text><text class="terminal-7514237046-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-31)"></text><text class="terminal-7514237046-r2" x="24.4" y="776.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-31)">&gt;</text><text class="terminal-7514237046-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-31)"></text><text class="terminal-7514237046-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-7514237046-line-31)">
</text><text class="terminal-7514237046-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-32)"></text><text class="terminal-7514237046-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-32)"></text><text class="terminal-7514237046-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-7514237046-line-32)">
</text><text class="terminal-7514237046-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-33)"></text><text class="terminal-7514237046-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-33)"></text><text class="terminal-7514237046-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-7514237046-line-33)">
</text><text class="terminal-7514237046-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-7514237046-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-7514237046-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-7514237046-line-34)">
</text><text class="terminal-7514237046-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-7514237046-line-35)">/test/workdir</text><text class="terminal-7514237046-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-7514237046-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

@ -19,183 +19,183 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-9108451134-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-9108451134-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-9108451134-r1 { fill: #c5c8c6 }
.terminal-9108451134-r2 { fill: #ff8205;font-weight: bold }
.terminal-9108451134-r3 { fill: #68a0b3 }
.terminal-9108451134-r4 { fill: #ff8205 }
.terminal-9108451134-r5 { fill: #9a9b99 }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-9108451134-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-9108451134-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-9108451134-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-9108451134-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-9108451134-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-9108451134-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-9108451134-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-9108451134-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-9108451134-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-9108451134-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-9108451134-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-9108451134-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-9108451134-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-9108451134-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-9108451134-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-9108451134-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-9108451134-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-9108451134-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-9108451134-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-9108451134-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-9108451134-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-9108451134-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-9108451134-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-9108451134-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-9108451134-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-9108451134-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-9108451134-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-9108451134-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-9108451134-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-9108451134-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-9108451134-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-9108451134-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-9108451134-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-9108451134-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-9108451134-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-9108451134-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppNoMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-9108451134-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppNoMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-9108451134-clip-terminal)">
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-line-21)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="532.4" textLength="146.4" clip-path="url(#terminal-line-21)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="532.4" textLength="122" clip-path="url(#terminal-line-21)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="532.4" textLength="183" clip-path="url(#terminal-line-21)">devstral-latest</text><text class="terminal-r1" x="622.2" y="532.4" textLength="256.2" clip-path="url(#terminal-line-21)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="0" y="556.8" textLength="134.2" clip-path="url(#terminal-line-22)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="556.8" textLength="414.8" clip-path="url(#terminal-line-22)">1&#160;model&#160;·&#160;0&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r1" x="0" y="581.2" textLength="134.2" clip-path="url(#terminal-line-23)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="581.2" textLength="61" clip-path="url(#terminal-line-23)">Type&#160;</text><text class="terminal-r3" x="231.8" y="581.2" textLength="61" clip-path="url(#terminal-line-23)">/help</text><text class="terminal-r1" x="292.8" y="581.2" textLength="256.2" clip-path="url(#terminal-line-23)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r2" x="24.4" y="654.4" textLength="48.8" clip-path="url(#terminal-line-26)">/mcp</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="24.4" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="48.8" y="678.8" textLength="317.2" clip-path="url(#terminal-line-27)">No&#160;MCP&#160;servers&#160;configured.</text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="1464" clip-path="url(#terminal-line-30)">┌────────────────────────────────────────────────────────────────────────────────────────────────────────────&#160;default&#160;─┐</text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r2" x="24.4" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">&gt;</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-9108451134-matrix">
<text class="terminal-9108451134-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-9108451134-line-0)">
</text><text class="terminal-9108451134-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-1)">
</text><text class="terminal-9108451134-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-2)">
</text><text class="terminal-9108451134-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-3)">
</text><text class="terminal-9108451134-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-4)">
</text><text class="terminal-9108451134-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-9108451134-line-5)">
</text><text class="terminal-9108451134-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-6)">
</text><text class="terminal-9108451134-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-7)">
</text><text class="terminal-9108451134-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-8)">
</text><text class="terminal-9108451134-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-9)">
</text><text class="terminal-9108451134-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-9108451134-line-10)">
</text><text class="terminal-9108451134-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-11)">
</text><text class="terminal-9108451134-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-12)">
</text><text class="terminal-9108451134-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-13)">
</text><text class="terminal-9108451134-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-14)">
</text><text class="terminal-9108451134-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-9108451134-line-15)">
</text><text class="terminal-9108451134-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-16)">
</text><text class="terminal-9108451134-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-17)">
</text><text class="terminal-9108451134-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-18)">
</text><text class="terminal-9108451134-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-19)">
</text><text class="terminal-9108451134-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-9108451134-line-20)">
</text><text class="terminal-9108451134-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-9108451134-line-21)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-9108451134-r2" x="170.8" y="532.4" textLength="146.4" clip-path="url(#terminal-9108451134-line-21)">Mistral&#160;Vibe</text><text class="terminal-9108451134-r1" x="317.2" y="532.4" textLength="122" clip-path="url(#terminal-9108451134-line-21)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-9108451134-r3" x="439.2" y="532.4" textLength="183" clip-path="url(#terminal-9108451134-line-21)">devstral-latest</text><text class="terminal-9108451134-r1" x="622.2" y="532.4" textLength="256.2" clip-path="url(#terminal-9108451134-line-21)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-9108451134-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-21)">
</text><text class="terminal-9108451134-r1" x="0" y="556.8" textLength="134.2" clip-path="url(#terminal-9108451134-line-22)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-9108451134-r1" x="170.8" y="556.8" textLength="414.8" clip-path="url(#terminal-9108451134-line-22)">1&#160;model&#160;·&#160;0&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-9108451134-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-22)">
</text><text class="terminal-9108451134-r1" x="0" y="581.2" textLength="134.2" clip-path="url(#terminal-9108451134-line-23)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-9108451134-r1" x="170.8" y="581.2" textLength="61" clip-path="url(#terminal-9108451134-line-23)">Type&#160;</text><text class="terminal-9108451134-r3" x="231.8" y="581.2" textLength="61" clip-path="url(#terminal-9108451134-line-23)">/help</text><text class="terminal-9108451134-r1" x="292.8" y="581.2" textLength="256.2" clip-path="url(#terminal-9108451134-line-23)">&#160;for&#160;more&#160;information</text><text class="terminal-9108451134-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-23)">
</text><text class="terminal-9108451134-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-24)">
</text><text class="terminal-9108451134-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-9108451134-line-25)">
</text><text class="terminal-9108451134-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-26)"></text><text class="terminal-9108451134-r2" x="24.4" y="654.4" textLength="48.8" clip-path="url(#terminal-9108451134-line-26)">/mcp</text><text class="terminal-9108451134-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-26)">
</text><text class="terminal-9108451134-r5" x="24.4" y="678.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-27)"></text><text class="terminal-9108451134-r1" x="48.8" y="678.8" textLength="317.2" clip-path="url(#terminal-9108451134-line-27)">No&#160;MCP&#160;servers&#160;configured.</text><text class="terminal-9108451134-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-27)">
</text><text class="terminal-9108451134-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-28)">
</text><text class="terminal-9108451134-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-29)">
</text><text class="terminal-9108451134-r5" x="0" y="752" textLength="1464" clip-path="url(#terminal-9108451134-line-30)">┌────────────────────────────────────────────────────────────────────────────────────────────────────────────&#160;default&#160;─┐</text><text class="terminal-9108451134-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-9108451134-line-30)">
</text><text class="terminal-9108451134-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-31)"></text><text class="terminal-9108451134-r2" x="24.4" y="776.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-31)">&gt;</text><text class="terminal-9108451134-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-31)"></text><text class="terminal-9108451134-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-9108451134-line-31)">
</text><text class="terminal-9108451134-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-32)"></text><text class="terminal-9108451134-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-32)"></text><text class="terminal-9108451134-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-9108451134-line-32)">
</text><text class="terminal-9108451134-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-33)"></text><text class="terminal-9108451134-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-33)"></text><text class="terminal-9108451134-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-9108451134-line-33)">
</text><text class="terminal-9108451134-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-9108451134-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-9108451134-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-9108451134-line-34)">
</text><text class="terminal-9108451134-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-9108451134-line-35)">/test/workdir</text><text class="terminal-9108451134-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-9108451134-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

@ -19,187 +19,187 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-606925797-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-606925797-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #868887 }
.terminal-606925797-r1 { fill: #c5c8c6 }
.terminal-606925797-r2 { fill: #ff8205;font-weight: bold }
.terminal-606925797-r3 { fill: #68a0b3 }
.terminal-606925797-r4 { fill: #ff8205 }
.terminal-606925797-r5 { fill: #9a9b99 }
.terminal-606925797-r6 { fill: #608ab1;font-weight: bold }
.terminal-606925797-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-606925797-r8 { fill: #9cafbd;font-weight: bold }
.terminal-606925797-r9 { fill: #868887 }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-606925797-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-606925797-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-606925797-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-606925797-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-606925797-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-606925797-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-606925797-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-606925797-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-606925797-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-606925797-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-606925797-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-606925797-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-606925797-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-606925797-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-606925797-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-606925797-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-606925797-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-606925797-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-606925797-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-606925797-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-606925797-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-606925797-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-606925797-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-606925797-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-606925797-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-606925797-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-606925797-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-606925797-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-606925797-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-606925797-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-606925797-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-606925797-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-606925797-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-606925797-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-606925797-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-606925797-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-606925797-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-606925797-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="733.5" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="183" y="733.5" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="292.8" y="733.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="733.5" width="1037" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-line-17)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-line-17)">devstral-latest</text><text class="terminal-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">Type&#160;</text><text class="terminal-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">/help</text><text class="terminal-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)"></text><text class="terminal-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-line-22)">/mcp</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)"></text><text class="terminal-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-line-27)">MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r7" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-line-30)">&#160;&#160;filesystem</text><text class="terminal-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;[stdio]</text><text class="terminal-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-606925797-matrix">
<text class="terminal-606925797-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-606925797-line-0)">
</text><text class="terminal-606925797-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-606925797-line-1)">
</text><text class="terminal-606925797-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-606925797-line-2)">
</text><text class="terminal-606925797-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-606925797-line-3)">
</text><text class="terminal-606925797-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-606925797-line-4)">
</text><text class="terminal-606925797-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-606925797-line-5)">
</text><text class="terminal-606925797-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-606925797-line-6)">
</text><text class="terminal-606925797-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-606925797-line-7)">
</text><text class="terminal-606925797-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-606925797-line-8)">
</text><text class="terminal-606925797-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-606925797-line-9)">
</text><text class="terminal-606925797-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-606925797-line-10)">
</text><text class="terminal-606925797-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-606925797-line-11)">
</text><text class="terminal-606925797-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-606925797-line-12)">
</text><text class="terminal-606925797-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-606925797-line-13)">
</text><text class="terminal-606925797-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-606925797-line-14)">
</text><text class="terminal-606925797-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-606925797-line-15)">
</text><text class="terminal-606925797-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-606925797-line-16)">
</text><text class="terminal-606925797-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-606925797-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-606925797-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-606925797-line-17)">Mistral&#160;Vibe</text><text class="terminal-606925797-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-606925797-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-606925797-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-606925797-line-17)">devstral-latest</text><text class="terminal-606925797-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-606925797-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-606925797-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-606925797-line-17)">
</text><text class="terminal-606925797-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-606925797-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-606925797-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-606925797-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-606925797-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-606925797-line-18)">
</text><text class="terminal-606925797-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-606925797-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-606925797-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-606925797-line-19)">Type&#160;</text><text class="terminal-606925797-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-606925797-line-19)">/help</text><text class="terminal-606925797-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-606925797-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-606925797-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-606925797-line-19)">
</text><text class="terminal-606925797-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-606925797-line-20)">
</text><text class="terminal-606925797-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-606925797-line-21)">
</text><text class="terminal-606925797-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-606925797-line-22)"></text><text class="terminal-606925797-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-606925797-line-22)">/mcp</text><text class="terminal-606925797-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-606925797-line-22)">
</text><text class="terminal-606925797-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-606925797-line-23)"></text><text class="terminal-606925797-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-606925797-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-606925797-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-606925797-line-23)">
</text><text class="terminal-606925797-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-606925797-line-24)">
</text><text class="terminal-606925797-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-606925797-line-25)">
</text><text class="terminal-606925797-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-606925797-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-606925797-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-606925797-line-26)">
</text><text class="terminal-606925797-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-606925797-line-27)"></text><text class="terminal-606925797-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-606925797-line-27)">MCP&#160;Servers</text><text class="terminal-606925797-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-606925797-line-27)"></text><text class="terminal-606925797-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-606925797-line-27)">
</text><text class="terminal-606925797-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-606925797-line-28)"></text><text class="terminal-606925797-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-606925797-line-28)"></text><text class="terminal-606925797-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-606925797-line-28)">
</text><text class="terminal-606925797-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-606925797-line-29)"></text><text class="terminal-606925797-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-606925797-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-606925797-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-606925797-line-29)"></text><text class="terminal-606925797-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-606925797-line-29)">
</text><text class="terminal-606925797-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-606925797-line-30)"></text><text class="terminal-606925797-r7" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-606925797-line-30)">&#160;&#160;filesystem</text><text class="terminal-606925797-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-606925797-line-30)">&#160;&#160;[stdio]</text><text class="terminal-606925797-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-606925797-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-606925797-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-606925797-line-30)"></text><text class="terminal-606925797-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-606925797-line-30)">
</text><text class="terminal-606925797-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-606925797-line-31)"></text><text class="terminal-606925797-r1" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-606925797-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-606925797-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-606925797-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-606925797-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-606925797-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-606925797-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-606925797-line-31)"></text><text class="terminal-606925797-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-606925797-line-31)">
</text><text class="terminal-606925797-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-606925797-line-32)"></text><text class="terminal-606925797-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-606925797-line-32)"></text><text class="terminal-606925797-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-606925797-line-32)">
</text><text class="terminal-606925797-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-606925797-line-33)"></text><text class="terminal-606925797-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-606925797-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-606925797-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-606925797-line-33)"></text><text class="terminal-606925797-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-606925797-line-33)">
</text><text class="terminal-606925797-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-606925797-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-606925797-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-606925797-line-34)">
</text><text class="terminal-606925797-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-606925797-line-35)">/test/workdir</text><text class="terminal-606925797-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-606925797-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After

View file

@ -19,187 +19,187 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-9601757275-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-9601757275-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #868887 }
.terminal-r9 { fill: #9cafbd;font-weight: bold }
.terminal-9601757275-r1 { fill: #c5c8c6 }
.terminal-9601757275-r2 { fill: #ff8205;font-weight: bold }
.terminal-9601757275-r3 { fill: #68a0b3 }
.terminal-9601757275-r4 { fill: #ff8205 }
.terminal-9601757275-r5 { fill: #9a9b99 }
.terminal-9601757275-r6 { fill: #608ab1;font-weight: bold }
.terminal-9601757275-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-9601757275-r8 { fill: #868887 }
.terminal-9601757275-r9 { fill: #9cafbd;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-9601757275-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-9601757275-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-9601757275-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-9601757275-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-9601757275-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-9601757275-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-9601757275-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-9601757275-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-9601757275-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-9601757275-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-9601757275-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-9601757275-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-9601757275-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-9601757275-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-9601757275-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-9601757275-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-9601757275-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-9601757275-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-9601757275-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-9601757275-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-9601757275-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-9601757275-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-9601757275-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-9601757275-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-9601757275-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-9601757275-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-9601757275-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-9601757275-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-9601757275-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-9601757275-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-9601757275-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-9601757275-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-9601757275-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-9601757275-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-9601757275-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-9601757275-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-9601757275-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-9601757275-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="757.9" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="183" y="757.9" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="292.8" y="757.9" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="757.9" width="1037" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-line-17)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-line-17)">devstral-latest</text><text class="terminal-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">Type&#160;</text><text class="terminal-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-line-19)">/help</text><text class="terminal-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)"></text><text class="terminal-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-line-22)">/mcp</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)"></text><text class="terminal-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-line-27)">MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-line-30)">&#160;&#160;filesystem</text><text class="terminal-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;[stdio]</text><text class="terminal-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r7" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-9601757275-matrix">
<text class="terminal-9601757275-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-9601757275-line-0)">
</text><text class="terminal-9601757275-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-1)">
</text><text class="terminal-9601757275-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-2)">
</text><text class="terminal-9601757275-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-3)">
</text><text class="terminal-9601757275-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-4)">
</text><text class="terminal-9601757275-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-9601757275-line-5)">
</text><text class="terminal-9601757275-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-6)">
</text><text class="terminal-9601757275-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-7)">
</text><text class="terminal-9601757275-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-8)">
</text><text class="terminal-9601757275-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-9)">
</text><text class="terminal-9601757275-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-9601757275-line-10)">
</text><text class="terminal-9601757275-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-11)">
</text><text class="terminal-9601757275-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-12)">
</text><text class="terminal-9601757275-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-13)">
</text><text class="terminal-9601757275-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-14)">
</text><text class="terminal-9601757275-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-9601757275-line-15)">
</text><text class="terminal-9601757275-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-16)">
</text><text class="terminal-9601757275-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-9601757275-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-9601757275-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-9601757275-line-17)">Mistral&#160;Vibe</text><text class="terminal-9601757275-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-9601757275-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-9601757275-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-9601757275-line-17)">devstral-latest</text><text class="terminal-9601757275-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-9601757275-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-9601757275-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-17)">
</text><text class="terminal-9601757275-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-9601757275-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-9601757275-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-9601757275-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-9601757275-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-18)">
</text><text class="terminal-9601757275-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-9601757275-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-9601757275-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-9601757275-line-19)">Type&#160;</text><text class="terminal-9601757275-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-9601757275-line-19)">/help</text><text class="terminal-9601757275-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-9601757275-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-9601757275-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-19)">
</text><text class="terminal-9601757275-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-9601757275-line-20)">
</text><text class="terminal-9601757275-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-21)">
</text><text class="terminal-9601757275-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-22)"></text><text class="terminal-9601757275-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-9601757275-line-22)">/mcp</text><text class="terminal-9601757275-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-22)">
</text><text class="terminal-9601757275-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-23)"></text><text class="terminal-9601757275-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-9601757275-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-9601757275-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-23)">
</text><text class="terminal-9601757275-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-24)">
</text><text class="terminal-9601757275-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-9601757275-line-25)">
</text><text class="terminal-9601757275-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-9601757275-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-9601757275-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-26)">
</text><text class="terminal-9601757275-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-27)"></text><text class="terminal-9601757275-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-9601757275-line-27)">MCP&#160;Servers</text><text class="terminal-9601757275-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-27)"></text><text class="terminal-9601757275-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-27)">
</text><text class="terminal-9601757275-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-28)"></text><text class="terminal-9601757275-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-28)"></text><text class="terminal-9601757275-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-28)">
</text><text class="terminal-9601757275-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-29)"></text><text class="terminal-9601757275-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-9601757275-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-9601757275-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-29)"></text><text class="terminal-9601757275-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-29)">
</text><text class="terminal-9601757275-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-9601757275-line-30)"></text><text class="terminal-9601757275-r1" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-9601757275-line-30)">&#160;&#160;filesystem</text><text class="terminal-9601757275-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-9601757275-line-30)">&#160;&#160;[stdio]</text><text class="terminal-9601757275-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-9601757275-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-9601757275-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-9601757275-line-30)"></text><text class="terminal-9601757275-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-9601757275-line-30)">
</text><text class="terminal-9601757275-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-31)"></text><text class="terminal-9601757275-r7" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-9601757275-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-9601757275-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-9601757275-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-9601757275-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-9601757275-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-9601757275-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-31)"></text><text class="terminal-9601757275-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-9601757275-line-31)">
</text><text class="terminal-9601757275-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-32)"></text><text class="terminal-9601757275-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-32)"></text><text class="terminal-9601757275-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-9601757275-line-32)">
</text><text class="terminal-9601757275-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-33)"></text><text class="terminal-9601757275-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-9601757275-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-9601757275-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-33)"></text><text class="terminal-9601757275-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-9601757275-line-33)">
</text><text class="terminal-9601757275-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-9601757275-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-9601757275-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-9601757275-line-34)">
</text><text class="terminal-9601757275-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-9601757275-line-35)">/test/workdir</text><text class="terminal-9601757275-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-9601757275-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After

View file

@ -0,0 +1,205 @@
<svg class="rich-terminal" viewBox="0 0 1482 928.4" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Regular"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
font-style: normal;
font-weight: 400;
}
@font-face {
font-family: "Fira Code";
src: local("FiraCode-Bold"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
font-style: bold;
font-weight: 700;
}
.terminal-3878668141-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-3878668141-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-3878668141-r1 { fill: #c5c8c6 }
.terminal-3878668141-r2 { fill: #ff8205;font-weight: bold }
.terminal-3878668141-r3 { fill: #68a0b3 }
.terminal-3878668141-r4 { fill: #ff8205 }
.terminal-3878668141-r5 { fill: #9a9b99 }
.terminal-3878668141-r6 { fill: #608ab1;font-weight: bold }
.terminal-3878668141-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-3878668141-r8 { fill: #9cafbd;font-weight: bold }
.terminal-3878668141-r9 { fill: #868887 }
</style>
<defs>
<clipPath id="terminal-3878668141-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-3878668141-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-3878668141-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-3878668141-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-3878668141-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="733.5" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="183" y="733.5" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="292.8" y="733.5" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="733.5" width="1037" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-3878668141-matrix">
<text class="terminal-3878668141-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-3878668141-line-0)">
</text><text class="terminal-3878668141-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-1)">
</text><text class="terminal-3878668141-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-2)">
</text><text class="terminal-3878668141-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-3)">
</text><text class="terminal-3878668141-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-4)">
</text><text class="terminal-3878668141-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-3878668141-line-5)">
</text><text class="terminal-3878668141-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-6)">
</text><text class="terminal-3878668141-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-7)">
</text><text class="terminal-3878668141-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-8)">
</text><text class="terminal-3878668141-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-9)">
</text><text class="terminal-3878668141-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-3878668141-line-10)">
</text><text class="terminal-3878668141-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-11)">
</text><text class="terminal-3878668141-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-12)">
</text><text class="terminal-3878668141-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-13)">
</text><text class="terminal-3878668141-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-14)">
</text><text class="terminal-3878668141-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-3878668141-line-15)">
</text><text class="terminal-3878668141-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-16)">
</text><text class="terminal-3878668141-r1" x="0" y="434.8" textLength="134.2" clip-path="url(#terminal-3878668141-line-17)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-3878668141-r2" x="170.8" y="434.8" textLength="146.4" clip-path="url(#terminal-3878668141-line-17)">Mistral&#160;Vibe</text><text class="terminal-3878668141-r1" x="317.2" y="434.8" textLength="122" clip-path="url(#terminal-3878668141-line-17)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-3878668141-r3" x="439.2" y="434.8" textLength="183" clip-path="url(#terminal-3878668141-line-17)">devstral-latest</text><text class="terminal-3878668141-r1" x="622.2" y="434.8" textLength="256.2" clip-path="url(#terminal-3878668141-line-17)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-3878668141-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-17)">
</text><text class="terminal-3878668141-r1" x="0" y="459.2" textLength="134.2" clip-path="url(#terminal-3878668141-line-18)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-3878668141-r1" x="170.8" y="459.2" textLength="414.8" clip-path="url(#terminal-3878668141-line-18)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-3878668141-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-18)">
</text><text class="terminal-3878668141-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-3878668141-line-19)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-3878668141-r1" x="170.8" y="483.6" textLength="61" clip-path="url(#terminal-3878668141-line-19)">Type&#160;</text><text class="terminal-3878668141-r3" x="231.8" y="483.6" textLength="61" clip-path="url(#terminal-3878668141-line-19)">/help</text><text class="terminal-3878668141-r1" x="292.8" y="483.6" textLength="256.2" clip-path="url(#terminal-3878668141-line-19)">&#160;for&#160;more&#160;information</text><text class="terminal-3878668141-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-19)">
</text><text class="terminal-3878668141-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-3878668141-line-20)">
</text><text class="terminal-3878668141-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-21)">
</text><text class="terminal-3878668141-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-22)"></text><text class="terminal-3878668141-r2" x="24.4" y="556.8" textLength="48.8" clip-path="url(#terminal-3878668141-line-22)">/mcp</text><text class="terminal-3878668141-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-22)">
</text><text class="terminal-3878668141-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-23)"></text><text class="terminal-3878668141-r1" x="48.8" y="581.2" textLength="256.2" clip-path="url(#terminal-3878668141-line-23)">MCP&#160;servers&#160;opened...</text><text class="terminal-3878668141-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-23)">
</text><text class="terminal-3878668141-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-24)">
</text><text class="terminal-3878668141-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-3878668141-line-25)">
</text><text class="terminal-3878668141-r5" x="0" y="654.4" textLength="1464" clip-path="url(#terminal-3878668141-line-26)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-3878668141-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-26)">
</text><text class="terminal-3878668141-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-27)"></text><text class="terminal-3878668141-r6" x="24.4" y="678.8" textLength="134.2" clip-path="url(#terminal-3878668141-line-27)">MCP&#160;Servers</text><text class="terminal-3878668141-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-27)"></text><text class="terminal-3878668141-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-27)">
</text><text class="terminal-3878668141-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-28)"></text><text class="terminal-3878668141-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-28)"></text><text class="terminal-3878668141-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-28)">
</text><text class="terminal-3878668141-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-29)"></text><text class="terminal-3878668141-r7" x="36.6" y="727.6" textLength="207.4" clip-path="url(#terminal-3878668141-line-29)">Local&#160;MCP&#160;Servers</text><text class="terminal-3878668141-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-29)"></text><text class="terminal-3878668141-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-29)">
</text><text class="terminal-3878668141-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-3878668141-line-30)"></text><text class="terminal-3878668141-r7" x="36.6" y="752" textLength="146.4" clip-path="url(#terminal-3878668141-line-30)">&#160;&#160;filesystem</text><text class="terminal-3878668141-r8" x="183" y="752" textLength="109.8" clip-path="url(#terminal-3878668141-line-30)">&#160;&#160;[stdio]</text><text class="terminal-3878668141-r8" x="292.8" y="752" textLength="97.6" clip-path="url(#terminal-3878668141-line-30)">&#160;&#160;1&#160;tool</text><text class="terminal-3878668141-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-3878668141-line-30)"></text><text class="terminal-3878668141-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-3878668141-line-30)">
</text><text class="terminal-3878668141-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-31)"></text><text class="terminal-3878668141-r1" x="36.6" y="776.4" textLength="146.4" clip-path="url(#terminal-3878668141-line-31)">&#160;&#160;search&#160;&#160;&#160;&#160;</text><text class="terminal-3878668141-r9" x="183" y="776.4" textLength="109.8" clip-path="url(#terminal-3878668141-line-31)">&#160;&#160;[http]&#160;</text><text class="terminal-3878668141-r9" x="292.8" y="776.4" textLength="97.6" clip-path="url(#terminal-3878668141-line-31)">&#160;&#160;1&#160;tool</text><text class="terminal-3878668141-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-31)"></text><text class="terminal-3878668141-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-3878668141-line-31)">
</text><text class="terminal-3878668141-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-32)"></text><text class="terminal-3878668141-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-32)"></text><text class="terminal-3878668141-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-3878668141-line-32)">
</text><text class="terminal-3878668141-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-33)"></text><text class="terminal-3878668141-r5" x="24.4" y="825.2" textLength="768.6" clip-path="url(#terminal-3878668141-line-33)">Refreshed.&#160;&#160;↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-3878668141-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-33)"></text><text class="terminal-3878668141-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-3878668141-line-33)">
</text><text class="terminal-3878668141-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-3878668141-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-3878668141-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-3878668141-line-34)">
</text><text class="terminal-3878668141-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-3878668141-line-35)">/test/workdir</text><text class="terminal-3878668141-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-3878668141-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -19,185 +19,185 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-5744808340-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-5744808340-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-5744808340-r1 { fill: #c5c8c6 }
.terminal-5744808340-r2 { fill: #ff8205;font-weight: bold }
.terminal-5744808340-r3 { fill: #68a0b3 }
.terminal-5744808340-r4 { fill: #ff8205 }
.terminal-5744808340-r5 { fill: #9a9b99 }
.terminal-5744808340-r6 { fill: #608ab1;font-weight: bold }
.terminal-5744808340-r7 { fill: #c5c8c6;font-weight: bold }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-5744808340-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-5744808340-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-5744808340-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-5744808340-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-5744808340-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-5744808340-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-5744808340-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-5744808340-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-5744808340-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-5744808340-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-5744808340-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-5744808340-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-5744808340-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-5744808340-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-5744808340-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-5744808340-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-5744808340-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-5744808340-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-5744808340-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-5744808340-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-5744808340-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-5744808340-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-5744808340-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-5744808340-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-5744808340-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-5744808340-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-5744808340-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-5744808340-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-5744808340-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-5744808340-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-5744808340-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-5744808340-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-5744808340-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-5744808340-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-5744808340-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-5744808340-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-5744808340-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithMcpServers</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-5744808340-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="757.9" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="146.4" y="757.9" width="378.2" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="524.6" y="757.9" width="902.8" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="483.6" textLength="146.4" clip-path="url(#terminal-line-19)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="483.6" textLength="122" clip-path="url(#terminal-line-19)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="483.6" textLength="183" clip-path="url(#terminal-line-19)">devstral-latest</text><text class="terminal-r1" x="622.2" y="483.6" textLength="256.2" clip-path="url(#terminal-line-19)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-line-20)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="508" textLength="414.8" clip-path="url(#terminal-line-20)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-line-21)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="532.4" textLength="61" clip-path="url(#terminal-line-21)">Type&#160;</text><text class="terminal-r3" x="231.8" y="532.4" textLength="61" clip-path="url(#terminal-line-21)">/help</text><text class="terminal-r1" x="292.8" y="532.4" textLength="256.2" clip-path="url(#terminal-line-21)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r2" x="24.4" y="605.6" textLength="183" clip-path="url(#terminal-line-24)">/mcp&#160;filesystem</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r1" x="48.8" y="630" textLength="256.2" clip-path="url(#terminal-line-25)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="1464" clip-path="url(#terminal-line-28)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r6" x="24.4" y="727.6" textLength="268.4" clip-path="url(#terminal-line-29)">MCP&#160;Server:&#160;filesystem</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r7" x="36.6" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">fake_tool</text><text class="terminal-r7" x="146.4" y="776.4" textLength="378.2" clip-path="url(#terminal-line-31)">&#160;&#160;-&#160;&#160;A&#160;fake&#160;tool&#160;for&#160;filesystem</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="463.6" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Backspace&#160;Back&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-5744808340-matrix">
<text class="terminal-5744808340-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-5744808340-line-0)">
</text><text class="terminal-5744808340-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-1)">
</text><text class="terminal-5744808340-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-2)">
</text><text class="terminal-5744808340-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-3)">
</text><text class="terminal-5744808340-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-4)">
</text><text class="terminal-5744808340-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-5744808340-line-5)">
</text><text class="terminal-5744808340-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-6)">
</text><text class="terminal-5744808340-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-7)">
</text><text class="terminal-5744808340-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-8)">
</text><text class="terminal-5744808340-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-9)">
</text><text class="terminal-5744808340-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-5744808340-line-10)">
</text><text class="terminal-5744808340-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-11)">
</text><text class="terminal-5744808340-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-12)">
</text><text class="terminal-5744808340-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-13)">
</text><text class="terminal-5744808340-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-14)">
</text><text class="terminal-5744808340-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-5744808340-line-15)">
</text><text class="terminal-5744808340-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-16)">
</text><text class="terminal-5744808340-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-17)">
</text><text class="terminal-5744808340-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-18)">
</text><text class="terminal-5744808340-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-5744808340-line-19)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-5744808340-r2" x="170.8" y="483.6" textLength="146.4" clip-path="url(#terminal-5744808340-line-19)">Mistral&#160;Vibe</text><text class="terminal-5744808340-r1" x="317.2" y="483.6" textLength="122" clip-path="url(#terminal-5744808340-line-19)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-5744808340-r3" x="439.2" y="483.6" textLength="183" clip-path="url(#terminal-5744808340-line-19)">devstral-latest</text><text class="terminal-5744808340-r1" x="622.2" y="483.6" textLength="256.2" clip-path="url(#terminal-5744808340-line-19)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-5744808340-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-19)">
</text><text class="terminal-5744808340-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-5744808340-line-20)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-5744808340-r1" x="170.8" y="508" textLength="414.8" clip-path="url(#terminal-5744808340-line-20)">1&#160;model&#160;·&#160;2&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-5744808340-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-5744808340-line-20)">
</text><text class="terminal-5744808340-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-5744808340-line-21)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-5744808340-r1" x="170.8" y="532.4" textLength="61" clip-path="url(#terminal-5744808340-line-21)">Type&#160;</text><text class="terminal-5744808340-r3" x="231.8" y="532.4" textLength="61" clip-path="url(#terminal-5744808340-line-21)">/help</text><text class="terminal-5744808340-r1" x="292.8" y="532.4" textLength="256.2" clip-path="url(#terminal-5744808340-line-21)">&#160;for&#160;more&#160;information</text><text class="terminal-5744808340-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-21)">
</text><text class="terminal-5744808340-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-22)">
</text><text class="terminal-5744808340-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-23)">
</text><text class="terminal-5744808340-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-24)"></text><text class="terminal-5744808340-r2" x="24.4" y="605.6" textLength="183" clip-path="url(#terminal-5744808340-line-24)">/mcp&#160;filesystem</text><text class="terminal-5744808340-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-24)">
</text><text class="terminal-5744808340-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#terminal-5744808340-line-25)"></text><text class="terminal-5744808340-r1" x="48.8" y="630" textLength="256.2" clip-path="url(#terminal-5744808340-line-25)">MCP&#160;servers&#160;opened...</text><text class="terminal-5744808340-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-5744808340-line-25)">
</text><text class="terminal-5744808340-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-26)">
</text><text class="terminal-5744808340-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-27)">
</text><text class="terminal-5744808340-r5" x="0" y="703.2" textLength="1464" clip-path="url(#terminal-5744808340-line-28)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-5744808340-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-28)">
</text><text class="terminal-5744808340-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-29)"></text><text class="terminal-5744808340-r6" x="24.4" y="727.6" textLength="268.4" clip-path="url(#terminal-5744808340-line-29)">MCP&#160;Server:&#160;filesystem</text><text class="terminal-5744808340-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-29)"></text><text class="terminal-5744808340-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-29)">
</text><text class="terminal-5744808340-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-5744808340-line-30)"></text><text class="terminal-5744808340-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-5744808340-line-30)"></text><text class="terminal-5744808340-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-5744808340-line-30)">
</text><text class="terminal-5744808340-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-31)"></text><text class="terminal-5744808340-r7" x="36.6" y="776.4" textLength="109.8" clip-path="url(#terminal-5744808340-line-31)">fake_tool</text><text class="terminal-5744808340-r7" x="146.4" y="776.4" textLength="378.2" clip-path="url(#terminal-5744808340-line-31)">&#160;&#160;-&#160;&#160;A&#160;fake&#160;tool&#160;for&#160;filesystem</text><text class="terminal-5744808340-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-31)"></text><text class="terminal-5744808340-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-5744808340-line-31)">
</text><text class="terminal-5744808340-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-32)"></text><text class="terminal-5744808340-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-32)"></text><text class="terminal-5744808340-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-5744808340-line-32)">
</text><text class="terminal-5744808340-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-33)"></text><text class="terminal-5744808340-r5" x="24.4" y="825.2" textLength="597.8" clip-path="url(#terminal-5744808340-line-33)">↑↓&#160;Navigate&#160;&#160;Backspace&#160;Back&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-5744808340-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-33)"></text><text class="terminal-5744808340-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-5744808340-line-33)">
</text><text class="terminal-5744808340-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-5744808340-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-5744808340-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-5744808340-line-34)">
</text><text class="terminal-5744808340-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-5744808340-line-35)">/test/workdir</text><text class="terminal-5744808340-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-5744808340-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

@ -19,188 +19,188 @@
font-weight: 700;
}
.terminal-matrix {
.terminal-4913728344-matrix {
font-family: Fira Code, monospace;
font-size: 20px;
line-height: 24.4px;
font-variant-east-asian: full-width;
}
.terminal-title {
.terminal-4913728344-title {
font-size: 18px;
font-weight: bold;
font-family: arial;
}
.terminal-r1 { fill: #c5c8c6 }
.terminal-r2 { fill: #ff8205;font-weight: bold }
.terminal-r3 { fill: #68a0b3 }
.terminal-r4 { fill: #ff8205 }
.terminal-r5 { fill: #9a9b99 }
.terminal-r6 { fill: #608ab1;font-weight: bold }
.terminal-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-r8 { fill: #9cafbd;font-weight: bold }
.terminal-r9 { fill: #868887 }
.terminal-r10 { fill: #98a84b }
.terminal-4913728344-r1 { fill: #c5c8c6 }
.terminal-4913728344-r2 { fill: #ff8205;font-weight: bold }
.terminal-4913728344-r3 { fill: #68a0b3 }
.terminal-4913728344-r4 { fill: #ff8205 }
.terminal-4913728344-r5 { fill: #9a9b99 }
.terminal-4913728344-r6 { fill: #608ab1;font-weight: bold }
.terminal-4913728344-r7 { fill: #c5c8c6;font-weight: bold }
.terminal-4913728344-r8 { fill: #9cafbd;font-weight: bold }
.terminal-4913728344-r9 { fill: #868887 }
.terminal-4913728344-r10 { fill: #98a84b }
</style>
<defs>
<clipPath id="terminal-clip-terminal">
<clipPath id="terminal-4913728344-clip-terminal">
<rect x="0" y="0" width="1463.0" height="877.4" />
</clipPath>
<clipPath id="terminal-line-0">
<clipPath id="terminal-4913728344-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-1">
<clipPath id="terminal-4913728344-line-1">
<rect x="0" y="25.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-2">
<clipPath id="terminal-4913728344-line-2">
<rect x="0" y="50.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-3">
<clipPath id="terminal-4913728344-line-3">
<rect x="0" y="74.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-4">
<clipPath id="terminal-4913728344-line-4">
<rect x="0" y="99.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-5">
<clipPath id="terminal-4913728344-line-5">
<rect x="0" y="123.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-6">
<clipPath id="terminal-4913728344-line-6">
<rect x="0" y="147.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-7">
<clipPath id="terminal-4913728344-line-7">
<rect x="0" y="172.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-8">
<clipPath id="terminal-4913728344-line-8">
<rect x="0" y="196.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-9">
<clipPath id="terminal-4913728344-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-10">
<clipPath id="terminal-4913728344-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-11">
<clipPath id="terminal-4913728344-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-12">
<clipPath id="terminal-4913728344-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-13">
<clipPath id="terminal-4913728344-line-13">
<rect x="0" y="318.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-14">
<clipPath id="terminal-4913728344-line-14">
<rect x="0" y="343.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-15">
<clipPath id="terminal-4913728344-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-16">
<clipPath id="terminal-4913728344-line-16">
<rect x="0" y="391.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-17">
<clipPath id="terminal-4913728344-line-17">
<rect x="0" y="416.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-18">
<clipPath id="terminal-4913728344-line-18">
<rect x="0" y="440.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-19">
<clipPath id="terminal-4913728344-line-19">
<rect x="0" y="465.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-20">
<clipPath id="terminal-4913728344-line-20">
<rect x="0" y="489.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-21">
<clipPath id="terminal-4913728344-line-21">
<rect x="0" y="513.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-22">
<clipPath id="terminal-4913728344-line-22">
<rect x="0" y="538.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-23">
<clipPath id="terminal-4913728344-line-23">
<rect x="0" y="562.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-24">
<clipPath id="terminal-4913728344-line-24">
<rect x="0" y="587.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-25">
<clipPath id="terminal-4913728344-line-25">
<rect x="0" y="611.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-26">
<clipPath id="terminal-4913728344-line-26">
<rect x="0" y="635.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-27">
<clipPath id="terminal-4913728344-line-27">
<rect x="0" y="660.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-28">
<clipPath id="terminal-4913728344-line-28">
<rect x="0" y="684.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-29">
<clipPath id="terminal-4913728344-line-29">
<rect x="0" y="709.1" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-30">
<clipPath id="terminal-4913728344-line-30">
<rect x="0" y="733.5" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-31">
<clipPath id="terminal-4913728344-line-31">
<rect x="0" y="757.9" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-32">
<clipPath id="terminal-4913728344-line-32">
<rect x="0" y="782.3" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-33">
<clipPath id="terminal-4913728344-line-33">
<rect x="0" y="806.7" width="1464" height="24.65"/>
</clipPath>
<clipPath id="terminal-line-34">
<clipPath id="terminal-4913728344-line-34">
<rect x="0" y="831.1" width="1464" height="24.65"/>
</clipPath>
</defs>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithConnectors</text>
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="terminal-4913728344-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">SnapshotTestAppWithConnectors</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
<g transform="translate(9, 41)" clip-path="url(#terminal-clip-terminal)">
<g transform="translate(9, 41)" clip-path="url(#terminal-4913728344-clip-terminal)">
<rect fill="#608ab1" x="36.6" y="660.3" width="146.4" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="183" y="660.3" width="109.8" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="292.8" y="660.3" width="97.6" height="24.65" shape-rendering="crispEdges"/><rect fill="#608ab1" x="390.4" y="660.3" width="1037" height="24.65" shape-rendering="crispEdges"/>
<g class="terminal-matrix">
<text class="terminal-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-line-0)">
</text><text class="terminal-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-line-1)">
</text><text class="terminal-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-line-2)">
</text><text class="terminal-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-line-3)">
</text><text class="terminal-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-line-4)">
</text><text class="terminal-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-line-5)">
</text><text class="terminal-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-line-6)">
</text><text class="terminal-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-line-7)">
</text><text class="terminal-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-line-8)">
</text><text class="terminal-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-line-9)">
</text><text class="terminal-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-line-10)">
</text><text class="terminal-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-line-11)">
</text><text class="terminal-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-line-12)">
</text><text class="terminal-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-line-13)">
</text><text class="terminal-r1" x="0" y="361.6" textLength="134.2" clip-path="url(#terminal-line-14)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="361.6" textLength="146.4" clip-path="url(#terminal-line-14)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="361.6" textLength="122" clip-path="url(#terminal-line-14)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="361.6" textLength="183" clip-path="url(#terminal-line-14)">devstral-latest</text><text class="terminal-r1" x="622.2" y="361.6" textLength="256.2" clip-path="url(#terminal-line-14)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-line-14)">
</text><text class="terminal-r1" x="0" y="386" textLength="134.2" clip-path="url(#terminal-line-15)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="386" textLength="585.6" clip-path="url(#terminal-line-15)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;1&#160;MCP&#160;server&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-line-15)">
</text><text class="terminal-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-line-16)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="410.4" textLength="61" clip-path="url(#terminal-line-16)">Type&#160;</text><text class="terminal-r3" x="231.8" y="410.4" textLength="61" clip-path="url(#terminal-line-16)">/help</text><text class="terminal-r1" x="292.8" y="410.4" textLength="256.2" clip-path="url(#terminal-line-16)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)"></text><text class="terminal-r2" x="24.4" y="483.6" textLength="48.8" clip-path="url(#terminal-line-19)">/mcp</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r5" x="24.4" y="508" textLength="12.2" clip-path="url(#terminal-line-20)"></text><text class="terminal-r1" x="48.8" y="508" textLength="256.2" clip-path="url(#terminal-line-20)">MCP&#160;servers&#160;opened...</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r5" x="0" y="581.2" textLength="1464" clip-path="url(#terminal-line-23)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r6" x="24.4" y="605.6" textLength="292.8" clip-path="url(#terminal-line-24)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">
</text><text class="terminal-r5" x="0" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r5" x="1451.8" y="630" textLength="12.2" clip-path="url(#terminal-line-25)"></text><text class="terminal-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-line-25)">
</text><text class="terminal-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r7" x="36.6" y="654.4" textLength="207.4" clip-path="url(#terminal-line-26)">Local&#160;MCP&#160;Servers</text><text class="terminal-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)"></text><text class="terminal-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-line-26)">
</text><text class="terminal-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r7" x="36.6" y="678.8" textLength="146.4" clip-path="url(#terminal-line-27)">&#160;&#160;filesystem</text><text class="terminal-r8" x="183" y="678.8" textLength="109.8" clip-path="url(#terminal-line-27)">&#160;&#160;[stdio]</text><text class="terminal-r8" x="292.8" y="678.8" textLength="97.6" clip-path="url(#terminal-line-27)">&#160;&#160;1&#160;tool</text><text class="terminal-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)"></text><text class="terminal-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-line-27)">
</text><text class="terminal-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)"></text><text class="terminal-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-line-28)">
</text><text class="terminal-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r7" x="36.6" y="727.6" textLength="244" clip-path="url(#terminal-line-29)">Workspace&#160;Connectors</text><text class="terminal-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)"></text><text class="terminal-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-line-29)">
</text><text class="terminal-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-line-30)">&#160;&#160;gmail</text><text class="terminal-r9" x="122" y="752" textLength="158.6" clip-path="url(#terminal-line-30)">&#160;&#160;[connector]</text><text class="terminal-r9" x="280.6" y="752" textLength="109.8" clip-path="url(#terminal-line-30)">&#160;&#160;3&#160;tools</text><text class="terminal-r10" x="414.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r9" x="427" y="752" textLength="122" clip-path="url(#terminal-line-30)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-line-30)"></text><text class="terminal-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-line-30)">
</text><text class="terminal-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-line-31)">&#160;&#160;slack</text><text class="terminal-r9" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-line-31)">&#160;&#160;[connector]</text><text class="terminal-r9" x="280.6" y="776.4" textLength="109.8" clip-path="url(#terminal-line-31)">&#160;&#160;2&#160;tools</text><text class="terminal-r10" x="414.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r9" x="427" y="776.4" textLength="122" clip-path="url(#terminal-line-31)">&#160;connected</text><text class="terminal-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)"></text><text class="terminal-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-line-31)">
</text><text class="terminal-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)"></text><text class="terminal-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-line-32)">
</text><text class="terminal-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r5" x="24.4" y="825.2" textLength="488" clip-path="url(#terminal-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;Esc&#160;Close</text><text class="terminal-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)"></text><text class="terminal-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-line-33)">
</text><text class="terminal-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-line-34)">
</text><text class="terminal-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-line-35)">/test/workdir</text><text class="terminal-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
<g class="terminal-4913728344-matrix">
<text class="terminal-4913728344-r1" x="1464" y="20" textLength="12.2" clip-path="url(#terminal-4913728344-line-0)">
</text><text class="terminal-4913728344-r1" x="1464" y="44.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-1)">
</text><text class="terminal-4913728344-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-2)">
</text><text class="terminal-4913728344-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-3)">
</text><text class="terminal-4913728344-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-4)">
</text><text class="terminal-4913728344-r1" x="1464" y="142" textLength="12.2" clip-path="url(#terminal-4913728344-line-5)">
</text><text class="terminal-4913728344-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-6)">
</text><text class="terminal-4913728344-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-7)">
</text><text class="terminal-4913728344-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-8)">
</text><text class="terminal-4913728344-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-9)">
</text><text class="terminal-4913728344-r1" x="1464" y="264" textLength="12.2" clip-path="url(#terminal-4913728344-line-10)">
</text><text class="terminal-4913728344-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-11)">
</text><text class="terminal-4913728344-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-12)">
</text><text class="terminal-4913728344-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-13)">
</text><text class="terminal-4913728344-r1" x="0" y="361.6" textLength="134.2" clip-path="url(#terminal-4913728344-line-14)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-4913728344-r2" x="170.8" y="361.6" textLength="146.4" clip-path="url(#terminal-4913728344-line-14)">Mistral&#160;Vibe</text><text class="terminal-4913728344-r1" x="317.2" y="361.6" textLength="122" clip-path="url(#terminal-4913728344-line-14)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-4913728344-r3" x="439.2" y="361.6" textLength="183" clip-path="url(#terminal-4913728344-line-14)">devstral-latest</text><text class="terminal-4913728344-r1" x="622.2" y="361.6" textLength="256.2" clip-path="url(#terminal-4913728344-line-14)">&#160;·&#160;[Subscription]&#160;Pro</text><text class="terminal-4913728344-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-14)">
</text><text class="terminal-4913728344-r1" x="0" y="386" textLength="134.2" clip-path="url(#terminal-4913728344-line-15)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-4913728344-r1" x="170.8" y="386" textLength="585.6" clip-path="url(#terminal-4913728344-line-15)">1&#160;model&#160;·&#160;2&#160;connectors&#160;·&#160;1&#160;MCP&#160;server&#160;·&#160;0&#160;skills</text><text class="terminal-4913728344-r1" x="1464" y="386" textLength="12.2" clip-path="url(#terminal-4913728344-line-15)">
</text><text class="terminal-4913728344-r1" x="0" y="410.4" textLength="134.2" clip-path="url(#terminal-4913728344-line-16)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-4913728344-r1" x="170.8" y="410.4" textLength="61" clip-path="url(#terminal-4913728344-line-16)">Type&#160;</text><text class="terminal-4913728344-r3" x="231.8" y="410.4" textLength="61" clip-path="url(#terminal-4913728344-line-16)">/help</text><text class="terminal-4913728344-r1" x="292.8" y="410.4" textLength="256.2" clip-path="url(#terminal-4913728344-line-16)">&#160;for&#160;more&#160;information</text><text class="terminal-4913728344-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-16)">
</text><text class="terminal-4913728344-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-17)">
</text><text class="terminal-4913728344-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-18)">
</text><text class="terminal-4913728344-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-19)"></text><text class="terminal-4913728344-r2" x="24.4" y="483.6" textLength="48.8" clip-path="url(#terminal-4913728344-line-19)">/mcp</text><text class="terminal-4913728344-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-19)">
</text><text class="terminal-4913728344-r5" x="24.4" y="508" textLength="12.2" clip-path="url(#terminal-4913728344-line-20)"></text><text class="terminal-4913728344-r1" x="48.8" y="508" textLength="256.2" clip-path="url(#terminal-4913728344-line-20)">MCP&#160;servers&#160;opened...</text><text class="terminal-4913728344-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-4913728344-line-20)">
</text><text class="terminal-4913728344-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-21)">
</text><text class="terminal-4913728344-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-22)">
</text><text class="terminal-4913728344-r5" x="0" y="581.2" textLength="1464" clip-path="url(#terminal-4913728344-line-23)">┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐</text><text class="terminal-4913728344-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-23)">
</text><text class="terminal-4913728344-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-24)"></text><text class="terminal-4913728344-r6" x="24.4" y="605.6" textLength="292.8" clip-path="url(#terminal-4913728344-line-24)">MCP&#160;Servers&#160;&amp;&#160;Connectors</text><text class="terminal-4913728344-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-24)"></text><text class="terminal-4913728344-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-24)">
</text><text class="terminal-4913728344-r5" x="0" y="630" textLength="12.2" clip-path="url(#terminal-4913728344-line-25)"></text><text class="terminal-4913728344-r5" x="1451.8" y="630" textLength="12.2" clip-path="url(#terminal-4913728344-line-25)"></text><text class="terminal-4913728344-r1" x="1464" y="630" textLength="12.2" clip-path="url(#terminal-4913728344-line-25)">
</text><text class="terminal-4913728344-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-26)"></text><text class="terminal-4913728344-r7" x="36.6" y="654.4" textLength="207.4" clip-path="url(#terminal-4913728344-line-26)">Local&#160;MCP&#160;Servers</text><text class="terminal-4913728344-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-26)"></text><text class="terminal-4913728344-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-26)">
</text><text class="terminal-4913728344-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-27)"></text><text class="terminal-4913728344-r7" x="36.6" y="678.8" textLength="146.4" clip-path="url(#terminal-4913728344-line-27)">&#160;&#160;filesystem</text><text class="terminal-4913728344-r8" x="183" y="678.8" textLength="109.8" clip-path="url(#terminal-4913728344-line-27)">&#160;&#160;[stdio]</text><text class="terminal-4913728344-r8" x="292.8" y="678.8" textLength="97.6" clip-path="url(#terminal-4913728344-line-27)">&#160;&#160;1&#160;tool</text><text class="terminal-4913728344-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-27)"></text><text class="terminal-4913728344-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-27)">
</text><text class="terminal-4913728344-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-28)"></text><text class="terminal-4913728344-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-28)"></text><text class="terminal-4913728344-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-28)">
</text><text class="terminal-4913728344-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-29)"></text><text class="terminal-4913728344-r7" x="36.6" y="727.6" textLength="244" clip-path="url(#terminal-4913728344-line-29)">Workspace&#160;Connectors</text><text class="terminal-4913728344-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-29)"></text><text class="terminal-4913728344-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-29)">
</text><text class="terminal-4913728344-r5" x="0" y="752" textLength="12.2" clip-path="url(#terminal-4913728344-line-30)"></text><text class="terminal-4913728344-r1" x="36.6" y="752" textLength="85.4" clip-path="url(#terminal-4913728344-line-30)">&#160;&#160;gmail</text><text class="terminal-4913728344-r9" x="122" y="752" textLength="158.6" clip-path="url(#terminal-4913728344-line-30)">&#160;&#160;[connector]</text><text class="terminal-4913728344-r9" x="280.6" y="752" textLength="109.8" clip-path="url(#terminal-4913728344-line-30)">&#160;&#160;3&#160;tools</text><text class="terminal-4913728344-r10" x="414.8" y="752" textLength="12.2" clip-path="url(#terminal-4913728344-line-30)"></text><text class="terminal-4913728344-r9" x="427" y="752" textLength="122" clip-path="url(#terminal-4913728344-line-30)">&#160;connected</text><text class="terminal-4913728344-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#terminal-4913728344-line-30)"></text><text class="terminal-4913728344-r1" x="1464" y="752" textLength="12.2" clip-path="url(#terminal-4913728344-line-30)">
</text><text class="terminal-4913728344-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-31)"></text><text class="terminal-4913728344-r1" x="36.6" y="776.4" textLength="85.4" clip-path="url(#terminal-4913728344-line-31)">&#160;&#160;slack</text><text class="terminal-4913728344-r9" x="122" y="776.4" textLength="158.6" clip-path="url(#terminal-4913728344-line-31)">&#160;&#160;[connector]</text><text class="terminal-4913728344-r9" x="280.6" y="776.4" textLength="109.8" clip-path="url(#terminal-4913728344-line-31)">&#160;&#160;2&#160;tools</text><text class="terminal-4913728344-r10" x="414.8" y="776.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-31)"></text><text class="terminal-4913728344-r9" x="427" y="776.4" textLength="122" clip-path="url(#terminal-4913728344-line-31)">&#160;connected</text><text class="terminal-4913728344-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-31)"></text><text class="terminal-4913728344-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#terminal-4913728344-line-31)">
</text><text class="terminal-4913728344-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-32)"></text><text class="terminal-4913728344-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-32)"></text><text class="terminal-4913728344-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#terminal-4913728344-line-32)">
</text><text class="terminal-4913728344-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-33)"></text><text class="terminal-4913728344-r5" x="24.4" y="825.2" textLength="622.2" clip-path="url(#terminal-4913728344-line-33)">↑↓&#160;Navigate&#160;&#160;Enter&#160;Show&#160;tools&#160;&#160;R&#160;Refresh&#160;&#160;Esc&#160;Close</text><text class="terminal-4913728344-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-33)"></text><text class="terminal-4913728344-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#terminal-4913728344-line-33)">
</text><text class="terminal-4913728344-r5" x="0" y="849.6" textLength="1464" clip-path="url(#terminal-4913728344-line-34)">└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</text><text class="terminal-4913728344-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#terminal-4913728344-line-34)">
</text><text class="terminal-4913728344-r5" x="0" y="874" textLength="158.6" clip-path="url(#terminal-4913728344-line-35)">/test/workdir</text><text class="terminal-4913728344-r5" x="1256.6" y="874" textLength="207.4" clip-path="url(#terminal-4913728344-line-35)">0%&#160;of&#160;200k&#160;tokens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

View file

@ -180,9 +180,9 @@
</text><text class="terminal-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#terminal-line-16)">
</text><text class="terminal-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#terminal-line-17)">
</text><text class="terminal-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#terminal-line-18)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="483.6" textLength="146.4" clip-path="url(#terminal-line-19)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="483.6" textLength="122" clip-path="url(#terminal-line-19)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-line-20)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="508" textLength="61" clip-path="url(#terminal-line-20)">Type&#160;</text><text class="terminal-r3" x="231.8" y="508" textLength="61" clip-path="url(#terminal-line-20)">/help</text><text class="terminal-r1" x="292.8" y="508" textLength="256.2" clip-path="url(#terminal-line-20)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-line-21)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="0" y="483.6" textLength="134.2" clip-path="url(#terminal-line-19)">&#160;&#160;⡠⣒⠄&#160;&#160;⡔⢄⠔⡄</text><text class="terminal-r2" x="170.8" y="483.6" textLength="146.4" clip-path="url(#terminal-line-19)">Mistral&#160;Vibe</text><text class="terminal-r1" x="317.2" y="483.6" textLength="122" clip-path="url(#terminal-line-19)">&#160;v0.0.0&#160;·&#160;</text><text class="terminal-r3" x="439.2" y="483.6" textLength="183" clip-path="url(#terminal-line-19)">devstral-latest</text><text class="terminal-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#terminal-line-19)">
</text><text class="terminal-r1" x="0" y="508" textLength="134.2" clip-path="url(#terminal-line-20)">&#160;⢸⠸⣀⡔⢉⠱⣃⡢⣂⡣</text><text class="terminal-r1" x="170.8" y="508" textLength="414.8" clip-path="url(#terminal-line-20)">1&#160;model&#160;·&#160;0&#160;MCP&#160;servers&#160;·&#160;0&#160;skills</text><text class="terminal-r1" x="1464" y="508" textLength="12.2" clip-path="url(#terminal-line-20)">
</text><text class="terminal-r1" x="0" y="532.4" textLength="134.2" clip-path="url(#terminal-line-21)">&#160;&#160;⠉⠒⠣⠤⠵⠤⠬⠮⠆</text><text class="terminal-r1" x="170.8" y="532.4" textLength="61" clip-path="url(#terminal-line-21)">Type&#160;</text><text class="terminal-r3" x="231.8" y="532.4" textLength="61" clip-path="url(#terminal-line-21)">/help</text><text class="terminal-r1" x="292.8" y="532.4" textLength="256.2" clip-path="url(#terminal-line-21)">&#160;for&#160;more&#160;information</text><text class="terminal-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#terminal-line-21)">
</text><text class="terminal-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#terminal-line-22)">
</text><text class="terminal-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)"></text><text class="terminal-r5" x="24.4" y="581.2" textLength="122" clip-path="url(#terminal-line-23)">What&#x27;s&#160;New</text><text class="terminal-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#terminal-line-23)">
</text><text class="terminal-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)"></text><text class="terminal-r1" x="24.4" y="605.6" textLength="134.2" clip-path="url(#terminal-line-24)">&#160;Feature&#160;1</text><text class="terminal-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#terminal-line-24)">

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

@ -29,6 +29,12 @@ _FAKE_CONNECTORS = {
],
}
_FAKE_CONNECTORS_MIXED_CONNECTION = {
"zeta": [],
"alpha": [RemoteTool(name="lookup", description="Lookup Alpha records")],
"beta": [],
}
class SnapshotTestAppNoMcpServers(BaseSnapshotTestApp):
def __init__(self) -> None:
@ -174,6 +180,20 @@ def test_snapshot_mcp_escape_closes(snap_compare: SnapCompare) -> None:
)
def test_snapshot_mcp_refresh_shortcut(snap_compare: SnapCompare) -> None:
async def run_before(pilot: Pilot) -> None:
await _run_mcp_command(pilot, "/mcp")
await pilot.press("r")
await pilot.pause(0.2)
with patch(_MCP_PATCH, FakeMCPRegistry):
assert snap_compare(
"test_ui_snapshot_mcp_command.py:SnapshotTestAppWithMcpServers",
terminal_size=(120, 36),
run_before=run_before,
)
# ---------------------------------------------------------------------------
# Apps with connectors
# ---------------------------------------------------------------------------
@ -203,6 +223,17 @@ class SnapshotTestAppConnectorsOnly(BaseSnapshotTestApp):
self.agent_loop.tool_manager.integrate_connectors()
class SnapshotTestAppConnectorsMixedState(BaseSnapshotTestApp):
def __init__(self) -> None:
config = default_config()
config.mcp_servers = []
super().__init__(config=config)
registry = FakeConnectorRegistry(connectors=_FAKE_CONNECTORS_MIXED_CONNECTION)
self.agent_loop.connector_registry = registry
self.agent_loop.tool_manager._connector_registry = registry
self.agent_loop.tool_manager.integrate_connectors()
# ---------------------------------------------------------------------------
# Connector snapshot tests
# ---------------------------------------------------------------------------
@ -235,6 +266,19 @@ def test_snapshot_mcp_connectors_only(snap_compare: SnapCompare) -> None:
)
@patch.dict("os.environ", {CONNECTORS_ENV_VAR: "1"})
def test_snapshot_mcp_connectors_sorted_by_status(snap_compare: SnapCompare) -> None:
async def run_before(pilot: Pilot) -> None:
await _run_mcp_command(pilot, "/mcp")
assert snap_compare(
"test_ui_snapshot_mcp_command.py:SnapshotTestAppConnectorsMixedState",
terminal_size=(120, 36),
run_before=run_before,
)
@patch.dict("os.environ", {CONNECTORS_ENV_VAR: "1"})
def test_snapshot_mcp_drill_into_connector(snap_compare: SnapCompare) -> None:

View file

@ -39,8 +39,14 @@ class FakeConnectorRegistry(ConnectorRegistry):
self._connector_connected[alias] = bool(tool_map)
def get_tools(self) -> dict[str, type[BaseTool]]:
if self._cache is None:
self._build_cache()
result: dict[str, type[BaseTool]] = {}
if self._cache:
for tools in self._cache.values():
result.update(tools)
return result
async def get_tools_async(self) -> dict[str, type[BaseTool]]:
return self.get_tools()

View file

@ -1,53 +1,73 @@
"""Tests for deferred initialization: _complete_init, wait_for_init, integrate_mcp idempotency."""
"""Tests for deferred initialization: _complete_init, _wait_for_init, integrate_mcp idempotency."""
from __future__ import annotations
import threading
from unittest.mock import MagicMock, patch
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from tests.conftest import build_test_agent_loop, build_test_vibe_config
from tests.mock.utils import mock_llm_chunk
from tests.stubs.fake_backend import FakeBackend
from tests.stubs.fake_connector_registry import FakeConnectorRegistry
from tests.stubs.fake_mcp_registry import FakeMCPRegistry
from vibe.core.agent_loop import AgentLoop
from vibe.core.config import MCPStdio
from vibe.core.tools.manager import ToolManager
from vibe.core.tools.mcp.tools import RemoteTool
def _build_uninitiated_loop(**kwargs):
"""Build a test loop with defer_heavy_init=True but without auto-starting the init thread."""
with patch.object(AgentLoop, "_start_deferred_init"):
return build_test_agent_loop(defer_heavy_init=True, **kwargs)
# ---------------------------------------------------------------------------
# _complete_init
# ---------------------------------------------------------------------------
def _run_init(loop: AgentLoop) -> None:
"""Run _complete_init in a thread (matching production behavior) and wait."""
thread = threading.Thread(target=loop._complete_init, daemon=True)
loop._deferred_init_thread = thread
thread.start()
thread.join()
class TestCompleteInit:
def test_success_sets_init_complete(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
loop = _build_uninitiated_loop()
assert not loop.is_initialized
loop._complete_init()
_run_init(loop)
assert loop.is_initialized
assert loop._init_error is None
def test_failure_sets_init_complete_and_stores_error(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
loop = _build_uninitiated_loop()
error = RuntimeError("mcp boom")
with patch.object(loop.tool_manager, "integrate_all", side_effect=error):
loop._complete_init()
_run_init(loop)
assert loop.is_initialized
assert loop._init_error is error
def test_mcp_integration_internal_failure_sets_init_error(self) -> None:
def test_mcp_failure_sets_init_error(self) -> None:
mcp_server = MCPStdio(name="test-server", transport="stdio", command="echo")
config = build_test_vibe_config(mcp_servers=[mcp_server])
loop = build_test_agent_loop(config=config, defer_heavy_init=True)
loop = _build_uninitiated_loop(config=config)
with patch.object(
loop.tool_manager._mcp_registry,
"get_tools_async",
side_effect=RuntimeError("mcp discovery boom"),
):
loop._complete_init()
_run_init(loop)
assert loop.is_initialized
assert isinstance(loop._init_error, RuntimeError)
@ -55,7 +75,7 @@ class TestCompleteInit:
# ---------------------------------------------------------------------------
# wait_for_init
# wait_until_ready
# ---------------------------------------------------------------------------
@ -63,46 +83,43 @@ class TestWaitForInit:
@pytest.mark.asyncio
async def test_returns_immediately_when_already_complete(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
loop._complete_init()
await loop.wait_for_init() # should not block
await loop.wait_until_ready() # should not block
assert loop.is_initialized
@pytest.mark.asyncio
async def test_waits_for_background_thread(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
thread = threading.Thread(target=loop._complete_init, daemon=True)
thread.start()
await loop.wait_for_init()
thread.join(timeout=1)
await loop.wait_until_ready()
assert loop.is_initialized
@pytest.mark.asyncio
async def test_raises_stored_error(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
loop = _build_uninitiated_loop()
error = RuntimeError("init failed")
with patch.object(loop.tool_manager, "integrate_all", side_effect=error):
loop._complete_init()
with pytest.raises(RuntimeError, match="init failed"):
await loop.wait_for_init()
await loop.wait_until_ready()
@pytest.mark.asyncio
async def test_raises_error_for_every_caller(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
loop = _build_uninitiated_loop()
error = RuntimeError("once only")
with patch.object(loop.tool_manager, "integrate_all", side_effect=error):
loop._complete_init()
with pytest.raises(RuntimeError):
await loop.wait_for_init()
await loop.wait_until_ready()
with pytest.raises(RuntimeError):
await loop.wait_for_init()
await loop.wait_until_ready()
# ---------------------------------------------------------------------------
@ -136,3 +153,106 @@ class TestIntegrateMcpIdempotency:
# No servers means the method returns early without setting the flag,
# so a future call with servers would still run discovery.
assert not manager._mcp_integrated
class TestRefreshRemoteTools:
@pytest.mark.asyncio
async def test_refresh_rediscovers_mcp_and_connector_tools(self) -> None:
mcp_server = MCPStdio(name="srv", transport="stdio", command="echo")
config = build_test_vibe_config(mcp_servers=[mcp_server])
registry = FakeMCPRegistry()
registry.get_tools_async = AsyncMock(wraps=registry.get_tools_async)
connector_registry = FakeConnectorRegistry({
"alpha": [RemoteTool(name="search", description="Search alpha")]
})
manager = ToolManager(
lambda: config,
mcp_registry=registry,
connector_registry=connector_registry,
defer_mcp=True,
)
await manager.refresh_remote_tools_async()
assert "srv_fake_tool" in manager.registered_tools
assert "connector_alpha_search" in manager.registered_tools
connector_registry._fake_connectors = {
"beta": [RemoteTool(name="list", description="List beta")]
}
await manager.refresh_remote_tools_async()
assert registry.get_tools_async.await_count == 2
assert "srv_fake_tool" in manager.registered_tools
assert "connector_alpha_search" not in manager.registered_tools
assert "connector_beta_list" in manager.registered_tools
class TestDeferredInitPublicMethods:
@pytest.mark.asyncio
async def test_act_waits_for_deferred_init(self) -> None:
loop = build_test_agent_loop(
defer_heavy_init=True, backend=FakeBackend(mock_llm_chunk(content="hello"))
)
events = [event async for event in loop.act("Hello")]
assert loop.is_initialized
assert [event.content for event in events if hasattr(event, "content")][
-1
] == "hello"
@pytest.mark.asyncio
async def test_reload_with_initial_messages_waits_for_deferred_init(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
await loop.reload_with_initial_messages()
assert loop.is_initialized
@pytest.mark.asyncio
async def test_switch_agent_waits_for_deferred_init(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
await loop.switch_agent("plan")
assert loop.is_initialized
assert loop.agent_profile.name == "plan"
@pytest.mark.asyncio
async def test_clear_history_waits_for_deferred_init(self) -> None:
loop = build_test_agent_loop(
defer_heavy_init=True, backend=FakeBackend(mock_llm_chunk(content="hello"))
)
[_ async for _ in loop.act("Hello")]
await loop.clear_history()
assert loop.is_initialized
assert len(loop.messages) == 1
@pytest.mark.asyncio
async def test_compact_waits_for_deferred_init(self) -> None:
loop = build_test_agent_loop(
defer_heavy_init=True,
backend=FakeBackend([
[mock_llm_chunk(content="hello")],
[mock_llm_chunk(content="summary")],
]),
)
[_ async for _ in loop.act("Hello")]
summary = await loop.compact()
assert loop.is_initialized
assert summary == "summary"
@pytest.mark.asyncio
async def test_inject_user_context_waits_for_deferred_init(self) -> None:
loop = build_test_agent_loop(defer_heavy_init=True)
await loop.inject_user_context("context")
assert loop.is_initialized
assert loop.messages[-1].content == "context"

View file

@ -4,7 +4,8 @@ import logging
import os
import threading
import time
from unittest.mock import MagicMock, patch
from typing import Any, cast
from unittest.mock import AsyncMock, MagicMock, patch
from pydantic import ValidationError
import pytest
@ -17,8 +18,10 @@ from vibe.core.tools.mcp import (
_mcp_stderr_capture,
_parse_call_result,
_stderr_logger_thread,
call_tool_stdio,
create_mcp_http_proxy_tool_class,
create_mcp_stdio_proxy_tool_class,
list_tools_stdio,
)
@ -566,3 +569,144 @@ class TestMCPRegistry:
assert "cached_ct" in tools
assert "new_nt" in tools
assert len(registry._cache) == 2
class TestMCPStdioCwd:
def test_mcp_stdio_cwd_defaults_to_none(self):
config = MCPStdio(name="test", transport="stdio", command="python -m srv")
assert config.cwd is None
def test_mcp_stdio_cwd_accepts_string(self):
config = MCPStdio(
name="test",
transport="stdio",
command="python -m srv",
cwd="/tmp/myproject",
)
assert config.cwd == "/tmp/myproject"
@pytest.mark.asyncio
async def test_list_tools_stdio_passes_cwd_to_params(self):
with (
patch("vibe.core.tools.mcp.tools.stdio_client") as mock_client,
patch("vibe.core.tools.mcp.tools.ClientSession") as mock_session_cls,
patch("vibe.core.tools.mcp.tools.StdioServerParameters") as mock_params_cls,
):
mock_client.return_value.__aenter__ = AsyncMock(
return_value=(MagicMock(), MagicMock())
)
mock_client.return_value.__aexit__ = AsyncMock(return_value=False)
mock_session = MagicMock()
mock_session.initialize = AsyncMock()
mock_session.list_tools = AsyncMock(return_value=MagicMock(tools=[]))
mock_session_cls.return_value.__aenter__ = AsyncMock(
return_value=mock_session
)
mock_session_cls.return_value.__aexit__ = AsyncMock(return_value=False)
await list_tools_stdio(["python", "-m", "srv"], cwd="/tmp/myproject")
mock_params_cls.assert_called_once_with(
command="python", args=["-m", "srv"], env=None, cwd="/tmp/myproject"
)
@pytest.mark.asyncio
async def test_call_tool_stdio_passes_cwd_to_params(self):
with (
patch("vibe.core.tools.mcp.tools.stdio_client") as mock_client,
patch("vibe.core.tools.mcp.tools.ClientSession") as mock_session_cls,
patch("vibe.core.tools.mcp.tools.StdioServerParameters") as mock_params_cls,
patch("vibe.core.tools.mcp.tools._parse_call_result") as mock_parse,
):
mock_client.return_value.__aenter__ = AsyncMock(
return_value=(MagicMock(), MagicMock())
)
mock_client.return_value.__aexit__ = AsyncMock(return_value=False)
mock_session = MagicMock()
mock_session.initialize = AsyncMock()
mock_session.call_tool = AsyncMock(return_value=MagicMock())
mock_session_cls.return_value.__aenter__ = AsyncMock(
return_value=mock_session
)
mock_session_cls.return_value.__aexit__ = AsyncMock(return_value=False)
mock_parse.return_value = MagicMock(spec=MCPToolResult)
await call_tool_stdio(
["python", "-m", "srv"], "my_tool", {}, cwd="/tmp/myproject"
)
mock_params_cls.assert_called_once_with(
command="python", args=["-m", "srv"], env=None, cwd="/tmp/myproject"
)
@pytest.mark.asyncio
async def test_discover_stdio_passes_cwd_to_list_tools(self):
registry = MCPRegistry()
srv = MCPStdio(
name="local",
transport="stdio",
command="python -m srv",
cwd="/tmp/myproject",
)
remote = RemoteTool(name="run", description="Run it")
with patch(
"vibe.core.tools.mcp.registry.list_tools_stdio", return_value=[remote]
) as mock_list:
await registry._discover_stdio(srv)
mock_list.assert_called_once_with(
["python", "-m", "srv"],
env=None,
cwd="/tmp/myproject",
startup_timeout_sec=srv.startup_timeout_sec,
)
@pytest.mark.asyncio
async def test_discover_stdio_passes_cwd_to_proxy_class(self):
registry = MCPRegistry()
srv = MCPStdio(
name="local",
transport="stdio",
command="python -m srv",
cwd="/tmp/myproject",
)
remote = RemoteTool(name="run", description="Run it")
with (
patch(
"vibe.core.tools.mcp.registry.list_tools_stdio", return_value=[remote]
),
patch(
"vibe.core.tools.mcp.registry.create_mcp_stdio_proxy_tool_class",
wraps=create_mcp_stdio_proxy_tool_class,
) as mock_create,
):
await registry._discover_stdio(srv)
_, kwargs = mock_create.call_args
assert kwargs["cwd"] == "/tmp/myproject"
def test_proxy_tool_stores_cwd(self):
remote = RemoteTool(name="run")
proxy_cls = cast(
Any,
create_mcp_stdio_proxy_tool_class(
command=["python", "-m", "srv"], remote=remote, cwd="/tmp/myproject"
),
)
assert proxy_cls._cwd == "/tmp/myproject"
def test_proxy_tool_cwd_defaults_to_none(self):
remote = RemoteTool(name="run")
proxy_cls = cast(
Any,
create_mcp_stdio_proxy_tool_class(
command=["python", "-m", "srv"], remote=remote
),
)
assert proxy_cls._cwd is None

View file

@ -8,14 +8,13 @@ import pytest
from tests.mock.utils import collect_result
from vibe.core.skills.manager import SkillManager
from vibe.core.skills.models import SkillInfo
from vibe.core.tools.base import BaseToolState, InvokeContext, ToolError
from vibe.core.tools.base import BaseToolState, InvokeContext, ToolError, ToolPermission
from vibe.core.tools.builtins.skill import (
Skill,
SkillArgs,
SkillResult,
SkillToolConfig,
)
from vibe.core.tools.permissions import PermissionScope
def _make_skill_dir(
@ -37,7 +36,10 @@ def _make_skill_dir(
file_path.write_text(f"content of {f}", encoding="utf-8")
return SkillInfo(
name=name, description=description, skill_path=skill_dir / "SKILL.md"
name=name,
description=description,
skill_path=skill_dir / "SKILL.md",
prompt=body,
)
@ -83,11 +85,13 @@ class TestSkillRun:
ctx = _make_ctx(manager)
result = await collect_result(skill_tool.run(SkillArgs(name="my-skill"), ctx))
skill_dir = info.skill_dir
assert skill_dir is not None
assert "<skill_files>" in result.content
assert "<file>scripts/run.sh</file>" in result.content
assert "<file>references/guide.md</file>" in result.content
assert f"<file>{info.skill_dir / 'scripts/run.sh'}</file>" not in result.content
assert f"<file>{skill_dir / 'scripts/run.sh'}</file>" not in result.content
@pytest.mark.asyncio
async def test_excludes_skill_md_from_file_list(
@ -137,8 +141,10 @@ class TestSkillRun:
ctx = _make_ctx(manager)
result = await collect_result(skill_tool.run(SkillArgs(name="my-skill"), ctx))
skill_dir = info.skill_dir
assert skill_dir is not None
assert result.skill_dir == str(info.skill_dir)
assert result.skill_dir == str(skill_dir)
@pytest.mark.asyncio
async def test_includes_base_directory(
@ -149,8 +155,30 @@ class TestSkillRun:
ctx = _make_ctx(manager)
result = await collect_result(skill_tool.run(SkillArgs(name="my-skill"), ctx))
skill_dir = info.skill_dir
assert skill_dir is not None
assert f"Base directory for this skill: {info.skill_dir}" in result.content
assert f"Base directory for this skill: {skill_dir}" in result.content
@pytest.mark.asyncio
async def test_uses_in_memory_prompt_when_available(
self, skill_tool: Skill
) -> None:
info = SkillInfo(
name="inline-skill",
description="Inline prompt skill",
prompt="Inline instructions from Python object.",
)
manager = _make_skill_manager({"inline-skill": info})
ctx = _make_ctx(manager)
result = await collect_result(
skill_tool.run(SkillArgs(name="inline-skill"), ctx)
)
assert "Inline instructions from Python object." in result.content
assert "Base directory for this skill:" not in result.content
assert result.skill_dir is None
class TestSkillErrors:
@ -182,30 +210,35 @@ class TestSkillErrors:
await collect_result(skill_tool.run(SkillArgs(name="missing"), ctx=ctx))
@pytest.mark.asyncio
async def test_unreadable_skill_file(
async def test_ignores_unreadable_file_when_prompt_is_available(
self, tmp_path: Path, skill_tool: Skill
) -> None:
info = SkillInfo(
name="broken",
description="Broken skill",
skill_path=tmp_path / "nonexistent" / "SKILL.md",
prompt="Use prompt from state.",
)
manager = _make_skill_manager({"broken": info})
ctx = _make_ctx(manager)
with pytest.raises(ToolError, match="Cannot load skill file"):
await collect_result(skill_tool.run(SkillArgs(name="broken"), ctx=ctx))
result = await collect_result(skill_tool.run(SkillArgs(name="broken"), ctx=ctx))
assert "Use prompt from state." in result.content
class TestSkillPermission:
def test_resolve_permission_returns_file_pattern(self, skill_tool: Skill) -> None:
def test_resolve_permission_always_allowed(self, skill_tool: Skill) -> None:
perm = skill_tool.resolve_permission(SkillArgs(name="my-skill"))
assert perm is not None
assert len(perm.required_permissions) == 1
assert perm.required_permissions[0].scope == PermissionScope.FILE_PATTERN
assert perm.required_permissions[0].invocation_pattern == "my-skill"
assert perm.required_permissions[0].session_pattern == "my-skill"
assert perm.permission == ToolPermission.ALWAYS
assert perm.required_permissions == []
def test_non_builtin_skill_is_still_always_allowed(self, skill_tool: Skill) -> None:
perm = skill_tool.resolve_permission(SkillArgs(name="custom-skill"))
assert perm is not None
assert perm.permission == ToolPermission.ALWAYS
class TestSkillMeta: