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.
Files changed (151) hide show
  1. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/CHANGELOG.md +8 -0
  2. {codex_agent_framework-0.1.34/codex_agent_framework.egg-info → codex_agent_framework-0.1.35}/PKG-INFO +1 -1
  3. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/agent.py +74 -36
  4. codex_agent_framework-0.1.35/codex_agent/version.py +1 -0
  5. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35/codex_agent_framework.egg-info}/PKG-INFO +1 -1
  6. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/pyproject.toml +1 -1
  7. codex_agent_framework-0.1.34/codex_agent/version.py +0 -1
  8. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/LICENSE +0 -0
  9. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/MANIFEST.in +0 -0
  10. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/README.md +0 -0
  11. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/__init__.py +0 -0
  12. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/__main__.py +0 -0
  13. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/agent_runtime.py +0 -0
  14. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/ai.py +0 -0
  15. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/browser.py +0 -0
  16. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_commands.py +0 -0
  17. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/__init__.py +0 -0
  18. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
  19. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
  20. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
  21. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
  22. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/__init__.py +0 -0
  23. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
  24. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/system.py +0 -0
  25. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/content/vision.py +0 -0
  26. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/context/__init__.py +0 -0
  27. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
  28. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
  29. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
  30. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
  31. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/files/__init__.py +0 -0
  32. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
  33. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/files/tools.py +0 -0
  34. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
  35. {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
  36. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
  37. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
  38. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
  39. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
  40. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
  41. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
  42. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
  43. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/python/__init__.py +0 -0
  44. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
  45. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
  46. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
  47. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
  48. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
  49. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
  50. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/realtime/session.py +0 -0
  51. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
  52. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
  53. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
  54. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
  55. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
  56. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
  57. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
  58. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/__init__.py +0 -0
  59. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/headless.py +0 -0
  60. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/main.py +0 -0
  61. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/output.py +0 -0
  62. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/root.py +0 -0
  63. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/cli/runner.py +0 -0
  64. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/client.py +0 -0
  65. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/command.py +0 -0
  66. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/config.py +0 -0
  67. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/context.py +0 -0
  68. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/desktop.py +0 -0
  69. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/event.py +0 -0
  70. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/__init__.py +0 -0
  71. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/default_gitignore +0 -0
  72. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/get_text.py +0 -0
  73. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/get_text/simpler_get_text.py +0 -0
  74. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/hooks.py +0 -0
  75. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/image.py +0 -0
  76. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/latex.py +0 -0
  77. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/mainloop.py +0 -0
  78. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/message.py +0 -0
  79. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/plugin.py +0 -0
  80. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/prompts/system_prompt.txt +0 -0
  81. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/provider.py +0 -0
  82. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/runtime.py +0 -0
  83. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/scheduler.py +0 -0
  84. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/scripts/install-system-dependencies.sh +0 -0
  85. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/server/__init__.py +0 -0
  86. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/server/app.py +0 -0
  87. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/server/core.py +0 -0
  88. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/service.py +0 -0
  89. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/sessions.py +0 -0
  90. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/status.py +0 -0
  91. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/stream.py +0 -0
  92. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/stream_utils.py +0 -0
  93. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tool.py +0 -0
  94. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tray.py +0 -0
  95. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/__init__.py +0 -0
  96. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/app.py +0 -0
  97. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/chat.py +0 -0
  98. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/lifecycle.py +0 -0
  99. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/log.py +0 -0
  100. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/state.py +0 -0
  101. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/status_bar.py +0 -0
  102. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/style.py +0 -0
  103. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/tui/transcript.py +0 -0
  104. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/utils.py +0 -0
  105. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent/worker.py +0 -0
  106. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
  107. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
  108. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/entry_points.txt +0 -0
  109. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/requires.txt +0 -0
  110. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/codex_agent_framework.egg-info/top_level.txt +0 -0
  111. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/dependencies.txt +0 -0
  112. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/setup.cfg +0 -0
  113. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent.py +0 -0
  114. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_audio_hooks.py +0 -0
  115. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_commands.py +0 -0
  116. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_context.py +0 -0
  117. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_desktop.py +0 -0
  118. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_environment.py +0 -0
  119. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_image_generation.py +0 -0
  120. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_observe.py +0 -0
  121. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_plugins.py +0 -0
  122. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_providers_config.py +0 -0
  123. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_realtime.py +0 -0
  124. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_response.py +0 -0
  125. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_runtime.py +0 -0
  126. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_sessions.py +0 -0
  127. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_subagents.py +0 -0
  128. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_tools.py +0 -0
  129. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_agent_turns.py +0 -0
  130. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_ai.py +0 -0
  131. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_browser.py +0 -0
  132. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_builtin_config.py +0 -0
  133. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_chat.py +0 -0
  134. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_cli.py +0 -0
  135. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_cli_headless.py +0 -0
  136. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_cli_root.py +0 -0
  137. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_client.py +0 -0
  138. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_events.py +0 -0
  139. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_get_text_browser.py +0 -0
  140. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_hooks.py +0 -0
  141. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_image_message.py +0 -0
  142. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_local_desktop.py +0 -0
  143. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_memory.py +0 -0
  144. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_messages.py +0 -0
  145. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_planner.py +0 -0
  146. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_scheduler.py +0 -0
  147. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_server.py +0 -0
  148. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_service.py +0 -0
  149. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_tui.py +0 -0
  150. {codex_agent_framework-0.1.34 → codex_agent_framework-0.1.35}/tests/test_utils.py +0 -0
  151. {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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.34
3
+ Version: 0.1.35
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -1,7 +1,20 @@
1
- from .utils import text_content, ensure_runtime_dir, upload_file_to_folder, project_python_env, runtime_join, root_join
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 DeveloperMessage, ServerToolResponseMessage, ToolResultMessage, UserMessage, message_from_data
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",**kwargs):
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(AssistantInterruptRequestedEvent, reason=reason, interrupted=True, error=str(abort_error) if abort_error else "")
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(root_dir or getattr(self, "process_launch_cwd", None) or self.config.root_dir)
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 = getattr(self.session, "root_dir", None) or self.config.root_dir or getattr(self, "process_launch_cwd", None)
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,**kwargs):
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,**kwargs):
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(self,func=None,name=None,description=None,parameters=None,required=None,tool_type=None,format=None,owner=None):
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(DeveloperMessage(content=f"File '{dest_filename}' has been uploaded to the workfolder at: {dest_path}"))
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.34
3
+ Version: 0.1.35
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "codex-agent-framework"
7
- version = "0.1.34"
7
+ version = "0.1.35"
8
8
  description = "A lightweight event-driven Codex agent runtime."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1 +0,0 @@
1
- __version__ = "0.1.34"