Files
Brancheneinstufung2/competitor-analysis-app/index.html
Floke 6a7d56a9c9 feat(competitor-analysis): Fix 404, SDK compatibility, and update docs
Resolved multiple issues preventing the 'competitor-analysis' app from running and serving its frontend:

1.  **Fixed Python SyntaxError in Prompts:** Corrected unterminated string literals and ensure proper multi-line string formatting (using .format() instead of f-strings for complex prompts) in .
2.  **Addressed Python SDK Compatibility (google-generativeai==0.3.0):**
    *   Removed  for  and  by adapting the orchestrator to pass JSON schemas as direct Python dictionaries, as required by the older SDK version.
    *   Updated  with detailed guidance on handling / imports and dictionary-based schema definitions for older SDKs.
3.  **Corrected Frontend Build Dependencies:** Moved critical build dependencies (like , , ) from  to  in .
    *   Updated  to include this  pitfall, ensuring frontend build tools are installed in Docker.
4.  **Updated Documentation:**
    *   : Added comprehensive lessons learned regarding  dependencies, Python SDK versioning (specifically  and  imports for ), and robust multi-line prompt handling.
    *   : Integrated specific details of the encountered errors and their solutions, making the migration report a more complete historical record and guide.

These changes collectively fix the 404 error by ensuring the Python backend starts correctly and serves the frontend assets after a successful build.
2026-01-10 09:10:00 +00:00

51 lines
1.7 KiB
HTML

<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>B2B Competitor Analysis Agent</title>
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
colors: {
// Dark Theme
'brand-primary': '#0D1B2A',
'brand-secondary': '#1B263B',
'brand-accent': '#415A77',
'brand-light': '#778DA9',
'brand-text': '#E0E1DD',
'brand-highlight': '#3B82F6',
// Light Theme
'light-primary': '#F8F9FA',
'light-secondary': '#FFFFFF',
'light-accent': '#DEE2E6',
'light-text': '#212529',
'light-subtle': '#6C757D',
},
},
},
}
</script>
<script type="importmap">
{
"imports": {
"react/": "https://aistudiocdn.com/react@^19.2.0/",
"react": "https://aistudiocdn.com/react@^19.2.0",
"react-dom/": "https://aistudiocdn.com/react-dom@^19.2.0/",
"@google/genai": "https://aistudiocdn.com/@google/genai@^1.28.0",
"jspdf": "https://aistudiocdn.com/jspdf@^2.5.1",
"jspdf-autotable": "https://aistudiocdn.com/jspdf-autotable@^3.8.2"
}
}
</script>
<link rel="stylesheet" href="/index.css">
</head>
<body class="bg-light-primary dark:bg-brand-primary text-light-text dark:text-brand-text transition-colors duration-300">
<div id="root"></div>
<script type="module" src="/index.tsx"></script>
</body>
</html>