@karlorz/codexhost-cli-win32-x64 0.13.3-0 → 0.13.3-3

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/README.md CHANGED
@@ -7,7 +7,7 @@ Run Pi and Claude Code as first-class external harnesses inside Codex Desktop.
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm install -g @karlorz/codexhost-cli@0.13.3-0
10
+ npm install -g @karlorz/codexhost-cli@0.13.3-3
11
11
  ```
12
12
 
13
13
  Do not install this package directly. npm selects it through the optional dependencies of `@karlorz/codexhost-cli`.
@@ -1 +1 @@
1
- {"schemaVersion":1,"version":"0.13.3-0","distribution":"npm","target":"windows-x64"}
1
+ {"schemaVersion":1,"version":"0.13.3-3","distribution":"npm","target":"windows-x64"}
@@ -18856,6 +18856,7 @@ th[aria-sort] .console-usage-sort__mark {
18856
18856
  "Codex Desktop installation discovered": "findDesktop",
18857
18857
  "acquiring Launcher ownership": "ownership",
18858
18858
  "Launcher ownership acquired": "ownership",
18859
+ "recovering leftover Desktop Controller": "ownership",
18859
18860
  "attached to existing controlled Desktop": "ownership",
18860
18861
  "launching Codex Desktop": "launchDesktop",
18861
18862
  "Codex Desktop launched": "launchDesktop",
@@ -20662,6 +20663,14 @@ th[aria-sort] .console-usage-sort__mark {
20662
20663
  otherSection: "Other",
20663
20664
  appearanceDescription: "Conversation display and local resource management.",
20664
20665
  appearanceGroup: "Appearance",
20666
+ hideCodexUsageBannerTitle: "Hide Codex usage warning",
20667
+ hideCodexUsageBannerDescription: "On by default. Hide the out-of-usage card on every Composer.",
20668
+ hideCodexUsageBannerHelpLabel: "About hiding the Codex usage warning",
20669
+ hideCodexUsageBannerHelp: Object.freeze([
20670
+ "The native card appears when the signed-in ChatGPT Codex quota is exhausted.",
20671
+ "When this is on, that card is hidden on every Composer, including Codex threads. Reset usage and Upgrade stay available in Settings.",
20672
+ "Turning this off only shows the native card again. Send on this Composer, including Codex threads, is already separated from that quota card."
20673
+ ]),
20665
20674
  cpaLiveVoiceTitle: "Override live voice",
20666
20675
  cpaLiveVoiceDescription: "On by default. Host creates the realtime call instead of ChatGPT.",
20667
20676
  cpaLiveVoiceHelpLabel: "About overriding live voice",
@@ -20945,6 +20954,14 @@ th[aria-sort] .console-usage-sort__mark {
20945
20954
  otherSection: "\u5176\u4ED6",
20946
20955
  appearanceDescription: "\u4F1A\u8BDD\u663E\u793A\u4E0E\u672C\u5730\u8D44\u6E90\u7BA1\u7406\u3002",
20947
20956
  appearanceGroup: "\u5916\u89C2",
20957
+ hideCodexUsageBannerTitle: "\u9690\u85CF Codex \u989D\u5EA6\u8B66\u544A",
20958
+ hideCodexUsageBannerDescription: "\u9ED8\u8BA4\u5F00\u542F\u3002\u5728\u6240\u6709 Composer \u4E0A\u9690\u85CF\u989D\u5EA6\u8017\u5C3D\u5361\u7247\u3002",
20959
+ hideCodexUsageBannerHelpLabel: "\u9690\u85CF Codex \u989D\u5EA6\u8B66\u544A\u8BF4\u660E",
20960
+ hideCodexUsageBannerHelp: Object.freeze([
20961
+ "\u5DF2\u767B\u5F55\u7684 ChatGPT Codex \u989D\u5EA6\u8017\u5C3D\u65F6\uFF0CDesktop \u4F1A\u663E\u793A\u539F\u751F\u8B66\u544A\u5361\u7247\u3002",
20962
+ "\u5F00\u542F\u540E\uFF0C\u6240\u6709 Composer \u90FD\u9690\u85CF\u8BE5\u5361\u7247\uFF0C\u5305\u62EC Codex \u4F1A\u8BDD\u3002\u300C\u91CD\u7F6E\u7528\u91CF\u300D\u548C\u300C\u5347\u7EA7\u300D\u4ECD\u53EF\u5728\u8BBE\u7F6E\u4E2D\u4F7F\u7528\u3002",
20963
+ "\u5173\u95ED\u6B64\u5F00\u5173\u53EA\u4F1A\u91CD\u65B0\u663E\u793A\u539F\u751F\u5361\u7247\u3002\u5F53\u524D Composer \u7684\u53D1\u9001\uFF08\u5305\u62EC Codex \u4F1A\u8BDD\uFF09\u5DF2\u4E0E\u8BE5\u989D\u5EA6\u5361\u7247\u5206\u79BB\u3002"
20964
+ ]),
20948
20965
  cpaLiveVoiceTitle: "\u6539\u5199\u5B9E\u65F6\u8BED\u97F3",
20949
20966
  cpaLiveVoiceDescription: "\u9ED8\u8BA4\u5F00\u542F\u3002\u7531 Host \u521B\u5EFA realtime \u901A\u8BDD\uFF0C\u800C\u4E0D\u662F ChatGPT\u3002",
20950
20967
  cpaLiveVoiceHelpLabel: "\u6539\u5199\u5B9E\u65F6\u8BED\u97F3\u8BF4\u660E",
@@ -26744,6 +26761,27 @@ ${error51.stderrTail}`] : []
26744
26761
  };
26745
26762
  }
26746
26763
 
26764
+ // src/renderer-codex-usage-banner-preference.ts
26765
+ var CODEX_USAGE_BANNER_STORAGE_KEY = "codexhost.codex-usage-banner-hidden.v1";
26766
+ var CODEX_USAGE_BANNER_CHANGE_EVENT = "codexhost:codex-usage-banner-changed";
26767
+ function readCodexUsageBannerPreference(owner) {
26768
+ if (!owner) return true;
26769
+ try {
26770
+ return owner.localStorage.getItem(CODEX_USAGE_BANNER_STORAGE_KEY) !== "0";
26771
+ } catch {
26772
+ return true;
26773
+ }
26774
+ }
26775
+ function writeCodexUsageBannerPreference(owner, enabled) {
26776
+ try {
26777
+ owner.localStorage.setItem(CODEX_USAGE_BANNER_STORAGE_KEY, enabled ? "1" : "0");
26778
+ } catch {
26779
+ return false;
26780
+ }
26781
+ owner.dispatchEvent(new Event(CODEX_USAGE_BANNER_CHANGE_EVENT));
26782
+ return true;
26783
+ }
26784
+
26747
26785
  // src/renderer-transcript-dom.ts
26748
26786
  var REASONING_SOFT_WRAP_STORAGE_KEY = "codexhost.reasoning-soft-wrap.v1";
26749
26787
  var REASONING_SOFT_WRAP_CHANGE_EVENT = "codexhost:reasoning-soft-wrap-changed";
@@ -27010,6 +27048,31 @@ ${error51.stderrTail}`] : []
27010
27048
  description.className = "settings-page-description";
27011
27049
  description.textContent = messages.appearanceDescription;
27012
27050
  const { group, card } = createPreferenceGroup(document2, messages.appearanceGroup);
27051
+ const usageBannerId = preferenceId("hide-codex-usage-banner");
27052
+ const usageBannerRow = createPreferenceItem(document2, {
27053
+ title: messages.hideCodexUsageBannerTitle,
27054
+ description: messages.hideCodexUsageBannerDescription,
27055
+ controlId: usageBannerId,
27056
+ help: {
27057
+ label: messages.hideCodexUsageBannerHelpLabel,
27058
+ lines: messages.hideCodexUsageBannerHelp
27059
+ }
27060
+ });
27061
+ const usageBanner = createPreferenceSwitch(
27062
+ document2,
27063
+ usageBannerId,
27064
+ usageBannerRow.description.id
27065
+ );
27066
+ usageBanner.checked = readCodexUsageBannerPreference(ownerWindow);
27067
+ usageBanner.addEventListener("change", () => {
27068
+ writeCodexUsageBannerPreference(ownerWindow, usageBanner.checked);
27069
+ });
27070
+ const syncUsageBanner = () => {
27071
+ usageBanner.checked = readCodexUsageBannerPreference(ownerWindow);
27072
+ };
27073
+ ownerWindow.addEventListener(CODEX_USAGE_BANNER_CHANGE_EVENT, syncUsageBanner);
27074
+ usageBannerRow.item.append(usageBanner);
27075
+ card.append(usageBannerRow.item);
27013
27076
  const liveVoiceId = preferenceId("cpa-live-voice");
27014
27077
  const liveVoiceRow = createPreferenceItem(document2, {
27015
27078
  title: messages.cpaLiveVoiceTitle,
@@ -27059,6 +27122,7 @@ ${error51.stderrTail}`] : []
27059
27122
  getLoadedSessionsClient
27060
27123
  );
27061
27124
  return () => {
27125
+ ownerWindow.removeEventListener(CODEX_USAGE_BANNER_CHANGE_EVENT, syncUsageBanner);
27062
27126
  ownerWindow.removeEventListener(CPA_LIVE_VOICE_CHANGE_EVENT, syncLiveVoice);
27063
27127
  ownerWindow.removeEventListener(REASONING_SOFT_WRAP_CHANGE_EVENT, sync);
27064
27128
  disposeIdleRelease();