@posthog/wizard 2.16.1 → 2.17.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 (80) hide show
  1. package/dist/{TextBlock-CdeZog_6.js → TextBlock-D0Ep3zC9.js} +2 -2
  2. package/dist/{TextBlock-CdeZog_6.js.map → TextBlock-D0Ep3zC9.js.map} +1 -1
  3. package/dist/{add-mcp-server-to-clients-BS6Rjcwh.js → add-mcp-server-to-clients-D4PK6ulR.js} +38 -5
  4. package/dist/add-mcp-server-to-clients-D4PK6ulR.js.map +1 -0
  5. package/dist/{agent-interface-B4eUlMso.js → agent-interface-7t5DBo2A.js} +7 -7
  6. package/dist/{agent-interface-B4eUlMso.js.map → agent-interface-7t5DBo2A.js.map} +1 -1
  7. package/dist/{agent-runner-BxqiKVEf.js → agent-runner-CTkKLVhp.js} +8 -7
  8. package/dist/{agent-runner-BxqiKVEf.js.map → agent-runner-CTkKLVhp.js.map} +1 -1
  9. package/dist/{analytics-DUuUurR3.js → analytics-DN_Gy87F.js} +2 -2
  10. package/dist/{analytics-DUuUurR3.js.map → analytics-DN_Gy87F.js.map} +1 -1
  11. package/dist/{api-CGJ1iGps.js → api-serd0SMY.js} +14 -4
  12. package/dist/{api-CGJ1iGps.js.map → api-serd0SMY.js.map} +1 -1
  13. package/dist/bin.js +44 -43
  14. package/dist/bin.js.map +1 -1
  15. package/dist/{ci-install-DD7WMmIF.js → ci-install-BbJ7c3WK.js} +4 -4
  16. package/dist/{ci-install-DD7WMmIF.js.map → ci-install-BbJ7c3WK.js.map} +1 -1
  17. package/dist/{debug-Cd0hPlZy.js → debug-BI-Js0PB.js} +1 -1
  18. package/dist/{debug-ubpO6102.js → debug-Bx7nvCWW.js} +2 -2
  19. package/dist/{debug-ubpO6102.js.map → debug-Bx7nvCWW.js.map} +1 -1
  20. package/dist/{defaults-zrYmZ2ID.js → defaults-CPH6eWhN.js} +1 -1
  21. package/dist/{defaults-zrYmZ2ID.js.map → defaults-CPH6eWhN.js.map} +1 -1
  22. package/dist/{env-api-key-DEl3LJBv.js → env-api-key-B3gE9Un0.js} +1 -1
  23. package/dist/{env-api-key-DEl3LJBv.js.map → env-api-key-B3gE9Un0.js.map} +1 -1
  24. package/dist/{environment-BAaC5THg.js → environment-CiZVSSYt.js} +3 -3
  25. package/dist/{environment-BAaC5THg.js.map → environment-CiZVSSYt.js.map} +1 -1
  26. package/dist/{file-utils-DPmgn9Vm.js → file-utils-Dy9JncCo.js} +1 -1
  27. package/dist/{file-utils-DPmgn9Vm.js.map → file-utils-Dy9JncCo.js.map} +1 -1
  28. package/dist/{interactive-BaMAq88Q.js → interactive-BwIzklw0.js} +2 -2
  29. package/dist/{interactive-BaMAq88Q.js.map → interactive-BwIzklw0.js.map} +1 -1
  30. package/dist/{mcp-prompt-streaming-clGsVw8q.js → mcp-prompt-streaming-8U9Qs9EV.js} +62 -12
  31. package/dist/mcp-prompt-streaming-8U9Qs9EV.js.map +1 -0
  32. package/dist/{non-interactive-l2AKE3jD.js → non-interactive-DTaZnVq_.js} +2 -2
  33. package/dist/{non-interactive-l2AKE3jD.js.map → non-interactive-DTaZnVq_.js.map} +1 -1
  34. package/dist/{package-json-Cynjr9k4.js → package-json-DCuoye-H.js} +8 -2
  35. package/dist/{package-json-Cynjr9k4.js.map → package-json-DCuoye-H.js.map} +1 -1
  36. package/dist/{package-manager-BqsJK3ej.js → package-manager-CKQLR20D.js} +2 -2
  37. package/dist/{package-manager-BqsJK3ej.js.map → package-manager-CKQLR20D.js.map} +1 -1
  38. package/dist/{playground-DlE5RNfE.js → playground-CR81Mwe3.js} +21 -10
  39. package/dist/playground-CR81Mwe3.js.map +1 -0
  40. package/dist/{posthog-DWL8uOcl.js → posthog-BrLFkaji.js} +1 -1
  41. package/dist/{posthog-DWL8uOcl.js.map → posthog-BrLFkaji.js.map} +1 -1
  42. package/dist/{posthog-integration-Bf_vtWI9.js → posthog-integration-Bv7987YJ.js} +13 -12
  43. package/dist/{posthog-integration-Bf_vtWI9.js.map → posthog-integration-Bv7987YJ.js.map} +1 -1
  44. package/dist/{provisioning-D_hAuxUN.js → provisioning-C96Kw-9D.js} +9 -4
  45. package/dist/{provisioning-D_hAuxUN.js.map → provisioning-C96Kw-9D.js.map} +1 -1
  46. package/dist/{registry-DKgYqROt.js → registry-B9k73FKR.js} +5 -5
  47. package/dist/{registry-DKgYqROt.js.map → registry-B9k73FKR.js.map} +1 -1
  48. package/dist/{setup-utils-D-uTycLX.js → setup-utils-Bpfsap9L.js} +80 -39
  49. package/dist/setup-utils-Bpfsap9L.js.map +1 -0
  50. package/dist/{skill-CnOQAZXp.js → skill-CPqcV8zp.js} +2 -2
  51. package/dist/{skill-CnOQAZXp.js.map → skill-CPqcV8zp.js.map} +1 -1
  52. package/dist/{slides-CL1mv_Kq.js → slides-DRbBgsdd.js} +1426 -181
  53. package/dist/slides-DRbBgsdd.js.map +1 -0
  54. package/dist/{start-tui-DXrv6cof.js → start-tui-BZ7rEf3e.js} +28 -17
  55. package/dist/start-tui-BZ7rEf3e.js.map +1 -0
  56. package/dist/{steps-CgScwqso.js → steps-DDx35170.js} +6 -6
  57. package/dist/{steps-CgScwqso.js.map → steps-DDx35170.js.map} +1 -1
  58. package/dist/{task-stream-CF6QMVMv.js → task-stream-BI8rJg9H.js} +3 -3
  59. package/dist/{task-stream-CF6QMVMv.js.map → task-stream-BI8rJg9H.js.map} +1 -1
  60. package/dist/{telemetry-v6O12Bep.js → telemetry-ByYtIfW0.js} +2 -2
  61. package/dist/{telemetry-v6O12Bep.js.map → telemetry-ByYtIfW0.js.map} +1 -1
  62. package/dist/urls-CTCJIxbR.js +35 -0
  63. package/dist/urls-CTCJIxbR.js.map +1 -0
  64. package/dist/{wizard-abort-iTaJ8wC8.js → wizard-abort-CY0ibdq1.js} +3 -3
  65. package/dist/{wizard-abort-iTaJ8wC8.js.map → wizard-abort-CY0ibdq1.js.map} +1 -1
  66. package/dist/{wizard-abort-BGoBKgvC.js → wizard-abort-QdRxGQp_.js} +1 -1
  67. package/dist/{wizard-session-gsn8Z3bZ.js → wizard-session-d27JGRGi.js} +1 -1
  68. package/dist/{wizard-session-gsn8Z3bZ.js.map → wizard-session-d27JGRGi.js.map} +1 -1
  69. package/dist/{wizard-session-7tMjgOvP.js → wizard-session-y304gEEI.js} +1 -1
  70. package/package.json +1 -1
  71. package/dist/add-mcp-server-to-clients-BS6Rjcwh.js.map +0 -1
  72. package/dist/api-B8OR0N1V.js +0 -2
  73. package/dist/mcp-prompt-streaming-clGsVw8q.js.map +0 -1
  74. package/dist/package-json-CumwmZpv.js +0 -2
  75. package/dist/playground-DlE5RNfE.js.map +0 -1
  76. package/dist/provisioning-BlBnlcFd.js +0 -2
  77. package/dist/setup-utils-BHZEdkNZ.js +0 -2
  78. package/dist/setup-utils-D-uTycLX.js.map +0 -1
  79. package/dist/slides-CL1mv_Kq.js.map +0 -1
  80. package/dist/start-tui-DXrv6cof.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api-CGJ1iGps.js","names":[],"sources":["../src/lib/api.ts"],"sourcesContent":["import axios, { AxiosError } from 'axios';\nimport { z } from 'zod';\nimport { analytics } from '@utils/analytics';\nimport { WIZARD_USER_AGENT } from './constants';\n\n/**\n * User payload from `/api/users/@me/`. Schema typed for the fields the\n * wizard actually reads + passthrough on everything else so the full\n * upstream response rides through to the session for downstream features\n * (account-aware copy, plan-gated flows, org/team metadata, etc.).\n *\n * Top-level uses `.passthrough()` so unknown fields aren't stripped;\n * the few nested objects we care about (team, organization,\n * organizations[]) do the same so their additional fields survive too.\n *\n * Keep `distinct_id` required — analytics depends on it. Everything\n * else added here is nullish so partial responses don't fail parsing.\n */\nexport const ApiUserSchema = z\n .object({\n // Identifiers\n distinct_id: z.string(),\n uuid: z.string().nullish(),\n id: z.number().nullish(),\n\n // Profile\n email: z.string().nullish(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n date_joined: z.string().nullish(),\n is_email_verified: z.boolean().nullish(),\n is_2fa_enabled: z.boolean().nullish(),\n is_staff: z.boolean().nullish(),\n\n // Preferences\n theme_mode: z.string().nullish(),\n toolbar_mode: z.string().nullish(),\n hide_mcp_hints: z.boolean().nullish(),\n\n // Optional / nullable on the backend — pre-onboarding signup paths\n // return null and older accounts may not have it set. Treat as a\n // hint, never a guarantee.\n role_at_organization: z.string().nullish(),\n\n // Current team + organization (objects from the API, kept typed on\n // the fields the wizard uses; passthrough preserves the rest).\n team: z\n .object({\n id: z.number(),\n uuid: z.string().nullish(),\n organization: z.string().uuid(),\n api_token: z.string().nullish(),\n project_id: z.number().nullish(),\n name: z.string().nullish(),\n timezone: z.string().nullish(),\n })\n .passthrough(),\n organization: z\n .object({\n id: z.string().uuid(),\n name: z.string().nullish(),\n slug: z.string().nullish(),\n membership_level: z.number().nullish(),\n customer_id: z.string().nullish(),\n })\n .passthrough(),\n organizations: z.array(\n z\n .object({\n id: z.string().uuid(),\n name: z.string().nullish(),\n membership_level: z.number().nullish(),\n })\n .passthrough(),\n ),\n })\n .passthrough();\n\n/**\n * Single activity log entry the wizard cares about. The PostHog endpoint\n * returns much more — schema kept minimal so changes upstream don't break us.\n *\n * @unused — no current caller after the Phase 6 streaming-agent pivot\n * dropped activity_log polling. Deliberately retained: this is a thin,\n * well-typed wrapper around a stable PostHog endpoint, and we're likely\n * to want it again for a future feature (e.g. \"what changed in your\n * project recently\"). Re-deriving the schema is more work than letting\n * it sit dormant.\n */\nexport const ActivityLogEntrySchema = z\n .object({\n scope: z.string().nullish(),\n activity: z.string().nullish(),\n created_at: z.string().nullish(),\n })\n .passthrough();\n\n/** @unused — see ActivityLogEntrySchema. */\nexport const ActivityLogResponseSchema = z.object({\n results: z.array(ActivityLogEntrySchema),\n});\n\n/** @unused — see ActivityLogEntrySchema. */\nexport type ActivityLogEntry = z.infer<typeof ActivityLogEntrySchema>;\n\nexport const ApiProjectSchema = z.object({\n id: z.number(),\n uuid: z.string().uuid(),\n organization: z.string().uuid(),\n api_token: z.string(),\n name: z.string(),\n});\n\nexport type ApiUser = z.infer<typeof ApiUserSchema>;\nexport type ApiProject = z.infer<typeof ApiProjectSchema>;\n\nexport class ApiError extends Error {\n constructor(\n message: string,\n public readonly statusCode?: number,\n public readonly endpoint?: string,\n ) {\n super(message);\n this.name = 'ApiError';\n }\n}\n\nexport async function fetchUserData(\n accessToken: string,\n baseUrl: string,\n): Promise<ApiUser> {\n try {\n const response = await axios.get(`${baseUrl}/api/users/@me/`, {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n },\n });\n\n return ApiUserSchema.parse(response.data);\n } catch (error) {\n const apiError = handleApiError(error, 'fetch user data');\n analytics.captureException(apiError, {\n endpoint: '/api/users/@me/',\n baseUrl,\n });\n throw apiError;\n }\n}\n\n/**\n * Best-effort fetch of recent activity log entries. Returns [] on any error\n * so callers can treat absence of results as \"haven't detected anything yet\"\n * rather than a hard failure.\n *\n * @unused — no current caller after the Phase 6 streaming-agent pivot\n * dropped activity_log polling from McpSuggestedPromptsScreen.\n * Deliberately retained for future features that want a soft signal of\n * recent project changes (e.g. dashboards, audit summaries). See the\n * ActivityLogEntrySchema doc comment for the keep-vs-delete rationale.\n */\nexport async function fetchRecentActivity(\n accessToken: string,\n projectId: number,\n baseUrl: string,\n since: Date,\n): Promise<ActivityLogEntry[]> {\n try {\n const response = await axios.get(\n `${baseUrl}/api/projects/${projectId}/activity_log/`,\n {\n params: { limit: 10 },\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n },\n // Short timeout — best-effort probe, not a critical path.\n timeout: 4000,\n },\n );\n const parsed = ActivityLogResponseSchema.safeParse(response.data);\n if (!parsed.success) return [];\n const sinceMs = since.getTime();\n return parsed.data.results.filter((entry) => {\n if (!entry.created_at) return false;\n const t = Date.parse(entry.created_at);\n return Number.isFinite(t) && t >= sinceMs;\n });\n } catch {\n return [];\n }\n}\n\nexport async function fetchProjectData(\n accessToken: string,\n projectId: number,\n baseUrl: string,\n): Promise<ApiProject> {\n try {\n const response = await axios.get(`${baseUrl}/api/projects/${projectId}/`, {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n },\n });\n\n return ApiProjectSchema.parse(response.data);\n } catch (error) {\n const apiError = handleApiError(error, 'fetch project data');\n analytics.captureException(apiError, {\n endpoint: `/api/projects/${projectId}/`,\n baseUrl,\n projectId,\n });\n throw apiError;\n }\n}\n\nexport function handleApiError(error: unknown, operation: string): ApiError {\n if (axios.isAxiosError(error)) {\n const axiosError = error as AxiosError<{ detail?: string }>;\n const status = axiosError.response?.status;\n const detail = axiosError.response?.data?.detail;\n const endpoint = axiosError.config?.url;\n\n if (status === 401) {\n return new ApiError(\n `Authentication failed while trying to ${operation}`,\n status,\n endpoint,\n );\n }\n\n if (status === 403) {\n return new ApiError(\n `Access denied while trying to ${operation}`,\n status,\n endpoint,\n );\n }\n\n if (status === 404) {\n return new ApiError(\n `Resource not found while trying to ${operation}`,\n status,\n endpoint,\n );\n }\n\n const message = detail || `Failed to ${operation}`;\n return new ApiError(message, status, endpoint);\n }\n\n if (error instanceof z.ZodError) {\n return new ApiError(`Invalid response format while trying to ${operation}`);\n }\n\n return new ApiError(\n `Unexpected error while trying to ${operation}: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"api-serd0SMY.js","names":[],"sources":["../src/lib/api.ts"],"sourcesContent":["import axios, { AxiosError } from 'axios';\nimport { z } from 'zod';\nimport { analytics } from '@utils/analytics';\nimport { WIZARD_USER_AGENT } from './constants';\n\n/**\n * User payload from `/api/users/@me/`. Schema typed for the fields the\n * wizard actually reads + passthrough on everything else so the full\n * upstream response rides through to the session for downstream features\n * (account-aware copy, plan-gated flows, org/team metadata, etc.).\n *\n * Top-level uses `.passthrough()` so unknown fields aren't stripped;\n * the few nested objects we care about (team, organization,\n * organizations[]) do the same so their additional fields survive too.\n *\n * Keep `distinct_id` required — analytics depends on it. Everything\n * else added here is nullish so partial responses don't fail parsing.\n */\nexport const ApiUserSchema = z\n .object({\n // Identifiers\n distinct_id: z.string(),\n uuid: z.string().nullish(),\n id: z.number().nullish(),\n\n // Profile\n email: z.string().nullish(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n date_joined: z.string().nullish(),\n is_email_verified: z.boolean().nullish(),\n is_2fa_enabled: z.boolean().nullish(),\n is_staff: z.boolean().nullish(),\n\n // Preferences\n theme_mode: z.string().nullish(),\n toolbar_mode: z.string().nullish(),\n hide_mcp_hints: z.boolean().nullish(),\n\n // Optional / nullable on the backend — pre-onboarding signup paths\n // return null and older accounts may not have it set. Treat as a\n // hint, never a guarantee.\n role_at_organization: z.string().nullish(),\n\n // Current team + organization (objects from the API, kept typed on\n // the fields the wizard uses; passthrough preserves the rest).\n team: z\n .object({\n id: z.number(),\n uuid: z.string().nullish(),\n organization: z.string().uuid(),\n api_token: z.string().nullish(),\n project_id: z.number().nullish(),\n name: z.string().nullish(),\n timezone: z.string().nullish(),\n })\n .passthrough(),\n organization: z\n .object({\n id: z.string().uuid(),\n name: z.string().nullish(),\n slug: z.string().nullish(),\n membership_level: z.number().nullish(),\n customer_id: z.string().nullish(),\n })\n .passthrough(),\n organizations: z.array(\n z\n .object({\n id: z.string().uuid(),\n name: z.string().nullish(),\n membership_level: z.number().nullish(),\n })\n .passthrough(),\n ),\n })\n .passthrough();\n\n/**\n * Single activity log entry the wizard cares about. The PostHog endpoint\n * returns much more — schema kept minimal so changes upstream don't break us.\n *\n * @unused — no current caller after the Phase 6 streaming-agent pivot\n * dropped activity_log polling. Deliberately retained: this is a thin,\n * well-typed wrapper around a stable PostHog endpoint, and we're likely\n * to want it again for a future feature (e.g. \"what changed in your\n * project recently\"). Re-deriving the schema is more work than letting\n * it sit dormant.\n */\nexport const ActivityLogEntrySchema = z\n .object({\n scope: z.string().nullish(),\n activity: z.string().nullish(),\n created_at: z.string().nullish(),\n })\n .passthrough();\n\n/** @unused — see ActivityLogEntrySchema. */\nexport const ActivityLogResponseSchema = z.object({\n results: z.array(ActivityLogEntrySchema),\n});\n\n/** @unused — see ActivityLogEntrySchema. */\nexport type ActivityLogEntry = z.infer<typeof ActivityLogEntrySchema>;\n\nexport const ApiProjectSchema = z.object({\n id: z.number(),\n uuid: z.string().uuid(),\n organization: z.string().uuid(),\n api_token: z.string(),\n name: z.string(),\n});\n\nexport type ApiUser = z.infer<typeof ApiUserSchema>;\nexport type ApiProject = z.infer<typeof ApiProjectSchema>;\n\nexport class ApiError extends Error {\n constructor(\n message: string,\n public readonly statusCode?: number,\n public readonly endpoint?: string,\n ) {\n super(message);\n this.name = 'ApiError';\n }\n}\n\nexport async function fetchUserData(\n accessToken: string,\n baseUrl: string,\n): Promise<ApiUser> {\n try {\n const response = await axios.get(`${baseUrl}/api/users/@me/`, {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n },\n });\n\n return ApiUserSchema.parse(response.data);\n } catch (error) {\n const apiError = handleApiError(error, 'fetch user data');\n analytics.captureException(apiError, {\n endpoint: '/api/users/@me/',\n baseUrl,\n });\n throw apiError;\n }\n}\n\n/**\n * Best-effort fetch of recent activity log entries. Returns [] on any error\n * so callers can treat absence of results as \"haven't detected anything yet\"\n * rather than a hard failure.\n *\n * @unused — no current caller after the Phase 6 streaming-agent pivot\n * dropped activity_log polling from McpSuggestedPromptsScreen.\n * Deliberately retained for future features that want a soft signal of\n * recent project changes (e.g. dashboards, audit summaries). See the\n * ActivityLogEntrySchema doc comment for the keep-vs-delete rationale.\n */\nexport async function fetchRecentActivity(\n accessToken: string,\n projectId: number,\n baseUrl: string,\n since: Date,\n): Promise<ActivityLogEntry[]> {\n try {\n const response = await axios.get(\n `${baseUrl}/api/projects/${projectId}/activity_log/`,\n {\n params: { limit: 10 },\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n },\n // Short timeout — best-effort probe, not a critical path.\n timeout: 4000,\n },\n );\n const parsed = ActivityLogResponseSchema.safeParse(response.data);\n if (!parsed.success) return [];\n const sinceMs = since.getTime();\n return parsed.data.results.filter((entry) => {\n if (!entry.created_at) return false;\n const t = Date.parse(entry.created_at);\n return Number.isFinite(t) && t >= sinceMs;\n });\n } catch {\n return [];\n }\n}\n\nexport async function fetchProjectData(\n accessToken: string,\n projectId: number,\n baseUrl: string,\n): Promise<ApiProject> {\n try {\n const response = await axios.get(`${baseUrl}/api/projects/${projectId}/`, {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n },\n });\n\n return ApiProjectSchema.parse(response.data);\n } catch (error) {\n const apiError = handleApiError(error, 'fetch project data');\n analytics.captureException(apiError, {\n endpoint: `/api/projects/${projectId}/`,\n baseUrl,\n projectId,\n });\n throw apiError;\n }\n}\n\nexport function handleApiError(error: unknown, operation: string): ApiError {\n if (axios.isAxiosError(error)) {\n const axiosError = error as AxiosError<{ detail?: string }>;\n const status = axiosError.response?.status;\n const detail = axiosError.response?.data?.detail;\n const endpoint = axiosError.config?.url;\n\n if (status === 401) {\n return new ApiError(\n `Authentication failed while trying to ${operation}`,\n status,\n endpoint,\n );\n }\n\n if (status === 403) {\n return new ApiError(\n `Access denied while trying to ${operation}`,\n status,\n endpoint,\n );\n }\n\n if (status === 404) {\n return new ApiError(\n `Resource not found while trying to ${operation}`,\n status,\n endpoint,\n );\n }\n\n const message = detail || `Failed to ${operation}`;\n return new ApiError(message, status, endpoint);\n }\n\n if (error instanceof z.ZodError) {\n return new ApiError(`Invalid response format while trying to ${operation}`);\n }\n\n return new ApiError(\n `Unexpected error while trying to ${operation}: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n );\n}\n"],"mappings":"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"}
package/dist/bin.js CHANGED
@@ -1,16 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import { J as VERSION, M as POSTHOG_DOCS_URL, W as WIZARD_USER_AGENT, X as runtimeEnv, _ as SIGNUP_WIZARD_READINESS_CONFIG, h as LoggingUI, m as setUI, p as getUI, s as logToFile, v as evaluateWizardReadiness, y as getBlockingServiceKeys } from "./debug-ubpO6102.js";
3
- import { t as analytics } from "./analytics-DUuUurR3.js";
4
- import { a as isUsingTypeScript, f as getUiHostFromHost, u as getCloudUrlFromRegion } from "./setup-utils-D-uTycLX.js";
5
- import { s as handleApiError } from "./api-CGJ1iGps.js";
6
- import "./wizard-session-gsn8Z3bZ.js";
7
- import { n as isNonInteractiveEnvironment } from "./environment-BAaC5THg.js";
8
- import { g as AUDIT_REPORT_FILE, h as AUDIT_CHECKS_KEY, m as AUDIT_CHECKS_FILE, t as AgentSignals, u as WIZARD_TOOL_NAMES } from "./agent-interface-B4eUlMso.js";
9
- import { i as SPINNER_MESSAGE } from "./registry-DKgYqROt.js";
10
- import { a as PRODUCT_SUITE_BLOCK, i as LINE_CHART_BLOCK, n as posthogIntegrationConfig, o as StatusPeekTrigger, r as FUNNEL_BLOCK } from "./posthog-integration-Bf_vtWI9.js";
11
- import { c as HEALTH_CHECK_STEP, o as Colors, r as isClearBlock } from "./TextBlock-CdeZog_6.js";
12
- import { t as IGNORED_DIRS } from "./file-utils-DPmgn9Vm.js";
13
- import { n as readApiKeyFromEnv } from "./env-api-key-DEl3LJBv.js";
2
+ import { J as VERSION, M as POSTHOG_DOCS_URL, W as WIZARD_USER_AGENT, X as runtimeEnv, _ as SIGNUP_WIZARD_READINESS_CONFIG, h as LoggingUI, m as setUI, p as getUI, s as logToFile, v as evaluateWizardReadiness, y as getBlockingServiceKeys } from "./debug-Bx7nvCWW.js";
3
+ import { t as analytics } from "./analytics-DN_Gy87F.js";
4
+ import { n as isUsingTypeScript } from "./setup-utils-Bpfsap9L.js";
5
+ import { a as getUiHostFromHost, n as getCloudUrlFromRegion } from "./urls-CTCJIxbR.js";
6
+ import { a as handleApiError } from "./api-serd0SMY.js";
7
+ import "./wizard-session-d27JGRGi.js";
8
+ import { n as isNonInteractiveEnvironment } from "./environment-CiZVSSYt.js";
9
+ import { _ as AUDIT_REPORT_FILE, d as WIZARD_TOOL_NAMES, g as AUDIT_CHECKS_KEY, h as AUDIT_CHECKS_FILE, t as AgentSignals } from "./agent-interface-7t5DBo2A.js";
10
+ import { i as SPINNER_MESSAGE } from "./registry-B9k73FKR.js";
11
+ import { a as PRODUCT_SUITE_BLOCK, i as LINE_CHART_BLOCK, n as posthogIntegrationConfig, o as StatusPeekTrigger, r as FUNNEL_BLOCK } from "./posthog-integration-Bv7987YJ.js";
12
+ import { c as HEALTH_CHECK_STEP, o as Colors, r as isClearBlock } from "./TextBlock-D0Ep3zC9.js";
13
+ import { t as IGNORED_DIRS } from "./file-utils-Dy9JncCo.js";
14
+ import { n as readApiKeyFromEnv } from "./env-api-key-B3gE9Un0.js";
14
15
  import { satisfies } from "semver";
15
16
  import yargs from "yargs";
16
17
  import { hideBin } from "yargs/helpers";
@@ -160,7 +161,7 @@ function runProvision(argv) {
160
161
  }
161
162
  async function provision({ email, region, name, jsonMode }) {
162
163
  try {
163
- const { provisionNewAccount } = await import("./provisioning-BlBnlcFd.js");
164
+ const { provisionNewAccount } = await import("./provisioning-C96Kw-9D.js").then((n) => n.n);
164
165
  if (!jsonMode) getUI().log.info(`Provisioning account for ${email} in ${region}...`);
165
166
  emitResult(await provisionNewAccount(email, name, region), jsonMode);
166
167
  process.exit(0);
@@ -239,26 +240,26 @@ const basicIntegrationCommand = {
239
240
  handler: (argv) => {
240
241
  (async () => {
241
242
  if (argv.ci && argv.skill) {
242
- const { runSkillMode } = await import("./skill-CnOQAZXp.js");
243
+ const { runSkillMode } = await import("./skill-CPqcV8zp.js");
243
244
  return runSkillMode(argv);
244
245
  }
245
246
  if (argv.ci) {
246
- const { runCIInstall } = await import("./ci-install-DD7WMmIF.js");
247
+ const { runCIInstall } = await import("./ci-install-BbJ7c3WK.js");
247
248
  return runCIInstall(argv);
248
249
  }
249
250
  if (isNonInteractiveEnvironment()) {
250
- const { failNonInteractive } = await import("./non-interactive-l2AKE3jD.js");
251
+ const { failNonInteractive } = await import("./non-interactive-DTaZnVq_.js");
251
252
  return failNonInteractive();
252
253
  }
253
254
  if (argv.playground) {
254
- const { runPlayground } = await import("./playground-DlE5RNfE.js");
255
+ const { runPlayground } = await import("./playground-CR81Mwe3.js");
255
256
  return runPlayground();
256
257
  }
257
258
  if (argv.skill) {
258
- const { runSkillMode } = await import("./skill-CnOQAZXp.js");
259
+ const { runSkillMode } = await import("./skill-CPqcV8zp.js");
259
260
  return runSkillMode(argv);
260
261
  }
261
- const { runInteractive } = await import("./interactive-BaMAq88Q.js");
262
+ const { runInteractive } = await import("./interactive-BwIzklw0.js");
262
263
  runInteractive(argv);
263
264
  })();
264
265
  }
@@ -2684,13 +2685,13 @@ const mcpAddCommand = {
2684
2685
  function runMcpAdd(argv) {
2685
2686
  const features = parseFeatures(argv.features);
2686
2687
  (async () => {
2687
- const { readApiKeyFromEnv } = await import("./env-api-key-DEl3LJBv.js").then((n) => n.t);
2688
+ const { readApiKeyFromEnv } = await import("./env-api-key-B3gE9Un0.js").then((n) => n.t);
2688
2689
  const apiKey = argv.apiKey || readApiKeyFromEnv();
2689
2690
  const debug = argv.debug;
2690
2691
  const localMcp = argv.local;
2691
2692
  try {
2692
- const { startTUI } = await import("./start-tui-DXrv6cof.js");
2693
- const { buildSession } = await import("./wizard-session-7tMjgOvP.js");
2693
+ const { startTUI } = await import("./start-tui-BZ7rEf3e.js");
2694
+ const { buildSession } = await import("./wizard-session-y304gEEI.js");
2694
2695
  const tui = startTUI(VERSION, Program.McpAdd);
2695
2696
  tui.store.session = buildSession({
2696
2697
  debug,
@@ -2701,7 +2702,7 @@ function runMcpAdd(argv) {
2701
2702
  } catch (error) {
2702
2703
  if (!isTUIUnavailable(error)) throw error;
2703
2704
  setUI(new LoggingUI());
2704
- const { addMCPServerToClientsStep } = await import("./add-mcp-server-to-clients-BS6Rjcwh.js").then((n) => n.r);
2705
+ const { addMCPServerToClientsStep } = await import("./add-mcp-server-to-clients-D4PK6ulR.js").then((n) => n.r);
2705
2706
  await addMCPServerToClientsStep({
2706
2707
  local: localMcp,
2707
2708
  features,
@@ -2740,8 +2741,8 @@ function runMcpRemove(argv) {
2740
2741
  const debug = argv.debug;
2741
2742
  const localMcp = argv.local;
2742
2743
  try {
2743
- const { startTUI } = await import("./start-tui-DXrv6cof.js");
2744
- const { buildSession } = await import("./wizard-session-7tMjgOvP.js");
2744
+ const { startTUI } = await import("./start-tui-BZ7rEf3e.js");
2745
+ const { buildSession } = await import("./wizard-session-y304gEEI.js");
2745
2746
  const tui = startTUI(VERSION, Program.McpRemove);
2746
2747
  tui.store.session = buildSession({
2747
2748
  debug,
@@ -2749,7 +2750,7 @@ function runMcpRemove(argv) {
2749
2750
  });
2750
2751
  } catch {
2751
2752
  setUI(new LoggingUI());
2752
- const { removeMCPServerFromClientsStep } = await import("./add-mcp-server-to-clients-BS6Rjcwh.js").then((n) => n.r);
2753
+ const { removeMCPServerFromClientsStep } = await import("./add-mcp-server-to-clients-D4PK6ulR.js").then((n) => n.r);
2753
2754
  await removeMCPServerFromClientsStep({ local: localMcp });
2754
2755
  }
2755
2756
  })();
@@ -2771,8 +2772,8 @@ function runMcpTutorial(argv) {
2771
2772
  const debug = argv.debug;
2772
2773
  const localMcp = argv.local;
2773
2774
  try {
2774
- const { startTUI } = await import("./start-tui-DXrv6cof.js");
2775
- const { buildSession } = await import("./wizard-session-7tMjgOvP.js");
2775
+ const { startTUI } = await import("./start-tui-BZ7rEf3e.js");
2776
+ const { buildSession } = await import("./wizard-session-y304gEEI.js");
2776
2777
  const tui = startTUI(VERSION, Program.McpTutorial);
2777
2778
  tui.store.session = buildSession({
2778
2779
  debug,
@@ -2826,11 +2827,11 @@ function runWizard(config, options) {
2826
2827
  (async () => {
2827
2828
  try {
2828
2829
  const installDir = options.installDir || process.cwd();
2829
- const { startTUI } = await import("./start-tui-DXrv6cof.js");
2830
- const { buildSession, RunPhase } = await import("./wizard-session-7tMjgOvP.js");
2831
- const { TaskStreamPush } = await import("./task-stream-CF6QMVMv.js");
2832
- const { PostHogDestination } = await import("./posthog-DWL8uOcl.js");
2833
- const { logToFile } = await import("./debug-Cd0hPlZy.js");
2830
+ const { startTUI } = await import("./start-tui-BZ7rEf3e.js");
2831
+ const { buildSession, RunPhase } = await import("./wizard-session-y304gEEI.js");
2832
+ const { TaskStreamPush } = await import("./task-stream-BI8rJg9H.js");
2833
+ const { PostHogDestination } = await import("./posthog-BrLFkaji.js");
2834
+ const { logToFile } = await import("./debug-BI-Js0PB.js");
2834
2835
  tui = startTUI(WIZARD_VERSION, config.id);
2835
2836
  const activeTui = tui;
2836
2837
  const session = buildSession({
@@ -2881,7 +2882,7 @@ function runWizard(config, options) {
2881
2882
  await activeTui.store.getGate("health-check");
2882
2883
  const skipAgent = config.run == null;
2883
2884
  if (skipAgent) {
2884
- const { getOrAskForProjectData } = await import("./setup-utils-BHZEdkNZ.js");
2885
+ const { getOrAskForProjectData } = await import("./setup-utils-Bpfsap9L.js").then((n) => n.r);
2885
2886
  const { projectApiKey, host, accessToken, projectId } = await getOrAskForProjectData({
2886
2887
  signup: session.signup,
2887
2888
  ci: session.ci,
@@ -2895,7 +2896,7 @@ function runWizard(config, options) {
2895
2896
  projectId
2896
2897
  });
2897
2898
  } else {
2898
- const { runAgent } = await import("./agent-runner-BxqiKVEf.js");
2899
+ const { runAgent } = await import("./agent-runner-CTkKLVhp.js");
2899
2900
  await runAgent(config, activeTui.store.session);
2900
2901
  }
2901
2902
  const isDone = () => skipAgent ? activeTui.store.session.outroDismissed : activeTui.store.session.skillsComplete;
@@ -2967,11 +2968,11 @@ function runWizardCI(config, options) {
2967
2968
  validateCiOptions(options);
2968
2969
  (async () => {
2969
2970
  const path = await import("path");
2970
- const { buildSession } = await import("./wizard-session-7tMjgOvP.js");
2971
- const { readEnvironment } = await import("./environment-BAaC5THg.js").then((n) => n.t);
2972
- const { readApiKeyFromEnv } = await import("./env-api-key-DEl3LJBv.js").then((n) => n.t);
2973
- const { configureLogFileFromEnvironment, logToFile } = await import("./debug-Cd0hPlZy.js");
2974
- const { wizardAbort, WizardError } = await import("./wizard-abort-BGoBKgvC.js");
2971
+ const { buildSession } = await import("./wizard-session-y304gEEI.js");
2972
+ const { readEnvironment } = await import("./environment-CiZVSSYt.js").then((n) => n.t);
2973
+ const { readApiKeyFromEnv } = await import("./env-api-key-B3gE9Un0.js").then((n) => n.t);
2974
+ const { configureLogFileFromEnvironment, logToFile } = await import("./debug-BI-Js0PB.js");
2975
+ const { wizardAbort, WizardError } = await import("./wizard-abort-QdRxGQp_.js");
2975
2976
  configureLogFileFromEnvironment();
2976
2977
  const env = readEnvironment();
2977
2978
  const apiKey = options.apiKey ?? readApiKeyFromEnv() ?? void 0;
@@ -3019,7 +3020,7 @@ function runWizardCI(config, options) {
3019
3020
  })
3020
3021
  });
3021
3022
  }
3022
- const { runAgent } = await import("./agent-runner-BxqiKVEf.js");
3023
+ const { runAgent } = await import("./agent-runner-CTkKLVhp.js");
3023
3024
  await runAgent(config, session);
3024
3025
  } catch (error) {
3025
3026
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -3158,7 +3159,7 @@ async function runDoctorCI(options) {
3158
3159
  getUI().intro("Welcome to the PostHog setup wizard");
3159
3160
  getUI().log.info("Running posthog-doctor in CI mode");
3160
3161
  try {
3161
- const { getOrAskForProjectData } = await import("./setup-utils-BHZEdkNZ.js");
3162
+ const { getOrAskForProjectData } = await import("./setup-utils-Bpfsap9L.js").then((n) => n.r);
3162
3163
  const { host, accessToken, projectId } = await getOrAskForProjectData({
3163
3164
  signup: false,
3164
3165
  ci: true,
@@ -3175,7 +3176,7 @@ async function runDoctorCI(options) {
3175
3176
  for (const issue of sorted) getUI().log.info(` • [${issue.severity}] ${getKindMeta(issue.kind).title}`);
3176
3177
  process.exit(1);
3177
3178
  } catch (error) {
3178
- const { ApiError } = await import("./api-B8OR0N1V.js");
3179
+ const { ApiError } = await import("./api-serd0SMY.js").then((n) => n.n);
3179
3180
  const message = error instanceof ApiError && error.statusCode === 401 ? "Your PostHog API key is invalid or expired." : error instanceof Error ? error.message : String(error);
3180
3181
  getUI().log.error(`Doctor failed: ${message}`);
3181
3182
  process.exit(1);