@posthog/wizard 2.9.1 → 2.10.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 (740) hide show
  1. package/README.md +40 -0
  2. package/dist/McpScreen-DINVFEYh.js +3356 -0
  3. package/dist/McpScreen-DINVFEYh.js.map +1 -0
  4. package/dist/add-mcp-server-to-clients-BlbtWGU0.js +436 -0
  5. package/dist/add-mcp-server-to-clients-BlbtWGU0.js.map +1 -0
  6. package/dist/agent-runner-D_eXxXPp.js +1114 -0
  7. package/dist/agent-runner-D_eXxXPp.js.map +1 -0
  8. package/dist/agent-skill-BVjJqol6.js +59 -0
  9. package/dist/agent-skill-BVjJqol6.js.map +1 -0
  10. package/dist/analytics-Bu1XKP2S.js +207 -0
  11. package/dist/analytics-Bu1XKP2S.js.map +1 -0
  12. package/dist/analytics-DjWAOHun.js +2 -0
  13. package/dist/bin.d.ts +1 -2
  14. package/dist/bin.js +635 -521
  15. package/dist/bin.js.map +1 -1
  16. package/dist/craft-pre-release.sh +10 -0
  17. package/dist/debug-CIyf0ZGx.js +2 -0
  18. package/dist/debug-CyJ_3dTP.js +201 -0
  19. package/dist/debug-CyJ_3dTP.js.map +1 -0
  20. package/dist/defaults-DoVkE0gW.js +234 -0
  21. package/dist/defaults-DoVkE0gW.js.map +1 -0
  22. package/dist/detection-B6EEBoZk.js +122 -0
  23. package/dist/detection-B6EEBoZk.js.map +1 -0
  24. package/dist/env-api-key-K8TdTDII.js +20 -0
  25. package/dist/env-api-key-K8TdTDII.js.map +1 -0
  26. package/dist/file-utils-BWneZy6p.js +38 -0
  27. package/dist/file-utils-BWneZy6p.js.map +1 -0
  28. package/dist/generate-version.cjs +11 -0
  29. package/dist/package-json-BQgl5C3Z.js +2 -0
  30. package/dist/package-json-Ctq6LSl8.js +25 -0
  31. package/dist/package-json-Ctq6LSl8.js.map +1 -0
  32. package/dist/package-manager-BTZ75a-a.js +222 -0
  33. package/dist/package-manager-BTZ75a-a.js.map +1 -0
  34. package/dist/posthog-integration-_xd3kuTB.js +230 -0
  35. package/dist/posthog-integration-_xd3kuTB.js.map +1 -0
  36. package/dist/readiness-BPPVNQum.js +2156 -0
  37. package/dist/readiness-BPPVNQum.js.map +1 -0
  38. package/dist/registry-BY4HuKIE.js +2922 -0
  39. package/dist/registry-BY4HuKIE.js.map +1 -0
  40. package/dist/rolldown-runtime-B_-DWIq7.js +15 -0
  41. package/dist/router-D5A1Sb4p.js +141 -0
  42. package/dist/router-D5A1Sb4p.js.map +1 -0
  43. package/dist/setup-utils-Dymympue.js +928 -0
  44. package/dist/setup-utils-Dymympue.js.map +1 -0
  45. package/dist/smoke-test-ci.sh +165 -0
  46. package/dist/start-playground-BjIMB4sp.js +1005 -0
  47. package/dist/start-playground-BjIMB4sp.js.map +1 -0
  48. package/dist/start-tui-xs7DNbH9.js +1885 -0
  49. package/dist/start-tui-xs7DNbH9.js.map +1 -0
  50. package/dist/steps-CCz4dZOV.js +146 -0
  51. package/dist/steps-CCz4dZOV.js.map +1 -0
  52. package/dist/telemetry-DfPvsfxj.js +13 -0
  53. package/dist/telemetry-DfPvsfxj.js.map +1 -0
  54. package/dist/wizard-abort-BPf5l506.js +39 -0
  55. package/dist/wizard-abort-BPf5l506.js.map +1 -0
  56. package/dist/wizard-abort-WACKybRA.js +2 -0
  57. package/dist/wizard-session-Db6R023m.js +62 -0
  58. package/dist/wizard-session-Db6R023m.js.map +1 -0
  59. package/dist/wizard-session-y7nf6aKH.js +2 -0
  60. package/npm-shrinkwrap.json +2 -2
  61. package/package.json +16 -8
  62. package/dist/src/__tests__/cli.test.d.ts +0 -1
  63. package/dist/src/__tests__/cli.test.js +0 -256
  64. package/dist/src/__tests__/cli.test.js.map +0 -1
  65. package/dist/src/__tests__/package-json.test.d.ts +0 -1
  66. package/dist/src/__tests__/package-json.test.js +0 -173
  67. package/dist/src/__tests__/package-json.test.js.map +0 -1
  68. package/dist/src/__tests__/wizard-abort.test.d.ts +0 -1
  69. package/dist/src/__tests__/wizard-abort.test.js +0 -148
  70. package/dist/src/__tests__/wizard-abort.test.js.map +0 -1
  71. package/dist/src/frameworks/android/android-wizard-agent.d.ts +0 -6
  72. package/dist/src/frameworks/android/android-wizard-agent.js +0 -142
  73. package/dist/src/frameworks/android/android-wizard-agent.js.map +0 -1
  74. package/dist/src/frameworks/android/utils.d.ts +0 -11
  75. package/dist/src/frameworks/android/utils.js +0 -97
  76. package/dist/src/frameworks/android/utils.js.map +0 -1
  77. package/dist/src/frameworks/angular/angular-wizard-agent.d.ts +0 -4
  78. package/dist/src/frameworks/angular/angular-wizard-agent.js +0 -65
  79. package/dist/src/frameworks/angular/angular-wizard-agent.js.map +0 -1
  80. package/dist/src/frameworks/angular/utils.d.ts +0 -4
  81. package/dist/src/frameworks/angular/utils.js +0 -9
  82. package/dist/src/frameworks/angular/utils.js.map +0 -1
  83. package/dist/src/frameworks/astro/astro-wizard-agent.d.ts +0 -7
  84. package/dist/src/frameworks/astro/astro-wizard-agent.js +0 -102
  85. package/dist/src/frameworks/astro/astro-wizard-agent.js.map +0 -1
  86. package/dist/src/frameworks/astro/utils.d.ts +0 -14
  87. package/dist/src/frameworks/astro/utils.js +0 -114
  88. package/dist/src/frameworks/astro/utils.js.map +0 -1
  89. package/dist/src/frameworks/django/django-wizard-agent.d.ts +0 -8
  90. package/dist/src/frameworks/django/django-wizard-agent.js +0 -173
  91. package/dist/src/frameworks/django/django-wizard-agent.js.map +0 -1
  92. package/dist/src/frameworks/django/utils.d.ts +0 -31
  93. package/dist/src/frameworks/django/utils.js +0 -306
  94. package/dist/src/frameworks/django/utils.js.map +0 -1
  95. package/dist/src/frameworks/fastapi/fastapi-wizard-agent.d.ts +0 -5
  96. package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +0 -191
  97. package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js.map +0 -1
  98. package/dist/src/frameworks/fastapi/utils.d.ts +0 -26
  99. package/dist/src/frameworks/fastapi/utils.js +0 -258
  100. package/dist/src/frameworks/fastapi/utils.js.map +0 -1
  101. package/dist/src/frameworks/flask/flask-wizard-agent.d.ts +0 -8
  102. package/dist/src/frameworks/flask/flask-wizard-agent.js +0 -179
  103. package/dist/src/frameworks/flask/flask-wizard-agent.js.map +0 -1
  104. package/dist/src/frameworks/flask/utils.d.ts +0 -28
  105. package/dist/src/frameworks/flask/utils.js +0 -344
  106. package/dist/src/frameworks/flask/utils.js.map +0 -1
  107. package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.d.ts +0 -4
  108. package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +0 -61
  109. package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js.map +0 -1
  110. package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.d.ts +0 -3
  111. package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +0 -152
  112. package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js.map +0 -1
  113. package/dist/src/frameworks/javascript-web/utils.d.ts +0 -28
  114. package/dist/src/frameworks/javascript-web/utils.js +0 -147
  115. package/dist/src/frameworks/javascript-web/utils.js.map +0 -1
  116. package/dist/src/frameworks/laravel/laravel-wizard-agent.d.ts +0 -10
  117. package/dist/src/frameworks/laravel/laravel-wizard-agent.js +0 -182
  118. package/dist/src/frameworks/laravel/laravel-wizard-agent.js.map +0 -1
  119. package/dist/src/frameworks/laravel/utils.d.ts +0 -38
  120. package/dist/src/frameworks/laravel/utils.js +0 -238
  121. package/dist/src/frameworks/laravel/utils.js.map +0 -1
  122. package/dist/src/frameworks/nextjs/nextjs-wizard-agent.d.ts +0 -7
  123. package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +0 -94
  124. package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js.map +0 -1
  125. package/dist/src/frameworks/nextjs/utils.d.ts +0 -12
  126. package/dist/src/frameworks/nextjs/utils.js +0 -52
  127. package/dist/src/frameworks/nextjs/utils.js.map +0 -1
  128. package/dist/src/frameworks/nuxt/nuxt-wizard-agent.d.ts +0 -6
  129. package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js +0 -77
  130. package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js.map +0 -1
  131. package/dist/src/frameworks/python/python-wizard-agent.d.ts +0 -7
  132. package/dist/src/frameworks/python/python-wizard-agent.js +0 -195
  133. package/dist/src/frameworks/python/python-wizard-agent.js.map +0 -1
  134. package/dist/src/frameworks/python/utils.d.ts +0 -28
  135. package/dist/src/frameworks/python/utils.js +0 -147
  136. package/dist/src/frameworks/python/utils.js.map +0 -1
  137. package/dist/src/frameworks/rails/rails-wizard-agent.d.ts +0 -8
  138. package/dist/src/frameworks/rails/rails-wizard-agent.js +0 -90
  139. package/dist/src/frameworks/rails/rails-wizard-agent.js.map +0 -1
  140. package/dist/src/frameworks/rails/utils.d.ts +0 -37
  141. package/dist/src/frameworks/rails/utils.js +0 -187
  142. package/dist/src/frameworks/rails/utils.js.map +0 -1
  143. package/dist/src/frameworks/react-native/react-native-wizard-agent.d.ts +0 -7
  144. package/dist/src/frameworks/react-native/react-native-wizard-agent.js +0 -89
  145. package/dist/src/frameworks/react-native/react-native-wizard-agent.js.map +0 -1
  146. package/dist/src/frameworks/react-native/utils.d.ts +0 -8
  147. package/dist/src/frameworks/react-native/utils.js +0 -28
  148. package/dist/src/frameworks/react-native/utils.js.map +0 -1
  149. package/dist/src/frameworks/react-router/react-router-wizard-agent.d.ts +0 -7
  150. package/dist/src/frameworks/react-router/react-router-wizard-agent.js +0 -94
  151. package/dist/src/frameworks/react-router/react-router-wizard-agent.js.map +0 -1
  152. package/dist/src/frameworks/react-router/utils.d.ts +0 -13
  153. package/dist/src/frameworks/react-router/utils.js +0 -161
  154. package/dist/src/frameworks/react-router/utils.js.map +0 -1
  155. package/dist/src/frameworks/ruby/ruby-wizard-agent.d.ts +0 -7
  156. package/dist/src/frameworks/ruby/ruby-wizard-agent.js +0 -113
  157. package/dist/src/frameworks/ruby/ruby-wizard-agent.js.map +0 -1
  158. package/dist/src/frameworks/ruby/utils.d.ts +0 -25
  159. package/dist/src/frameworks/ruby/utils.js +0 -158
  160. package/dist/src/frameworks/ruby/utils.js.map +0 -1
  161. package/dist/src/frameworks/svelte/svelte-wizard-agent.d.ts +0 -4
  162. package/dist/src/frameworks/svelte/svelte-wizard-agent.js +0 -61
  163. package/dist/src/frameworks/svelte/svelte-wizard-agent.js.map +0 -1
  164. package/dist/src/frameworks/swift/swift-wizard-agent.d.ts +0 -7
  165. package/dist/src/frameworks/swift/swift-wizard-agent.js +0 -143
  166. package/dist/src/frameworks/swift/swift-wizard-agent.js.map +0 -1
  167. package/dist/src/frameworks/swift/utils.d.ts +0 -8
  168. package/dist/src/frameworks/swift/utils.js +0 -105
  169. package/dist/src/frameworks/swift/utils.js.map +0 -1
  170. package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.d.ts +0 -7
  171. package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js +0 -96
  172. package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js.map +0 -1
  173. package/dist/src/frameworks/tanstack-router/utils.d.ts +0 -11
  174. package/dist/src/frameworks/tanstack-router/utils.js +0 -149
  175. package/dist/src/frameworks/tanstack-router/utils.js.map +0 -1
  176. package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.d.ts +0 -4
  177. package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js +0 -64
  178. package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js.map +0 -1
  179. package/dist/src/frameworks/tanstack-start/utils.d.ts +0 -4
  180. package/dist/src/frameworks/tanstack-start/utils.js +0 -9
  181. package/dist/src/frameworks/tanstack-start/utils.js.map +0 -1
  182. package/dist/src/frameworks/vue/vue-wizard-agent.d.ts +0 -4
  183. package/dist/src/frameworks/vue/vue-wizard-agent.js +0 -62
  184. package/dist/src/frameworks/vue/vue-wizard-agent.js.map +0 -1
  185. package/dist/src/lib/__tests__/agent-interface.test.d.ts +0 -1
  186. package/dist/src/lib/__tests__/agent-interface.test.js +0 -317
  187. package/dist/src/lib/__tests__/agent-interface.test.js.map +0 -1
  188. package/dist/src/lib/__tests__/cloudflare-detection.test.d.ts +0 -1
  189. package/dist/src/lib/__tests__/cloudflare-detection.test.js +0 -119
  190. package/dist/src/lib/__tests__/cloudflare-detection.test.js.map +0 -1
  191. package/dist/src/lib/__tests__/wizard-tools.test.d.ts +0 -1
  192. package/dist/src/lib/__tests__/wizard-tools.test.js +0 -200
  193. package/dist/src/lib/__tests__/wizard-tools.test.js.map +0 -1
  194. package/dist/src/lib/__tests__/yara-hooks.test.d.ts +0 -1
  195. package/dist/src/lib/__tests__/yara-hooks.test.js +0 -432
  196. package/dist/src/lib/__tests__/yara-hooks.test.js.map +0 -1
  197. package/dist/src/lib/__tests__/yara-scanner.test.d.ts +0 -1
  198. package/dist/src/lib/__tests__/yara-scanner.test.js +0 -613
  199. package/dist/src/lib/__tests__/yara-scanner.test.js.map +0 -1
  200. package/dist/src/lib/agent/__tests__/agent-prompt.test.d.ts +0 -1
  201. package/dist/src/lib/agent/__tests__/agent-prompt.test.js +0 -57
  202. package/dist/src/lib/agent/__tests__/agent-prompt.test.js.map +0 -1
  203. package/dist/src/lib/agent/agent-interface.d.ts +0 -171
  204. package/dist/src/lib/agent/agent-interface.js +0 -1082
  205. package/dist/src/lib/agent/agent-interface.js.map +0 -1
  206. package/dist/src/lib/agent/agent-prompt.d.ts +0 -23
  207. package/dist/src/lib/agent/agent-prompt.js +0 -47
  208. package/dist/src/lib/agent/agent-prompt.js.map +0 -1
  209. package/dist/src/lib/agent/agent-runner.d.ts +0 -78
  210. package/dist/src/lib/agent/agent-runner.js +0 -325
  211. package/dist/src/lib/agent/agent-runner.js.map +0 -1
  212. package/dist/src/lib/agent/commandments.d.ts +0 -1
  213. package/dist/src/lib/agent/commandments.js +0 -26
  214. package/dist/src/lib/agent/commandments.js.map +0 -1
  215. package/dist/src/lib/api.d.ts +0 -75
  216. package/dist/src/lib/api.js +0 -105
  217. package/dist/src/lib/api.js.map +0 -1
  218. package/dist/src/lib/cloudflare-detection.d.ts +0 -14
  219. package/dist/src/lib/cloudflare-detection.js +0 -74
  220. package/dist/src/lib/cloudflare-detection.js.map +0 -1
  221. package/dist/src/lib/constants.d.ts +0 -74
  222. package/dist/src/lib/constants.js +0 -98
  223. package/dist/src/lib/constants.js.map +0 -1
  224. package/dist/src/lib/detection/__tests__/context.test.d.ts +0 -1
  225. package/dist/src/lib/detection/__tests__/context.test.js +0 -72
  226. package/dist/src/lib/detection/__tests__/context.test.js.map +0 -1
  227. package/dist/src/lib/detection/__tests__/features.test.d.ts +0 -1
  228. package/dist/src/lib/detection/__tests__/features.test.js +0 -75
  229. package/dist/src/lib/detection/__tests__/features.test.js.map +0 -1
  230. package/dist/src/lib/detection/__tests__/package-manager.test.d.ts +0 -1
  231. package/dist/src/lib/detection/__tests__/package-manager.test.js +0 -195
  232. package/dist/src/lib/detection/__tests__/package-manager.test.js.map +0 -1
  233. package/dist/src/lib/detection/context.d.ts +0 -31
  234. package/dist/src/lib/detection/context.js +0 -92
  235. package/dist/src/lib/detection/context.js.map +0 -1
  236. package/dist/src/lib/detection/features.d.ts +0 -16
  237. package/dist/src/lib/detection/features.js +0 -56
  238. package/dist/src/lib/detection/features.js.map +0 -1
  239. package/dist/src/lib/detection/framework.d.ts +0 -14
  240. package/dist/src/lib/detection/framework.js +0 -35
  241. package/dist/src/lib/detection/framework.js.map +0 -1
  242. package/dist/src/lib/detection/index.d.ts +0 -3
  243. package/dist/src/lib/detection/index.js +0 -11
  244. package/dist/src/lib/detection/index.js.map +0 -1
  245. package/dist/src/lib/detection/package-manager.d.ts +0 -37
  246. package/dist/src/lib/detection/package-manager.js +0 -183
  247. package/dist/src/lib/detection/package-manager.js.map +0 -1
  248. package/dist/src/lib/framework-config.d.ts +0 -175
  249. package/dist/src/lib/framework-config.js +0 -22
  250. package/dist/src/lib/framework-config.js.map +0 -1
  251. package/dist/src/lib/health-checks/__tests__/health-checks.test.d.ts +0 -18
  252. package/dist/src/lib/health-checks/__tests__/health-checks.test.js +0 -759
  253. package/dist/src/lib/health-checks/__tests__/health-checks.test.js.map +0 -1
  254. package/dist/src/lib/health-checks/endpoints.d.ts +0 -4
  255. package/dist/src/lib/health-checks/endpoints.js +0 -49
  256. package/dist/src/lib/health-checks/endpoints.js.map +0 -1
  257. package/dist/src/lib/health-checks/index.d.ts +0 -4
  258. package/dist/src/lib/health-checks/index.js +0 -24
  259. package/dist/src/lib/health-checks/index.js.map +0 -1
  260. package/dist/src/lib/health-checks/readiness.d.ts +0 -29
  261. package/dist/src/lib/health-checks/readiness.js +0 -188
  262. package/dist/src/lib/health-checks/readiness.js.map +0 -1
  263. package/dist/src/lib/health-checks/statuspage.d.ts +0 -9
  264. package/dist/src/lib/health-checks/statuspage.js +0 -105
  265. package/dist/src/lib/health-checks/statuspage.js.map +0 -1
  266. package/dist/src/lib/health-checks/types.d.ts +0 -32
  267. package/dist/src/lib/health-checks/types.js +0 -10
  268. package/dist/src/lib/health-checks/types.js.map +0 -1
  269. package/dist/src/lib/helper-functions.d.ts +0 -1
  270. package/dist/src/lib/helper-functions.js +0 -6
  271. package/dist/src/lib/helper-functions.js.map +0 -1
  272. package/dist/src/lib/middleware/benchmark.d.ts +0 -54
  273. package/dist/src/lib/middleware/benchmark.js +0 -45
  274. package/dist/src/lib/middleware/benchmark.js.map +0 -1
  275. package/dist/src/lib/middleware/benchmarks/cache-tracker.d.ts +0 -44
  276. package/dist/src/lib/middleware/benchmarks/cache-tracker.js +0 -81
  277. package/dist/src/lib/middleware/benchmarks/cache-tracker.js.map +0 -1
  278. package/dist/src/lib/middleware/benchmarks/compaction-tracker.d.ts +0 -29
  279. package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +0 -60
  280. package/dist/src/lib/middleware/benchmarks/compaction-tracker.js.map +0 -1
  281. package/dist/src/lib/middleware/benchmarks/context-size-tracker.d.ts +0 -26
  282. package/dist/src/lib/middleware/benchmarks/context-size-tracker.js +0 -56
  283. package/dist/src/lib/middleware/benchmarks/context-size-tracker.js.map +0 -1
  284. package/dist/src/lib/middleware/benchmarks/cost-tracker.d.ts +0 -16
  285. package/dist/src/lib/middleware/benchmarks/cost-tracker.js +0 -76
  286. package/dist/src/lib/middleware/benchmarks/cost-tracker.js.map +0 -1
  287. package/dist/src/lib/middleware/benchmarks/duration-tracker.d.ts +0 -20
  288. package/dist/src/lib/middleware/benchmarks/duration-tracker.js +0 -40
  289. package/dist/src/lib/middleware/benchmarks/duration-tracker.js.map +0 -1
  290. package/dist/src/lib/middleware/benchmarks/index.d.ts +0 -9
  291. package/dist/src/lib/middleware/benchmarks/index.js +0 -60
  292. package/dist/src/lib/middleware/benchmarks/index.js.map +0 -1
  293. package/dist/src/lib/middleware/benchmarks/json-writer.d.ts +0 -15
  294. package/dist/src/lib/middleware/benchmarks/json-writer.js +0 -144
  295. package/dist/src/lib/middleware/benchmarks/json-writer.js.map +0 -1
  296. package/dist/src/lib/middleware/benchmarks/summary.d.ts +0 -9
  297. package/dist/src/lib/middleware/benchmarks/summary.js +0 -102
  298. package/dist/src/lib/middleware/benchmarks/summary.js.map +0 -1
  299. package/dist/src/lib/middleware/benchmarks/token-tracker.d.ts +0 -40
  300. package/dist/src/lib/middleware/benchmarks/token-tracker.js +0 -77
  301. package/dist/src/lib/middleware/benchmarks/token-tracker.js.map +0 -1
  302. package/dist/src/lib/middleware/benchmarks/turn-counter.d.ts +0 -34
  303. package/dist/src/lib/middleware/benchmarks/turn-counter.js +0 -59
  304. package/dist/src/lib/middleware/benchmarks/turn-counter.js.map +0 -1
  305. package/dist/src/lib/middleware/config.d.ts +0 -24
  306. package/dist/src/lib/middleware/config.js +0 -78
  307. package/dist/src/lib/middleware/config.js.map +0 -1
  308. package/dist/src/lib/middleware/index.d.ts +0 -11
  309. package/dist/src/lib/middleware/index.js +0 -18
  310. package/dist/src/lib/middleware/index.js.map +0 -1
  311. package/dist/src/lib/middleware/phase-detector.d.ts +0 -7
  312. package/dist/src/lib/middleware/phase-detector.js +0 -64
  313. package/dist/src/lib/middleware/phase-detector.js.map +0 -1
  314. package/dist/src/lib/middleware/pipeline.d.ts +0 -29
  315. package/dist/src/lib/middleware/pipeline.js +0 -82
  316. package/dist/src/lib/middleware/pipeline.js.map +0 -1
  317. package/dist/src/lib/middleware/types.d.ts +0 -40
  318. package/dist/src/lib/middleware/types.js +0 -9
  319. package/dist/src/lib/middleware/types.js.map +0 -1
  320. package/dist/src/lib/registry.d.ts +0 -3
  321. package/dist/src/lib/registry.js +0 -49
  322. package/dist/src/lib/registry.js.map +0 -1
  323. package/dist/src/lib/safe-tools.d.ts +0 -2
  324. package/dist/src/lib/safe-tools.js +0 -215
  325. package/dist/src/lib/safe-tools.js.map +0 -1
  326. package/dist/src/lib/skill-install.d.ts +0 -10
  327. package/dist/src/lib/skill-install.js +0 -23
  328. package/dist/src/lib/skill-install.js.map +0 -1
  329. package/dist/src/lib/version.d.ts +0 -1
  330. package/dist/src/lib/version.js +0 -6
  331. package/dist/src/lib/version.js.map +0 -1
  332. package/dist/src/lib/wizard-session.d.ts +0 -146
  333. package/dist/src/lib/wizard-session.js +0 -116
  334. package/dist/src/lib/wizard-session.js.map +0 -1
  335. package/dist/src/lib/wizard-tools.d.ts +0 -91
  336. package/dist/src/lib/wizard-tools.js +0 -389
  337. package/dist/src/lib/wizard-tools.js.map +0 -1
  338. package/dist/src/lib/workflows/__tests__/agent-skill.test.d.ts +0 -1
  339. package/dist/src/lib/workflows/__tests__/agent-skill.test.js +0 -73
  340. package/dist/src/lib/workflows/__tests__/agent-skill.test.js.map +0 -1
  341. package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.d.ts +0 -1
  342. package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js +0 -101
  343. package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js.map +0 -1
  344. package/dist/src/lib/workflows/__tests__/workflow-registry.test.d.ts +0 -1
  345. package/dist/src/lib/workflows/__tests__/workflow-registry.test.js +0 -32
  346. package/dist/src/lib/workflows/__tests__/workflow-registry.test.js.map +0 -1
  347. package/dist/src/lib/workflows/__tests__/workflow-step.test.d.ts +0 -1
  348. package/dist/src/lib/workflows/__tests__/workflow-step.test.js +0 -54
  349. package/dist/src/lib/workflows/__tests__/workflow-step.test.js.map +0 -1
  350. package/dist/src/lib/workflows/agent-skill/index.d.ts +0 -44
  351. package/dist/src/lib/workflows/agent-skill/index.js +0 -47
  352. package/dist/src/lib/workflows/agent-skill/index.js.map +0 -1
  353. package/dist/src/lib/workflows/agent-skill/steps.d.ts +0 -8
  354. package/dist/src/lib/workflows/agent-skill/steps.js +0 -43
  355. package/dist/src/lib/workflows/agent-skill/steps.js.map +0 -1
  356. package/dist/src/lib/workflows/posthog-integration/detect.d.ts +0 -12
  357. package/dist/src/lib/workflows/posthog-integration/detect.js +0 -57
  358. package/dist/src/lib/workflows/posthog-integration/detect.js.map +0 -1
  359. package/dist/src/lib/workflows/posthog-integration/index.d.ts +0 -3
  360. package/dist/src/lib/workflows/posthog-integration/index.js +0 -152
  361. package/dist/src/lib/workflows/posthog-integration/index.js.map +0 -1
  362. package/dist/src/lib/workflows/posthog-integration/steps.d.ts +0 -9
  363. package/dist/src/lib/workflows/posthog-integration/steps.js +0 -100
  364. package/dist/src/lib/workflows/posthog-integration/steps.js.map +0 -1
  365. package/dist/src/lib/workflows/revenue-analytics/detect.d.ts +0 -40
  366. package/dist/src/lib/workflows/revenue-analytics/detect.js +0 -156
  367. package/dist/src/lib/workflows/revenue-analytics/detect.js.map +0 -1
  368. package/dist/src/lib/workflows/revenue-analytics/index.d.ts +0 -4
  369. package/dist/src/lib/workflows/revenue-analytics/index.js +0 -30
  370. package/dist/src/lib/workflows/revenue-analytics/index.js.map +0 -1
  371. package/dist/src/lib/workflows/revenue-analytics/steps.d.ts +0 -8
  372. package/dist/src/lib/workflows/revenue-analytics/steps.js +0 -53
  373. package/dist/src/lib/workflows/revenue-analytics/steps.js.map +0 -1
  374. package/dist/src/lib/workflows/workflow-registry.d.ts +0 -18
  375. package/dist/src/lib/workflows/workflow-registry.js +0 -32
  376. package/dist/src/lib/workflows/workflow-registry.js.map +0 -1
  377. package/dist/src/lib/workflows/workflow-step.d.ts +0 -126
  378. package/dist/src/lib/workflows/workflow-step.js +0 -28
  379. package/dist/src/lib/workflows/workflow-step.js.map +0 -1
  380. package/dist/src/lib/yara-hooks.d.ts +0 -44
  381. package/dist/src/lib/yara-hooks.js +0 -377
  382. package/dist/src/lib/yara-hooks.js.map +0 -1
  383. package/dist/src/lib/yara-scanner.d.ts +0 -61
  384. package/dist/src/lib/yara-scanner.js +0 -328
  385. package/dist/src/lib/yara-scanner.js.map +0 -1
  386. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +0 -30
  387. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +0 -138
  388. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js.map +0 -1
  389. package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.d.ts +0 -1
  390. package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js +0 -72
  391. package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js.map +0 -1
  392. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.d.ts +0 -1
  393. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js +0 -341
  394. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js.map +0 -1
  395. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.d.ts +0 -1
  396. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.js +0 -108
  397. package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.js.map +0 -1
  398. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +0 -89
  399. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +0 -169
  400. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js.map +0 -1
  401. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +0 -80
  402. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +0 -64
  403. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js.map +0 -1
  404. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +0 -88
  405. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +0 -76
  406. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js.map +0 -1
  407. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +0 -84
  408. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +0 -61
  409. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js.map +0 -1
  410. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +0 -92
  411. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +0 -101
  412. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js.map +0 -1
  413. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +0 -110
  414. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +0 -102
  415. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js.map +0 -1
  416. package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +0 -119
  417. package/dist/src/steps/add-mcp-server-to-clients/defaults.js +0 -239
  418. package/dist/src/steps/add-mcp-server-to-clients/defaults.js.map +0 -1
  419. package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +0 -23
  420. package/dist/src/steps/add-mcp-server-to-clients/index.js +0 -111
  421. package/dist/src/steps/add-mcp-server-to-clients/index.js.map +0 -1
  422. package/dist/src/steps/add-or-update-environment-variables.d.ts +0 -10
  423. package/dist/src/steps/add-or-update-environment-variables.js +0 -188
  424. package/dist/src/steps/add-or-update-environment-variables.js.map +0 -1
  425. package/dist/src/steps/index.d.ts +0 -4
  426. package/dist/src/steps/index.js +0 -21
  427. package/dist/src/steps/index.js.map +0 -1
  428. package/dist/src/steps/run-prettier.d.ts +0 -5
  429. package/dist/src/steps/run-prettier.js +0 -91
  430. package/dist/src/steps/run-prettier.js.map +0 -1
  431. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -11
  432. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +0 -12
  433. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
  434. package/dist/src/steps/upload-environment-variables/index.d.ts +0 -6
  435. package/dist/src/steps/upload-environment-variables/index.js +0 -38
  436. package/dist/src/steps/upload-environment-variables/index.js.map +0 -1
  437. package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.d.ts +0 -1
  438. package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.js +0 -117
  439. package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.js.map +0 -1
  440. package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +0 -15
  441. package/dist/src/steps/upload-environment-variables/providers/vercel.js +0 -142
  442. package/dist/src/steps/upload-environment-variables/providers/vercel.js.map +0 -1
  443. package/dist/src/telemetry.d.ts +0 -2
  444. package/dist/src/telemetry.js +0 -13
  445. package/dist/src/telemetry.js.map +0 -1
  446. package/dist/src/ui/index.d.ts +0 -8
  447. package/dist/src/ui/index.js +0 -17
  448. package/dist/src/ui/index.js.map +0 -1
  449. package/dist/src/ui/logging-ui.d.ts +0 -52
  450. package/dist/src/ui/logging-ui.js +0 -121
  451. package/dist/src/ui/logging-ui.js.map +0 -1
  452. package/dist/src/ui/tui/App.d.ts +0 -6
  453. package/dist/src/ui/tui/App.js +0 -10
  454. package/dist/src/ui/tui/App.js.map +0 -1
  455. package/dist/src/ui/tui/__tests__/flows.test.d.ts +0 -1
  456. package/dist/src/ui/tui/__tests__/flows.test.js +0 -115
  457. package/dist/src/ui/tui/__tests__/flows.test.js.map +0 -1
  458. package/dist/src/ui/tui/__tests__/layout-helpers.test.d.ts +0 -1
  459. package/dist/src/ui/tui/__tests__/layout-helpers.test.js +0 -68
  460. package/dist/src/ui/tui/__tests__/layout-helpers.test.js.map +0 -1
  461. package/dist/src/ui/tui/__tests__/router.test.d.ts +0 -1
  462. package/dist/src/ui/tui/__tests__/router.test.js +0 -87
  463. package/dist/src/ui/tui/__tests__/router.test.js.map +0 -1
  464. package/dist/src/ui/tui/__tests__/store.test.d.ts +0 -1
  465. package/dist/src/ui/tui/__tests__/store.test.js +0 -935
  466. package/dist/src/ui/tui/__tests__/store.test.js.map +0 -1
  467. package/dist/src/ui/tui/components/LearnCard.d.ts +0 -10
  468. package/dist/src/ui/tui/components/LearnCard.js +0 -217
  469. package/dist/src/ui/tui/components/LearnCard.js.map +0 -1
  470. package/dist/src/ui/tui/components/ServiceHealthList.d.ts +0 -15
  471. package/dist/src/ui/tui/components/ServiceHealthList.js +0 -57
  472. package/dist/src/ui/tui/components/ServiceHealthList.js.map +0 -1
  473. package/dist/src/ui/tui/components/TipsCard.d.ts +0 -9
  474. package/dist/src/ui/tui/components/TipsCard.js +0 -55
  475. package/dist/src/ui/tui/components/TipsCard.js.map +0 -1
  476. package/dist/src/ui/tui/components/TitleBar.d.ts +0 -6
  477. package/dist/src/ui/tui/components/TitleBar.js +0 -17
  478. package/dist/src/ui/tui/components/TitleBar.js.map +0 -1
  479. package/dist/src/ui/tui/flows.d.ts +0 -52
  480. package/dist/src/ui/tui/flows.js +0 -76
  481. package/dist/src/ui/tui/flows.js.map +0 -1
  482. package/dist/src/ui/tui/hooks/useStdoutDimensions.d.ts +0 -9
  483. package/dist/src/ui/tui/hooks/useStdoutDimensions.js +0 -37
  484. package/dist/src/ui/tui/hooks/useStdoutDimensions.js.map +0 -1
  485. package/dist/src/ui/tui/ink-ui.d.ts +0 -58
  486. package/dist/src/ui/tui/ink-ui.js +0 -125
  487. package/dist/src/ui/tui/ink-ui.js.map +0 -1
  488. package/dist/src/ui/tui/package.json +0 -1
  489. package/dist/src/ui/tui/playground/PlaygroundApp.d.ts +0 -12
  490. package/dist/src/ui/tui/playground/PlaygroundApp.js +0 -50
  491. package/dist/src/ui/tui/playground/PlaygroundApp.js.map +0 -1
  492. package/dist/src/ui/tui/playground/demos/HealthCheckDemo.d.ts +0 -11
  493. package/dist/src/ui/tui/playground/demos/HealthCheckDemo.js +0 -57
  494. package/dist/src/ui/tui/playground/demos/HealthCheckDemo.js.map +0 -1
  495. package/dist/src/ui/tui/playground/demos/InputDemo.d.ts +0 -4
  496. package/dist/src/ui/tui/playground/demos/InputDemo.js +0 -53
  497. package/dist/src/ui/tui/playground/demos/InputDemo.js.map +0 -1
  498. package/dist/src/ui/tui/playground/demos/LayoutDemo.d.ts +0 -5
  499. package/dist/src/ui/tui/playground/demos/LayoutDemo.js +0 -25
  500. package/dist/src/ui/tui/playground/demos/LayoutDemo.js.map +0 -1
  501. package/dist/src/ui/tui/playground/demos/LogDemo.d.ts +0 -5
  502. package/dist/src/ui/tui/playground/demos/LogDemo.js +0 -53
  503. package/dist/src/ui/tui/playground/demos/LogDemo.js.map +0 -1
  504. package/dist/src/ui/tui/playground/demos/McpDemo.d.ts +0 -12
  505. package/dist/src/ui/tui/playground/demos/McpDemo.js +0 -27
  506. package/dist/src/ui/tui/playground/demos/McpDemo.js.map +0 -1
  507. package/dist/src/ui/tui/playground/demos/ModalDemo.d.ts +0 -6
  508. package/dist/src/ui/tui/playground/demos/ModalDemo.js +0 -13
  509. package/dist/src/ui/tui/playground/demos/ModalDemo.js.map +0 -1
  510. package/dist/src/ui/tui/playground/demos/ProgressDemo.d.ts +0 -5
  511. package/dist/src/ui/tui/playground/demos/ProgressDemo.js +0 -58
  512. package/dist/src/ui/tui/playground/demos/ProgressDemo.js.map +0 -1
  513. package/dist/src/ui/tui/playground/demos/RunScreenDemo.d.ts +0 -11
  514. package/dist/src/ui/tui/playground/demos/RunScreenDemo.js +0 -159
  515. package/dist/src/ui/tui/playground/demos/RunScreenDemo.js.map +0 -1
  516. package/dist/src/ui/tui/playground/demos/WelcomeDemo.d.ts +0 -9
  517. package/dist/src/ui/tui/playground/demos/WelcomeDemo.js +0 -15
  518. package/dist/src/ui/tui/playground/demos/WelcomeDemo.js.map +0 -1
  519. package/dist/src/ui/tui/playground/start-playground.d.ts +0 -4
  520. package/dist/src/ui/tui/playground/start-playground.js +0 -24
  521. package/dist/src/ui/tui/playground/start-playground.js.map +0 -1
  522. package/dist/src/ui/tui/primitives/CardLayout.d.ts +0 -12
  523. package/dist/src/ui/tui/primitives/CardLayout.js +0 -10
  524. package/dist/src/ui/tui/primitives/CardLayout.js.map +0 -1
  525. package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +0 -13
  526. package/dist/src/ui/tui/primitives/ConfirmationInput.js +0 -35
  527. package/dist/src/ui/tui/primitives/ConfirmationInput.js.map +0 -1
  528. package/dist/src/ui/tui/primitives/ContentSequencer.d.ts +0 -42
  529. package/dist/src/ui/tui/primitives/ContentSequencer.js +0 -137
  530. package/dist/src/ui/tui/primitives/ContentSequencer.js.map +0 -1
  531. package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +0 -21
  532. package/dist/src/ui/tui/primitives/DissolveTransition.js +0 -149
  533. package/dist/src/ui/tui/primitives/DissolveTransition.js.map +0 -1
  534. package/dist/src/ui/tui/primitives/Divider.d.ts +0 -6
  535. package/dist/src/ui/tui/primitives/Divider.js +0 -15
  536. package/dist/src/ui/tui/primitives/Divider.js.map +0 -1
  537. package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +0 -9
  538. package/dist/src/ui/tui/primitives/EventPlanViewer.js +0 -9
  539. package/dist/src/ui/tui/primitives/EventPlanViewer.js.map +0 -1
  540. package/dist/src/ui/tui/primitives/GroupedPickerMenu.d.ts +0 -23
  541. package/dist/src/ui/tui/primitives/GroupedPickerMenu.js +0 -182
  542. package/dist/src/ui/tui/primitives/GroupedPickerMenu.js.map +0 -1
  543. package/dist/src/ui/tui/primitives/HNViewer.d.ts +0 -7
  544. package/dist/src/ui/tui/primitives/HNViewer.js +0 -63
  545. package/dist/src/ui/tui/primitives/HNViewer.js.map +0 -1
  546. package/dist/src/ui/tui/primitives/LinesBlock.d.ts +0 -16
  547. package/dist/src/ui/tui/primitives/LinesBlock.js +0 -37
  548. package/dist/src/ui/tui/primitives/LinesBlock.js.map +0 -1
  549. package/dist/src/ui/tui/primitives/LoadingBox.d.ts +0 -8
  550. package/dist/src/ui/tui/primitives/LoadingBox.js +0 -10
  551. package/dist/src/ui/tui/primitives/LoadingBox.js.map +0 -1
  552. package/dist/src/ui/tui/primitives/LogViewer.d.ts +0 -11
  553. package/dist/src/ui/tui/primitives/LogViewer.js +0 -55
  554. package/dist/src/ui/tui/primitives/LogViewer.js.map +0 -1
  555. package/dist/src/ui/tui/primitives/ModalOverlay.d.ts +0 -25
  556. package/dist/src/ui/tui/primitives/ModalOverlay.js +0 -7
  557. package/dist/src/ui/tui/primitives/ModalOverlay.js.map +0 -1
  558. package/dist/src/ui/tui/primitives/NodeBlock.d.ts +0 -13
  559. package/dist/src/ui/tui/primitives/NodeBlock.js +0 -17
  560. package/dist/src/ui/tui/primitives/NodeBlock.js.map +0 -1
  561. package/dist/src/ui/tui/primitives/PickerMenu.d.ts +0 -20
  562. package/dist/src/ui/tui/primitives/PickerMenu.js +0 -143
  563. package/dist/src/ui/tui/primitives/PickerMenu.js.map +0 -1
  564. package/dist/src/ui/tui/primitives/ProgressList.d.ts +0 -15
  565. package/dist/src/ui/tui/primitives/ProgressList.js +0 -32
  566. package/dist/src/ui/tui/primitives/ProgressList.js.map +0 -1
  567. package/dist/src/ui/tui/primitives/PromptLabel.d.ts +0 -11
  568. package/dist/src/ui/tui/primitives/PromptLabel.js +0 -13
  569. package/dist/src/ui/tui/primitives/PromptLabel.js.map +0 -1
  570. package/dist/src/ui/tui/primitives/ScreenContainer.d.ts +0 -16
  571. package/dist/src/ui/tui/primitives/ScreenContainer.js +0 -36
  572. package/dist/src/ui/tui/primitives/ScreenContainer.js.map +0 -1
  573. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +0 -22
  574. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +0 -35
  575. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js.map +0 -1
  576. package/dist/src/ui/tui/primitives/SplitView.d.ts +0 -11
  577. package/dist/src/ui/tui/primitives/SplitView.js +0 -9
  578. package/dist/src/ui/tui/primitives/SplitView.js.map +0 -1
  579. package/dist/src/ui/tui/primitives/TabContainer.d.ts +0 -23
  580. package/dist/src/ui/tui/primitives/TabContainer.js +0 -45
  581. package/dist/src/ui/tui/primitives/TabContainer.js.map +0 -1
  582. package/dist/src/ui/tui/primitives/TextBlock.d.ts +0 -41
  583. package/dist/src/ui/tui/primitives/TextBlock.js +0 -144
  584. package/dist/src/ui/tui/primitives/TextBlock.js.map +0 -1
  585. package/dist/src/ui/tui/primitives/content-types.d.ts +0 -37
  586. package/dist/src/ui/tui/primitives/content-types.js +0 -19
  587. package/dist/src/ui/tui/primitives/content-types.js.map +0 -1
  588. package/dist/src/ui/tui/primitives/index.d.ts +0 -27
  589. package/dist/src/ui/tui/primitives/index.js +0 -24
  590. package/dist/src/ui/tui/primitives/index.js.map +0 -1
  591. package/dist/src/ui/tui/primitives/layout-helpers.d.ts +0 -36
  592. package/dist/src/ui/tui/primitives/layout-helpers.js +0 -95
  593. package/dist/src/ui/tui/primitives/layout-helpers.js.map +0 -1
  594. package/dist/src/ui/tui/primitives/text-helpers.d.ts +0 -10
  595. package/dist/src/ui/tui/primitives/text-helpers.js +0 -43
  596. package/dist/src/ui/tui/primitives/text-helpers.js.map +0 -1
  597. package/dist/src/ui/tui/router.d.ts +0 -58
  598. package/dist/src/ui/tui/router.js +0 -96
  599. package/dist/src/ui/tui/router.js.map +0 -1
  600. package/dist/src/ui/tui/screen-registry.d.ts +0 -19
  601. package/dist/src/ui/tui/screen-registry.js +0 -46
  602. package/dist/src/ui/tui/screen-registry.js.map +0 -1
  603. package/dist/src/ui/tui/screens/AgentSkillIntroScreen.d.ts +0 -12
  604. package/dist/src/ui/tui/screens/AgentSkillIntroScreen.js +0 -75
  605. package/dist/src/ui/tui/screens/AgentSkillIntroScreen.js.map +0 -1
  606. package/dist/src/ui/tui/screens/AuthErrorScreen.d.ts +0 -7
  607. package/dist/src/ui/tui/screens/AuthErrorScreen.js +0 -16
  608. package/dist/src/ui/tui/screens/AuthErrorScreen.js.map +0 -1
  609. package/dist/src/ui/tui/screens/AuthScreen.d.ts +0 -13
  610. package/dist/src/ui/tui/screens/AuthScreen.js +0 -20
  611. package/dist/src/ui/tui/screens/AuthScreen.js.map +0 -1
  612. package/dist/src/ui/tui/screens/IntroScreenLayout.d.ts +0 -46
  613. package/dist/src/ui/tui/screens/IntroScreenLayout.js +0 -33
  614. package/dist/src/ui/tui/screens/IntroScreenLayout.js.map +0 -1
  615. package/dist/src/ui/tui/screens/KeepSkillsScreen.d.ts +0 -14
  616. package/dist/src/ui/tui/screens/KeepSkillsScreen.js +0 -74
  617. package/dist/src/ui/tui/screens/KeepSkillsScreen.js.map +0 -1
  618. package/dist/src/ui/tui/screens/ManagedSettingsScreen.d.ts +0 -13
  619. package/dist/src/ui/tui/screens/ManagedSettingsScreen.js +0 -32
  620. package/dist/src/ui/tui/screens/ManagedSettingsScreen.js.map +0 -1
  621. package/dist/src/ui/tui/screens/McpScreen.d.ts +0 -24
  622. package/dist/src/ui/tui/screens/McpScreen.js +0 -130
  623. package/dist/src/ui/tui/screens/McpScreen.js.map +0 -1
  624. package/dist/src/ui/tui/screens/OutroScreen.d.ts +0 -11
  625. package/dist/src/ui/tui/screens/OutroScreen.js +0 -22
  626. package/dist/src/ui/tui/screens/OutroScreen.js.map +0 -1
  627. package/dist/src/ui/tui/screens/PortConflictScreen.d.ts +0 -11
  628. package/dist/src/ui/tui/screens/PortConflictScreen.js +0 -30
  629. package/dist/src/ui/tui/screens/PortConflictScreen.js.map +0 -1
  630. package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.d.ts +0 -15
  631. package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.js +0 -135
  632. package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.js.map +0 -1
  633. package/dist/src/ui/tui/screens/RevenueIntroScreen.d.ts +0 -16
  634. package/dist/src/ui/tui/screens/RevenueIntroScreen.js +0 -89
  635. package/dist/src/ui/tui/screens/RevenueIntroScreen.js.map +0 -1
  636. package/dist/src/ui/tui/screens/RunScreen.d.ts +0 -16
  637. package/dist/src/ui/tui/screens/RunScreen.js +0 -73
  638. package/dist/src/ui/tui/screens/RunScreen.js.map +0 -1
  639. package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +0 -6
  640. package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +0 -30
  641. package/dist/src/ui/tui/screens/SettingsOverrideScreen.js.map +0 -1
  642. package/dist/src/ui/tui/screens/SetupScreen.d.ts +0 -13
  643. package/dist/src/ui/tui/screens/SetupScreen.js +0 -74
  644. package/dist/src/ui/tui/screens/SetupScreen.js.map +0 -1
  645. package/dist/src/ui/tui/screens/health/HealthCheckScreen.d.ts +0 -14
  646. package/dist/src/ui/tui/screens/health/HealthCheckScreen.js +0 -77
  647. package/dist/src/ui/tui/screens/health/HealthCheckScreen.js.map +0 -1
  648. package/dist/src/ui/tui/services/mcp-installer.d.ts +0 -21
  649. package/dist/src/ui/tui/services/mcp-installer.js +0 -58
  650. package/dist/src/ui/tui/services/mcp-installer.js.map +0 -1
  651. package/dist/src/ui/tui/start-tui.d.ts +0 -9
  652. package/dist/src/ui/tui/start-tui.js +0 -41
  653. package/dist/src/ui/tui/start-tui.js.map +0 -1
  654. package/dist/src/ui/tui/store.d.ts +0 -190
  655. package/dist/src/ui/tui/store.js +0 -474
  656. package/dist/src/ui/tui/store.js.map +0 -1
  657. package/dist/src/ui/tui/styles.d.ts +0 -32
  658. package/dist/src/ui/tui/styles.js +0 -35
  659. package/dist/src/ui/tui/styles.js.map +0 -1
  660. package/dist/src/ui/wizard-ui.d.ts +0 -81
  661. package/dist/src/ui/wizard-ui.js +0 -19
  662. package/dist/src/ui/wizard-ui.js.map +0 -1
  663. package/dist/src/utils/__tests__/analytics.test.d.ts +0 -1
  664. package/dist/src/utils/__tests__/analytics.test.js +0 -136
  665. package/dist/src/utils/__tests__/analytics.test.js.map +0 -1
  666. package/dist/src/utils/__tests__/provisioning.test.d.ts +0 -1
  667. package/dist/src/utils/__tests__/provisioning.test.js +0 -192
  668. package/dist/src/utils/__tests__/provisioning.test.js.map +0 -1
  669. package/dist/src/utils/__tests__/semver.test.d.ts +0 -1
  670. package/dist/src/utils/__tests__/semver.test.js +0 -159
  671. package/dist/src/utils/__tests__/semver.test.js.map +0 -1
  672. package/dist/src/utils/__tests__/setup-utils.test.d.ts +0 -1
  673. package/dist/src/utils/__tests__/setup-utils.test.js +0 -138
  674. package/dist/src/utils/__tests__/setup-utils.test.js.map +0 -1
  675. package/dist/src/utils/analytics.d.ts +0 -33
  676. package/dist/src/utils/analytics.js +0 -137
  677. package/dist/src/utils/analytics.js.map +0 -1
  678. package/dist/src/utils/anthropic-status.d.ts +0 -17
  679. package/dist/src/utils/anthropic-status.js +0 -49
  680. package/dist/src/utils/anthropic-status.js.map +0 -1
  681. package/dist/src/utils/bash.d.ts +0 -2
  682. package/dist/src/utils/bash.js +0 -54
  683. package/dist/src/utils/bash.js.map +0 -1
  684. package/dist/src/utils/custom-headers.d.ts +0 -9
  685. package/dist/src/utils/custom-headers.js +0 -24
  686. package/dist/src/utils/custom-headers.js.map +0 -1
  687. package/dist/src/utils/debug.d.ts +0 -29
  688. package/dist/src/utils/debug.js +0 -87
  689. package/dist/src/utils/debug.js.map +0 -1
  690. package/dist/src/utils/env-api-key.d.ts +0 -5
  691. package/dist/src/utils/env-api-key.js +0 -57
  692. package/dist/src/utils/env-api-key.js.map +0 -1
  693. package/dist/src/utils/environment.d.ts +0 -4
  694. package/dist/src/utils/environment.js +0 -77
  695. package/dist/src/utils/environment.js.map +0 -1
  696. package/dist/src/utils/file-utils.d.ts +0 -10
  697. package/dist/src/utils/file-utils.js +0 -49
  698. package/dist/src/utils/file-utils.js.map +0 -1
  699. package/dist/src/utils/logging.d.ts +0 -9
  700. package/dist/src/utils/logging.js +0 -47
  701. package/dist/src/utils/logging.js.map +0 -1
  702. package/dist/src/utils/oauth.d.ts +0 -33
  703. package/dist/src/utils/oauth.js +0 -288
  704. package/dist/src/utils/oauth.js.map +0 -1
  705. package/dist/src/utils/package-json.d.ts +0 -30
  706. package/dist/src/utils/package-json.js +0 -47
  707. package/dist/src/utils/package-json.js.map +0 -1
  708. package/dist/src/utils/package-manager.d.ts +0 -21
  709. package/dist/src/utils/package-manager.js +0 -210
  710. package/dist/src/utils/package-manager.js.map +0 -1
  711. package/dist/src/utils/provisioning.d.ts +0 -25
  712. package/dist/src/utils/provisioning.js +0 -191
  713. package/dist/src/utils/provisioning.js.map +0 -1
  714. package/dist/src/utils/rules/astro-rules.md +0 -44
  715. package/dist/src/utils/rules/next-rules.md +0 -9
  716. package/dist/src/utils/rules/react-native-rules.md +0 -7
  717. package/dist/src/utils/rules/react-rules.md +0 -7
  718. package/dist/src/utils/rules/svelte-rules.md +0 -7
  719. package/dist/src/utils/rules/universal.md +0 -32
  720. package/dist/src/utils/semver.d.ts +0 -21
  721. package/dist/src/utils/semver.js +0 -87
  722. package/dist/src/utils/semver.js.map +0 -1
  723. package/dist/src/utils/setup-utils.d.ts +0 -79
  724. package/dist/src/utils/setup-utils.js +0 -406
  725. package/dist/src/utils/setup-utils.js.map +0 -1
  726. package/dist/src/utils/string.d.ts +0 -1
  727. package/dist/src/utils/string.js +0 -9
  728. package/dist/src/utils/string.js.map +0 -1
  729. package/dist/src/utils/types.d.ts +0 -85
  730. package/dist/src/utils/types.js +0 -3
  731. package/dist/src/utils/types.js.map +0 -1
  732. package/dist/src/utils/urls.d.ts +0 -7
  733. package/dist/src/utils/urls.js +0 -78
  734. package/dist/src/utils/urls.js.map +0 -1
  735. package/dist/src/utils/vendor/is-unicorn-supported.d.ts +0 -1
  736. package/dist/src/utils/vendor/is-unicorn-supported.js +0 -24
  737. package/dist/src/utils/vendor/is-unicorn-supported.js.map +0 -1
  738. package/dist/src/utils/wizard-abort.d.ts +0 -16
  739. package/dist/src/utils/wizard-abort.js +0 -59
  740. package/dist/src/utils/wizard-abort.js.map +0 -1
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * ManagedSettingsScreen — Modal when IT/org-managed settings contain overrides
4
- * that block the Wizard from reaching the PostHog LLM Gateway.
5
- *
6
- * Unlike SettingsOverrideScreen, the wizard cannot back up or modify these files.
7
- * The user must contact their IT administrator to resolve the conflict.
8
- */
9
- import { Box, Text } from 'ink';
10
- import { useSyncExternalStore } from 'react';
11
- import { ConfirmationInput, ModalOverlay } from '../primitives/index.js';
12
- import { Icons } from '../styles.js';
13
- function sourceLabel(source) {
14
- switch (source) {
15
- case 'managed':
16
- return 'Managed settings (IT/org-managed)';
17
- case 'project':
18
- return '.claude/settings.json';
19
- default:
20
- return source;
21
- }
22
- }
23
- export const ManagedSettingsScreen = ({ store, }) => {
24
- useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
25
- const conflicts = store.session.settingsConflicts;
26
- const readOnlyConflicts = conflicts?.filter((c) => !c.writable);
27
- if (!readOnlyConflicts || readOnlyConflicts.length === 0) {
28
- return null;
29
- }
30
- return (_jsxs(ModalOverlay, { borderColor: "red", title: `${Icons.warning} Organization settings conflict`, width: 68, footer: _jsx(ConfirmationInput, { message: "Contact your IT administrator to resolve this.", confirmLabel: "", cancelLabel: "Exit [Esc]", onConfirm: () => process.exit(1), onCancel: () => process.exit(1) }), children: [_jsx(Text, { dimColor: true, children: "Your organization's managed settings contain overrides that prevent the Wizard from reaching the PostHog LLM Gateway." }), readOnlyConflicts.map((conflict) => (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, children: sourceLabel(conflict.source) }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, children: conflict.keys.map((key) => (_jsxs(Text, { children: [Icons.bullet, ' ', _jsx(Text, { color: "yellow", bold: true, children: key })] }, key))) })] }, conflict.source))), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Try running \"claude auth logout\" or contact your IT administrator to resolve this." }) })] }));
31
- };
32
- //# sourceMappingURL=ManagedSettingsScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManagedSettingsScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/ManagedSettingsScreen.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,SAAS,WAAW,CAAC,MAAkC;IACrD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,mCAAmC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,uBAAuB,CAAC;QACjC;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,KAAK,GACsB,EAAE,EAAE;IAC/B,oBAAoB,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAClD,MAAM,iBAAiB,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEhE,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAAC,YAAY,IACX,WAAW,EAAC,KAAK,EACjB,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,iCAAiC,EACxD,KAAK,EAAE,EAAE,EACT,MAAM,EACJ,KAAC,iBAAiB,IAChB,OAAO,EAAC,gDAAgD,EACxD,YAAY,EAAC,EAAE,EACf,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAC/B,aAGJ,KAAC,IAAI,IAAC,QAAQ,4IAGP,EACN,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACnC,MAAC,GAAG,IAAuB,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aAC5D,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAQ,EAChD,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1B,MAAC,IAAI,eACF,KAAK,CAAC,MAAM,EAAE,GAAG,EAClB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,kBACtB,GAAG,GACC,KAJE,GAAG,CAKP,CACR,CAAC,GACE,KAXE,QAAQ,CAAC,MAAM,CAYnB,CACP,CAAC,EACF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,2GAGP,GACH,IACO,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * ManagedSettingsScreen — Modal when IT/org-managed settings contain overrides\n * that block the Wizard from reaching the PostHog LLM Gateway.\n *\n * Unlike SettingsOverrideScreen, the wizard cannot back up or modify these files.\n * The user must contact their IT administrator to resolve the conflict.\n */\n\nimport { Box, Text } from 'ink';\nimport { useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { ConfirmationInput, ModalOverlay } from '../primitives/index.js';\nimport { Icons } from '../styles.js';\nimport type { SettingsConflict } from '../../../lib/agent/agent-interface.js';\n\nfunction sourceLabel(source: SettingsConflict['source']): string {\n switch (source) {\n case 'managed':\n return 'Managed settings (IT/org-managed)';\n case 'project':\n return '.claude/settings.json';\n default:\n return source;\n }\n}\n\ninterface ManagedSettingsScreenProps {\n store: WizardStore;\n}\n\nexport const ManagedSettingsScreen = ({\n store,\n}: ManagedSettingsScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const conflicts = store.session.settingsConflicts;\n const readOnlyConflicts = conflicts?.filter((c) => !c.writable);\n\n if (!readOnlyConflicts || readOnlyConflicts.length === 0) {\n return null;\n }\n\n return (\n <ModalOverlay\n borderColor=\"red\"\n title={`${Icons.warning} Organization settings conflict`}\n width={68}\n footer={\n <ConfirmationInput\n message=\"Contact your IT administrator to resolve this.\"\n confirmLabel=\"\"\n cancelLabel=\"Exit [Esc]\"\n onConfirm={() => process.exit(1)}\n onCancel={() => process.exit(1)}\n />\n }\n >\n <Text dimColor>\n Your organization&apos;s managed settings contain overrides that prevent\n the Wizard from reaching the PostHog LLM Gateway.\n </Text>\n {readOnlyConflicts.map((conflict) => (\n <Box key={conflict.source} flexDirection=\"column\" marginTop={1}>\n <Text bold>{sourceLabel(conflict.source)}</Text>\n <Box flexDirection=\"column\" paddingLeft={2}>\n {conflict.keys.map((key) => (\n <Text key={key}>\n {Icons.bullet}{' '}\n <Text color=\"yellow\" bold>\n {key}\n </Text>\n </Text>\n ))}\n </Box>\n </Box>\n ))}\n <Box marginTop={1}>\n <Text dimColor>\n Try running \"claude auth logout\" or contact your IT administrator to\n resolve this.\n </Text>\n </Box>\n </ModalOverlay>\n );\n};\n"]}
@@ -1,24 +0,0 @@
1
- /**
2
- * McpScreen — MCP server install/remove flow.
3
- *
4
- * Uses an McpInstaller service (passed via props) instead of
5
- * importing business logic directly. Testable, no dynamic imports.
6
- *
7
- * Supports two modes via the `mode` prop:
8
- * - 'install': detect clients → confirm → [pick clients] → pick features → install
9
- * - 'remove': detect installed clients → confirm → remove
10
- *
11
- * When done, calls store.setMcpComplete(). The router resolves to outro.
12
- */
13
- import { type WizardStore } from '../store.js';
14
- import type { McpInstaller } from '../services/mcp-installer.js';
15
- export type McpMode = 'install' | 'remove';
16
- interface McpScreenProps {
17
- store: WizardStore;
18
- installer: McpInstaller;
19
- mode?: McpMode;
20
- /** When true, exit the process after completion instead of routing to outro. */
21
- standalone?: boolean;
22
- }
23
- export declare const McpScreen: ({ store, installer, mode, standalone, }: McpScreenProps) => import("react/jsx-runtime").JSX.Element;
24
- export {};
@@ -1,130 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * McpScreen — MCP server install/remove flow.
4
- *
5
- * Uses an McpInstaller service (passed via props) instead of
6
- * importing business logic directly. Testable, no dynamic imports.
7
- *
8
- * Supports two modes via the `mode` prop:
9
- * - 'install': detect clients → confirm → [pick clients] → pick features → install
10
- * - 'remove': detect installed clients → confirm → remove
11
- *
12
- * When done, calls store.setMcpComplete(). The router resolves to outro.
13
- */
14
- import { Box, Text, useInput } from 'ink';
15
- import { useState, useEffect } from 'react';
16
- import { useSyncExternalStore } from 'react';
17
- import { McpOutcome } from '../store.js';
18
- import { ConfirmationInput, PickerMenu, GroupedPickerMenu, } from '../primitives/index.js';
19
- import { Colors } from '../styles.js';
20
- import { AVAILABLE_FEATURES, ALL_FEATURE_VALUES, } from '../../../steps/add-mcp-server-to-clients/defaults.js';
21
- var Phase;
22
- (function (Phase) {
23
- Phase["Detecting"] = "detecting";
24
- Phase["Ask"] = "ask";
25
- Phase["Pick"] = "pick";
26
- Phase["FeatureSelect"] = "feature-select";
27
- Phase["Working"] = "working";
28
- Phase["Done"] = "done";
29
- Phase["None"] = "none";
30
- })(Phase || (Phase = {}));
31
- const markDone = (store, outcome, clients = [], standalone = false) => {
32
- store.setMcpComplete(outcome, clients);
33
- if (standalone) {
34
- process.exit(0);
35
- }
36
- };
37
- export const McpScreen = ({ store, installer, mode = 'install', standalone = false, }) => {
38
- useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
39
- // Keep stdin active from mount so Windows cmd.exe doesn't drop
40
- // the first keypress when ConfirmationInput appears after detection.
41
- useInput(() => undefined);
42
- const isRemove = mode === 'remove';
43
- const [phase, setPhase] = useState(Phase.Detecting);
44
- const [clients, setClients] = useState([]);
45
- const [selectedClientNames, setSelectedClientNames] = useState([]);
46
- const [resultClients, setResultClients] = useState([]);
47
- useEffect(() => {
48
- void (async () => {
49
- try {
50
- const detected = await installer.detectClients();
51
- if (detected.length === 0) {
52
- setPhase(Phase.None);
53
- setTimeout(() => markDone(store, McpOutcome.NoClients, [], standalone), 1500);
54
- }
55
- else {
56
- setClients(detected);
57
- setPhase(Phase.Ask);
58
- }
59
- }
60
- catch {
61
- setPhase(Phase.None);
62
- setTimeout(() => markDone(store, McpOutcome.Failed, [], standalone), 1500);
63
- }
64
- })();
65
- }, [installer]); // eslint-disable-line
66
- const proceedToFeatureSelectOrInstall = (clientNames) => {
67
- setSelectedClientNames(clientNames);
68
- // Skip feature picker if CLI already specified features
69
- if (store.session.mcpFeatures) {
70
- void doInstall(clientNames, store.session.mcpFeatures);
71
- }
72
- else {
73
- setPhase(Phase.FeatureSelect);
74
- }
75
- };
76
- const handleConfirm = () => {
77
- if (isRemove) {
78
- void doRemove();
79
- }
80
- else if (clients.length === 1) {
81
- proceedToFeatureSelectOrInstall(clients.map((c) => c.name));
82
- }
83
- else {
84
- setPhase(Phase.Pick);
85
- }
86
- };
87
- const handleSkip = () => {
88
- markDone(store, McpOutcome.Skipped, [], standalone);
89
- };
90
- const doInstall = async (names, features) => {
91
- setPhase(Phase.Working);
92
- let result = [];
93
- try {
94
- result = await installer.install(names, features, store.session.apiKey);
95
- setResultClients(result);
96
- }
97
- catch {
98
- setResultClients([]);
99
- }
100
- setPhase(Phase.Done);
101
- const outcome = result.length > 0 ? McpOutcome.Installed : McpOutcome.Failed;
102
- setTimeout(() => markDone(store, outcome, result, standalone), 2000);
103
- };
104
- const doRemove = async () => {
105
- setPhase(Phase.Working);
106
- let result = [];
107
- try {
108
- result = await installer.remove();
109
- setResultClients(result);
110
- }
111
- catch {
112
- setResultClients([]);
113
- }
114
- setPhase(Phase.Done);
115
- const outcome = result.length > 0 ? McpOutcome.Installed : McpOutcome.Failed;
116
- setTimeout(() => markDone(store, outcome, result, standalone), 2000);
117
- };
118
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Text, { bold: true, color: Colors.accent, children: ["MCP Server ", isRemove ? 'Removal' : 'Setup'] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [phase === Phase.Detecting && (_jsx(Text, { dimColor: true, children: "Detecting supported editors..." })), phase === Phase.None && (_jsxs(Text, { dimColor: true, children: ["No ", isRemove ? 'installed' : 'supported', " MCP clients detected. Skipping..."] })), phase === Phase.Ask && (_jsxs(_Fragment, { children: [_jsxs(Text, { dimColor: true, children: ["Detected: ", clients.map((c) => c.name).join(', ')] }), _jsx(Box, { marginTop: 1, children: _jsx(ConfirmationInput, { message: isRemove
119
- ? 'Remove the PostHog MCP server from your editor?'
120
- : 'Install the PostHog MCP server to your editor?', confirmLabel: isRemove ? 'Remove MCP' : 'Install MCP', cancelLabel: "No thanks", onConfirm: handleConfirm, onCancel: handleSkip }) })] })), phase === Phase.Pick && (_jsx(PickerMenu, { message: "Select editor to install MCP server", options: clients.map((c) => ({
121
- label: c.name,
122
- value: c.name,
123
- })), mode: "multi", onSelect: (selected) => {
124
- const names = Array.isArray(selected) ? selected : [selected];
125
- proceedToFeatureSelectOrInstall(names);
126
- } })), phase === Phase.FeatureSelect && (_jsx(GroupedPickerMenu, { message: "Select features to enable", groups: AVAILABLE_FEATURES, initialSelected: [...ALL_FEATURE_VALUES], onSelect: (features) => {
127
- void doInstall(selectedClientNames, features);
128
- } })), phase === Phase.Working && (_jsxs(Text, { dimColor: true, children: [isRemove ? 'Removing' : 'Installing', " MCP server..."] })), phase === Phase.Done && (_jsx(Box, { flexDirection: "column", children: resultClients.length > 0 ? (_jsxs(_Fragment, { children: [_jsxs(Text, { color: "green", bold: true, children: ['\u2714', " MCP server", ' ', isRemove ? 'removed from' : 'installed for', ":"] }), resultClients.map((name, i) => (_jsxs(Text, { children: [' ', '\u2022', " ", name] }, i)))] })) : (_jsxs(Text, { dimColor: true, children: [isRemove ? 'Removal' : 'Installation', " skipped."] })) }))] })] }));
129
- };
130
- //# sourceMappingURL=McpScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"McpScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/McpScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * McpScreen — MCP server install/remove flow.\n *\n * Uses an McpInstaller service (passed via props) instead of\n * importing business logic directly. Testable, no dynamic imports.\n *\n * Supports two modes via the `mode` prop:\n * - 'install': detect clients → confirm → [pick clients] → pick features → install\n * - 'remove': detect installed clients → confirm → remove\n *\n * When done, calls store.setMcpComplete(). The router resolves to outro.\n */\n\nimport { Box, Text, useInput } from 'ink';\nimport { useState, useEffect } from 'react';\nimport { useSyncExternalStore } from 'react';\nimport { type WizardStore, McpOutcome } from '../store.js';\nimport {\n ConfirmationInput,\n PickerMenu,\n GroupedPickerMenu,\n} from '../primitives/index.js';\nimport { Colors } from '../styles.js';\nimport type { McpInstaller, McpClientInfo } from '../services/mcp-installer.js';\nimport {\n AVAILABLE_FEATURES,\n ALL_FEATURE_VALUES,\n} from '../../../steps/add-mcp-server-to-clients/defaults.js';\n\nexport type McpMode = 'install' | 'remove';\n\ninterface McpScreenProps {\n store: WizardStore;\n installer: McpInstaller;\n mode?: McpMode;\n /** When true, exit the process after completion instead of routing to outro. */\n standalone?: boolean;\n}\n\nenum Phase {\n Detecting = 'detecting',\n Ask = 'ask',\n Pick = 'pick',\n FeatureSelect = 'feature-select',\n Working = 'working',\n Done = 'done',\n None = 'none',\n}\n\nconst markDone = (\n store: WizardStore,\n outcome: McpOutcome,\n clients: string[] = [],\n standalone = false,\n) => {\n store.setMcpComplete(outcome, clients);\n if (standalone) {\n process.exit(0);\n }\n};\n\nexport const McpScreen = ({\n store,\n installer,\n mode = 'install',\n standalone = false,\n}: McpScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n // Keep stdin active from mount so Windows cmd.exe doesn't drop\n // the first keypress when ConfirmationInput appears after detection.\n useInput(() => undefined);\n\n const isRemove = mode === 'remove';\n\n const [phase, setPhase] = useState<Phase>(Phase.Detecting);\n const [clients, setClients] = useState<McpClientInfo[]>([]);\n const [selectedClientNames, setSelectedClientNames] = useState<string[]>([]);\n const [resultClients, setResultClients] = useState<string[]>([]);\n\n useEffect(() => {\n void (async () => {\n try {\n const detected = await installer.detectClients();\n if (detected.length === 0) {\n setPhase(Phase.None);\n setTimeout(\n () => markDone(store, McpOutcome.NoClients, [], standalone),\n 1500,\n );\n } else {\n setClients(detected);\n setPhase(Phase.Ask);\n }\n } catch {\n setPhase(Phase.None);\n setTimeout(\n () => markDone(store, McpOutcome.Failed, [], standalone),\n 1500,\n );\n }\n })();\n }, [installer]); // eslint-disable-line\n\n const proceedToFeatureSelectOrInstall = (clientNames: string[]) => {\n setSelectedClientNames(clientNames);\n // Skip feature picker if CLI already specified features\n if (store.session.mcpFeatures) {\n void doInstall(clientNames, store.session.mcpFeatures);\n } else {\n setPhase(Phase.FeatureSelect);\n }\n };\n\n const handleConfirm = () => {\n if (isRemove) {\n void doRemove();\n } else if (clients.length === 1) {\n proceedToFeatureSelectOrInstall(clients.map((c) => c.name));\n } else {\n setPhase(Phase.Pick);\n }\n };\n\n const handleSkip = () => {\n markDone(store, McpOutcome.Skipped, [], standalone);\n };\n\n const doInstall = async (names: string[], features?: string[]) => {\n setPhase(Phase.Working);\n let result: string[] = [];\n try {\n result = await installer.install(names, features, store.session.apiKey);\n setResultClients(result);\n } catch {\n setResultClients([]);\n }\n setPhase(Phase.Done);\n const outcome =\n result.length > 0 ? McpOutcome.Installed : McpOutcome.Failed;\n setTimeout(() => markDone(store, outcome, result, standalone), 2000);\n };\n\n const doRemove = async () => {\n setPhase(Phase.Working);\n let result: string[] = [];\n try {\n result = await installer.remove();\n setResultClients(result);\n } catch {\n setResultClients([]);\n }\n setPhase(Phase.Done);\n const outcome =\n result.length > 0 ? McpOutcome.Installed : McpOutcome.Failed;\n setTimeout(() => markDone(store, outcome, result, standalone), 2000);\n };\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <Text bold color={Colors.accent}>\n MCP Server {isRemove ? 'Removal' : 'Setup'}\n </Text>\n\n <Box marginTop={1} flexDirection=\"column\">\n {phase === Phase.Detecting && (\n <Text dimColor>Detecting supported editors...</Text>\n )}\n\n {phase === Phase.None && (\n <Text dimColor>\n No {isRemove ? 'installed' : 'supported'} MCP clients detected.\n Skipping...\n </Text>\n )}\n\n {phase === Phase.Ask && (\n <>\n <Text dimColor>\n Detected: {clients.map((c) => c.name).join(', ')}\n </Text>\n <Box marginTop={1}>\n <ConfirmationInput\n message={\n isRemove\n ? 'Remove the PostHog MCP server from your editor?'\n : 'Install the PostHog MCP server to your editor?'\n }\n confirmLabel={isRemove ? 'Remove MCP' : 'Install MCP'}\n cancelLabel=\"No thanks\"\n onConfirm={handleConfirm}\n onCancel={handleSkip}\n />\n </Box>\n </>\n )}\n\n {phase === Phase.Pick && (\n <PickerMenu\n message=\"Select editor to install MCP server\"\n options={clients.map((c) => ({\n label: c.name,\n value: c.name,\n }))}\n mode=\"multi\"\n onSelect={(selected) => {\n const names = Array.isArray(selected) ? selected : [selected];\n proceedToFeatureSelectOrInstall(names);\n }}\n />\n )}\n\n {phase === Phase.FeatureSelect && (\n <GroupedPickerMenu\n message=\"Select features to enable\"\n groups={AVAILABLE_FEATURES}\n initialSelected={[...ALL_FEATURE_VALUES]}\n onSelect={(features) => {\n void doInstall(selectedClientNames, features);\n }}\n />\n )}\n\n {phase === Phase.Working && (\n <Text dimColor>\n {isRemove ? 'Removing' : 'Installing'} MCP server...\n </Text>\n )}\n\n {phase === Phase.Done && (\n <Box flexDirection=\"column\">\n {resultClients.length > 0 ? (\n <>\n <Text color=\"green\" bold>\n {'\\u2714'} MCP server{' '}\n {isRemove ? 'removed from' : 'installed for'}:\n </Text>\n {resultClients.map((name, i) => (\n <Text key={i}>\n {' '}\n {'\\u2022'} {name}\n </Text>\n ))}\n </>\n ) : (\n <Text dimColor>\n {isRemove ? 'Removal' : 'Installation'} skipped.\n </Text>\n )}\n </Box>\n )}\n </Box>\n </Box>\n );\n};\n"]}
@@ -1,11 +0,0 @@
1
- /**
2
- * OutroScreen — Summary after the agent run.
3
- * Reads store.session.outroData to render success, error, or cancel view.
4
- * Keeps the process alive until the user presses a key to exit.
5
- */
6
- import type { WizardStore } from '../store.js';
7
- interface OutroScreenProps {
8
- store: WizardStore;
9
- }
10
- export declare const OutroScreen: ({ store }: OutroScreenProps) => import("react/jsx-runtime").JSX.Element;
11
- export {};
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * OutroScreen — Summary after the agent run.
4
- * Reads store.session.outroData to render success, error, or cancel view.
5
- * Keeps the process alive until the user presses a key to exit.
6
- */
7
- import { Box, Text, useInput } from 'ink';
8
- import { useSyncExternalStore } from 'react';
9
- import { OutroKind } from '../../../lib/wizard-session.js';
10
- import { Colors } from '../styles.js';
11
- export const OutroScreen = ({ store }) => {
12
- useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
13
- useInput(() => {
14
- store.setOutroDismissed();
15
- });
16
- const outroData = store.session.outroData;
17
- if (!outroData) {
18
- return (_jsx(Box, { flexDirection: "column", flexGrow: 1, children: _jsx(Text, { dimColor: true, children: "Finishing up..." }) }));
19
- }
20
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [outroData.kind === OutroKind.Success && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "green", bold: true, children: ['\u2714', " ", outroData.message || 'Done!'] }), outroData.reportFile && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Check ", _jsxs(Text, { bold: true, children: ["./", outroData.reportFile] }), " for details"] }) })), outroData.changes && outroData.changes.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "What the agent did:" }), outroData.changes.map((change, i) => (_jsxs(Text, { children: ['\u2022', " ", change] }, i)))] })), store.eventPlan.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "Events added:" }), store.eventPlan.map((event) => (_jsxs(Text, { children: ['\u2022', " ", _jsx(Text, { bold: true, children: event.name }), _jsxs(Text, { dimColor: true, children: [" ", event.description] })] }, event.name)))] })), outroData.docsUrl && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Learn more: ", _jsx(Text, { color: "cyan", children: outroData.docsUrl })] }) })), outroData.continueUrl && (_jsx(Box, { children: _jsxs(Text, { children: ["Continue onboarding:", ' ', _jsx(Text, { color: "cyan", children: outroData.continueUrl })] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Note: This wizard uses an LLM agent to analyze and modify your project. Please review the changes made." }) }), _jsx(Box, { children: _jsx(Text, { dimColor: true, children: "How did this work for you? Drop us a line: wizard@posthog.com" }) })] })), outroData.kind === OutroKind.Error && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "red", bold: true, children: ['\u2718', " ", outroData.message || 'An error occurred'] }), outroData.body && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: outroData.body }) })), outroData.docsUrl && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Docs: ", _jsx(Text, { color: "cyan", children: outroData.docsUrl })] }) }))] })), outroData.kind === OutroKind.Cancel && (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { color: "yellow", children: ['\u25A0', " ", outroData.message || 'Cancelled'] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.muted, children: "Press any key to continue" }) })] }));
21
- };
22
- //# sourceMappingURL=OutroScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OutroScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/OutroScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * OutroScreen — Summary after the agent run.\n * Reads store.session.outroData to render success, error, or cancel view.\n * Keeps the process alive until the user presses a key to exit.\n */\n\nimport { Box, Text, useInput } from 'ink';\nimport { useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { OutroKind } from '../../../lib/wizard-session.js';\nimport { Colors } from '../styles.js';\n\ninterface OutroScreenProps {\n store: WizardStore;\n}\n\nexport const OutroScreen = ({ store }: OutroScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n useInput(() => {\n store.setOutroDismissed();\n });\n\n const outroData = store.session.outroData;\n\n if (!outroData) {\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <Text dimColor>Finishing up...</Text>\n </Box>\n );\n }\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n {outroData.kind === OutroKind.Success && (\n <Box flexDirection=\"column\">\n <Text color=\"green\" bold>\n {'\\u2714'} {outroData.message || 'Done!'}\n </Text>\n\n {outroData.reportFile && (\n <Box marginTop={1}>\n <Text>\n Check <Text bold>./{outroData.reportFile}</Text> for details\n </Text>\n </Box>\n )}\n\n {outroData.changes && outroData.changes.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color=\"cyan\" bold>\n What the agent did:\n </Text>\n {outroData.changes.map((change, i) => (\n <Text key={i}>\n {'\\u2022'} {change}\n </Text>\n ))}\n </Box>\n )}\n\n {store.eventPlan.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color=\"cyan\" bold>\n Events added:\n </Text>\n {store.eventPlan.map((event) => (\n <Text key={event.name}>\n {'\\u2022'} <Text bold>{event.name}</Text>\n <Text dimColor> {event.description}</Text>\n </Text>\n ))}\n </Box>\n )}\n\n {outroData.docsUrl && (\n <Box marginTop={1}>\n <Text>\n Learn more: <Text color=\"cyan\">{outroData.docsUrl}</Text>\n </Text>\n </Box>\n )}\n\n {outroData.continueUrl && (\n <Box>\n <Text>\n Continue onboarding:{' '}\n <Text color=\"cyan\">{outroData.continueUrl}</Text>\n </Text>\n </Box>\n )}\n\n <Box marginTop={1}>\n <Text dimColor>\n Note: This wizard uses an LLM agent to analyze and modify your\n project. Please review the changes made.\n </Text>\n </Box>\n <Box>\n <Text dimColor>\n How did this work for you? Drop us a line: wizard@posthog.com\n </Text>\n </Box>\n </Box>\n )}\n\n {outroData.kind === OutroKind.Error && (\n <Box flexDirection=\"column\">\n <Text color=\"red\" bold>\n {'\\u2718'} {outroData.message || 'An error occurred'}\n </Text>\n\n {outroData.body && (\n <Box marginTop={1}>\n <Text dimColor>{outroData.body}</Text>\n </Box>\n )}\n\n {outroData.docsUrl && (\n <Box marginTop={1}>\n <Text>\n Docs: <Text color=\"cyan\">{outroData.docsUrl}</Text>\n </Text>\n </Box>\n )}\n </Box>\n )}\n\n {outroData.kind === OutroKind.Cancel && (\n <Box flexDirection=\"column\">\n <Text color=\"yellow\">\n {'\\u25A0'} {outroData.message || 'Cancelled'}\n </Text>\n </Box>\n )}\n\n <Box marginTop={1}>\n <Text color={Colors.muted}>Press any key to continue</Text>\n </Box>\n </Box>\n );\n};\n"]}
@@ -1,11 +0,0 @@
1
- /**
2
- * PortConflictScreen — Modal when another process is blocking the OAuth port.
3
- *
4
- * Offers to kill the blocking process and retry, or exit.
5
- */
6
- import type { WizardStore } from '../store.js';
7
- interface PortConflictScreenProps {
8
- store: WizardStore;
9
- }
10
- export declare const PortConflictScreen: ({ store }: PortConflictScreenProps) => import("react/jsx-runtime").JSX.Element | null;
11
- export {};
@@ -1,30 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * PortConflictScreen — Modal when another process is blocking the OAuth port.
4
- *
5
- * Offers to kill the blocking process and retry, or exit.
6
- */
7
- import { Box, Text } from 'ink';
8
- import { useState, useSyncExternalStore } from 'react';
9
- import { execSync } from 'node:child_process';
10
- import { ConfirmationInput, ModalOverlay } from '../primitives/index.js';
11
- import { OAUTH_PORT } from '../../../lib/constants.js';
12
- export const PortConflictScreen = ({ store }) => {
13
- useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
14
- const [feedback, setFeedback] = useState(null);
15
- const processInfo = store.session.portConflictProcess;
16
- if (!processInfo)
17
- return null;
18
- return (_jsxs(ModalOverlay, { borderColor: "#DC9300", title: `Port ${OAUTH_PORT} in use`, width: 72, feedback: feedback, footer: _jsx(ConfirmationInput, { message: "Kill process and continue?", confirmLabel: "Kill & continue [Enter]", cancelLabel: "Exit [Esc]", onConfirm: () => {
19
- try {
20
- execSync(`lsof -ti :${OAUTH_PORT} | xargs kill`, {
21
- stdio: 'ignore',
22
- });
23
- store.resolvePortConflict();
24
- }
25
- catch {
26
- setFeedback(`Could not kill the process. Try running: lsof -ti :${OAUTH_PORT} | xargs kill`);
27
- }
28
- }, onCancel: () => process.exit(1) }), children: [_jsx(Text, { children: "Another process is blocking the authentication server:" }), _jsxs(Box, { flexDirection: "column", marginY: 1, paddingLeft: 2, gap: 0, children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Command " }), _jsx(Text, { bold: true, children: processInfo.command })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "PID " }), _jsx(Text, { bold: true, children: processInfo.pid })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "User " }), _jsx(Text, { bold: true, children: processInfo.user })] })] }), _jsx(Text, { dimColor: true, children: "Kill this process to continue, or exit and free the port manually." })] }));
29
- };
30
- //# sourceMappingURL=PortConflictScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PortConflictScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/PortConflictScreen.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAA2B,EAAE,EAAE;IACvE,oBAAoB,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAC1B,CAAC;IAEF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAEtD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO,CACL,MAAC,YAAY,IACX,WAAW,EAAC,SAAS,EACrB,KAAK,EAAE,QAAQ,UAAU,SAAS,EAClC,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,QAAQ,EAClB,MAAM,EACJ,KAAC,iBAAiB,IAChB,OAAO,EAAC,4BAA4B,EACpC,YAAY,EAAC,yBAAyB,EACtC,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,GAAG,EAAE;gBACd,IAAI,CAAC;oBACH,QAAQ,CAAC,aAAa,UAAU,eAAe,EAAE;wBAC/C,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAC;oBACH,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW,CACT,sDAAsD,UAAU,eAAe,CAChF,CAAC;gBACJ,CAAC;YACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAC/B,aAGJ,KAAC,IAAI,yEAA8D,EACnE,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aAC5D,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAC9B,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,OAAO,GAAQ,IAClC,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,2BAAY,EAC1B,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,GAAG,GAAQ,IAC9B,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,4BAAa,EAC3B,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,IAAI,GAAQ,IAC/B,IACH,EACN,KAAC,IAAI,IAAC,QAAQ,yFAEP,IACM,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * PortConflictScreen — Modal when another process is blocking the OAuth port.\n *\n * Offers to kill the blocking process and retry, or exit.\n */\n\nimport { Box, Text } from 'ink';\nimport { useState, useSyncExternalStore } from 'react';\nimport { execSync } from 'node:child_process';\nimport type { WizardStore } from '../store.js';\nimport { ConfirmationInput, ModalOverlay } from '../primitives/index.js';\nimport { OAUTH_PORT } from '../../../lib/constants.js';\n\ninterface PortConflictScreenProps {\n store: WizardStore;\n}\n\nexport const PortConflictScreen = ({ store }: PortConflictScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const [feedback, setFeedback] = useState<string | null>(null);\n const processInfo = store.session.portConflictProcess;\n\n if (!processInfo) return null;\n\n return (\n <ModalOverlay\n borderColor=\"#DC9300\"\n title={`Port ${OAUTH_PORT} in use`}\n width={72}\n feedback={feedback}\n footer={\n <ConfirmationInput\n message=\"Kill process and continue?\"\n confirmLabel=\"Kill & continue [Enter]\"\n cancelLabel=\"Exit [Esc]\"\n onConfirm={() => {\n try {\n execSync(`lsof -ti :${OAUTH_PORT} | xargs kill`, {\n stdio: 'ignore',\n });\n store.resolvePortConflict();\n } catch {\n setFeedback(\n `Could not kill the process. Try running: lsof -ti :${OAUTH_PORT} | xargs kill`,\n );\n }\n }}\n onCancel={() => process.exit(1)}\n />\n }\n >\n <Text>Another process is blocking the authentication server:</Text>\n <Box flexDirection=\"column\" marginY={1} paddingLeft={2} gap={0}>\n <Text>\n <Text dimColor>Command </Text>\n <Text bold>{processInfo.command}</Text>\n </Text>\n <Text>\n <Text dimColor>PID </Text>\n <Text bold>{processInfo.pid}</Text>\n </Text>\n <Text>\n <Text dimColor>User </Text>\n <Text bold>{processInfo.user}</Text>\n </Text>\n </Box>\n <Text dimColor>\n Kill this process to continue, or exit and free the port manually.\n </Text>\n </ModalOverlay>\n );\n};\n"]}
@@ -1,15 +0,0 @@
1
- /**
2
- * PostHogIntegrationIntroScreen — Intro screen for the core PostHog integration.
3
- *
4
- * Composes IntroScreenLayout with framework-detection-specific state:
5
- * 1. Detecting: spinner while detection runs
6
- * 2. Detection failed: framework picker
7
- * 3. Unsupported version: upgrade prompt
8
- * 4. Detection succeeded: continue/change-framework/cancel
9
- */
10
- import type { WizardStore } from '../store.js';
11
- interface PostHogIntegrationIntroScreenProps {
12
- store: WizardStore;
13
- }
14
- export declare const PostHogIntegrationIntroScreen: ({ store, }: PostHogIntegrationIntroScreenProps) => import("react/jsx-runtime").JSX.Element;
15
- export {};
@@ -1,135 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * PostHogIntegrationIntroScreen — Intro screen for the core PostHog integration.
4
- *
5
- * Composes IntroScreenLayout with framework-detection-specific state:
6
- * 1. Detecting: spinner while detection runs
7
- * 2. Detection failed: framework picker
8
- * 3. Unsupported version: upgrade prompt
9
- * 4. Detection succeeded: continue/change-framework/cancel
10
- */
11
- import { Box, Text } from 'ink';
12
- import { useState, useSyncExternalStore } from 'react';
13
- import { Integration } from '../../../lib/constants.js';
14
- import { PickerMenu, LoadingBox } from '../primitives/index.js';
15
- import { IntroScreenLayout } from './IntroScreenLayout.js';
16
- /** Framework picker shown when auto-detection fails. */
17
- const FrameworkPicker = ({ store, onComplete, }) => {
18
- const options = Object.values(Integration).map((value) => ({
19
- label: value,
20
- value,
21
- }));
22
- return (_jsx(PickerMenu, { centered: true, columns: 2, message: "Select your framework", options: options, onSelect: (value) => {
23
- const integration = Array.isArray(value) ? value[0] : value;
24
- void import('../../../lib/registry.js').then(({ FRAMEWORK_REGISTRY }) => {
25
- const config = FRAMEWORK_REGISTRY[integration];
26
- store.setFrameworkConfig(integration, config);
27
- store.setDetectedFramework(config.metadata.name);
28
- onComplete?.();
29
- });
30
- } }));
31
- };
32
- export const PostHogIntegrationIntroScreen = ({ store, }) => {
33
- useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
34
- const [pickingFramework, setPickingFramework] = useState(false);
35
- const [manuallySelected, setManuallySelected] = useState(false);
36
- const [showingMoreInfo, setShowingMoreInfo] = useState(false);
37
- const { session } = store;
38
- const config = session.frameworkConfig;
39
- const frameworkLabel = session.detectedFrameworkLabel ?? config?.metadata.name;
40
- const detecting = !session.detectionComplete;
41
- const needsFrameworkPick = session.detectionComplete && !session.frameworkConfig;
42
- const unsupported = session.unsupportedVersion;
43
- const showContinue = session.frameworkConfig !== null &&
44
- !detecting &&
45
- !pickingFramework &&
46
- !showingMoreInfo &&
47
- !unsupported;
48
- // ── Title ──────────────────────────────────────────────────────────
49
- const title = detecting ? 'PostHog Wizard starting up' : 'PostHog Wizard 🦔';
50
- // ── Description ────────────────────────────────────────────────────
51
- let body = null;
52
- if (detecting) {
53
- body = (_jsx(Box, { marginY: 1, children: _jsx(LoadingBox, { message: "Detecting project framework..." }) }));
54
- }
55
- else if (needsFrameworkPick && !pickingFramework) {
56
- body = (_jsxs(_Fragment, { children: [_jsx(Box, { marginY: 1, children: _jsx(Text, { dimColor: true, children: "Could not auto-detect your framework." }) }), _jsx(FrameworkPicker, { store: store, onComplete: () => setPickingFramework(false) })] }));
57
- }
58
- else if (pickingFramework) {
59
- body = (_jsx(FrameworkPicker, { store: store, onComplete: () => setPickingFramework(false) }));
60
- }
61
- else if (showingMoreInfo) {
62
- body = (_jsxs(Box, { flexDirection: "column", width: 56, children: [_jsx(Text, { children: "The wizard is an agent that executes PostHog tasks." }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsxs(Text, { children: ["The", ' ', _jsx(Text, { italic: true, color: "cyan", children: session.workflowLabel }), ' ', "workflow installs the PostHog SDKs, instruments event tracking, and integrates the following dev tools for your application:"] }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, paddingLeft: 4, children: [_jsxs(Text, { children: [`\u2022`, " Product Analytics"] }), _jsxs(Text, { children: [`\u2022`, " Web Analytics"] }), _jsxs(Text, { children: [`\u2022`, " Session Replay"] }), _jsxs(Text, { children: [`\u2022`, " Error Tracking"] })] })] }));
63
- }
64
- else if (showContinue) {
65
- body = (_jsx(_Fragment, { children: _jsx(Box, { children: _jsx(Text, { children: "Let's do two hours of work in eight minutes." }) }) }));
66
- }
67
- // ── Detection rows ─────────────────────────────────────────────────
68
- const detectionRows = [];
69
- if (frameworkLabel) {
70
- const suffixParts = [];
71
- if (!manuallySelected)
72
- suffixParts.push('(detected)');
73
- if (config?.metadata.beta)
74
- suffixParts.push('[BETA]');
75
- detectionRows.push({
76
- label: 'Framework',
77
- value: frameworkLabel,
78
- suffix: suffixParts.join(' ') || undefined,
79
- });
80
- }
81
- // ── Children (between rows and menu) ───────────────────────────────
82
- let bodyChildren = null;
83
- if (config?.metadata.preRunNotice) {
84
- bodyChildren = _jsx(Text, { color: "yellow", children: config.metadata.preRunNotice });
85
- }
86
- if (unsupported) {
87
- bodyChildren = (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: "#DC9300", children: ["Version ", unsupported.current, " is not supported by the wizard. Please upgrade to ", unsupported.minimum, " or later."] }), _jsxs(Text, { dimColor: true, children: ["Manual setup guide: ", unsupported.docsUrl] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Did we get this wrong? You can also select another framework." }) }), _jsx(PickerMenu, { options: [
88
- { label: 'Select another framework', value: 'framework' },
89
- { label: 'Exit', value: 'exit' },
90
- ], onSelect: (value) => {
91
- const choice = Array.isArray(value) ? value[0] : value;
92
- if (choice === 'framework') {
93
- setPickingFramework(true);
94
- setManuallySelected(true);
95
- }
96
- else {
97
- process.exit(0);
98
- }
99
- } })] }));
100
- }
101
- // ── Menu ───────────────────────────────────────────────────────────
102
- let menuOptions = null;
103
- if (showingMoreInfo) {
104
- menuOptions = [{ label: 'Back', value: 'back' }];
105
- }
106
- else if (showContinue) {
107
- menuOptions = [
108
- { label: 'Continue', value: 'continue' },
109
- { label: 'Change framework', value: 'framework' },
110
- { label: 'More info', value: 'more-info' },
111
- { label: 'Cancel', value: 'cancel' },
112
- ];
113
- }
114
- const handleSelect = (value) => {
115
- if (value === 'cancel') {
116
- process.exit(0);
117
- }
118
- else if (value === 'framework') {
119
- setPickingFramework(true);
120
- setManuallySelected(true);
121
- }
122
- else if (value === 'more-info') {
123
- setShowingMoreInfo(true);
124
- }
125
- else if (value === 'back') {
126
- setShowingMoreInfo(false);
127
- }
128
- else {
129
- store.completeSetup();
130
- }
131
- };
132
- // ── Render ─────────────────────────────────────────────────────────
133
- return (_jsx(IntroScreenLayout, { installDir: session.installDir, title: title, body: body, showDetection: showContinue, detectionRows: detectionRows, menuOptions: unsupported ? null : menuOptions, onSelect: handleSelect, workflowLabel: session.workflowLabel, skillId: session.skillId, children: bodyChildren }));
134
- };
135
- //# sourceMappingURL=PostHogIntegrationIntroScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostHogIntegrationIntroScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/PostHogIntegrationIntroScreen.tsx"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAqB,MAAM,wBAAwB,CAAC;AAE9E,wDAAwD;AACxD,MAAM,eAAe,GAAG,CAAC,EACvB,KAAK,EACL,UAAU,GAIX,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,KAAK,EAAE,KAAK;QACZ,KAAK;KACN,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,KAAC,UAAU,IACT,QAAQ,QACR,OAAO,EAAE,CAAC,EACV,OAAO,EAAC,uBAAuB,EAC/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,KAAK,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAC1C,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;gBAC/C,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC9C,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,UAAU,EAAE,EAAE,CAAC;YACjB,CAAC,CACF,CAAC;QACJ,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,KAAK,GAC8B,EAAE,EAAE;IACvC,oBAAoB,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAC1B,CAAC;IAEF,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IACvC,MAAM,cAAc,GAClB,OAAO,CAAC,sBAAsB,IAAI,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAC7C,MAAM,kBAAkB,GACtB,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAC/C,MAAM,YAAY,GAChB,OAAO,CAAC,eAAe,KAAK,IAAI;QAChC,CAAC,SAAS;QACV,CAAC,gBAAgB;QACjB,CAAC,eAAe;QAChB,CAAC,WAAW,CAAC;IAEf,sEAAsE;IAEtE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE7E,sEAAsE;IAEtE,IAAI,IAAI,GAAc,IAAI,CAAC;IAE3B,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,GAAG,CACL,KAAC,GAAG,IAAC,OAAO,EAAE,CAAC,YACb,KAAC,UAAU,IAAC,OAAO,EAAC,gCAAgC,GAAG,GACnD,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,kBAAkB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnD,IAAI,GAAG,CACL,8BACE,KAAC,GAAG,IAAC,OAAO,EAAE,CAAC,YACb,KAAC,IAAI,IAAC,QAAQ,4DAA6C,GACvD,EACN,KAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAC5C,IACD,CACJ,CAAC;IACJ,CAAC;SAAM,IAAI,gBAAgB,EAAE,CAAC;QAC5B,IAAI,GAAG,CACL,KAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAC5C,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,IAAI,GAAG,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,aACnC,KAAC,IAAI,sEAA2D,EAChE,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACtC,MAAC,IAAI,sBACC,GAAG,EACP,KAAC,IAAI,IAAC,MAAM,QAAC,KAAK,EAAC,MAAM,YACtB,OAAO,CAAC,aAAa,GACjB,EAAC,GAAG,oIAGN,GACH,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,aACtD,MAAC,IAAI,eAAE,QAAQ,0BAA0B,EACzC,MAAC,IAAI,eAAE,QAAQ,sBAAsB,EACrC,MAAC,IAAI,eAAE,QAAQ,uBAAuB,EACtC,MAAC,IAAI,eAAE,QAAQ,uBAAuB,IAClC,IACF,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,IAAI,GAAG,CACL,4BACE,KAAC,GAAG,cACF,KAAC,IAAI,+DAAoD,GACrD,GACL,CACJ,CAAC;IACJ,CAAC;IAED,sEAAsE;IAEtE,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,CAAC,gBAAgB;YAAE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE,QAAQ,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,aAAa,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IAEtE,IAAI,YAAY,GAAc,IAAI,CAAC;IAEnC,IAAI,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;QAClC,YAAY,GAAG,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAQ,CAAC;IAC5E,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY,GAAG,CACb,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,yBACV,WAAW,CAAC,OAAO,yDAChB,WAAW,CAAC,OAAO,kBAC1B,EACP,MAAC,IAAI,IAAC,QAAQ,2CAAsB,WAAW,CAAC,OAAO,IAAQ,EAC/D,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,oFAEP,GACH,EACN,KAAC,UAAU,IACT,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,WAAW,EAAE;wBACzD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;qBACjC,EACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;wBACvD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC3B,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAC1B,mBAAmB,CAAC,IAAI,CAAC,CAAC;wBAC5B,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC;oBACH,CAAC,GACD,IACE,CACP,CAAC;IACJ,CAAC;IAED,sEAAsE;IAEtE,IAAI,WAAW,GAA8C,IAAI,CAAC;IAElE,IAAI,eAAe,EAAE,CAAC;QACpB,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,WAAW,GAAG;YACZ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;YACxC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE;YACjD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;YAC1C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACjC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACjC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,sEAAsE;IAEtE,OAAO,CACL,KAAC,iBAAiB,IAChB,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,YAAY,EAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAC7C,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,OAAO,CAAC,aAAa,EACpC,OAAO,EAAE,OAAO,CAAC,OAAO,YAEvB,YAAY,GACK,CACrB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * PostHogIntegrationIntroScreen — Intro screen for the core PostHog integration.\n *\n * Composes IntroScreenLayout with framework-detection-specific state:\n * 1. Detecting: spinner while detection runs\n * 2. Detection failed: framework picker\n * 3. Unsupported version: upgrade prompt\n * 4. Detection succeeded: continue/change-framework/cancel\n */\n\nimport { Box, Text } from 'ink';\nimport type { ReactNode } from 'react';\nimport { useState, useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { Integration } from '../../../lib/constants.js';\nimport { PickerMenu, LoadingBox } from '../primitives/index.js';\nimport { IntroScreenLayout, type DetectionRow } from './IntroScreenLayout.js';\n\n/** Framework picker shown when auto-detection fails. */\nconst FrameworkPicker = ({\n store,\n onComplete,\n}: {\n store: WizardStore;\n onComplete?: () => void;\n}) => {\n const options = Object.values(Integration).map((value) => ({\n label: value,\n value,\n }));\n\n return (\n <PickerMenu<Integration>\n centered\n columns={2}\n message=\"Select your framework\"\n options={options}\n onSelect={(value) => {\n const integration = Array.isArray(value) ? value[0] : value;\n void import('../../../lib/registry.js').then(\n ({ FRAMEWORK_REGISTRY }) => {\n const config = FRAMEWORK_REGISTRY[integration];\n store.setFrameworkConfig(integration, config);\n store.setDetectedFramework(config.metadata.name);\n onComplete?.();\n },\n );\n }}\n />\n );\n};\n\ninterface PostHogIntegrationIntroScreenProps {\n store: WizardStore;\n}\n\nexport const PostHogIntegrationIntroScreen = ({\n store,\n}: PostHogIntegrationIntroScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const [pickingFramework, setPickingFramework] = useState(false);\n const [manuallySelected, setManuallySelected] = useState(false);\n const [showingMoreInfo, setShowingMoreInfo] = useState(false);\n\n const { session } = store;\n const config = session.frameworkConfig;\n const frameworkLabel =\n session.detectedFrameworkLabel ?? config?.metadata.name;\n const detecting = !session.detectionComplete;\n const needsFrameworkPick =\n session.detectionComplete && !session.frameworkConfig;\n const unsupported = session.unsupportedVersion;\n const showContinue =\n session.frameworkConfig !== null &&\n !detecting &&\n !pickingFramework &&\n !showingMoreInfo &&\n !unsupported;\n\n // ── Title ──────────────────────────────────────────────────────────\n\n const title = detecting ? 'PostHog Wizard starting up' : 'PostHog Wizard 🦔';\n\n // ── Description ────────────────────────────────────────────────────\n\n let body: ReactNode = null;\n\n if (detecting) {\n body = (\n <Box marginY={1}>\n <LoadingBox message=\"Detecting project framework...\" />\n </Box>\n );\n } else if (needsFrameworkPick && !pickingFramework) {\n body = (\n <>\n <Box marginY={1}>\n <Text dimColor>Could not auto-detect your framework.</Text>\n </Box>\n <FrameworkPicker\n store={store}\n onComplete={() => setPickingFramework(false)}\n />\n </>\n );\n } else if (pickingFramework) {\n body = (\n <FrameworkPicker\n store={store}\n onComplete={() => setPickingFramework(false)}\n />\n );\n } else if (showingMoreInfo) {\n body = (\n <Box flexDirection=\"column\" width={56}>\n <Text>The wizard is an agent that executes PostHog tasks.</Text>\n <Box flexDirection=\"column\" marginTop={1}>\n <Text>\n The{' '}\n <Text italic color=\"cyan\">\n {session.workflowLabel}\n </Text>{' '}\n workflow installs the PostHog SDKs, instruments event tracking, and\n integrates the following dev tools for your application:\n </Text>\n </Box>\n <Box flexDirection=\"column\" marginTop={1} paddingLeft={4}>\n <Text>{`\\u2022`} Product Analytics</Text>\n <Text>{`\\u2022`} Web Analytics</Text>\n <Text>{`\\u2022`} Session Replay</Text>\n <Text>{`\\u2022`} Error Tracking</Text>\n </Box>\n </Box>\n );\n } else if (showContinue) {\n body = (\n <>\n <Box>\n <Text>Let's do two hours of work in eight minutes.</Text>\n </Box>\n </>\n );\n }\n\n // ── Detection rows ─────────────────────────────────────────────────\n\n const detectionRows: DetectionRow[] = [];\n if (frameworkLabel) {\n const suffixParts: string[] = [];\n if (!manuallySelected) suffixParts.push('(detected)');\n if (config?.metadata.beta) suffixParts.push('[BETA]');\n\n detectionRows.push({\n label: 'Framework',\n value: frameworkLabel,\n suffix: suffixParts.join(' ') || undefined,\n });\n }\n\n // ── Children (between rows and menu) ───────────────────────────────\n\n let bodyChildren: ReactNode = null;\n\n if (config?.metadata.preRunNotice) {\n bodyChildren = <Text color=\"yellow\">{config.metadata.preRunNotice}</Text>;\n }\n\n if (unsupported) {\n bodyChildren = (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color=\"#DC9300\">\n Version {unsupported.current} is not supported by the wizard. Please\n upgrade to {unsupported.minimum} or later.\n </Text>\n <Text dimColor>Manual setup guide: {unsupported.docsUrl}</Text>\n <Box marginTop={1}>\n <Text dimColor>\n Did we get this wrong? You can also select another framework.\n </Text>\n </Box>\n <PickerMenu\n options={[\n { label: 'Select another framework', value: 'framework' },\n { label: 'Exit', value: 'exit' },\n ]}\n onSelect={(value) => {\n const choice = Array.isArray(value) ? value[0] : value;\n if (choice === 'framework') {\n setPickingFramework(true);\n setManuallySelected(true);\n } else {\n process.exit(0);\n }\n }}\n />\n </Box>\n );\n }\n\n // ── Menu ───────────────────────────────────────────────────────────\n\n let menuOptions: { label: string; value: string }[] | null = null;\n\n if (showingMoreInfo) {\n menuOptions = [{ label: 'Back', value: 'back' }];\n } else if (showContinue) {\n menuOptions = [\n { label: 'Continue', value: 'continue' },\n { label: 'Change framework', value: 'framework' },\n { label: 'More info', value: 'more-info' },\n { label: 'Cancel', value: 'cancel' },\n ];\n }\n\n const handleSelect = (value: string) => {\n if (value === 'cancel') {\n process.exit(0);\n } else if (value === 'framework') {\n setPickingFramework(true);\n setManuallySelected(true);\n } else if (value === 'more-info') {\n setShowingMoreInfo(true);\n } else if (value === 'back') {\n setShowingMoreInfo(false);\n } else {\n store.completeSetup();\n }\n };\n\n // ── Render ─────────────────────────────────────────────────────────\n\n return (\n <IntroScreenLayout\n installDir={session.installDir}\n title={title}\n body={body}\n showDetection={showContinue}\n detectionRows={detectionRows}\n menuOptions={unsupported ? null : menuOptions}\n onSelect={handleSelect}\n workflowLabel={session.workflowLabel}\n skillId={session.skillId}\n >\n {bodyChildren}\n </IntroScreenLayout>\n );\n};\n"]}
@@ -1,16 +0,0 @@
1
- /**
2
- * RevenueIntroScreen — Welcome screen for the revenue analytics flow.
3
- *
4
- * Composes IntroScreenLayout with SDK-detection-specific state:
5
- * - Detection succeeded: shows detected PostHog + Stripe SDKs, continue/cancel
6
- * - Detection failed: shows the error via errorView + exit prompt
7
- *
8
- * Reads `frameworkContext.detectError` and `frameworkContext.detectedPosthogSdks`
9
- * / `detectedStripeSdks` set by detectRevenuePrerequisites().
10
- */
11
- import type { WizardStore } from '../store.js';
12
- interface RevenueIntroScreenProps {
13
- store: WizardStore;
14
- }
15
- export declare const RevenueIntroScreen: ({ store }: RevenueIntroScreenProps) => import("react/jsx-runtime").JSX.Element;
16
- export {};