From 8d35da1972fd987c77da6c14710b709879d1fa19 Mon Sep 17 00:00:00 2001 From: egutierrez Date: Thu, 8 May 2025 23:31:05 +0200 Subject: [PATCH] feat: Add GridDashboard component and update routing; replace Prueba_appshell with Grid_Dashboard --- frontend/package-lock.json | 60 +++++- frontend/package.json | 1 + frontend/src/Router.tsx | 6 +- frontend/src/components/Appshell/Appshell.tsx | 7 +- frontend/src/components/Grid_dashboard.tsx | 114 +++++++++++ frontend/src/data/submenuLinks_1.ts | 2 +- frontend/src/pages/Grid_dashboard.tsx | 14 ++ frontend/src/pages/Prueba_appshell.tsx | 12 -- frontend/yarn.lock | 36 +++- github_tutorial.ipynb | 187 ++++++++++++++++++ 10 files changed, 412 insertions(+), 27 deletions(-) create mode 100644 frontend/src/components/Grid_dashboard.tsx create mode 100644 frontend/src/pages/Grid_dashboard.tsx delete mode 100644 frontend/src/pages/Prueba_appshell.tsx create mode 100644 github_tutorial.ipynb diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 77452e0..e0d9c2a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15,6 +15,7 @@ "@tabler/icons-react": "^3.31.0", "react": "^19.1.0", "react-dom": "^19.1.0", + "react-rnd": "^10.5.2", "react-router-dom": "^7.4.0" }, "devDependencies": { @@ -6268,7 +6269,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -6513,7 +6513,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -6842,7 +6841,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7531,7 +7529,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -7543,7 +7540,6 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, "license": "MIT" }, "node_modules/proxy-addr": { @@ -7633,6 +7629,16 @@ "node": ">= 0.8" } }, + "node_modules/re-resizable": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz", + "integrity": "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", @@ -7699,6 +7705,29 @@ "react": "^19.1.0" } }, + "node_modules/react-draggable": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz", + "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-draggable/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -7794,6 +7823,27 @@ } } }, + "node_modules/react-rnd": { + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/react-rnd/-/react-rnd-10.5.2.tgz", + "integrity": "sha512-0Tm4x7k7pfHf2snewJA8x7Nwgt3LV+58MVEWOVsFjk51eYruFEa6Wy7BNdxt4/lH0wIRsu7Gm3KjSXY2w7YaNw==", + "license": "MIT", + "dependencies": { + "re-resizable": "6.11.2", + "react-draggable": "4.4.6", + "tslib": "2.6.2" + }, + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/react-rnd/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, "node_modules/react-router": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.3.tgz", diff --git a/frontend/package.json b/frontend/package.json index 32c939f..92d8500 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,6 +27,7 @@ "@tabler/icons-react": "^3.31.0", "react": "^19.1.0", "react-dom": "^19.1.0", + "react-rnd": "^10.5.2", "react-router-dom": "^7.4.0" }, "devDependencies": { diff --git a/frontend/src/Router.tsx b/frontend/src/Router.tsx index 4d89c9b..17c75e2 100644 --- a/frontend/src/Router.tsx +++ b/frontend/src/Router.tsx @@ -2,7 +2,7 @@ import { createBrowserRouter, RouterProvider } from 'react-router-dom'; import { HomePage } from './pages/Home.page'; import { Consulta_API } from './pages/Consulta_api'; import { Error_404 } from './pages/404'; // Ajusta si está en otra carpeta -import { Prueba_appshell } from './pages/Prueba_appshell'; // Ajusta si está en otra carpeta +import { Grid_Dashboard } from './pages/Grid_dashboard'; // Ajusta si está en otra carpeta const router = createBrowserRouter([ { @@ -14,8 +14,8 @@ const router = createBrowserRouter([ element: , }, { - path: '/prueba_appshell', - element: , + path: '/Grid_Dashboard', + element: , }, { path: '*', diff --git a/frontend/src/components/Appshell/Appshell.tsx b/frontend/src/components/Appshell/Appshell.tsx index e18eb90..bd0d0f5 100644 --- a/frontend/src/components/Appshell/Appshell.tsx +++ b/frontend/src/components/Appshell/Appshell.tsx @@ -9,13 +9,12 @@ import { Title, } from '@mantine/core'; - import { default as LogoIcon } from '../../assets/icons/favicon'; // ruta relativa ajusta según tu estructura + import { default as LogoIcon } from '../../assets/icons/favicon'; import { useMantineTheme } from '@mantine/core'; - import { mainLinksdata } from '../../data/navigationsLinks_1'; // ajusta la ruta - import { submenuLinks } from '../../data/submenuLinks_1'; // ajusta la ruta según tu estructura - + import { mainLinksdata } from '../../data/navigationsLinks_1'; + import { submenuLinks } from '../../data/submenuLinks_1'; import { useDisclosure, useMediaQuery } from '@mantine/hooks'; import { useEffect, useMemo, useState } from 'react'; diff --git a/frontend/src/components/Grid_dashboard.tsx b/frontend/src/components/Grid_dashboard.tsx new file mode 100644 index 0000000..5a1814e --- /dev/null +++ b/frontend/src/components/Grid_dashboard.tsx @@ -0,0 +1,114 @@ +import { Card, Text, Switch, Group, useMantineTheme, useComputedColorScheme } from '@mantine/core'; +import { Rnd } from 'react-rnd'; +import { useState } from 'react'; + +const GRID_SIZE = 30; + +function hexToRgba(hex: string, alpha: number): string { + const sanitized = hex.replace('#', ''); + const bigint = parseInt(sanitized, 16); + + const r = (bigint >> 16) & 255; + const g = (bigint >> 8) & 255; + const b = bigint & 255; + + return `rgba(${r}, ${g}, ${b}, ${alpha})`; +} + +interface CardData { + id: string; + x: number; + y: number; + width: number; + height: number; +} + +const initialCards: CardData[] = [ + { id: '1', x: 0, y: 0, width: GRID_SIZE * 2, height: GRID_SIZE * 2 }, + { id: '2', x: GRID_SIZE * 2, y: 0, width: GRID_SIZE * 3, height: GRID_SIZE * 2 }, + { id: '3', x: GRID_SIZE * 3, y: 0, width: GRID_SIZE * 3, height: GRID_SIZE * 2 }, +]; + +export const GridDashboard = () => { + const theme = useMantineTheme(); + const colorScheme = useComputedColorScheme(); // ✅ directamente 'light' o 'dark' + const isDark = colorScheme === 'dark'; + + // Color de la rejilla adaptado al modo del tema + const gridBaseColor = isDark ? theme.colors.dark[4] : theme.colors.gray[3]; + const gridColor = hexToRgba(gridBaseColor, 0.25); // Ajusta la opacidad aquí + + const [cards, setCards] = useState(initialCards); + const [showGrid, setShowGrid] = useState(true); + + const updateCard = (id: string, updates: Partial) => { + setCards((prev) => + prev.map((card) => (card.id === id ? { ...card, ...updates } : card)) + ); + }; + + return ( + <> + + setShowGrid(event.currentTarget.checked)} + label="Mostrar cuadrícula" + /> + + +
+ {cards.map((card) => ( + + updateCard(card.id, { + x: Math.round(d.x / GRID_SIZE) * GRID_SIZE, + y: Math.round(d.y / GRID_SIZE) * GRID_SIZE, + }) + } + onResizeStop={(_, __, ref, ___, pos) => + updateCard(card.id, { + width: Math.round(ref.offsetWidth / GRID_SIZE) * GRID_SIZE, + height: Math.round(ref.offsetHeight / GRID_SIZE) * GRID_SIZE, + x: Math.round(pos.x / GRID_SIZE) * GRID_SIZE, + y: Math.round(pos.y / GRID_SIZE) * GRID_SIZE, + }) + } + > + + Card {card.id} + Mueve o redimensiona + + + ))} +
+ + ); +}; diff --git a/frontend/src/data/submenuLinks_1.ts b/frontend/src/data/submenuLinks_1.ts index 582fe2f..d653bdc 100644 --- a/frontend/src/data/submenuLinks_1.ts +++ b/frontend/src/data/submenuLinks_1.ts @@ -4,7 +4,7 @@ export const submenuLinks = { Home: [ { label: 'Inicio', to: '/' }, { label: 'Consulta Api', to: '/Consulta_API' }, - { label: 'Prueba_appshell', to: '/prueba_appshell' }, + { label: 'Grid_Dashboard', to: '/Grid_Dashboard' }, ], Dashboard: [ { label: 'Resumen', to: '/dashboard/resumen' }, diff --git a/frontend/src/pages/Grid_dashboard.tsx b/frontend/src/pages/Grid_dashboard.tsx new file mode 100644 index 0000000..ceae3ad --- /dev/null +++ b/frontend/src/pages/Grid_dashboard.tsx @@ -0,0 +1,14 @@ +import { Grid } from '@mantine/core'; +import { AppShellWithMenu } from '../components/Appshell/Appshell'; +import { GridDashboard } from '../components/Grid_dashboard'; + +export function Grid_Dashboard() { + return ( + + + + + + + ); +} \ No newline at end of file diff --git a/frontend/src/pages/Prueba_appshell.tsx b/frontend/src/pages/Prueba_appshell.tsx deleted file mode 100644 index a5af18c..0000000 --- a/frontend/src/pages/Prueba_appshell.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { AppShellWithMenu } from '../components/Appshell/Appshell'; - -export function Prueba_appshell() { - return ( - - - - - - - ); -} \ No newline at end of file diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 7049e6d..268c12a 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1419,6 +1419,11 @@ check-error@^2.1.1: resolved "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz" integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + clsx@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" @@ -3613,6 +3618,11 @@ raw-body@^3.0.0: iconv-lite "0.6.3" unpipe "1.0.0" +re-resizable@6.11.2: + version "6.11.2" + resolved "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz" + integrity sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A== + react-docgen-typescript@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz" @@ -3634,13 +3644,21 @@ react-docgen@^7.0.0: resolve "^1.22.1" strip-indent "^4.0.0" -"react-dom@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom@^18.0.0 || ^19.0.0", "react-dom@^18.x || ^19.x", react-dom@^19.0.0, react-dom@^19.1.0, react-dom@>=16.13, react-dom@>=16.8.0, react-dom@>=18: +"react-dom@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom@^18.0.0 || ^19.0.0", "react-dom@^18.x || ^19.x", react-dom@^19.0.0, react-dom@^19.1.0, "react-dom@>= 16.3.0", react-dom@>=16.13, react-dom@>=16.3.0, react-dom@>=16.8.0, react-dom@>=18: version "19.1.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz" integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g== dependencies: scheduler "^0.26.0" +react-draggable@4.4.6: + version "4.4.6" + resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz" + integrity sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw== + dependencies: + clsx "^1.1.1" + prop-types "^15.8.1" + react-is@^16.13.1: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" @@ -3687,6 +3705,15 @@ react-remove-scroll@^2.6.2: use-callback-ref "^1.3.3" use-sidecar "^1.1.3" +react-rnd@^10.5.2: + version "10.5.2" + resolved "https://registry.npmjs.org/react-rnd/-/react-rnd-10.5.2.tgz" + integrity sha512-0Tm4x7k7pfHf2snewJA8x7Nwgt3LV+58MVEWOVsFjk51eYruFEa6Wy7BNdxt4/lH0wIRsu7Gm3KjSXY2w7YaNw== + dependencies: + re-resizable "6.11.2" + react-draggable "4.4.6" + tslib "2.6.2" + react-router-dom@^7.4.0: version "7.5.3" resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.3.tgz" @@ -3725,7 +3752,7 @@ react-use-measure@^2.1.7: resolved "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.7.tgz" integrity sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg== -"react@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react@^18.0.0 || ^19.0.0", "react@^18.x || ^19.x", react@^19.0.0, react@^19.1.0, "react@>= 16", react@>=16.13, react@>=16.8.0, react@>=17.0, react@>=18, react@>=18.0.0: +"react@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react@^18.0.0 || ^19.0.0", "react@^18.x || ^19.x", react@^19.0.0, react@^19.1.0, "react@>= 16", "react@>= 16.3.0", react@>=16.13, react@>=16.3.0, react@>=16.8.0, react@>=17.0, react@>=18, react@>=18.0.0: version "19.1.0" resolved "https://registry.npmjs.org/react/-/react-19.1.0.tgz" integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg== @@ -4535,6 +4562,11 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== +tslib@2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + turbo-stream@2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz" diff --git a/github_tutorial.ipynb b/github_tutorial.ipynb new file mode 100644 index 0000000..ae8e232 --- /dev/null +++ b/github_tutorial.ipynb @@ -0,0 +1,187 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "b02bfb00", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Your branch is up to date with 'origin/main'.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Switched to branch 'main'\n" + ] + } + ], + "source": [ + "!git checkout main" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "92d482e6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Updating 234639a..20173e9\n", + "Fast-forward\n", + " .gitignore | 11 +\n", + " Apikeys.ipynb | 128 +--\n", + " {llms/MCPs => backend}/__init__.py | 0\n", + " {llms/Modelos => backend/api}/__init__.py | 0\n", + " {llms => backend/api/v1}/__init__.py | 0\n", + " backend/api/v1/endpoints/ping.py | 9 +\n", + " backend/api/v1/router.py | 7 +\n", + " {security => backend/deps}/__init__.py | 0\n", + " backend/deps/auth.py | 0\n", + " backend/main.py | 24 +\n", + " data/files/txt/tree.txt | 980 +++++++++++++++++++++\n", + " entrypoint/init_db.py | 2 +-\n", + " frontend/.gitignore | 3 +\n", + " frontend/index.html | 4 +-\n", + " frontend/package-lock.json | 345 ++++++++\n", + " frontend/package.json | 2 +\n", + " frontend/src/assets/icons/favicon.svg | 55 ++\n", + " frontend/src/assets/icons/favicon.tsx | 37 +\n", + " frontend/src/assets/icons/index.ts | 18 +\n", + " .../components/{ => Appshell}/Appshell.module.css | 25 +-\n", + " .../src/components/{ => Appshell}/Appshell.tsx | 97 +-\n", + " frontend/src/components/HoloShader.tsx | 30 +-\n", + " frontend/src/components/Links/MainlLinks.tsx | 0\n", + " frontend/src/components/LlamadorAPI.tsx | 11 +-\n", + " frontend/src/components/MetodoSelect.tsx | 4 +-\n", + " frontend/src/components/Welcome/Welcome.tsx | 6 +-\n", + " frontend/src/components/botoncito.tsx | 16 -\n", + " frontend/src/data/navigationsLinks_1.ts | 20 +\n", + " frontend/src/data/submenuLinks_1.ts | 35 +\n", + " frontend/src/favicon.svg | 1 -\n", + " frontend/src/pages/404.tsx | 55 +-\n", + " frontend/src/pages/Analitica.tsx | 6 +-\n", + " frontend/src/pages/Consulta_api.tsx | 4 +-\n", + " frontend/src/pages/Home.page.tsx | 12 +-\n", + " frontend/src/pages/Plantilla.tsx | 2 +-\n", + " frontend/src/pages/Prueba_appshell.tsx | 7 +-\n", + " frontend/src/theme.ts | 57 +-\n", + " frontend/src/types/svg.d.ts | 7 +\n", + " frontend/src/types/vite-env.d.ts | 1 +\n", + " frontend/tsconfig.json | 2 +-\n", + " frontend/{vite.config.mjs => vite.config.js} | 5 +-\n", + " frontend/yarn.lock | 160 +++-\n", + " llms/Agente.py | 122 ---\n", + " llms/Modelos/Openai_model.py | 64 --\n", + " main.py | 25 +-\n", + " prueba_loop_agente.py | 94 +-\n", + " src/ApiKeys/openai_apikey_mmr.py | 2 +-\n", + " src/ConexionApis/OpenAi_conexion.py | 15 +-\n", + " src/Credenciales/postgres_credencial_mmr.py | 2 +-\n", + " src/Llms/Agente.py | 196 +++++\n", + " {llms => src/Llms}/MCPs/MCPStdioServer.py | 0\n", + " src/Llms/MCPs/__init__.py | 0\n", + " {llms => src/Llms}/Memory/Base_MemoryConv.py | 0\n", + " {llms => src/Llms}/Memory/postgres_MemoryConv.py | 2 +-\n", + " {llms => src/Llms}/Modelos/Base_model.py | 2 +-\n", + " src/Llms/Modelos/Openai_model.py | 82 ++\n", + " {llms => src/Llms}/Modelos/Openai_model_mmr.py | 2 +-\n", + " src/Llms/Modelos/__init__.py | 0\n", + " src/Llms/__init__.py | 0\n", + " {security => src/Security}/Encriptar.py | 0\n", + " src/Security/__init__.py | 0\n", + " 61 files changed, 2343 insertions(+), 453 deletions(-)\n", + " rename {llms/MCPs => backend}/__init__.py (100%)\n", + " rename {llms/Modelos => backend/api}/__init__.py (100%)\n", + " rename {llms => backend/api/v1}/__init__.py (100%)\n", + " create mode 100644 backend/api/v1/endpoints/ping.py\n", + " create mode 100644 backend/api/v1/router.py\n", + " rename {security => backend/deps}/__init__.py (100%)\n", + " create mode 100644 backend/deps/auth.py\n", + " create mode 100644 backend/main.py\n", + " create mode 100644 frontend/src/assets/icons/favicon.svg\n", + " create mode 100644 frontend/src/assets/icons/favicon.tsx\n", + " create mode 100644 frontend/src/assets/icons/index.ts\n", + " rename frontend/src/components/{ => Appshell}/Appshell.module.css (82%)\n", + " rename frontend/src/components/{ => Appshell}/Appshell.tsx (62%)\n", + " create mode 100644 frontend/src/components/Links/MainlLinks.tsx\n", + " delete mode 100644 frontend/src/components/botoncito.tsx\n", + " create mode 100644 frontend/src/data/navigationsLinks_1.ts\n", + " create mode 100644 frontend/src/data/submenuLinks_1.ts\n", + " delete mode 100644 frontend/src/favicon.svg\n", + " create mode 100644 frontend/src/types/svg.d.ts\n", + " create mode 100644 frontend/src/types/vite-env.d.ts\n", + " rename frontend/{vite.config.mjs => vite.config.js} (74%)\n", + " delete mode 100644 llms/Agente.py\n", + " delete mode 100644 llms/Modelos/Openai_model.py\n", + " create mode 100644 src/Llms/Agente.py\n", + " rename {llms => src/Llms}/MCPs/MCPStdioServer.py (100%)\n", + " create mode 100644 src/Llms/MCPs/__init__.py\n", + " rename {llms => src/Llms}/Memory/Base_MemoryConv.py (100%)\n", + " rename {llms => src/Llms}/Memory/postgres_MemoryConv.py (97%)\n", + " rename {llms => src/Llms}/Modelos/Base_model.py (95%)\n", + " create mode 100644 src/Llms/Modelos/Openai_model.py\n", + " rename {llms => src/Llms}/Modelos/Openai_model_mmr.py (97%)\n", + " create mode 100644 src/Llms/Modelos/__init__.py\n", + " create mode 100644 src/Llms/__init__.py\n", + " rename {security => src/Security}/Encriptar.py (100%)\n", + " create mode 100644 src/Security/__init__.py\n" + ] + } + ], + "source": [ + "!git merge cambios_frontend\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "91a704a5", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "remote: . Processing 1 references \n", + "remote: Processed 1 references in total \n", + "To http://10.8.0.6:3123/egutierrez/Fitz_Studio.git\n", + " 234639a..20173e9 main -> main\n" + ] + } + ], + "source": [ + "!git push origin main" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}