Dateien nach "gtm-architect/v2" hochladen
This commit is contained in:
20
gtm-architect/v2/README.md
Normal file
20
gtm-architect/v2/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
<div align="center">
|
||||
<img width="1200" height="475" alt="GHBanner" src="https://github.com/user-attachments/assets/0aa67016-6eaf-458a-adb2-6e31a0763ed6" />
|
||||
</div>
|
||||
|
||||
# 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`
|
||||
5
gtm-architect/v2/metadata.json
Normal file
5
gtm-architect/v2/metadata.json
Normal file
@@ -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": []
|
||||
}
|
||||
25
gtm-architect/v2/package.json
Normal file
25
gtm-architect/v2/package.json
Normal file
@@ -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"
|
||||
}
|
||||
}
|
||||
29
gtm-architect/v2/tsconfig.json
Normal file
29
gtm-architect/v2/tsconfig.json
Normal file
@@ -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
|
||||
}
|
||||
}
|
||||
119
gtm-architect/v2/types.ts
Normal file
119
gtm-architect/v2/types.ts
Normal file
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user