diff --git a/packages/kilo-i18n/src/ar.ts b/packages/kilo-i18n/src/ar.ts
index d6ae4d811b5..87a99ef423b 100644
--- a/packages/kilo-i18n/src/ar.ts
+++ b/packages/kilo-i18n/src/ar.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "الاستدلال",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/br.ts b/packages/kilo-i18n/src/br.ts
index e8e9bcb7e87..fe1c553ba2c 100644
--- a/packages/kilo-i18n/src/br.ts
+++ b/packages/kilo-i18n/src/br.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Raciocínio",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/bs.ts b/packages/kilo-i18n/src/bs.ts
index 2c805534991..96dd911fd11 100644
--- a/packages/kilo-i18n/src/bs.ts
+++ b/packages/kilo-i18n/src/bs.ts
@@ -19,4 +19,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Rezonovanje",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/da.ts b/packages/kilo-i18n/src/da.ts
index aee2d0a5f38..e07c99b0268 100644
--- a/packages/kilo-i18n/src/da.ts
+++ b/packages/kilo-i18n/src/da.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Ræsonnement",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/es.ts b/packages/kilo-i18n/src/es.ts
index 09b4d702906..b8bd8c27f75 100644
--- a/packages/kilo-i18n/src/es.ts
+++ b/packages/kilo-i18n/src/es.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Razonamiento",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/fr.ts b/packages/kilo-i18n/src/fr.ts
index 83bd3c0fe8a..70797589a53 100644
--- a/packages/kilo-i18n/src/fr.ts
+++ b/packages/kilo-i18n/src/fr.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Raisonnement",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/ja.ts b/packages/kilo-i18n/src/ja.ts
index bc998f6ffd5..cbb255ee25e 100644
--- a/packages/kilo-i18n/src/ja.ts
+++ b/packages/kilo-i18n/src/ja.ts
@@ -13,4 +13,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "推論",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/ko.ts b/packages/kilo-i18n/src/ko.ts
index 2fc2522e314..5aba34cea40 100644
--- a/packages/kilo-i18n/src/ko.ts
+++ b/packages/kilo-i18n/src/ko.ts
@@ -13,4 +13,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "추론",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/no.ts b/packages/kilo-i18n/src/no.ts
index 3a643902b93..0c141192528 100644
--- a/packages/kilo-i18n/src/no.ts
+++ b/packages/kilo-i18n/src/no.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Resonnement",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/pl.ts b/packages/kilo-i18n/src/pl.ts
index 70b986b2473..363e04aa235 100644
--- a/packages/kilo-i18n/src/pl.ts
+++ b/packages/kilo-i18n/src/pl.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Rozumowanie",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/ru.ts b/packages/kilo-i18n/src/ru.ts
index 1e29dff2d42..0509880741b 100644
--- a/packages/kilo-i18n/src/ru.ts
+++ b/packages/kilo-i18n/src/ru.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "Рассуждение",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/th.ts b/packages/kilo-i18n/src/th.ts
index 8f3841dddc3..688f92fe4b6 100644
--- a/packages/kilo-i18n/src/th.ts
+++ b/packages/kilo-i18n/src/th.ts
@@ -14,4 +14,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "การให้เหตุผล",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/zh.ts b/packages/kilo-i18n/src/zh.ts
index 154be9a2088..a864cdbcd48 100644
--- a/packages/kilo-i18n/src/zh.ts
+++ b/packages/kilo-i18n/src/zh.ts
@@ -12,4 +12,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "推理",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-i18n/src/zht.ts b/packages/kilo-i18n/src/zht.ts
index eba2e72bf17..f8ea5697a64 100644
--- a/packages/kilo-i18n/src/zht.ts
+++ b/packages/kilo-i18n/src/zht.ts
@@ -12,4 +12,4 @@ export const dict = {
// Reasoning block label
"ui.reasoning.label": "推理",
-}
\ No newline at end of file
+}
diff --git a/packages/kilo-ui/src/stories/message-part.stories.tsx b/packages/kilo-ui/src/stories/message-part.stories.tsx
index 505170f180d..d2b546c3b59 100644
--- a/packages/kilo-ui/src/stories/message-part.stories.tsx
+++ b/packages/kilo-ui/src/stories/message-part.stories.tsx
@@ -206,6 +206,24 @@ export const WithReasoningCollapsed: Story = {
),
}
+export const WithReasoningExpanded: Story = {
+ name: "WithReasoning (expanded)",
+ render: () => {
+ // Use a wrapper to render with the collapsible open by default
+ const expandedReasoningPart = { ...reasoningPart, id: "part-reasoning-expanded" }
+ return (
+
+
+
+ )
+ },
+ play: async ({ canvasElement }: { canvasElement: HTMLElement }) => {
+ // Click the collapsible trigger to expand it
+ const trigger = canvasElement.querySelector("[data-slot='reasoning-header']")?.closest("button")
+ if (trigger) trigger.click()
+ },
+}
+
export const MessageSwitch: Story = {
render: () => (