@posthog/wizard 2.9.1 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/README.md +40 -0
  2. package/dist/McpScreen-BmHapIaP.js +3357 -0
  3. package/dist/McpScreen-BmHapIaP.js.map +1 -0
  4. package/dist/add-mcp-server-to-clients-DZtISNrs.js +455 -0
  5. package/dist/add-mcp-server-to-clients-DZtISNrs.js.map +1 -0
  6. package/dist/agent-runner-CGwrcr57.js +1112 -0
  7. package/dist/agent-runner-CGwrcr57.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-C4jO5Qda.js +207 -0
  11. package/dist/analytics-C4jO5Qda.js.map +1 -0
  12. package/dist/analytics-CpjaBpx6.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-CkLpxBCD.js +122 -0
  23. package/dist/detection-CkLpxBCD.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-nUQ-ebjr.js +222 -0
  33. package/dist/package-manager-nUQ-ebjr.js.map +1 -0
  34. package/dist/posthog-integration-BzxdDK4z.js +230 -0
  35. package/dist/posthog-integration-BzxdDK4z.js.map +1 -0
  36. package/dist/readiness-Dn7eq8NE.js +2156 -0
  37. package/dist/readiness-Dn7eq8NE.js.map +1 -0
  38. package/dist/registry-s55_iuJT.js +2922 -0
  39. package/dist/registry-s55_iuJT.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-CdDnllRW.js +928 -0
  44. package/dist/setup-utils-CdDnllRW.js.map +1 -0
  45. package/dist/smoke-test-ci.sh +165 -0
  46. package/dist/start-playground-B8qCLu7U.js +1005 -0
  47. package/dist/start-playground-B8qCLu7U.js.map +1 -0
  48. package/dist/start-tui-PygiIyNC.js +1887 -0
  49. package/dist/start-tui-PygiIyNC.js.map +1 -0
  50. package/dist/steps-CySv8XdD.js +146 -0
  51. package/dist/steps-CySv8XdD.js.map +1 -0
  52. package/dist/telemetry-Ct_GGkSO.js +13 -0
  53. package/dist/telemetry-Ct_GGkSO.js.map +1 -0
  54. package/dist/wizard-abort-7HUIsqv1.js +39 -0
  55. package/dist/wizard-abort-7HUIsqv1.js.map +1 -0
  56. package/dist/wizard-abort-Dhjb2o08.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,9 +0,0 @@
1
- /**
2
- * WelcomeDemo — Splash screen. Press enter to push the tabbed view.
3
- */
4
- import type { WizardStore } from '../../store.js';
5
- interface WelcomeDemoProps {
6
- store: WizardStore;
7
- }
8
- export declare const WelcomeDemo: ({ store }: WelcomeDemoProps) => import("react/jsx-runtime").JSX.Element;
9
- export {};
@@ -1,15 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * WelcomeDemo — Splash screen. Press enter to push the tabbed view.
4
- */
5
- import { Box, Text, useInput } from 'ink';
6
- import { Colors, Icons } from '../../styles.js';
7
- export const WelcomeDemo = ({ store }) => {
8
- useInput((_input, key) => {
9
- if (key.return) {
10
- store.completeSetup();
11
- }
12
- });
13
- return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, justifyContent: "center", alignItems: "center", children: [_jsxs(Text, { bold: true, color: Colors.accent, children: [Icons.diamond, " PostHog Setup Wizard layout primitives playground"] }), _jsx(Box, { height: 1 }), _jsx(Text, { children: "Layout primitives for the PostHog Setup Wizard TUI." }), _jsx(Text, { dimColor: true, children: "CardLayout, SplitView, TabContainer, ProgressList, and more." }), _jsx(Box, { height: 1 }), _jsxs(Text, { color: Colors.primary, children: ["Press enter to continue ", Icons.triangleRight] })] }));
14
- };
15
- //# sourceMappingURL=WelcomeDemo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WelcomeDemo.js","sourceRoot":"","sources":["../../../../../../src/ui/tui/playground/demos/WelcomeDemo.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAoB,EAAE,EAAE;IACzD,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,cAAc,EAAC,QAAQ,EACvB,UAAU,EAAC,QAAQ,aAEnB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,aAC5B,KAAK,CAAC,OAAO,0DACT,EACP,KAAC,GAAG,IAAC,MAAM,EAAE,CAAC,GAAI,EAClB,KAAC,IAAI,sEAA2D,EAChE,KAAC,IAAI,IAAC,QAAQ,mFAEP,EACP,KAAC,GAAG,IAAC,MAAM,EAAE,CAAC,GAAI,EAClB,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,yCACA,KAAK,CAAC,aAAa,IACvC,IACH,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * WelcomeDemo — Splash screen. Press enter to push the tabbed view.\n */\n\nimport { Box, Text, useInput } from 'ink';\nimport type { WizardStore } from '../../store.js';\nimport { Colors, Icons } from '../../styles.js';\n\ninterface WelcomeDemoProps {\n store: WizardStore;\n}\n\nexport const WelcomeDemo = ({ store }: WelcomeDemoProps) => {\n useInput((_input, key) => {\n if (key.return) {\n store.completeSetup();\n }\n });\n\n return (\n <Box\n flexDirection=\"column\"\n flexGrow={1}\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Text bold color={Colors.accent}>\n {Icons.diamond} PostHog Setup Wizard layout primitives playground\n </Text>\n <Box height={1} />\n <Text>Layout primitives for the PostHog Setup Wizard TUI.</Text>\n <Text dimColor>\n CardLayout, SplitView, TabContainer, ProgressList, and more.\n </Text>\n <Box height={1} />\n <Text color={Colors.primary}>\n Press enter to continue {Icons.triangleRight}\n </Text>\n </Box>\n );\n};\n"]}
@@ -1,4 +0,0 @@
1
- /**
2
- * start-playground.ts — Launches the TUI primitives playground.
3
- */
4
- export declare function startPlayground(version: string): void;
@@ -1,24 +0,0 @@
1
- /**
2
- * start-playground.ts — Launches the TUI primitives playground.
3
- */
4
- import { render } from 'ink';
5
- import { createElement } from 'react';
6
- import { WizardStore } from '../store.js';
7
- import { PlaygroundApp } from './PlaygroundApp.js';
8
- export function startPlayground(version) {
9
- const store = new WizardStore();
10
- store.version = version;
11
- // Pre-fill session so the router skips auth and lands on 'run' after intro
12
- store.setCredentials({
13
- accessToken: 'fake',
14
- projectApiKey: 'fake',
15
- host: 'https://app.posthog.com',
16
- projectId: 0,
17
- });
18
- const { unmount, waitUntilExit } = render(createElement(PlaygroundApp, { store }));
19
- void waitUntilExit().then(() => {
20
- unmount();
21
- process.exit(0);
22
- });
23
- }
24
- //# sourceMappingURL=start-playground.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-playground.js","sourceRoot":"","sources":["../../../../../src/ui/tui/playground/start-playground.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAExB,2EAA2E;IAC3E,KAAK,CAAC,cAAc,CAAC;QACnB,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,MAAM;QACrB,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,CAAC;KACb,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,CACvC,aAAa,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CACxC,CAAC;IAEF,KAAK,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAC7B,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * start-playground.ts — Launches the TUI primitives playground.\n */\n\nimport { render } from 'ink';\nimport { createElement } from 'react';\nimport { WizardStore } from '../store.js';\nimport { PlaygroundApp } from './PlaygroundApp.js';\n\nexport function startPlayground(version: string): void {\n const store = new WizardStore();\n store.version = version;\n\n // Pre-fill session so the router skips auth and lands on 'run' after intro\n store.setCredentials({\n accessToken: 'fake',\n projectApiKey: 'fake',\n host: 'https://app.posthog.com',\n projectId: 0,\n });\n\n const { unmount, waitUntilExit } = render(\n createElement(PlaygroundApp, { store }),\n );\n\n void waitUntilExit().then(() => {\n unmount();\n process.exit(0);\n });\n}\n"]}
@@ -1,12 +0,0 @@
1
- /**
2
- * CardLayout — Aligns a single child within available space.
3
- */
4
- import type { ReactNode } from 'react';
5
- import { HAlign, VAlign } from '../styles.js';
6
- interface CardLayoutProps {
7
- hAlign?: HAlign;
8
- vAlign?: VAlign;
9
- children: ReactNode;
10
- }
11
- export declare const CardLayout: ({ hAlign, vAlign, children, }: CardLayoutProps) => import("react/jsx-runtime").JSX.Element;
12
- export {};
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * CardLayout — Aligns a single child within available space.
4
- */
5
- import { Box } from 'ink';
6
- import { HAlign, VAlign } from '../styles.js';
7
- export const CardLayout = ({ hAlign = HAlign.Left, vAlign = VAlign.Top, children, }) => {
8
- return (_jsx(Box, { flexDirection: "column", flexGrow: 1, justifyContent: vAlign, alignItems: hAlign, children: children }));
9
- };
10
- //# sourceMappingURL=CardLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CardLayout.js","sourceRoot":"","sources":["../../../../../src/ui/tui/primitives/CardLayout.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQ9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,MAAM,GAAG,MAAM,CAAC,IAAI,EACpB,MAAM,GAAG,MAAM,CAAC,GAAG,EACnB,QAAQ,GACQ,EAAE,EAAE;IACpB,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,YAEjB,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * CardLayout — Aligns a single child within available space.\n */\n\nimport { Box } from 'ink';\nimport type { ReactNode } from 'react';\nimport { HAlign, VAlign } from '../styles.js';\n\ninterface CardLayoutProps {\n hAlign?: HAlign;\n vAlign?: VAlign;\n children: ReactNode;\n}\n\nexport const CardLayout = ({\n hAlign = HAlign.Left,\n vAlign = VAlign.Top,\n children,\n}: CardLayoutProps) => {\n return (\n <Box\n flexDirection=\"column\"\n flexGrow={1}\n justifyContent={vAlign}\n alignItems={hAlign}\n >\n {children}\n </Box>\n );\n};\n"]}
@@ -1,13 +0,0 @@
1
- /**
2
- * ConfirmationInput — Continue/cancel prompt.
3
- * Enter confirms, escape cancels. Arrow keys toggle focus.
4
- */
5
- interface ConfirmationInputProps {
6
- message: string;
7
- onConfirm: () => void;
8
- onCancel: () => void;
9
- confirmLabel?: string;
10
- cancelLabel?: string;
11
- }
12
- export declare const ConfirmationInput: ({ message, onConfirm, onCancel, confirmLabel, cancelLabel, }: ConfirmationInputProps) => import("react/jsx-runtime").JSX.Element;
13
- export {};
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * ConfirmationInput — Continue/cancel prompt.
4
- * Enter confirms, escape cancels. Arrow keys toggle focus.
5
- */
6
- import { Box, Text, useInput } from 'ink';
7
- import { useState } from 'react';
8
- import { Icons, Colors } from '../styles.js';
9
- import { PromptLabel } from './PromptLabel.js';
10
- var FocusTarget;
11
- (function (FocusTarget) {
12
- FocusTarget["Continue"] = "continue";
13
- FocusTarget["Cancel"] = "cancel";
14
- })(FocusTarget || (FocusTarget = {}));
15
- export const ConfirmationInput = ({ message, onConfirm, onCancel, confirmLabel = 'Continue [Enter]', cancelLabel = 'Cancel [Esc]', }) => {
16
- const [focused, setFocused] = useState(FocusTarget.Continue);
17
- useInput((_input, key) => {
18
- if (key.leftArrow || key.rightArrow) {
19
- setFocused((f) => f === FocusTarget.Continue ? FocusTarget.Cancel : FocusTarget.Continue);
20
- }
21
- if (key.return) {
22
- if (focused === FocusTarget.Continue) {
23
- onConfirm();
24
- }
25
- else {
26
- onCancel();
27
- }
28
- }
29
- if (key.escape) {
30
- onCancel();
31
- }
32
- });
33
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PromptLabel, { message: message }), _jsxs(Box, { gap: 2, marginTop: 1, marginLeft: 2, children: [_jsxs(Text, { bold: focused === FocusTarget.Continue, color: focused === FocusTarget.Continue ? Colors.accent : Colors.muted, children: [focused === FocusTarget.Continue ? Icons.triangleSmallRight : ' ', ' ', confirmLabel] }), _jsxs(Text, { bold: focused === FocusTarget.Cancel, color: focused === FocusTarget.Cancel ? Colors.accent : Colors.muted, children: [focused === FocusTarget.Cancel ? Icons.triangleSmallRight : ' ', ' ', cancelLabel] })] })] }));
34
- };
35
- //# sourceMappingURL=ConfirmationInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfirmationInput.js","sourceRoot":"","sources":["../../../../../src/ui/tui/primitives/ConfirmationInput.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAU/C,IAAK,WAGJ;AAHD,WAAK,WAAW;IACd,oCAAqB,CAAA;IACrB,gCAAiB,CAAA;AACnB,CAAC,EAHI,WAAW,KAAX,WAAW,QAGf;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,kBAAkB,EACjC,WAAW,GAAG,cAAc,GACL,EAAE,EAAE;IAC3B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAc,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE1E,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACpC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACrC,SAAS,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EACjC,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,aACtC,MAAC,IAAI,IACH,IAAI,EAAE,OAAO,KAAK,WAAW,CAAC,QAAQ,EACtC,KAAK,EACH,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,aAGhE,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EACtE,YAAY,IACR,EACP,MAAC,IAAI,IACH,IAAI,EAAE,OAAO,KAAK,WAAW,CAAC,MAAM,EACpC,KAAK,EAAE,OAAO,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,aAEnE,OAAO,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EACpE,WAAW,IACP,IACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * ConfirmationInput — Continue/cancel prompt.\n * Enter confirms, escape cancels. Arrow keys toggle focus.\n */\n\nimport { Box, Text, useInput } from 'ink';\nimport { useState } from 'react';\nimport { Icons, Colors } from '../styles.js';\nimport { PromptLabel } from './PromptLabel.js';\n\ninterface ConfirmationInputProps {\n message: string;\n onConfirm: () => void;\n onCancel: () => void;\n confirmLabel?: string;\n cancelLabel?: string;\n}\n\nenum FocusTarget {\n Continue = 'continue',\n Cancel = 'cancel',\n}\n\nexport const ConfirmationInput = ({\n message,\n onConfirm,\n onCancel,\n confirmLabel = 'Continue [Enter]',\n cancelLabel = 'Cancel [Esc]',\n}: ConfirmationInputProps) => {\n const [focused, setFocused] = useState<FocusTarget>(FocusTarget.Continue);\n\n useInput((_input, key) => {\n if (key.leftArrow || key.rightArrow) {\n setFocused((f) =>\n f === FocusTarget.Continue ? FocusTarget.Cancel : FocusTarget.Continue,\n );\n }\n if (key.return) {\n if (focused === FocusTarget.Continue) {\n onConfirm();\n } else {\n onCancel();\n }\n }\n if (key.escape) {\n onCancel();\n }\n });\n\n return (\n <Box flexDirection=\"column\">\n <PromptLabel message={message} />\n <Box gap={2} marginTop={1} marginLeft={2}>\n <Text\n bold={focused === FocusTarget.Continue}\n color={\n focused === FocusTarget.Continue ? Colors.accent : Colors.muted\n }\n >\n {focused === FocusTarget.Continue ? Icons.triangleSmallRight : ' '}{' '}\n {confirmLabel}\n </Text>\n <Text\n bold={focused === FocusTarget.Cancel}\n color={focused === FocusTarget.Cancel ? Colors.accent : Colors.muted}\n >\n {focused === FocusTarget.Cancel ? Icons.triangleSmallRight : ' '}{' '}\n {cancelLabel}\n </Text>\n </Box>\n </Box>\n );\n};\n"]}
@@ -1,42 +0,0 @@
1
- /**
2
- * ContentSequencer — Plays content blocks in order.
3
- *
4
- * Each block is a self-animating component that fires onComplete() when done.
5
- * The sequencer waits blockInterval ms between blocks, then advances.
6
- *
7
- * Block types:
8
- * - string → TextBlock (animated text, sugar for { content: '...' })
9
- * - { content: str } → TextBlock (animated text with per-block overrides)
10
- * - { content: JSX } → NodeBlock (static JSX)
11
- * - { type: 'lines' } → LinesBlock (line-by-line reveal)
12
- * - { type: 'clear' } → ClearBlock (page break — hides all prior blocks)
13
- */
14
- import { type ReactNode } from 'react';
15
- import { type TextRevealMode } from './TextBlock.js';
16
- export type { ContentBlock, ContentObjectBlock, ContentLinesBlock, ContentClearBlock, } from './content-types.js';
17
- export { isLinesBlock, isClearBlock, isObjectBlock } from './content-types.js';
18
- import type { ContentBlock } from './content-types.js';
19
- /** Resolve the pause after a block completes. */
20
- export declare function getBlockPause(block: ContentBlock, blockInterval: number): number;
21
- interface ContentSequencerProps {
22
- blocks: ContentBlock[];
23
- mode: TextRevealMode;
24
- /** Row budget for visible content. When set, older blocks are evicted. */
25
- maxHeight?: number;
26
- /** Available text width in columns (for height estimation). */
27
- availableWidth?: number;
28
- bullet?: ReactNode;
29
- animationInterval?: number;
30
- sentenceInterval?: number;
31
- lineInterval?: number;
32
- blockInterval?: number;
33
- /** Delay in ms before the first block appears. */
34
- startDelay?: number;
35
- /** Resume from a previously persisted block index. */
36
- initialBlockIdx?: number;
37
- /** Called whenever the active block index advances. */
38
- onBlockChange?: (idx: number) => void;
39
- /** Called once when the last block completes (after its pause). */
40
- onSequenceComplete?: () => void;
41
- }
42
- export declare const ContentSequencer: ({ blocks, mode, maxHeight, availableWidth, bullet, animationInterval, sentenceInterval, lineInterval, blockInterval, startDelay, initialBlockIdx, onBlockChange, onSequenceComplete, }: ContentSequencerProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,137 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * ContentSequencer — Plays content blocks in order.
4
- *
5
- * Each block is a self-animating component that fires onComplete() when done.
6
- * The sequencer waits blockInterval ms between blocks, then advances.
7
- *
8
- * Block types:
9
- * - string → TextBlock (animated text, sugar for { content: '...' })
10
- * - { content: str } → TextBlock (animated text with per-block overrides)
11
- * - { content: JSX } → NodeBlock (static JSX)
12
- * - { type: 'lines' } → LinesBlock (line-by-line reveal)
13
- * - { type: 'clear' } → ClearBlock (page break — hides all prior blocks)
14
- */
15
- import { Box } from 'ink';
16
- import { useState, useCallback, useEffect, useRef, useMemo, } from 'react';
17
- import { TextBlock } from './TextBlock.js';
18
- import { LinesBlock } from './LinesBlock.js';
19
- import { NodeBlock } from './NodeBlock.js';
20
- import { computeVisibleRange } from './layout-helpers.js';
21
- import { isLinesBlock, isClearBlock, isObjectBlock } from './content-types.js';
22
- export { isLinesBlock, isClearBlock, isObjectBlock } from './content-types.js';
23
- /** Resolve the pause after a block completes. */
24
- export function getBlockPause(block, blockInterval) {
25
- if (typeof block === 'string')
26
- return blockInterval;
27
- return block.pause ?? blockInterval;
28
- }
29
- export const ContentSequencer = ({ blocks, mode, maxHeight, availableWidth, bullet, animationInterval, sentenceInterval, lineInterval = 200, blockInterval = 3200, startDelay = 0, initialBlockIdx = 0, onBlockChange, onSequenceComplete, }) => {
30
- const resuming = initialBlockIdx > 0;
31
- const [activeIdx, setActiveIdx] = useState(resuming ? initialBlockIdx : startDelay > 0 ? -1 : 0);
32
- const transitionTimer = useRef(null);
33
- // Initial delay before first block (skip when resuming)
34
- useEffect(() => {
35
- if (resuming || startDelay <= 0 || activeIdx !== -1)
36
- return;
37
- const timer = setTimeout(() => setActiveIdx(0), startDelay);
38
- return () => clearTimeout(timer);
39
- }, [startDelay, activeIdx]);
40
- // Compute visible range reactively (re-evaluates on resize, block advance, etc.)
41
- const [visibleStart, visibleEnd] = useMemo(() => {
42
- if (activeIdx < 0)
43
- return [0, -1];
44
- if (maxHeight == null || availableWidth == null) {
45
- return [0, activeIdx];
46
- }
47
- return computeVisibleRange(blocks, activeIdx, availableWidth, maxHeight);
48
- }, [blocks, activeIdx, maxHeight, availableWidth]);
49
- const handleComplete = useCallback((blockIndex) => {
50
- // Only the active block can trigger advancement
51
- if (blockIndex !== activeIdx)
52
- return;
53
- // Last block — fire sequence-complete after its pause, don't advance
54
- if (activeIdx >= blocks.length - 1) {
55
- if (onSequenceComplete && !transitionTimer.current) {
56
- const pause = getBlockPause(blocks[blockIndex], blockInterval);
57
- transitionTimer.current = setTimeout(() => {
58
- transitionTimer.current = null;
59
- onSequenceComplete();
60
- }, pause);
61
- }
62
- return;
63
- }
64
- // Don't double-trigger
65
- if (transitionTimer.current)
66
- return;
67
- const pause = getBlockPause(blocks[blockIndex], blockInterval);
68
- transitionTimer.current = setTimeout(() => {
69
- transitionTimer.current = null;
70
- setActiveIdx((i) => {
71
- const next = i + 1;
72
- onBlockChange?.(next);
73
- return next;
74
- });
75
- }, pause);
76
- }, [activeIdx, blocks, blockInterval, onBlockChange, onSequenceComplete]);
77
- // Find the most recent clear block — nothing before it renders.
78
- // When the active block IS a clear block, immediately hide all prior content
79
- // so the pause shows a blank screen (not dim prior text).
80
- const clearFloor = useMemo(() => {
81
- if (activeIdx >= 0 && isClearBlock(blocks[activeIdx]))
82
- return activeIdx;
83
- for (let i = activeIdx - 1; i >= 0; i--) {
84
- if (isClearBlock(blocks[i]))
85
- return i + 1;
86
- }
87
- return 0;
88
- }, [blocks, activeIdx]);
89
- return (_jsx(Box, { flexDirection: "column", children: blocks.map((block, i) => {
90
- // Not yet reached
91
- if (i > activeIdx)
92
- return null;
93
- // Hidden by clear block
94
- if (i < clearFloor)
95
- return null;
96
- // Completed clear blocks don't render (active ones must mount to fire onComplete)
97
- if (isClearBlock(block) && i < activeIdx)
98
- return null;
99
- // Evicted by viewport
100
- if (i < visibleStart || i > visibleEnd)
101
- return null;
102
- const active = i === activeIdx;
103
- const completed = i < activeIdx;
104
- // Completed non-text blocks don't persist by default
105
- if (completed && isObjectBlock(block)) {
106
- const isText = typeof block.content === 'string';
107
- const shouldPersist = block.persist ?? isText;
108
- if (!shouldPersist)
109
- return null;
110
- }
111
- return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsx(BlockRenderer, { block: block, active: active, completed: completed, onComplete: () => handleComplete(i), mode: mode, bullet: bullet, animationInterval: animationInterval, sentenceInterval: sentenceInterval, lineInterval: lineInterval, maxHeight: maxHeight, availableWidth: availableWidth }) }, i));
112
- }) }));
113
- };
114
- const BlockRenderer = ({ block, active, completed, onComplete, mode, bullet, animationInterval, sentenceInterval, lineInterval, maxHeight, availableWidth, }) => {
115
- // Clear block — completes immediately, renders nothing
116
- if (isClearBlock(block)) {
117
- useEffect(() => {
118
- if (active)
119
- onComplete();
120
- }, [active, onComplete]);
121
- return null;
122
- }
123
- // Bare string sugar → TextBlock with sequencer defaults
124
- if (typeof block === 'string') {
125
- return (_jsx(TextBlock, { text: block, active: active, completed: completed, onComplete: onComplete, mode: mode, bullet: bullet, animationInterval: animationInterval, sentenceInterval: sentenceInterval, maxHeight: maxHeight, availableWidth: availableWidth }));
126
- }
127
- // Lines block
128
- if (isLinesBlock(block)) {
129
- return (_jsx(LinesBlock, { lines: block.lines, interval: block.interval ?? lineInterval, active: active, completed: completed, onComplete: onComplete, maxHeight: maxHeight }));
130
- }
131
- // Object block — dispatch on content type
132
- if (typeof block.content === 'string') {
133
- return (_jsx(TextBlock, { text: block.content, active: active, completed: completed, onComplete: onComplete, mode: block.mode ?? mode, bullet: bullet, animationInterval: block.animationInterval ?? animationInterval, sentenceInterval: block.sentenceInterval ?? sentenceInterval, maxHeight: maxHeight, availableWidth: availableWidth }));
134
- }
135
- return (_jsx(NodeBlock, { content: block.content, active: active, completed: completed, onComplete: onComplete }));
136
- };
137
- //# sourceMappingURL=ContentSequencer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentSequencer.js","sourceRoot":"","sources":["../../../../../src/ui/tui/primitives/ContentSequencer.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * ContentSequencer — Plays content blocks in order.\n *\n * Each block is a self-animating component that fires onComplete() when done.\n * The sequencer waits blockInterval ms between blocks, then advances.\n *\n * Block types:\n * - string → TextBlock (animated text, sugar for { content: '...' })\n * - { content: str } → TextBlock (animated text with per-block overrides)\n * - { content: JSX } → NodeBlock (static JSX)\n * - { type: 'lines' } → LinesBlock (line-by-line reveal)\n * - { type: 'clear' } → ClearBlock (page break — hides all prior blocks)\n */\n\nimport { Box } from 'ink';\nimport {\n useState,\n useCallback,\n useEffect,\n useRef,\n useMemo,\n type ReactNode,\n} from 'react';\nimport { TextBlock, type TextRevealMode } from './TextBlock.js';\nimport { LinesBlock } from './LinesBlock.js';\nimport { NodeBlock } from './NodeBlock.js';\nimport { computeVisibleRange } from './layout-helpers.js';\nimport { isLinesBlock, isClearBlock, isObjectBlock } from './content-types.js';\nexport type {\n ContentBlock,\n ContentObjectBlock,\n ContentLinesBlock,\n ContentClearBlock,\n} from './content-types.js';\nexport { isLinesBlock, isClearBlock, isObjectBlock } from './content-types.js';\n\nimport type { ContentBlock } from './content-types.js';\n\n/** Resolve the pause after a block completes. */\nexport function getBlockPause(\n block: ContentBlock,\n blockInterval: number,\n): number {\n if (typeof block === 'string') return blockInterval;\n return block.pause ?? blockInterval;\n}\n\ninterface ContentSequencerProps {\n blocks: ContentBlock[];\n mode: TextRevealMode;\n /** Row budget for visible content. When set, older blocks are evicted. */\n maxHeight?: number;\n /** Available text width in columns (for height estimation). */\n availableWidth?: number;\n bullet?: ReactNode;\n animationInterval?: number;\n sentenceInterval?: number;\n lineInterval?: number;\n blockInterval?: number;\n /** Delay in ms before the first block appears. */\n startDelay?: number;\n /** Resume from a previously persisted block index. */\n initialBlockIdx?: number;\n /** Called whenever the active block index advances. */\n onBlockChange?: (idx: number) => void;\n /** Called once when the last block completes (after its pause). */\n onSequenceComplete?: () => void;\n}\n\nexport const ContentSequencer = ({\n blocks,\n mode,\n maxHeight,\n availableWidth,\n bullet,\n animationInterval,\n sentenceInterval,\n lineInterval = 200,\n blockInterval = 3200,\n startDelay = 0,\n initialBlockIdx = 0,\n onBlockChange,\n onSequenceComplete,\n}: ContentSequencerProps) => {\n const resuming = initialBlockIdx > 0;\n const [activeIdx, setActiveIdx] = useState(\n resuming ? initialBlockIdx : startDelay > 0 ? -1 : 0,\n );\n const transitionTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Initial delay before first block (skip when resuming)\n useEffect(() => {\n if (resuming || startDelay <= 0 || activeIdx !== -1) return;\n const timer = setTimeout(() => setActiveIdx(0), startDelay);\n return () => clearTimeout(timer);\n }, [startDelay, activeIdx]);\n\n // Compute visible range reactively (re-evaluates on resize, block advance, etc.)\n const [visibleStart, visibleEnd] = useMemo(() => {\n if (activeIdx < 0) return [0, -1] as [number, number];\n if (maxHeight == null || availableWidth == null) {\n return [0, activeIdx] as [number, number];\n }\n return computeVisibleRange(blocks, activeIdx, availableWidth, maxHeight);\n }, [blocks, activeIdx, maxHeight, availableWidth]);\n\n const handleComplete = useCallback(\n (blockIndex: number) => {\n // Only the active block can trigger advancement\n if (blockIndex !== activeIdx) return;\n // Last block — fire sequence-complete after its pause, don't advance\n if (activeIdx >= blocks.length - 1) {\n if (onSequenceComplete && !transitionTimer.current) {\n const pause = getBlockPause(blocks[blockIndex], blockInterval);\n transitionTimer.current = setTimeout(() => {\n transitionTimer.current = null;\n onSequenceComplete();\n }, pause);\n }\n return;\n }\n // Don't double-trigger\n if (transitionTimer.current) return;\n\n const pause = getBlockPause(blocks[blockIndex], blockInterval);\n transitionTimer.current = setTimeout(() => {\n transitionTimer.current = null;\n setActiveIdx((i) => {\n const next = i + 1;\n onBlockChange?.(next);\n return next;\n });\n }, pause);\n },\n [activeIdx, blocks, blockInterval, onBlockChange, onSequenceComplete],\n );\n\n // Find the most recent clear block — nothing before it renders.\n // When the active block IS a clear block, immediately hide all prior content\n // so the pause shows a blank screen (not dim prior text).\n const clearFloor = useMemo(() => {\n if (activeIdx >= 0 && isClearBlock(blocks[activeIdx])) return activeIdx;\n for (let i = activeIdx - 1; i >= 0; i--) {\n if (isClearBlock(blocks[i])) return i + 1;\n }\n return 0;\n }, [blocks, activeIdx]);\n\n return (\n <Box flexDirection=\"column\">\n {blocks.map((block, i) => {\n // Not yet reached\n if (i > activeIdx) return null;\n // Hidden by clear block\n if (i < clearFloor) return null;\n // Completed clear blocks don't render (active ones must mount to fire onComplete)\n if (isClearBlock(block) && i < activeIdx) return null;\n // Evicted by viewport\n if (i < visibleStart || i > visibleEnd) return null;\n\n const active = i === activeIdx;\n const completed = i < activeIdx;\n\n // Completed non-text blocks don't persist by default\n if (completed && isObjectBlock(block)) {\n const isText = typeof block.content === 'string';\n const shouldPersist = block.persist ?? isText;\n if (!shouldPersist) return null;\n }\n\n return (\n <Box key={i} flexDirection=\"column\" marginBottom={1}>\n <BlockRenderer\n block={block}\n active={active}\n completed={completed}\n onComplete={() => handleComplete(i)}\n mode={mode}\n bullet={bullet}\n animationInterval={animationInterval}\n sentenceInterval={sentenceInterval}\n lineInterval={lineInterval}\n maxHeight={maxHeight}\n availableWidth={availableWidth}\n />\n </Box>\n );\n })}\n </Box>\n );\n};\n\ninterface BlockRendererProps {\n block: ContentBlock;\n active: boolean;\n completed: boolean;\n onComplete: () => void;\n mode: TextRevealMode;\n bullet?: ReactNode;\n animationInterval?: number;\n sentenceInterval?: number;\n lineInterval: number;\n maxHeight?: number;\n availableWidth?: number;\n}\n\nconst BlockRenderer = ({\n block,\n active,\n completed,\n onComplete,\n mode,\n bullet,\n animationInterval,\n sentenceInterval,\n lineInterval,\n maxHeight,\n availableWidth,\n}: BlockRendererProps) => {\n // Clear block — completes immediately, renders nothing\n if (isClearBlock(block)) {\n useEffect(() => {\n if (active) onComplete();\n }, [active, onComplete]);\n return null;\n }\n\n // Bare string sugar → TextBlock with sequencer defaults\n if (typeof block === 'string') {\n return (\n <TextBlock\n text={block}\n active={active}\n completed={completed}\n onComplete={onComplete}\n mode={mode}\n bullet={bullet}\n animationInterval={animationInterval}\n sentenceInterval={sentenceInterval}\n maxHeight={maxHeight}\n availableWidth={availableWidth}\n />\n );\n }\n\n // Lines block\n if (isLinesBlock(block)) {\n return (\n <LinesBlock\n lines={block.lines}\n interval={block.interval ?? lineInterval}\n active={active}\n completed={completed}\n onComplete={onComplete}\n maxHeight={maxHeight}\n />\n );\n }\n\n // Object block — dispatch on content type\n if (typeof block.content === 'string') {\n return (\n <TextBlock\n text={block.content}\n active={active}\n completed={completed}\n onComplete={onComplete}\n mode={block.mode ?? mode}\n bullet={bullet}\n animationInterval={block.animationInterval ?? animationInterval}\n sentenceInterval={block.sentenceInterval ?? sentenceInterval}\n maxHeight={maxHeight}\n availableWidth={availableWidth}\n />\n );\n }\n\n return (\n <NodeBlock\n content={block.content}\n active={active}\n completed={completed}\n onComplete={onComplete}\n />\n );\n};\n"]}
@@ -1,21 +0,0 @@
1
- /**
2
- * DissolveTransition — Column-sweep inspired by TTE's Sweep effect.
3
- *
4
- * Uses a SequenceEaser (in_out_circ) to activate columns with eased pacing.
5
- * Each activated column cycles through shade characters (░▒▓█) independently.
6
- *
7
- * Out phase: columns sweep, building up shade chars until solid █ (covers old content).
8
- * In phase: columns sweep in reverse, dissolving █ back through shades to empty (reveals new content).
9
- */
10
- import { type ReactNode } from 'react';
11
- export type WipeDirection = 'left' | 'right';
12
- interface DissolveTransitionProps {
13
- transitionKey: string;
14
- width: number;
15
- height: number;
16
- children: ReactNode;
17
- direction?: WipeDirection;
18
- duration?: number;
19
- }
20
- export declare const DissolveTransition: ({ transitionKey, width, height, children, direction, duration, }: DissolveTransitionProps) => import("react/jsx-runtime").JSX.Element;
21
- export {};
@@ -1,149 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * DissolveTransition — Column-sweep inspired by TTE's Sweep effect.
4
- *
5
- * Uses a SequenceEaser (in_out_circ) to activate columns with eased pacing.
6
- * Each activated column cycles through shade characters (░▒▓█) independently.
7
- *
8
- * Out phase: columns sweep, building up shade chars until solid █ (covers old content).
9
- * In phase: columns sweep in reverse, dissolving █ back through shades to empty (reveals new content).
10
- */
11
- import { Box, Text } from 'ink';
12
- import { useState, useEffect, useRef } from 'react';
13
- /** Shade characters in build-up order (light → solid). */
14
- const SHADES = ['░', '▒', '▓', '█'];
15
- /** How many ticks each shade character displays before advancing. */
16
- const TICKS_PER_SHADE = 2;
17
- /** Total ticks a column needs to complete its shade cycle. */
18
- const SHADE_CYCLE_TICKS = SHADES.length * TICKS_PER_SHADE;
19
- function easeInOutCirc(t) {
20
- if (t < 0.5) {
21
- return (1 - Math.sqrt(1 - 4 * t * t)) / 2;
22
- }
23
- return (Math.sqrt(1 - (2 * t - 2) ** 2) + 1) / 2;
24
- }
25
- var TransitionPhase;
26
- (function (TransitionPhase) {
27
- TransitionPhase["Idle"] = "idle";
28
- TransitionPhase["Out"] = "out";
29
- TransitionPhase["In"] = "in";
30
- })(TransitionPhase || (TransitionPhase = {}));
31
- export const DissolveTransition = ({ transitionKey, width, height, children, direction = 'left', duration = 2, }) => {
32
- const [phase, setPhase] = useState(TransitionPhase.Idle);
33
- const [tick, setTick] = useState(0);
34
- const [activeDir, setActiveDir] = useState(direction);
35
- const prevKey = useRef(transitionKey);
36
- const pendingChildren = useRef(children);
37
- const [displayChildren, setDisplayChildren] = useState(children);
38
- // Track when each column was activated (tick number), -1 means not yet.
39
- const columnActivationTick = useRef([]);
40
- useEffect(() => {
41
- if (transitionKey !== prevKey.current) {
42
- prevKey.current = transitionKey;
43
- pendingChildren.current = children;
44
- setActiveDir(direction);
45
- setPhase(TransitionPhase.Out);
46
- setTick(0);
47
- columnActivationTick.current = new Array(width).fill(-1);
48
- }
49
- else if (phase !== TransitionPhase.Idle) {
50
- // Terminal resized mid-transition — abort and show new content immediately
51
- setPhase(TransitionPhase.Idle);
52
- setDisplayChildren(children);
53
- }
54
- else {
55
- setDisplayChildren(children);
56
- }
57
- }, [transitionKey, children, width, height, phase, direction]);
58
- useEffect(() => {
59
- if (phase === TransitionPhase.Idle)
60
- return;
61
- const timer = setInterval(() => {
62
- setTick((prev) => prev + 1);
63
- }, duration);
64
- return () => clearInterval(timer);
65
- }, [phase, duration]);
66
- // Easer steps = width: roughly one column activates per tick.
67
- // This keeps the sweep front tight (only a few columns in-flight at once).
68
- const easerSteps = width;
69
- // A phase ends when the easer has completed AND all columns have finished their shade cycle.
70
- const maxTicks = easerSteps + SHADE_CYCLE_TICKS;
71
- useEffect(() => {
72
- if (phase === TransitionPhase.Idle)
73
- return;
74
- if (tick >= maxTicks) {
75
- if (phase === TransitionPhase.Out) {
76
- setDisplayChildren(pendingChildren.current);
77
- setPhase(TransitionPhase.In);
78
- setTick(0);
79
- columnActivationTick.current = new Array(width).fill(-1);
80
- }
81
- else {
82
- setPhase(TransitionPhase.Idle);
83
- }
84
- }
85
- }, [tick, phase, maxTicks, width]);
86
- if (phase === TransitionPhase.Idle) {
87
- return _jsx(_Fragment, { children: displayChildren });
88
- }
89
- // --- SequenceEaser logic ---
90
- // Map current tick to easer progress (0..1), apply easing,
91
- // then determine how many columns should be activated.
92
- const easerProgress = Math.min(tick / easerSteps, 1);
93
- const easedValue = easeInOutCirc(easerProgress);
94
- const activatedCount = Math.floor(easedValue * width);
95
- // Build column order based on direction.
96
- // "left" means sweep moves left-to-right; "right" means right-to-left.
97
- // TTE's COLUMN_RIGHT_TO_LEFT activates rightmost first.
98
- const columnOrder = [];
99
- if (activeDir === 'left') {
100
- for (let c = width - 1; c >= 0; c--)
101
- columnOrder.push(c);
102
- }
103
- else {
104
- for (let c = 0; c < width; c++)
105
- columnOrder.push(c);
106
- }
107
- // Activate columns that should be active but aren't yet.
108
- for (let i = 0; i < activatedCount && i < columnOrder.length; i++) {
109
- const col = columnOrder[i];
110
- if (columnActivationTick.current[col] === -1) {
111
- columnActivationTick.current[col] = tick;
112
- }
113
- }
114
- // --- Render frame ---
115
- const rows = [];
116
- for (let r = 0; r < height; r++) {
117
- let row = '';
118
- for (let c = 0; c < width; c++) {
119
- const activatedAt = columnActivationTick.current[c];
120
- let char;
121
- if (activatedAt === -1) {
122
- // Not yet activated
123
- char = phase === TransitionPhase.Out ? ' ' : '█';
124
- }
125
- else {
126
- // Column is activated — determine shade based on ticks since activation
127
- const age = tick - activatedAt;
128
- const shadeIndex = Math.min(Math.floor(age / TICKS_PER_SHADE), SHADES.length - 1);
129
- if (phase === TransitionPhase.Out) {
130
- // Building up: ░ → ▒ → ▓ → █
131
- char = SHADES[shadeIndex];
132
- }
133
- else {
134
- // Dissolving: █ → ▓ → ▒ → ░ → space
135
- if (shadeIndex >= SHADES.length - 1 && age >= SHADE_CYCLE_TICKS) {
136
- char = ' ';
137
- }
138
- else {
139
- char = SHADES[SHADES.length - 1 - shadeIndex];
140
- }
141
- }
142
- }
143
- row += char;
144
- }
145
- rows.push(row);
146
- }
147
- return (_jsx(Box, { flexDirection: "column", flexGrow: 1, children: rows.map((row, i) => (_jsx(Text, { dimColor: true, children: row }, i))) }));
148
- };
149
- //# sourceMappingURL=DissolveTransition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DissolveTransition.js","sourceRoot":"","sources":["../../../../../src/ui/tui/primitives/DissolveTransition.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * DissolveTransition — Column-sweep inspired by TTE's Sweep effect.\n *\n * Uses a SequenceEaser (in_out_circ) to activate columns with eased pacing.\n * Each activated column cycles through shade characters (░▒▓█) independently.\n *\n * Out phase: columns sweep, building up shade chars until solid █ (covers old content).\n * In phase: columns sweep in reverse, dissolving █ back through shades to empty (reveals new content).\n */\n\nimport { Box, Text } from 'ink';\nimport { useState, useEffect, useRef, type ReactNode } from 'react';\n\n/** Shade characters in build-up order (light → solid). */\nconst SHADES = ['░', '▒', '▓', '█'] as const;\n/** How many ticks each shade character displays before advancing. */\nconst TICKS_PER_SHADE = 2;\n/** Total ticks a column needs to complete its shade cycle. */\nconst SHADE_CYCLE_TICKS = SHADES.length * TICKS_PER_SHADE;\n\nexport type WipeDirection = 'left' | 'right';\n\ninterface DissolveTransitionProps {\n transitionKey: string;\n width: number;\n height: number;\n children: ReactNode;\n direction?: WipeDirection;\n duration?: number;\n}\n\nfunction easeInOutCirc(t: number): number {\n if (t < 0.5) {\n return (1 - Math.sqrt(1 - 4 * t * t)) / 2;\n }\n return (Math.sqrt(1 - (2 * t - 2) ** 2) + 1) / 2;\n}\n\nenum TransitionPhase {\n Idle = 'idle',\n Out = 'out',\n In = 'in',\n}\n\nexport const DissolveTransition = ({\n transitionKey,\n width,\n height,\n children,\n direction = 'left',\n duration = 2,\n}: DissolveTransitionProps) => {\n const [phase, setPhase] = useState<TransitionPhase>(TransitionPhase.Idle);\n const [tick, setTick] = useState(0);\n const [activeDir, setActiveDir] = useState<WipeDirection>(direction);\n const prevKey = useRef(transitionKey);\n const pendingChildren = useRef<ReactNode>(children);\n const [displayChildren, setDisplayChildren] = useState<ReactNode>(children);\n\n // Track when each column was activated (tick number), -1 means not yet.\n const columnActivationTick = useRef<number[]>([]);\n\n useEffect(() => {\n if (transitionKey !== prevKey.current) {\n prevKey.current = transitionKey;\n pendingChildren.current = children;\n setActiveDir(direction);\n setPhase(TransitionPhase.Out);\n setTick(0);\n columnActivationTick.current = new Array(width).fill(-1);\n } else if (phase !== TransitionPhase.Idle) {\n // Terminal resized mid-transition — abort and show new content immediately\n setPhase(TransitionPhase.Idle);\n setDisplayChildren(children);\n } else {\n setDisplayChildren(children);\n }\n }, [transitionKey, children, width, height, phase, direction]);\n\n useEffect(() => {\n if (phase === TransitionPhase.Idle) return;\n\n const timer = setInterval(() => {\n setTick((prev) => prev + 1);\n }, duration);\n\n return () => clearInterval(timer);\n }, [phase, duration]);\n\n // Easer steps = width: roughly one column activates per tick.\n // This keeps the sweep front tight (only a few columns in-flight at once).\n const easerSteps = width;\n\n // A phase ends when the easer has completed AND all columns have finished their shade cycle.\n const maxTicks = easerSteps + SHADE_CYCLE_TICKS;\n\n useEffect(() => {\n if (phase === TransitionPhase.Idle) return;\n if (tick >= maxTicks) {\n if (phase === TransitionPhase.Out) {\n setDisplayChildren(pendingChildren.current);\n setPhase(TransitionPhase.In);\n setTick(0);\n columnActivationTick.current = new Array(width).fill(-1);\n } else {\n setPhase(TransitionPhase.Idle);\n }\n }\n }, [tick, phase, maxTicks, width]);\n\n if (phase === TransitionPhase.Idle) {\n return <>{displayChildren}</>;\n }\n\n // --- SequenceEaser logic ---\n // Map current tick to easer progress (0..1), apply easing,\n // then determine how many columns should be activated.\n const easerProgress = Math.min(tick / easerSteps, 1);\n const easedValue = easeInOutCirc(easerProgress);\n const activatedCount = Math.floor(easedValue * width);\n\n // Build column order based on direction.\n // \"left\" means sweep moves left-to-right; \"right\" means right-to-left.\n // TTE's COLUMN_RIGHT_TO_LEFT activates rightmost first.\n const columnOrder: number[] = [];\n if (activeDir === 'left') {\n for (let c = width - 1; c >= 0; c--) columnOrder.push(c);\n } else {\n for (let c = 0; c < width; c++) columnOrder.push(c);\n }\n\n // Activate columns that should be active but aren't yet.\n for (let i = 0; i < activatedCount && i < columnOrder.length; i++) {\n const col = columnOrder[i];\n if (columnActivationTick.current[col] === -1) {\n columnActivationTick.current[col] = tick;\n }\n }\n\n // --- Render frame ---\n const rows: string[] = [];\n for (let r = 0; r < height; r++) {\n let row = '';\n for (let c = 0; c < width; c++) {\n const activatedAt = columnActivationTick.current[c];\n\n let char: string;\n if (activatedAt === -1) {\n // Not yet activated\n char = phase === TransitionPhase.Out ? ' ' : '█';\n } else {\n // Column is activated — determine shade based on ticks since activation\n const age = tick - activatedAt;\n const shadeIndex = Math.min(\n Math.floor(age / TICKS_PER_SHADE),\n SHADES.length - 1,\n );\n\n if (phase === TransitionPhase.Out) {\n // Building up: ░ → ▒ → ▓ → █\n char = SHADES[shadeIndex];\n } else {\n // Dissolving: █ → ▓ → ▒ → ░ → space\n if (shadeIndex >= SHADES.length - 1 && age >= SHADE_CYCLE_TICKS) {\n char = ' ';\n } else {\n char = SHADES[SHADES.length - 1 - shadeIndex];\n }\n }\n }\n\n row += char;\n }\n rows.push(row);\n }\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n {rows.map((row, i) => (\n <Text key={i} dimColor>\n {row}\n </Text>\n ))}\n </Box>\n );\n};\n"]}
@@ -1,6 +0,0 @@
1
- interface DividerProps {
2
- dimColor?: boolean;
3
- char?: string;
4
- }
5
- export declare const Divider: ({ dimColor, char }: DividerProps) => import("react/jsx-runtime").JSX.Element;
6
- export {};
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box, Text, measureElement } from 'ink';
3
- import { useRef, useState, useEffect } from 'react';
4
- export const Divider = ({ dimColor = true, char = '─' }) => {
5
- const ref = useRef(null);
6
- const [width, setWidth] = useState(0);
7
- useEffect(() => {
8
- if (ref.current) {
9
- const { width: measured } = measureElement(ref.current);
10
- setWidth(measured);
11
- }
12
- }, []);
13
- return (_jsx(Box, { ref: ref, width: "100%", children: _jsx(Text, { dimColor: dimColor, children: width > 0 ? char.repeat(width) : '' }) }));
14
- };
15
- //# sourceMappingURL=Divider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Divider.js","sourceRoot":"","sources":["../../../../../src/ui/tui/primitives/Divider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOpD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,EAAgB,EAAE,EAAE;IACvE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxD,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,GAAG,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,MAAM,YACzB,KAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,YAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAQ,GAClE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Box, Text, measureElement } from 'ink';\nimport { useRef, useState, useEffect } from 'react';\n\ninterface DividerProps {\n dimColor?: boolean;\n char?: string;\n}\n\nexport const Divider = ({ dimColor = true, char = '─' }: DividerProps) => {\n const ref = useRef(null);\n const [width, setWidth] = useState(0);\n\n useEffect(() => {\n if (ref.current) {\n const { width: measured } = measureElement(ref.current);\n setWidth(measured);\n }\n }, []);\n\n return (\n <Box ref={ref} width=\"100%\">\n <Text dimColor={dimColor}>{width > 0 ? char.repeat(width) : ''}</Text>\n </Box>\n );\n};\n"]}
@@ -1,9 +0,0 @@
1
- /**
2
- * EventPlanViewer — Renders a table of planned analytics events.
3
- */
4
- import type { PlannedEvent } from '../store.js';
5
- interface EventPlanViewerProps {
6
- events: PlannedEvent[];
7
- }
8
- export declare const EventPlanViewer: ({ events }: EventPlanViewerProps) => import("react/jsx-runtime").JSX.Element;
9
- export {};
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * EventPlanViewer — Renders a table of planned analytics events.
4
- */
5
- import { Box, Text } from 'ink';
6
- export const EventPlanViewer = ({ events }) => {
7
- return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, children: "Event plan" }), _jsx(Box, { height: 1 }), events.map((event) => (_jsxs(Box, { children: [_jsx(Text, { bold: true, children: event.name }), _jsxs(Text, { dimColor: true, children: [" ", event.description] })] }, event.name)))] }));
8
- };
9
- //# sourceMappingURL=EventPlanViewer.js.map