codex-agent-framework 0.1.70__tar.gz → 0.1.71__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.70/codex_agent_framework.egg-info → codex_agent_framework-0.1.71}/PKG-INFO +1 -1
  2. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/cli/headless.py +5 -0
  3. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/cli/output.py +4 -0
  4. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/cli/runner.py +3 -0
  5. codex_agent_framework-0.1.71/codex_agent/version.py +1 -0
  6. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71/codex_agent_framework.egg-info}/PKG-INFO +1 -1
  7. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/pyproject.toml +1 -1
  8. codex_agent_framework-0.1.70/codex_agent/version.py +0 -1
  9. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/CHANGELOG.md +0 -0
  10. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/LICENSE +0 -0
  11. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/MANIFEST.in +0 -0
  12. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/README.md +0 -0
  13. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/__init__.py +0 -0
  14. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/__main__.py +0 -0
  15. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/agent.py +0 -0
  16. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/agent_runtime.py +0 -0
  17. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/ai.py +0 -0
  18. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/browser.py +0 -0
  19. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_commands.py +0 -0
  20. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/__init__.py +0 -0
  21. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
  22. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
  23. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
  24. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
  25. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/content/__init__.py +0 -0
  26. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
  27. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/content/system.py +0 -0
  28. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/content/vision.py +0 -0
  29. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/context/__init__.py +0 -0
  30. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
  31. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
  32. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
  33. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
  34. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/files/__init__.py +0 -0
  35. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
  36. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/files/tools.py +0 -0
  37. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
  38. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
  39. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
  40. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
  41. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
  42. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
  43. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
  44. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
  45. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
  46. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/python/__init__.py +0 -0
  47. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
  48. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
  49. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
  50. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
  51. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
  52. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
  53. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/realtime/session.py +0 -0
  54. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
  55. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
  56. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
  57. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
  58. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
  59. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
  60. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
  61. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/builtin_plugins/web_search/__init__.py +0 -0
  62. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/cli/__init__.py +0 -0
  63. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/cli/main.py +0 -0
  64. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/cli/root.py +0 -0
  65. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/client.py +0 -0
  66. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/command.py +0 -0
  67. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/config.py +0 -0
  68. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/context.py +0 -0
  69. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/desktop.py +0 -0
  70. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/event.py +0 -0
  71. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/get_text/__init__.py +0 -0
  72. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/get_text/default_gitignore +0 -0
  73. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/get_text/get_text.py +0 -0
  74. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/get_text/simpler_get_text.py +0 -0
  75. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/hooks.py +0 -0
  76. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/image.py +0 -0
  77. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/latex.py +0 -0
  78. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/mainloop.py +0 -0
  79. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/message.py +0 -0
  80. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/plugin.py +0 -0
  81. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/prompts/compaction_prompt.txt +0 -0
  82. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/prompts/system_prompt.txt +0 -0
  83. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/provider.py +0 -0
  84. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/runtime.py +0 -0
  85. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/scheduler.py +0 -0
  86. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/scripts/install-system-dependencies.sh +0 -0
  87. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/server/__init__.py +0 -0
  88. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/server/app.py +0 -0
  89. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/server/core.py +0 -0
  90. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/service.py +0 -0
  91. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/sessions.py +0 -0
  92. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/status.py +0 -0
  93. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/stream.py +0 -0
  94. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/stream_utils.py +0 -0
  95. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/token_counter.py +0 -0
  96. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tool.py +0 -0
  97. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tray.py +0 -0
  98. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/__init__.py +0 -0
  99. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/app.py +0 -0
  100. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/chat.py +0 -0
  101. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/lifecycle.py +0 -0
  102. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/log.py +0 -0
  103. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/perf.py +0 -0
  104. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/state.py +0 -0
  105. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/status_bar.py +0 -0
  106. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/stream_debug.py +0 -0
  107. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/style.py +0 -0
  108. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/transcript.py +0 -0
  109. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/tui/widgets.py +0 -0
  110. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/utils.py +0 -0
  111. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent/worker.py +0 -0
  112. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
  113. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
  114. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent_framework.egg-info/entry_points.txt +0 -0
  115. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent_framework.egg-info/requires.txt +0 -0
  116. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/codex_agent_framework.egg-info/top_level.txt +0 -0
  117. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/dependencies.txt +0 -0
  118. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/setup.cfg +0 -0
  119. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent.py +0 -0
  120. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_audio_hooks.py +0 -0
  121. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_commands.py +0 -0
  122. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_context.py +0 -0
  123. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_desktop.py +0 -0
  124. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_environment.py +0 -0
  125. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_image_generation.py +0 -0
  126. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_observe.py +0 -0
  127. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_plugins.py +0 -0
  128. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_providers_config.py +0 -0
  129. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_realtime.py +0 -0
  130. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_response.py +0 -0
  131. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_runtime.py +0 -0
  132. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_sessions.py +0 -0
  133. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_subagents.py +0 -0
  134. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_tools.py +0 -0
  135. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_agent_turns.py +0 -0
  136. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_ai.py +0 -0
  137. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_browser.py +0 -0
  138. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_builtin_config.py +0 -0
  139. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_chat.py +0 -0
  140. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_cli.py +0 -0
  141. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_cli_headless.py +0 -0
  142. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_cli_root.py +0 -0
  143. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_client.py +0 -0
  144. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_events.py +0 -0
  145. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_get_text_browser.py +0 -0
  146. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_hooks.py +0 -0
  147. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_image_message.py +0 -0
  148. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_local_desktop.py +0 -0
  149. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_memory.py +0 -0
  150. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_messages.py +0 -0
  151. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_planner.py +0 -0
  152. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_scheduler.py +0 -0
  153. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_server.py +0 -0
  154. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_service.py +0 -0
  155. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_token_counter.py +0 -0
  156. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_tui.py +0 -0
  157. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/tests/test_utils.py +0 -0
  158. {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.71}/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.70
3
+ Version: 0.1.71
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -11,6 +11,7 @@ TERMINAL_EVENTS = {"assistant_turn_end_event", "assistant_turn_error_event", "se
11
11
 
12
12
 
13
13
  def runner_from_args(args):
14
+ """Build the headless runtime runner selected by CLI arguments."""
14
15
  runtime = getattr(args, "runtime", "server") or "server"
15
16
  if runtime == "server":
16
17
  return server_runner(base_url=args.url or f"http://{args.host}:{args.port}")
@@ -24,16 +25,19 @@ def runner_from_args(args):
24
25
 
25
26
 
26
27
  def should_stop_runner(args):
28
+ """Return whether a short-lived runner should be stopped after use."""
27
29
  return (getattr(args, "runtime", "server") or "server") != "server"
28
30
 
29
31
 
30
32
  def output_format(args):
33
+ """Resolve the output format requested by legacy and modern flags."""
31
34
  if getattr(args, "json", False):
32
35
  return "json"
33
36
  return getattr(args, "format", None) or "text"
34
37
 
35
38
 
36
39
  def read_prompt(args, extra_args):
40
+ """Read a prompt from stdin or remaining positional arguments."""
37
41
  if getattr(args, "stdin", False):
38
42
  prompt = sys.stdin.read()
39
43
  else:
@@ -73,6 +77,7 @@ def run_tools(args, extra_args=None):
73
77
 
74
78
 
75
79
  def parse_config_set_args(extra_args):
80
+ """Parse `config set` KEY VALUE pairs or single KEY=VALUE syntax."""
76
81
  args = list(extra_args or [])
77
82
  if not args:
78
83
  raise SystemExit("config set requires KEY VALUE or KEY=VALUE")
@@ -3,14 +3,17 @@ import sys
3
3
 
4
4
 
5
5
  def dump_json(payload, *, stream=None):
6
+ """Write a payload as pretty JSON to stdout or a custom stream."""
6
7
  print(json.dumps(payload, ensure_ascii=False, indent=2, default=str), file=stream or sys.stdout)
7
8
 
8
9
 
9
10
  def dump_ndjson(payload, *, stream=None):
11
+ """Write a payload as one flushed NDJSON line."""
10
12
  print(json.dumps(payload, ensure_ascii=False, default=str), file=stream or sys.stdout, flush=True)
11
13
 
12
14
 
13
15
  def output_payload(payload, *, fmt="text", text_formatter=None):
16
+ """Print a payload using the requested CLI output format."""
14
17
  if fmt == "json":
15
18
  dump_json(payload)
16
19
  return
@@ -26,6 +29,7 @@ def output_payload(payload, *, fmt="text", text_formatter=None):
26
29
 
27
30
 
28
31
  def key_value_text(payload):
32
+ """Render dictionaries as simple key-value lines for text output."""
29
33
  if not isinstance(payload, dict):
30
34
  return str(payload)
31
35
  return "\n".join(f"{key}: {value}" for key, value in payload.items())
@@ -76,12 +76,15 @@ class ServerRuntimeClient:
76
76
 
77
77
 
78
78
  def server_runner(base_url="http://127.0.0.1:8765"):
79
+ """Return a CLI runner backed by the local HTTP server API."""
79
80
  return ServerRuntimeClient(base_url=base_url)
80
81
 
81
82
 
82
83
  def process_runner(agent_kwargs=None):
84
+ """Return a CLI runner hosted in a managed child process."""
83
85
  return ProcessAgentRuntime(agent_kwargs=agent_kwargs or {})
84
86
 
85
87
 
86
88
  def in_process_runner(agent):
89
+ """Return a CLI runner that executes against an in-process agent."""
87
90
  return InProcessAgentRuntime(agent)
@@ -0,0 +1 @@
1
+ __version__ = "0.1.71"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.70
3
+ Version: 0.1.71
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.70"
7
+ version = "0.1.71"
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.70"