From 4f1491c9da80866034382d9f91067a29a8b1c671 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 2 Jan 2026 18:20:45 +0000 Subject: [PATCH] Dateien nach "gtm-architect/v2" hochladen --- gtm-architect/v2/README.md | 20 ++++++ gtm-architect/v2/metadata.json | 5 ++ gtm-architect/v2/package.json | 25 +++++++ gtm-architect/v2/tsconfig.json | 29 ++++++++ gtm-architect/v2/types.ts | 119 +++++++++++++++++++++++++++++++++ 5 files changed, 198 insertions(+) create mode 100644 gtm-architect/v2/README.md create mode 100644 gtm-architect/v2/metadata.json create mode 100644 gtm-architect/v2/package.json create mode 100644 gtm-architect/v2/tsconfig.json create mode 100644 gtm-architect/v2/types.ts diff --git a/gtm-architect/v2/README.md b/gtm-architect/v2/README.md new file mode 100644 index 00000000..8154d382 --- /dev/null +++ b/gtm-architect/v2/README.md @@ -0,0 +1,20 @@ +
+GHBanner +
+ +# Run and deploy your AI Studio app + +This contains everything you need to run your app locally. + +View your app in AI Studio: https://ai.studio/apps/drive/1bvzSOz-NYMzDph6718RuAy1mnCSjjylz + +## Run Locally + +**Prerequisites:** Node.js + + +1. Install dependencies: + `npm install` +2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key +3. Run the app: + `npm run dev` diff --git a/gtm-architect/v2/metadata.json b/gtm-architect/v2/metadata.json new file mode 100644 index 00000000..09ad2ac3 --- /dev/null +++ b/gtm-architect/v2/metadata.json @@ -0,0 +1,5 @@ +{ + "name": "Roboplanet GTM Architect", + "description": "A strategic AI engine for developing Go-to-Market strategies for robotic products, ensuring product-market fit and operational feasibility.", + "requestFramePermissions": [] +} \ No newline at end of file diff --git a/gtm-architect/v2/package.json b/gtm-architect/v2/package.json new file mode 100644 index 00000000..f2f70b9a --- /dev/null +++ b/gtm-architect/v2/package.json @@ -0,0 +1,25 @@ +{ + "name": "roboplanet-gtm-architect", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@google/genai": "^1.34.0", + "react": "^19.2.3", + "react-markdown": "^10.1.0", + "remark-gfm": "^4.0.0", + "react-dom": "^19.2.3", + "lucide-react": "^0.562.0" + }, + "devDependencies": { + "@types/node": "^22.14.0", + "@vitejs/plugin-react": "^5.0.0", + "typescript": "~5.8.2", + "vite": "^6.2.0" + } +} diff --git a/gtm-architect/v2/tsconfig.json b/gtm-architect/v2/tsconfig.json new file mode 100644 index 00000000..2c6eed55 --- /dev/null +++ b/gtm-architect/v2/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "ES2022", + "experimentalDecorators": true, + "useDefineForClassFields": false, + "module": "ESNext", + "lib": [ + "ES2022", + "DOM", + "DOM.Iterable" + ], + "skipLibCheck": true, + "types": [ + "node" + ], + "moduleResolution": "bundler", + "isolatedModules": true, + "moduleDetection": "force", + "allowJs": true, + "jsx": "react-jsx", + "paths": { + "@/*": [ + "./*" + ] + }, + "allowImportingTsExtensions": true, + "noEmit": true + } +} \ No newline at end of file diff --git a/gtm-architect/v2/types.ts b/gtm-architect/v2/types.ts new file mode 100644 index 00000000..a618a48b --- /dev/null +++ b/gtm-architect/v2/types.ts @@ -0,0 +1,119 @@ +export enum Phase { + Input = 0, + ProductAnalysis = 1, + ICPDiscovery = 2, + WhaleHunting = 3, + Strategy = 4, + AssetGeneration = 5, + SalesEnablement = 6, + LandingPage = 7, + BusinessCase = 8, + TechTranslator = 9, +} + +export type Language = 'en' | 'de'; +export type Theme = 'light' | 'dark'; + +export interface Message { + role: 'user' | 'model'; + content: string; +} + +export interface Phase1Data { + features: string[]; + constraints: string[]; + conflictCheck: { + hasConflict: boolean; + details: string; + relatedProduct?: string; + }; + rawAnalysis: string; +} + +export interface Phase2Data { + icps: { + name: string; + rationale: string; + }[]; + dataProxies: { + target: string; + method: string; + }[]; +} + +export interface Phase3Data { + whales: { + industry: string; + accounts: string[]; + }[]; + roles: string[]; +} + +export interface Phase4Data { + strategyMatrix: { + segment: string; + painPoint: string; + angle: string; + differentiation: string; + }[]; +} + +export interface Phase6Data { + battlecards: { + persona: string; + objection: string; + responseScript: string; + }[]; + visualPrompts: { + title: string; + context: string; + prompt: string; + }[]; +} + +export interface Phase7Data { + landingPages: { + industry: string; + headline: string; + subline: string; + bullets: string[]; + cta: string; + }[]; +} + +export interface Phase8Data { + businessCases: { + industry: string; + costDriver: string; + efficiencyGain: string; + riskArgument: string; + }[]; +} + +export interface Phase9Data { + techTranslations: { + feature: string; + story: string; + headline: string; + }[]; +} + +export interface AppState { + currentPhase: Phase; + isLoading: boolean; + history: Message[]; + productInput: string; + productImages: string[]; // Array of Base64 strings + phase1Result?: Phase1Data; + phase2Result?: Phase2Data; + phase3Result?: Phase3Data; + phase4Result?: Phase4Data; + phase5Result?: string; // Markdown content + phase6Result?: Phase6Data; + phase7Result?: Phase7Data; + phase8Result?: Phase8Data; + phase9Result?: Phase9Data; + translatedReport?: string; // New field for the English translation + language: Language; + theme: Theme; +} \ No newline at end of file