codex-autorunner 1.0.0__py3-none-any.whl → 1.2.0__py3-none-any.whl
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_autorunner/__init__.py +12 -1
- codex_autorunner/agents/codex/harness.py +1 -1
- codex_autorunner/agents/opencode/client.py +113 -4
- codex_autorunner/agents/opencode/constants.py +3 -0
- codex_autorunner/agents/opencode/harness.py +6 -1
- codex_autorunner/agents/opencode/runtime.py +59 -18
- codex_autorunner/agents/opencode/supervisor.py +4 -0
- codex_autorunner/agents/registry.py +36 -7
- codex_autorunner/bootstrap.py +226 -4
- codex_autorunner/cli.py +5 -1174
- codex_autorunner/codex_cli.py +20 -84
- codex_autorunner/core/__init__.py +20 -0
- codex_autorunner/core/about_car.py +119 -1
- codex_autorunner/core/app_server_ids.py +59 -0
- codex_autorunner/core/app_server_threads.py +17 -2
- codex_autorunner/core/app_server_utils.py +165 -0
- codex_autorunner/core/archive.py +349 -0
- codex_autorunner/core/codex_runner.py +6 -2
- codex_autorunner/core/config.py +433 -4
- codex_autorunner/core/context_awareness.py +38 -0
- codex_autorunner/core/docs.py +0 -122
- codex_autorunner/core/drafts.py +58 -4
- codex_autorunner/core/exceptions.py +4 -0
- codex_autorunner/core/filebox.py +265 -0
- codex_autorunner/core/flows/controller.py +96 -2
- codex_autorunner/core/flows/models.py +13 -0
- codex_autorunner/core/flows/reasons.py +52 -0
- codex_autorunner/core/flows/reconciler.py +134 -0
- codex_autorunner/core/flows/runtime.py +57 -4
- codex_autorunner/core/flows/store.py +142 -7
- codex_autorunner/core/flows/transition.py +27 -15
- codex_autorunner/core/flows/ux_helpers.py +272 -0
- codex_autorunner/core/flows/worker_process.py +32 -6
- codex_autorunner/core/git_utils.py +62 -0
- codex_autorunner/core/hub.py +291 -20
- codex_autorunner/core/lifecycle_events.py +253 -0
- codex_autorunner/core/notifications.py +14 -2
- codex_autorunner/core/path_utils.py +2 -1
- codex_autorunner/core/pma_audit.py +224 -0
- codex_autorunner/core/pma_context.py +496 -0
- codex_autorunner/core/pma_dispatch_interceptor.py +284 -0
- codex_autorunner/core/pma_lifecycle.py +527 -0
- codex_autorunner/core/pma_queue.py +367 -0
- codex_autorunner/core/pma_safety.py +221 -0
- codex_autorunner/core/pma_state.py +115 -0
- codex_autorunner/core/ports/__init__.py +28 -0
- codex_autorunner/{integrations/agents → core/ports}/agent_backend.py +13 -8
- codex_autorunner/core/ports/backend_orchestrator.py +41 -0
- codex_autorunner/{integrations/agents → core/ports}/run_event.py +23 -6
- codex_autorunner/core/prompt.py +0 -80
- codex_autorunner/core/prompts.py +56 -172
- codex_autorunner/core/redaction.py +0 -4
- codex_autorunner/core/review_context.py +11 -9
- codex_autorunner/core/runner_controller.py +35 -33
- codex_autorunner/core/runner_state.py +147 -0
- codex_autorunner/core/runtime.py +829 -0
- codex_autorunner/core/sqlite_utils.py +13 -4
- codex_autorunner/core/state.py +7 -10
- codex_autorunner/core/state_roots.py +62 -0
- codex_autorunner/core/supervisor_protocol.py +15 -0
- codex_autorunner/core/templates/__init__.py +39 -0
- codex_autorunner/core/templates/git_mirror.py +234 -0
- codex_autorunner/core/templates/provenance.py +56 -0
- codex_autorunner/core/templates/scan_cache.py +120 -0
- codex_autorunner/core/text_delta_coalescer.py +54 -0
- codex_autorunner/core/ticket_linter_cli.py +218 -0
- codex_autorunner/core/ticket_manager_cli.py +494 -0
- codex_autorunner/core/time_utils.py +11 -0
- codex_autorunner/core/types.py +18 -0
- codex_autorunner/core/update.py +4 -5
- codex_autorunner/core/update_paths.py +28 -0
- codex_autorunner/core/usage.py +164 -12
- codex_autorunner/core/utils.py +125 -15
- codex_autorunner/flows/review/__init__.py +17 -0
- codex_autorunner/{core/review.py → flows/review/service.py} +37 -34
- codex_autorunner/flows/ticket_flow/definition.py +52 -3
- codex_autorunner/integrations/agents/__init__.py +11 -19
- codex_autorunner/integrations/agents/backend_orchestrator.py +302 -0
- codex_autorunner/integrations/agents/codex_adapter.py +90 -0
- codex_autorunner/integrations/agents/codex_backend.py +177 -25
- codex_autorunner/integrations/agents/opencode_adapter.py +108 -0
- codex_autorunner/integrations/agents/opencode_backend.py +305 -32
- codex_autorunner/integrations/agents/runner.py +86 -0
- codex_autorunner/integrations/agents/wiring.py +279 -0
- codex_autorunner/integrations/app_server/client.py +7 -60
- codex_autorunner/integrations/app_server/env.py +2 -107
- codex_autorunner/{core/app_server_events.py → integrations/app_server/event_buffer.py} +15 -8
- codex_autorunner/integrations/telegram/adapter.py +65 -0
- codex_autorunner/integrations/telegram/config.py +46 -0
- codex_autorunner/integrations/telegram/constants.py +1 -1
- codex_autorunner/integrations/telegram/doctor.py +228 -6
- codex_autorunner/integrations/telegram/handlers/callbacks.py +7 -0
- codex_autorunner/integrations/telegram/handlers/commands/execution.py +236 -74
- codex_autorunner/integrations/telegram/handlers/commands/files.py +314 -75
- codex_autorunner/integrations/telegram/handlers/commands/flows.py +1496 -71
- codex_autorunner/integrations/telegram/handlers/commands/workspace.py +498 -37
- codex_autorunner/integrations/telegram/handlers/commands_runtime.py +206 -48
- codex_autorunner/integrations/telegram/handlers/commands_spec.py +20 -3
- codex_autorunner/integrations/telegram/handlers/messages.py +27 -1
- codex_autorunner/integrations/telegram/handlers/selections.py +61 -1
- codex_autorunner/integrations/telegram/helpers.py +22 -1
- codex_autorunner/integrations/telegram/runtime.py +9 -4
- codex_autorunner/integrations/telegram/service.py +45 -10
- codex_autorunner/integrations/telegram/state.py +38 -0
- codex_autorunner/integrations/telegram/ticket_flow_bridge.py +338 -43
- codex_autorunner/integrations/telegram/transport.py +13 -4
- codex_autorunner/integrations/templates/__init__.py +27 -0
- codex_autorunner/integrations/templates/scan_agent.py +312 -0
- codex_autorunner/routes/__init__.py +37 -76
- codex_autorunner/routes/agents.py +2 -137
- codex_autorunner/routes/analytics.py +2 -238
- codex_autorunner/routes/app_server.py +2 -131
- codex_autorunner/routes/base.py +2 -596
- codex_autorunner/routes/file_chat.py +4 -833
- codex_autorunner/routes/flows.py +4 -977
- codex_autorunner/routes/messages.py +4 -456
- codex_autorunner/routes/repos.py +2 -196
- codex_autorunner/routes/review.py +2 -147
- codex_autorunner/routes/sessions.py +2 -175
- codex_autorunner/routes/settings.py +2 -168
- codex_autorunner/routes/shared.py +2 -275
- codex_autorunner/routes/system.py +4 -193
- codex_autorunner/routes/usage.py +2 -86
- codex_autorunner/routes/voice.py +2 -119
- codex_autorunner/routes/workspace.py +2 -270
- codex_autorunner/server.py +4 -4
- codex_autorunner/static/agentControls.js +61 -16
- codex_autorunner/static/app.js +126 -14
- codex_autorunner/static/archive.js +826 -0
- codex_autorunner/static/archiveApi.js +37 -0
- codex_autorunner/static/autoRefresh.js +7 -7
- codex_autorunner/static/chatUploads.js +137 -0
- codex_autorunner/static/dashboard.js +224 -171
- codex_autorunner/static/docChatCore.js +185 -13
- codex_autorunner/static/fileChat.js +68 -40
- codex_autorunner/static/fileboxUi.js +159 -0
- codex_autorunner/static/hub.js +114 -131
- codex_autorunner/static/index.html +375 -49
- codex_autorunner/static/messages.js +568 -87
- codex_autorunner/static/notifications.js +255 -0
- codex_autorunner/static/pma.js +1167 -0
- codex_autorunner/static/preserve.js +17 -0
- codex_autorunner/static/settings.js +128 -6
- codex_autorunner/static/smartRefresh.js +52 -0
- codex_autorunner/static/streamUtils.js +57 -0
- codex_autorunner/static/styles.css +9798 -6143
- codex_autorunner/static/tabs.js +152 -11
- codex_autorunner/static/templateReposSettings.js +225 -0
- codex_autorunner/static/terminal.js +18 -0
- codex_autorunner/static/ticketChatActions.js +165 -3
- codex_autorunner/static/ticketChatStream.js +17 -119
- codex_autorunner/static/ticketEditor.js +137 -15
- codex_autorunner/static/ticketTemplates.js +798 -0
- codex_autorunner/static/tickets.js +821 -98
- codex_autorunner/static/turnEvents.js +27 -0
- codex_autorunner/static/turnResume.js +33 -0
- codex_autorunner/static/utils.js +39 -0
- codex_autorunner/static/workspace.js +389 -82
- codex_autorunner/static/workspaceFileBrowser.js +15 -13
- codex_autorunner/surfaces/__init__.py +5 -0
- codex_autorunner/surfaces/cli/__init__.py +6 -0
- codex_autorunner/surfaces/cli/cli.py +2534 -0
- codex_autorunner/surfaces/cli/codex_cli.py +20 -0
- codex_autorunner/surfaces/cli/pma_cli.py +817 -0
- codex_autorunner/surfaces/telegram/__init__.py +3 -0
- codex_autorunner/surfaces/web/__init__.py +1 -0
- codex_autorunner/surfaces/web/app.py +2223 -0
- codex_autorunner/surfaces/web/hub_jobs.py +192 -0
- codex_autorunner/surfaces/web/middleware.py +587 -0
- codex_autorunner/surfaces/web/pty_session.py +370 -0
- codex_autorunner/surfaces/web/review.py +6 -0
- codex_autorunner/surfaces/web/routes/__init__.py +82 -0
- codex_autorunner/surfaces/web/routes/agents.py +138 -0
- codex_autorunner/surfaces/web/routes/analytics.py +284 -0
- codex_autorunner/surfaces/web/routes/app_server.py +132 -0
- codex_autorunner/surfaces/web/routes/archive.py +357 -0
- codex_autorunner/surfaces/web/routes/base.py +615 -0
- codex_autorunner/surfaces/web/routes/file_chat.py +1117 -0
- codex_autorunner/surfaces/web/routes/filebox.py +227 -0
- codex_autorunner/surfaces/web/routes/flows.py +1354 -0
- codex_autorunner/surfaces/web/routes/messages.py +490 -0
- codex_autorunner/surfaces/web/routes/pma.py +1652 -0
- codex_autorunner/surfaces/web/routes/repos.py +197 -0
- codex_autorunner/surfaces/web/routes/review.py +148 -0
- codex_autorunner/surfaces/web/routes/sessions.py +176 -0
- codex_autorunner/surfaces/web/routes/settings.py +169 -0
- codex_autorunner/surfaces/web/routes/shared.py +277 -0
- codex_autorunner/surfaces/web/routes/system.py +196 -0
- codex_autorunner/surfaces/web/routes/templates.py +634 -0
- codex_autorunner/surfaces/web/routes/usage.py +89 -0
- codex_autorunner/surfaces/web/routes/voice.py +120 -0
- codex_autorunner/surfaces/web/routes/workspace.py +271 -0
- codex_autorunner/surfaces/web/runner_manager.py +25 -0
- codex_autorunner/surfaces/web/schemas.py +469 -0
- codex_autorunner/surfaces/web/static_assets.py +490 -0
- codex_autorunner/surfaces/web/static_refresh.py +86 -0
- codex_autorunner/surfaces/web/terminal_sessions.py +78 -0
- codex_autorunner/tickets/__init__.py +8 -1
- codex_autorunner/tickets/agent_pool.py +53 -4
- codex_autorunner/tickets/files.py +37 -16
- codex_autorunner/tickets/lint.py +50 -0
- codex_autorunner/tickets/models.py +6 -1
- codex_autorunner/tickets/outbox.py +50 -2
- codex_autorunner/tickets/runner.py +396 -57
- codex_autorunner/web/__init__.py +5 -1
- codex_autorunner/web/app.py +2 -1949
- codex_autorunner/web/hub_jobs.py +2 -191
- codex_autorunner/web/middleware.py +2 -586
- codex_autorunner/web/pty_session.py +2 -369
- codex_autorunner/web/runner_manager.py +2 -24
- codex_autorunner/web/schemas.py +2 -376
- codex_autorunner/web/static_assets.py +4 -441
- codex_autorunner/web/static_refresh.py +2 -85
- codex_autorunner/web/terminal_sessions.py +2 -77
- codex_autorunner/workspace/paths.py +49 -33
- codex_autorunner-1.2.0.dist-info/METADATA +150 -0
- codex_autorunner-1.2.0.dist-info/RECORD +339 -0
- codex_autorunner/core/adapter_utils.py +0 -21
- codex_autorunner/core/engine.py +0 -2653
- codex_autorunner/core/static_assets.py +0 -55
- codex_autorunner-1.0.0.dist-info/METADATA +0 -246
- codex_autorunner-1.0.0.dist-info/RECORD +0 -251
- /codex_autorunner/{routes → surfaces/web/routes}/terminal_images.py +0 -0
- {codex_autorunner-1.0.0.dist-info → codex_autorunner-1.2.0.dist-info}/WHEEL +0 -0
- {codex_autorunner-1.0.0.dist-info → codex_autorunner-1.2.0.dist-info}/entry_points.txt +0 -0
- {codex_autorunner-1.0.0.dist-info → codex_autorunner-1.2.0.dist-info}/licenses/LICENSE +0 -0
- {codex_autorunner-1.0.0.dist-info → codex_autorunner-1.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from contextlib import ExitStack
|
|
4
|
-
from importlib import resources
|
|
5
|
-
from pathlib import Path
|
|
6
|
-
from typing import Optional
|
|
7
|
-
|
|
8
|
-
# Keep the required asset list close to the core boundary so core modules do not
|
|
9
|
-
# import from codex_autorunner.web.*
|
|
10
|
-
_REQUIRED_STATIC_ASSETS = (
|
|
11
|
-
"index.html",
|
|
12
|
-
"styles.css",
|
|
13
|
-
"bootstrap.js",
|
|
14
|
-
"loader.js",
|
|
15
|
-
"app.js",
|
|
16
|
-
"vendor/xterm.js",
|
|
17
|
-
"vendor/xterm-addon-fit.js",
|
|
18
|
-
"vendor/xterm.css",
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def missing_static_assets(static_dir: Path) -> list[str]:
|
|
23
|
-
missing: list[str] = []
|
|
24
|
-
for rel_path in _REQUIRED_STATIC_ASSETS:
|
|
25
|
-
try:
|
|
26
|
-
if not (static_dir / rel_path).exists():
|
|
27
|
-
missing.append(rel_path)
|
|
28
|
-
except OSError:
|
|
29
|
-
missing.append(rel_path)
|
|
30
|
-
return missing
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def resolve_static_dir() -> tuple[Path, Optional[ExitStack]]:
|
|
34
|
-
"""Locate packaged static assets without importing codex_autorunner.web."""
|
|
35
|
-
|
|
36
|
-
static_root = resources.files("codex_autorunner").joinpath("static")
|
|
37
|
-
if isinstance(static_root, Path):
|
|
38
|
-
if static_root.exists():
|
|
39
|
-
return static_root, None
|
|
40
|
-
fallback = Path(__file__).resolve().parent.parent / "static"
|
|
41
|
-
return fallback, None
|
|
42
|
-
|
|
43
|
-
stack = ExitStack()
|
|
44
|
-
try:
|
|
45
|
-
static_path = stack.enter_context(resources.as_file(static_root))
|
|
46
|
-
except Exception:
|
|
47
|
-
stack.close()
|
|
48
|
-
fallback = Path(__file__).resolve().parent.parent / "static"
|
|
49
|
-
return fallback, None
|
|
50
|
-
if static_path.exists():
|
|
51
|
-
return static_path, stack
|
|
52
|
-
|
|
53
|
-
stack.close()
|
|
54
|
-
fallback = Path(__file__).resolve().parent.parent / "static"
|
|
55
|
-
return fallback, None
|
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: codex-autorunner
|
|
3
|
-
Version: 1.0.0
|
|
4
|
-
Summary: Codex autorunner CLI per DESIGN-V1
|
|
5
|
-
Author: Codex
|
|
6
|
-
License: MIT License
|
|
7
|
-
|
|
8
|
-
Copyright (c) 2025 David Zhang
|
|
9
|
-
|
|
10
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
-
in the Software without restriction, including without limitation the rights
|
|
13
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
-
furnished to do so, subject to the following conditions:
|
|
16
|
-
|
|
17
|
-
The above copyright notice and this permission notice shall be included in all
|
|
18
|
-
copies or substantial portions of the Software.
|
|
19
|
-
|
|
20
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
-
SOFTWARE.
|
|
27
|
-
|
|
28
|
-
Project-URL: Homepage, https://github.com/Git-on-my-level/codex-autorunner
|
|
29
|
-
Project-URL: Repository, https://github.com/Git-on-my-level/codex-autorunner
|
|
30
|
-
Project-URL: Issues, https://github.com/Git-on-my-level/codex-autorunner/issues
|
|
31
|
-
Keywords: codex,automation,agent,cli,fastapi
|
|
32
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
33
|
-
Classifier: Programming Language :: Python :: 3
|
|
34
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
35
|
-
Classifier: Operating System :: OS Independent
|
|
36
|
-
Requires-Python: >=3.9
|
|
37
|
-
Description-Content-Type: text/markdown
|
|
38
|
-
License-File: LICENSE
|
|
39
|
-
Requires-Dist: typer>=0.9
|
|
40
|
-
Requires-Dist: click<8.2
|
|
41
|
-
Requires-Dist: pyyaml>=6.0
|
|
42
|
-
Requires-Dist: fastapi>=0.111
|
|
43
|
-
Requires-Dist: uvicorn[standard]>=0.30
|
|
44
|
-
Requires-Dist: ptyprocess>=0.7
|
|
45
|
-
Requires-Dist: python-multipart>=0.0.9
|
|
46
|
-
Requires-Dist: python-dotenv>=1.0
|
|
47
|
-
Requires-Dist: httpx>=0.27
|
|
48
|
-
Requires-Dist: tenacity>=8.0
|
|
49
|
-
Provides-Extra: dev
|
|
50
|
-
Requires-Dist: black==25.11.0; extra == "dev"
|
|
51
|
-
Requires-Dist: mypy>=1.10; extra == "dev"
|
|
52
|
-
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
53
|
-
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
54
|
-
Requires-Dist: pytest-timeout>=2.0; extra == "dev"
|
|
55
|
-
Requires-Dist: ruff>=0.5.0; extra == "dev"
|
|
56
|
-
Requires-Dist: types-PyYAML; extra == "dev"
|
|
57
|
-
Provides-Extra: telegram
|
|
58
|
-
Requires-Dist: httpx>=0.27; extra == "telegram"
|
|
59
|
-
Provides-Extra: voice
|
|
60
|
-
Requires-Dist: httpx>=0.27; extra == "voice"
|
|
61
|
-
Requires-Dist: python-multipart>=0.0.9; extra == "voice"
|
|
62
|
-
Provides-Extra: github
|
|
63
|
-
Dynamic: license-file
|
|
64
|
-
|
|
65
|
-
# codex-autorunner
|
|
66
|
-
[](https://pypi.org/project/codex-autorunner/)
|
|
67
|
-
|
|
68
|
-
An opinionated autorunner that uses the Codex app-server as the primary execution backend with OpenCode support to work on large tasks via a simple loop. On each loop we feed the Codex instance the last one's final output along with core documents.
|
|
69
|
-
|
|
70
|
-
In the current model, the primary work surface is **tickets**:
|
|
71
|
-
|
|
72
|
-
- `.codex-autorunner/tickets/TICKET-###.md`
|
|
73
|
-
|
|
74
|
-
Optionally, you can maintain lightweight **workspace docs** (auto-created on write; missing is OK):
|
|
75
|
-
|
|
76
|
-
- `.codex-autorunner/workspace/active_context.md`
|
|
77
|
-
- `.codex-autorunner/workspace/decisions.md`
|
|
78
|
-
- `.codex-autorunner/workspace/spec.md`
|
|
79
|
-
|
|
80
|
-
## Sneak Peak
|
|
81
|
-
Run multiple agents on many repositories, with git worktree support
|
|
82
|
-

|
|
83
|
-
|
|
84
|
-
See the progress of your long running tasks with a high level overview
|
|
85
|
-

|
|
86
|
-
|
|
87
|
-
Dive deep into specific agent execution with a rich but readable log
|
|
88
|
-

|
|
89
|
-
|
|
90
|
-
Tickets and workspace docs are markdown files. Edit them directly or use the web UI’s file chat to iterate with the agent.
|
|
91
|
-
|
|
92
|
-
Use codex CLI directly for multi-shot problem solving or `/review`
|
|
93
|
-

|
|
94
|
-
|
|
95
|
-
Mobile-first experience, code on the go with Whisper support (BYOK)
|
|
96
|
-

|
|
97
|
-
|
|
98
|
-
## What it does
|
|
99
|
-
- Initializes a repo with Codex-friendly docs and config.
|
|
100
|
-
- Runs Codex app-server in a loop against the repo, streaming logs via OpenCode runtime.
|
|
101
|
-
- Tracks state, logs, and config under `.codex-autorunner/`.
|
|
102
|
-
- Exposes a power-user HTTP API and web UI for tickets, workspace docs, file chat, logs, runner control, and a Codex TUI terminal.
|
|
103
|
-
- Optionally runs a Telegram bot for interactive, user-in-the-loop Codex sessions.
|
|
104
|
-
|
|
105
|
-
CLI commands are available as `codex-autorunner` or the shorter `car`.
|
|
106
|
-
|
|
107
|
-
## Install
|
|
108
|
-
PyPI (pipx):
|
|
109
|
-
```
|
|
110
|
-
pipx install codex-autorunner
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
GitHub (pipx, dev):
|
|
114
|
-
```
|
|
115
|
-
pipx install git+https://github.com/Git-on-my-level/codex-autorunner.git
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
From source (editable):
|
|
119
|
-
```
|
|
120
|
-
git clone https://github.com/Git-on-my-level/codex-autorunner.git
|
|
121
|
-
cd codex-autorunner
|
|
122
|
-
pip install -e .
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Optional extras
|
|
126
|
-
- Telegram bot support: `pip install codex-autorunner[telegram]`
|
|
127
|
-
- Voice transcription support: `pip install codex-autorunner[voice]`
|
|
128
|
-
- Dev tools (lint/test): `pip install codex-autorunner[dev]`
|
|
129
|
-
- Local dev alternative: `pip install -e .[extra]`
|
|
130
|
-
|
|
131
|
-
## Dev setup
|
|
132
|
-
- `make setup` creates `.venv`, installs `.[dev]`, runs `pnpm install`, and sets `core.hooksPath` to `.githooks`.
|
|
133
|
-
|
|
134
|
-
### Opinionated setup (macOS headless hub at `~/car-workspace`)
|
|
135
|
-
- One-shot setup (user scope): `scripts/install-local-mac-hub.sh`. It pipx-installs this repo, creates/initializes `~/car-workspace` as a hub, writes a launchd agent plist, and loads it. Defaults: host `127.0.0.1`, port `4173`, label `com.codex.autorunner`. Override via env (`WORKSPACE`, `HOST`, `PORT`, `LABEL`, `PLIST_PATH`, `PACKAGE_SRC`). For remote access, prefer a VPN like Tailscale and keep the hub bound to loopback; if you bind to a non-loopback host, the script configures `server.auth_token_env` + a token in `.codex-autorunner/.env`.
|
|
136
|
-
- Create/update the launchd agent plist and (re)load it: `scripts/launchd-hub.sh` (or `make launchd-hub`).
|
|
137
|
-
- Linux users: see `docs/ops/systemd.md` for systemd hub/Telegram setup.
|
|
138
|
-
- Manual path if you prefer:
|
|
139
|
-
- `pipx install .`
|
|
140
|
-
- `car init --mode hub --path ~/car-workspace`
|
|
141
|
-
- Copy `docs/ops/launchd-hub-example.plist` to `~/Library/LaunchAgents/com.codex.autorunner.plist`, replace `/Users/you` with your home, adjust host/port if desired, then `launchctl load -w ~/Library/LaunchAgents/com.codex.autorunner.plist`.
|
|
142
|
-
- The hub serves the UI/API from `http://<host>:<port>` and writes logs to `~/car-workspace/.codex-autorunner/codex-autorunner-hub.log`. Each repo under `~/car-workspace` should be a git repo with its own `.codex-autorunner/` (run `car init` in each).
|
|
143
|
-
|
|
144
|
-
#### Refresh a launchd hub to the current branch
|
|
145
|
-
When you change code in this repo and want the launchd-managed hub to run it:
|
|
146
|
-
1) Recommended: run the safe refresher, which installs into a new venv, flips `~/.local/pipx/venvs/codex-autorunner.current`, restarts launchd, health-checks, and auto-rolls back on failure:
|
|
147
|
-
```
|
|
148
|
-
make refresh-launchd
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Important: avoid in-place pip/pipx installs against the live venv. During uninstall/reinstall, packaged static assets disappear and the UI can break while the server keeps running. Use the safe refresher or stop the service before manual installs.
|
|
152
|
-
|
|
153
|
-
2) Manual path (offline only; no rollback): stop launchd first, then reinstall into the launchd venv (pipx default paths shown; adjust if your label/paths differ):
|
|
154
|
-
```
|
|
155
|
-
$HOME/.local/pipx/venvs/codex-autorunner/bin/python -m pip install --force-reinstall /path/to/your/codex-autorunner
|
|
156
|
-
```
|
|
157
|
-
3) Restart the agent so it picks up the new bits (default label is `com.codex.autorunner`; default plist `~/Library/LaunchAgents/com.codex.autorunner.plist`):
|
|
158
|
-
```
|
|
159
|
-
launchctl unload ~/Library/LaunchAgents/com.codex.autorunner.plist 2>/dev/null || true
|
|
160
|
-
launchctl load -w ~/Library/LaunchAgents/com.codex.autorunner.plist
|
|
161
|
-
launchctl kickstart -k gui/$(id -u)/com.codex.autorunner
|
|
162
|
-
```
|
|
163
|
-
4) Tail the hub log to confirm it booted: `tail -n 50 ~/car-workspace/.codex-autorunner/codex-autorunner-hub.log`.
|
|
164
|
-
|
|
165
|
-
#### Health checks (recommended)
|
|
166
|
-
- `GET /health` returns 200 (verifies static assets are present).
|
|
167
|
-
- `GET /static/app.js` returns 200.
|
|
168
|
-
- Optional: `GET /` returns HTML (not a JSON error).
|
|
169
|
-
If you set a base path, prefix all checks with it.
|
|
170
|
-
|
|
171
|
-
## Quick start
|
|
172
|
-
1) Install (editable): `pip install -e .`
|
|
173
|
-
2) Initialize (hub + repo): `codex-autorunner init --git-init` (or `car init --git-init` if you prefer short). This creates the hub config at `.codex-autorunner/config.yml`, plus state/log files and starter content under `.codex-autorunner/` (tickets and optional workspace docs).
|
|
174
|
-
3) Run once: `codex-autorunner once` / `car once`
|
|
175
|
-
4) Continuous loop: `codex-autorunner run` / `car run`
|
|
176
|
-
5) If stuck: `codex-autorunner kill` then `codex-autorunner resume` (or the `car` equivalents)
|
|
177
|
-
6) Check status/logs: `codex-autorunner status`, `codex-autorunner log --tail 200` (or `car ...`)
|
|
178
|
-
|
|
179
|
-
## Configuration
|
|
180
|
-
- Root defaults live in `codex-autorunner.yml` (committed).
|
|
181
|
-
- Local overrides live in `codex-autorunner.override.yml` (gitignored). Use it for machine-specific tweaks; keep secrets in env vars.
|
|
182
|
-
- Hub config lives at `.codex-autorunner/config.yml` (generated). It includes `repo_defaults` for all repos.
|
|
183
|
-
- Repo overrides are optional; add `.codex-autorunner/repo.override.yml` to override hub defaults for a specific repo.
|
|
184
|
-
|
|
185
|
-
## Interfaces
|
|
186
|
-
|
|
187
|
-
CAR supports two interfaces with the same core engine. The web UI is the power
|
|
188
|
-
user control plane for multi-repo visibility and system control. The Telegram
|
|
189
|
-
bot is optimized for interactive back-and-forth, mirroring the Codex TUI
|
|
190
|
-
experience inside Telegram with user-in-the-loop approvals.
|
|
191
|
-
|
|
192
|
-
### Web UI (control plane)
|
|
193
|
-
1) Ensure the hub is initialized (`codex-autorunner init`) so `.codex-autorunner/config.yml` exists.
|
|
194
|
-
2) Start the API/UI backend: `codex-autorunner serve` (or `car serve`) — defaults to `127.0.0.1:4173`; override via `server.host`/`server.port` in `.codex-autorunner/config.yml`.
|
|
195
|
-
3) Open `http://127.0.0.1:4173` for the hub UI; repo UIs live under `/repos/<repo_id>/`. FastAPI endpoints are under `/api/*` (repo) and `/hub/*` (hub).
|
|
196
|
-
- The Terminal tab launches the configured Codex binary inside a PTY via websocket; it uses `codex.terminal_args` (defaults empty, so it runs `codex` bare unless you override). xterm.js assets are vendored under `static/vendor`.
|
|
197
|
-
- Repo IDs are URL-safe slugs; if a repo directory or requested ID contains spaces, `#`, or other unsafe chars, the hub stores the original name as `display_name` and generates a safe `repo_id` for URLs.
|
|
198
|
-
- If you need to serve under a proxy prefix (e.g., `/car`), set `server.base_path` in `.codex-autorunner/config.yml` or pass `--base-path` to `car serve/hub serve`; all HTTP/WS endpoints will be reachable under that prefix. Proxy must forward that prefix (e.g., Caddy `handle /car/* { reverse_proxy ... }` with a 404 fallback for everything else).
|
|
199
|
-
- Chat composer shortcuts: desktop uses Cmd+Enter (or Ctrl+Enter) to send and Shift+Enter for newline; mobile uses Enter to send and Shift+Enter for newline.
|
|
200
|
-
|
|
201
|
-
### Telegram bot (interactive sessions)
|
|
202
|
-
- The interactive Telegram bot is separate from `notifications.telegram` (which is one-way notifications).
|
|
203
|
-
- Each operator should create their own Telegram bot token. Multi-user use requires explicit allowlists.
|
|
204
|
-
- Quickstart:
|
|
205
|
-
1) Set env vars: `CAR_TELEGRAM_BOT_TOKEN` (and optionally `CAR_TELEGRAM_CHAT_ID`).
|
|
206
|
-
2) In config, set `telegram_bot.enabled: true` and fill `allowed_user_ids` + `allowed_chat_ids`.
|
|
207
|
-
3) Run `car telegram start --path <repo_or_hub>`.
|
|
208
|
-
4) Use `/bind` (hub mode) and `/new` or `/resume` in Telegram.
|
|
209
|
-
- How it works (high level):
|
|
210
|
-
- The bot polls the Telegram Bot API, allowlists chat/user IDs, and routes each topic to a workspace + Codex thread.
|
|
211
|
-
- Messages and media are forwarded to the Codex app-server, streaming responses back to Telegram.
|
|
212
|
-
- Approvals can be requested inline, giving a hands-on, TUI-like workflow without leaving Telegram.
|
|
213
|
-
- Details: `docs/telegram/architecture.md`, `docs/ops/telegram-bot-runbook.md`, and `docs/telegram/security.md`.
|
|
214
|
-
|
|
215
|
-
## Security and remote access
|
|
216
|
-
- The UI/API are effectively privileged access and can execute code on your machine (terminal + runner).
|
|
217
|
-
- Keep the server bound to `127.0.0.1` and use Tailscale (or another VPN) for remote access.
|
|
218
|
-
- If you must expose it, set `server.auth_token_env` and also put it behind an auth-enforcing reverse proxy (basic auth/SSO).
|
|
219
|
-
- Do not expose it publicly without protections. See `docs/web/security.md` for details.
|
|
220
|
-
|
|
221
|
-
### Auth token (optional)
|
|
222
|
-
If you set `server.auth_token_env`, the API requires `Authorization: Bearer <token>` on every request.
|
|
223
|
-
- Set the config: `server.auth_token_env: CAR_SERVER_TOKEN`.
|
|
224
|
-
- Export the token before starting the server: `export CAR_SERVER_TOKEN="..."`.
|
|
225
|
-
- Browser UI: visit `http://host:port/?token=...` once. The UI stores it in `sessionStorage` and removes it from the URL; WebSocket connections send the token via `Sec-WebSocket-Protocol: car-token-b64.<base64url(token)>`.
|
|
226
|
-
- CLI: requests automatically attach the token from `server.auth_token_env`; if the env var is missing, CLI commands will error.
|
|
227
|
-
|
|
228
|
-
## Git hooks
|
|
229
|
-
- Install dev tools: `pip install -e .[dev]`
|
|
230
|
-
- Point Git to the repo hooks: `git config core.hooksPath .githooks`
|
|
231
|
-
- The `pre-commit` hook runs `scripts/check.sh` (Black formatting check + pytest). Run it manually with `./scripts/check.sh` before committing or in CI.
|
|
232
|
-
|
|
233
|
-
## Commands (CLI)
|
|
234
|
-
- `init` — seed config/state/docs.
|
|
235
|
-
- `run` / `once` — run the loop (continuous or single iteration).
|
|
236
|
-
- `resume` — clear stale lock/state and restart; `--once` for a single run.
|
|
237
|
-
- `kill` — SIGTERM the running loop and mark state error.
|
|
238
|
-
- `status` — show current state.
|
|
239
|
-
- `sessions` — list terminal sessions (server-backed when available).
|
|
240
|
-
- `stop-session` — stop a terminal session by repo (`--repo`) or id (`--session`).
|
|
241
|
-
- `log` — view logs (tail or specific run).
|
|
242
|
-
- `edit` — open `active_context|decisions|spec` in `$EDITOR`.
|
|
243
|
-
- `serve` — start the HTTP API (FastAPI) on host/port from config (defaults 127.0.0.1:4173).
|
|
244
|
-
|
|
245
|
-
## Star history
|
|
246
|
-
[](https://star-history.com/#Git-on-my-level/codex-autorunner&Date)
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
codex_autorunner/__init__.py,sha256=ckmosn6wHfU7M5zBHvBr9Vq2TH-ZYz3qrMRIyHKzcrU,111
|
|
2
|
-
codex_autorunner/__main__.py,sha256=Qd-f8z2Q2vpiEP2x6PBFsJrpACWDVxFKQk820MhFmHo,59
|
|
3
|
-
codex_autorunner/api.py,sha256=1QIExNBqoNfND7ldsa36E65MGaBstutrr7j6Dgs5W74,705
|
|
4
|
-
codex_autorunner/bootstrap.py,sha256=19T2MT4DvrQb8XSkL2EfL9k1m0GiWP_pX--77XiyUVg,5084
|
|
5
|
-
codex_autorunner/cli.py,sha256=UorEn-AxVP_tjlBdlh_tPPndOrTjxZ8pLtVEYWcMPKY,42800
|
|
6
|
-
codex_autorunner/codex_cli.py,sha256=Uzt5I9zlsUJclQNYeMmt4q9AEGjtihln8FjljQ8-yg0,2513
|
|
7
|
-
codex_autorunner/codex_runner.py,sha256=P0yHlZZjVYWLVH1O4b5VUwQs_mkJspPPG3-nULWt4Cw,362
|
|
8
|
-
codex_autorunner/discovery.py,sha256=8vwGq5YKAZpyTFY-mcv2L7oZY1ECkgqeeu-jD3SBGaI,6778
|
|
9
|
-
codex_autorunner/housekeeping.py,sha256=1Jk3-vIDfYfXf1N63Dqz7C-i0ACGYTzRcgYHcYDjsZo,12826
|
|
10
|
-
codex_autorunner/manifest.py,sha256=-1pQfCNFeAei9r-Z5wqJV2_EmJ6jNhYZ4y1aIc__w-8,6545
|
|
11
|
-
codex_autorunner/plugin_api.py,sha256=o-87FVzjSbC1od55aGF3O3pp-NkKX9hDKOcEeh0J5BU,664
|
|
12
|
-
codex_autorunner/server.py,sha256=11st-JNeMZ4warDaxgEZ7i8QIIUjZL3Z0u8Vyj4CprE,416
|
|
13
|
-
codex_autorunner/agents/__init__.py,sha256=6xEQXHkZ40kHadHB9Is5fK9dGGVsgryasoRllIN8_ho,418
|
|
14
|
-
codex_autorunner/agents/base.py,sha256=UiYYYvSYrEjTHy0tjs8O8hcTwrgMtmuyrhoVW9EkiYY,1643
|
|
15
|
-
codex_autorunner/agents/registry.py,sha256=8N7yUpZbuU4Mm0m-hqM6Ujy7NRHRmAN83DwbQqDXYew,7511
|
|
16
|
-
codex_autorunner/agents/types.py,sha256=3dzkr0Rvn2EgSiJ1k65f6MF0ZEXifGK7GhUF4Nr2GBs,727
|
|
17
|
-
codex_autorunner/agents/codex/__init__.py,sha256=GQ9KHMVT2ggOe1jT1kHEPfJLRDzfH0doGJCNwO4a2o0,92
|
|
18
|
-
codex_autorunner/agents/codex/harness.py,sha256=ly-KtEdd1SGJzu9bqY4BW9yCJRoGCqaX2vIfcu8n4vM,8426
|
|
19
|
-
codex_autorunner/agents/opencode/__init__.py,sha256=nTTukw5TzOKURCTyF7CJsbx-rh-9sue79XvqsOVTTNc,478
|
|
20
|
-
codex_autorunner/agents/opencode/agent_config.py,sha256=VO3qske0X75S8eoK6XR3NUNJq_WzGLJu1KsZdOFF-MY,2922
|
|
21
|
-
codex_autorunner/agents/opencode/client.py,sha256=LC2VGtRugyvkAiwXCH6Caimprrphvl1C0iCVyxyz95c,19367
|
|
22
|
-
codex_autorunner/agents/opencode/events.py,sha256=c0OxtbfYtmYRwMyt4UOgRiAmunfT76huXBDQuybB0jg,1828
|
|
23
|
-
codex_autorunner/agents/opencode/harness.py,sha256=0tfFWVZH2ES1SMiVVacVk3c1PGnKANvvkfL8tE8uqlA,10596
|
|
24
|
-
codex_autorunner/agents/opencode/logging.py,sha256=pbIS4xG84fkLrdNKiX2Y4zMTqj-ADzXOCNNPlnw1-z0,8423
|
|
25
|
-
codex_autorunner/agents/opencode/run_prompt.py,sha256=b4sZcuRgyHrM2jouEGZGeCw-nOwqUFX6OPy92e64kJ4,8656
|
|
26
|
-
codex_autorunner/agents/opencode/runtime.py,sha256=0LxLtDUNnOy_z9MhWajQewhuGJEdD-fdB0uBEtZgwRE,62228
|
|
27
|
-
codex_autorunner/agents/opencode/supervisor.py,sha256=rtaY2HqUKd9xa2anHRCv0Xs84SPbQ9equtli8uUYa_4,18427
|
|
28
|
-
codex_autorunner/core/__init__.py,sha256=Y_gMb4qRh0IPcHermkvGuBa0chW31hqCTZ_M_hJ901c,31
|
|
29
|
-
codex_autorunner/core/about_car.py,sha256=8eGelUx1x3H7JgMN54an5fM05ISXkLVpjZevkEE1saE,5130
|
|
30
|
-
codex_autorunner/core/adapter_utils.py,sha256=o1AUZVhyQTMF-DaaWNVINnXJ_8HAyjaj6mqfDABYW9Q,728
|
|
31
|
-
codex_autorunner/core/app_server_events.py,sha256=1x-ddiRo5kyFRYbFdzOe6vcgx4dCzdh18_SqGQiKIPI,6856
|
|
32
|
-
codex_autorunner/core/app_server_logging.py,sha256=bXmc03VfpBRX0_WYW6QYJ7XLWpd-hnkJB_EnSr1WFOY,7792
|
|
33
|
-
codex_autorunner/core/app_server_prompts.py,sha256=Sjx22i7bxb8qFBBvkcFgyvHLEqFbz3IuGKTALRzsfjo,4222
|
|
34
|
-
codex_autorunner/core/app_server_threads.py,sha256=S5uoeWtb7M1h6Gb8U1oCvB5uRFKOb65pKUiYrkwx8nc,6122
|
|
35
|
-
codex_autorunner/core/circuit_breaker.py,sha256=DL8lUrZPluzvNHgCMDUJjWuYytgmVzhL30va8M3TPQ4,6205
|
|
36
|
-
codex_autorunner/core/codex_runner.py,sha256=-92FMYPQxUkZ6_XFkVPycblrZqFcwe4htL4i-bB8J90,3355
|
|
37
|
-
codex_autorunner/core/config.py,sha256=sCifsNFH2x9IdDuj8BvlKP1-VIdC1EwQlQmrSSTT0HM,101828
|
|
38
|
-
codex_autorunner/core/docs.py,sha256=K-L7E4QQEvLROnJypfNtjHhnOz7Dl8guLhmYdwTj2l8,3741
|
|
39
|
-
codex_autorunner/core/drafts.py,sha256=oM2D_Gb4CO9l2fGZcg1xK0uVClV9GGPh5EfuYybMnKU,2364
|
|
40
|
-
codex_autorunner/core/engine.py,sha256=JutfI6wI0hBanc5j4Wqp5QJfF-dCL-dXXRVLgeJWGiE,103338
|
|
41
|
-
codex_autorunner/core/exceptions.py,sha256=O1LmgvG5t70YODubg4t0xQq-JT1gyDJtnfYvNiEYfLE,1555
|
|
42
|
-
codex_autorunner/core/git_utils.py,sha256=vLINnfCNYaZyCzJFlkn5wasTZsfAfNOM5momEIcC46M,6633
|
|
43
|
-
codex_autorunner/core/hub.py,sha256=3dtlKh7dvLpEO2R9ZlTpxb1gm2msJPcs-wtiflNz_Fw,34091
|
|
44
|
-
codex_autorunner/core/injected_context.py,sha256=HQ1VTO7E0TccBkRMQM3f0ihiGS4FNM-aCW35QX7_CXs,301
|
|
45
|
-
codex_autorunner/core/locks.py,sha256=MWPGf7-4QTcQass9O5M7OlI1pHAqomep3-7pr3aA8qU,8324
|
|
46
|
-
codex_autorunner/core/logging_utils.py,sha256=fQ9rIshtE-S02-xcFJOUOAXFTrFIcv_TkHzBXU4fxHs,5063
|
|
47
|
-
codex_autorunner/core/notifications.py,sha256=Bx-2E01vKyhxODwx2dFnmv7ns2NPKG1irdguGYx9AXU,17556
|
|
48
|
-
codex_autorunner/core/optional_dependencies.py,sha256=sBuSnQrRhV6_JA2tVLlVnDBsED79kY81cOyWcRiynUM,1271
|
|
49
|
-
codex_autorunner/core/patch_utils.py,sha256=H5IPB5X4EJmXw7dNV3hj6m-vV2yXNY4PMuvq12msV7o,7635
|
|
50
|
-
codex_autorunner/core/path_utils.py,sha256=MjFTnTC-GuwR4-QS6fBJuvuicSi2E-G3Jt7KWjaFffc,3450
|
|
51
|
-
codex_autorunner/core/prompt.py,sha256=se4ziQ76LssiRJvSuNFbaIdf5UAX0wejmMVtO7k1So8,2898
|
|
52
|
-
codex_autorunner/core/prompts.py,sha256=LBab4SjAaAfWmWKSPkSGaCy5dWsnZr36lM3y8uFuGz4,8919
|
|
53
|
-
codex_autorunner/core/redaction.py,sha256=VkGJS2JTCYrWcTieb-iw994SM_mcBXC3toqwvH8VG2o,842
|
|
54
|
-
codex_autorunner/core/request_context.py,sha256=FVQtn67zJffRET9TBy48jk23ZonAjONOeFwZiizyfxc,997
|
|
55
|
-
codex_autorunner/core/retry.py,sha256=n31DM84oIW0PwWPipNd5TH2H6H5ej8I2JxikfX-FIQs,1725
|
|
56
|
-
codex_autorunner/core/review.py,sha256=au5Vr4hTtjHGRbXQxBbLCjQ52vqz-f9zjOIGpUKAeik,30878
|
|
57
|
-
codex_autorunner/core/review_context.py,sha256=DaepmVJ-qVx77FrXEkTMyDMF1uIAVT7HccDUXlk7iNU,5033
|
|
58
|
-
codex_autorunner/core/run_index.py,sha256=feOG5JNtJoqH57vfRuIeVtb111zokgpDsHMj3cgz4TE,7794
|
|
59
|
-
codex_autorunner/core/runner_controller.py,sha256=0QfocgTIZUQ4HbUhJLtVZRyT0vxyAzdHkttG0C94w2k,7404
|
|
60
|
-
codex_autorunner/core/runner_process.py,sha256=G_O_kzo6sv_oWl0FuCzUXW28kZGXh7OdZOBWBKR5kBk,1503
|
|
61
|
-
codex_autorunner/core/sqlite_utils.py,sha256=dA_2UGXoH-TNKPeJsqrIgbRtmTdETxr6FWPM5BZm9pU,754
|
|
62
|
-
codex_autorunner/core/state.py,sha256=-Adtoag43MDPFhv2rzI0doVCWNJxH5oVcHZKjUosQf8,14356
|
|
63
|
-
codex_autorunner/core/static_assets.py,sha256=jePQWRfLSiex0CcCvJgt-hQbt4bIk-aOz-a1ANEvXP0,1639
|
|
64
|
-
codex_autorunner/core/supervisor_utils.py,sha256=Cb20PgcJzRWVCrJZt3SkCocoijQOuOwkKzsIFEIaHYY,2060
|
|
65
|
-
codex_autorunner/core/text_delta_coalescer.py,sha256=Q1VVvWWJc7zg3RkPTIklA6ErpI74L_vQBfd5oPLkk9A,1063
|
|
66
|
-
codex_autorunner/core/update.py,sha256=KiA_pq9CFCOnV6yhe4NPSnrd_CUD0hYqcimZM1H1764,17865
|
|
67
|
-
codex_autorunner/core/update_runner.py,sha256=mimPqchmRD-Rv2TIX67Z-ShfH3ytzS_Lozw0m6IdBsc,1484
|
|
68
|
-
codex_autorunner/core/usage.py,sha256=3yS50fQz_v9zWD2Gr0NudAwZSEwXqO554jKsP1ZczYE,68698
|
|
69
|
-
codex_autorunner/core/utils.py,sha256=Lkf5giAp6kC1g2P6xdSFA2yp1k8gUpnJ89dX0hceR5w,8660
|
|
70
|
-
codex_autorunner/core/flows/__init__.py,sha256=AVQh2yts_kjo1zA91HwBc4uoMkfSRl8E_2b-gnxdvHM,503
|
|
71
|
-
codex_autorunner/core/flows/controller.py,sha256=QLXv0q0COyxvhF-nfB5M0Q952U0bdsPCuRXovh4GRsw,6019
|
|
72
|
-
codex_autorunner/core/flows/definition.py,sha256=5rkczvPA2dW0PdgSYQIFxu4ItUPu2Q9_8ATeZiKGEpY,2725
|
|
73
|
-
codex_autorunner/core/flows/models.py,sha256=YAnO_wcITBj_Eb1qqhKdE0xg3oJQLW6GrHlFmbEdsQQ,1948
|
|
74
|
-
codex_autorunner/core/flows/runtime.py,sha256=X8sVL61iO7A-YuKxTnqDctjomKAfaWIkxZyRYbORI1M,12217
|
|
75
|
-
codex_autorunner/core/flows/store.py,sha256=xIIX9b_jg28lZBvaX-K3-59htyuTVt5P9X0vk1FaJpA,15968
|
|
76
|
-
codex_autorunner/core/flows/transition.py,sha256=BdLp2MdiGuC79t1nys7DjJCQTItywy2HNkWg-0iBF1o,4362
|
|
77
|
-
codex_autorunner/core/flows/worker_process.py,sha256=C5Y-1Q8jNfW2sg-9FYIpuBDc_MF-FQ8I9ltNc9oaduE,6741
|
|
78
|
-
codex_autorunner/flows/ticket_flow/__init__.py,sha256=bSji9VcWwd_Ow6hdBlLOlpvoEcieEwcfswJ0DI-SWPA,97
|
|
79
|
-
codex_autorunner/flows/ticket_flow/definition.py,sha256=r0d42uZXGf9NTi0ASBLA9Hidywm0xT_ZG0x3atRim-8,3693
|
|
80
|
-
codex_autorunner/integrations/__init__.py,sha256=_6PZ2Hq6DzApW4d0rrmJY05vftGmHXpHe9SOxq0J2hM,28
|
|
81
|
-
codex_autorunner/integrations/agents/__init__.py,sha256=aSj5cU2TX6HF4BTNIfLE0p_ZGmJqAs0nF17kPxKc9bc,547
|
|
82
|
-
codex_autorunner/integrations/agents/agent_backend.py,sha256=O4jMqvZ0QuEn1lPbHTPWIMAtUkZ4VtcJZiphd_LcvnU,4330
|
|
83
|
-
codex_autorunner/integrations/agents/codex_backend.py,sha256=VC6kL168mh5T9OIrdWsMcub6lSWJJz5vZHPcvV2gEAA,11015
|
|
84
|
-
codex_autorunner/integrations/agents/opencode_backend.py,sha256=gBSpmrg2bAjKSbFc0mZY61iSODDmguKjmngkyYeZPpU,11713
|
|
85
|
-
codex_autorunner/integrations/agents/run_event.py,sha256=b0V_WWwDgoZkt3W9xqkaL4zWS08A5XNob3LGIuEIpWw,1114
|
|
86
|
-
codex_autorunner/integrations/app_server/__init__.py,sha256=Ro2hRhH9wzxQJThz1Kyo-SADxCFtyF2ZfhHNureykGk,201
|
|
87
|
-
codex_autorunner/integrations/app_server/client.py,sha256=KtiZq8_gQIGl26EtDQ6Ewj7BdOOOeHe5krCYGLnuNmI,72508
|
|
88
|
-
codex_autorunner/integrations/app_server/env.py,sha256=nQ44YN_Q1dyAZx0DJAimXbRx9SvlLXP5NZWV53cmj9s,3372
|
|
89
|
-
codex_autorunner/integrations/app_server/supervisor.py,sha256=7VAXeyufWRkqHrcaV4JFDknqboE7K3RosU14CFzUhl8,9659
|
|
90
|
-
codex_autorunner/integrations/github/__init__.py,sha256=mLMQATB-B_LbgebPRCdWqUDS-cMxXfuALGh_RsWbWBk,224
|
|
91
|
-
codex_autorunner/integrations/github/service.py,sha256=484jkhg_lnDap0jMatspuMNn04cg7uVqAG2GctF17Co,39015
|
|
92
|
-
codex_autorunner/integrations/telegram/__init__.py,sha256=oAEE1Yb-7Ybgb79NLWqNErkSXOGBJDgcvlI7gfHlpDA,36
|
|
93
|
-
codex_autorunner/integrations/telegram/adapter.py,sha256=2EB8wKtFrmYVIZCM7Egqq8azPqg4Wq3jeo32E6NNTwE,55003
|
|
94
|
-
codex_autorunner/integrations/telegram/api_schemas.py,sha256=IXwB17Y4wL0lborU8HHssgNgOtHUJYLoMAcyb3Jv7_8,3402
|
|
95
|
-
codex_autorunner/integrations/telegram/commands_registry.py,sha256=C5T6KeTUq4DmhmSe9FwNRg_kNJWKcYB4hxthVu7MbAQ,3153
|
|
96
|
-
codex_autorunner/integrations/telegram/config.py,sha256=u74VLTt0v6LNjA6SHwaAvwVAktukowEOcPS7t0gM8ws,30165
|
|
97
|
-
codex_autorunner/integrations/telegram/constants.py,sha256=rYI6XjrE-YnosjBieQyvfIcwgRNGiWy3dKlSZya1Hf4,6735
|
|
98
|
-
codex_autorunner/integrations/telegram/dispatch.py,sha256=dgh95aYuvveqS7TGvbYHKbtT2RYFx1qGq7mGYyRY2xI,6916
|
|
99
|
-
codex_autorunner/integrations/telegram/doctor.py,sha256=nVAjDg56XE4UZbJVndTqZJLnUyfQ5Itfgv1xntEwFvA,1628
|
|
100
|
-
codex_autorunner/integrations/telegram/helpers.py,sha256=6dCiGguKus8CTr8XFJQpw8sgxhK7Xb-W28X4fKgxRfw,72611
|
|
101
|
-
codex_autorunner/integrations/telegram/notifications.py,sha256=XvUdRUq5gfD9JA30PclVLrDL5Azw0Sin8Oj0i1fcVx4,23430
|
|
102
|
-
codex_autorunner/integrations/telegram/outbox.py,sha256=U3qve8pTSRakeqMMWgWqkSvL1e7zoz_aWqhLNH2eZEk,13954
|
|
103
|
-
codex_autorunner/integrations/telegram/overflow.py,sha256=LUbPTwA2BxFV1w0sF1XAhIu_ft_eieSVYmjuftiVyO0,5384
|
|
104
|
-
codex_autorunner/integrations/telegram/progress_stream.py,sha256=jphPyvF1ka_ppEK66spAbcSDkEcNNXuJ2Y6p89VC4ks,7756
|
|
105
|
-
codex_autorunner/integrations/telegram/rendering.py,sha256=uBhymMUQuiKJJZ0ZxSl01sC4dYFVJqoIMMMFlm1XGZc,3531
|
|
106
|
-
codex_autorunner/integrations/telegram/retry.py,sha256=GIdMSSCVa2Sjd6-t2FC1O6AwPPSEM342rjjuI1Y7Tpk,1349
|
|
107
|
-
codex_autorunner/integrations/telegram/runtime.py,sha256=V9P93PDl_-DrunkYYheRmvCjqNaaTwhw0D127vb0XFw,10375
|
|
108
|
-
codex_autorunner/integrations/telegram/service.py,sha256=4igUsvAfCM_AsVy83-utcLvnDEQnXAPE6j29N6rkkkQ,57960
|
|
109
|
-
codex_autorunner/integrations/telegram/state.py,sha256=y4tvDseDwaYPuYJXQ9P782BqRilkwCltX7Gr2qc5DRM,83841
|
|
110
|
-
codex_autorunner/integrations/telegram/ticket_flow_bridge.py,sha256=T5supFcLRvi2AFPXMVj-mejoLvUT6qQVOfvfRdmmcVM,11515
|
|
111
|
-
codex_autorunner/integrations/telegram/transport.py,sha256=FOyGd0YJwOKptbPe6BcrmlNiz6D0e9q346FfVaf9nfA,14662
|
|
112
|
-
codex_autorunner/integrations/telegram/trigger_mode.py,sha256=bDGQUMUbnUNq4u25c-zmBUAOlFvnl5a8YyWgTN2Y8h8,1531
|
|
113
|
-
codex_autorunner/integrations/telegram/types.py,sha256=SjeVaus_YtWz-06GqkSWl99cHTdu0YKd5egdlYY3tMI,1707
|
|
114
|
-
codex_autorunner/integrations/telegram/voice.py,sha256=I3XD-Uc-egA2UVfby210-kCLhL_pBfekyaaGLf359Qs,14784
|
|
115
|
-
codex_autorunner/integrations/telegram/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
116
|
-
codex_autorunner/integrations/telegram/handlers/approvals.py,sha256=G8-FwRSyyBs9emb9eJjf4a0kD2rdqnFf25SldfHCKZ4,9365
|
|
117
|
-
codex_autorunner/integrations/telegram/handlers/callbacks.py,sha256=CzuF5aQ6CU7_q--EJMQ1T26HhP7MsSWKzbkv75ys-Gg,3471
|
|
118
|
-
codex_autorunner/integrations/telegram/handlers/commands_runtime.py,sha256=NQT57Xh6XVmbiJhFo_H9LSd8WkCqoHWZjPhcKTuHqd8,102158
|
|
119
|
-
codex_autorunner/integrations/telegram/handlers/commands_spec.py,sha256=1Tg4JpofkdU69Q4-FnWSYSP6AwpCDnlT5yhOsFGXNto,4994
|
|
120
|
-
codex_autorunner/integrations/telegram/handlers/messages.py,sha256=vfqQgWhnA8XSnJndxfiqwTd6vOpRa3-F62y0U5U5Hnk,31680
|
|
121
|
-
codex_autorunner/integrations/telegram/handlers/questions.py,sha256=GoOZzyYPqOt9jW4T27EzjNUOQrMgf3i3F6fJ6tWILzI,15570
|
|
122
|
-
codex_autorunner/integrations/telegram/handlers/selections.py,sha256=V0gRMc6n8aVtAhIW9QGIc3abqFN1d9UKdPli1jj3cdM,22685
|
|
123
|
-
codex_autorunner/integrations/telegram/handlers/utils.py,sha256=T2y-2p1SNduypiNz9uq4zqRIFq47z9Lop6_s3nhUzN8,5317
|
|
124
|
-
codex_autorunner/integrations/telegram/handlers/commands/__init__.py,sha256=NjxemJCRhWUDCP0nacsBfhXMYYUstVotgUhcISTaANU,812
|
|
125
|
-
codex_autorunner/integrations/telegram/handlers/commands/approvals.py,sha256=uQsGQtSPjXZ5FyNldvVsZDImEI-G-YOMUwhlnth2wlc,6632
|
|
126
|
-
codex_autorunner/integrations/telegram/handlers/commands/execution.py,sha256=BgHwY6efXY-x7QKxzGlTGyKBubKoBAygO7phLndg5JI,104903
|
|
127
|
-
codex_autorunner/integrations/telegram/handlers/commands/files.py,sha256=xghRc6jF8iZoYxnOZY1h9wO08vLf72JcIcvRetfGQOU,50701
|
|
128
|
-
codex_autorunner/integrations/telegram/handlers/commands/flows.py,sha256=WZuakvnP5cTpUcVRNeZvAwVPbtNQM91cRvbdhb5DxuI,8389
|
|
129
|
-
codex_autorunner/integrations/telegram/handlers/commands/formatting.py,sha256=WRJDe2jUtrGMFVsp2Hah1GDsfQUV0Dd0KLSbcrY0j0o,3139
|
|
130
|
-
codex_autorunner/integrations/telegram/handlers/commands/github.py,sha256=IKWKYttLqUei5NCzjIIqvGBcFpRBffdfvTwSMzPHzWo,68888
|
|
131
|
-
codex_autorunner/integrations/telegram/handlers/commands/shared.py,sha256=Lam8f76yQGkTBsr0QpawOBU_eIjch8C4NzW6ifSd0sQ,6581
|
|
132
|
-
codex_autorunner/integrations/telegram/handlers/commands/voice.py,sha256=y06N3ju4RjI1Y4r69Os-2BcR6erHjXyGOkoiLWepS0k,3955
|
|
133
|
-
codex_autorunner/integrations/telegram/handlers/commands/workspace.py,sha256=w8LYnUJ0XX4VNmN0jkpGgbksyilliOBNQg71qiA24CE,81418
|
|
134
|
-
codex_autorunner/routes/__init__.py,sha256=hkTODmIm0HmhF4BgbxnfW3KbGswV3PVNFZ3WGwba208,2872
|
|
135
|
-
codex_autorunner/routes/agents.py,sha256=1di_lDZyjsQ4y_zNL5Nms4VDbSbG7zrn_K1BOVfkvcU,5533
|
|
136
|
-
codex_autorunner/routes/analytics.py,sha256=6whYX8zeVtpBnc8a77GsnTw5QdNC1jhJ3KzuYqg-LU8,7847
|
|
137
|
-
codex_autorunner/routes/app_server.py,sha256=OUYVzKTObaWII4I9xXhwYYLdEJ_oiYJJoHoocs7LyVc,5349
|
|
138
|
-
codex_autorunner/routes/base.py,sha256=2xuVFbHxSvSfEgihNALOlHw4lIoK-7cp4u0lZNq3m80,26062
|
|
139
|
-
codex_autorunner/routes/file_chat.py,sha256=O6jRsJF4wwyKiwEctyq9XMkAg4bkis_SaLq5nCDx2yk,29815
|
|
140
|
-
codex_autorunner/routes/flows.py,sha256=1oARZQ0UCWyrdFNJoB0GrSuN7c9w3zRefr2ws2mIiG8,35190
|
|
141
|
-
codex_autorunner/routes/messages.py,sha256=erN5DK4c0rFFCOFlBDSX0ht3uI6WCBo96BMwvQJvo0s,16631
|
|
142
|
-
codex_autorunner/routes/repos.py,sha256=qE_ObzKYiJap5MJyFHSoTjYzB9DnWYPWB3QiWrpDwWo,7999
|
|
143
|
-
codex_autorunner/routes/review.py,sha256=K0g1YzEvi845QSCY8VxejZJ9mpmfOPTJ6LVWe_hBHBA,5519
|
|
144
|
-
codex_autorunner/routes/sessions.py,sha256=C1FzYVC3d6U5w5vpHksjwi-O5Rk-y_hYlX5dAMM7MGw,6537
|
|
145
|
-
codex_autorunner/routes/settings.py,sha256=f-le6apg8dtvebMs0EGgUXLWjN-gkxenr5Ahbrmoj2k,7349
|
|
146
|
-
codex_autorunner/routes/shared.py,sha256=_UEIQrfRSpxsVz47R8EzsknNDCg5-XrTbZUz_Ah7xg0,9155
|
|
147
|
-
codex_autorunner/routes/system.py,sha256=K-yFq1w4A0amKoHJ7fdDvGh_-ppkjwOPj7Xb36y2f6s,7573
|
|
148
|
-
codex_autorunner/routes/terminal_images.py,sha256=0wNAIHRcN_iIzeXuVN6nqe9E7OYEoQ6C84Tcx93r1XI,3299
|
|
149
|
-
codex_autorunner/routes/usage.py,sha256=EwP407sSI0wFpKITP9LJE9sub0QcXe2AViIC8BUhFPU,2667
|
|
150
|
-
codex_autorunner/routes/voice.py,sha256=s_eDNBc3AxjrC6cZ7IETtIb5ybkoQLCK4wjhJwDN_lc,4856
|
|
151
|
-
codex_autorunner/routes/workspace.py,sha256=5fqrt-5VpNidLZ9rxkAr3RH0jxy3EhU1DNFiSSVESo4,11256
|
|
152
|
-
codex_autorunner/static/agentControls.js,sha256=NzP6KZNM6DQmzD8-_E94dk6FIRMWZp_YoVFqB5pRJo4,11761
|
|
153
|
-
codex_autorunner/static/agentEvents.js,sha256=HAQHeKJnOqj6IkcBEM1ye5p6rcIjK9c9LZfBWKowonw,8188
|
|
154
|
-
codex_autorunner/static/app.js,sha256=tb3KBU4UunpIDqT6j18UqpH5WpqBOzLEEVq8LfBga34,3770
|
|
155
|
-
codex_autorunner/static/autoRefresh.js,sha256=mLTGffVPIEYCjfqh2ZWU_gAiiDQ3bxMb44CFDf3jLp4,6544
|
|
156
|
-
codex_autorunner/static/bootstrap.js,sha256=ZXzMfDMjiC5ReOrDbv9lqSBaTZQlM7eqEAJ4IKPhm5s,4833
|
|
157
|
-
codex_autorunner/static/bus.js,sha256=NXuNHd_43Irr-5Ood1LQ15rSwCTm5J_Pv9ybnkeGQM0,630
|
|
158
|
-
codex_autorunner/static/cache.js,sha256=idp3ISlRKjSK_eSRUmL_rWGI2qx7g-BJ1_48Mz6IWSw,1035
|
|
159
|
-
codex_autorunner/static/constants.js,sha256=TuLK0-_WKJVE5uJUeTl_CVtD5laEtTjtTnu0Uv2eIFw,1932
|
|
160
|
-
codex_autorunner/static/dashboard.js,sha256=PM7XxeKQQnJqDxDc572Oxu_muiXkyOmmVbfxAXc3csQ,28855
|
|
161
|
-
codex_autorunner/static/diffRenderer.js,sha256=AVeJ6yt8UBk6yQJWV6VCIsH9TIY5CYTCjNFD8uOWQ9U,1307
|
|
162
|
-
codex_autorunner/static/docChatCore.js,sha256=XJW4LzojwfMITuw0QictzDQBL3Pu_y8LM71r6Pr3USc,13540
|
|
163
|
-
codex_autorunner/static/docChatStorage.js,sha256=OgPiNgvPVVp0kJcCVy-ILjMSo5--keyrIleWacA-k6A,2104
|
|
164
|
-
codex_autorunner/static/docChatVoice.js,sha256=YrKIf0INTke3ge9uDHLl_Fd3wFcISGyjJlQU-iyhAlU,2419
|
|
165
|
-
codex_autorunner/static/docEditor.js,sha256=w2AqcQEGIkRut2xpRiFG4ndxccv0THoh3ZdwFw2YM6s,4580
|
|
166
|
-
codex_autorunner/static/env.js,sha256=3-XgQC03WqalAg_T8dabn47uSKS7lPM874OzV7ET5jU,1813
|
|
167
|
-
codex_autorunner/static/eventSummarizer.js,sha256=PuLdLS9MIVrp97W47iAlEf8TFLNTHCigT2clYCH2sZg,5425
|
|
168
|
-
codex_autorunner/static/fileChat.js,sha256=NDuXXD35fVK2qxwQ9e1fAXMfy2WhIsq-L8BzIlyKOHA,5838
|
|
169
|
-
codex_autorunner/static/health.js,sha256=nwB-Ofc96zTP6YLQDaIJfO7duLug9bj3CCe893M7x1I,5204
|
|
170
|
-
codex_autorunner/static/hub.js,sha256=mLbky3q-RJSJjGB1SRL-QyTIG9UP-mivtwqLhe47GlE,49620
|
|
171
|
-
codex_autorunner/static/index.html,sha256=F7028vr24lFe68idquwbgHJcnwBT1vMazNBiHtub338,47480
|
|
172
|
-
codex_autorunner/static/liveUpdates.js,sha256=SiVWPQRp-mqmmhRqOQWPFtMBLUA89J1KYvif88ZCMOk,1950
|
|
173
|
-
codex_autorunner/static/loader.js,sha256=2Xyg_D43sSsH3fmm93-utyPJJSQ7KpvebbhNrM79ljo,1065
|
|
174
|
-
codex_autorunner/static/messages.js,sha256=Of3c1uO2PqRnxFxzuXZhIa5u61sQPD4vxpCMQImtsXA,17301
|
|
175
|
-
codex_autorunner/static/mobileCompact.js,sha256=cDXLGeFLj5_knH-9qOXfbR5IXjCttyQ3-jclL4k1ouo,9473
|
|
176
|
-
codex_autorunner/static/settings.js,sha256=zfVrm6dCtv8Y6s5j205weAMAEH9kVaWs0l2DgY_SkuE,5518
|
|
177
|
-
codex_autorunner/static/styles.css,sha256=0waFQzATECyWIiiUWw8VUkUtHnBL-OSxmBrjd-XSShA,186419
|
|
178
|
-
codex_autorunner/static/tabs.js,sha256=xR6EosAkbETvRp9NtoqEqti2SrWMJHZ29R1VTCiVCCA,2167
|
|
179
|
-
codex_autorunner/static/terminal.js,sha256=x86-_WgSgAKgQrQ4jGCTM6T-nXcsGDPyRk271MYxTeg,973
|
|
180
|
-
codex_autorunner/static/terminalManager.js,sha256=_KqMvFqCq3t5St_Bxl7pC8w9KAvOth9InT56hUSnZxc,139493
|
|
181
|
-
codex_autorunner/static/ticketChatActions.js,sha256=dH0h7CdCbEHr94aUQI-jxkLLoXw6_eoNeNhpcOWR0Ck,11862
|
|
182
|
-
codex_autorunner/static/ticketChatEvents.js,sha256=9Y1CA4t--bxqXRHrsE4O4Dx5Td9KAFAAZwLXXj_y1yM,536
|
|
183
|
-
codex_autorunner/static/ticketChatStorage.js,sha256=lEg2zKJfEA34ZS0azwCmGPW8CPpX3wqCmyNcCafP9Yw,621
|
|
184
|
-
codex_autorunner/static/ticketChatStream.js,sha256=yotrAXNI4FXbJFGuiLgVcYXDs3KU4GaNmQdwrECGPrk,9432
|
|
185
|
-
codex_autorunner/static/ticketEditor.js,sha256=3-URyHIi34aDecSBZUlwN5Y-s4wfbQjlOfAEP0O1Ye4,26710
|
|
186
|
-
codex_autorunner/static/ticketVoice.js,sha256=CVRumgn6kc9uwEqvRxh5bdHx4C1DTOv-SEP_fJgeLxM,320
|
|
187
|
-
codex_autorunner/static/tickets.js,sha256=U_-CA7r9zVDMbeuaOWBuY9fAbZqXf83DV5ME6orYMug,50035
|
|
188
|
-
codex_autorunner/static/utils.js,sha256=4geWosNqyTXK1mqP1WyoFJwueCZCy8HhIeayfmTY8io,22033
|
|
189
|
-
codex_autorunner/static/voice.js,sha256=QfQvDQK-AkyO1nNtYxq04dKolfyWHiLHG5uihGV9hpU,20209
|
|
190
|
-
codex_autorunner/static/workspace.js,sha256=ZMJK4TQLfuAz47tyRZvW7s6TGtdVEF0h4Xvft2unGrs,26325
|
|
191
|
-
codex_autorunner/static/workspaceApi.js,sha256=kZ79wHLBocaoFQwMN09XoQ8HM2rBKucqa_NQx5FPOlM,2015
|
|
192
|
-
codex_autorunner/static/workspaceFileBrowser.js,sha256=T-JP8rC2qHUGUN3LvbTN7bjPf_aZm-IlfXa_WmavuvU,20758
|
|
193
|
-
codex_autorunner/static/vendor/LICENSE.xterm,sha256=R1kKvILKKMOnUg07hzusejoAsCy8Mik-HxQdzNJpgIc,1186
|
|
194
|
-
codex_autorunner/static/vendor/xterm-addon-fit.js,sha256=EPMZTF8XwXhvt9XbhlweyFObZzajGAY_04var3xGhI8,1503
|
|
195
|
-
codex_autorunner/static/vendor/xterm.css,sha256=gy8_LGA7Q61DUf8ElwFQzHqHMBQnbbEmpgZcbdgeSHI,5383
|
|
196
|
-
codex_autorunner/static/vendor/xterm.js,sha256=8K6g919IVZATrmZDwked1zfSbaQtVSTm0rcJFa5lI8c,283404
|
|
197
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-400-cyrillic-ext.woff2,sha256=k0PeLKXZVJ95LnliN1r477DzIMdkO_02yIS1ow5cOW8,1664
|
|
198
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-400-cyrillic.woff2,sha256=SZWppDrGWewy_Ni0Y3Vc1qB7Mabms4lKahU7Zhz0kOI,8892
|
|
199
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-400-greek.woff2,sha256=ScPabJorJ5sPH4YPXPsfXcONiKXHvpybGDe7xOPbYRE,6800
|
|
200
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-400-latin-ext.woff2,sha256=nDjLLQ0tk8HubiH6eNt28T6n4V4VzGQhTHyom2qqNcQ,11596
|
|
201
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-400-latin.woff2,sha256=LDK5s-41jBGeIQ9vUZX5vTSJTXinhf8uldYOcY5ACvQ,31340
|
|
202
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-400-vietnamese.woff2,sha256=1E6xk2BDpWA46wLdcLJD83m-9leD-U7BLyd1UHIEEfE,5872
|
|
203
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-500-cyrillic-ext.woff2,sha256=k0PeLKXZVJ95LnliN1r477DzIMdkO_02yIS1ow5cOW8,1664
|
|
204
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-500-cyrillic.woff2,sha256=SZWppDrGWewy_Ni0Y3Vc1qB7Mabms4lKahU7Zhz0kOI,8892
|
|
205
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-500-greek.woff2,sha256=ScPabJorJ5sPH4YPXPsfXcONiKXHvpybGDe7xOPbYRE,6800
|
|
206
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-500-latin-ext.woff2,sha256=nDjLLQ0tk8HubiH6eNt28T6n4V4VzGQhTHyom2qqNcQ,11596
|
|
207
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-500-latin.woff2,sha256=LDK5s-41jBGeIQ9vUZX5vTSJTXinhf8uldYOcY5ACvQ,31340
|
|
208
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-500-vietnamese.woff2,sha256=1E6xk2BDpWA46wLdcLJD83m-9leD-U7BLyd1UHIEEfE,5872
|
|
209
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-600-cyrillic-ext.woff2,sha256=k0PeLKXZVJ95LnliN1r477DzIMdkO_02yIS1ow5cOW8,1664
|
|
210
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-600-cyrillic.woff2,sha256=SZWppDrGWewy_Ni0Y3Vc1qB7Mabms4lKahU7Zhz0kOI,8892
|
|
211
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-600-greek.woff2,sha256=ScPabJorJ5sPH4YPXPsfXcONiKXHvpybGDe7xOPbYRE,6800
|
|
212
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-600-latin-ext.woff2,sha256=nDjLLQ0tk8HubiH6eNt28T6n4V4VzGQhTHyom2qqNcQ,11596
|
|
213
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-600-latin.woff2,sha256=LDK5s-41jBGeIQ9vUZX5vTSJTXinhf8uldYOcY5ACvQ,31340
|
|
214
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/JetBrainsMono-600-vietnamese.woff2,sha256=1E6xk2BDpWA46wLdcLJD83m-9leD-U7BLyd1UHIEEfE,5872
|
|
215
|
-
codex_autorunner/static/vendor/fonts/jetbrains-mono/OFL.txt,sha256=p2q_ACxJCX0UboZ0CjEFpdAEULFZLoIKEQmoxWgM1pc,4399
|
|
216
|
-
codex_autorunner/tickets/__init__.py,sha256=NgZhIGivZN8BzGJL4rW-OWgBOf8TvWXJblxs-M5iRSM,526
|
|
217
|
-
codex_autorunner/tickets/agent_pool.py,sha256=vpCQSb0UbkLSBxZWGOEvsCLwwgxNlqxKAzqlIG6S2nk,15115
|
|
218
|
-
codex_autorunner/tickets/files.py,sha256=eNWXZ-PoqyLj4QmJte7LzupH1aPIz-RwXRDRSgb5fsc,2435
|
|
219
|
-
codex_autorunner/tickets/frontmatter.py,sha256=zsv6Y-csjpL_jtzNPk3d34oOqrg-6EjnAlN98BEtF_g,1547
|
|
220
|
-
codex_autorunner/tickets/lint.py,sha256=6vKPWMqbBvJ0fPJqBZGWo0aIsoYckceMjdVIzREUxMI,2873
|
|
221
|
-
codex_autorunner/tickets/models.py,sha256=J6Ssmhgg6BqyIFkEnJo2nseUcQdNRgYV0dmxLTdp0bM,2653
|
|
222
|
-
codex_autorunner/tickets/outbox.py,sha256=IpaNcd3YNCX48pp_5KqyMbSHrWBgvPk7TZ7lvdP6l80,6594
|
|
223
|
-
codex_autorunner/tickets/replies.py,sha256=R_eeg55s8dQ4VBcIpjPI1up4jCQvG8l_c0uV4LUa5Gs,4841
|
|
224
|
-
codex_autorunner/tickets/runner.py,sha256=ScapnU-tAy8YHYIZe1waXdU2xGsQYrXJ0B4W1HJVtZQ,32872
|
|
225
|
-
codex_autorunner/tickets/spec_ingest.py,sha256=PmCYdGFeKVN6C9tae3j1zt8WXvISunlFpVHimycaMpo,2507
|
|
226
|
-
codex_autorunner/voice/__init__.py,sha256=Z2ziy5TP4NCgNi4xld1FfRIbSJL9hpgkggYhbEtGOgQ,991
|
|
227
|
-
codex_autorunner/voice/capture.py,sha256=UzvQvu3KaKpL4RoyXT-mq24uohAXvHIZ8vi6wObEJgQ,11435
|
|
228
|
-
codex_autorunner/voice/config.py,sha256=BZAq90KS6aLLFto653a-PYj8Aq6b5Ty_UBBFhcrzvw0,6285
|
|
229
|
-
codex_autorunner/voice/provider.py,sha256=zvNVuvsrZfM4bj3N2xzEgTtQ78YGWcdjUW9fJK6Ziog,1750
|
|
230
|
-
codex_autorunner/voice/resolver.py,sha256=EC1AtmIrwRQBQE_hwreLgKhUtvzZ9Tg5vu8_MNIXES4,1130
|
|
231
|
-
codex_autorunner/voice/service.py,sha256=_kVyuB_3928BbGHrAqF28N_nCfKPLB6K9ilG79wyzl0,9052
|
|
232
|
-
codex_autorunner/voice/providers/__init__.py,sha256=L37XCpAHluK83m62y0_I0KGkiCdu1Keml02gS_g2Brc,200
|
|
233
|
-
codex_autorunner/voice/providers/openai_whisper.py,sha256=HCK_GMmYFoZ4EcneGsjr4_P9JzblRO8AOguVD5pOcLk,11973
|
|
234
|
-
codex_autorunner/web/__init__.py,sha256=fDDDTYL26__wwaWd7xtI6axymkOgYntcrlHeHptDb8I,29
|
|
235
|
-
codex_autorunner/web/app.py,sha256=q4a3ShXLunmMWdBqe8q2bSVi6n_OqooTt5JTEhJSzvg,76548
|
|
236
|
-
codex_autorunner/web/hub_jobs.py,sha256=rx4r2qFOyEwzctnabRtU1hrOwp8ETPNjarryNTE1aFg,6057
|
|
237
|
-
codex_autorunner/web/middleware.py,sha256=qSKNejOjJIX0DBj7ZOsc3l6lDY4VG14AGH79Szu9m5A,21452
|
|
238
|
-
codex_autorunner/web/pty_session.py,sha256=K1_hJFYy-xh90o1hDezmsC3euP7ifsgHMzAg1E9HZA8,12791
|
|
239
|
-
codex_autorunner/web/runner_manager.py,sha256=QCaypoNH0445bcNggpdNP-RrM0KEyxpK-LSl3AdyS64,646
|
|
240
|
-
codex_autorunner/web/schemas.py,sha256=2ZUxk4Ln0cbS0UGzYLb77W_nL4N2O8czZQl9T37cpmU,8421
|
|
241
|
-
codex_autorunner/web/static_assets.py,sha256=RL0M7HzW2_HlPXqZZV7cpVIKe6wqzsGSZS-0ECO8KIs,13893
|
|
242
|
-
codex_autorunner/web/static_refresh.py,sha256=PdJHcTJGP0cHr1FffhbIbyL6GQe_cv3jzSy4gHuDQOw,3144
|
|
243
|
-
codex_autorunner/web/terminal_sessions.py,sha256=JHS_YsWpdQSXKIrbbkPOgugj2EdpG4RP2jl2nLizTZc,2650
|
|
244
|
-
codex_autorunner/workspace/__init__.py,sha256=yTql6_7BVZG0tirPMhbmMEVkk_j7Q8Wvb89eIZ0K7o8,977
|
|
245
|
-
codex_autorunner/workspace/paths.py,sha256=wm7r8s1fMTTRuk_CZbglTz9R1JBPwV0NEjRvgQTfVxk,10486
|
|
246
|
-
codex_autorunner-1.0.0.dist-info/licenses/LICENSE,sha256=gfYghezUeimFKy0hTmkOiAAwBY_QdRSXDTypbMtZU0k,1068
|
|
247
|
-
codex_autorunner-1.0.0.dist-info/METADATA,sha256=XbQGyWC35MUjLKquX7Hdy7MUCpAFY5ERcoSN1ea9N6c,14574
|
|
248
|
-
codex_autorunner-1.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
249
|
-
codex_autorunner-1.0.0.dist-info/entry_points.txt,sha256=iPTzENG1MGBhxWF4x8W7VWk3iq4XurmGXMnIch7AVTs,93
|
|
250
|
-
codex_autorunner-1.0.0.dist-info/top_level.txt,sha256=fc2h9rEENr-ZdyLemPJbMcWmsWlz4JuyD1UOkPLLVSQ,17
|
|
251
|
-
codex_autorunner-1.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|