Skip to content
Open
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
24 changes: 23 additions & 1 deletion packages/ui/src/components/message-part.css
Original file line number Diff line number Diff line change
Expand Up @@ -225,13 +225,35 @@
}
}

[data-component="reasoning-part-trigger"] {
width: 100%;
min-height: 24px;
display: flex;
align-items: center;
justify-content: flex-start;
gap: 0px;
cursor: pointer;

[data-slot="reasoning-part-label"] {
font-family: var(--font-family-sans);
font-size: 14px;
font-weight: var(--font-weight-medium);
line-height: var(--line-height-large);
color: var(--text-strong);
}

[data-slot="collapsible-arrow"] {
color: var(--icon-weaker);
}
}

[data-component="reasoning-part"] {
width: 100%;
color: var(--text-base);
line-height: var(--line-height-normal);

[data-component="markdown"] {
margin-top: 24px;
margin-top: 4px;
font-style: normal;
font-size: inherit;
color: var(--text-weak);
Expand Down
25 changes: 22 additions & 3 deletions packages/ui/src/components/message-part.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export interface MessagePartProps {
defaultOpen?: boolean
showAssistantCopyPartID?: string | null
turnDurationMs?: number
working?: boolean
}

export type PartComponent = Component<MessagePartProps>
Expand Down Expand Up @@ -391,6 +392,7 @@ export function AssistantParts(props: {
showAssistantCopyPartID={props.showAssistantCopyPartID}
turnDurationMs={props.turnDurationMs}
defaultOpen={partDefaultOpen(entry().part, props.shellToolDefaultOpen, props.editToolDefaultOpen)}
working={props.working && tail()}
/>
)}
</Show>
Expand Down Expand Up @@ -886,6 +888,7 @@ export function Part(props: MessagePartProps) {
defaultOpen={props.defaultOpen}
showAssistantCopyPartID={props.showAssistantCopyPartID}
turnDurationMs={props.turnDurationMs}
working={props.working}
/>
</Show>
)
Expand Down Expand Up @@ -1142,15 +1145,31 @@ PART_MAPPING["text"] = function TextPartDisplay(props) {
}

PART_MAPPING["reasoning"] = function ReasoningPartDisplay(props) {
const i18n = useI18n()
const part = props.part as ReasoningPart
const text = () => part.text.trim()
const throttledText = createThrottledValue(text)
const [open, setOpen] = createSignal(true)

return (
<Show when={throttledText()}>
<div data-component="reasoning-part">
<Markdown text={throttledText()} cacheKey={part.id} />
</div>
<Collapsible open={open()} onOpenChange={setOpen} variant="ghost">
<Collapsible.Trigger>
<div data-component="reasoning-part-trigger">
<span data-slot="reasoning-part-label">
<Show when={props.working} fallback={i18n.t("ui.sessionTurn.status.reasoningSummary")}>
<TextShimmer text={i18n.t("ui.sessionTurn.status.reasoning")} />
</Show>
</span>
<Collapsible.Arrow />
</div>
</Collapsible.Trigger>
<Collapsible.Content>
<div data-component="reasoning-part">
<Markdown text={throttledText()} cacheKey={part.id} />
</div>
</Collapsible.Content>
</Collapsible>
</Show>
)
}
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "تفكير - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "جمع الأفكار",
"ui.sessionTurn.status.consideringNextSteps": "النظر في الخطوات التالية",
"ui.sessionTurn.status.reasoning": "التفكير",
"ui.sessionTurn.status.reasoningSummary": "ملخّص التفكير",

"ui.messagePart.questions.dismissed": "تم رفض الأسئلة",
"ui.messagePart.context.read.one": "{{count}} قراءة",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/br.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Pensando - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Organizando pensamentos",
"ui.sessionTurn.status.consideringNextSteps": "Considerando próximos passos",
"ui.sessionTurn.status.reasoning": "Raciocínio",
"ui.sessionTurn.status.reasoningSummary": "Resumo do Raciocínio",

"ui.messagePart.questions.dismissed": "Perguntas descartadas",
"ui.messagePart.context.read.one": "{{count}} leitura",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/bs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Razmišljanje - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Sređivanje misli",
"ui.sessionTurn.status.consideringNextSteps": "Razmatranje sljedećih koraka",
"ui.sessionTurn.status.reasoning": "Razmišljanje",
"ui.sessionTurn.status.reasoningSummary": "Sažetak Razmišljanja",

"ui.messagePart.questions.dismissed": "Pitanja odbačena",
"ui.messagePart.context.read.one": "{{count}} čitanje",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/da.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Tænker - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Samler tanker",
"ui.sessionTurn.status.consideringNextSteps": "Overvejer næste skridt",
"ui.sessionTurn.status.reasoning": "Ræsonnering",
"ui.sessionTurn.status.reasoningSummary": "Ræsonnerings Oversigt",

"ui.messagePart.questions.dismissed": "Spørgsmål afvist",
"ui.messagePart.context.read.one": "{{count}} læsning",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Denken - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Gedanken sammeln",
"ui.sessionTurn.status.consideringNextSteps": "Nächste Schritte erwägen",
"ui.sessionTurn.status.reasoning": "Überlegung",
"ui.sessionTurn.status.reasoningSummary": "Überlegungs Zusammenfassung",

"ui.messagePart.questions.dismissed": "Fragen verworfen",
"ui.messagePart.context.read.one": "{{count}} Lesevorgang",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ export const dict: Record<string, string> = {
"ui.sessionTurn.status.thinkingWithTopic": "Thinking - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Gathering thoughts",
"ui.sessionTurn.status.consideringNextSteps": "Considering next steps",
"ui.sessionTurn.status.reasoning": "Reasoning",
"ui.sessionTurn.status.reasoningSummary": "Reasoning Summary",

"ui.messagePart.diagnostic.error": "Error",
"ui.messagePart.title.edit": "Edit",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Pensando - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Recopilando pensamientos",
"ui.sessionTurn.status.consideringNextSteps": "Considerando siguientes pasos",
"ui.sessionTurn.status.reasoning": "Razonamiento",
"ui.sessionTurn.status.reasoningSummary": "Resumen del Razonamiento",

"ui.messagePart.questions.dismissed": "Preguntas descartadas",
"ui.messagePart.context.read.one": "{{count}} lectura",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Réflexion - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Rassemblement des idées",
"ui.sessionTurn.status.consideringNextSteps": "Examen des prochaines étapes",
"ui.sessionTurn.status.reasoning": "Raisonnement",
"ui.sessionTurn.status.reasoningSummary": "Résumé du Raisonnement",

"ui.messagePart.questions.dismissed": "Questions ignorées",
"ui.messagePart.context.read.one": "{{count}} lecture",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "思考中 - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "考えをまとめています",
"ui.sessionTurn.status.consideringNextSteps": "次のステップを検討中",
"ui.sessionTurn.status.reasoning": "推論",
"ui.sessionTurn.status.reasoningSummary": "推論サマリー",

"ui.messagePart.questions.dismissed": "質問をスキップしました",
"ui.messagePart.context.read.one": "{{count}} 件の読み取り",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "생각 중 - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "생각 정리 중",
"ui.sessionTurn.status.consideringNextSteps": "다음 단계 고려 중",
"ui.sessionTurn.status.reasoning": "추론",
"ui.sessionTurn.status.reasoningSummary": "추론 요약",

"ui.messagePart.questions.dismissed": "질문 무시됨",
"ui.messagePart.context.read.one": "{{count}}개 읽음",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/no.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ export const dict: Record<Keys, string> = {
"ui.sessionTurn.status.thinkingWithTopic": "Tenker - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Samler tanker",
"ui.sessionTurn.status.consideringNextSteps": "Vurderer neste trinn",
"ui.sessionTurn.status.reasoning": "Resonnering",
"ui.sessionTurn.status.reasoningSummary": "Resonnerings Sammendrag",

"ui.messagePart.questions.dismissed": "Spørsmål avvist",
"ui.messagePart.context.read.one": "{{count}} lest",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Myślenie - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Zbieranie myśli",
"ui.sessionTurn.status.consideringNextSteps": "Rozważanie kolejnych kroków",
"ui.sessionTurn.status.reasoning": "Rozumowanie",
"ui.sessionTurn.status.reasoningSummary": "Podsumowanie Rozumowania",

"ui.messagePart.questions.dismissed": "Pytania odrzucone",
"ui.messagePart.context.read.one": "{{count}} odczyt",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "Размышление - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "Сбор мыслей",
"ui.sessionTurn.status.consideringNextSteps": "Рассмотрение следующих шагов",
"ui.sessionTurn.status.reasoning": "Рассуждение",
"ui.sessionTurn.status.reasoningSummary": "Сводка Рассуждений",

"ui.messagePart.questions.dismissed": "Вопросы отклонены",
"ui.messagePart.context.read.one": "{{count}} чтение",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/th.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "กำลังคิด - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "รวบรวมความคิด",
"ui.sessionTurn.status.consideringNextSteps": "พิจารณาขั้นตอนถัดไป",
"ui.sessionTurn.status.reasoning": "การใช้เหตุผล",
"ui.sessionTurn.status.reasoningSummary": "สรุปการใช้เหตุผล",

"ui.messagePart.questions.dismissed": "ละทิ้งคำถามแล้ว",
"ui.messagePart.context.read.one": "อ่าน {{count}} รายการ",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "思考:{{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "正在整理思路",
"ui.sessionTurn.status.consideringNextSteps": "正在考虑下一步",
"ui.sessionTurn.status.reasoning": "推理",
"ui.sessionTurn.status.reasoningSummary": "推理摘要",

"ui.messagePart.questions.dismissed": "问题已忽略",
"ui.messagePart.context.read.one": "{{count}} 次读取",
Expand Down
2 changes: 2 additions & 0 deletions packages/ui/src/i18n/zht.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ export const dict = {
"ui.sessionTurn.status.thinkingWithTopic": "思考 - {{topic}}",
"ui.sessionTurn.status.gatheringThoughts": "正在整理思緒",
"ui.sessionTurn.status.consideringNextSteps": "正在考慮下一步",
"ui.sessionTurn.status.reasoning": "推理",
"ui.sessionTurn.status.reasoningSummary": "推理摘要",

"ui.messagePart.questions.dismissed": "問題已略過",
"ui.messagePart.context.read.one": "{{count}} 次讀取",
Expand Down
Loading