fixed the dockerfile

This commit is contained in:
2026-06-01 16:23:15 +05:30
parent 0a9bbe6b6f
commit dd6ccf1141
4 changed files with 29 additions and 10 deletions

View File

@@ -47,13 +47,14 @@ services:
# Self-hosted Rivet engine. The backend's Rivet Kit client connects here. # Self-hosted Rivet engine. The backend's Rivet Kit client connects here.
# The unified user agent runs as a durable Rivet actor (changes.md §5). # The unified user agent runs as a durable Rivet actor (changes.md §5).
rivet-engine: rivet-engine:
image: rivetgg/engine:latest image: rivetdev/engine:latest
container_name: growqr-rivet container_name: growqr-rivet
ports: ports:
- "6420:6420" # API - "6420:6420" # API
- "6421:6421" # Guard/edge - "6421:6421" # Guard/edge
environment: environment:
RIVET__AUTH__ADMIN_TOKEN: ${RIVET_ADMIN_TOKEN:-dev-admin-token} RIVET__AUTH__ADMIN_TOKEN: ${RIVET_ADMIN_TOKEN:-dev-admin-token}
RIVET__FILE_SYSTEM__PATH: /data
volumes: volumes:
- rivet-data:/data - rivet-data:/data
restart: unless-stopped restart: unless-stopped

View File

@@ -58,8 +58,10 @@ export const config = {
process.env.RESUME_SERVICE_URL ?? "http://localhost:8002", process.env.RESUME_SERVICE_URL ?? "http://localhost:8002",
matchmakingServiceUrl: matchmakingServiceUrl:
process.env.MATCHMAKING_SERVICE_URL ?? "http://localhost:8006", process.env.MATCHMAKING_SERVICE_URL ?? "http://localhost:8006",
growqrAppFrontendUrl: workflowsDashboardUrl:
process.env.GROWQR_APP_FRONTEND_URL ?? "http://localhost:3002", process.env.WORKFLOWS_DASHBOARD_URL ??
process.env.FRONTEND_ORIGIN ??
"http://localhost:3000",
// ── Central Gitea (one org-wide instance, changes.md §2A) ── // ── Central Gitea (one org-wide instance, changes.md §2A) ──
giteaUrl: process.env.GITEA_URL ?? "http://127.0.0.1:3001", giteaUrl: process.env.GITEA_URL ?? "http://127.0.0.1:3001",

View File

@@ -245,7 +245,16 @@ export function chatRoutes() {
{ userId, goal: String(toolCall.arguments.goal ?? "general") }, { userId, goal: String(toolCall.arguments.goal ?? "general") },
); );
if (toolResult.status === "ok") { if (toolResult.status === "ok") {
sessions.push({ moduleId: "resume", moduleName: "Resume Agent", status: "done", summary: toolResult.summary }); const detail = toolResult.detail as Record<string, unknown> | undefined;
sessions.push({
moduleId: "resume",
moduleName: "Resume Agent",
status: "done",
sessionUrl: typeof detail?.ui_session_url === "string"
? detail.ui_session_url
: buildServiceSessionUrl("resume-service", detail, String(toolCall.arguments.goal ?? "general")),
summary: toolResult.summary,
});
} }
break; break;
} }

View File

@@ -28,23 +28,29 @@ export function buildServiceSessionUrl(
detail: Record<string, unknown> | undefined, detail: Record<string, unknown> | undefined,
goal?: string, goal?: string,
): string | undefined { ): string | undefined {
const base = config.workflowsDashboardUrl.replace(/\/$/, "");
const sessionId = detail?.session_id ?? detail?.sessionId; const sessionId = detail?.session_id ?? detail?.sessionId;
if (!sessionId || typeof sessionId !== "string") return undefined; const params = new URLSearchParams();
if (sessionId && typeof sessionId === "string") params.set("session_id", sessionId);
const base = config.growqrAppFrontendUrl.replace(/\/$/, "");
const params = new URLSearchParams({ session_id: sessionId });
if (goal) params.set("goal", goal); if (goal) params.set("goal", goal);
if (service === "interview-service") { if (service === "interview-service") {
if (!sessionId || typeof sessionId !== "string") return undefined;
params.set("role", String(detail?.target_role ?? goal ?? "Interview practice")); params.set("role", String(detail?.target_role ?? goal ?? "Interview practice"));
params.set("type", String(detail?.interview_type ?? "behavioral")); params.set("type", String(detail?.interview_type ?? "behavioral"));
return `${base}/service-sessions/interview?${params.toString()}`; return `${base}/v2/service-sessions/interview?${params.toString()}`;
} }
if (service === "roleplay-service") { if (service === "roleplay-service") {
if (!sessionId || typeof sessionId !== "string") return undefined;
params.set("role", String(detail?.target_role ?? goal ?? "Roleplay practice")); params.set("role", String(detail?.target_role ?? goal ?? "Roleplay practice"));
params.set("type", String(detail?.roleplay_type ?? "custom")); params.set("type", String(detail?.roleplay_type ?? "custom"));
return `${base}/service-sessions/roleplay?${params.toString()}`; return `${base}/v2/service-sessions/roleplay?${params.toString()}`;
}
if (service === "resume-service") {
if (goal) params.set("role", goal);
return `${base}/v2/service-sessions/resume${params.size ? `?${params.toString()}` : ""}`;
} }
return undefined; return undefined;
@@ -315,6 +321,7 @@ async function runResumeTailor(ctx: ServiceAgentContext): Promise<ServiceAgentRe
detail: { detail: {
...(stateResult.detail as Record<string, unknown> ?? {}), ...(stateResult.detail as Record<string, unknown> ?? {}),
goal: ctx.goal, goal: ctx.goal,
ui_session_url: buildServiceSessionUrl("resume-service", undefined, ctx.goal),
recommendation: "Use the AI analysis and copilot tools to tailor bullet points, add missing keywords, and optimize for ATS.", recommendation: "Use the AI analysis and copilot tools to tailor bullet points, add missing keywords, and optimize for ATS.",
}, },
}; };