Files
EJClaw/runners/agent-runner/src/compaction-boundary.ts

30 lines
756 B
TypeScript

import {
compactBoundaryOutput,
type RunnerCompaction,
} from './output-protocol.js';
export function compactBoundaryFromMessage(
message: unknown,
log: (message: string) => void,
): RunnerCompaction | undefined {
if (
!(
typeof message === 'object' &&
message !== null &&
(message as { type?: string }).type === 'system' &&
(message as { subtype?: string }).subtype === 'compact_boundary'
)
) {
return undefined;
}
const meta = (
message as {
compact_metadata?: { trigger?: string; pre_tokens?: number };
}
).compact_metadata;
log(
`Compact boundary — trigger=${meta?.trigger || '?'} pre_tokens=${meta?.pre_tokens ?? '?'}`,
);
return compactBoundaryOutput(meta?.trigger);
}