@posthog/wizard 2.16.0 → 2.16.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.
Files changed (88) hide show
  1. package/README.md +0 -4
  2. package/dist/{TextBlock-DJVhBkr3.js → TextBlock-CdeZog_6.js} +2 -2
  3. package/dist/{TextBlock-DJVhBkr3.js.map → TextBlock-CdeZog_6.js.map} +1 -1
  4. package/dist/{add-mcp-server-to-clients-9jQjc-CO.js → add-mcp-server-to-clients-BS6Rjcwh.js} +6 -6
  5. package/dist/{add-mcp-server-to-clients-9jQjc-CO.js.map → add-mcp-server-to-clients-BS6Rjcwh.js.map} +1 -1
  6. package/dist/{agent-interface-pBnqJL8P.js → agent-interface-B4eUlMso.js} +33 -7
  7. package/dist/agent-interface-B4eUlMso.js.map +1 -0
  8. package/dist/{agent-runner-H1FP6XTc.js → agent-runner-BxqiKVEf.js} +16 -21
  9. package/dist/{agent-runner-H1FP6XTc.js.map → agent-runner-BxqiKVEf.js.map} +1 -1
  10. package/dist/{analytics-DZaUgJte.js → analytics-DUuUurR3.js} +3 -3
  11. package/dist/{analytics-DZaUgJte.js.map → analytics-DUuUurR3.js.map} +1 -1
  12. package/dist/api-B8OR0N1V.js +2 -0
  13. package/dist/api-CGJ1iGps.js +138 -0
  14. package/dist/api-CGJ1iGps.js.map +1 -0
  15. package/dist/bin.js +763 -497
  16. package/dist/bin.js.map +1 -1
  17. package/dist/ci-install-DD7WMmIF.js +73 -0
  18. package/dist/ci-install-DD7WMmIF.js.map +1 -0
  19. package/dist/{debug-B6rX6xye.js → debug-Cd0hPlZy.js} +1 -1
  20. package/dist/{debug-C4jRuzny.js → debug-ubpO6102.js} +12 -6
  21. package/dist/debug-ubpO6102.js.map +1 -0
  22. package/dist/{defaults-GbLPuHxj.js → defaults-zrYmZ2ID.js} +1 -1
  23. package/dist/{defaults-GbLPuHxj.js.map → defaults-zrYmZ2ID.js.map} +1 -1
  24. package/dist/{env-api-key-DU8uIEvo.js → env-api-key-DEl3LJBv.js} +4 -2
  25. package/dist/{env-api-key-DU8uIEvo.js.map → env-api-key-DEl3LJBv.js.map} +1 -1
  26. package/dist/environment-BAaC5THg.js +22 -0
  27. package/dist/environment-BAaC5THg.js.map +1 -0
  28. package/dist/{file-utils-DnTSiTJw.js → file-utils-DPmgn9Vm.js} +1 -1
  29. package/dist/{file-utils-DnTSiTJw.js.map → file-utils-DPmgn9Vm.js.map} +1 -1
  30. package/dist/interactive-BaMAq88Q.js +11 -0
  31. package/dist/interactive-BaMAq88Q.js.map +1 -0
  32. package/dist/{mcp-prompt-streaming-DKiaymMt.js → mcp-prompt-streaming-clGsVw8q.js} +2 -2
  33. package/dist/{mcp-prompt-streaming-DKiaymMt.js.map → mcp-prompt-streaming-clGsVw8q.js.map} +1 -1
  34. package/dist/non-interactive-l2AKE3jD.js +12 -0
  35. package/dist/non-interactive-l2AKE3jD.js.map +1 -0
  36. package/dist/package-json-CumwmZpv.js +2 -0
  37. package/dist/{package-json-v_g2YlN1.js → package-json-Cynjr9k4.js} +1 -1
  38. package/dist/{package-json-v_g2YlN1.js.map → package-json-Cynjr9k4.js.map} +1 -1
  39. package/dist/{package-manager-DLt75bit.js → package-manager-BqsJK3ej.js} +2 -2
  40. package/dist/{package-manager-DLt75bit.js.map → package-manager-BqsJK3ej.js.map} +1 -1
  41. package/dist/{start-playground-B40O4tye.js → playground-DlE5RNfE.js} +14 -8
  42. package/dist/playground-DlE5RNfE.js.map +1 -0
  43. package/dist/{posthog-7B92c2Ed.js → posthog-DWL8uOcl.js} +1 -1
  44. package/dist/{posthog-7B92c2Ed.js.map → posthog-DWL8uOcl.js.map} +1 -1
  45. package/dist/{posthog-integration-CukaeYil.js → posthog-integration-Bf_vtWI9.js} +229 -21
  46. package/dist/posthog-integration-Bf_vtWI9.js.map +1 -0
  47. package/dist/provisioning-BlBnlcFd.js +2 -0
  48. package/dist/{provisioning-C_ETLiZE.js → provisioning-D_hAuxUN.js} +3 -3
  49. package/dist/{provisioning-C_ETLiZE.js.map → provisioning-D_hAuxUN.js.map} +1 -1
  50. package/dist/{registry-DqbwO5EL.js → registry-DKgYqROt.js} +5 -5
  51. package/dist/{registry-DqbwO5EL.js.map → registry-DKgYqROt.js.map} +1 -1
  52. package/dist/setup-utils-BHZEdkNZ.js +2 -0
  53. package/dist/{setup-utils-DdAdxUTV.js → setup-utils-D-uTycLX.js} +8 -144
  54. package/dist/setup-utils-D-uTycLX.js.map +1 -0
  55. package/dist/skill-CnOQAZXp.js +29 -0
  56. package/dist/skill-CnOQAZXp.js.map +1 -0
  57. package/dist/{slides-Dpj4j0w_.js → slides-CL1mv_Kq.js} +154 -50
  58. package/dist/slides-CL1mv_Kq.js.map +1 -0
  59. package/dist/{start-tui-CH_ZzQXx.js → start-tui-DXrv6cof.js} +419 -29
  60. package/dist/start-tui-DXrv6cof.js.map +1 -0
  61. package/dist/{steps-0d9XqvI6.js → steps-CgScwqso.js} +6 -6
  62. package/dist/{steps-0d9XqvI6.js.map → steps-CgScwqso.js.map} +1 -1
  63. package/dist/{task-stream-CoEsidgG.js → task-stream-CF6QMVMv.js} +3 -3
  64. package/dist/{task-stream-CoEsidgG.js.map → task-stream-CF6QMVMv.js.map} +1 -1
  65. package/dist/{telemetry-jn2Daxl2.js → telemetry-v6O12Bep.js} +2 -2
  66. package/dist/{telemetry-jn2Daxl2.js.map → telemetry-v6O12Bep.js.map} +1 -1
  67. package/dist/{wizard-abort-BlYGA1Jk.js → wizard-abort-BGoBKgvC.js} +1 -1
  68. package/dist/{wizard-abort-BjLIgu2s.js → wizard-abort-iTaJ8wC8.js} +3 -3
  69. package/dist/{wizard-abort-BjLIgu2s.js.map → wizard-abort-iTaJ8wC8.js.map} +1 -1
  70. package/dist/{wizard-session-DPGTaJ4W.js → wizard-session-7tMjgOvP.js} +1 -1
  71. package/dist/{wizard-session-Bi95IYca.js → wizard-session-gsn8Z3bZ.js} +2 -3
  72. package/dist/wizard-session-gsn8Z3bZ.js.map +1 -0
  73. package/dist/wizard-ui-YdGFRyu_.js.map +1 -1
  74. package/package.json +1 -1
  75. package/dist/agent-interface-pBnqJL8P.js.map +0 -1
  76. package/dist/analytics-DqeW7XYt.js +0 -2
  77. package/dist/debug-C4jRuzny.js.map +0 -1
  78. package/dist/detection-4eukp9HD.js +0 -206
  79. package/dist/detection-4eukp9HD.js.map +0 -1
  80. package/dist/package-json-Cttzi3C8.js +0 -2
  81. package/dist/posthog-integration-CukaeYil.js.map +0 -1
  82. package/dist/provisioning-Ch6i8dRV.js +0 -2
  83. package/dist/setup-utils-C5uZ9g60.js +0 -2
  84. package/dist/setup-utils-DdAdxUTV.js.map +0 -1
  85. package/dist/slides-Dpj4j0w_.js.map +0 -1
  86. package/dist/start-playground-B40O4tye.js.map +0 -1
  87. package/dist/start-tui-CH_ZzQXx.js.map +0 -1
  88. package/dist/wizard-session-Bi95IYca.js.map +0 -1
@@ -1,11 +1,11 @@
1
- import { g as SERVICE_LABELS, s as logToFile } from "./debug-C4jRuzny.js";
1
+ import { g as SERVICE_LABELS, s as logToFile } from "./debug-ubpO6102.js";
2
2
  import { n as isTaskStatus } from "./wizard-ui-YdGFRyu_.js";
3
- import { n as analytics, r as sessionProperties } from "./analytics-DZaUgJte.js";
4
- import { i as buildSession } from "./wizard-session-Bi95IYca.js";
5
- import { _ as AUDIT_SEVERITY_STYLE } from "./agent-interface-pBnqJL8P.js";
6
- import { a as isObjectBlock, i as isLinesBlock, n as computeVisibleRange, o as Colors, r as isClearBlock, s as Icons, t as TextBlock } from "./TextBlock-DJVhBkr3.js";
7
- import { n as Program, r as getProgramConfig, s as getKindMeta, t as PROGRAM_REGISTRY } from "./bin.js";
8
- import { n as AVAILABLE_FEATURES, t as ALL_FEATURE_VALUES } from "./defaults-GbLPuHxj.js";
3
+ import { n as sessionProperties, t as analytics } from "./analytics-DUuUurR3.js";
4
+ import { i as buildSession } from "./wizard-session-gsn8Z3bZ.js";
5
+ import { _ as AUDIT_SEVERITY_STYLE } from "./agent-interface-B4eUlMso.js";
6
+ import { a as isObjectBlock, i as isLinesBlock, n as computeVisibleRange, o as Colors, r as isClearBlock, s as Icons, t as TextBlock } from "./TextBlock-CdeZog_6.js";
7
+ import { a as getProgramConfig, i as Program, l as getKindMeta, r as PROGRAM_REGISTRY } from "./bin.js";
8
+ import { n as AVAILABLE_FEATURES, t as ALL_FEATURE_VALUES } from "./defaults-zrYmZ2ID.js";
9
9
  import * as fs$1 from "fs";
10
10
  import { Box, Text, measureElement, useInput, useStdout } from "ink";
11
11
  import { Component, Fragment, createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
@@ -487,9 +487,15 @@ var WizardStore = class {
487
487
  this.emitChange();
488
488
  }
489
489
  setDashboardUrl(url) {
490
+ logToFile(`store.setDashboardUrl: ${url}`);
490
491
  this.$session.setKey("dashboardUrl", url);
491
492
  this.emitChange();
492
493
  }
494
+ setNotebookUrl(url) {
495
+ logToFile(`store.setNotebookUrl: ${url}`);
496
+ this.$session.setKey("notebookUrl", url);
497
+ this.emitChange();
498
+ }
493
499
  setFrameworkContext(key, value) {
494
500
  const ctx = {
495
501
  ...this.$session.get().frameworkContext,
@@ -786,22 +792,18 @@ function deduplicateAndSort(hints) {
786
792
  * KeyboardHintsProvider — Context for collecting and displaying keyboard hints.
787
793
  *
788
794
  * Input components register their hints via useKeyBindings. The provider
789
- * flattens, deduplicates, and sorts them. It auto-dismisses 3s after the
790
- * first keypress and resets when the hint set changes (screen navigation).
795
+ * flattens, deduplicates, and sorts them. The hints bar stays visible for as
796
+ * long as a screen has registered hints it never auto-dismisses.
791
797
  */
792
798
  const KeyboardHintsContext = createContext({
793
799
  register: () => void 0,
794
800
  unregister: () => void 0,
795
- hints: [],
796
- visible: false
801
+ hints: []
797
802
  });
798
803
  const useKeyboardHintsContext = () => useContext(KeyboardHintsContext);
799
- const DISMISS_DELAY = 3e3;
800
804
  const KeyboardHintsProvider = ({ children }) => {
801
805
  const registrationsRef = useRef(/* @__PURE__ */ new Map());
802
806
  const [hints, setHints] = useState([]);
803
- const [visible, setVisible] = useState(true);
804
- const timerRef = useRef(null);
805
807
  const prevHintsKeyRef = useRef("");
806
808
  const recompute = useCallback(() => {
807
809
  const all = [];
@@ -811,13 +813,6 @@ const KeyboardHintsProvider = ({ children }) => {
811
813
  if (newKey !== prevHintsKeyRef.current) {
812
814
  prevHintsKeyRef.current = newKey;
813
815
  setHints(deduped);
814
- if (newKey.length > 0) {
815
- setVisible(true);
816
- if (timerRef.current) {
817
- clearTimeout(timerRef.current);
818
- timerRef.current = null;
819
- }
820
- }
821
816
  }
822
817
  }, []);
823
818
  const register = useCallback((id, h) => {
@@ -828,25 +823,11 @@ const KeyboardHintsProvider = ({ children }) => {
828
823
  registrationsRef.current.delete(id);
829
824
  recompute();
830
825
  }, [recompute]);
831
- useInput(() => {
832
- if (!visible) return;
833
- if (timerRef.current) return;
834
- timerRef.current = setTimeout(() => {
835
- setVisible(false);
836
- timerRef.current = null;
837
- }, DISMISS_DELAY);
838
- });
839
- useEffect(() => {
840
- return () => {
841
- if (timerRef.current) clearTimeout(timerRef.current);
842
- };
843
- }, []);
844
826
  return /* @__PURE__ */ jsx(KeyboardHintsContext.Provider, {
845
827
  value: {
846
828
  register,
847
829
  unregister,
848
- hints,
849
- visible
830
+ hints
850
831
  },
851
832
  children
852
833
  });
@@ -1457,40 +1438,92 @@ const ModalOverlay = ({ borderColor, title, titleColor, width = 68, children, fe
1457
1438
  /**
1458
1439
  * LogViewer — Real-time log tail, pinned to available terminal height.
1459
1440
  * Only renders the last N lines that fit on screen.
1441
+ *
1442
+ * Reads only the last TAIL_BYTES of the file on each refresh and throttles
1443
+ * fs.watch callbacks to one refresh per WATCH_THROTTLE_MS. Without this,
1444
+ * fs.readFileSync allocates a string the size of the entire log on every
1445
+ * append — during subagent fan-out that's tens of writes per second against
1446
+ * a log that grows into the hundreds of MB, producing OOM-grade allocation
1447
+ * pressure on V8's heap.
1460
1448
  */
1461
1449
  /** Rows consumed by TitleBar + spacer + ScreenContainer padding + status bar + tab bar */
1462
1450
  const CHROME_ROWS$1 = 8;
1451
+ /** Bytes read from the end of the log per refresh — large enough to contain
1452
+ * any practical visible window of lines, small enough to allocate cheaply. */
1453
+ const TAIL_BYTES = 256 * 1024;
1454
+ /** Minimum gap between watch-triggered refreshes. fs.watch fires on every
1455
+ * append */
1456
+ const WATCH_THROTTLE_MS = 250;
1457
+ function readTailLines(filePath, visibleLines) {
1458
+ const stat = fs$1.statSync(filePath);
1459
+ if (stat.size === 0) return [];
1460
+ const start = Math.max(0, stat.size - TAIL_BYTES);
1461
+ const length = stat.size - start;
1462
+ const buf = Buffer.alloc(length);
1463
+ const fd = fs$1.openSync(filePath, "r");
1464
+ try {
1465
+ fs$1.readSync(fd, buf, 0, length, start);
1466
+ } finally {
1467
+ fs$1.closeSync(fd);
1468
+ }
1469
+ let text = buf.toString("utf-8");
1470
+ if (start > 0) {
1471
+ const firstNewline = text.indexOf("\n");
1472
+ if (firstNewline >= 0) text = text.slice(firstNewline + 1);
1473
+ }
1474
+ return text.split("\n").slice(-visibleLines);
1475
+ }
1463
1476
  const LogViewer = ({ filePath, height }) => {
1464
1477
  const [, rows] = useStdoutDimensions();
1465
1478
  const visibleLines = height ?? Math.max(5, rows - CHROME_ROWS$1);
1466
1479
  const [lines, setLines] = useState([]);
1467
1480
  useEffect(() => {
1481
+ let lastReadAt = 0;
1482
+ let pendingTimer;
1468
1483
  const readTail = () => {
1469
1484
  try {
1470
- setLines(fs$1.readFileSync(filePath, "utf-8").split("\n").slice(-visibleLines));
1485
+ setLines(readTailLines(filePath, visibleLines));
1471
1486
  } catch {
1472
1487
  setLines(["(No log file found)"]);
1473
1488
  }
1474
1489
  };
1490
+ const scheduleRead = () => {
1491
+ const now = Date.now();
1492
+ const elapsed = now - lastReadAt;
1493
+ if (elapsed >= WATCH_THROTTLE_MS) {
1494
+ lastReadAt = now;
1495
+ readTail();
1496
+ return;
1497
+ }
1498
+ if (pendingTimer) return;
1499
+ pendingTimer = setTimeout(() => {
1500
+ pendingTimer = void 0;
1501
+ lastReadAt = Date.now();
1502
+ readTail();
1503
+ }, WATCH_THROTTLE_MS - elapsed);
1504
+ };
1475
1505
  readTail();
1506
+ lastReadAt = Date.now();
1476
1507
  let watcher;
1477
1508
  try {
1478
- watcher = fs$1.watch(filePath, () => {
1479
- readTail();
1480
- });
1509
+ watcher = fs$1.watch(filePath, () => scheduleRead());
1481
1510
  } catch {
1482
1511
  const interval = setInterval(() => {
1483
1512
  try {
1484
1513
  fs$1.accessSync(filePath);
1485
1514
  readTail();
1486
1515
  clearInterval(interval);
1487
- watcher = fs$1.watch(filePath, () => readTail());
1516
+ watcher = fs$1.watch(filePath, () => scheduleRead());
1488
1517
  } catch {}
1489
1518
  }, 1e3);
1490
- return () => clearInterval(interval);
1519
+ return () => {
1520
+ clearInterval(interval);
1521
+ if (pendingTimer) clearTimeout(pendingTimer);
1522
+ };
1491
1523
  }
1492
1524
  return () => {
1493
1525
  watcher?.close();
1526
+ if (pendingTimer) clearTimeout(pendingTimer);
1494
1527
  };
1495
1528
  }, [filePath, visibleLines]);
1496
1529
  return /* @__PURE__ */ jsx(Box, {
@@ -1672,16 +1705,15 @@ const DissolveTransition = ({ transitionKey, width, height, children, direction
1672
1705
  /**
1673
1706
  * KeyboardHintsBar — Row showing active keyboard shortcuts.
1674
1707
  *
1675
- * Always reserves its row to prevent layout shift. When hints are
1676
- * visible, renders them in dimmed grey text. When dismissed, renders
1677
- * an empty reserved row.
1708
+ * Always reserves its row to prevent layout shift, and always renders the
1709
+ * active hints (in dimmed grey text) while a screen has registered them.
1678
1710
  */
1679
1711
  const KeyboardHintsBar = () => {
1680
- const { hints, visible } = useKeyboardHintsContext();
1712
+ const { hints } = useKeyboardHintsContext();
1681
1713
  return /* @__PURE__ */ jsx(Box, {
1682
1714
  height: 1,
1683
1715
  paddingX: 1,
1684
- children: visible && hints.length > 0 && hints.map((hint, i) => /* @__PURE__ */ jsxs(Box, {
1716
+ children: hints.map((hint, i) => /* @__PURE__ */ jsxs(Box, {
1685
1717
  marginRight: i < hints.length - 1 ? 2 : 0,
1686
1718
  children: [/* @__PURE__ */ jsx(Text, {
1687
1719
  bold: true,
@@ -3837,11 +3869,83 @@ const EventCaptureSlide = {
3837
3869
  docsUrl: "https://posthog.com/docs/product-analytics/capture-events"
3838
3870
  };
3839
3871
  //#endregion
3872
+ //#region src/ui/tui/screens/audit/slides/writeReport.tsx
3873
+ const ReportVisual = () => /* @__PURE__ */ jsxs(VisualBox, { children: [
3874
+ /* @__PURE__ */ jsx(Text, {
3875
+ dimColor: true,
3876
+ children: "posthog-audit-report.md"
3877
+ }),
3878
+ /* @__PURE__ */ jsxs(Text, { children: [/* @__PURE__ */ jsx(Text, {
3879
+ dimColor: true,
3880
+ children: " # "
3881
+ }), /* @__PURE__ */ jsx(Text, { children: "Summary" })] }),
3882
+ /* @__PURE__ */ jsxs(Text, { children: [/* @__PURE__ */ jsx(Text, {
3883
+ dimColor: true,
3884
+ children: " # "
3885
+ }), /* @__PURE__ */ jsx(Text, { children: "Recommended actions" })] }),
3886
+ /* @__PURE__ */ jsxs(Text, { children: [/* @__PURE__ */ jsx(Text, {
3887
+ dimColor: true,
3888
+ children: " # "
3889
+ }), /* @__PURE__ */ jsx(Text, { children: "Full audit" })] })
3890
+ ] });
3891
+ const WriteReportSlide = {
3892
+ area: "Write report",
3893
+ intro: [
3894
+ "Now we write an audit report at ./posthog-audit-report.md. that summarizes our findings.",
3895
+ "The report leads with a summary, then a prioritized list of fixes with file:line citations, then every check we ran grouped by area so nothing is hidden.",
3896
+ "We will upload the report into a PostHog notebook in the next step."
3897
+ ],
3898
+ visual: /* @__PURE__ */ jsx(ReportVisual, {}),
3899
+ docsUrl: "https://posthog.com/docs/product-analytics/best-practices"
3900
+ };
3901
+ //#endregion
3902
+ //#region src/ui/tui/screens/audit/slides/uploadNotebook.tsx
3903
+ const NotebookVisual = () => /* @__PURE__ */ jsxs(VisualBox, { children: [
3904
+ /* @__PURE__ */ jsx(Text, {
3905
+ dimColor: true,
3906
+ children: "posthog-audit-report.md"
3907
+ }),
3908
+ /* @__PURE__ */ jsx(Text, {
3909
+ dimColor: true,
3910
+ children: " │"
3911
+ }),
3912
+ /* @__PURE__ */ jsxs(Text, { children: [/* @__PURE__ */ jsx(Text, {
3913
+ dimColor: true,
3914
+ children: " ▼ "
3915
+ }), /* @__PURE__ */ jsx(Text, {
3916
+ color: "cyan",
3917
+ children: "PostHog notebook"
3918
+ })] }),
3919
+ /* @__PURE__ */ jsx(Text, {
3920
+ dimColor: true,
3921
+ children: " # Summary"
3922
+ }),
3923
+ /* @__PURE__ */ jsx(Text, {
3924
+ dimColor: true,
3925
+ children: " # Recommended actions"
3926
+ }),
3927
+ /* @__PURE__ */ jsx(Text, {
3928
+ dimColor: true,
3929
+ children: " # Full audit"
3930
+ })
3931
+ ] });
3932
+ //#endregion
3840
3933
  //#region src/ui/tui/screens/audit/slides/index.ts
3841
3934
  const AUDIT_AREA_SLIDES = [
3842
3935
  InstallationSlide,
3843
3936
  IdentificationSlide,
3844
- EventCaptureSlide
3937
+ EventCaptureSlide,
3938
+ WriteReportSlide,
3939
+ {
3940
+ area: "Upload notebook",
3941
+ intro: [
3942
+ "Next we upload the report into a PostHog notebook so you can share it with your team as a URL.",
3943
+ "Hang tight.",
3944
+ "The markdown file on disk is still there for you to read locally."
3945
+ ],
3946
+ visual: /* @__PURE__ */ jsx(NotebookVisual, {}),
3947
+ docsUrl: "https://posthog.com/docs/notebooks"
3948
+ }
3845
3949
  ];
3846
3950
  //#endregion
3847
3951
  //#region src/ui/tui/screens/audit-3000/slides/eventQuality.tsx
@@ -4014,6 +4118,6 @@ const AUDIT_3000_AREA_SLIDES = [
4014
4118
  }
4015
4119
  ];
4016
4120
  //#endregion
4017
- export { PickerMenu as C, SplitView as D, LoadingBox as E, CardLayout as O, useStdoutDimensions as S, ProgressList as T, EventPlanViewer as _, TAILORED_ROLES as a, ConfirmationInput as b, SEVERITY_LABEL as c, TipsCard as d, LearnCard as f, ScreenContainer as g, TabContainer as h, McpSuggestedPromptsScreen as i, WizardStore as k, SEVERITY_ORDER as l, HNViewer as m, AUDIT_AREA_SLIDES as n, McpScreen as o, ContentSequencer as p, AuditChecksViewer as r, IssueTable as s, AUDIT_3000_AREA_SLIDES as t, ServiceHealthList as u, LogViewer as v, useKeyBindings as w, GroupedPickerMenu as x, ModalOverlay as y };
4121
+ export { WizardStore as A, useStdoutDimensions as C, LoadingBox as D, ProgressList as E, SplitView as O, GroupedPickerMenu as S, useKeyBindings as T, ScreenContainer as _, McpSuggestedPromptsScreen as a, ModalOverlay as b, IssueTable as c, ServiceHealthList as d, TipsCard as f, TabContainer as g, HNViewer as h, AuditChecksViewer as i, CardLayout as k, SEVERITY_LABEL as l, ContentSequencer as m, AUDIT_AREA_SLIDES as n, TAILORED_ROLES as o, LearnCard as p, VisualBox as r, McpScreen as s, AUDIT_3000_AREA_SLIDES as t, SEVERITY_ORDER as u, EventPlanViewer as v, PickerMenu as w, ConfirmationInput as x, LogViewer as y };
4018
4122
 
4019
- //# sourceMappingURL=slides-Dpj4j0w_.js.map
4123
+ //# sourceMappingURL=slides-CL1mv_Kq.js.map