+
+
+
+
+ OVHcloud
+
+
+
+
+
+
+
+
+
diff --git a/packages/manager/apps/pci-ai-endpoints/package.json b/packages/manager/apps/pci-ai-endpoints/package.json
new file mode 100644
index 000000000000..8fae46a3865b
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/package.json
@@ -0,0 +1,61 @@
+{
+ "name": "@ovh-ux/manager-pci-ai-endpoints-app",
+ "version": "0.0.0",
+ "private": true,
+ "description": "Manage AI Endpoints (usage and tokens) through OVHcloud control panel",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ovh/manager.git",
+ "directory": "packages/manager/apps/pci-ai-endpoints"
+ },
+ "license": "BSD-3-Clause",
+ "author": "OVH SAS",
+ "scripts": {
+ "build": "tsc && vite build",
+ "dev": "tsc && vite",
+ "start": "lerna exec --stream --scope='@ovh-ux/manager-pci-ai-endpoints-app' --include-dependencies -- npm run build --if-present",
+ "start:dev": "lerna exec --stream --scope='@ovh-ux/manager-pci-ai-endpoints-app' --include-dependencies -- npm run dev --if-present",
+ "start:watch": "lerna exec --stream --parallel --scope='@ovh-ux/manager-pci-ai-endpoints-app' --include-dependencies -- npm run dev:watch --if-present",
+ "test:e2e": "tsc && node ../../../../scripts/run-playwright-bdd.js",
+ "test:e2e:cii": "tsc && node ../../../../scripts/run-playwright-bdd.js --ci"
+ },
+ "dependencies": {
+ "@ovh-ux/manager-config": "^8.0.0",
+ "@ovh-ux/manager-core-api": "^0.9.0",
+ "@ovh-ux/manager-core-utils": "*",
+ "@ovh-ux/manager-pci-common": "^0.8.1",
+ "@ovh-ux/manager-react-components": "^1.41.1",
+ "@ovh-ux/manager-react-core-application": "^0.11.1",
+ "@ovh-ux/manager-react-shell-client": "^0.8.1",
+ "@ovh-ux/manager-tailwind-config": "*",
+ "@ovh-ux/request-tagger": "^0.4.0",
+ "@ovh-ux/shell": "^4.0.1",
+ "@ovhcloud/ods-common-core": "17.2.1",
+ "@ovhcloud/ods-common-theming": "17.2.1",
+ "axios": "^1.1.2",
+ "clsx": "^1.2.1",
+ "i18next": "^23.8.2",
+ "i18next-http-backend": "^2.4.2",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-i18next": "^14.0.5",
+ "react-router-dom": "^6.3.0",
+ "tailwindcss": "^3.4.4"
+ },
+ "devDependencies": {
+ "@cucumber/cucumber": "^10.3.1",
+ "@ovh-ux/manager-vite-config": "*",
+ "@ovhcloud/ods-components": "17.2.1",
+ "@ovhcloud/ods-theme-blue-jeans": "17.2.1",
+ "@playwright/test": "^1.41.2",
+ "@tanstack/react-query": "^5.51.21",
+ "@tanstack/react-query-devtools": "^5.51.21",
+ "typescript": "^5.1.6",
+ "vite": "^5.2.13"
+ },
+ "regions": [
+ "CA",
+ "EU",
+ "US"
+ ]
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/postcss.config.js b/packages/manager/apps/pci-ai-endpoints/postcss.config.js
new file mode 100644
index 000000000000..12a703d900da
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_de_DE.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_de_DE.json
new file mode 100644
index 000000000000..24598e80f1bb
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_de_DE.json
@@ -0,0 +1,14 @@
+{
+ "title": "Verbessern Sie Ihre Anwendungen mit AI Endpoints",
+ "description": "Unsere einfach zu bedienende Plattform ermöglicht es Entwicklern aller Stufen, ihre Anwendungen mit AI-APIs auf dem neuesten Stand der Technik zu verbessern - ohne KI-Fachwissen.",
+ "descriptionBis": "Für diese APIs ist keinerlei KI-Expertise oder dedizierte Infrastruktur erforderlich, da die Serverless-Plattform Zugriff auf fortgeschrittene KI-Modelle bietet, darunter Sprachmodelle (LLMs), natürliche Sprachverarbeitung, Übersetzung, Spracherkennung, Bilderkennung und vieles mehr. Entwickler können aus einer Reihe von Modellen wählen, insbesondere Open-Source-Optionen wie Mistral AI, Llama und Stable Diffusion. .",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Anleitung",
+ "guide1Title": "Erste Schritte mit AI Endpoints",
+ "guide1Description": "Entdecken Sie AI Endpoints, die sichere Serverless-Plattform von OVHcloud für Entwickler, die über benutzerfreundliche APIs Zugriff auf die besten Modelle für künstliche Intelligenz bietet. Es ist keine KI-Expertise erforderlich.",
+ "guide2Title": "Funktionen, Kapazitäten und Einschränkungen",
+ "guide2Description": "Entdecken Sie die aktuellen Funktionen, Kapazitäten und Einschränkungen von AI Endpoints",
+ "tutoCategory": "Tutorials ",
+ "guide3Title": "Use Cases mit AI Endpoints",
+ "guide3Description": "Entdecken Sie unsere Tutorials, um Ihre Anwendungen mit AI Endpoints zu erweitern. Hier erfahren Sie, wie Sie Chatbots erstellen, LLMs oder Tools für leistungsstarke KI-Lösungen integrieren."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_en_GB.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_en_GB.json
new file mode 100644
index 000000000000..d3ea47d8c94f
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_en_GB.json
@@ -0,0 +1,14 @@
+{
+ "title": "Enhance your applications with AI Endpoints",
+ "description": "Designed with simplicity in mind, our platform allows developers of all skill levels to enhance their applications with cutting-edge AI APIs — no AI expertise required.",
+ "descriptionBis": "These APIs require no AI expertise or dedicated infrastructure, as the serverless platform provides access to advanced AI models , including language models (LLMs), natural language processing, translation, voice recognition, image recognition, and much more. Developers can choose from a range of models, particularly open-source options like Mistral AI, Llama and Stable Diffusion. .",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Guide",
+ "guide1Title": "Getting started with AI Endpoints",
+ "guide1Description": "Discover AI Endpoints, OVHcloud's secure server platform for developers that provides access to the best AI models through easy-to-use APIs. No AI expertise is required.",
+ "guide2Title": "Features, capabilities and limitations",
+ "guide2Description": "Discover the current features, capabilities and limitations of AI Endpoints",
+ "tutoCategory": "Tutorials ",
+ "guide3Title": "Use cases with AI Endpoints",
+ "guide3Description": "Explore our tutorials to enrich your applications with AI Endpoints. Learn how to build chatbots, integrate LLM or tools for powerful AI solutions."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_es_ES.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_es_ES.json
new file mode 100644
index 000000000000..1a18a1edf51b
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_es_ES.json
@@ -0,0 +1,14 @@
+{
+ "title": "Mejore sus aplicaciones con AI Endpoints",
+ "description": "Diseñada con la simplicidad en mente, nuestra plataforma permite a los desarrolladores de todos los niveles de habilidad mejorar sus aplicaciones con API de IA de vanguardia, sin necesidad de conocimientos en IA.",
+ "descriptionBis": "Estas API no requieren conocimientos de IA ni de infraestructura dedicada, ya que la plataforma serverless permite acceder a modelos de IA avanzados, como los modelos de lenguaje (LLM), procesamiento de lenguaje natural, traducción, reconocimiento de voz, reconocimiento de imágenes, etc. Los desarrolladores pueden elegir entre una gama de modelos, en particular opciones de código abierto como Mistral AI, Llama y Stable Diffusion. .",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Guía",
+ "guide1Title": "Primeros pasos con AI Endpoints",
+ "guide1Description": "Descubra AI Endpoints, la plataforma de servidores seguros para desarrolladores de OVHcloud que permite acceder a los mejores modelos de inteligencia artificial gracias a las API, fáciles de utilizar. No es necesario tener experiencia en IA.",
+ "guide2Title": "Funcionalidades, capacidades y limitaciones",
+ "guide2Description": "Descubra las funcionalidades, capacidades y limitaciones actuales de AI Endpoints",
+ "tutoCategory": "Tutoriales",
+ "guide3Title": "Casos de uso con AI Endpoints",
+ "guide3Description": "Explore nuestros tutoriales para enriquecer sus aplicaciones con AI Endpoints. Aprenda a crear chatbots, integrar LLM o herramientas para potentes soluciones de IA."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_fr_CA.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_fr_CA.json
new file mode 100644
index 000000000000..b2562ac5bc0d
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_fr_CA.json
@@ -0,0 +1,14 @@
+{
+ "title": "Améliorez vos applications avec AI Endpoints",
+ "description": "Conçu avec la simplicité à l'esprit, notre plateforme permet aux développeurs de tous niveaux de compétence d'améliorer leurs applications avec des API IA de pointe — aucune expertise en IA requise.",
+ "descriptionBis": "Ces API n'exigent aucune expertise en IA ni d'infrastructure dédiée, car la plateforme serverless permet d'accéder à des modèles d'IA avancés, notamment les modèles de langage (LLMs), le traitement du langage naturel, la traduction, la reconnaissance vocale, la reconnaissance d'images et bien plus encore. Les développeurs peuvent choisir parmi une gamme de modèles, en particlier des options en open source comme Mistral AI, Llama et Stable Diffusion..",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Guide",
+ "guide1Title": "Premiers pas avec AI Endpoints",
+ "guide1Description": "Découvrez AI Endpoints, la plateforme serverless sécurisée d'OVHcloud pour les développeurs qui permet d'accéder aux meilleurs modèles d'intelligence artificielle grâce à des API faciles à utiliser. Aucune expertise en IA n'est nécessaire.",
+ "guide2Title": "Fonctionnalités, capacités et limitations",
+ "guide2Description": "Découvrez les fonctionnalités, capacités et limitations actuelles d'AI Endpoints",
+ "tutoCategory": "Tutoriels",
+ "guide3Title": "Cas d'usage avec AI Endpoints",
+ "guide3Description": "Explorez nos tutoriels pour enrichir vos applications avec AI Endpoints. Apprenez comment créer des chatbots, intégrer des LLM ou des outils pour des solutions d'IA puissantes."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_fr_FR.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_fr_FR.json
new file mode 100644
index 000000000000..b2562ac5bc0d
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_fr_FR.json
@@ -0,0 +1,14 @@
+{
+ "title": "Améliorez vos applications avec AI Endpoints",
+ "description": "Conçu avec la simplicité à l'esprit, notre plateforme permet aux développeurs de tous niveaux de compétence d'améliorer leurs applications avec des API IA de pointe — aucune expertise en IA requise.",
+ "descriptionBis": "Ces API n'exigent aucune expertise en IA ni d'infrastructure dédiée, car la plateforme serverless permet d'accéder à des modèles d'IA avancés, notamment les modèles de langage (LLMs), le traitement du langage naturel, la traduction, la reconnaissance vocale, la reconnaissance d'images et bien plus encore. Les développeurs peuvent choisir parmi une gamme de modèles, en particlier des options en open source comme Mistral AI, Llama et Stable Diffusion..",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Guide",
+ "guide1Title": "Premiers pas avec AI Endpoints",
+ "guide1Description": "Découvrez AI Endpoints, la plateforme serverless sécurisée d'OVHcloud pour les développeurs qui permet d'accéder aux meilleurs modèles d'intelligence artificielle grâce à des API faciles à utiliser. Aucune expertise en IA n'est nécessaire.",
+ "guide2Title": "Fonctionnalités, capacités et limitations",
+ "guide2Description": "Découvrez les fonctionnalités, capacités et limitations actuelles d'AI Endpoints",
+ "tutoCategory": "Tutoriels",
+ "guide3Title": "Cas d'usage avec AI Endpoints",
+ "guide3Description": "Explorez nos tutoriels pour enrichir vos applications avec AI Endpoints. Apprenez comment créer des chatbots, intégrer des LLM ou des outils pour des solutions d'IA puissantes."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_it_IT.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_it_IT.json
new file mode 100644
index 000000000000..9e0c46d91339
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_it_IT.json
@@ -0,0 +1,14 @@
+{
+ "title": "Migliora le tue applicazioni con AI Endpoint",
+ "description": "Progettata per semplicità, la nostra piattaforma consente agli sviluppatori di tutti i livelli di competenza di migliorare le proprie applicazioni con API di IA all'avanguardia: non sono necessarie competenze di IA.",
+ "descriptionBis": "Queste API non richiedono competenze di IA o un'infrastruttura dedicata, in quanto la piattaforma serverless consente l'accesso a modelli di IA avanzati, tra cui i modelli di linguaggio (LLMs), l'elaborazione del linguaggio naturale, la traduzione, il riconoscimento vocale, il riconoscimento delle immagini e altro ancora. Gli sviluppatori possono scegliere tra una vasta gamma di modelli, in particolare opzioni open source come Mistral AI, Llama e Stable Diffusion. .",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Guida",
+ "guide1Title": "Iniziare a utilizzare AI Endpoints",
+ "guide1Description": "Scopri AI Endpoints, la piattaforma server sicura di OVHcloud per sviluppatori che permette di accedere ai migliori modelli di Intelligenza Artificiale grazie ad API di facile utilizzo. Non è necessario possedere competenze in IA.",
+ "guide2Title": "Funzionalità, funzionalità e limitazioni",
+ "guide2Description": "Scopri le funzionalità, le funzionalità e le limitazioni attuali di AI Endpoint",
+ "tutoCategory": "Tutorial",
+ "guide3Title": "Casi pratici con AI Endpoints",
+ "guide3Description": "Esplora i tutorial per aggiungere valore alle tue applicazioni con AI Endpoints. Scopri come creare chatbot, integrare LLM o strumenti per potenti soluzioni di IA."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_pl_PL.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_pl_PL.json
new file mode 100644
index 000000000000..4d3ba2ebdf7a
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_pl_PL.json
@@ -0,0 +1,14 @@
+{
+ "title": "Ulepsz swoje aplikacje za pomocą AI Endpoints",
+ "description": "Nasza platforma, zaprojektowana z myślą o prostocie, pozwala programistom o różnych umiejętnościach ulepszać aplikacje za pomocą najnowocześniejszych interfejsów API AI — bez konieczności posiadania specjalistycznej wiedzy w zakresie sztucznej inteligencji.",
+ "descriptionBis": "Interfejsy API nie wymagają wiedzy w zakresie AI ani dedykowanej infrastruktury, ponieważ platforma serverless umożliwia dostęp do zaawansowanych modeli AI, w tym modeli językowych (LLM), przetwarzania języka naturalnego, tłumaczeń, rozpoznawania mowy, rozpoznawania obrazów i wielu innych. Programiści mogą wybierać spośród gamy modeli, w szczególności opcje open source, takie jak Mistral AI, Llama i Stable Diffusion. .",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Przewodnik",
+ "guide1Title": "Pierwsze kroki z AI Endpoints",
+ "guide1Description": "Odkryj AI Endpoints, bezpieczną platformę serwerową OVHcloud dla programistów, która umożliwia dostęp do najlepszych modeli sztucznej inteligencji za pomocą łatwych w użyciu interfejsów API. Doświadczenie w zakresie sztucznej inteligencji nie jest wymagane.",
+ "guide2Title": "Funkcje, możliwości i ograniczenia",
+ "guide2Description": "Poznaj aktualne funkcje, możliwości i ograniczenia rozwiązania AI Endpoints",
+ "tutoCategory": "Dokumentacja",
+ "guide3Title": "Przykłady zastosowania z AI Endpoints",
+ "guide3Description": "Przejrzyj nasze tutoriale, aby wzbogacić Twoje aplikacje za pomocą AI Endpoints. Dowiedz się, jak tworzyć chatbota, integrować LLM lub narzędzia do wydajnych rozwiązań AI."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_pt_PT.json b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_pt_PT.json
new file mode 100644
index 000000000000..4292720f4a1c
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/onboarding/Messages_pt_PT.json
@@ -0,0 +1,14 @@
+{
+ "title": "Melhore as suas aplicações com o AI Endpoints",
+ "description": "Concebida com a simplicidade em mente, a nossa plataforma permite que os programadores de todos os níveis de competência melhorem as suas aplicações com APIs de IA de ponta — sem conhecimentos de IA necessários.",
+ "descriptionBis": "Estas APIs não requerem conhecimentos especializados em IA nem infraestruturas dedicadas, uma vez que a plataforma serverless permite aceder a modelos de IA avançados, nomeadamente os modelos de linguagem (LLMs), o tratamento da linguagem natural, a tradução, o reconhecimento de voz, o reconhecimento de imagens e muito mais. Os programadores podem escolher entre uma gama de modelos, em particular opções em open source como o Mistral AI, o Llama e o Stable Diffusion. .",
+ "goToAiEndpoint": "AI Endpoints",
+ "guideCategory": "Manual",
+ "guide1Title": "Primeiros passos com o AI Endpoints",
+ "guide1Description": "Descubra o AI Endpoints, a plataforma de servidores segura da OVHcloud para programadores que permite aceder aos melhores modelos de inteligência artificial graças a API fáceis de utilizar. Não é necessária qualquer experiência em IA.",
+ "guide2Title": "Funcionalidades, capacidades e limitações",
+ "guide2Description": "Descubra as funcionalidades, capacidades e limitações atuais do AI Endpoints",
+ "tutoCategory": "Tutoriais",
+ "guide3Title": "Casos práticos com o AI Endpoints",
+ "guide3Description": "Explore os nossos tutoriais para enriquecer as suas aplicações com o AI Endpoints. Saiba como criar chatbots, integrar LLMs ou ferramentas para soluções de IA potentes."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_de_DE.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_de_DE.json
new file mode 100644
index 000000000000..1f78f3097d12
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_de_DE.json
@@ -0,0 +1,6 @@
+{
+ "title": "Willkommen bei der UAPP",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Tabs 2",
+ "onboarding": "Onboarding"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_en_GB.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_en_GB.json
new file mode 100644
index 000000000000..16752777f6e5
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_en_GB.json
@@ -0,0 +1,6 @@
+{
+ "title": "Welcome to Uapp",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Table 2",
+ "onboarding": "Onboarding"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_es_ES.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_es_ES.json
new file mode 100644
index 000000000000..49771600c820
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_es_ES.json
@@ -0,0 +1,6 @@
+{
+ "title": "Bienvenido/a a a la aplicación",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Tabs 2",
+ "onboarding": "Acompañamiento inicial"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_fr_CA.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_fr_CA.json
new file mode 100644
index 000000000000..b142b36232e5
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_fr_CA.json
@@ -0,0 +1,6 @@
+{
+ "title": "Bienvenue uapp",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Tabs 2",
+ "onboarding": "Onboarding"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_fr_FR.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_fr_FR.json
new file mode 100644
index 000000000000..b142b36232e5
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_fr_FR.json
@@ -0,0 +1,6 @@
+{
+ "title": "Bienvenue uapp",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Tabs 2",
+ "onboarding": "Onboarding"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_it_IT.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_it_IT.json
new file mode 100644
index 000000000000..30c815d04f60
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_it_IT.json
@@ -0,0 +1,6 @@
+{
+ "title": "Benvenuto in uapp",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Tabs 2",
+ "onboarding": "Onboarding"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_pl_PL.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_pl_PL.json
new file mode 100644
index 000000000000..dc61659d107b
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_pl_PL.json
@@ -0,0 +1,6 @@
+{
+ "title": "Witamy",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Tabela 2",
+ "onboarding": "Onboarding"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_pt_PT.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_pt_PT.json
new file mode 100644
index 000000000000..47a49c099930
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/Messages_pt_PT.json
@@ -0,0 +1,6 @@
+{
+ "title": "Bem-vindo uapp",
+ "crumb": "AI-Endpoints",
+ "tabs_2": "Quadro 2",
+ "onboarding": "Integração"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_de_DE.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_de_DE.json
new file mode 100644
index 000000000000..bf0fba32976b
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_de_DE.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Oops...!",
+ "manager_error_page_button_cancel": "Abbrechen",
+ "manager_error_page_detail_code": "Fehlercode: ",
+ "manager_error_page_action_reload_label": "Erneut versuchen",
+ "manager_error_page_action_home_label": "Zurück zur Startseite",
+ "manager_error_page_default": "Beim Laden der Seite ist ein Fehler aufgetreten."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_en_GB.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_en_GB.json
new file mode 100644
index 000000000000..b17691e2bc6d
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_en_GB.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Oops!",
+ "manager_error_page_button_cancel": "Cancel",
+ "manager_error_page_detail_code": "Error code: ",
+ "manager_error_page_action_reload_label": "Try again",
+ "manager_error_page_action_home_label": "Back to homepage",
+ "manager_error_page_default": "An error has occurred loading the page."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_es_ES.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_es_ES.json
new file mode 100644
index 000000000000..02cb3fbb1a80
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_es_ES.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "¡Vaya!",
+ "manager_error_page_button_cancel": "Cancelar",
+ "manager_error_page_detail_code": "Código de error: ",
+ "manager_error_page_action_reload_label": "Volver a intentarlo",
+ "manager_error_page_action_home_label": "Volver a la página de inicio",
+ "manager_error_page_default": "Se ha producido un error al cargar la página"
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_fr_CA.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_fr_CA.json
new file mode 100644
index 000000000000..2c575c63588e
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_fr_CA.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Oops …!",
+ "manager_error_page_button_cancel": "Annuler",
+ "manager_error_page_detail_code": "Code d'erreur : ",
+ "manager_error_page_action_reload_label": "Réessayer",
+ "manager_error_page_action_home_label": "Retour à la page d'accueil",
+ "manager_error_page_default": "Une erreur est survenue lors du chargement de la page."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_fr_FR.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_fr_FR.json
new file mode 100644
index 000000000000..2c575c63588e
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_fr_FR.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Oops …!",
+ "manager_error_page_button_cancel": "Annuler",
+ "manager_error_page_detail_code": "Code d'erreur : ",
+ "manager_error_page_action_reload_label": "Réessayer",
+ "manager_error_page_action_home_label": "Retour à la page d'accueil",
+ "manager_error_page_default": "Une erreur est survenue lors du chargement de la page."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_it_IT.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_it_IT.json
new file mode 100644
index 000000000000..ce0517c42dde
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_it_IT.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Ops!",
+ "manager_error_page_button_cancel": "Annulla",
+ "manager_error_page_detail_code": "Codice di errore: ",
+ "manager_error_page_action_reload_label": "Riprova",
+ "manager_error_page_action_home_label": "Torna alla home page",
+ "manager_error_page_default": "Si è verificato un errore durante il caricamento della pagina."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_pl_PL.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_pl_PL.json
new file mode 100644
index 000000000000..6fc5dc1b135d
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_pl_PL.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Ups ...!",
+ "manager_error_page_button_cancel": "Anuluj",
+ "manager_error_page_detail_code": "Kod błędu: ",
+ "manager_error_page_action_reload_label": "Spróbuj ponownie",
+ "manager_error_page_action_home_label": "Powrót do strony głównej",
+ "manager_error_page_default": "Wystąpił błąd podczas ładowania strony."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_pt_PT.json b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_pt_PT.json
new file mode 100644
index 000000000000..1edd72c0f09a
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/public/translations/pci-ai-endpoints/error/Messages_pt_PT.json
@@ -0,0 +1,8 @@
+{
+ "manager_error_page_title": "Oops!",
+ "manager_error_page_button_cancel": "Anular",
+ "manager_error_page_detail_code": "Código de erro: ",
+ "manager_error_page_action_reload_label": "Tentar novamente",
+ "manager_error_page_action_home_label": "Voltar à página inicial",
+ "manager_error_page_default": "Ocorreu um erro aquando do carregamento da página."
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/src/App.tsx b/packages/manager/apps/pci-ai-endpoints/src/App.tsx
new file mode 100644
index 000000000000..9bedb39c2cae
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/src/App.tsx
@@ -0,0 +1,35 @@
+import React, { useEffect, useContext } from 'react';
+import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
+import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import { odsSetup } from '@ovhcloud/ods-common-core';
+import { ShellContext } from '@ovh-ux/manager-react-shell-client';
+import { RouterProvider, createHashRouter } from 'react-router-dom';
+import { Routes } from './routes/routes';
+
+odsSetup();
+
+const queryClient = new QueryClient({
+ defaultOptions: {
+ queries: {
+ staleTime: 300_000,
+ },
+ },
+});
+
+function App() {
+ const { shell } = useContext(ShellContext);
+ const router = createHashRouter(Routes);
+
+ useEffect(() => {
+ shell.ux.hidePreloader();
+ }, []);
+
+ return (
+
+
+
+
+ );
+}
+
+export default App;
diff --git a/packages/manager/apps/pci-ai-endpoints/src/assets/error-banner-oops.png b/packages/manager/apps/pci-ai-endpoints/src/assets/error-banner-oops.png
new file mode 100644
index 000000000000..413028afad19
Binary files /dev/null and b/packages/manager/apps/pci-ai-endpoints/src/assets/error-banner-oops.png differ
diff --git a/packages/manager/apps/pci-ai-endpoints/src/components/Breadcrumb/Breadcrumb.tsx b/packages/manager/apps/pci-ai-endpoints/src/components/Breadcrumb/Breadcrumb.tsx
new file mode 100644
index 000000000000..9148cf670135
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/src/components/Breadcrumb/Breadcrumb.tsx
@@ -0,0 +1,31 @@
+import React from 'react';
+import { OsdsBreadcrumb } from '@ovhcloud/ods-components/react';
+import { useParams } from 'react-router-dom';
+import { useProject } from '@ovh-ux/manager-pci-common';
+import {
+ usePciBreadcrumb,
+ BreadcrumbItem,
+} from '@/hooks/breadcrumb/useBreadcrumb';
+import appConfig from '@/pci-ai-endpoints.config';
+
+export interface BreadcrumbProps {
+ customRootLabel?: string;
+ appName?: string;
+ items?: BreadcrumbItem[];
+}
+
+function Breadcrumb({ customRootLabel }: BreadcrumbProps): JSX.Element {
+ const label = customRootLabel || appConfig.rootLabel;
+
+ const { projectId } = useParams();
+ const { data: project } = useProject();
+
+ const breadcrumbPci = usePciBreadcrumb({
+ projectId,
+ appName: 'AI-Endpoints',
+ });
+
+ return ;
+}
+
+export default Breadcrumb;
diff --git a/packages/manager/apps/pci-ai-endpoints/src/components/Error/Error.scss b/packages/manager/apps/pci-ai-endpoints/src/components/Error/Error.scss
new file mode 100644
index 000000000000..c73220cd3be3
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/src/components/Error/Error.scss
@@ -0,0 +1,18 @@
+.manager-error-page {
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 600px;
+ width: 100%;
+ display: grid;
+ height: 100%;
+ overflow: hidden;
+ .manager-error-page-image {
+ img {
+ width: 100%;
+ }
+ }
+ .manager-error-page-footer {
+ text-align: right;
+ overflow: hidden;
+ }
+}
diff --git a/packages/manager/apps/pci-ai-endpoints/src/components/Error/Error.tsx b/packages/manager/apps/pci-ai-endpoints/src/components/Error/Error.tsx
new file mode 100644
index 000000000000..f3c146ce05c2
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/src/components/Error/Error.tsx
@@ -0,0 +1,52 @@
+import React from 'react';
+import { useLocation, useNavigate } from 'react-router-dom';
+import { ShellContext } from '@ovh-ux/manager-react-shell-client';
+import {
+ ErrorMessage,
+ TRACKING_LABELS,
+ ErrorBanner,
+} from '@ovh-ux/manager-react-components';
+
+interface ErrorObject {
+ [key: string]: any;
+}
+
+function getTrackingTypology(error: ErrorMessage) {
+ if (error?.detail?.status && Math.floor(error.detail.status / 100) === 4) {
+ return [401, 403].includes(error.detail.status)
+ ? TRACKING_LABELS.UNAUTHORIZED
+ : TRACKING_LABELS.SERVICE_NOT_FOUND;
+ }
+ return TRACKING_LABELS.PAGE_LOAD;
+}
+
+const Errors: React.FC = ({ error }) => {
+ const navigate = useNavigate();
+ const location = useLocation();
+ const { shell } = React.useContext(ShellContext);
+ const { tracking, environment } = shell;
+ const env = environment.getEnvironment();
+
+ React.useEffect(() => {
+ env.then((response) => {
+ const { applicationName } = response;
+ const name = `errors::${getTrackingTypology(error)}::${applicationName}`;
+ tracking.trackPage({
+ name,
+ level2: '81',
+ type: 'navigation',
+ page_category: location.pathname,
+ });
+ });
+ }, []);
+
+ return (
+ navigate(location.pathname, { replace: true })}
+ onRedirectHome={() => navigate('/', { replace: true })}
+ />
+ );
+};
+
+export default Errors;
diff --git a/packages/manager/apps/pci-ai-endpoints/src/components/Loading/Loading.tsx b/packages/manager/apps/pci-ai-endpoints/src/components/Loading/Loading.tsx
new file mode 100644
index 000000000000..1f8e45b3d2ed
--- /dev/null
+++ b/packages/manager/apps/pci-ai-endpoints/src/components/Loading/Loading.tsx
@@ -0,0 +1,12 @@
+import React from 'react';
+import { OsdsSpinner } from '@ovhcloud/ods-components/react';
+
+export default function Loading() {
+ return (
+