codex-agent-framework 0.1.34__tar.gz → 0.1.35__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.34 → codex_agent_framework-0.1.35}/CHANGELOG.md +8 -0
- {codex_agent_framework-0.1.34/codex_agent_framework.egg-info → codex_agent_framework-0.1.35}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/agent.py +74 -36
- codex_agent_framework-0.1.35/codex_agent/version.py +1 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35/codex_agent_framework.egg-info}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/pyproject.toml +1 -1
- codex_agent_framework-0.1.34/codex_agent/version.py +0 -1
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/LICENSE +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/MANIFEST.in +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/README.md +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/__main__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/agent_runtime.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/ai.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/browser.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_commands.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/system.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/vision.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/context/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/files/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/files/tools.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/python/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/session.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/headless.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/main.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/output.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/root.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/runner.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/client.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/command.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/config.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/context.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/desktop.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/event.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/default_gitignore +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/get_text.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/simpler_get_text.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/hooks.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/image.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/latex.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/mainloop.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/message.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/plugin.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/prompts/system_prompt.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/provider.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/runtime.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/scheduler.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/scripts/install-system-dependencies.sh +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/server/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/server/app.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/server/core.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/service.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/sessions.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/status.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/stream.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/stream_utils.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tool.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tray.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/__init__.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/app.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/chat.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/lifecycle.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/log.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/state.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/status_bar.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/style.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/transcript.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/utils.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/worker.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/entry_points.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/requires.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/top_level.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/dependencies.txt +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/setup.cfg +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_audio_hooks.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_commands.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_context.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_desktop.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_environment.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_image_generation.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_observe.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_plugins.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_providers_config.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_realtime.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_response.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_runtime.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_sessions.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_subagents.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_tools.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_turns.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_ai.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_browser.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_builtin_config.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_chat.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_cli.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_cli_headless.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_cli_root.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_client.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_events.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_get_text_browser.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_hooks.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_image_message.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_local_desktop.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_memory.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_messages.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_planner.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_scheduler.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_server.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_service.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_tui.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_utils.py +0 -0
- {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_worker.py +0 -0
|
@@ -4,6 +4,14 @@ 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.35] - 2026-05-16
|
|
8
|
+
### Changed
|
|
9
|
+
- Normalize formatting in the `Agent` facade around initialization, message helpers, image helpers, and tool registration.
|
|
10
|
+
- Wrap long `Agent` facade lines for imports, interrupt events, working-directory resolution, and upload notifications.
|
|
11
|
+
|
|
12
|
+
### Tests
|
|
13
|
+
- Validate with targeted Agent/session/tool/environment/response coverage and the 553-test offline CI suite.
|
|
14
|
+
|
|
7
15
|
## [0.1.34] - 2026-05-16
|
|
8
16
|
### Changed
|
|
9
17
|
- Share the broken-session backup path used by session repair and truncation flows.
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
from .utils import
|
|
1
|
+
from .utils import (
|
|
2
|
+
ensure_runtime_dir,
|
|
3
|
+
project_python_env,
|
|
4
|
+
root_join,
|
|
5
|
+
runtime_join,
|
|
6
|
+
text_content,
|
|
7
|
+
upload_file_to_folder,
|
|
8
|
+
)
|
|
2
9
|
import os
|
|
3
10
|
from modict import modict
|
|
4
|
-
from .message import
|
|
11
|
+
from .message import (
|
|
12
|
+
DeveloperMessage,
|
|
13
|
+
ServerToolResponseMessage,
|
|
14
|
+
ToolResultMessage,
|
|
15
|
+
UserMessage,
|
|
16
|
+
message_from_data,
|
|
17
|
+
)
|
|
5
18
|
from .image import ImageMessage
|
|
6
19
|
from .command import CommandManager
|
|
7
20
|
from .config import ConfigManager
|
|
@@ -22,7 +35,7 @@ from threading import Event as ThreadEvent
|
|
|
22
35
|
|
|
23
36
|
class Agent:
|
|
24
37
|
|
|
25
|
-
def __init__(self,session="latest"
|
|
38
|
+
def __init__(self, session="latest", **kwargs):
|
|
26
39
|
"""Initializes the Agent instance with configuration, events, tools, and message history.
|
|
27
40
|
|
|
28
41
|
Args:
|
|
@@ -36,33 +49,33 @@ class Agent:
|
|
|
36
49
|
explicit_root_dir = kwargs.pop("root_dir", None)
|
|
37
50
|
explicit_cwd = kwargs.pop("cwd", None)
|
|
38
51
|
self.init_execution_environment()
|
|
39
|
-
self.config_manager=ConfigManager(self)
|
|
52
|
+
self.config_manager = ConfigManager(self)
|
|
40
53
|
self.config_manager.load()
|
|
41
54
|
self.config_manager.update(kwargs, save=False)
|
|
42
55
|
self.init_working_directories(root_dir=explicit_root_dir or launch_cwd, cwd=explicit_cwd)
|
|
43
56
|
self.config_manager.apply_openai_capability_defaults()
|
|
44
|
-
self.events=EventBus()
|
|
45
|
-
self.tools_manager=ToolsManager(self)
|
|
46
|
-
self.providers_manager=ProvidersManager(self)
|
|
47
|
-
self.command_manager=CommandManager(self)
|
|
48
|
-
self.context_manager=ContextManager(self)
|
|
49
|
-
self.plugins_manager=PluginsManager(self)
|
|
50
|
-
self.sessions_manager=SessionsManager(self)
|
|
51
|
-
self.runtime=RuntimeManager(self)
|
|
52
|
-
self.scheduler=AgentScheduler(self)
|
|
53
|
-
self.hooks=HookManager(self)
|
|
54
|
-
self.stream_manager=StreamManager(self)
|
|
55
|
-
self.mainloop_manager=MainLoopManager(self)
|
|
56
|
-
self._interrupt_requested=ThreadEvent()
|
|
57
|
-
self.current_session_id=None
|
|
58
|
-
self.session=None
|
|
59
|
-
self.status_manager=StatusManager(self)
|
|
60
|
-
self.context_namespace=self.create_context_namespace()
|
|
57
|
+
self.events = EventBus()
|
|
58
|
+
self.tools_manager = ToolsManager(self)
|
|
59
|
+
self.providers_manager = ProvidersManager(self)
|
|
60
|
+
self.command_manager = CommandManager(self)
|
|
61
|
+
self.context_manager = ContextManager(self)
|
|
62
|
+
self.plugins_manager = PluginsManager(self)
|
|
63
|
+
self.sessions_manager = SessionsManager(self)
|
|
64
|
+
self.runtime = RuntimeManager(self)
|
|
65
|
+
self.scheduler = AgentScheduler(self)
|
|
66
|
+
self.hooks = HookManager(self)
|
|
67
|
+
self.stream_manager = StreamManager(self)
|
|
68
|
+
self.mainloop_manager = MainLoopManager(self)
|
|
69
|
+
self._interrupt_requested = ThreadEvent()
|
|
70
|
+
self.current_session_id = None
|
|
71
|
+
self.session = None
|
|
72
|
+
self.status_manager = StatusManager(self)
|
|
73
|
+
self.context_namespace = self.create_context_namespace()
|
|
61
74
|
self.init_workfolder()
|
|
62
75
|
self.sessions_manager.init_folder()
|
|
63
76
|
self.command_manager.init_folder()
|
|
64
77
|
self.plugins_manager.init_folder()
|
|
65
|
-
self.ai=AIClient(self)
|
|
78
|
+
self.ai = AIClient(self)
|
|
66
79
|
self.command_manager.init_builtin()
|
|
67
80
|
self.plugins_manager.init_builtin()
|
|
68
81
|
self.plugins_manager.init_runtime()
|
|
@@ -192,7 +205,12 @@ class Agent:
|
|
|
192
205
|
except Exception as exc:
|
|
193
206
|
abort_error = exc
|
|
194
207
|
self.emit(AssistantInterruptedEvent, reason=reason)
|
|
195
|
-
self.emit(
|
|
208
|
+
self.emit(
|
|
209
|
+
AssistantInterruptRequestedEvent,
|
|
210
|
+
reason=reason,
|
|
211
|
+
interrupted=True,
|
|
212
|
+
error=str(abort_error) if abort_error else "",
|
|
213
|
+
)
|
|
196
214
|
return True
|
|
197
215
|
|
|
198
216
|
def clear_interrupt(self):
|
|
@@ -233,7 +251,9 @@ class Agent:
|
|
|
233
251
|
return self.sync_working_cwd_from_process(save_session=save_session)
|
|
234
252
|
|
|
235
253
|
def init_working_directories(self, root_dir=None, cwd=None):
|
|
236
|
-
root_dir = self.normalize_directory(
|
|
254
|
+
root_dir = self.normalize_directory(
|
|
255
|
+
root_dir or getattr(self, "process_launch_cwd", None) or self.config.root_dir
|
|
256
|
+
)
|
|
237
257
|
cwd = self.normalize_directory(cwd or root_dir)
|
|
238
258
|
self.config.root_dir = root_dir
|
|
239
259
|
self.set_process_cwd(cwd)
|
|
@@ -242,7 +262,11 @@ class Agent:
|
|
|
242
262
|
def apply_session_working_directories(self):
|
|
243
263
|
if not self.session:
|
|
244
264
|
return self.config.cwd
|
|
245
|
-
root_dir =
|
|
265
|
+
root_dir = (
|
|
266
|
+
getattr(self.session, "root_dir", None)
|
|
267
|
+
or self.config.root_dir
|
|
268
|
+
or getattr(self, "process_launch_cwd", None)
|
|
269
|
+
)
|
|
246
270
|
cwd = getattr(self.session, "cwd", None) or root_dir
|
|
247
271
|
self.config.root_dir = self.normalize_directory(root_dir)
|
|
248
272
|
self.session.root_dir = self.config.root_dir
|
|
@@ -261,7 +285,7 @@ class Agent:
|
|
|
261
285
|
|
|
262
286
|
def init_workfolder(self):
|
|
263
287
|
if not os.path.isdir(self.config.workfolder):
|
|
264
|
-
os.makedirs(self.config.workfolder,exist_ok=True)
|
|
288
|
+
os.makedirs(self.config.workfolder, exist_ok=True)
|
|
265
289
|
|
|
266
290
|
def init_execution_environment(self):
|
|
267
291
|
os.environ.update(project_python_env())
|
|
@@ -298,7 +322,7 @@ class Agent:
|
|
|
298
322
|
max_compacted_turns=max_compacted_turns,
|
|
299
323
|
)
|
|
300
324
|
|
|
301
|
-
def add_message(self,msg,pending=False):
|
|
325
|
+
def add_message(self, msg, pending=False):
|
|
302
326
|
"""Queue a message for the next pending flush, except tool results."""
|
|
303
327
|
if isinstance(msg, ToolResultMessage):
|
|
304
328
|
return self.sessions_manager.append_message(msg)
|
|
@@ -306,7 +330,7 @@ class Agent:
|
|
|
306
330
|
return self.sessions_manager.append_message(msg)
|
|
307
331
|
return self.mainloop_manager.add_pending_message(msg)
|
|
308
332
|
|
|
309
|
-
def new_message(self,pending=False
|
|
333
|
+
def new_message(self, pending=False, **kwargs):
|
|
310
334
|
"""Helper to create and add a message based on provided keyword arguments.
|
|
311
335
|
|
|
312
336
|
Args:
|
|
@@ -316,21 +340,31 @@ class Agent:
|
|
|
316
340
|
Returns:
|
|
317
341
|
The created message object.
|
|
318
342
|
"""
|
|
319
|
-
msg=message_from_data(kwargs)
|
|
320
|
-
return self.add_message(msg,pending=pending)
|
|
343
|
+
msg = message_from_data(kwargs)
|
|
344
|
+
return self.add_message(msg, pending=pending)
|
|
321
345
|
|
|
322
|
-
def add_image(self,source,pending=False
|
|
346
|
+
def add_image(self, source, pending=False, **kwargs):
|
|
323
347
|
if source:
|
|
324
|
-
img=ImageMessage(
|
|
348
|
+
img = ImageMessage(
|
|
325
349
|
content=source,
|
|
326
|
-
**kwargs
|
|
350
|
+
**kwargs,
|
|
327
351
|
)
|
|
328
352
|
if not img.is_valid():
|
|
329
353
|
raise ValueError(f"Invalid or inaccessible image source: {source!r}")
|
|
330
|
-
self.add_message(img,pending=pending)
|
|
354
|
+
self.add_message(img, pending=pending)
|
|
331
355
|
return img
|
|
332
356
|
|
|
333
|
-
def add_tool(
|
|
357
|
+
def add_tool(
|
|
358
|
+
self,
|
|
359
|
+
func=None,
|
|
360
|
+
name=None,
|
|
361
|
+
description=None,
|
|
362
|
+
parameters=None,
|
|
363
|
+
required=None,
|
|
364
|
+
tool_type=None,
|
|
365
|
+
format=None,
|
|
366
|
+
owner=None,
|
|
367
|
+
):
|
|
334
368
|
return self.tools_manager.add(
|
|
335
369
|
func=func,
|
|
336
370
|
name=name,
|
|
@@ -498,7 +532,11 @@ class Agent:
|
|
|
498
532
|
dest_path = upload_file_to_folder(source, self.config.workfolder, name=name)
|
|
499
533
|
dest_filename = os.path.basename(dest_path)
|
|
500
534
|
|
|
501
|
-
self.add_message(
|
|
535
|
+
self.add_message(
|
|
536
|
+
DeveloperMessage(
|
|
537
|
+
content=f"File '{dest_filename}' has been uploaded to the workfolder at: {dest_path}"
|
|
538
|
+
)
|
|
539
|
+
)
|
|
502
540
|
|
|
503
541
|
return dest_path
|
|
504
542
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.35"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.34"
|
|
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.34 → codex_agent_framework-0.1.35}/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
|
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/__init__.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/default_gitignore
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/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
|
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/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.34 → codex_agent_framework-0.1.35}/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.34 → codex_agent_framework-0.1.35}/tests/test_agent_audio_hooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_environment.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_image_generation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/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.34 → codex_agent_framework-0.1.35}/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
|