@agentrouter-top/relay-dsh-plugin-codex 0.2.2-agentrouter.4 → 0.2.2-agentrouter.5

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,17 @@
1
+ # Quiet Codex activity presentation
2
+
3
+ Individual tool attempts do not raise user-facing failure warnings. Relay uses
4
+ neutral action labels for failed/nonzero-exit activities, with no warning
5
+ triangle, failed counter, error dot or outcome badge. Active work still shows
6
+ its progress indicator. No failure is relabelled as success.
7
+
8
+ Expanding a row still exposes its original input, output, provenance and exit
9
+ code. This is a rendering policy only: native App Server results, DSH events,
10
+ permissions, approvals, retries and saved history are unchanged. Codex continues
11
+ to receive the real result and decide how to proceed. Turn-level errors and
12
+ requests that require user action remain visible on their existing paths.
13
+
14
+ This policy covers Relay's grouped process, native-tool fallback and legacy
15
+ activity row. It uses Relay components and public DSH UI primitives only; the
16
+ AgentRouter main plugin merely pins the updated Relay package. No Desktop or
17
+ other kernel renderer is modified.
package/lib/client.js CHANGED
@@ -32123,7 +32123,7 @@ window.__ModuleLoader__.load({
32123
32123
  key: "1qoq8a"
32124
32124
  }]
32125
32125
  ]);
32126
- const TriangleAlert = createLucideIcon("triangle-alert", [
32126
+ createLucideIcon("triangle-alert", [
32127
32127
  ["path", {
32128
32128
  d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
32129
32129
  key: "wmoenq"
@@ -34871,7 +34871,6 @@ window.__ModuleLoader__.load({
34871
34871
  exports.LoaderCircle = LoaderCircle;
34872
34872
  exports.Search = Search;
34873
34873
  exports.Terminal = Terminal;
34874
- exports.TriangleAlert = TriangleAlert;
34875
34874
  exports.Wrench = Wrench;
34876
34875
  })))();
34877
34876
  const CODEX_ACTIVITY_TOOL = "relay_codex_activity";
@@ -35142,10 +35141,10 @@ window.__ModuleLoader__.load({
35142
35141
  function summarizeParts(parts) {
35143
35142
  const groups = /* @__PURE__ */ new Map();
35144
35143
  for (const part of parts) {
35144
+ const displayState = part.state === "error" || part.state === "exited" ? "attempt" : part.state;
35145
35145
  const key = JSON.stringify([
35146
35146
  part.category,
35147
- part.state,
35148
- part.exitCode,
35147
+ displayState,
35149
35148
  part.category === "unknown" ? part.label : null
35150
35149
  ]);
35151
35150
  const group = groups.get(key) ?? [];
@@ -35184,17 +35183,15 @@ window.__ModuleLoader__.load({
35184
35183
  if (part.label) {
35185
35184
  const suffix = {
35186
35185
  running: " (running)",
35187
- error: " (failed)",
35188
35186
  unknown: " (status unknown)"
35189
35187
  }[part.state] ?? "";
35190
35188
  return `${short(part.label, 120)}${part.count > 1 ? ` (${part.count} activities)` : ""}${suffix}`;
35191
35189
  }
35192
- const [present, past, infinitive, neutral] = verbs[part.category];
35190
+ const [present, past, , neutral] = verbs[part.category];
35193
35191
  const subject = short(part.subject);
35194
35192
  if (part.state === "running") return `${present} ${subject}`;
35195
35193
  if (part.state === "completed") return `${past} ${subject}`;
35196
- if (part.state === "error") return `Failed to ${infinitive} ${subject}`;
35197
- if (part.state === "exited") return `${neutral} exited ${part.exitCode}: ${subject}`;
35194
+ if (part.state === "error" || part.state === "exited") return `${neutral}: ${subject}`;
35198
35195
  return `${neutral} (status unknown): ${subject}`;
35199
35196
  }
35200
35197
  function basename(path) {
@@ -35789,11 +35786,6 @@ window.__ModuleLoader__.load({
35789
35786
  };
35790
35787
  //#endregion
35791
35788
  //#region src/client/CodexActivityView.tsx
35792
- function dotState(status) {
35793
- if (status === "running") return "ongoing";
35794
- if (status === "error") return "error";
35795
- return "done";
35796
- }
35797
35789
  function ActivityIcon({ category }) {
35798
35790
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(category === "read" ? import_lucide_react.BookOpen : category === "search" || category === "webSearch" ? import_lucide_react.Search : category === "listFiles" ? import_lucide_react.FolderOpen : category === "edit" ? import_lucide_react.FilePenLine : category === "image" || category === "imageGeneration" ? import_lucide_react.Image : category === "plan" ? import_lucide_react.ListChecks : category === "command" ? import_lucide_react.Terminal : import_lucide_react.Wrench, {
35799
35791
  size: 16,
@@ -35864,8 +35856,8 @@ window.__ModuleLoader__.load({
35864
35856
  expandOnRowClick: true,
35865
35857
  collapsedContent: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
35866
35858
  className: CodexActivityView_module_css_default.summary,
35867
- children: activity.status !== "completed" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
35868
- state: dotState(activity.status),
35859
+ children: activity.status === "running" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
35860
+ state: "ongoing",
35869
35861
  size: 8
35870
35862
  }) : null
35871
35863
  }),
@@ -35892,10 +35884,10 @@ window.__ModuleLoader__.load({
35892
35884
  label: "Output",
35893
35885
  text: activity.output
35894
35886
  }) : null] }),
35895
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
35887
+ activity.exitCode !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
35896
35888
  className: CodexActivityView_module_css_default.footer,
35897
- children: [activity.exitCode !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: ["exit ", activity.exitCode] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: statusLabel(activity.status) })]
35898
- })
35889
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: ["exit ", activity.exitCode] })
35890
+ }) : null
35899
35891
  ]
35900
35892
  })
35901
35893
  })
@@ -35910,11 +35902,6 @@ window.__ModuleLoader__.load({
35910
35902
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", { children: text })]
35911
35903
  });
35912
35904
  }
35913
- function statusLabel(status) {
35914
- if (status === "running") return "Running";
35915
- if (status === "error") return "Failed";
35916
- return "Success";
35917
- }
35918
35905
  function shortId(value) {
35919
35906
  return value.length > 15 ? `${value.slice(0, 8)}...${value.slice(-4)}` : value;
35920
35907
  }
@@ -36146,7 +36133,6 @@ window.__ModuleLoader__.load({
36146
36133
  const [open, setOpen] = (0, react.useState)(false);
36147
36134
  const activities = segments.flatMap((segment) => segment.activity ? [segment.activity] : []);
36148
36135
  const active = activities.filter((activity) => activity.status === "running");
36149
- const failed = activities.filter((activity) => activity.status === "error").length;
36150
36136
  const current = active.at(-1);
36151
36137
  const representative = current ?? activities.at(-1);
36152
36138
  if (!representative) return null;
@@ -36179,15 +36165,6 @@ window.__ModuleLoader__.load({
36179
36165
  className: CodexProcessView_module_css_default.count,
36180
36166
  children: [active.length, " running"]
36181
36167
  }),
36182
- failed > 0 && current && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
36183
- className: CodexProcessView_module_css_default.error,
36184
- children: [failed, " failed"]
36185
- }),
36186
- failed > 0 && !current && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(import_lucide_react.TriangleAlert, {
36187
- size: 14,
36188
- className: CodexProcessView_module_css_default.error,
36189
- "aria-label": "Failed"
36190
- }),
36191
36168
  open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(import_lucide_react.ChevronDown, { size: 14 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(import_lucide_react.ChevronRight, { size: 14 })
36192
36169
  ]
36193
36170
  }), open && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {