codex-agent-framework 0.1.36__tar.gz → 0.1.38__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.36 → codex_agent_framework-0.1.38}/CHANGELOG.md +16 -0
- {codex_agent_framework-0.1.36/codex_agent_framework.egg-info → codex_agent_framework-0.1.38}/PKG-INFO +3 -3
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/README.md +2 -2
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/context.py +27 -7
- codex_agent_framework-0.1.38/codex_agent/version.py +1 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38/codex_agent_framework.egg-info}/PKG-INFO +3 -3
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/pyproject.toml +1 -1
- codex_agent_framework-0.1.36/codex_agent/version.py +0 -1
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/LICENSE +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/MANIFEST.in +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/__main__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/agent.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/agent_runtime.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/ai.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/browser.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_commands.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/content/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/content/system.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/content/vision.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/context/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/files/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/files/tools.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/python/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/realtime/session.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/cli/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/cli/headless.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/cli/main.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/cli/output.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/cli/root.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/cli/runner.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/client.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/command.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/config.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/desktop.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/event.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/get_text/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/get_text/default_gitignore +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/get_text/get_text.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/get_text/simpler_get_text.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/hooks.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/image.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/latex.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/mainloop.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/message.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/plugin.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/prompts/system_prompt.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/provider.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/runtime.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/scheduler.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/scripts/install-system-dependencies.sh +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/server/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/server/app.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/server/core.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/service.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/sessions.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/status.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/stream.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/stream_utils.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tool.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tray.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/__init__.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/app.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/chat.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/lifecycle.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/log.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/state.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/status_bar.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/style.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/tui/transcript.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/utils.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/worker.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent_framework.egg-info/entry_points.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent_framework.egg-info/requires.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent_framework.egg-info/top_level.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/dependencies.txt +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/setup.cfg +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_audio_hooks.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_commands.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_context.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_desktop.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_environment.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_image_generation.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_observe.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_plugins.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_providers_config.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_realtime.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_response.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_runtime.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_sessions.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_subagents.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_tools.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_turns.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_ai.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_browser.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_builtin_config.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_chat.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_cli.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_cli_headless.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_cli_root.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_client.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_events.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_get_text_browser.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_hooks.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_image_message.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_local_desktop.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_memory.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_messages.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_planner.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_scheduler.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_server.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_service.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_tui.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_utils.py +0 -0
- {codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_worker.py +0 -0
|
@@ -4,6 +4,22 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
This project loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses semantic versioning where practical.
|
|
6
6
|
|
|
7
|
+
## [0.1.38] - 2026-05-16
|
|
8
|
+
### Changed
|
|
9
|
+
- Clarify development checks around the explicit offline/headless CI subset, broader local pytest sweeps, and live/local-heavy test placement.
|
|
10
|
+
- Align README project-health wording with the current CI and release workflow.
|
|
11
|
+
|
|
12
|
+
### Tests
|
|
13
|
+
- Validate the docs update with the 553-test offline CI suite.
|
|
14
|
+
|
|
15
|
+
## [0.1.37] - 2026-05-16
|
|
16
|
+
### Changed
|
|
17
|
+
- Clarify context status token calculations by naming percent values and local token totals.
|
|
18
|
+
- Reflow long context-provider hook and token-count calls for better readability without behavior changes.
|
|
19
|
+
|
|
20
|
+
### Tests
|
|
21
|
+
- Validate with targeted context, response, session, and core Agent coverage plus the 553-test offline CI suite.
|
|
22
|
+
|
|
7
23
|
## [0.1.36] - 2026-05-16
|
|
8
24
|
### Changed
|
|
9
25
|
- Clean up residual `Agent` facade style around response dispatch and transcription helpers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-agent-framework
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.38
|
|
4
4
|
Summary: A lightweight event-driven Codex agent runtime.
|
|
5
5
|
Author: Baptiste
|
|
6
6
|
License-Expression: MIT
|
|
@@ -192,8 +192,8 @@ agent = Agent(
|
|
|
192
192
|
|
|
193
193
|
## Project health
|
|
194
194
|
|
|
195
|
-
The repository includes a GitHub Actions CI workflow that runs an offline/headless test subset on Python 3.11 and 3.12, then builds the package and validates distributions with `twine check`.
|
|
196
|
-
You can run the same
|
|
195
|
+
The repository includes a GitHub Actions CI workflow that runs an explicit offline/headless test subset on Python 3.11 and 3.12, then builds the package and validates distributions with `twine check`.
|
|
196
|
+
You can run the same subset locally with `scripts/run-ci-tests.sh`; use `python -m pytest` for broader local sweeps that may include machine- or backend-dependent tests.
|
|
197
197
|
Dependabot is configured for weekly GitHub Actions and pip dependency updates.
|
|
198
198
|
|
|
199
199
|
## Documentation
|
|
@@ -143,8 +143,8 @@ agent = Agent(
|
|
|
143
143
|
|
|
144
144
|
## Project health
|
|
145
145
|
|
|
146
|
-
The repository includes a GitHub Actions CI workflow that runs an offline/headless test subset on Python 3.11 and 3.12, then builds the package and validates distributions with `twine check`.
|
|
147
|
-
You can run the same
|
|
146
|
+
The repository includes a GitHub Actions CI workflow that runs an explicit offline/headless test subset on Python 3.11 and 3.12, then builds the package and validates distributions with `twine check`.
|
|
147
|
+
You can run the same subset locally with `scripts/run-ci-tests.sh`; use `python -m pytest` for broader local sweeps that may include machine- or backend-dependent tests.
|
|
148
148
|
Dependabot is configured for weekly GitHub Actions and pip dependency updates.
|
|
149
149
|
|
|
150
150
|
## Documentation
|
|
@@ -58,7 +58,12 @@ class ContextManager:
|
|
|
58
58
|
provider_output = provider()
|
|
59
59
|
finally:
|
|
60
60
|
reset_current_agent(agent_context)
|
|
61
|
-
hook = self.agent.run_hook(
|
|
61
|
+
hook = self.agent.run_hook(
|
|
62
|
+
"provider.call.after",
|
|
63
|
+
provider_name=provider_name,
|
|
64
|
+
provider=provider,
|
|
65
|
+
output=provider_output,
|
|
66
|
+
)
|
|
62
67
|
provider_output = hook.payload.output
|
|
63
68
|
if provider_output is None:
|
|
64
69
|
continue
|
|
@@ -86,7 +91,10 @@ class ContextManager:
|
|
|
86
91
|
others = [msg for msg in session_messages if not isinstance(msg, ImageMessage)]
|
|
87
92
|
truncated_others = self.truncate_context_messages(others, max_input_tokens=max_input_tokens)
|
|
88
93
|
|
|
89
|
-
current_count = self.response_input_token_count(
|
|
94
|
+
current_count = self.response_input_token_count(
|
|
95
|
+
system + images + providers_msgs,
|
|
96
|
+
response_tools=response_tools,
|
|
97
|
+
)
|
|
90
98
|
history_start = len(truncated_others)
|
|
91
99
|
for i, msg in enumerate(reversed(truncated_others)):
|
|
92
100
|
msg_count = self.response_input_token_count([msg], response_tools=[])
|
|
@@ -147,13 +155,20 @@ class ContextManager:
|
|
|
147
155
|
token_count_source = "openai_input_tokens"
|
|
148
156
|
except Exception:
|
|
149
157
|
pass
|
|
158
|
+
input_token_limit = self.agent.config.input_token_limit
|
|
159
|
+
used_token_percent = (current_count / input_token_limit * 100) if input_token_limit else 0
|
|
160
|
+
sent_session_message_percent = (
|
|
161
|
+
sent_session_messages / total_session_messages * 100
|
|
162
|
+
if total_session_messages
|
|
163
|
+
else 0
|
|
164
|
+
)
|
|
150
165
|
self.agent.status_manager.cache_context_status(modict(
|
|
151
166
|
used_tokens=current_count,
|
|
152
|
-
input_token_limit=
|
|
153
|
-
percent=
|
|
167
|
+
input_token_limit=input_token_limit,
|
|
168
|
+
percent=used_token_percent,
|
|
154
169
|
sent_session_messages=sent_session_messages,
|
|
155
170
|
total_session_messages=total_session_messages,
|
|
156
|
-
sent_session_message_percent=
|
|
171
|
+
sent_session_message_percent=sent_session_message_percent,
|
|
157
172
|
persistent_session_messages=persistent_session_messages,
|
|
158
173
|
temporary_session_messages=temporary_session_messages,
|
|
159
174
|
active_wrapper_messages=len(active_wrappers),
|
|
@@ -200,7 +215,8 @@ class ContextManager:
|
|
|
200
215
|
return msg.get("turns_left", -1) != 0
|
|
201
216
|
|
|
202
217
|
def response_tools_token_count(self, response_tools=None):
|
|
203
|
-
|
|
218
|
+
if response_tools is None:
|
|
219
|
+
response_tools = self.agent.tools_manager.get_response_tools()
|
|
204
220
|
if not response_tools:
|
|
205
221
|
return 0
|
|
206
222
|
return token_count_payload({"tools": response_tools}, model=self.agent.config.model)
|
|
@@ -275,7 +291,11 @@ class ContextManager:
|
|
|
275
291
|
for msg in messages
|
|
276
292
|
if isinstance(msg, ImageMessage)
|
|
277
293
|
)
|
|
278
|
-
|
|
294
|
+
local_tokens = token_count_payload(
|
|
295
|
+
self.local_token_count_payload(payload),
|
|
296
|
+
model=self.agent.config.model,
|
|
297
|
+
)
|
|
298
|
+
return local_tokens + media_tokens
|
|
279
299
|
|
|
280
300
|
def should_auto_compact(self, messages):
|
|
281
301
|
if not self.agent.config.get("auto_compact", True):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.38"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-agent-framework
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.38
|
|
4
4
|
Summary: A lightweight event-driven Codex agent runtime.
|
|
5
5
|
Author: Baptiste
|
|
6
6
|
License-Expression: MIT
|
|
@@ -192,8 +192,8 @@ agent = Agent(
|
|
|
192
192
|
|
|
193
193
|
## Project health
|
|
194
194
|
|
|
195
|
-
The repository includes a GitHub Actions CI workflow that runs an offline/headless test subset on Python 3.11 and 3.12, then builds the package and validates distributions with `twine check`.
|
|
196
|
-
You can run the same
|
|
195
|
+
The repository includes a GitHub Actions CI workflow that runs an explicit offline/headless test subset on Python 3.11 and 3.12, then builds the package and validates distributions with `twine check`.
|
|
196
|
+
You can run the same subset locally with `scripts/run-ci-tests.sh`; use `python -m pytest` for broader local sweeps that may include machine- or backend-dependent tests.
|
|
197
197
|
Dependabot is configured for weekly GitHub Actions and pip dependency updates.
|
|
198
198
|
|
|
199
199
|
## Documentation
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.36"
|
|
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.36 → codex_agent_framework-0.1.38}/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
|
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/get_text/__init__.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/get_text/default_gitignore
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/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
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/codex_agent/prompts/system_prompt.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/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
|
|
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.36 → codex_agent_framework-0.1.38}/tests/test_agent_audio_hooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_environment.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/tests/test_agent_image_generation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.36 → codex_agent_framework-0.1.38}/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.36 → codex_agent_framework-0.1.38}/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
|