@posthog/wizard 2.52.0 → 2.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-mcp-server-to-clients-DJyWMMGj.js → add-mcp-server-to-clients-DmMHsYYM.js} +5 -5
- package/dist/{add-mcp-server-to-clients-DJyWMMGj.js.map → add-mcp-server-to-clients-DmMHsYYM.js.map} +1 -1
- package/dist/{agent-interface-DoFVHRFh.js → agent-interface-xWyATfJi.js} +330 -25
- package/dist/agent-interface-xWyATfJi.js.map +1 -0
- package/dist/{agent-prompt-loader-D-cPVoL5.js → agent-prompt-loader-i6miJlmN.js} +5 -5
- package/dist/{agent-prompt-loader-D-cPVoL5.js.map → agent-prompt-loader-i6miJlmN.js.map} +1 -1
- package/dist/{agent-runner-B1qCtjid.js → agent-runner-CPuubcP_.js} +157 -137
- package/dist/agent-runner-CPuubcP_.js.map +1 -0
- package/dist/{analytics-BXz4SIuS.js → analytics-BC3iiS1p.js} +5 -2
- package/dist/analytics-BC3iiS1p.js.map +1 -0
- package/dist/analytics-CLuGZo9D.js +2 -0
- package/dist/{api-BaacjH-Y.js → api-CXk-efCU.js} +3 -3
- package/dist/{api-BaacjH-Y.js.map → api-CXk-efCU.js.map} +1 -1
- package/dist/bin.js +316 -179
- package/dist/bin.js.map +1 -1
- package/dist/{bounded-fs-Cx-8nk-1.js → bounded-fs-B6Eqbgoj.js} +3 -3
- package/dist/{bounded-fs-Cx-8nk-1.js.map → bounded-fs-B6Eqbgoj.js.map} +1 -1
- package/dist/{ci-install-D1Mum8Ah.js → ci-install-CXD2meJ4.js} +5 -5
- package/dist/{ci-install-D1Mum8Ah.js.map → ci-install-CXD2meJ4.js.map} +1 -1
- package/dist/{debug-DsSCOPe8.js → debug-Bz-LaIU8.js} +1 -1
- package/dist/{debug-C3ZR1TVF.js → debug-tCr3A18e.js} +13 -4
- package/dist/debug-tCr3A18e.js.map +1 -0
- package/dist/{defaults-DAE9_QMn.js → defaults-BWLIffh5.js} +1 -1
- package/dist/{defaults-DAE9_QMn.js.map → defaults-BWLIffh5.js.map} +1 -1
- package/dist/{env-api-key-DDVkPQmo.js → env-api-key-cjD4yfGT.js} +1 -1
- package/dist/{env-api-key-DDVkPQmo.js.map → env-api-key-cjD4yfGT.js.map} +1 -1
- package/dist/{environment-Bi-zynk6.js → environment-JwRHoXao.js} +4 -4
- package/dist/{environment-Bi-zynk6.js.map → environment-JwRHoXao.js.map} +1 -1
- package/dist/{file-watcher-PmRIDAfM.js → file-watcher-Cm-B3jyb.js} +2 -2
- package/dist/{file-watcher-PmRIDAfM.js.map → file-watcher-Cm-B3jyb.js.map} +1 -1
- package/dist/{headless-ui-C4X9lAOY.js → headless-ui-o1cpGr1W.js} +2 -2
- package/dist/{headless-ui-C4X9lAOY.js.map → headless-ui-o1cpGr1W.js.map} +1 -1
- package/dist/{interactive-HM71vLQe.js → interactive-CM2fMt8l.js} +3 -3
- package/dist/{interactive-HM71vLQe.js.map → interactive-CM2fMt8l.js.map} +1 -1
- package/dist/{mcp-D0Hpb_nk.js → mcp-C4Xn8mq5.js} +2 -2
- package/dist/{mcp-D0Hpb_nk.js.map → mcp-C4Xn8mq5.js.map} +1 -1
- package/dist/{mcp-prompt-streaming-Crk8qFlQ.js → mcp-prompt-streaming-Dqrcns_Z.js} +5 -4
- package/dist/{mcp-prompt-streaming-Crk8qFlQ.js.map → mcp-prompt-streaming-Dqrcns_Z.js.map} +1 -1
- package/dist/{non-interactive-DdUe8lqX.js → non-interactive-DYvEgWZx.js} +2 -2
- package/dist/{non-interactive-DdUe8lqX.js.map → non-interactive-DYvEgWZx.js.map} +1 -1
- package/dist/{orchestrator-tools-CpRruqZl.js → orchestrator-tools-CAl7aLtB.js} +3 -3
- package/dist/{orchestrator-tools-CpRruqZl.js.map → orchestrator-tools-CAl7aLtB.js.map} +1 -1
- package/dist/{package-manager-wkSzPJqW.js → package-manager-DnU0j41n.js} +2 -2
- package/dist/{package-manager-wkSzPJqW.js.map → package-manager-DnU0j41n.js.map} +1 -1
- package/dist/pi-2hh_NXKT.js +409 -0
- package/dist/pi-2hh_NXKT.js.map +1 -0
- package/dist/{playground-lg7h9GHG.js → playground-rG007Ve9.js} +353 -18
- package/dist/playground-rG007Ve9.js.map +1 -0
- package/dist/{posthog-mgz-FQlS.js → posthog-DDLIrku0.js} +1 -1
- package/dist/{posthog-mgz-FQlS.js.map → posthog-DDLIrku0.js.map} +1 -1
- package/dist/{posthog-integration-pnxhTbxw.js → posthog-integration-Bd-kybes.js} +15 -15
- package/dist/{posthog-integration-pnxhTbxw.js.map → posthog-integration-Bd-kybes.js.map} +1 -1
- package/dist/{provisioning-T4jtJqBa.js → provisioning-tkKe6aM4.js} +3 -3
- package/dist/{provisioning-T4jtJqBa.js.map → provisioning-tkKe6aM4.js.map} +1 -1
- package/dist/{queue-tools-D7ctuzyo.js → queue-tools-kBa-8bPH.js} +45 -32
- package/dist/queue-tools-kBa-8bPH.js.map +1 -0
- package/dist/{registry-CsFuKtXn.js → registry-Cg_M-kov.js} +5 -5
- package/dist/{registry-CsFuKtXn.js.map → registry-Cg_M-kov.js.map} +1 -1
- package/dist/{security-YAaZfmHs.js → security-BtIAMdyk.js} +5 -5
- package/dist/security-BtIAMdyk.js.map +1 -0
- package/dist/{setup-utils-DDzEnDxJ.js → setup-utils-t0jzKwBE.js} +8 -8
- package/dist/{setup-utils-DDzEnDxJ.js.map → setup-utils-t0jzKwBE.js.map} +1 -1
- package/dist/{start-tui-pCi7WVAK.js → start-tui-CK3rpaKD.js} +35 -21
- package/dist/start-tui-CK3rpaKD.js.map +1 -0
- package/dist/{steps-DmsrBqb9.js → steps-dNXQiyOZ.js} +7 -7
- package/dist/{steps-DmsrBqb9.js.map → steps-dNXQiyOZ.js.map} +1 -1
- package/dist/{store-BCRdtfOH.js → store-qv5UdGQO.js} +5 -5
- package/dist/{store-BCRdtfOH.js.map → store-qv5UdGQO.js.map} +1 -1
- package/dist/{subagent-jNXS8IPU.js → subagent-DsfcNf0P.js} +2 -2
- package/dist/{subagent-jNXS8IPU.js.map → subagent-DsfcNf0P.js.map} +1 -1
- package/dist/{task-CSmrfyNf.js → task-BZ77d7rm.js} +30 -23
- package/dist/task-BZ77d7rm.js.map +1 -0
- package/dist/{task-stream-BZOjOhKu.js → task-stream-5k_cd_Wz.js} +4 -4
- package/dist/{task-stream-BZOjOhKu.js.map → task-stream-5k_cd_Wz.js.map} +1 -1
- package/dist/{tasks-BMgQt251.js → tasks-C9yxUVN7.js} +2 -2
- package/dist/{tasks-BMgQt251.js.map → tasks-C9yxUVN7.js.map} +1 -1
- package/dist/{telemetry-qeKIGkte.js → telemetry-5NqJBWNN.js} +3 -3
- package/dist/{telemetry-qeKIGkte.js.map → telemetry-5NqJBWNN.js.map} +1 -1
- package/dist/{terminal-tbxhJGlI.js → terminal-q-Sd8CdO.js} +806 -62
- package/dist/terminal-q-Sd8CdO.js.map +1 -0
- package/dist/{tools-DVnBIYFn.js → tools-2weX1XHC.js} +8 -10
- package/dist/tools-2weX1XHC.js.map +1 -0
- package/dist/warlock-smoke-test.ts +177 -1
- package/dist/{wizard-abort-AEhoDJ4P.js → wizard-abort-B1XewmPn.js} +3 -3
- package/dist/{wizard-abort-AEhoDJ4P.js.map → wizard-abort-B1XewmPn.js.map} +1 -1
- package/dist/{wizard-abort-DHC_XStW.js → wizard-abort-Cl8D3gW8.js} +1 -1
- package/dist/yara-hooks-Cj7xUAKE.js +2 -0
- package/dist/{yara-hooks-CKsVxWiN.js → yara-hooks-Cu0rEw1L.js} +39 -83
- package/dist/yara-hooks-Cu0rEw1L.js.map +1 -0
- package/package.json +2 -1
- package/dist/agent-interface-DoFVHRFh.js.map +0 -1
- package/dist/agent-runner-B1qCtjid.js.map +0 -1
- package/dist/analytics-BXz4SIuS.js.map +0 -1
- package/dist/analytics-D2xds3nw.js +0 -2
- package/dist/commandments-BagyrYRW.js +0 -2
- package/dist/commandments-DiMtIz1o.js +0 -42
- package/dist/commandments-DiMtIz1o.js.map +0 -1
- package/dist/debug-C3ZR1TVF.js.map +0 -1
- package/dist/pi-CGPjm4oE.js +0 -570
- package/dist/pi-CGPjm4oE.js.map +0 -1
- package/dist/playground-lg7h9GHG.js.map +0 -1
- package/dist/queue-tools-D7ctuzyo.js.map +0 -1
- package/dist/security-YAaZfmHs.js.map +0 -1
- package/dist/start-tui-pCi7WVAK.js.map +0 -1
- package/dist/task-CSmrfyNf.js.map +0 -1
- package/dist/terminal-tbxhJGlI.js.map +0 -1
- package/dist/tools-DVnBIYFn.js.map +0 -1
- package/dist/yara-hooks-CKsVxWiN.js.map +0 -1
- package/dist/yara-hooks-DWRdZQuG.js +0 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { s as HostResolution } from "./setup-utils-
|
|
1
|
+
import { ht as VERSION, l as WIZARD_LOG_FILE, v as getBlockingServiceKeys } from "./debug-tCr3A18e.js";
|
|
2
|
+
import { s as HostResolution } from "./setup-utils-t0jzKwBE.js";
|
|
3
3
|
import "./wizard-session-BAZql11N.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as WizardStore } from "./store-
|
|
7
|
-
import { A as
|
|
4
|
+
import { h as Icons, m as Colors } from "./posthog-integration-Bd-kybes.js";
|
|
5
|
+
import { d as PROGRAM_REGISTRY, o as ConfirmButton, p as getProgramConfig, t as PickerMenu, x as getContentBlocks } from "./bin.js";
|
|
6
|
+
import { t as WizardStore } from "./store-qv5UdGQO.js";
|
|
7
|
+
import { A as LogViewer, C as TipsCard, D as TabContainer, E as HNViewer, F as GroupedPickerMenu, I as ProgressList, L as LoadingBox, N as ModalOverlay, O as ScreenContainer, P as ConfirmationInput, R as SplitView, S as ServiceHealthList, T as ContentSequencer, _ as TAILORED_ROLES, c as SlackConnectScreen, d as AuditChecksViewer, h as assembleProfile, k as EventPlanViewer, l as AUDIT_AREA_SLIDES, m as McpSuggestedPromptsScreen, n as releaseTerminal, o as OutroScreen, p as seededProfile, r as AiOptInRequiredScreen, t as enterDarkTerminal, v as McpScreen, w as LearnCard, y as IssueTable, z as CardLayout } from "./terminal-q-Sd8CdO.js";
|
|
8
8
|
import * as fs$1 from "fs";
|
|
9
9
|
import * as path$1 from "path";
|
|
10
10
|
import * as os from "os";
|
|
@@ -146,6 +146,48 @@ const LayoutDemo = () => {
|
|
|
146
146
|
/**
|
|
147
147
|
* InputDemo — Demonstrates PickerMenu (single + multi) and ConfirmationInput.
|
|
148
148
|
*/
|
|
149
|
+
const LONG_OPTIONS = [
|
|
150
|
+
"None of these",
|
|
151
|
+
"GitHub Issues",
|
|
152
|
+
"Linear",
|
|
153
|
+
"Jira",
|
|
154
|
+
"GitLab",
|
|
155
|
+
"Gitea",
|
|
156
|
+
"Shortcut",
|
|
157
|
+
"Sentry",
|
|
158
|
+
"Rollbar",
|
|
159
|
+
"Bugsnag",
|
|
160
|
+
"Honeybadger",
|
|
161
|
+
"Raygun",
|
|
162
|
+
"Zendesk",
|
|
163
|
+
"Freshdesk",
|
|
164
|
+
"Freshservice",
|
|
165
|
+
"Front",
|
|
166
|
+
"Gorgias",
|
|
167
|
+
"Kustomer",
|
|
168
|
+
"Dixa",
|
|
169
|
+
"Plain",
|
|
170
|
+
"pganalyze",
|
|
171
|
+
"Snyk",
|
|
172
|
+
"SonarQube",
|
|
173
|
+
"Semgrep",
|
|
174
|
+
"Rapid7 InsightVM",
|
|
175
|
+
"Featurebase",
|
|
176
|
+
"Frill",
|
|
177
|
+
"Aha",
|
|
178
|
+
"UserVoice",
|
|
179
|
+
"Productboard",
|
|
180
|
+
"Canny",
|
|
181
|
+
"AskNicely",
|
|
182
|
+
"Retently",
|
|
183
|
+
"Appfigures",
|
|
184
|
+
"AppFollow",
|
|
185
|
+
"Judge.me",
|
|
186
|
+
"Google Search Console"
|
|
187
|
+
].map((label) => ({
|
|
188
|
+
label,
|
|
189
|
+
value: label.toLowerCase().replace(/\s+/g, "-")
|
|
190
|
+
}));
|
|
149
191
|
const InputDemo = () => {
|
|
150
192
|
const [step, setStep] = useState("single");
|
|
151
193
|
const [results, setResults] = useState([]);
|
|
@@ -217,6 +259,27 @@ const InputDemo = () => {
|
|
|
217
259
|
onSelect: (values) => {
|
|
218
260
|
const arr = Array.isArray(values) ? values : [values];
|
|
219
261
|
setResults((prev) => [...prev, `Multi: ${arr.join(", ")}`]);
|
|
262
|
+
setStep("multi-long");
|
|
263
|
+
}
|
|
264
|
+
})
|
|
265
|
+
]
|
|
266
|
+
});
|
|
267
|
+
if (step === "multi-long") return /* @__PURE__ */ jsxs(Box, {
|
|
268
|
+
flexDirection: "column",
|
|
269
|
+
children: [
|
|
270
|
+
/* @__PURE__ */ jsx(Text, {
|
|
271
|
+
bold: true,
|
|
272
|
+
color: Colors.accent,
|
|
273
|
+
children: "Input Demo — Multi Select (long, scrolls)"
|
|
274
|
+
}),
|
|
275
|
+
/* @__PURE__ */ jsx(Box, { height: 1 }),
|
|
276
|
+
/* @__PURE__ */ jsx(PickerMenu, {
|
|
277
|
+
message: "Which of these do you use? (↑/↓ to scroll)",
|
|
278
|
+
mode: "multi",
|
|
279
|
+
options: LONG_OPTIONS,
|
|
280
|
+
onSelect: (values) => {
|
|
281
|
+
const arr = Array.isArray(values) ? values : [values];
|
|
282
|
+
setResults((prev) => [...prev, `Multi (long): ${arr.length} picked`]);
|
|
220
283
|
setStep("confirm");
|
|
221
284
|
}
|
|
222
285
|
})
|
|
@@ -1742,13 +1805,17 @@ const McpDemo = ({ store }) => {
|
|
|
1742
1805
|
* suggested-prompts screen.
|
|
1743
1806
|
*
|
|
1744
1807
|
* Mounts the real McpSuggestedPromptsScreen with mock services so every
|
|
1745
|
-
* phase (Choose → Authenticating →
|
|
1746
|
-
*
|
|
1747
|
-
*
|
|
1748
|
-
*
|
|
1808
|
+
* phase (Choose → Authenticating → Scouting → [SeedOffer → Seeding] →
|
|
1809
|
+
* Greeting → PromptPicker → Running → FollowUp → Goodbye) can be previewed
|
|
1810
|
+
* without touching the network. The Greeting phase auto-advances; FollowUp
|
|
1811
|
+
* re-enters Running when a follow-up is picked, building a conversation
|
|
1812
|
+
* tree up to MAX_PROMPT_RUNS deep.
|
|
1749
1813
|
*
|
|
1750
1814
|
* R cycle role (null → founder → product → ... → data → null)
|
|
1751
1815
|
* F cycle framework (null → nextjs → vue → swift → django → null)
|
|
1816
|
+
* T cycle data tier (rich → sparse → empty) — drives the scout:
|
|
1817
|
+
* rich → generated quests from real events;
|
|
1818
|
+
* empty → seed-offer fork; sparse → safe read.
|
|
1752
1819
|
* X remount the screen (useful after Exit)
|
|
1753
1820
|
*
|
|
1754
1821
|
* O OAuth outcome: success | error
|
|
@@ -1756,11 +1823,14 @@ const McpDemo = ({ store }) => {
|
|
|
1756
1823
|
* S stream script: short-text | with-tools | mid-stream-error
|
|
1757
1824
|
* C chunk delay: 50ms | 200ms | 800ms
|
|
1758
1825
|
*
|
|
1759
|
-
*
|
|
1760
|
-
*
|
|
1761
|
-
*
|
|
1762
|
-
*
|
|
1763
|
-
*
|
|
1826
|
+
* Tips:
|
|
1827
|
+
* - Set T to "empty" to walk the seed-events fork (SeedOffer → Seeding),
|
|
1828
|
+
* which lands on a rich seeded profile.
|
|
1829
|
+
* - Switch S to "with-tools" and the FollowUp picker after the run will
|
|
1830
|
+
* show context-aware suggestions based on the last tool. The mock
|
|
1831
|
+
* calls are CLI-mode `exec` chunks (`mcp__posthog-wizard__exec` + a
|
|
1832
|
+
* `call <tool> …` command), so they exercise getFollowUps' inner-tool
|
|
1833
|
+
* extraction.
|
|
1764
1834
|
*/
|
|
1765
1835
|
const FAMILY_INTEGRATIONS = [
|
|
1766
1836
|
null,
|
|
@@ -1780,6 +1850,50 @@ const CHUNK_DELAYS_MS = [
|
|
|
1780
1850
|
200,
|
|
1781
1851
|
800
|
|
1782
1852
|
];
|
|
1853
|
+
const PROBE_TIER_CYCLE = [
|
|
1854
|
+
"rich",
|
|
1855
|
+
"sparse",
|
|
1856
|
+
"empty"
|
|
1857
|
+
];
|
|
1858
|
+
const NO_PRODUCTS = {
|
|
1859
|
+
sessionReplay: false,
|
|
1860
|
+
surveys: false,
|
|
1861
|
+
featureFlags: false,
|
|
1862
|
+
experiments: false,
|
|
1863
|
+
dataWarehouse: false
|
|
1864
|
+
};
|
|
1865
|
+
function mockProfile(tier) {
|
|
1866
|
+
if (tier === "empty") return assembleProfile([], NO_PRODUCTS);
|
|
1867
|
+
if (tier === "sparse") return assembleProfile([{
|
|
1868
|
+
name: "$pageview",
|
|
1869
|
+
count: 12
|
|
1870
|
+
}, {
|
|
1871
|
+
name: "clicked",
|
|
1872
|
+
count: 5
|
|
1873
|
+
}], NO_PRODUCTS);
|
|
1874
|
+
return assembleProfile([
|
|
1875
|
+
{
|
|
1876
|
+
name: "$pageview",
|
|
1877
|
+
count: 100
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
name: "feature_used",
|
|
1881
|
+
count: 21
|
|
1882
|
+
},
|
|
1883
|
+
{
|
|
1884
|
+
name: "signed_up",
|
|
1885
|
+
count: 10
|
|
1886
|
+
},
|
|
1887
|
+
{
|
|
1888
|
+
name: "activated",
|
|
1889
|
+
count: 7
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
name: "upgraded_to_paid",
|
|
1893
|
+
count: 3
|
|
1894
|
+
}
|
|
1895
|
+
], NO_PRODUCTS);
|
|
1896
|
+
}
|
|
1783
1897
|
const LOGIN_OUTCOMES = ["success", "error"];
|
|
1784
1898
|
const STREAM_SCRIPTS = [
|
|
1785
1899
|
"short-text",
|
|
@@ -1919,7 +2033,15 @@ function createMockServices(store, configRef) {
|
|
|
1919
2033
|
}
|
|
1920
2034
|
};
|
|
1921
2035
|
},
|
|
1922
|
-
runPromptStreaming: ({ signal }) => mockStream(configRef, signal)
|
|
2036
|
+
runPromptStreaming: ({ signal }) => mockStream(configRef, signal),
|
|
2037
|
+
probeProjectData: async () => {
|
|
2038
|
+
await delay(800);
|
|
2039
|
+
return mockProfile(configRef.current.tier);
|
|
2040
|
+
},
|
|
2041
|
+
seedDemoEvents: async ({ baseProfile }) => {
|
|
2042
|
+
await delay(1500);
|
|
2043
|
+
return seededProfile(baseProfile, /* @__PURE__ */ new Date());
|
|
2044
|
+
}
|
|
1923
2045
|
};
|
|
1924
2046
|
}
|
|
1925
2047
|
async function* mockStream(configRef, signal) {
|
|
@@ -1935,6 +2057,7 @@ async function* mockStream(configRef, signal) {
|
|
|
1935
2057
|
const McpSuggestedPromptsDemo = ({ store }) => {
|
|
1936
2058
|
const [roleIdx, setRoleIdx] = useState(2);
|
|
1937
2059
|
const [familyIdx, setFamilyIdx] = useState(1);
|
|
2060
|
+
const [tierIdx, setTierIdx] = useState(0);
|
|
1938
2061
|
const [resetKey, setResetKey] = useState(0);
|
|
1939
2062
|
const [loginOutcomeIdx, setLoginOutcomeIdx] = useState(0);
|
|
1940
2063
|
const [loginDelayIdx, setLoginDelayIdx] = useState(1);
|
|
@@ -1942,12 +2065,14 @@ const McpSuggestedPromptsDemo = ({ store }) => {
|
|
|
1942
2065
|
const [chunkDelayIdx, setChunkDelayIdx] = useState(1);
|
|
1943
2066
|
const role = ROLE_CYCLE[roleIdx];
|
|
1944
2067
|
const integration = FAMILY_INTEGRATIONS[familyIdx];
|
|
2068
|
+
const tier = PROBE_TIER_CYCLE[tierIdx];
|
|
1945
2069
|
const loginOutcome = LOGIN_OUTCOMES[loginOutcomeIdx];
|
|
1946
2070
|
const loginDelayMs = LOGIN_DELAYS_MS[loginDelayIdx];
|
|
1947
2071
|
const script = STREAM_SCRIPTS[scriptIdx];
|
|
1948
2072
|
const chunkDelayMs = CHUNK_DELAYS_MS[chunkDelayIdx];
|
|
1949
2073
|
const configRef = useRef({
|
|
1950
2074
|
role,
|
|
2075
|
+
tier,
|
|
1951
2076
|
loginOutcome,
|
|
1952
2077
|
loginDelayMs,
|
|
1953
2078
|
script,
|
|
@@ -1955,6 +2080,7 @@ const McpSuggestedPromptsDemo = ({ store }) => {
|
|
|
1955
2080
|
});
|
|
1956
2081
|
configRef.current = {
|
|
1957
2082
|
role,
|
|
2083
|
+
tier,
|
|
1958
2084
|
loginOutcome,
|
|
1959
2085
|
loginDelayMs,
|
|
1960
2086
|
script,
|
|
@@ -1972,6 +2098,9 @@ const McpSuggestedPromptsDemo = ({ store }) => {
|
|
|
1972
2098
|
} else if (input === "F" || input === "f") {
|
|
1973
2099
|
setFamilyIdx((i) => (i + 1) % FAMILY_INTEGRATIONS.length);
|
|
1974
2100
|
setResetKey((k) => k + 1);
|
|
2101
|
+
} else if (input === "T" || input === "t") {
|
|
2102
|
+
setTierIdx((i) => (i + 1) % PROBE_TIER_CYCLE.length);
|
|
2103
|
+
setResetKey((k) => k + 1);
|
|
1975
2104
|
} else if (input === "X" || input === "x") {
|
|
1976
2105
|
store.setCredentials(null);
|
|
1977
2106
|
store.setRoleAtOrganization(null);
|
|
@@ -1988,7 +2117,7 @@ const McpSuggestedPromptsDemo = ({ store }) => {
|
|
|
1988
2117
|
children: [
|
|
1989
2118
|
/* @__PURE__ */ jsx(Text, {
|
|
1990
2119
|
dimColor: true,
|
|
1991
|
-
children: "R role · F framework · X reset · O oauth · L login-delay · S script · C chunk-delay"
|
|
2120
|
+
children: "R role · F framework · T data-tier · X reset · O oauth · L login-delay · S script · C chunk-delay"
|
|
1992
2121
|
}),
|
|
1993
2122
|
/* @__PURE__ */ jsxs(Text, {
|
|
1994
2123
|
dimColor: true,
|
|
@@ -1997,6 +2126,8 @@ const McpSuggestedPromptsDemo = ({ store }) => {
|
|
|
1997
2126
|
String(role),
|
|
1998
2127
|
" · integration=",
|
|
1999
2128
|
integration ?? "unknown",
|
|
2129
|
+
" · tier=",
|
|
2130
|
+
tier,
|
|
2000
2131
|
" · login=",
|
|
2001
2132
|
loginOutcome,
|
|
2002
2133
|
"/",
|
|
@@ -2706,6 +2837,205 @@ const AiOptInDemo = ({ variant }) => {
|
|
|
2706
2837
|
});
|
|
2707
2838
|
};
|
|
2708
2839
|
//#endregion
|
|
2840
|
+
//#region src/ui/tui/playground/demos/AskModalDemo.tsx
|
|
2841
|
+
/**
|
|
2842
|
+
* AskModalDemo — Pickers rendered inside an ask-style ModalOverlay, the way
|
|
2843
|
+
* WizardAskScreen composes them: prompt paragraph in the modal body, then a
|
|
2844
|
+
* label-less PickerMenu. Exercises the viewport height cap (MAX_LIST_ROWS)
|
|
2845
|
+
* and the no-label spacing (no stray blank lines under the paragraph).
|
|
2846
|
+
*/
|
|
2847
|
+
const DESCRIBED_OPTIONS = [
|
|
2848
|
+
{
|
|
2849
|
+
label: "Session replay",
|
|
2850
|
+
value: "replay",
|
|
2851
|
+
description: "Record and replay real user sessions to see exactly what happened before an error or a rage click."
|
|
2852
|
+
},
|
|
2853
|
+
{
|
|
2854
|
+
label: "Feature flags",
|
|
2855
|
+
value: "flags",
|
|
2856
|
+
description: "Roll features out gradually, target by cohort, and kill misbehaving code paths without a deploy."
|
|
2857
|
+
},
|
|
2858
|
+
{
|
|
2859
|
+
label: "Error tracking",
|
|
2860
|
+
value: "errors",
|
|
2861
|
+
description: "Capture exceptions with stack traces and source maps."
|
|
2862
|
+
}
|
|
2863
|
+
];
|
|
2864
|
+
const GROUPED = {
|
|
2865
|
+
"Issue trackers": [
|
|
2866
|
+
{
|
|
2867
|
+
label: "GitHub Issues",
|
|
2868
|
+
value: "github"
|
|
2869
|
+
},
|
|
2870
|
+
{
|
|
2871
|
+
label: "Linear",
|
|
2872
|
+
value: "linear"
|
|
2873
|
+
},
|
|
2874
|
+
{
|
|
2875
|
+
label: "Jira",
|
|
2876
|
+
value: "jira"
|
|
2877
|
+
},
|
|
2878
|
+
{
|
|
2879
|
+
label: "Shortcut",
|
|
2880
|
+
value: "shortcut"
|
|
2881
|
+
}
|
|
2882
|
+
],
|
|
2883
|
+
"Error monitoring": [
|
|
2884
|
+
{
|
|
2885
|
+
label: "Sentry",
|
|
2886
|
+
value: "sentry"
|
|
2887
|
+
},
|
|
2888
|
+
{
|
|
2889
|
+
label: "Rollbar",
|
|
2890
|
+
value: "rollbar"
|
|
2891
|
+
},
|
|
2892
|
+
{
|
|
2893
|
+
label: "Bugsnag",
|
|
2894
|
+
value: "bugsnag"
|
|
2895
|
+
},
|
|
2896
|
+
{
|
|
2897
|
+
label: "Honeybadger",
|
|
2898
|
+
value: "honeybadger"
|
|
2899
|
+
}
|
|
2900
|
+
],
|
|
2901
|
+
"Support desks": [
|
|
2902
|
+
{
|
|
2903
|
+
label: "Zendesk",
|
|
2904
|
+
value: "zendesk"
|
|
2905
|
+
},
|
|
2906
|
+
{
|
|
2907
|
+
label: "Freshdesk",
|
|
2908
|
+
value: "freshdesk"
|
|
2909
|
+
},
|
|
2910
|
+
{
|
|
2911
|
+
label: "Front",
|
|
2912
|
+
value: "front"
|
|
2913
|
+
},
|
|
2914
|
+
{
|
|
2915
|
+
label: "Intercom",
|
|
2916
|
+
value: "intercom"
|
|
2917
|
+
}
|
|
2918
|
+
],
|
|
2919
|
+
Observability: [
|
|
2920
|
+
{
|
|
2921
|
+
label: "Datadog",
|
|
2922
|
+
value: "datadog"
|
|
2923
|
+
},
|
|
2924
|
+
{
|
|
2925
|
+
label: "New Relic",
|
|
2926
|
+
value: "newrelic"
|
|
2927
|
+
},
|
|
2928
|
+
{
|
|
2929
|
+
label: "Grafana",
|
|
2930
|
+
value: "grafana"
|
|
2931
|
+
},
|
|
2932
|
+
{
|
|
2933
|
+
label: "Splunk",
|
|
2934
|
+
value: "splunk"
|
|
2935
|
+
}
|
|
2936
|
+
]
|
|
2937
|
+
};
|
|
2938
|
+
/** Mirrors WizardAskScreen's shape: paragraph body, then a label-less input. */
|
|
2939
|
+
const AskModal = ({ prompt, children }) => /* @__PURE__ */ jsxs(ModalOverlay, {
|
|
2940
|
+
borderColor: Colors.accent,
|
|
2941
|
+
title: `${Icons.diamond} self-driving-setup`,
|
|
2942
|
+
titleColor: Colors.accent,
|
|
2943
|
+
width: 72,
|
|
2944
|
+
children: [/* @__PURE__ */ jsx(Box, {
|
|
2945
|
+
flexDirection: "column",
|
|
2946
|
+
children: /* @__PURE__ */ jsx(Text, { children: prompt })
|
|
2947
|
+
}), /* @__PURE__ */ jsx(Box, {
|
|
2948
|
+
marginTop: 1,
|
|
2949
|
+
children
|
|
2950
|
+
})]
|
|
2951
|
+
});
|
|
2952
|
+
const AskModalDemo = () => {
|
|
2953
|
+
const [step, setStep] = useState("multi-long");
|
|
2954
|
+
const [results, setResults] = useState([]);
|
|
2955
|
+
const advance = (result, next) => {
|
|
2956
|
+
setResults((prev) => [...prev, result]);
|
|
2957
|
+
setStep(next);
|
|
2958
|
+
};
|
|
2959
|
+
if (step === "multi-long") return /* @__PURE__ */ jsx(AskModal, {
|
|
2960
|
+
prompt: "Self-driving can also watch your other tools and investigate and fix the problems they surface. Which of these do you use?",
|
|
2961
|
+
children: /* @__PURE__ */ jsx(PickerMenu, {
|
|
2962
|
+
mode: "multi",
|
|
2963
|
+
options: LONG_OPTIONS,
|
|
2964
|
+
onSelect: (values) => {
|
|
2965
|
+
advance(`Multi (long): ${(Array.isArray(values) ? values : [values]).length} picked`, "multi-descriptions");
|
|
2966
|
+
}
|
|
2967
|
+
}, step)
|
|
2968
|
+
});
|
|
2969
|
+
if (step === "multi-descriptions") return /* @__PURE__ */ jsx(AskModal, {
|
|
2970
|
+
prompt: "Besides analytics, which PostHog products should the agent set up while it's in the codebase?",
|
|
2971
|
+
children: /* @__PURE__ */ jsx(PickerMenu, {
|
|
2972
|
+
mode: "multi",
|
|
2973
|
+
optionMarginBottom: 1,
|
|
2974
|
+
options: DESCRIBED_OPTIONS,
|
|
2975
|
+
onSelect: (values) => {
|
|
2976
|
+
advance(`Multi (descriptions): ${(Array.isArray(values) ? values : [values]).join(", ") || "none"}`, "single");
|
|
2977
|
+
}
|
|
2978
|
+
}, step)
|
|
2979
|
+
});
|
|
2980
|
+
if (step === "single") return /* @__PURE__ */ jsx(AskModal, {
|
|
2981
|
+
prompt: "Your project has both an app and a marketing site. Which one should the agent instrument first?",
|
|
2982
|
+
children: /* @__PURE__ */ jsx(PickerMenu, {
|
|
2983
|
+
options: [
|
|
2984
|
+
{
|
|
2985
|
+
label: "The app",
|
|
2986
|
+
value: "app",
|
|
2987
|
+
hint: "src/app"
|
|
2988
|
+
},
|
|
2989
|
+
{
|
|
2990
|
+
label: "The marketing site",
|
|
2991
|
+
value: "marketing",
|
|
2992
|
+
hint: "www/"
|
|
2993
|
+
},
|
|
2994
|
+
{
|
|
2995
|
+
label: "Both, app first",
|
|
2996
|
+
value: "both"
|
|
2997
|
+
}
|
|
2998
|
+
],
|
|
2999
|
+
onSelect: (value) => {
|
|
3000
|
+
advance(`Single: ${String(value)}`, "grouped");
|
|
3001
|
+
}
|
|
3002
|
+
})
|
|
3003
|
+
});
|
|
3004
|
+
if (step === "grouped") return /* @__PURE__ */ jsx(AskModal, {
|
|
3005
|
+
prompt: "Grouped variant of the same ask — categories with headers, everything pre-selected:",
|
|
3006
|
+
children: /* @__PURE__ */ jsx(GroupedPickerMenu, {
|
|
3007
|
+
groups: GROUPED,
|
|
3008
|
+
onSelect: (values) => {
|
|
3009
|
+
advance(`Grouped: ${values.length} kept`, "done");
|
|
3010
|
+
}
|
|
3011
|
+
})
|
|
3012
|
+
});
|
|
3013
|
+
return /* @__PURE__ */ jsxs(Box, {
|
|
3014
|
+
flexDirection: "column",
|
|
3015
|
+
children: [
|
|
3016
|
+
/* @__PURE__ */ jsx(Text, {
|
|
3017
|
+
bold: true,
|
|
3018
|
+
color: Colors.accent,
|
|
3019
|
+
children: "Ask Modal Demo — Results"
|
|
3020
|
+
}),
|
|
3021
|
+
/* @__PURE__ */ jsx(Box, { height: 1 }),
|
|
3022
|
+
results.map((r, i) => /* @__PURE__ */ jsxs(Text, {
|
|
3023
|
+
color: Colors.success,
|
|
3024
|
+
children: [
|
|
3025
|
+
"✔",
|
|
3026
|
+
" ",
|
|
3027
|
+
r
|
|
3028
|
+
]
|
|
3029
|
+
}, i)),
|
|
3030
|
+
/* @__PURE__ */ jsx(Box, { height: 1 }),
|
|
3031
|
+
/* @__PURE__ */ jsx(Text, {
|
|
3032
|
+
dimColor: true,
|
|
3033
|
+
children: "Switch away from this tab and back to restart."
|
|
3034
|
+
})
|
|
3035
|
+
]
|
|
3036
|
+
});
|
|
3037
|
+
};
|
|
3038
|
+
//#endregion
|
|
2709
3039
|
//#region src/ui/tui/playground/PlaygroundApp.tsx
|
|
2710
3040
|
/**
|
|
2711
3041
|
* PlaygroundApp — Root component for the primitives playground.
|
|
@@ -2730,6 +3060,11 @@ const PlaygroundApp = ({ store }) => {
|
|
|
2730
3060
|
label: "Input",
|
|
2731
3061
|
component: /* @__PURE__ */ jsx(InputDemo, {})
|
|
2732
3062
|
},
|
|
3063
|
+
{
|
|
3064
|
+
id: "ask-modal",
|
|
3065
|
+
label: "Ask modal",
|
|
3066
|
+
component: /* @__PURE__ */ jsx(AskModalDemo, {})
|
|
3067
|
+
},
|
|
2733
3068
|
{
|
|
2734
3069
|
id: "progress",
|
|
2735
3070
|
label: "Progress",
|
|
@@ -2843,4 +3178,4 @@ function runPlayground() {
|
|
|
2843
3178
|
//#endregion
|
|
2844
3179
|
export { runPlayground };
|
|
2845
3180
|
|
|
2846
|
-
//# sourceMappingURL=playground-
|
|
3181
|
+
//# sourceMappingURL=playground-rG007Ve9.js.map
|