codex-agent-framework 0.1.66__tar.gz → 0.1.68__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.66/codex_agent_framework.egg-info → codex_agent_framework-0.1.68}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/agent.py +1 -3
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/ai.py +1 -6
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/browser.py +1 -2
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/bash/__init__.py +0 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/realtime/manager.py +0 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/config.py +1 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/latex.py +2 -6
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/service.py +2 -3
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/stream_utils.py +1 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/lifecycle.py +3 -5
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/utils.py +1 -2
- codex_agent_framework-0.1.68/codex_agent/version.py +1 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68/codex_agent_framework.egg-info}/PKG-INFO +1 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/pyproject.toml +1 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_context.py +0 -2
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_plugins.py +0 -3
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_response.py +0 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_chat.py +0 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_client.py +0 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_server.py +1 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_token_counter.py +1 -3
- codex_agent_framework-0.1.66/codex_agent/version.py +0 -1
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/CHANGELOG.md +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/LICENSE +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/MANIFEST.in +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/README.md +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/__main__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/agent_runtime.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_commands.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/content/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/content/system.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/content/vision.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/context/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/files/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/files/tools.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/python/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/realtime/session.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/builtin_plugins/web_search/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/cli/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/cli/headless.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/cli/main.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/cli/output.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/cli/root.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/cli/runner.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/client.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/command.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/context.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/desktop.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/event.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/get_text/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/get_text/default_gitignore +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/get_text/get_text.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/get_text/simpler_get_text.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/hooks.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/image.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/mainloop.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/message.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/plugin.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/prompts/compaction_prompt.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/prompts/system_prompt.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/provider.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/runtime.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/scheduler.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/scripts/install-system-dependencies.sh +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/server/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/server/app.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/server/core.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/sessions.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/status.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/stream.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/token_counter.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tool.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tray.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/__init__.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/app.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/chat.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/log.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/perf.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/state.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/status_bar.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/stream_debug.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/style.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/transcript.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/tui/widgets.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/worker.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent_framework.egg-info/entry_points.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent_framework.egg-info/requires.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent_framework.egg-info/top_level.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/dependencies.txt +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/setup.cfg +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_audio_hooks.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_commands.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_desktop.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_environment.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_image_generation.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_observe.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_providers_config.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_realtime.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_runtime.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_sessions.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_subagents.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_tools.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_turns.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_ai.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_browser.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_builtin_config.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_cli.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_cli_headless.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_cli_root.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_events.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_get_text_browser.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_hooks.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_image_message.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_local_desktop.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_memory.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_messages.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_planner.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_scheduler.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_service.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_tui.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_utils.py +0 -0
- {codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_worker.py +0 -0
|
@@ -510,14 +510,12 @@ class Agent:
|
|
|
510
510
|
if source is None:
|
|
511
511
|
raise ValueError("An audio source must be provided")
|
|
512
512
|
|
|
513
|
-
|
|
513
|
+
return self.ai.audio_to_text(
|
|
514
514
|
source=source,
|
|
515
515
|
language=language,
|
|
516
516
|
**kwargs,
|
|
517
517
|
)
|
|
518
518
|
|
|
519
|
-
return transcribed_text
|
|
520
|
-
|
|
521
519
|
def upload_file(self, source, name=None):
|
|
522
520
|
"""
|
|
523
521
|
description: Upload a file into the workfolder and notify the agent.
|
|
@@ -44,17 +44,14 @@ class ChunkStreamer(MappingStreamProcessor):
|
|
|
44
44
|
|
|
45
45
|
class AIClientError(Exception):
|
|
46
46
|
"""Base exception for AI client errors."""
|
|
47
|
-
pass
|
|
48
47
|
|
|
49
48
|
|
|
50
49
|
class AIBadRequestError(AIClientError):
|
|
51
50
|
"""Raised when the backend rejects the request as malformed."""
|
|
52
|
-
pass
|
|
53
51
|
|
|
54
52
|
|
|
55
53
|
class APIAuthenticationError(AIClientError):
|
|
56
54
|
"""Exception raised for API authentication failures."""
|
|
57
|
-
pass
|
|
58
55
|
|
|
59
56
|
|
|
60
57
|
MAX_EMBEDDING_INPUT_TOKENS = 7500
|
|
@@ -172,9 +169,7 @@ class AIClient:
|
|
|
172
169
|
|
|
173
170
|
mp3_buffer.seek(0)
|
|
174
171
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
return audio
|
|
172
|
+
return AudioSegment.from_file(mp3_buffer,format="mp3").set_channels(1)
|
|
178
173
|
|
|
179
174
|
except Exception as e:
|
|
180
175
|
raise AIClientError(f"TTS generation failed: {str(e)}")
|
|
@@ -396,8 +396,7 @@ class BrowserSession:
|
|
|
396
396
|
page = await self.current_page()
|
|
397
397
|
if url:
|
|
398
398
|
await self.goto(url, page=page, **goto_kwargs)
|
|
399
|
-
|
|
400
|
-
return text
|
|
399
|
+
return await page.locator(selector).inner_text(timeout=goto_kwargs.get("timeout", 30_000))
|
|
401
400
|
|
|
402
401
|
async def screenshot(
|
|
403
402
|
self,
|
|
@@ -111,7 +111,6 @@ class RealtimeManager:
|
|
|
111
111
|
with self._lock:
|
|
112
112
|
session = self._session
|
|
113
113
|
thread = self._thread
|
|
114
|
-
session_id = self._session_id or ""
|
|
115
114
|
if session is None and thread is None:
|
|
116
115
|
self._state = "stopped" if not self._last_error else "error"
|
|
117
116
|
return modict(status="stopped", **self.status())
|
|
@@ -262,7 +262,7 @@ class ConfigManager:
|
|
|
262
262
|
|
|
263
263
|
def get_path(self, path=None, default=None):
|
|
264
264
|
if not path:
|
|
265
|
-
return modict(
|
|
265
|
+
return modict(self.configs)
|
|
266
266
|
namespace, remainder = self.namespace_path(path)
|
|
267
267
|
target = self.get_config(namespace)
|
|
268
268
|
return target.get_path(remainder, default=default) if isinstance(target, Config) else get_nested(target, remainder, default=default)
|
|
@@ -29,9 +29,7 @@ def escape_formula_specials(formula: str) -> str:
|
|
|
29
29
|
|
|
30
30
|
# 2) Quotes : \" et \'
|
|
31
31
|
pattern_quotes = re.compile(r'(?<!\\)\\(["\'])')
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return formula
|
|
32
|
+
return pattern_quotes.sub(r'\\\1', formula)
|
|
35
33
|
|
|
36
34
|
def _normalize_latex_delimiters(text: str) -> str:
|
|
37
35
|
r"""
|
|
@@ -51,14 +49,12 @@ def _normalize_latex_delimiters(text: str) -> str:
|
|
|
51
49
|
)
|
|
52
50
|
|
|
53
51
|
# Inline math : \( ... \) -> $ ... $
|
|
54
|
-
|
|
52
|
+
return re.sub(
|
|
55
53
|
r'(?<!\\)\\\((?P<inl>[^\)\n]+?)\\\)', # \( ... \)
|
|
56
54
|
lambda m: f"${m.group('inl')}$",
|
|
57
55
|
text,
|
|
58
56
|
)
|
|
59
57
|
|
|
60
|
-
return text
|
|
61
|
-
|
|
62
58
|
def _escape_katex_formulas(text: str) -> str:
|
|
63
59
|
r"""
|
|
64
60
|
Traite uniquement les formules KaTeX dans `text` (hors blocs de code).
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import contextlib
|
|
1
2
|
import json
|
|
2
3
|
import os
|
|
3
4
|
import plistlib
|
|
@@ -43,10 +44,8 @@ def pop_restart_wakeup():
|
|
|
43
44
|
try:
|
|
44
45
|
payload = json.loads(path.read_text(encoding="utf-8"))
|
|
45
46
|
finally:
|
|
46
|
-
|
|
47
|
+
with contextlib.suppress(FileNotFoundError):
|
|
47
48
|
path.unlink()
|
|
48
|
-
except FileNotFoundError:
|
|
49
|
-
pass
|
|
50
49
|
return payload
|
|
51
50
|
|
|
52
51
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import atexit
|
|
2
|
+
import contextlib
|
|
2
3
|
import os
|
|
3
4
|
import shlex
|
|
4
5
|
import signal
|
|
@@ -81,10 +82,8 @@ def clear_tui(pid=None):
|
|
|
81
82
|
data = None
|
|
82
83
|
if pid is not None and data and int(data.get("pid") or -1) != int(pid):
|
|
83
84
|
return data
|
|
84
|
-
|
|
85
|
+
with contextlib.suppress(FileNotFoundError):
|
|
85
86
|
os.remove(path)
|
|
86
|
-
except FileNotFoundError:
|
|
87
|
-
pass
|
|
88
87
|
return None
|
|
89
88
|
|
|
90
89
|
|
|
@@ -113,8 +112,7 @@ def open_tui_terminal(base_url="http://127.0.0.1:8765"):
|
|
|
113
112
|
def tui_terminal_env(env=None):
|
|
114
113
|
env = project_python_env(env)
|
|
115
114
|
env["AGENT_RUNTIME_DIR"] = os.path.expanduser(env.get("AGENT_RUNTIME_DIR") or runtime_join(""))
|
|
116
|
-
|
|
117
|
-
return env
|
|
115
|
+
return sanitize_terminal_env(env)
|
|
118
116
|
|
|
119
117
|
|
|
120
118
|
def sanitize_terminal_env(env):
|
|
@@ -192,8 +192,7 @@ def tokenizer_for_model(model=None):
|
|
|
192
192
|
def tokenize(string, model=None):
|
|
193
193
|
tokenizer = tokenizer_for_model(model)
|
|
194
194
|
int_tokens = tokenizer.encode(string)
|
|
195
|
-
|
|
196
|
-
return str_tokens
|
|
195
|
+
return [tokenizer.decode([int_token]) for int_token in int_tokens]
|
|
197
196
|
|
|
198
197
|
def utf8_safe_tokenize(s):
|
|
199
198
|
return regex.findall(r'\X', s)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.68"
|
|
@@ -3,7 +3,6 @@ import os
|
|
|
3
3
|
from types import SimpleNamespace
|
|
4
4
|
|
|
5
5
|
import codex_agent.utils as utils
|
|
6
|
-
from modict import modict
|
|
7
6
|
from codex_agent import Agent, ResponseContentDeltaEvent, ServerToolCallEvent, WebSearchTool
|
|
8
7
|
from codex_agent.builtin_plugins.image_generation import ImageGenerationTool
|
|
9
8
|
from codex_agent.message import (
|
|
@@ -746,7 +746,7 @@ def test_agent_server_persists_current_session_from_session_command():
|
|
|
746
746
|
first_id = first.current_session_id
|
|
747
747
|
second = Agent(session="new")
|
|
748
748
|
second_id = second.current_session_id
|
|
749
|
-
|
|
749
|
+
AgentServer(InProcessAgentRuntime(second))
|
|
750
750
|
|
|
751
751
|
assert load_server_config().current_session_id == second_id
|
|
752
752
|
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
from
|
|
2
|
-
|
|
3
|
-
from codex_agent.message import CompactionMessage, DeveloperMessage, SystemMessage, UserMessage
|
|
1
|
+
from codex_agent.message import CompactionMessage, SystemMessage, UserMessage
|
|
4
2
|
from codex_agent.token_counter import TokenCounter
|
|
5
3
|
from codex_agent.builtin_plugins.image_generation import ImageGenerationTool
|
|
6
4
|
from codex_agent.tool import Tool, WebSearchTool
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.66"
|
|
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.66 → codex_agent_framework-0.1.68}/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.66 → codex_agent_framework-0.1.68}/codex_agent/get_text/__init__.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/codex_agent/get_text/default_gitignore
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/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.66 → codex_agent_framework-0.1.68}/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.66 → codex_agent_framework-0.1.68}/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
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/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
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_audio_hooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_environment.py
RENAMED
|
File without changes
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/tests/test_agent_image_generation.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/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
|
{codex_agent_framework-0.1.66 → codex_agent_framework-0.1.68}/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
|