Initial upload: shell-speak CLI tool with natural language to shell command conversion
This commit is contained in:
47
shell_speak/models.py
Normal file
47
shell_speak/models.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""Data models for shell-speak."""
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
|
||||
@dataclass
|
||||
class CommandPattern:
|
||||
"""A pattern for matching natural language to shell commands."""
|
||||
name: str
|
||||
tool: str
|
||||
description: str
|
||||
patterns: list[str]
|
||||
template: str
|
||||
explanation: str = ""
|
||||
examples: list[str] = field(default_factory=list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class CommandMatch:
|
||||
"""A match between natural language and a shell command."""
|
||||
pattern: CommandPattern
|
||||
confidence: float
|
||||
matched_query: str
|
||||
command: str
|
||||
explanation: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class HistoryEntry:
|
||||
"""An entry in the command history."""
|
||||
query: str
|
||||
command: str
|
||||
tool: str
|
||||
timestamp: datetime
|
||||
explanation: str = ""
|
||||
|
||||
|
||||
@dataclass
|
||||
class Correction:
|
||||
"""A user correction for a query."""
|
||||
original_query: str
|
||||
corrected_command: str
|
||||
tool: str
|
||||
timestamp: datetime
|
||||
explanation: str = ""
|
||||
Reference in New Issue
Block a user