agent-code 2.0.0__py3-none-any.whl → 2.1.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.
- agent_code/__init__.py +1 -1
- agent_code/addons.py +13 -5
- agent_code/agent.py +516 -54
- agent_code/loader.py +325 -216
- agent_code/provider_compat.py +109 -0
- agent_code/runtime.py +343 -0
- agent_code/skill_manager.py +29 -1
- agent_code/tool_namespace.py +142 -0
- agent_code/tui.py +805 -194
- agent_code-2.1.0.dist-info/METADATA +1048 -0
- {agent_code-2.0.0.dist-info → agent_code-2.1.0.dist-info}/RECORD +15 -12
- agent_code-2.0.0.dist-info/METADATA +0 -702
- {agent_code-2.0.0.dist-info → agent_code-2.1.0.dist-info}/WHEEL +0 -0
- {agent_code-2.0.0.dist-info → agent_code-2.1.0.dist-info}/entry_points.txt +0 -0
- {agent_code-2.0.0.dist-info → agent_code-2.1.0.dist-info}/licenses/LICENSE +0 -0
- {agent_code-2.0.0.dist-info → agent_code-2.1.0.dist-info}/top_level.txt +0 -0
agent_code/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""Agent + Skill Store — local AI agent with headless browser and skills."""
|
|
2
|
-
__version__ = "2.
|
|
2
|
+
__version__ = "2.1.0"
|
agent_code/addons.py
CHANGED
|
@@ -11,6 +11,7 @@ import json
|
|
|
11
11
|
import re
|
|
12
12
|
import sys
|
|
13
13
|
import traceback
|
|
14
|
+
from .tool_namespace import make_tool_name
|
|
14
15
|
from dataclasses import dataclass, field
|
|
15
16
|
from pathlib import Path
|
|
16
17
|
from typing import Any, Callable
|
|
@@ -114,6 +115,7 @@ class AddonManager:
|
|
|
114
115
|
self.apis: list[AddonAPI] = []
|
|
115
116
|
self.schemas: list[dict] = []
|
|
116
117
|
self.callables: dict[str, Callable] = {}
|
|
118
|
+
self.tool_identities: dict[str, dict] = {}
|
|
117
119
|
self.commands: dict[str, dict] = {}
|
|
118
120
|
self.actions: list[dict] = []
|
|
119
121
|
self.ui_contributions: list[dict] = []
|
|
@@ -145,7 +147,7 @@ class AddonManager:
|
|
|
145
147
|
return found
|
|
146
148
|
|
|
147
149
|
def load(self):
|
|
148
|
-
self.apis.clear(); self.schemas.clear(); self.callables.clear()
|
|
150
|
+
self.apis.clear(); self.schemas.clear(); self.callables.clear(); self.tool_identities.clear()
|
|
149
151
|
self.commands.clear(); self.actions.clear(); self.ui_contributions.clear()
|
|
150
152
|
self.services.clear(); self._loaded_modules.clear()
|
|
151
153
|
for info in self.discover():
|
|
@@ -169,11 +171,17 @@ class AddonManager:
|
|
|
169
171
|
if not callable(register):
|
|
170
172
|
raise TypeError("addon.py must export register(api)")
|
|
171
173
|
register(api)
|
|
174
|
+
used_names = set(self.callables)
|
|
172
175
|
for schema, handler in api.tools:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
original = schema["function"]["name"]
|
|
177
|
+
name = make_tool_name(info.name, original, used_names)
|
|
178
|
+
normalized = dict(schema)
|
|
179
|
+
normalized["function"] = {**schema["function"], "name": name}
|
|
180
|
+
self.schemas.append(normalized)
|
|
181
|
+
self.callables[name] = handler
|
|
182
|
+
self.tool_identities[name] = {"namespace": info.name,
|
|
183
|
+
"original_name": original,
|
|
184
|
+
"source_type": "addon"}
|
|
177
185
|
for name, definition in api.commands.items():
|
|
178
186
|
if name in self.commands:
|
|
179
187
|
raise ValueError(f"duplicate add-on command: {name}")
|