+ {tasks.map((task, index) => (
+
+ {task.description &&
{task.description}
}
+ {task.instruction && (
+
+
+ {task.instruction}
+
+
+ )}
+
+ ))}
+
+ );
+});
+
+ExecTasksStreaming.displayName = 'ExecTasksStreaming';
+
+export default ExecTasksStreaming;
diff --git a/packages/builtin-tool-gtd/src/client/Streaming/index.ts b/packages/builtin-tool-gtd/src/client/Streaming/index.ts
new file mode 100644
index 0000000000..8f56c47378
--- /dev/null
+++ b/packages/builtin-tool-gtd/src/client/Streaming/index.ts
@@ -0,0 +1,18 @@
+import type { BuiltinStreaming } from '@lobechat/types';
+
+import { GTDApiName } from '../../types';
+import { ExecTaskStreaming } from './ExecTask';
+import { ExecTasksStreaming } from './ExecTasks';
+
+/**
+ * GTD Streaming Components Registry
+ *
+ * Streaming components render tool calls while they are
+ * still executing, allowing real-time feedback to users.
+ */
+export const GTDStreamings: Record