@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.
@@ -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}[data-chat-flow]:has([data-codex-process-turn][data-status=running])>[role=status][aria-live=polite]{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");
@@ -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];