@posthog/wizard 2.19.0 → 2.21.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.
Files changed (67) hide show
  1. package/README.md +11 -0
  2. package/dist/{slides-mT2s9wM_.js → OutroScreen-CqF6SdBo.js} +614 -122
  3. package/dist/OutroScreen-CqF6SdBo.js.map +1 -0
  4. package/dist/{add-mcp-server-to-clients-CjnvTVj0.js → add-mcp-server-to-clients-DQHGhzt6.js} +4 -4
  5. package/dist/{add-mcp-server-to-clients-CjnvTVj0.js.map → add-mcp-server-to-clients-DQHGhzt6.js.map} +1 -1
  6. package/dist/{agent-interface-CQU6x4Hj.js → agent-interface-DE7txTqh.js} +163 -52
  7. package/dist/agent-interface-DE7txTqh.js.map +1 -0
  8. package/dist/{agent-runner-Cj7saDkL.js → agent-runner-DUZ5OD6e.js} +10 -9
  9. package/dist/{agent-runner-Cj7saDkL.js.map → agent-runner-DUZ5OD6e.js.map} +1 -1
  10. package/dist/{analytics-Df-Xb81i.js → analytics-Bl5DPj_0.js} +2 -2
  11. package/dist/{analytics-Df-Xb81i.js.map → analytics-Bl5DPj_0.js.map} +1 -1
  12. package/dist/{api-Dw6_orDE.js → api-DuA0_88V.js} +25 -4
  13. package/dist/{api-Dw6_orDE.js.map → api-DuA0_88V.js.map} +1 -1
  14. package/dist/bin.js +74 -47
  15. package/dist/bin.js.map +1 -1
  16. package/dist/check-screens.tsx +124 -0
  17. package/dist/{ci-install-BKAvFfK6.js → ci-install-BnOYI4mZ.js} +4 -4
  18. package/dist/{ci-install-BKAvFfK6.js.map → ci-install-BnOYI4mZ.js.map} +1 -1
  19. package/dist/{debug-Cp_wNn8i.js → debug-BVC48wlb.js} +1 -1
  20. package/dist/{debug-DnMO6O8O.js → debug-h7Z9zEbD.js} +2 -2
  21. package/dist/{debug-DnMO6O8O.js.map → debug-h7Z9zEbD.js.map} +1 -1
  22. package/dist/{environment-Ls0H9ljT.js → environment-uaLmtlH_.js} +3 -3
  23. package/dist/{environment-Ls0H9ljT.js.map → environment-uaLmtlH_.js.map} +1 -1
  24. package/dist/{interactive-D15byhpc.js → interactive-CW5gjyDd.js} +2 -2
  25. package/dist/{interactive-D15byhpc.js.map → interactive-CW5gjyDd.js.map} +1 -1
  26. package/dist/{mcp-prompt-streaming-DQOTQfW1.js → mcp-prompt-streaming-DMDwaark.js} +4 -4
  27. package/dist/{mcp-prompt-streaming-DQOTQfW1.js.map → mcp-prompt-streaming-DMDwaark.js.map} +1 -1
  28. package/dist/{non-interactive-DcFLJtl_.js → non-interactive-DJrVQ4nS.js} +2 -2
  29. package/dist/{non-interactive-DcFLJtl_.js.map → non-interactive-DJrVQ4nS.js.map} +1 -1
  30. package/dist/{package-manager-DUPgLGpQ.js → package-manager-DCUBRbr-.js} +2 -2
  31. package/dist/{package-manager-DUPgLGpQ.js.map → package-manager-DCUBRbr-.js.map} +1 -1
  32. package/dist/{playground-BZ0hGjbL.js → playground-DCVaVeVD.js} +138 -9
  33. package/dist/playground-DCVaVeVD.js.map +1 -0
  34. package/dist/{posthog-integration-C8qhJnI3.js → posthog-integration-ChdwFPMj.js} +17 -11
  35. package/dist/posthog-integration-ChdwFPMj.js.map +1 -0
  36. package/dist/{provisioning-C-2ExcqY.js → provisioning-GeMkBMSR.js} +3 -3
  37. package/dist/{provisioning-C-2ExcqY.js.map → provisioning-GeMkBMSR.js.map} +1 -1
  38. package/dist/{registry-hBUgaWFx.js → registry-VSSRH3sU.js} +4 -4
  39. package/dist/{registry-hBUgaWFx.js.map → registry-VSSRH3sU.js.map} +1 -1
  40. package/dist/{setup-utils-DetnhXo0.js → setup-utils-BfV4pydt.js} +12 -10
  41. package/dist/setup-utils-BfV4pydt.js.map +1 -0
  42. package/dist/{start-tui-BfXoErKg.js → start-tui-BRvm5VP9.js} +93 -228
  43. package/dist/start-tui-BRvm5VP9.js.map +1 -0
  44. package/dist/{steps-SoDXSUxe.js → steps-DA4uvSbg.js} +6 -6
  45. package/dist/{steps-SoDXSUxe.js.map → steps-DA4uvSbg.js.map} +1 -1
  46. package/dist/{task-stream-CZRj6auI.js → task-stream-CZawuzlz.js} +2 -2
  47. package/dist/{task-stream-CZRj6auI.js.map → task-stream-CZawuzlz.js.map} +1 -1
  48. package/dist/{telemetry-CPcMFxcO.js → telemetry-BRAonUea.js} +2 -2
  49. package/dist/{telemetry-CPcMFxcO.js.map → telemetry-BRAonUea.js.map} +1 -1
  50. package/dist/{urls-BO7doNJG.js → urls-B66Ib2jT.js} +2 -2
  51. package/dist/{urls-BO7doNJG.js.map → urls-B66Ib2jT.js.map} +1 -1
  52. package/dist/{wizard-abort-CDXufkqJ.js → wizard-abort-D1_DnFjm.js} +12 -7
  53. package/dist/wizard-abort-D1_DnFjm.js.map +1 -0
  54. package/dist/wizard-abort-gMB1eV6T.js +2 -0
  55. package/dist/{wizard-session-d27JGRGi.js → wizard-session-G3VWD6hv.js} +3 -1
  56. package/dist/{wizard-session-d27JGRGi.js.map → wizard-session-G3VWD6hv.js.map} +1 -1
  57. package/dist/{wizard-session-y304gEEI.js → wizard-session-wPJtNl4c.js} +1 -1
  58. package/dist/wizard-ui-YdGFRyu_.js.map +1 -1
  59. package/package.json +4 -2
  60. package/dist/agent-interface-CQU6x4Hj.js.map +0 -1
  61. package/dist/playground-BZ0hGjbL.js.map +0 -1
  62. package/dist/posthog-integration-C8qhJnI3.js.map +0 -1
  63. package/dist/setup-utils-DetnhXo0.js.map +0 -1
  64. package/dist/slides-mT2s9wM_.js.map +0 -1
  65. package/dist/start-tui-BfXoErKg.js.map +0 -1
  66. package/dist/wizard-abort-CDXufkqJ.js.map +0 -1
  67. package/dist/wizard-abort-CtMY57ZE.js +0 -2
@@ -1,16 +1,16 @@
1
- import { M as POSTHOG_DOCS_URL, O as Integration, R as REMOTE_SKILLS_BASE_URL, U as WIZARD_TOOLS_MENU_FLAG_KEY, _ as SIGNUP_WIZARD_READINESS_CONFIG, d as relativeToInstallDir, k as OAUTH_PORTS, l as WIZARD_LOG_FILE, m as setUI, q as getSkillsBaseUrl, s as logToFile, y as getBlockingServiceKeys } from "./debug-DnMO6O8O.js";
2
- import { t as analytics } from "./analytics-Df-Xb81i.js";
3
- import { o as extractOAuthCode, t as getOrAskForProjectData } from "./setup-utils-DetnhXo0.js";
4
- import { a as getUiHostFromHost } from "./urls-BO7doNJG.js";
5
- import { t as ApiError } from "./api-Dw6_orDE.js";
6
- import { t as ADDITIONAL_FEATURE_LABELS } from "./wizard-session-d27JGRGi.js";
7
- import { r as wizardAbort } from "./wizard-abort-CDXufkqJ.js";
8
- import { b as getAuditChecks, f as downloadSkill, g as AUDIT_CHECKS_KEY, h as AUDIT_CHECKS_FILE, p as fetchSkillMenu, v as AUDIT_SEVERITY_STYLE, y as coerceAuditChecks } from "./agent-interface-CQU6x4Hj.js";
9
- import { f as Colors, p as Icons, t as EVENT_PLAN_FILE } from "./posthog-integration-C8qhJnI3.js";
1
+ import { M as POSTHOG_DOCS_URL, O as Integration, R as REMOTE_SKILLS_BASE_URL, U as WIZARD_TOOLS_MENU_FLAG_KEY, _ as SIGNUP_WIZARD_READINESS_CONFIG, d as relativeToInstallDir, k as OAUTH_PORTS, l as WIZARD_LOG_FILE, m as setUI, q as getSkillsBaseUrl, s as logToFile, y as getBlockingServiceKeys } from "./debug-h7Z9zEbD.js";
2
+ import { t as analytics } from "./analytics-Bl5DPj_0.js";
3
+ import { o as extractOAuthCode, t as getOrAskForProjectData } from "./setup-utils-BfV4pydt.js";
4
+ import { a as getUiHostFromHost } from "./urls-B66Ib2jT.js";
5
+ import { t as ApiError } from "./api-DuA0_88V.js";
6
+ import { t as ADDITIONAL_FEATURE_LABELS } from "./wizard-session-G3VWD6hv.js";
7
+ import { i as wizardAbort } from "./wizard-abort-D1_DnFjm.js";
8
+ import { _ as AUDIT_CHECKS_KEY, b as coerceAuditChecks, g as AUDIT_CHECKS_FILE, m as fetchSkillMenu, p as downloadSkill, x as getAuditChecks, y as AUDIT_SEVERITY_STYLE } from "./agent-interface-DE7txTqh.js";
9
+ import { f as Colors, p as Icons, t as EVENT_PLAN_FILE } from "./posthog-integration-ChdwFPMj.js";
10
10
  import { a as getProgramConfig, d as getContentBlocks, f as POSTHOG_SDKS, i as Program, o as DISPLAY_NAME, p as STRIPE_SDKS, s as SOURCE_MAPS_CONTEXT_KEYS, u as fetchHealthIssues } from "./bin.js";
11
- import { A as WizardStore, C as useStdoutDimensions, D as LoadingBox, E as ProgressList, O as SplitView, T as useKeyBindings, _ as ScreenContainer, a as McpSuggestedPromptsScreen, b as ModalOverlay, c as IssueTable, d as ServiceHealthList, f as TipsCard, g as TabContainer, h as HNViewer, i as AuditChecksViewer, l as SEVERITY_LABEL, n as AUDIT_AREA_SLIDES, p as LearnCard, r as VisualBox, s as McpScreen, t as AUDIT_3000_AREA_SLIDES, u as SEVERITY_ORDER, v as EventPlanViewer, w as PickerMenu, x as ConfirmationInput, y as LogViewer } from "./slides-mT2s9wM_.js";
11
+ import { A as SplitView, C as ConfirmationInput, D as useKeyBindings, E as PickerMenu, M as WizardStore, O as ProgressList, S as ModalOverlay, T as useStdoutDimensions, _ as HNViewer, a as VisualBox, b as EventPlanViewer, d as SEVERITY_LABEL, f as SEVERITY_ORDER, h as LearnCard, i as AUDIT_AREA_SLIDES, k as LoadingBox, l as McpScreen, m as TipsCard, n as SlackConnectScreen, o as AuditChecksViewer, p as ServiceHealthList, r as AUDIT_3000_AREA_SLIDES, s as McpSuggestedPromptsScreen, t as OutroScreen, u as IssueTable, v as TabContainer, x as LogViewer, y as ScreenContainer } from "./OutroScreen-CqF6SdBo.js";
12
12
  import { t as ALL_FEATURE_VALUES } from "./defaults-BNWIWzjc.js";
13
- import { a as getSupportedClients, c as removeMCPServer, i as getInstalledClients, o as getSupportedPluginClients, s as installPlugins, u as isPluginCapable } from "./add-mcp-server-to-clients-CjnvTVj0.js";
13
+ import { a as getSupportedClients, c as removeMCPServer, i as getInstalledClients, o as getSupportedPluginClients, s as installPlugins, u as isPluginCapable } from "./add-mcp-server-to-clients-DQHGhzt6.js";
14
14
  import { spawn, spawnSync } from "node:child_process";
15
15
  import { join } from "node:path";
16
16
  import * as fs$1 from "fs";
@@ -535,13 +535,6 @@ function formatSummaryLine(issues) {
535
535
  }
536
536
  //#endregion
537
537
  //#region src/ui/tui/screens/SettingsOverrideScreen.tsx
538
- function sourcePath(source) {
539
- switch (source) {
540
- case "project": return ".claude/settings.json";
541
- case "managed": return "/Library/Application Support/ClaudeCode/managed-settings.json";
542
- default: return source;
543
- }
544
- }
545
538
  const SettingsOverrideScreen = ({ store }) => {
546
539
  useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
547
540
  const [feedback, setFeedback] = useState(null);
@@ -565,11 +558,10 @@ const SettingsOverrideScreen = ({ store }) => {
565
558
  flexDirection: "column",
566
559
  marginBottom: 1,
567
560
  children: [/* @__PURE__ */ jsxs(Text, { children: [
568
- "Your settings file at",
569
- " ",
561
+ "Your settings file at ",
570
562
  /* @__PURE__ */ jsx(Text, {
571
563
  bold: true,
572
- children: sourcePath(conflict.source)
564
+ children: conflict.path
573
565
  }),
574
566
  " sets:"
575
567
  ] }), /* @__PURE__ */ jsx(Box, {
@@ -585,7 +577,7 @@ const SettingsOverrideScreen = ({ store }) => {
585
577
  })
586
578
  ] }, key))
587
579
  })]
588
- }, conflict.source)), /* @__PURE__ */ jsx(Text, {
580
+ }, conflict.path)), /* @__PURE__ */ jsx(Text, {
589
581
  dimColor: true,
590
582
  children: "These settings override credentials and prevent the Wizard from reaching the PostHog LLM Gateway. We can back up the file and continue."
591
583
  })]
@@ -594,16 +586,20 @@ const SettingsOverrideScreen = ({ store }) => {
594
586
  //#endregion
595
587
  //#region src/ui/tui/screens/ManagedSettingsScreen.tsx
596
588
  /**
597
- * ManagedSettingsScreen — Modal when IT/org-managed settings contain overrides
598
- * that block the Wizard from reaching the PostHog LLM Gateway.
589
+ * ManagedSettingsScreen — Modal for read-only settings conflicts that block
590
+ * the Wizard from reaching the PostHog LLM Gateway: org-managed settings, the
591
+ * user's global `~/.claude` config, and gitignored project-local overrides.
599
592
  *
600
- * Unlike SettingsOverrideScreen, the wizard cannot back up or modify these files.
601
- * The user must contact their IT administrator to resolve the conflict.
593
+ * Unlike SettingsOverrideScreen, the wizard cannot safely back up or remove
594
+ * these files for the user, so it names the exact file and key and asks the
595
+ * user to fix it and re-run. Managed (root-owned) files need an IT admin; the
596
+ * rest the user can edit themselves.
602
597
  */
603
598
  function sourceLabel(source) {
604
599
  switch (source) {
605
- case "managed": return "Managed settings (IT/org-managed)";
606
- case "project": return ".claude/settings.json";
600
+ case "managed": return "Organization-managed settings";
601
+ case "user": return "Your global Claude Code settings";
602
+ case "project-local": return "Project-local settings";
607
603
  default: return source;
608
604
  }
609
605
  }
@@ -611,12 +607,13 @@ const ManagedSettingsScreen = ({ store }) => {
611
607
  useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
612
608
  const readOnlyConflicts = store.session.settingsConflicts?.filter((c) => !c.writable);
613
609
  if (!readOnlyConflicts || readOnlyConflicts.length === 0) return null;
610
+ const hasManaged = readOnlyConflicts.some((c) => c.source === "managed");
614
611
  return /* @__PURE__ */ jsxs(ModalOverlay, {
615
612
  borderColor: "red",
616
- title: `${Icons.warning} Organization settings conflict`,
617
- width: 68,
613
+ title: `${Icons.warning} Settings conflict`,
614
+ width: 72,
618
615
  footer: /* @__PURE__ */ jsx(ConfirmationInput, {
619
- message: "Contact your IT administrator to resolve this.",
616
+ message: "Fix the file(s) above, then re-run the Wizard.",
620
617
  confirmLabel: "",
621
618
  cancelLabel: "Exit [Esc]",
622
619
  onConfirm: () => process.exit(1),
@@ -625,33 +622,40 @@ const ManagedSettingsScreen = ({ store }) => {
625
622
  children: [
626
623
  /* @__PURE__ */ jsx(Text, {
627
624
  dimColor: true,
628
- children: "Your organization's managed settings contain overrides that prevent the Wizard from reaching the PostHog LLM Gateway."
625
+ children: "These Claude Code settings override credentials and prevent the Wizard from reaching the PostHog LLM Gateway."
629
626
  }),
630
627
  readOnlyConflicts.map((conflict) => /* @__PURE__ */ jsxs(Box, {
631
628
  flexDirection: "column",
632
629
  marginTop: 1,
633
- children: [/* @__PURE__ */ jsx(Text, {
634
- bold: true,
635
- children: sourceLabel(conflict.source)
636
- }), /* @__PURE__ */ jsx(Box, {
637
- flexDirection: "column",
638
- paddingLeft: 2,
639
- children: conflict.keys.map((key) => /* @__PURE__ */ jsxs(Text, { children: [
640
- Icons.bullet,
641
- " ",
642
- /* @__PURE__ */ jsx(Text, {
643
- color: "yellow",
644
- bold: true,
645
- children: key
646
- })
647
- ] }, key))
648
- })]
649
- }, conflict.source)),
630
+ children: [
631
+ /* @__PURE__ */ jsx(Text, {
632
+ bold: true,
633
+ children: sourceLabel(conflict.source)
634
+ }),
635
+ /* @__PURE__ */ jsx(Text, {
636
+ dimColor: true,
637
+ children: conflict.path
638
+ }),
639
+ /* @__PURE__ */ jsx(Box, {
640
+ flexDirection: "column",
641
+ paddingLeft: 2,
642
+ children: conflict.keys.map((key) => /* @__PURE__ */ jsxs(Text, { children: [
643
+ Icons.bullet,
644
+ " ",
645
+ /* @__PURE__ */ jsx(Text, {
646
+ color: "yellow",
647
+ bold: true,
648
+ children: key
649
+ })
650
+ ] }, key))
651
+ })
652
+ ]
653
+ }, conflict.path)),
650
654
  /* @__PURE__ */ jsx(Box, {
651
655
  marginTop: 1,
652
656
  children: /* @__PURE__ */ jsx(Text, {
653
657
  dimColor: true,
654
- children: "Try running \"claude auth logout\" or contact your IT administrator to resolve this."
658
+ children: hasManaged ? "Remove these keys (or run \"claude auth logout\"). Managed files are root-owned — ask your IT administrator." : "Remove these keys, or run \"claude auth logout\", then re-run the Wizard."
655
659
  })
656
660
  })
657
661
  ]
@@ -1042,7 +1046,7 @@ const FrameworkPicker = ({ store, onComplete }) => {
1042
1046
  })),
1043
1047
  onSelect: (value) => {
1044
1048
  const integration = Array.isArray(value) ? value[0] : value;
1045
- import("./registry-hBUgaWFx.js").then((n) => n.n).then(({ FRAMEWORK_REGISTRY }) => {
1049
+ import("./registry-VSSRH3sU.js").then((n) => n.n).then(({ FRAMEWORK_REGISTRY }) => {
1046
1050
  const config = FRAMEWORK_REGISTRY[integration];
1047
1051
  store.setFrameworkConfig(integration, config);
1048
1052
  store.setDetectedFramework(config.metadata.name);
@@ -4410,178 +4414,6 @@ const KeepSkillsScreen = ({ store }) => {
4410
4414
  });
4411
4415
  };
4412
4416
  //#endregion
4413
- //#region src/ui/tui/screens/OutroScreen.tsx
4414
- /**
4415
- * OutroScreen — Default post-run summary.
4416
- *
4417
- * Renders the success / error / cancel views from `outroData`. Programs
4418
- * that need a different success view (e.g. with extra summary content)
4419
- * ship their own screen component (see audit/AuditOutroScreen.tsx).
4420
- */
4421
- const OutroScreen = ({ store }) => {
4422
- useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
4423
- useInput(() => {
4424
- store.setOutroDismissed();
4425
- });
4426
- const outroData = store.session.outroData;
4427
- if (!outroData) return /* @__PURE__ */ jsx(Box, {
4428
- flexDirection: "column",
4429
- flexGrow: 1,
4430
- children: /* @__PURE__ */ jsx(Text, {
4431
- dimColor: true,
4432
- children: "Finishing up..."
4433
- })
4434
- });
4435
- return /* @__PURE__ */ jsxs(Box, {
4436
- flexDirection: "column",
4437
- flexGrow: 1,
4438
- children: [
4439
- outroData.kind === "success" && /* @__PURE__ */ jsxs(Box, {
4440
- flexDirection: "column",
4441
- children: [
4442
- /* @__PURE__ */ jsxs(Text, {
4443
- color: "green",
4444
- bold: true,
4445
- children: ["✔ ", outroData.message || "Done!"]
4446
- }),
4447
- outroData.body && /* @__PURE__ */ jsx(Box, {
4448
- marginTop: 1,
4449
- children: /* @__PURE__ */ jsx(Text, {
4450
- dimColor: true,
4451
- children: outroData.body
4452
- })
4453
- }),
4454
- outroData.reportFile && /* @__PURE__ */ jsx(Box, {
4455
- marginTop: 1,
4456
- children: /* @__PURE__ */ jsxs(Text, { children: [
4457
- "Check ",
4458
- /* @__PURE__ */ jsxs(Text, {
4459
- bold: true,
4460
- children: ["./", outroData.reportFile]
4461
- }),
4462
- " for details"
4463
- ] })
4464
- }),
4465
- outroData.changes && outroData.changes.length > 0 && /* @__PURE__ */ jsxs(Box, {
4466
- flexDirection: "column",
4467
- marginTop: 1,
4468
- children: [/* @__PURE__ */ jsx(Text, {
4469
- color: "cyan",
4470
- bold: true,
4471
- children: "What the agent did:"
4472
- }), outroData.changes.map((change, i) => /* @__PURE__ */ jsxs(Text, { children: ["• ", change] }, i))]
4473
- }),
4474
- store.eventPlan.length > 0 && /* @__PURE__ */ jsxs(Box, {
4475
- flexDirection: "column",
4476
- marginTop: 1,
4477
- children: [/* @__PURE__ */ jsx(Text, {
4478
- color: "cyan",
4479
- bold: true,
4480
- children: "Events added:"
4481
- }), store.eventPlan.map((event) => /* @__PURE__ */ jsxs(Text, { children: [
4482
- "• ",
4483
- /* @__PURE__ */ jsx(Text, {
4484
- bold: true,
4485
- children: event.name
4486
- }),
4487
- /* @__PURE__ */ jsxs(Text, {
4488
- dimColor: true,
4489
- children: [" ", event.description]
4490
- })
4491
- ] }, event.name))]
4492
- }),
4493
- outroData.dashboardUrl && /* @__PURE__ */ jsx(Box, {
4494
- marginTop: 1,
4495
- children: /* @__PURE__ */ jsxs(Text, { children: [
4496
- "We've also made you a dashboard:",
4497
- " ",
4498
- /* @__PURE__ */ jsx(Text, {
4499
- color: "cyan",
4500
- children: outroData.dashboardUrl
4501
- })
4502
- ] })
4503
- }),
4504
- outroData.notebookUrl && /* @__PURE__ */ jsx(Box, {
4505
- marginTop: 1,
4506
- children: /* @__PURE__ */ jsxs(Text, { children: [
4507
- "And uploaded the report to a PostHog notebook:",
4508
- " ",
4509
- /* @__PURE__ */ jsx(Text, {
4510
- color: "cyan",
4511
- children: outroData.notebookUrl
4512
- })
4513
- ] })
4514
- }),
4515
- outroData.docsUrl && /* @__PURE__ */ jsx(Box, {
4516
- marginTop: 1,
4517
- children: /* @__PURE__ */ jsxs(Text, { children: ["Learn more: ", /* @__PURE__ */ jsx(Text, {
4518
- color: "cyan",
4519
- children: outroData.docsUrl
4520
- })] })
4521
- }),
4522
- outroData.continueUrl && /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(Text, { children: [
4523
- "Continue onboarding:",
4524
- " ",
4525
- /* @__PURE__ */ jsx(Text, {
4526
- color: "cyan",
4527
- children: outroData.continueUrl
4528
- })
4529
- ] }) }),
4530
- /* @__PURE__ */ jsx(Box, {
4531
- marginTop: 1,
4532
- children: /* @__PURE__ */ jsx(Text, {
4533
- dimColor: true,
4534
- children: "Note: This wizard uses an LLM agent to analyze and modify your project. Please review the changes made."
4535
- })
4536
- }),
4537
- /* @__PURE__ */ jsx(Text, {
4538
- dimColor: true,
4539
- children: "How did this work for you? Drop us a line: wizard@posthog.com"
4540
- })
4541
- ]
4542
- }),
4543
- outroData.kind === "error" && /* @__PURE__ */ jsxs(Box, {
4544
- flexDirection: "column",
4545
- children: [
4546
- /* @__PURE__ */ jsxs(Text, {
4547
- color: "red",
4548
- bold: true,
4549
- children: ["✘ ", outroData.message || "An error occurred"]
4550
- }),
4551
- outroData.body && /* @__PURE__ */ jsx(Box, {
4552
- marginTop: 1,
4553
- children: /* @__PURE__ */ jsx(Text, {
4554
- dimColor: true,
4555
- children: outroData.body
4556
- })
4557
- }),
4558
- outroData.docsUrl && /* @__PURE__ */ jsx(Box, {
4559
- marginTop: 1,
4560
- children: /* @__PURE__ */ jsxs(Text, { children: ["Docs: ", /* @__PURE__ */ jsx(Text, {
4561
- color: "cyan",
4562
- children: outroData.docsUrl
4563
- })] })
4564
- })
4565
- ]
4566
- }),
4567
- outroData.kind === "cancel" && /* @__PURE__ */ jsx(Box, {
4568
- flexDirection: "column",
4569
- children: /* @__PURE__ */ jsxs(Text, {
4570
- color: "yellow",
4571
- children: ["■ ", outroData.message || "Cancelled"]
4572
- })
4573
- }),
4574
- /* @__PURE__ */ jsx(Box, {
4575
- marginTop: 1,
4576
- children: /* @__PURE__ */ jsx(Text, {
4577
- color: Colors.muted,
4578
- children: "Press any key to continue"
4579
- })
4580
- })
4581
- ]
4582
- });
4583
- };
4584
- //#endregion
4585
4417
  //#region src/ui/tui/screens/ExitScreen.tsx
4586
4418
  /**
4587
4419
  * ExitScreen — Final step in every program.
@@ -4613,6 +4445,7 @@ const AuthErrorScreen = ({ store }) => {
4613
4445
  });
4614
4446
  const detail = store.session.authErrorDetail;
4615
4447
  const hasSettingsConflict = detail?.hasSettingsConflict ?? true;
4448
+ const conflicts = detail?.conflicts ?? [];
4616
4449
  const logFilePath = detail?.logFilePath;
4617
4450
  return /* @__PURE__ */ jsxs(Box, {
4618
4451
  flexDirection: "column",
@@ -4627,13 +4460,32 @@ const AuthErrorScreen = ({ store }) => {
4627
4460
  /* @__PURE__ */ jsx(Box, {
4628
4461
  flexDirection: "column",
4629
4462
  marginTop: 1,
4630
- children: /* @__PURE__ */ jsx(Text, { children: "The Wizard couldn't connect to the PostHog LLM Gateway. Claude Code settings on this machine are overriding the Wizard's credentials." })
4463
+ children: /* @__PURE__ */ jsx(Text, { children: "The Wizard couldn't connect to the PostHog LLM Gateway. Claude Code settings on this machine override the Wizard's credentials." })
4464
+ }),
4465
+ conflicts.length > 0 && /* @__PURE__ */ jsx(Box, {
4466
+ flexDirection: "column",
4467
+ marginTop: 1,
4468
+ paddingLeft: 2,
4469
+ children: conflicts.map((conflict) => /* @__PURE__ */ jsxs(Text, { children: [
4470
+ "•",
4471
+ " ",
4472
+ /* @__PURE__ */ jsx(Text, {
4473
+ bold: true,
4474
+ children: conflict.path
4475
+ }),
4476
+ " sets",
4477
+ " ",
4478
+ /* @__PURE__ */ jsx(Text, {
4479
+ color: "yellow",
4480
+ children: conflict.keys.join(", ")
4481
+ })
4482
+ ] }, conflict.path))
4631
4483
  }),
4632
4484
  /* @__PURE__ */ jsx(Box, {
4633
4485
  marginTop: 1,
4634
4486
  children: /* @__PURE__ */ jsx(Text, {
4635
4487
  dimColor: true,
4636
- children: "Try logging out of Claude Code temporarily and re-running the Wizard:"
4488
+ children: "Remove those keys from the file(s) above, or log out of Claude Code, then re-run the Wizard:"
4637
4489
  })
4638
4490
  }),
4639
4491
  /* @__PURE__ */ jsx(Box, {
@@ -4910,11 +4762,15 @@ function createMcpSuggestedPromptsServices(_store) {
4910
4762
  user: result.user
4911
4763
  };
4912
4764
  },
4765
+ checkSlackConnected: async (credentials, signal) => {
4766
+ const { fetchSlackConnected } = await import("./api-DuA0_88V.js").then((n) => n.n);
4767
+ return fetchSlackConnected(credentials.accessToken, credentials.projectId, credentials.host, signal);
4768
+ },
4913
4769
  runPromptStreaming: (args) => runProductionPromptStreaming(args)
4914
4770
  };
4915
4771
  }
4916
4772
  async function* runProductionPromptStreaming(args) {
4917
- const { runMcpPromptViaSdk } = await import("./mcp-prompt-streaming-DQOTQfW1.js");
4773
+ const { runMcpPromptViaSdk } = await import("./mcp-prompt-streaming-DMDwaark.js");
4918
4774
  yield* runMcpPromptViaSdk(args);
4919
4775
  }
4920
4776
  //#endregion
@@ -4959,6 +4815,7 @@ function createScreens(store, services) {
4959
4815
  store,
4960
4816
  services: services.mcpSuggestedPromptsServices
4961
4817
  }),
4818
+ ["slack-connect"]: /* @__PURE__ */ jsx(SlackConnectScreen, { store }),
4962
4819
  ["keep-skills"]: /* @__PURE__ */ jsx(KeepSkillsScreen, { store }),
4963
4820
  ["outro"]: /* @__PURE__ */ jsx(OutroScreen, { store }),
4964
4821
  ["exit"]: /* @__PURE__ */ jsx(ExitScreen, {}),
@@ -5017,7 +4874,11 @@ function startTUI(version, program = Program.PostHogIntegration) {
5017
4874
  const store = new WizardStore(program);
5018
4875
  store.version = version;
5019
4876
  setUI(new InkUI(store));
5020
- const { unmount: inkUnmount } = render(createElement(App, { store }));
4877
+ const { unmount: inkUnmount, waitUntilExit } = render(createElement(App, { store }));
4878
+ store.runInitHooks();
4879
+ process.stdin.on("error", (err) => {
4880
+ if (err.code !== "EIO") throw err;
4881
+ });
5021
4882
  let cleaned = false;
5022
4883
  const cleanup = () => {
5023
4884
  if (cleaned) return;
@@ -5028,6 +4889,10 @@ function startTUI(version, program = Program.PostHogIntegration) {
5028
4889
  process.stdout.write(getExitLine(store) + "\n");
5029
4890
  };
5030
4891
  process.on("exit", cleanup);
4892
+ waitUntilExit().then(() => {
4893
+ cleanup();
4894
+ process.exit(process.exitCode ?? 0);
4895
+ });
5031
4896
  return {
5032
4897
  unmount: cleanup,
5033
4898
  store,
@@ -5037,4 +4902,4 @@ function startTUI(version, program = Program.PostHogIntegration) {
5037
4902
  //#endregion
5038
4903
  export { startTUI };
5039
4904
 
5040
- //# sourceMappingURL=start-tui-BfXoErKg.js.map
4905
+ //# sourceMappingURL=start-tui-BRvm5VP9.js.map