vibecore 0.6.0__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of vibecore might be problematic. Click here for more details.
- {vibecore-0.6.0 → vibecore-0.6.1}/PKG-INFO +1 -1
- {vibecore-0.6.0 → vibecore-0.6.1}/pyproject.toml +1 -1
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/main.py +19 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/.gitignore +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/LICENSE +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/README.md +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/agents/default.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/agents/prompts.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/agents/task.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/config.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/interceptor.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/manager.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/models.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/oauth_flow.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/pkce.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/storage.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/auth/token_manager.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/cli.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/context.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/flow.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/handlers/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/handlers/stream_handler.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/main.tcss +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/mcp/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/mcp/manager.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/mcp/server_wrapper.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/models/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/models/anthropic.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/models/anthropic_auth.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/prompts/common_system_prompt.txt +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/py.typed +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/session/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/session/file_lock.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/session/jsonl_session.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/session/loader.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/session/path_utils.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/settings.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/base.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/file/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/file/executor.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/file/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/file/utils.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/path_validator.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/python/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/python/backends/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/python/backends/terminal_backend.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/python/helpers.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/python/manager.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/python/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/shell/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/shell/executor.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/shell/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/task/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/task/executor.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/task/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/todo/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/todo/manager.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/todo/models.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/todo/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/webfetch/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/webfetch/executor.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/webfetch/models.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/webfetch/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/base.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/ddgs/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/ddgs/backend.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/executor.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/models.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/tools/websearch/tools.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/utils/__init__.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/utils/text.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/core.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/core.tcss +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/expandable.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/expandable.tcss +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/feedback.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/feedback.tcss +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/info.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/info.tcss +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/messages.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/messages.tcss +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/tool_message_factory.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/tool_messages.py +0 -0
- {vibecore-0.6.0 → vibecore-0.6.1}/src/vibecore/widgets/tool_messages.tcss +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vibecore
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Build your own AI-powered automation tools in the terminal with this extensible agent framework
|
|
5
5
|
Project-URL: Homepage, https://github.com/serialx/vibecore
|
|
6
6
|
Project-URL: Repository, https://github.com/serialx/vibecore
|
|
@@ -13,6 +13,8 @@ from textual import log, work
|
|
|
13
13
|
from textual.app import App, ComposeResult
|
|
14
14
|
from textual.binding import Binding
|
|
15
15
|
from textual.reactive import reactive
|
|
16
|
+
from textual.selection import Selection
|
|
17
|
+
from textual.widget import Widget
|
|
16
18
|
from textual.widgets import Header
|
|
17
19
|
from textual.worker import Worker
|
|
18
20
|
|
|
@@ -79,6 +81,23 @@ class VibecoreApp(App):
|
|
|
79
81
|
|
|
80
82
|
super().__init__()
|
|
81
83
|
|
|
84
|
+
def on_mouse_up(self) -> None:
|
|
85
|
+
if not self.screen.selections:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
widget_text: list[str] = []
|
|
89
|
+
for widget, selection in self.screen.selections.items():
|
|
90
|
+
assert isinstance(widget, Widget) and isinstance(selection, Selection)
|
|
91
|
+
if "copy-button" in widget.classes: # Skip copy buttons
|
|
92
|
+
continue
|
|
93
|
+
selected_text_in_widget = widget.get_selection(selection)
|
|
94
|
+
if selected_text_in_widget is not None:
|
|
95
|
+
widget_text.extend(selected_text_in_widget)
|
|
96
|
+
|
|
97
|
+
selected_text = "".join(widget_text)
|
|
98
|
+
self.copy_to_clipboard(selected_text)
|
|
99
|
+
self.notify("Copied to clipboard")
|
|
100
|
+
|
|
82
101
|
def compose(self) -> ComposeResult:
|
|
83
102
|
"""Create child widgets for the app."""
|
|
84
103
|
yield Header()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|