forked from ultraworkers/claw-code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtool_pool.py
More file actions
37 lines (30 loc) · 1.02 KB
/
tool_pool.py
File metadata and controls
37 lines (30 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from __future__ import annotations
from dataclasses import dataclass
from .models import PortingModule
from .permissions import ToolPermissionContext
from .tools import get_tools
@dataclass(frozen=True)
class ToolPool:
tools: tuple[PortingModule, ...]
simple_mode: bool
include_mcp: bool
def as_markdown(self) -> str:
lines = [
'# Tool Pool',
'',
f'Simple mode: {self.simple_mode}',
f'Include MCP: {self.include_mcp}',
f'Tool count: {len(self.tools)}',
]
lines.extend(f'- {tool.name} — {tool.source_hint}' for tool in self.tools[:15])
return '\n'.join(lines)
def assemble_tool_pool(
simple_mode: bool = False,
include_mcp: bool = True,
permission_context: ToolPermissionContext | None = None,
) -> ToolPool:
return ToolPool(
tools=get_tools(simple_mode=simple_mode, include_mcp=include_mcp, permission_context=permission_context),
simple_mode=simple_mode,
include_mcp=include_mcp,
)