@posthog/wizard 2.24.0 → 2.24.1
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/{AiOptInRequiredScreen-DPn1CCeD.js → AiOptInRequiredScreen-_33FOcVo.js} +145 -117
- package/dist/{AiOptInRequiredScreen-DPn1CCeD.js.map → AiOptInRequiredScreen-_33FOcVo.js.map} +1 -1
- package/dist/{add-mcp-server-to-clients-BU8Owthq.js → add-mcp-server-to-clients-CfwEQT_z.js} +4 -4
- package/dist/{add-mcp-server-to-clients-BU8Owthq.js.map → add-mcp-server-to-clients-CfwEQT_z.js.map} +1 -1
- package/dist/{agent-interface-CysYcZl5.js → agent-interface-D1vtN6Wn.js} +5 -5
- package/dist/{agent-interface-CysYcZl5.js.map → agent-interface-D1vtN6Wn.js.map} +1 -1
- package/dist/{agent-runner-Br0OxBxd.js → agent-runner-CBbkS0Ro.js} +8 -8
- package/dist/{agent-runner-Br0OxBxd.js.map → agent-runner-CBbkS0Ro.js.map} +1 -1
- package/dist/{analytics-BOWrR4qd.js → analytics-CUr82BDl.js} +2 -2
- package/dist/{analytics-BOWrR4qd.js.map → analytics-CUr82BDl.js.map} +1 -1
- package/dist/{api-RXTR8yZo.js → api-CI3Z74NG.js} +3 -3
- package/dist/{api-RXTR8yZo.js.map → api-CI3Z74NG.js.map} +1 -1
- package/dist/bin.js +43 -73
- package/dist/bin.js.map +1 -1
- package/dist/{ci-install-BscZ60Ec.js → ci-install-D_kxNmbJ.js} +4 -4
- package/dist/{ci-install-BscZ60Ec.js.map → ci-install-D_kxNmbJ.js.map} +1 -1
- package/dist/{debug-BUdVZP84.js → debug-DxA_f5QT.js} +2 -2
- package/dist/{debug-BUdVZP84.js.map → debug-DxA_f5QT.js.map} +1 -1
- package/dist/{debug-BgH07S-e.js → debug-zMvpNYb2.js} +1 -1
- package/dist/{environment-G0Hv6_JI.js → environment-CyS37cmM.js} +3 -3
- package/dist/{environment-G0Hv6_JI.js.map → environment-CyS37cmM.js.map} +1 -1
- package/dist/{interactive-fh2iyewb.js → interactive-CG6FFqSw.js} +2 -2
- package/dist/{interactive-fh2iyewb.js.map → interactive-CG6FFqSw.js.map} +1 -1
- package/dist/{mcp-prompt-streaming-DUtbxnNy.js → mcp-prompt-streaming-DQz4FSb1.js} +4 -4
- package/dist/{mcp-prompt-streaming-DUtbxnNy.js.map → mcp-prompt-streaming-DQz4FSb1.js.map} +1 -1
- package/dist/{non-interactive-BfqXlY8R.js → non-interactive-DWtHX3ZR.js} +2 -2
- package/dist/{non-interactive-BfqXlY8R.js.map → non-interactive-DWtHX3ZR.js.map} +1 -1
- package/dist/{package-manager-Ca1maxU-.js → package-manager-BWUS4CP0.js} +2 -2
- package/dist/{package-manager-Ca1maxU-.js.map → package-manager-BWUS4CP0.js.map} +1 -1
- package/dist/{playground-4sqLVVJL.js → playground-D7AhMMF5.js} +8 -14
- package/dist/playground-D7AhMMF5.js.map +1 -0
- package/dist/{posthog-integration-Bz3HWkHn.js → posthog-integration-DexZ2uHU.js} +18 -18
- package/dist/{posthog-integration-Bz3HWkHn.js.map → posthog-integration-DexZ2uHU.js.map} +1 -1
- package/dist/{provisioning-CgwvlsIl.js → provisioning-9c-AQbsa.js} +3 -3
- package/dist/{provisioning-CgwvlsIl.js.map → provisioning-9c-AQbsa.js.map} +1 -1
- package/dist/{registry-CEnQVctL.js → registry-CO7JVZyE.js} +4 -4
- package/dist/{registry-CEnQVctL.js.map → registry-CO7JVZyE.js.map} +1 -1
- package/dist/{setup-utils-Doh69vo4.js → setup-utils-0U-_Md2G.js} +8 -8
- package/dist/{setup-utils-Doh69vo4.js.map → setup-utils-0U-_Md2G.js.map} +1 -1
- package/dist/{start-tui-CywbSvZE.js → start-tui-WNb3ET14.js} +16 -20
- package/dist/start-tui-WNb3ET14.js.map +1 -0
- package/dist/{steps-DJojDYQ-.js → steps-BAUXDCC4.js} +6 -6
- package/dist/{steps-DJojDYQ-.js.map → steps-BAUXDCC4.js.map} +1 -1
- package/dist/{telemetry-8zMpaIuK.js → telemetry-ycqCpNPr.js} +3 -3
- package/dist/{telemetry-8zMpaIuK.js.map → telemetry-ycqCpNPr.js.map} +1 -1
- package/dist/{urls-BUfvQmU4.js → urls-C8aJWvgh.js} +2 -2
- package/dist/{urls-BUfvQmU4.js.map → urls-C8aJWvgh.js.map} +1 -1
- package/dist/{wizard-abort-BdGW4Tvi.js → wizard-abort-C6gRLxUE.js} +3 -3
- package/dist/{wizard-abort-BdGW4Tvi.js.map → wizard-abort-C6gRLxUE.js.map} +1 -1
- package/dist/{wizard-abort-Ni-mKJ58.js → wizard-abort-DWXyJdws.js} +1 -1
- package/package.json +1 -1
- package/dist/playground-4sqLVVJL.js.map +0 -1
- package/dist/start-tui-CywbSvZE.js.map +0 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { M as POSTHOG_APP_URL, Q as getSkillsBaseUrl, g as SERVICE_LABELS, s as logToFile, y as getBlockingServiceKeys } from "./debug-
|
|
1
|
+
import { M as POSTHOG_APP_URL, Q as getSkillsBaseUrl, g as SERVICE_LABELS, s as logToFile, y as getBlockingServiceKeys } from "./debug-DxA_f5QT.js";
|
|
2
2
|
import { n as isTaskStatus } from "./wizard-ui-YdGFRyu_.js";
|
|
3
|
-
import { r as sessionProperties, t as analytics } from "./analytics-
|
|
4
|
-
import { i as withUtm, n as openTrackedLink } from "./telemetry-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { r as sessionProperties, t as analytics } from "./analytics-CUr82BDl.js";
|
|
4
|
+
import { i as withUtm, n as openTrackedLink } from "./telemetry-ycqCpNPr.js";
|
|
5
|
+
import { t as getOrAskForProjectData } from "./setup-utils-0U-_Md2G.js";
|
|
6
|
+
import { n as getCloudUrlFromRegion } from "./urls-C8aJWvgh.js";
|
|
7
|
+
import { a as fetchUserData, i as fetchSlackConnected } from "./api-CI3Z74NG.js";
|
|
7
8
|
import { i as buildSession } from "./wizard-session-G3VWD6hv.js";
|
|
8
|
-
import { m as fetchSkillMenu, y as AUDIT_SEVERITY_STYLE } from "./agent-interface-
|
|
9
|
-
import { c as computeVisibleRange, d as isObjectBlock, f as Colors, l as isClearBlock, p as Icons, s as TextBlock, u as isLinesBlock } from "./posthog-integration-
|
|
9
|
+
import { m as fetchSkillMenu, y as AUDIT_SEVERITY_STYLE } from "./agent-interface-D1vtN6Wn.js";
|
|
10
|
+
import { c as computeVisibleRange, d as isObjectBlock, f as Colors, l as isClearBlock, p as Icons, s as TextBlock, u as isLinesBlock } from "./posthog-integration-DexZ2uHU.js";
|
|
10
11
|
import { a as PromptLabel, c as PROGRAM_REGISTRY, i as useKeyboardHintsContext, l as Program, m as getKindMeta, n as useKeyBindings, r as KeyboardHintsProvider, t as PickerMenu, u as getProgramConfig } from "./bin.js";
|
|
11
12
|
import { n as AVAILABLE_FEATURES, o as isAllFeaturesSelected, t as ALL_FEATURE_VALUES } from "./defaults-BNWIWzjc.js";
|
|
12
13
|
import opn from "opn";
|
|
@@ -3719,7 +3720,7 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
3719
3720
|
const kit = getRolePrompts(session.roleAtOrganization, session.integration);
|
|
3720
3721
|
const crossSell = useMemo(() => getCrossSellPrompts(session.roleAtOrganization), [session.roleAtOrganization]);
|
|
3721
3722
|
const greeting = useMemo(() => getRoleGreeting(session.roleAtOrganization), [session.roleAtOrganization]);
|
|
3722
|
-
const [phase, setPhase] = useState(
|
|
3723
|
+
const [phase, setPhase] = useState("choose");
|
|
3723
3724
|
const [loginError, setLoginError] = useState(null);
|
|
3724
3725
|
const startedTutorialRef = useRef(false);
|
|
3725
3726
|
const [runningPrompt, setRunningPrompt] = useState(null);
|
|
@@ -3761,28 +3762,6 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
3761
3762
|
services,
|
|
3762
3763
|
store
|
|
3763
3764
|
]);
|
|
3764
|
-
const credentials = session.credentials;
|
|
3765
|
-
const slackConnected = session.slackConnected;
|
|
3766
|
-
useEffect(() => {
|
|
3767
|
-
if (!credentials || slackConnected !== null) return;
|
|
3768
|
-
let cancelled = false;
|
|
3769
|
-
const controller = new AbortController();
|
|
3770
|
-
services.checkSlackConnected(credentials, controller.signal).then((connected) => {
|
|
3771
|
-
if (!cancelled) store.setSlackConnected(connected);
|
|
3772
|
-
}).catch((err) => {
|
|
3773
|
-
if (cancelled) return;
|
|
3774
|
-
analytics.captureException(err instanceof Error ? err : new Error(String(err)), { step: "slack_connected_check" });
|
|
3775
|
-
});
|
|
3776
|
-
return () => {
|
|
3777
|
-
cancelled = true;
|
|
3778
|
-
controller.abort();
|
|
3779
|
-
};
|
|
3780
|
-
}, [
|
|
3781
|
-
credentials,
|
|
3782
|
-
slackConnected,
|
|
3783
|
-
services,
|
|
3784
|
-
store
|
|
3785
|
-
]);
|
|
3786
3765
|
useEffect(() => {
|
|
3787
3766
|
if (phase !== "running") return;
|
|
3788
3767
|
if (!runningPrompt) return;
|
|
@@ -3870,9 +3849,6 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
3870
3849
|
analytics.wizardCapture("mcp suggested prompts choose", { choice: "login" });
|
|
3871
3850
|
startedTutorialRef.current = true;
|
|
3872
3851
|
setPhase(session.credentials ? "greeting" : "authenticating");
|
|
3873
|
-
} else if (choice === "connect-slack") {
|
|
3874
|
-
analytics.wizardCapture("mcp suggested prompts choose", { choice: "connect-slack" });
|
|
3875
|
-
openTrackedLink(getSlackAppCard().setupUrl, "mcp-prompts-slack-setup");
|
|
3876
3852
|
} else {
|
|
3877
3853
|
analytics.wizardCapture("mcp suggested prompts choose", { choice: "exit" });
|
|
3878
3854
|
enterGoodbye();
|
|
@@ -3945,7 +3921,6 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
3945
3921
|
children: [
|
|
3946
3922
|
phase === "choose" && /* @__PURE__ */ jsx(ChoosePhase, {
|
|
3947
3923
|
error: loginError,
|
|
3948
|
-
slackConnected,
|
|
3949
3924
|
onSelect: handleChoice
|
|
3950
3925
|
}),
|
|
3951
3926
|
phase === "authenticating" && /* @__PURE__ */ jsx(AuthenticatingPhase, { loginUrl: session.loginUrl }),
|
|
@@ -4008,7 +3983,7 @@ const McpSuggestedPromptsScreen = ({ store, services }) => {
|
|
|
4008
3983
|
})
|
|
4009
3984
|
});
|
|
4010
3985
|
};
|
|
4011
|
-
const ChoosePhase = ({ error,
|
|
3986
|
+
const ChoosePhase = ({ error, onSelect }) => {
|
|
4012
3987
|
return /* @__PURE__ */ jsxs(Box, {
|
|
4013
3988
|
flexDirection: "column",
|
|
4014
3989
|
children: [
|
|
@@ -4047,57 +4022,18 @@ const ChoosePhase = ({ error, slackConnected, onSelect }) => {
|
|
|
4047
4022
|
}), " And lots more..."] })
|
|
4048
4023
|
]
|
|
4049
4024
|
}),
|
|
4050
|
-
/* @__PURE__ */ jsx(Box, {
|
|
4051
|
-
marginTop: 1,
|
|
4052
|
-
flexDirection: "column",
|
|
4053
|
-
children: slackConnected ? /* @__PURE__ */ jsxs(Text, { children: [
|
|
4054
|
-
/* @__PURE__ */ jsx(Text, {
|
|
4055
|
-
color: Colors.success,
|
|
4056
|
-
children: Icons.check
|
|
4057
|
-
}),
|
|
4058
|
-
" Slack is connected — analyze data and ship product changes there by tagging",
|
|
4059
|
-
" ",
|
|
4060
|
-
/* @__PURE__ */ jsx(Text, {
|
|
4061
|
-
bold: true,
|
|
4062
|
-
children: "@PostHog"
|
|
4063
|
-
}),
|
|
4064
|
-
"."
|
|
4065
|
-
] }) : /* @__PURE__ */ jsxs(Text, { children: [
|
|
4066
|
-
"You can also connect PostHog to Slack, so you can analyze data and ship product changes there by tagging ",
|
|
4067
|
-
/* @__PURE__ */ jsx(Text, {
|
|
4068
|
-
bold: true,
|
|
4069
|
-
children: "@PostHog"
|
|
4070
|
-
}),
|
|
4071
|
-
"."
|
|
4072
|
-
] })
|
|
4073
|
-
}),
|
|
4074
4025
|
/* @__PURE__ */ jsx(Box, {
|
|
4075
4026
|
marginTop: 1,
|
|
4076
4027
|
children: /* @__PURE__ */ jsx(Text, { children: "Want a live demo using real data from your project?" })
|
|
4077
4028
|
}),
|
|
4078
4029
|
/* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(PickerMenu, {
|
|
4079
|
-
options: [
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
value: "connect-slack",
|
|
4087
|
-
icon: {
|
|
4088
|
-
glyph: Icons.check,
|
|
4089
|
-
color: Colors.success
|
|
4090
|
-
},
|
|
4091
|
-
disabled: true
|
|
4092
|
-
} : {
|
|
4093
|
-
label: "Connect Slack now",
|
|
4094
|
-
value: "connect-slack"
|
|
4095
|
-
},
|
|
4096
|
-
{
|
|
4097
|
-
label: "Exit",
|
|
4098
|
-
value: "exit"
|
|
4099
|
-
}
|
|
4100
|
-
],
|
|
4030
|
+
options: [{
|
|
4031
|
+
label: "Start MCP tutorial",
|
|
4032
|
+
value: "login"
|
|
4033
|
+
}, {
|
|
4034
|
+
label: "Exit",
|
|
4035
|
+
value: "exit"
|
|
4036
|
+
}],
|
|
4101
4037
|
onSelect
|
|
4102
4038
|
}) }),
|
|
4103
4039
|
error && /* @__PURE__ */ jsx(Box, {
|
|
@@ -5166,9 +5102,11 @@ const AUDIT_AREA_SLIDES = [
|
|
|
5166
5102
|
* "Skip" / "Done" / esc dismiss the step (`slackStepDismissed`) and let
|
|
5167
5103
|
* the router advance to exit.
|
|
5168
5104
|
*
|
|
5169
|
-
* The mcp and integration flows arrive here already authenticated.
|
|
5170
|
-
* standalone `wizard slack` flow
|
|
5171
|
-
*
|
|
5105
|
+
* The mcp and integration flows arrive here already authenticated. The
|
|
5106
|
+
* standalone `wizard slack` flow lands without credentials and only
|
|
5107
|
+
* triggers OAuth when the user explicitly picks "Open Slack setup" —
|
|
5108
|
+
* once authed, the connected-state poll lets the screen flip to the
|
|
5109
|
+
* "Slack connected" copy without nagging users who already have it.
|
|
5172
5110
|
*/
|
|
5173
5111
|
const POLL_INTERVAL_MS = 3e3;
|
|
5174
5112
|
const SlackConnectScreen = ({ store }) => {
|
|
@@ -5178,10 +5116,16 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5178
5116
|
const setupUrl = withUtm(slack.setupUrl, "slack-connect-setup");
|
|
5179
5117
|
const learnMoreUrl = withUtm(slack.learnMoreUrl, "slack-connect-learn-more");
|
|
5180
5118
|
const credentials = store.session.credentials;
|
|
5181
|
-
const awaitingLogin = store.router.activeProgram === Program.SlackConnect && !credentials;
|
|
5182
5119
|
const connectedState = store.session.slackConnected;
|
|
5183
5120
|
const connected = connectedState === true;
|
|
5184
|
-
const
|
|
5121
|
+
const [phase, setPhase] = useState("nudge");
|
|
5122
|
+
const [loginError, setLoginError] = useState(null);
|
|
5123
|
+
const [setupOpened, setSetupOpened] = useState(false);
|
|
5124
|
+
const openSlackSetup = () => {
|
|
5125
|
+
openTrackedLink(setupUrl, "slack-connect-setup");
|
|
5126
|
+
setSetupOpened(true);
|
|
5127
|
+
};
|
|
5128
|
+
const known = connectedState !== null;
|
|
5185
5129
|
const impressionFired = useRef(false);
|
|
5186
5130
|
useEffect(() => {
|
|
5187
5131
|
if (!known || impressionFired.current) return;
|
|
@@ -5195,6 +5139,12 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5195
5139
|
connected,
|
|
5196
5140
|
role
|
|
5197
5141
|
]);
|
|
5142
|
+
const nudgeImpressionFired = useRef(false);
|
|
5143
|
+
useEffect(() => {
|
|
5144
|
+
if (credentials || nudgeImpressionFired.current) return;
|
|
5145
|
+
nudgeImpressionFired.current = true;
|
|
5146
|
+
analytics.wizardCapture("slack connect nudge shown", { role });
|
|
5147
|
+
}, [credentials, role]);
|
|
5198
5148
|
useEffect(() => {
|
|
5199
5149
|
if (!credentials || connected) return;
|
|
5200
5150
|
let cancelled = false;
|
|
@@ -5228,27 +5178,83 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5228
5178
|
store
|
|
5229
5179
|
]);
|
|
5230
5180
|
const dismiss = () => {
|
|
5231
|
-
analytics.wizardCapture(
|
|
5181
|
+
if (connected) analytics.wizardCapture("slack connect done", { role });
|
|
5182
|
+
else analytics.wizardCapture("slack connect skipped", {
|
|
5232
5183
|
role,
|
|
5233
|
-
|
|
5184
|
+
connection_state: credentials ? "not_connected" : "unknown"
|
|
5234
5185
|
});
|
|
5235
5186
|
store.setSlackStepDismissed();
|
|
5236
5187
|
};
|
|
5237
5188
|
const handleSelect = (value) => {
|
|
5238
5189
|
if ((Array.isArray(value) ? value[0] : value) === "open") {
|
|
5239
5190
|
analytics.wizardCapture("slack connect opened", { role });
|
|
5240
|
-
|
|
5191
|
+
setLoginError(null);
|
|
5192
|
+
if (credentials) {
|
|
5193
|
+
openSlackSetup();
|
|
5194
|
+
return;
|
|
5195
|
+
}
|
|
5196
|
+
setPhase("authenticating");
|
|
5241
5197
|
return;
|
|
5242
5198
|
}
|
|
5243
5199
|
dismiss();
|
|
5244
5200
|
};
|
|
5201
|
+
useEffect(() => {
|
|
5202
|
+
if (phase !== "authenticating") return;
|
|
5203
|
+
let cancelled = false;
|
|
5204
|
+
(async () => {
|
|
5205
|
+
try {
|
|
5206
|
+
const data = await getOrAskForProjectData({
|
|
5207
|
+
signup: false,
|
|
5208
|
+
ci: false,
|
|
5209
|
+
apiKey: void 0,
|
|
5210
|
+
projectId: void 0,
|
|
5211
|
+
programId: Program.SlackConnect
|
|
5212
|
+
});
|
|
5213
|
+
if (cancelled) return;
|
|
5214
|
+
store.setCredentials({
|
|
5215
|
+
accessToken: data.accessToken,
|
|
5216
|
+
projectApiKey: data.projectApiKey,
|
|
5217
|
+
host: data.host,
|
|
5218
|
+
projectId: data.projectId
|
|
5219
|
+
});
|
|
5220
|
+
store.setRoleAtOrganization(data.roleAtOrganization);
|
|
5221
|
+
store.setApiUser(data.user);
|
|
5222
|
+
store.setLoginUrl(null);
|
|
5223
|
+
openSlackSetup();
|
|
5224
|
+
setPhase("nudge");
|
|
5225
|
+
} catch (err) {
|
|
5226
|
+
if (cancelled) return;
|
|
5227
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
5228
|
+
logToFile(`[SlackConnectScreen] login failed: ${message}`);
|
|
5229
|
+
analytics.captureException(err instanceof Error ? err : new Error(String(err)), { step: "slack_connect_login" });
|
|
5230
|
+
store.setLoginUrl(null);
|
|
5231
|
+
setLoginError(message);
|
|
5232
|
+
setPhase("nudge");
|
|
5233
|
+
}
|
|
5234
|
+
})();
|
|
5235
|
+
return () => {
|
|
5236
|
+
cancelled = true;
|
|
5237
|
+
};
|
|
5238
|
+
}, [
|
|
5239
|
+
phase,
|
|
5240
|
+
role,
|
|
5241
|
+
setupUrl,
|
|
5242
|
+
store
|
|
5243
|
+
]);
|
|
5245
5244
|
useKeyBindings("slack-connect", [{
|
|
5246
5245
|
match: "escape",
|
|
5247
5246
|
label: "esc",
|
|
5248
|
-
action: connected ? "done" : "skip",
|
|
5249
|
-
handler: () =>
|
|
5247
|
+
action: phase === "authenticating" ? "cancel" : connected ? "done" : "skip",
|
|
5248
|
+
handler: () => {
|
|
5249
|
+
if (phase === "authenticating") {
|
|
5250
|
+
store.setLoginUrl(null);
|
|
5251
|
+
setPhase("nudge");
|
|
5252
|
+
return;
|
|
5253
|
+
}
|
|
5254
|
+
dismiss();
|
|
5255
|
+
}
|
|
5250
5256
|
}]);
|
|
5251
|
-
if (
|
|
5257
|
+
if (phase === "authenticating") return /* @__PURE__ */ jsxs(Box, {
|
|
5252
5258
|
flexDirection: "column",
|
|
5253
5259
|
flexGrow: 1,
|
|
5254
5260
|
marginTop: 1,
|
|
@@ -5274,6 +5280,7 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5274
5280
|
marginTop: 1,
|
|
5275
5281
|
children: /* @__PURE__ */ jsx(LoadingBox, { message: "Checking for an existing Slack connection..." })
|
|
5276
5282
|
});
|
|
5283
|
+
const awaitingBrowser = setupOpened && !connected;
|
|
5277
5284
|
return /* @__PURE__ */ jsx(Box, {
|
|
5278
5285
|
flexDirection: "column",
|
|
5279
5286
|
flexGrow: 1,
|
|
@@ -5285,6 +5292,10 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5285
5292
|
bold: true,
|
|
5286
5293
|
color: Colors.success,
|
|
5287
5294
|
children: [Icons.check, " Slack connected"]
|
|
5295
|
+
}) : awaitingBrowser ? /* @__PURE__ */ jsx(Text, {
|
|
5296
|
+
bold: true,
|
|
5297
|
+
color: Colors.accent,
|
|
5298
|
+
children: "Finish connecting Slack"
|
|
5288
5299
|
}) : /* @__PURE__ */ jsx(Text, {
|
|
5289
5300
|
bold: true,
|
|
5290
5301
|
color: Colors.accent,
|
|
@@ -5292,7 +5303,7 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5292
5303
|
}),
|
|
5293
5304
|
/* @__PURE__ */ jsx(Box, {
|
|
5294
5305
|
marginTop: 1,
|
|
5295
|
-
children: /* @__PURE__ */ jsx(Text, { children: connected ? "Slack is connected — here's what you can do:" : slack.pitch })
|
|
5306
|
+
children: /* @__PURE__ */ jsx(Text, { children: connected ? "Slack is connected — here's what you can do:" : awaitingBrowser ? "We've opened PostHog's Slack setup page in your browser. Authorize the Slack app there — we'll detect the connection automatically and continue." : slack.pitch })
|
|
5296
5307
|
}),
|
|
5297
5308
|
/* @__PURE__ */ jsx(Box, {
|
|
5298
5309
|
marginTop: 1,
|
|
@@ -5310,7 +5321,7 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5310
5321
|
flexDirection: "column",
|
|
5311
5322
|
children: [!connected && /* @__PURE__ */ jsxs(Text, {
|
|
5312
5323
|
dimColor: true,
|
|
5313
|
-
children: ["Connect it: ", /* @__PURE__ */ jsx(Text, {
|
|
5324
|
+
children: [awaitingBrowser ? "Setup page: " : "Connect it: ", /* @__PURE__ */ jsx(Text, {
|
|
5314
5325
|
color: "cyan",
|
|
5315
5326
|
children: setupUrl
|
|
5316
5327
|
})]
|
|
@@ -5328,6 +5339,12 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5328
5339
|
options: connected ? [{
|
|
5329
5340
|
label: "Done",
|
|
5330
5341
|
value: "skip"
|
|
5342
|
+
}] : awaitingBrowser ? [{
|
|
5343
|
+
label: "Re-open Slack setup",
|
|
5344
|
+
value: "open"
|
|
5345
|
+
}, {
|
|
5346
|
+
label: "Skip / Continue",
|
|
5347
|
+
value: "skip"
|
|
5331
5348
|
}] : [{
|
|
5332
5349
|
label: "Open Slack setup",
|
|
5333
5350
|
value: "open"
|
|
@@ -5337,6 +5354,17 @@ const SlackConnectScreen = ({ store }) => {
|
|
|
5337
5354
|
}],
|
|
5338
5355
|
onSelect: handleSelect
|
|
5339
5356
|
})
|
|
5357
|
+
}),
|
|
5358
|
+
loginError && /* @__PURE__ */ jsx(Box, {
|
|
5359
|
+
marginTop: 1,
|
|
5360
|
+
children: /* @__PURE__ */ jsxs(Text, {
|
|
5361
|
+
color: "red",
|
|
5362
|
+
children: [
|
|
5363
|
+
"Login failed: ",
|
|
5364
|
+
loginError,
|
|
5365
|
+
". Try again or skip."
|
|
5366
|
+
]
|
|
5367
|
+
})
|
|
5340
5368
|
})
|
|
5341
5369
|
]
|
|
5342
5370
|
})
|
|
@@ -5377,6 +5405,28 @@ const OutroScreen = ({ store }) => {
|
|
|
5377
5405
|
bold: true,
|
|
5378
5406
|
children: ["✔ ", outroData.message || "Done!"]
|
|
5379
5407
|
}),
|
|
5408
|
+
outroData.dashboardUrl && /* @__PURE__ */ jsx(Box, {
|
|
5409
|
+
marginTop: 1,
|
|
5410
|
+
children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
5411
|
+
"Dashboard:",
|
|
5412
|
+
" ",
|
|
5413
|
+
/* @__PURE__ */ jsx(Text, {
|
|
5414
|
+
color: "cyan",
|
|
5415
|
+
children: withUtm(outroData.dashboardUrl, "outro-dashboard")
|
|
5416
|
+
})
|
|
5417
|
+
] })
|
|
5418
|
+
}),
|
|
5419
|
+
outroData.notebookUrl && /* @__PURE__ */ jsx(Box, {
|
|
5420
|
+
marginTop: 1,
|
|
5421
|
+
children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
5422
|
+
"Notebook:",
|
|
5423
|
+
" ",
|
|
5424
|
+
/* @__PURE__ */ jsx(Text, {
|
|
5425
|
+
color: "cyan",
|
|
5426
|
+
children: withUtm(outroData.notebookUrl, "outro-notebook")
|
|
5427
|
+
})
|
|
5428
|
+
] })
|
|
5429
|
+
}),
|
|
5380
5430
|
outroData.body && /* @__PURE__ */ jsx(Box, {
|
|
5381
5431
|
marginTop: 1,
|
|
5382
5432
|
children: /* @__PURE__ */ jsx(Text, {
|
|
@@ -5423,28 +5473,6 @@ const OutroScreen = ({ store }) => {
|
|
|
5423
5473
|
})
|
|
5424
5474
|
] }, event.name))]
|
|
5425
5475
|
}),
|
|
5426
|
-
outroData.dashboardUrl && /* @__PURE__ */ jsx(Box, {
|
|
5427
|
-
marginTop: 1,
|
|
5428
|
-
children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
5429
|
-
"We've also made you a dashboard:",
|
|
5430
|
-
" ",
|
|
5431
|
-
/* @__PURE__ */ jsx(Text, {
|
|
5432
|
-
color: "cyan",
|
|
5433
|
-
children: withUtm(outroData.dashboardUrl, "outro-dashboard")
|
|
5434
|
-
})
|
|
5435
|
-
] })
|
|
5436
|
-
}),
|
|
5437
|
-
outroData.notebookUrl && /* @__PURE__ */ jsx(Box, {
|
|
5438
|
-
marginTop: 1,
|
|
5439
|
-
children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
5440
|
-
"And uploaded the report to a PostHog notebook:",
|
|
5441
|
-
" ",
|
|
5442
|
-
/* @__PURE__ */ jsx(Text, {
|
|
5443
|
-
color: "cyan",
|
|
5444
|
-
children: withUtm(outroData.notebookUrl, "outro-notebook")
|
|
5445
|
-
})
|
|
5446
|
-
] })
|
|
5447
|
-
}),
|
|
5448
5476
|
outroData.docsUrl && /* @__PURE__ */ jsx(Box, {
|
|
5449
5477
|
marginTop: 1,
|
|
5450
5478
|
children: /* @__PURE__ */ jsxs(Text, { children: [
|
|
@@ -5824,4 +5852,4 @@ const AiOptInRequiredScreen = ({ store }) => {
|
|
|
5824
5852
|
//#endregion
|
|
5825
5853
|
export { SplitView as A, LogViewer as C, useStdoutDimensions as D, GroupedPickerMenu as E, WizardStore as M, ProgressList as O, EventPlanViewer as S, ConfirmationInput as T, LearnCard as _, SlackConnectScreen as a, TabContainer as b, AuditChecksViewer as c, McpScreen as d, IssueTable as f, TipsCard as g, ServiceHealthList as h, OutroScreen as i, CardLayout as j, LoadingBox as k, McpSuggestedPromptsScreen as l, SEVERITY_ORDER as m, SkillSourceInfo as n, AUDIT_AREA_SLIDES as o, SEVERITY_LABEL as p, useSkillEntry as r, VisualBox as s, AiOptInRequiredScreen as t, TAILORED_ROLES as u, ContentSequencer as v, ModalOverlay as w, ScreenContainer as x, HNViewer as y };
|
|
5826
5854
|
|
|
5827
|
-
//# sourceMappingURL=AiOptInRequiredScreen-
|
|
5855
|
+
//# sourceMappingURL=AiOptInRequiredScreen-_33FOcVo.js.map
|