Files
deepseek-harness/packages/client/ui-trajectory/src/client/TrajectoryTurnHeader.tsx
07akioni 3babb2cd42 feat(trajectory): implement trajectory step cell and layout with bilingual support
- Added TrajectoryCell, TrajectoryGroupHeader, and TrajectoryTurn components for rendering trajectory steps and groups.
- Introduced bilingual support with English and Chinese translations for trajectory notes.
- Updated conversation session models to include timestamps for various message types.
- Enhanced layout logic to handle expanded assistant blocks and tool results with duration metrics.
- Added CSS styles for new components to ensure proper display and alignment.
2026-07-24 13:33:35 +08:00

31 lines
868 B
TypeScript

// TrajectoryTurnHeader: sticky per-turn bar with Input/Output/Think/Time labels.
import css from './TrajectoryTurnHeader.module.css'
const COLUMN_LABELS = ['Input', 'Output', 'Think', 'Time'] as const
export interface TrajectoryTurnHeaderProps {
/** 1-based turn index shown as `Turn N`. */
turn: number
}
/**
* Render the sticky turn header row.
* @param props.turn - turn index.
* @returns the sticky header element.
*/
export function TrajectoryTurnHeader({ turn }: TrajectoryTurnHeaderProps) {
return (
<div className={css.root}>
<div className={css.inner}>
<span className={css.title}>Turn {turn}</span>
<div className={css.columns} aria-hidden="true">
{COLUMN_LABELS.map((label) => (
<span key={label} className={css.column}>{label}</span>
))}
</div>
</div>
</div>
)
}