@youdie006/prodex 0.16.17 → 0.16.19

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/dist/cli.js CHANGED
@@ -303,6 +303,9 @@ repo: ${cwd}
303
303
  ${cli} pro browser login${sourceCliOption} # opens visible browser
304
304
  ${cli} pro browser login --dry-run${sourceCliOption} # preview, no browser opens
305
305
  In an interactive terminal, login waits and narrates until your ChatGPT session is READY.
306
+ Pin per-repo defaults first - otherwise sends silently use whatever the ChatGPT UI last had selected:
307
+ ${cli} pro browser projects${sourceCliOption} # read-only: exact sidebar project names
308
+ ${cli} setup --cwd ${quotedCwd} --model Pro --project "your-project" # every ask: Pro (15-minute timeout) inside that project
306
309
  cd ${quotedCwd}
307
310
  ${cli} ask --new-chat "Review this repo"${sourceCliOption} # short form of pro browser ask
308
311
  ${proAskCommand} # dry-run/manual preview
@@ -311,11 +314,13 @@ repo: ${cwd}
311
314
  ${cli} pro browser help${sourceCliOption}
312
315
  ${cli} pro browser check${sourceCliOption} --cwd ${quotedCwd}
313
316
  ${cli} pro browser smoke${sourceCliOption} --cwd ${quotedCwd}
317
+ Sharing the browser with other agents? Add --busy-wait-ms 600000 to queue behind an in-flight response instead of failing.
314
318
 
315
319
  2. Let coding agents consult ChatGPT (stdio MCP: Claude, Codex, Cursor, ...):
316
320
  ${cli} claude config --cwd ${quotedCwd}${sourceCliOption}
317
321
  ${cli} claude prompt --cwd ${quotedCwd}${sourceCliOption}
318
322
  Agents get the bridge/ledger tools plus pro_consult (ask ChatGPT Pro directly; see docs/clients.md for Codex timeout and approval notes).
323
+ Saved setup defaults (--model/--project) apply to agent consults too - pin them once per repo so consults stop landing in the general chat list.
319
324
  ${cli} pro debate-prompt --topic "your question"${sourceCliOption} # structured GPT Pro debate prompt for your agent
320
325
 
321
326
  3. Local bridge health and records:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@youdie006/prodex",
3
- "version": "0.16.17",
3
+ "version": "0.16.19",
4
4
  "description": "Local receipt bus for coordinating Codex execution with ChatGPT Pro/Projects consultation.",
5
5
  "author": "youdie006",
6
6
  "license": "MIT",