codex-autorunner 0.1.2__py3-none-any.whl → 1.1.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.
Files changed (276) hide show
  1. codex_autorunner/__init__.py +12 -1
  2. codex_autorunner/__main__.py +4 -0
  3. codex_autorunner/agents/codex/harness.py +1 -1
  4. codex_autorunner/agents/opencode/client.py +68 -35
  5. codex_autorunner/agents/opencode/constants.py +3 -0
  6. codex_autorunner/agents/opencode/harness.py +6 -1
  7. codex_autorunner/agents/opencode/logging.py +21 -5
  8. codex_autorunner/agents/opencode/run_prompt.py +1 -0
  9. codex_autorunner/agents/opencode/runtime.py +176 -47
  10. codex_autorunner/agents/opencode/supervisor.py +36 -48
  11. codex_autorunner/agents/registry.py +155 -8
  12. codex_autorunner/api.py +25 -0
  13. codex_autorunner/bootstrap.py +22 -37
  14. codex_autorunner/cli.py +5 -1156
  15. codex_autorunner/codex_cli.py +20 -84
  16. codex_autorunner/core/__init__.py +4 -0
  17. codex_autorunner/core/about_car.py +49 -32
  18. codex_autorunner/core/adapter_utils.py +21 -0
  19. codex_autorunner/core/app_server_ids.py +59 -0
  20. codex_autorunner/core/app_server_logging.py +7 -3
  21. codex_autorunner/core/app_server_prompts.py +27 -260
  22. codex_autorunner/core/app_server_threads.py +26 -28
  23. codex_autorunner/core/app_server_utils.py +165 -0
  24. codex_autorunner/core/archive.py +349 -0
  25. codex_autorunner/core/codex_runner.py +12 -2
  26. codex_autorunner/core/config.py +587 -103
  27. codex_autorunner/core/docs.py +10 -2
  28. codex_autorunner/core/drafts.py +136 -0
  29. codex_autorunner/core/engine.py +1531 -866
  30. codex_autorunner/core/exceptions.py +4 -0
  31. codex_autorunner/core/flows/__init__.py +25 -0
  32. codex_autorunner/core/flows/controller.py +202 -0
  33. codex_autorunner/core/flows/definition.py +82 -0
  34. codex_autorunner/core/flows/models.py +88 -0
  35. codex_autorunner/core/flows/reasons.py +52 -0
  36. codex_autorunner/core/flows/reconciler.py +131 -0
  37. codex_autorunner/core/flows/runtime.py +382 -0
  38. codex_autorunner/core/flows/store.py +568 -0
  39. codex_autorunner/core/flows/transition.py +138 -0
  40. codex_autorunner/core/flows/ux_helpers.py +257 -0
  41. codex_autorunner/core/flows/worker_process.py +242 -0
  42. codex_autorunner/core/git_utils.py +62 -0
  43. codex_autorunner/core/hub.py +136 -16
  44. codex_autorunner/core/locks.py +4 -0
  45. codex_autorunner/core/notifications.py +14 -2
  46. codex_autorunner/core/ports/__init__.py +28 -0
  47. codex_autorunner/core/ports/agent_backend.py +150 -0
  48. codex_autorunner/core/ports/backend_orchestrator.py +41 -0
  49. codex_autorunner/core/ports/run_event.py +91 -0
  50. codex_autorunner/core/prompt.py +15 -7
  51. codex_autorunner/core/redaction.py +29 -0
  52. codex_autorunner/core/review_context.py +5 -8
  53. codex_autorunner/core/run_index.py +6 -0
  54. codex_autorunner/core/runner_process.py +5 -2
  55. codex_autorunner/core/state.py +0 -88
  56. codex_autorunner/core/state_roots.py +57 -0
  57. codex_autorunner/core/supervisor_protocol.py +15 -0
  58. codex_autorunner/core/supervisor_utils.py +67 -0
  59. codex_autorunner/core/text_delta_coalescer.py +54 -0
  60. codex_autorunner/core/ticket_linter_cli.py +201 -0
  61. codex_autorunner/core/ticket_manager_cli.py +432 -0
  62. codex_autorunner/core/update.py +24 -16
  63. codex_autorunner/core/update_paths.py +28 -0
  64. codex_autorunner/core/update_runner.py +2 -0
  65. codex_autorunner/core/usage.py +164 -12
  66. codex_autorunner/core/utils.py +120 -11
  67. codex_autorunner/discovery.py +2 -4
  68. codex_autorunner/flows/review/__init__.py +17 -0
  69. codex_autorunner/{core/review.py → flows/review/service.py} +15 -10
  70. codex_autorunner/flows/ticket_flow/__init__.py +3 -0
  71. codex_autorunner/flows/ticket_flow/definition.py +98 -0
  72. codex_autorunner/integrations/agents/__init__.py +17 -0
  73. codex_autorunner/integrations/agents/backend_orchestrator.py +284 -0
  74. codex_autorunner/integrations/agents/codex_adapter.py +90 -0
  75. codex_autorunner/integrations/agents/codex_backend.py +448 -0
  76. codex_autorunner/integrations/agents/opencode_adapter.py +108 -0
  77. codex_autorunner/integrations/agents/opencode_backend.py +598 -0
  78. codex_autorunner/integrations/agents/runner.py +91 -0
  79. codex_autorunner/integrations/agents/wiring.py +271 -0
  80. codex_autorunner/integrations/app_server/client.py +583 -152
  81. codex_autorunner/integrations/app_server/env.py +2 -107
  82. codex_autorunner/{core/app_server_events.py → integrations/app_server/event_buffer.py} +15 -8
  83. codex_autorunner/integrations/app_server/supervisor.py +59 -33
  84. codex_autorunner/integrations/telegram/adapter.py +204 -165
  85. codex_autorunner/integrations/telegram/api_schemas.py +120 -0
  86. codex_autorunner/integrations/telegram/config.py +221 -0
  87. codex_autorunner/integrations/telegram/constants.py +17 -2
  88. codex_autorunner/integrations/telegram/dispatch.py +17 -0
  89. codex_autorunner/integrations/telegram/doctor.py +47 -0
  90. codex_autorunner/integrations/telegram/handlers/callbacks.py +7 -4
  91. codex_autorunner/integrations/telegram/handlers/commands/__init__.py +2 -0
  92. codex_autorunner/integrations/telegram/handlers/commands/execution.py +53 -57
  93. codex_autorunner/integrations/telegram/handlers/commands/files.py +2 -6
  94. codex_autorunner/integrations/telegram/handlers/commands/flows.py +1364 -0
  95. codex_autorunner/integrations/telegram/handlers/commands/formatting.py +1 -1
  96. codex_autorunner/integrations/telegram/handlers/commands/github.py +41 -582
  97. codex_autorunner/integrations/telegram/handlers/commands/workspace.py +8 -8
  98. codex_autorunner/integrations/telegram/handlers/commands_runtime.py +137 -478
  99. codex_autorunner/integrations/telegram/handlers/commands_spec.py +17 -4
  100. codex_autorunner/integrations/telegram/handlers/messages.py +121 -9
  101. codex_autorunner/integrations/telegram/handlers/selections.py +61 -1
  102. codex_autorunner/integrations/telegram/helpers.py +111 -16
  103. codex_autorunner/integrations/telegram/outbox.py +208 -37
  104. codex_autorunner/integrations/telegram/progress_stream.py +3 -10
  105. codex_autorunner/integrations/telegram/service.py +221 -42
  106. codex_autorunner/integrations/telegram/state.py +100 -2
  107. codex_autorunner/integrations/telegram/ticket_flow_bridge.py +611 -0
  108. codex_autorunner/integrations/telegram/transport.py +39 -4
  109. codex_autorunner/integrations/telegram/trigger_mode.py +53 -0
  110. codex_autorunner/manifest.py +2 -0
  111. codex_autorunner/plugin_api.py +22 -0
  112. codex_autorunner/routes/__init__.py +37 -67
  113. codex_autorunner/routes/agents.py +2 -137
  114. codex_autorunner/routes/analytics.py +3 -0
  115. codex_autorunner/routes/app_server.py +2 -131
  116. codex_autorunner/routes/base.py +2 -624
  117. codex_autorunner/routes/file_chat.py +7 -0
  118. codex_autorunner/routes/flows.py +7 -0
  119. codex_autorunner/routes/messages.py +7 -0
  120. codex_autorunner/routes/repos.py +2 -196
  121. codex_autorunner/routes/review.py +2 -147
  122. codex_autorunner/routes/sessions.py +2 -175
  123. codex_autorunner/routes/settings.py +2 -168
  124. codex_autorunner/routes/shared.py +2 -275
  125. codex_autorunner/routes/system.py +4 -188
  126. codex_autorunner/routes/usage.py +3 -0
  127. codex_autorunner/routes/voice.py +2 -119
  128. codex_autorunner/routes/workspace.py +3 -0
  129. codex_autorunner/server.py +3 -2
  130. codex_autorunner/static/agentControls.js +41 -11
  131. codex_autorunner/static/agentEvents.js +248 -0
  132. codex_autorunner/static/app.js +35 -24
  133. codex_autorunner/static/archive.js +826 -0
  134. codex_autorunner/static/archiveApi.js +37 -0
  135. codex_autorunner/static/autoRefresh.js +36 -8
  136. codex_autorunner/static/bootstrap.js +1 -0
  137. codex_autorunner/static/bus.js +1 -0
  138. codex_autorunner/static/cache.js +1 -0
  139. codex_autorunner/static/constants.js +20 -4
  140. codex_autorunner/static/dashboard.js +344 -325
  141. codex_autorunner/static/diffRenderer.js +37 -0
  142. codex_autorunner/static/docChatCore.js +324 -0
  143. codex_autorunner/static/docChatStorage.js +65 -0
  144. codex_autorunner/static/docChatVoice.js +65 -0
  145. codex_autorunner/static/docEditor.js +133 -0
  146. codex_autorunner/static/env.js +1 -0
  147. codex_autorunner/static/eventSummarizer.js +166 -0
  148. codex_autorunner/static/fileChat.js +182 -0
  149. codex_autorunner/static/health.js +155 -0
  150. codex_autorunner/static/hub.js +126 -185
  151. codex_autorunner/static/index.html +839 -863
  152. codex_autorunner/static/liveUpdates.js +1 -0
  153. codex_autorunner/static/loader.js +1 -0
  154. codex_autorunner/static/messages.js +873 -0
  155. codex_autorunner/static/mobileCompact.js +2 -1
  156. codex_autorunner/static/preserve.js +17 -0
  157. codex_autorunner/static/settings.js +149 -217
  158. codex_autorunner/static/smartRefresh.js +52 -0
  159. codex_autorunner/static/styles.css +8850 -3876
  160. codex_autorunner/static/tabs.js +175 -11
  161. codex_autorunner/static/terminal.js +32 -0
  162. codex_autorunner/static/terminalManager.js +34 -59
  163. codex_autorunner/static/ticketChatActions.js +333 -0
  164. codex_autorunner/static/ticketChatEvents.js +16 -0
  165. codex_autorunner/static/ticketChatStorage.js +16 -0
  166. codex_autorunner/static/ticketChatStream.js +264 -0
  167. codex_autorunner/static/ticketEditor.js +844 -0
  168. codex_autorunner/static/ticketVoice.js +9 -0
  169. codex_autorunner/static/tickets.js +1988 -0
  170. codex_autorunner/static/utils.js +43 -3
  171. codex_autorunner/static/voice.js +1 -0
  172. codex_autorunner/static/workspace.js +765 -0
  173. codex_autorunner/static/workspaceApi.js +53 -0
  174. codex_autorunner/static/workspaceFileBrowser.js +504 -0
  175. codex_autorunner/surfaces/__init__.py +5 -0
  176. codex_autorunner/surfaces/cli/__init__.py +6 -0
  177. codex_autorunner/surfaces/cli/cli.py +1224 -0
  178. codex_autorunner/surfaces/cli/codex_cli.py +20 -0
  179. codex_autorunner/surfaces/telegram/__init__.py +3 -0
  180. codex_autorunner/surfaces/web/__init__.py +1 -0
  181. codex_autorunner/surfaces/web/app.py +2019 -0
  182. codex_autorunner/surfaces/web/hub_jobs.py +192 -0
  183. codex_autorunner/surfaces/web/middleware.py +587 -0
  184. codex_autorunner/surfaces/web/pty_session.py +370 -0
  185. codex_autorunner/surfaces/web/review.py +6 -0
  186. codex_autorunner/surfaces/web/routes/__init__.py +78 -0
  187. codex_autorunner/surfaces/web/routes/agents.py +138 -0
  188. codex_autorunner/surfaces/web/routes/analytics.py +277 -0
  189. codex_autorunner/surfaces/web/routes/app_server.py +132 -0
  190. codex_autorunner/surfaces/web/routes/archive.py +357 -0
  191. codex_autorunner/surfaces/web/routes/base.py +615 -0
  192. codex_autorunner/surfaces/web/routes/file_chat.py +836 -0
  193. codex_autorunner/surfaces/web/routes/flows.py +1164 -0
  194. codex_autorunner/surfaces/web/routes/messages.py +459 -0
  195. codex_autorunner/surfaces/web/routes/repos.py +197 -0
  196. codex_autorunner/surfaces/web/routes/review.py +148 -0
  197. codex_autorunner/surfaces/web/routes/sessions.py +176 -0
  198. codex_autorunner/surfaces/web/routes/settings.py +169 -0
  199. codex_autorunner/surfaces/web/routes/shared.py +280 -0
  200. codex_autorunner/surfaces/web/routes/system.py +196 -0
  201. codex_autorunner/surfaces/web/routes/usage.py +89 -0
  202. codex_autorunner/surfaces/web/routes/voice.py +120 -0
  203. codex_autorunner/surfaces/web/routes/workspace.py +271 -0
  204. codex_autorunner/surfaces/web/runner_manager.py +25 -0
  205. codex_autorunner/surfaces/web/schemas.py +417 -0
  206. codex_autorunner/surfaces/web/static_assets.py +490 -0
  207. codex_autorunner/surfaces/web/static_refresh.py +86 -0
  208. codex_autorunner/surfaces/web/terminal_sessions.py +78 -0
  209. codex_autorunner/tickets/__init__.py +27 -0
  210. codex_autorunner/tickets/agent_pool.py +399 -0
  211. codex_autorunner/tickets/files.py +89 -0
  212. codex_autorunner/tickets/frontmatter.py +55 -0
  213. codex_autorunner/tickets/lint.py +102 -0
  214. codex_autorunner/tickets/models.py +97 -0
  215. codex_autorunner/tickets/outbox.py +244 -0
  216. codex_autorunner/tickets/replies.py +179 -0
  217. codex_autorunner/tickets/runner.py +881 -0
  218. codex_autorunner/tickets/spec_ingest.py +77 -0
  219. codex_autorunner/web/__init__.py +5 -1
  220. codex_autorunner/web/app.py +2 -1771
  221. codex_autorunner/web/hub_jobs.py +2 -191
  222. codex_autorunner/web/middleware.py +2 -587
  223. codex_autorunner/web/pty_session.py +2 -369
  224. codex_autorunner/web/runner_manager.py +2 -24
  225. codex_autorunner/web/schemas.py +2 -396
  226. codex_autorunner/web/static_assets.py +4 -484
  227. codex_autorunner/web/static_refresh.py +2 -85
  228. codex_autorunner/web/terminal_sessions.py +2 -77
  229. codex_autorunner/workspace/__init__.py +40 -0
  230. codex_autorunner/workspace/paths.py +335 -0
  231. codex_autorunner-1.1.0.dist-info/METADATA +154 -0
  232. codex_autorunner-1.1.0.dist-info/RECORD +308 -0
  233. {codex_autorunner-0.1.2.dist-info → codex_autorunner-1.1.0.dist-info}/WHEEL +1 -1
  234. codex_autorunner/agents/execution/policy.py +0 -292
  235. codex_autorunner/agents/factory.py +0 -52
  236. codex_autorunner/agents/orchestrator.py +0 -358
  237. codex_autorunner/core/doc_chat.py +0 -1446
  238. codex_autorunner/core/snapshot.py +0 -580
  239. codex_autorunner/integrations/github/chatops.py +0 -268
  240. codex_autorunner/integrations/github/pr_flow.py +0 -1314
  241. codex_autorunner/routes/docs.py +0 -381
  242. codex_autorunner/routes/github.py +0 -327
  243. codex_autorunner/routes/runs.py +0 -250
  244. codex_autorunner/spec_ingest.py +0 -812
  245. codex_autorunner/static/docChatActions.js +0 -287
  246. codex_autorunner/static/docChatEvents.js +0 -300
  247. codex_autorunner/static/docChatRender.js +0 -205
  248. codex_autorunner/static/docChatStream.js +0 -361
  249. codex_autorunner/static/docs.js +0 -20
  250. codex_autorunner/static/docsClipboard.js +0 -69
  251. codex_autorunner/static/docsCrud.js +0 -257
  252. codex_autorunner/static/docsDocUpdates.js +0 -62
  253. codex_autorunner/static/docsDrafts.js +0 -16
  254. codex_autorunner/static/docsElements.js +0 -69
  255. codex_autorunner/static/docsInit.js +0 -285
  256. codex_autorunner/static/docsParse.js +0 -160
  257. codex_autorunner/static/docsSnapshot.js +0 -87
  258. codex_autorunner/static/docsSpecIngest.js +0 -263
  259. codex_autorunner/static/docsState.js +0 -127
  260. codex_autorunner/static/docsThreadRegistry.js +0 -44
  261. codex_autorunner/static/docsUi.js +0 -153
  262. codex_autorunner/static/docsVoice.js +0 -56
  263. codex_autorunner/static/github.js +0 -504
  264. codex_autorunner/static/logs.js +0 -678
  265. codex_autorunner/static/review.js +0 -157
  266. codex_autorunner/static/runs.js +0 -418
  267. codex_autorunner/static/snapshot.js +0 -124
  268. codex_autorunner/static/state.js +0 -94
  269. codex_autorunner/static/todoPreview.js +0 -27
  270. codex_autorunner/workspace.py +0 -16
  271. codex_autorunner-0.1.2.dist-info/METADATA +0 -249
  272. codex_autorunner-0.1.2.dist-info/RECORD +0 -222
  273. /codex_autorunner/{routes → surfaces/web/routes}/terminal_images.py +0 -0
  274. {codex_autorunner-0.1.2.dist-info → codex_autorunner-1.1.0.dist-info}/entry_points.txt +0 -0
  275. {codex_autorunner-0.1.2.dist-info → codex_autorunner-1.1.0.dist-info}/licenses/LICENSE +0 -0
  276. {codex_autorunner-0.1.2.dist-info → codex_autorunner-1.1.0.dist-info}/top_level.txt +0 -0
@@ -1,397 +1,3 @@
1
- """
2
- Pydantic request/response schemas for web and API routes.
3
- """
1
+ """Backward-compatible schema exports."""
4
2
 
5
- from __future__ import annotations
6
-
7
- from typing import Any, Dict, List, Optional
8
-
9
- from pydantic import AliasChoices, BaseModel, ConfigDict, Field
10
-
11
-
12
- class Payload(BaseModel):
13
- model_config = ConfigDict(extra="ignore", populate_by_name=True)
14
-
15
-
16
- class RunControlRequest(Payload):
17
- once: bool = False
18
- agent: Optional[str] = None
19
- model: Optional[str] = None
20
- reasoning: Optional[str] = None
21
-
22
-
23
- class HubCreateRepoRequest(Payload):
24
- git_url: Optional[str] = Field(
25
- default=None, validation_alias=AliasChoices("git_url", "gitUrl")
26
- )
27
- repo_id: Optional[str] = Field(
28
- default=None, validation_alias=AliasChoices("repo_id", "id")
29
- )
30
- path: Optional[str] = None
31
- git_init: bool = True
32
- force: bool = False
33
-
34
-
35
- class HubRemoveRepoRequest(Payload):
36
- force: bool = False
37
- delete_dir: bool = True
38
- delete_worktrees: bool = False
39
-
40
-
41
- class HubCreateWorktreeRequest(Payload):
42
- base_repo_id: str = Field(
43
- validation_alias=AliasChoices("base_repo_id", "baseRepoId")
44
- )
45
- branch: str
46
- force: bool = False
47
- start_point: Optional[str] = Field(
48
- default=None,
49
- validation_alias=AliasChoices(
50
- "start_point", "startPoint", "base_ref", "baseRef"
51
- ),
52
- )
53
-
54
-
55
- class HubCleanupWorktreeRequest(Payload):
56
- worktree_repo_id: str = Field(
57
- validation_alias=AliasChoices("worktree_repo_id", "worktreeRepoId")
58
- )
59
- delete_branch: bool = False
60
- delete_remote: bool = False
61
-
62
-
63
- class DocContentRequest(Payload):
64
- content: str = ""
65
-
66
-
67
- class SnapshotRequest(Payload):
68
- pass
69
-
70
-
71
- class DocChatPayload(Payload):
72
- message: Optional[str] = None
73
- stream: bool = False
74
- targets: Optional[List[str]] = None
75
- target: Optional[str] = None
76
- agent: Optional[str] = None
77
- model: Optional[str] = None
78
- reasoning: Optional[str] = None
79
- context_doc: Optional[str] = Field(
80
- default=None,
81
- validation_alias=AliasChoices("context_doc", "contextDoc", "viewing"),
82
- )
83
-
84
-
85
- class IngestSpecRequest(Payload):
86
- force: bool = False
87
- spec_path: Optional[str] = None
88
- message: Optional[str] = None
89
- agent: Optional[str] = None
90
- model: Optional[str] = None
91
- reasoning: Optional[str] = None
92
-
93
-
94
- class AppServerThreadResetRequest(Payload):
95
- key: str = Field(
96
- validation_alias=AliasChoices("key", "feature", "feature_key", "featureKey")
97
- )
98
-
99
-
100
- class AppServerThreadArchiveRequest(Payload):
101
- thread_id: str = Field(validation_alias=AliasChoices("thread_id", "threadId", "id"))
102
-
103
-
104
- class SessionSettingsRequest(Payload):
105
- autorunner_model_override: Optional[str] = None
106
- autorunner_effort_override: Optional[str] = None
107
- autorunner_approval_policy: Optional[str] = None
108
- autorunner_sandbox_mode: Optional[str] = None
109
- autorunner_workspace_write_network: Optional[bool] = None
110
- runner_stop_after_runs: Optional[int] = None
111
-
112
-
113
- class GithubIssueRequest(Payload):
114
- issue: str
115
-
116
-
117
- class GithubContextRequest(Payload):
118
- url: str
119
-
120
-
121
- class GithubPrSyncRequest(Payload):
122
- draft: bool = True
123
- title: Optional[str] = None
124
- body: Optional[str] = None
125
- mode: Optional[str] = None
126
-
127
-
128
- class GithubPrFlowStartRequest(Payload):
129
- mode: Optional[str] = "issue"
130
- issue: Optional[str] = None
131
- pr: Optional[str] = None
132
- draft: Optional[bool] = None
133
- base_branch: Optional[str] = Field(
134
- default=None, validation_alias=AliasChoices("base_branch", "baseBranch", "base")
135
- )
136
- stop_condition: Optional[str] = Field(
137
- default=None,
138
- validation_alias=AliasChoices("stop_condition", "stopCondition", "until"),
139
- )
140
- max_cycles: Optional[int] = Field(
141
- default=None, validation_alias=AliasChoices("max_cycles", "maxCycles")
142
- )
143
- max_implementation_runs: Optional[int] = Field(
144
- default=None,
145
- validation_alias=AliasChoices(
146
- "max_implementation_runs", "maxImplementationRuns"
147
- ),
148
- )
149
- max_wallclock_seconds: Optional[int] = Field(
150
- default=None,
151
- validation_alias=AliasChoices(
152
- "max_wallclock_seconds", "maxWallclockSeconds", "timeout_seconds"
153
- ),
154
- )
155
-
156
-
157
- class GithubPrFlowActionRequest(Payload):
158
- pass
159
-
160
-
161
- class SessionStopRequest(Payload):
162
- session_id: Optional[str] = None
163
- repo_path: Optional[str] = None
164
-
165
-
166
- class SystemUpdateRequest(Payload):
167
- target: Optional[str] = None
168
-
169
-
170
- class ResponseModel(BaseModel):
171
- model_config = ConfigDict(extra="ignore")
172
-
173
-
174
- class HubJobResponse(ResponseModel):
175
- job_id: str
176
- kind: str
177
- status: str
178
- created_at: str
179
- started_at: Optional[str]
180
- finished_at: Optional[str]
181
- result: Optional[Dict[str, Any]]
182
- error: Optional[str]
183
-
184
-
185
- class StateResponse(ResponseModel):
186
- last_run_id: Optional[int]
187
- status: str
188
- last_exit_code: Optional[int]
189
- last_run_started_at: Optional[str]
190
- last_run_finished_at: Optional[str]
191
- outstanding_count: int
192
- done_count: int
193
- running: bool
194
- runner_pid: Optional[int]
195
- lock_present: bool
196
- lock_pid: Optional[int]
197
- lock_freeable: bool
198
- lock_freeable_reason: Optional[str]
199
- terminal_idle_timeout_seconds: Optional[int]
200
- codex_model: str
201
-
202
-
203
- class SessionSettingsResponse(ResponseModel):
204
- autorunner_model_override: Optional[str]
205
- autorunner_effort_override: Optional[str]
206
- autorunner_approval_policy: Optional[str]
207
- autorunner_sandbox_mode: Optional[str]
208
- autorunner_workspace_write_network: Optional[bool]
209
- runner_stop_after_runs: Optional[int]
210
-
211
-
212
- class VersionResponse(ResponseModel):
213
- asset_version: Optional[str]
214
-
215
-
216
- class RunControlResponse(ResponseModel):
217
- running: bool
218
- once: bool
219
-
220
-
221
- class RunStatusResponse(ResponseModel):
222
- running: bool
223
-
224
-
225
- class RunResetResponse(ResponseModel):
226
- status: str
227
- message: str
228
-
229
-
230
- class SessionItemResponse(ResponseModel):
231
- session_id: str
232
- repo_path: Optional[str]
233
- abs_repo_path: Optional[str] = None
234
- created_at: Optional[str]
235
- last_seen_at: Optional[str]
236
- status: Optional[str]
237
- alive: bool
238
-
239
-
240
- class SessionsResponse(ResponseModel):
241
- sessions: List[SessionItemResponse]
242
- repo_to_session: Dict[str, str]
243
- abs_repo_to_session: Optional[Dict[str, str]] = None
244
-
245
-
246
- class SessionStopResponse(ResponseModel):
247
- status: str
248
- session_id: str
249
-
250
-
251
- class DocsResponse(ResponseModel):
252
- todo: str
253
- progress: str
254
- opinions: str
255
- spec: str
256
- summary: str
257
-
258
-
259
- class IngestSpecResponse(ResponseModel):
260
- status: str
261
- todo: str
262
- progress: str
263
- opinions: str
264
- spec: str
265
- summary: str
266
- patch: Optional[str] = None
267
- agent_message: Optional[str] = None
268
-
269
-
270
- class AppServerThreadsResponse(ResponseModel):
271
- doc_chat: Dict[str, Optional[str]]
272
- doc_chat_opencode: Optional[Dict[str, Optional[str]]] = None
273
- spec_ingest: Optional[str] = None
274
- spec_ingest_opencode: Optional[str] = None
275
- autorunner: Optional[str] = None
276
- autorunner_opencode: Optional[str] = None
277
- corruption: Optional[Dict[str, Any]] = None
278
-
279
-
280
- class AppServerThreadResetResponse(ResponseModel):
281
- status: str
282
- key: str
283
- cleared: bool
284
-
285
-
286
- class AppServerThreadArchiveResponse(ResponseModel):
287
- status: str
288
- thread_id: str
289
- archived: bool
290
-
291
-
292
- class AppServerThreadResetAllResponse(ResponseModel):
293
- status: str
294
- cleared: bool
295
-
296
-
297
- class DocWriteResponse(ResponseModel):
298
- kind: str
299
- content: str
300
-
301
-
302
- class SnapshotResponse(ResponseModel):
303
- exists: bool
304
- content: str
305
- state: Dict[str, Any]
306
-
307
-
308
- class SnapshotCreateResponse(ResponseModel):
309
- content: str
310
- truncated: bool
311
- state: Dict[str, Any]
312
-
313
-
314
- class TokenTotalsResponse(ResponseModel):
315
- input_tokens: int
316
- cached_input_tokens: int
317
- output_tokens: int
318
- reasoning_output_tokens: int
319
- total_tokens: int
320
-
321
-
322
- class RepoUsageResponse(ResponseModel):
323
- mode: str
324
- repo: str
325
- codex_home: str
326
- since: Optional[str]
327
- until: Optional[str]
328
- status: str
329
- events: int
330
- totals: TokenTotalsResponse
331
- latest_rate_limits: Optional[Dict[str, Any]]
332
-
333
-
334
- class UsageSeriesEntryResponse(ResponseModel):
335
- key: str
336
- model: Optional[str]
337
- token_type: Optional[str]
338
- total: int
339
- values: List[int]
340
-
341
-
342
- class UsageSeriesResponse(ResponseModel):
343
- mode: str
344
- repo: str
345
- codex_home: str
346
- since: Optional[str]
347
- until: Optional[str]
348
- status: str
349
- bucket: str
350
- segment: str
351
- buckets: List[str]
352
- series: List[UsageSeriesEntryResponse]
353
-
354
-
355
- class SystemHealthResponse(ResponseModel):
356
- status: str
357
- mode: str
358
- base_path: str
359
- asset_version: Optional[str] = None
360
-
361
-
362
- class SystemUpdateResponse(ResponseModel):
363
- status: str
364
- message: str
365
- target: str
366
-
367
-
368
- class SystemUpdateStatusResponse(ResponseModel):
369
- status: str
370
- message: str
371
-
372
-
373
- class SystemUpdateCheckResponse(ResponseModel):
374
- status: str
375
- update_available: bool
376
- message: str
377
- local_commit: Optional[str] = None
378
- remote_commit: Optional[str] = None
379
-
380
-
381
- class ReviewStartRequest(Payload):
382
- agent: Optional[str] = None
383
- model: Optional[str] = None
384
- reasoning: Optional[str] = None
385
- max_wallclock_seconds: Optional[int] = Field(
386
- default=None,
387
- validation_alias=AliasChoices("max_wallclock_seconds", "maxWallclockSeconds"),
388
- )
389
-
390
-
391
- class ReviewStatusResponse(ResponseModel):
392
- review: Dict[str, Any]
393
-
394
-
395
- class ReviewControlResponse(ResponseModel):
396
- status: str
397
- detail: Optional[str] = None
3
+ from ..surfaces.web.schemas import * # noqa: F401,F403