import CodeGraph from '@colbymchenry/codegraph';
class ContextCompiler {
constructor(private cg: CodeGraph) {}
async compile(query: string, options: CompileOptions): Promise {
// 1. Use existing search/query capabilities
const relevantSymbols = this.cg.searchNodes(query);
const affectedModules = this.cg.getAffectedModules(relevantSymbols);
// 2. Use call graph to trace dependencies
const dependencies = this.cg.getCallers(relevantSymbols);
// 3. Use buildContext API (already exists)
const rawContext = await this.cg.buildContext(query, {
maxNodes: options.maxSymbols || 20,
includeCode: true
});
// 4. Compile and compress
const compiled = this.compilerPipeline(rawContext, options);
// 5. Return as Context Pack
return compiled;
}
private compilerPipeline(raw: any, options: CompileOptions): ContextPack {
// Remove duplicates
// Summarize long documents
// Apply token budget
// Structure output
}
}
import CodeGraph from '@colbymchenry/codegraph';
class ContextCompiler {
constructor(private cg: CodeGraph) {}
async compile(query: string, options: CompileOptions): Promise {
// 1. Use existing search/query capabilities
const relevantSymbols = this.cg.searchNodes(query);
const affectedModules = this.cg.getAffectedModules(relevantSymbols);
}
private compilerPipeline(raw: any, options: CompileOptions): ContextPack {
// Remove duplicates
// Summarize long documents
// Apply token budget
// Structure output
}
}