codex-agent-framework 0.1.71__tar.gz → 0.1.73__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 (158) hide show
  1. {codex_agent_framework-0.1.71/codex_agent_framework.egg-info → codex_agent_framework-0.1.73}/PKG-INFO +1 -1
  2. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/cli/main.py +13 -0
  3. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/runtime.py +2 -0
  4. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/scheduler.py +6 -0
  5. codex_agent_framework-0.1.73/codex_agent/version.py +1 -0
  6. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73/codex_agent_framework.egg-info}/PKG-INFO +1 -1
  7. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/pyproject.toml +1 -1
  8. codex_agent_framework-0.1.71/codex_agent/version.py +0 -1
  9. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/CHANGELOG.md +0 -0
  10. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/LICENSE +0 -0
  11. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/MANIFEST.in +0 -0
  12. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/README.md +0 -0
  13. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/__init__.py +0 -0
  14. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/__main__.py +0 -0
  15. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/agent.py +0 -0
  16. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/agent_runtime.py +0 -0
  17. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/ai.py +0 -0
  18. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/browser.py +0 -0
  19. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_commands.py +0 -0
  20. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/__init__.py +0 -0
  21. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
  22. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
  23. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
  24. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
  25. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/content/__init__.py +0 -0
  26. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
  27. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/content/system.py +0 -0
  28. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/content/vision.py +0 -0
  29. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/context/__init__.py +0 -0
  30. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
  31. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
  32. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
  33. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
  34. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/files/__init__.py +0 -0
  35. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
  36. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/files/tools.py +0 -0
  37. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
  38. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
  39. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
  40. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
  41. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
  42. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
  43. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
  44. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
  45. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
  46. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/python/__init__.py +0 -0
  47. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
  48. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
  49. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
  50. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
  51. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
  52. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
  53. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/realtime/session.py +0 -0
  54. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
  55. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
  56. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
  57. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
  58. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
  59. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
  60. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
  61. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/builtin_plugins/web_search/__init__.py +0 -0
  62. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/cli/__init__.py +0 -0
  63. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/cli/headless.py +0 -0
  64. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/cli/output.py +0 -0
  65. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/cli/root.py +0 -0
  66. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/cli/runner.py +0 -0
  67. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/client.py +0 -0
  68. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/command.py +0 -0
  69. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/config.py +0 -0
  70. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/context.py +0 -0
  71. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/desktop.py +0 -0
  72. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/event.py +0 -0
  73. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/get_text/__init__.py +0 -0
  74. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/get_text/default_gitignore +0 -0
  75. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/get_text/get_text.py +0 -0
  76. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/get_text/simpler_get_text.py +0 -0
  77. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/hooks.py +0 -0
  78. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/image.py +0 -0
  79. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/latex.py +0 -0
  80. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/mainloop.py +0 -0
  81. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/message.py +0 -0
  82. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/plugin.py +0 -0
  83. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/prompts/compaction_prompt.txt +0 -0
  84. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/prompts/system_prompt.txt +0 -0
  85. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/provider.py +0 -0
  86. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/scripts/install-system-dependencies.sh +0 -0
  87. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/server/__init__.py +0 -0
  88. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/server/app.py +0 -0
  89. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/server/core.py +0 -0
  90. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/service.py +0 -0
  91. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/sessions.py +0 -0
  92. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/status.py +0 -0
  93. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/stream.py +0 -0
  94. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/stream_utils.py +0 -0
  95. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/token_counter.py +0 -0
  96. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tool.py +0 -0
  97. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tray.py +0 -0
  98. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/__init__.py +0 -0
  99. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/app.py +0 -0
  100. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/chat.py +0 -0
  101. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/lifecycle.py +0 -0
  102. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/log.py +0 -0
  103. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/perf.py +0 -0
  104. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/state.py +0 -0
  105. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/status_bar.py +0 -0
  106. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/stream_debug.py +0 -0
  107. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/style.py +0 -0
  108. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/transcript.py +0 -0
  109. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/tui/widgets.py +0 -0
  110. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/utils.py +0 -0
  111. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent/worker.py +0 -0
  112. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
  113. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
  114. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent_framework.egg-info/entry_points.txt +0 -0
  115. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent_framework.egg-info/requires.txt +0 -0
  116. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/codex_agent_framework.egg-info/top_level.txt +0 -0
  117. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/dependencies.txt +0 -0
  118. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/setup.cfg +0 -0
  119. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent.py +0 -0
  120. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_audio_hooks.py +0 -0
  121. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_commands.py +0 -0
  122. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_context.py +0 -0
  123. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_desktop.py +0 -0
  124. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_environment.py +0 -0
  125. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_image_generation.py +0 -0
  126. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_observe.py +0 -0
  127. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_plugins.py +0 -0
  128. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_providers_config.py +0 -0
  129. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_realtime.py +0 -0
  130. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_response.py +0 -0
  131. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_runtime.py +0 -0
  132. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_sessions.py +0 -0
  133. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_subagents.py +0 -0
  134. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_tools.py +0 -0
  135. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_agent_turns.py +0 -0
  136. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_ai.py +0 -0
  137. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_browser.py +0 -0
  138. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_builtin_config.py +0 -0
  139. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_chat.py +0 -0
  140. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_cli.py +0 -0
  141. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_cli_headless.py +0 -0
  142. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_cli_root.py +0 -0
  143. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_client.py +0 -0
  144. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_events.py +0 -0
  145. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_get_text_browser.py +0 -0
  146. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_hooks.py +0 -0
  147. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_image_message.py +0 -0
  148. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_local_desktop.py +0 -0
  149. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_memory.py +0 -0
  150. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_messages.py +0 -0
  151. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_planner.py +0 -0
  152. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_scheduler.py +0 -0
  153. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_server.py +0 -0
  154. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_service.py +0 -0
  155. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_token_counter.py +0 -0
  156. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_tui.py +0 -0
  157. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_utils.py +0 -0
  158. {codex_agent_framework-0.1.71 → codex_agent_framework-0.1.73}/tests/test_worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.71
3
+ Version: 0.1.73
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -13,6 +13,7 @@ PACKAGE_DIR = Path(__file__).resolve().parents[1]
13
13
 
14
14
 
15
15
  def default_agent_kwargs(host=None, port=None):
16
+ """Build default Agent constructor kwargs used by CLI entrypoints."""
16
17
  kwargs = dict(
17
18
  system=str(PACKAGE_DIR / 'prompts' / 'system_prompt.txt'),
18
19
  username="Baptiste",
@@ -24,15 +25,18 @@ def default_agent_kwargs(host=None, port=None):
24
25
 
25
26
 
26
27
  def default_agent():
28
+ """Create the default CLI Agent instance."""
27
29
  return Agent(**default_agent_kwargs())
28
30
 
29
31
 
30
32
  def configure_server_url(agent, host, port):
33
+ """Point an Agent at the CLI-managed local server URL."""
31
34
  agent.config_manager.update(server_url=f"http://{host}:{port}", save=False)
32
35
  return agent
33
36
 
34
37
 
35
38
  def run_server(host="127.0.0.1", port=8765):
39
+ """Run the local HTTP server in the foreground."""
36
40
  import uvicorn
37
41
 
38
42
  app = create_app(process_agent=True, **default_agent_kwargs(host, port))
@@ -42,10 +46,12 @@ def run_server(host="127.0.0.1", port=8765):
42
46
 
43
47
 
44
48
  def run_chat(base_url="http://127.0.0.1:8765"):
49
+ """Run the Textual chat interface against a server URL."""
45
50
  Chat(base_url=base_url).run()
46
51
 
47
52
 
48
53
  def server_is_available(base_url, timeout=0.5):
54
+ """Return whether the local agent server responds to health checks."""
49
55
  try:
50
56
  from codex_agent.client import AgentClient
51
57
  AgentClient(base_url, timeout=timeout).health()
@@ -55,10 +61,12 @@ def server_is_available(base_url, timeout=0.5):
55
61
 
56
62
 
57
63
  def run_tray_mode(base_url="http://127.0.0.1:8765"):
64
+ """Run the desktop tray integration against a server URL."""
58
65
  run_tray(base_url=base_url)
59
66
 
60
67
 
61
68
  def run_system_deps_installer(extra_args=None):
69
+ """Run the packaged system dependency installer script."""
62
70
  script = PACKAGE_DIR / "scripts" / "install-system-dependencies.sh"
63
71
  if not script.is_file():
64
72
  raise RuntimeError(f"System dependency installer not found: {script}")
@@ -74,6 +82,7 @@ def run_bootstrap(
74
82
  install_service=True,
75
83
  start_service=True,
76
84
  ):
85
+ """Install optional system dependencies and user service components."""
77
86
  if install_system_deps:
78
87
  code = run_system_deps_installer(system_deps_args or [])
79
88
  if code:
@@ -86,6 +95,7 @@ def run_bootstrap(
86
95
 
87
96
 
88
97
  def run_local(host="127.0.0.1", port=8765):
98
+ """Open chat on an existing server or a temporary local server."""
89
99
  import threading
90
100
  import time
91
101
 
@@ -112,6 +122,7 @@ def run_local(host="127.0.0.1", port=8765):
112
122
 
113
123
 
114
124
  def build_parser():
125
+ """Build the legacy single-command CLI argument parser."""
115
126
  import argparse
116
127
 
117
128
  parser = argparse.ArgumentParser(prog="codex-agent")
@@ -138,6 +149,7 @@ def build_parser():
138
149
 
139
150
 
140
151
  def run_agent_cli(argv=None):
152
+ """Dispatch legacy CLI modes and headless API subcommands."""
141
153
  parser = build_parser()
142
154
  args, extra_args = parser.parse_known_args(argv)
143
155
  headless_modes = {"run", "prompt", "status", "tools", "sessions", "config", "interrupt"}
@@ -186,6 +198,7 @@ def run_agent_cli(argv=None):
186
198
 
187
199
 
188
200
  def main(argv=None):
201
+ """Run the public codex-agent command-line entrypoint."""
189
202
  load_runtime_env()
190
203
  from .root import dispatch
191
204
  dispatch(argv, fallback=run_agent_cli)
@@ -4,6 +4,8 @@ from modict import modict
4
4
 
5
5
 
6
6
  class RuntimeManager:
7
+ """Small HTTP bridge for runtime actions handled by the local server."""
8
+
7
9
  def __init__(self, agent):
8
10
  self.agent = agent
9
11
 
@@ -13,6 +13,8 @@ from .utils import atomic_write_json, runtime_join
13
13
 
14
14
 
15
15
  class WakeupJob(modict):
16
+ """Persisted scheduled wakeup state stored in the agent runtime file."""
17
+
16
18
  _config = modict.config(enforce_json=True, require_all="never")
17
19
 
18
20
  id = modict.factory(lambda: str(uuid.uuid4()))
@@ -37,14 +39,17 @@ class WakeupJob(modict):
37
39
 
38
40
 
39
41
  def utc_now():
42
+ """Return the current timezone-aware UTC datetime."""
40
43
  return datetime.now(timezone.utc)
41
44
 
42
45
 
43
46
  def utc_now_iso():
47
+ """Return the current UTC datetime as an ISO-8601 string."""
44
48
  return utc_now().isoformat()
45
49
 
46
50
 
47
51
  def parse_datetime(value):
52
+ """Parse a datetime or ISO string and normalize it to UTC."""
48
53
  if isinstance(value, datetime):
49
54
  dt = value
50
55
  elif isinstance(value, str):
@@ -60,6 +65,7 @@ def parse_datetime(value):
60
65
 
61
66
 
62
67
  def next_run_at(run_at=None, delay_seconds=None):
68
+ """Resolve an absolute or delayed wakeup time to an ISO UTC string."""
63
69
  if run_at:
64
70
  return parse_datetime(run_at).isoformat()
65
71
  if delay_seconds is None:
@@ -0,0 +1 @@
1
+ __version__ = "0.1.73"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.71
3
+ Version: 0.1.73
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.71"
7
+ version = "0.1.73"
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.71"