codex-agent-framework 0.1.39__tar.gz → 0.1.41__tar.gz
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.
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/CHANGELOG.md +15 -0
- {codex_agent_framework-0.1.39/codex_agent_framework.egg-info → codex_agent_framework-0.1.41}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/config.py +30 -5
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/plugin.py +24 -5
- codex_agent_framework-0.1.41/codex_agent/version.py +1 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41/codex_agent_framework.egg-info}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/pyproject.toml +1 -1
- codex_agent_framework-0.1.39/codex_agent/version.py +0 -1
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/LICENSE +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/MANIFEST.in +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/README.md +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/__main__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/agent.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/agent_runtime.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/ai.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/browser.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_commands.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/content/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/content/system.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/content/vision.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/context/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/files/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/files/tools.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/python/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/realtime/session.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/cli/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/cli/headless.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/cli/main.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/cli/output.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/cli/root.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/cli/runner.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/client.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/command.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/context.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/desktop.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/event.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/default_gitignore +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/get_text.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/simpler_get_text.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/hooks.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/image.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/latex.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/mainloop.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/message.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/prompts/system_prompt.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/provider.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/runtime.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/scheduler.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/scripts/install-system-dependencies.sh +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/server/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/server/app.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/server/core.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/service.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/sessions.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/status.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/stream.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/stream_utils.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tool.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tray.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/__init__.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/app.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/chat.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/lifecycle.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/log.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/state.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/status_bar.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/style.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/tui/transcript.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/utils.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/worker.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent_framework.egg-info/entry_points.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent_framework.egg-info/requires.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent_framework.egg-info/top_level.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/dependencies.txt +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/setup.cfg +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_audio_hooks.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_commands.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_context.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_desktop.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_environment.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_image_generation.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_observe.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_plugins.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_providers_config.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_realtime.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_response.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_runtime.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_sessions.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_subagents.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_tools.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_turns.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_ai.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_browser.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_builtin_config.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_chat.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_cli.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_cli_headless.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_cli_root.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_client.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_events.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_get_text_browser.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_hooks.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_image_message.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_local_desktop.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_memory.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_messages.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_planner.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_scheduler.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_server.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_service.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_tui.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_utils.py +0 -0
- {codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_worker.py +0 -0
|
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
This project loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses semantic versioning where practical.
|
|
6
6
|
|
|
7
|
+
## [0.1.41] - 2026-05-16
|
|
8
|
+
### Changed
|
|
9
|
+
- Reflow `ConfigManager` update, namespace update, plugin default, and system prompt validation paths for readability.
|
|
10
|
+
|
|
11
|
+
### Tests
|
|
12
|
+
- Validate with targeted config/provider/plugin/environment coverage and the 553-test offline CI suite.
|
|
13
|
+
|
|
14
|
+
## [0.1.40] - 2026-05-16
|
|
15
|
+
### Changed
|
|
16
|
+
- Share decorated-plugin option lookup across event handlers, hooks, and stream processors.
|
|
17
|
+
- Reflow plugin load/unload runtime-state events for readability.
|
|
18
|
+
|
|
19
|
+
### Tests
|
|
20
|
+
- Validate with plugin coverage and the 553-test offline CI suite.
|
|
21
|
+
|
|
7
22
|
## [0.1.39] - 2026-05-16
|
|
8
23
|
### Changed
|
|
9
24
|
- Reflow `Tool` and `ToolsManager` helper signatures and runtime-state events for readability.
|
|
@@ -143,7 +143,12 @@ class ConfigManager:
|
|
|
143
143
|
|
|
144
144
|
def update(self, config=None, save=True, **kwargs):
|
|
145
145
|
if self.should_queue_state_command():
|
|
146
|
-
return self.agent.submit(
|
|
146
|
+
return self.agent.submit(
|
|
147
|
+
"update_config",
|
|
148
|
+
config=config,
|
|
149
|
+
save=save,
|
|
150
|
+
kwargs=kwargs,
|
|
151
|
+
).wait().result
|
|
147
152
|
data = modict(config or {})
|
|
148
153
|
data.update(kwargs)
|
|
149
154
|
if data:
|
|
@@ -151,7 +156,12 @@ class ConfigManager:
|
|
|
151
156
|
self.agent.config = self.config
|
|
152
157
|
if save:
|
|
153
158
|
self.save()
|
|
154
|
-
self.emit_state_changed(
|
|
159
|
+
self.emit_state_changed(
|
|
160
|
+
reason="config_updated",
|
|
161
|
+
namespace="config",
|
|
162
|
+
name="agent",
|
|
163
|
+
details=data,
|
|
164
|
+
)
|
|
155
165
|
return self.config
|
|
156
166
|
|
|
157
167
|
def update_config(self, namespace="agent", config=None, save=True, **kwargs):
|
|
@@ -166,7 +176,12 @@ class ConfigManager:
|
|
|
166
176
|
target.update(data)
|
|
167
177
|
if save:
|
|
168
178
|
self.save_config(namespace)
|
|
169
|
-
self.emit_state_changed(
|
|
179
|
+
self.emit_state_changed(
|
|
180
|
+
reason="config_updated",
|
|
181
|
+
namespace="config",
|
|
182
|
+
name=namespace,
|
|
183
|
+
details=data,
|
|
184
|
+
)
|
|
170
185
|
return target
|
|
171
186
|
|
|
172
187
|
def emit_state_changed(self, **data):
|
|
@@ -222,7 +237,16 @@ class ConfigManager:
|
|
|
222
237
|
if isinstance(plugins, dict) and not plugins:
|
|
223
238
|
self.config.pop("plugins", None)
|
|
224
239
|
|
|
225
|
-
def apply_config_defaults(
|
|
240
|
+
def apply_config_defaults(
|
|
241
|
+
self,
|
|
242
|
+
namespace,
|
|
243
|
+
*,
|
|
244
|
+
file=None,
|
|
245
|
+
config_class=PluginConfig,
|
|
246
|
+
defaults=None,
|
|
247
|
+
legacy_agent_aliases=None,
|
|
248
|
+
legacy_agent_sections=None,
|
|
249
|
+
):
|
|
226
250
|
config = self.load_config(namespace, config_class=config_class, file=file, defaults=defaults)
|
|
227
251
|
migrated = False
|
|
228
252
|
for section in legacy_agent_sections or ():
|
|
@@ -253,7 +277,8 @@ class ConfigManager:
|
|
|
253
277
|
prompt = self.config.system
|
|
254
278
|
else:
|
|
255
279
|
raise ValueError(
|
|
256
|
-
|
|
280
|
+
"Invalid system message configuration. "
|
|
281
|
+
f"Expected path or string, got {type(self.config.system)}"
|
|
257
282
|
)
|
|
258
283
|
sections = [str(prompt or "").strip()]
|
|
259
284
|
plugins_manager = getattr(self.agent, "plugins_manager", None)
|
|
@@ -30,8 +30,13 @@ def event_handler(event):
|
|
|
30
30
|
return decorator
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
def _decorated_option(func, attr):
|
|
34
|
+
bound_func = getattr(func, "__func__", None)
|
|
35
|
+
return getattr(func, attr, getattr(bound_func, attr, None))
|
|
36
|
+
|
|
37
|
+
|
|
33
38
|
def event_handler_options(func):
|
|
34
|
-
return
|
|
39
|
+
return _decorated_option(func, "_codex_event_handler")
|
|
35
40
|
|
|
36
41
|
|
|
37
42
|
def hook_handler(name):
|
|
@@ -46,7 +51,7 @@ def hook_handler(name):
|
|
|
46
51
|
|
|
47
52
|
|
|
48
53
|
def hook_handler_options(func):
|
|
49
|
-
return
|
|
54
|
+
return _decorated_option(func, "_codex_hook_handler")
|
|
50
55
|
|
|
51
56
|
|
|
52
57
|
def stream_processor(key):
|
|
@@ -61,7 +66,7 @@ def stream_processor(key):
|
|
|
61
66
|
|
|
62
67
|
|
|
63
68
|
def stream_processor_options(func):
|
|
64
|
-
return
|
|
69
|
+
return _decorated_option(func, "_codex_stream_processor")
|
|
65
70
|
|
|
66
71
|
|
|
67
72
|
class Plugin:
|
|
@@ -473,7 +478,14 @@ class PluginsManager:
|
|
|
473
478
|
self.plugins[plugin_name] = plugin
|
|
474
479
|
plugin.apply_config_defaults()
|
|
475
480
|
self.add_plugin_members(plugin)
|
|
476
|
-
self.agent.emit(
|
|
481
|
+
self.agent.emit(
|
|
482
|
+
RuntimeStateChangedEvent,
|
|
483
|
+
reason="plugin_loaded",
|
|
484
|
+
namespace="plugins",
|
|
485
|
+
name=plugin_name,
|
|
486
|
+
owner=plugin_name,
|
|
487
|
+
details=plugin,
|
|
488
|
+
)
|
|
477
489
|
return plugin
|
|
478
490
|
|
|
479
491
|
def remove_plugin_members(self, plugin_or_name):
|
|
@@ -495,7 +507,14 @@ class PluginsManager:
|
|
|
495
507
|
plugin.stop(timeout=timeout)
|
|
496
508
|
removed = self.remove_plugin_members(plugin_name)
|
|
497
509
|
self.plugins.pop(plugin_name, None)
|
|
498
|
-
self.agent.emit(
|
|
510
|
+
self.agent.emit(
|
|
511
|
+
RuntimeStateChangedEvent,
|
|
512
|
+
reason="plugin_unloaded",
|
|
513
|
+
namespace="plugins",
|
|
514
|
+
name=plugin_name,
|
|
515
|
+
owner=plugin_name,
|
|
516
|
+
details=removed,
|
|
517
|
+
)
|
|
499
518
|
return modict(plugin=plugin, removed=removed)
|
|
500
519
|
|
|
501
520
|
def reload_plugin(self, plugin_or_name, timeout=None):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.41"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.39"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/builtin_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/__init__.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/default_gitignore
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/get_text/get_text.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/prompts/system_prompt.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/codex_agent/server/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_audio_hooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_environment.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_image_generation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_agent_providers_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.39 → codex_agent_framework-0.1.41}/tests/test_get_text_browser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|