@youdie006/prodex 0.16.17 → 0.16.18

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.
@@ -32,8 +32,8 @@ const EFFORT_MENU_LABELS = {
32
32
  "매우 높음": ["매우 높음", "Extra High"]
33
33
  };
34
34
  const PRO_MODE_SUBMENU_LABELS = {
35
- "기본": ["Pro 기본", "Pro Standard"],
36
- "확장": ["Pro 확장", "Pro Extended"]
35
+ "기본": ["Pro 기본", "Pro Standard", "Standard", "기본"],
36
+ "확장": ["Pro 확장", "Pro Extended", "Extended", "확장"]
37
37
  };
38
38
  const PRO_MODE_ALIASES = {
39
39
  standard: "기본",
@@ -987,6 +987,27 @@ async function selectModelReasoning(cdp, options) {
987
987
  const wantsProMode = Boolean(options.proMode) && (!options.model || /pro/i.test(options.model));
988
988
  if (wantsProMode && options.proMode) {
989
989
  // Open the Pro sub-mode submenu via the chevron, then pick 기본/확장.
990
+ // Forward-compat first: docs say Pro Standard/Extended persist, but this
991
+ // browser's picker may not render the affordance yet (staged rollout).
992
+ // Radix submenus open on ArrowRight from the focused row - keyboard is
993
+ // sturdier than a hover-revealed chevron when the flag lands.
994
+ const subLabelsForProbe = PRO_MODE_SUBMENU_LABELS[options.proMode];
995
+ const proRow = await cdp.evaluate(proRadioRectExpression());
996
+ if (proRow.ok && proRow.x !== undefined && proRow.y !== undefined) {
997
+ await cdp.send("Input.dispatchMouseEvent", { type: "mouseMoved", x: proRow.x, y: proRow.y });
998
+ await sleep(200);
999
+ await cdp.send("Input.dispatchKeyEvent", { type: "keyDown", key: "ArrowRight", code: "ArrowRight", windowsVirtualKeyCode: 39 });
1000
+ await cdp.send("Input.dispatchKeyEvent", { type: "keyUp", key: "ArrowRight", code: "ArrowRight", windowsVirtualKeyCode: 39 });
1001
+ const subViaKeyboard = await waitForExpressionTrue(cdp, menuItemPresentExpression(subLabelsForProbe), 1_500);
1002
+ if (subViaKeyboard) {
1003
+ const subHit = await cdp.evaluate(submenuItemRectExpression(subLabelsForProbe));
1004
+ if (subHit.ok && subHit.x !== undefined && subHit.y !== undefined) {
1005
+ await verifiedClickWithRetry(cdp, () => cdp.evaluate(submenuItemRectExpression(subLabelsForProbe)), subLabelsForProbe[0]);
1006
+ await assertSelectionCommitted(cdp, subLabelsForProbe[0]);
1007
+ return;
1008
+ }
1009
+ }
1010
+ }
990
1011
  const expander = await cdp.evaluate(proSubmenuExpanderRectExpression());
991
1012
  if (!expander.ok || expander.x === undefined || expander.y === undefined) {
992
1013
  // Only the expander-specific miss means "the 2026-07 update removed the
@@ -998,7 +1019,7 @@ async function selectModelReasoning(cdp, options) {
998
1019
  }
999
1020
  // The saved setup default injects pro_mode into plain asks, so the user
1000
1021
  // may never have typed --pro-mode - name the clear command too.
1001
- throw new Error("The ChatGPT model menu no longer offers Pro sub-modes (the 2026-07 update removed the Pro submenu; Pro is a single mode now). Use --model Pro instead of --pro-mode - and if this ask did not pass --pro-mode, a saved default is injecting it: run `prodex setup --clear-pro-mode`. If ChatGPT restores sub-modes, update prodex (npm i -g @youdie006/prodex@latest).");
1022
+ throw new Error("This ChatGPT UI does not expose Pro sub-modes yet (staged rollout: Pro Standard/Extended exist per OpenAI docs and may already show in another browser, but this picker renders Pro as a single row - keyboard and hover probes both came up empty). Use --model Pro here for now and retry --pro-mode after the UI updates. If this ask did not pass --pro-mode, a saved default is injecting it: run `prodex setup --clear-pro-mode`.");
1002
1023
  }
1003
1024
  await verifiedClickWithRetry(cdp, () => cdp.evaluate(proSubmenuExpanderRectExpression()), "Pro sub-mode expander");
1004
1025
  const subLabels = PRO_MODE_SUBMENU_LABELS[options.proMode];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@youdie006/prodex",
3
- "version": "0.16.17",
3
+ "version": "0.16.18",
4
4
  "description": "Local receipt bus for coordinating Codex execution with ChatGPT Pro/Projects consultation.",
5
5
  "author": "youdie006",
6
6
  "license": "MIT",