trellis
Version:
Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications
73 lines • 2.17 kB
TypeScript
/**
* Text Chunker
*
* Strategies for splitting different content types into embeddable chunks.
* Short text is embedded as-is; markdown is split by headings; code entities
* are chunked by declaration; large text uses sliding window.
*
* @see TRL-19
*/
import type { ChunkMeta } from './types.js';
/**
* Chunk an issue into embeddable pieces.
*/
export declare function chunkIssue(issue: {
id: string;
title?: string;
description?: string;
}): ChunkMeta[];
/**
* Chunk a decision trace into embeddable pieces.
* Combines tool name, rationale, context, and output summary.
*/
export declare function chunkDecision(decision: {
id: string;
toolName: string;
rationale?: string;
context?: string;
outputSummary?: string;
}): ChunkMeta[];
/**
* Chunk a milestone message.
*/
export declare function chunkMilestone(milestone: {
id: string;
message?: string;
}): ChunkMeta[];
/**
* Chunk a markdown file by heading sections.
* Each H1/H2/H3 section becomes a separate chunk.
* Sections that exceed MAX_CHUNK_CHARS get sliding-window split.
*/
export declare function chunkMarkdown(filePath: string, content: string): ChunkMeta[];
/**
* Chunk code entities (functions, classes, interfaces) from a parsed file.
* Each declaration's signature + doc-comment becomes a chunk.
*/
export declare function chunkCodeEntities(filePath: string, declarations: Array<{
id: string;
name: string;
kind: string;
signature: string;
docComment?: string;
}>): ChunkMeta[];
/**
* Chunk doc-comments extracted from source files.
*/
export declare function chunkDocComments(filePath: string, comments: Array<{
line: number;
text: string;
}>): ChunkMeta[];
/**
* Chunk a summary.md or similar short-to-medium text file.
*/
export declare function chunkSummary(filePath: string, content: string): ChunkMeta[];
/**
* Auto-detect file type and chunk accordingly.
*/
export declare function chunkFile(filePath: string, content: string): ChunkMeta[];
/**
* Split long text into overlapping windows.
*/
export declare function slidingWindow(text: string): string[];
//# sourceMappingURL=chunker.d.ts.map