@agentrouter-top/relay-dsh-plugin-codex 0.2.2-agentrouter.1
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.
- package/AGENTROUTER-FORK.md +7 -0
- package/LICENSE +21 -0
- package/README.md +419 -0
- package/README.zh.md +429 -0
- package/codex-activity-wire.mjs +16 -0
- package/cordis.patch.yml +5 -0
- package/docs/dsh-0.1.2-alpha.3.md +37 -0
- package/docs/images/dsh-new-session-backends.jpg +0 -0
- package/docs/reliability-acceptance.md +85 -0
- package/docs/reliability-spec.md +305 -0
- package/docs/spec/dsh-interaction-bridge.md +168 -0
- package/docs/spec/execution-presentation.md +103 -0
- package/dsh-client-compat.d.mts +4 -0
- package/dsh-client-compat.mjs +26 -0
- package/dsh-compat.mjs +92 -0
- package/lib/client.js +37202 -0
- package/lib/client.js.map +1 -0
- package/lib/host-plugin.js +5142 -0
- package/lib/host-plugin.js.map +1 -0
- package/lib/typert.host.js +16 -0
- package/lib/typert.host.js.map +1 -0
- package/package.json +157 -0
- package/presets/relay-codex/.relay-managed +1 -0
- package/presets/relay-codex/agent.cordis.yml +3 -0
- package/presets/relay-codex/preset.yml +3 -0
- package/scripts/repair-activity-history.mjs +123 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# AgentRouter distribution of Relay Codex
|
|
2
|
+
|
|
3
|
+
Upstream: https://github.com/yangbobo2021/relay-dsh-plugin-codex.git @ 75918b3e06880df25375154321109f364124a544 (MIT).
|
|
4
|
+
|
|
5
|
+
Changes: version 1 generic codexHome/codexEnv launch interface, Codex 0.153.4, and package/build identity. No agent protocol, model picker, effort controls or tool implementation replaced.
|
|
6
|
+
|
|
7
|
+
Sources and checksummed contributions: https://github.com/Maybank01/agentrouter-dsh-plugins/tree/main/upstream/relay-codex
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 yangbobo2021 and Relay contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# Codex Conversations for DeepSeek Harness
|
|
2
|
+
|
|
3
|
+
> **Now supports DSH `0.1.2-rc.1` while retaining `0.1.2-alpha.3` compatibility.** Plugin `0.2.2` is verified on both releases. [Install it from npm](https://www.npmjs.com/package/relay-dsh-plugin-codex) · [Compatibility evidence](https://github.com/yangbobo2021/Relay/tree/codex/relay-foundation/dsh-lab/dsh-0.1.2-rc.1-20260903).
|
|
4
|
+
|
|
5
|
+
> **Release channels:** `latest` → `0.2.2`; `next` → `0.2.1-rc.1`.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add relay-dsh-plugin-codex@0.2.2
|
|
9
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 web
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
[](https://www.npmjs.com/package/relay-dsh-plugin-codex)
|
|
13
|
+
[](https://github.com/yangbobo2021/relay-dsh-plugin-codex/actions/workflows/ci.yml)
|
|
14
|
+
[](https://www.npmjs.com/package/relay-dsh-plugin-codex)
|
|
15
|
+
[](https://github.com/yangbobo2021/relay-dsh-plugin-codex/stargazers)
|
|
16
|
+
[](LICENSE)
|
|
17
|
+
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
18
|
+
[](https://www.npmjs.com/package/relay-dsh-plugin-codex/v/0.2.1)
|
|
19
|
+
|
|
20
|
+
English | [中文](README.zh.md)
|
|
21
|
+
|
|
22
|
+
**npm package:** [`relay-dsh-plugin-codex`](https://www.npmjs.com/package/relay-dsh-plugin-codex)
|
|
23
|
+
· [All Relay DSH plugins](https://github.com/yangbobo2021/Relay/blob/codex/relay-foundation/docs/dsh-plugins.md)
|
|
24
|
+
|
|
25
|
+
**Run Codex inside official DeepSeek Harness without switching interfaces or
|
|
26
|
+
maintaining a DSH fork.**
|
|
27
|
+
|
|
28
|
+
`relay-dsh-plugin-codex` adds **Codex as a native conversation backend** to the
|
|
29
|
+
official [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
|
|
30
|
+
(DSH) Web UI. You keep DSH's workspace, conversation history, composer,
|
|
31
|
+
approvals, and tools while each DSH Session continues one Codex App Server
|
|
32
|
+
Thread. The plugin installs independently; no Relay checkout is required.
|
|
33
|
+
|
|
34
|
+
## Try It on Official DSH
|
|
35
|
+
|
|
36
|
+
Authenticate with an official Codex client before the first Session. Codex CLI
|
|
37
|
+
users can run:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
codex login
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The install requires Node.js 22.13 or newer and `pnpm` on `PATH`. Stop DSH Web,
|
|
44
|
+
install the stable plugin, and restart DSH:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add relay-dsh-plugin-codex@latest
|
|
48
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 web
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Open **New Session**, select a workspace, choose **Codex** from the mode menu,
|
|
52
|
+
and send a message.
|
|
53
|
+
|
|
54
|
+

|
|
55
|
+
|
|
56
|
+
The screenshot was captured from official DSH `0.1.1-rc.2` with the Codex and
|
|
57
|
+
Claude plugins installed. If you install only this plugin, only **Codex** is
|
|
58
|
+
added.
|
|
59
|
+
|
|
60
|
+
[Watch Plugin Manager find and install this package in 40 seconds](https://github.com/yangbobo2021/Relay/blob/codex/relay-foundation/docs/media/dsh-plugin-manager-codex-install-demo.en.mp4?raw=1)
|
|
61
|
+
· [review all Relay DSH plugins](https://github.com/yangbobo2021/Relay/blob/codex/relay-foundation/docs/dsh-plugins.md)
|
|
62
|
+
|
|
63
|
+
If this removes an interface switch from your DSH workflow,
|
|
64
|
+
[star this plugin](https://github.com/yangbobo2021/relay-dsh-plugin-codex) and
|
|
65
|
+
[share your DSH version or install feedback](https://github.com/yangbobo2021/relay-dsh-plugin-codex/issues).
|
|
66
|
+
That signal helps other DSH users find a tested Codex backend.
|
|
67
|
+
|
|
68
|
+
## Do I Need This Plugin?
|
|
69
|
+
|
|
70
|
+
Install it when you want to:
|
|
71
|
+
|
|
72
|
+
- use Codex inside DSH instead of switching to a separate Codex interface;
|
|
73
|
+
- keep DSH's native conversation history, composer, approvals, and questions;
|
|
74
|
+
- let one DSH Session continue the same Codex App Server Thread across turns;
|
|
75
|
+
- use Codex models, reasoning effort, images, interruption, and DSH-contributed
|
|
76
|
+
tools in the same conversation.
|
|
77
|
+
|
|
78
|
+
You do not need it to use DSH's standard agents. It also does not add Relay
|
|
79
|
+
Events, file browsing, or a terminal panel. Those are separate optional plugins.
|
|
80
|
+
|
|
81
|
+
## Complete Setup and Compatibility
|
|
82
|
+
|
|
83
|
+
The steps below were validated with:
|
|
84
|
+
|
|
85
|
+
- DeepSeek Harness `0.1.1-rc.2`, commit
|
|
86
|
+
[`b150a551`](https://github.com/deepseek-ai/deepseek-harness/commit/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e)
|
|
87
|
+
- Node.js 22.13 or newer
|
|
88
|
+
- `pnpm` available on `PATH`
|
|
89
|
+
|
|
90
|
+
DSH is currently a developer preview and may introduce compatibility-breaking
|
|
91
|
+
changes. This repository tracks official releases and records its tested version
|
|
92
|
+
here.
|
|
93
|
+
|
|
94
|
+
### 1. Prepare Codex authentication
|
|
95
|
+
|
|
96
|
+
The plugin installs a pinned official `@openai/codex` runtime and launches it in
|
|
97
|
+
App Server mode. The runtime contains native binaries for macOS, Windows, and
|
|
98
|
+
Linux on x64 and arm64, so DSH does not need to find a `codex` command on its
|
|
99
|
+
`PATH`.
|
|
100
|
+
|
|
101
|
+
Codex authentication is still required. Install or open an official Codex
|
|
102
|
+
client and authenticate it before starting your first DSH Codex session. When
|
|
103
|
+
using the CLI, verify the shared local credentials with:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
codex --version
|
|
107
|
+
codex login
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
See the official [Codex CLI guide](https://learn.chatgpt.com/docs/codex/cli) and
|
|
111
|
+
[authentication documentation](https://learn.chatgpt.com/docs/auth) for
|
|
112
|
+
installation and sign-in options. Credentials stay under Codex's normal local
|
|
113
|
+
authentication mechanism; this plugin does not collect them. Installing this
|
|
114
|
+
plugin supplies its App Server runtime, but does not add a global `codex` shell
|
|
115
|
+
command.
|
|
116
|
+
|
|
117
|
+
### 2. Choose a package source and install
|
|
118
|
+
|
|
119
|
+
Stop a running DSH Web process before changing Profile bundles. Choose one of
|
|
120
|
+
the following sources.
|
|
121
|
+
|
|
122
|
+
#### Stable npm release
|
|
123
|
+
|
|
124
|
+
The published npm package name is
|
|
125
|
+
[`relay-dsh-plugin-codex`](https://www.npmjs.com/package/relay-dsh-plugin-codex).
|
|
126
|
+
Use `@latest` to install the current stable release:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add relay-dsh-plugin-codex@latest
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
At the time of writing, `latest` resolves to stable version `0.2.1`. The linked
|
|
133
|
+
npm page is the source of truth for the current version.
|
|
134
|
+
|
|
135
|
+
#### npm prerelease (recommended during DSH preview)
|
|
136
|
+
|
|
137
|
+
Use `@next` to try the newest release candidate that has passed the repository's
|
|
138
|
+
CI publishing and official DSH compatibility checks. The current candidate also
|
|
139
|
+
contains the bundled cross-platform App Server runtime, so DSH does not depend
|
|
140
|
+
on a global `codex` executable:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add relay-dsh-plugin-codex@next
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The `next` tag remains on `0.2.1-rc.1`; `latest` points to `0.2.1`.
|
|
147
|
+
Check the npm registry for the currently published dist-tag before installing.
|
|
148
|
+
|
|
149
|
+
This prerelease preserves native service-tier and resumed-thread settings, stops
|
|
150
|
+
late commands belonging to canceled turns, rejects stale interaction replies, and
|
|
151
|
+
retains dynamic-tool errors. New conversations receive bounded execution guidance;
|
|
152
|
+
set `codexExecutionGuidance: false` to disable it, or `codexExecutionMode: native`
|
|
153
|
+
to compare without DSH dynamic tools and guidance. The default mode is `enhanced`.
|
|
154
|
+
The host identifies itself as DSH and does not advertise unimplemented Desktop
|
|
155
|
+
attestation or MCP App HTML rendering. Dependency discovery reports existing paths.
|
|
156
|
+
|
|
157
|
+
The bundled runtime is `@openai/codex@0.153.4`, including native GPT-6 Astra
|
|
158
|
+
model discovery and reasoning controls; Desktop's experimental binary
|
|
159
|
+
is not redistributed or required. This is not complete Desktop parity. Known
|
|
160
|
+
limitations include occasional empty native command-event output even when the
|
|
161
|
+
model received the error, and a macOS locale issue affecting tools such as
|
|
162
|
+
`shasum`. These have not been declared fixed. To roll back, stop DSH, reinstall
|
|
163
|
+
`relay-dsh-plugin-codex@0.2.0`, restore any changed profile configuration, and restart.
|
|
164
|
+
|
|
165
|
+
#### GitHub development build
|
|
166
|
+
|
|
167
|
+
Install the current `main` branch when testing an unreleased change:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add github:yangbobo2021/relay-dsh-plugin-codex#main
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
`main` can change at any time. For a reproducible GitHub install, pin a Tag or
|
|
174
|
+
full Commit SHA instead. For example:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add github:yangbobo2021/relay-dsh-plugin-codex#v0.2.2
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
The official DSH CLI initializes the `web` Profile if it does not exist, asks
|
|
181
|
+
`pnpm` to install the selected package, and adds the plugin's bundle layer. No
|
|
182
|
+
Relay checkout is required. If you already installed the `dsh` command, replace
|
|
183
|
+
the `npx @deepseek-ai/dsh@0.1.2-rc.1` prefix with `dsh` in any command above.
|
|
184
|
+
|
|
185
|
+
### 3. Start or restart DSH Web
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 web
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
If you use an installed command, run `dsh web` instead. Bundle membership is read
|
|
192
|
+
at startup, so restarting after installation, update, or removal is required.
|
|
193
|
+
|
|
194
|
+
### 4. Start a Codex conversation
|
|
195
|
+
|
|
196
|
+
1. Open the DSH URL printed in the terminal. The default is
|
|
197
|
+
`http://127.0.0.1:3080`.
|
|
198
|
+
2. On first launch, read the DSH testing notice and select **Continue**.
|
|
199
|
+
3. Select **Add workspace** in the left sidebar and choose the project directory
|
|
200
|
+
Codex may work in.
|
|
201
|
+
4. Select **New Session**.
|
|
202
|
+
5. Open the mode menu labeled **Standard mode** and choose **Codex**.
|
|
203
|
+
6. Enter a message and send it. Choose the backend before the first message;
|
|
204
|
+
existing sessions keep the backend with which they were created.
|
|
205
|
+
|
|
206
|
+
There is no separate activation command. A successful install plus a DSH restart
|
|
207
|
+
activates the bundle and registers the managed **Codex** mode automatically.
|
|
208
|
+
|
|
209
|
+
### 5. Import existing Codex sessions for a Workspace
|
|
210
|
+
|
|
211
|
+
1. Select the compact Codex import icon below the Workspace list and above Settings.
|
|
212
|
+
2. In the dialog, confirm or change the visible **Target Workspace**, then select
|
|
213
|
+
**Scan sessions**. The current Session owner or recent Workspace is only the
|
|
214
|
+
initial selection; scanning never starts before this confirmation.
|
|
215
|
+
3. Review each eligible Codex Thread's full ID, title, source path, last activity,
|
|
216
|
+
and ready or recoverable status. Select one, several, or all Threads.
|
|
217
|
+
4. Select **Import selected**.
|
|
218
|
+
5. Confirm that imported rows already show their Codex titles and source activity
|
|
219
|
+
order, then open any Session and continue chatting.
|
|
220
|
+
|
|
221
|
+
Only eligible Threads from the explicitly selected Workspace are shown. Already-bound
|
|
222
|
+
Threads and Threads from another Workspace cannot be selected. Titles and recency
|
|
223
|
+
are available before a Session is opened; batch execution time does not replace
|
|
224
|
+
the Codex inventory `thread/list.updatedAt` order.
|
|
225
|
+
Codex App Server remains authoritative for model context, tool state, and
|
|
226
|
+
compaction. DSH stores native user/assistant presentation history and the durable
|
|
227
|
+
one-to-one binding; it does not copy private Codex runtime records. Each time an
|
|
228
|
+
imported Session is opened, the plugin reads that Codex Thread once and appends
|
|
229
|
+
any missing terminal user/assistant Turns to DSH's presentation history, including
|
|
230
|
+
interrupted or failed Turns with visible messages. Only an `inProgress` Turn waits for
|
|
231
|
+
the next open. It does
|
|
232
|
+
not poll in the background, synchronize while the Session stays open, or add a
|
|
233
|
+
manual refresh action.
|
|
234
|
+
|
|
235
|
+
## What Works
|
|
236
|
+
|
|
237
|
+
- One persistent Codex App Server Thread per DSH Session
|
|
238
|
+
- Model and reasoning-effort selection
|
|
239
|
+
- Streaming answers and reasoning in the native DSH conversation
|
|
240
|
+
- Live output from long-running Codex shell commands in newly created Sessions, retained in DSH history
|
|
241
|
+
- DSH approval and user-question flows
|
|
242
|
+
- Images, interruption, and continuation
|
|
243
|
+
- Generic DSH tools exposed under the Codex App Server `dsh` namespace
|
|
244
|
+
- Optional terminal transport when the separate Relay terminal plugin is present
|
|
245
|
+
|
|
246
|
+
Tools execute through the owning Agent's DSH tool runtime and remain subject to
|
|
247
|
+
DSH permissions and Codex approval behavior.
|
|
248
|
+
|
|
249
|
+
## Reliability and App Server Lifecycle
|
|
250
|
+
|
|
251
|
+
The DSH Host plugin owns the Codex App Server process. It starts one child while
|
|
252
|
+
the plugin activates, before Codex model discovery, and stops it when DSH or the
|
|
253
|
+
plugin shuts down. The default child comes from the pinned `@openai/codex`
|
|
254
|
+
dependency, so a global `codex` command is not required.
|
|
255
|
+
|
|
256
|
+
Open **Settings → Advanced** to see whether Codex is **Connected**, **Not
|
|
257
|
+
started**, **Starting**, **Connection failed**, or **Codex unavailable**. A
|
|
258
|
+
forked Session that inherited Codex history without a safe one-to-one binding
|
|
259
|
+
shows **Rebind required** in its Session header. Installation and connection
|
|
260
|
+
errors include a stable error code and a next action; raw errors such as `spawn
|
|
261
|
+
codex ENOENT` are not shown as the user instruction.
|
|
262
|
+
|
|
263
|
+
On a blank New Session, switching among Standard, Codex, and Claude selects the
|
|
264
|
+
matching backend's model group and default reasoning effort. Delayed Codex model
|
|
265
|
+
discovery is retried, and an older asynchronous result cannot overwrite a newer
|
|
266
|
+
backend choice.
|
|
267
|
+
|
|
268
|
+
Forks use the Codex App Server `thread/fork` method. The child DSH Session sends
|
|
269
|
+
the inherited parent Thread id and completed `lastTurnId`; the returned child
|
|
270
|
+
Thread gets a new durable one-to-one binding. The operation fails closed if
|
|
271
|
+
provenance is incomplete, the source Thread has no owning DSH Session, or App
|
|
272
|
+
Server rejects the fork: Relay never falls back to `thread/start`. Existing
|
|
273
|
+
persisted bindings are also retained when resume fails. A pending approval is
|
|
274
|
+
answered only if its DSH Session, Codex Thread, Turn, Item, request, and binding
|
|
275
|
+
generation still match after reconnect; otherwise it is rejected with
|
|
276
|
+
diagnostic provenance.
|
|
277
|
+
|
|
278
|
+
See the [reliability specification](docs/reliability-spec.md) and
|
|
279
|
+
[executable acceptance matrix](docs/reliability-acceptance.md). Approval and
|
|
280
|
+
structured-question composition is defined by the
|
|
281
|
+
[DSH interaction bridge specification](docs/spec/dsh-interaction-bridge.md).
|
|
282
|
+
|
|
283
|
+
## Plugin Boundary and Relay
|
|
284
|
+
|
|
285
|
+
This repository was designed and compatibility-tested in
|
|
286
|
+
[Relay](https://github.com/yangbobo2021/Relay), an open-source project for
|
|
287
|
+
long-running agent work, external-event delivery, reusable DSH workbench views,
|
|
288
|
+
and multiple conversation backends.
|
|
289
|
+
|
|
290
|
+
The plugin is independently installable. Its only Relay package dependency is
|
|
291
|
+
the provider-neutral session import hub, which the package manager installs
|
|
292
|
+
automatically. It has no runtime dependency on the Relay application, Relay
|
|
293
|
+
Events, or another feature plugin. It does not replace the official DSH layout
|
|
294
|
+
or install Files and Terminal views. This separation lets a user install only
|
|
295
|
+
Codex while the broader Relay project can compose Codex, Claude, events, waits,
|
|
296
|
+
monitors, and workbench extensions when those capabilities are needed.
|
|
297
|
+
|
|
298
|
+
Explore or star Relay to follow that broader work:
|
|
299
|
+
<https://github.com/yangbobo2021/Relay>.
|
|
300
|
+
|
|
301
|
+
## Update, Inspect, or Remove
|
|
302
|
+
|
|
303
|
+
Stop DSH Web before changing the bundle, then restart it afterward.
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# Show why the plugin is installed
|
|
307
|
+
dsh plugin --profile web why relay-dsh-plugin-codex
|
|
308
|
+
|
|
309
|
+
# Update the npm dependency
|
|
310
|
+
dsh plugin --profile web update relay-dsh-plugin-codex
|
|
311
|
+
|
|
312
|
+
# Remove it
|
|
313
|
+
dsh plugin --profile web remove relay-dsh-plugin-codex
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Use the `npx @deepseek-ai/dsh@0.1.2-rc.1` prefix instead of `dsh` when you do not
|
|
317
|
+
have a persistent DSH command.
|
|
318
|
+
|
|
319
|
+
## Troubleshooting
|
|
320
|
+
|
|
321
|
+
### Codex is missing from the mode menu
|
|
322
|
+
|
|
323
|
+
Restart DSH Web. Then run `dsh plugin --profile web why
|
|
324
|
+
relay-dsh-plugin-codex`. If pnpm cannot find the package, repeat the npm
|
|
325
|
+
installation command and read its final error.
|
|
326
|
+
|
|
327
|
+
### The first message reports an authentication or executable error
|
|
328
|
+
|
|
329
|
+
Run `codex login` with an official Codex client under the same operating-system
|
|
330
|
+
user that starts DSH, then restart DSH. The plugin normally uses its bundled
|
|
331
|
+
official `@openai/codex` runtime and does not depend on `PATH`.
|
|
332
|
+
|
|
333
|
+
If the error says the bundled runtime is missing, update or reinstall the plugin
|
|
334
|
+
so the package manager restores the platform-specific optional dependency. A
|
|
335
|
+
managed deployment can explicitly select another native Codex executable:
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
# macOS or Linux
|
|
339
|
+
RELAY_CODEX_COMMAND=/absolute/path/to/codex dsh web
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
```powershell
|
|
343
|
+
# Windows PowerShell
|
|
344
|
+
$env:RELAY_CODEX_COMMAND = 'C:\absolute\path\to\codex.exe'
|
|
345
|
+
dsh web
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
The DSH bundle configuration property `codexCommand` has higher priority than
|
|
349
|
+
`RELAY_CODEX_COMMAND`. Prefer an absolute native executable path; leaving both
|
|
350
|
+
unset selects the bundled, plugin-tested Codex version.
|
|
351
|
+
|
|
352
|
+
If Settings shows `CODEX_EXECUTABLE_NOT_FOUND`, remove an invalid
|
|
353
|
+
`codexCommand`/`RELAY_CODEX_COMMAND` override or replace it with an absolute
|
|
354
|
+
path. `CODEX_RUNTIME_MISSING` means the platform optional dependency must be
|
|
355
|
+
restored by reinstalling the plugin. **Connection failed** instead means the
|
|
356
|
+
executable was found but App Server initialization or its process failed.
|
|
357
|
+
|
|
358
|
+
### A forked Session says Rebind required
|
|
359
|
+
|
|
360
|
+
Normal forks call App Server `thread/fork` and bind the returned child Thread.
|
|
361
|
+
This status means the source Thread/Turn could not authorize or complete that
|
|
362
|
+
operation—for example, the Turn was still running, provenance was incomplete,
|
|
363
|
+
or the source binding no longer existed. Return to the original DSH Session,
|
|
364
|
+
fix the reported condition, and retry Fork. The plugin intentionally does not
|
|
365
|
+
fall back to a fresh replacement Thread.
|
|
366
|
+
|
|
367
|
+
### The composer is disabled
|
|
368
|
+
|
|
369
|
+
DSH requires a workspace before starting a coding conversation. Select **Add
|
|
370
|
+
workspace**, choose a directory, and return to **New Session**.
|
|
371
|
+
|
|
372
|
+
### An imported Session says the Codex thread is open in another client
|
|
373
|
+
|
|
374
|
+
Codex permits only one App Server writer for a Thread. Switching to another Thread
|
|
375
|
+
in Codex Desktop may leave the writer held by that App Server process. Fully quit or
|
|
376
|
+
restart the owning Codex app, CLI, or App Server process, then retry the message in
|
|
377
|
+
DSH. The plugin keeps the original one-to-one binding and never creates a replacement
|
|
378
|
+
Thread. There is no safe force-takeover operation in the App Server protocol. Opening
|
|
379
|
+
the Session can still synchronize terminal presentation history through
|
|
380
|
+
`thread/read`; only continuation is blocked by writer ownership.
|
|
381
|
+
|
|
382
|
+
### Installation says pnpm is missing
|
|
383
|
+
|
|
384
|
+
Install pnpm using its [official installation guide](https://pnpm.io/installation)
|
|
385
|
+
and confirm `pnpm --version` works in the same terminal.
|
|
386
|
+
|
|
387
|
+
### DSH changed and the plugin no longer starts
|
|
388
|
+
|
|
389
|
+
DSH is a developer preview. Include the output of `dsh --version`, the plugin
|
|
390
|
+
source revision, and the startup error in a
|
|
391
|
+
[GitHub issue](https://github.com/yangbobo2021/relay-dsh-plugin-codex/issues).
|
|
392
|
+
|
|
393
|
+
## Development
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
git clone https://github.com/yangbobo2021/relay-dsh-plugin-codex.git
|
|
397
|
+
cd relay-dsh-plugin-codex
|
|
398
|
+
npm install
|
|
399
|
+
DSH_ROOT=/path/to/deepseek-harness npm run verify
|
|
400
|
+
npm pack
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
`npm run verify` runs type checking, tests, and the production build. Boundary
|
|
404
|
+
tests reject accidental runtime dependencies on Relay or another feature plugin.
|
|
405
|
+
|
|
406
|
+
## Feedback
|
|
407
|
+
|
|
408
|
+
Report bugs and feature requests in this repository's
|
|
409
|
+
[issue tracker](https://github.com/yangbobo2021/relay-dsh-plugin-codex/issues).
|
|
410
|
+
|
|
411
|
+
### Published stable installation
|
|
412
|
+
|
|
413
|
+
Stable `0.2.1` targets DSH `0.1.1-rc.2`, `0.1.2-alpha.2`, and `0.1.2-alpha.3`; install it from npm `latest` or Git tag `v0.2.1`.
|
|
414
|
+
|
|
415
|
+
```sh
|
|
416
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add relay-dsh-plugin-codex@next
|
|
417
|
+
# Git tag alternative, after publication:
|
|
418
|
+
npx @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add github:yangbobo2021/relay-dsh-plugin-codex#v0.2.2
|
|
419
|
+
```
|