@youdie006/prodex 0.16.4 → 0.16.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.
- package/dist/chatgpt-browser.js +20 -2
- package/package.json +1 -1
package/dist/chatgpt-browser.js
CHANGED
|
@@ -857,6 +857,13 @@ export function projectItemRectExpression(name) {
|
|
|
857
857
|
}
|
|
858
858
|
}
|
|
859
859
|
if (!target) return { ok: false, reason: "project not found in sidebar" };
|
|
860
|
+
// 2026-07 ChatGPT update: the project row (li) is no longer a link - the
|
|
861
|
+
// navigation affordance is a dedicated "Open project home" button inside
|
|
862
|
+
// the row (verified live: clicking the row does nothing, clicking the home
|
|
863
|
+
// button navigates to /g/g-p-...). Prefer it; fall back to the row click
|
|
864
|
+
// for the old UI.
|
|
865
|
+
const home = target.querySelector('[aria-label*="project home" i],[aria-label*="프로젝트 홈"]');
|
|
866
|
+
if (home) return clickPoint(home);
|
|
860
867
|
return clickPoint(target, 18);
|
|
861
868
|
})()`;
|
|
862
869
|
}
|
|
@@ -903,7 +910,11 @@ async function selectModelReasoning(cdp, options) {
|
|
|
903
910
|
// Open the Pro sub-mode submenu via the chevron, then pick 기본/확장.
|
|
904
911
|
const expander = await cdp.evaluate(proSubmenuExpanderRectExpression());
|
|
905
912
|
if (!expander.ok || expander.x === undefined || expander.y === undefined) {
|
|
906
|
-
|
|
913
|
+
// The 2026-07 ChatGPT update removed the Pro sub-mode chevron from the
|
|
914
|
+
// model picker (verified live, including on hover) - Pro is a plain
|
|
915
|
+
// radio now. Name the change and the working alternative instead of a
|
|
916
|
+
// bare "expander not found".
|
|
917
|
+
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. If ChatGPT restores sub-modes, update prodex (npm i -g @youdie006/prodex@latest).");
|
|
907
918
|
}
|
|
908
919
|
await verifiedClickAt(cdp, expander.x, expander.y, "Pro sub-mode expander");
|
|
909
920
|
const subLabels = PRO_MODE_SUBMENU_LABELS[options.proMode];
|
|
@@ -1063,7 +1074,14 @@ async function selectProject(cdp, options) {
|
|
|
1063
1074
|
await verifiedClickAt(cdp, hit.x, hit.y, `project ${options.project}`);
|
|
1064
1075
|
const navigated = await waitForExpressionTrue(cdp, `location.href !== ${JSON.stringify(hrefBefore)}`, PROJECT_NAVIGATION_TIMEOUT_MS);
|
|
1065
1076
|
if (!navigated) {
|
|
1066
|
-
|
|
1077
|
+
// The href staying put is fine when the tab was ALREADY on this project's
|
|
1078
|
+
// home: the click landed on the requested row's own navigation control
|
|
1079
|
+
// (hover-verified above), so an unchanged project URL means "already
|
|
1080
|
+
// there", not a failed click.
|
|
1081
|
+
const alreadyInProject = await cdp.evaluate(`/^https:\\/\\/chatgpt\\.com\\/g\\/g-p-/.test(location.href)`);
|
|
1082
|
+
if (!alreadyInProject) {
|
|
1083
|
+
throw new Error(`Clicking project "${options.project}" did not navigate the visible tab. If the tab is already inside this project, omit --project and retry.`);
|
|
1084
|
+
}
|
|
1067
1085
|
}
|
|
1068
1086
|
const composerReady = await waitForExpressionTrue(cdp, `Boolean(document.querySelector('#prompt-textarea,[contenteditable="true"],textarea'))`, PROJECT_NAVIGATION_TIMEOUT_MS);
|
|
1069
1087
|
if (!composerReady) {
|