codex-agent-framework 0.1.70__tar.gz → 0.1.72__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codex_agent_framework-0.1.70/codex_agent_framework.egg-info → codex_agent_framework-0.1.72}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/cli/headless.py +5 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/cli/output.py +4 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/cli/runner.py +3 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/runtime.py +2 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/scheduler.py +6 -0
- codex_agent_framework-0.1.72/codex_agent/version.py +1 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72/codex_agent_framework.egg-info}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/pyproject.toml +1 -1
- codex_agent_framework-0.1.70/codex_agent/version.py +0 -1
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/CHANGELOG.md +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/LICENSE +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/MANIFEST.in +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/README.md +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/__main__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/agent.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/agent_runtime.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/ai.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/browser.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_commands.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/content/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/content/system.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/content/vision.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/context/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/files/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/files/tools.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/python/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/realtime/session.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_plugins/web_search/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/cli/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/cli/main.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/cli/root.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/client.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/command.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/config.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/context.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/desktop.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/event.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/default_gitignore +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/get_text.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/simpler_get_text.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/hooks.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/image.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/latex.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/mainloop.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/message.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/plugin.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/prompts/compaction_prompt.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/prompts/system_prompt.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/provider.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/scripts/install-system-dependencies.sh +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/server/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/server/app.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/server/core.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/service.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/sessions.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/status.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/stream.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/stream_utils.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/token_counter.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tool.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tray.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/__init__.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/app.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/chat.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/lifecycle.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/log.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/perf.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/state.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/status_bar.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/stream_debug.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/style.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/transcript.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/widgets.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/utils.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/worker.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent_framework.egg-info/entry_points.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent_framework.egg-info/requires.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent_framework.egg-info/top_level.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/dependencies.txt +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/setup.cfg +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_audio_hooks.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_commands.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_context.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_desktop.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_environment.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_image_generation.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_observe.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_plugins.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_providers_config.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_realtime.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_response.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_runtime.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_sessions.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_subagents.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_tools.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_turns.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_ai.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_browser.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_builtin_config.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_chat.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_cli.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_cli_headless.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_cli_root.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_client.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_events.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_get_text_browser.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_hooks.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_image_message.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_local_desktop.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_memory.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_messages.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_planner.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_scheduler.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_server.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_service.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_token_counter.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_tui.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_utils.py +0 -0
- {codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_worker.py +0 -0
|
@@ -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)
|
|
@@ -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.72"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.70"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/builtin_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/__init__.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/default_gitignore
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/get_text/get_text.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/prompts/system_prompt.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/server/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/codex_agent/tui/stream_debug.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_audio_hooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_environment.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_image_generation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_agent_providers_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.70 → codex_agent_framework-0.1.72}/tests/test_get_text_browser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|