WIP - debugging functionality to get parity with commands

This commit is contained in:
rajeevrajeshuni 2025-11-29 23:42:47 +05:30
parent 9e86409e72
commit 7224074b6c
3 changed files with 24 additions and 31 deletions

View file

@ -1,7 +1,8 @@
import asyncio import asyncio
import cognee
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.widgets import Input, Label, Button, Static, TextArea from textual.widgets import Input, Label, Static, TextArea
from textual.containers import Container, Vertical, Horizontal from textual.containers import Container, Vertical
from textual.binding import Binding from textual.binding import Binding
from cognee.cli.tui.base_screen import BaseTUIScreen from cognee.cli.tui.base_screen import BaseTUIScreen
@ -76,11 +77,6 @@ class AddTUIScreen(BaseTUIScreen):
if not self.is_processing: if not self.is_processing:
self._submit_data() self._submit_data()
def on_button_pressed(self, event: Button.Pressed) -> None:
"""Handle button press."""
if event.button.id == "submit-btn" and not self.is_processing:
self._submit_data()
def _submit_data(self) -> None: def _submit_data(self) -> None:
"""Process and submit the data.""" """Process and submit the data."""
data_input = self.query_one("#data-input", TextArea) data_input = self.query_one("#data-input", TextArea)
@ -100,7 +96,6 @@ class AddTUIScreen(BaseTUIScreen):
# Disable inputs during processing # Disable inputs during processing
data_input.disabled = True data_input.disabled = True
dataset_input.disabled = True dataset_input.disabled = True
self.query_one("#submit-btn", Button).disabled = True
# Run async add operation # Run async add operation
asyncio.create_task(self._add_data_async(data, dataset_name)) asyncio.create_task(self._add_data_async(data, dataset_name))
@ -110,8 +105,6 @@ class AddTUIScreen(BaseTUIScreen):
status = self.query_one(".tui-status", Static) status = self.query_one(".tui-status", Static)
try: try:
import cognee
await cognee.add(data=data, dataset_name=dataset_name) await cognee.add(data=data, dataset_name=dataset_name)
status.update(f"[green]✓ Successfully added data to dataset '{dataset_name}'[/green]") status.update(f"[green]✓ Successfully added data to dataset '{dataset_name}'[/green]")
@ -130,5 +123,4 @@ class AddTUIScreen(BaseTUIScreen):
dataset_input = self.query_one("#dataset-input", Input) dataset_input = self.query_one("#dataset-input", Input)
data_input.disabled = False data_input.disabled = False
dataset_input.disabled = False dataset_input.disabled = False
self.query_one("#submit-btn", Button).disabled = False
data_input.focus() data_input.focus()

View file

@ -1,12 +1,25 @@
import asyncio import asyncio
import cognee
from cognee.modules.chunking.TextChunker import TextChunker
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.widgets import Input, Label, Button, Static, Checkbox, RadioSet, RadioButton from textual.widgets import Input, Label, Static, Checkbox, RadioSet, RadioButton
from textual.containers import Container, Vertical from textual.containers import Container, Vertical
from textual.binding import Binding from textual.binding import Binding
from cognee.cli.tui.base_screen import BaseTUIScreen from cognee.cli.tui.base_screen import BaseTUIScreen
from cognee.cli.config import CHUNKER_CHOICES from cognee.cli.config import CHUNKER_CHOICES
try:
from cognee.modules.chunking.LangchainChunker import LangchainChunker
except ImportError:
LangchainChunker = None
try:
from cognee.modules.chunking.CsvChunker import CsvChunker
except ImportError:
CsvChunker = None
class CognifyTUIScreen(BaseTUIScreen): class CognifyTUIScreen(BaseTUIScreen):
"""TUI screen for cognifying data in cognee.""" """TUI screen for cognifying data in cognee."""
@ -83,11 +96,6 @@ class CognifyTUIScreen(BaseTUIScreen):
if not self.is_processing: if not self.is_processing:
self._submit_cognify() self._submit_cognify()
def on_button_pressed(self, event: Button.Pressed) -> None:
"""Handle button press."""
if event.button.id == "submit-btn" and not self.is_processing:
self._submit_cognify()
def _submit_cognify(self) -> None: def _submit_cognify(self) -> None:
"""Process and submit the cognify request.""" """Process and submit the cognify request."""
dataset_input = self.query_one("#dataset-input", Input) dataset_input = self.query_one("#dataset-input", Input)
@ -106,7 +114,6 @@ class CognifyTUIScreen(BaseTUIScreen):
dataset_input.disabled = True dataset_input.disabled = True
chunker_radio.disabled = True chunker_radio.disabled = True
background_checkbox.disabled = True background_checkbox.disabled = True
self.query_one("#submit-btn", Button).disabled = True
# Run async cognify operation # Run async cognify operation
asyncio.create_task(self._cognify_async(dataset_name, chunker_type, run_background)) asyncio.create_task(self._cognify_async(dataset_name, chunker_type, run_background))
@ -116,22 +123,17 @@ class CognifyTUIScreen(BaseTUIScreen):
status = self.query_one(".tui-status", Static) status = self.query_one(".tui-status", Static)
try: try:
import cognee
from cognee.modules.chunking.TextChunker import TextChunker
# Get chunker class # Get chunker class
chunker_class = TextChunker chunker_class = TextChunker
if chunker_type == "LangchainChunker": if chunker_type == "LangchainChunker":
try: if LangchainChunker is not None:
from cognee.modules.chunking.LangchainChunker import LangchainChunker
chunker_class = LangchainChunker chunker_class = LangchainChunker
except ImportError: else:
status.update("[yellow]⚠ LangchainChunker not available, using TextChunker[/yellow]") status.update("[yellow]⚠ LangchainChunker not available, using TextChunker[/yellow]")
elif chunker_type == "CsvChunker": elif chunker_type == "CsvChunker":
try: if CsvChunker is not None:
from cognee.modules.chunking.CsvChunker import CsvChunker
chunker_class = CsvChunker chunker_class = CsvChunker
except ImportError: else:
status.update("[yellow]⚠ CsvChunker not available, using TextChunker[/yellow]") status.update("[yellow]⚠ CsvChunker not available, using TextChunker[/yellow]")
# Prepare datasets parameter # Prepare datasets parameter
@ -160,5 +162,4 @@ class CognifyTUIScreen(BaseTUIScreen):
dataset_input.disabled = False dataset_input.disabled = False
chunker_radio.disabled = False chunker_radio.disabled = False
background_checkbox.disabled = False background_checkbox.disabled = False
self.query_one("#submit-btn", Button).disabled = False
dataset_input.focus() dataset_input.focus()

View file

@ -1,4 +1,7 @@
import asyncio import asyncio
import cognee
from cognee.modules.search.types import SearchType
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.widgets import Input, Label, Static, Select from textual.widgets import Input, Label, Static, Select
from textual.containers import Container, Vertical, ScrollableContainer from textual.containers import Container, Vertical, ScrollableContainer
@ -136,9 +139,6 @@ class SearchTUIScreen(BaseTUIScreen):
async def _async_search(self, query_text: str, query_type: str) -> None: async def _async_search(self, query_text: str, query_type: str) -> None:
"""Async search operation.""" """Async search operation."""
try: try:
import cognee
from cognee.modules.search.types import SearchType
# Convert string to SearchType enum # Convert string to SearchType enum
search_type = SearchType[query_type] search_type = SearchType[query_type]