@agentrouter-top/relay-dsh-plugin-codex 0.2.2-agentrouter.7 → 0.2.2-agentrouter.9
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/docs/native-turn-status.md +13 -0
- package/lib/client.js +1 -1
- package/lib/host-plugin.js +23 -1
- package/lib/host-plugin.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Native turn status
|
|
2
|
+
|
|
3
|
+
Relay no longer hides DSH's turn-level status when its Codex process view mounts.
|
|
4
|
+
Public DSH 0.1.2-rc.1 keeps this status present from session `running` across
|
|
5
|
+
first-token waits, tools and streamed output, independently of tool completion
|
|
6
|
+
or process folding. DSH also owns its localization, elapsed time and removal at
|
|
7
|
+
the end of a turn. Relay does not create a second status component or infer model
|
|
8
|
+
reasoning from a timer.
|
|
9
|
+
|
|
10
|
+
This removes only the old blanket CSS suppression. Codex process rows, quiet
|
|
11
|
+
tool outcomes, iridescent image frames, native history, approvals and other
|
|
12
|
+
kernels retain their existing behavior. No shell, runtime or authentication
|
|
13
|
+
change is required.
|
package/lib/client.js
CHANGED
|
@@ -36210,7 +36210,7 @@ window.__ModuleLoader__.load({
|
|
|
36210
36210
|
}
|
|
36211
36211
|
//#endregion
|
|
36212
36212
|
//#region \0relay-css-module:.\src\client\CodexProcessView.module.css.mjs
|
|
36213
|
-
const css$1 = "._06p8sG_process{width:100%;min-width:0;color:var(--dsw-alias-label-secondary)}._06p8sG_processToggle,._06p8sG_groupToggle{min-width:0;max-width:100%;min-height:28px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:2px 0;font-size:14px;line-height:24px;display:flex}._06p8sG_processToggle{margin-bottom:16px}._06p8sG_processToggle:focus-visible,._06p8sG_groupToggle:focus-visible{outline:2px solid var(--dsw-static-deepseek-500,#416aff);outline-offset:3px;border-radius:4px}._06p8sG_groupToggle>svg{flex:none}._06p8sG_groupTitle{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}._06p8sG_count{flex-shrink:0;font-size:12px}._06p8sG_flow,._06p8sG_answer{flex-direction:column;gap:20px;min-width:0;display:flex}._06p8sG_flow[hidden]{display:none}._06p8sG_flow{border-top:1px solid var(--dsw-alias-border-l2);padding-top:16px}._06p8sG_flow[data-images-only]{border-top:0;padding-top:0}._06p8sG_flow>[hidden]{display:none}._06p8sG_answer{color:var(--dsw-alias-label-primary)}._06p8sG_flow:not([hidden])+._06p8sG_answer{margin-top:24px}._06p8sG_prose{min-width:0;color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}._06p8sG_prose p{margin:0 0 12px}._06p8sG_prose p:last-child{margin-bottom:0}._06p8sG_activities{flex-direction:column;gap:8px;min-width:0;padding:8px 0 0 20px;display:flex}._06p8sG_reasoning{overflow-wrap:anywhere;margin:8px 0 0 24px;font-size:13px}._06p8sG_error{color:var(--dsw-alias-state-error-primary,#b42318)}._06p8sG_spinner{animation:1.4s linear infinite _06p8sG_codex-spin}@keyframes _06p8sG_codex-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){._06p8sG_spinner{animation:none}}[data-chat-flow-kind=assistant-step]:has(>[data-slot]>[data-codex-native-assistant]){display:none}[data-chat-flow-kind=tool-call]:has(>[data-slot]>[data-chat-call-id]>[data-slot]>[data-codex-grouped-call]){display:none}[data-chat-flow-kind=context]:has(>[data-slot]>[data-codex-internal-context]){display:none}[data-chat-flow-kind=relay-codex-process]:has(>[data-slot]>[data-codex-process-fallback]){display:none}
|
|
36213
|
+
const css$1 = "._06p8sG_process{width:100%;min-width:0;color:var(--dsw-alias-label-secondary)}._06p8sG_processToggle,._06p8sG_groupToggle{min-width:0;max-width:100%;min-height:28px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:2px 0;font-size:14px;line-height:24px;display:flex}._06p8sG_processToggle{margin-bottom:16px}._06p8sG_processToggle:focus-visible,._06p8sG_groupToggle:focus-visible{outline:2px solid var(--dsw-static-deepseek-500,#416aff);outline-offset:3px;border-radius:4px}._06p8sG_groupToggle>svg{flex:none}._06p8sG_groupTitle{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}._06p8sG_count{flex-shrink:0;font-size:12px}._06p8sG_flow,._06p8sG_answer{flex-direction:column;gap:20px;min-width:0;display:flex}._06p8sG_flow[hidden]{display:none}._06p8sG_flow{border-top:1px solid var(--dsw-alias-border-l2);padding-top:16px}._06p8sG_flow[data-images-only]{border-top:0;padding-top:0}._06p8sG_flow>[hidden]{display:none}._06p8sG_answer{color:var(--dsw-alias-label-primary)}._06p8sG_flow:not([hidden])+._06p8sG_answer{margin-top:24px}._06p8sG_prose{min-width:0;color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}._06p8sG_prose p{margin:0 0 12px}._06p8sG_prose p:last-child{margin-bottom:0}._06p8sG_activities{flex-direction:column;gap:8px;min-width:0;padding:8px 0 0 20px;display:flex}._06p8sG_reasoning{overflow-wrap:anywhere;margin:8px 0 0 24px;font-size:13px}._06p8sG_error{color:var(--dsw-alias-state-error-primary,#b42318)}._06p8sG_spinner{animation:1.4s linear infinite _06p8sG_codex-spin}@keyframes _06p8sG_codex-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){._06p8sG_spinner{animation:none}}[data-chat-flow-kind=assistant-step]:has(>[data-slot]>[data-codex-native-assistant]){display:none}[data-chat-flow-kind=tool-call]:has(>[data-slot]>[data-chat-call-id]>[data-slot]>[data-codex-grouped-call]){display:none}[data-chat-flow-kind=context]:has(>[data-slot]>[data-codex-internal-context]){display:none}[data-chat-flow-kind=relay-codex-process]:has(>[data-slot]>[data-codex-process-fallback]){display:none}";
|
|
36214
36214
|
const tagId$1 = "@agentrouter-top/relay-dsh-plugin-codex/CodexProcessView.module.css";
|
|
36215
36215
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
36216
36216
|
const tag = document.createElement("style");
|
package/lib/host-plugin.js
CHANGED
|
@@ -4,10 +4,10 @@ import assert from "node:assert/strict";
|
|
|
4
4
|
import { EventEmitter } from "node:events";
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
6
6
|
import readline from "node:readline";
|
|
7
|
+
import { basename, dirname, isAbsolute, join, resolve, sep } from "node:path";
|
|
7
8
|
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
8
9
|
import { chmod, cp, link, lstat, mkdir, readFile, realpath, stat, unlink, writeFile } from "node:fs/promises";
|
|
9
10
|
import { homedir } from "node:os";
|
|
10
|
-
import { basename, dirname, isAbsolute, join, resolve, sep } from "node:path";
|
|
11
11
|
import * as llm from "@deepseek-ai/dsh-llm";
|
|
12
12
|
import { LlmAdapter, LlmError, MessageId, createMessage, freezeMessage } from "@deepseek-ai/dsh-llm";
|
|
13
13
|
import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -316,14 +316,35 @@ function resolveCodexLaunch({ command, env = process.env, execPath = process.exe
|
|
|
316
316
|
throw error;
|
|
317
317
|
}
|
|
318
318
|
let launcher;
|
|
319
|
+
let nativeCommand;
|
|
319
320
|
try {
|
|
320
321
|
launcher = resolvePackage(BUNDLED_CODEX_ENTRY);
|
|
321
322
|
resolvePackage(`${platformPackage}/package.json`);
|
|
323
|
+
if (platform === "win32") nativeCommand = resolvePackage(`${platformPackage}/vendor/${arch === "arm64" ? "aarch64" : "x86_64"}-pc-windows-msvc/bin/codex.exe`);
|
|
322
324
|
} catch (cause) {
|
|
323
325
|
const error = new Error(`The bundled Codex runtime for ${platform}/${arch} is unavailable. Reinstall @agentrouter-top/relay-dsh-plugin-codex, or set RELAY_CODEX_COMMAND to an absolute Codex executable path.`, { cause });
|
|
324
326
|
error.code = "CODEX_RUNTIME_MISSING";
|
|
325
327
|
throw error;
|
|
326
328
|
}
|
|
329
|
+
if (nativeCommand) {
|
|
330
|
+
const nativeEnv = {
|
|
331
|
+
...env,
|
|
332
|
+
CODEX_MANAGED_PACKAGE_ROOT: resolve(dirname(launcher), "..")
|
|
333
|
+
};
|
|
334
|
+
for (const manager of [
|
|
335
|
+
"NPM",
|
|
336
|
+
"BUN",
|
|
337
|
+
"PNPM",
|
|
338
|
+
"VITE_PLUS"
|
|
339
|
+
]) delete nativeEnv[`CODEX_MANAGED_BY_${manager}`];
|
|
340
|
+
nativeEnv.CODEX_MANAGED_BY_NPM = "1";
|
|
341
|
+
return Object.freeze({
|
|
342
|
+
command: nativeCommand,
|
|
343
|
+
argsPrefix: [],
|
|
344
|
+
source: "bundled",
|
|
345
|
+
env: Object.freeze(nativeEnv)
|
|
346
|
+
});
|
|
347
|
+
}
|
|
327
348
|
return Object.freeze({
|
|
328
349
|
command: execPath,
|
|
329
350
|
argsPrefix: [launcher],
|
|
@@ -440,6 +461,7 @@ var CodexAppServerClient = class extends EventEmitter {
|
|
|
440
461
|
command,
|
|
441
462
|
env: this.env
|
|
442
463
|
});
|
|
464
|
+
if (launch.env) this.env = launch.env;
|
|
443
465
|
this.command = launch.command;
|
|
444
466
|
this.commandSource = launch.source;
|
|
445
467
|
this.appServerArgs = [...args];
|