@amplitude/wizard 1.0.0 → 1.2.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 +25 -1
- package/dist/bin.js +47 -11
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +11 -1
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +65 -8
- package/dist/src/frameworks/vue/vue-wizard-agent.js +6 -1
- package/dist/src/lib/agent-interface.js +46 -0
- package/dist/src/lib/agent-runner.js +112 -51
- package/dist/src/lib/api.d.ts +35 -0
- package/dist/src/lib/api.js +118 -0
- package/dist/src/lib/commandments.js +1 -0
- package/dist/src/lib/constants.d.ts +1 -1
- package/dist/src/lib/constants.js +3 -3
- package/dist/src/lib/credential-resolution.js +7 -0
- package/dist/src/lib/framework-config.d.ts +9 -0
- package/dist/src/lib/mcp-with-fallback.d.ts +43 -0
- package/dist/src/lib/mcp-with-fallback.js +220 -0
- package/dist/src/lib/version-check.d.ts +17 -0
- package/dist/src/lib/version-check.js +72 -0
- package/dist/src/lib/wizard-session.d.ts +22 -7
- package/dist/src/lib/wizard-session.js +5 -3
- package/dist/src/run.d.ts +18 -1
- package/dist/src/run.js +104 -15
- package/dist/src/ui/agent-ui.d.ts +2 -0
- package/dist/src/ui/agent-ui.js +10 -0
- package/dist/src/ui/logging-ui.d.ts +2 -0
- package/dist/src/ui/logging-ui.js +6 -0
- package/dist/src/ui/tui/components/ConsoleView.js +14 -1
- package/dist/src/ui/tui/components/JourneyStepper.js +1 -3
- package/dist/src/ui/tui/flows.d.ts +0 -1
- package/dist/src/ui/tui/flows.js +1 -9
- package/dist/src/ui/tui/ink-ui.d.ts +2 -0
- package/dist/src/ui/tui/ink-ui.js +6 -0
- package/dist/src/ui/tui/screen-registry.js +0 -2
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.d.ts +5 -3
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +124 -4
- package/dist/src/ui/tui/screens/OutroScreen.js +12 -3
- package/dist/src/ui/tui/store.d.ts +22 -3
- package/dist/src/ui/tui/store.js +52 -18
- package/dist/src/ui/tui/utils/diagnostics.js +1 -3
- package/dist/src/ui/wizard-ui.d.ts +8 -0
- package/dist/src/utils/analytics.d.ts +15 -0
- package/dist/src/utils/analytics.js +37 -0
- package/dist/src/utils/setup-utils.js +6 -1
- package/package.json +2 -2
- package/skills/integration/integration-android/SKILL.md +7 -10
- package/skills/integration/integration-android/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-android/references/android.md +1468 -0
- package/skills/integration/integration-android/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-android/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-android/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-angular/SKILL.md +6 -8
- package/skills/integration/integration-angular/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-angular/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-angular/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-angular/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-angular/references/browser-sdk-2.md +67 -20
- package/skills/integration/{integration-swift/references/analytics.md → integration-angular/references/browser-unified-sdk.md} +591 -157
- package/skills/integration/integration-astro-hybrid/SKILL.md +6 -13
- package/skills/integration/integration-astro-hybrid/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-hybrid/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-hybrid/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-hybrid/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-hybrid/references/browser-sdk-2.md +67 -20
- package/skills/integration/{integration-android/references/analytics.md → integration-astro-hybrid/references/browser-unified-sdk.md} +591 -157
- package/skills/integration/integration-astro-ssr/SKILL.md +6 -11
- package/skills/integration/integration-astro-ssr/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-ssr/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-ssr/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-ssr/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-ssr/references/browser-sdk-2.md +67 -20
- package/skills/integration/{integration-javascript_node/references/analytics.md → integration-astro-ssr/references/browser-unified-sdk.md} +591 -157
- package/skills/integration/integration-astro-static/SKILL.md +6 -8
- package/skills/integration/integration-astro-static/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-static/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-static/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-static/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-static/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-astro-static/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-astro-view-transitions/SKILL.md +6 -10
- package/skills/integration/integration-astro-view-transitions/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-view-transitions/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-astro-view-transitions/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-django/SKILL.md +5 -16
- package/skills/integration/integration-django/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-django/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-django/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-django/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-django/references/python.md +1 -1
- package/skills/integration/integration-expo/SKILL.md +8 -13
- package/skills/integration/integration-expo/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-expo/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-expo/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-expo/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-expo/references/react-native-sdk.md +11 -10
- package/skills/integration/integration-fastapi/SKILL.md +5 -16
- package/skills/integration/integration-fastapi/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-fastapi/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-fastapi/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-fastapi/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-fastapi/references/python.md +1 -1
- package/skills/integration/integration-flask/SKILL.md +5 -15
- package/skills/integration/integration-flask/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-flask/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-flask/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-flask/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-flask/references/python.md +1 -1
- package/skills/integration/integration-javascript_node/SKILL.md +6 -12
- package/skills/integration/integration-javascript_node/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-javascript_node/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-javascript_node/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-javascript_node/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-javascript_node/references/node.md +1457 -0
- package/skills/integration/integration-javascript_web/SKILL.md +7 -16
- package/skills/integration/integration-javascript_web/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-javascript_web/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-javascript_web/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-javascript_web/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-javascript_web/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-javascript_web/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-laravel/SKILL.md +5 -11
- package/skills/integration/integration-laravel/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-laravel/references/analytics.md +1 -1
- package/skills/integration/integration-laravel/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-laravel/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-laravel/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nextjs-app-router/SKILL.md +6 -13
- package/skills/integration/integration-nextjs-app-router/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nextjs-app-router/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nextjs-app-router/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-nextjs-pages-router/SKILL.md +6 -13
- package/skills/integration/integration-nextjs-pages-router/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nextjs-pages-router/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nextjs-pages-router/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-nuxt-3.6/SKILL.md +6 -5
- package/skills/integration/integration-nuxt-3.6/references/EXAMPLE.md +1 -1
- package/skills/integration/integration-nuxt-3.6/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nuxt-3.6/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nuxt-3.6/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-nuxt-4/SKILL.md +6 -5
- package/skills/integration/integration-nuxt-4/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nuxt-4/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nuxt-4/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nuxt-4/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nuxt-4/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nuxt-4/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-python/SKILL.md +8 -13
- package/skills/integration/integration-python/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-python/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-python/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-python/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-python/references/python.md +1 -1
- package/skills/integration/integration-react-native/SKILL.md +8 -9
- package/skills/integration/integration-react-native/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-native/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-native/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-native/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-native/references/react-native-sdk.md +11 -10
- package/skills/integration/integration-react-react-router-6/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-6/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-6/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-6/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-6/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-6/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-6/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-react-router-7-data/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-7-data/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-7-data/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-7-data/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-react-router-7-declarative/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-7-declarative/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-7-declarative/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-7-declarative/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-react-router-7-framework/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-7-framework/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-7-framework/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-7-framework/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-tanstack-router-code-based/SKILL.md +6 -14
- package/skills/integration/integration-react-tanstack-router-code-based/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-tanstack-router-code-based/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-tanstack-router-code-based/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-tanstack-router-file-based/SKILL.md +6 -14
- package/skills/integration/integration-react-tanstack-router-file-based/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-tanstack-router-file-based/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-tanstack-router-file-based/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-vite/SKILL.md +6 -12
- package/skills/integration/integration-react-vite/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-vite/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-vite/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-vite/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-vite/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-vite/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-ruby/SKILL.md +6 -10
- package/skills/integration/integration-ruby/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-ruby/references/analytics.md +1 -1
- package/skills/integration/integration-ruby/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-ruby/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-ruby/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-ruby-on-rails/SKILL.md +5 -14
- package/skills/integration/integration-ruby-on-rails/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-ruby-on-rails/references/analytics.md +1 -1
- package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-sveltekit/SKILL.md +6 -6
- package/skills/integration/integration-sveltekit/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-sveltekit/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-sveltekit/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-sveltekit/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-sveltekit/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-sveltekit/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-swift/SKILL.md +9 -10
- package/skills/integration/integration-swift/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-swift/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-swift/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-swift/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-swift/references/ios.md +1480 -0
- package/skills/integration/integration-tanstack-start/SKILL.md +6 -17
- package/skills/integration/integration-tanstack-start/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-tanstack-start/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-tanstack-start/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-tanstack-start/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-tanstack-start/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-tanstack-start/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-vue-3/SKILL.md +6 -5
- package/skills/integration/integration-vue-3/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-vue-3/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-vue-3/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-vue-3/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-vue-3/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-vue-3/references/browser-unified-sdk.md +2212 -0
- package/skills/taxonomy/amplitude-chart-dashboard-plan/SKILL.md +183 -0
- package/dist/src/ui/tui/screens/ChecklistScreen.d.ts +0 -12
- package/dist/src/ui/tui/screens/ChecklistScreen.js +0 -111
package/dist/src/ui/tui/store.js
CHANGED
|
@@ -119,12 +119,24 @@ export class WizardStore {
|
|
|
119
119
|
}
|
|
120
120
|
setCredentials(credentials) {
|
|
121
121
|
this.$session.setKey('credentials', credentials);
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
const session = this.$session.get();
|
|
123
|
+
if (session.userEmail) {
|
|
124
|
+
analytics.setDistinctId(session.userEmail);
|
|
125
|
+
analytics.identifyUser({
|
|
126
|
+
email: session.userEmail,
|
|
127
|
+
org_id: session.selectedOrgId ?? undefined,
|
|
128
|
+
org_name: session.selectedOrgName ?? undefined,
|
|
129
|
+
workspace_id: session.selectedWorkspaceId ?? undefined,
|
|
130
|
+
workspace_name: session.selectedWorkspaceName ?? undefined,
|
|
131
|
+
project_id: session.selectedProjectId ?? credentials?.projectId,
|
|
132
|
+
project_name: session.selectedProjectName,
|
|
133
|
+
region: session.region,
|
|
134
|
+
integration: session.integration,
|
|
135
|
+
});
|
|
124
136
|
}
|
|
125
137
|
analytics.wizardCapture('Auth Complete', {
|
|
126
138
|
project_id: credentials?.projectId,
|
|
127
|
-
region:
|
|
139
|
+
region: session.region,
|
|
128
140
|
});
|
|
129
141
|
this.emitChange();
|
|
130
142
|
}
|
|
@@ -139,6 +151,9 @@ export class WizardStore {
|
|
|
139
151
|
setFrameworkConfig(integration, config) {
|
|
140
152
|
this.$session.setKey('integration', integration);
|
|
141
153
|
this.$session.setKey('frameworkConfig', config);
|
|
154
|
+
if (integration) {
|
|
155
|
+
analytics.identifyUser({ integration });
|
|
156
|
+
}
|
|
142
157
|
this.emitChange();
|
|
143
158
|
}
|
|
144
159
|
setDetectionComplete() {
|
|
@@ -294,6 +309,32 @@ export class WizardStore {
|
|
|
294
309
|
this.$session.setKey('credentials', { ...creds, accessToken });
|
|
295
310
|
this.$version.set(this.$version.get() + 1);
|
|
296
311
|
}
|
|
312
|
+
/** Update both access and id tokens (e.g. after a silent OAuth refresh). */
|
|
313
|
+
updateTokens(accessToken, idToken) {
|
|
314
|
+
const creds = this.$session.get().credentials;
|
|
315
|
+
if (!creds)
|
|
316
|
+
return;
|
|
317
|
+
this.$session.setKey('credentials', { ...creds, accessToken, idToken });
|
|
318
|
+
this.$version.set(this.$version.get() + 1);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Restore org/workspace/project session IDs that weren't populated at startup
|
|
322
|
+
* (e.g. because the fire-and-forget fetchAmplitudeUser failed due to expired token).
|
|
323
|
+
* Only updates fields that are provided.
|
|
324
|
+
*/
|
|
325
|
+
restoreSessionIds(fields) {
|
|
326
|
+
if (fields.orgId !== undefined)
|
|
327
|
+
this.$session.setKey('selectedOrgId', fields.orgId);
|
|
328
|
+
if (fields.orgName !== undefined)
|
|
329
|
+
this.$session.setKey('selectedOrgName', fields.orgName);
|
|
330
|
+
if (fields.workspaceId !== undefined)
|
|
331
|
+
this.$session.setKey('selectedWorkspaceId', fields.workspaceId);
|
|
332
|
+
if (fields.workspaceName !== undefined)
|
|
333
|
+
this.$session.setKey('selectedWorkspaceName', fields.workspaceName);
|
|
334
|
+
if (fields.projectId !== undefined)
|
|
335
|
+
this.$session.setKey('selectedProjectId', fields.projectId);
|
|
336
|
+
this.emitChange();
|
|
337
|
+
}
|
|
297
338
|
/** Request the TabContainer to switch to a tab by id. Clears after consumption. */
|
|
298
339
|
setRequestedTab(id) {
|
|
299
340
|
this.$requestedTab.set(id);
|
|
@@ -330,21 +371,8 @@ export class WizardStore {
|
|
|
330
371
|
analytics.wizardCapture('Data Ingestion Confirmed', sessionPropertiesCompact(this.session));
|
|
331
372
|
this.emitChange();
|
|
332
373
|
}
|
|
333
|
-
|
|
334
|
-
this.$session.setKey('
|
|
335
|
-
this.emitChange();
|
|
336
|
-
}
|
|
337
|
-
setChecklistDashboardComplete() {
|
|
338
|
-
this.$session.setKey('checklistDashboardComplete', true);
|
|
339
|
-
this.emitChange();
|
|
340
|
-
}
|
|
341
|
-
setChecklistComplete() {
|
|
342
|
-
this.$session.setKey('checklistComplete', true);
|
|
343
|
-
analytics.wizardCapture('Checklist Completed', {
|
|
344
|
-
chart_complete: this.session.checklistChartComplete,
|
|
345
|
-
dashboard_complete: this.session.checklistDashboardComplete,
|
|
346
|
-
...sessionPropertiesCompact(this.session),
|
|
347
|
-
});
|
|
374
|
+
setChecklistDashboardUrl(url) {
|
|
375
|
+
this.$session.setKey('checklistDashboardUrl', url);
|
|
348
376
|
this.emitChange();
|
|
349
377
|
}
|
|
350
378
|
setActivationOptionsComplete() {
|
|
@@ -376,6 +404,12 @@ export class WizardStore {
|
|
|
376
404
|
this.$session.setKey('selectedOrgName', org.name);
|
|
377
405
|
this.$session.setKey('selectedWorkspaceId', workspace.id);
|
|
378
406
|
this.$session.setKey('selectedWorkspaceName', workspace.name);
|
|
407
|
+
// Extract the analytics project ID from the lowest-rank environment.
|
|
408
|
+
const projectId = workspace.environments
|
|
409
|
+
?.slice()
|
|
410
|
+
.sort((a, b) => a.rank - b.rank)
|
|
411
|
+
.find((e) => e.app?.id)?.app?.id ?? null;
|
|
412
|
+
this.$session.setKey('selectedProjectId', projectId);
|
|
379
413
|
// Write ampli.json to the project directory.
|
|
380
414
|
// Use session.region (user-confirmed) over pendingAuthCloudRegion (auto-detected)
|
|
381
415
|
// so that /region changes are respected.
|
|
@@ -51,9 +51,7 @@ export function createDiagnosticSnapshot(store, version) {
|
|
|
51
51
|
mcp_complete: session.mcpComplete,
|
|
52
52
|
slack_complete: session.slackComplete,
|
|
53
53
|
data_ingestion_confirmed: session.dataIngestionConfirmed,
|
|
54
|
-
|
|
55
|
-
checklist_chart_complete: session.checklistChartComplete,
|
|
56
|
-
checklist_dashboard_complete: session.checklistDashboardComplete,
|
|
54
|
+
checklist_dashboard_url: session.checklistDashboardUrl !== null,
|
|
57
55
|
discovered_features: session.discoveredFeatures,
|
|
58
56
|
additional_feature_queue: session.additionalFeatureQueue,
|
|
59
57
|
amplitude_pre_detected: session.amplitudePreDetected,
|
|
@@ -107,4 +107,12 @@ export interface WizardUI {
|
|
|
107
107
|
name: string;
|
|
108
108
|
description: string;
|
|
109
109
|
}>): void;
|
|
110
|
+
/** Emitted by agent mode when MCP polling detects events flowing into the project. */
|
|
111
|
+
setEventIngestionDetected(eventNames: string[]): void;
|
|
112
|
+
/**
|
|
113
|
+
* Called when the agent writes .amplitude-dashboard.json with the URL of
|
|
114
|
+
* the dashboard it created during the conclude phase. Surfaces the link in
|
|
115
|
+
* ChecklistScreen so users can open the dashboard immediately.
|
|
116
|
+
*/
|
|
117
|
+
setDashboardUrl(url: string): void;
|
|
110
118
|
}
|
|
@@ -26,6 +26,21 @@ export declare class Analytics {
|
|
|
26
26
|
private initPromise;
|
|
27
27
|
constructor();
|
|
28
28
|
setDistinctId(distinctId: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Send an identify call to associate user properties with the current user.
|
|
31
|
+
* Call after setDistinctId() has been called with a valid email.
|
|
32
|
+
*/
|
|
33
|
+
identifyUser(properties: {
|
|
34
|
+
email?: string;
|
|
35
|
+
org_id?: string;
|
|
36
|
+
org_name?: string;
|
|
37
|
+
workspace_id?: string;
|
|
38
|
+
workspace_name?: string;
|
|
39
|
+
project_id?: string | number | null;
|
|
40
|
+
project_name?: string | null;
|
|
41
|
+
region?: string | null;
|
|
42
|
+
integration?: string | null;
|
|
43
|
+
}): void;
|
|
29
44
|
setTag(key: string, value: string | boolean | number | null | undefined): void;
|
|
30
45
|
captureException(error: Error, properties?: Record<string, unknown>): void;
|
|
31
46
|
capture(eventName: string, properties?: Record<string, unknown>): void;
|
|
@@ -69,6 +69,43 @@ class Analytics {
|
|
|
69
69
|
setDistinctId(distinctId) {
|
|
70
70
|
this.distinctId = distinctId;
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Send an identify call to associate user properties with the current user.
|
|
74
|
+
* Call after setDistinctId() has been called with a valid email.
|
|
75
|
+
*/
|
|
76
|
+
identifyUser(properties) {
|
|
77
|
+
const apiKey = resolveTelemetryApiKey();
|
|
78
|
+
if (!apiKey || !this.distinctId) {
|
|
79
|
+
(0, debug_1.debug)('identifyUser skipped (no API key or distinctId):', properties);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.ensureInitStarted();
|
|
83
|
+
const identifyObj = new analytics_node_1.Identify();
|
|
84
|
+
if (properties.email) {
|
|
85
|
+
identifyObj.setOnce('email', properties.email);
|
|
86
|
+
}
|
|
87
|
+
if (properties.org_id)
|
|
88
|
+
identifyObj.set('org_id', properties.org_id);
|
|
89
|
+
if (properties.org_name)
|
|
90
|
+
identifyObj.set('org_name', properties.org_name);
|
|
91
|
+
if (properties.workspace_id)
|
|
92
|
+
identifyObj.set('workspace_id', properties.workspace_id);
|
|
93
|
+
if (properties.workspace_name)
|
|
94
|
+
identifyObj.set('workspace_name', properties.workspace_name);
|
|
95
|
+
if (properties.project_id != null)
|
|
96
|
+
identifyObj.set('project_id', String(properties.project_id));
|
|
97
|
+
if (properties.project_name)
|
|
98
|
+
identifyObj.set('project_name', properties.project_name);
|
|
99
|
+
if (properties.region)
|
|
100
|
+
identifyObj.set('region', properties.region);
|
|
101
|
+
if (properties.integration)
|
|
102
|
+
identifyObj.set('integration', properties.integration);
|
|
103
|
+
this.client.identify(identifyObj, {
|
|
104
|
+
device_id: this.anonymousId,
|
|
105
|
+
user_id: this.distinctId,
|
|
106
|
+
});
|
|
107
|
+
(0, debug_1.debug)('identifyUser:', properties);
|
|
108
|
+
}
|
|
72
109
|
setTag(key, value) {
|
|
73
110
|
this.tags[key] = value;
|
|
74
111
|
}
|
|
@@ -414,7 +414,12 @@ async function askForWizardLogin(opts = {}) {
|
|
|
414
414
|
});
|
|
415
415
|
}
|
|
416
416
|
(0, ui_1.getUI)().log.success(`Logged in as ${chalk_1.default.bold(userInfo.email)}${selectedOrg ? ` (${selectedOrg.name})` : ''}`);
|
|
417
|
-
analytics_1.analytics.setDistinctId(userInfo.
|
|
417
|
+
analytics_1.analytics.setDistinctId(userInfo.email);
|
|
418
|
+
analytics_1.analytics.identifyUser({
|
|
419
|
+
email: userInfo.email,
|
|
420
|
+
org_id: selectedOrg?.id,
|
|
421
|
+
org_name: selectedOrg?.name,
|
|
422
|
+
});
|
|
418
423
|
analytics_1.analytics.setTag('opened-wizard-link', true);
|
|
419
424
|
}
|
|
420
425
|
let selectedWorkspace;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amplitude/wizard",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"homepage": "https://github.com/amplitude/wizard",
|
|
5
5
|
"repository": "https://github.com/amplitude/wizard",
|
|
6
6
|
"description": "The Amplitude wizard helps you to configure your project",
|
|
@@ -139,6 +139,6 @@
|
|
|
139
139
|
"test:bdd:watch": "cucumber-js --retry 0 2>&1 | npx nodemon --watch features --exec cucumber-js",
|
|
140
140
|
"test:proxy": "vitest run --config vitest.config.proxy.ts",
|
|
141
141
|
"test:proxy:smoke": "vitest run --config vitest.config.proxy.ts -t 'proxy:smoke'",
|
|
142
|
-
"skills:refresh": "bash scripts/refresh-
|
|
142
|
+
"skills:refresh": "bash scripts/refresh-skills.sh"
|
|
143
143
|
}
|
|
144
144
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: integration-android
|
|
3
|
-
description: Amplitude integration for Android applications
|
|
3
|
+
description: Amplitude integration for Android applications using the Kotlin SDK
|
|
4
4
|
metadata:
|
|
5
5
|
author: Amplitude
|
|
6
6
|
version: dev
|
|
@@ -22,7 +22,7 @@ Follow these steps in order to complete the integration:
|
|
|
22
22
|
## Reference files
|
|
23
23
|
|
|
24
24
|
- `references/EXAMPLE.md` - Android example project code
|
|
25
|
-
- `references/
|
|
25
|
+
- `references/android.md` - Amplitude documentation for Android
|
|
26
26
|
- `references/amplitude-quickstart.md` - Amplitude documentation for Amplitude Quickstart
|
|
27
27
|
- `references/basic-integration-1.0-begin.md` - Amplitude setup - begin
|
|
28
28
|
- `references/basic-integration-1.1-edit.md` - Amplitude setup - edit
|
|
@@ -36,14 +36,11 @@ The example project shows the target implementation pattern. Consult the documen
|
|
|
36
36
|
- **Environment variables**: Always use environment variables for Amplitude keys. Never hardcode them.
|
|
37
37
|
- **Minimal changes**: Add Amplitude code alongside existing integrations. Don't replace or restructure existing code.
|
|
38
38
|
- **Match the example**: Your implementation should follow the example project's patterns as closely as possible.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
- Call Amplitude(Configuration(apiKey = ..., context = applicationContext)).also { amplitude = it } only once in the Application class's onCreate() method, so it is initialized as early as possible and only once.
|
|
44
|
-
- Initialize Amplitude in the Application class's onCreate() method
|
|
45
|
-
- Ensure every activity has a android:label to accurately track screen views.
|
|
39
|
+
- **Unified SDK**: For new browser/frontend projects, use `@amplitude/unified` as the default SDK — it bundles Analytics, Session Replay, Experiment, and Guides & Surveys in a single package. Initialize with `initAll()`. Only use `@amplitude/analytics-browser` if the project already has it installed.
|
|
40
|
+
- **Event naming**: Event names MUST use Title Case with spaces following the [Noun] + [Past-Tense Verb] pattern (e.g., "Button Clicked", "Sign Up Completed", "Cart Viewed"). Do NOT use snake_case, camelCase, or SCREAMING_SNAKE. Property names should use snake_case (e.g., button_text, page_url).
|
|
41
|
+
- **No PII in events**: Never send PII (emails, full names, phone numbers, physical addresses, IP addresses) in `track()` event properties. PII belongs in `identify()` user properties only.
|
|
42
|
+
- **Autocapture**: Enable autocapture in the init config to automatically capture sessions, page views, form interactions, and file downloads. Use the `autocapture` config option (not the deprecated `defaultTracking`).
|
|
46
43
|
|
|
47
44
|
## Identifying users
|
|
48
45
|
|
|
49
|
-
Identify users during login and signup events. Refer to the example code and documentation for the correct identify pattern for this framework. Call `amplitude.setUserId(userId)` to associate events with a known user, and use `amplitude.identify()` with an `Identify` object to set user properties. If both frontend and backend code exist, pass a consistent user/device ID via custom request headers to maintain event correlation.
|
|
46
|
+
Identify users during login and signup events. Refer to the example code and documentation for the correct identify pattern for this framework. Call `amplitude.setUserId(userId)` to associate events with a known user, and use `amplitude.identify()` with an `Identify` object to set user properties. Call `amplitude.reset()` on logout to unlink future events from the current user. If both frontend and backend code exist, pass a consistent user/device ID via custom request headers to maintain event correlation.
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
}
|
|
82
82
|
</style>
|
|
83
83
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.25.0/tocbot.css">
|
|
84
|
-
<link href="/docs/css/site.css?id=
|
|
84
|
+
<link href="/docs/css/site.css?id=6e2f9e1efe9343c4ba65666223648444" rel="stylesheet">
|
|
85
85
|
<link href="/docs/css/algolia.css?id=e343cc9490e043fefffa37d2817ddf8c" rel="stylesheet">
|
|
86
86
|
<link href="/docs/css/dracula-prism.css?id=a5713888be640854bb66b8b74c1037ce" rel="stylesheet">
|
|
87
87
|
<style>
|