@posthog/wizard 2.9.0 → 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 (731) 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 -524
  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 -323
  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 -66
  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 -32
  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 -48
  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 -889
  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 -51
  480. package/dist/src/ui/tui/flows.js +0 -75
  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 -44
  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/ModalDemo.d.ts +0 -6
  505. package/dist/src/ui/tui/playground/demos/ModalDemo.js +0 -13
  506. package/dist/src/ui/tui/playground/demos/ModalDemo.js.map +0 -1
  507. package/dist/src/ui/tui/playground/demos/ProgressDemo.d.ts +0 -5
  508. package/dist/src/ui/tui/playground/demos/ProgressDemo.js +0 -58
  509. package/dist/src/ui/tui/playground/demos/ProgressDemo.js.map +0 -1
  510. package/dist/src/ui/tui/playground/demos/RunScreenDemo.d.ts +0 -11
  511. package/dist/src/ui/tui/playground/demos/RunScreenDemo.js +0 -159
  512. package/dist/src/ui/tui/playground/demos/RunScreenDemo.js.map +0 -1
  513. package/dist/src/ui/tui/playground/demos/WelcomeDemo.d.ts +0 -9
  514. package/dist/src/ui/tui/playground/demos/WelcomeDemo.js +0 -15
  515. package/dist/src/ui/tui/playground/demos/WelcomeDemo.js.map +0 -1
  516. package/dist/src/ui/tui/playground/start-playground.d.ts +0 -4
  517. package/dist/src/ui/tui/playground/start-playground.js +0 -24
  518. package/dist/src/ui/tui/playground/start-playground.js.map +0 -1
  519. package/dist/src/ui/tui/primitives/CardLayout.d.ts +0 -12
  520. package/dist/src/ui/tui/primitives/CardLayout.js +0 -10
  521. package/dist/src/ui/tui/primitives/CardLayout.js.map +0 -1
  522. package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +0 -13
  523. package/dist/src/ui/tui/primitives/ConfirmationInput.js +0 -35
  524. package/dist/src/ui/tui/primitives/ConfirmationInput.js.map +0 -1
  525. package/dist/src/ui/tui/primitives/ContentSequencer.d.ts +0 -42
  526. package/dist/src/ui/tui/primitives/ContentSequencer.js +0 -137
  527. package/dist/src/ui/tui/primitives/ContentSequencer.js.map +0 -1
  528. package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +0 -21
  529. package/dist/src/ui/tui/primitives/DissolveTransition.js +0 -149
  530. package/dist/src/ui/tui/primitives/DissolveTransition.js.map +0 -1
  531. package/dist/src/ui/tui/primitives/Divider.d.ts +0 -6
  532. package/dist/src/ui/tui/primitives/Divider.js +0 -15
  533. package/dist/src/ui/tui/primitives/Divider.js.map +0 -1
  534. package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +0 -9
  535. package/dist/src/ui/tui/primitives/EventPlanViewer.js +0 -9
  536. package/dist/src/ui/tui/primitives/EventPlanViewer.js.map +0 -1
  537. package/dist/src/ui/tui/primitives/GroupedPickerMenu.d.ts +0 -23
  538. package/dist/src/ui/tui/primitives/GroupedPickerMenu.js +0 -182
  539. package/dist/src/ui/tui/primitives/GroupedPickerMenu.js.map +0 -1
  540. package/dist/src/ui/tui/primitives/HNViewer.d.ts +0 -7
  541. package/dist/src/ui/tui/primitives/HNViewer.js +0 -63
  542. package/dist/src/ui/tui/primitives/HNViewer.js.map +0 -1
  543. package/dist/src/ui/tui/primitives/LinesBlock.d.ts +0 -16
  544. package/dist/src/ui/tui/primitives/LinesBlock.js +0 -37
  545. package/dist/src/ui/tui/primitives/LinesBlock.js.map +0 -1
  546. package/dist/src/ui/tui/primitives/LoadingBox.d.ts +0 -8
  547. package/dist/src/ui/tui/primitives/LoadingBox.js +0 -10
  548. package/dist/src/ui/tui/primitives/LoadingBox.js.map +0 -1
  549. package/dist/src/ui/tui/primitives/LogViewer.d.ts +0 -11
  550. package/dist/src/ui/tui/primitives/LogViewer.js +0 -55
  551. package/dist/src/ui/tui/primitives/LogViewer.js.map +0 -1
  552. package/dist/src/ui/tui/primitives/ModalOverlay.d.ts +0 -25
  553. package/dist/src/ui/tui/primitives/ModalOverlay.js +0 -7
  554. package/dist/src/ui/tui/primitives/ModalOverlay.js.map +0 -1
  555. package/dist/src/ui/tui/primitives/NodeBlock.d.ts +0 -13
  556. package/dist/src/ui/tui/primitives/NodeBlock.js +0 -17
  557. package/dist/src/ui/tui/primitives/NodeBlock.js.map +0 -1
  558. package/dist/src/ui/tui/primitives/PickerMenu.d.ts +0 -20
  559. package/dist/src/ui/tui/primitives/PickerMenu.js +0 -143
  560. package/dist/src/ui/tui/primitives/PickerMenu.js.map +0 -1
  561. package/dist/src/ui/tui/primitives/ProgressList.d.ts +0 -17
  562. package/dist/src/ui/tui/primitives/ProgressList.js +0 -32
  563. package/dist/src/ui/tui/primitives/ProgressList.js.map +0 -1
  564. package/dist/src/ui/tui/primitives/PromptLabel.d.ts +0 -11
  565. package/dist/src/ui/tui/primitives/PromptLabel.js +0 -13
  566. package/dist/src/ui/tui/primitives/PromptLabel.js.map +0 -1
  567. package/dist/src/ui/tui/primitives/ScreenContainer.d.ts +0 -16
  568. package/dist/src/ui/tui/primitives/ScreenContainer.js +0 -36
  569. package/dist/src/ui/tui/primitives/ScreenContainer.js.map +0 -1
  570. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +0 -22
  571. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +0 -35
  572. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js.map +0 -1
  573. package/dist/src/ui/tui/primitives/SplitView.d.ts +0 -11
  574. package/dist/src/ui/tui/primitives/SplitView.js +0 -9
  575. package/dist/src/ui/tui/primitives/SplitView.js.map +0 -1
  576. package/dist/src/ui/tui/primitives/TabContainer.d.ts +0 -23
  577. package/dist/src/ui/tui/primitives/TabContainer.js +0 -45
  578. package/dist/src/ui/tui/primitives/TabContainer.js.map +0 -1
  579. package/dist/src/ui/tui/primitives/TextBlock.d.ts +0 -41
  580. package/dist/src/ui/tui/primitives/TextBlock.js +0 -144
  581. package/dist/src/ui/tui/primitives/TextBlock.js.map +0 -1
  582. package/dist/src/ui/tui/primitives/content-types.d.ts +0 -37
  583. package/dist/src/ui/tui/primitives/content-types.js +0 -19
  584. package/dist/src/ui/tui/primitives/content-types.js.map +0 -1
  585. package/dist/src/ui/tui/primitives/index.d.ts +0 -27
  586. package/dist/src/ui/tui/primitives/index.js +0 -24
  587. package/dist/src/ui/tui/primitives/index.js.map +0 -1
  588. package/dist/src/ui/tui/primitives/layout-helpers.d.ts +0 -36
  589. package/dist/src/ui/tui/primitives/layout-helpers.js +0 -95
  590. package/dist/src/ui/tui/primitives/layout-helpers.js.map +0 -1
  591. package/dist/src/ui/tui/primitives/text-helpers.d.ts +0 -10
  592. package/dist/src/ui/tui/primitives/text-helpers.js +0 -43
  593. package/dist/src/ui/tui/primitives/text-helpers.js.map +0 -1
  594. package/dist/src/ui/tui/router.d.ts +0 -58
  595. package/dist/src/ui/tui/router.js +0 -96
  596. package/dist/src/ui/tui/router.js.map +0 -1
  597. package/dist/src/ui/tui/screen-registry.d.ts +0 -19
  598. package/dist/src/ui/tui/screen-registry.js +0 -44
  599. package/dist/src/ui/tui/screen-registry.js.map +0 -1
  600. package/dist/src/ui/tui/screens/AuthErrorScreen.d.ts +0 -7
  601. package/dist/src/ui/tui/screens/AuthErrorScreen.js +0 -16
  602. package/dist/src/ui/tui/screens/AuthErrorScreen.js.map +0 -1
  603. package/dist/src/ui/tui/screens/AuthScreen.d.ts +0 -13
  604. package/dist/src/ui/tui/screens/AuthScreen.js +0 -20
  605. package/dist/src/ui/tui/screens/AuthScreen.js.map +0 -1
  606. package/dist/src/ui/tui/screens/IntroScreen.d.ts +0 -16
  607. package/dist/src/ui/tui/screens/IntroScreen.js +0 -79
  608. package/dist/src/ui/tui/screens/IntroScreen.js.map +0 -1
  609. package/dist/src/ui/tui/screens/ManagedSettingsScreen.d.ts +0 -13
  610. package/dist/src/ui/tui/screens/ManagedSettingsScreen.js +0 -32
  611. package/dist/src/ui/tui/screens/ManagedSettingsScreen.js.map +0 -1
  612. package/dist/src/ui/tui/screens/McpScreen.d.ts +0 -24
  613. package/dist/src/ui/tui/screens/McpScreen.js +0 -127
  614. package/dist/src/ui/tui/screens/McpScreen.js.map +0 -1
  615. package/dist/src/ui/tui/screens/OutroScreen.d.ts +0 -11
  616. package/dist/src/ui/tui/screens/OutroScreen.js +0 -22
  617. package/dist/src/ui/tui/screens/OutroScreen.js.map +0 -1
  618. package/dist/src/ui/tui/screens/PortConflictScreen.d.ts +0 -11
  619. package/dist/src/ui/tui/screens/PortConflictScreen.js +0 -30
  620. package/dist/src/ui/tui/screens/PortConflictScreen.js.map +0 -1
  621. package/dist/src/ui/tui/screens/RevenueIntroScreen.d.ts +0 -16
  622. package/dist/src/ui/tui/screens/RevenueIntroScreen.js +0 -64
  623. package/dist/src/ui/tui/screens/RevenueIntroScreen.js.map +0 -1
  624. package/dist/src/ui/tui/screens/RunScreen.d.ts +0 -16
  625. package/dist/src/ui/tui/screens/RunScreen.js +0 -73
  626. package/dist/src/ui/tui/screens/RunScreen.js.map +0 -1
  627. package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +0 -6
  628. package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +0 -30
  629. package/dist/src/ui/tui/screens/SettingsOverrideScreen.js.map +0 -1
  630. package/dist/src/ui/tui/screens/SetupScreen.d.ts +0 -13
  631. package/dist/src/ui/tui/screens/SetupScreen.js +0 -74
  632. package/dist/src/ui/tui/screens/SetupScreen.js.map +0 -1
  633. package/dist/src/ui/tui/screens/SkillsScreen.d.ts +0 -14
  634. package/dist/src/ui/tui/screens/SkillsScreen.js +0 -71
  635. package/dist/src/ui/tui/screens/SkillsScreen.js.map +0 -1
  636. package/dist/src/ui/tui/screens/health/HealthCheckScreen.d.ts +0 -14
  637. package/dist/src/ui/tui/screens/health/HealthCheckScreen.js +0 -77
  638. package/dist/src/ui/tui/screens/health/HealthCheckScreen.js.map +0 -1
  639. package/dist/src/ui/tui/services/mcp-installer.d.ts +0 -21
  640. package/dist/src/ui/tui/services/mcp-installer.js +0 -58
  641. package/dist/src/ui/tui/services/mcp-installer.js.map +0 -1
  642. package/dist/src/ui/tui/start-tui.d.ts +0 -9
  643. package/dist/src/ui/tui/start-tui.js +0 -41
  644. package/dist/src/ui/tui/start-tui.js.map +0 -1
  645. package/dist/src/ui/tui/store.d.ts +0 -190
  646. package/dist/src/ui/tui/store.js +0 -472
  647. package/dist/src/ui/tui/store.js.map +0 -1
  648. package/dist/src/ui/tui/styles.d.ts +0 -32
  649. package/dist/src/ui/tui/styles.js +0 -35
  650. package/dist/src/ui/tui/styles.js.map +0 -1
  651. package/dist/src/ui/wizard-ui.d.ts +0 -81
  652. package/dist/src/ui/wizard-ui.js +0 -19
  653. package/dist/src/ui/wizard-ui.js.map +0 -1
  654. package/dist/src/utils/__tests__/analytics.test.d.ts +0 -1
  655. package/dist/src/utils/__tests__/analytics.test.js +0 -136
  656. package/dist/src/utils/__tests__/analytics.test.js.map +0 -1
  657. package/dist/src/utils/__tests__/provisioning.test.d.ts +0 -1
  658. package/dist/src/utils/__tests__/provisioning.test.js +0 -192
  659. package/dist/src/utils/__tests__/provisioning.test.js.map +0 -1
  660. package/dist/src/utils/__tests__/semver.test.d.ts +0 -1
  661. package/dist/src/utils/__tests__/semver.test.js +0 -159
  662. package/dist/src/utils/__tests__/semver.test.js.map +0 -1
  663. package/dist/src/utils/__tests__/setup-utils.test.d.ts +0 -1
  664. package/dist/src/utils/__tests__/setup-utils.test.js +0 -138
  665. package/dist/src/utils/__tests__/setup-utils.test.js.map +0 -1
  666. package/dist/src/utils/analytics.d.ts +0 -33
  667. package/dist/src/utils/analytics.js +0 -137
  668. package/dist/src/utils/analytics.js.map +0 -1
  669. package/dist/src/utils/anthropic-status.d.ts +0 -17
  670. package/dist/src/utils/anthropic-status.js +0 -49
  671. package/dist/src/utils/anthropic-status.js.map +0 -1
  672. package/dist/src/utils/bash.d.ts +0 -2
  673. package/dist/src/utils/bash.js +0 -54
  674. package/dist/src/utils/bash.js.map +0 -1
  675. package/dist/src/utils/custom-headers.d.ts +0 -9
  676. package/dist/src/utils/custom-headers.js +0 -24
  677. package/dist/src/utils/custom-headers.js.map +0 -1
  678. package/dist/src/utils/debug.d.ts +0 -29
  679. package/dist/src/utils/debug.js +0 -87
  680. package/dist/src/utils/debug.js.map +0 -1
  681. package/dist/src/utils/env-api-key.d.ts +0 -5
  682. package/dist/src/utils/env-api-key.js +0 -57
  683. package/dist/src/utils/env-api-key.js.map +0 -1
  684. package/dist/src/utils/environment.d.ts +0 -4
  685. package/dist/src/utils/environment.js +0 -77
  686. package/dist/src/utils/environment.js.map +0 -1
  687. package/dist/src/utils/file-utils.d.ts +0 -10
  688. package/dist/src/utils/file-utils.js +0 -49
  689. package/dist/src/utils/file-utils.js.map +0 -1
  690. package/dist/src/utils/logging.d.ts +0 -9
  691. package/dist/src/utils/logging.js +0 -47
  692. package/dist/src/utils/logging.js.map +0 -1
  693. package/dist/src/utils/oauth.d.ts +0 -33
  694. package/dist/src/utils/oauth.js +0 -288
  695. package/dist/src/utils/oauth.js.map +0 -1
  696. package/dist/src/utils/package-json.d.ts +0 -30
  697. package/dist/src/utils/package-json.js +0 -47
  698. package/dist/src/utils/package-json.js.map +0 -1
  699. package/dist/src/utils/package-manager.d.ts +0 -21
  700. package/dist/src/utils/package-manager.js +0 -210
  701. package/dist/src/utils/package-manager.js.map +0 -1
  702. package/dist/src/utils/provisioning.d.ts +0 -25
  703. package/dist/src/utils/provisioning.js +0 -191
  704. package/dist/src/utils/provisioning.js.map +0 -1
  705. package/dist/src/utils/rules/astro-rules.md +0 -44
  706. package/dist/src/utils/rules/next-rules.md +0 -9
  707. package/dist/src/utils/rules/react-native-rules.md +0 -7
  708. package/dist/src/utils/rules/react-rules.md +0 -7
  709. package/dist/src/utils/rules/svelte-rules.md +0 -7
  710. package/dist/src/utils/rules/universal.md +0 -32
  711. package/dist/src/utils/semver.d.ts +0 -21
  712. package/dist/src/utils/semver.js +0 -87
  713. package/dist/src/utils/semver.js.map +0 -1
  714. package/dist/src/utils/setup-utils.d.ts +0 -79
  715. package/dist/src/utils/setup-utils.js +0 -406
  716. package/dist/src/utils/setup-utils.js.map +0 -1
  717. package/dist/src/utils/string.d.ts +0 -1
  718. package/dist/src/utils/string.js +0 -9
  719. package/dist/src/utils/string.js.map +0 -1
  720. package/dist/src/utils/types.d.ts +0 -85
  721. package/dist/src/utils/types.js +0 -3
  722. package/dist/src/utils/types.js.map +0 -1
  723. package/dist/src/utils/urls.d.ts +0 -7
  724. package/dist/src/utils/urls.js +0 -78
  725. package/dist/src/utils/urls.js.map +0 -1
  726. package/dist/src/utils/vendor/is-unicorn-supported.d.ts +0 -1
  727. package/dist/src/utils/vendor/is-unicorn-supported.js +0 -24
  728. package/dist/src/utils/vendor/is-unicorn-supported.js.map +0 -1
  729. package/dist/src/utils/wizard-abort.d.ts +0 -16
  730. package/dist/src/utils/wizard-abort.js +0 -59
  731. package/dist/src/utils/wizard-abort.js.map +0 -1
@@ -1,1082 +0,0 @@
1
- "use strict";
2
- /**
3
- * Shared agent interface for PostHog wizards
4
- * Uses Claude Agent SDK directly with PostHog LLM gateway
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- var __importDefault = (this && this.__importDefault) || function (mod) {
40
- return (mod && mod.__esModule) ? mod : { "default": mod };
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.isSkillInstallCommand = exports.AgentErrorType = exports.AgentSignals = void 0;
44
- exports.checkClaudeSettingsOverrides = checkClaudeSettingsOverrides;
45
- exports.checkAllSettingsConflicts = checkAllSettingsConflicts;
46
- exports.backupAndFixClaudeSettings = backupAndFixClaudeSettings;
47
- exports.restoreClaudeSettings = restoreClaudeSettings;
48
- exports.createStopHook = createStopHook;
49
- exports.buildWizardMetadata = buildWizardMetadata;
50
- exports.wizardCanUseTool = wizardCanUseTool;
51
- exports.initializeAgent = initializeAgent;
52
- exports.runAgent = runAgent;
53
- const path_1 = __importDefault(require("path"));
54
- const fs = __importStar(require("fs"));
55
- const ui_1 = require("../../ui");
56
- const debug_1 = require("../../utils/debug");
57
- const analytics_1 = require("../../utils/analytics");
58
- const constants_1 = require("../constants");
59
- const wizard_session_1 = require("../wizard-session");
60
- const wizard_abort_1 = require("../../utils/wizard-abort");
61
- const custom_headers_1 = require("../../utils/custom-headers");
62
- const urls_1 = require("../../utils/urls");
63
- const safe_tools_1 = require("../safe-tools");
64
- const wizard_tools_1 = require("../wizard-tools");
65
- const yara_hooks_1 = require("../yara-hooks");
66
- const commandments_1 = require("./commandments");
67
- // Dynamic import cache for ESM module
68
- let _sdkModule = null;
69
- async function getSDKModule() {
70
- if (!_sdkModule) {
71
- _sdkModule = await import('@anthropic-ai/claude-agent-sdk');
72
- }
73
- return _sdkModule;
74
- }
75
- /**
76
- * Get the path to the bundled Claude Code CLI from the SDK package.
77
- * This ensures we use the SDK's bundled version rather than the user's installed Claude Code.
78
- */
79
- function getClaudeCodeExecutablePath() {
80
- // require.resolve finds the package's main entry, then we get cli.js from same dir
81
- const sdkPackagePath = require.resolve('@anthropic-ai/claude-agent-sdk');
82
- return path_1.default.join(path_1.default.dirname(sdkPackagePath), 'cli.js');
83
- }
84
- exports.AgentSignals = {
85
- /** Signal emitted when the agent reports progress to the user */
86
- STATUS: '[STATUS]',
87
- /** Signal emitted when the agent cannot access the PostHog MCP server */
88
- ERROR_MCP_MISSING: '[ERROR-MCP-MISSING]',
89
- /** Signal emitted when the agent cannot access the setup resource */
90
- ERROR_RESOURCE_MISSING: '[ERROR-RESOURCE-MISSING]',
91
- /**
92
- * Signal emitted when the agent cannot complete the workflow and is
93
- * aborting intentionally (distinct from errors). Format: "[ABORT] <reason>".
94
- * Workflows can declare an onAbort handler to render a custom screen.
95
- */
96
- ABORT: '[ABORT]',
97
- /** Signal emitted when the agent provides a remark about its run */
98
- WIZARD_REMARK: '[WIZARD-REMARK]',
99
- /** Signal prefix for benchmark logging */
100
- BENCHMARK: '[BENCHMARK]',
101
- };
102
- /**
103
- * Error types that can be returned from agent execution.
104
- * These correspond to the error signals that the agent emits.
105
- */
106
- var AgentErrorType;
107
- (function (AgentErrorType) {
108
- /** Agent could not access the PostHog MCP server */
109
- AgentErrorType["MCP_MISSING"] = "WIZARD_MCP_MISSING";
110
- /** Agent could not access the setup resource */
111
- AgentErrorType["RESOURCE_MISSING"] = "WIZARD_RESOURCE_MISSING";
112
- /** API rate limit exceeded */
113
- AgentErrorType["RATE_LIMIT"] = "WIZARD_RATE_LIMIT";
114
- /** Generic API error */
115
- AgentErrorType["API_ERROR"] = "WIZARD_API_ERROR";
116
- /** YARA scanner detected a security violation */
117
- AgentErrorType["YARA_VIOLATION"] = "WIZARD_YARA_VIOLATION";
118
- /** Agent intentionally aborted the workflow (emitted [ABORT] <reason>) */
119
- AgentErrorType["ABORT"] = "WIZARD_ABORT";
120
- })(AgentErrorType || (exports.AgentErrorType = AgentErrorType = {}));
121
- const BLOCKING_ENV_KEYS = [
122
- 'ANTHROPIC_API_KEY',
123
- 'ANTHROPIC_BASE_URL',
124
- 'ANTHROPIC_AUTH_TOKEN',
125
- ];
126
- const BLOCKING_SETTINGS_KEYS = ['apiKeyHelper'];
127
- /**
128
- * Check a single settings file for blocking env keys and top-level settings keys.
129
- * Returns matched key names, or an empty array if none found.
130
- */
131
- function checkSettingsFile(filePath) {
132
- try {
133
- const raw = fs.readFileSync(filePath, 'utf-8');
134
- const parsed = JSON.parse(raw);
135
- const matched = [];
136
- // Check env block for blocking env keys
137
- const envBlock = parsed?.env;
138
- if (envBlock && typeof envBlock === 'object') {
139
- matched.push(...BLOCKING_ENV_KEYS.filter((key) => key in envBlock));
140
- }
141
- // Check top-level settings keys
142
- matched.push(...BLOCKING_SETTINGS_KEYS.filter((key) => key in parsed && parsed[key] !== '' && parsed[key] != null));
143
- return matched;
144
- }
145
- catch {
146
- // File doesn't exist or isn't valid JSON — skip
147
- return [];
148
- }
149
- }
150
- /**
151
- * Check if .claude/settings.json in the project directory contains env
152
- * overrides or apiKeyHelper that block the Wizard from accessing the PostHog LLM Gateway.
153
- * Returns the list of matched key names, or an empty array if none found.
154
- *
155
- * @deprecated Use {@link checkAllSettingsConflicts} for comprehensive detection.
156
- */
157
- function checkClaudeSettingsOverrides(workingDirectory) {
158
- const candidates = [
159
- path_1.default.join(workingDirectory, '.claude', 'settings.json'),
160
- path_1.default.join(workingDirectory, '.claude', 'settings'),
161
- ];
162
- for (const filePath of candidates) {
163
- const matched = checkSettingsFile(filePath);
164
- if (matched.length > 0)
165
- return matched;
166
- }
167
- return [];
168
- }
169
- /**
170
- * Managed settings path on macOS.
171
- * IT/MDM-deployed settings — readable by all users, writable only by root.
172
- */
173
- const MANAGED_SETTINGS_PATH = '/Library/Application Support/ClaudeCode/managed-settings.json';
174
- /**
175
- * Check project and org-managed settings for blocking keys that conflict
176
- * with the wizard's proxy auth.
177
- */
178
- function checkAllSettingsConflicts(workingDirectory) {
179
- const conflicts = [];
180
- const sources = [
181
- {
182
- source: 'managed',
183
- paths: [MANAGED_SETTINGS_PATH],
184
- writable: false,
185
- },
186
- {
187
- source: 'project',
188
- paths: [
189
- path_1.default.join(workingDirectory, '.claude', 'settings.json'),
190
- path_1.default.join(workingDirectory, '.claude', 'settings'),
191
- ],
192
- writable: true,
193
- },
194
- ];
195
- for (const { source, paths, writable } of sources) {
196
- for (const filePath of paths) {
197
- const keys = checkSettingsFile(filePath);
198
- if (keys.length > 0) {
199
- conflicts.push({ source, keys, writable });
200
- break; // Only one conflict per source (settings.json vs settings fallback)
201
- }
202
- }
203
- }
204
- return conflicts;
205
- }
206
- /**
207
- * Copy .claude/settings.json to .wizard-backup (overwriting if it exists),
208
- * then remove the original so the SDK doesn't load the blocking overrides.
209
- */
210
- function backupAndFixClaudeSettings(workingDirectory) {
211
- for (const name of ['settings.json', 'settings']) {
212
- const filePath = path_1.default.join(workingDirectory, '.claude', name);
213
- const backupPath = `${filePath}.wizard-backup`;
214
- analytics_1.analytics.wizardCapture('backedup-claude-settings');
215
- try {
216
- fs.copyFileSync(filePath, backupPath);
217
- fs.unlinkSync(filePath);
218
- (0, wizard_abort_1.registerCleanup)(() => {
219
- try {
220
- restoreClaudeSettings(workingDirectory);
221
- }
222
- catch (error) {
223
- analytics_1.analytics.captureException(error);
224
- }
225
- });
226
- return true;
227
- }
228
- catch {
229
- // File doesn't exist — try next candidate
230
- }
231
- }
232
- return false;
233
- }
234
- /**
235
- * Restore .claude/settings.json from .wizard-backup.
236
- * Copies (not moves) so the backup is preserved.
237
- */
238
- function restoreClaudeSettings(workingDirectory) {
239
- for (const name of ['settings.json', 'settings']) {
240
- const backup = path_1.default.join(workingDirectory, '.claude', `${name}.wizard-backup`);
241
- try {
242
- fs.copyFileSync(backup, path_1.default.join(workingDirectory, '.claude', name));
243
- analytics_1.analytics.wizardCapture('restored-claude-settings');
244
- return;
245
- }
246
- catch (error) {
247
- analytics_1.analytics.captureException(error);
248
- }
249
- }
250
- }
251
- /**
252
- * Create a stop hook callback that drains the additional feature queue,
253
- * then collects a remark, then allows stop.
254
- *
255
- * Three-phase logic using closure state:
256
- * Phase 1 — drain queue: block with each feature prompt in order
257
- * Phase 2 — collect remark (once): block with remark prompt
258
- * Phase 3 — allow stop: return {}
259
- */
260
- function createStopHook(featureQueue, collectedText) {
261
- let featureIndex = 0;
262
- let remarkRequested = false;
263
- return (input) => {
264
- (0, debug_1.logToFile)('Stop hook triggered', {
265
- stop_hook_active: input.stop_hook_active,
266
- featureIndex,
267
- remarkRequested,
268
- queueLength: featureQueue.length,
269
- });
270
- // On API errors, allow stop immediately — blocking with remark/feature
271
- // prompts would just fail again. The auth error screen is shown separately.
272
- if (collectedText) {
273
- const text = collectedText.join('\n');
274
- if (text.includes('API Error:')) {
275
- (0, debug_1.logToFile)('Stop hook: API error detected, allowing immediate stop');
276
- return {};
277
- }
278
- }
279
- // Phase 1: drain feature queue
280
- if (featureIndex < featureQueue.length) {
281
- const feature = featureQueue[featureIndex++];
282
- const prompt = wizard_session_1.ADDITIONAL_FEATURE_PROMPTS[feature];
283
- (0, debug_1.logToFile)(`Stop hook: injecting feature prompt for ${feature}`);
284
- return { decision: 'block', reason: prompt };
285
- }
286
- // Phase 2: collect remark (once)
287
- if (!remarkRequested) {
288
- remarkRequested = true;
289
- (0, debug_1.logToFile)('Stop hook: requesting reflection');
290
- return {
291
- decision: 'block',
292
- reason: `Before concluding, provide a brief remark about what information or guidance would have been useful to have in the integration prompt or documentation for this run. Specifically cite anything that would have prevented tool failures, erroneous edits, or other wasted turns. Format your response exactly as: ${exports.AgentSignals.WIZARD_REMARK} Your remark here`,
293
- };
294
- }
295
- // Phase 3: allow stop
296
- (0, debug_1.logToFile)('Stop hook: allowing stop');
297
- return {};
298
- };
299
- }
300
- /**
301
- * Select wizard metadata from WIZARD_VARIANTS using the variant feature flag.
302
- * If the flag is missing or the value is not in config, returns the "base" variant (VARIANT: "base").
303
- */
304
- function buildWizardMetadata(flags = {}) {
305
- const variantKey = flags[constants_1.WIZARD_VARIANT_FLAG_KEY];
306
- const variant = (variantKey && constants_1.WIZARD_VARIANTS[variantKey]) ?? constants_1.WIZARD_VARIANTS['base'];
307
- return { ...variant };
308
- }
309
- /**
310
- * Build env for the SDK subprocess: process.env plus ANTHROPIC_CUSTOM_HEADERS from wizard metadata/flags.
311
- */
312
- function buildAgentEnv(wizardMetadata, wizardFlags) {
313
- const headers = (0, custom_headers_1.createCustomHeaders)();
314
- for (const [key, value] of Object.entries(wizardMetadata)) {
315
- headers.add(key.startsWith(constants_1.POSTHOG_PROPERTY_HEADER_PREFIX)
316
- ? key
317
- : `${constants_1.POSTHOG_PROPERTY_HEADER_PREFIX}${key}`, value);
318
- }
319
- for (const [flagKey, variant] of Object.entries(wizardFlags)) {
320
- if (!flagKey.toLowerCase().startsWith('wizard'))
321
- continue;
322
- headers.addFlag(flagKey, variant);
323
- }
324
- const encoded = headers.encode();
325
- (0, debug_1.logToFile)('ANTHROPIC_CUSTOM_HEADERS', encoded);
326
- return encoded;
327
- }
328
- /**
329
- * Package managers that can be used to run commands.
330
- */
331
- const PACKAGE_MANAGERS = [
332
- // JavaScript
333
- 'npm',
334
- 'pnpm',
335
- 'yarn',
336
- 'bun',
337
- 'npx',
338
- // Python
339
- 'pip',
340
- 'pip3',
341
- 'poetry',
342
- 'pipenv',
343
- 'uv',
344
- ];
345
- /**
346
- * Safe scripts/commands that can be run with any package manager.
347
- * Uses startsWith matching, so 'build' matches 'build', 'build:prod', etc.
348
- * Note: Linting tools are in LINTING_TOOLS and checked separately.
349
- */
350
- const SAFE_SCRIPTS = [
351
- // Package installation
352
- 'install',
353
- 'add',
354
- 'ci',
355
- // Build
356
- 'build',
357
- // Type checking (various naming conventions)
358
- 'tsc',
359
- 'typecheck',
360
- 'type-check',
361
- 'check-types',
362
- 'types',
363
- // Linting/formatting script names (actual tools are in LINTING_TOOLS)
364
- 'lint',
365
- 'format',
366
- ];
367
- /**
368
- * Dangerous shell operators that could allow command injection.
369
- * Note: We handle `2>&1` and `| tail/head` separately as safe patterns.
370
- */
371
- const DANGEROUS_OPERATORS = /[;`$()]/;
372
- // Re-export for backwards compatibility — canonical source is skill-install.ts
373
- var skill_install_1 = require("../skill-install");
374
- Object.defineProperty(exports, "isSkillInstallCommand", { enumerable: true, get: function () { return skill_install_1.isSkillInstallCommand; } });
375
- /**
376
- * Check if command is an allowed package manager command.
377
- * Matches: <pkg-manager> [run|exec] <safe-script> [args...]
378
- */
379
- function matchesAllowedPrefix(command) {
380
- const parts = command.split(/\s+/);
381
- if (parts.length === 0 || !PACKAGE_MANAGERS.includes(parts[0])) {
382
- return false;
383
- }
384
- // Skip 'run' or 'exec' if present
385
- let scriptIndex = 1;
386
- if (parts[scriptIndex] === 'run' || parts[scriptIndex] === 'exec') {
387
- scriptIndex++;
388
- }
389
- // Get the script/command portion (may include args)
390
- const scriptPart = parts.slice(scriptIndex).join(' ');
391
- // Check if script starts with any safe script name or linting tool
392
- return (SAFE_SCRIPTS.some((safe) => scriptPart.startsWith(safe)) ||
393
- safe_tools_1.LINTING_TOOLS.some((tool) => scriptPart.startsWith(tool)));
394
- }
395
- /**
396
- * Permission hook that allows only safe commands.
397
- * - Package manager install commands
398
- * - Build/typecheck/lint commands for verification
399
- * - Piping to tail/head for output limiting is allowed
400
- * - Stderr redirection (2>&1) is allowed
401
- */
402
- function wizardCanUseTool(toolName, input) {
403
- // Block direct reads/writes of .env files — use wizard-tools MCP instead
404
- if (toolName === 'Read' || toolName === 'Write' || toolName === 'Edit') {
405
- const filePath = typeof input.file_path === 'string' ? input.file_path : '';
406
- const basename = path_1.default.basename(filePath);
407
- if (basename.startsWith('.env')) {
408
- (0, debug_1.logToFile)(`Denying ${toolName} on env file: ${filePath}`);
409
- return {
410
- behavior: 'deny',
411
- message: `Direct ${toolName} of ${basename} is not allowed. Use the wizard-tools MCP server (check_env_keys / set_env_values) to read or modify environment variables.`,
412
- };
413
- }
414
- return { behavior: 'allow', updatedInput: input };
415
- }
416
- // Block Grep when it directly targets a .env file.
417
- // Note: ripgrep skips dotfiles (like .env*) by default during directory traversal,
418
- // so broad searches like `Grep { path: "." }` are already safe.
419
- if (toolName === 'Grep') {
420
- const grepPath = typeof input.path === 'string' ? input.path : '';
421
- if (grepPath && path_1.default.basename(grepPath).startsWith('.env')) {
422
- (0, debug_1.logToFile)(`Denying Grep on env file: ${grepPath}`);
423
- return {
424
- behavior: 'deny',
425
- message: `Grep on ${path_1.default.basename(grepPath)} is not allowed. Use the wizard-tools MCP server (check_env_keys) to check environment variables.`,
426
- };
427
- }
428
- return { behavior: 'allow', updatedInput: input };
429
- }
430
- // Allow all other non-Bash tools
431
- if (toolName !== 'Bash') {
432
- return { behavior: 'allow', updatedInput: input };
433
- }
434
- const command = (typeof input.command === 'string' ? input.command : '').trim();
435
- // Block definitely dangerous operators: ; ` $ ( )
436
- if (DANGEROUS_OPERATORS.test(command)) {
437
- (0, debug_1.logToFile)(`Denying bash command with dangerous operators: ${command}`);
438
- (0, debug_1.debug)(`Denying bash command with dangerous operators: ${command}`);
439
- analytics_1.analytics.wizardCapture('bash denied', {
440
- reason: 'dangerous operators',
441
- command,
442
- });
443
- return {
444
- behavior: 'deny',
445
- message: `Bash command not allowed. Shell operators like ; \` $ ( ) are not permitted.`,
446
- };
447
- }
448
- // Normalize: remove safe stderr redirection (2>&1, 2>&2, etc.)
449
- const normalized = command.replace(/\s*\d*>&\d+\s*/g, ' ').trim();
450
- // Check for pipe to tail/head (safe output limiting)
451
- const pipeMatch = normalized.match(/^(.+?)\s*\|\s*(tail|head)(\s+\S+)*\s*$/);
452
- if (pipeMatch) {
453
- const baseCommand = pipeMatch[1].trim();
454
- // Block if base command has pipes or & (multiple chaining)
455
- if (/[|&]/.test(baseCommand)) {
456
- (0, debug_1.logToFile)(`Denying bash command with multiple pipes: ${command}`);
457
- (0, debug_1.debug)(`Denying bash command with multiple pipes: ${command}`);
458
- analytics_1.analytics.wizardCapture('bash denied', {
459
- reason: 'multiple pipes',
460
- command,
461
- });
462
- return {
463
- behavior: 'deny',
464
- message: `Bash command not allowed. Only single pipe to tail/head is permitted.`,
465
- };
466
- }
467
- if (matchesAllowedPrefix(baseCommand)) {
468
- (0, debug_1.logToFile)(`Allowing bash command with output limiter: ${command}`);
469
- (0, debug_1.debug)(`Allowing bash command with output limiter: ${command}`);
470
- return { behavior: 'allow', updatedInput: input };
471
- }
472
- }
473
- // Block remaining pipes and & (not covered by tail/head case above)
474
- if (/[|&]/.test(normalized)) {
475
- (0, debug_1.logToFile)(`Denying bash command with pipe/&: ${command}`);
476
- (0, debug_1.debug)(`Denying bash command with pipe/&: ${command}`);
477
- analytics_1.analytics.wizardCapture('bash denied', {
478
- reason: 'disallowed pipe',
479
- command,
480
- });
481
- return {
482
- behavior: 'deny',
483
- message: `Bash command not allowed. Pipes are only permitted with tail/head for output limiting.`,
484
- };
485
- }
486
- // Check if command starts with any allowed prefix (package manager commands)
487
- if (matchesAllowedPrefix(normalized)) {
488
- (0, debug_1.logToFile)(`Allowing bash command: ${command}`);
489
- (0, debug_1.debug)(`Allowing bash command: ${command}`);
490
- return { behavior: 'allow', updatedInput: input };
491
- }
492
- (0, debug_1.logToFile)(`Denying bash command: ${command}`);
493
- (0, debug_1.debug)(`Denying bash command: ${command}`);
494
- analytics_1.analytics.wizardCapture('bash denied', {
495
- reason: 'not in allowlist',
496
- command,
497
- });
498
- return {
499
- behavior: 'deny',
500
- message: `Bash command not allowed. Only install, build, typecheck, lint, and formatting commands are permitted.`,
501
- };
502
- }
503
- /**
504
- * Initialize agent configuration for the LLM gateway
505
- */
506
- async function initializeAgent(config, options) {
507
- // Initialize log file for this run
508
- (0, debug_1.initLogFile)();
509
- (0, debug_1.logToFile)('Agent initialization starting');
510
- (0, debug_1.logToFile)('Install directory:', options.installDir);
511
- (0, ui_1.getUI)().log.step('Initializing Claude agent...');
512
- try {
513
- // Configure LLM gateway environment variables (inherited by SDK subprocess)
514
- const gatewayUrl = (0, urls_1.getLlmGatewayUrlFromHost)(config.posthogApiHost);
515
- process.env.ANTHROPIC_BASE_URL = gatewayUrl;
516
- process.env.ANTHROPIC_AUTH_TOKEN = config.posthogApiKey;
517
- // Use CLAUDE_CODE_OAUTH_TOKEN to override any stored /login credentials
518
- process.env.CLAUDE_CODE_OAUTH_TOKEN = config.posthogApiKey;
519
- // Disable experimental betas (like input_examples) that the LLM gateway doesn't support
520
- process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = 'true';
521
- (0, debug_1.logToFile)('Configured LLM gateway:', gatewayUrl);
522
- // Configure MCP server with PostHog authentication
523
- const mcpServers = {
524
- 'posthog-wizard': {
525
- type: 'http',
526
- url: config.posthogMcpUrl,
527
- headers: {
528
- Authorization: `Bearer ${config.posthogApiKey}`,
529
- 'User-Agent': constants_1.WIZARD_USER_AGENT,
530
- },
531
- },
532
- ...Object.fromEntries(Object.entries(config.additionalMcpServers ?? {}).map(([name, { url }]) => [name, { type: 'http', url }])),
533
- };
534
- // Add in-process wizard tools (env files, package manager detection, skill loading)
535
- const wizardToolsServer = await (0, wizard_tools_1.createWizardToolsServer)({
536
- workingDirectory: config.workingDirectory,
537
- detectPackageManager: config.detectPackageManager,
538
- skillsBaseUrl: config.skillsBaseUrl,
539
- });
540
- mcpServers['wizard-tools'] = wizardToolsServer;
541
- const agentRunConfig = {
542
- workingDirectory: config.workingDirectory,
543
- mcpServers,
544
- model: 'anthropic/claude-sonnet-4-6',
545
- wizardFlags: config.wizardFlags,
546
- wizardMetadata: config.wizardMetadata,
547
- };
548
- (0, debug_1.logToFile)('Agent config:', {
549
- workingDirectory: agentRunConfig.workingDirectory,
550
- posthogMcpUrl: config.posthogMcpUrl,
551
- gatewayUrl,
552
- apiKeyPresent: !!config.posthogApiKey,
553
- });
554
- if (options.debug) {
555
- (0, debug_1.debug)('Agent config:', {
556
- workingDirectory: agentRunConfig.workingDirectory,
557
- posthogMcpUrl: config.posthogMcpUrl,
558
- gatewayUrl,
559
- apiKeyPresent: !!config.posthogApiKey,
560
- });
561
- }
562
- (0, ui_1.getUI)().log.step(`Verbose logs: ${(0, debug_1.getLogFilePath)()}`);
563
- (0, ui_1.getUI)().log.success("Agent initialized. Let's get cooking!");
564
- return agentRunConfig;
565
- }
566
- catch (error) {
567
- (0, ui_1.getUI)().log.error(`Failed to initialize agent: ${error.message}`);
568
- (0, debug_1.logToFile)('Agent initialization error:', error);
569
- (0, debug_1.debug)('Agent initialization error:', error);
570
- throw error;
571
- }
572
- }
573
- /**
574
- * Check agent output for YARA scanner violations.
575
- * Used in both the success and catch paths of runAgent.
576
- */
577
- function checkYaraViolation(outputText, spinner) {
578
- if (outputText.includes('[YARA CRITICAL]') ||
579
- outputText.includes('[YARA] Scanner error')) {
580
- (0, debug_1.logToFile)('Agent error: YARA_VIOLATION');
581
- spinner.stop('Security violation detected');
582
- return { error: AgentErrorType.YARA_VIOLATION };
583
- }
584
- return null;
585
- }
586
- /**
587
- * Execute an agent with the provided prompt and options
588
- * Handles the full lifecycle: spinner, execution, error handling
589
- *
590
- * @returns An object containing any error detected in the agent's output
591
- */
592
- async function runAgent(agentConfig, prompt, options, spinner, config, middleware) {
593
- const { spinnerMessage = 'Customizing your PostHog setup...', successMessage = 'PostHog integration complete', errorMessage = 'Integration failed', abortCases = [], } = config ?? {};
594
- const { query } = await getSDKModule();
595
- spinner.start(spinnerMessage);
596
- const cliPath = getClaudeCodeExecutablePath();
597
- (0, debug_1.logToFile)('Starting agent run');
598
- (0, debug_1.logToFile)('Claude Code executable:', cliPath);
599
- (0, debug_1.logToFile)('Prompt:', prompt);
600
- const startTime = Date.now();
601
- const collectedText = [];
602
- // Track if we received a successful result (before any cleanup errors)
603
- let receivedSuccessResult = false;
604
- let loggedInitialContext = false;
605
- let lastResultMessage = null;
606
- // Workaround for SDK bug: stdin closes before canUseTool responses can be sent.
607
- // The fix is to use an async generator for the prompt that stays open until
608
- // the result is received, keeping the stdin stream alive for permission responses.
609
- // See: https://github.com/anthropics/claude-code/issues/4775
610
- // See: https://github.com/anthropics/claude-agent-sdk-typescript/issues/41
611
- let signalDone;
612
- const resultReceived = new Promise((resolve) => {
613
- signalDone = resolve;
614
- });
615
- const createPromptStream = async function* () {
616
- yield {
617
- type: 'user',
618
- session_id: '',
619
- message: { role: 'user', content: prompt },
620
- parent_tool_use_id: null,
621
- };
622
- await resultReceived;
623
- };
624
- // Helper to handle successful completion (used in normal path and race condition recovery)
625
- const completeWithSuccess = (suppressedError) => {
626
- const durationMs = Date.now() - startTime;
627
- const durationSeconds = Math.round(durationMs / 1000);
628
- if (suppressedError) {
629
- (0, debug_1.logToFile)(`Ignoring post-completion error, agent completed successfully in ${durationSeconds}s`);
630
- (0, debug_1.logToFile)('Suppressed error:', suppressedError.message);
631
- }
632
- else {
633
- (0, debug_1.logToFile)(`Agent run completed in ${durationSeconds}s`);
634
- }
635
- // Extract and capture the agent's reflection on the run
636
- const outputText = collectedText.join('\n');
637
- const remarkRegex = new RegExp(`${exports.AgentSignals.WIZARD_REMARK.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*(.+?)(?:\\n|$)`, 's');
638
- const remarkMatch = outputText.match(remarkRegex);
639
- if (remarkMatch && remarkMatch[1]) {
640
- const remark = remarkMatch[1].trim();
641
- if (remark) {
642
- analytics_1.analytics.capture(constants_1.WIZARD_REMARK_EVENT_NAME, { remark });
643
- }
644
- }
645
- analytics_1.analytics.wizardCapture('agent completed', {
646
- duration_ms: durationMs,
647
- duration_seconds: durationSeconds,
648
- });
649
- try {
650
- middleware?.finalize(lastResultMessage, durationMs);
651
- }
652
- catch (e) {
653
- (0, debug_1.logToFile)(`${exports.AgentSignals.BENCHMARK} Middleware finalize error:`, e);
654
- }
655
- spinner.stop(successMessage);
656
- return {};
657
- };
658
- // Event plan file watcher — cleaned up in finally block
659
- let eventPlanWatcher;
660
- let eventPlanInterval;
661
- // Abort controller — lets us force-kill the SDK query when we detect an
662
- // [ABORT] signal in the agent's output. Also stashes the reason so the
663
- // runner can surface it via outroData after we unwind.
664
- const abortController = new AbortController();
665
- let abortReason = null;
666
- try {
667
- // Tools needed for the wizard:
668
- // - File operations: Read, Write, Edit
669
- // - Search: Glob, Grep
670
- // - Commands: Bash (with restrictions via canUseTool)
671
- // - MCP discovery: ListMcpResourcesTool (to find available skills)
672
- // - Skills: Skill (to load installed PostHog skills)
673
- // MCP tools (PostHog) come from mcpServers, not allowedTools
674
- const allowedTools = [
675
- 'Read',
676
- 'Write',
677
- 'Edit',
678
- 'Glob',
679
- 'Grep',
680
- 'Bash',
681
- 'ListMcpResourcesTool',
682
- 'Skill',
683
- ...wizard_tools_1.WIZARD_TOOL_NAMES,
684
- ];
685
- const response = query({
686
- prompt: createPromptStream(),
687
- options: {
688
- abortController,
689
- model: agentConfig.model,
690
- cwd: agentConfig.workingDirectory,
691
- permissionMode: 'acceptEdits',
692
- betas: ['context-1m-2025-08-07'],
693
- mcpServers: agentConfig.mcpServers,
694
- // Load skills from project's .claude/skills/ directory
695
- settingSources: ['project'],
696
- // Explicitly enable required tools including Skill
697
- allowedTools,
698
- sandbox: {
699
- enabled: true,
700
- allowUnsandboxedCommands: false,
701
- filesystem: {
702
- allowWrite: [
703
- '/' + agentConfig.workingDirectory,
704
- '/' + agentConfig.workingDirectory + '/**',
705
- '//tmp',
706
- '//tmp/**',
707
- '//private/tmp',
708
- '//private/tmp/**',
709
- // Package manager stores — allow writes so pnpm/npm can
710
- // install packages without breaking the user's existing setup
711
- '~/Library/pnpm/store/**', // pnpm global store (macOS)
712
- '~/.local/share/pnpm/store/**', // pnpm global store (Linux)
713
- '~/.pnpm-store/**', // pnpm alternate store
714
- '~/.npm/**', // npm cache
715
- '~/.yarn/**', // yarn classic cache
716
- '~/.yarn/berry/**', // yarn berry cache
717
- ],
718
- },
719
- network: {
720
- allowedDomains: [
721
- 'github.com',
722
- 'api.github.com',
723
- 'raw.githubusercontent.com',
724
- 'release-assets.githubusercontent.com',
725
- 'objects.githubusercontent.com',
726
- ],
727
- },
728
- },
729
- env: {
730
- ...process.env,
731
- // Prevent user's Anthropic API key from overriding the wizard's OAuth token
732
- ANTHROPIC_API_KEY: undefined,
733
- // Defer MCP tool schemas to avoid bloating the system prompt.
734
- // The posthog-wizard MCP exposes many query tools with large schemas;
735
- // without deferral these consume ~113k tokens upfront, leaving
736
- // almost no room in Sonnet's 200k context window.
737
- ENABLE_TOOL_SEARCH: 'auto:0',
738
- ANTHROPIC_CUSTOM_HEADERS: buildAgentEnv(agentConfig.wizardMetadata ?? {}, agentConfig.wizardFlags ?? {}),
739
- },
740
- canUseTool: (toolName, input) => {
741
- (0, debug_1.logToFile)('canUseTool called:', { toolName, input });
742
- const result = wizardCanUseTool(toolName, input);
743
- (0, debug_1.logToFile)('canUseTool result:', result);
744
- return Promise.resolve(result);
745
- },
746
- systemPrompt: {
747
- type: 'preset',
748
- preset: 'claude_code',
749
- // Append wizard-wide commandments rather than replacing
750
- // the preset so we keep default Claude Code behaviors.
751
- append: (0, commandments_1.getWizardCommandments)(),
752
- },
753
- tools: { type: 'preset', preset: 'claude_code' },
754
- // Capture stderr from CLI subprocess for debugging
755
- stderr: (data) => {
756
- (0, debug_1.logToFile)('CLI stderr:', data);
757
- if (options.debug) {
758
- (0, debug_1.debug)('CLI stderr:', data);
759
- }
760
- },
761
- // Stop hook: drain additional feature queue, then collect remark, then allow stop
762
- hooks: {
763
- PreToolUse: (0, yara_hooks_1.createPreToolUseYaraHooks)(),
764
- PostToolUse: (0, yara_hooks_1.createPostToolUseYaraHooks)(),
765
- Stop: [
766
- {
767
- hooks: [
768
- createStopHook(config?.additionalFeatureQueue ?? [], collectedText),
769
- ],
770
- timeout: 30,
771
- },
772
- ],
773
- },
774
- },
775
- });
776
- // Watch for .posthog-events.json and feed into the store
777
- const eventPlanPath = path_1.default.join(agentConfig.workingDirectory, '.posthog-events.json');
778
- const readEventPlan = () => {
779
- try {
780
- const content = fs.readFileSync(eventPlanPath, 'utf-8');
781
- const parsed = JSON.parse(content);
782
- if (Array.isArray(parsed)) {
783
- (0, ui_1.getUI)().setEventPlan(parsed.map((e) => ({
784
- name: (e.name ?? e.event ?? ''),
785
- description: (e.description ?? ''),
786
- })));
787
- }
788
- }
789
- catch {
790
- // File doesn't exist or isn't valid JSON yet
791
- }
792
- };
793
- try {
794
- eventPlanWatcher = fs.watch(eventPlanPath, () => readEventPlan());
795
- readEventPlan();
796
- }
797
- catch {
798
- // File doesn't exist yet — poll until it appears
799
- eventPlanInterval = setInterval(() => {
800
- try {
801
- fs.accessSync(eventPlanPath);
802
- readEventPlan();
803
- clearInterval(eventPlanInterval);
804
- eventPlanInterval = undefined;
805
- eventPlanWatcher = fs.watch(eventPlanPath, () => readEventPlan());
806
- }
807
- catch {
808
- // Still waiting
809
- }
810
- }, 1000);
811
- }
812
- // Process the async generator
813
- for await (const message of response) {
814
- // Log initial context size on the first assistant response so we can
815
- // detect sudden shifts in starting context (e.g. MCP schema bloat).
816
- if (!loggedInitialContext && message.type === 'assistant') {
817
- const usage = message.message?.usage;
818
- if (usage) {
819
- const input = usage.input_tokens ?? 0;
820
- const cacheCreation = usage.cache_creation_input_tokens ?? 0;
821
- const cacheRead = usage.cache_read_input_tokens ?? 0;
822
- const initialTokens = input + cacheCreation + cacheRead;
823
- (0, debug_1.logToFile)(`Initial context: ${initialTokens} tokens (input=${input}, cache_creation=${cacheCreation}, cache_read=${cacheRead})`);
824
- analytics_1.analytics.wizardCapture('agent initial context', {
825
- initial_tokens: initialTokens,
826
- input_tokens: input,
827
- cache_creation_input_tokens: cacheCreation,
828
- cache_read_input_tokens: cacheRead,
829
- });
830
- }
831
- loggedInitialContext = true;
832
- }
833
- // Pass receivedSuccessResult so handleSDKMessage can suppress user-facing error
834
- // output for post-success cleanup errors while still logging them to file
835
- handleSDKMessage(message, options, spinner, collectedText, receivedSuccessResult);
836
- // [ABORT] detection: the skill emits "[ABORT] <reason>" when it
837
- // cannot complete the workflow. Kill the SDK query immediately —
838
- // the prompt doesn't need to cooperate with "and exit" because the
839
- // abort is enforced here. The reason is surfaced via the returned
840
- // AgentErrorType.ABORT so the runner can render a custom screen.
841
- if (abortCases.length > 0 &&
842
- !abortReason &&
843
- message.type === 'assistant') {
844
- const content = message.message?.content;
845
- if (Array.isArray(content)) {
846
- for (const block of content) {
847
- if (block.type === 'text' && typeof block.text === 'string') {
848
- const match = block.text.match(/\[ABORT\]\s*(.+?)(?:\n|$)/);
849
- if (match) {
850
- abortReason = match[1].trim();
851
- (0, debug_1.logToFile)(`Agent emitted [ABORT]: ${abortReason}`);
852
- abortController.abort();
853
- signalDone();
854
- break;
855
- }
856
- }
857
- }
858
- }
859
- }
860
- // 401: show auth error screen and exit immediately
861
- if (message.type === 'assistant' &&
862
- collectedText.join('\n').includes('API Error: 401')) {
863
- signalDone();
864
- spinner.stop('Authentication failed');
865
- (0, debug_1.logToFile)('Agent error: 401, showing auth error screen');
866
- (0, ui_1.getUI)().showAuthError();
867
- await (0, wizard_abort_1.wizardAbort)({
868
- message: 'Authentication failed (401)',
869
- error: new wizard_abort_1.WizardError('Authentication failed'),
870
- });
871
- }
872
- try {
873
- middleware?.onMessage(message);
874
- }
875
- catch (e) {
876
- (0, debug_1.logToFile)(`${exports.AgentSignals.BENCHMARK} Middleware onMessage error:`, e);
877
- }
878
- // Signal completion when result received
879
- if (message.type === 'result') {
880
- // Track successful results before any potential cleanup errors
881
- // The SDK may emit a second error result during cleanup due to a race condition
882
- if (message.subtype === 'success' && !message.is_error) {
883
- receivedSuccessResult = true;
884
- lastResultMessage = message;
885
- }
886
- signalDone();
887
- }
888
- }
889
- // If the middleware caught an [ABORT] and aborted the SDK query, surface
890
- // it as a structured error before checking other signals.
891
- if (abortReason) {
892
- spinner.stop('Wizard aborted');
893
- return { error: AgentErrorType.ABORT, message: abortReason };
894
- }
895
- const outputText = collectedText.join('\n');
896
- // Check for YARA scanner violations
897
- const yaraResult = checkYaraViolation(outputText, spinner);
898
- if (yaraResult)
899
- return yaraResult;
900
- // Check for error markers in the agent's output
901
- if (outputText.includes(exports.AgentSignals.ERROR_MCP_MISSING)) {
902
- (0, debug_1.logToFile)('Agent error: MCP_MISSING');
903
- spinner.stop('Agent could not access PostHog MCP');
904
- return { error: AgentErrorType.MCP_MISSING };
905
- }
906
- if (outputText.includes(exports.AgentSignals.ERROR_RESOURCE_MISSING)) {
907
- (0, debug_1.logToFile)('Agent error: RESOURCE_MISSING');
908
- spinner.stop('Agent could not access setup resource');
909
- return { error: AgentErrorType.RESOURCE_MISSING };
910
- }
911
- // Check for API errors (rate limits, etc.)
912
- // Extract just the API error line(s), not the entire output
913
- const apiErrorMatch = outputText.match(/API Error: [^\n]+/g);
914
- const apiErrorMessage = apiErrorMatch
915
- ? apiErrorMatch.join('\n')
916
- : 'Unknown API error';
917
- if (outputText.includes('API Error: 429')) {
918
- (0, debug_1.logToFile)('Agent error: RATE_LIMIT');
919
- spinner.stop('Rate limit exceeded');
920
- return { error: AgentErrorType.RATE_LIMIT, message: apiErrorMessage };
921
- }
922
- if (outputText.includes('API Error:')) {
923
- (0, debug_1.logToFile)('Agent error: API_ERROR');
924
- spinner.stop('API error occurred');
925
- return { error: AgentErrorType.API_ERROR, message: apiErrorMessage };
926
- }
927
- return completeWithSuccess();
928
- }
929
- catch (error) {
930
- // Signal done to unblock the async generator
931
- signalDone();
932
- // If the middleware caught an [ABORT] and triggered abortController.abort(),
933
- // the SDK will throw an AbortError — surface it as a clean abort result.
934
- if (abortReason) {
935
- spinner.stop('Wizard aborted');
936
- return { error: AgentErrorType.ABORT, message: abortReason };
937
- }
938
- // If we already received a successful result, the error is from SDK cleanup
939
- // This happens due to a race condition: the SDK tries to send a cleanup command
940
- // after the prompt stream closes, but streaming mode is still active.
941
- // See: https://github.com/anthropics/claude-agent-sdk-typescript/issues/41
942
- if (receivedSuccessResult) {
943
- return completeWithSuccess(error);
944
- }
945
- // Check if we collected an error before the exception was thrown
946
- const outputText = collectedText.join('\n');
947
- // Check for YARA scanner violations
948
- const yaraResult = checkYaraViolation(outputText, spinner);
949
- if (yaraResult)
950
- return yaraResult;
951
- // Extract just the API error line(s), not the entire output
952
- const apiErrorMatch = outputText.match(/API Error: [^\n]+/g);
953
- const apiErrorMessage = apiErrorMatch
954
- ? apiErrorMatch.join('\n')
955
- : 'Unknown API error';
956
- if (outputText.includes('API Error: 429')) {
957
- (0, debug_1.logToFile)('Agent error (caught): RATE_LIMIT');
958
- spinner.stop('Rate limit exceeded');
959
- return { error: AgentErrorType.RATE_LIMIT, message: apiErrorMessage };
960
- }
961
- if (outputText.includes('API Error:')) {
962
- (0, debug_1.logToFile)('Agent error (caught): API_ERROR');
963
- spinner.stop('API error occurred');
964
- return { error: AgentErrorType.API_ERROR, message: apiErrorMessage };
965
- }
966
- // No API error found, re-throw the original exception
967
- spinner.stop(errorMessage);
968
- (0, ui_1.getUI)().log.error(`Error: ${error.message}`);
969
- (0, debug_1.logToFile)('Agent run failed:', error);
970
- (0, debug_1.debug)('Full error:', error);
971
- throw error;
972
- }
973
- finally {
974
- eventPlanWatcher?.close();
975
- if (eventPlanInterval)
976
- clearInterval(eventPlanInterval);
977
- // Always capture run duration, even on abort/error, so we can alert on
978
- // long runs where the user gave up before completion.
979
- if (!receivedSuccessResult) {
980
- const durationMs = Date.now() - startTime;
981
- analytics_1.analytics.wizardCapture('agent aborted', {
982
- duration_ms: durationMs,
983
- duration_seconds: Math.round(durationMs / 1000),
984
- });
985
- }
986
- }
987
- }
988
- /**
989
- * Handle SDK messages and provide user feedback
990
- *
991
- * @param receivedSuccessResult - If true, suppress user-facing error output for cleanup errors
992
- * while still logging to file. The SDK may emit a second error
993
- * result after success due to cleanup race conditions.
994
- */
995
- function handleSDKMessage(message, options, spinner, collectedText, receivedSuccessResult = false) {
996
- (0, debug_1.logToFile)(`SDK Message: ${message.type}`, JSON.stringify(message, null, 2));
997
- if (options.debug) {
998
- (0, debug_1.debug)(`SDK Message type: ${message.type}`);
999
- }
1000
- switch (message.type) {
1001
- case 'assistant': {
1002
- // Extract text content from assistant messages
1003
- const content = message.message?.content;
1004
- if (Array.isArray(content)) {
1005
- for (const block of content) {
1006
- if (block.type === 'text' && typeof block.text === 'string') {
1007
- collectedText.push(block.text);
1008
- // Check for [STATUS] markers
1009
- const statusRegex = new RegExp(`^.*${exports.AgentSignals.STATUS.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*(.+?)$`, 'm');
1010
- const statusMatch = block.text.match(statusRegex);
1011
- if (statusMatch) {
1012
- const statusText = statusMatch[1].trim();
1013
- (0, ui_1.getUI)().pushStatus(statusText);
1014
- spinner.message(statusText);
1015
- }
1016
- }
1017
- // Intercept TodoWrite tool_use blocks for task progression
1018
- if (block.type === 'tool_use' &&
1019
- block.name === 'TodoWrite' &&
1020
- block.input?.todos &&
1021
- Array.isArray(block.input.todos)) {
1022
- (0, ui_1.getUI)().syncTodos(block.input.todos);
1023
- }
1024
- }
1025
- }
1026
- break;
1027
- }
1028
- case 'result': {
1029
- // Check is_error flag - can be true even when subtype is 'success'
1030
- if (message.is_error) {
1031
- (0, debug_1.logToFile)('Agent result with error:', message.result);
1032
- if (typeof message.result === 'string') {
1033
- collectedText.push(message.result);
1034
- }
1035
- // Only show errors to user if we haven't already succeeded.
1036
- // Post-success errors are SDK cleanup noise (telemetry failures, streaming
1037
- // mode race conditions). Full message already logged above via JSON dump.
1038
- if (message.errors && !receivedSuccessResult) {
1039
- for (const err of message.errors) {
1040
- (0, ui_1.getUI)().log.error(`Error: ${err}`);
1041
- (0, debug_1.logToFile)('ERROR:', err);
1042
- }
1043
- }
1044
- }
1045
- else if (message.subtype === 'success') {
1046
- (0, debug_1.logToFile)('Agent completed successfully');
1047
- if (typeof message.result === 'string') {
1048
- collectedText.push(message.result);
1049
- }
1050
- }
1051
- else {
1052
- (0, debug_1.logToFile)('Agent result with error:', message.result);
1053
- // Error result - only show to user if we haven't already succeeded.
1054
- // Full message already logged above via JSON dump.
1055
- if (message.errors && !receivedSuccessResult) {
1056
- for (const err of message.errors) {
1057
- (0, ui_1.getUI)().log.error(`Error: ${err}`);
1058
- (0, debug_1.logToFile)('ERROR:', err);
1059
- }
1060
- }
1061
- }
1062
- break;
1063
- }
1064
- case 'system': {
1065
- if (message.subtype === 'init') {
1066
- (0, debug_1.logToFile)('Agent session initialized', {
1067
- model: message.model,
1068
- tools: message.tools?.length,
1069
- mcpServers: message.mcp_servers,
1070
- });
1071
- }
1072
- break;
1073
- }
1074
- default:
1075
- // Log other message types for debugging
1076
- if (options.debug) {
1077
- (0, debug_1.debug)(`Unhandled message type: ${message.type}`);
1078
- }
1079
- break;
1080
- }
1081
- }
1082
- //# sourceMappingURL=agent-interface.js.map