@posthog/wizard 2.60.0 → 2.62.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 (106) hide show
  1. package/dist/{add-mcp-server-to-clients-CM30npkB.js → add-mcp-server-to-clients-Bzl7_wB3.js} +190 -60
  2. package/dist/add-mcp-server-to-clients-Bzl7_wB3.js.map +1 -0
  3. package/dist/{agent-interface-CybBFwnk.js → agent-interface-C90hyvs1.js} +7 -7
  4. package/dist/{agent-interface-CybBFwnk.js.map → agent-interface-C90hyvs1.js.map} +1 -1
  5. package/dist/{agent-prompt-loader-DL32ioJX.js → agent-prompt-loader-CBj2DWAJ.js} +38 -11
  6. package/dist/agent-prompt-loader-CBj2DWAJ.js.map +1 -0
  7. package/dist/{agent-runner-DUyxA1TQ.js → agent-runner-DA5YfjOD.js} +147 -24
  8. package/dist/agent-runner-DA5YfjOD.js.map +1 -0
  9. package/dist/{analytics-B9V7x1Ma.js → analytics-BdKBzz4M.js} +2 -2
  10. package/dist/{analytics-B9V7x1Ma.js.map → analytics-BdKBzz4M.js.map} +1 -1
  11. package/dist/analytics-CijpxQFN.js +2 -0
  12. package/dist/{api-OHLXhKTy.js → api-aTkzJ9vG.js} +3 -3
  13. package/dist/{api-OHLXhKTy.js.map → api-aTkzJ9vG.js.map} +1 -1
  14. package/dist/bin.js +288 -134
  15. package/dist/bin.js.map +1 -1
  16. package/dist/{bounded-fs-xkhfF3JS.js → bounded-fs-BU2L5mjO.js} +3 -3
  17. package/dist/{bounded-fs-xkhfF3JS.js.map → bounded-fs-BU2L5mjO.js.map} +1 -1
  18. package/dist/{ci-install-B31ciXo4.js → ci-install-BnTAUOz8.js} +4 -4
  19. package/dist/{ci-install-B31ciXo4.js.map → ci-install-BnTAUOz8.js.map} +1 -1
  20. package/dist/{debug-D3Ucw2y1.js → debug-BTPYy9p7.js} +10 -4
  21. package/dist/debug-BTPYy9p7.js.map +1 -0
  22. package/dist/{debug-Cx9Delbc.js → debug-D2L-fM_I.js} +1 -1
  23. package/dist/{defaults-BWLIffh5.js → defaults-mrAre0xM.js} +28 -2
  24. package/dist/defaults-mrAre0xM.js.map +1 -0
  25. package/dist/{environment-BN8ROaHv.js → environment-lV2X1gS-.js} +4 -4
  26. package/dist/{environment-BN8ROaHv.js.map → environment-lV2X1gS-.js.map} +1 -1
  27. package/dist/{file-watcher-CzBnjben.js → file-watcher-qqQBl5Em.js} +2 -2
  28. package/dist/{file-watcher-CzBnjben.js.map → file-watcher-qqQBl5Em.js.map} +1 -1
  29. package/dist/{headless-ui-DoQlIoeh.js → headless-ui-TSoOsa3j.js} +2 -2
  30. package/dist/{headless-ui-DoQlIoeh.js.map → headless-ui-TSoOsa3j.js.map} +1 -1
  31. package/dist/{interactive-DeFFwXME.js → interactive-DMoXEiKo.js} +2 -2
  32. package/dist/{interactive-DeFFwXME.js.map → interactive-DMoXEiKo.js.map} +1 -1
  33. package/dist/{mcp-CBskrEsK.js → mcp-Dqu0_QzN.js} +2 -2
  34. package/dist/{mcp-CBskrEsK.js.map → mcp-Dqu0_QzN.js.map} +1 -1
  35. package/dist/{mcp-prompt-streaming-B1upRE9N.js → mcp-prompt-streaming-B4cYVDVP.js} +3 -3
  36. package/dist/{mcp-prompt-streaming-B1upRE9N.js.map → mcp-prompt-streaming-B4cYVDVP.js.map} +1 -1
  37. package/dist/{non-interactive-BUmW9f9P.js → non-interactive-EG_lII4R.js} +2 -2
  38. package/dist/{non-interactive-BUmW9f9P.js.map → non-interactive-EG_lII4R.js.map} +1 -1
  39. package/dist/{orchestrator-tools-bM9GOq3c.js → orchestrator-tools-DrhpNOKK.js} +3 -3
  40. package/dist/{orchestrator-tools-bM9GOq3c.js.map → orchestrator-tools-DrhpNOKK.js.map} +1 -1
  41. package/dist/{package-manager-ByVEmFPR.js → package-manager-z33XHEWO.js} +2 -2
  42. package/dist/{package-manager-ByVEmFPR.js.map → package-manager-z33XHEWO.js.map} +1 -1
  43. package/dist/{pi-C7wbP2z-.js → pi-CVJB0Ban.js} +11 -11
  44. package/dist/{pi-C7wbP2z-.js.map → pi-CVJB0Ban.js.map} +1 -1
  45. package/dist/{playground-Df_ZzalF.js → playground-BjWqoWhf.js} +25 -788
  46. package/dist/playground-BjWqoWhf.js.map +1 -0
  47. package/dist/{posthog-DLklk2yT.js → posthog-3ijs_66W.js} +2 -2
  48. package/dist/{posthog-DLklk2yT.js.map → posthog-3ijs_66W.js.map} +1 -1
  49. package/dist/{posthog-integration-CxIj49T4.js → posthog-integration-C3wuB5B1.js} +110 -33
  50. package/dist/posthog-integration-C3wuB5B1.js.map +1 -0
  51. package/dist/{provisioning-BpqrbURn.js → provisioning-IKacrvWB.js} +3 -3
  52. package/dist/{provisioning-BpqrbURn.js.map → provisioning-IKacrvWB.js.map} +1 -1
  53. package/dist/{queue-tools-QVKYMX_C.js → queue-tools-zM8_mxx6.js} +39 -8
  54. package/dist/queue-tools-zM8_mxx6.js.map +1 -0
  55. package/dist/{registry-CboWk-Ny.js → registry-DF_aKyS0.js} +5 -5
  56. package/dist/{registry-CboWk-Ny.js.map → registry-DF_aKyS0.js.map} +1 -1
  57. package/dist/{security-aWRzd8V1.js → security-CVFKNYBn.js} +5 -5
  58. package/dist/{security-aWRzd8V1.js.map → security-CVFKNYBn.js.map} +1 -1
  59. package/dist/{setup-utils-VtxhrSx8.js → setup-utils-iINkc0xu.js} +9 -9
  60. package/dist/setup-utils-iINkc0xu.js.map +1 -0
  61. package/dist/{start-tui-CzMiitZJ.js → start-tui-CjtL-ls7.js} +137 -42
  62. package/dist/start-tui-CjtL-ls7.js.map +1 -0
  63. package/dist/{steps-9PddZ-BV.js → steps-DzUGHdfY.js} +7 -7
  64. package/dist/{steps-9PddZ-BV.js.map → steps-DzUGHdfY.js.map} +1 -1
  65. package/dist/{store-V71P5KpB.js → store-DtckpbSC.js} +25 -5
  66. package/dist/store-DtckpbSC.js.map +1 -0
  67. package/dist/{subagent-CcBKBSR-.js → subagent-cD_bF490.js} +2 -2
  68. package/dist/{subagent-CcBKBSR-.js.map → subagent-cD_bF490.js.map} +1 -1
  69. package/dist/{task-BRktXvCV.js → task-eIt2iATF.js} +36 -23
  70. package/dist/task-eIt2iATF.js.map +1 -0
  71. package/dist/{task-stream-CFAXlJLv.js → task-stream-DGBUveUD.js} +5 -5
  72. package/dist/{task-stream-CFAXlJLv.js.map → task-stream-DGBUveUD.js.map} +1 -1
  73. package/dist/{tasks-CyLSHCmC.js → tasks-wQ3V6Ft6.js} +2 -2
  74. package/dist/{tasks-CyLSHCmC.js.map → tasks-wQ3V6Ft6.js.map} +1 -1
  75. package/dist/{telemetry-mi4dua6_.js → telemetry-BWYDFAwf.js} +3 -3
  76. package/dist/{telemetry-mi4dua6_.js.map → telemetry-BWYDFAwf.js.map} +1 -1
  77. package/dist/{terminal-B-37htZb.js → terminal-yKJZx1UC.js} +978 -71
  78. package/dist/terminal-yKJZx1UC.js.map +1 -0
  79. package/dist/{tools-BWaoKBAO.js → tools-CDlaJb_e.js} +6 -6
  80. package/dist/{tools-BWaoKBAO.js.map → tools-CDlaJb_e.js.map} +1 -1
  81. package/dist/{wizard-abort-D0HFMYCV.js → wizard-abort-Cjk5z73h.js} +1 -1
  82. package/dist/{wizard-abort-Bgx_JOfw.js → wizard-abort-CztG5WTv.js} +4 -4
  83. package/dist/{wizard-abort-Bgx_JOfw.js.map → wizard-abort-CztG5WTv.js.map} +1 -1
  84. package/dist/{wizard-session-CwgR5y3-.js → wizard-session-BUhlJ1b8.js} +2 -1
  85. package/dist/wizard-session-BUhlJ1b8.js.map +1 -0
  86. package/dist/{wizard-session-DsK16SGs.js → wizard-session-DZUDtS5d.js} +1 -1
  87. package/dist/yara-hooks-DVGKhwaz.js +2 -0
  88. package/dist/{yara-hooks-Cj8x2YV4.js → yara-hooks-DeLjTIiJ.js} +4 -4
  89. package/dist/{yara-hooks-Cj8x2YV4.js.map → yara-hooks-DeLjTIiJ.js.map} +1 -1
  90. package/package.json +2 -1
  91. package/dist/add-mcp-server-to-clients-CM30npkB.js.map +0 -1
  92. package/dist/agent-prompt-loader-DL32ioJX.js.map +0 -1
  93. package/dist/agent-runner-DUyxA1TQ.js.map +0 -1
  94. package/dist/analytics-HdW5e8_o.js +0 -2
  95. package/dist/debug-D3Ucw2y1.js.map +0 -1
  96. package/dist/defaults-BWLIffh5.js.map +0 -1
  97. package/dist/playground-Df_ZzalF.js.map +0 -1
  98. package/dist/posthog-integration-CxIj49T4.js.map +0 -1
  99. package/dist/queue-tools-QVKYMX_C.js.map +0 -1
  100. package/dist/setup-utils-VtxhrSx8.js.map +0 -1
  101. package/dist/start-tui-CzMiitZJ.js.map +0 -1
  102. package/dist/store-V71P5KpB.js.map +0 -1
  103. package/dist/task-BRktXvCV.js.map +0 -1
  104. package/dist/terminal-B-37htZb.js.map +0 -1
  105. package/dist/wizard-session-CwgR5y3-.js.map +0 -1
  106. package/dist/yara-hooks-CIQRywtg.js +0 -2
@@ -1,21 +1,21 @@
1
- import { $ as REMOTE_SKILLS_BASE_URL, K as POSTHOG_ORG_AI_SETTINGS_URL, L as Integration, R as OAUTH_PORTS, U as POSTHOG_DOCS_URL, Z as POSTHOG_TERMS_URL, d as relativeToInstallDir, g as SIGNUP_WIZARD_READINESS_CONFIG, l as WIZARD_LOG_FILE, p as setUI, q as POSTHOG_PRIVACY_URL, s as logToFile, v as getBlockingServiceKeys, z as OAUTH_TIMEOUT_MS } from "./debug-D3Ucw2y1.js";
2
- import { n as analytics } from "./analytics-B9V7x1Ma.js";
3
- import { i as readProjectFile, t as IGNORED_DIRS } from "./bounded-fs-xkhfF3JS.js";
4
- import { o as extractOAuthCode, t as getOrAskForProjectData } from "./setup-utils-VtxhrSx8.js";
5
- import { t as ApiError } from "./api-OHLXhKTy.js";
6
- import { t as ADDITIONAL_FEATURE_LABELS } from "./wizard-session-CwgR5y3-.js";
7
- import { i as wizardAbort } from "./wizard-abort-Bgx_JOfw.js";
8
- import { a as formatTokenCount, i as formatCostUsd } from "./agent-runner-DUyxA1TQ.js";
9
- import { C as downloadSkill, T as fetchSkillMenu } from "./agent-interface-CybBFwnk.js";
10
- import { _ as AUDIT_CHECKS_KEY, b as coerceAuditChecks, g as AUDIT_CHECKS_FILE, x as getAuditChecks, y as AUDIT_SEVERITY_STYLE } from "./yara-hooks-Cj8x2YV4.js";
11
- import { t as FRAMEWORK_REGISTRY } from "./registry-CboWk-Ny.js";
12
- import { S as detectProjectsWithAgent, h as Icons, m as Colors, t as SETUP_REPORT_FILE, y as getDetectedWarehouseSources } from "./posthog-integration-CxIj49T4.js";
13
- import { D as STRIPE_SDKS, E as POSTHOG_SDKS, S as SOURCE_MAPS_CONTEXT_KEYS, T as getContentBlocks, _ as DISPLAY_NAME, a as useStdoutDimensions, b as MANUAL_SDK_VARIANTS, f as Program, g as AUTOMATABLE_VARIANTS, h as SELF_DRIVING_INTEGRATE_PATH_KEY, m as detectSelfDrivingIntegrationProjects, n as useKeyBindings, p as getProgramConfig, t as PickerMenu, w as fetchHealthIssues, y as MANUAL_SDK_INSTALL } from "./bin.js";
14
- import { r as totalTokenCount, t as WizardStore } from "./store-V71P5KpB.js";
15
- import { A as LogViewer, C as TipsCard, D as TabContainer, E as HNViewer, I as ProgressList, L as LoadingBox, M as extractUrls, N as ModalOverlay, O as ScreenContainer, P as ConfirmationInput, R as SplitView, S as ServiceHealthList, a as useSkillEntry, b as SEVERITY_LABEL, c as SlackConnectScreen, d as AuditChecksViewer, f as seedDemoEvents, g as probeProjectData, i as SkillSourceInfo, j as LinkText, k as EventPlanViewer, l as AUDIT_AREA_SLIDES, m as McpSuggestedPromptsScreen, n as releaseTerminal, o as OutroScreen, r as AiOptInRequiredScreen, s as useDismissOnAnyKey, t as enterDarkTerminal, u as VisualBox, v as McpScreen, w as LearnCard, x as SEVERITY_ORDER, y as IssueTable } from "./terminal-B-37htZb.js";
16
- import { t as ALL_FEATURE_VALUES } from "./defaults-BWLIffh5.js";
17
- import { t as startFileWatcher } from "./file-watcher-CzBnjben.js";
18
- 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-CM30npkB.js";
1
+ import { $ as REMOTE_SKILLS_BASE_URL, K as POSTHOG_ORG_AI_SETTINGS_URL, L as Integration, R as OAUTH_PORTS, U as POSTHOG_DOCS_URL, Z as POSTHOG_TERMS_URL, d as relativeToInstallDir, g as SIGNUP_WIZARD_READINESS_CONFIG, l as WIZARD_LOG_FILE, p as setUI, q as POSTHOG_PRIVACY_URL, s as logToFile, v as getBlockingServiceKeys, z as OAUTH_TIMEOUT_MS } from "./debug-BTPYy9p7.js";
2
+ import { n as analytics } from "./analytics-BdKBzz4M.js";
3
+ import { i as readProjectFile, t as IGNORED_DIRS } from "./bounded-fs-BU2L5mjO.js";
4
+ import { o as extractOAuthCode, t as getOrAskForProjectData } from "./setup-utils-iINkc0xu.js";
5
+ import { t as ApiError } from "./api-aTkzJ9vG.js";
6
+ import { t as ADDITIONAL_FEATURE_LABELS } from "./wizard-session-BUhlJ1b8.js";
7
+ import { i as wizardAbort } from "./wizard-abort-CztG5WTv.js";
8
+ import { a as formatCostUsd, o as formatTokenCount } from "./agent-runner-DA5YfjOD.js";
9
+ import { C as downloadSkill, T as fetchSkillMenu } from "./agent-interface-C90hyvs1.js";
10
+ import { _ as AUDIT_CHECKS_KEY, b as coerceAuditChecks, g as AUDIT_CHECKS_FILE, x as getAuditChecks, y as AUDIT_SEVERITY_STYLE } from "./yara-hooks-DeLjTIiJ.js";
11
+ import { t as FRAMEWORK_REGISTRY } from "./registry-DF_aKyS0.js";
12
+ import { S as detectProjectsWithAgent, h as Icons, m as Colors, t as SETUP_REPORT_FILE, y as getDetectedWarehouseSources } from "./posthog-integration-C3wuB5B1.js";
13
+ import { A as STRIPE_SDKS, C as MANUAL_SDK_VARIANTS, D as fetchHealthIssues, O as getContentBlocks, S as MANUAL_SDK_INSTALL, T as SOURCE_MAPS_CONTEXT_KEYS, _ as detectSelfDrivingIntegrationProjects, a as useStdoutDimensions, b as DISPLAY_NAME, f as Program, g as PRICING_SHORT, h as PRICING_LONG, k as POSTHOG_SDKS, m as NO_DEFAULT_LIMIT, n as useKeyBindings, p as getProgramConfig, t as PickerMenu, v as SELF_DRIVING_INTEGRATE_PATH_KEY, y as AUTOMATABLE_VARIANTS } from "./bin.js";
14
+ import { r as totalTokenCount, t as WizardStore } from "./store-DtckpbSC.js";
15
+ import { A as EventPlanViewer, C as VisualizerTab, D as HNViewer, F as ConfirmationInput, L as ProgressList, M as LinkText, N as extractUrls, O as TabContainer, P as ModalOverlay, R as LoadingBox, S as ServiceHealthList, T as LearnCard, a as useSkillEntry, b as SEVERITY_LABEL, c as SlackConnectScreen, d as AuditChecksViewer, f as seedDemoEvents, g as probeProjectData, i as SkillSourceInfo, j as LogViewer, k as ScreenContainer, l as AUDIT_AREA_SLIDES, m as McpSuggestedPromptsScreen, n as releaseTerminal, o as OutroScreen, r as AiOptInRequiredScreen, s as useDismissOnAnyKey, t as enterDarkTerminal, u as VisualBox, v as McpScreen, w as TipsCard, x as SEVERITY_ORDER, y as IssueTable, z as SplitView } from "./terminal-yKJZx1UC.js";
16
+ import { c as namesWithStatus, d as toClientResult, l as redactSecrets, t as ALL_FEATURE_VALUES } from "./defaults-mrAre0xM.js";
17
+ import { t as startFileWatcher } from "./file-watcher-qqQBl5Em.js";
18
+ 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-Bzl7_wB3.js";
19
19
  import { existsSync, readFileSync, readdirSync } from "fs";
20
20
  import path, { join } from "path";
21
21
  import { join as join$1 } from "node:path";
@@ -106,6 +106,9 @@ var InkUI = class {
106
106
  waitForManualAuthCode() {
107
107
  return this.store.waitForManualAuthCode();
108
108
  }
109
+ showTaskNotice(notice) {
110
+ return this.store.showTaskNotice(notice);
111
+ }
109
112
  showSettingsOverride(conflicts, backupAndFix) {
110
113
  return this.store.showSettingsOverride(conflicts, backupAndFix);
111
114
  }
@@ -759,6 +762,58 @@ const PortConflictScreen = ({ store }) => {
759
762
  });
760
763
  };
761
764
  //#endregion
765
+ //#region src/ui/tui/screens/TaskNoticeScreen.tsx
766
+ /**
767
+ * TaskNoticeScreen — Modal shown before an optional step runs.
768
+ *
769
+ * Some steps stop to ask the user for something. This tells them so before the
770
+ * step starts, and lets them decline it. The copy comes from the program that
771
+ * owns the step; this screen only renders what it is given.
772
+ */
773
+ const TaskNoticeScreen = ({ store }) => {
774
+ useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
775
+ const notice = store.session.taskNotice;
776
+ if (!notice) return null;
777
+ return /* @__PURE__ */ jsxs(ModalOverlay, {
778
+ borderColor: Colors.primary,
779
+ title: notice.title,
780
+ width: 76,
781
+ footer: /* @__PURE__ */ jsx(ConfirmationInput, {
782
+ message: notice.prompt,
783
+ confirmLabel: notice.confirmLabel,
784
+ cancelLabel: notice.cancelLabel,
785
+ onConfirm: () => store.resolveTaskNotice(true),
786
+ onCancel: () => store.resolveTaskNotice(false)
787
+ }),
788
+ children: [
789
+ /* @__PURE__ */ jsx(Box, {
790
+ flexDirection: "column",
791
+ gap: 1,
792
+ children: notice.body.map((paragraph) => /* @__PURE__ */ jsx(Text, { children: paragraph }, paragraph))
793
+ }),
794
+ notice.items && notice.items.length > 0 && /* @__PURE__ */ jsx(Box, {
795
+ marginTop: 1,
796
+ paddingLeft: 2,
797
+ children: /* @__PURE__ */ jsx(Text, {
798
+ bold: true,
799
+ children: notice.items.join(", ")
800
+ })
801
+ }),
802
+ notice.docsUrl && /* @__PURE__ */ jsx(Box, {
803
+ marginTop: 1,
804
+ children: /* @__PURE__ */ jsxs(Text, {
805
+ dimColor: true,
806
+ children: [
807
+ notice.docsLabel ?? "Learn more",
808
+ ": ",
809
+ notice.docsUrl
810
+ ]
811
+ })
812
+ })
813
+ ]
814
+ });
815
+ };
816
+ //#endregion
762
817
  //#region src/ui/tui/screens/ManualAuthCodeScreen.tsx
763
818
  /**
764
819
  * ManualAuthCodeScreen — Paste an OAuth authorization code by hand.
@@ -1076,7 +1131,7 @@ const FrameworkPicker = ({ store, onComplete }) => {
1076
1131
  })),
1077
1132
  onSelect: (value) => {
1078
1133
  const integration = Array.isArray(value) ? value[0] : value;
1079
- import("./registry-CboWk-Ny.js").then((n) => n.n).then(({ FRAMEWORK_REGISTRY }) => {
1134
+ import("./registry-DF_aKyS0.js").then((n) => n.n).then(({ FRAMEWORK_REGISTRY }) => {
1080
1135
  const config = FRAMEWORK_REGISTRY[integration];
1081
1136
  store.setFrameworkConfig(integration, config);
1082
1137
  store.setDetectedFramework(config.metadata.name);
@@ -1900,6 +1955,17 @@ const SOURCE_MAPS_TARGETS = [...AUTOMATABLE_VARIANTS].sort((a, b) => precedenceR
1900
1955
  id: v,
1901
1956
  name: DISPLAY_NAME[v]
1902
1957
  }));
1958
+ const JS_RERANK_VARIANTS = [
1959
+ "nextjs",
1960
+ "nuxt",
1961
+ "angular",
1962
+ "vite",
1963
+ "webpack",
1964
+ "rollup",
1965
+ "react",
1966
+ "node",
1967
+ "web"
1968
+ ];
1903
1969
  /** Comment-stripped substring check for the Rust SDK in one manifest. */
1904
1970
  function manifestMentionsSdk(manifestPath) {
1905
1971
  const content = readProjectFile(manifestPath);
@@ -2064,6 +2130,7 @@ async function detectSourceMapsProjects(session, onEvent) {
2064
2130
  return toSourceMapsReport(await detectProjectsWithAgent(session, {
2065
2131
  targets: SOURCE_MAPS_TARGETS,
2066
2132
  purpose: "set up PostHog Error Tracking source-map upload",
2133
+ rerankIds: JS_RERANK_VARIANTS,
2067
2134
  onEvent
2068
2135
  }), {
2069
2136
  hasBuildTarget: (path) => projectHasBuildTarget(session.installDir, path),
@@ -2681,6 +2748,11 @@ const SelfDrivingIntroScreen = ({ store }) => {
2681
2748
  /* @__PURE__ */ jsxs(Text, { children: ["•", " Researches findings in your code via GitHub"] }),
2682
2749
  /* @__PURE__ */ jsxs(Text, { children: ["•", " Measures shipped fixes, and reopens the loop if the pattern persists"] })
2683
2750
  ]
2751
+ }),
2752
+ /* @__PURE__ */ jsxs(Box, {
2753
+ flexDirection: "column",
2754
+ marginTop: 1,
2755
+ children: [/* @__PURE__ */ jsx(Text, { children: PRICING_LONG }), /* @__PURE__ */ jsx(Text, { children: NO_DEFAULT_LIMIT })]
2684
2756
  })
2685
2757
  ]
2686
2758
  }) : /* @__PURE__ */ jsxs(Box, {
@@ -2697,13 +2769,20 @@ const SelfDrivingIntroScreen = ({ store }) => {
2697
2769
  flexDirection: "column",
2698
2770
  marginTop: 1,
2699
2771
  alignItems: "center",
2700
- children: [/* @__PURE__ */ jsx(Text, {
2701
- dimColor: true,
2702
- children: "An agent will connect GitHub, enable signal sources, and tune your scouts."
2703
- }), /* @__PURE__ */ jsx(Text, {
2704
- dimColor: true,
2705
- children: "About 10 minutes, with a few questions along the way."
2706
- })]
2772
+ children: [
2773
+ /* @__PURE__ */ jsx(Text, {
2774
+ dimColor: true,
2775
+ children: "An agent will connect GitHub, enable signal sources, and tune your scouts."
2776
+ }),
2777
+ /* @__PURE__ */ jsx(Text, {
2778
+ dimColor: true,
2779
+ children: "About 10 minutes, with a few questions along the way."
2780
+ }),
2781
+ /* @__PURE__ */ jsx(Text, {
2782
+ dimColor: true,
2783
+ children: PRICING_SHORT
2784
+ })
2785
+ ]
2707
2786
  })
2708
2787
  ]
2709
2788
  });
@@ -4740,6 +4819,11 @@ const RunScreen = ({ store }) => {
4740
4819
  label: "Tail logs",
4741
4820
  component: /* @__PURE__ */ jsx(LogViewer, { filePath: WIZARD_LOG_FILE })
4742
4821
  },
4822
+ {
4823
+ id: "visualizer",
4824
+ label: "Visualizer",
4825
+ component: /* @__PURE__ */ jsx(VisualizerTab, { store })
4826
+ },
4743
4827
  {
4744
4828
  id: "hn",
4745
4829
  label: "HN",
@@ -5345,29 +5429,39 @@ function createMcpInstaller() {
5345
5429
  logToFile(`[McpInstaller] No clients matched. clientNames=${JSON.stringify(clientNames)}, cached=${JSON.stringify(cachedClients.map((c) => c.name))}`);
5346
5430
  return [];
5347
5431
  }
5348
- const installed = [];
5349
- for (const client of toInstall) try {
5350
- if ((await client.addServer(apiKey, resolvedFeatures, false))?.success) installed.push(client.name);
5351
- else logToFile(`[McpInstaller] addServer returned success=false for ${client.name}`);
5352
- } catch (err) {
5353
- logToFile(`[McpInstaller] addServer threw for ${client.name}: ${err instanceof Error ? err.message : String(err)}`);
5432
+ const results = [];
5433
+ for (const client of toInstall) {
5434
+ const name = client.name;
5435
+ try {
5436
+ const result = await client.addServer(apiKey, resolvedFeatures, false);
5437
+ results.push(toClientResult(name, result));
5438
+ if (!result?.success) logToFile(`[McpInstaller] addServer returned success=false for ${name}: ${redactSecrets(result?.reason ?? "no reason given")}`);
5439
+ } catch (err) {
5440
+ const reason = err instanceof Error ? err.message : String(err);
5441
+ logToFile(`[McpInstaller] addServer threw for ${name}: ${redactSecrets(reason)}`);
5442
+ results.push(toClientResult(name, {
5443
+ success: false,
5444
+ reason
5445
+ }));
5446
+ }
5354
5447
  }
5355
- return installed;
5448
+ return results;
5356
5449
  },
5357
- async remove() {
5358
- const installed = await getInstalledClients();
5450
+ async remove(local) {
5451
+ const installed = await getInstalledClients(local);
5359
5452
  if (installed.length === 0) return [];
5360
- await removeMCPServer(installed);
5361
- return installed.map((c) => c.name);
5453
+ return removeMCPServer(installed, local);
5362
5454
  },
5363
5455
  async installPlugins(clientNames) {
5364
5456
  const pluginClients = getSupportedPluginClients(cachedClients.filter((c) => clientNames.includes(c.name)).map((c) => c.raw));
5365
- const installed = await installPlugins(pluginClients);
5457
+ const results = await installPlugins(pluginClients);
5458
+ const already = namesWithStatus(results, "unchanged");
5366
5459
  analytics.wizardCapture("mcp plugins installed", {
5367
- clients: installed,
5460
+ clients: [...namesWithStatus(results, "changed"), ...already],
5461
+ already_installed: already,
5368
5462
  attempted: pluginClients.map((c) => c.name)
5369
5463
  });
5370
- return installed;
5464
+ return results;
5371
5465
  }
5372
5466
  };
5373
5467
  }
@@ -5417,7 +5511,7 @@ function createMcpSuggestedPromptsServices(store) {
5417
5511
  };
5418
5512
  }
5419
5513
  async function* runProductionPromptStreaming(args) {
5420
- const { runMcpPromptViaSdk } = await import("./mcp-prompt-streaming-B1upRE9N.js");
5514
+ const { runMcpPromptViaSdk } = await import("./mcp-prompt-streaming-B4cYVDVP.js");
5421
5515
  yield* runMcpPromptViaSdk(args);
5422
5516
  }
5423
5517
  //#endregion
@@ -5433,6 +5527,7 @@ function createScreens(store, services) {
5433
5527
  ["settings-override"]: /* @__PURE__ */ jsx(SettingsOverrideScreen, { store }),
5434
5528
  ["managed-settings"]: /* @__PURE__ */ jsx(ManagedSettingsScreen, { store }),
5435
5529
  ["port-conflict"]: /* @__PURE__ */ jsx(PortConflictScreen, { store }),
5530
+ ["task-notice"]: /* @__PURE__ */ jsx(TaskNoticeScreen, { store }),
5436
5531
  ["manual-auth-code"]: /* @__PURE__ */ jsx(ManualAuthCodeScreen, { store }),
5437
5532
  ["auth-error"]: /* @__PURE__ */ jsx(AuthErrorScreen, { store }),
5438
5533
  ["session-timeout"]: /* @__PURE__ */ jsx(SessionTimeoutScreen, { store }),
@@ -5594,4 +5689,4 @@ function startTUI(version, program = Program.PostHogIntegration) {
5594
5689
  //#endregion
5595
5690
  export { startTUI };
5596
5691
 
5597
- //# sourceMappingURL=start-tui-CzMiitZJ.js.map
5692
+ //# sourceMappingURL=start-tui-CjtL-ls7.js.map