Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type {BuildContextInput, ContextBudget} from "./types.js";
import type {BuildContextInput, ContextBudget} from "../types.js";

/** Strategy used to derive runtime context budget from build input. */
export interface ContextBudgetPolicy {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type {ContextSection, ContextSource} from "./types.js";
import type {ContextSection, ContextSource} from "../types.js";

/** Strategy used to order context sections. */
export interface ContextPriorityPolicy {
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@ import {
NoopContextCompressor,
type ContextCompressor,
} from "./context-compressor.js";
import {formatContextSection} from "./context-formatter.js";
import {createDefaultTokenEstimator, type TokenEstimator} from "./token-estimator.js";
import type {ContextBudget, ContextCompressionResult, ContextSection} from "./types.js";
import {
createDefaultTokenEstimator,
type TokenEstimator,
} from "../budget/token-estimator.js";
import {formatContextSection} from "../formatting/context-formatter.js";
import type {ContextBudget, ContextCompressionResult, ContextSection} from "../types.js";

export type ContextCompressionPipelineOptions = {
compressor?: ContextCompressor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import {createDefaultTokenEstimator, type TokenEstimator} from "./token-estimator.js";
import type {ContextBudget, ContextCompressionResult, ContextSection} from "./types.js";
import {
createDefaultTokenEstimator,
type TokenEstimator,
} from "../budget/token-estimator.js";
import type {ContextBudget, ContextCompressionResult, ContextSection} from "../types.js";

export type ContextCompressionMetadata = {
strategy?: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import {DefaultContextBudgetPolicy} from "./context-budget.js";
import {formatContextSection} from "./context-formatter.js";
import {createDefaultTokenEstimator, type TokenEstimator} from "./token-estimator.js";
import type {ContextBudget, ContextSection, ContextSectionUsage} from "./types.js";
import {DefaultContextBudgetPolicy} from "../budget/context-budget.js";
import {
createDefaultTokenEstimator,
type TokenEstimator,
} from "../budget/token-estimator.js";
import {formatContextSection} from "../formatting/context-formatter.js";
import type {ContextBudget, ContextSection, ContextSectionUsage} from "../types.js";

export type FormattedContextSection = {
section: ContextSection;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {ContextEngine} from "./context-engine.js";
import type {BuildContextInput, BuildContextResult} from "./types.js";
import type {BuildContextInput, BuildContextResult} from "../types.js";

const defaultContextEngine = new ContextEngine();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
import {ContextCompressionPipeline} from "./context-compression-pipeline.js";
import {DefaultContextBudgetPolicy} from "./context-budget.js";
import {ContextRegistry} from "./context-registry.js";
import {ContextTruncator} from "./context-truncator.js";
import {DefaultContextPriorityPolicy} from "./priority-policy.js";
import {SystemPromptAssembler} from "./system-prompt-assembler.js";
import {createDefaultTokenEstimator, type TokenEstimator} from "./token-estimator.js";
import type {ContextBudgetPolicy} from "./context-budget.js";
import type {ContextPriorityPolicy} from "./priority-policy.js";
import {DefaultContextBudgetPolicy} from "../budget/context-budget.js";
import {DefaultContextPriorityPolicy} from "../budget/priority-policy.js";
import {
createDefaultTokenEstimator,
type TokenEstimator,
} from "../budget/token-estimator.js";
import {ContextCompressionPipeline} from "../compression/context-compression-pipeline.js";
import {ContextTruncator} from "../compression/context-truncator.js";
import {SystemPromptAssembler} from "../formatting/system-prompt-assembler.js";
import type {ContextBudgetPolicy} from "../budget/context-budget.js";
import type {ContextPriorityPolicy} from "../budget/priority-policy.js";
import type {
BuildContextInput,
BuildContextResult,
ContextEngineOptions,
} from "./types.js";
} from "../types.js";
import {ContextRegistry} from "./context-registry.js";

/** Class-based context engine that owns the full runtime context pipeline. */
export class ContextEngine {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type {ContextPriorityPolicy} from "./priority-policy.js";
import type {ContextSection} from "./types.js";
import type {ContextPriorityPolicy} from "../budget/priority-policy.js";
import type {ContextSection} from "../types.js";

/** Mutable registry for normalizing, deduping, and ordering context sections. */
export class ContextRegistry {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type {ContextSection} from "./types.js";
import {DefaultContextPriorityPolicy} from "./priority-policy.js";
import {DefaultContextPriorityPolicy} from "../budget/priority-policy.js";
import type {ContextSection} from "../types.js";

/** Returns a formatted section string, or an empty string for blank content. */
export function formatContextSection(section: ContextSection): string {
Expand Down
37 changes: 20 additions & 17 deletions src/context/index.ts
Original file line number Diff line number Diff line change
@@ -1,45 +1,48 @@
export {ContextEngine} from "./context-engine.js";
export {buildRuntimeContext} from "./context-builder.js";
export {ContextCompressionPipeline} from "./context-compression-pipeline.js";
export {ContextEngine} from "./engine/context-engine.js";
export {buildRuntimeContext} from "./engine/context-builder.js";
export {ContextRegistry} from "./engine/context-registry.js";
export {ContextCompressionPipeline} from "./compression/context-compression-pipeline.js";
export type {
ContextCompressionPipelineOptions,
ContextCompressionPipelineResult,
} from "./context-compression-pipeline.js";
export {DefaultContextBudgetPolicy} from "./context-budget.js";
export type {ContextBudgetPolicy} from "./context-budget.js";
} from "./compression/context-compression-pipeline.js";
export {DefaultContextBudgetPolicy} from "./budget/context-budget.js";
export type {ContextBudgetPolicy} from "./budget/context-budget.js";
export {
ContextCompressionResultFactory,
createCompressionResult,
isCompressibleSection,
NoopContextCompressor,
RuleBasedContextCompressor,
} from "./context-compressor.js";
} from "./compression/context-compressor.js";
export type {
ContextCompressor,
ContextCompressionMetadata,
RuleBasedContextCompressorOptions,
} from "./context-compressor.js";
export {compareContextSection, formatContextSection} from "./context-formatter.js";
export {ContextRegistry} from "./context-registry.js";
} from "./compression/context-compressor.js";
export {
compareContextSection,
formatContextSection,
} from "./formatting/context-formatter.js";
export {
ContextTruncator,
truncateContext,
truncateTextToTokens,
} from "./context-truncator.js";
} from "./compression/context-truncator.js";
export type {
FormattedContextSection,
TruncateContextResult,
} from "./context-truncator.js";
export {DefaultContextPriorityPolicy} from "./priority-policy.js";
export type {ContextPriorityPolicy} from "./priority-policy.js";
export {SystemPromptAssembler} from "./system-prompt-assembler.js";
} from "./compression/context-truncator.js";
export {DefaultContextPriorityPolicy} from "./budget/priority-policy.js";
export type {ContextPriorityPolicy} from "./budget/priority-policy.js";
export {SystemPromptAssembler} from "./formatting/system-prompt-assembler.js";
export {
ApproxTokenEstimator,
createDefaultTokenEstimator,
estimateTokens,
GptTokenEstimator,
} from "./token-estimator.js";
export type {TokenCountableMessage, TokenEstimator} from "./token-estimator.js";
} from "./budget/token-estimator.js";
export type {TokenCountableMessage, TokenEstimator} from "./budget/token-estimator.js";
export type {
BuildContextInput,
BuildContextDiagnostics,
Expand Down
14 changes: 7 additions & 7 deletions src/context/types.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type {ContextCompressionPipeline} from "./context-compression-pipeline.js";
import type {ContextBudgetPolicy} from "./context-budget.js";
import type {ContextCompressor} from "./context-compressor.js";
import type {ContextTruncator} from "./context-truncator.js";
import type {ContextPriorityPolicy} from "./priority-policy.js";
import type {SystemPromptAssembler} from "./system-prompt-assembler.js";
import type {TokenEstimator} from "./token-estimator.js";
import type {ContextBudgetPolicy} from "./budget/context-budget.js";
import type {ContextPriorityPolicy} from "./budget/priority-policy.js";
import type {TokenEstimator} from "./budget/token-estimator.js";
import type {ContextCompressionPipeline} from "./compression/context-compression-pipeline.js";
import type {ContextCompressor} from "./compression/context-compressor.js";
import type {ContextTruncator} from "./compression/context-truncator.js";
import type {SystemPromptAssembler} from "./formatting/system-prompt-assembler.js";

/** Source metadata for a context section. */
export type ContextSource =
Expand Down
Loading