agentpool 2.1.9__py3-none-any.whl → 2.5.0__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.
- acp/__init__.py +13 -4
- acp/acp_requests.py +20 -77
- acp/agent/connection.py +8 -0
- acp/agent/implementations/debug_server/debug_server.py +6 -2
- acp/agent/protocol.py +6 -0
- acp/bridge/README.md +15 -2
- acp/bridge/__init__.py +3 -2
- acp/bridge/__main__.py +60 -19
- acp/bridge/ws_server.py +173 -0
- acp/bridge/ws_server_cli.py +89 -0
- acp/client/connection.py +38 -29
- acp/client/implementations/default_client.py +3 -2
- acp/client/implementations/headless_client.py +2 -2
- acp/connection.py +2 -2
- acp/notifications.py +20 -50
- acp/schema/__init__.py +2 -0
- acp/schema/agent_responses.py +21 -0
- acp/schema/client_requests.py +3 -3
- acp/schema/session_state.py +63 -29
- acp/stdio.py +39 -9
- acp/task/supervisor.py +2 -2
- acp/transports.py +362 -2
- acp/utils.py +17 -4
- agentpool/__init__.py +6 -1
- agentpool/agents/__init__.py +2 -0
- agentpool/agents/acp_agent/acp_agent.py +407 -277
- agentpool/agents/acp_agent/acp_converters.py +196 -38
- agentpool/agents/acp_agent/client_handler.py +191 -26
- agentpool/agents/acp_agent/session_state.py +17 -6
- agentpool/agents/agent.py +607 -572
- agentpool/agents/agui_agent/__init__.py +0 -2
- agentpool/agents/agui_agent/agui_agent.py +176 -110
- agentpool/agents/agui_agent/agui_converters.py +0 -131
- agentpool/agents/agui_agent/helpers.py +3 -4
- agentpool/agents/base_agent.py +632 -17
- agentpool/agents/claude_code_agent/FORKING.md +191 -0
- agentpool/agents/claude_code_agent/__init__.py +13 -1
- agentpool/agents/claude_code_agent/claude_code_agent.py +1058 -291
- agentpool/agents/claude_code_agent/converters.py +74 -143
- agentpool/agents/claude_code_agent/history.py +474 -0
- agentpool/agents/claude_code_agent/models.py +77 -0
- agentpool/agents/claude_code_agent/static_info.py +100 -0
- agentpool/agents/claude_code_agent/usage.py +242 -0
- agentpool/agents/context.py +40 -0
- agentpool/agents/events/__init__.py +24 -0
- agentpool/agents/events/builtin_handlers.py +67 -1
- agentpool/agents/events/event_emitter.py +32 -2
- agentpool/agents/events/events.py +104 -3
- agentpool/agents/events/infer_info.py +145 -0
- agentpool/agents/events/processors.py +254 -0
- agentpool/agents/interactions.py +41 -6
- agentpool/agents/modes.py +67 -0
- agentpool/agents/slashed_agent.py +5 -4
- agentpool/agents/tool_call_accumulator.py +213 -0
- agentpool/agents/tool_wrapping.py +18 -6
- agentpool/common_types.py +56 -21
- agentpool/config_resources/__init__.py +38 -1
- agentpool/config_resources/acp_assistant.yml +2 -2
- agentpool/config_resources/agents.yml +3 -0
- agentpool/config_resources/agents_template.yml +1 -0
- agentpool/config_resources/claude_code_agent.yml +10 -6
- agentpool/config_resources/external_acp_agents.yml +2 -1
- agentpool/delegation/base_team.py +4 -30
- agentpool/delegation/pool.py +136 -289
- agentpool/delegation/team.py +58 -57
- agentpool/delegation/teamrun.py +51 -55
- agentpool/diagnostics/__init__.py +53 -0
- agentpool/diagnostics/lsp_manager.py +1593 -0
- agentpool/diagnostics/lsp_proxy.py +41 -0
- agentpool/diagnostics/lsp_proxy_script.py +229 -0
- agentpool/diagnostics/models.py +398 -0
- agentpool/functional/run.py +10 -4
- agentpool/mcp_server/__init__.py +0 -2
- agentpool/mcp_server/client.py +76 -32
- agentpool/mcp_server/conversions.py +54 -13
- agentpool/mcp_server/manager.py +34 -54
- agentpool/mcp_server/registries/official_registry_client.py +35 -1
- agentpool/mcp_server/tool_bridge.py +186 -139
- agentpool/messaging/__init__.py +0 -2
- agentpool/messaging/compaction.py +72 -197
- agentpool/messaging/connection_manager.py +11 -10
- agentpool/messaging/event_manager.py +5 -5
- agentpool/messaging/message_container.py +6 -30
- agentpool/messaging/message_history.py +99 -8
- agentpool/messaging/messagenode.py +52 -14
- agentpool/messaging/messages.py +54 -35
- agentpool/messaging/processing.py +12 -22
- agentpool/models/__init__.py +1 -1
- agentpool/models/acp_agents/base.py +6 -24
- agentpool/models/acp_agents/mcp_capable.py +126 -157
- agentpool/models/acp_agents/non_mcp.py +129 -95
- agentpool/models/agents.py +98 -76
- agentpool/models/agui_agents.py +1 -1
- agentpool/models/claude_code_agents.py +144 -19
- agentpool/models/file_parsing.py +0 -1
- agentpool/models/manifest.py +113 -50
- agentpool/prompts/conversion_manager.py +1 -1
- agentpool/prompts/prompts.py +5 -2
- agentpool/repomap.py +1 -1
- agentpool/resource_providers/__init__.py +11 -1
- agentpool/resource_providers/aggregating.py +56 -5
- agentpool/resource_providers/base.py +70 -4
- agentpool/resource_providers/codemode/code_executor.py +72 -5
- agentpool/resource_providers/codemode/helpers.py +2 -2
- agentpool/resource_providers/codemode/provider.py +64 -12
- agentpool/resource_providers/codemode/remote_mcp_execution.py +2 -2
- agentpool/resource_providers/codemode/remote_provider.py +9 -12
- agentpool/resource_providers/filtering.py +3 -1
- agentpool/resource_providers/mcp_provider.py +89 -12
- agentpool/resource_providers/plan_provider.py +228 -46
- agentpool/resource_providers/pool.py +7 -3
- agentpool/resource_providers/resource_info.py +111 -0
- agentpool/resource_providers/static.py +4 -2
- agentpool/sessions/__init__.py +4 -1
- agentpool/sessions/manager.py +33 -5
- agentpool/sessions/models.py +59 -6
- agentpool/sessions/protocol.py +28 -0
- agentpool/sessions/session.py +11 -55
- agentpool/skills/registry.py +13 -8
- agentpool/storage/manager.py +572 -49
- agentpool/talk/registry.py +4 -4
- agentpool/talk/talk.py +9 -10
- agentpool/testing.py +538 -20
- agentpool/tool_impls/__init__.py +6 -0
- agentpool/tool_impls/agent_cli/__init__.py +42 -0
- agentpool/tool_impls/agent_cli/tool.py +95 -0
- agentpool/tool_impls/bash/__init__.py +64 -0
- agentpool/tool_impls/bash/helpers.py +35 -0
- agentpool/tool_impls/bash/tool.py +171 -0
- agentpool/tool_impls/delete_path/__init__.py +70 -0
- agentpool/tool_impls/delete_path/tool.py +142 -0
- agentpool/tool_impls/download_file/__init__.py +80 -0
- agentpool/tool_impls/download_file/tool.py +183 -0
- agentpool/tool_impls/execute_code/__init__.py +55 -0
- agentpool/tool_impls/execute_code/tool.py +163 -0
- agentpool/tool_impls/grep/__init__.py +80 -0
- agentpool/tool_impls/grep/tool.py +200 -0
- agentpool/tool_impls/list_directory/__init__.py +73 -0
- agentpool/tool_impls/list_directory/tool.py +197 -0
- agentpool/tool_impls/question/__init__.py +42 -0
- agentpool/tool_impls/question/tool.py +127 -0
- agentpool/tool_impls/read/__init__.py +104 -0
- agentpool/tool_impls/read/tool.py +305 -0
- agentpool/tools/__init__.py +2 -1
- agentpool/tools/base.py +114 -34
- agentpool/tools/manager.py +57 -1
- agentpool/ui/base.py +2 -2
- agentpool/ui/mock_provider.py +2 -2
- agentpool/ui/stdlib_provider.py +2 -2
- agentpool/utils/file_watcher.py +269 -0
- agentpool/utils/identifiers.py +121 -0
- agentpool/utils/pydantic_ai_helpers.py +46 -0
- agentpool/utils/streams.py +616 -2
- agentpool/utils/subprocess_utils.py +155 -0
- agentpool/utils/token_breakdown.py +461 -0
- agentpool/vfs_registry.py +7 -2
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/METADATA +41 -27
- agentpool-2.5.0.dist-info/RECORD +579 -0
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/WHEEL +1 -1
- agentpool_cli/__main__.py +24 -0
- agentpool_cli/create.py +1 -1
- agentpool_cli/serve_acp.py +100 -21
- agentpool_cli/serve_agui.py +87 -0
- agentpool_cli/serve_opencode.py +119 -0
- agentpool_cli/ui.py +557 -0
- agentpool_commands/__init__.py +42 -5
- agentpool_commands/agents.py +75 -2
- agentpool_commands/history.py +62 -0
- agentpool_commands/mcp.py +176 -0
- agentpool_commands/models.py +56 -3
- agentpool_commands/pool.py +260 -0
- agentpool_commands/session.py +1 -1
- agentpool_commands/text_sharing/__init__.py +119 -0
- agentpool_commands/text_sharing/base.py +123 -0
- agentpool_commands/text_sharing/github_gist.py +80 -0
- agentpool_commands/text_sharing/opencode.py +462 -0
- agentpool_commands/text_sharing/paste_rs.py +59 -0
- agentpool_commands/text_sharing/pastebin.py +116 -0
- agentpool_commands/text_sharing/shittycodingagent.py +112 -0
- agentpool_commands/tools.py +57 -0
- agentpool_commands/utils.py +80 -30
- agentpool_config/__init__.py +30 -2
- agentpool_config/agentpool_tools.py +498 -0
- agentpool_config/builtin_tools.py +77 -22
- agentpool_config/commands.py +24 -1
- agentpool_config/compaction.py +258 -0
- agentpool_config/converters.py +1 -1
- agentpool_config/event_handlers.py +42 -0
- agentpool_config/events.py +1 -1
- agentpool_config/forward_targets.py +1 -4
- agentpool_config/jinja.py +3 -3
- agentpool_config/mcp_server.py +132 -6
- agentpool_config/nodes.py +1 -1
- agentpool_config/observability.py +44 -0
- agentpool_config/session.py +0 -3
- agentpool_config/storage.py +82 -38
- agentpool_config/task.py +3 -3
- agentpool_config/tools.py +11 -22
- agentpool_config/toolsets.py +109 -233
- agentpool_server/a2a_server/agent_worker.py +307 -0
- agentpool_server/a2a_server/server.py +23 -18
- agentpool_server/acp_server/acp_agent.py +234 -181
- agentpool_server/acp_server/commands/acp_commands.py +151 -156
- agentpool_server/acp_server/commands/docs_commands/fetch_repo.py +18 -17
- agentpool_server/acp_server/event_converter.py +651 -0
- agentpool_server/acp_server/input_provider.py +53 -10
- agentpool_server/acp_server/server.py +24 -90
- agentpool_server/acp_server/session.py +173 -331
- agentpool_server/acp_server/session_manager.py +8 -34
- agentpool_server/agui_server/server.py +3 -1
- agentpool_server/mcp_server/server.py +5 -2
- agentpool_server/opencode_server/.rules +95 -0
- agentpool_server/opencode_server/ENDPOINTS.md +401 -0
- agentpool_server/opencode_server/OPENCODE_UI_TOOLS_COMPLETE.md +202 -0
- agentpool_server/opencode_server/__init__.py +19 -0
- agentpool_server/opencode_server/command_validation.py +172 -0
- agentpool_server/opencode_server/converters.py +975 -0
- agentpool_server/opencode_server/dependencies.py +24 -0
- agentpool_server/opencode_server/input_provider.py +421 -0
- agentpool_server/opencode_server/models/__init__.py +250 -0
- agentpool_server/opencode_server/models/agent.py +53 -0
- agentpool_server/opencode_server/models/app.py +72 -0
- agentpool_server/opencode_server/models/base.py +26 -0
- agentpool_server/opencode_server/models/common.py +23 -0
- agentpool_server/opencode_server/models/config.py +37 -0
- agentpool_server/opencode_server/models/events.py +821 -0
- agentpool_server/opencode_server/models/file.py +88 -0
- agentpool_server/opencode_server/models/mcp.py +44 -0
- agentpool_server/opencode_server/models/message.py +179 -0
- agentpool_server/opencode_server/models/parts.py +323 -0
- agentpool_server/opencode_server/models/provider.py +81 -0
- agentpool_server/opencode_server/models/pty.py +43 -0
- agentpool_server/opencode_server/models/question.py +56 -0
- agentpool_server/opencode_server/models/session.py +111 -0
- agentpool_server/opencode_server/routes/__init__.py +29 -0
- agentpool_server/opencode_server/routes/agent_routes.py +473 -0
- agentpool_server/opencode_server/routes/app_routes.py +202 -0
- agentpool_server/opencode_server/routes/config_routes.py +302 -0
- agentpool_server/opencode_server/routes/file_routes.py +571 -0
- agentpool_server/opencode_server/routes/global_routes.py +94 -0
- agentpool_server/opencode_server/routes/lsp_routes.py +319 -0
- agentpool_server/opencode_server/routes/message_routes.py +761 -0
- agentpool_server/opencode_server/routes/permission_routes.py +63 -0
- agentpool_server/opencode_server/routes/pty_routes.py +300 -0
- agentpool_server/opencode_server/routes/question_routes.py +128 -0
- agentpool_server/opencode_server/routes/session_routes.py +1276 -0
- agentpool_server/opencode_server/routes/tui_routes.py +139 -0
- agentpool_server/opencode_server/server.py +475 -0
- agentpool_server/opencode_server/state.py +151 -0
- agentpool_server/opencode_server/time_utils.py +8 -0
- agentpool_storage/__init__.py +12 -0
- agentpool_storage/base.py +184 -2
- agentpool_storage/claude_provider/ARCHITECTURE.md +433 -0
- agentpool_storage/claude_provider/__init__.py +42 -0
- agentpool_storage/claude_provider/provider.py +1089 -0
- agentpool_storage/file_provider.py +278 -15
- agentpool_storage/memory_provider.py +193 -12
- agentpool_storage/models.py +3 -0
- agentpool_storage/opencode_provider/ARCHITECTURE.md +386 -0
- agentpool_storage/opencode_provider/__init__.py +16 -0
- agentpool_storage/opencode_provider/helpers.py +414 -0
- agentpool_storage/opencode_provider/provider.py +895 -0
- agentpool_storage/project_store.py +325 -0
- agentpool_storage/session_store.py +26 -6
- agentpool_storage/sql_provider/__init__.py +4 -2
- agentpool_storage/sql_provider/models.py +48 -0
- agentpool_storage/sql_provider/sql_provider.py +269 -3
- agentpool_storage/sql_provider/utils.py +12 -13
- agentpool_storage/zed_provider/__init__.py +16 -0
- agentpool_storage/zed_provider/helpers.py +281 -0
- agentpool_storage/zed_provider/models.py +130 -0
- agentpool_storage/zed_provider/provider.py +442 -0
- agentpool_storage/zed_provider.py +803 -0
- agentpool_toolsets/__init__.py +0 -2
- agentpool_toolsets/builtin/__init__.py +2 -12
- agentpool_toolsets/builtin/code.py +96 -57
- agentpool_toolsets/builtin/debug.py +118 -48
- agentpool_toolsets/builtin/execution_environment.py +115 -230
- agentpool_toolsets/builtin/file_edit/file_edit.py +115 -7
- agentpool_toolsets/builtin/skills.py +9 -4
- agentpool_toolsets/builtin/subagent_tools.py +64 -51
- agentpool_toolsets/builtin/workers.py +4 -2
- agentpool_toolsets/composio_toolset.py +2 -2
- agentpool_toolsets/entry_points.py +3 -1
- agentpool_toolsets/fsspec_toolset/__init__.py +13 -1
- agentpool_toolsets/fsspec_toolset/diagnostics.py +860 -73
- agentpool_toolsets/fsspec_toolset/grep.py +99 -7
- agentpool_toolsets/fsspec_toolset/helpers.py +3 -2
- agentpool_toolsets/fsspec_toolset/image_utils.py +161 -0
- agentpool_toolsets/fsspec_toolset/toolset.py +500 -95
- agentpool_toolsets/mcp_discovery/__init__.py +5 -0
- agentpool_toolsets/mcp_discovery/data/mcp_servers.parquet +0 -0
- agentpool_toolsets/mcp_discovery/toolset.py +511 -0
- agentpool_toolsets/mcp_run_toolset.py +87 -12
- agentpool_toolsets/notifications.py +33 -33
- agentpool_toolsets/openapi.py +3 -1
- agentpool_toolsets/search_toolset.py +3 -1
- agentpool-2.1.9.dist-info/RECORD +0 -474
- agentpool_config/resources.py +0 -33
- agentpool_server/acp_server/acp_tools.py +0 -43
- agentpool_server/acp_server/commands/spawn.py +0 -210
- agentpool_storage/text_log_provider.py +0 -275
- agentpool_toolsets/builtin/agent_management.py +0 -239
- agentpool_toolsets/builtin/chain.py +0 -288
- agentpool_toolsets/builtin/history.py +0 -36
- agentpool_toolsets/builtin/integration.py +0 -85
- agentpool_toolsets/builtin/tool_management.py +0 -90
- agentpool_toolsets/builtin/user_interaction.py +0 -52
- agentpool_toolsets/semantic_memory_toolset.py +0 -536
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/entry_points.txt +0 -0
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Agent and command models."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Literal
|
|
6
|
+
|
|
7
|
+
from pydantic import Field
|
|
8
|
+
|
|
9
|
+
from agentpool_server.opencode_server.models.base import OpenCodeBaseModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AgentPermission(OpenCodeBaseModel):
|
|
13
|
+
"""Agent permission settings."""
|
|
14
|
+
|
|
15
|
+
edit: Literal["ask", "allow", "deny"] = "ask"
|
|
16
|
+
bash: dict[str, Literal["ask", "allow", "deny"]] = Field(default_factory=dict)
|
|
17
|
+
skill: dict[str, Literal["ask", "allow", "deny"]] = Field(default_factory=dict)
|
|
18
|
+
webfetch: Literal["ask", "allow", "deny"] | None = None
|
|
19
|
+
doom_loop: Literal["ask", "allow", "deny"] | None = None
|
|
20
|
+
external_directory: Literal["ask", "allow", "deny"] | None = None
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AgentModel(OpenCodeBaseModel):
|
|
24
|
+
"""Agent model configuration."""
|
|
25
|
+
|
|
26
|
+
model_id: str
|
|
27
|
+
provider_id: str
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class Agent(OpenCodeBaseModel):
|
|
31
|
+
"""Agent information matching SDK type."""
|
|
32
|
+
|
|
33
|
+
name: str
|
|
34
|
+
description: str | None = None
|
|
35
|
+
mode: Literal["subagent", "primary", "all"] = "primary"
|
|
36
|
+
native: bool | None = None
|
|
37
|
+
hidden: bool | None = None
|
|
38
|
+
default: bool | None = None
|
|
39
|
+
top_p: float | None = None
|
|
40
|
+
temperature: float | None = None
|
|
41
|
+
color: str | None = None
|
|
42
|
+
permission: AgentPermission = Field(default_factory=AgentPermission)
|
|
43
|
+
model: AgentModel | None = None
|
|
44
|
+
prompt: str | None = None
|
|
45
|
+
tools: dict[str, bool] = Field(default_factory=dict)
|
|
46
|
+
options: dict[str, str] = Field(default_factory=dict)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class Command(OpenCodeBaseModel):
|
|
50
|
+
"""Slash command."""
|
|
51
|
+
|
|
52
|
+
name: str
|
|
53
|
+
description: str = ""
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"""App, project, and path related models."""
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
from agentpool_server.opencode_server.models.base import OpenCodeBaseModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class HealthResponse(OpenCodeBaseModel):
|
|
9
|
+
"""Response for /global/health endpoint."""
|
|
10
|
+
|
|
11
|
+
healthy: bool = True
|
|
12
|
+
version: str
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class PathInfo(OpenCodeBaseModel):
|
|
16
|
+
"""Path information for app/project."""
|
|
17
|
+
|
|
18
|
+
config: str = ""
|
|
19
|
+
cwd: str
|
|
20
|
+
data: str = ""
|
|
21
|
+
root: str
|
|
22
|
+
state: str = ""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class AppTimeInfo(OpenCodeBaseModel):
|
|
26
|
+
"""App time information."""
|
|
27
|
+
|
|
28
|
+
initialized: float | None = None
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class App(OpenCodeBaseModel):
|
|
32
|
+
"""App information response."""
|
|
33
|
+
|
|
34
|
+
git: bool = False
|
|
35
|
+
hostname: str = "localhost"
|
|
36
|
+
path: PathInfo
|
|
37
|
+
time: AppTimeInfo
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ProjectTime(OpenCodeBaseModel):
|
|
41
|
+
"""Project time information."""
|
|
42
|
+
|
|
43
|
+
created: int
|
|
44
|
+
initialized: int | None = None
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class Project(OpenCodeBaseModel):
|
|
48
|
+
"""Project information."""
|
|
49
|
+
|
|
50
|
+
id: str
|
|
51
|
+
worktree: str
|
|
52
|
+
vcs_dir: str | None = None
|
|
53
|
+
vcs: str | None = None # "git" or None
|
|
54
|
+
time: ProjectTime
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class VcsInfo(OpenCodeBaseModel):
|
|
58
|
+
"""VCS (git) information."""
|
|
59
|
+
|
|
60
|
+
branch: str | None = None
|
|
61
|
+
dirty: bool = False
|
|
62
|
+
commit: str | None = None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class ProjectUpdateRequest(OpenCodeBaseModel):
|
|
66
|
+
"""Request to update project metadata."""
|
|
67
|
+
|
|
68
|
+
name: str | None = None
|
|
69
|
+
"""Optional friendly name for the project."""
|
|
70
|
+
|
|
71
|
+
settings: dict[str, Any] | None = None
|
|
72
|
+
"""Optional project-specific settings to update."""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Base model for all OpenCode API models."""
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict
|
|
4
|
+
from pydantic.alias_generators import to_camel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def convert(text: str) -> str:
|
|
8
|
+
val = to_camel(text)
|
|
9
|
+
if val.endswith("Id"):
|
|
10
|
+
return val.rstrip("Id") + "ID"
|
|
11
|
+
return val
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class OpenCodeBaseModel(BaseModel):
|
|
15
|
+
"""Base model with OpenCode-compatible configuration.
|
|
16
|
+
|
|
17
|
+
All OpenCode models should inherit from this to ensure:
|
|
18
|
+
- Fields can be populated by their alias (camelCase) or Python name (snake_case)
|
|
19
|
+
- Serialization uses aliases by default for API compatibility
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
model_config = ConfigDict(
|
|
23
|
+
populate_by_name=True,
|
|
24
|
+
alias_generator=convert,
|
|
25
|
+
use_attribute_docstrings=True,
|
|
26
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Common/shared models used across multiple domains."""
|
|
2
|
+
|
|
3
|
+
from agentpool_server.opencode_server.models.base import OpenCodeBaseModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class TimeCreatedUpdated(OpenCodeBaseModel):
|
|
7
|
+
"""Timestamp with created and updated fields (milliseconds)."""
|
|
8
|
+
|
|
9
|
+
created: int
|
|
10
|
+
updated: int
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TimeCreated(OpenCodeBaseModel):
|
|
14
|
+
"""Timestamp with created field only (milliseconds)."""
|
|
15
|
+
|
|
16
|
+
created: int
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class TimeStartEnd(OpenCodeBaseModel):
|
|
20
|
+
"""Timestamp with start and optional end (milliseconds)."""
|
|
21
|
+
|
|
22
|
+
start: int
|
|
23
|
+
end: int | None = None
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""Config models."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from agentpool_server.opencode_server.models.base import OpenCodeBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Config(OpenCodeBaseModel):
|
|
11
|
+
"""Server configuration.
|
|
12
|
+
|
|
13
|
+
This is a simplified version - we only include fields the TUI needs.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
# Model settings
|
|
17
|
+
model: str | None = None
|
|
18
|
+
small_model: str | None = None
|
|
19
|
+
|
|
20
|
+
# Theme and UI
|
|
21
|
+
theme: str | None = None
|
|
22
|
+
username: str | None = None
|
|
23
|
+
|
|
24
|
+
# Sharing
|
|
25
|
+
share: str | None = None # "manual", "auto", "disabled"
|
|
26
|
+
|
|
27
|
+
# Provider configurations (simplified)
|
|
28
|
+
provider: dict[str, Any] | None = None
|
|
29
|
+
|
|
30
|
+
# MCP configurations
|
|
31
|
+
mcp: dict[str, Any] | None = None
|
|
32
|
+
|
|
33
|
+
# Instructions
|
|
34
|
+
instructions: list[str] | None = None
|
|
35
|
+
|
|
36
|
+
# Auto-update
|
|
37
|
+
autoupdate: bool | None = None
|