@amplitude/wizard 1.0.0-beta.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/LICENSE +47 -0
- package/README.md +119 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +763 -0
- package/dist/package.json +144 -0
- package/dist/src/frameworks/android/android-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/android/android-wizard-agent.js +72 -0
- package/dist/src/frameworks/android/utils.d.ts +11 -0
- package/dist/src/frameworks/android/utils.js +32 -0
- package/dist/src/frameworks/django/django-wizard-agent.d.ts +8 -0
- package/dist/src/frameworks/django/django-wizard-agent.js +171 -0
- package/dist/src/frameworks/django/utils.d.ts +31 -0
- package/dist/src/frameworks/django/utils.js +305 -0
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.d.ts +11 -0
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +189 -0
- package/dist/src/frameworks/fastapi/utils.d.ts +26 -0
- package/dist/src/frameworks/fastapi/utils.js +257 -0
- package/dist/src/frameworks/flask/flask-wizard-agent.d.ts +8 -0
- package/dist/src/frameworks/flask/flask-wizard-agent.js +177 -0
- package/dist/src/frameworks/flask/utils.d.ts +28 -0
- package/dist/src/frameworks/flask/utils.js +343 -0
- package/dist/src/frameworks/flutter/flutter-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/flutter/flutter-wizard-agent.js +57 -0
- package/dist/src/frameworks/flutter/utils.d.ts +7 -0
- package/dist/src/frameworks/flutter/utils.js +64 -0
- package/dist/src/frameworks/generic/generic-wizard-agent.d.ts +2 -0
- package/dist/src/frameworks/generic/generic-wizard-agent.js +176 -0
- package/dist/src/frameworks/go/go-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/go/go-wizard-agent.js +57 -0
- package/dist/src/frameworks/go/utils.d.ts +5 -0
- package/dist/src/frameworks/go/utils.js +44 -0
- package/dist/src/frameworks/java/java-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/java/java-wizard-agent.js +73 -0
- package/dist/src/frameworks/java/utils.d.ts +15 -0
- package/dist/src/frameworks/java/utils.js +64 -0
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +57 -0
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.d.ts +3 -0
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +151 -0
- package/dist/src/frameworks/javascript-web/utils.d.ts +28 -0
- package/dist/src/frameworks/javascript-web/utils.js +153 -0
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +98 -0
- package/dist/src/frameworks/nextjs/utils.d.ts +12 -0
- package/dist/src/frameworks/nextjs/utils.js +51 -0
- package/dist/src/frameworks/python/python-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/python/python-wizard-agent.js +193 -0
- package/dist/src/frameworks/python/utils.d.ts +28 -0
- package/dist/src/frameworks/python/utils.js +146 -0
- package/dist/src/frameworks/react-native/react-native-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js +84 -0
- package/dist/src/frameworks/react-native/utils.d.ts +21 -0
- package/dist/src/frameworks/react-native/utils.js +82 -0
- package/dist/src/frameworks/react-router/react-router-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +98 -0
- package/dist/src/frameworks/react-router/utils.d.ts +13 -0
- package/dist/src/frameworks/react-router/utils.js +160 -0
- package/dist/src/frameworks/swift/swift-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/swift/swift-wizard-agent.js +72 -0
- package/dist/src/frameworks/swift/utils.d.ts +12 -0
- package/dist/src/frameworks/swift/utils.js +82 -0
- package/dist/src/frameworks/unity/unity-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/unity/unity-wizard-agent.js +79 -0
- package/dist/src/frameworks/unity/utils.d.ts +12 -0
- package/dist/src/frameworks/unity/utils.js +66 -0
- package/dist/src/frameworks/unreal/unreal-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/unreal/unreal-wizard-agent.js +77 -0
- package/dist/src/frameworks/unreal/utils.d.ts +10 -0
- package/dist/src/frameworks/unreal/utils.js +29 -0
- package/dist/src/frameworks/vue/vue-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/vue/vue-wizard-agent.js +64 -0
- package/dist/src/lib/agent-hooks.d.ts +26 -0
- package/dist/src/lib/agent-hooks.js +118 -0
- package/dist/src/lib/agent-interface.d.ts +175 -0
- package/dist/src/lib/agent-interface.js +1217 -0
- package/dist/src/lib/agent-runner.d.ts +9 -0
- package/dist/src/lib/agent-runner.js +415 -0
- package/dist/src/lib/ampli-config.d.ts +105 -0
- package/dist/src/lib/ampli-config.js +178 -0
- package/dist/src/lib/api.d.ts +107 -0
- package/dist/src/lib/api.js +442 -0
- package/dist/src/lib/commandments.d.ts +1 -0
- package/dist/src/lib/commandments.js +24 -0
- package/dist/src/lib/console-query.d.ts +27 -0
- package/dist/src/lib/console-query.js +121 -0
- package/dist/src/lib/constants.d.ts +124 -0
- package/dist/src/lib/constants.js +170 -0
- package/dist/src/lib/detect-amplitude.d.ts +31 -0
- package/dist/src/lib/detect-amplitude.js +407 -0
- package/dist/src/lib/framework-config.d.ts +188 -0
- package/dist/src/lib/framework-config.js +21 -0
- package/dist/src/lib/health-checks/endpoints.d.ts +3 -0
- package/dist/src/lib/health-checks/endpoints.js +45 -0
- package/dist/src/lib/health-checks/index.d.ts +4 -0
- package/dist/src/lib/health-checks/index.js +22 -0
- package/dist/src/lib/health-checks/readiness.d.ts +24 -0
- package/dist/src/lib/health-checks/readiness.js +118 -0
- package/dist/src/lib/health-checks/statuspage.d.ts +9 -0
- package/dist/src/lib/health-checks/statuspage.js +104 -0
- package/dist/src/lib/health-checks/types.d.ts +31 -0
- package/dist/src/lib/health-checks/types.js +9 -0
- package/dist/src/lib/helper-functions.d.ts +1 -0
- package/dist/src/lib/helper-functions.js +5 -0
- package/dist/src/lib/middleware/benchmark.d.ts +54 -0
- package/dist/src/lib/middleware/benchmark.js +48 -0
- package/dist/src/lib/middleware/benchmarks/cache-tracker.d.ts +44 -0
- package/dist/src/lib/middleware/benchmarks/cache-tracker.js +80 -0
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.d.ts +29 -0
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +59 -0
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.d.ts +26 -0
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.js +55 -0
- package/dist/src/lib/middleware/benchmarks/cost-tracker.d.ts +16 -0
- package/dist/src/lib/middleware/benchmarks/cost-tracker.js +75 -0
- package/dist/src/lib/middleware/benchmarks/duration-tracker.d.ts +20 -0
- package/dist/src/lib/middleware/benchmarks/duration-tracker.js +39 -0
- package/dist/src/lib/middleware/benchmarks/index.d.ts +9 -0
- package/dist/src/lib/middleware/benchmarks/index.js +67 -0
- package/dist/src/lib/middleware/benchmarks/json-writer.d.ts +15 -0
- package/dist/src/lib/middleware/benchmarks/json-writer.js +144 -0
- package/dist/src/lib/middleware/benchmarks/summary.d.ts +9 -0
- package/dist/src/lib/middleware/benchmarks/summary.js +105 -0
- package/dist/src/lib/middleware/benchmarks/token-tracker.d.ts +40 -0
- package/dist/src/lib/middleware/benchmarks/token-tracker.js +76 -0
- package/dist/src/lib/middleware/benchmarks/turn-counter.d.ts +34 -0
- package/dist/src/lib/middleware/benchmarks/turn-counter.js +58 -0
- package/dist/src/lib/middleware/config.d.ts +24 -0
- package/dist/src/lib/middleware/config.js +96 -0
- package/dist/src/lib/middleware/index.d.ts +11 -0
- package/dist/src/lib/middleware/index.js +17 -0
- package/dist/src/lib/middleware/phase-detector.d.ts +8 -0
- package/dist/src/lib/middleware/phase-detector.js +63 -0
- package/dist/src/lib/middleware/pipeline.d.ts +29 -0
- package/dist/src/lib/middleware/pipeline.js +81 -0
- package/dist/src/lib/middleware/schemas.d.ts +27 -0
- package/dist/src/lib/middleware/schemas.js +84 -0
- package/dist/src/lib/middleware/types.d.ts +94 -0
- package/dist/src/lib/middleware/types.js +8 -0
- package/dist/src/lib/package-manager-detection.d.ts +42 -0
- package/dist/src/lib/package-manager-detection.js +292 -0
- package/dist/src/lib/registry.d.ts +3 -0
- package/dist/src/lib/registry.js +42 -0
- package/dist/src/lib/safe-tools.d.ts +2 -0
- package/dist/src/lib/safe-tools.js +214 -0
- package/dist/src/lib/wizard-session.d.ts +220 -0
- package/dist/src/lib/wizard-session.js +127 -0
- package/dist/src/lib/wizard-tools.d.ts +82 -0
- package/dist/src/lib/wizard-tools.js +499 -0
- package/dist/src/run.d.ts +19 -0
- package/dist/src/run.js +151 -0
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +30 -0
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +141 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +29 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +180 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +20 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +63 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +28 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +77 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +24 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +60 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +27 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +101 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +26 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +102 -0
- package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +44 -0
- package/dist/src/steps/add-mcp-server-to-clients/defaults.js +123 -0
- package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +19 -0
- package/dist/src/steps/add-mcp-server-to-clients/index.js +110 -0
- package/dist/src/steps/add-or-update-environment-variables.d.ts +10 -0
- package/dist/src/steps/add-or-update-environment-variables.js +188 -0
- package/dist/src/steps/index.d.ts +4 -0
- package/dist/src/steps/index.js +20 -0
- package/dist/src/steps/run-prettier.d.ts +5 -0
- package/dist/src/steps/run-prettier.js +90 -0
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +11 -0
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +11 -0
- package/dist/src/steps/upload-environment-variables/index.d.ts +6 -0
- package/dist/src/steps/upload-environment-variables/index.js +37 -0
- package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +15 -0
- package/dist/src/steps/upload-environment-variables/providers/vercel.js +145 -0
- package/dist/src/telemetry.d.ts +2 -0
- package/dist/src/telemetry.js +12 -0
- package/dist/src/ui/index.d.ts +8 -0
- package/dist/src/ui/index.js +16 -0
- package/dist/src/ui/logging-ui.d.ts +56 -0
- package/dist/src/ui/logging-ui.js +157 -0
- package/dist/src/ui/tui/App.d.ts +6 -0
- package/dist/src/ui/tui/App.js +34 -0
- package/dist/src/ui/tui/components/AmplitudeLogo.d.ts +5 -0
- package/dist/src/ui/tui/components/AmplitudeLogo.js +81 -0
- package/dist/src/ui/tui/components/AmplitudeTextLogo.d.ts +3 -0
- package/dist/src/ui/tui/components/AmplitudeTextLogo.js +31 -0
- package/dist/src/ui/tui/components/ConsoleView.d.ts +23 -0
- package/dist/src/ui/tui/components/ConsoleView.js +220 -0
- package/dist/src/ui/tui/components/TitleBar.d.ts +6 -0
- package/dist/src/ui/tui/components/TitleBar.js +16 -0
- package/dist/src/ui/tui/console-commands.d.ts +16 -0
- package/dist/src/ui/tui/console-commands.js +31 -0
- package/dist/src/ui/tui/context/CommandModeContext.d.ts +2 -0
- package/dist/src/ui/tui/context/CommandModeContext.js +3 -0
- package/dist/src/ui/tui/flows.d.ts +48 -0
- package/dist/src/ui/tui/flows.js +154 -0
- package/dist/src/ui/tui/hooks/useScreenInput.d.ts +13 -0
- package/dist/src/ui/tui/hooks/useScreenInput.js +18 -0
- package/dist/src/ui/tui/hooks/useStdoutDimensions.d.ts +9 -0
- package/dist/src/ui/tui/hooks/useStdoutDimensions.js +29 -0
- package/dist/src/ui/tui/ink-ui.d.ts +62 -0
- package/dist/src/ui/tui/ink-ui.js +142 -0
- package/dist/src/ui/tui/primitives/CardLayout.d.ts +12 -0
- package/dist/src/ui/tui/primitives/CardLayout.js +9 -0
- package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +13 -0
- package/dist/src/ui/tui/primitives/ConfirmationInput.js +35 -0
- package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +21 -0
- package/dist/src/ui/tui/primitives/DissolveTransition.js +143 -0
- package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +9 -0
- package/dist/src/ui/tui/primitives/EventPlanViewer.js +9 -0
- package/dist/src/ui/tui/primitives/KagiSmallWebViewer.d.ts +7 -0
- package/dist/src/ui/tui/primitives/KagiSmallWebViewer.js +101 -0
- package/dist/src/ui/tui/primitives/LoadingBox.d.ts +8 -0
- package/dist/src/ui/tui/primitives/LoadingBox.js +9 -0
- package/dist/src/ui/tui/primitives/LogViewer.d.ts +11 -0
- package/dist/src/ui/tui/primitives/LogViewer.js +55 -0
- package/dist/src/ui/tui/primitives/PickerMenu.d.ts +20 -0
- package/dist/src/ui/tui/primitives/PickerMenu.js +212 -0
- package/dist/src/ui/tui/primitives/ProgressList.d.ts +15 -0
- package/dist/src/ui/tui/primitives/ProgressList.js +29 -0
- package/dist/src/ui/tui/primitives/PromptLabel.d.ts +11 -0
- package/dist/src/ui/tui/primitives/PromptLabel.js +12 -0
- package/dist/src/ui/tui/primitives/ReportViewer.d.ts +12 -0
- package/dist/src/ui/tui/primitives/ReportViewer.js +99 -0
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +26 -0
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +29 -0
- package/dist/src/ui/tui/primitives/SlashCommandInput.d.ts +21 -0
- package/dist/src/ui/tui/primitives/SlashCommandInput.js +85 -0
- package/dist/src/ui/tui/primitives/SnakeGame.d.ts +1 -0
- package/dist/src/ui/tui/primitives/SnakeGame.js +1 -0
- package/dist/src/ui/tui/primitives/SplitView.d.ts +11 -0
- package/dist/src/ui/tui/primitives/SplitView.js +8 -0
- package/dist/src/ui/tui/primitives/TabContainer.d.ts +18 -0
- package/dist/src/ui/tui/primitives/TabContainer.js +30 -0
- package/dist/src/ui/tui/primitives/index.d.ts +23 -0
- package/dist/src/ui/tui/primitives/index.js +19 -0
- package/dist/src/ui/tui/router.d.ts +61 -0
- package/dist/src/ui/tui/router.js +104 -0
- package/dist/src/ui/tui/screen-registry.d.ts +19 -0
- package/dist/src/ui/tui/screen-registry.js +56 -0
- package/dist/src/ui/tui/screens/ActivationOptionsScreen.d.ts +12 -0
- package/dist/src/ui/tui/screens/ActivationOptionsScreen.js +57 -0
- package/dist/src/ui/tui/screens/AuthScreen.d.ts +18 -0
- package/dist/src/ui/tui/screens/AuthScreen.js +107 -0
- package/dist/src/ui/tui/screens/ChecklistScreen.d.ts +22 -0
- package/dist/src/ui/tui/screens/ChecklistScreen.js +122 -0
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.d.ts +24 -0
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +113 -0
- package/dist/src/ui/tui/screens/DataSetupScreen.d.ts +17 -0
- package/dist/src/ui/tui/screens/DataSetupScreen.js +73 -0
- package/dist/src/ui/tui/screens/IntroScreen.d.ts +16 -0
- package/dist/src/ui/tui/screens/IntroScreen.js +86 -0
- package/dist/src/ui/tui/screens/LoginScreen.d.ts +15 -0
- package/dist/src/ui/tui/screens/LoginScreen.js +65 -0
- package/dist/src/ui/tui/screens/LogoutScreen.d.ts +12 -0
- package/dist/src/ui/tui/screens/LogoutScreen.js +28 -0
- package/dist/src/ui/tui/screens/McpScreen.d.ts +26 -0
- package/dist/src/ui/tui/screens/McpScreen.js +148 -0
- package/dist/src/ui/tui/screens/OutageScreen.d.ts +10 -0
- package/dist/src/ui/tui/screens/OutageScreen.js +17 -0
- package/dist/src/ui/tui/screens/OutroScreen.d.ts +11 -0
- package/dist/src/ui/tui/screens/OutroScreen.js +69 -0
- package/dist/src/ui/tui/screens/RegionSelectScreen.d.ts +17 -0
- package/dist/src/ui/tui/screens/RegionSelectScreen.js +40 -0
- package/dist/src/ui/tui/screens/RunScreen.d.ts +16 -0
- package/dist/src/ui/tui/screens/RunScreen.js +212 -0
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +10 -0
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +23 -0
- package/dist/src/ui/tui/screens/SetupScreen.d.ts +13 -0
- package/dist/src/ui/tui/screens/SetupScreen.js +73 -0
- package/dist/src/ui/tui/screens/SlackScreen.d.ts +25 -0
- package/dist/src/ui/tui/screens/SlackScreen.js +97 -0
- package/dist/src/ui/tui/services/mcp-installer.d.ts +25 -0
- package/dist/src/ui/tui/services/mcp-installer.js +82 -0
- package/dist/src/ui/tui/start-tui.d.ts +10 -0
- package/dist/src/ui/tui/start-tui.js +50 -0
- package/dist/src/ui/tui/store.d.ts +231 -0
- package/dist/src/ui/tui/store.js +568 -0
- package/dist/src/ui/tui/styles.d.ts +31 -0
- package/dist/src/ui/tui/styles.js +33 -0
- package/dist/src/ui/wizard-ui.d.ts +110 -0
- package/dist/src/ui/wizard-ui.js +18 -0
- package/dist/src/utils/ampli-settings.d.ts +37 -0
- package/dist/src/utils/ampli-settings.js +182 -0
- package/dist/src/utils/analytics.d.ts +35 -0
- package/dist/src/utils/analytics.js +133 -0
- package/dist/src/utils/anthropic-status.d.ts +17 -0
- package/dist/src/utils/anthropic-status.js +51 -0
- package/dist/src/utils/api-key-store.d.ts +35 -0
- package/dist/src/utils/api-key-store.js +176 -0
- package/dist/src/utils/bash.d.ts +2 -0
- package/dist/src/utils/bash.js +53 -0
- package/dist/src/utils/custom-headers.d.ts +9 -0
- package/dist/src/utils/custom-headers.js +23 -0
- package/dist/src/utils/debug.d.ts +23 -0
- package/dist/src/utils/debug.js +86 -0
- package/dist/src/utils/environment.d.ts +4 -0
- package/dist/src/utils/environment.js +76 -0
- package/dist/src/utils/file-utils.d.ts +2 -0
- package/dist/src/utils/file-utils.js +16 -0
- package/dist/src/utils/get-api-key.d.ts +17 -0
- package/dist/src/utils/get-api-key.js +50 -0
- package/dist/src/utils/logging.d.ts +9 -0
- package/dist/src/utils/logging.js +48 -0
- package/dist/src/utils/oauth.d.ts +53 -0
- package/dist/src/utils/oauth.js +354 -0
- package/dist/src/utils/package-json.d.ts +25 -0
- package/dist/src/utils/package-json.js +26 -0
- package/dist/src/utils/package-manager.d.ts +21 -0
- package/dist/src/utils/package-manager.js +208 -0
- package/dist/src/utils/semver.d.ts +21 -0
- package/dist/src/utils/semver.js +61 -0
- package/dist/src/utils/setup-utils.d.ts +82 -0
- package/dist/src/utils/setup-utils.js +467 -0
- package/dist/src/utils/shell-completions.d.ts +10 -0
- package/dist/src/utils/shell-completions.js +199 -0
- package/dist/src/utils/string.d.ts +1 -0
- package/dist/src/utils/string.js +8 -0
- package/dist/src/utils/types.d.ts +72 -0
- package/dist/src/utils/types.js +2 -0
- package/dist/src/utils/urls.d.ts +14 -0
- package/dist/src/utils/urls.js +69 -0
- package/dist/src/utils/vendor/is-unicorn-supported.d.ts +1 -0
- package/dist/src/utils/vendor/is-unicorn-supported.js +23 -0
- package/dist/src/utils/wizard-abort.d.ts +13 -0
- package/dist/src/utils/wizard-abort.js +56 -0
- package/man/amplitude-wizard.1 +170 -0
- package/package.json +144 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@amplitude/wizard",
|
|
3
|
+
"version": "1.0.0-beta.0",
|
|
4
|
+
"homepage": "https://github.com/amplitude/wizard",
|
|
5
|
+
"repository": "https://github.com/amplitude/wizard",
|
|
6
|
+
"description": "The Amplitude wizard helps you to configure your project",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"amplitude",
|
|
9
|
+
"wizard",
|
|
10
|
+
"sdk",
|
|
11
|
+
"cli",
|
|
12
|
+
"project",
|
|
13
|
+
"setup",
|
|
14
|
+
"install",
|
|
15
|
+
"configure"
|
|
16
|
+
],
|
|
17
|
+
"bin": {
|
|
18
|
+
"amplitude-wizard": "dist/bin.js"
|
|
19
|
+
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"man": [
|
|
24
|
+
"man/amplitude-wizard.1"
|
|
25
|
+
],
|
|
26
|
+
"files": [
|
|
27
|
+
"dist/bin.*",
|
|
28
|
+
"dist/src",
|
|
29
|
+
"man/",
|
|
30
|
+
"package.json",
|
|
31
|
+
"README.md"
|
|
32
|
+
],
|
|
33
|
+
"main": "dist/index.js",
|
|
34
|
+
"typings": "dist/index.d.ts",
|
|
35
|
+
"typescript": {
|
|
36
|
+
"definition": "dist/index.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@amplitude/analytics-browser": "^2.0.0",
|
|
40
|
+
"@anthropic-ai/claude-agent-sdk": "0.2.7",
|
|
41
|
+
"@inkjs/ui": "^2.0.0",
|
|
42
|
+
"@inquirer/prompts": "^8.3.0",
|
|
43
|
+
"@langchain/core": "^1.1.33",
|
|
44
|
+
"@pavus/snake-game": "^1.1.1",
|
|
45
|
+
"axios": "1.13.5",
|
|
46
|
+
"chalk": "^2.4.1",
|
|
47
|
+
"client-oauth2": "^4.3.3",
|
|
48
|
+
"conf": "^15.1.0",
|
|
49
|
+
"dotenv": "^16.4.7",
|
|
50
|
+
"fast-glob": "^3.3.3",
|
|
51
|
+
"glob": "9.3.5",
|
|
52
|
+
"ink": "^6.8.0",
|
|
53
|
+
"inquirer": "^6.2.0",
|
|
54
|
+
"jsonc-parser": "^3.3.1",
|
|
55
|
+
"lodash": "^4.17.21",
|
|
56
|
+
"magicast": "^0.2.10",
|
|
57
|
+
"nanostores": "^1.1.1",
|
|
58
|
+
"opn": "^5.4.0",
|
|
59
|
+
"pkce-challenge": "^6.0.0",
|
|
60
|
+
"randomstring": "^1.3.1",
|
|
61
|
+
"react": "^19.2.4",
|
|
62
|
+
"read-env": "^1.3.0",
|
|
63
|
+
"recast": "^0.23.3",
|
|
64
|
+
"semver": "^7.5.3",
|
|
65
|
+
"uuid": "^11.1.0",
|
|
66
|
+
"xcode": "3.0.1",
|
|
67
|
+
"xml-js": "^1.6.11",
|
|
68
|
+
"yargs": "^16.2.0",
|
|
69
|
+
"zod": "^4.3.6",
|
|
70
|
+
"zod-to-json-schema": "^3.25.1"
|
|
71
|
+
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"@anthropic-ai/sdk": "^0.79.0",
|
|
74
|
+
"@cucumber/cucumber": "^12.7.0",
|
|
75
|
+
"@eslint/js": "^10.0.1",
|
|
76
|
+
"@types/chai": "^4.3.17",
|
|
77
|
+
"@types/glob": "^7.2.0",
|
|
78
|
+
"@types/inquirer": "^0.0.43",
|
|
79
|
+
"@types/lodash": "^4.17.15",
|
|
80
|
+
"@types/node": "^20.19.37",
|
|
81
|
+
"@types/opn": "5.1.0",
|
|
82
|
+
"@types/react": "^19.2.14",
|
|
83
|
+
"@types/rimraf": "^3.0.2",
|
|
84
|
+
"@types/semver": "^7.3.7",
|
|
85
|
+
"@types/yargs": "^16.0.9",
|
|
86
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
87
|
+
"eslint": "^9.39.4",
|
|
88
|
+
"eslint-config-prettier": "^9.1.2",
|
|
89
|
+
"globals": "^17.4.0",
|
|
90
|
+
"husky": "^9.1.7",
|
|
91
|
+
"lint-staged": "^15.5.1",
|
|
92
|
+
"msw": "^2.10.4",
|
|
93
|
+
"prettier": "^2.8.7",
|
|
94
|
+
"rimraf": "^6.1.3",
|
|
95
|
+
"ts-node": "^10.9.1",
|
|
96
|
+
"tsx": "^4.20.3",
|
|
97
|
+
"typescript": "^5.0.4",
|
|
98
|
+
"typescript-eslint": "^8.57.1",
|
|
99
|
+
"vitest": "^4.0.18"
|
|
100
|
+
},
|
|
101
|
+
"engines": {
|
|
102
|
+
"node": ">=20",
|
|
103
|
+
"npm": ">=3.10.7"
|
|
104
|
+
},
|
|
105
|
+
"packageManager": "pnpm@10.23.0+sha512.21c4e5698002ade97e4efe8b8b4a89a8de3c85a37919f957e7a0f30f38fbc5bbdd05980ffe29179b2fb6e6e691242e098d945d1601772cad0fef5fb6411e2a4b",
|
|
106
|
+
"scripts": {
|
|
107
|
+
"clean": "rm -rf ./dist",
|
|
108
|
+
"prebuild": "pnpm clean",
|
|
109
|
+
"build:watch": "pnpm tsc -w",
|
|
110
|
+
"build": "pnpm tsc",
|
|
111
|
+
"postbuild": "chmod +x ./dist/bin.js && pnpm test:smoke",
|
|
112
|
+
"test:smoke": "node -e \"require('./dist/bin.js')\" 2>&1 | head -5 | grep -q 'Amplitude Wizard' || (echo 'Smoke test failed: compiled binary crashed on load' && exit 1)",
|
|
113
|
+
"lint": "pnpm lint:prettier && pnpm lint:eslint",
|
|
114
|
+
"lint:prettier": "prettier --check \"{lib,src,test}/**/*.ts\"",
|
|
115
|
+
"lint:eslint": "eslint . --cache --format stylish",
|
|
116
|
+
"fix": "pnpm fix:eslint && pnpm fix:prettier",
|
|
117
|
+
"fix:prettier": "prettier --write \"{lib,src,test}/**/*.ts\"",
|
|
118
|
+
"fix:eslint": "eslint . --format stylish --fix",
|
|
119
|
+
"test": "vitest run",
|
|
120
|
+
"test:e2e": "pnpm build && ./e2e-tests/run.sh",
|
|
121
|
+
"test:e2e-record": "export RECORD_FIXTURES=true && pnpm build && ./e2e-tests/run.sh",
|
|
122
|
+
"try": "tsx bin.ts",
|
|
123
|
+
"proxy": "cd \"${JS_REPO:-../javascript}\"/server/packages/thunder && aws-sso exec --profile us-prod-dev -- pnpm debug",
|
|
124
|
+
"proxy:bypass": "cd \"${JS_REPO:-../javascript}\"/server/packages/thunder && WIZARD_PROXY_DEV_BYPASS=1 aws-sso exec --profile us-prod-dev -- pnpm debug",
|
|
125
|
+
"dev": "pnpm build && pnpm link --global && (trap 'kill 0' EXIT; pnpm proxy & pnpm build:watch)",
|
|
126
|
+
"test:watch": "vitest",
|
|
127
|
+
"prepare": "husky",
|
|
128
|
+
"flows": "node scripts/render-flows.mjs",
|
|
129
|
+
"test:bdd": "cucumber-js",
|
|
130
|
+
"test:bdd:watch": "cucumber-js --retry 0 2>&1 | npx nodemon --watch features --exec cucumber-js",
|
|
131
|
+
"test:proxy": "vitest run --config vitest.config.proxy.ts",
|
|
132
|
+
"test:proxy:smoke": "vitest run --config vitest.config.proxy.ts -t 'proxy:smoke'",
|
|
133
|
+
"skills:refresh": "bash scripts/refresh-instrumentation-skills.sh"
|
|
134
|
+
},
|
|
135
|
+
"lint-staged": {
|
|
136
|
+
"*.{js,ts,tsx,jsx}": "pnpm fix"
|
|
137
|
+
},
|
|
138
|
+
"author": "Amplitude",
|
|
139
|
+
"license": "MIT",
|
|
140
|
+
"volta": {
|
|
141
|
+
"node": "20.18.2",
|
|
142
|
+
"pnpm": "10.23.0"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ANDROID_AGENT_CONFIG = void 0;
|
|
4
|
+
const package_manager_detection_1 = require("../../lib/package-manager-detection");
|
|
5
|
+
const constants_1 = require("../../lib/constants");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const ANDROID_PACKAGE_INSTALLATION = 'Use the detect_package_manager tool to determine the package manager. Add the Amplitude dependency to the app-level build.gradle (Groovy: `implementation \'com.amplitude:analytics-android:1.+\'`) or build.gradle.kts (Kotlin DSL: `implementation("com.amplitude:analytics-android:1.+")`), then sync the project.';
|
|
8
|
+
exports.ANDROID_AGENT_CONFIG = {
|
|
9
|
+
metadata: {
|
|
10
|
+
name: 'Android',
|
|
11
|
+
integration: constants_1.Integration.android,
|
|
12
|
+
beta: true,
|
|
13
|
+
docsUrl: 'https://amplitude.com/docs/sdks/analytics/android/android-kotlin-sdk',
|
|
14
|
+
gatherContext: async (options) => {
|
|
15
|
+
const language = await (0, utils_1.detectAndroidLanguage)(options);
|
|
16
|
+
return { language };
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
detection: {
|
|
20
|
+
packageName: 'com.amplitude:analytics-android',
|
|
21
|
+
packageDisplayName: 'Android',
|
|
22
|
+
usesPackageJson: false,
|
|
23
|
+
getVersion: () => undefined,
|
|
24
|
+
detect: utils_1.detectAndroidProject,
|
|
25
|
+
detectPackageManager: package_manager_detection_1.gradlePackageManager,
|
|
26
|
+
},
|
|
27
|
+
environment: {
|
|
28
|
+
// Android apps don't use .env files — the agent stores the key in gradle.properties or BuildConfig
|
|
29
|
+
uploadToHosting: false,
|
|
30
|
+
getEnvVars: () => ({}),
|
|
31
|
+
},
|
|
32
|
+
analytics: {
|
|
33
|
+
getTags: (context) => ({
|
|
34
|
+
language: context.language ?? 'unknown',
|
|
35
|
+
}),
|
|
36
|
+
},
|
|
37
|
+
prompts: {
|
|
38
|
+
projectTypeDetection: 'This is an Android project. Look for AndroidManifest.xml, build.gradle / build.gradle.kts, and settings.gradle to confirm.',
|
|
39
|
+
packageInstallation: ANDROID_PACKAGE_INSTALLATION,
|
|
40
|
+
getAdditionalContextLines: (context) => {
|
|
41
|
+
const lang = context.language ?? 'kotlin';
|
|
42
|
+
const initExample = lang === 'kotlin'
|
|
43
|
+
? 'val amplitude = Amplitude(Configuration(apiKey = AMPLITUDE_API_KEY, context = applicationContext))'
|
|
44
|
+
: 'Amplitude amplitude = new Amplitude(new Configuration(AMPLITUDE_API_KEY, getApplicationContext()));';
|
|
45
|
+
return [
|
|
46
|
+
`Language: ${lang === 'kotlin' ? 'Kotlin' : 'Java'}`,
|
|
47
|
+
`Framework docs ID: android (use amplitude://docs/frameworks/android for documentation)`,
|
|
48
|
+
`SDK: com.amplitude:analytics-android — add to app-level build.gradle`,
|
|
49
|
+
`Initialization: ${initExample}`,
|
|
50
|
+
`Never hardcode the API key in source files — store it in gradle.properties or local.properties and read it via BuildConfig`,
|
|
51
|
+
];
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
ui: {
|
|
55
|
+
successMessage: 'Amplitude integration complete',
|
|
56
|
+
estimatedDurationMinutes: 8,
|
|
57
|
+
getOutroChanges: (context) => {
|
|
58
|
+
const lang = context.language === 'java' ? 'Java' : 'Kotlin';
|
|
59
|
+
return [
|
|
60
|
+
`Analyzed your Android (${lang}) project structure`,
|
|
61
|
+
`Added the Amplitude analytics-android dependency to build.gradle`,
|
|
62
|
+
`Configured Amplitude initialization with autocapture`,
|
|
63
|
+
];
|
|
64
|
+
},
|
|
65
|
+
getOutroNextSteps: () => [
|
|
66
|
+
'Sync your Gradle project and run the app on a device or emulator',
|
|
67
|
+
'Visit your Amplitude dashboard to see incoming events',
|
|
68
|
+
'Use amplitude.track("Event Name") for custom events',
|
|
69
|
+
'Use amplitude.setUserId("user@example.com") to associate events with users',
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WizardOptions } from '../../utils/types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns true when the directory contains an Android project.
|
|
4
|
+
* Primary signal: AndroidManifest.xml (Android-specific; not present in pure JVM projects).
|
|
5
|
+
*/
|
|
6
|
+
export declare function detectAndroidProject(options: Pick<WizardOptions, 'installDir'>): Promise<boolean>;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the primary language used in the Android project.
|
|
9
|
+
* Presence of any .kt source file → Kotlin; otherwise assumes Java.
|
|
10
|
+
*/
|
|
11
|
+
export declare function detectAndroidLanguage(options: Pick<WizardOptions, 'installDir'>): Promise<'kotlin' | 'java'>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectAndroidProject = detectAndroidProject;
|
|
7
|
+
exports.detectAndroidLanguage = detectAndroidLanguage;
|
|
8
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
9
|
+
/**
|
|
10
|
+
* Returns true when the directory contains an Android project.
|
|
11
|
+
* Primary signal: AndroidManifest.xml (Android-specific; not present in pure JVM projects).
|
|
12
|
+
*/
|
|
13
|
+
async function detectAndroidProject(options) {
|
|
14
|
+
const manifests = await (0, fast_glob_1.default)('**/AndroidManifest.xml', {
|
|
15
|
+
cwd: options.installDir,
|
|
16
|
+
ignore: ['**/node_modules/**', '**/build/**', '**/.gradle/**'],
|
|
17
|
+
deep: 6,
|
|
18
|
+
});
|
|
19
|
+
return manifests.length > 0;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns the primary language used in the Android project.
|
|
23
|
+
* Presence of any .kt source file → Kotlin; otherwise assumes Java.
|
|
24
|
+
*/
|
|
25
|
+
async function detectAndroidLanguage(options) {
|
|
26
|
+
const kotlinFiles = await (0, fast_glob_1.default)('**/*.kt', {
|
|
27
|
+
cwd: options.installDir,
|
|
28
|
+
ignore: ['**/node_modules/**', '**/build/**', '**/.gradle/**'],
|
|
29
|
+
deep: 8,
|
|
30
|
+
});
|
|
31
|
+
return kotlinFiles.length > 0 ? 'kotlin' : 'java';
|
|
32
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FrameworkConfig } from '../../lib/framework-config';
|
|
2
|
+
import { DjangoProjectType } from './utils';
|
|
3
|
+
type DjangoContext = {
|
|
4
|
+
projectType?: DjangoProjectType;
|
|
5
|
+
settingsFile?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const DJANGO_AGENT_CONFIG: FrameworkConfig<DjangoContext>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.DJANGO_AGENT_CONFIG = void 0;
|
|
40
|
+
const framework_config_1 = require("../../lib/framework-config");
|
|
41
|
+
const package_manager_detection_1 = require("../../lib/package-manager-detection");
|
|
42
|
+
const constants_1 = require("../../lib/constants");
|
|
43
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
44
|
+
const fs = __importStar(require("node:fs"));
|
|
45
|
+
const path = __importStar(require("node:path"));
|
|
46
|
+
const utils_1 = require("./utils");
|
|
47
|
+
exports.DJANGO_AGENT_CONFIG = {
|
|
48
|
+
metadata: {
|
|
49
|
+
name: 'Django',
|
|
50
|
+
integration: constants_1.Integration.django,
|
|
51
|
+
beta: true,
|
|
52
|
+
docsUrl: 'https://amplitude.com/docs/sdks/analytics/python',
|
|
53
|
+
unsupportedVersionDocsUrl: 'https://amplitude.com/docs/sdks/analytics/python',
|
|
54
|
+
gatherContext: async (options) => {
|
|
55
|
+
const projectType = await (0, utils_1.getDjangoProjectType)(options);
|
|
56
|
+
const settingsFile = await (0, utils_1.findDjangoSettingsFile)(options);
|
|
57
|
+
return { projectType, settingsFile };
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
detection: {
|
|
61
|
+
packageName: 'django',
|
|
62
|
+
packageDisplayName: 'Django',
|
|
63
|
+
usesPackageJson: false,
|
|
64
|
+
getVersion: () => undefined,
|
|
65
|
+
getVersionBucket: utils_1.getDjangoVersionBucket,
|
|
66
|
+
minimumVersion: '3.0.0',
|
|
67
|
+
getInstalledVersion: (options) => (0, utils_1.getDjangoVersion)(options),
|
|
68
|
+
detect: async (options) => {
|
|
69
|
+
const { installDir } = options;
|
|
70
|
+
const managePyMatches = await (0, fast_glob_1.default)('**/manage.py', {
|
|
71
|
+
cwd: installDir,
|
|
72
|
+
ignore: ['**/venv/**', '**/.venv/**', '**/env/**', '**/.env/**'],
|
|
73
|
+
});
|
|
74
|
+
if (managePyMatches.length > 0) {
|
|
75
|
+
for (const match of managePyMatches) {
|
|
76
|
+
try {
|
|
77
|
+
const content = fs.readFileSync(path.join(installDir, match), 'utf-8');
|
|
78
|
+
// Check for actual Django imports and usage
|
|
79
|
+
if (content.includes('from django') ||
|
|
80
|
+
content.includes('import django') ||
|
|
81
|
+
content.includes('DJANGO_SETTINGS_MODULE') ||
|
|
82
|
+
/execute_from_command_line/.test(content)) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const requirementsFiles = await (0, fast_glob_1.default)(['**/requirements*.txt', '**/pyproject.toml', '**/setup.py'], {
|
|
92
|
+
cwd: installDir,
|
|
93
|
+
ignore: ['**/venv/**', '**/.venv/**', '**/env/**', '**/.env/**'],
|
|
94
|
+
});
|
|
95
|
+
for (const reqFile of requirementsFiles) {
|
|
96
|
+
try {
|
|
97
|
+
const content = fs.readFileSync(path.join(installDir, reqFile), 'utf-8');
|
|
98
|
+
// Match Django as a package requirement, not in comments or other text
|
|
99
|
+
// Look for: django, django>=, django==, django~=, Django (capitalized)
|
|
100
|
+
if (/^django([>=~!<\s]|$)/im.test(content) ||
|
|
101
|
+
/["']django["']/i.test(content)) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
},
|
|
111
|
+
detectPackageManager: package_manager_detection_1.detectPythonPackageManagers,
|
|
112
|
+
},
|
|
113
|
+
environment: {
|
|
114
|
+
uploadToHosting: false,
|
|
115
|
+
getEnvVars: (apiKey, _host) => ({
|
|
116
|
+
AMPLITUDE_API_KEY: apiKey,
|
|
117
|
+
}),
|
|
118
|
+
},
|
|
119
|
+
analytics: {
|
|
120
|
+
getTags: (context) => ({
|
|
121
|
+
projectType: context.projectType || 'unknown',
|
|
122
|
+
}),
|
|
123
|
+
},
|
|
124
|
+
prompts: {
|
|
125
|
+
packageInstallation: framework_config_1.PYTHON_PACKAGE_INSTALLATION,
|
|
126
|
+
projectTypeDetection: 'This is a Python/Django project. Look for requirements.txt, pyproject.toml, setup.py, Pipfile, or manage.py to confirm.',
|
|
127
|
+
getAdditionalContextLines: (context) => {
|
|
128
|
+
const projectTypeName = context.projectType
|
|
129
|
+
? (0, utils_1.getDjangoProjectTypeName)(context.projectType)
|
|
130
|
+
: 'unknown';
|
|
131
|
+
// Map project type to framework ID for MCP docs resource
|
|
132
|
+
const frameworkIdMap = {
|
|
133
|
+
[utils_1.DjangoProjectType.STANDARD]: 'django',
|
|
134
|
+
[utils_1.DjangoProjectType.DRF]: 'django',
|
|
135
|
+
[utils_1.DjangoProjectType.WAGTAIL]: 'django',
|
|
136
|
+
[utils_1.DjangoProjectType.CHANNELS]: 'django',
|
|
137
|
+
};
|
|
138
|
+
const frameworkId = context.projectType
|
|
139
|
+
? frameworkIdMap[context.projectType]
|
|
140
|
+
: 'django';
|
|
141
|
+
const lines = [
|
|
142
|
+
`Project type: ${projectTypeName}`,
|
|
143
|
+
`Framework docs ID: ${frameworkId} (use amplitude://docs/frameworks/${frameworkId} for documentation)`,
|
|
144
|
+
];
|
|
145
|
+
if (context.settingsFile) {
|
|
146
|
+
lines.push(`Settings file: ${context.settingsFile}`);
|
|
147
|
+
}
|
|
148
|
+
return lines;
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
ui: {
|
|
152
|
+
successMessage: 'Amplitude integration complete',
|
|
153
|
+
estimatedDurationMinutes: 5,
|
|
154
|
+
getOutroChanges: (context) => {
|
|
155
|
+
const projectTypeName = context.projectType
|
|
156
|
+
? (0, utils_1.getDjangoProjectTypeName)(context.projectType)
|
|
157
|
+
: 'Django';
|
|
158
|
+
return [
|
|
159
|
+
`Analyzed your ${projectTypeName} project structure`,
|
|
160
|
+
`Installed the Amplitude Python package`,
|
|
161
|
+
`Configured Amplitude in your Django settings`,
|
|
162
|
+
`Added Amplitude middleware for event tracking`,
|
|
163
|
+
];
|
|
164
|
+
},
|
|
165
|
+
getOutroNextSteps: () => [
|
|
166
|
+
'Start your Django development server to see Amplitude in action',
|
|
167
|
+
'Visit your Amplitude dashboard to see incoming events',
|
|
168
|
+
'Use amplitude.track() to capture events and amplitude.identify() for users',
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { WizardOptions } from '../../utils/types';
|
|
2
|
+
export declare enum DjangoProjectType {
|
|
3
|
+
STANDARD = "standard",// Traditional Django project (django-admin startproject)
|
|
4
|
+
DRF = "drf",// Django REST Framework API
|
|
5
|
+
WAGTAIL = "wagtail",// Wagtail CMS
|
|
6
|
+
CHANNELS = "channels"
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Get Django version bucket for analytics
|
|
10
|
+
*/
|
|
11
|
+
export declare const getDjangoVersionBucket: (version: string | undefined) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Extract Django version from requirements files or pyproject.toml
|
|
14
|
+
*/
|
|
15
|
+
export declare function getDjangoVersion(options: Pick<WizardOptions, 'installDir'>): Promise<string | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* Detect Django project type
|
|
18
|
+
*/
|
|
19
|
+
export declare function getDjangoProjectType(options: WizardOptions): Promise<DjangoProjectType>;
|
|
20
|
+
/**
|
|
21
|
+
* Get human-readable name for Django project type
|
|
22
|
+
*/
|
|
23
|
+
export declare function getDjangoProjectTypeName(projectType: DjangoProjectType): string;
|
|
24
|
+
/**
|
|
25
|
+
* Find the main Django settings file
|
|
26
|
+
*/
|
|
27
|
+
export declare function findDjangoSettingsFile(options: Pick<WizardOptions, 'installDir'>): Promise<string | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Find the main Django urls.py file
|
|
30
|
+
*/
|
|
31
|
+
export declare function findDjangoUrlsFile(options: Pick<WizardOptions, 'installDir'>): Promise<string | undefined>;
|