30 lines
756 B
TypeScript
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);
|
|
}
|