

























@@ -65,6 +65,55 @@ function stripFormattedReasoningMessage(text: string): string {
6565return lines.slice(index).join("\n").trim();
6666}
676768+function sanitizePresentationTextFields(value: unknown): unknown {
69+if (!value || typeof value !== "object" || Array.isArray(value)) {
70+return value;
71+}
72+const presentation = { ...(value as Record<string, unknown>) };
73+if (typeof presentation.title === "string") {
74+presentation.title = stripFormattedReasoningMessage(presentation.title);
75+}
76+if (Array.isArray(presentation.blocks)) {
77+presentation.blocks = presentation.blocks.map((block) => {
78+if (!block || typeof block !== "object" || Array.isArray(block)) {
79+return block;
80+}
81+const sanitizedBlock = { ...(block as Record<string, unknown>) };
82+for (const field of ["text", "placeholder"]) {
83+if (typeof sanitizedBlock[field] === "string") {
84+sanitizedBlock[field] = stripFormattedReasoningMessage(sanitizedBlock[field]);
85+}
86+}
87+if (Array.isArray(sanitizedBlock.buttons)) {
88+sanitizedBlock.buttons = sanitizedBlock.buttons.map((button) => {
89+if (!button || typeof button !== "object" || Array.isArray(button)) {
90+return button;
91+}
92+const sanitizedButton = { ...(button as Record<string, unknown>) };
93+if (typeof sanitizedButton.label === "string") {
94+sanitizedButton.label = stripFormattedReasoningMessage(sanitizedButton.label);
95+}
96+return sanitizedButton;
97+});
98+}
99+if (Array.isArray(sanitizedBlock.options)) {
100+sanitizedBlock.options = sanitizedBlock.options.map((option) => {
101+if (!option || typeof option !== "object" || Array.isArray(option)) {
102+return option;
103+}
104+const sanitizedOption = { ...(option as Record<string, unknown>) };
105+if (typeof sanitizedOption.label === "string") {
106+sanitizedOption.label = stripFormattedReasoningMessage(sanitizedOption.label);
107+}
108+return sanitizedOption;
109+});
110+}
111+return sanitizedBlock;
112+});
113+}
114+return presentation;
115+}
116+68117function buildRoutingSchema() {
69118return {
70119channel: Type.Optional(Type.String()),
@@ -715,6 +764,7 @@ export function createMessageTool(options?: MessageToolOptions): AnyAgentTool {
715764params[field] = stripFormattedReasoningMessage(params[field]);
716765}
717766}
767+params.presentation = sanitizePresentationTextFields(params.presentation);
718768719769const action = readStringParam(params, "action", {
720770required: true,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。