fix: add missing @Inject() decorators and fix coord workspace root detection
- Add @Inject() to all gateway constructor params (required without emitDecoratorMetadata) - AgentService: ProviderService, CoordService - RoutingService: ProviderService - ProvidersController: ProviderService, RoutingService - SessionsController: AgentService - Fix coord controller ALLOWED_ROOTS to walk up to monorepo root (pnpm-workspace.yaml) - Gateway now boots and serves all routes correctly Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,12 +8,30 @@ import {
|
||||
Query,
|
||||
UseGuards,
|
||||
} from '@nestjs/common';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { AuthGuard } from '../auth/auth.guard.js';
|
||||
import { CoordService } from './coord.service.js';
|
||||
|
||||
/** Walk up from cwd to find the monorepo root (has pnpm-workspace.yaml). */
|
||||
function findMonorepoRoot(start: string): string {
|
||||
let dir = start;
|
||||
for (let i = 0; i < 5; i++) {
|
||||
try {
|
||||
fs.accessSync(path.join(dir, 'pnpm-workspace.yaml'));
|
||||
return dir;
|
||||
} catch {
|
||||
const parent = path.dirname(dir);
|
||||
if (parent === dir) break;
|
||||
dir = parent;
|
||||
}
|
||||
}
|
||||
return start;
|
||||
}
|
||||
|
||||
/** Only paths under these roots are allowed for coord queries. */
|
||||
const ALLOWED_ROOTS = [process.cwd()];
|
||||
const WORKSPACE_ROOT = process.env['MOSAIC_WORKSPACE_ROOT'] ?? findMonorepoRoot(process.cwd());
|
||||
const ALLOWED_ROOTS = [process.cwd(), WORKSPACE_ROOT];
|
||||
|
||||
function resolveAndValidatePath(raw: string | undefined): string {
|
||||
const resolved = path.resolve(raw ?? process.cwd());
|
||||
|
||||
Reference in New Issue
Block a user