@posthog/wizard 2.8.0 → 2.9.1
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 +11 -0
- package/dist/bin.js +286 -167
- package/dist/bin.js.map +1 -1
- package/dist/src/__tests__/cli.test.js +92 -59
- package/dist/src/__tests__/cli.test.js.map +1 -1
- package/dist/src/__tests__/wizard-abort.test.js +34 -13
- package/dist/src/__tests__/wizard-abort.test.js.map +1 -1
- package/dist/src/frameworks/android/android-wizard-agent.js +2 -2
- package/dist/src/frameworks/android/android-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/angular/angular-wizard-agent.js +2 -2
- package/dist/src/frameworks/angular/angular-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/astro/astro-wizard-agent.js +2 -2
- package/dist/src/frameworks/astro/astro-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/django/django-wizard-agent.js +2 -2
- package/dist/src/frameworks/django/django-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +2 -2
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/flask/flask-wizard-agent.js +2 -2
- package/dist/src/frameworks/flask/flask-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +2 -2
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +2 -2
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/laravel/laravel-wizard-agent.js +2 -2
- package/dist/src/frameworks/laravel/laravel-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +2 -2
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js +2 -2
- package/dist/src/frameworks/nuxt/nuxt-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/python/python-wizard-agent.js +2 -2
- package/dist/src/frameworks/python/python-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/rails/rails-wizard-agent.js +2 -2
- package/dist/src/frameworks/rails/rails-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js +2 -2
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +2 -2
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/ruby/ruby-wizard-agent.js +2 -2
- package/dist/src/frameworks/ruby/ruby-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/svelte/svelte-wizard-agent.js +2 -2
- package/dist/src/frameworks/svelte/svelte-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/swift/swift-wizard-agent.js +2 -2
- package/dist/src/frameworks/swift/swift-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js +2 -2
- package/dist/src/frameworks/tanstack-router/tanstack-router-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js +2 -2
- package/dist/src/frameworks/tanstack-start/tanstack-start-wizard-agent.js.map +1 -1
- package/dist/src/frameworks/vue/vue-wizard-agent.js +2 -2
- package/dist/src/frameworks/vue/vue-wizard-agent.js.map +1 -1
- package/dist/src/lib/__tests__/agent-interface.test.js +29 -1
- package/dist/src/lib/__tests__/agent-interface.test.js.map +1 -1
- package/dist/src/lib/agent/__tests__/agent-prompt.test.js +57 -0
- package/dist/src/lib/agent/__tests__/agent-prompt.test.js.map +1 -0
- package/dist/src/lib/{agent-interface.d.ts → agent/agent-interface.d.ts} +18 -6
- package/dist/src/lib/{agent-interface.js → agent/agent-interface.js} +63 -13
- package/dist/src/lib/agent/agent-interface.js.map +1 -0
- package/dist/src/lib/agent/agent-prompt.d.ts +23 -0
- package/dist/src/lib/agent/agent-prompt.js +47 -0
- package/dist/src/lib/agent/agent-prompt.js.map +1 -0
- package/dist/src/lib/agent/agent-runner.d.ts +78 -0
- package/dist/src/lib/agent/agent-runner.js +325 -0
- package/dist/src/lib/agent/agent-runner.js.map +1 -0
- package/dist/src/lib/agent/commandments.js.map +1 -0
- package/dist/src/lib/constants.d.ts +10 -1
- package/dist/src/lib/constants.js +13 -1
- package/dist/src/lib/constants.js.map +1 -1
- package/dist/src/lib/detection/__tests__/context.test.js +72 -0
- package/dist/src/lib/detection/__tests__/context.test.js.map +1 -0
- package/dist/src/lib/detection/__tests__/features.test.d.ts +1 -0
- package/dist/src/lib/detection/__tests__/features.test.js +75 -0
- package/dist/src/lib/detection/__tests__/features.test.js.map +1 -0
- package/dist/src/lib/detection/__tests__/package-manager.test.d.ts +1 -0
- package/dist/src/lib/{__tests__/package-manager-detection.test.js → detection/__tests__/package-manager.test.js} +25 -25
- package/dist/src/lib/detection/__tests__/package-manager.test.js.map +1 -0
- package/dist/src/lib/detection/context.d.ts +31 -0
- package/dist/src/lib/detection/context.js +92 -0
- package/dist/src/lib/detection/context.js.map +1 -0
- package/dist/src/lib/detection/features.d.ts +16 -0
- package/dist/src/lib/detection/features.js +56 -0
- package/dist/src/lib/detection/features.js.map +1 -0
- package/dist/src/lib/detection/framework.d.ts +14 -0
- package/dist/src/lib/detection/framework.js +35 -0
- package/dist/src/lib/detection/framework.js.map +1 -0
- package/dist/src/lib/detection/index.d.ts +3 -0
- package/dist/src/lib/detection/index.js +11 -0
- package/dist/src/lib/detection/index.js.map +1 -0
- package/dist/src/lib/{package-manager-detection.js → detection/package-manager.js} +3 -3
- package/dist/src/lib/detection/package-manager.js.map +1 -0
- package/dist/src/lib/framework-config.d.ts +1 -1
- package/dist/src/lib/framework-config.js.map +1 -1
- package/dist/src/lib/health-checks/endpoints.js +2 -1
- package/dist/src/lib/health-checks/endpoints.js.map +1 -1
- package/dist/src/lib/middleware/benchmark.js +1 -1
- package/dist/src/lib/middleware/benchmark.js.map +1 -1
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +1 -1
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js.map +1 -1
- package/dist/src/lib/middleware/benchmarks/json-writer.js +1 -1
- package/dist/src/lib/middleware/benchmarks/json-writer.js.map +1 -1
- package/dist/src/lib/middleware/benchmarks/summary.js +1 -1
- package/dist/src/lib/middleware/benchmarks/summary.js.map +1 -1
- package/dist/src/lib/middleware/config.js +1 -1
- package/dist/src/lib/middleware/config.js.map +1 -1
- package/dist/src/lib/version.d.ts +1 -1
- package/dist/src/lib/version.js +1 -1
- package/dist/src/lib/version.js.map +1 -1
- package/dist/src/lib/wizard-session.d.ts +16 -7
- package/dist/src/lib/wizard-session.js +2 -0
- package/dist/src/lib/wizard-session.js.map +1 -1
- package/dist/src/lib/wizard-tools.d.ts +28 -1
- package/dist/src/lib/wizard-tools.js +24 -0
- package/dist/src/lib/wizard-tools.js.map +1 -1
- package/dist/src/lib/workflows/__tests__/agent-skill.test.d.ts +1 -0
- package/dist/src/lib/workflows/__tests__/agent-skill.test.js +73 -0
- package/dist/src/lib/workflows/__tests__/agent-skill.test.js.map +1 -0
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.d.ts +1 -0
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js +101 -0
- package/dist/src/lib/workflows/__tests__/revenue-analytics-detect.test.js.map +1 -0
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.d.ts +1 -0
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.js +32 -0
- package/dist/src/lib/workflows/__tests__/workflow-registry.test.js.map +1 -0
- package/dist/src/lib/workflows/__tests__/workflow-step.test.d.ts +1 -0
- package/dist/src/lib/workflows/__tests__/workflow-step.test.js +54 -0
- package/dist/src/lib/workflows/__tests__/workflow-step.test.js.map +1 -0
- package/dist/src/lib/workflows/agent-skill/index.d.ts +44 -0
- package/dist/src/lib/workflows/agent-skill/index.js +47 -0
- package/dist/src/lib/workflows/agent-skill/index.js.map +1 -0
- package/dist/src/lib/workflows/agent-skill/steps.d.ts +8 -0
- package/dist/src/lib/workflows/agent-skill/steps.js +43 -0
- package/dist/src/lib/workflows/agent-skill/steps.js.map +1 -0
- package/dist/src/lib/workflows/posthog-integration/detect.d.ts +12 -0
- package/dist/src/lib/workflows/posthog-integration/detect.js +57 -0
- package/dist/src/lib/workflows/posthog-integration/detect.js.map +1 -0
- package/dist/src/lib/workflows/posthog-integration/index.d.ts +3 -0
- package/dist/src/lib/workflows/posthog-integration/index.js +152 -0
- package/dist/src/lib/workflows/posthog-integration/index.js.map +1 -0
- package/dist/src/lib/workflows/posthog-integration/steps.d.ts +9 -0
- package/dist/src/lib/workflows/posthog-integration/steps.js +100 -0
- package/dist/src/lib/workflows/posthog-integration/steps.js.map +1 -0
- package/dist/src/lib/workflows/revenue-analytics/detect.d.ts +40 -0
- package/dist/src/lib/workflows/revenue-analytics/detect.js +156 -0
- package/dist/src/lib/workflows/revenue-analytics/detect.js.map +1 -0
- package/dist/src/lib/workflows/revenue-analytics/index.d.ts +4 -0
- package/dist/src/lib/workflows/revenue-analytics/index.js +30 -0
- package/dist/src/lib/workflows/revenue-analytics/index.js.map +1 -0
- package/dist/src/lib/workflows/revenue-analytics/steps.d.ts +8 -0
- package/dist/src/lib/workflows/revenue-analytics/steps.js +53 -0
- package/dist/src/lib/workflows/revenue-analytics/steps.js.map +1 -0
- package/dist/src/lib/workflows/workflow-registry.d.ts +18 -0
- package/dist/src/lib/workflows/workflow-registry.js +32 -0
- package/dist/src/lib/workflows/workflow-registry.js.map +1 -0
- package/dist/src/lib/workflows/workflow-step.d.ts +126 -0
- package/dist/src/lib/workflows/workflow-step.js +28 -0
- package/dist/src/lib/workflows/workflow-step.js.map +1 -0
- package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +2 -1
- package/dist/src/steps/add-mcp-server-to-clients/index.js.map +1 -1
- package/dist/src/ui/logging-ui.d.ts +6 -3
- package/dist/src/ui/logging-ui.js +7 -0
- package/dist/src/ui/logging-ui.js.map +1 -1
- package/dist/src/ui/tui/__tests__/flows.test.d.ts +1 -0
- package/dist/src/ui/tui/__tests__/flows.test.js +115 -0
- package/dist/src/ui/tui/__tests__/flows.test.js.map +1 -0
- package/dist/src/ui/tui/__tests__/router.test.d.ts +1 -0
- package/dist/src/ui/tui/__tests__/router.test.js +87 -0
- package/dist/src/ui/tui/__tests__/router.test.js.map +1 -0
- package/dist/src/ui/tui/__tests__/store.test.js +149 -13
- package/dist/src/ui/tui/__tests__/store.test.js.map +1 -1
- package/dist/src/ui/tui/flows.d.ts +19 -7
- package/dist/src/ui/tui/flows.js +30 -53
- package/dist/src/ui/tui/flows.js.map +1 -1
- package/dist/src/ui/tui/ink-ui.d.ts +6 -3
- package/dist/src/ui/tui/ink-ui.js +7 -0
- package/dist/src/ui/tui/ink-ui.js.map +1 -1
- package/dist/src/ui/tui/playground/PlaygroundApp.js +6 -0
- package/dist/src/ui/tui/playground/PlaygroundApp.js.map +1 -1
- package/dist/src/ui/tui/playground/demos/McpDemo.d.ts +12 -0
- package/dist/src/ui/tui/playground/demos/McpDemo.js +27 -0
- package/dist/src/ui/tui/playground/demos/McpDemo.js.map +1 -0
- package/dist/src/ui/tui/router.js +1 -1
- package/dist/src/ui/tui/router.js.map +1 -1
- package/dist/src/ui/tui/screen-registry.js +8 -4
- package/dist/src/ui/tui/screen-registry.js.map +1 -1
- package/dist/src/ui/tui/screens/AgentSkillIntroScreen.d.ts +12 -0
- package/dist/src/ui/tui/screens/AgentSkillIntroScreen.js +75 -0
- package/dist/src/ui/tui/screens/AgentSkillIntroScreen.js.map +1 -0
- package/dist/src/ui/tui/screens/IntroScreenLayout.d.ts +46 -0
- package/dist/src/ui/tui/screens/IntroScreenLayout.js +33 -0
- package/dist/src/ui/tui/screens/IntroScreenLayout.js.map +1 -0
- package/dist/src/ui/tui/screens/{SkillsScreen.d.ts → KeepSkillsScreen.d.ts} +3 -3
- package/dist/src/ui/tui/screens/{SkillsScreen.js → KeepSkillsScreen.js} +8 -5
- package/dist/src/ui/tui/screens/KeepSkillsScreen.js.map +1 -0
- package/dist/src/ui/tui/screens/ManagedSettingsScreen.js.map +1 -1
- package/dist/src/ui/tui/screens/McpScreen.js +4 -1
- package/dist/src/ui/tui/screens/McpScreen.js.map +1 -1
- package/dist/src/ui/tui/screens/OutroScreen.js +1 -1
- package/dist/src/ui/tui/screens/OutroScreen.js.map +1 -1
- package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.d.ts +15 -0
- package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.js +135 -0
- package/dist/src/ui/tui/screens/PostHogIntegrationIntroScreen.js.map +1 -0
- package/dist/src/ui/tui/screens/RevenueIntroScreen.d.ts +16 -0
- package/dist/src/ui/tui/screens/RevenueIntroScreen.js +89 -0
- package/dist/src/ui/tui/screens/RevenueIntroScreen.js.map +1 -0
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js.map +1 -1
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.js +2 -2
- package/dist/src/ui/tui/screens/health/HealthCheckScreen.js.map +1 -1
- package/dist/src/ui/tui/start-tui.js +2 -2
- package/dist/src/ui/tui/start-tui.js.map +1 -1
- package/dist/src/ui/tui/store.d.ts +46 -21
- package/dist/src/ui/tui/store.js +107 -47
- package/dist/src/ui/tui/store.js.map +1 -1
- package/dist/src/ui/wizard-ui.d.ts +13 -3
- package/dist/src/ui/wizard-ui.js.map +1 -1
- package/dist/src/utils/file-utils.d.ts +8 -0
- package/dist/src/utils/file-utils.js +32 -0
- package/dist/src/utils/file-utils.js.map +1 -1
- package/dist/src/utils/wizard-abort.d.ts +3 -0
- package/dist/src/utils/wizard-abort.js +5 -3
- package/dist/src/utils/wizard-abort.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/dist/src/__tests__/run.test.js +0 -95
- package/dist/src/__tests__/run.test.js.map +0 -1
- package/dist/src/lib/__tests__/package-manager-detection.test.js.map +0 -1
- package/dist/src/lib/agent-interface.js.map +0 -1
- package/dist/src/lib/agent-runner.d.ts +0 -9
- package/dist/src/lib/agent-runner.js +0 -385
- package/dist/src/lib/agent-runner.js.map +0 -1
- package/dist/src/lib/commandments.js.map +0 -1
- package/dist/src/lib/package-manager-detection.js.map +0 -1
- package/dist/src/run.d.ts +0 -23
- package/dist/src/run.js +0 -154
- package/dist/src/run.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/SkillsScreen.js.map +0 -1
- /package/dist/src/{__tests__/run.test.d.ts → lib/agent/__tests__/agent-prompt.test.d.ts} +0 -0
- /package/dist/src/lib/{commandments.d.ts → agent/commandments.d.ts} +0 -0
- /package/dist/src/lib/{commandments.js → agent/commandments.js} +0 -0
- /package/dist/src/lib/{__tests__/package-manager-detection.test.d.ts → detection/__tests__/context.test.d.ts} +0 -0
- /package/dist/src/lib/{package-manager-detection.d.ts → detection/package-manager.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"laravel-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/laravel/laravel-wizard-agent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,mFAA6E;AAC7E,mDAAkD;AAClD,0DAA2B;AAC3B,4CAA8B;AAC9B,gDAAkC;AAClC,mCASiB;AASJ,QAAA,oBAAoB,GAAoC;IACnE,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uBAAW,CAAC,OAAO;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,wCAAwC;QACjD,yBAAyB,EAAE,wCAAwC;QACnE,aAAa,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;YAC9C,MAAM,WAAW,GAAG,MAAM,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,MAAM,IAAA,kCAA0B,EAAC,OAAO,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,IAAA,gCAAwB,EAAC,OAAO,CAAC,CAAC;YACxD,MAAM,gBAAgB,GAAG,IAAA,8BAAsB,EAAC,OAAO,CAAC,CAAC;YAEzD,OAAO;gBACL,WAAW;gBACX,eAAe;gBACf,aAAa;gBACb,gBAAgB;aACjB,CAAC;QACJ,CAAC;KACF;IAED,SAAS,EAAE;QACT,WAAW,EAAE,mBAAmB;QAChC,kBAAkB,EAAE,SAAS;QAC7B,eAAe,EAAE,KAAK;QACtB,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;QAC3B,gBAAgB,EAAE,+BAAuB;QACzC,cAAc,EAAE,OAAO;QACvB,mBAAmB,EAAE,CAAC,OAAsB,EAAE,EAAE,CAC9C,OAAO,CAAC,OAAO,CAAC,IAAA,yBAAiB,EAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YAE/B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACrD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/D,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrC,IACE,QAAQ,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC;wBACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAC9C,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;YACH,CAAC;YAED,MAAM,mBAAmB,GAAG,MAAM,IAAA,mBAAE,EAClC,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,EAClD,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,CAC9C,CAAC;YAEF,OAAO,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,oBAAoB,EAAE,kDAAsB;KAC7C;IAED,WAAW,EAAE;QACX,eAAe,EAAE,KAAK;QACtB,UAAU,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC;YAC7C,qBAAqB,EAAE,MAAM;YAC7B,YAAY,EAAE,IAAI;SACnB,CAAC;KACH;IAED,SAAS,EAAE;QACT,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;YAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,SAAS;SACxD,CAAC;KACH;IAED,OAAO,EAAE;QACP,oBAAoB,EAClB,0KAA0K;QAC5K,mBAAmB,EACjB,kHAAkH;QACpH,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;YACrC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW;gBACzC,CAAC,CAAC,IAAA,iCAAyB,EAAC,OAAO,CAAC,WAAW,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,KAAK,GAAG;gBACZ,iBAAiB,eAAe,EAAE;gBAClC,8EAA8E;gBAC9E,sBAAsB,OAAO,CAAC,gBAAgB,uCAAuC;aACtF,CAAC;YAEF,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,2DAA2D;YAC3D,IAAI,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CACR,kFAAkF,CACnF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CACR,mFAAmF,CACpF,CAAC;YACJ,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF;IAED,EAAE,EAAE;QACF,cAAc,EAAE,8BAA8B;QAC9C,wBAAwB,EAAE,CAAC;QAC3B,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW;gBACzC,CAAC,CAAC,IAAA,iCAAyB,EAAC,OAAO,CAAC,WAAW,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,OAAO,GAAG;gBACd,iBAAiB,eAAe,oBAAoB;gBACpD,gDAAgD;gBAChD,gDAAgD;aACjD,CAAC;YAEF,IAAI,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,KAAK,0BAAkB,CAAC,OAAO,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,KAAK,0BAAkB,CAAC,QAAQ,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAC3D,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACvB,gEAAgE;YAChE,qDAAqD;YACrD,+CAA+C;YAC/C,wDAAwD;SACzD;KACF;CACF,CAAC","sourcesContent":["/* Laravel wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { composerPackageManager } from '../../lib/package-manager-detection';\nimport { Integration } from '../../lib/constants';\nimport fg from 'fast-glob';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport {\n getLaravelVersion,\n getLaravelProjectType,\n getLaravelProjectTypeName,\n getLaravelVersionBucket,\n LaravelProjectType,\n findLaravelServiceProvider,\n findLaravelBootstrapFile,\n detectLaravelStructure,\n} from './utils';\n\ntype LaravelContext = {\n projectType?: LaravelProjectType;\n serviceProvider?: string;\n bootstrapFile?: string;\n laravelStructure?: string;\n};\n\nexport const LARAVEL_AGENT_CONFIG: FrameworkConfig<LaravelContext> = {\n metadata: {\n name: 'Laravel',\n integration: Integration.laravel,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/php',\n unsupportedVersionDocsUrl: 'https://posthog.com/docs/libraries/php',\n gatherContext: async (options: WizardOptions) => {\n const projectType = await getLaravelProjectType(options);\n const serviceProvider = await findLaravelServiceProvider(options);\n const bootstrapFile = findLaravelBootstrapFile(options);\n const laravelStructure = detectLaravelStructure(options);\n\n return {\n projectType,\n serviceProvider,\n bootstrapFile,\n laravelStructure,\n };\n },\n },\n\n detection: {\n packageName: 'laravel/framework',\n packageDisplayName: 'Laravel',\n usesPackageJson: false,\n getVersion: () => undefined,\n getVersionBucket: getLaravelVersionBucket,\n minimumVersion: '9.0.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getLaravelVersion(options)),\n detect: async (options) => {\n const { installDir } = options;\n\n const artisanPath = path.join(installDir, 'artisan');\n if (fs.existsSync(artisanPath)) {\n try {\n const content = fs.readFileSync(artisanPath, 'utf-8');\n if (content.includes('Laravel') || content.includes('Artisan')) {\n return true;\n }\n } catch {\n // Continue to other checks\n }\n }\n\n const composerPath = path.join(installDir, 'composer.json');\n if (fs.existsSync(composerPath)) {\n try {\n const content = fs.readFileSync(composerPath, 'utf-8');\n const composer = JSON.parse(content);\n if (\n composer.require?.['laravel/framework'] ||\n composer['require-dev']?.['laravel/framework']\n ) {\n return true;\n }\n } catch {\n // Continue to other checks\n }\n }\n\n const hasLaravelStructure = await fg(\n ['**/bootstrap/app.php', '**/app/Http/Kernel.php'],\n { cwd: installDir, ignore: ['**/vendor/**'] },\n );\n\n return hasLaravelStructure.length > 0;\n },\n detectPackageManager: composerPackageManager,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n projectType: context.projectType || 'unknown',\n laravelStructure: context.laravelStructure || 'unknown',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a PHP/Laravel project. Look for composer.json, artisan CLI, and app/ directory structure to confirm. Check for Laravel-specific packages like laravel/framework.',\n packageInstallation:\n 'Use Composer to install packages. Run `composer require posthog/posthog-php` without pinning a specific version.',\n getAdditionalContextLines: (context) => {\n const projectTypeName = context.projectType\n ? getLaravelProjectTypeName(context.projectType)\n : 'unknown';\n\n const lines = [\n `Project type: ${projectTypeName}`,\n `Framework docs ID: php (use posthog://docs/frameworks/php for documentation)`,\n `Laravel structure: ${context.laravelStructure} (affects where to add configuration)`,\n ];\n\n if (context.serviceProvider) {\n lines.push(`Service provider: ${context.serviceProvider}`);\n }\n\n if (context.bootstrapFile) {\n lines.push(`Bootstrap file: ${context.bootstrapFile}`);\n }\n\n // Add Laravel-specific guidance based on version structure\n if (context.laravelStructure === 'latest') {\n lines.push(\n 'Note: Laravel 11+ uses simplified bootstrap/app.php for middleware and providers',\n );\n } else {\n lines.push(\n 'Note: Use app/Http/Kernel.php for middleware, app/Providers for service providers',\n );\n }\n\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const projectTypeName = context.projectType\n ? getLaravelProjectTypeName(context.projectType)\n : 'Laravel';\n\n const changes = [\n `Analyzed your ${projectTypeName} project structure`,\n `Installed the PostHog PHP package via Composer`,\n `Configured PostHog in your Laravel application`,\n ];\n\n if (context.laravelStructure === 'latest') {\n changes.push('Added PostHog initialization to bootstrap/app.php');\n } else {\n changes.push('Created a PostHog service provider for initialization');\n }\n\n if (context.projectType === LaravelProjectType.INERTIA) {\n changes.push('Configured PostHog to work with Inertia.js');\n }\n\n if (context.projectType === LaravelProjectType.LIVEWIRE) {\n changes.push('Configured PostHog to work with Livewire');\n }\n\n return changes;\n },\n getOutroNextSteps: () => [\n 'Start your Laravel development server with `php artisan serve`',\n 'Visit your PostHog dashboard to see incoming events',\n 'Use PostHog::capture() to track custom events',\n 'Use PostHog::identify() to associate events with users',\n ],\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"laravel-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/laravel/laravel-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Laravel wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { composerPackageManager } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport fg from 'fast-glob';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport {\n getLaravelVersion,\n getLaravelProjectType,\n getLaravelProjectTypeName,\n getLaravelVersionBucket,\n LaravelProjectType,\n findLaravelServiceProvider,\n findLaravelBootstrapFile,\n detectLaravelStructure,\n} from './utils';\n\ntype LaravelContext = {\n projectType?: LaravelProjectType;\n serviceProvider?: string;\n bootstrapFile?: string;\n laravelStructure?: string;\n};\n\nexport const LARAVEL_AGENT_CONFIG: FrameworkConfig<LaravelContext> = {\n metadata: {\n name: 'Laravel',\n integration: Integration.laravel,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/php',\n unsupportedVersionDocsUrl: 'https://posthog.com/docs/libraries/php',\n gatherContext: async (options: WizardOptions) => {\n const projectType = await getLaravelProjectType(options);\n const serviceProvider = await findLaravelServiceProvider(options);\n const bootstrapFile = findLaravelBootstrapFile(options);\n const laravelStructure = detectLaravelStructure(options);\n\n return {\n projectType,\n serviceProvider,\n bootstrapFile,\n laravelStructure,\n };\n },\n },\n\n detection: {\n packageName: 'laravel/framework',\n packageDisplayName: 'Laravel',\n usesPackageJson: false,\n getVersion: () => undefined,\n getVersionBucket: getLaravelVersionBucket,\n minimumVersion: '9.0.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getLaravelVersion(options)),\n detect: async (options) => {\n const { installDir } = options;\n\n const artisanPath = path.join(installDir, 'artisan');\n if (fs.existsSync(artisanPath)) {\n try {\n const content = fs.readFileSync(artisanPath, 'utf-8');\n if (content.includes('Laravel') || content.includes('Artisan')) {\n return true;\n }\n } catch {\n // Continue to other checks\n }\n }\n\n const composerPath = path.join(installDir, 'composer.json');\n if (fs.existsSync(composerPath)) {\n try {\n const content = fs.readFileSync(composerPath, 'utf-8');\n const composer = JSON.parse(content);\n if (\n composer.require?.['laravel/framework'] ||\n composer['require-dev']?.['laravel/framework']\n ) {\n return true;\n }\n } catch {\n // Continue to other checks\n }\n }\n\n const hasLaravelStructure = await fg(\n ['**/bootstrap/app.php', '**/app/Http/Kernel.php'],\n { cwd: installDir, ignore: ['**/vendor/**'] },\n );\n\n return hasLaravelStructure.length > 0;\n },\n detectPackageManager: composerPackageManager,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n projectType: context.projectType || 'unknown',\n laravelStructure: context.laravelStructure || 'unknown',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a PHP/Laravel project. Look for composer.json, artisan CLI, and app/ directory structure to confirm. Check for Laravel-specific packages like laravel/framework.',\n packageInstallation:\n 'Use Composer to install packages. Run `composer require posthog/posthog-php` without pinning a specific version.',\n getAdditionalContextLines: (context) => {\n const projectTypeName = context.projectType\n ? getLaravelProjectTypeName(context.projectType)\n : 'unknown';\n\n const lines = [\n `Project type: ${projectTypeName}`,\n `Framework docs ID: php (use posthog://docs/frameworks/php for documentation)`,\n `Laravel structure: ${context.laravelStructure} (affects where to add configuration)`,\n ];\n\n if (context.serviceProvider) {\n lines.push(`Service provider: ${context.serviceProvider}`);\n }\n\n if (context.bootstrapFile) {\n lines.push(`Bootstrap file: ${context.bootstrapFile}`);\n }\n\n // Add Laravel-specific guidance based on version structure\n if (context.laravelStructure === 'latest') {\n lines.push(\n 'Note: Laravel 11+ uses simplified bootstrap/app.php for middleware and providers',\n );\n } else {\n lines.push(\n 'Note: Use app/Http/Kernel.php for middleware, app/Providers for service providers',\n );\n }\n\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const projectTypeName = context.projectType\n ? getLaravelProjectTypeName(context.projectType)\n : 'Laravel';\n\n const changes = [\n `Analyzed your ${projectTypeName} project structure`,\n `Installed the PostHog PHP package via Composer`,\n `Configured PostHog in your Laravel application`,\n ];\n\n if (context.laravelStructure === 'latest') {\n changes.push('Added PostHog initialization to bootstrap/app.php');\n } else {\n changes.push('Created a PostHog service provider for initialization');\n }\n\n if (context.projectType === LaravelProjectType.INERTIA) {\n changes.push('Configured PostHog to work with Inertia.js');\n }\n\n if (context.projectType === LaravelProjectType.LIVEWIRE) {\n changes.push('Configured PostHog to work with Livewire');\n }\n\n return changes;\n },\n getOutroNextSteps: () => [\n 'Start your Laravel development server with `php artisan serve`',\n 'Visit your PostHog dashboard to see incoming events',\n 'Use PostHog::capture() to track custom events',\n 'Use PostHog::identify() to associate events with users',\n ],\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NEXTJS_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const package_json_1 = require("../../utils/package-json");
|
|
7
7
|
const setup_utils_1 = require("../../utils/setup-utils");
|
|
@@ -50,7 +50,7 @@ exports.NEXTJS_AGENT_CONFIG = {
|
|
|
50
50
|
const packageJson = await (0, setup_utils_1.tryGetPackageJson)(options);
|
|
51
51
|
return packageJson ? (0, package_json_1.hasPackageInstalled)('next', packageJson) : false;
|
|
52
52
|
},
|
|
53
|
-
detectPackageManager:
|
|
53
|
+
detectPackageManager: package_manager_1.detectNodePackageManagers,
|
|
54
54
|
},
|
|
55
55
|
environment: {
|
|
56
56
|
uploadToHosting: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextjs-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/nextjs/nextjs-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"nextjs-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/nextjs/nextjs-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Simplified Next.js wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { detectNodePackageManagers } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getPackageVersion,\n getInstalledPackageVersion,\n hasPackageInstalled,\n type PackageDotJson,\n} from '../../utils/package-json';\nimport { tryGetPackageJson } from '../../utils/setup-utils';\nimport { getUI } from '../../ui';\nimport {\n getNextJsRouter,\n getNextJsVersionBucket,\n getNextJsRouterName,\n NextJsRouter,\n} from './utils';\n\ntype NextjsContext = {\n router?: NextJsRouter;\n};\n\nexport const NEXTJS_AGENT_CONFIG: FrameworkConfig<NextjsContext> = {\n metadata: {\n name: 'Next.js',\n integration: Integration.nextjs,\n docsUrl: 'https://posthog.com/docs/libraries/next-js',\n unsupportedVersionDocsUrl: 'https://posthog.com/docs/libraries/next-js',\n gatherContext: async (options: WizardOptions) => {\n const router = await getNextJsRouter(options);\n if (router) {\n const emoji =\n router === NextJsRouter.APP_ROUTER ? '\\u{1F4F1}' : '\\u{1F4C3}';\n getUI().setDetectedFramework(\n `Next.js ${getNextJsRouterName(router)} ${emoji}`,\n );\n return { router };\n }\n return {};\n },\n setup: {\n questions: [\n {\n key: 'router',\n message: 'Which Next.js router are you using?',\n options: [\n { label: 'App Router', value: NextJsRouter.APP_ROUTER },\n { label: 'Pages Router', value: NextJsRouter.PAGES_ROUTER },\n ],\n detect: async (opts) => {\n const result = await getNextJsRouter(opts);\n return result;\n },\n },\n ],\n },\n },\n\n detection: {\n packageName: 'next',\n packageDisplayName: 'Next.js',\n getVersion: (packageJson: unknown) =>\n getPackageVersion('next', packageJson as PackageDotJson),\n getVersionBucket: getNextJsVersionBucket,\n minimumVersion: '15.3.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getInstalledPackageVersion('next', options.installDir)),\n detect: async (options) => {\n const packageJson = await tryGetPackageJson(options);\n return packageJson ? hasPackageInstalled('next', packageJson) : false;\n },\n detectPackageManager: detectNodePackageManagers,\n },\n\n environment: {\n uploadToHosting: true,\n getEnvVars: (apiKey: string, host: string) => ({\n NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN: apiKey,\n NEXT_PUBLIC_POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n router: context.router === NextJsRouter.APP_ROUTER ? 'app' : 'pages',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a JavaScript/TypeScript project. Look for package.json and lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb) to confirm.',\n getAdditionalContextLines: (context) => {\n const routerType =\n context.router === NextJsRouter.APP_ROUTER ? 'app' : 'pages';\n return [`Router: ${routerType}`];\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 8,\n getOutroChanges: (context) => {\n const router = context.router ?? NextJsRouter.APP_ROUTER;\n const routerName = getNextJsRouterName(router);\n return [\n `Analyzed your Next.js project structure (${routerName})`,\n `Created and configured PostHog initializers`,\n `Integrated PostHog into your application`,\n ];\n },\n getOutroNextSteps: () => {\n return [\n 'Start your development server to see PostHog in action',\n 'Visit your PostHog dashboard to see incoming events',\n ];\n },\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NUXT_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const package_json_1 = require("../../utils/package-json");
|
|
7
7
|
const setup_utils_1 = require("../../utils/setup-utils");
|
|
@@ -32,7 +32,7 @@ exports.NUXT_AGENT_CONFIG = {
|
|
|
32
32
|
const packageJson = await (0, setup_utils_1.tryGetPackageJson)(options);
|
|
33
33
|
return packageJson ? (0, package_json_1.hasPackageInstalled)('nuxt', packageJson) : false;
|
|
34
34
|
},
|
|
35
|
-
detectPackageManager:
|
|
35
|
+
detectPackageManager: package_manager_1.detectNodePackageManagers,
|
|
36
36
|
},
|
|
37
37
|
environment: {
|
|
38
38
|
uploadToHosting: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nuxt-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/nuxt/nuxt-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"nuxt-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/nuxt/nuxt-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,yEAAgF;AAChF,mDAAkD;AAClD,2DAKkC;AAClC,yDAA4D;AAC5D,+CAAyD;AAEzD,MAAM,oBAAoB,GAAG,IAAA,4BAAmB,GAAE,CAAC;AAMtC,QAAA,iBAAiB,GAAiC;IAC7D,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,uBAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,yCAAyC;QAClD,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;YAC9C,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAiB,EAAC,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW;gBAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAA,gCAAiB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,CAAC;KACF;IAED,SAAS,EAAE;QACT,WAAW,EAAE,MAAM;QACnB,kBAAkB,EAAE,MAAM;QAC1B,UAAU,EAAE,CAAC,WAAoB,EAAE,EAAE,CACnC,IAAA,gCAAiB,EAAC,MAAM,EAAE,WAA6B,CAAC;QAC1D,gBAAgB,EAAE,oBAAoB;QACtC,mBAAmB,EAAE,CAAC,OAAsB,EAAE,EAAE,CAC9C,OAAO,CAAC,OAAO,CAAC,IAAA,yCAA0B,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAiB,EAAC,OAAO,CAAC,CAAC;YACrD,OAAO,WAAW,CAAC,CAAC,CAAC,IAAA,kCAAmB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,CAAC;QACD,oBAAoB,EAAE,2CAAyB;KAChD;IAED,WAAW,EAAE;QACX,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC;YAC7C,iCAAiC,EAAE,MAAM;YACzC,wBAAwB,EAAE,IAAI;SAC/B,CAAC;KACH;IAED,SAAS,EAAE;QACT,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrB,GAAG,CAAC,OAAO,CAAC,aAAa;gBACvB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;KACH;IAED,OAAO,EAAE;QACP,oBAAoB,EAClB,oJAAoJ;QACtJ,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;YACrC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC;YAC3B,KAAK,CAAC,IAAI,CACR,sBAAsB,WAAW,mCAAmC,WAAW,qBAAqB,CACrG,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;KACF;IAED,EAAE,EAAE;QACF,cAAc,EAAE,8BAA8B;QAC9C,wBAAwB,EAAE,CAAC;QAC3B,eAAe,EAAE,GAAG,EAAE,CAAC;YACrB,sCAAsC;YACtC,kCAAkC;YAClC,0CAA0C;SAC3C;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACvB,wDAAwD;YACxD,qDAAqD;SACtD;KACF;CACF,CAAC","sourcesContent":["/* Nuxt wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { detectNodePackageManagers } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getPackageVersion,\n getInstalledPackageVersion,\n hasPackageInstalled,\n type PackageDotJson,\n} from '../../utils/package-json';\nimport { tryGetPackageJson } from '../../utils/setup-utils';\nimport { createVersionBucket } from '../../utils/semver';\n\nconst getNuxtVersionBucket = createVersionBucket();\n\ntype NuxtContext = {\n versionBucket?: string;\n};\n\nexport const NUXT_AGENT_CONFIG: FrameworkConfig<NuxtContext> = {\n metadata: {\n name: 'Nuxt',\n integration: Integration.nuxt,\n docsUrl: 'https://posthog.com/docs/libraries/nuxt',\n beta: true,\n gatherContext: async (options: WizardOptions) => {\n const packageJson = await tryGetPackageJson(options);\n if (!packageJson) return {};\n const version = getPackageVersion('nuxt', packageJson);\n const versionBucket = getNuxtVersionBucket(version);\n return { versionBucket };\n },\n },\n\n detection: {\n packageName: 'nuxt',\n packageDisplayName: 'Nuxt',\n getVersion: (packageJson: unknown) =>\n getPackageVersion('nuxt', packageJson as PackageDotJson),\n getVersionBucket: getNuxtVersionBucket,\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getInstalledPackageVersion('nuxt', options.installDir)),\n detect: async (options) => {\n const packageJson = await tryGetPackageJson(options);\n return packageJson ? hasPackageInstalled('nuxt', packageJson) : false;\n },\n detectPackageManager: detectNodePackageManagers,\n },\n\n environment: {\n uploadToHosting: true,\n getEnvVars: (apiKey: string, host: string) => ({\n NUXT_PUBLIC_POSTHOG_PROJECT_TOKEN: apiKey,\n NUXT_PUBLIC_POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n ...(context.versionBucket\n ? { versionBucket: context.versionBucket }\n : {}),\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a JavaScript/TypeScript project. Look for package.json and lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb) to confirm.',\n getAdditionalContextLines: (context) => {\n const lines: string[] = [];\n if (context.versionBucket) {\n lines.push(`Nuxt version: ${context.versionBucket}`);\n }\n const frameworkId = 'nuxt';\n lines.push(\n `Framework docs ID: ${frameworkId} (use posthog://docs/frameworks/${frameworkId} for documentation)`,\n );\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: () => [\n 'Analyzed your Nuxt project structure',\n 'Configured PostHog module/plugin',\n 'Integrated PostHog into your application',\n ],\n getOutroNextSteps: () => [\n 'Start your development server to see PostHog in action',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
@@ -38,7 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.PYTHON_AGENT_CONFIG = void 0;
|
|
40
40
|
const framework_config_1 = require("../../lib/framework-config");
|
|
41
|
-
const
|
|
41
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
42
42
|
const constants_1 = require("../../lib/constants");
|
|
43
43
|
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
44
44
|
const fs = __importStar(require("node:fs"));
|
|
@@ -135,7 +135,7 @@ exports.PYTHON_AGENT_CONFIG = {
|
|
|
135
135
|
// If we have Python config files but it's not Django or Flask, it's a generic Python project
|
|
136
136
|
return true;
|
|
137
137
|
},
|
|
138
|
-
detectPackageManager:
|
|
138
|
+
detectPackageManager: package_manager_1.detectPythonPackageManagers,
|
|
139
139
|
},
|
|
140
140
|
environment: {
|
|
141
141
|
uploadToHosting: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/python/python-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Generic Python language wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { PYTHON_PACKAGE_INSTALLATION } from '../../lib/framework-config';\nimport { detectPythonPackageManagers } from '../../lib/package-manager-detection';\nimport { Integration } from '../../lib/constants';\nimport fg from 'fast-glob';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport {\n getPythonVersion,\n getPythonVersionBucket,\n detectPackageManager,\n getPackageManagerName,\n PythonPackageManager,\n} from './utils';\n\ntype PythonContext = {\n packageManager?: PythonPackageManager;\n};\n\nexport const PYTHON_AGENT_CONFIG: FrameworkConfig<PythonContext> = {\n metadata: {\n name: 'Python Language',\n integration: Integration.python,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/python',\n gatherContext: async (options: WizardOptions) => {\n const packageManager = await detectPackageManager(options);\n return { packageManager };\n },\n },\n\n detection: {\n packageName: 'python',\n packageDisplayName: 'Python',\n usesPackageJson: false,\n getVersion: () => undefined,\n getVersionBucket: getPythonVersionBucket,\n minimumVersion: '3.8.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getPythonVersion(options)),\n detect: async (options) => {\n const { installDir } = options;\n\n // Look for Python package management files\n const pythonConfigFiles = await fg(\n [\n '**/requirements*.txt',\n '**/pyproject.toml',\n '**/setup.py',\n '**/Pipfile',\n ],\n {\n cwd: installDir,\n ignore: ['**/venv/**', '**/.venv/**', '**/env/**', '**/.env/**'],\n },\n );\n\n if (pythonConfigFiles.length === 0) {\n return false;\n }\n\n // Make sure this isn't Django or Flask (those should be detected first)\n // Check for Django\n const managePyMatches = await fg('**/manage.py', {\n cwd: installDir,\n ignore: ['**/venv/**', '**/.venv/**', '**/env/**', '**/.env/**'],\n });\n\n for (const match of managePyMatches) {\n try {\n const content = fs.readFileSync(\n path.join(installDir, match),\n 'utf-8',\n );\n if (\n content.includes('django') ||\n content.includes('DJANGO_SETTINGS_MODULE')\n ) {\n return false; // Django detected, use django agent instead\n }\n } catch {\n continue;\n }\n }\n\n // Check for Flask\n for (const configFile of pythonConfigFiles) {\n try {\n const content = fs.readFileSync(\n path.join(installDir, configFile),\n 'utf-8',\n );\n if (\n /^flask([<>=~!]|$|\\s)/im.test(content) ||\n /[\"']flask[\"']/i.test(content)\n ) {\n return false; // Flask detected, use flask agent instead\n }\n } catch {\n continue;\n }\n }\n\n const pyFiles = await fg(\n ['**/app.py', '**/wsgi.py', '**/application.py', '**/__init__.py'],\n {\n cwd: installDir,\n ignore: [\n '**/venv/**',\n '**/.venv/**',\n '**/env/**',\n '**/.env/**',\n '**/__pycache__/**',\n ],\n },\n );\n\n for (const pyFile of pyFiles) {\n try {\n const content = fs.readFileSync(\n path.join(installDir, pyFile),\n 'utf-8',\n );\n if (\n content.includes('from flask import') ||\n content.includes('import flask') ||\n /Flask\\s*\\(/.test(content)\n ) {\n return false; // Flask detected, use flask agent instead\n }\n } catch {\n continue;\n }\n }\n\n // If we have Python config files but it's not Django or Flask, it's a generic Python project\n return true;\n },\n detectPackageManager: detectPythonPackageManagers,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'unknown';\n return {\n packageManager: packageManagerName,\n };\n },\n },\n\n prompts: {\n packageInstallation: PYTHON_PACKAGE_INSTALLATION,\n projectTypeDetection:\n 'This is a generic Python project. Look for requirements.txt, pyproject.toml, setup.py, or Pipfile to confirm.',\n getAdditionalContextLines: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'unknown';\n\n return [\n `Package manager: ${packageManagerName}`,\n `Framework docs ID: python (use posthog://docs/frameworks/python for documentation)`,\n `Project type: Generic Python application (CLI, script, worker, data pipeline, etc.)`,\n ];\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'package manager';\n return [\n `Analyzed your Python project structure`,\n `Installed the PostHog Python package using ${packageManagerName}`,\n `Created PostHog initialization using instance-based API (Posthog class)`,\n `Configured exception autocapture and graceful shutdown`,\n `Added example code for events, feature flags, and error capture (without PII)`,\n ];\n },\n getOutroNextSteps: () => [\n 'Use Posthog() class (not module-level posthog) with enable_exception_autocapture=True',\n 'Call posthog_client.shutdown() on application exit (use atexit.register)',\n 'NEVER send PII in event properties (no emails, names, or user content)',\n 'Use posthog_client.capture() for events and posthog_client.identify() for users',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"python-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/python/python-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Generic Python language wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { PYTHON_PACKAGE_INSTALLATION } from '../../lib/framework-config';\nimport { detectPythonPackageManagers } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport fg from 'fast-glob';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport {\n getPythonVersion,\n getPythonVersionBucket,\n detectPackageManager,\n getPackageManagerName,\n PythonPackageManager,\n} from './utils';\n\ntype PythonContext = {\n packageManager?: PythonPackageManager;\n};\n\nexport const PYTHON_AGENT_CONFIG: FrameworkConfig<PythonContext> = {\n metadata: {\n name: 'Python Language',\n integration: Integration.python,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/python',\n gatherContext: async (options: WizardOptions) => {\n const packageManager = await detectPackageManager(options);\n return { packageManager };\n },\n },\n\n detection: {\n packageName: 'python',\n packageDisplayName: 'Python',\n usesPackageJson: false,\n getVersion: () => undefined,\n getVersionBucket: getPythonVersionBucket,\n minimumVersion: '3.8.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getPythonVersion(options)),\n detect: async (options) => {\n const { installDir } = options;\n\n // Look for Python package management files\n const pythonConfigFiles = await fg(\n [\n '**/requirements*.txt',\n '**/pyproject.toml',\n '**/setup.py',\n '**/Pipfile',\n ],\n {\n cwd: installDir,\n ignore: ['**/venv/**', '**/.venv/**', '**/env/**', '**/.env/**'],\n },\n );\n\n if (pythonConfigFiles.length === 0) {\n return false;\n }\n\n // Make sure this isn't Django or Flask (those should be detected first)\n // Check for Django\n const managePyMatches = await fg('**/manage.py', {\n cwd: installDir,\n ignore: ['**/venv/**', '**/.venv/**', '**/env/**', '**/.env/**'],\n });\n\n for (const match of managePyMatches) {\n try {\n const content = fs.readFileSync(\n path.join(installDir, match),\n 'utf-8',\n );\n if (\n content.includes('django') ||\n content.includes('DJANGO_SETTINGS_MODULE')\n ) {\n return false; // Django detected, use django agent instead\n }\n } catch {\n continue;\n }\n }\n\n // Check for Flask\n for (const configFile of pythonConfigFiles) {\n try {\n const content = fs.readFileSync(\n path.join(installDir, configFile),\n 'utf-8',\n );\n if (\n /^flask([<>=~!]|$|\\s)/im.test(content) ||\n /[\"']flask[\"']/i.test(content)\n ) {\n return false; // Flask detected, use flask agent instead\n }\n } catch {\n continue;\n }\n }\n\n const pyFiles = await fg(\n ['**/app.py', '**/wsgi.py', '**/application.py', '**/__init__.py'],\n {\n cwd: installDir,\n ignore: [\n '**/venv/**',\n '**/.venv/**',\n '**/env/**',\n '**/.env/**',\n '**/__pycache__/**',\n ],\n },\n );\n\n for (const pyFile of pyFiles) {\n try {\n const content = fs.readFileSync(\n path.join(installDir, pyFile),\n 'utf-8',\n );\n if (\n content.includes('from flask import') ||\n content.includes('import flask') ||\n /Flask\\s*\\(/.test(content)\n ) {\n return false; // Flask detected, use flask agent instead\n }\n } catch {\n continue;\n }\n }\n\n // If we have Python config files but it's not Django or Flask, it's a generic Python project\n return true;\n },\n detectPackageManager: detectPythonPackageManagers,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'unknown';\n return {\n packageManager: packageManagerName,\n };\n },\n },\n\n prompts: {\n packageInstallation: PYTHON_PACKAGE_INSTALLATION,\n projectTypeDetection:\n 'This is a generic Python project. Look for requirements.txt, pyproject.toml, setup.py, or Pipfile to confirm.',\n getAdditionalContextLines: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'unknown';\n\n return [\n `Package manager: ${packageManagerName}`,\n `Framework docs ID: python (use posthog://docs/frameworks/python for documentation)`,\n `Project type: Generic Python application (CLI, script, worker, data pipeline, etc.)`,\n ];\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'package manager';\n return [\n `Analyzed your Python project structure`,\n `Installed the PostHog Python package using ${packageManagerName}`,\n `Created PostHog initialization using instance-based API (Posthog class)`,\n `Configured exception autocapture and graceful shutdown`,\n `Added example code for events, feature flags, and error capture (without PII)`,\n ];\n },\n getOutroNextSteps: () => [\n 'Use Posthog() class (not module-level posthog) with enable_exception_autocapture=True',\n 'Call posthog_client.shutdown() on application exit (use atexit.register)',\n 'NEVER send PII in event properties (no emails, names, or user content)',\n 'Use posthog_client.capture() for events and posthog_client.identify() for users',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RAILS_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
7
|
exports.RAILS_AGENT_CONFIG = {
|
|
@@ -26,7 +26,7 @@ exports.RAILS_AGENT_CONFIG = {
|
|
|
26
26
|
minimumVersion: '6.0.0',
|
|
27
27
|
getInstalledVersion: (options) => Promise.resolve((0, utils_1.getRailsVersion)(options)),
|
|
28
28
|
detect: async (options) => (0, utils_1.isRailsProject)(options),
|
|
29
|
-
detectPackageManager:
|
|
29
|
+
detectPackageManager: package_manager_1.bundlerPackageManager,
|
|
30
30
|
},
|
|
31
31
|
environment: {
|
|
32
32
|
uploadToHosting: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rails-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/rails/rails-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"rails-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/rails/rails-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Ruby on Rails wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { bundlerPackageManager } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getRailsVersion,\n getRailsProjectType,\n getRailsProjectTypeName,\n getRailsVersionBucket,\n RailsProjectType,\n findInitializersDir,\n isRailsProject,\n} from './utils';\n\ntype RailsContext = {\n projectType?: RailsProjectType;\n initializersDir?: string;\n};\n\nexport const RAILS_AGENT_CONFIG: FrameworkConfig<RailsContext> = {\n metadata: {\n name: 'Ruby on Rails',\n integration: Integration.rails,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/ruby-on-rails',\n unsupportedVersionDocsUrl: 'https://posthog.com/docs/libraries/ruby',\n gatherContext: (options: WizardOptions) => {\n const projectType = getRailsProjectType(options);\n const initializersDir = findInitializersDir(options);\n return Promise.resolve({ projectType, initializersDir });\n },\n },\n\n detection: {\n packageName: 'rails',\n packageDisplayName: 'Ruby on Rails',\n usesPackageJson: false,\n getVersion: () => undefined,\n getVersionBucket: getRailsVersionBucket,\n minimumVersion: '6.0.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getRailsVersion(options)),\n detect: async (options) => isRailsProject(options),\n detectPackageManager: bundlerPackageManager,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n projectType: context.projectType || 'unknown',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a Ruby on Rails project. Look for Gemfile, config/application.rb, bin/rails, and config/routes.rb to confirm.',\n packageInstallation:\n \"Use Bundler to install gems. Add `gem 'posthog-ruby'` and `gem 'posthog-rails'` to the Gemfile and run `bundle install`. Do not pin specific versions.\",\n getAdditionalContextLines: (context) => {\n const projectTypeName = context.projectType\n ? getRailsProjectTypeName(context.projectType)\n : 'unknown';\n\n const lines = [\n `Project type: ${projectTypeName}`,\n `Framework docs ID: ruby-on-rails (use posthog://docs/frameworks/ruby-on-rails for documentation)`,\n ];\n\n if (context.initializersDir) {\n lines.push(`Initializers directory: ${context.initializersDir}`);\n }\n\n if (context.projectType === RailsProjectType.API) {\n lines.push(\n 'Note: This is an API-only Rails app — skip frontend posthog-js integration',\n );\n }\n\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const projectTypeName = context.projectType\n ? getRailsProjectTypeName(context.projectType)\n : 'Rails';\n\n const changes = [\n `Analyzed your ${projectTypeName} project structure`,\n `Installed the posthog-ruby and posthog-rails gems via Bundler`,\n `Created PostHog initializer in config/initializers/posthog.rb`,\n `Configured automatic exception capture and ActiveJob instrumentation`,\n ];\n\n if (context.projectType !== RailsProjectType.API) {\n changes.push(\n 'Added posthog-js snippet to the layout template for frontend tracking',\n );\n }\n\n return changes;\n },\n getOutroNextSteps: () => [\n 'Start your Rails development server with `bin/rails server`',\n 'Visit your PostHog dashboard to see incoming events',\n 'Use PostHog.capture() to track custom events',\n 'Use PostHog.identify() to associate events with users',\n 'Define posthog_distinct_id on your User model for automatic user association',\n ],\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.REACT_NATIVE_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const package_json_1 = require("../../utils/package-json");
|
|
7
7
|
const setup_utils_1 = require("../../utils/setup-utils");
|
|
@@ -29,7 +29,7 @@ exports.REACT_NATIVE_AGENT_CONFIG = {
|
|
|
29
29
|
? (0, package_json_1.hasPackageInstalled)('react-native', packageJson)
|
|
30
30
|
: false;
|
|
31
31
|
},
|
|
32
|
-
detectPackageManager:
|
|
32
|
+
detectPackageManager: package_manager_1.detectNodePackageManagers,
|
|
33
33
|
},
|
|
34
34
|
environment: {
|
|
35
35
|
uploadToHosting: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/react-native/react-native-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"react-native-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/react-native/react-native-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* React Native wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { detectNodePackageManagers } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getPackageVersion,\n getInstalledPackageVersion,\n hasPackageInstalled,\n type PackageDotJson,\n} from '../../utils/package-json';\nimport { tryGetPackageJson } from '../../utils/setup-utils';\nimport {\n detectReactNativeVariant,\n getReactNativeVariantName,\n getReactNativeVersionBucket,\n ReactNativeVariant,\n} from './utils';\n\ntype ReactNativeContext = {\n variant?: ReactNativeVariant;\n};\n\nexport const REACT_NATIVE_AGENT_CONFIG: FrameworkConfig<ReactNativeContext> = {\n metadata: {\n name: 'React Native',\n integration: Integration.reactNative,\n docsUrl: 'https://posthog.com/docs/libraries/react-native',\n gatherContext: async (options: WizardOptions) => {\n const variant = await detectReactNativeVariant(options);\n return { variant };\n },\n },\n\n detection: {\n packageName: 'react-native',\n packageDisplayName: 'React Native',\n getVersion: (packageJson: unknown) =>\n getPackageVersion('react-native', packageJson as PackageDotJson),\n getVersionBucket: getReactNativeVersionBucket,\n minimumVersion: '0.73.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(\n getInstalledPackageVersion('react-native', options.installDir),\n ),\n detect: async (options) => {\n const packageJson = await tryGetPackageJson(options);\n return packageJson\n ? hasPackageInstalled('react-native', packageJson)\n : false;\n },\n detectPackageManager: detectNodePackageManagers,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n variant:\n context.variant === ReactNativeVariant.EXPO ? 'expo' : 'react-native',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a React Native project. Look for package.json, android/ and ios/ directories, and lockfiles to confirm. Check for expo in package.json to determine the variant.',\n getAdditionalContextLines: (context) => {\n const isExpo = context.variant === ReactNativeVariant.EXPO;\n const frameworkId = 'react-native';\n\n const lines = [\n `Framework docs ID: ${frameworkId} (use posthog://docs/frameworks/${frameworkId} for documentation)`,\n `Variant: ${isExpo ? 'Expo' : 'React Native'}`,\n ];\n\n if (isExpo) {\n lines.push(\n 'Use `npx expo install` for package installation.',\n 'Use EXPO_PUBLIC_ prefix for environment variables exposed to the client.',\n );\n } else {\n lines.push(\n 'This is a React Native project without Expo. Native linking may be required.',\n 'For iOS, ensure pods are installed after adding PostHog.',\n );\n }\n\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 10,\n getOutroChanges: (context) => {\n const variant = context.variant ?? ReactNativeVariant.REACT_NATIVE;\n const variantName = getReactNativeVariantName(variant);\n return [\n `Analyzed your React Native project structure (${variantName})`,\n `Installed and configured the PostHog React Native SDK`,\n `Integrated PostHog into your application`,\n ];\n },\n getOutroNextSteps: (context) => {\n const isExpo = context.variant === ReactNativeVariant.EXPO;\n const steps = [];\n\n if (!isExpo) {\n steps.push('Run `npx pod-install` to install iOS dependencies');\n }\n\n steps.push(\n isExpo\n ? 'Start your development server with `npx expo start` to see PostHog in action'\n : 'Start your development server to see PostHog in action',\n 'Visit your PostHog dashboard to see incoming events',\n );\n\n return steps;\n },\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.REACT_ROUTER_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const package_json_1 = require("../../utils/package-json");
|
|
7
7
|
const setup_utils_1 = require("../../utils/setup-utils");
|
|
@@ -35,7 +35,7 @@ exports.REACT_ROUTER_AGENT_CONFIG = {
|
|
|
35
35
|
? (0, package_json_1.hasPackageInstalled)('react-router', packageJson)
|
|
36
36
|
: false;
|
|
37
37
|
},
|
|
38
|
-
detectPackageManager:
|
|
38
|
+
detectPackageManager: package_manager_1.detectNodePackageManagers,
|
|
39
39
|
},
|
|
40
40
|
environment: {
|
|
41
41
|
uploadToHosting: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-router-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/react-router/react-router-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"react-router-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/react-router/react-router-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* React Router wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { detectNodePackageManagers } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getPackageVersion,\n getInstalledPackageVersion,\n hasPackageInstalled,\n type PackageDotJson,\n} from '../../utils/package-json';\nimport { tryGetPackageJson } from '../../utils/setup-utils';\nimport { getUI } from '../../ui';\nimport {\n getReactRouterMode,\n getReactRouterModeName,\n getReactRouterVersionBucket,\n ReactRouterMode,\n} from './utils';\n\ntype ReactRouterContext = {\n routerMode?: ReactRouterMode;\n};\n\nexport const REACT_ROUTER_AGENT_CONFIG: FrameworkConfig<ReactRouterContext> = {\n metadata: {\n name: 'React Router',\n integration: Integration.reactRouter,\n docsUrl: 'https://posthog.com/docs/libraries/react',\n unsupportedVersionDocsUrl: 'https://posthog.com/docs/libraries/react',\n gatherContext: async (options: WizardOptions) => {\n const routerMode = await getReactRouterMode(options);\n if (routerMode) {\n getUI().setDetectedFramework(\n `React Router ${getReactRouterModeName(routerMode)}`,\n );\n return { routerMode };\n }\n return {};\n },\n },\n\n detection: {\n packageName: 'react-router',\n packageDisplayName: 'React Router',\n getVersion: (packageJson: unknown) =>\n getPackageVersion('react-router', packageJson as PackageDotJson),\n getVersionBucket: getReactRouterVersionBucket,\n minimumVersion: '6.0.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(\n getInstalledPackageVersion('react-router', options.installDir),\n ),\n detect: async (options) => {\n const packageJson = await tryGetPackageJson(options);\n return packageJson\n ? hasPackageInstalled('react-router', packageJson)\n : false;\n },\n detectPackageManager: detectNodePackageManagers,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n REACT_APP_POSTHOG_PROJECT_TOKEN: apiKey,\n REACT_APP_POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n routerMode: context.routerMode || 'unknown',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a JavaScript/TypeScript project. Look for package.json and lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb) to confirm.',\n getAdditionalContextLines: (context) => {\n const routerMode = context.routerMode;\n const modeName = routerMode\n ? getReactRouterModeName(routerMode)\n : 'unknown';\n\n // Map router mode to framework ID for MCP docs resource\n const frameworkIdMap: Record<ReactRouterMode, string> = {\n [ReactRouterMode.V6]: 'react-react-router-6',\n [ReactRouterMode.V7_FRAMEWORK]: 'react-react-router-7-framework',\n [ReactRouterMode.V7_DATA]: 'react-react-router-7-data',\n [ReactRouterMode.V7_DECLARATIVE]: 'react-react-router-7-declarative',\n };\n\n const frameworkId = routerMode\n ? frameworkIdMap[routerMode]\n : ReactRouterMode.V7_FRAMEWORK;\n\n return [\n `Router mode: ${modeName}`,\n `Framework docs ID: ${frameworkId} (use posthog://docs/frameworks/${frameworkId} for documentation)`,\n ];\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 8,\n getOutroChanges: (context) => {\n const modeName = context.routerMode\n ? getReactRouterModeName(context.routerMode)\n : 'React Router';\n return [\n `Analyzed your React Router project structure (${modeName})`,\n `Created and configured PostHog initializers`,\n `Integrated PostHog into your application`,\n ];\n },\n getOutroNextSteps: () => [\n 'Start your development server to see PostHog in action',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RUBY_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
7
|
exports.RUBY_AGENT_CONFIG = {
|
|
@@ -24,7 +24,7 @@ exports.RUBY_AGENT_CONFIG = {
|
|
|
24
24
|
minimumVersion: '2.7.0',
|
|
25
25
|
getInstalledVersion: (options) => Promise.resolve((0, utils_1.getRubyVersion)(options)),
|
|
26
26
|
detect: async (options) => (0, utils_1.isRubyProject)(options),
|
|
27
|
-
detectPackageManager:
|
|
27
|
+
detectPackageManager: package_manager_1.bundlerPackageManager,
|
|
28
28
|
},
|
|
29
29
|
environment: {
|
|
30
30
|
uploadToHosting: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruby-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/ruby/ruby-wizard-agent.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"ruby-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/ruby/ruby-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Generic Ruby language wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { bundlerPackageManager } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getRubyVersion,\n getRubyVersionBucket,\n detectPackageManager,\n getPackageManagerName,\n RubyPackageManager,\n isRubyProject,\n} from './utils';\n\ntype RubyContext = {\n packageManager?: RubyPackageManager;\n};\n\nexport const RUBY_AGENT_CONFIG: FrameworkConfig<RubyContext> = {\n metadata: {\n name: 'Ruby',\n integration: Integration.ruby,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/ruby',\n gatherContext: (options: WizardOptions) => {\n const packageManager = detectPackageManager(options);\n return Promise.resolve({ packageManager });\n },\n },\n\n detection: {\n packageName: 'ruby',\n packageDisplayName: 'Ruby',\n usesPackageJson: false,\n getVersion: () => undefined,\n getVersionBucket: getRubyVersionBucket,\n minimumVersion: '2.7.0',\n getInstalledVersion: (options: WizardOptions) =>\n Promise.resolve(getRubyVersion(options)),\n detect: async (options) => isRubyProject(options),\n detectPackageManager: bundlerPackageManager,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'unknown';\n return {\n packageManager: packageManagerName,\n };\n },\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a Ruby project. Look for Gemfile, *.gemspec, .ruby-version, or *.rb files to confirm.',\n packageInstallation:\n \"Use Bundler if a Gemfile is present (add `gem 'posthog-ruby'` and run `bundle install`). Otherwise use `gem install posthog-ruby`. Do not pin a specific version.\",\n getAdditionalContextLines: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'unknown';\n\n const lines = [\n `Package manager: ${packageManagerName}`,\n `Framework docs ID: ruby (use posthog://docs/frameworks/ruby for documentation)`,\n `Project type: Generic Ruby application (CLI, script, gem, worker, etc.)`,\n ``,\n `## CRITICAL: Ruby PostHog Best Practices`,\n ``,\n `### 1. Gem Name vs Require`,\n `The gem is named posthog-ruby but you require it as 'posthog':`,\n ` gem 'posthog-ruby' # in Gemfile`,\n ` require 'posthog' # in code (NOT require 'posthog-ruby')`,\n ``,\n `### 2. Use Instance-Based API (REQUIRED for scripts/CLIs)`,\n `Use PostHog::Client.new for scripts and standalone applications:`,\n ``,\n `client = PostHog::Client.new(`,\n ` api_key: ENV['POSTHOG_PROJECT_TOKEN'],`,\n ` host: ENV['POSTHOG_HOST'] || 'https://us.i.posthog.com'`,\n `)`,\n ``,\n `### 3. MUST Call shutdown Before Exit`,\n `In scripts and CLIs, you MUST call client.shutdown or events will be lost:`,\n ``,\n `begin`,\n ` client.capture(distinct_id: 'user_123', event: 'my_event')`,\n `ensure`,\n ` client.shutdown`,\n `end`,\n ``,\n `### 4. capture_exception Takes Positional Args`,\n `client.capture_exception(exception, distinct_id, additional_properties)`,\n `Do NOT use keyword arguments for capture_exception.`,\n ``,\n `### 5. NEVER Send PII`,\n `Do NOT include emails, names, phone numbers, or user content in event properties.`,\n ];\n\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const packageManagerName = context.packageManager\n ? getPackageManagerName(context.packageManager)\n : 'package manager';\n return [\n `Analyzed your Ruby project structure`,\n `Installed the posthog-ruby gem using ${packageManagerName}`,\n `Created PostHog initialization with instance-based API`,\n `Configured shutdown handler for proper event flushing`,\n ];\n },\n getOutroNextSteps: () => [\n 'Use client.capture() for events and client.identify() for users',\n 'Always call client.shutdown() before your application exits',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SVELTEKIT_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const package_json_1 = require("../../utils/package-json");
|
|
7
7
|
const setup_utils_1 = require("../../utils/setup-utils");
|
|
@@ -26,7 +26,7 @@ exports.SVELTEKIT_AGENT_CONFIG = {
|
|
|
26
26
|
: false;
|
|
27
27
|
},
|
|
28
28
|
minimumVersion: '2.0.0',
|
|
29
|
-
detectPackageManager:
|
|
29
|
+
detectPackageManager: package_manager_1.detectNodePackageManagers,
|
|
30
30
|
},
|
|
31
31
|
environment: {
|
|
32
32
|
uploadToHosting: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/svelte/svelte-wizard-agent.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"svelte-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/svelte/svelte-wizard-agent.ts"],"names":[],"mappings":";;;AAEA,yEAAgF;AAChF,mDAAkD;AAClD,2DAIkC;AAClC,yDAA4D;AAI/C,QAAA,sBAAsB,GAAsC;IACvE,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uBAAW,CAAC,SAAS;QAClC,OAAO,EAAE,2CAA2C;QACpD,IAAI,EAAE,IAAI;QACV,oBAAoB,EAAE;YACpB,MAAM,EAAE,EAAE,GAAG,EAAE,4BAA4B,EAAE;SAC9C;KACF;IAED,SAAS,EAAE;QACT,WAAW,EAAE,eAAe;QAC5B,kBAAkB,EAAE,WAAW;QAC/B,UAAU,EAAE,CAAC,WAAoB,EAAE,EAAE,CACnC,IAAA,gCAAiB,EAAC,eAAe,EAAE,WAA6B,CAAC;QACnE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACxB,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAiB,EAAC,OAAO,CAAC,CAAC;YACrD,OAAO,WAAW;gBAChB,CAAC,CAAC,IAAA,kCAAmB,EAAC,eAAe,EAAE,WAAW,CAAC;gBACnD,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC;QACD,cAAc,EAAE,OAAO;QACvB,oBAAoB,EAAE,2CAAyB;KAChD;IAED,WAAW,EAAE;QACX,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC;YAC7C,4BAA4B,EAAE,MAAM;YACpC,mBAAmB,EAAE,IAAI;SAC1B,CAAC;KACH;IAED,SAAS,EAAE;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KACpB;IAED,OAAO,EAAE;QACP,oBAAoB,EAClB,uLAAuL;QACzL,yBAAyB,EAAE,GAAG,EAAE,CAAC;YAC/B,0FAA0F;SAC3F;KACF;IAED,EAAE,EAAE;QACF,cAAc,EAAE,8BAA8B;QAC9C,wBAAwB,EAAE,CAAC;QAC3B,eAAe,EAAE,GAAG,EAAE,CAAC;YACrB,2CAA2C;YAC3C,6CAA6C;YAC7C,0CAA0C;SAC3C;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACvB,wDAAwD;YACxD,qDAAqD;SACtD;KACF;CACF,CAAC","sourcesContent":["/* SvelteKit wizard using posthog-agent with PostHog MCP */\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { detectNodePackageManagers } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport {\n getPackageVersion,\n hasPackageInstalled,\n type PackageDotJson,\n} from '../../utils/package-json';\nimport { tryGetPackageJson } from '../../utils/setup-utils';\n\ntype SvelteKitContext = Record<string, unknown>;\n\nexport const SVELTEKIT_AGENT_CONFIG: FrameworkConfig<SvelteKitContext> = {\n metadata: {\n name: 'SvelteKit',\n integration: Integration.sveltekit,\n docsUrl: 'https://posthog.com/docs/libraries/svelte',\n beta: true,\n additionalMcpServers: {\n svelte: { url: 'https://mcp.svelte.dev/mcp' },\n },\n },\n\n detection: {\n packageName: '@sveltejs/kit',\n packageDisplayName: 'SvelteKit',\n getVersion: (packageJson: unknown) =>\n getPackageVersion('@sveltejs/kit', packageJson as PackageDotJson),\n detect: async (options) => {\n const packageJson = await tryGetPackageJson(options);\n return packageJson\n ? hasPackageInstalled('@sveltejs/kit', packageJson)\n : false;\n },\n minimumVersion: '2.0.0',\n detectPackageManager: detectNodePackageManagers,\n },\n\n environment: {\n uploadToHosting: true,\n getEnvVars: (apiKey: string, host: string) => ({\n PUBLIC_POSTHOG_PROJECT_TOKEN: apiKey,\n PUBLIC_POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: () => ({}),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a JavaScript/TypeScript project using SvelteKit. Look for package.json, svelte.config.js, and lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb) to confirm.',\n getAdditionalContextLines: () => [\n 'Framework docs ID: sveltekit (use posthog://docs/frameworks/sveltekit for documentation)',\n ],\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 8,\n getOutroChanges: () => [\n 'Analyzed your SvelteKit project structure',\n 'Created and configured PostHog initializers',\n 'Integrated PostHog into your application',\n ],\n getOutroNextSteps: () => [\n 'Start your development server to see PostHog in action',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.SWIFT_AGENT_CONFIG = void 0;
|
|
40
|
-
const
|
|
40
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
41
41
|
const constants_1 = require("../../lib/constants");
|
|
42
42
|
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
43
43
|
const fs = __importStar(require("node:fs"));
|
|
@@ -90,7 +90,7 @@ exports.SWIFT_AGENT_CONFIG = {
|
|
|
90
90
|
}
|
|
91
91
|
return false;
|
|
92
92
|
},
|
|
93
|
-
detectPackageManager:
|
|
93
|
+
detectPackageManager: package_manager_1.swiftPackageManager,
|
|
94
94
|
},
|
|
95
95
|
environment: {
|
|
96
96
|
uploadToHosting: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/swift/swift-wizard-agent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"swift-wizard-agent.js","sourceRoot":"","sources":["../../../../src/frameworks/swift/swift-wizard-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* Swift wizard using posthog-agent with PostHog MCP */\nimport type { WizardOptions } from '../../utils/types';\nimport type { FrameworkConfig } from '../../lib/framework-config';\nimport { swiftPackageManager } from '../../lib/detection/package-manager';\nimport { Integration } from '../../lib/constants';\nimport fg from 'fast-glob';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport {\n detectSwiftProjectType,\n getSwiftProjectTypeName,\n SwiftProjectType,\n} from './utils';\n\ntype SwiftContext = {\n projectType?: SwiftProjectType;\n};\n\nexport const SWIFT_AGENT_CONFIG: FrameworkConfig<SwiftContext> = {\n metadata: {\n name: 'Swift (iOS/macOS)',\n integration: Integration.swift,\n beta: true,\n docsUrl: 'https://posthog.com/docs/libraries/ios',\n preRunNotice:\n 'Please close the Xcode project before proceeding. Xcode may overwrite changes the wizard makes to project files.',\n gatherContext: async (options: WizardOptions) => {\n const projectType = await detectSwiftProjectType(options);\n return { projectType };\n },\n },\n\n detection: {\n packageName: 'posthog-ios',\n packageDisplayName: 'Swift',\n usesPackageJson: false,\n getVersion: () => undefined,\n detect: async (options) => {\n const { installDir } = options;\n\n // Check for Xcode project\n const xcodeProjects = await fg('*.xcodeproj', {\n cwd: installDir,\n onlyDirectories: true,\n });\n\n if (xcodeProjects.length > 0) {\n // Verify it contains Swift source files\n const swiftFiles = await fg('**/*.swift', {\n cwd: installDir,\n ignore: [\n '**/.build/**',\n '**/DerivedData/**',\n '**/build/**',\n '**/*.xcodeproj/**',\n '**/Pods/**',\n ],\n });\n if (swiftFiles.length > 0) {\n return true;\n }\n }\n\n // Check for Swift Package Manager project\n const packageSwiftPath = path.join(installDir, 'Package.swift');\n if (fs.existsSync(packageSwiftPath)) {\n return true;\n }\n\n return false;\n },\n detectPackageManager: swiftPackageManager,\n },\n\n environment: {\n uploadToHosting: false,\n getEnvVars: (apiKey: string, host: string) => ({\n POSTHOG_PROJECT_TOKEN: apiKey,\n POSTHOG_HOST: host,\n }),\n },\n\n analytics: {\n getTags: (context) => ({\n projectType: context.projectType || 'unknown',\n }),\n },\n\n prompts: {\n projectTypeDetection:\n 'This is a Swift project. Look for .xcodeproj directories, Package.swift, and .swift source files to confirm. Check for SwiftUI or UIKit imports to determine the UI framework.',\n packageInstallation:\n 'Add the posthog-ios package via Swift Package Manager. For Xcode projects, add XCRemoteSwiftPackageReference and XCSwiftPackageProductDependency to the .pbxproj file. For Swift packages, add the dependency to Package.swift.',\n getAdditionalContextLines: (context) => {\n const projectTypeName = context.projectType\n ? getSwiftProjectTypeName(context.projectType)\n : 'unknown';\n\n const lines = [\n `Project type: ${projectTypeName}`,\n `Framework docs ID: swift (use posthog://docs/frameworks/swift for documentation)`,\n ];\n\n return lines;\n },\n },\n\n ui: {\n successMessage: 'PostHog integration complete',\n estimatedDurationMinutes: 5,\n getOutroChanges: (context) => {\n const projectTypeName = context.projectType\n ? getSwiftProjectTypeName(context.projectType)\n : 'Swift';\n\n const changes = [\n `Analyzed your ${projectTypeName} project structure`,\n `Added the PostHog iOS SDK via Swift Package Manager`,\n `Configured PostHog initialization in your app entry point`,\n `Added event capture and user identification`,\n ];\n\n return changes;\n },\n getOutroNextSteps: () => [\n 'Set POSTHOG_PROJECT_TOKEN and POSTHOG_HOST in your Xcode scheme environment variables',\n 'Build and run your app to see PostHog in action',\n 'Visit your PostHog dashboard to see incoming events',\n ],\n },\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TANSTACK_ROUTER_AGENT_CONFIG = void 0;
|
|
4
|
-
const
|
|
4
|
+
const package_manager_1 = require("../../lib/detection/package-manager");
|
|
5
5
|
const constants_1 = require("../../lib/constants");
|
|
6
6
|
const package_json_1 = require("../../utils/package-json");
|
|
7
7
|
const setup_utils_1 = require("../../utils/setup-utils");
|
|
@@ -39,7 +39,7 @@ exports.TANSTACK_ROUTER_AGENT_CONFIG = {
|
|
|
39
39
|
}
|
|
40
40
|
return (0, package_json_1.hasPackageInstalled)('@tanstack/react-router', packageJson);
|
|
41
41
|
},
|
|
42
|
-
detectPackageManager:
|
|
42
|
+
detectPackageManager: package_manager_1.detectNodePackageManagers,
|
|
43
43
|
},
|
|
44
44
|
environment: {
|
|
45
45
|
uploadToHosting: false,
|