






















@@ -57,6 +57,47 @@ type OnboardSearchModule = typeof import("../commands/onboard-search.js");
5757let onboardSearchModulePromise: Promise<OnboardSearchModule> | undefined;
5858const HATCH_TUI_TIMEOUT_MS = 5 * 60 * 1000;
595960+async function showControlUiDashboardNote(params: {
61+prompter: WizardPrompter;
62+settings: GatewayWizardSettings;
63+authedUrl: string;
64+controlUiBasePath: string | undefined;
65+hintToken: string | undefined;
66+}): Promise<{ opened: boolean }> {
67+let opened = false;
68+let openHint: string | undefined;
69+const browserSupport = await detectBrowserOpenSupport();
70+if (browserSupport.ok) {
71+opened = await openUrl(params.authedUrl);
72+if (!opened) {
73+openHint = formatControlUiSshHint({
74+port: params.settings.port,
75+basePath: params.controlUiBasePath,
76+token: params.hintToken,
77+});
78+}
79+} else {
80+openHint = formatControlUiSshHint({
81+port: params.settings.port,
82+basePath: params.controlUiBasePath,
83+token: params.hintToken,
84+});
85+}
86+87+await params.prompter.note(
88+[
89+t("wizard.finalize.dashboardLinkWithToken", { url: params.authedUrl }),
90+opened ? t("wizard.finalize.dashboardOpened") : t("wizard.finalize.dashboardCopyPaste"),
91+openHint,
92+]
93+.filter(Boolean)
94+.join("\n"),
95+t("wizard.finalize.dashboardReady"),
96+);
97+98+return { opened };
99+}
100+60101function getLocalizedGatewayDaemonRuntimeOptions() {
61102return GATEWAY_DAEMON_RUNTIME_OPTIONS.map((option) => ({
62103hint:
@@ -433,7 +474,6 @@ export async function finalizeSetupWizard(
433474);
434475435476let controlUiOpened = false;
436-let controlUiOpenHint: string | undefined;
437477let seededInBackground = false;
438478let hatchChoice: "tui" | "web" | "later" | null = null;
439479let launchedTui = false;
@@ -497,41 +537,17 @@ export async function finalizeSetupWizard(
497537}
498538launchedTui = true;
499539} else if (hatchChoice === "web") {
500-const browserSupport = await detectBrowserOpenSupport();
501-if (browserSupport.ok) {
502-controlUiOpened = await openUrl(authedUrl);
503-if (!controlUiOpened) {
504-controlUiOpenHint = formatControlUiSshHint({
505-port: settings.port,
506-basePath: controlUiBasePath,
507-token:
508-settings.authMode === "token" && !suppressGatewayTokenOutput
509- ? settings.gatewayToken
510- : undefined,
511-});
512-}
513-} else {
514-controlUiOpenHint = formatControlUiSshHint({
515-port: settings.port,
516-basePath: controlUiBasePath,
517-token:
518-settings.authMode === "token" && !suppressGatewayTokenOutput
519- ? settings.gatewayToken
520- : undefined,
521-});
522-}
523-await prompter.note(
524-[
525-t("wizard.finalize.dashboardLinkWithToken", { url: authedUrl }),
526-controlUiOpened
527- ? t("wizard.finalize.dashboardOpened")
528- : t("wizard.finalize.dashboardCopyPaste"),
529-controlUiOpenHint,
530-]
531-.filter(Boolean)
532-.join("\n"),
533-t("wizard.finalize.dashboardReady"),
534-);
540+const dashboard = await showControlUiDashboardNote({
541+ prompter,
542+ settings,
543+ authedUrl,
544+ controlUiBasePath,
545+hintToken:
546+settings.authMode === "token" && !suppressGatewayTokenOutput
547+ ? settings.gatewayToken
548+ : undefined,
549+});
550+controlUiOpened = dashboard.opened;
535551} else {
536552await prompter.note(
537553t("wizard.finalize.dashboardWhenReady", {
@@ -561,36 +577,14 @@ export async function finalizeSetupWizard(
561577!suppressGatewayTokenOutput &&
562578hatchChoice === null;
563579if (shouldOpenControlUi) {
564-const browserSupport = await detectBrowserOpenSupport();
565-if (browserSupport.ok) {
566-controlUiOpened = await openUrl(authedUrl);
567-if (!controlUiOpened) {
568-controlUiOpenHint = formatControlUiSshHint({
569-port: settings.port,
570-basePath: controlUiBasePath,
571-token: settings.gatewayToken,
572-});
573-}
574-} else {
575-controlUiOpenHint = formatControlUiSshHint({
576-port: settings.port,
577-basePath: controlUiBasePath,
578-token: settings.gatewayToken,
579-});
580-}
581-582-await prompter.note(
583-[
584-t("wizard.finalize.dashboardLinkWithToken", { url: authedUrl }),
585-controlUiOpened
586- ? t("wizard.finalize.dashboardOpened")
587- : t("wizard.finalize.dashboardCopyPaste"),
588-controlUiOpenHint,
589-]
590-.filter(Boolean)
591-.join("\n"),
592-t("wizard.finalize.dashboardReady"),
593-);
580+const dashboard = await showControlUiDashboardNote({
581+ prompter,
582+ settings,
583+ authedUrl,
584+ controlUiBasePath,
585+hintToken: settings.gatewayToken,
586+});
587+controlUiOpened = dashboard.opened;
594588}
595589596590const codexNativeSummary = describeCodexNativeWebSearch(nextConfig);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。