Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 25 additions & 17 deletions frontend/docker/production/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,33 +1,41 @@
# Use an official Node.js runtime as the base image
FROM node:21.1-slim
# Node 21 ya no tiene soporte y causa conflictos.
FROM node:22-slim

ENV http_proxy http://proxy.int.local:3128
ENV https_proxy http://proxy.int.local:3128
# 2. Definimos las variables de entorno del proxy (Mayúsculas y minúsculas)
# Es buena práctica poner ambas para asegurar compatibilidad con todas las herramientas.
ENV http_proxy=http://proxy.int.local:3128
ENV https_proxy=http://proxy.int.local:3128
ENV HTTP_PROXY=http://proxy.int.local:3128
ENV HTTPS_PROXY=http://proxy.int.local:3128

# Set the working directory in the container
WORKDIR /usr/src/client

# Copy the rest of the application source code to the container
# 3. Instalamos libvips a nivel de sistema operativo
# Esto es CRUCIAL. Al instalar esto, 'sharp' detectará que ya existe
# y NO intentará descargar el binario que está fallando en tu proxy.
RUN apt-get update && apt-get install -y \
libvips-dev \
python3 \
make \
g++ \
&& rm -rf /var/lib/apt/lists/*

COPY . .

# Configuramos npm proxy también (aunque las ENV deberían bastar, esto refuerza)
RUN npm config set proxy http://proxy.int.local:3128 && \
npm config set https-proxy http://proxy.int.local:3128

# Install Node.js dependencies
RUN npm install

# RUN npm uninstall bcrypt
# 4. Instalamos dependencias
# --no-audit acelera la instalación detrás de proxys
RUN npm install --no-audit

# RUN npm install bcrypt

# Build your application
# Build de la aplicación
RUN npm run build

# Install serve

# Instalar serve globalmente
RUN npm install -g serve

EXPOSE 5173

# Specify the command to start your React app
CMD [ "serve", "-s", "dist", "-l", "5173" ]
CMD [ "serve", "-s", "dist", "-l", "5173" ]
2 changes: 1 addition & 1 deletion frontend/src/modules/harvey/components/ChatTranscript.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ function ChatTranscript({ messages, isLoading, promptPresets = [], onPresetSelec
Welcome to H.A.R.V.E.Y.
</Typography>
<Typography variant="body1" sx={{ color: grey[600] }}>
Your AI assistant for pricing intelligence and optimal subscription recommendations.
Enabling seamless execution of the Pricing Intelligence Interpretation Process.
</Typography>
</Box>
{promptPresets.length > 0 && onPresetSelect && (
Expand Down
3 changes: 3 additions & 0 deletions frontend/src/modules/harvey/components/ContextManager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ function ContextManager({ items, detectedUrls, onAdd, onRemove, onClear }: Props
<Typography variant="body2" sx={{ color: grey[600] }}>
Add URLs or YAML exports to ground H.A.R.V.E.Y.'s answers.
</Typography>
<Alert severity="info" sx={{ mt: 1 }}>
All pricings detected or added via URL will be modeled automatically; this process can take up to 30–60 minutes.
</Alert>
</Box>
<Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
<Typography variant="body2" sx={{ color: grey[600] }}>
Expand Down
12 changes: 6 additions & 6 deletions frontend/src/modules/harvey/prompts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import type { PromptPreset } from './types/types';
export const PROMPT_PRESETS: PromptPreset[] = [
{
id: 'overleaf-optimal-plan',
label: 'Find best value plan with GitHub integration',
description: 'Find the most affordable Overleaf plan that includes GitHub integration and document history.',
label: 'Find the cheapest Overleaf subscription that includes certain features',
description: 'Find the most affordable Overleaf configuration available to establish a subscription that includes GitHub integration and document history.',
question:
'Using the Overleaf pricing, what is the cheapest plan that bundles GitHub integration and the full document history? Compare it with the more expensive tiers.',
'Using the Overleaf pricing, what is the cheapest configuration that bundles GitHub integration and the full document history? Compare it with the more expensive tiers.',
context: [
{
kind: 'yaml',
Expand All @@ -20,10 +20,10 @@ export const PROMPT_PRESETS: PromptPreset[] = [
},
{
id: 'overleaf-seat-limits',
label: 'Compare collaborator limits across plans',
description: 'Summarise the collaborator capacity per Overleaf plan and highlight the maximum.',
label: 'Compare usage limits across Overleaf pricing',
description: 'Compare the collaborator capacity per Overleaf configuration and highlight the maximum.',
question:
'From the Overleaf pricing file, list each plan with its collaborator limit and indicate which plan allows the highest number of collaborators.',
'From the Overleaf pricing, list each plan with its collaborator limit and indicate which plan allows the highest number of collaborators.',
context: [
{
kind: 'yaml',
Expand Down
Loading