diff --git a/apps/ai-game-creator-shell/src/styles.css b/apps/ai-game-creator-shell/src/styles.css
index 502d5d4a1..2d45b40e7 100644
--- a/apps/ai-game-creator-shell/src/styles.css
+++ b/apps/ai-game-creator-shell/src/styles.css
@@ -11388,6 +11388,13 @@ button.design-workspace-tree__entry:hover,
里层这几条必须带 `!important`:基础规则里那条 `.conversation-model-menu` 用
`background: … !important` 声明了菜单底色(它服务的是"菜单自己就是卡片"的旧形态)。 */
.conversation-model-select .conversation-model-menu-shell {
+ /* 锚点与独立形态的菜单同一套值(贴锚点右缘、向上展开、距锚点 8px):这是**组件级**的
+ 弹层朝向,任何宿主都该一致;宿主只决定"锚点容器"在哪(首页 `.home-input-model-select`、
+ 工作台控制排里的 `.conversation-model-select` 都是 `position: relative`)。 */
+ position: absolute;
+ right: 0;
+ bottom: calc(100% + 8px);
+ z-index: 20;
gap: 6px;
/* 合并形态的高度由内容决定(强度区 + 列表各自的上下界已经定死),
不再套用上面那条"卡片自己就是滚动区"的 194px 上限——那会把列表挤矮。 */
@@ -11465,6 +11472,214 @@ button.design-workspace-tree__entry:hover,
background: var(--platform-subpanel-border);
}
+/* ---- 强度区(组件自带类名;任何宿主共用同一份,没有宿主分支) ---- */
+
+/* 强度区:菜单顶部,与列表之间只用留白分开(不画横贯分隔线),标题左右层级分明。 */
+.project-chat-reasoning-effort.is-section {
+ display: grid;
+ /* 单列铺满:`auto` 轨道在这里只按 max-content 定尺,滑块会被压回固有宽度。 */
+ grid-template-columns: minmax(0, 1fr);
+ justify-items: stretch;
+ width: 100%;
+ align-self: stretch;
+ gap: 10px;
+ padding: 4px 6px 2px;
+}
+
+/* 滑块与档位点是一个整体:点绝对定位叠在轨道中线上(不受字号 / 行高变化影响)。 */
+.project-chat-composer-strength-slider {
+ position: relative;
+ display: grid;
+ grid-template-columns: minmax(0, 1fr);
+ width: 100%;
+}
+
+.project-chat-composer-strength-head {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: 8px;
+ min-width: 0;
+}
+
+.project-chat-composer-strength-title {
+ color: var(--platform-text-strong);
+ font-size: 12px;
+ font-weight: 600;
+}
+
+.project-chat-composer-strength-range {
+ /* 圆钮(input 的 thumb)要压在档位点之上:实心钮不该被它下面那颗点透出来。 */
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ height: 26px;
+ margin: 0;
+ appearance: none;
+ border: 0;
+ background: transparent;
+ cursor: pointer;
+}
+
+.project-chat-composer-strength-range::-webkit-slider-runnable-track {
+ height: 6px;
+ border-radius: 999px;
+ /* 已选段一直铺到圆钮右缘(`--strength-ratio` 是无单位档位比例,20px = 圆钮直径),
+ 圆钮右缘之外才是未选段;`calc` 让两端在任意轨道宽度下都对齐。 */
+ background: linear-gradient(
+ to right,
+ var(--platform-accent) 0
+ calc(20px + var(--strength-ratio, 0) * (100% - 20px)),
+ var(--platform-subpanel-border)
+ calc(20px + var(--strength-ratio, 0) * (100% - 20px)) 100%
+ );
+}
+
+.project-chat-composer-strength-range::-webkit-slider-thumb {
+ width: 20px;
+ height: 20px;
+ margin-top: -7px;
+ appearance: none;
+ border: 1px solid var(--platform-subpanel-border);
+ border-radius: 999px;
+ /* 实心暖白圆钮:用 `--platform-panel-fill`(两个主题都是不透明面板色)而不是半透明的
+ `--platform-input-highlight`——后者浅色主题只有 90% 不透明,下面的已选段会透出来,
+ 看起来就是个"靶心"。不再画中心点、也不用主色描边成空心环。 */
+ background: var(--platform-panel-fill);
+ /* 圆钮柔影:从品牌主色派生(`color-mix`,不新造 token)。 */
+ box-shadow:
+ 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent),
+ 0 1px 2px color-mix(in srgb, var(--platform-accent) 16%, transparent);
+}
+
+.project-chat-composer-strength-range:hover:not(
+ :disabled
+ )::-webkit-slider-thumb {
+ transform: scale(1.06);
+ /* 悬停把暖影压深一档(同族派生,不新造色值)。 */
+ box-shadow:
+ 0 3px 9px color-mix(in srgb, var(--platform-accent) 30%, transparent),
+ 0 1px 3px color-mix(in srgb, var(--platform-accent) 20%, transparent);
+}
+
+.project-chat-composer-strength-range:active:not(
+ :disabled
+ )::-webkit-slider-thumb {
+ transform: scale(0.96);
+}
+
+.project-chat-composer-strength-range:focus-visible {
+ outline: none;
+}
+
+.project-chat-composer-strength-range:focus-visible::-webkit-slider-thumb {
+ /* 「白钮 + 间隙 + 环」三明治:先铺一圈 2px 卡片底色当间隙,再叠焦点环——否则 3px 环
+ 紧贴 20px 白钮会被读成"空心钮/靶心"。间隙色只能用**颜色** token
+ (`--platform-panel-fill` 是渐变,写进 `box-shadow` 会让整条声明失效、连环和影子一起丢),
+ 所以取 `--platform-input-fill`;环色与厚度不变,对比度不回退。 */
+ box-shadow:
+ 0 0 0 2px var(--platform-input-fill),
+ 0 0 0 4px var(--platform-input-focus-ring),
+ 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent);
+}
+
+.project-chat-composer-strength-range:disabled {
+ cursor: not-allowed;
+ opacity: 0.55;
+}
+
+/* Firefox 的滑块伪元素与 WebKit 不同名,同一套取值再来一份。 */
+.project-chat-composer-strength-range::-moz-range-track {
+ height: 6px;
+ border-radius: 999px;
+ background: var(--platform-subpanel-border);
+}
+
+.project-chat-composer-strength-range::-moz-range-progress {
+ height: 6px;
+ border-radius: 999px;
+ background: var(--platform-accent);
+}
+
+.project-chat-composer-strength-range::-moz-range-thumb {
+ width: 20px;
+ height: 20px;
+ /* 与 WebKit 同一套实心钮:暖白底 + 极淡描边 + 柔和暖影(不用主色描边成空心环)。 */
+ border: 1px solid var(--platform-subpanel-border);
+ border-radius: 999px;
+ background: var(--platform-panel-fill);
+ box-shadow:
+ 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent),
+ 0 1px 2px color-mix(in srgb, var(--platform-accent) 16%, transparent);
+}
+
+/* 高对比(forced-colors)模式下 thumb 的 box-shadow 会被系统丢弃,焦点会完全不可见,
+ 这里回退到系统色 outline;只在 forced-colors 生效,亮色观感不受影响。 */
+@media (forced-colors: active) {
+ .project-chat-composer-strength-range:focus-visible {
+ outline: 2px solid Highlight;
+ outline-offset: 2px;
+ }
+}
+
+/* Firefox 的焦点:先关掉轨道自带的 focus-outer 描边,再给圆钮同一套「间隙 + 环」。 */
+.project-chat-composer-strength-range::-moz-focus-outer {
+ border: 0;
+}
+
+.project-chat-composer-strength-range:focus-visible::-moz-range-thumb {
+ box-shadow:
+ 0 0 0 2px var(--platform-input-fill),
+ 0 0 0 4px var(--platform-input-focus-ring),
+ 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent);
+}
+
+/* 档位点:叠在轨道**之上**(z-index 高于 input),横向跟圆钮用同一套算式——
+ 两侧内边距取「圆钮半径 − 半点宽」,`space-between` 让首末点的**中心**正好落在
+ 圆钮两端的极限位置,中间各点等距重合;当前档位那一点隐藏(圆钮已经压在那里,
+ 再画点就会变成"靶心")。 */
+.project-chat-composer-strength-stops {
+ position: absolute;
+ top: 50%;
+ right: 0;
+ left: 0;
+ z-index: 2;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ /* 两侧内边距 = 圆钮半径 10px − 半点宽 3px(点 6px 见下):首末点的**中心**因此正好落在
+ 圆钮两端的极限位置,中间各点等距重合。改点宽或钮径时这条与下面的宽高要一起改。 */
+ padding: 0 7px;
+ height: 6px;
+ transform: translateY(-50%);
+ pointer-events: none;
+}
+
+.project-chat-composer-strength-stops span {
+ box-sizing: border-box;
+ /* 变体 A:点直径 == 轨道高度(6px),不再上下各露 0.5px。 */
+ width: 6px;
+ height: 6px;
+ border-radius: 999px;
+ /* 浅暖点:轨道上可见但不抢戏(原来是与圆钮同色的深棕,压在橙色已选段上很跳)。
+ 从 `--platform-text-strong` 与轨道色派生,不新造色值;对比度实测见 PR。 */
+ background: color-mix(
+ in srgb,
+ var(--platform-text-strong) 60%,
+ var(--platform-subpanel-border)
+ );
+}
+
+.project-chat-composer-strength-stops span.is-active {
+ opacity: 0;
+}
+
+.project-chat-composer-strength-value {
+ color: var(--platform-text-soft);
+ font-size: 11px;
+ text-align: right;
+}
+
.game-workbench-chat
.project-chat-surface.is-direct-codex
.project-chat-composer
@@ -12083,20 +12298,11 @@ button.design-workspace-tree__entry:hover,
color: #a82f2f;
}
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-reasoning-effort {
- display: inline-flex;
- align-items: center;
- /* 档位文案很短(默认 / 高 / 中 / 低),不参与收缩——收缩会把它截成半个字;
- 要让位时由模型钮(名字走省略号)承担。 */
- flex: 0 0 auto;
- min-width: 0;
- gap: 6px;
-}
-
-/* 队列 chip:压在输入区上方,横向排布、超出换行。 */
+/* 独立「推理档」控件已经并入模型菜单(`.project-chat-reasoning-effort.is-section`,
+ 观感见文件上方「模型菜单的共享样式面」);这里那条给它排版的
+ `.game-workbench-chat … .project-chat-reasoning-effort` 规则(`display: inline-flex` 一族)
+ 会以更高特异性盖掉共享面的 `display: grid`,已按「删死重」删除。
+ 队列 chip:压在输入区上方,横向排布、超出换行。 */
.game-workbench-chat
.project-chat-surface.is-direct-codex
.project-chat-composer.is-direct-codex
@@ -13562,26 +13768,9 @@ details.design-agent-reasoning[open]
text-overflow: ellipsis;
}
-/* 推理档的读写失败提示整行右对齐(`flex: 0 0 auto` 已写回上面那条推理档规则)。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-controls
- .project-chat-reasoning-effort {
- flex-wrap: wrap;
- justify-content: flex-end;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-controls
- .project-chat-reasoning-effort
- .project-chat-composer-notice {
- flex: 1 1 100%;
- margin: 0;
- text-align: right;
-}
+/* 上面两条给独立「推理档」控件排版的规则(`flex-wrap` / `justify-content` / 提示整行)
+ 随该控件并入模型菜单一起退役:现役元素是 `.project-chat-reasoning-effort.is-section`
+ (网格,观感见「模型菜单的共享样式面」),`flex-*` 对它无效。 */
/* ② 模型控件的错误 / 状态提示:**不在控件里渲染**。
这一段原来把 `.conversation-model-select [role='alert']` 从 `bottom: 36px` 浮层收回
@@ -13595,288 +13784,12 @@ details.design-agent-reasoning[open]
队列 chip 与提示段落的 `margin` 都写回前文各自那条规则。 */
/* ④ 思维强度**并入模型菜单**:底行只留模型触发钮一颗控件,强度区嵌在菜单顶部。
- 外壳(`.conversation-model-menu-shell`)沿用原来模型菜单的锚点与朝向(贴触发钮右缘、
- 向上展开、距输入区 8px)——这是**宿主专属的几何**,留在工作台作用域。
- 卡片 / 列表的观感(圆角、内边距、阴影、描边、行高 34px、hover、选中 pill、细滚动条)已抬到
- 文件上方「模型菜单的共享样式面」一节(选择器只用 `.conversation-model-select` 一族),
- 首页等宿主共用同一份,这里不再抄第二遍。
+ 外壳(`.conversation-model-menu-shell`)的锚点与朝向是**组件级**的(见文件上方「模型菜单的
+ 共享样式面」:`position: absolute; right: 0; bottom: calc(100% + 8px)`,首页那颗同一套);
+ 这里不再有工作台专属的浮层 / 卡片 / 强度区规则。
强度区里是原生 ``,自带 `role="slider"`、`aria-valuemin/max/now`
与 ←/→/Home/End,`aria-valuetext` 报中文档位名,点轨道或拖拽按 `step` 吸附到档位。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .conversation-model-menu-shell {
- position: absolute;
- right: 0;
- bottom: calc(100% + 8px);
- z-index: 20;
-}
-/* 强度区:菜单顶部,与列表之间只用留白分开(不画横贯分隔线),标题左右层级分明。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-reasoning-effort.is-section {
- display: grid;
- /* 单列铺满:`auto` 轨道在这里只按 max-content 定尺,滑块会被压回固有宽度。 */
- grid-template-columns: minmax(0, 1fr);
- justify-items: stretch;
- width: 100%;
- align-self: stretch;
- gap: 10px;
- padding: 4px 6px 2px;
-}
-
-/* 滑块与档位点是一个整体:点绝对定位叠在轨道中线上(不受字号 / 行高变化影响)。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-slider {
- position: relative;
- display: grid;
- grid-template-columns: minmax(0, 1fr);
- width: 100%;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-head {
- display: flex;
- align-items: baseline;
- justify-content: space-between;
- gap: 8px;
- min-width: 0;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-title {
- color: var(--platform-text-strong);
- font-size: 12px;
- font-weight: 600;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range {
- /* 圆钮(input 的 thumb)要压在档位点之上:实心钮不该被它下面那颗点透出来。 */
- position: relative;
- z-index: 1;
- width: 100%;
- height: 26px;
- margin: 0;
- appearance: none;
- border: 0;
- background: transparent;
- cursor: pointer;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range::-webkit-slider-runnable-track {
- height: 6px;
- border-radius: 999px;
- /* 已选段一直铺到圆钮右缘(`--strength-ratio` 是无单位档位比例,20px = 圆钮直径),
- 圆钮右缘之外才是未选段;`calc` 让两端在任意轨道宽度下都对齐。 */
- background: linear-gradient(
- to right,
- var(--platform-accent) 0
- calc(20px + var(--strength-ratio, 0) * (100% - 20px)),
- var(--platform-subpanel-border)
- calc(20px + var(--strength-ratio, 0) * (100% - 20px)) 100%
- );
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range::-webkit-slider-thumb {
- width: 20px;
- height: 20px;
- margin-top: -7px;
- appearance: none;
- border: 1px solid var(--platform-subpanel-border);
- border-radius: 999px;
- /* 实心暖白圆钮:用 `--platform-panel-fill`(两个主题都是不透明面板色)而不是半透明的
- `--platform-input-highlight`——后者浅色主题只有 90% 不透明,下面的已选段会透出来,
- 看起来就是个"靶心"。不再画中心点、也不用主色描边成空心环。 */
- background: var(--platform-panel-fill);
- /* 圆钮柔影:从品牌主色派生(`color-mix`,不新造 token)。 */
- box-shadow:
- 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent),
- 0 1px 2px color-mix(in srgb, var(--platform-accent) 16%, transparent);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:hover:not(
- :disabled
- )::-webkit-slider-thumb {
- transform: scale(1.06);
- /* 悬停把暖影压深一档(同族派生,不新造色值)。 */
- box-shadow:
- 0 3px 9px color-mix(in srgb, var(--platform-accent) 30%, transparent),
- 0 1px 3px color-mix(in srgb, var(--platform-accent) 20%, transparent);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:active:not(
- :disabled
- )::-webkit-slider-thumb {
- transform: scale(0.96);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:focus-visible {
- outline: none;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:focus-visible::-webkit-slider-thumb {
- /* 「白钮 + 间隙 + 环」三明治:先铺一圈 2px 卡片底色当间隙,再叠焦点环——否则 3px 环
- 紧贴 20px 白钮会被读成"空心钮/靶心"。间隙色只能用**颜色** token
- (`--platform-panel-fill` 是渐变,写进 `box-shadow` 会让整条声明失效、连环和影子一起丢),
- 所以取 `--platform-input-fill`;环色与厚度不变,对比度不回退。 */
- box-shadow:
- 0 0 0 2px var(--platform-input-fill),
- 0 0 0 4px var(--platform-input-focus-ring),
- 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:disabled {
- cursor: not-allowed;
- opacity: 0.55;
-}
-
-/* Firefox 的滑块伪元素与 WebKit 不同名,同一套取值再来一份。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range::-moz-range-track {
- height: 6px;
- border-radius: 999px;
- background: var(--platform-subpanel-border);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range::-moz-range-progress {
- height: 6px;
- border-radius: 999px;
- background: var(--platform-accent);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range::-moz-range-thumb {
- width: 20px;
- height: 20px;
- /* 与 WebKit 同一套实心钮:暖白底 + 极淡描边 + 柔和暖影(不用主色描边成空心环)。 */
- border: 1px solid var(--platform-subpanel-border);
- border-radius: 999px;
- background: var(--platform-panel-fill);
- box-shadow:
- 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent),
- 0 1px 2px color-mix(in srgb, var(--platform-accent) 16%, transparent);
-}
-
-/* 高对比(forced-colors)模式下 thumb 的 box-shadow 会被系统丢弃,焦点会完全不可见,
- 这里回退到系统色 outline;只在 forced-colors 生效,亮色观感不受影响。 */
-@media (forced-colors: active) {
- .game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:focus-visible {
- outline: 2px solid Highlight;
- outline-offset: 2px;
- }
-}
-
-/* Firefox 的焦点:先关掉轨道自带的 focus-outer 描边,再给圆钮同一套「间隙 + 环」。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range::-moz-focus-outer {
- border: 0;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-range:focus-visible::-moz-range-thumb {
- box-shadow:
- 0 0 0 2px var(--platform-input-fill),
- 0 0 0 4px var(--platform-input-focus-ring),
- 0 2px 6px color-mix(in srgb, var(--platform-accent) 24%, transparent);
-}
-
-/* 档位点:叠在轨道**之上**(z-index 高于 input),横向跟圆钮用同一套算式——
- 两侧内边距取「圆钮半径 − 半点宽」,`space-between` 让首末点的**中心**正好落在
- 圆钮两端的极限位置,中间各点等距重合;当前档位那一点隐藏(圆钮已经压在那里,
- 再画点就会变成"靶心")。 */
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-stops {
- position: absolute;
- top: 50%;
- right: 0;
- left: 0;
- z-index: 2;
- display: flex;
- align-items: center;
- justify-content: space-between;
- /* 两侧内边距 = 圆钮半径 10px − 半点宽 3.5px(点 7px 见下):首末点的**中心**因此正好落在
- 圆钮两端的极限位置,中间各点等距重合。改点宽或钮径时这条与下面的宽高要一起改。 */
- padding: 0 6.5px;
- height: 6px;
- transform: translateY(-50%);
- pointer-events: none;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-stops
- span {
- box-sizing: border-box;
- width: 7px;
- height: 7px;
- /* 点用深暖底、浅底描边:叠在暖灰轨道上看得到边界(对比度实测见 PR)。 */
- border: 1.5px solid var(--platform-input-highlight);
- border-radius: 999px;
- background: var(--platform-text-strong);
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-stops
- span.is-active {
- opacity: 0;
-}
-
-.game-workbench-chat
- .project-chat-surface.is-direct-codex
- .project-chat-composer.is-direct-codex
- .project-chat-composer-strength-value {
- color: var(--platform-text-soft);
- font-size: 11px;
- text-align: right;
-}
+/* 强度区的观感(标题 / 滑块 / 档位点)同样已经抬到文件上方「模型菜单的共享样式面」一节,
+ 选择器只用组件自带类名(`.project-chat-reasoning-effort.is-section` 一族),
+ 首页与工作台共用同一份;这里不再有工作台专属的强度区规则。 */
diff --git a/apps/ai-game-creator-shell/src/view/home/index.tsx b/apps/ai-game-creator-shell/src/view/home/index.tsx
index 64307288d..97dab66c9 100644
--- a/apps/ai-game-creator-shell/src/view/home/index.tsx
+++ b/apps/ai-game-creator-shell/src/view/home/index.tsx
@@ -16,6 +16,7 @@ import type { ProjectStartMode } from '../../app/types';
import { resolveHomeCreationFailureMessage } from '../../features/app-shell/homeCreationFailure';
import { ConversationModelSelect } from '../../features/project-workspace/ConversationModelSelect';
import type { GameTemplateEntry } from '../../features/template-library/templateLibraryModel';
+import { ComposerReasoningEffortSelect } from '../project-development/chat/components/DirectProjectComposer/ComposerControls';
import RichInputArea, { UploadButton } from './components/RichInputArea';
import {
richTextToAttachments,
@@ -297,6 +298,14 @@ export default function HomeView({
+ }
/>