This repository has been archived on 2026-06-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
master-ai/patch_sessions_route.js

56 lines
2.1 KiB
JavaScript

const fs = require('fs');
const file = 'vibn-frontend/app/api/projects/[projectId]/agent/sessions/route.ts';
let code = fs.readFileSync(file, 'utf8');
// Inject the workspace API key fetching logic
if (!code.includes('listWorkspaceApiKeys')) {
code = code.replace(
'import { query } from "@/lib/db-postgres";',
'import { query } from "@/lib/db-postgres";\nimport { listWorkspaceApiKeys, mintWorkspaceApiKey, revealWorkspaceApiKey } from "@/lib/auth/workspace-auth";'
);
const injectCode = `
const wsResult = await query<{ workspace_id: string }>(
\`SELECT vibn_workspace_id as workspace_id FROM fs_projects WHERE id = $1 LIMIT 1\`,
[projectId]
);
if (!wsResult.length) {
return NextResponse.json({ error: "Project not found" }, { status: 404 });
}
const workspaceId = wsResult[0].workspace_id;
// Grab or mint a default API key for the runner to use
let mcpToken = "";
const keys = await listWorkspaceApiKeys(workspaceId);
let defaultKey = keys.find((k: any) => k.name === 'default' && !k.revoked_at);
if (!defaultKey) {
const minted = await mintWorkspaceApiKey({ workspaceId, name: 'default', createdBy: session.user.id, scopes: ['workspace:*'] });
mcpToken = minted.token;
} else {
const revealed = await revealWorkspaceApiKey(workspaceId, defaultKey.id);
if (revealed) mcpToken = revealed.token;
else {
const minted = await mintWorkspaceApiKey({ workspaceId, name: 'default', createdBy: session.user.id, scopes: ['workspace:*'] });
mcpToken = minted.token;
}
}
// Add VIBN_API_URL so the runner knows where to send MCP requests
const vibnApiUrl = process.env.NEXT_PUBLIC_APP_URL || "http://localhost:3000";
`;
code = code.replace(
'const sessionId = rows[0].id;',
'const sessionId = rows[0].id;\n' + injectCode
);
code = code.replace(
'coolifyAppUuid,\n }),',
'coolifyAppUuid,\n mcpToken,\n vibnApiUrl\n }),'
);
fs.writeFileSync(file, code);
console.log("Patched session route to forward MCP token");
}