mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
feat(compression): add type definitions and barrel exports
Define CompressionMode (off/lite/standard/aggressive/ultra), CompressionConfig, CompressionStats, CompressionResult interfaces. Add barrel index.ts re-exporting all public functions. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
31
open-sse/services/compression/index.ts
Normal file
31
open-sse/services/compression/index.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Compression Pipeline — Phase 1 (Lite mode)
|
||||
*
|
||||
* Modular prompt compression that runs BEFORE the existing reactive context manager.
|
||||
* Lite mode: 5 techniques, ~10-15% token savings, <1ms latency.
|
||||
*/
|
||||
|
||||
// Types
|
||||
export type {
|
||||
CompressionMode,
|
||||
CompressionConfig,
|
||||
CompressionStats,
|
||||
CompressionResult,
|
||||
} from "./types";
|
||||
export { DEFAULT_COMPRESSION_CONFIG } from "./types";
|
||||
|
||||
// Lite compression techniques
|
||||
export {
|
||||
applyLiteCompression,
|
||||
collapseWhitespace,
|
||||
dedupSystemPrompt,
|
||||
compressToolResults,
|
||||
removeRedundantContent,
|
||||
replaceImageUrls,
|
||||
} from "./lite";
|
||||
|
||||
// Strategy selector
|
||||
export { selectCompressionStrategy, getEffectiveMode, applyCompression } from "./strategySelector";
|
||||
|
||||
// Stats tracking
|
||||
export { estimateCompressionTokens, createCompressionStats, trackCompressionStats } from "./stats";
|
||||
45
open-sse/services/compression/types.ts
Normal file
45
open-sse/services/compression/types.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Compression Pipeline Types — Phase 1 (Lite mode)
|
||||
*
|
||||
* Modular prompt compression that runs BEFORE the existing reactive context manager.
|
||||
*/
|
||||
|
||||
/** Compression mode levels (only 'off' and 'lite' are active in Phase 1) */
|
||||
export type CompressionMode = "off" | "lite" | "standard" | "aggressive" | "ultra";
|
||||
|
||||
/** Compression configuration stored in DB */
|
||||
export interface CompressionConfig {
|
||||
enabled: boolean;
|
||||
defaultMode: CompressionMode;
|
||||
autoTriggerTokens: number;
|
||||
cacheMinutes: number;
|
||||
preserveSystemPrompt: boolean;
|
||||
comboOverrides: Record<string, CompressionMode>;
|
||||
}
|
||||
|
||||
/** Per-request compression statistics */
|
||||
export interface CompressionStats {
|
||||
originalTokens: number;
|
||||
compressedTokens: number;
|
||||
savingsPercent: number;
|
||||
techniquesUsed: string[];
|
||||
mode: CompressionMode;
|
||||
timestamp: number;
|
||||
}
|
||||
|
||||
/** Result of a compression operation */
|
||||
export interface CompressionResult {
|
||||
body: Record<string, unknown>;
|
||||
compressed: boolean;
|
||||
stats: CompressionStats | null;
|
||||
}
|
||||
|
||||
/** Default compression config values */
|
||||
export const DEFAULT_COMPRESSION_CONFIG: CompressionConfig = {
|
||||
enabled: false,
|
||||
defaultMode: "off",
|
||||
autoTriggerTokens: 0,
|
||||
cacheMinutes: 5,
|
||||
preserveSystemPrompt: true,
|
||||
comboOverrides: {},
|
||||
};
|
||||
Reference in New Issue
Block a user