@tanstack/ai
Version:
Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.
55 lines (54 loc) • 1.11 kB
JavaScript
class ImmediateStrategy {
shouldEmit(_chunk, _accumulated) {
return true;
}
}
class PunctuationStrategy {
punctuation = /[.,!?;:\n]/;
shouldEmit(chunk, _accumulated) {
return this.punctuation.test(chunk);
}
}
class BatchStrategy {
constructor(batchSize = 5) {
this.batchSize = batchSize;
}
batchSize;
chunkCount = 0;
shouldEmit(_chunk, _accumulated) {
this.chunkCount++;
if (this.chunkCount >= this.batchSize) {
this.chunkCount = 0;
return true;
}
return false;
}
reset() {
this.chunkCount = 0;
}
}
class WordBoundaryStrategy {
shouldEmit(chunk, _accumulated) {
return /\s$/.test(chunk);
}
}
class CompositeStrategy {
constructor(strategies) {
this.strategies = strategies;
}
strategies;
shouldEmit(chunk, accumulated) {
return this.strategies.some((s) => s.shouldEmit(chunk, accumulated));
}
reset() {
this.strategies.forEach((s) => s.reset?.());
}
}
export {
BatchStrategy,
CompositeStrategy,
ImmediateStrategy,
PunctuationStrategy,
WordBoundaryStrategy
};
//# sourceMappingURL=strategies.js.map