import type { EnvironmentId, ThreadId } from "@t3tools/contracts"; export interface CheckpointDiffTarget { readonly environmentId: EnvironmentId | null; readonly threadId: ThreadId | null; readonly fromTurnCount: number | null; readonly toTurnCount: number | null; readonly ignoreWhitespace: boolean;} export function normalizeComposerPathSearchQuery(query: string | null): string { return query?.trim() ?? "";} export function buildCheckpointDiffTargets(target: CheckpointDiffTarget) { if ( target.environmentId === null || target.threadId === null || target.fromTurnCount === null || target.toTurnCount === null ) { return { fullThread: null, turn: null } as const; } if (target.fromTurnCount === 0) { return { fullThread: { environmentId: target.environmentId, input: { threadId: target.threadId, toTurnCount: target.toTurnCount, ignoreWhitespace: target.ignoreWhitespace, }, }, turn: null, } as const; } return { fullThread: null, turn: { environmentId: target.environmentId, input: { threadId: target.threadId, fromTurnCount: target.fromTurnCount, toTurnCount: target.toTurnCount, ignoreWhitespace: target.ignoreWhitespace, }, }, } as const;}
import type { EnvironmentId, ThreadId } from "@t3tools/contracts";
export interface CheckpointDiffTarget {
readonly environmentId: EnvironmentId | null;
readonly threadId: ThreadId | null;
readonly fromTurnCount: number | null;
readonly toTurnCount: number | null;
readonly ignoreWhitespace: boolean;
}
export function normalizeComposerPathSearchQuery(query: string | null): string {
return query?.trim() ?? "";
}
export function buildCheckpointDiffTargets(target: CheckpointDiffTarget) {
if (
target.environmentId === null ||
target.threadId === null ||
target.fromTurnCount === null ||
target.toTurnCount === null
) {
return { fullThread: null, turn: null } as const;
}
if (target.fromTurnCount === 0) {
return {
fullThread: {
environmentId: target.environmentId,
input: {
threadId: target.threadId,
toTurnCount: target.toTurnCount,
ignoreWhitespace: target.ignoreWhitespace,
},
},
turn: null,
} as const;
}
return {
fullThread: null,
turn: {
environmentId: target.environmentId,
input: {
threadId: target.threadId,
fromTurnCount: target.fromTurnCount,
toTurnCount: target.toTurnCount,
ignoreWhitespace: target.ignoreWhitespace,
},
},
} as const;
}