@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.
- package/README.md +40 -0
- package/dist/McpScreen-BmHapIaP.js +3357 -0
- package/dist/McpScreen-BmHapIaP.js.map +1 -0
- package/dist/add-mcp-server-to-clients-DZtISNrs.js +455 -0
- package/dist/add-mcp-server-to-clients-DZtISNrs.js.map +1 -0
- package/dist/agent-runner-CGwrcr57.js +1112 -0
- package/dist/agent-runner-CGwrcr57.js.map +1 -0
- package/dist/agent-skill-BVjJqol6.js +59 -0
- package/dist/agent-skill-BVjJqol6.js.map +1 -0
- package/dist/analytics-C4jO5Qda.js +207 -0
- package/dist/analytics-C4jO5Qda.js.map +1 -0
- package/dist/analytics-CpjaBpx6.js +2 -0
- package/dist/bin.d.ts +1 -2
- package/dist/bin.js +635 -524
- package/dist/bin.js.map +1 -1
- package/dist/craft-pre-release.sh +10 -0
- package/dist/debug-CIyf0ZGx.js +2 -0
- package/dist/debug-CyJ_3dTP.js +201 -0
- package/dist/debug-CyJ_3dTP.js.map +1 -0
- package/dist/defaults-DoVkE0gW.js +234 -0
- package/dist/defaults-DoVkE0gW.js.map +1 -0
- package/dist/detection-CkLpxBCD.js +122 -0
- package/dist/detection-CkLpxBCD.js.map +1 -0
- package/dist/env-api-key-K8TdTDII.js +20 -0
- package/dist/env-api-key-K8TdTDII.js.map +1 -0
- package/dist/file-utils-BWneZy6p.js +38 -0
- package/dist/file-utils-BWneZy6p.js.map +1 -0
- package/dist/generate-version.cjs +11 -0
- package/dist/package-json-BQgl5C3Z.js +2 -0
- package/dist/package-json-Ctq6LSl8.js +25 -0
- package/dist/package-json-Ctq6LSl8.js.map +1 -0
- package/dist/package-manager-nUQ-ebjr.js +222 -0
- package/dist/package-manager-nUQ-ebjr.js.map +1 -0
- package/dist/posthog-integration-BzxdDK4z.js +230 -0
- package/dist/posthog-integration-BzxdDK4z.js.map +1 -0
- package/dist/readiness-Dn7eq8NE.js +2156 -0
- package/dist/readiness-Dn7eq8NE.js.map +1 -0
- package/dist/registry-s55_iuJT.js +2922 -0
- package/dist/registry-s55_iuJT.js.map +1 -0
- package/dist/rolldown-runtime-B_-DWIq7.js +15 -0
- package/dist/router-D5A1Sb4p.js +141 -0
- package/dist/router-D5A1Sb4p.js.map +1 -0
- package/dist/setup-utils-CdDnllRW.js +928 -0
- package/dist/setup-utils-CdDnllRW.js.map +1 -0
- package/dist/smoke-test-ci.sh +165 -0
- package/dist/start-playground-B8qCLu7U.js +1005 -0
- package/dist/start-playground-B8qCLu7U.js.map +1 -0
- package/dist/start-tui-PygiIyNC.js +1887 -0
- package/dist/start-tui-PygiIyNC.js.map +1 -0
- package/dist/steps-CySv8XdD.js +146 -0
- package/dist/steps-CySv8XdD.js.map +1 -0
- package/dist/telemetry-Ct_GGkSO.js +13 -0
- package/dist/telemetry-Ct_GGkSO.js.map +1 -0
- package/dist/wizard-abort-7HUIsqv1.js +39 -0
- package/dist/wizard-abort-7HUIsqv1.js.map +1 -0
- package/dist/wizard-abort-Dhjb2o08.js +2 -0
- package/dist/wizard-session-Db6R023m.js +62 -0
- package/dist/wizard-session-Db6R023m.js.map +1 -0
- package/dist/wizard-session-y7nf6aKH.js +2 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +16 -8
- package/dist/src/__tests__/cli.test.d.ts +0 -1
- package/dist/src/__tests__/cli.test.js +0 -256
- package/dist/src/__tests__/cli.test.js.map +0 -1
- package/dist/src/__tests__/package-json.test.d.ts +0 -1
- package/dist/src/__tests__/package-json.test.js +0 -173
- package/dist/src/__tests__/package-json.test.js.map +0 -1
- package/dist/src/__tests__/wizard-abort.test.d.ts +0 -1
- package/dist/src/__tests__/wizard-abort.test.js +0 -148
- package/dist/src/__tests__/wizard-abort.test.js.map +0 -1
- package/dist/src/frameworks/android/android-wizard-agent.d.ts +0 -6
- package/dist/src/frameworks/android/android-wizard-agent.js +0 -142
- package/dist/src/frameworks/android/android-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/android/utils.d.ts +0 -11
- package/dist/src/frameworks/android/utils.js +0 -97
- package/dist/src/frameworks/android/utils.js.map +0 -1
- package/dist/src/frameworks/angular/angular-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/angular/angular-wizard-agent.js +0 -65
- package/dist/src/frameworks/angular/angular-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/angular/utils.d.ts +0 -4
- package/dist/src/frameworks/angular/utils.js +0 -9
- package/dist/src/frameworks/angular/utils.js.map +0 -1
- package/dist/src/frameworks/astro/astro-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/astro/astro-wizard-agent.js +0 -102
- package/dist/src/frameworks/astro/astro-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/astro/utils.d.ts +0 -14
- package/dist/src/frameworks/astro/utils.js +0 -114
- package/dist/src/frameworks/astro/utils.js.map +0 -1
- package/dist/src/frameworks/django/django-wizard-agent.d.ts +0 -8
- package/dist/src/frameworks/django/django-wizard-agent.js +0 -173
- package/dist/src/frameworks/django/django-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/django/utils.d.ts +0 -31
- package/dist/src/frameworks/django/utils.js +0 -306
- package/dist/src/frameworks/django/utils.js.map +0 -1
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.d.ts +0 -5
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +0 -191
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/fastapi/utils.d.ts +0 -26
- package/dist/src/frameworks/fastapi/utils.js +0 -258
- package/dist/src/frameworks/fastapi/utils.js.map +0 -1
- package/dist/src/frameworks/flask/flask-wizard-agent.d.ts +0 -8
- package/dist/src/frameworks/flask/flask-wizard-agent.js +0 -179
- package/dist/src/frameworks/flask/flask-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/flask/utils.d.ts +0 -28
- package/dist/src/frameworks/flask/utils.js +0 -344
- package/dist/src/frameworks/flask/utils.js.map +0 -1
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +0 -61
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.d.ts +0 -3
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +0 -152
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/javascript-web/utils.d.ts +0 -28
- package/dist/src/frameworks/javascript-web/utils.js +0 -147
- package/dist/src/frameworks/javascript-web/utils.js.map +0 -1
- package/dist/src/frameworks/laravel/laravel-wizard-agent.d.ts +0 -10
- package/dist/src/frameworks/laravel/laravel-wizard-agent.js +0 -182
- package/dist/src/frameworks/laravel/laravel-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/laravel/utils.d.ts +0 -38
- package/dist/src/frameworks/laravel/utils.js +0 -238
- package/dist/src/frameworks/laravel/utils.js.map +0 -1
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +0 -94
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/nextjs/utils.d.ts +0 -12
- package/dist/src/frameworks/nextjs/utils.js +0 -52
- package/dist/src/frameworks/nextjs/utils.js.map +0 -1
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.d.ts +0 -6
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js +0 -77
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/python/python-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/python/python-wizard-agent.js +0 -195
- package/dist/src/frameworks/python/python-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/python/utils.d.ts +0 -28
- package/dist/src/frameworks/python/utils.js +0 -147
- package/dist/src/frameworks/python/utils.js.map +0 -1
- package/dist/src/frameworks/rails/rails-wizard-agent.d.ts +0 -8
- package/dist/src/frameworks/rails/rails-wizard-agent.js +0 -90
- package/dist/src/frameworks/rails/rails-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/rails/utils.d.ts +0 -37
- package/dist/src/frameworks/rails/utils.js +0 -187
- package/dist/src/frameworks/rails/utils.js.map +0 -1
- package/dist/src/frameworks/react-native/react-native-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js +0 -89
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/react-native/utils.d.ts +0 -8
- package/dist/src/frameworks/react-native/utils.js +0 -28
- package/dist/src/frameworks/react-native/utils.js.map +0 -1
- package/dist/src/frameworks/react-router/react-router-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +0 -94
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/react-router/utils.d.ts +0 -13
- package/dist/src/frameworks/react-router/utils.js +0 -161
- package/dist/src/frameworks/react-router/utils.js.map +0 -1
- package/dist/src/frameworks/ruby/ruby-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/ruby/ruby-wizard-agent.js +0 -113
- package/dist/src/frameworks/ruby/ruby-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/ruby/utils.d.ts +0 -25
- package/dist/src/frameworks/ruby/utils.js +0 -158
- package/dist/src/frameworks/ruby/utils.js.map +0 -1
- package/dist/src/frameworks/svelte/svelte-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/svelte/svelte-wizard-agent.js +0 -61
- package/dist/src/frameworks/svelte/svelte-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/swift/swift-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/swift/swift-wizard-agent.js +0 -143
- package/dist/src/frameworks/swift/swift-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/swift/utils.d.ts +0 -8
- package/dist/src/frameworks/swift/utils.js +0 -105
- package/dist/src/frameworks/swift/utils.js.map +0 -1
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.d.ts +0 -7
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js +0 -96
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/tanstack-router/utils.d.ts +0 -11
- package/dist/src/frameworks/tanstack-router/utils.js +0 -149
- package/dist/src/frameworks/tanstack-router/utils.js.map +0 -1
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js +0 -64
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js.map +0 -1
- package/dist/src/frameworks/tanstack-start/utils.d.ts +0 -4
- package/dist/src/frameworks/tanstack-start/utils.js +0 -9
- package/dist/src/frameworks/tanstack-start/utils.js.map +0 -1
- package/dist/src/frameworks/vue/vue-wizard-agent.d.ts +0 -4
- package/dist/src/frameworks/vue/vue-wizard-agent.js +0 -62
- package/dist/src/frameworks/vue/vue-wizard-agent.js.map +0 -1
- package/dist/src/lib/__tests__/agent-interface.test.d.ts +0 -1
- package/dist/src/lib/__tests__/agent-interface.test.js +0 -317
- package/dist/src/lib/__tests__/agent-interface.test.js.map +0 -1
- package/dist/src/lib/__tests__/cloudflare-detection.test.d.ts +0 -1
- package/dist/src/lib/__tests__/cloudflare-detection.test.js +0 -119
- package/dist/src/lib/__tests__/cloudflare-detection.test.js.map +0 -1
- package/dist/src/lib/__tests__/wizard-tools.test.d.ts +0 -1
- package/dist/src/lib/__tests__/wizard-tools.test.js +0 -200
- package/dist/src/lib/__tests__/wizard-tools.test.js.map +0 -1
- package/dist/src/lib/__tests__/yara-hooks.test.d.ts +0 -1
- package/dist/src/lib/__tests__/yara-hooks.test.js +0 -432
- package/dist/src/lib/__tests__/yara-hooks.test.js.map +0 -1
- package/dist/src/lib/__tests__/yara-scanner.test.d.ts +0 -1
- package/dist/src/lib/__tests__/yara-scanner.test.js +0 -613
- package/dist/src/lib/__tests__/yara-scanner.test.js.map +0 -1
- package/dist/src/lib/agent/__tests__/agent-prompt.test.d.ts +0 -1
- package/dist/src/lib/agent/__tests__/agent-prompt.test.js +0 -57
- package/dist/src/lib/agent/__tests__/agent-prompt.test.js.map +0 -1
- package/dist/src/lib/agent/agent-interface.d.ts +0 -171
- package/dist/src/lib/agent/agent-interface.js +0 -1082
- package/dist/src/lib/agent/agent-interface.js.map +0 -1
- package/dist/src/lib/agent/agent-prompt.d.ts +0 -23
- package/dist/src/lib/agent/agent-prompt.js +0 -47
- package/dist/src/lib/agent/agent-prompt.js.map +0 -1
- package/dist/src/lib/agent/agent-runner.d.ts +0 -78
- package/dist/src/lib/agent/agent-runner.js +0 -323
- package/dist/src/lib/agent/agent-runner.js.map +0 -1
- package/dist/src/lib/agent/commandments.d.ts +0 -1
- package/dist/src/lib/agent/commandments.js +0 -26
- package/dist/src/lib/agent/commandments.js.map +0 -1
- package/dist/src/lib/api.d.ts +0 -75
- package/dist/src/lib/api.js +0 -105
- package/dist/src/lib/api.js.map +0 -1
- package/dist/src/lib/cloudflare-detection.d.ts +0 -14
- package/dist/src/lib/cloudflare-detection.js +0 -74
- package/dist/src/lib/cloudflare-detection.js.map +0 -1
- package/dist/src/lib/constants.d.ts +0 -74
- package/dist/src/lib/constants.js +0 -98
- package/dist/src/lib/constants.js.map +0 -1
- package/dist/src/lib/detection/__tests__/context.test.d.ts +0 -1
- package/dist/src/lib/detection/__tests__/context.test.js +0 -72
- package/dist/src/lib/detection/__tests__/context.test.js.map +0 -1
- package/dist/src/lib/detection/__tests__/features.test.d.ts +0 -1
- package/dist/src/lib/detection/__tests__/features.test.js +0 -75
- package/dist/src/lib/detection/__tests__/features.test.js.map +0 -1
- package/dist/src/lib/detection/__tests__/package-manager.test.d.ts +0 -1
- package/dist/src/lib/detection/__tests__/package-manager.test.js +0 -195
- package/dist/src/lib/detection/__tests__/package-manager.test.js.map +0 -1
- package/dist/src/lib/detection/context.d.ts +0 -31
- package/dist/src/lib/detection/context.js +0 -92
- package/dist/src/lib/detection/context.js.map +0 -1
- package/dist/src/lib/detection/features.d.ts +0 -16
- package/dist/src/lib/detection/features.js +0 -56
- package/dist/src/lib/detection/features.js.map +0 -1
- package/dist/src/lib/detection/framework.d.ts +0 -14
- package/dist/src/lib/detection/framework.js +0 -35
- package/dist/src/lib/detection/framework.js.map +0 -1
- package/dist/src/lib/detection/index.d.ts +0 -3
- package/dist/src/lib/detection/index.js +0 -11
- package/dist/src/lib/detection/index.js.map +0 -1
- package/dist/src/lib/detection/package-manager.d.ts +0 -37
- package/dist/src/lib/detection/package-manager.js +0 -183
- package/dist/src/lib/detection/package-manager.js.map +0 -1
- package/dist/src/lib/framework-config.d.ts +0 -175
- package/dist/src/lib/framework-config.js +0 -22
- package/dist/src/lib/framework-config.js.map +0 -1
- package/dist/src/lib/health-checks/__tests__/health-checks.test.d.ts +0 -18
- package/dist/src/lib/health-checks/__tests__/health-checks.test.js +0 -759
- package/dist/src/lib/health-checks/__tests__/health-checks.test.js.map +0 -1
- package/dist/src/lib/health-checks/endpoints.d.ts +0 -4
- package/dist/src/lib/health-checks/endpoints.js +0 -49
- package/dist/src/lib/health-checks/endpoints.js.map +0 -1
- package/dist/src/lib/health-checks/index.d.ts +0 -4
- package/dist/src/lib/health-checks/index.js +0 -24
- package/dist/src/lib/health-checks/index.js.map +0 -1
- package/dist/src/lib/health-checks/readiness.d.ts +0 -29
- package/dist/src/lib/health-checks/readiness.js +0 -188
- package/dist/src/lib/health-checks/readiness.js.map +0 -1
- package/dist/src/lib/health-checks/statuspage.d.ts +0 -9
- package/dist/src/lib/health-checks/statuspage.js +0 -105
- package/dist/src/lib/health-checks/statuspage.js.map +0 -1
- package/dist/src/lib/health-checks/types.d.ts +0 -32
- package/dist/src/lib/health-checks/types.js +0 -10
- package/dist/src/lib/health-checks/types.js.map +0 -1
- package/dist/src/lib/helper-functions.d.ts +0 -1
- package/dist/src/lib/helper-functions.js +0 -6
- package/dist/src/lib/helper-functions.js.map +0 -1
- package/dist/src/lib/middleware/benchmark.d.ts +0 -54
- package/dist/src/lib/middleware/benchmark.js +0 -45
- package/dist/src/lib/middleware/benchmark.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/cache-tracker.d.ts +0 -44
- package/dist/src/lib/middleware/benchmarks/cache-tracker.js +0 -81
- package/dist/src/lib/middleware/benchmarks/cache-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.d.ts +0 -29
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +0 -60
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.d.ts +0 -26
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.js +0 -56
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/cost-tracker.d.ts +0 -16
- package/dist/src/lib/middleware/benchmarks/cost-tracker.js +0 -76
- package/dist/src/lib/middleware/benchmarks/cost-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/duration-tracker.d.ts +0 -20
- package/dist/src/lib/middleware/benchmarks/duration-tracker.js +0 -40
- package/dist/src/lib/middleware/benchmarks/duration-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/index.d.ts +0 -9
- package/dist/src/lib/middleware/benchmarks/index.js +0 -60
- package/dist/src/lib/middleware/benchmarks/index.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/json-writer.d.ts +0 -15
- package/dist/src/lib/middleware/benchmarks/json-writer.js +0 -144
- package/dist/src/lib/middleware/benchmarks/json-writer.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/summary.d.ts +0 -9
- package/dist/src/lib/middleware/benchmarks/summary.js +0 -102
- package/dist/src/lib/middleware/benchmarks/summary.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/token-tracker.d.ts +0 -40
- package/dist/src/lib/middleware/benchmarks/token-tracker.js +0 -77
- package/dist/src/lib/middleware/benchmarks/token-tracker.js.map +0 -1
- package/dist/src/lib/middleware/benchmarks/turn-counter.d.ts +0 -34
- package/dist/src/lib/middleware/benchmarks/turn-counter.js +0 -59
- package/dist/src/lib/middleware/benchmarks/turn-counter.js.map +0 -1
- package/dist/src/lib/middleware/config.d.ts +0 -24
- package/dist/src/lib/middleware/config.js +0 -78
- package/dist/src/lib/middleware/config.js.map +0 -1
- package/dist/src/lib/middleware/index.d.ts +0 -11
- package/dist/src/lib/middleware/index.js +0 -18
- package/dist/src/lib/middleware/index.js.map +0 -1
- package/dist/src/lib/middleware/phase-detector.d.ts +0 -7
- package/dist/src/lib/middleware/phase-detector.js +0 -64
- package/dist/src/lib/middleware/phase-detector.js.map +0 -1
- package/dist/src/lib/middleware/pipeline.d.ts +0 -29
- package/dist/src/lib/middleware/pipeline.js +0 -82
- package/dist/src/lib/middleware/pipeline.js.map +0 -1
- package/dist/src/lib/middleware/types.d.ts +0 -40
- package/dist/src/lib/middleware/types.js +0 -9
- package/dist/src/lib/middleware/types.js.map +0 -1
- package/dist/src/lib/registry.d.ts +0 -3
- package/dist/src/lib/registry.js +0 -49
- package/dist/src/lib/registry.js.map +0 -1
- package/dist/src/lib/safe-tools.d.ts +0 -2
- package/dist/src/lib/safe-tools.js +0 -215
- package/dist/src/lib/safe-tools.js.map +0 -1
- package/dist/src/lib/skill-install.d.ts +0 -10
- package/dist/src/lib/skill-install.js +0 -23
- package/dist/src/lib/skill-install.js.map +0 -1
- package/dist/src/lib/version.d.ts +0 -1
- package/dist/src/lib/version.js +0 -6
- package/dist/src/lib/version.js.map +0 -1
- package/dist/src/lib/wizard-session.d.ts +0 -146
- package/dist/src/lib/wizard-session.js +0 -116
- package/dist/src/lib/wizard-session.js.map +0 -1
- package/dist/src/lib/wizard-tools.d.ts +0 -91
- package/dist/src/lib/wizard-tools.js +0 -389
- package/dist/src/lib/wizard-tools.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/agent-skill.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/agent-skill.test.js +0 -66
- package/dist/src/lib/workflows/__tests__/agent-skill.test.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js +0 -101
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.js +0 -32
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.js.map +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-step.test.d.ts +0 -1
- package/dist/src/lib/workflows/__tests__/workflow-step.test.js +0 -54
- package/dist/src/lib/workflows/__tests__/workflow-step.test.js.map +0 -1
- package/dist/src/lib/workflows/agent-skill/index.d.ts +0 -44
- package/dist/src/lib/workflows/agent-skill/index.js +0 -47
- package/dist/src/lib/workflows/agent-skill/index.js.map +0 -1
- package/dist/src/lib/workflows/agent-skill/steps.d.ts +0 -8
- package/dist/src/lib/workflows/agent-skill/steps.js +0 -32
- package/dist/src/lib/workflows/agent-skill/steps.js.map +0 -1
- package/dist/src/lib/workflows/posthog-integration/detect.d.ts +0 -12
- package/dist/src/lib/workflows/posthog-integration/detect.js +0 -57
- package/dist/src/lib/workflows/posthog-integration/detect.js.map +0 -1
- package/dist/src/lib/workflows/posthog-integration/index.d.ts +0 -3
- package/dist/src/lib/workflows/posthog-integration/index.js +0 -152
- package/dist/src/lib/workflows/posthog-integration/index.js.map +0 -1
- package/dist/src/lib/workflows/posthog-integration/steps.d.ts +0 -9
- package/dist/src/lib/workflows/posthog-integration/steps.js +0 -100
- package/dist/src/lib/workflows/posthog-integration/steps.js.map +0 -1
- package/dist/src/lib/workflows/revenue-analytics/detect.d.ts +0 -40
- package/dist/src/lib/workflows/revenue-analytics/detect.js +0 -156
- package/dist/src/lib/workflows/revenue-analytics/detect.js.map +0 -1
- package/dist/src/lib/workflows/revenue-analytics/index.d.ts +0 -4
- package/dist/src/lib/workflows/revenue-analytics/index.js +0 -30
- package/dist/src/lib/workflows/revenue-analytics/index.js.map +0 -1
- package/dist/src/lib/workflows/revenue-analytics/steps.d.ts +0 -8
- package/dist/src/lib/workflows/revenue-analytics/steps.js +0 -48
- package/dist/src/lib/workflows/revenue-analytics/steps.js.map +0 -1
- package/dist/src/lib/workflows/workflow-registry.d.ts +0 -18
- package/dist/src/lib/workflows/workflow-registry.js +0 -32
- package/dist/src/lib/workflows/workflow-registry.js.map +0 -1
- package/dist/src/lib/workflows/workflow-step.d.ts +0 -126
- package/dist/src/lib/workflows/workflow-step.js +0 -28
- package/dist/src/lib/workflows/workflow-step.js.map +0 -1
- package/dist/src/lib/yara-hooks.d.ts +0 -44
- package/dist/src/lib/yara-hooks.js +0 -377
- package/dist/src/lib/yara-hooks.js.map +0 -1
- package/dist/src/lib/yara-scanner.d.ts +0 -61
- package/dist/src/lib/yara-scanner.js +0 -328
- package/dist/src/lib/yara-scanner.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +0 -30
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +0 -138
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.d.ts +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js +0 -72
- package/dist/src/steps/add-mcp-server-to-clients/__tests__/defaults.test.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.d.ts +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js +0 -341
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/claude.test.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.d.ts +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.js +0 -108
- package/dist/src/steps/add-mcp-server-to-clients/clients/__tests__/codex.test.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +0 -89
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +0 -169
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +0 -80
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +0 -64
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +0 -88
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +0 -76
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +0 -84
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +0 -61
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +0 -92
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +0 -101
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +0 -110
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +0 -102
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +0 -119
- package/dist/src/steps/add-mcp-server-to-clients/defaults.js +0 -239
- package/dist/src/steps/add-mcp-server-to-clients/defaults.js.map +0 -1
- package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +0 -23
- package/dist/src/steps/add-mcp-server-to-clients/index.js +0 -111
- package/dist/src/steps/add-mcp-server-to-clients/index.js.map +0 -1
- package/dist/src/steps/add-or-update-environment-variables.d.ts +0 -10
- package/dist/src/steps/add-or-update-environment-variables.js +0 -188
- package/dist/src/steps/add-or-update-environment-variables.js.map +0 -1
- package/dist/src/steps/index.d.ts +0 -4
- package/dist/src/steps/index.js +0 -21
- package/dist/src/steps/index.js.map +0 -1
- package/dist/src/steps/run-prettier.d.ts +0 -5
- package/dist/src/steps/run-prettier.js +0 -91
- package/dist/src/steps/run-prettier.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -11
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +0 -12
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/index.d.ts +0 -6
- package/dist/src/steps/upload-environment-variables/index.js +0 -38
- package/dist/src/steps/upload-environment-variables/index.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.d.ts +0 -1
- package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.js +0 -117
- package/dist/src/steps/upload-environment-variables/providers/__tests__/vercel.test.js.map +0 -1
- package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +0 -15
- package/dist/src/steps/upload-environment-variables/providers/vercel.js +0 -142
- package/dist/src/steps/upload-environment-variables/providers/vercel.js.map +0 -1
- package/dist/src/telemetry.d.ts +0 -2
- package/dist/src/telemetry.js +0 -13
- package/dist/src/telemetry.js.map +0 -1
- package/dist/src/ui/index.d.ts +0 -8
- package/dist/src/ui/index.js +0 -17
- package/dist/src/ui/index.js.map +0 -1
- package/dist/src/ui/logging-ui.d.ts +0 -52
- package/dist/src/ui/logging-ui.js +0 -121
- package/dist/src/ui/logging-ui.js.map +0 -1
- package/dist/src/ui/tui/App.d.ts +0 -6
- package/dist/src/ui/tui/App.js +0 -10
- package/dist/src/ui/tui/App.js.map +0 -1
- package/dist/src/ui/tui/__tests__/flows.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/flows.test.js +0 -115
- package/dist/src/ui/tui/__tests__/flows.test.js.map +0 -1
- package/dist/src/ui/tui/__tests__/layout-helpers.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/layout-helpers.test.js +0 -68
- package/dist/src/ui/tui/__tests__/layout-helpers.test.js.map +0 -1
- package/dist/src/ui/tui/__tests__/router.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/router.test.js +0 -87
- package/dist/src/ui/tui/__tests__/router.test.js.map +0 -1
- package/dist/src/ui/tui/__tests__/store.test.d.ts +0 -1
- package/dist/src/ui/tui/__tests__/store.test.js +0 -889
- package/dist/src/ui/tui/__tests__/store.test.js.map +0 -1
- package/dist/src/ui/tui/components/LearnCard.d.ts +0 -10
- package/dist/src/ui/tui/components/LearnCard.js +0 -217
- package/dist/src/ui/tui/components/LearnCard.js.map +0 -1
- package/dist/src/ui/tui/components/ServiceHealthList.d.ts +0 -15
- package/dist/src/ui/tui/components/ServiceHealthList.js +0 -57
- package/dist/src/ui/tui/components/ServiceHealthList.js.map +0 -1
- package/dist/src/ui/tui/components/TipsCard.d.ts +0 -9
- package/dist/src/ui/tui/components/TipsCard.js +0 -55
- package/dist/src/ui/tui/components/TipsCard.js.map +0 -1
- package/dist/src/ui/tui/components/TitleBar.d.ts +0 -6
- package/dist/src/ui/tui/components/TitleBar.js +0 -17
- package/dist/src/ui/tui/components/TitleBar.js.map +0 -1
- package/dist/src/ui/tui/flows.d.ts +0 -51
- package/dist/src/ui/tui/flows.js +0 -75
- package/dist/src/ui/tui/flows.js.map +0 -1
- package/dist/src/ui/tui/hooks/useStdoutDimensions.d.ts +0 -9
- package/dist/src/ui/tui/hooks/useStdoutDimensions.js +0 -37
- package/dist/src/ui/tui/hooks/useStdoutDimensions.js.map +0 -1
- package/dist/src/ui/tui/ink-ui.d.ts +0 -58
- package/dist/src/ui/tui/ink-ui.js +0 -125
- package/dist/src/ui/tui/ink-ui.js.map +0 -1
- package/dist/src/ui/tui/package.json +0 -1
- package/dist/src/ui/tui/playground/PlaygroundApp.d.ts +0 -12
- package/dist/src/ui/tui/playground/PlaygroundApp.js +0 -44
- package/dist/src/ui/tui/playground/PlaygroundApp.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/HealthCheckDemo.d.ts +0 -11
- package/dist/src/ui/tui/playground/demos/HealthCheckDemo.js +0 -57
- package/dist/src/ui/tui/playground/demos/HealthCheckDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/InputDemo.d.ts +0 -4
- package/dist/src/ui/tui/playground/demos/InputDemo.js +0 -53
- package/dist/src/ui/tui/playground/demos/InputDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/LayoutDemo.d.ts +0 -5
- package/dist/src/ui/tui/playground/demos/LayoutDemo.js +0 -25
- package/dist/src/ui/tui/playground/demos/LayoutDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/LogDemo.d.ts +0 -5
- package/dist/src/ui/tui/playground/demos/LogDemo.js +0 -53
- package/dist/src/ui/tui/playground/demos/LogDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/ModalDemo.d.ts +0 -6
- package/dist/src/ui/tui/playground/demos/ModalDemo.js +0 -13
- package/dist/src/ui/tui/playground/demos/ModalDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/ProgressDemo.d.ts +0 -5
- package/dist/src/ui/tui/playground/demos/ProgressDemo.js +0 -58
- package/dist/src/ui/tui/playground/demos/ProgressDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/RunScreenDemo.d.ts +0 -11
- package/dist/src/ui/tui/playground/demos/RunScreenDemo.js +0 -159
- package/dist/src/ui/tui/playground/demos/RunScreenDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/demos/WelcomeDemo.d.ts +0 -9
- package/dist/src/ui/tui/playground/demos/WelcomeDemo.js +0 -15
- package/dist/src/ui/tui/playground/demos/WelcomeDemo.js.map +0 -1
- package/dist/src/ui/tui/playground/start-playground.d.ts +0 -4
- package/dist/src/ui/tui/playground/start-playground.js +0 -24
- package/dist/src/ui/tui/playground/start-playground.js.map +0 -1
- package/dist/src/ui/tui/primitives/CardLayout.d.ts +0 -12
- package/dist/src/ui/tui/primitives/CardLayout.js +0 -10
- package/dist/src/ui/tui/primitives/CardLayout.js.map +0 -1
- package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +0 -13
- package/dist/src/ui/tui/primitives/ConfirmationInput.js +0 -35
- package/dist/src/ui/tui/primitives/ConfirmationInput.js.map +0 -1
- package/dist/src/ui/tui/primitives/ContentSequencer.d.ts +0 -42
- package/dist/src/ui/tui/primitives/ContentSequencer.js +0 -137
- package/dist/src/ui/tui/primitives/ContentSequencer.js.map +0 -1
- package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +0 -21
- package/dist/src/ui/tui/primitives/DissolveTransition.js +0 -149
- package/dist/src/ui/tui/primitives/DissolveTransition.js.map +0 -1
- package/dist/src/ui/tui/primitives/Divider.d.ts +0 -6
- package/dist/src/ui/tui/primitives/Divider.js +0 -15
- package/dist/src/ui/tui/primitives/Divider.js.map +0 -1
- package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +0 -9
- package/dist/src/ui/tui/primitives/EventPlanViewer.js +0 -9
- package/dist/src/ui/tui/primitives/EventPlanViewer.js.map +0 -1
- package/dist/src/ui/tui/primitives/GroupedPickerMenu.d.ts +0 -23
- package/dist/src/ui/tui/primitives/GroupedPickerMenu.js +0 -182
- package/dist/src/ui/tui/primitives/GroupedPickerMenu.js.map +0 -1
- package/dist/src/ui/tui/primitives/HNViewer.d.ts +0 -7
- package/dist/src/ui/tui/primitives/HNViewer.js +0 -63
- package/dist/src/ui/tui/primitives/HNViewer.js.map +0 -1
- package/dist/src/ui/tui/primitives/LinesBlock.d.ts +0 -16
- package/dist/src/ui/tui/primitives/LinesBlock.js +0 -37
- package/dist/src/ui/tui/primitives/LinesBlock.js.map +0 -1
- package/dist/src/ui/tui/primitives/LoadingBox.d.ts +0 -8
- package/dist/src/ui/tui/primitives/LoadingBox.js +0 -10
- package/dist/src/ui/tui/primitives/LoadingBox.js.map +0 -1
- package/dist/src/ui/tui/primitives/LogViewer.d.ts +0 -11
- package/dist/src/ui/tui/primitives/LogViewer.js +0 -55
- package/dist/src/ui/tui/primitives/LogViewer.js.map +0 -1
- package/dist/src/ui/tui/primitives/ModalOverlay.d.ts +0 -25
- package/dist/src/ui/tui/primitives/ModalOverlay.js +0 -7
- package/dist/src/ui/tui/primitives/ModalOverlay.js.map +0 -1
- package/dist/src/ui/tui/primitives/NodeBlock.d.ts +0 -13
- package/dist/src/ui/tui/primitives/NodeBlock.js +0 -17
- package/dist/src/ui/tui/primitives/NodeBlock.js.map +0 -1
- package/dist/src/ui/tui/primitives/PickerMenu.d.ts +0 -20
- package/dist/src/ui/tui/primitives/PickerMenu.js +0 -143
- package/dist/src/ui/tui/primitives/PickerMenu.js.map +0 -1
- package/dist/src/ui/tui/primitives/ProgressList.d.ts +0 -17
- package/dist/src/ui/tui/primitives/ProgressList.js +0 -32
- package/dist/src/ui/tui/primitives/ProgressList.js.map +0 -1
- package/dist/src/ui/tui/primitives/PromptLabel.d.ts +0 -11
- package/dist/src/ui/tui/primitives/PromptLabel.js +0 -13
- package/dist/src/ui/tui/primitives/PromptLabel.js.map +0 -1
- package/dist/src/ui/tui/primitives/ScreenContainer.d.ts +0 -16
- package/dist/src/ui/tui/primitives/ScreenContainer.js +0 -36
- package/dist/src/ui/tui/primitives/ScreenContainer.js.map +0 -1
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +0 -22
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +0 -35
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js.map +0 -1
- package/dist/src/ui/tui/primitives/SplitView.d.ts +0 -11
- package/dist/src/ui/tui/primitives/SplitView.js +0 -9
- package/dist/src/ui/tui/primitives/SplitView.js.map +0 -1
- package/dist/src/ui/tui/primitives/TabContainer.d.ts +0 -23
- package/dist/src/ui/tui/primitives/TabContainer.js +0 -45
- package/dist/src/ui/tui/primitives/TabContainer.js.map +0 -1
- package/dist/src/ui/tui/primitives/TextBlock.d.ts +0 -41
- package/dist/src/ui/tui/primitives/TextBlock.js +0 -144
- package/dist/src/ui/tui/primitives/TextBlock.js.map +0 -1
- package/dist/src/ui/tui/primitives/content-types.d.ts +0 -37
- package/dist/src/ui/tui/primitives/content-types.js +0 -19
- package/dist/src/ui/tui/primitives/content-types.js.map +0 -1
- package/dist/src/ui/tui/primitives/index.d.ts +0 -27
- package/dist/src/ui/tui/primitives/index.js +0 -24
- package/dist/src/ui/tui/primitives/index.js.map +0 -1
- package/dist/src/ui/tui/primitives/layout-helpers.d.ts +0 -36
- package/dist/src/ui/tui/primitives/layout-helpers.js +0 -95
- package/dist/src/ui/tui/primitives/layout-helpers.js.map +0 -1
- package/dist/src/ui/tui/primitives/text-helpers.d.ts +0 -10
- package/dist/src/ui/tui/primitives/text-helpers.js +0 -43
- package/dist/src/ui/tui/primitives/text-helpers.js.map +0 -1
- package/dist/src/ui/tui/router.d.ts +0 -58
- package/dist/src/ui/tui/router.js +0 -96
- package/dist/src/ui/tui/router.js.map +0 -1
- package/dist/src/ui/tui/screen-registry.d.ts +0 -19
- package/dist/src/ui/tui/screen-registry.js +0 -44
- package/dist/src/ui/tui/screen-registry.js.map +0 -1
- package/dist/src/ui/tui/screens/AuthErrorScreen.d.ts +0 -7
- package/dist/src/ui/tui/screens/AuthErrorScreen.js +0 -16
- package/dist/src/ui/tui/screens/AuthErrorScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/AuthScreen.d.ts +0 -13
- package/dist/src/ui/tui/screens/AuthScreen.js +0 -20
- package/dist/src/ui/tui/screens/AuthScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/IntroScreen.d.ts +0 -16
- package/dist/src/ui/tui/screens/IntroScreen.js +0 -79
- package/dist/src/ui/tui/screens/IntroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.d.ts +0 -13
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.js +0 -32
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/McpScreen.d.ts +0 -24
- package/dist/src/ui/tui/screens/McpScreen.js +0 -127
- package/dist/src/ui/tui/screens/McpScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/OutroScreen.d.ts +0 -11
- package/dist/src/ui/tui/screens/OutroScreen.js +0 -22
- package/dist/src/ui/tui/screens/OutroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/PortConflictScreen.d.ts +0 -11
- package/dist/src/ui/tui/screens/PortConflictScreen.js +0 -30
- package/dist/src/ui/tui/screens/PortConflictScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/RevenueIntroScreen.d.ts +0 -16
- package/dist/src/ui/tui/screens/RevenueIntroScreen.js +0 -64
- package/dist/src/ui/tui/screens/RevenueIntroScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/RunScreen.d.ts +0 -16
- package/dist/src/ui/tui/screens/RunScreen.js +0 -73
- package/dist/src/ui/tui/screens/RunScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +0 -6
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +0 -30
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/SetupScreen.d.ts +0 -13
- package/dist/src/ui/tui/screens/SetupScreen.js +0 -74
- package/dist/src/ui/tui/screens/SetupScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/SkillsScreen.d.ts +0 -14
- package/dist/src/ui/tui/screens/SkillsScreen.js +0 -71
- package/dist/src/ui/tui/screens/SkillsScreen.js.map +0 -1
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.d.ts +0 -14
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.js +0 -77
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.js.map +0 -1
- package/dist/src/ui/tui/services/mcp-installer.d.ts +0 -21
- package/dist/src/ui/tui/services/mcp-installer.js +0 -58
- package/dist/src/ui/tui/services/mcp-installer.js.map +0 -1
- package/dist/src/ui/tui/start-tui.d.ts +0 -9
- package/dist/src/ui/tui/start-tui.js +0 -41
- package/dist/src/ui/tui/start-tui.js.map +0 -1
- package/dist/src/ui/tui/store.d.ts +0 -190
- package/dist/src/ui/tui/store.js +0 -472
- package/dist/src/ui/tui/store.js.map +0 -1
- package/dist/src/ui/tui/styles.d.ts +0 -32
- package/dist/src/ui/tui/styles.js +0 -35
- package/dist/src/ui/tui/styles.js.map +0 -1
- package/dist/src/ui/wizard-ui.d.ts +0 -81
- package/dist/src/ui/wizard-ui.js +0 -19
- package/dist/src/ui/wizard-ui.js.map +0 -1
- package/dist/src/utils/__tests__/analytics.test.d.ts +0 -1
- package/dist/src/utils/__tests__/analytics.test.js +0 -136
- package/dist/src/utils/__tests__/analytics.test.js.map +0 -1
- package/dist/src/utils/__tests__/provisioning.test.d.ts +0 -1
- package/dist/src/utils/__tests__/provisioning.test.js +0 -192
- package/dist/src/utils/__tests__/provisioning.test.js.map +0 -1
- package/dist/src/utils/__tests__/semver.test.d.ts +0 -1
- package/dist/src/utils/__tests__/semver.test.js +0 -159
- package/dist/src/utils/__tests__/semver.test.js.map +0 -1
- package/dist/src/utils/__tests__/setup-utils.test.d.ts +0 -1
- package/dist/src/utils/__tests__/setup-utils.test.js +0 -138
- package/dist/src/utils/__tests__/setup-utils.test.js.map +0 -1
- package/dist/src/utils/analytics.d.ts +0 -33
- package/dist/src/utils/analytics.js +0 -137
- package/dist/src/utils/analytics.js.map +0 -1
- package/dist/src/utils/anthropic-status.d.ts +0 -17
- package/dist/src/utils/anthropic-status.js +0 -49
- package/dist/src/utils/anthropic-status.js.map +0 -1
- package/dist/src/utils/bash.d.ts +0 -2
- package/dist/src/utils/bash.js +0 -54
- package/dist/src/utils/bash.js.map +0 -1
- package/dist/src/utils/custom-headers.d.ts +0 -9
- package/dist/src/utils/custom-headers.js +0 -24
- package/dist/src/utils/custom-headers.js.map +0 -1
- package/dist/src/utils/debug.d.ts +0 -29
- package/dist/src/utils/debug.js +0 -87
- package/dist/src/utils/debug.js.map +0 -1
- package/dist/src/utils/env-api-key.d.ts +0 -5
- package/dist/src/utils/env-api-key.js +0 -57
- package/dist/src/utils/env-api-key.js.map +0 -1
- package/dist/src/utils/environment.d.ts +0 -4
- package/dist/src/utils/environment.js +0 -77
- package/dist/src/utils/environment.js.map +0 -1
- package/dist/src/utils/file-utils.d.ts +0 -10
- package/dist/src/utils/file-utils.js +0 -49
- package/dist/src/utils/file-utils.js.map +0 -1
- package/dist/src/utils/logging.d.ts +0 -9
- package/dist/src/utils/logging.js +0 -47
- package/dist/src/utils/logging.js.map +0 -1
- package/dist/src/utils/oauth.d.ts +0 -33
- package/dist/src/utils/oauth.js +0 -288
- package/dist/src/utils/oauth.js.map +0 -1
- package/dist/src/utils/package-json.d.ts +0 -30
- package/dist/src/utils/package-json.js +0 -47
- package/dist/src/utils/package-json.js.map +0 -1
- package/dist/src/utils/package-manager.d.ts +0 -21
- package/dist/src/utils/package-manager.js +0 -210
- package/dist/src/utils/package-manager.js.map +0 -1
- package/dist/src/utils/provisioning.d.ts +0 -25
- package/dist/src/utils/provisioning.js +0 -191
- package/dist/src/utils/provisioning.js.map +0 -1
- package/dist/src/utils/rules/astro-rules.md +0 -44
- package/dist/src/utils/rules/next-rules.md +0 -9
- package/dist/src/utils/rules/react-native-rules.md +0 -7
- package/dist/src/utils/rules/react-rules.md +0 -7
- package/dist/src/utils/rules/svelte-rules.md +0 -7
- package/dist/src/utils/rules/universal.md +0 -32
- package/dist/src/utils/semver.d.ts +0 -21
- package/dist/src/utils/semver.js +0 -87
- package/dist/src/utils/semver.js.map +0 -1
- package/dist/src/utils/setup-utils.d.ts +0 -79
- package/dist/src/utils/setup-utils.js +0 -406
- package/dist/src/utils/setup-utils.js.map +0 -1
- package/dist/src/utils/string.d.ts +0 -1
- package/dist/src/utils/string.js +0 -9
- package/dist/src/utils/string.js.map +0 -1
- package/dist/src/utils/types.d.ts +0 -85
- package/dist/src/utils/types.js +0 -3
- package/dist/src/utils/types.js.map +0 -1
- package/dist/src/utils/urls.d.ts +0 -7
- package/dist/src/utils/urls.js +0 -78
- package/dist/src/utils/urls.js.map +0 -1
- package/dist/src/utils/vendor/is-unicorn-supported.d.ts +0 -1
- package/dist/src/utils/vendor/is-unicorn-supported.js +0 -24
- package/dist/src/utils/vendor/is-unicorn-supported.js.map +0 -1
- package/dist/src/utils/wizard-abort.d.ts +0 -16
- package/dist/src/utils/wizard-abort.js +0 -59
- package/dist/src/utils/wizard-abort.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"McpScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/McpScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * McpScreen — MCP server install/remove flow.\n *\n * Uses an McpInstaller service (passed via props) instead of\n * importing business logic directly. Testable, no dynamic imports.\n *\n * Supports two modes via the `mode` prop:\n * - 'install': detect clients → confirm → [pick clients] → pick features → install\n * - 'remove': detect installed clients → confirm → remove\n *\n * When done, calls store.setMcpComplete(). The router resolves to outro.\n */\n\nimport { Box, Text } from 'ink';\nimport { useState, useEffect } from 'react';\nimport { useSyncExternalStore } from 'react';\nimport { type WizardStore, McpOutcome } from '../store.js';\nimport {\n ConfirmationInput,\n PickerMenu,\n GroupedPickerMenu,\n} from '../primitives/index.js';\nimport { Colors } from '../styles.js';\nimport type { McpInstaller, McpClientInfo } from '../services/mcp-installer.js';\nimport {\n AVAILABLE_FEATURES,\n ALL_FEATURE_VALUES,\n} from '../../../steps/add-mcp-server-to-clients/defaults.js';\n\nexport type McpMode = 'install' | 'remove';\n\ninterface McpScreenProps {\n store: WizardStore;\n installer: McpInstaller;\n mode?: McpMode;\n /** When true, exit the process after completion instead of routing to outro. */\n standalone?: boolean;\n}\n\nenum Phase {\n Detecting = 'detecting',\n Ask = 'ask',\n Pick = 'pick',\n FeatureSelect = 'feature-select',\n Working = 'working',\n Done = 'done',\n None = 'none',\n}\n\nconst markDone = (\n store: WizardStore,\n outcome: McpOutcome,\n clients: string[] = [],\n standalone = false,\n) => {\n store.setMcpComplete(outcome, clients);\n if (standalone) {\n process.exit(0);\n }\n};\n\nexport const McpScreen = ({\n store,\n installer,\n mode = 'install',\n standalone = false,\n}: McpScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const isRemove = mode === 'remove';\n\n const [phase, setPhase] = useState<Phase>(Phase.Detecting);\n const [clients, setClients] = useState<McpClientInfo[]>([]);\n const [selectedClientNames, setSelectedClientNames] = useState<string[]>([]);\n const [resultClients, setResultClients] = useState<string[]>([]);\n\n useEffect(() => {\n void (async () => {\n try {\n const detected = await installer.detectClients();\n if (detected.length === 0) {\n setPhase(Phase.None);\n setTimeout(\n () => markDone(store, McpOutcome.NoClients, [], standalone),\n 1500,\n );\n } else {\n setClients(detected);\n setPhase(Phase.Ask);\n }\n } catch {\n setPhase(Phase.None);\n setTimeout(\n () => markDone(store, McpOutcome.Failed, [], standalone),\n 1500,\n );\n }\n })();\n }, [installer]); // eslint-disable-line\n\n const proceedToFeatureSelectOrInstall = (clientNames: string[]) => {\n setSelectedClientNames(clientNames);\n // Skip feature picker if CLI already specified features\n if (store.session.mcpFeatures) {\n void doInstall(clientNames, store.session.mcpFeatures);\n } else {\n setPhase(Phase.FeatureSelect);\n }\n };\n\n const handleConfirm = () => {\n if (isRemove) {\n void doRemove();\n } else if (clients.length === 1) {\n proceedToFeatureSelectOrInstall(clients.map((c) => c.name));\n } else {\n setPhase(Phase.Pick);\n }\n };\n\n const handleSkip = () => {\n markDone(store, McpOutcome.Skipped, [], standalone);\n };\n\n const doInstall = async (names: string[], features?: string[]) => {\n setPhase(Phase.Working);\n let result: string[] = [];\n try {\n result = await installer.install(names, features, store.session.apiKey);\n setResultClients(result);\n } catch {\n setResultClients([]);\n }\n setPhase(Phase.Done);\n const outcome =\n result.length > 0 ? McpOutcome.Installed : McpOutcome.Failed;\n setTimeout(() => markDone(store, outcome, result, standalone), 2000);\n };\n\n const doRemove = async () => {\n setPhase(Phase.Working);\n let result: string[] = [];\n try {\n result = await installer.remove();\n setResultClients(result);\n } catch {\n setResultClients([]);\n }\n setPhase(Phase.Done);\n const outcome =\n result.length > 0 ? McpOutcome.Installed : McpOutcome.Failed;\n setTimeout(() => markDone(store, outcome, result, standalone), 2000);\n };\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <Text bold color={Colors.accent}>\n MCP Server {isRemove ? 'Removal' : 'Setup'}\n </Text>\n\n <Box marginTop={1} flexDirection=\"column\">\n {phase === Phase.Detecting && (\n <Text dimColor>Detecting supported editors...</Text>\n )}\n\n {phase === Phase.None && (\n <Text dimColor>\n No {isRemove ? 'installed' : 'supported'} MCP clients detected.\n Skipping...\n </Text>\n )}\n\n {phase === Phase.Ask && (\n <>\n <Text dimColor>\n Detected: {clients.map((c) => c.name).join(', ')}\n </Text>\n <Box marginTop={1}>\n <ConfirmationInput\n message={\n isRemove\n ? 'Remove the PostHog MCP server from your editor?'\n : 'Install the PostHog MCP server to your editor?'\n }\n confirmLabel={isRemove ? 'Remove MCP' : 'Install MCP'}\n cancelLabel=\"No thanks\"\n onConfirm={handleConfirm}\n onCancel={handleSkip}\n />\n </Box>\n </>\n )}\n\n {phase === Phase.Pick && (\n <PickerMenu\n message=\"Select editor to install MCP server\"\n options={clients.map((c) => ({\n label: c.name,\n value: c.name,\n }))}\n mode=\"multi\"\n onSelect={(selected) => {\n const names = Array.isArray(selected) ? selected : [selected];\n proceedToFeatureSelectOrInstall(names);\n }}\n />\n )}\n\n {phase === Phase.FeatureSelect && (\n <GroupedPickerMenu\n message=\"Select features to enable\"\n groups={AVAILABLE_FEATURES}\n initialSelected={[...ALL_FEATURE_VALUES]}\n onSelect={(features) => {\n void doInstall(selectedClientNames, features);\n }}\n />\n )}\n\n {phase === Phase.Working && (\n <Text dimColor>\n {isRemove ? 'Removing' : 'Installing'} MCP server...\n </Text>\n )}\n\n {phase === Phase.Done && (\n <Box flexDirection=\"column\">\n {resultClients.length > 0 ? (\n <>\n <Text color=\"green\" bold>\n {'\\u2714'} MCP server{' '}\n {isRemove ? 'removed from' : 'installed for'}:\n </Text>\n {resultClients.map((name, i) => (\n <Text key={i}>\n {' '}\n {'\\u2022'} {name}\n </Text>\n ))}\n </>\n ) : (\n <Text dimColor>\n {isRemove ? 'Removal' : 'Installation'} skipped.\n </Text>\n )}\n </Box>\n )}\n </Box>\n </Box>\n );\n};\n"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OutroScreen — Summary after the agent run.
|
|
3
|
-
* Reads store.session.outroData to render success, error, or cancel view.
|
|
4
|
-
* Keeps the process alive until the user presses a key to exit.
|
|
5
|
-
*/
|
|
6
|
-
import type { WizardStore } from '../store.js';
|
|
7
|
-
interface OutroScreenProps {
|
|
8
|
-
store: WizardStore;
|
|
9
|
-
}
|
|
10
|
-
export declare const OutroScreen: ({ store }: OutroScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* OutroScreen — Summary after the agent run.
|
|
4
|
-
* Reads store.session.outroData to render success, error, or cancel view.
|
|
5
|
-
* Keeps the process alive until the user presses a key to exit.
|
|
6
|
-
*/
|
|
7
|
-
import { Box, Text, useInput } from 'ink';
|
|
8
|
-
import { useSyncExternalStore } from 'react';
|
|
9
|
-
import { OutroKind } from '../../../lib/wizard-session.js';
|
|
10
|
-
import { Colors } from '../styles.js';
|
|
11
|
-
export const OutroScreen = ({ store }) => {
|
|
12
|
-
useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
|
|
13
|
-
useInput(() => {
|
|
14
|
-
store.setOutroDismissed();
|
|
15
|
-
});
|
|
16
|
-
const outroData = store.session.outroData;
|
|
17
|
-
if (!outroData) {
|
|
18
|
-
return (_jsx(Box, { flexDirection: "column", flexGrow: 1, children: _jsx(Text, { dimColor: true, children: "Finishing up..." }) }));
|
|
19
|
-
}
|
|
20
|
-
return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [outroData.kind === OutroKind.Success && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "green", bold: true, children: ['\u2714', " ", outroData.message || 'Done!'] }), outroData.reportFile && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Check ", _jsxs(Text, { bold: true, children: ["./", outroData.reportFile] }), " for details"] }) })), outroData.changes && outroData.changes.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "What the agent did:" }), outroData.changes.map((change, i) => (_jsxs(Text, { children: ['\u2022', " ", change] }, i)))] })), store.eventPlan.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "Events added:" }), store.eventPlan.map((event) => (_jsxs(Text, { children: ['\u2022', " ", _jsx(Text, { bold: true, children: event.name }), _jsxs(Text, { dimColor: true, children: [" ", event.description] })] }, event.name)))] })), outroData.docsUrl && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Learn more: ", _jsx(Text, { color: "cyan", children: outroData.docsUrl })] }) })), outroData.continueUrl && (_jsx(Box, { children: _jsxs(Text, { children: ["Continue onboarding:", ' ', _jsx(Text, { color: "cyan", children: outroData.continueUrl })] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Note: This wizard uses an LLM agent to analyze and modify your project. Please review the changes made." }) }), _jsx(Box, { children: _jsx(Text, { dimColor: true, children: "How did this work for you? Drop us a line: wizard@posthog.com" }) })] })), outroData.kind === OutroKind.Error && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "red", bold: true, children: ['\u2718', " ", outroData.message || 'An error occurred'] }), outroData.body && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: outroData.body }) })), outroData.docsUrl && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Docs: ", _jsx(Text, { color: "cyan", children: outroData.docsUrl })] }) }))] })), outroData.kind === OutroKind.Cancel && (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { color: "yellow", children: ['\u25A0', " ", outroData.message || 'Cancelled'] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.muted, children: "Press any key to continue" }) })] }));
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=OutroScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutroScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/OutroScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * OutroScreen — Summary after the agent run.\n * Reads store.session.outroData to render success, error, or cancel view.\n * Keeps the process alive until the user presses a key to exit.\n */\n\nimport { Box, Text, useInput } from 'ink';\nimport { useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { OutroKind } from '../../../lib/wizard-session.js';\nimport { Colors } from '../styles.js';\n\ninterface OutroScreenProps {\n store: WizardStore;\n}\n\nexport const OutroScreen = ({ store }: OutroScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n useInput(() => {\n store.setOutroDismissed();\n });\n\n const outroData = store.session.outroData;\n\n if (!outroData) {\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <Text dimColor>Finishing up...</Text>\n </Box>\n );\n }\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n {outroData.kind === OutroKind.Success && (\n <Box flexDirection=\"column\">\n <Text color=\"green\" bold>\n {'\\u2714'} {outroData.message || 'Done!'}\n </Text>\n\n {outroData.reportFile && (\n <Box marginTop={1}>\n <Text>\n Check <Text bold>./{outroData.reportFile}</Text> for details\n </Text>\n </Box>\n )}\n\n {outroData.changes && outroData.changes.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color=\"cyan\" bold>\n What the agent did:\n </Text>\n {outroData.changes.map((change, i) => (\n <Text key={i}>\n {'\\u2022'} {change}\n </Text>\n ))}\n </Box>\n )}\n\n {store.eventPlan.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color=\"cyan\" bold>\n Events added:\n </Text>\n {store.eventPlan.map((event) => (\n <Text key={event.name}>\n {'\\u2022'} <Text bold>{event.name}</Text>\n <Text dimColor> {event.description}</Text>\n </Text>\n ))}\n </Box>\n )}\n\n {outroData.docsUrl && (\n <Box marginTop={1}>\n <Text>\n Learn more: <Text color=\"cyan\">{outroData.docsUrl}</Text>\n </Text>\n </Box>\n )}\n\n {outroData.continueUrl && (\n <Box>\n <Text>\n Continue onboarding:{' '}\n <Text color=\"cyan\">{outroData.continueUrl}</Text>\n </Text>\n </Box>\n )}\n\n <Box marginTop={1}>\n <Text dimColor>\n Note: This wizard uses an LLM agent to analyze and modify your\n project. Please review the changes made.\n </Text>\n </Box>\n <Box>\n <Text dimColor>\n How did this work for you? Drop us a line: wizard@posthog.com\n </Text>\n </Box>\n </Box>\n )}\n\n {outroData.kind === OutroKind.Error && (\n <Box flexDirection=\"column\">\n <Text color=\"red\" bold>\n {'\\u2718'} {outroData.message || 'An error occurred'}\n </Text>\n\n {outroData.body && (\n <Box marginTop={1}>\n <Text dimColor>{outroData.body}</Text>\n </Box>\n )}\n\n {outroData.docsUrl && (\n <Box marginTop={1}>\n <Text>\n Docs: <Text color=\"cyan\">{outroData.docsUrl}</Text>\n </Text>\n </Box>\n )}\n </Box>\n )}\n\n {outroData.kind === OutroKind.Cancel && (\n <Box flexDirection=\"column\">\n <Text color=\"yellow\">\n {'\\u25A0'} {outroData.message || 'Cancelled'}\n </Text>\n </Box>\n )}\n\n <Box marginTop={1}>\n <Text color={Colors.muted}>Press any key to continue</Text>\n </Box>\n </Box>\n );\n};\n"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PortConflictScreen — Modal when another process is blocking the OAuth port.
|
|
3
|
-
*
|
|
4
|
-
* Offers to kill the blocking process and retry, or exit.
|
|
5
|
-
*/
|
|
6
|
-
import type { WizardStore } from '../store.js';
|
|
7
|
-
interface PortConflictScreenProps {
|
|
8
|
-
store: WizardStore;
|
|
9
|
-
}
|
|
10
|
-
export declare const PortConflictScreen: ({ store }: PortConflictScreenProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* PortConflictScreen — Modal when another process is blocking the OAuth port.
|
|
4
|
-
*
|
|
5
|
-
* Offers to kill the blocking process and retry, or exit.
|
|
6
|
-
*/
|
|
7
|
-
import { Box, Text } from 'ink';
|
|
8
|
-
import { useState, useSyncExternalStore } from 'react';
|
|
9
|
-
import { execSync } from 'node:child_process';
|
|
10
|
-
import { ConfirmationInput, ModalOverlay } from '../primitives/index.js';
|
|
11
|
-
import { OAUTH_PORT } from '../../../lib/constants.js';
|
|
12
|
-
export const PortConflictScreen = ({ store }) => {
|
|
13
|
-
useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
|
|
14
|
-
const [feedback, setFeedback] = useState(null);
|
|
15
|
-
const processInfo = store.session.portConflictProcess;
|
|
16
|
-
if (!processInfo)
|
|
17
|
-
return null;
|
|
18
|
-
return (_jsxs(ModalOverlay, { borderColor: "#DC9300", title: `Port ${OAUTH_PORT} in use`, width: 72, feedback: feedback, footer: _jsx(ConfirmationInput, { message: "Kill process and continue?", confirmLabel: "Kill & continue [Enter]", cancelLabel: "Exit [Esc]", onConfirm: () => {
|
|
19
|
-
try {
|
|
20
|
-
execSync(`lsof -ti :${OAUTH_PORT} | xargs kill`, {
|
|
21
|
-
stdio: 'ignore',
|
|
22
|
-
});
|
|
23
|
-
store.resolvePortConflict();
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
setFeedback(`Could not kill the process. Try running: lsof -ti :${OAUTH_PORT} | xargs kill`);
|
|
27
|
-
}
|
|
28
|
-
}, onCancel: () => process.exit(1) }), children: [_jsx(Text, { children: "Another process is blocking the authentication server:" }), _jsxs(Box, { flexDirection: "column", marginY: 1, paddingLeft: 2, gap: 0, children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Command " }), _jsx(Text, { bold: true, children: processInfo.command })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "PID " }), _jsx(Text, { bold: true, children: processInfo.pid })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "User " }), _jsx(Text, { bold: true, children: processInfo.user })] })] }), _jsx(Text, { dimColor: true, children: "Kill this process to continue, or exit and free the port manually." })] }));
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=PortConflictScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PortConflictScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/PortConflictScreen.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAA2B,EAAE,EAAE;IACvE,oBAAoB,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAC1B,CAAC;IAEF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAEtD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,OAAO,CACL,MAAC,YAAY,IACX,WAAW,EAAC,SAAS,EACrB,KAAK,EAAE,QAAQ,UAAU,SAAS,EAClC,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,QAAQ,EAClB,MAAM,EACJ,KAAC,iBAAiB,IAChB,OAAO,EAAC,4BAA4B,EACpC,YAAY,EAAC,yBAAyB,EACtC,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,GAAG,EAAE;gBACd,IAAI,CAAC;oBACH,QAAQ,CAAC,aAAa,UAAU,eAAe,EAAE;wBAC/C,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAC;oBACH,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW,CACT,sDAAsD,UAAU,eAAe,CAChF,CAAC;gBACJ,CAAC;YACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAC/B,aAGJ,KAAC,IAAI,yEAA8D,EACnE,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aAC5D,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAC9B,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,OAAO,GAAQ,IAClC,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,2BAAY,EAC1B,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,GAAG,GAAQ,IAC9B,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,4BAAa,EAC3B,KAAC,IAAI,IAAC,IAAI,kBAAE,WAAW,CAAC,IAAI,GAAQ,IAC/B,IACH,EACN,KAAC,IAAI,IAAC,QAAQ,yFAEP,IACM,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * PortConflictScreen — Modal when another process is blocking the OAuth port.\n *\n * Offers to kill the blocking process and retry, or exit.\n */\n\nimport { Box, Text } from 'ink';\nimport { useState, useSyncExternalStore } from 'react';\nimport { execSync } from 'node:child_process';\nimport type { WizardStore } from '../store.js';\nimport { ConfirmationInput, ModalOverlay } from '../primitives/index.js';\nimport { OAUTH_PORT } from '../../../lib/constants.js';\n\ninterface PortConflictScreenProps {\n store: WizardStore;\n}\n\nexport const PortConflictScreen = ({ store }: PortConflictScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const [feedback, setFeedback] = useState<string | null>(null);\n const processInfo = store.session.portConflictProcess;\n\n if (!processInfo) return null;\n\n return (\n <ModalOverlay\n borderColor=\"#DC9300\"\n title={`Port ${OAUTH_PORT} in use`}\n width={72}\n feedback={feedback}\n footer={\n <ConfirmationInput\n message=\"Kill process and continue?\"\n confirmLabel=\"Kill & continue [Enter]\"\n cancelLabel=\"Exit [Esc]\"\n onConfirm={() => {\n try {\n execSync(`lsof -ti :${OAUTH_PORT} | xargs kill`, {\n stdio: 'ignore',\n });\n store.resolvePortConflict();\n } catch {\n setFeedback(\n `Could not kill the process. Try running: lsof -ti :${OAUTH_PORT} | xargs kill`,\n );\n }\n }}\n onCancel={() => process.exit(1)}\n />\n }\n >\n <Text>Another process is blocking the authentication server:</Text>\n <Box flexDirection=\"column\" marginY={1} paddingLeft={2} gap={0}>\n <Text>\n <Text dimColor>Command </Text>\n <Text bold>{processInfo.command}</Text>\n </Text>\n <Text>\n <Text dimColor>PID </Text>\n <Text bold>{processInfo.pid}</Text>\n </Text>\n <Text>\n <Text dimColor>User </Text>\n <Text bold>{processInfo.user}</Text>\n </Text>\n </Box>\n <Text dimColor>\n Kill this process to continue, or exit and free the port manually.\n </Text>\n </ModalOverlay>\n );\n};\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RevenueIntroScreen — Welcome screen for the revenue analytics flow.
|
|
3
|
-
*
|
|
4
|
-
* Renders one of two states:
|
|
5
|
-
* - Detection succeeded: shows detected SDKs + continue/cancel
|
|
6
|
-
* - Detection failed: shows the error + exit prompt
|
|
7
|
-
*
|
|
8
|
-
* Reads `frameworkContext.detectError` and `frameworkContext.detectedPosthogSdks`
|
|
9
|
-
* / `detectedStripeSdks` set by detectRevenuePrerequisites().
|
|
10
|
-
*/
|
|
11
|
-
import type { WizardStore } from '../store.js';
|
|
12
|
-
interface RevenueIntroScreenProps {
|
|
13
|
-
store: WizardStore;
|
|
14
|
-
}
|
|
15
|
-
export declare const RevenueIntroScreen: ({ store }: RevenueIntroScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export {};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* RevenueIntroScreen — Welcome screen for the revenue analytics flow.
|
|
4
|
-
*
|
|
5
|
-
* Renders one of two states:
|
|
6
|
-
* - Detection succeeded: shows detected SDKs + continue/cancel
|
|
7
|
-
* - Detection failed: shows the error + exit prompt
|
|
8
|
-
*
|
|
9
|
-
* Reads `frameworkContext.detectError` and `frameworkContext.detectedPosthogSdks`
|
|
10
|
-
* / `detectedStripeSdks` set by detectRevenuePrerequisites().
|
|
11
|
-
*/
|
|
12
|
-
import path from 'path';
|
|
13
|
-
import { Box, Text } from 'ink';
|
|
14
|
-
import { useSyncExternalStore } from 'react';
|
|
15
|
-
import { PickerMenu } from '../primitives/index.js';
|
|
16
|
-
import { POSTHOG_SDKS, STRIPE_SDKS, } from '../../../lib/workflows/revenue-analytics/index.js';
|
|
17
|
-
const WizardTitle = () => (_jsxs(Text, { bold: true, children: [_jsx(Text, { color: "#1D4AFF", children: '\u2588' }), _jsx(Text, { color: "#F54E00", children: '\u2588' }), _jsx(Text, { color: "#F9BD2B", children: '\u2588' }), ' Revenue Analytics Wizard 💸'] }));
|
|
18
|
-
const DetectErrorView = ({ error }) => (_jsxs(Box, { flexDirection: "column", flexGrow: 1, alignItems: "center", justifyContent: "center", children: [_jsx(Box, { flexDirection: "column", alignItems: "center", marginBottom: 1, children: _jsx(WizardTitle, {}) }), _jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: "red", bold: true, children: ['\u2718', " Cannot set up revenue analytics"] }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: _jsx(DetectErrorBody, { error: error }) })] }), _jsx(PickerMenu, { options: [{ label: 'Exit', value: 'exit' }], onSelect: () => process.exit(1) })] }));
|
|
19
|
-
const DetectErrorBody = ({ error }) => {
|
|
20
|
-
switch (error.kind) {
|
|
21
|
-
case 'bad-directory': {
|
|
22
|
-
const reasonText = {
|
|
23
|
-
missing: 'does not exist',
|
|
24
|
-
'not-dir': 'is not a directory',
|
|
25
|
-
unreadable: 'could not be accessed',
|
|
26
|
-
}[error.reason];
|
|
27
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Text, { children: ["This path ", reasonText, ":"] }), _jsxs(Text, { dimColor: true, children: [' ', error.path] })] }));
|
|
28
|
-
}
|
|
29
|
-
case 'no-package-json':
|
|
30
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { children: "No package.json found in this directory." }), _jsx(Text, { dimColor: true, children: "Revenue analytics currently supports Node.js / TypeScript projects." }), _jsx(Text, { dimColor: true, children: "Run this command from your project root." })] }));
|
|
31
|
-
case 'no-sdks':
|
|
32
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Text, { children: ["Neither PostHog nor Stripe SDKs detected (scanned", ' ', error.scannedCount, " package.json file", error.scannedCount === 1 ? '' : 's', ")."] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { children: "Revenue analytics requires:" }), _jsxs(Text, { dimColor: true, children: [' \u2022', " A PostHog SDK (", POSTHOG_SDKS.slice(0, 3).join(', '), ", \u2026)"] }), _jsxs(Text, { dimColor: true, children: [' \u2022', " A Stripe SDK (", STRIPE_SDKS.join(', '), ")"] })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["Install Stripe and run ", _jsx(Text, { bold: true, children: "npx @posthog/wizard" }), " to set up PostHog."] }) })] }));
|
|
33
|
-
case 'missing-posthog':
|
|
34
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Text, { children: ["Found Stripe (", error.foundStripe.join(', '), ") but no PostHog SDK."] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["Run ", _jsx(Text, { bold: true, children: "npx @posthog/wizard" }), " first to set up the base PostHog integration."] }) })] }));
|
|
35
|
-
case 'missing-stripe':
|
|
36
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Text, { children: ["Found PostHog (", error.foundPosthog.join(', '), ") but no Stripe SDK."] }), _jsx(Text, { dimColor: true, children: "Revenue analytics currently supports Stripe only." }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "Install one of:" }), STRIPE_SDKS.map((sdk) => (_jsxs(Text, { dimColor: true, children: [' \u2022', " ", sdk] }, sdk)))] })] }));
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
export const RevenueIntroScreen = ({ store }) => {
|
|
40
|
-
useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
|
|
41
|
-
const { session } = store;
|
|
42
|
-
const detectError = session.frameworkContext.detectError;
|
|
43
|
-
const detectedPosthogSdks = session.frameworkContext.detectedPosthogSdks ??
|
|
44
|
-
[];
|
|
45
|
-
const detectedStripeSdks = session.frameworkContext.detectedStripeSdks ?? [];
|
|
46
|
-
const detectedPackagePaths = session.frameworkContext.detectedPackagePaths ??
|
|
47
|
-
[];
|
|
48
|
-
if (detectError) {
|
|
49
|
-
return _jsx(DetectErrorView, { error: detectError });
|
|
50
|
-
}
|
|
51
|
-
return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, alignItems: "center", justifyContent: "center", children: [_jsxs(Box, { flexDirection: "column", alignItems: "center", marginBottom: 1, children: [_jsx(WizardTitle, {}), _jsx(Box, { flexDirection: "column", alignItems: "center", marginTop: 1, children: _jsx(Box, { marginTop: 1, children: _jsx(Text, { children: "Let's wire up your revenue dashboards with Stripe!" }) }) })] }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsxs(Text, { children: ["Directory ", _jsx(Text, { color: "green", children: '\u2714' }), ' '] }), _jsxs(Text, { children: ['/', path.basename(session.installDir)] })] }), detectedPosthogSdks.length > 0 && (_jsxs(Text, { children: [_jsxs(Text, { children: ["PostHog ", _jsx(Text, { color: "green", children: '\u2714' }), ' '] }), _jsxs(Text, { children: [detectedPosthogSdks.join(', '), " (detected)"] })] })), detectedStripeSdks.length > 0 && (_jsxs(Text, { children: [_jsxs(Text, { children: ["Stripe ", _jsx(Text, { color: "green", children: '\u2714' }), ' '] }), _jsxs(Text, { children: [detectedStripeSdks.join(', '), " (detected)"] })] })), detectedPackagePaths.length > 1 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: ["Found in ", detectedPackagePaths.length, " packages:"] }), detectedPackagePaths.map((p) => (_jsxs(Text, { dimColor: true, children: [' ', '\u2022', " ", p] }, p)))] })), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "What the wizard will do next:" }), _jsxs(Text, { dimColor: true, children: ['\u2022', " Links Stripe customers and their purchases to PostHog persons"] }), _jsxs(Text, { dimColor: true, children: ['\u2022', " Unlocks analytics like revenue per user, top customers, and lifetime value"] })] }), _jsx(Box, { marginTop: 1, children: _jsx(PickerMenu, { options: [
|
|
52
|
-
{ label: 'Continue', value: 'continue' },
|
|
53
|
-
{ label: 'Cancel', value: 'cancel' },
|
|
54
|
-
], onSelect: (value) => {
|
|
55
|
-
const choice = Array.isArray(value) ? value[0] : value;
|
|
56
|
-
if (choice === 'cancel') {
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
store.completeSetup();
|
|
61
|
-
}
|
|
62
|
-
} }) })] })] }));
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=RevenueIntroScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RevenueIntroScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/RevenueIntroScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * RevenueIntroScreen — Welcome screen for the revenue analytics flow.\n *\n * Renders one of two states:\n * - Detection succeeded: shows detected SDKs + continue/cancel\n * - Detection failed: shows the error + exit prompt\n *\n * Reads `frameworkContext.detectError` and `frameworkContext.detectedPosthogSdks`\n * / `detectedStripeSdks` set by detectRevenuePrerequisites().\n */\n\nimport path from 'path';\nimport { Box, Text } from 'ink';\nimport { useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { PickerMenu } from '../primitives/index.js';\nimport {\n POSTHOG_SDKS,\n STRIPE_SDKS,\n type RevenueDetectError,\n} from '../../../lib/workflows/revenue-analytics/index.js';\n\ninterface RevenueIntroScreenProps {\n store: WizardStore;\n}\n\nconst WizardTitle = () => (\n <Text bold>\n <Text color=\"#1D4AFF\">{'\\u2588'}</Text>\n <Text color=\"#F54E00\">{'\\u2588'}</Text>\n <Text color=\"#F9BD2B\">{'\\u2588'}</Text>\n {' Revenue Analytics Wizard 💸'}\n </Text>\n);\n\nconst DetectErrorView = ({ error }: { error: RevenueDetectError }) => (\n <Box\n flexDirection=\"column\"\n flexGrow={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box flexDirection=\"column\" alignItems=\"center\" marginBottom={1}>\n <WizardTitle />\n </Box>\n\n <Box flexDirection=\"column\" marginBottom={1}>\n <Text color=\"red\" bold>\n {'\\u2718'} Cannot set up revenue analytics\n </Text>\n <Box marginTop={1} flexDirection=\"column\">\n <DetectErrorBody error={error} />\n </Box>\n </Box>\n\n <PickerMenu\n options={[{ label: 'Exit', value: 'exit' }]}\n onSelect={() => process.exit(1)}\n />\n </Box>\n);\n\nconst DetectErrorBody = ({ error }: { error: RevenueDetectError }) => {\n switch (error.kind) {\n case 'bad-directory': {\n const reasonText = {\n missing: 'does not exist',\n 'not-dir': 'is not a directory',\n unreadable: 'could not be accessed',\n }[error.reason];\n return (\n <>\n <Text>This path {reasonText}:</Text>\n <Text dimColor>\n {' '}\n {error.path}\n </Text>\n </>\n );\n }\n\n case 'no-package-json':\n return (\n <>\n <Text>No package.json found in this directory.</Text>\n <Text dimColor>\n Revenue analytics currently supports Node.js / TypeScript projects.\n </Text>\n <Text dimColor>Run this command from your project root.</Text>\n </>\n );\n\n case 'no-sdks':\n return (\n <>\n <Text>\n Neither PostHog nor Stripe SDKs detected (scanned{' '}\n {error.scannedCount} package.json file\n {error.scannedCount === 1 ? '' : 's'}).\n </Text>\n <Box marginTop={1} flexDirection=\"column\">\n <Text>Revenue analytics requires:</Text>\n <Text dimColor>\n {' \\u2022'} A PostHog SDK ({POSTHOG_SDKS.slice(0, 3).join(', ')},\n …)\n </Text>\n <Text dimColor>\n {' \\u2022'} A Stripe SDK ({STRIPE_SDKS.join(', ')})\n </Text>\n </Box>\n <Box marginTop={1}>\n <Text dimColor>\n Install Stripe and run <Text bold>npx @posthog/wizard</Text> to\n set up PostHog.\n </Text>\n </Box>\n </>\n );\n\n case 'missing-posthog':\n return (\n <>\n <Text>\n Found Stripe ({error.foundStripe.join(', ')}) but no PostHog SDK.\n </Text>\n <Box marginTop={1}>\n <Text dimColor>\n Run <Text bold>npx @posthog/wizard</Text> first to set up the base\n PostHog integration.\n </Text>\n </Box>\n </>\n );\n\n case 'missing-stripe':\n return (\n <>\n <Text>\n Found PostHog ({error.foundPosthog.join(', ')}) but no Stripe SDK.\n </Text>\n <Text dimColor>\n Revenue analytics currently supports Stripe only.\n </Text>\n <Box marginTop={1} flexDirection=\"column\">\n <Text dimColor>Install one of:</Text>\n {STRIPE_SDKS.map((sdk) => (\n <Text key={sdk} dimColor>\n {' \\u2022'} {sdk}\n </Text>\n ))}\n </Box>\n </>\n );\n }\n};\n\nexport const RevenueIntroScreen = ({ store }: RevenueIntroScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const { session } = store;\n const detectError = session.frameworkContext.detectError as\n | RevenueDetectError\n | undefined;\n const detectedPosthogSdks =\n (session.frameworkContext.detectedPosthogSdks as string[] | undefined) ??\n [];\n const detectedStripeSdks =\n (session.frameworkContext.detectedStripeSdks as string[] | undefined) ?? [];\n const detectedPackagePaths =\n (session.frameworkContext.detectedPackagePaths as string[] | undefined) ??\n [];\n\n if (detectError) {\n return <DetectErrorView error={detectError} />;\n }\n\n return (\n <Box\n flexDirection=\"column\"\n flexGrow={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box flexDirection=\"column\" alignItems=\"center\" marginBottom={1}>\n <WizardTitle />\n\n <Box flexDirection=\"column\" alignItems=\"center\" marginTop={1}>\n <Box marginTop={1}>\n <Text>Let's wire up your revenue dashboards with Stripe!</Text>\n </Box>\n </Box>\n </Box>\n\n <Box flexDirection=\"column\">\n <Text>\n <Text>\n Directory <Text color=\"green\">{'\\u2714'}</Text>{' '}\n </Text>\n <Text>\n {'/'}\n {path.basename(session.installDir)}\n </Text>\n </Text>\n\n {detectedPosthogSdks.length > 0 && (\n <Text>\n <Text>\n PostHog <Text color=\"green\">{'\\u2714'}</Text>{' '}\n </Text>\n <Text>{detectedPosthogSdks.join(', ')} (detected)</Text>\n </Text>\n )}\n\n {detectedStripeSdks.length > 0 && (\n <Text>\n <Text>\n Stripe <Text color=\"green\">{'\\u2714'}</Text>{' '}\n </Text>\n <Text>{detectedStripeSdks.join(', ')} (detected)</Text>\n </Text>\n )}\n\n {detectedPackagePaths.length > 1 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text dimColor>\n Found in {detectedPackagePaths.length} packages:\n </Text>\n {detectedPackagePaths.map((p) => (\n <Text key={p} dimColor>\n {' '}\n {'\\u2022'} {p}\n </Text>\n ))}\n </Box>\n )}\n\n <Box flexDirection=\"column\" marginTop={1}>\n <Text dimColor>What the wizard will do next:</Text>\n <Text dimColor>\n {'\\u2022'} Links Stripe customers and their purchases to PostHog\n persons\n </Text>\n <Text dimColor>\n {'\\u2022'} Unlocks analytics like revenue per user, top customers,\n and lifetime value\n </Text>\n </Box>\n\n <Box marginTop={1}>\n <PickerMenu\n options={[\n { label: 'Continue', value: 'continue' },\n { label: 'Cancel', value: 'cancel' },\n ]}\n onSelect={(value) => {\n const choice = Array.isArray(value) ? value[0] : value;\n if (choice === 'cancel') {\n process.exit(0);\n } else {\n store.completeSetup();\n }\n }}\n />\n </Box>\n </Box>\n </Box>\n );\n};\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunScreen — Tabbed observational view of the agent run.
|
|
3
|
-
*
|
|
4
|
-
* Two tabs:
|
|
5
|
-
* - Status: SplitView with LearnCard (left) + ProgressList (right)
|
|
6
|
-
* - Logs: LogViewer tailing the wizard log file
|
|
7
|
-
*
|
|
8
|
-
* No prompts — the agent runs headlessly.
|
|
9
|
-
* LearnCard shows animated educational content and reacts to discovered features.
|
|
10
|
-
*/
|
|
11
|
-
import type { WizardStore } from '../store.js';
|
|
12
|
-
interface RunScreenProps {
|
|
13
|
-
store: WizardStore;
|
|
14
|
-
}
|
|
15
|
-
export declare const RunScreen: ({ store }: RunScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export {};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* RunScreen — Tabbed observational view of the agent run.
|
|
4
|
-
*
|
|
5
|
-
* Two tabs:
|
|
6
|
-
* - Status: SplitView with LearnCard (left) + ProgressList (right)
|
|
7
|
-
* - Logs: LogViewer tailing the wizard log file
|
|
8
|
-
*
|
|
9
|
-
* No prompts — the agent runs headlessly.
|
|
10
|
-
* LearnCard shows animated educational content and reacts to discovered features.
|
|
11
|
-
*/
|
|
12
|
-
import { useSyncExternalStore } from 'react';
|
|
13
|
-
import { Box } from 'ink';
|
|
14
|
-
import { TabContainer, SplitView, ProgressList, LogViewer, EventPlanViewer, HNViewer, } from '../primitives/index.js';
|
|
15
|
-
import { ADDITIONAL_FEATURE_LABELS } from '../../../lib/wizard-session.js';
|
|
16
|
-
import { LearnCard } from '../components/LearnCard.js';
|
|
17
|
-
import { TipsCard } from '../components/TipsCard.js';
|
|
18
|
-
import { useStdoutDimensions } from '../hooks/useStdoutDimensions.js';
|
|
19
|
-
const LOG_FILE = '/tmp/posthog-wizard.log';
|
|
20
|
-
export const RunScreen = ({ store }) => {
|
|
21
|
-
useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
|
|
22
|
-
const [columns] = useStdoutDimensions();
|
|
23
|
-
const progressItems = store.tasks.map((t) => ({
|
|
24
|
-
label: t.label,
|
|
25
|
-
activeForm: t.activeForm,
|
|
26
|
-
status: t.status,
|
|
27
|
-
}));
|
|
28
|
-
// When all tasks are done but the queue has features, show a transitional item
|
|
29
|
-
const queue = store.session.additionalFeatureQueue;
|
|
30
|
-
const allDone = progressItems.length > 0 &&
|
|
31
|
-
progressItems.every((t) => t.status === 'completed');
|
|
32
|
-
if (allDone && queue.length > 0) {
|
|
33
|
-
const nextLabel = ADDITIONAL_FEATURE_LABELS[queue[0]];
|
|
34
|
-
progressItems.push({
|
|
35
|
-
label: `Set up ${nextLabel}`,
|
|
36
|
-
activeForm: `Setting up ${nextLabel}...`,
|
|
37
|
-
status: 'in_progress',
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
const statuses = store.statusMessages.length > 0 ? store.statusMessages : undefined;
|
|
41
|
-
const leftPane = store.learnCardComplete ? (_jsx(TipsCard, { store: store })) : (_jsx(LearnCard, { store: store, onComplete: () => store.setLearnCardComplete() }));
|
|
42
|
-
const progressList = (_jsx(ProgressList, { items: progressItems, title: "Tasks", workflowLabel: store.session.workflowLabel, skillId: store.session.skillId }));
|
|
43
|
-
// On narrow terminals, drop the learn pane and show only progress
|
|
44
|
-
const statusComponent = columns < 80 ? (_jsx(Box, { flexDirection: "column", flexGrow: 1, children: progressList })) : (_jsx(SplitView, { left: leftPane, right: progressList }));
|
|
45
|
-
const tabs = [
|
|
46
|
-
{
|
|
47
|
-
id: 'status',
|
|
48
|
-
label: 'Status',
|
|
49
|
-
component: statusComponent,
|
|
50
|
-
},
|
|
51
|
-
...(store.eventPlan.length > 0
|
|
52
|
-
? [
|
|
53
|
-
{
|
|
54
|
-
id: 'events',
|
|
55
|
-
label: 'Event plan',
|
|
56
|
-
component: _jsx(EventPlanViewer, { events: store.eventPlan }),
|
|
57
|
-
},
|
|
58
|
-
]
|
|
59
|
-
: []),
|
|
60
|
-
{
|
|
61
|
-
id: 'logs',
|
|
62
|
-
label: 'Tail logs',
|
|
63
|
-
component: _jsx(LogViewer, { filePath: LOG_FILE }),
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: 'hn',
|
|
67
|
-
label: 'HN',
|
|
68
|
-
component: _jsx(HNViewer, {}),
|
|
69
|
-
},
|
|
70
|
-
];
|
|
71
|
-
return (_jsx(TabContainer, { tabs: tabs, statusMessage: statuses, expandableStatus: true, store: store }));
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=RunScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/RunScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * RunScreen — Tabbed observational view of the agent run.\n *\n * Two tabs:\n * - Status: SplitView with LearnCard (left) + ProgressList (right)\n * - Logs: LogViewer tailing the wizard log file\n *\n * No prompts — the agent runs headlessly.\n * LearnCard shows animated educational content and reacts to discovered features.\n */\n\nimport { useSyncExternalStore } from 'react';\nimport { Box } from 'ink';\nimport type { WizardStore } from '../store.js';\nimport {\n TabContainer,\n SplitView,\n ProgressList,\n LogViewer,\n EventPlanViewer,\n HNViewer,\n} from '../primitives/index.js';\nimport type { ProgressItem } from '../primitives/index.js';\nimport { ADDITIONAL_FEATURE_LABELS } from '../../../lib/wizard-session.js';\nimport { LearnCard } from '../components/LearnCard.js';\nimport { TipsCard } from '../components/TipsCard.js';\nimport { useStdoutDimensions } from '../hooks/useStdoutDimensions.js';\n\nconst LOG_FILE = '/tmp/posthog-wizard.log';\n\ninterface RunScreenProps {\n store: WizardStore;\n}\n\nexport const RunScreen = ({ store }: RunScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const [columns] = useStdoutDimensions();\n\n const progressItems: ProgressItem[] = store.tasks.map((t) => ({\n label: t.label,\n activeForm: t.activeForm,\n status: t.status,\n }));\n\n // When all tasks are done but the queue has features, show a transitional item\n const queue = store.session.additionalFeatureQueue;\n const allDone =\n progressItems.length > 0 &&\n progressItems.every((t) => t.status === 'completed');\n if (allDone && queue.length > 0) {\n const nextLabel = ADDITIONAL_FEATURE_LABELS[queue[0]];\n progressItems.push({\n label: `Set up ${nextLabel}`,\n activeForm: `Setting up ${nextLabel}...`,\n status: 'in_progress',\n });\n }\n\n const statuses =\n store.statusMessages.length > 0 ? store.statusMessages : undefined;\n\n const leftPane = store.learnCardComplete ? (\n <TipsCard store={store} />\n ) : (\n <LearnCard store={store} onComplete={() => store.setLearnCardComplete()} />\n );\n const progressList = (\n <ProgressList\n items={progressItems}\n title=\"Tasks\"\n workflowLabel={store.session.workflowLabel}\n skillId={store.session.skillId}\n />\n );\n\n // On narrow terminals, drop the learn pane and show only progress\n const statusComponent =\n columns < 80 ? (\n <Box flexDirection=\"column\" flexGrow={1}>\n {progressList}\n </Box>\n ) : (\n <SplitView left={leftPane} right={progressList} />\n );\n\n const tabs = [\n {\n id: 'status',\n label: 'Status',\n component: statusComponent,\n },\n ...(store.eventPlan.length > 0\n ? [\n {\n id: 'events',\n label: 'Event plan',\n component: <EventPlanViewer events={store.eventPlan} />,\n },\n ]\n : []),\n {\n id: 'logs',\n label: 'Tail logs',\n component: <LogViewer filePath={LOG_FILE} />,\n },\n {\n id: 'hn',\n label: 'HN',\n component: <HNViewer />,\n },\n ];\n\n return (\n <TabContainer\n tabs={tabs}\n statusMessage={statuses}\n expandableStatus\n store={store}\n />\n );\n};\n"]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { useState, useSyncExternalStore } from 'react';
|
|
4
|
-
import { ConfirmationInput, ModalOverlay } from '../primitives/index.js';
|
|
5
|
-
import { Icons } from '../styles.js';
|
|
6
|
-
function sourcePath(source) {
|
|
7
|
-
switch (source) {
|
|
8
|
-
case 'project':
|
|
9
|
-
return '.claude/settings.json';
|
|
10
|
-
case 'managed':
|
|
11
|
-
return '/Library/Application Support/ClaudeCode/managed-settings.json';
|
|
12
|
-
default:
|
|
13
|
-
return source;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export const SettingsOverrideScreen = ({ store, }) => {
|
|
17
|
-
useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
|
|
18
|
-
const [feedback, setFeedback] = useState(null);
|
|
19
|
-
const conflicts = store.session.settingsConflicts?.filter((c) => c.writable);
|
|
20
|
-
if (!conflicts || conflicts.length === 0) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
return (_jsxs(ModalOverlay, { borderColor: "red", title: `${Icons.warning} Settings conflict`, width: 64, feedback: feedback ? `${Icons.warning} ${feedback}` : null, footer: _jsx(ConfirmationInput, { message: "Back up to .wizard-backup and continue?", confirmLabel: "Backup & continue [Enter]", cancelLabel: "Exit [Esc]", onConfirm: () => {
|
|
24
|
-
const ok = store.backupAndFixSettingsOverride();
|
|
25
|
-
if (!ok) {
|
|
26
|
-
setFeedback('Could not back up the settings file.');
|
|
27
|
-
}
|
|
28
|
-
}, onCancel: () => process.exit(1) }), children: [conflicts.map((conflict) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { children: ["Your settings file at", ' ', _jsx(Text, { bold: true, children: sourcePath(conflict.source) }), " sets:"] }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, children: conflict.keys.map((key) => (_jsxs(Text, { children: [Icons.bullet, ' ', _jsx(Text, { color: "yellow", bold: true, children: key })] }, key))) })] }, conflict.source))), _jsx(Text, { dimColor: true, children: "These settings override credentials and prevent the Wizard from reaching the PostHog LLM Gateway. We can back up the file and continue." })] }));
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=SettingsOverrideScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsOverrideScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/SettingsOverrideScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGrC,SAAS,UAAU,CAAC,MAA8B;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,uBAAuB,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,+DAA+D,CAAC;QACzE;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,KAAK,GACuB,EAAE,EAAE;IAChC,oBAAoB,CAClB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAC1B,CAAC;IAEF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAAC,YAAY,IACX,WAAW,EAAC,KAAK,EACjB,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,oBAAoB,EAC3C,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAC1D,MAAM,EACJ,KAAC,iBAAiB,IAChB,OAAO,EAAC,yCAAyC,EACjD,YAAY,EAAC,2BAA2B,EACxC,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,GAAG,EAAE;gBACd,MAAM,EAAE,GAAG,KAAK,CAAC,4BAA4B,EAAE,CAAC;gBAChD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,WAAW,CAAC,sCAAsC,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAC/B,aAGH,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,MAAC,GAAG,IAAuB,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aAC/D,MAAC,IAAI,wCACmB,GAAG,EACzB,KAAC,IAAI,IAAC,IAAI,kBAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAQ,cAC1C,EACP,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1B,MAAC,IAAI,eACF,KAAK,CAAC,MAAM,EAAE,GAAG,EAClB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,kBACtB,GAAG,GACC,KAJE,GAAG,CAKP,CACR,CAAC,GACE,KAdE,QAAQ,CAAC,MAAM,CAenB,CACP,CAAC,EACF,KAAC,IAAI,IAAC,QAAQ,8JAGP,IACM,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Box, Text } from 'ink';\nimport { useState, useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { ConfirmationInput, ModalOverlay } from '../primitives/index.js';\nimport { Icons } from '../styles.js';\nimport type { SettingsConflictSource } from '../../../lib/agent/agent-interface.js';\n\nfunction sourcePath(source: SettingsConflictSource): string {\n switch (source) {\n case 'project':\n return '.claude/settings.json';\n case 'managed':\n return '/Library/Application Support/ClaudeCode/managed-settings.json';\n default:\n return source;\n }\n}\n\ninterface SettingsOverrideScreenProps {\n store: WizardStore;\n}\n\nexport const SettingsOverrideScreen = ({\n store,\n}: SettingsOverrideScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const [feedback, setFeedback] = useState<string | null>(null);\n const conflicts = store.session.settingsConflicts?.filter((c) => c.writable);\n\n if (!conflicts || conflicts.length === 0) {\n return null;\n }\n\n return (\n <ModalOverlay\n borderColor=\"red\"\n title={`${Icons.warning} Settings conflict`}\n width={64}\n feedback={feedback ? `${Icons.warning} ${feedback}` : null}\n footer={\n <ConfirmationInput\n message=\"Back up to .wizard-backup and continue?\"\n confirmLabel=\"Backup & continue [Enter]\"\n cancelLabel=\"Exit [Esc]\"\n onConfirm={() => {\n const ok = store.backupAndFixSettingsOverride();\n if (!ok) {\n setFeedback('Could not back up the settings file.');\n }\n }}\n onCancel={() => process.exit(1)}\n />\n }\n >\n {conflicts.map((conflict) => (\n <Box key={conflict.source} flexDirection=\"column\" marginBottom={1}>\n <Text>\n Your settings file at{' '}\n <Text bold>{sourcePath(conflict.source)}</Text> sets:\n </Text>\n <Box flexDirection=\"column\" paddingLeft={2}>\n {conflict.keys.map((key) => (\n <Text key={key}>\n {Icons.bullet}{' '}\n <Text color=\"yellow\" bold>\n {key}\n </Text>\n </Text>\n ))}\n </Box>\n </Box>\n ))}\n <Text dimColor>\n These settings override credentials and prevent the Wizard from reaching\n the PostHog LLM Gateway. We can back up the file and continue.\n </Text>\n </ModalOverlay>\n );\n};\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SetupScreen — Generic framework disambiguation.
|
|
3
|
-
*
|
|
4
|
-
* Iterates unresolved setup questions from the FrameworkConfig
|
|
5
|
-
* and renders a PickerMenu for each. If all questions are auto-resolved,
|
|
6
|
-
* this screen is skipped entirely (the router skips it via its show() predicate).
|
|
7
|
-
*/
|
|
8
|
-
import type { WizardStore } from '../store.js';
|
|
9
|
-
interface SetupScreenProps {
|
|
10
|
-
store: WizardStore;
|
|
11
|
-
}
|
|
12
|
-
export declare const SetupScreen: ({ store }: SetupScreenProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
-
export {};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* SetupScreen — Generic framework disambiguation.
|
|
4
|
-
*
|
|
5
|
-
* Iterates unresolved setup questions from the FrameworkConfig
|
|
6
|
-
* and renders a PickerMenu for each. If all questions are auto-resolved,
|
|
7
|
-
* this screen is skipped entirely (the router skips it via its show() predicate).
|
|
8
|
-
*/
|
|
9
|
-
import { Box, Text } from 'ink';
|
|
10
|
-
import { useState, useEffect } from 'react';
|
|
11
|
-
import { useSyncExternalStore } from 'react';
|
|
12
|
-
import { PickerMenu } from '../primitives/index.js';
|
|
13
|
-
import { Colors } from '../styles.js';
|
|
14
|
-
export const SetupScreen = ({ store }) => {
|
|
15
|
-
useSyncExternalStore((cb) => store.subscribe(cb), () => store.getSnapshot());
|
|
16
|
-
const config = store.session.frameworkConfig;
|
|
17
|
-
const questions = config?.metadata.setup?.questions ?? [];
|
|
18
|
-
// Track which question index we're currently showing
|
|
19
|
-
const [currentIndex, setCurrentIndex] = useState(0);
|
|
20
|
-
const [resolving, setResolving] = useState(true);
|
|
21
|
-
// On mount, run auto-detection for all questions
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
void (async () => {
|
|
24
|
-
for (const q of questions) {
|
|
25
|
-
// Skip if already resolved (e.g. by CLI arg)
|
|
26
|
-
if (q.key in store.session.frameworkContext)
|
|
27
|
-
continue;
|
|
28
|
-
try {
|
|
29
|
-
const detected = await q.detect({
|
|
30
|
-
installDir: store.session.installDir,
|
|
31
|
-
});
|
|
32
|
-
if (detected !== null) {
|
|
33
|
-
store.setFrameworkContext(q.key, detected);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
// Detection failed — will ask the user
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
setResolving(false);
|
|
41
|
-
// If all resolved, the router's isComplete predicate will
|
|
42
|
-
// resolve past this screen on the next render cycle.
|
|
43
|
-
})();
|
|
44
|
-
}, []);
|
|
45
|
-
if (resolving) {
|
|
46
|
-
return (_jsx(Box, { flexDirection: "column", flexGrow: 1, children: _jsx(Text, { dimColor: true, children: "Detecting project configuration..." }) }));
|
|
47
|
-
}
|
|
48
|
-
// Get unresolved questions
|
|
49
|
-
const unresolved = questions.filter((q) => !(q.key in store.session.frameworkContext));
|
|
50
|
-
if (unresolved.length === 0) {
|
|
51
|
-
// All resolved — should have already advanced
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
const question = unresolved[currentIndex] ?? unresolved[0];
|
|
55
|
-
if (!question)
|
|
56
|
-
return null;
|
|
57
|
-
return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: Colors.accent, children: "Project Setup" }), config && (_jsxs(Text, { dimColor: true, children: ["Configuring ", config.metadata.name, " integration"] }))] }), _jsx(PickerMenu, { message: question.message, options: question.options.map((o) => ({
|
|
58
|
-
label: o.label,
|
|
59
|
-
value: o.value,
|
|
60
|
-
hint: o.hint,
|
|
61
|
-
})), onSelect: (value) => {
|
|
62
|
-
const selected = Array.isArray(value) ? value[0] : value;
|
|
63
|
-
store.setFrameworkContext(question.key, selected);
|
|
64
|
-
// Check if more unresolved questions remain
|
|
65
|
-
const remaining = unresolved.filter((q) => q.key !== question.key &&
|
|
66
|
-
!(q.key in store.session.frameworkContext));
|
|
67
|
-
if (remaining.length > 0) {
|
|
68
|
-
setCurrentIndex((i) => i + 1);
|
|
69
|
-
}
|
|
70
|
-
// When no remaining questions, setFrameworkContext already
|
|
71
|
-
// triggered emitChange — router resolves past this screen.
|
|
72
|
-
} })] }));
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=SetupScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetupScreen.js","sourceRoot":"","sources":["../../../../../src/ui/tui/screens/SetupScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * SetupScreen — Generic framework disambiguation.\n *\n * Iterates unresolved setup questions from the FrameworkConfig\n * and renders a PickerMenu for each. If all questions are auto-resolved,\n * this screen is skipped entirely (the router skips it via its show() predicate).\n */\n\nimport { Box, Text } from 'ink';\nimport { useState, useEffect } from 'react';\nimport { useSyncExternalStore } from 'react';\nimport type { WizardStore } from '../store.js';\nimport { PickerMenu } from '../primitives/index.js';\nimport { Colors } from '../styles.js';\nimport type { SetupQuestion } from '../../../lib/framework-config.js';\n\ninterface SetupScreenProps {\n store: WizardStore;\n}\n\nexport const SetupScreen = ({ store }: SetupScreenProps) => {\n useSyncExternalStore(\n (cb) => store.subscribe(cb),\n () => store.getSnapshot(),\n );\n\n const config = store.session.frameworkConfig;\n const questions = config?.metadata.setup?.questions ?? [];\n\n // Track which question index we're currently showing\n const [currentIndex, setCurrentIndex] = useState(0);\n const [resolving, setResolving] = useState(true);\n\n // On mount, run auto-detection for all questions\n useEffect(() => {\n void (async () => {\n for (const q of questions) {\n // Skip if already resolved (e.g. by CLI arg)\n if (q.key in store.session.frameworkContext) continue;\n\n try {\n const detected = await q.detect({\n installDir: store.session.installDir,\n });\n if (detected !== null) {\n store.setFrameworkContext(q.key, detected);\n }\n } catch {\n // Detection failed — will ask the user\n }\n }\n setResolving(false);\n\n // If all resolved, the router's isComplete predicate will\n // resolve past this screen on the next render cycle.\n })();\n }, []);\n\n if (resolving) {\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <Text dimColor>Detecting project configuration...</Text>\n </Box>\n );\n }\n\n // Get unresolved questions\n const unresolved = questions.filter(\n (q: SetupQuestion) => !(q.key in store.session.frameworkContext),\n );\n\n if (unresolved.length === 0) {\n // All resolved — should have already advanced\n return null;\n }\n\n const question = unresolved[currentIndex] ?? unresolved[0];\n if (!question) return null;\n\n return (\n <Box flexDirection=\"column\" flexGrow={1}>\n <Box flexDirection=\"column\" marginBottom={1}>\n <Text bold color={Colors.accent}>\n Project Setup\n </Text>\n {config && (\n <Text dimColor>Configuring {config.metadata.name} integration</Text>\n )}\n </Box>\n\n <PickerMenu<string>\n message={question.message}\n options={question.options.map((o) => ({\n label: o.label,\n value: o.value,\n hint: o.hint,\n }))}\n onSelect={(value) => {\n const selected = Array.isArray(value) ? value[0] : value;\n store.setFrameworkContext(question.key, selected);\n\n // Check if more unresolved questions remain\n const remaining = unresolved.filter(\n (q: SetupQuestion) =>\n q.key !== question.key &&\n !(q.key in store.session.frameworkContext),\n );\n\n if (remaining.length > 0) {\n setCurrentIndex((i) => i + 1);\n }\n // When no remaining questions, setFrameworkContext already\n // triggered emitChange — router resolves past this screen.\n }}\n />\n </Box>\n );\n};\n"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SkillsScreen — Ask whether to keep installed skills in .claude/skills/.
|
|
3
|
-
*
|
|
4
|
-
* Shown after the outro summary so users see the agent's output first,
|
|
5
|
-
* then decide whether to keep the skills that powered it.
|
|
6
|
-
*
|
|
7
|
-
* When done, calls store.setSkillsComplete() and exits the process.
|
|
8
|
-
*/
|
|
9
|
-
import type { WizardStore } from '../store.js';
|
|
10
|
-
interface SkillsScreenProps {
|
|
11
|
-
store: WizardStore;
|
|
12
|
-
}
|
|
13
|
-
export declare const SkillsScreen: ({ store }: SkillsScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
export {};
|