codex-agent-framework 0.1.75__tar.gz → 0.1.77__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.75/codex_agent_framework.egg-info → codex_agent_framework-0.1.77}/PKG-INFO +1 -1
  2. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_commands.py +5 -0
  3. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/cli/headless.py +5 -0
  4. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/cli/root.py +6 -0
  5. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/stream.py +4 -0
  6. codex_agent_framework-0.1.77/codex_agent/version.py +1 -0
  7. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77/codex_agent_framework.egg-info}/PKG-INFO +1 -1
  8. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/pyproject.toml +1 -1
  9. codex_agent_framework-0.1.75/codex_agent/version.py +0 -1
  10. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/CHANGELOG.md +0 -0
  11. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/LICENSE +0 -0
  12. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/MANIFEST.in +0 -0
  13. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/README.md +0 -0
  14. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/__init__.py +0 -0
  15. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/__main__.py +0 -0
  16. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/agent.py +0 -0
  17. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/agent_runtime.py +0 -0
  18. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/ai.py +0 -0
  19. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/browser.py +0 -0
  20. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/__init__.py +0 -0
  21. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
  22. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
  23. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
  24. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
  25. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/content/__init__.py +0 -0
  26. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
  27. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/content/system.py +0 -0
  28. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/content/vision.py +0 -0
  29. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/context/__init__.py +0 -0
  30. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
  31. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
  32. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
  33. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
  34. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/files/__init__.py +0 -0
  35. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
  36. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/files/tools.py +0 -0
  37. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
  38. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
  39. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
  40. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
  41. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
  42. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
  43. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
  44. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
  45. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
  46. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/python/__init__.py +0 -0
  47. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
  48. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
  49. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
  50. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
  51. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
  52. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
  53. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/realtime/session.py +0 -0
  54. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
  55. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
  56. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
  57. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
  58. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
  59. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
  60. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
  61. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/builtin_plugins/web_search/__init__.py +0 -0
  62. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/cli/__init__.py +0 -0
  63. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/cli/main.py +0 -0
  64. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/cli/output.py +0 -0
  65. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/cli/runner.py +0 -0
  66. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/client.py +0 -0
  67. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/command.py +0 -0
  68. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/config.py +0 -0
  69. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/context.py +0 -0
  70. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/desktop.py +0 -0
  71. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/event.py +0 -0
  72. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/get_text/__init__.py +0 -0
  73. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/get_text/default_gitignore +0 -0
  74. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/get_text/get_text.py +0 -0
  75. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/get_text/simpler_get_text.py +0 -0
  76. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/hooks.py +0 -0
  77. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/image.py +0 -0
  78. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/latex.py +0 -0
  79. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/mainloop.py +0 -0
  80. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/message.py +0 -0
  81. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/plugin.py +0 -0
  82. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/prompts/compaction_prompt.txt +0 -0
  83. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/prompts/system_prompt.txt +0 -0
  84. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/provider.py +0 -0
  85. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/runtime.py +0 -0
  86. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/scheduler.py +0 -0
  87. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/scripts/install-system-dependencies.sh +0 -0
  88. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/server/__init__.py +0 -0
  89. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/server/app.py +0 -0
  90. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/server/core.py +0 -0
  91. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/service.py +0 -0
  92. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/sessions.py +0 -0
  93. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/status.py +0 -0
  94. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/stream_utils.py +0 -0
  95. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/token_counter.py +0 -0
  96. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tool.py +0 -0
  97. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tray.py +0 -0
  98. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/__init__.py +0 -0
  99. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/app.py +0 -0
  100. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/chat.py +0 -0
  101. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/lifecycle.py +0 -0
  102. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/log.py +0 -0
  103. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/perf.py +0 -0
  104. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/state.py +0 -0
  105. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/status_bar.py +0 -0
  106. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/stream_debug.py +0 -0
  107. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/style.py +0 -0
  108. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/transcript.py +0 -0
  109. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/tui/widgets.py +0 -0
  110. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/utils.py +0 -0
  111. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent/worker.py +0 -0
  112. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
  113. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
  114. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent_framework.egg-info/entry_points.txt +0 -0
  115. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent_framework.egg-info/requires.txt +0 -0
  116. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/codex_agent_framework.egg-info/top_level.txt +0 -0
  117. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/dependencies.txt +0 -0
  118. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/setup.cfg +0 -0
  119. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent.py +0 -0
  120. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_audio_hooks.py +0 -0
  121. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_commands.py +0 -0
  122. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_context.py +0 -0
  123. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_desktop.py +0 -0
  124. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_environment.py +0 -0
  125. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_image_generation.py +0 -0
  126. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_observe.py +0 -0
  127. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_plugins.py +0 -0
  128. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_providers_config.py +0 -0
  129. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_realtime.py +0 -0
  130. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_response.py +0 -0
  131. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_runtime.py +0 -0
  132. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_sessions.py +0 -0
  133. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_subagents.py +0 -0
  134. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_tools.py +0 -0
  135. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_agent_turns.py +0 -0
  136. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_ai.py +0 -0
  137. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_browser.py +0 -0
  138. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_builtin_config.py +0 -0
  139. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_chat.py +0 -0
  140. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_cli.py +0 -0
  141. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_cli_headless.py +0 -0
  142. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_cli_root.py +0 -0
  143. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_client.py +0 -0
  144. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_events.py +0 -0
  145. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_get_text_browser.py +0 -0
  146. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_hooks.py +0 -0
  147. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_image_message.py +0 -0
  148. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_local_desktop.py +0 -0
  149. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_memory.py +0 -0
  150. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_messages.py +0 -0
  151. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_planner.py +0 -0
  152. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_scheduler.py +0 -0
  153. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_server.py +0 -0
  154. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_service.py +0 -0
  155. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_token_counter.py +0 -0
  156. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_tui.py +0 -0
  157. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/tests/test_utils.py +0 -0
  158. {codex_agent_framework-0.1.75 → codex_agent_framework-0.1.77}/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.75
3
+ Version: 0.1.77
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -23,11 +23,13 @@ def _format_lines(value, prefix=""):
23
23
 
24
24
 
25
25
  def format_config_output(value, prefix=""):
26
+ """Render config values as readable slash-command output."""
26
27
  return "\n".join(_format_lines(value, prefix=prefix)) if isinstance(value, dict) else repr(value)
27
28
 
28
29
 
29
30
  @command
30
31
  def help():
32
+ """List slash commands currently registered on the active agent."""
31
33
  agent = get_agent()
32
34
  names = ", ".join(f"/{name}" for name in sorted(agent.commands))
33
35
  return f"Available commands: {names}"
@@ -157,6 +159,7 @@ def config(path=None, value=None, *extra, **values):
157
159
 
158
160
  @command
159
161
  def model(value=None):
162
+ """Show or update the active model configuration value."""
160
163
  if value is None:
161
164
  return f"model: {get_agent().config.model!r}"
162
165
  get_agent().config_manager.set_path("agent.model", value, save=True)
@@ -165,6 +168,7 @@ def model(value=None):
165
168
 
166
169
  @command
167
170
  def reasoning(value=None):
171
+ """Show or update the reasoning effort config shortcut."""
168
172
  agent = get_agent()
169
173
  if value is None:
170
174
  return f"reasoning: {agent.config.get('reasoning')!r}"
@@ -177,6 +181,7 @@ def reasoning(value=None):
177
181
 
178
182
  @command
179
183
  def verbosity(value=None):
184
+ """Show or update the text verbosity config shortcut."""
180
185
  agent = get_agent()
181
186
  if value is None:
182
187
  return f"text: {agent.config.get('text')!r}"
@@ -48,6 +48,7 @@ def read_prompt(args, extra_args):
48
48
 
49
49
 
50
50
  def with_runner(args, callback):
51
+ """Start the selected runner, invoke a callback, and stop it if needed."""
51
52
  runner = runner_from_args(args).start()
52
53
  try:
53
54
  return callback(runner)
@@ -57,12 +58,14 @@ def with_runner(args, callback):
57
58
 
58
59
 
59
60
  def run_status(args, extra_args=None):
61
+ """Fetch and print agent runtime status."""
60
62
  payload = with_runner(args, lambda runner: runner.get_status())
61
63
  output_payload(payload, fmt=output_format(args), text_formatter=key_value_text)
62
64
  return payload
63
65
 
64
66
 
65
67
  def run_tools(args, extra_args=None):
68
+ """Fetch and print registered tool names or metadata."""
66
69
  payload = with_runner(args, lambda runner: runner.tools())
67
70
 
68
71
  def format_tools(data):
@@ -94,6 +97,7 @@ def parse_config_set_args(extra_args):
94
97
 
95
98
 
96
99
  def run_config(args, extra_args=None):
100
+ """Run `config get` or `config set` through the selected runner."""
97
101
  extra_args = list(extra_args or [])
98
102
  command = extra_args[0] if extra_args else "get"
99
103
  if command == "get":
@@ -149,6 +153,7 @@ def run_sessions(args, extra_args=None):
149
153
 
150
154
 
151
155
  def run_interrupt(args, extra_args=None):
156
+ """Ask the active runtime to interrupt the current turn."""
152
157
  reason = " ".join(extra_args or []).strip() or "cli"
153
158
  payload = with_runner(args, lambda runner: runner.interrupt(reason=reason))
154
159
  output_payload(payload, fmt=output_format(args), text_formatter=key_value_text)
@@ -53,6 +53,7 @@ def build_root_parser():
53
53
 
54
54
 
55
55
  def print_root_help():
56
+ """Print help for the public root CLI parser."""
56
57
  build_root_parser().print_help()
57
58
 
58
59
 
@@ -97,6 +98,7 @@ def _detached_start(name, args):
97
98
 
98
99
 
99
100
  def start_service(name, args):
101
+ """Start a supported service in foreground or detached mode."""
100
102
  parsed, extra = _parse_connection_args(args)
101
103
  if extra:
102
104
  raise SystemExit(f"unrecognized arguments: {' '.join(extra)}")
@@ -120,18 +122,21 @@ def start_service(name, args):
120
122
 
121
123
 
122
124
  def stop_service(name, args=None):
125
+ """Stop a supported user service without requiring it to be active."""
123
126
  if name not in SERVICE_UNITS:
124
127
  raise SystemExit(f"usage: codex-agent stop {{{','.join(SERVICE_UNITS)}}}")
125
128
  service_controller().run("stop", SERVICE_UNITS[name], check=False)
126
129
 
127
130
 
128
131
  def restart_service(name, args=None):
132
+ """Restart a supported user service via the platform controller."""
129
133
  if name not in SERVICE_UNITS:
130
134
  raise SystemExit(f"usage: codex-agent restart {{{','.join(SERVICE_UNITS)}}}")
131
135
  service_controller().restart(SERVICE_UNITS[name], check=False)
132
136
 
133
137
 
134
138
  def open_interface(name, args):
139
+ """Ask the local server to open a supported interactive interface."""
135
140
  if name != "tui":
136
141
  raise SystemExit("usage: codex-agent open {tui}")
137
142
  parsed, extra = _parse_connection_args(args)
@@ -146,6 +151,7 @@ def open_interface(name, args):
146
151
 
147
152
 
148
153
  def close_interface(name, args):
154
+ """Ask the local server to close a supported interactive interface."""
149
155
  if name != "tui":
150
156
  raise SystemExit("usage: codex-agent close {tui}")
151
157
  parsed, extra = _parse_connection_args(args)
@@ -45,6 +45,8 @@ class StreamManager:
45
45
 
46
46
 
47
47
  class AgentStream:
48
+ """Iterator over live agent events for one submitted prompt or turn."""
49
+
48
50
  def __init__(self, agent, prompt=None):
49
51
  self.agent = agent
50
52
  self.prompt = prompt
@@ -58,6 +60,7 @@ class AgentStream:
58
60
  self._monitor_thread = None
59
61
 
60
62
  def start(self):
63
+ """Submit the stream turn and start forwarding emitted events."""
61
64
  self.mainloop_was_running = self.agent.mainloop_manager.thread is not None and self.agent.mainloop_manager.thread.is_alive()
62
65
  self._handler = self.agent.on("*", self._on_event)
63
66
  try:
@@ -105,6 +108,7 @@ class AgentStream:
105
108
 
106
109
  @property
107
110
  def turn(self):
111
+ """Return the completed turn once the stream future resolves."""
108
112
  return self.future.wait()
109
113
 
110
114
  def __iter__(self):
@@ -0,0 +1 @@
1
+ __version__ = "0.1.77"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.75
3
+ Version: 0.1.77
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.75"
7
+ version = "0.1.77"
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.75"