working-directory-context.js•2.45 kB
// Enhanced context system for working directory management
export class WorkingDirectoryContext {
  constructor() {
    this.projectCache = new Map();
  }
  async getContext(workingDirectory) {
    return {
      workingDirectory,
      data: {},
      metadata: {
        totalToolCalls: 0,
        commonPatterns: [],
        preferredFiles: [],
        lastModified: Date.now()
      },
      lastAccessed: Date.now(),
      persistent: false
    };
  }
  async loadContext(workingDirectory) {
    return this.getContext(workingDirectory);
  }
  async saveContext(workingDirectory, context) {
    // No-op - don't save context
  }
  getContextPath(workingDirectory) {
    // Return a path that won't be used
    return '/dev/null';
  }
  async updateContext(workingDirectory, toolName, toolData) {
    // No-op - don't update context
    return await this.getContext(workingDirectory);
  }
  async getToolContext(workingDirectory, toolName, query) {
    const context = await this.getContext(workingDirectory);
    return {
      workingDirectory,
      toolName,
      query,
      relevantFiles: [],
      commonPatterns: [],
      previousUsage: null,
      insights: [],
      sessionData: {
        totalToolCalls: 0,
        lastAccessed: Date.now()
      }
    };
  }
  async getContextStats(workingDirectory) {
    return {
      workingDirectory,
      persistent: false,
      fileSize: 0,
      totalToolCalls: 0,
      toolsUsed: 0,
      totalFiles: 0,
      patterns: 0,
      insights: 0,
      lastModified: null
    };
  }
  async clearContext(workingDirectory) {
    // No-op
  }
  cleanupStaleContexts() {
    // No-op
  }
}
export const workingDirectoryContext = new WorkingDirectoryContext();
export function createToolContext(toolName, workingDirectory, query, result) {
  return {
    toolName,
    workingDirectory,
    query,
    timestamp: Date.now(),
    success: !result.error,
    duration: result.duration || 0,
    filesAccessed: result.filesAccessed || [],
    patterns: result.patterns || [],
    insights: result.insights || []
  };
}
export function withContext(toolHandler, toolName) {
  // Simply wrap the tool handler without adding context functionality
  return async (args) => {
    try {
      return await toolHandler(args);
    } catch (error) {
      throw error;
    }
  };
}
export function getContextSummary(context) {
  // Return empty string since context is disabled
  return '';
}