@posthog/wizard 2.65.0 → 2.66.0
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/{add-mcp-server-to-clients-ArtlMX9-.js → add-mcp-server-to-clients-DWDEuDUR.js} +209 -45
- package/dist/add-mcp-server-to-clients-DWDEuDUR.js.map +1 -0
- package/dist/{agent-interface-ORzGEFNM.js → agent-interface-D3MNaDp3.js} +337 -44
- package/dist/agent-interface-D3MNaDp3.js.map +1 -0
- package/dist/{agent-prompt-loader-D3w6sc34.js → agent-prompt-loader-D8Bajo-L.js} +5 -5
- package/dist/{agent-prompt-loader-D3w6sc34.js.map → agent-prompt-loader-D8Bajo-L.js.map} +1 -1
- package/dist/{agent-runner-Ca-e2TOQ.js → agent-runner-DEeMqJxy.js} +100 -49
- package/dist/agent-runner-DEeMqJxy.js.map +1 -0
- package/dist/{analytics-zBrIVjMV.js → analytics-D8JNuPAT.js} +2 -2
- package/dist/{analytics-zBrIVjMV.js.map → analytics-D8JNuPAT.js.map} +1 -1
- package/dist/analytics-DN3Kzf7H.js +2 -0
- package/dist/{api-Wgb7AhrP.js → api-CemGgyBv.js} +3 -3
- package/dist/{api-Wgb7AhrP.js.map → api-CemGgyBv.js.map} +1 -1
- package/dist/bin.js +95 -67
- package/dist/bin.js.map +1 -1
- package/dist/{bounded-fs-DqsVmh4r.js → bounded-fs-C6OjqZst.js} +3 -3
- package/dist/{bounded-fs-DqsVmh4r.js.map → bounded-fs-C6OjqZst.js.map} +1 -1
- package/dist/{ci-install-D1QqmJIc.js → ci-install-DIB2n4Ju.js} +4 -4
- package/dist/{ci-install-D1QqmJIc.js.map → ci-install-DIB2n4Ju.js.map} +1 -1
- package/dist/{debug-Cm1hvkVy.js → debug-BKqv-yfT.js} +3 -3
- package/dist/{debug-Cm1hvkVy.js.map → debug-BKqv-yfT.js.map} +1 -1
- package/dist/{debug-CtQ13sCW.js → debug-H-GTKvvU.js} +1 -1
- package/dist/{env-api-key-CdI2XZIz.js → env-api-key-CzHDwfV2.js} +2 -2
- package/dist/{env-api-key-CdI2XZIz.js.map → env-api-key-CzHDwfV2.js.map} +1 -1
- package/dist/{environment-BhFvfkQg.js → environment-Cl-fIQku.js} +4 -4
- package/dist/{environment-BhFvfkQg.js.map → environment-Cl-fIQku.js.map} +1 -1
- package/dist/{file-watcher-Dciz09Rr.js → file-watcher-Cr-4tA-e.js} +2 -2
- package/dist/{file-watcher-Dciz09Rr.js.map → file-watcher-Cr-4tA-e.js.map} +1 -1
- package/dist/{headless-ui-B4FnKm11.js → headless-ui-DT3Db1bk.js} +2 -2
- package/dist/{headless-ui-B4FnKm11.js.map → headless-ui-DT3Db1bk.js.map} +1 -1
- package/dist/{interactive-DxHFVYr2.js → interactive-D3LdFxZG.js} +2 -2
- package/dist/{interactive-DxHFVYr2.js.map → interactive-D3LdFxZG.js.map} +1 -1
- package/dist/{mcp-t0UxAPur.js → mcp-BjckYQmP.js} +2 -2
- package/dist/{mcp-t0UxAPur.js.map → mcp-BjckYQmP.js.map} +1 -1
- package/dist/mcp-install-smoke-test.ts +477 -0
- package/dist/{mcp-prompt-streaming-ro98iUDc.js → mcp-prompt-streaming--sRErHKv.js} +4 -4
- package/dist/{mcp-prompt-streaming-ro98iUDc.js.map → mcp-prompt-streaming--sRErHKv.js.map} +1 -1
- package/dist/{non-interactive-BA2L_jDT.js → non-interactive-CNoYoEZp.js} +2 -2
- package/dist/{non-interactive-BA2L_jDT.js.map → non-interactive-CNoYoEZp.js.map} +1 -1
- package/dist/{orchestrator-tools-vZmNsHy9.js → orchestrator-tools-8bGyDDhn.js} +3 -3
- package/dist/{orchestrator-tools-vZmNsHy9.js.map → orchestrator-tools-8bGyDDhn.js.map} +1 -1
- package/dist/{package-manager-DgqJdAQk.js → package-manager-BQDHm7ER.js} +2 -2
- package/dist/{package-manager-DgqJdAQk.js.map → package-manager-BQDHm7ER.js.map} +1 -1
- package/dist/{pi-nwrCARRp.js → pi-W-4RUPFY.js} +11 -11
- package/dist/{pi-nwrCARRp.js.map → pi-W-4RUPFY.js.map} +1 -1
- package/dist/{playground-xkEke_h0.js → playground-uHHgZChe.js} +7 -7
- package/dist/{playground-xkEke_h0.js.map → playground-uHHgZChe.js.map} +1 -1
- package/dist/{posthog-9To56cSd.js → posthog-ChzdlmCs.js} +2 -2
- package/dist/{posthog-9To56cSd.js.map → posthog-ChzdlmCs.js.map} +1 -1
- package/dist/{posthog-integration-CoPvN6YZ.js → posthog-integration-LxEBGkoe.js} +661 -35
- package/dist/posthog-integration-LxEBGkoe.js.map +1 -0
- package/dist/{provisioning-BYFSHSHY.js → provisioning-BHTl91OZ.js} +3 -3
- package/dist/{provisioning-BYFSHSHY.js.map → provisioning-BHTl91OZ.js.map} +1 -1
- package/dist/{queue-tools-BREbgGSC.js → queue-tools-DABh1Ssc.js} +33 -7
- package/dist/queue-tools-DABh1Ssc.js.map +1 -0
- package/dist/{registry-DGJQ_8QI.js → registry-CxNpCNAj.js} +5 -5
- package/dist/{registry-DGJQ_8QI.js.map → registry-CxNpCNAj.js.map} +1 -1
- package/dist/{security-wc-naGq5.js → security-B4jU_-7q.js} +5 -5
- package/dist/{security-wc-naGq5.js.map → security-B4jU_-7q.js.map} +1 -1
- package/dist/{setup-utils-Cz0wPLsQ.js → setup-utils-aWZEdfwh.js} +9 -9
- package/dist/{setup-utils-Cz0wPLsQ.js.map → setup-utils-aWZEdfwh.js.map} +1 -1
- package/dist/{start-tui-DDW9uVnD.js → start-tui-BQH4mQIZ.js} +43 -21
- package/dist/start-tui-BQH4mQIZ.js.map +1 -0
- package/dist/{steps-CZI0B24_.js → steps-5HAqjUvn.js} +7 -7
- package/dist/{steps-CZI0B24_.js.map → steps-5HAqjUvn.js.map} +1 -1
- package/dist/{store-xMkU8xAa.js → store-P_7zUfbj.js} +7 -6
- package/dist/{store-xMkU8xAa.js.map → store-P_7zUfbj.js.map} +1 -1
- package/dist/{subagent-BztacyoV.js → subagent-uGPDXPfS.js} +2 -2
- package/dist/{subagent-BztacyoV.js.map → subagent-uGPDXPfS.js.map} +1 -1
- package/dist/{task-CJ7x3McC.js → task-oh8OAnvR.js} +12 -12
- package/dist/{task-CJ7x3McC.js.map → task-oh8OAnvR.js.map} +1 -1
- package/dist/{task-stream-BK7JQ27G.js → task-stream-jUARpyB5.js} +5 -5
- package/dist/{task-stream-BK7JQ27G.js.map → task-stream-jUARpyB5.js.map} +1 -1
- package/dist/{tasks-FGzp_zBd.js → tasks-2mu3lAvm.js} +2 -2
- package/dist/{tasks-FGzp_zBd.js.map → tasks-2mu3lAvm.js.map} +1 -1
- package/dist/{telemetry-By56gAtF.js → telemetry-BllPiBKw.js} +3 -3
- package/dist/{telemetry-By56gAtF.js.map → telemetry-BllPiBKw.js.map} +1 -1
- package/dist/{terminal-C_rmkaku.js → terminal-aWQrDy8s.js} +72 -79
- package/dist/terminal-aWQrDy8s.js.map +1 -0
- package/dist/{tools-BpCJgMez.js → tools-u8TaJFqa.js} +54 -47
- package/dist/tools-u8TaJFqa.js.map +1 -0
- package/dist/{wizard-abort-CzwID162.js → wizard-abort-D9jiMkZA.js} +4 -4
- package/dist/{wizard-abort-CzwID162.js.map → wizard-abort-D9jiMkZA.js.map} +1 -1
- package/dist/{wizard-abort-BlDla_Jd.js → wizard-abort-pFFH7dcx.js} +1 -1
- package/dist/{wizard-session-UxA_A0cA.js → wizard-session-Cw7-_OcZ.js} +1 -1
- package/dist/{wizard-session-Bn6dO1gE.js → wizard-session-DTyLMPsX.js} +2 -1
- package/dist/{wizard-session-Bn6dO1gE.js.map → wizard-session-DTyLMPsX.js.map} +1 -1
- package/dist/{yara-hooks-BrisBebM.js → yara-hooks-BXDBIOBq.js} +4 -4
- package/dist/{yara-hooks-BrisBebM.js.map → yara-hooks-BXDBIOBq.js.map} +1 -1
- package/dist/yara-hooks-i2jOabhI.js +2 -0
- package/package.json +2 -1
- package/dist/add-mcp-server-to-clients-ArtlMX9-.js.map +0 -1
- package/dist/agent-interface-ORzGEFNM.js.map +0 -1
- package/dist/agent-runner-Ca-e2TOQ.js.map +0 -1
- package/dist/analytics-C4j6grao.js +0 -2
- package/dist/posthog-integration-CoPvN6YZ.js.map +0 -1
- package/dist/queue-tools-BREbgGSC.js.map +0 -1
- package/dist/start-tui-DDW9uVnD.js.map +0 -1
- package/dist/terminal-C_rmkaku.js.map +0 -1
- package/dist/tools-BpCJgMez.js.map +0 -1
- package/dist/yara-hooks-D2B7Fd9G.js +0 -2
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { V as POSTHOG_APP_URL, h as SERVICE_LABELS, mt as getSkillsBaseUrl, pt as WIZARD_USER_AGENT, s as logToFile } from "./debug-
|
|
2
|
-
import { n as analytics } from "./analytics-
|
|
3
|
-
import { i as withUtm, n as openTrackedLink } from "./telemetry-
|
|
4
|
-
import { t as getOrAskForProjectData } from "./setup-utils-
|
|
5
|
-
import { a as fetchUserData, i as fetchSlackConnected } from "./api-
|
|
6
|
-
import "./wizard-session-
|
|
7
|
-
import { a as formatCostUsd, o as formatTokenCount } from "./agent-runner-
|
|
8
|
-
import {
|
|
9
|
-
import { y as AUDIT_SEVERITY_STYLE } from "./yara-hooks-
|
|
10
|
-
import { c as TextBlock, d as isClearBlock, f as isLinesBlock, h as Icons, l as computeVisibleRange, m as Colors, p as isObjectBlock } from "./posthog-integration-
|
|
1
|
+
import { V as POSTHOG_APP_URL, h as SERVICE_LABELS, mt as getSkillsBaseUrl, pt as WIZARD_USER_AGENT, s as logToFile } from "./debug-BKqv-yfT.js";
|
|
2
|
+
import { n as analytics } from "./analytics-D8JNuPAT.js";
|
|
3
|
+
import { i as withUtm, n as openTrackedLink } from "./telemetry-BllPiBKw.js";
|
|
4
|
+
import { t as getOrAskForProjectData } from "./setup-utils-aWZEdfwh.js";
|
|
5
|
+
import { a as fetchUserData, i as fetchSlackConnected } from "./api-CemGgyBv.js";
|
|
6
|
+
import "./wizard-session-DTyLMPsX.js";
|
|
7
|
+
import { a as formatCostUsd, o as formatTokenCount } from "./agent-runner-DEeMqJxy.js";
|
|
8
|
+
import { j as fetchSkillMenu } from "./agent-interface-D3MNaDp3.js";
|
|
9
|
+
import { y as AUDIT_SEVERITY_STYLE } from "./yara-hooks-BXDBIOBq.js";
|
|
10
|
+
import { c as TextBlock, d as isClearBlock, f as isLinesBlock, h as Icons, l as computeVisibleRange, m as Colors, p as isObjectBlock } from "./posthog-integration-LxEBGkoe.js";
|
|
11
11
|
import { E as getKindMeta, a as useStdoutDimensions, f as Program, i as useKeyboardHintsContext, n as useKeyBindings, o as ConfirmButton, r as KeyboardHintsProvider, s as PromptLabel, t as PickerMenu } from "./bin.js";
|
|
12
|
-
import { r as totalTokenCount } from "./store-
|
|
12
|
+
import { r as totalTokenCount } from "./store-P_7zUfbj.js";
|
|
13
13
|
import { c as namesWithStatus, n as AVAILABLE_FEATURES, o as isAllFeaturesSelected, s as isOk, t as ALL_FEATURE_VALUES, u as summarizeFailure } from "./defaults-BHhXrX9F.js";
|
|
14
14
|
import opn from "opn";
|
|
15
15
|
import * as fs$1 from "fs";
|
|
@@ -2700,8 +2700,25 @@ const IssueRow = ({ issue, docsWidth }) => {
|
|
|
2700
2700
|
*
|
|
2701
2701
|
* When done, calls store.setMcpComplete(). The router resolves to outro.
|
|
2702
2702
|
*/
|
|
2703
|
-
const markDone = (store, outcome, clients = [], featuresSelected) => {
|
|
2704
|
-
store.setMcpComplete(outcome, clients, featuresSelected);
|
|
2703
|
+
const markDone = (store, outcome, clients = [], featuresSelected, loginCommands = []) => {
|
|
2704
|
+
store.setMcpComplete(outcome, clients, featuresSelected, loginCommands);
|
|
2705
|
+
};
|
|
2706
|
+
/**
|
|
2707
|
+
* The editor-owned login commands still to run after this install: fresh
|
|
2708
|
+
* config entries use the client's own server name, plugin-provided servers
|
|
2709
|
+
* their `plugin:` name. One entry per client.
|
|
2710
|
+
*/
|
|
2711
|
+
const pendingLoginCommands = (clients, mcpResult, pluginResult) => {
|
|
2712
|
+
const commands = /* @__PURE__ */ new Map();
|
|
2713
|
+
for (const r of pluginResult) {
|
|
2714
|
+
const command = clients.find((c) => c.name === r.name)?.pluginLoginCommand;
|
|
2715
|
+
if (isOk(r) && command) commands.set(r.name, command);
|
|
2716
|
+
}
|
|
2717
|
+
for (const r of mcpResult) {
|
|
2718
|
+
const command = clients.find((c) => c.name === r.name)?.loginCommand;
|
|
2719
|
+
if (r.status === "changed" && command) commands.set(r.name, command);
|
|
2720
|
+
}
|
|
2721
|
+
return [...commands.values()];
|
|
2705
2722
|
};
|
|
2706
2723
|
const reportFeatures = (features) => isAllFeaturesSelected(features) ? "all" : features;
|
|
2707
2724
|
const errorText = (err) => summarizeFailure(err instanceof Error ? err.message : String(err)) ?? "unknown error";
|
|
@@ -2777,7 +2794,6 @@ const McpScreen = ({ store, installer, mode = "install" }) => {
|
|
|
2777
2794
|
const [selectedClientNames, setSelectedClientNames] = useState([]);
|
|
2778
2795
|
const [mcpResults, setMcpResults] = useState([]);
|
|
2779
2796
|
const [pluginResults, setPluginResults] = useState([]);
|
|
2780
|
-
const [installMode, setInstallMode] = useState("custom");
|
|
2781
2797
|
const [detectError, setDetectError] = useState(null);
|
|
2782
2798
|
const [flowError, setFlowError] = useState(null);
|
|
2783
2799
|
const finishFlow = useRef(null);
|
|
@@ -2799,65 +2815,46 @@ const McpScreen = ({ store, installer, mode = "install" }) => {
|
|
|
2799
2815
|
}
|
|
2800
2816
|
})();
|
|
2801
2817
|
}, [installer]);
|
|
2802
|
-
const
|
|
2818
|
+
const oauthFlow = !store.session.apiKey;
|
|
2819
|
+
const proceedAfterClientPick = (clientNames) => {
|
|
2803
2820
|
setSelectedClientNames(clientNames);
|
|
2804
|
-
if (
|
|
2805
|
-
|
|
2821
|
+
if (clientNames.some((name) => clients.find((c) => c.name === name)?.finish)) {
|
|
2822
|
+
setPhase("connector");
|
|
2806
2823
|
return;
|
|
2807
2824
|
}
|
|
2808
|
-
if (
|
|
2809
|
-
doInstall(clientNames
|
|
2825
|
+
if (oauthFlow) {
|
|
2826
|
+
doInstall(clientNames);
|
|
2810
2827
|
return;
|
|
2811
2828
|
}
|
|
2812
|
-
if (
|
|
2813
|
-
|
|
2829
|
+
if (store.session.mcpFeatures) {
|
|
2830
|
+
doInstall(clientNames, store.session.mcpFeatures);
|
|
2814
2831
|
return;
|
|
2815
2832
|
}
|
|
2816
2833
|
setPhase("feature-select");
|
|
2817
2834
|
};
|
|
2818
2835
|
const handleConfirm = () => {
|
|
2819
2836
|
if (isRemove) doRemove();
|
|
2820
|
-
else if (clients.length === 1) proceedAfterClientPick([clients[0].name]
|
|
2821
|
-
else setPhase("pick");
|
|
2822
|
-
};
|
|
2823
|
-
const handleTriStateChoice = (choice) => {
|
|
2824
|
-
if (choice === "skip") {
|
|
2825
|
-
handleSkip();
|
|
2826
|
-
return;
|
|
2827
|
-
}
|
|
2828
|
-
setInstallMode(choice);
|
|
2829
|
-
if (clients.length === 1) proceedAfterClientPick([clients[0].name], choice);
|
|
2837
|
+
else if (clients.length === 1) proceedAfterClientPick([clients[0].name]);
|
|
2830
2838
|
else setPhase("pick");
|
|
2831
2839
|
};
|
|
2832
2840
|
const handleSkip = () => {
|
|
2833
2841
|
markDone(store, "skipped");
|
|
2834
2842
|
};
|
|
2835
|
-
|
|
2836
|
-
* `chosenMode` is passed in rather than read from `installMode`: the tri-state
|
|
2837
|
-
* picker sets that state and installs in the same tick when a single client
|
|
2838
|
-
* is detected, so the closure would still hold the previous value and a
|
|
2839
|
-
* one-editor machine would silently get the MCP-only path.
|
|
2840
|
-
*/
|
|
2841
|
-
const doInstall = async (names, features, chosenMode = installMode) => {
|
|
2843
|
+
const doInstall = async (names, features) => {
|
|
2842
2844
|
setPhase("working");
|
|
2843
2845
|
let mcpResult = [];
|
|
2844
2846
|
let pluginResult = [];
|
|
2845
2847
|
const pluginCapableSet = new Set(clients.filter((c) => c.supportsPlugin).map((c) => c.name));
|
|
2848
|
+
const bundledSet = new Set(clients.filter((c) => c.pluginBundlesMcp).map((c) => c.name));
|
|
2846
2849
|
const pluginCapableNames = names.filter((n) => pluginCapableSet.has(n));
|
|
2847
|
-
const directNames = names.filter((n) => !
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
pluginResult = await installer.installPlugins(pluginCapableNames);
|
|
2856
|
-
} catch (err) {
|
|
2857
|
-
setFlowError(errorText(err));
|
|
2858
|
-
}
|
|
2859
|
-
} else try {
|
|
2860
|
-
mcpResult = await installer.install(names, features, store.session.apiKey);
|
|
2850
|
+
const directNames = names.filter((n) => !bundledSet.has(n));
|
|
2851
|
+
try {
|
|
2852
|
+
mcpResult = await installer.install(oauthFlow ? directNames : names, features, store.session.apiKey);
|
|
2853
|
+
} catch (err) {
|
|
2854
|
+
setFlowError(errorText(err));
|
|
2855
|
+
}
|
|
2856
|
+
if (oauthFlow) try {
|
|
2857
|
+
pluginResult = await installer.installPlugins(pluginCapableNames);
|
|
2861
2858
|
} catch (err) {
|
|
2862
2859
|
setFlowError(errorText(err));
|
|
2863
2860
|
}
|
|
@@ -2866,7 +2863,8 @@ const McpScreen = ({ store, installer, mode = "install" }) => {
|
|
|
2866
2863
|
const ready = [...mcpResult, ...pluginResult].filter(isOk);
|
|
2867
2864
|
const outcome = ready.length > 0 ? "installed" : "failed";
|
|
2868
2865
|
const featuresReport = reportFeatures(features ?? [...ALL_FEATURE_VALUES]);
|
|
2869
|
-
|
|
2866
|
+
const logins = oauthFlow ? pendingLoginCommands(clients, mcpResult, pluginResult) : [];
|
|
2867
|
+
finishFlow.current = () => markDone(store, outcome, ready.map((r) => r.name), featuresReport, logins);
|
|
2870
2868
|
setPhase("done");
|
|
2871
2869
|
};
|
|
2872
2870
|
const doRemove = async () => {
|
|
@@ -2961,26 +2959,7 @@ const McpScreen = ({ store, installer, mode = "install" }) => {
|
|
|
2961
2959
|
}),
|
|
2962
2960
|
/* @__PURE__ */ jsx(Box, {
|
|
2963
2961
|
marginTop: 1,
|
|
2964
|
-
children:
|
|
2965
|
-
message: `Install the PostHog MCP server${clients.some((c) => c.supportsPlugin) ? " and plugin" : ""}?`,
|
|
2966
|
-
options: [
|
|
2967
|
-
{
|
|
2968
|
-
label: "Install with all features",
|
|
2969
|
-
value: "all",
|
|
2970
|
-
hint: "recommended"
|
|
2971
|
-
},
|
|
2972
|
-
{
|
|
2973
|
-
label: "Customize features",
|
|
2974
|
-
value: "custom"
|
|
2975
|
-
},
|
|
2976
|
-
{
|
|
2977
|
-
label: "No thanks",
|
|
2978
|
-
value: "skip"
|
|
2979
|
-
}
|
|
2980
|
-
],
|
|
2981
|
-
mode: "single",
|
|
2982
|
-
onSelect: (choice) => handleTriStateChoice(choice)
|
|
2983
|
-
}) : /* @__PURE__ */ jsx(ConfirmationInput, {
|
|
2962
|
+
children: /* @__PURE__ */ jsx(ConfirmationInput, {
|
|
2984
2963
|
message: `${isRemove ? "Remove" : "Install"} the PostHog MCP server${clients.some((c) => c.supportsPlugin) ? " and plugin" : ""}?`,
|
|
2985
2964
|
confirmLabel: isRemove ? "Remove" : "Install",
|
|
2986
2965
|
cancelLabel: "No thanks",
|
|
@@ -2990,16 +2969,16 @@ const McpScreen = ({ store, installer, mode = "install" }) => {
|
|
|
2990
2969
|
})
|
|
2991
2970
|
] }),
|
|
2992
2971
|
phase === "pick" && /* @__PURE__ */ jsx(PickerMenu, {
|
|
2993
|
-
message:
|
|
2972
|
+
message: "Select editor to install",
|
|
2994
2973
|
options: clients.map((c) => ({
|
|
2995
2974
|
label: c.name,
|
|
2996
2975
|
value: c.name,
|
|
2997
2976
|
exclusive: Boolean(c.finish),
|
|
2998
|
-
hint:
|
|
2977
|
+
hint: c.finish ? "connector" : c.supportsPlugin ? "plugin" : "MCP"
|
|
2999
2978
|
})),
|
|
3000
2979
|
mode: "multi",
|
|
3001
2980
|
onSelect: (selected) => {
|
|
3002
|
-
proceedAfterClientPick(Array.isArray(selected) ? selected : [selected]
|
|
2981
|
+
proceedAfterClientPick(Array.isArray(selected) ? selected : [selected]);
|
|
3003
2982
|
}
|
|
3004
2983
|
}),
|
|
3005
2984
|
phase === "feature-select" && /* @__PURE__ */ jsx(GroupedPickerMenu, {
|
|
@@ -4632,7 +4611,7 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
4632
4611
|
...properties
|
|
4633
4612
|
});
|
|
4634
4613
|
}, [programId]);
|
|
4635
|
-
const [phase, setPhase] = useState("choose");
|
|
4614
|
+
const [phase, setPhase] = useState(store.router.activeProgram === Program.McpTutorial ? "choose" : "goodbye");
|
|
4636
4615
|
const [profile, setProfile] = useState(null);
|
|
4637
4616
|
const greeting = useMemo(() => getRoleGreeting(session.roleAtOrganization), [session.roleAtOrganization]);
|
|
4638
4617
|
const pickerCandidates = useMemo(() => getTutorialPicker(session.roleAtOrganization, session.integration, profile), [
|
|
@@ -4986,6 +4965,7 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
4986
4965
|
integration: session.integration,
|
|
4987
4966
|
profile,
|
|
4988
4967
|
engaged: branchHistory.length > 0,
|
|
4968
|
+
loginCommands: session.mcpLoginCommands,
|
|
4989
4969
|
onClose: closeWizard
|
|
4990
4970
|
})
|
|
4991
4971
|
]
|
|
@@ -5415,7 +5395,7 @@ const FollowUpPhase = ({ lastToolName, lastToolCommand, lastPrompt, chunks, role
|
|
|
5415
5395
|
})]
|
|
5416
5396
|
});
|
|
5417
5397
|
};
|
|
5418
|
-
const GoodbyePhase = ({ installedClients, role, integration, profile, engaged, onClose }) => {
|
|
5398
|
+
const GoodbyePhase = ({ installedClients, role, integration, profile, engaged, loginCommands, onClose }) => {
|
|
5419
5399
|
const generated = getGeneratedQuests(profile);
|
|
5420
5400
|
const samples = (generated.length > 0 ? generated : getRolePrompts(role, integration)).slice(0, 3);
|
|
5421
5401
|
const headline = engaged ? "Nice work. You can keep talking to PostHog anytime." : "You're all set — PostHog MCP is here when you're ready.";
|
|
@@ -5444,6 +5424,19 @@ const GoodbyePhase = ({ installedClients, role, integration, profile, engaged, o
|
|
|
5444
5424
|
marginBottom: 1,
|
|
5445
5425
|
children: introLine
|
|
5446
5426
|
}),
|
|
5427
|
+
loginCommands.length > 0 && /* @__PURE__ */ jsxs(Box, {
|
|
5428
|
+
flexDirection: "column",
|
|
5429
|
+
marginBottom: 1,
|
|
5430
|
+
children: [/* @__PURE__ */ jsxs(Text, {
|
|
5431
|
+
color: "green",
|
|
5432
|
+
bold: true,
|
|
5433
|
+
children: ["✔", " Authenticate to finish (opens your browser):"]
|
|
5434
|
+
}), loginCommands.map((command) => /* @__PURE__ */ jsxs(Text, { children: [" ", /* @__PURE__ */ jsx(Text, {
|
|
5435
|
+
bold: true,
|
|
5436
|
+
color: "green",
|
|
5437
|
+
children: command
|
|
5438
|
+
})] }, command))]
|
|
5439
|
+
}),
|
|
5447
5440
|
/* @__PURE__ */ jsx(Box, {
|
|
5448
5441
|
marginBottom: 1,
|
|
5449
5442
|
flexDirection: "column",
|
|
@@ -7226,4 +7219,4 @@ function releaseTerminal() {
|
|
|
7226
7219
|
//#endregion
|
|
7227
7220
|
export { EventPlanViewer as A, CardLayout as B, VisualizerTab as C, HNViewer as D, ContentSequencer as E, ConfirmationInput as F, GroupedPickerMenu as I, ProgressList as L, LinkText as M, extractUrls as N, TabContainer as O, ModalOverlay as P, LoadingBox as R, ServiceHealthList as S, LearnCard as T, TAILORED_ROLES as _, useSkillEntry as a, SEVERITY_LABEL as b, SlackConnectScreen as c, AuditChecksViewer as d, seedDemoEvents as f, probeProjectData as g, assembleProfile as h, SkillSourceInfo as i, LogViewer as j, ScreenContainer as k, AUDIT_AREA_SLIDES as l, McpSuggestedPromptsScreen as m, releaseTerminal as n, OutroScreen as o, seededProfile as p, AiOptInRequiredScreen as r, useDismissOnAnyKey as s, enterDarkTerminal as t, VisualBox as u, McpScreen as v, TipsCard as w, SEVERITY_ORDER as x, IssueTable as y, SplitView as z };
|
|
7228
7221
|
|
|
7229
|
-
//# sourceMappingURL=terminal-
|
|
7222
|
+
//# sourceMappingURL=terminal-aWQrDy8s.js.map
|