codex-telegram 0.4.6__tar.gz → 0.4.7__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-telegram-0.4.6 → codex-telegram-0.4.7}/PKG-INFO +1 -1
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/client.py +0 -1
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram/__init__.py +1 -1
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram.egg-info/PKG-INFO +1 -1
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_codex_client.py +16 -1
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/LICENSE +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/MANIFEST.in +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/README.md +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/TELEGRAM.md +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/WEB.md +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/app_runtime/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/app_runtime/bootstrap.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/app_runtime/telegram_app.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/app_runtime/web_server.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/callbacks.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/features_ui.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/handlers.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/keyboard.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/projects_ui.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/skills_ui.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/bot/thread_ui.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/approval_flow.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/approval_guardian.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/collaboration_mode.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/common.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/context.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/contracts.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/core.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/projects.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/review.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/system.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/command_router/threads.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/commands.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/event_forwarding.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/events.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex/protocol.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram/cli.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram.egg-info/SOURCES.txt +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram.egg-info/dependency_links.txt +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram.egg-info/entry_points.txt +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram.egg-info/requires.txt +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/codex_telegram.egg-info/top_level.txt +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/conf.toml.example +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/main.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/models/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/models/state.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/models/thread.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/models/user.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/pyproject.toml +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/setup.cfg +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_approval_guardian.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_approval_policy.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_callbacks_results.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_cli_entrypoint.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_command_router.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_guardian_config.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_handlers_results.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_keyboard.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_main_approval_flow.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_normalize.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_pypi_check.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_single_instance.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_telegram_bot_config.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_thread_history.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_web_runtime.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/tests/test_web_server_local_command.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/approval_policy.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/config.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/local_command.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/logger.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/normalize.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/pypi_check.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/single_instance.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/utils/web_config.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/__init__.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/dependencies.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/routes.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/runtime.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/server.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/static/dist/assets/index-B6IQl7AZ.js +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/static/dist/assets/index-Czx9yv3Y.css +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/static/dist/icons-tab-add.svg +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/static/dist/icons-tab-close.svg +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/static/dist/index.html +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/thread_history.py +0 -0
- {codex-telegram-0.4.6 → codex-telegram-0.4.7}/web/workspace.py +0 -0
|
@@ -125,7 +125,6 @@ class CodexClient:
|
|
|
125
125
|
logger.debug("app-server stdin: %s", data)
|
|
126
126
|
if self._proc and self._proc.stdin:
|
|
127
127
|
self._proc.stdin.write(data.encode() + b"\n")
|
|
128
|
-
self._proc.stdin.flush()
|
|
129
128
|
|
|
130
129
|
def _fail_pending(self, exc: Exception) -> None:
|
|
131
130
|
for future in self._pending.values():
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import unittest
|
|
2
2
|
from unittest.mock import patch
|
|
3
|
+
from types import SimpleNamespace
|
|
3
4
|
|
|
4
5
|
from codex.client import CodexClient
|
|
5
|
-
from codex.protocol import JSONRPCRequest
|
|
6
|
+
from codex.protocol import JSONRPCRequest, JSONRPCNotification
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class CodexClientServerRequestTests(unittest.IsolatedAsyncioTestCase):
|
|
10
|
+
def test_write_does_not_require_flush_on_asyncio_stream_writer(self):
|
|
11
|
+
client = CodexClient()
|
|
12
|
+
written = []
|
|
13
|
+
|
|
14
|
+
class _DummyStdin:
|
|
15
|
+
def write(self, data):
|
|
16
|
+
written.append(data)
|
|
17
|
+
|
|
18
|
+
client._proc = SimpleNamespace(stdin=_DummyStdin())
|
|
19
|
+
|
|
20
|
+
client._write(JSONRPCNotification(method="initialized"))
|
|
21
|
+
|
|
22
|
+
self.assertEqual([b'{"method": "initialized"}\n'], written)
|
|
23
|
+
|
|
9
24
|
async def test_tool_request_user_input_auto_approve_maps_to_approve_once(self):
|
|
10
25
|
client = CodexClient()
|
|
11
26
|
written = []
|
|
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
|
|
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
|