@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
115 lines • 4.11 kB
TypeScript
/**
* Line Utilities
*
* Utility functions for working with line-based content:
* - Extract lines by range
* - Convert character positions to line numbers
* - Format content with line number prefixes
*/
/**
* Line range where content was found
*/
export interface LineRange {
/** Starting line number (1-indexed) */
start: number;
/** Ending line number (1-indexed, inclusive) */
end: number;
}
/**
* Extract lines from content by line range.
*
* @param content - The document content
* @param startLine - Starting line number (1-indexed)
* @param endLine - Ending line number (1-indexed, inclusive)
* @returns Object with extracted content and metadata
*/
export declare function extractLines(content: string, startLine?: number, endLine?: number): {
content: string;
lines: {
start: number;
end: number;
};
totalLines: number;
};
/**
* Extract lines using offset/limit style parameters (like Claude Code).
*
* @param content - The document content
* @param offset - Line number to start from (1-indexed, default: 1)
* @param limit - Maximum number of lines to read (default: all remaining)
* @returns Object with extracted content and metadata
*/
export declare function extractLinesWithLimit(content: string, offset?: number, limit?: number): {
content: string;
lines: {
start: number;
end: number;
};
totalLines: number;
};
/**
* Format content with line number prefixes.
* Output format matches Claude Code: " 1→content here"
*
* @param content - The content to format
* @param startLineNumber - The line number of the first line (1-indexed)
* @returns Formatted content with line numbers
*/
export declare function formatWithLineNumbers(content: string, startLineNumber?: number): string;
/**
* Convert a character index to a line number.
* Useful for converting RAG chunk character offsets to line numbers.
*
* @param content - The full document content
* @param charIndex - The character index (0-indexed)
* @returns The line number (1-indexed), or undefined if charIndex is out of bounds
*/
export declare function charIndexToLineNumber(content: string, charIndex: number): number | undefined;
/**
* Convert character range to line range.
* Useful for converting RAG chunk character offsets to line ranges.
*
* @param content - The full document content
* @param startCharIdx - Start character index (0-indexed)
* @param endCharIdx - End character index (0-indexed, exclusive)
* @returns LineRange (1-indexed) or undefined if indices are out of bounds
*/
export declare function charRangeToLineRange(content: string, startCharIdx: number, endCharIdx: number): LineRange | undefined;
/**
* Count occurrences of a string in content.
*
* @param content - The content to search
* @param searchString - The string to find
* @returns Number of occurrences
*/
export declare function countOccurrences(content: string, searchString: string): number;
/**
* Replace a string in content, with validation for uniqueness.
*
* @param content - The content to modify
* @param oldString - The string to find and replace
* @param newString - The replacement string
* @param replaceAll - If true, replace all occurrences; if false, require unique match
* @returns Object with result content and metadata
* @throws Error if oldString is not found or not unique (when replaceAll is false)
*/
export declare function replaceString(content: string, oldString: string, newString: string, replaceAll?: boolean): {
content: string;
replacements: number;
};
/**
* Error thrown when string is not found during replacement.
*/
export declare class StringNotFoundError extends Error {
readonly searchString: string;
constructor(searchString: string);
}
/**
* Error thrown when string appears multiple times but unique match required.
*/
export declare class StringNotUniqueError extends Error {
readonly searchString: string;
readonly occurrences: number;
constructor(searchString: string, occurrences: number);
}
//# sourceMappingURL=line-utils.d.ts.map