MCPcopy Index your code
hub / github.com/coder/mux / readMultiProjectContextInstructions

Function readMultiProjectContextInstructions

src/node/services/systemMessage.ts:332–378  ·  view source on GitHub ↗
(
  metadata: WorkspaceMetadata,
  runtime: Runtime,
  workspaceRootPath: string
)

Source from the content-addressed store, hash-verified

330}
331
332async function readMultiProjectContextInstructions(
333 metadata: WorkspaceMetadata,
334 runtime: Runtime,
335 workspaceRootPath: string
336): Promise<InstructionSet[]> {
337 const sets: InstructionSet[] = [];
338 const workspaceInstructions = await readInstructionSetFromRuntime(
339 runtime,
340 workspaceRootPath,
341 INSTRUCTION_SCOPE.WORKSPACE
342 );
343 if (workspaceInstructions) {
344 sets.push(workspaceInstructions);
345 }
346
347 const seenProjectNames = new Set<string>();
348 for (const project of getProjects(metadata)) {
349 assert(
350 project.projectName.length > 0,
351 "Project instruction roots require non-empty project names"
352 );
353 assert(
354 !seenProjectNames.has(project.projectName),
355 `Duplicate project name in multi-project instruction context: ${project.projectName}`
356 );
357 seenProjectNames.add(project.projectName);
358
359 const workspaceProjectPath = path.join(workspaceRootPath, project.projectName);
360 const projectInstructions =
361 (await readInstructionSetFromRuntime(
362 runtime,
363 workspaceProjectPath,
364 INSTRUCTION_SCOPE.PROJECT,
365 project.projectName
366 )) ??
367 (await readInstructionSet(
368 project.projectPath,
369 INSTRUCTION_SCOPE.PROJECT,
370 project.projectName
371 ));
372 if (projectInstructions) {
373 sets.push(projectInstructions);
374 }
375 }
376
377 return sets;
378}
379
380async function readSingleProjectContextInstructions(
381 metadata: WorkspaceMetadata,

Callers 1

loadInstructionSourcesFunction · 0.85

Calls 7

getProjectsFunction · 0.90
readInstructionSetFunction · 0.90
addMethod · 0.80
pushMethod · 0.65
assertFunction · 0.50
hasMethod · 0.45

Tested by

no test coverage detected