minion-code 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
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.
- examples/cli_entrypoint.py +60 -0
- examples/{agent_with_todos.py → components/agent_with_todos.py} +58 -47
- examples/{message_response_children_demo.py → components/message_response_children_demo.py} +61 -55
- examples/components/messages_component.py +199 -0
- examples/file_freshness_example.py +22 -22
- examples/file_watching_example.py +32 -26
- examples/interruptible_tui.py +921 -3
- examples/repl_tui.py +129 -0
- examples/skills/example_usage.py +57 -0
- examples/start.py +173 -0
- minion_code/__init__.py +1 -1
- minion_code/acp_server/__init__.py +34 -0
- minion_code/acp_server/agent.py +539 -0
- minion_code/acp_server/hooks.py +354 -0
- minion_code/acp_server/main.py +194 -0
- minion_code/acp_server/permissions.py +142 -0
- minion_code/acp_server/test_client.py +104 -0
- minion_code/adapters/__init__.py +22 -0
- minion_code/adapters/output_adapter.py +207 -0
- minion_code/adapters/rich_adapter.py +169 -0
- minion_code/adapters/textual_adapter.py +254 -0
- minion_code/agents/__init__.py +2 -2
- minion_code/agents/code_agent.py +517 -104
- minion_code/agents/hooks.py +378 -0
- minion_code/cli.py +538 -429
- minion_code/cli_simple.py +665 -0
- minion_code/commands/__init__.py +136 -29
- minion_code/commands/clear_command.py +19 -46
- minion_code/commands/help_command.py +33 -49
- minion_code/commands/history_command.py +37 -55
- minion_code/commands/model_command.py +194 -0
- minion_code/commands/quit_command.py +9 -12
- minion_code/commands/resume_command.py +181 -0
- minion_code/commands/skill_command.py +89 -0
- minion_code/commands/status_command.py +48 -73
- minion_code/commands/tools_command.py +54 -52
- minion_code/commands/version_command.py +34 -69
- minion_code/components/ConfirmDialog.py +430 -0
- minion_code/components/Message.py +318 -97
- minion_code/components/MessageResponse.py +30 -29
- minion_code/components/Messages.py +351 -0
- minion_code/components/PromptInput.py +499 -245
- minion_code/components/__init__.py +24 -17
- minion_code/const.py +7 -0
- minion_code/screens/REPL.py +1453 -469
- minion_code/screens/__init__.py +1 -1
- minion_code/services/__init__.py +20 -20
- minion_code/services/event_system.py +19 -14
- minion_code/services/file_freshness_service.py +223 -170
- minion_code/skills/__init__.py +25 -0
- minion_code/skills/skill.py +128 -0
- minion_code/skills/skill_loader.py +198 -0
- minion_code/skills/skill_registry.py +177 -0
- minion_code/subagents/__init__.py +31 -0
- minion_code/subagents/builtin/__init__.py +30 -0
- minion_code/subagents/builtin/claude_code_guide.py +32 -0
- minion_code/subagents/builtin/explore.py +36 -0
- minion_code/subagents/builtin/general_purpose.py +19 -0
- minion_code/subagents/builtin/plan.py +61 -0
- minion_code/subagents/subagent.py +116 -0
- minion_code/subagents/subagent_loader.py +147 -0
- minion_code/subagents/subagent_registry.py +151 -0
- minion_code/tools/__init__.py +8 -2
- minion_code/tools/bash_tool.py +16 -3
- minion_code/tools/file_edit_tool.py +201 -104
- minion_code/tools/file_read_tool.py +183 -26
- minion_code/tools/file_write_tool.py +17 -3
- minion_code/tools/glob_tool.py +23 -2
- minion_code/tools/grep_tool.py +229 -21
- minion_code/tools/ls_tool.py +28 -3
- minion_code/tools/multi_edit_tool.py +89 -84
- minion_code/tools/python_interpreter_tool.py +9 -1
- minion_code/tools/skill_tool.py +210 -0
- minion_code/tools/task_tool.py +287 -0
- minion_code/tools/todo_read_tool.py +28 -24
- minion_code/tools/todo_write_tool.py +82 -65
- minion_code/{types.py → type_defs.py} +15 -2
- minion_code/utils/__init__.py +45 -17
- minion_code/utils/config.py +610 -0
- minion_code/utils/history.py +114 -0
- minion_code/utils/logs.py +53 -0
- minion_code/utils/mcp_loader.py +153 -55
- minion_code/utils/output_truncator.py +233 -0
- minion_code/utils/session_storage.py +369 -0
- minion_code/utils/todo_file_utils.py +26 -22
- minion_code/utils/todo_storage.py +43 -33
- minion_code/web/__init__.py +9 -0
- minion_code/web/adapters/__init__.py +5 -0
- minion_code/web/adapters/web_adapter.py +524 -0
- minion_code/web/api/__init__.py +7 -0
- minion_code/web/api/chat.py +277 -0
- minion_code/web/api/interactions.py +136 -0
- minion_code/web/api/sessions.py +135 -0
- minion_code/web/server.py +149 -0
- minion_code/web/services/__init__.py +5 -0
- minion_code/web/services/session_manager.py +420 -0
- minion_code-0.1.2.dist-info/METADATA +476 -0
- minion_code-0.1.2.dist-info/RECORD +111 -0
- {minion_code-0.1.0.dist-info → minion_code-0.1.2.dist-info}/WHEEL +1 -1
- minion_code-0.1.2.dist-info/entry_points.txt +6 -0
- tests/test_adapter.py +67 -0
- tests/test_adapter_simple.py +79 -0
- tests/test_file_read_tool.py +144 -0
- tests/test_readonly_tools.py +0 -2
- tests/test_skills.py +441 -0
- examples/advance_tui.py +0 -508
- examples/rich_example.py +0 -4
- examples/simple_file_watching.py +0 -57
- examples/simple_tui.py +0 -267
- examples/simple_usage.py +0 -69
- minion_code-0.1.0.dist-info/METADATA +0 -350
- minion_code-0.1.0.dist-info/RECORD +0 -59
- minion_code-0.1.0.dist-info/entry_points.txt +0 -4
- {minion_code-0.1.0.dist-info → minion_code-0.1.2.dist-info}/licenses/LICENSE +0 -0
- {minion_code-0.1.0.dist-info → minion_code-0.1.2.dist-info}/top_level.txt +0 -0
|
@@ -27,13 +27,21 @@ class InputMode(Enum):
|
|
|
27
27
|
@dataclass
|
|
28
28
|
class MessageContent:
|
|
29
29
|
"""Represents message content - can be text or structured content"""
|
|
30
|
+
|
|
30
31
|
content: Union[str, List[Dict[str, Any]]]
|
|
31
32
|
type: str = "text"
|
|
32
33
|
|
|
34
|
+
def __init__(
|
|
35
|
+
self, content: Union[str, List[Dict[str, Any]]] = "", type: str = "text"
|
|
36
|
+
):
|
|
37
|
+
self.content = content
|
|
38
|
+
self.type = type
|
|
39
|
+
|
|
33
40
|
|
|
34
41
|
@dataclass
|
|
35
42
|
class Message:
|
|
36
43
|
"""Core message structure equivalent to TypeScript MessageType"""
|
|
44
|
+
|
|
37
45
|
uuid: str = field(default_factory=lambda: str(uuid.uuid4()))
|
|
38
46
|
type: MessageType = MessageType.USER
|
|
39
47
|
message: MessageContent = field(default_factory=lambda: MessageContent(""))
|
|
@@ -44,6 +52,7 @@ class Message:
|
|
|
44
52
|
@dataclass
|
|
45
53
|
class ToolUseConfirm:
|
|
46
54
|
"""Tool use confirmation context"""
|
|
55
|
+
|
|
47
56
|
tool_name: str
|
|
48
57
|
parameters: Dict[str, Any]
|
|
49
58
|
on_confirm: Any # Callable[[], None]
|
|
@@ -53,6 +62,7 @@ class ToolUseConfirm:
|
|
|
53
62
|
@dataclass
|
|
54
63
|
class BinaryFeedbackContext:
|
|
55
64
|
"""Binary feedback context for comparing two assistant messages"""
|
|
65
|
+
|
|
56
66
|
m1: Message
|
|
57
67
|
m2: Message
|
|
58
68
|
resolve: Any # Callable[[str], None]
|
|
@@ -61,6 +71,7 @@ class BinaryFeedbackContext:
|
|
|
61
71
|
@dataclass
|
|
62
72
|
class ToolJSXContext:
|
|
63
73
|
"""Tool JSX rendering context"""
|
|
74
|
+
|
|
64
75
|
jsx: Optional[Any] = None
|
|
65
76
|
should_hide_prompt_input: bool = False
|
|
66
77
|
|
|
@@ -68,6 +79,7 @@ class ToolJSXContext:
|
|
|
68
79
|
@dataclass
|
|
69
80
|
class ModelInfo:
|
|
70
81
|
"""Model information display"""
|
|
82
|
+
|
|
71
83
|
name: str
|
|
72
84
|
provider: str
|
|
73
85
|
context_length: int
|
|
@@ -77,12 +89,13 @@ class ModelInfo:
|
|
|
77
89
|
|
|
78
90
|
class REPLConfig:
|
|
79
91
|
"""Configuration equivalent to getGlobalConfig()"""
|
|
92
|
+
|
|
80
93
|
def __init__(self):
|
|
81
94
|
self.verbose: bool = False
|
|
82
95
|
self.debug: bool = False
|
|
83
96
|
self.safe_mode: bool = False
|
|
84
97
|
self.has_acknowledged_cost_threshold: bool = False
|
|
85
98
|
self.model_name: str = "claude-3-5-sonnet-20241022"
|
|
86
|
-
|
|
99
|
+
|
|
87
100
|
def get_model_name(self, context: str = "main") -> str:
|
|
88
|
-
return self.model_name
|
|
101
|
+
return self.model_name
|
minion_code/utils/__init__.py
CHANGED
|
@@ -22,23 +22,51 @@ from .todo_storage import (
|
|
|
22
22
|
clear_todos,
|
|
23
23
|
)
|
|
24
24
|
|
|
25
|
+
from .output_truncator import (
|
|
26
|
+
truncate_output,
|
|
27
|
+
check_file_size_before_read,
|
|
28
|
+
check_mcp_output,
|
|
29
|
+
save_large_output,
|
|
30
|
+
cleanup_cache,
|
|
31
|
+
OutputTooLargeError,
|
|
32
|
+
MCPContentTooLargeError,
|
|
33
|
+
FileTooLargeError,
|
|
34
|
+
MAX_OUTPUT_SIZE,
|
|
35
|
+
MAX_FILE_SIZE,
|
|
36
|
+
MAX_TOKEN_LIMIT,
|
|
37
|
+
CACHE_DIR,
|
|
38
|
+
)
|
|
39
|
+
|
|
25
40
|
__all__ = [
|
|
26
41
|
# Todo file utilities
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
42
|
+
"get_todo_file_path",
|
|
43
|
+
"get_default_storage_dir",
|
|
44
|
+
"ensure_storage_dir_exists",
|
|
45
|
+
"list_todo_files",
|
|
46
|
+
"extract_agent_id_from_todo_file",
|
|
47
|
+
"is_todo_file",
|
|
33
48
|
# Todo storage
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
"TodoItem",
|
|
50
|
+
"TodoStatus",
|
|
51
|
+
"TodoPriority",
|
|
52
|
+
"TodoStorage",
|
|
53
|
+
"get_todos",
|
|
54
|
+
"set_todos",
|
|
55
|
+
"add_todo",
|
|
56
|
+
"update_todo",
|
|
57
|
+
"remove_todo",
|
|
58
|
+
"clear_todos",
|
|
59
|
+
# Output truncator
|
|
60
|
+
"truncate_output",
|
|
61
|
+
"check_file_size_before_read",
|
|
62
|
+
"check_mcp_output",
|
|
63
|
+
"save_large_output",
|
|
64
|
+
"cleanup_cache",
|
|
65
|
+
"OutputTooLargeError",
|
|
66
|
+
"MCPContentTooLargeError",
|
|
67
|
+
"FileTooLargeError",
|
|
68
|
+
"MAX_OUTPUT_SIZE",
|
|
69
|
+
"MAX_FILE_SIZE",
|
|
70
|
+
"MAX_TOKEN_LIMIT",
|
|
71
|
+
"CACHE_DIR",
|
|
72
|
+
]
|