codex-partner 0.0.1__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 (244) hide show
  1. app.py +5530 -0
  2. codex_partner/__init__.py +4 -0
  3. codex_partner/__main__.py +6 -0
  4. codex_partner/app_server.py +150 -0
  5. codex_partner/cli.py +35 -0
  6. codex_partner/commands.py +77 -0
  7. codex_partner/database.py +206 -0
  8. codex_partner/discovery.py +136 -0
  9. codex_partner/schemas.py +133 -0
  10. codex_partner-0.0.1.dist-info/METADATA +101 -0
  11. codex_partner-0.0.1.dist-info/RECORD +244 -0
  12. codex_partner-0.0.1.dist-info/WHEEL +5 -0
  13. codex_partner-0.0.1.dist-info/entry_points.txt +2 -0
  14. codex_partner-0.0.1.dist-info/top_level.txt +3 -0
  15. static/__init__.py +1 -0
  16. static/app.js +505 -0
  17. static/chat-worker.js +157 -0
  18. static/conversation.js +894 -0
  19. static/core.js +880 -0
  20. static/editor.js +142 -0
  21. static/index.html +71 -0
  22. static/mascot-dance.css +100 -0
  23. static/mascot-dance.js +46 -0
  24. static/settings.js +335 -0
  25. static/styles.css +690 -0
  26. static/vendor/ace/LICENSE +24 -0
  27. static/vendor/ace/ace.js +23 -0
  28. static/vendor/ace/ext-modelist.js +8 -0
  29. static/vendor/ace/mode-abap.js +8 -0
  30. static/vendor/ace/mode-abc.js +8 -0
  31. static/vendor/ace/mode-actionscript.js +8 -0
  32. static/vendor/ace/mode-ada.js +8 -0
  33. static/vendor/ace/mode-alda.js +8 -0
  34. static/vendor/ace/mode-apache_conf.js +8 -0
  35. static/vendor/ace/mode-apex.js +8 -0
  36. static/vendor/ace/mode-applescript.js +8 -0
  37. static/vendor/ace/mode-aql.js +8 -0
  38. static/vendor/ace/mode-asciidoc.js +8 -0
  39. static/vendor/ace/mode-asl.js +8 -0
  40. static/vendor/ace/mode-assembly_arm32.js +8 -0
  41. static/vendor/ace/mode-assembly_x86.js +8 -0
  42. static/vendor/ace/mode-astro.js +8 -0
  43. static/vendor/ace/mode-autohotkey.js +8 -0
  44. static/vendor/ace/mode-basic.js +8 -0
  45. static/vendor/ace/mode-batchfile.js +8 -0
  46. static/vendor/ace/mode-bibtex.js +8 -0
  47. static/vendor/ace/mode-c9search.js +8 -0
  48. static/vendor/ace/mode-c_cpp.js +8 -0
  49. static/vendor/ace/mode-cedar.js +8 -0
  50. static/vendor/ace/mode-cedarschema.js +8 -0
  51. static/vendor/ace/mode-cirru.js +8 -0
  52. static/vendor/ace/mode-clojure.js +8 -0
  53. static/vendor/ace/mode-clue.js +8 -0
  54. static/vendor/ace/mode-cobol.js +8 -0
  55. static/vendor/ace/mode-coffee.js +8 -0
  56. static/vendor/ace/mode-coldfusion.js +8 -0
  57. static/vendor/ace/mode-crystal.js +8 -0
  58. static/vendor/ace/mode-csharp.js +8 -0
  59. static/vendor/ace/mode-csound_document.js +8 -0
  60. static/vendor/ace/mode-csound_orchestra.js +8 -0
  61. static/vendor/ace/mode-csound_score.js +8 -0
  62. static/vendor/ace/mode-csp.js +8 -0
  63. static/vendor/ace/mode-css.js +8 -0
  64. static/vendor/ace/mode-csv.js +8 -0
  65. static/vendor/ace/mode-curly.js +8 -0
  66. static/vendor/ace/mode-cuttlefish.js +8 -0
  67. static/vendor/ace/mode-d.js +8 -0
  68. static/vendor/ace/mode-dart.js +8 -0
  69. static/vendor/ace/mode-diff.js +8 -0
  70. static/vendor/ace/mode-django.js +8 -0
  71. static/vendor/ace/mode-dockerfile.js +8 -0
  72. static/vendor/ace/mode-dot.js +8 -0
  73. static/vendor/ace/mode-drools.js +8 -0
  74. static/vendor/ace/mode-edifact.js +8 -0
  75. static/vendor/ace/mode-eiffel.js +8 -0
  76. static/vendor/ace/mode-ejs.js +8 -0
  77. static/vendor/ace/mode-elixir.js +8 -0
  78. static/vendor/ace/mode-elm.js +8 -0
  79. static/vendor/ace/mode-erlang.js +8 -0
  80. static/vendor/ace/mode-flix.js +8 -0
  81. static/vendor/ace/mode-forth.js +8 -0
  82. static/vendor/ace/mode-fortran.js +8 -0
  83. static/vendor/ace/mode-fsharp.js +8 -0
  84. static/vendor/ace/mode-fsl.js +8 -0
  85. static/vendor/ace/mode-ftl.js +8 -0
  86. static/vendor/ace/mode-gcode.js +8 -0
  87. static/vendor/ace/mode-gherkin.js +8 -0
  88. static/vendor/ace/mode-gitignore.js +8 -0
  89. static/vendor/ace/mode-glsl.js +8 -0
  90. static/vendor/ace/mode-gobstones.js +8 -0
  91. static/vendor/ace/mode-golang.js +8 -0
  92. static/vendor/ace/mode-graphqlschema.js +8 -0
  93. static/vendor/ace/mode-groovy.js +8 -0
  94. static/vendor/ace/mode-groq.js +8 -0
  95. static/vendor/ace/mode-haml.js +8 -0
  96. static/vendor/ace/mode-handlebars.js +8 -0
  97. static/vendor/ace/mode-haskell.js +8 -0
  98. static/vendor/ace/mode-haskell_cabal.js +8 -0
  99. static/vendor/ace/mode-haxe.js +8 -0
  100. static/vendor/ace/mode-hjson.js +8 -0
  101. static/vendor/ace/mode-html.js +8 -0
  102. static/vendor/ace/mode-html_elixir.js +8 -0
  103. static/vendor/ace/mode-html_ruby.js +8 -0
  104. static/vendor/ace/mode-ini.js +8 -0
  105. static/vendor/ace/mode-io.js +8 -0
  106. static/vendor/ace/mode-ion.js +8 -0
  107. static/vendor/ace/mode-jack.js +8 -0
  108. static/vendor/ace/mode-jade.js +8 -0
  109. static/vendor/ace/mode-java.js +8 -0
  110. static/vendor/ace/mode-javascript.js +8 -0
  111. static/vendor/ace/mode-jexl.js +8 -0
  112. static/vendor/ace/mode-json.js +8 -0
  113. static/vendor/ace/mode-json5.js +8 -0
  114. static/vendor/ace/mode-jsoniq.js +8 -0
  115. static/vendor/ace/mode-jsp.js +8 -0
  116. static/vendor/ace/mode-jssm.js +8 -0
  117. static/vendor/ace/mode-jsx.js +8 -0
  118. static/vendor/ace/mode-julia.js +8 -0
  119. static/vendor/ace/mode-kotlin.js +8 -0
  120. static/vendor/ace/mode-latex.js +8 -0
  121. static/vendor/ace/mode-latte.js +8 -0
  122. static/vendor/ace/mode-less.js +8 -0
  123. static/vendor/ace/mode-liquid.js +8 -0
  124. static/vendor/ace/mode-lisp.js +8 -0
  125. static/vendor/ace/mode-livescript.js +8 -0
  126. static/vendor/ace/mode-logiql.js +8 -0
  127. static/vendor/ace/mode-logtalk.js +8 -0
  128. static/vendor/ace/mode-lsl.js +8 -0
  129. static/vendor/ace/mode-lua.js +8 -0
  130. static/vendor/ace/mode-luapage.js +8 -0
  131. static/vendor/ace/mode-lucene.js +8 -0
  132. static/vendor/ace/mode-makefile.js +8 -0
  133. static/vendor/ace/mode-mariadb.js +8 -0
  134. static/vendor/ace/mode-markdown.js +8 -0
  135. static/vendor/ace/mode-mask.js +8 -0
  136. static/vendor/ace/mode-matlab.js +8 -0
  137. static/vendor/ace/mode-maze.js +8 -0
  138. static/vendor/ace/mode-mediawiki.js +8 -0
  139. static/vendor/ace/mode-mel.js +8 -0
  140. static/vendor/ace/mode-mips.js +8 -0
  141. static/vendor/ace/mode-mixal.js +8 -0
  142. static/vendor/ace/mode-mushcode.js +8 -0
  143. static/vendor/ace/mode-mysql.js +8 -0
  144. static/vendor/ace/mode-nasal.js +8 -0
  145. static/vendor/ace/mode-nginx.js +8 -0
  146. static/vendor/ace/mode-nim.js +8 -0
  147. static/vendor/ace/mode-nix.js +8 -0
  148. static/vendor/ace/mode-nsis.js +8 -0
  149. static/vendor/ace/mode-nunjucks.js +8 -0
  150. static/vendor/ace/mode-objectivec.js +8 -0
  151. static/vendor/ace/mode-ocaml.js +8 -0
  152. static/vendor/ace/mode-odin.js +8 -0
  153. static/vendor/ace/mode-partiql.js +8 -0
  154. static/vendor/ace/mode-pascal.js +8 -0
  155. static/vendor/ace/mode-perl.js +8 -0
  156. static/vendor/ace/mode-pgsql.js +8 -0
  157. static/vendor/ace/mode-php.js +8 -0
  158. static/vendor/ace/mode-php_laravel_blade.js +8 -0
  159. static/vendor/ace/mode-pig.js +8 -0
  160. static/vendor/ace/mode-plain_text.js +8 -0
  161. static/vendor/ace/mode-plsql.js +8 -0
  162. static/vendor/ace/mode-powershell.js +8 -0
  163. static/vendor/ace/mode-praat.js +8 -0
  164. static/vendor/ace/mode-prisma.js +8 -0
  165. static/vendor/ace/mode-prolog.js +8 -0
  166. static/vendor/ace/mode-properties.js +8 -0
  167. static/vendor/ace/mode-protobuf.js +8 -0
  168. static/vendor/ace/mode-prql.js +8 -0
  169. static/vendor/ace/mode-puppet.js +8 -0
  170. static/vendor/ace/mode-python.js +8 -0
  171. static/vendor/ace/mode-qml.js +8 -0
  172. static/vendor/ace/mode-r.js +8 -0
  173. static/vendor/ace/mode-raku.js +8 -0
  174. static/vendor/ace/mode-razor.js +8 -0
  175. static/vendor/ace/mode-rdoc.js +8 -0
  176. static/vendor/ace/mode-red.js +8 -0
  177. static/vendor/ace/mode-redshift.js +8 -0
  178. static/vendor/ace/mode-rhtml.js +8 -0
  179. static/vendor/ace/mode-robot.js +8 -0
  180. static/vendor/ace/mode-rst.js +8 -0
  181. static/vendor/ace/mode-ruby.js +8 -0
  182. static/vendor/ace/mode-rust.js +8 -0
  183. static/vendor/ace/mode-sac.js +8 -0
  184. static/vendor/ace/mode-sass.js +8 -0
  185. static/vendor/ace/mode-scad.js +8 -0
  186. static/vendor/ace/mode-scala.js +8 -0
  187. static/vendor/ace/mode-scheme.js +8 -0
  188. static/vendor/ace/mode-scrypt.js +8 -0
  189. static/vendor/ace/mode-scss.js +8 -0
  190. static/vendor/ace/mode-sh.js +8 -0
  191. static/vendor/ace/mode-sjs.js +8 -0
  192. static/vendor/ace/mode-slim.js +8 -0
  193. static/vendor/ace/mode-smarty.js +8 -0
  194. static/vendor/ace/mode-smithy.js +8 -0
  195. static/vendor/ace/mode-snippets.js +8 -0
  196. static/vendor/ace/mode-soy_template.js +8 -0
  197. static/vendor/ace/mode-space.js +8 -0
  198. static/vendor/ace/mode-sparql.js +8 -0
  199. static/vendor/ace/mode-sql.js +8 -0
  200. static/vendor/ace/mode-sqlserver.js +8 -0
  201. static/vendor/ace/mode-stylus.js +8 -0
  202. static/vendor/ace/mode-svg.js +8 -0
  203. static/vendor/ace/mode-swift.js +8 -0
  204. static/vendor/ace/mode-tcl.js +8 -0
  205. static/vendor/ace/mode-terraform.js +8 -0
  206. static/vendor/ace/mode-tex.js +8 -0
  207. static/vendor/ace/mode-text.js +8 -0
  208. static/vendor/ace/mode-textile.js +8 -0
  209. static/vendor/ace/mode-toml.js +8 -0
  210. static/vendor/ace/mode-tsv.js +8 -0
  211. static/vendor/ace/mode-tsx.js +8 -0
  212. static/vendor/ace/mode-turtle.js +8 -0
  213. static/vendor/ace/mode-twig.js +8 -0
  214. static/vendor/ace/mode-typescript.js +8 -0
  215. static/vendor/ace/mode-vala.js +8 -0
  216. static/vendor/ace/mode-vbscript.js +8 -0
  217. static/vendor/ace/mode-velocity.js +8 -0
  218. static/vendor/ace/mode-verilog.js +8 -0
  219. static/vendor/ace/mode-vhdl.js +8 -0
  220. static/vendor/ace/mode-visualforce.js +8 -0
  221. static/vendor/ace/mode-vue.js +8 -0
  222. static/vendor/ace/mode-wollok.js +8 -0
  223. static/vendor/ace/mode-xml.js +8 -0
  224. static/vendor/ace/mode-xquery.js +8 -0
  225. static/vendor/ace/mode-yaml.js +8 -0
  226. static/vendor/ace/mode-zeek.js +8 -0
  227. static/vendor/ace/mode-zig.js +8 -0
  228. static/vendor/ace/theme-tomorrow_night_eighties.js +8 -0
  229. static/vendor/i18next/LICENSE +21 -0
  230. static/vendor/i18next/i18next.min.js +1 -0
  231. static/vendor/toastui-editor/LICENSE +21 -0
  232. static/vendor/toastui-editor/toastui-editor-dark.css +474 -0
  233. static/vendor/toastui-editor/toastui-editor.css +1597 -0
  234. static/vendor/toastui-editor/toastui-editor.js +24 -0
  235. static/vendor/toastui-editor/zh-cn.js +7 -0
  236. static/vendor/xterm/LICENSE +21 -0
  237. static/vendor/xterm/addons/fit.LICENSE +19 -0
  238. static/vendor/xterm/addons/fit.js +2 -0
  239. static/vendor/xterm/addons/unicode11.LICENSE +19 -0
  240. static/vendor/xterm/addons/unicode11.js +2 -0
  241. static/vendor/xterm/addons/web-links.LICENSE +19 -0
  242. static/vendor/xterm/addons/web-links.js +2 -0
  243. static/vendor/xterm/xterm.css +285 -0
  244. static/vendor/xterm/xterm.js +2 -0
@@ -0,0 +1,133 @@
1
+ """Validated request contracts shared by Codex Partner API routes."""
2
+
3
+ from typing import Literal, Optional
4
+
5
+ from pydantic import BaseModel, Field, SecretStr
6
+
7
+
8
+ GoalStatus = Literal["active", "paused", "blocked", "usageLimited", "budgetLimited", "complete"]
9
+
10
+
11
+ class TaskCreate(BaseModel):
12
+ name: str = Field(min_length=1, max_length=160)
13
+ prompt: str = Field(min_length=1)
14
+ goal: str = ""
15
+ workspace: str = ""
16
+ yolo: bool = True
17
+ max_retries: int = Field(default=3, ge=0, le=100)
18
+ retry_forever: bool = False
19
+ provider_id: Optional[str] = None
20
+ model: str = ""
21
+ context: str = ""
22
+ codex_session_id: str = ""
23
+ reasoning_effort: str = ""
24
+ service_tier: str = ""
25
+ personality: str = ""
26
+ collaboration_mode: Literal["default", "plan"] = "default"
27
+ permission_profile: str = ""
28
+ ssh_host: str = ""
29
+
30
+
31
+ class QuickTaskCreate(BaseModel):
32
+ name: str = Field(default="新 Codex 会话", min_length=1, max_length=160)
33
+ workspace: str = ""
34
+ ssh_host: str = ""
35
+
36
+
37
+ class TaskPatch(BaseModel):
38
+ name: Optional[str] = None
39
+ prompt: Optional[str] = None
40
+ goal: Optional[str] = None
41
+ workspace: Optional[str] = None
42
+ yolo: Optional[bool] = None
43
+ max_retries: Optional[int] = Field(default=None, ge=0, le=100)
44
+ retry_forever: Optional[bool] = None
45
+ provider_id: Optional[str] = None
46
+ model: Optional[str] = None
47
+ codex_session_id: Optional[str] = None
48
+ goal_status: Optional[GoalStatus] = None
49
+ reasoning_effort: Optional[str] = None
50
+ service_tier: Optional[str] = None
51
+ personality: Optional[Literal["", "none", "friendly", "pragmatic"]] = None
52
+ collaboration_mode: Optional[Literal["default", "plan"]] = None
53
+ permission_profile: Optional[str] = None
54
+ ssh_host: Optional[str] = None
55
+
56
+
57
+ class ContextPatch(BaseModel):
58
+ context: str
59
+
60
+
61
+ class GoalPatch(BaseModel):
62
+ objective: Optional[str] = None
63
+ status: Optional[GoalStatus] = None
64
+
65
+
66
+ class WorkspaceFileUpdate(BaseModel):
67
+ content: str = ""
68
+
69
+
70
+ class SSHConnectIn(BaseModel):
71
+ host: str = Field(min_length=1, max_length=240)
72
+ username: str = Field(default="", max_length=120)
73
+ port: int = Field(default=22, ge=1, le=65535)
74
+ password: Optional[SecretStr] = None
75
+
76
+
77
+ class SkillIn(BaseModel):
78
+ name: str = Field(min_length=1, max_length=120)
79
+ description: str = ""
80
+ content: str = ""
81
+ enabled: bool = True
82
+
83
+
84
+ class ProviderIn(BaseModel):
85
+ name: str = Field(min_length=1, max_length=120)
86
+ kind: str = "codex"
87
+ model: str = ""
88
+ model_provider: str = Field(default="", max_length=120, pattern=r"^[A-Za-z0-9._-]*$")
89
+ profile: str = ""
90
+ api_key: Optional[SecretStr] = None
91
+ clear_api_key: bool = False
92
+ base_url: str = ""
93
+ enabled: bool = True
94
+ priority: int = 100
95
+
96
+
97
+ class ProviderVerifyIn(BaseModel):
98
+ """Ephemeral credentials used to verify a new provider before saving it."""
99
+
100
+ base_url: str = Field(min_length=1, max_length=500)
101
+ model: str = Field(default="", max_length=160)
102
+ api_key: Optional[SecretStr] = None
103
+
104
+
105
+ class OperationIn(BaseModel):
106
+ operation: str = Field(min_length=1, max_length=40)
107
+ args: list[str] = Field(default_factory=list, max_length=32)
108
+ prompt: str = ""
109
+
110
+
111
+ class TaskMessageIn(BaseModel):
112
+ message: str = Field(min_length=1, max_length=20000)
113
+ client_message_id: Optional[str] = None
114
+ delivery: Literal["auto", "queue"] = "auto"
115
+
116
+
117
+ class TaskMessagePatch(BaseModel):
118
+ message: str = Field(min_length=1, max_length=20000)
119
+
120
+
121
+ class SlashCommandIn(BaseModel):
122
+ command: str = Field(min_length=1, max_length=20000)
123
+ client_message_id: Optional[str] = None
124
+ confirmed: bool = False
125
+
126
+
127
+ class MemoryIn(BaseModel):
128
+ name: str = Field(min_length=1, max_length=240)
129
+ content: str = Field(default="", max_length=2_000_000)
130
+
131
+
132
+ class MemoryResetIn(BaseModel):
133
+ confirm: Literal[True]
@@ -0,0 +1,101 @@
1
+ Metadata-Version: 2.4
2
+ Name: codex-partner
3
+ Version: 0.0.1
4
+ Summary: A self-hosted web interface for managing persistent Codex tasks.
5
+ Project-URL: Homepage, https://github.com/froststeam/Codex-Partner
6
+ Project-URL: Repository, https://github.com/froststeam/Codex-Partner.git
7
+ Project-URL: Issues, https://github.com/froststeam/Codex-Partner/issues
8
+ Keywords: codex,agent,task-management,self-hosted
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Environment :: Web Environment
11
+ Classifier: Framework :: FastAPI
12
+ Classifier: Operating System :: POSIX :: Linux
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Topic :: Software Development :: User Interfaces
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ Requires-Dist: fastapi>=0.110
19
+ Requires-Dist: uvicorn[standard]>=0.27
20
+ Requires-Dist: tomli>=2.0; python_version < "3.11"
21
+ Requires-Dist: PyYAML>=6.0
22
+ Requires-Dist: pexpect>=4.8; platform_system != "Windows"
23
+ Requires-Dist: python-dotenv>=1.0
24
+ Requires-Dist: Pillow>=10.0
25
+
26
+ # Codex Partner
27
+
28
+ Codex Partner is a self-hosted control panel for long-running Codex work. It keeps one native Codex thread alive and lets terminals, browsers, and multiple devices interact with the same task.
29
+
30
+ ![Codex Partner task workspace](https://raw.githubusercontent.com/froststeam/Codex-Partner/main/docs/codex-partner.png)
31
+
32
+ ## Why
33
+
34
+ - **Long tasks stop too early.** Persistent Goals can resume after a failed turn, disconnect, or service restart until the objective is complete.
35
+ - **Multiple clients split the session.** Every connected browser is a view of the same server-owned Codex thread, not a competing `resume` process.
36
+ - **Messages collide with active work.** New messages wait in a durable queue and enter the conversation only when their turn actually starts.
37
+
38
+ ## Highlights
39
+
40
+ - Live task state, tool activity, context usage, and paginated history
41
+ - Goal Resume with pause, retry, and restart recovery
42
+ - Ordered message queue with manual dispatch
43
+ - Workspace browser, editor, uploads, downloads, and image previews
44
+ - Browser terminal that preserves its session when hidden
45
+ - Model and API provider management with health checks and failover
46
+ - Codex memories, Skills, archive, recycle bin, and SSH workspace support
47
+ - Default YOLO mode for newly created sessions
48
+
49
+ ## Install
50
+
51
+ Requires Python 3.10+ and an authenticated [Codex CLI](https://github.com/openai/codex).
52
+
53
+ ```bash
54
+ git clone git@github.com:froststeam/Codex-Partner.git
55
+ cd Codex-Partner
56
+ python3 -m venv .venv
57
+ . .venv/bin/activate
58
+ pip install .
59
+ cp .env.example .env
60
+ codex-partner
61
+ ```
62
+
63
+ Open <http://127.0.0.1:8787>.
64
+
65
+ For access from other devices, set `CODEX_DASHBOARD_HOST=0.0.0.0` and a strong `CODEX_DASHBOARD_TOKEN` in `.env`.
66
+
67
+ ## Docker
68
+
69
+ ```bash
70
+ docker build -t codex-partner:0.0.1 .
71
+ docker run -d --name codex-partner \
72
+ -p 8787:8787 \
73
+ -e CODEX_DASHBOARD_TOKEN=replace-with-a-strong-random-token \
74
+ -v codex-partner-data:/var/lib/codex-partner \
75
+ -v codex-home:/home/codex/.codex \
76
+ -v codex-workspace:/workspace \
77
+ codex-partner:0.0.1
78
+ docker exec -it codex-partner codex login
79
+ ```
80
+
81
+ ## systemd
82
+
83
+ After completing the installation above, stop the foreground process and install the user service:
84
+
85
+ ```bash
86
+ mkdir -p ~/.config/systemd/user
87
+ cp codex-partner.user.service.example ~/.config/systemd/user/codex-partner.service
88
+ systemctl --user daemon-reload
89
+ systemctl --user enable --now codex-partner.service
90
+ systemctl --user status codex-partner.service
91
+ ```
92
+
93
+ This service uses the current user's existing Codex login, configuration, memories, and Skills. The example assumes the repository is at `~/Codex-Partner`; edit the two paths in the unit if it is elsewhere.
94
+
95
+ View logs with `journalctl --user -u codex-partner.service -f`. To keep it running after logout, run `sudo loginctl enable-linger "$USER"` once.
96
+
97
+ ## Use
98
+
99
+ Create a session, choose a workspace and model, then send a message. Messages sent during an active turn queue automatically. Set a Goal to let Codex Partner keep resuming unfinished work. Reopen the same session from any connected device to continue the same thread.
100
+
101
+ Type `/help` in the message input for commands. Press `` ` `` to toggle the terminal, `Shift+N` / `Shift+P` to switch sessions, and `Ctrl/Cmd+K` to focus the composer.
@@ -0,0 +1,244 @@
1
+ app.py,sha256=W_qnMFSNbyCLQwcZSnfgf7qc-Mb0ydyYDFlgU_RTUeA,277899
2
+ codex_partner/__init__.py,sha256=LquYS4SItpQE-zsr1mryIewuMQq0e3GPH6VjZT-pDYs,91
3
+ codex_partner/__main__.py,sha256=SwJ6aCDIVQEHMv9zpsoW4TaWvwPaDYkOFnzEpwXMraM,90
4
+ codex_partner/app_server.py,sha256=zQi2Lf-2AEsRKm-hoN8sCQpOmsycyKnUTph9j1L_giU,6633
5
+ codex_partner/cli.py,sha256=1ds5kPaM7TPK1C6OFg6UQGVhty8Vq7UPa1GKZWHC4CY,1080
6
+ codex_partner/commands.py,sha256=pI7mQESgvZhJAv3PyTec67ygqGbQNN1NUCuuV5mBXp8,6326
7
+ codex_partner/database.py,sha256=t38_grBT2t92b2-Liv9T28M4BkeDzuMl0A3nM7A5nE8,11102
8
+ codex_partner/discovery.py,sha256=jv04rhuPdyMdvJ2R4NIb756wDChcZL5vnFTTgSys0MU,5165
9
+ codex_partner/schemas.py,sha256=QKG3kmthVGg2EJN1pOGrQ_xDgSf2jaL_2qzLgAbi1dM,3839
10
+ static/__init__.py,sha256=QElaPfUSf1CNxUchgr_LaEDyEedzO76coLrScgolu1Y,45
11
+ static/app.js,sha256=_-Zq8AJV-gE2cPYUhGf2hsjq4HwiP507Ko1Qn24fWxs,36351
12
+ static/chat-worker.js,sha256=kE-_W2CBqOOTuVV1cCE3UiUYQ4uWHQ78JHzGXNifPeY,8256
13
+ static/conversation.js,sha256=0rrQ6JXIJ0tVYS9EsxHYAZ7Ay5eYHleKMnJryCGBaJs,64626
14
+ static/core.js,sha256=ekX1taVMtfLJ7ueu6h6E7hVhdKru2TOzWvGvF9i90wg,96150
15
+ static/editor.js,sha256=Ayk7bFLS6_6g9pYpsm8KdHAerKy7khjmJQRxKV5V01g,8529
16
+ static/index.html,sha256=uoPOCxdMbNOQjIUuOlTbbTP98AwZKP5Cd2tZJ2oWYsM,12790
17
+ static/mascot-dance.css,sha256=EvvR0pm4MJ67mWLgLV1vPyxEt-6CZBY6FqTywDwv9-E,9630
18
+ static/mascot-dance.js,sha256=AzkB2hV7ndGpv2H7Yvy_NMfGcBfBkCbYtAEGxzKOEic,8528
19
+ static/settings.js,sha256=e9p1wRi0l0xIMy0ywAlScZPmHanNpDzZhuWskx_OE-g,40745
20
+ static/styles.css,sha256=GtIb6Shg-8m4AuTZemFTPZvKGkfUjVOZUIO5mzfnRBI,89859
21
+ static/vendor/ace/LICENSE,sha256=hQ9UXFJU6MCCBO2yptULu3JyfDioKYLBeoS-v2Bkzfg,1490
22
+ static/vendor/ace/ace.js,sha256=By0T5T0R4s7M__4aD6fxXPacVDXYl99T2YxxvhxKLn8,475029
23
+ static/vendor/ace/ext-modelist.js,sha256=lgYENE7treG_uF32EmFdej1Ia4A6e-02EemJfAFNHRI,5284
24
+ static/vendor/ace/mode-abap.js,sha256=JUF-4NyaY_mHkRPRv8aYCAYjYqnjR1ksOA0dfiwQjiA,6207
25
+ static/vendor/ace/mode-abc.js,sha256=lRIqzijA4SyUAt-H2-t_VcU8knXmBgscW2QY604Tp6U,5107
26
+ static/vendor/ace/mode-actionscript.js,sha256=jsHS_Bl0wDlLIsj57s9STJwxthrKQcHawVhXgmnhIio,20935
27
+ static/vendor/ace/mode-ada.js,sha256=HEJwuDnB0adlbpJlMbD5X760dUHW0Zs7RQUfyYDBKl0,2628
28
+ static/vendor/ace/mode-alda.js,sha256=a3xCpLaryturxJr2hhT_FilQLo5LGGKeVByw_Yht-ng,5399
29
+ static/vendor/ace/mode-apache_conf.js,sha256=kmsOGfwlGQM818Rvp_ECzp_WkXjIyuJpmXqIGZIGSw4,14251
30
+ static/vendor/ace/mode-apex.js,sha256=KusIO3knUY9njpAFQdY6PO1Qvqyi60ppcz4GmOWH5F4,8662
31
+ static/vendor/ace/mode-applescript.js,sha256=IEYi21u2SfZrOloXCRYlNThOSJbJyCAOyD66nPnDgqw,5741
32
+ static/vendor/ace/mode-aql.js,sha256=aHCv4MeFeiFMx_NUBnTEwT_xRa0hxUFDjobAnCZaCCE,4351
33
+ static/vendor/ace/mode-asciidoc.js,sha256=W3RNRmga-PxHATd7PYTcaLzCWcgOjfUDMIhqcSAQ2l8,8488
34
+ static/vendor/ace/mode-asl.js,sha256=Dfz9SWvw9hEmDmJKoNso88KsQ-FbsferFrnyrsx92iA,8974
35
+ static/vendor/ace/mode-assembly_arm32.js,sha256=0lYFHW1BKJ6w-BDqXuPsMws8nPejjmSZtDyYjM1Samo,4834
36
+ static/vendor/ace/mode-assembly_x86.js,sha256=U9xhXOVUJVSIW5xIGTZL_iFpiNHQCkEZ2J3eeIKWhf0,9305
37
+ static/vendor/ace/mode-astro.js,sha256=-g8zrOE8UqWwNqCsHW90vZeFakNfhXgtS_RgpmMrheI,66154
38
+ static/vendor/ace/mode-autohotkey.js,sha256=AFe1LS50K1ZHSGuAxiARH-ANaxFFhHqG75H2Pi7ZtSM,63994
39
+ static/vendor/ace/mode-basic.js,sha256=qIPLLLV-s70euJVtAd1GCNj3h9OJAvGFaSOBW4OGsPo,4806
40
+ static/vendor/ace/mode-batchfile.js,sha256=W4wXgBeZQI7vvUaGHDIfzDiq-GOJamgCj2th32zq8TY,5196
41
+ static/vendor/ace/mode-bibtex.js,sha256=Ovgsyi3raO99IZWWCw0zaNtGNzz0Fwjy_oU9JQHQuRY,5239
42
+ static/vendor/ace/mode-c9search.js,sha256=oOA8mCfNp17ADSSwcQOXeHx8cc26_7v8yRsbAztH2kQ,4411
43
+ static/vendor/ace/mode-c_cpp.js,sha256=IYi4zBAjHML8_Pfw_d56k5H7te1p67oKHnuBiUXN1uo,12202
44
+ static/vendor/ace/mode-cedar.js,sha256=PiOjT6KyQLX0NQx5SHfalnGKW4KLBiok5njQxBzL7vo,6035
45
+ static/vendor/ace/mode-cedarschema.js,sha256=MOrZZKADn-sJxtdmQQHFdaFaEEG79pOE3fjq0o0R-g0,5476
46
+ static/vendor/ace/mode-cirru.js,sha256=6GCaVIwA2npGC6KqvIL5-rccQFuf4wnC9OXyw1XokGM,3413
47
+ static/vendor/ace/mode-clojure.js,sha256=4ySsFfpr0J3q7-K1fYOfrCVAxuhw7GFycYvkjTP9Mug,9026
48
+ static/vendor/ace/mode-clue.js,sha256=5WIy494KmebYztDbQwqXw2O_MixUhkDRi8aSDVXG518,6689
49
+ static/vendor/ace/mode-cobol.js,sha256=4WroP6lRKJ8MQXSnUYnHVA61_64Q9TAYf_nvbBA1id4,2639
50
+ static/vendor/ace/mode-coffee.js,sha256=uCMZvVRKW4SR5y9VCqyaIEPVaJaLFK-M7zI2oNNqEvA,7863
51
+ static/vendor/ace/mode-coldfusion.js,sha256=6uhPnqozCUNDRLjCTJzC80BalPK0O7WEVuZ-tQpnOP8,66129
52
+ static/vendor/ace/mode-crystal.js,sha256=GK7kTNcDGaS6ozk7zIze0mgcHcdDP8CqYA8gqFGpJe8,10355
53
+ static/vendor/ace/mode-csharp.js,sha256=5y_hDcyKnYy2WvBDauRFDSImjfh76ZRX2-3T5r8HBao,9145
54
+ static/vendor/ace/mode-csound_document.js,sha256=Pg45kpZrQb9MrDuUjnVIim58E6Wgb8Yr6yvRB2i0qCg,76303
55
+ static/vendor/ace/mode-csound_orchestra.js,sha256=iYhJ1qm5g40_85Z4sls1UtFT068Utizl6BTD8_PQ8qc,42059
56
+ static/vendor/ace/mode-csound_score.js,sha256=K2dz2ni_8Wb-6AQZ9gteRIuSJpnP7hog-s9PraRMPMc,7969
57
+ static/vendor/ace/mode-csp.js,sha256=7r5SrfdDKYFt5t_ix845J9isbQ6lt5tlC57Ka_jbY5g,1573
58
+ static/vendor/ace/mode-css.js,sha256=y2h39cOU_rncdkftuGK4ljSww-qh4myXSZxEYDWubTQ,20987
59
+ static/vendor/ace/mode-csv.js,sha256=AdfdqC7LZjwbF87GvDcCP4DHGSv3lweDovwvUJOnaaU,1842
60
+ static/vendor/ace/mode-curly.js,sha256=nXzA0qMGXQFubKegn0rERIdxbmaBJ9XZF0kjqz0FL44,64618
61
+ static/vendor/ace/mode-cuttlefish.js,sha256=ZFnhbqFEYFbO95q8qMjdhCD6l5PW3lmj9pjs1fcP4-I,1644
62
+ static/vendor/ace/mode-d.js,sha256=taeHW8mLeax6ABhPGYt7EHedollVVxH6qHUrdaWkzUw,9289
63
+ static/vendor/ace/mode-dart.js,sha256=3nJp85qBPNqMO0h1-3hjF5LnLmIphcjkH8Vsb9_snf4,15693
64
+ static/vendor/ace/mode-diff.js,sha256=Jdu_kbEhqHRnJGU3Pk4CcEq8BvUrJBGkrYDVcir6iFE,2749
65
+ static/vendor/ace/mode-django.js,sha256=h1MaayfEh53QchtyeIr4S0cbA_pL2BmmQpX1yKSFUvQ,64999
66
+ static/vendor/ace/mode-dockerfile.js,sha256=qNgA2LHemOhwojCIo00UD3CbjQu8ZuzmZUuFtfJb7ZY,8555
67
+ static/vendor/ace/mode-dot.js,sha256=TqqfG7wOjxFuCfiBlD6lgam6rVUDLqPWfRSJJwIohSU,7911
68
+ static/vendor/ace/mode-drools.js,sha256=w8VrgYkBnwQ4GfSrizV8TKIJnVlLbe1XYhdZRXmZEVM,13589
69
+ static/vendor/ace/mode-edifact.js,sha256=ZEd4D-4n5zJ6obSyiFczJSqviAvwJPqqG77L_e20Ppw,3203
70
+ static/vendor/ace/mode-eiffel.js,sha256=uyeKmD893bcNGH1HOiI1r-M0cOA7X7mFW5wtQBy47Wk,3171
71
+ static/vendor/ace/mode-ejs.js,sha256=N11RJOZ_Cl9kwR9LRmUgmUJ5FATSfvljC00Iu-Pq-s4,83733
72
+ static/vendor/ace/mode-elixir.js,sha256=tZ-2CkR94yuXNQDYnxMvfAJd7gVFxrpW_-K_Daj-3fY,16152
73
+ static/vendor/ace/mode-elm.js,sha256=HM8e3RGwYU_ffbxSsew2RODN0EdnRb2S8UsNVWk0RSQ,5267
74
+ static/vendor/ace/mode-erlang.js,sha256=wANdWvcVY_BZGLNBx-zzH4zLQXp5UKZ52GfSNevA1vA,29867
75
+ static/vendor/ace/mode-flix.js,sha256=oAT4UGnEsUuwmRZ3Zn_IZc36SZM2-xTQv1e-9knfE50,3319
76
+ static/vendor/ace/mode-forth.js,sha256=_jEifeZcke0dabeHMTYo3_Np2IG4Pswvt6Idv1zrJN8,7325
77
+ static/vendor/ace/mode-fortran.js,sha256=LqLXiu6t4wkTS1NjfsMQh-koEVVe6V_qX6yNKipMYeA,8766
78
+ static/vendor/ace/mode-fsharp.js,sha256=42YaSjqe-S8JFIeUWWMiI5ef9zptEKulG0EXdrfE3VY,5774
79
+ static/vendor/ace/mode-fsl.js,sha256=rMG9_WHhHa8MNCatecvx8tv8P9k0uWHvQAC0aTKMFWE,5046
80
+ static/vendor/ace/mode-ftl.js,sha256=gHY7oZ94oj052tF8sOplZPLA5KJpr420I7P8Ito2Oyk,35794
81
+ static/vendor/ace/mode-gcode.js,sha256=6tQzpz7-d6oa21SJa6EeOwhIsBYKkY3EwE5h-PhQCHg,1790
82
+ static/vendor/ace/mode-gherkin.js,sha256=CdFCn_Dyc3kZwqIbJa_1dRTU1WSYyHxNy0RlRe_CO9U,2693
83
+ static/vendor/ace/mode-gitignore.js,sha256=RqRlVqIOfZUKHiu9ayybxSyYb-af7KF57th3-AaC7Os,1229
84
+ static/vendor/ace/mode-glsl.js,sha256=9wGOq6Sm_o9ECGoIoqkRgsT7IunJspoPH16h1GIOyJ8,14282
85
+ static/vendor/ace/mode-gobstones.js,sha256=4ZEwplC76CrghuAJ_ibdjezX43NohgW-hws-jyJQs-4,37650
86
+ static/vendor/ace/mode-golang.js,sha256=Xm2TF5L5WoBmLA4gLx5OL3sKiXm9PhmHVE1f-yGtQtE,7204
87
+ static/vendor/ace/mode-graphqlschema.js,sha256=YXEQL-fGrkkJs65DpmU8mZULLVJVt5kiJR3vt5AO1MM,3824
88
+ static/vendor/ace/mode-groovy.js,sha256=WX0HD-_4aVZ-N38GnIaL7syM7fbhBsKIWvBCxur-5oU,33133
89
+ static/vendor/ace/mode-groq.js,sha256=E4hmYtmmi2ppBtoZ-v6JLzT1WTNe0timG0XWB6hMrzU,6040
90
+ static/vendor/ace/mode-haml.js,sha256=czldvaE4l7pLHKYqVaEwilZ_2-epjATFtoUhNfL2lGA,49217
91
+ static/vendor/ace/mode-handlebars.js,sha256=PcXsLn9tpirpAMrygnOUnjJvBIeAeb4cKz1hgG3D_Bk,65483
92
+ static/vendor/ace/mode-haskell.js,sha256=-gDyWH-rL8U7VFX3JaO9LDtKVlr843bKbf7wNM3Kiyo,11860
93
+ static/vendor/ace/mode-haskell_cabal.js,sha256=kI2NltUV8QcPUHdGa23GFe4NV6-AtFCIwajCe1Eotkg,2616
94
+ static/vendor/ace/mode-haxe.js,sha256=RrcKzMCYdbF57JcqXmZ40_myK1n2ET7Wm31NP3RGkGg,6822
95
+ static/vendor/ace/mode-hjson.js,sha256=XgDg1z18L3wddyEbXw0dDaHdqUkaFoWPdrz0rOU-37Y,6306
96
+ static/vendor/ace/mode-html.js,sha256=cb5c9dJ_U5dVk8w6AUd5yQQT3hhyRzVWwG_LoU61ICM,63598
97
+ static/vendor/ace/mode-html_elixir.js,sha256=cVEJZFoUt66oth04-5LLhvu-8O2NAoatpkqYy7fDkYc,80880
98
+ static/vendor/ace/mode-html_ruby.js,sha256=fOS8m4dTMZ5TAE3Ks4sCK83qw14Ii3UbRGXw_LD_C7Q,84068
99
+ static/vendor/ace/mode-ini.js,sha256=ofCh1_3bdY2yzBiyxbwaEQ8vEe2IXXUMleQuBQL8KRk,3034
100
+ static/vendor/ace/mode-io.js,sha256=cYWBM62ECwkUYPxZAe47fUl-GcaN8uBQgu6YnW9xzyQ,5675
101
+ static/vendor/ace/mode-ion.js,sha256=Z0u4RabDETDSx4YVDbqWD9Tx0SxhT7ZfxYZ-GBZZvwQ,8080
102
+ static/vendor/ace/mode-jack.js,sha256=V90PXYdy5nuohgGFE8YFHHoDwooy88gtNR0ajZlf0QE,6046
103
+ static/vendor/ace/mode-jade.js,sha256=sr-nHHw67BiSPQ67S-crZWyKULPJ3yjS00kr9IaXSw0,50632
104
+ static/vendor/ace/mode-java.js,sha256=ZPXtRs4D8bVjfTmrz4ApmydiusuIdcEpHhvMJ_0kFe8,35332
105
+ static/vendor/ace/mode-javascript.js,sha256=hd12PwKQxm54FyaTSRRi0KQm9EV-h_VA-S-9PzbN8QI,28029
106
+ static/vendor/ace/mode-jexl.js,sha256=5jx7120JKg69keGQpPmYhALOaEPAcyPe6p7sG7k2aVA,5118
107
+ static/vendor/ace/mode-json.js,sha256=AQ_qtz_XXPze4wzccb3Mho5PkURlpZpxQcXuSYOor-w,5561
108
+ static/vendor/ace/mode-json5.js,sha256=hqOmDwym1c0Ir3sENdAVHdqoeEb64kNpMs6wUQpgHq8,6210
109
+ static/vendor/ace/mode-jsoniq.js,sha256=301jrOzPYU-x09BC3uZFfBYhbezGTLBPK3rbZTfunkU,233696
110
+ static/vendor/ace/mode-jsp.js,sha256=4XZZ2whh4jmvw-sVAGxqa17wB1z7IPwSpL4wcWwHLhs,42283
111
+ static/vendor/ace/mode-jssm.js,sha256=tb4Cakv36hcli5ZTow62_9sNfhsXKxBQxP7VemgI85Y,6229
112
+ static/vendor/ace/mode-jsx.js,sha256=cgvu0vYi-md9cJTbp9FZSK1JSQIEVL2RFRizArRyv0w,28375
113
+ static/vendor/ace/mode-julia.js,sha256=GtWcSMm8OD3y0k5ig9Bx4dZqqgJiF_el7rHtJGmJiAU,7875
114
+ static/vendor/ace/mode-kotlin.js,sha256=9oMd5Qww5yJI2fRi6Wu6TVwt3uysEUBlpJ5BpF80vbk,8398
115
+ static/vendor/ace/mode-latex.js,sha256=N386AnN5ZvOxWSENrgw7conv4CM_xjje_0IydtO-3WQ,5369
116
+ static/vendor/ace/mode-latte.js,sha256=jcOFCvhHGnCBQkKjbdxv-l6ZzJ3-ebBQJe0sb8-y6Bw,67334
117
+ static/vendor/ace/mode-less.js,sha256=DsIT8wLeE7QLGLnUs1Uv9U0aCPhkF0pxbu540Cg-nbk,22982
118
+ static/vendor/ace/mode-liquid.js,sha256=KOE9DvBNZBhKtAc7XZCeiksHCKI898FjAJ93twG7lh8,70944
119
+ static/vendor/ace/mode-lisp.js,sha256=ZnoEhRGU2oH9LIgn-Cgl1V5o7XD9g8o_ZCHpE4_WZio,2286
120
+ static/vendor/ace/mode-livescript.js,sha256=jIo3o2Snw932uiVTa6xHyFfi5aaX5X21zdO1r2LDZbw,5404
121
+ static/vendor/ace/mode-logiql.js,sha256=rc_AZqhHoh3TtNwWTtRQ9mPItwms-TjrhXx5F68JXhE,6058
122
+ static/vendor/ace/mode-logtalk.js,sha256=wvHRPd5_hwfOLz-FyWU3A-lk-1v9LF2cP7Z4O4IV1z4,10998
123
+ static/vendor/ace/mode-lsl.js,sha256=Z2MUnsmnlnvLlUxXci2XWmuaMgwkLHWXjKewlqaW9tA,26905
124
+ static/vendor/ace/mode-lua.js,sha256=LeSZGxBLYgl4x2w6RJrgK5oI3a1Dx07PevpIeRPpcC8,7919
125
+ static/vendor/ace/mode-luapage.js,sha256=B6kAWJghYxl8P2oBk5UIJ6Tpxp6Wu6IIwsju9NK0VPc,72359
126
+ static/vendor/ace/mode-lucene.js,sha256=Br5taF65A2sgbFXwInQqFvFuTqW3LJvdH_ZUKsRscZg,2768
127
+ static/vendor/ace/mode-makefile.js,sha256=uEe0C5yFIrxztWCdLcD6i2ZY_6R8tnedjQI1ccuZA0g,7002
128
+ static/vendor/ace/mode-mariadb.js,sha256=HdTvOaEw-UgR9iDpVqGX2tUNOAJg_O7qC2aNMxpgU7Q,9144
129
+ static/vendor/ace/mode-markdown.js,sha256=dJKth84-YBj0X9edjyD3grO1rL2bYDs61r5i-g012sk,75276
130
+ static/vendor/ace/mode-mask.js,sha256=w8aLkaL4QpchgaLHfPcpuECwc26KsnCwXacEtId0yPg,45432
131
+ static/vendor/ace/mode-matlab.js,sha256=PA6JcCjdjXOEdRhyBpwrtqIqJQns7uemlplvd9mwsP8,20894
132
+ static/vendor/ace/mode-maze.js,sha256=uEkMUu9NL3yDfbt0jNdrGeWMl99Un36KfpgaCue40Js,5255
133
+ static/vendor/ace/mode-mediawiki.js,sha256=XDBOgSkEERniO40pVuQc-8VciuP9qe-FPHo7PwlqLrM,9696
134
+ static/vendor/ace/mode-mel.js,sha256=OQc4EdIcikYo1J6zn8PWUBnUiMQUoqeb5OZz2oZG7fI,25220
135
+ static/vendor/ace/mode-mips.js,sha256=T1I94220fIMlzETrl6RwWTxKJctlyl-Jg7L9HfU8d90,5634
136
+ static/vendor/ace/mode-mixal.js,sha256=nkotcfy1qE-Chr_Owq4026QK9re00NHun84_MsSlNdk,3169
137
+ static/vendor/ace/mode-mushcode.js,sha256=QOyhptxxk1XC6XWvdQz6z5Mot6PMXt7vY1yY74y9vOI,7041
138
+ static/vendor/ace/mode-mysql.js,sha256=i8xYQzwy28EvR4XR7e7UfRsalZfzRA-B93Nwku5qYCk,8231
139
+ static/vendor/ace/mode-nasal.js,sha256=VMl7jVSG_TRY0URkdaOuViKlH2sMI317ja0Toa3x1Q4,10962
140
+ static/vendor/ace/mode-nginx.js,sha256=si_ecyd-mSvdLniXLJ7FhBXImiLlwraaX4CSafNTb_Q,16223
141
+ static/vendor/ace/mode-nim.js,sha256=4lEaQTSpu4E7NPCqtjWwyp3iARtWhCcyhRyZ37nl7QE,6946
142
+ static/vendor/ace/mode-nix.js,sha256=13I4OeSZfdVM_3lXsoaONLgNRLVKubMuh8PyxLPgQbI,14482
143
+ static/vendor/ace/mode-nsis.js,sha256=ODkofNRc-qzCkJTsAwV-hwWyERb-vRSYevUo9S9gPI8,10780
144
+ static/vendor/ace/mode-nunjucks.js,sha256=FUHlhfiy5cMWETwk8jTqB3EbGsIxXXwycFcpDLw1boA,70228
145
+ static/vendor/ace/mode-objectivec.js,sha256=LMaLlTNGSzTmXjxkVw4YQEji9VVzSV1gzmFyOxDqBgA,68454
146
+ static/vendor/ace/mode-ocaml.js,sha256=jGhVACaLz6S2TogTnhpiZdmW99hNM8U4UShpw5xzgms,15919
147
+ static/vendor/ace/mode-odin.js,sha256=nCNa4dDcfKZmliJ7-1giDaww14lAVRWpe9EwNy74Sqg,8347
148
+ static/vendor/ace/mode-partiql.js,sha256=M6dEqwoCIq8I1IC-RON7Jon2gnsVEGxkD8OT17Jljqo,13094
149
+ static/vendor/ace/mode-pascal.js,sha256=WKx3Do5XeYyobfxXLtgxpgxp_RXLfWC2RNCZb_z9sw4,4586
150
+ static/vendor/ace/mode-perl.js,sha256=4_OKPkDys-wGbiSrscnHVSVlkvt16J_3gLt9Di30u3Q,7756
151
+ static/vendor/ace/mode-pgsql.js,sha256=yasLUWCqaoCdiJtgHkrsbWxb8UHokc8kf2qkphP38gg,63130
152
+ static/vendor/ace/mode-php.js,sha256=kv2QdRrOHIa4ncoak4En21AORSGjzEAo436u3r0V1NU,507345
153
+ static/vendor/ace/mode-php_laravel_blade.js,sha256=Kt6aXzLLEQ2YpaR-oszkrSBqlbHp0mHopOI-gpuHdAI,511895
154
+ static/vendor/ace/mode-pig.js,sha256=7qhetA_Adw9sksLh0-G0Mccx8egmrVuaoQiw5Q-iPxc,6646
155
+ static/vendor/ace/mode-plain_text.js,sha256=crxF4I-guwEDYohKGDenEi_U2hpk7MnsktSOUNznkA0,837
156
+ static/vendor/ace/mode-plsql.js,sha256=mCxmWQOlmcV4G6kVT1LORHDk1CWeHZBOmHpFORlI0Y0,6230
157
+ static/vendor/ace/mode-powershell.js,sha256=nsK3tuVeABzktNQ2JtdfeuNSX7F4-1X4HBL_Cklt1bg,84674
158
+ static/vendor/ace/mode-praat.js,sha256=uxty4tT1KPOp6P5MOREEyrtb3ILcDWMrAX86K-5AUZk,10731
159
+ static/vendor/ace/mode-prisma.js,sha256=OAcdrsBJiLz4mrrLRobhCubPKZTlIPB4ttYgmWBiCVg,8582
160
+ static/vendor/ace/mode-prolog.js,sha256=F4eaggFH-ZK2mSHCwoo0foYUSIFPaRGMTNHAnSxW3XE,8704
161
+ static/vendor/ace/mode-properties.js,sha256=n8hl8abCf3YmvJqrA3M5geqyz4JPyr2dwbtToCpFEGk,1430
162
+ static/vendor/ace/mode-protobuf.js,sha256=4hi83NgK450NrZSqmQhxQDWcDLarRj_PEqiCRAKj-g4,13904
163
+ static/vendor/ace/mode-prql.js,sha256=0BpWaVAuacJnTLij_jkBLfdpOg7_UGaw165HioWU58M,6026
164
+ static/vendor/ace/mode-puppet.js,sha256=uInKIft_qNcLmQkybgGmlsBdxJKMFdNy5a6pMWsiTcQ,7386
165
+ static/vendor/ace/mode-python.js,sha256=iOugfGH1Fo6-9UMj9uLTH34SnAWVTqaqWjsKBKKwOq0,8303
166
+ static/vendor/ace/mode-qml.js,sha256=tPT4ksEJdA8iVjLRYSNvq-qQN56IKlTnr_-Rq69-aGo,16423
167
+ static/vendor/ace/mode-r.js,sha256=u22M3CXLeIjWj_YpenPEMJyumU0xEo_WLjBHmalezA0,5512
168
+ static/vendor/ace/mode-raku.js,sha256=hzxP646innko2762ZE-V0A93F8D7BpeGUkEtAC3AvnY,17894
169
+ static/vendor/ace/mode-razor.js,sha256=DItDYnyQm0uepQSGdovxrkKHGqZwWnLcNH0xzseJp4I,71609
170
+ static/vendor/ace/mode-rdoc.js,sha256=Ra8JQzbomMNNhptPjhixFdIEJLb1dCloA7s3jTNpHMc,5017
171
+ static/vendor/ace/mode-red.js,sha256=t-Uz7kyBucY7unK7Dq3eZK473Qub8YNs8PjciFVsjd4,12937
172
+ static/vendor/ace/mode-redshift.js,sha256=7yby9-v46Lv2KTRFKRWC04I_Fjlv9LjAZEcUSDcErNg,8385
173
+ static/vendor/ace/mode-rhtml.js,sha256=ubiXlLfC065Evo57Gx40_T1h-NqhowfJ7IXV42yH-uA,68664
174
+ static/vendor/ace/mode-robot.js,sha256=GI5g7SBJYnbv8mbIW6oFoVSD4Hi6j6gbRcjrYBaaaLo,4417
175
+ static/vendor/ace/mode-rst.js,sha256=G_qtBkabSSnGQ41H5FgYRvFHDeSj3NCxLJj2BiZxYfI,3386
176
+ static/vendor/ace/mode-ruby.js,sha256=zK7jn9Z8EsV0borT6mlp7jRgs3i6GcHzvN1V2UnzVeI,19964
177
+ static/vendor/ace/mode-rust.js,sha256=c8GSJGh7DZFbN5eaik-aQ0rsxKA4vPeAUXaAE4ITQOM,8868
178
+ static/vendor/ace/mode-sac.js,sha256=SbpTaQAarvjXuyl__YiLPQCwqBGxk3O_raFgXcXY3Sc,7039
179
+ static/vendor/ace/mode-sass.js,sha256=ahPIn1KSAxmPIKO5fqd-ZSG1X3uhdJV20wEWhBXT-P4,16117
180
+ static/vendor/ace/mode-scad.js,sha256=CMdrx0F4APMsfCMC8_GdCzBvHoM0UNDfv7GmmZmabro,6802
181
+ static/vendor/ace/mode-scala.js,sha256=KeZNO4GOn0uOV8Ol6T0EHoa6vzkPkrxuzHZQFcjzKWM,33311
182
+ static/vendor/ace/mode-scheme.js,sha256=cPKsE4vwqXnD2gtOF0aXyXDVKc5YHbDYIZ-a5E23k88,3985
183
+ static/vendor/ace/mode-scrypt.js,sha256=blkBmTZ4QdVCPLtbaKeVg35iSqiLZVkByCfrtfPJt-A,7502
184
+ static/vendor/ace/mode-scss.js,sha256=V5tDUL9DkUmlc-5ipbjCTDRkTM8xuYHaXQ0SIfOeyak,24169
185
+ static/vendor/ace/mode-sh.js,sha256=CBJSKkgWc30pqJtgHbf41gOtGAn9NM0lox8A07cxqlQ,7510
186
+ static/vendor/ace/mode-sjs.js,sha256=GZk3vAqlXb1VcGZStdEEmF53pgYszXXYtE5FJqMcOlk,31182
187
+ static/vendor/ace/mode-slim.js,sha256=g4Mkt_x4nVHTNIxAGhYIcNX0iA1cLfnsPh1d7jiBdIE,115364
188
+ static/vendor/ace/mode-smarty.js,sha256=kosjLV7KhHkSIGIUUT6rGEwBoDoTiM9bm10DQIfU89s,67066
189
+ static/vendor/ace/mode-smithy.js,sha256=i2BmCrcl933uULs0NSAFHSId84Z_rZ6CrlF2XqHHVA0,8972
190
+ static/vendor/ace/mode-snippets.js,sha256=NgM-6y2KmLUlxynWMFI7expjkrNJWRpus91Ck0LHKIE,4131
191
+ static/vendor/ace/mode-soy_template.js,sha256=yipSxKJN7YHODiTyxelV50ehJPHTRpSN0l551MhcW6g,72101
192
+ static/vendor/ace/mode-space.js,sha256=X_gxbwhdfaLY2gfJV6UPd3KBYgEqGahhnWdiD8eg2GE,2634
193
+ static/vendor/ace/mode-sparql.js,sha256=b-4fsD7iBpP8aA5M5xl-c5x5ofoiyjODieAQVP8OxIQ,8192
194
+ static/vendor/ace/mode-sql.js,sha256=ZWlxIxewcp_XfblCPNQn_rwumxz-k6CZE93KAEk5vKc,5354
195
+ static/vendor/ace/mode-sqlserver.js,sha256=-grVhgLj6pmXP0AuuiM96vegSCzi9_BP3zRN2YkMTOk,16945
196
+ static/vendor/ace/mode-stylus.js,sha256=5vIVrYu1JgFGgiq4ZubCuKeiOT5UxbbL3fmlenuFuo4,14879
197
+ static/vendor/ace/mode-svg.js,sha256=SjSeMpq9Bov9vinU_KVfzsyvcUJIUrYklVujMJKWH3w,35101
198
+ static/vendor/ace/mode-swift.js,sha256=9PaL2tRag-TATsE0BSScupoRQ3QFNFHUAzu5LKbu8_w,7328
199
+ static/vendor/ace/mode-tcl.js,sha256=nI0onAieVJ_Cby-Y4biZlQKiSoEKxr2ez-n2WiuBgo8,6529
200
+ static/vendor/ace/mode-terraform.js,sha256=05z375cqhupxV0ZopStPepPxIHrNY3BeDHtDIFvN5DQ,7135
201
+ static/vendor/ace/mode-tex.js,sha256=aBXIFM8JQmIS87NgnYRD4m0DQqcVSUuyXIAxowqOZT4,3123
202
+ static/vendor/ace/mode-text.js,sha256=B1pmT4qIapRylLtWrjK4qZCL-HFvYA7CcQITxg213hk,325
203
+ static/vendor/ace/mode-textile.js,sha256=dpkDTvY-GOGJMEEFeSunK9nXANxjSmIrZaN8odhF5Y0,2457
204
+ static/vendor/ace/mode-toml.js,sha256=7VAJtHnoqf9DjYn7eQkl8b2ps2QAzXOAt7xCgdp7mfo,2529
205
+ static/vendor/ace/mode-tsv.js,sha256=69G1PhoHcSqvecCrlvogxVehwz73wC_7sdj73_9E3og,2442
206
+ static/vendor/ace/mode-tsx.js,sha256=3A00CjtCQD5zfXOgcwb6vQ_4ewDHUUVZo5X4Yk3AhqI,30258
207
+ static/vendor/ace/mode-turtle.js,sha256=QV0rK5NiPDPcL9fUCNOxe9WBOjY1tOYoF24kr8jK8Q0,5361
208
+ static/vendor/ace/mode-twig.js,sha256=HyMW-5jxyrGtXYagCl9dJsY-rkV8Qn0BFM9VJSpbJM0,67233
209
+ static/vendor/ace/mode-typescript.js,sha256=kK4F9gaF3U9Va_CduHVL0w6vbS1WnTFgjvA-trFwRjU,29758
210
+ static/vendor/ace/mode-vala.js,sha256=nzJIpXj1K_B1EWPQ-Yq3JRiYVk7DLW09VzSuXWeCq4k,16794
211
+ static/vendor/ace/mode-vbscript.js,sha256=3HeG_XqsiGePcVLIhp4bxL0kFAwI7jb9lyBmij-FVto,14063
212
+ static/vendor/ace/mode-velocity.js,sha256=CV7jyDlBxBdbiXKJuiIaB3GmJisXMG77pqUA4qq2GLs,68385
213
+ static/vendor/ace/mode-verilog.js,sha256=67AP1VaysTIb614o9JlMJtl7HMKCC0EMNpuRf-R3xJY,3228
214
+ static/vendor/ace/mode-vhdl.js,sha256=S9F_aoRJdxcoWrNTsW_wzLbVKfLT7QHh_OTqxJ_xyaw,2523
215
+ static/vendor/ace/mode-visualforce.js,sha256=Dp8rtGfyxJalVaSCCM5B0yR5nRNrDtjjK9cpfSRpt4Q,66264
216
+ static/vendor/ace/mode-vue.js,sha256=3rAFs_OX8wqmGalufJFVGS4_CR4VUsCIZ7zQa5y37ss,94685
217
+ static/vendor/ace/mode-wollok.js,sha256=fWuuNJO4qHIdo71dUQFmB0Eui504Tn04y39fkdJgRds,31039
218
+ static/vendor/ace/mode-xml.js,sha256=YCHfEkMimp0snYw-MARxzWU_I9VaCfDGfO4I5flYkKo,10391
219
+ static/vendor/ace/mode-xquery.js,sha256=WpMxQQ31eP7UFhkIw0eBqzSJ43TbtkxEhYKFrlnAsxE,231079
220
+ static/vendor/ace/mode-yaml.js,sha256=JPqiQqxQhWVv8Ln-KD7cjYVlwq2E9agktYaOtafKXLM,6813
221
+ static/vendor/ace/mode-zeek.js,sha256=i18sZoq9e6D6Ek94oktLV-9nQmfjbDPdAec30wQB0is,9420
222
+ static/vendor/ace/mode-zig.js,sha256=ZauTJEiOcuFNKqLW2tUkmP9fGyBsUZiVE2E50XdbYdI,11938
223
+ static/vendor/ace/theme-tomorrow_night_eighties.js,sha256=J6k1RbwKYkrNcDNc6iOiPjF9fjQnedzYqgV9Gl5cHN4,4287
224
+ static/vendor/i18next/LICENSE,sha256=HNCisCpsxA747hYxDRPu_917XeSlYv0-58kh2OtU9go,1082
225
+ static/vendor/i18next/i18next.min.js,sha256=mbuRFQh43X-6bxomCTfnwHAz1YSA_sqd3W0X2je2R08,43123
226
+ static/vendor/toastui-editor/LICENSE,sha256=HHwHDalW8MMSKIPBtOtwaxuBmXEILM3gAf4tJB2Q48A,1072
227
+ static/vendor/toastui-editor/toastui-editor-dark.css,sha256=7UQqKfY6YFZyMe-x0XKT4rHguovfi8UXb5tV4BrSIAE,16898
228
+ static/vendor/toastui-editor/toastui-editor.css,sha256=wM65Z7jJcDjcyqKjXCIi7DW1OgAi_ru2oicVwj6tkhE,172742
229
+ static/vendor/toastui-editor/toastui-editor.js,sha256=9Q4bfA_E5dmhzNDYvnjLOpUMyzv2dvvxYngQx2rq7dg,534289
230
+ static/vendor/toastui-editor/zh-cn.js,sha256=pVPHUQNOjv--VXpYob1I8C7fyi2TKh-jisJcZjpxdpI,2530
231
+ static/vendor/xterm/LICENSE,sha256=tWn2KdAPJiaoEA3yoXmCEFNWIeQhZN_UJqb-Wqx7DM0,1261
232
+ static/vendor/xterm/xterm.css,sha256=hUp8D7cOixoIPBZ5ergnKZ-xh0T1rTTyJ7SDN-Myk8Y,7112
233
+ static/vendor/xterm/xterm.js,sha256=FJA1ef9UZkzXL46GmeaWGmJywhhj7Bw7EYzcivXUqXI,488663
234
+ static/vendor/xterm/addons/fit.LICENSE,sha256=4lbwEYivUn5NBtIdBvv3ha6cUNSzKL8Dy-C6fwqkIo8,1103
235
+ static/vendor/xterm/addons/fit.js,sha256=uj6iVs4GIKCZKhl9bJuupkgj_JPY2gep42bKmUPBhSc,1521
236
+ static/vendor/xterm/addons/unicode11.LICENSE,sha256=4lbwEYivUn5NBtIdBvv3ha6cUNSzKL8Dy-C6fwqkIo8,1103
237
+ static/vendor/xterm/addons/unicode11.js,sha256=cjU7UXjhpzgnFt8c_t-KsHDuplXTiZW7n08oT-VuLys,52489
238
+ static/vendor/xterm/addons/web-links.LICENSE,sha256=aJzrEHFr16h6gEwUlR18K4GMvWCquD1UCQJHDOOxNEQ,1103
239
+ static/vendor/xterm/addons/web-links.js,sha256=t0hkEl7ziJdTuU5h602ruZsqJ_kg8MmnvVPL5tEPAyo,3100
240
+ codex_partner-0.0.1.dist-info/METADATA,sha256=Q4gJbXYwOFoyY_SeVtjop5hCTB4B3RYFwENiEEtfKN4,4293
241
+ codex_partner-0.0.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
242
+ codex_partner-0.0.1.dist-info/entry_points.txt,sha256=Pdj7CJtEgN_EXvKhtvVPXq-3-OB7xXteaCCxuDuljmU,57
243
+ codex_partner-0.0.1.dist-info/top_level.txt,sha256=-4ytZbWwL8knlIIZPOwGoV45KY1OSVPwWKOhNDdXUFA,25
244
+ codex_partner-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ codex-partner = codex_partner.cli:main
@@ -0,0 +1,3 @@
1
+ app
2
+ codex_partner
3
+ static
static/__init__.py ADDED
@@ -0,0 +1 @@
1
+ """Packaged web assets for Codex Partner."""