feat(docs): Update project metadata and documentation to reflect comprehensive AI-enhanced features and improved installation and usage instructions
This commit is contained in:
		
							
								
								
									
										95
									
								
								ts/context/types.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								ts/context/types.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Context processing mode to control how context is built
 | 
			
		||||
 */
 | 
			
		||||
export type ContextMode = 'full' | 'trimmed' | 'summarized';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Configuration for context trimming
 | 
			
		||||
 */
 | 
			
		||||
export interface ITrimConfig {
 | 
			
		||||
  /** Whether to remove function implementations */
 | 
			
		||||
  removeImplementations?: boolean;
 | 
			
		||||
  /** Whether to preserve interface definitions */
 | 
			
		||||
  preserveInterfaces?: boolean;
 | 
			
		||||
  /** Whether to preserve type definitions */
 | 
			
		||||
  preserveTypeDefs?: boolean;
 | 
			
		||||
  /** Whether to preserve JSDoc comments */
 | 
			
		||||
  preserveJSDoc?: boolean;
 | 
			
		||||
  /** Maximum lines to keep for function bodies (if not removing completely) */
 | 
			
		||||
  maxFunctionLines?: number;
 | 
			
		||||
  /** Whether to remove normal comments (non-JSDoc) */
 | 
			
		||||
  removeComments?: boolean;
 | 
			
		||||
  /** Whether to remove blank lines */
 | 
			
		||||
  removeBlankLines?: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Task types that require different context optimization
 | 
			
		||||
 */
 | 
			
		||||
export type TaskType = 'readme' | 'commit' | 'description';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Configuration for different tasks
 | 
			
		||||
 */
 | 
			
		||||
export interface ITaskConfig {
 | 
			
		||||
  /** The context mode to use for this task */
 | 
			
		||||
  mode?: ContextMode;
 | 
			
		||||
  /** File paths to include for this task */
 | 
			
		||||
  includePaths?: string[];
 | 
			
		||||
  /** File paths to exclude for this task */
 | 
			
		||||
  excludePaths?: string[];
 | 
			
		||||
  /** For commit tasks, whether to focus on changed files */
 | 
			
		||||
  focusOnChangedFiles?: boolean;
 | 
			
		||||
  /** For description tasks, whether to include package info */
 | 
			
		||||
  includePackageInfo?: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Complete context configuration
 | 
			
		||||
 */
 | 
			
		||||
export interface IContextConfig {
 | 
			
		||||
  /** Maximum tokens to use for context */
 | 
			
		||||
  maxTokens?: number;
 | 
			
		||||
  /** Default context mode */
 | 
			
		||||
  defaultMode?: ContextMode;
 | 
			
		||||
  /** Task-specific settings */
 | 
			
		||||
  taskSpecificSettings?: {
 | 
			
		||||
    [key in TaskType]?: ITaskConfig;
 | 
			
		||||
  };
 | 
			
		||||
  /** Trimming configuration */
 | 
			
		||||
  trimming?: ITrimConfig;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Basic file information interface
 | 
			
		||||
 */
 | 
			
		||||
export interface IFileInfo {
 | 
			
		||||
  /** The file path */
 | 
			
		||||
  path: string;
 | 
			
		||||
  /** The file contents */
 | 
			
		||||
  contents: string;
 | 
			
		||||
  /** The file's relative path from the project root */
 | 
			
		||||
  relativePath: string;
 | 
			
		||||
  /** The estimated token count of the file */
 | 
			
		||||
  tokenCount?: number;
 | 
			
		||||
  /** The file's importance score (higher is more important) */
 | 
			
		||||
  importanceScore?: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Result of context building
 | 
			
		||||
 */
 | 
			
		||||
export interface IContextResult {
 | 
			
		||||
  /** The generated context string */
 | 
			
		||||
  context: string;
 | 
			
		||||
  /** The total token count of the context */
 | 
			
		||||
  tokenCount: number;
 | 
			
		||||
  /** Files included in the context */
 | 
			
		||||
  includedFiles: IFileInfo[];
 | 
			
		||||
  /** Files that were trimmed */
 | 
			
		||||
  trimmedFiles: IFileInfo[];
 | 
			
		||||
  /** Files that were excluded */
 | 
			
		||||
  excludedFiles: IFileInfo[];
 | 
			
		||||
  /** Token savings from trimming */
 | 
			
		||||
  tokenSavings: number;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user