@tdesign-react/chat 1.1.0-alpha.3 → 1.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/es/_chunks/dep-24472232.js +839 -0
  2. package/es/_chunks/dep-24472232.js.map +1 -0
  3. package/es/_chunks/dep-bcb234a1.js +839 -0
  4. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  5. package/es/_util/reactify.js +1 -1
  6. package/es/_util/useDynamicStyle.js +1 -1
  7. package/es/attachments/index.js +1 -1
  8. package/es/chat-actionbar/index.js +1 -1
  9. package/es/chat-engine/components/activity/index.js +1 -1
  10. package/es/chat-engine/components/activity/registry.js +1 -1
  11. package/es/chat-engine/components/activity/render.js +1 -1
  12. package/es/chat-engine/components/activity/types.js +1 -1
  13. package/es/chat-engine/components/index.js +4 -2
  14. package/es/chat-engine/components/index.js.map +1 -1
  15. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +2 -2
  16. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +2 -2
  17. package/es/chat-engine/components/json-render/SurfaceStateManager.js +1 -1
  18. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +1 -1
  19. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +1 -1
  20. package/es/chat-engine/components/json-render/adapters/index.js +1 -1
  21. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +2 -2
  22. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +2 -2
  23. package/es/chat-engine/components/json-render/catalog/button.js +1 -1
  24. package/es/chat-engine/components/json-render/catalog/card.js +1 -1
  25. package/es/chat-engine/components/json-render/catalog/index.js +2 -2
  26. package/es/chat-engine/components/json-render/catalog/input.js +2 -2
  27. package/es/chat-engine/components/json-render/catalog/layout.js +1 -1
  28. package/es/chat-engine/components/json-render/catalog/text.js +1 -1
  29. package/es/chat-engine/components/json-render/catalog.js +248 -28
  30. package/es/chat-engine/components/json-render/catalog.js.map +1 -1
  31. package/es/chat-engine/components/json-render/config.js +2 -2
  32. package/es/chat-engine/components/json-render/contexts/actions.js +1 -1
  33. package/es/chat-engine/components/json-render/contexts/data.js +1 -1
  34. package/es/chat-engine/components/json-render/contexts/validation.js +1 -1
  35. package/es/chat-engine/components/json-render/contexts/visibility.js +1 -1
  36. package/es/chat-engine/components/json-render/engine.js +1 -1
  37. package/es/chat-engine/components/json-render/index.js +2 -2
  38. package/es/chat-engine/components/json-render/performance.js +1 -1
  39. package/es/chat-engine/components/json-render/renderer.js +1 -1
  40. package/es/chat-engine/components/json-render/types.js +1 -1
  41. package/es/chat-engine/components/provider/agent-state.js +3 -1
  42. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  43. package/es/chat-engine/components/toolcall/index.js +3 -1
  44. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  45. package/es/chat-engine/components/toolcall/registry.js +1 -1
  46. package/es/chat-engine/components/toolcall/render.js +4 -2
  47. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  48. package/es/chat-engine/components/toolcall/types.js +1 -1
  49. package/es/chat-engine/core/adapters/agui/activity-manager.js +7 -1
  50. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -1
  51. package/es/chat-engine/core/adapters/agui/event-mapper.js +3 -1
  52. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  53. package/es/chat-engine/core/adapters/agui/events.js +1 -1
  54. package/es/chat-engine/core/adapters/agui/index.js +5 -3
  55. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  56. package/es/chat-engine/core/adapters/agui/state-manager.js +7 -1
  57. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -1
  58. package/es/chat-engine/core/adapters/agui/types.js +1 -1
  59. package/es/chat-engine/core/adapters/agui/utils.js +1 -1
  60. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  61. package/es/chat-engine/core/event-bus/index.js +1 -1
  62. package/es/chat-engine/core/event-bus/types.js +1 -1
  63. package/es/chat-engine/core/index.js +5 -3
  64. package/es/chat-engine/core/index.js.map +1 -1
  65. package/es/chat-engine/core/processor/index.js +1 -1
  66. package/es/chat-engine/core/server/batch-client.js +1 -1
  67. package/es/chat-engine/core/server/connection-manager.js +1 -1
  68. package/es/chat-engine/core/server/errors.js +1 -1
  69. package/es/chat-engine/core/server/index.js +1 -1
  70. package/es/chat-engine/core/server/llm-service.js +1 -1
  71. package/es/chat-engine/core/server/sse-client.js +1 -1
  72. package/es/chat-engine/core/server/sse-parser.js +1 -1
  73. package/es/chat-engine/core/server/types.js +1 -1
  74. package/es/chat-engine/core/store/message.js +4 -2
  75. package/es/chat-engine/core/store/message.js.map +1 -1
  76. package/es/chat-engine/core/store/model.js +1 -1
  77. package/es/chat-engine/core/store/reactiveState.js +1 -1
  78. package/es/chat-engine/core/type.js +1 -1
  79. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  80. package/es/chat-engine/core/utils/index.js +10 -880
  81. package/es/chat-engine/core/utils/index.js.map +1 -1
  82. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  83. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  84. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  85. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  86. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  87. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  88. package/es/chat-engine/core/utils/logger.js +1 -1
  89. package/es/chat-engine/hooks/index.js +3 -1
  90. package/es/chat-engine/hooks/index.js.map +1 -1
  91. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  92. package/es/chat-engine/hooks/useAgentState.js +3 -1
  93. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  94. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  95. package/es/chat-engine/hooks/useChat.js +3 -1
  96. package/es/chat-engine/hooks/useChat.js.map +1 -1
  97. package/es/chat-engine/hooks/useJsonRenderActivity.js +2 -2
  98. package/es/chat-engine/index.js +4 -2
  99. package/es/chat-engine/index.js.map +1 -1
  100. package/es/chat-filecard/index.js +1 -1
  101. package/es/chat-loading/index.js +1 -1
  102. package/es/chat-markdown/index.js +1 -1
  103. package/es/chat-message/index.js +1 -1
  104. package/es/chat-sender/index.js +1 -1
  105. package/es/chat-thinking/index.js +1 -1
  106. package/es/chatbot/index.js +1 -1
  107. package/es/index.js +4 -2
  108. package/es/index.js.map +1 -1
  109. package/es/style/index.js +1 -1
  110. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/catalog.ts"],"sourcesContent":["/**\n * TDesign Catalog 定义(约束层)\n * 用于定义组件 props schema 和 actions 白名单\n * \n * 概念区分:\n * - Catalog(本文件):约束层,定义组件 props 的 Zod schemas 和 actions 白名单(给 AI/服务端用)\n * - ComponentRegistry(catalog/index.ts):渲染层,映射组件名到 React 组件(给 Renderer 用)\n */\n\nimport { createCatalog } from '@json-render/core';\nimport { z } from 'zod';\n\n/**\n * TDesign 内置组件 Catalog\n * 定义所有内置组件的 props schema 和可用 actions\n * \n * 这个 Catalog 用于:\n * 1. 告诉 AI/LLM 可以生成哪些组件\n * 2. 约束每个组件的 props 类型\n * 3. 定义可触发的 actions 白名单\n */\nexport const tdesignCatalog = createCatalog({\n name: 'tdesign',\n components: {\n // ==================== 基础组件 ====================\n \n Button: {\n props: z.object({\n // 支持 label 或 children 两种方式传递按钮文本\n label: z.string().optional(),\n children: z.string().optional(),\n variant: z.enum(['base', 'outline', 'dashed', 'text']).nullable(),\n theme: z.enum(['default', 'primary', 'success', 'warning', 'danger']).nullable(),\n size: z.enum(['small', 'medium', 'large']).nullable(),\n disabled: z.boolean().nullable(),\n loading: z.boolean().nullable(),\n block: z.boolean().nullable(),\n // action 支持字符串(action 名称)或 Action 对象 { name, params }\n action: z.union([\n z.string(),\n z.object({\n name: z.string(),\n params: z.record(z.any()).optional(),\n }),\n ]).nullable(),\n }),\n description: 'TDesign Button component with action support',\n },\n\n Input: {\n props: z.object({\n value: z.string().nullable(),\n placeholder: z.string().nullable(),\n type: z.enum(['text', 'password', 'number']).nullable(),\n disabled: z.boolean().nullable(),\n clearable: z.boolean().nullable(),\n maxlength: z.number().nullable(),\n showLimitNumber: z.boolean().nullable(),\n }),\n description: 'TDesign Input component',\n },\n\n TextField: {\n props: z.object({\n label: z.string(),\n name: z.string().optional(), // 表单字段名称(可选)\n valuePath: z.string(), // 数据绑定路径(必需)\n placeholder: z.string().nullable(),\n required: z.boolean().nullable(),\n type: z.enum(['text', 'password', 'email', 'number', 'tel']).nullable(),\n disabled: z.boolean().nullable(),\n helperText: z.string().nullable(),\n }),\n description: 'Form text field with label and data binding (combines Input + label)',\n },\n\n Text: {\n props: z.object({\n content: z.string(),\n variant: z.enum(['body', 'caption', 'label']).nullable(),\n color: z.enum(['default', 'primary', 'secondary', 'success', 'warning', 'error']).nullable(),\n weight: z.enum(['normal', 'medium', 'bold']).nullable(),\n }),\n description: 'Text display component',\n },\n\n Card: {\n props: z.object({\n title: z.string().nullable(),\n description: z.string().nullable(),\n bordered: z.boolean().nullable(),\n shadow: z.boolean().nullable(),\n loading: z.boolean().nullable(),\n }),\n hasChildren: true,\n description: 'TDesign Card container',\n },\n\n // ==================== 布局组件 ====================\n\n Row: {\n props: z.object({\n gutter: z.number().nullable(),\n justify: z.enum(['start', 'end', 'center', 'space-around', 'space-between']).nullable(),\n align: z.enum(['top', 'middle', 'bottom']).nullable(),\n }),\n hasChildren: true,\n description: 'Grid row layout',\n },\n\n Col: {\n props: z.object({\n span: z.number().min(1).max(24).nullable(),\n offset: z.number().nullable(),\n }),\n hasChildren: true,\n description: 'Grid column layout',\n },\n\n Space: {\n props: z.object({\n direction: z.enum(['horizontal', 'vertical']).nullable(),\n // size 支持字符串枚举或数字\n size: z.union([\n z.enum(['small', 'medium', 'large']),\n z.number(),\n z.string(),\n ]).nullable(),\n align: z.enum(['start', 'center', 'end', 'baseline']).nullable(),\n }),\n hasChildren: true,\n description: 'Space layout component',\n },\n\n Column: {\n props: z.object({\n gap: z.number().nullable(),\n align: z.enum(['start', 'center', 'end', 'stretch']).nullable(),\n }),\n hasChildren: true,\n description: 'Vertical column layout',\n },\n\n Divider: {\n props: z.object({\n layout: z.enum(['horizontal', 'vertical']).nullable(),\n dashed: z.boolean().nullable(),\n }),\n description: 'Divider line',\n },\n },\n \n actions: {\n submit: { \n description: 'Submit form data to server' \n },\n reset: { \n description: 'Reset form to initial state (handled by Button component automatically)' \n },\n cancel: { \n description: 'Cancel current operation' \n },\n },\n \n validation: 'strict',\n});\n\n/**\n * 创建自定义 Catalog(扩展 TDesign 内置 Catalog)\n * \n * @param customConfig - 自定义 Catalog 配置\n * @returns 合并后的 Catalog\n * \n * @example\n * ```typescript\n * import { createCustomCatalog } from '@tdesign-react/chat';\n * import { z } from 'zod';\n * \n * const customCatalog = createCustomCatalog({\n * name: 'my-dashboard',\n * components: {\n * StatusCard: {\n * props: z.object({\n * title: z.string(),\n * status: z.enum(['success', 'warning', 'error', 'info']),\n * description: z.string().nullable(),\n * }),\n * description: 'Custom status card component',\n * },\n * ProgressBar: {\n * props: z.object({\n * label: z.string().nullable(),\n * percentage: z.number().min(0).max(100),\n * showInfo: z.boolean().nullable(),\n * }),\n * description: 'Custom progress bar component',\n * },\n * },\n * actions: {\n * refresh: { description: 'Refresh data' },\n * export: { description: 'Export to file' },\n * },\n * });\n * \n * // 使用自定义 Catalog\n * // 1. 在服务端:告诉 AI 可以生成哪些组件\n * // 2. 在前端:配合 createCustomRegistry 提供渲染能力\n * ```\n */\nexport function createCustomCatalog(customConfig: {\n name: string;\n components?: Record<string, any>;\n actions?: Record<string, { description: string }>;\n validation?: 'strict' | 'warn';\n}) {\n // 获取 TDesign 内置配置\n const tdesignComponents = tdesignCatalog.components;\n const tdesignActions = tdesignCatalog.actions;\n\n // 合并配置\n return createCatalog({\n name: customConfig.name,\n components: {\n ...tdesignComponents,\n ...(customConfig.components || {}),\n },\n actions: {\n ...tdesignActions,\n ...(customConfig.actions || {}),\n },\n validation: customConfig.validation || 'strict',\n });\n}\n\n/**\n * 导出 TDesign Catalog 的组件列表(给 AI prompt 用)\n */\nexport const tdesignComponentList = tdesignCatalog.componentNames as string[];\n\n/**\n * 导出 TDesign Catalog 的 actions 列表(给 AI prompt 用)\n */\nexport const tdesignActionList = tdesignCatalog.actionNames as string[];\n\n/**\n * 内置组件的详细 Props 文档(用于生成详细 prompt)\n */\nconst BUILTIN_COMPONENT_DOCS: Record<string, { \n description: string;\n props: Record<string, string>;\n hasChildren?: boolean;\n}> = {\n Button: {\n description: 'Button component with action support',\n props: {\n label: 'string - Button text (alternative to children)',\n children: 'string - Button text',\n variant: '\"base\" | \"outline\" | \"dashed\" | \"text\" - Button style variant',\n theme: '\"default\" | \"primary\" | \"success\" | \"warning\" | \"danger\" - Color theme',\n size: '\"small\" | \"medium\" | \"large\" - Button size',\n disabled: 'boolean - Whether button is disabled',\n loading: 'boolean - Whether to show loading state',\n block: 'boolean - Whether button should be full width',\n action: 'string | { name: string, params?: object } - Action to trigger on click',\n },\n },\n Input: {\n description: 'Input component for text entry',\n props: {\n value: 'string - Input value',\n placeholder: 'string - Placeholder text',\n type: '\"text\" | \"password\" | \"number\" - Input type',\n disabled: 'boolean - Whether input is disabled',\n clearable: 'boolean - Whether to show clear button',\n maxlength: 'number - Maximum input length',\n showLimitNumber: 'boolean - Whether to show character count',\n },\n },\n TextField: {\n description: 'Form text field with label and data binding',\n props: {\n label: 'string (required) - Field label',\n name: 'string - Form field name',\n valuePath: 'string (required) - Data binding path in data model',\n placeholder: 'string - Placeholder text',\n required: 'boolean - Whether field is required',\n type: '\"text\" | \"password\" | \"email\" | \"number\" | \"tel\" - Input type',\n disabled: 'boolean - Whether field is disabled',\n disabledPath: 'string - Data path to control disabled state dynamically',\n helperText: 'string - Helper text below the field',\n },\n },\n Text: {\n description: 'Text display component',\n props: {\n content: 'string (required) - Text content to display',\n variant: '\"body\" | \"caption\" | \"label\" - Text style variant',\n color: '\"default\" | \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"error\" - Text color',\n weight: '\"normal\" | \"medium\" | \"bold\" - Font weight',\n },\n },\n Card: {\n description: 'Card container component',\n props: {\n title: 'string - Card title',\n description: 'string - Card description',\n bordered: 'boolean - Whether to show border',\n shadow: 'boolean - Whether to show shadow',\n loading: 'boolean - Whether to show loading state',\n },\n hasChildren: true,\n },\n Row: {\n description: 'Grid row layout (24-column grid system)',\n props: {\n gutter: 'number - Gap between columns in pixels',\n justify: '\"start\" | \"end\" | \"center\" | \"space-around\" | \"space-between\" - Horizontal alignment',\n align: '\"top\" | \"middle\" | \"bottom\" - Vertical alignment',\n },\n hasChildren: true,\n },\n Col: {\n description: 'Grid column layout (use inside Row)',\n props: {\n span: 'number (1-24) - Column width, out of 24 total',\n offset: 'number - Column offset from left',\n },\n hasChildren: true,\n },\n Space: {\n description: 'Space layout component for spacing children',\n props: {\n direction: '\"horizontal\" | \"vertical\" - Layout direction',\n size: '\"small\" | \"medium\" | \"large\" | number - Gap size',\n align: '\"start\" | \"center\" | \"end\" | \"baseline\" - Alignment',\n },\n hasChildren: true,\n },\n Column: {\n description: 'Vertical column layout',\n props: {\n gap: 'number - Gap between children in pixels',\n align: '\"start\" | \"center\" | \"end\" | \"stretch\" - Horizontal alignment',\n },\n hasChildren: true,\n },\n Divider: {\n description: 'Divider line',\n props: {\n layout: '\"horizontal\" | \"vertical\" - Divider direction',\n dashed: 'boolean - Whether to use dashed line',\n },\n },\n};\n\n/**\n * Prompt 模板模式\n * - 'default': 默认模板,生成标准的 JSON Schema UI\n * - 'a2ui': A2UI 模板,使用 A2UI 特定的消息格式和协议\n * - 'custom': 自定义模板,完全由 customTemplate 参数控制\n */\nexport type PromptTemplateMode = 'default' | 'a2ui' | 'custom';\n\n/**\n * 组件文档定义类型\n * props 支持两种格式:\n * 1. Record<string, string> - 人可读的 props 描述,如 { label: 'string - Button text' }\n * 2. ZodObject - Zod schema 对象,会自动转换为描述\n */\nexport interface ComponentDoc {\n description: string;\n /** Props 定义:可以是字符串描述映射,也可以是 Zod schema */\n props: Record<string, string> | z.ZodObject<any>;\n hasChildren?: boolean;\n}\n\n/**\n * 内部使用的标准化组件文档类型(props 已转为字符串)\n */\nexport interface NormalizedComponentDoc {\n description: string;\n props: Record<string, string>;\n hasChildren?: boolean;\n}\n\n/**\n * 将 Zod schema 转换为 props 描述字符串\n */\nfunction zodSchemaToPropsDoc(schema: z.ZodObject<any>): Record<string, string> {\n const result: Record<string, string> = {};\n const shape = schema.shape;\n \n for (const [key, value] of Object.entries(shape)) {\n result[key] = zodTypeToString(value as z.ZodTypeAny);\n }\n \n return result;\n}\n\n/**\n * 将 Zod 类型转换为可读字符串\n */\nfunction zodTypeToString(type: z.ZodTypeAny): string {\n // 处理 nullable\n if (type instanceof z.ZodNullable) {\n return `${zodTypeToString(type.unwrap())} (nullable)`;\n }\n \n // 处理 optional\n if (type instanceof z.ZodOptional) {\n return `${zodTypeToString(type.unwrap())} (optional)`;\n }\n \n // 处理 enum\n if (type instanceof z.ZodEnum) {\n const values = type.options as string[];\n return values.map(v => `\"${v}\"`).join(' | ');\n }\n \n // 处理 union\n if (type instanceof z.ZodUnion) {\n const options = (type as any)._def.options as z.ZodTypeAny[];\n return options.map(o => zodTypeToString(o)).join(' | ');\n }\n \n // 处理基础类型\n if (type instanceof z.ZodString) return 'string';\n if (type instanceof z.ZodNumber) return 'number';\n if (type instanceof z.ZodBoolean) return 'boolean';\n if (type instanceof z.ZodObject) return 'object';\n if (type instanceof z.ZodArray) return 'array';\n \n return 'any';\n}\n\n/**\n * 标准化组件文档(将 Zod schema 转换为字符串描述)\n */\nfunction normalizeComponentDoc(doc: ComponentDoc): NormalizedComponentDoc {\n let props: Record<string, string>;\n \n if (doc.props instanceof z.ZodObject) {\n props = zodSchemaToPropsDoc(doc.props);\n } else {\n props = doc.props;\n }\n \n return {\n description: doc.description,\n props,\n hasChildren: doc.hasChildren,\n };\n}\n\n/**\n * 自定义模板生成器函数类型\n * 接收标准化后的组件文档(props 已转为字符串描述)\n */\nexport type CustomTemplateGenerator = (context: {\n name: string;\n components: Record<string, NormalizedComponentDoc>;\n actions: Record<string, { description: string }>;\n}) => string;\n\n/**\n * 生成增强版 Catalog Prompt(包含完整 Props 文档和 Schema 示例)\n * \n * @param options - 配置选项\n * @returns 详细的 AI Prompt 字符串\n */\nexport function generateCatalogPrompt(options: {\n name?: string;\n components?: Record<string, ComponentDoc>;\n actions?: Record<string, { description: string }>;\n /** 是否包含 Schema 示例 */\n includeExample?: boolean;\n /** \n * Prompt 模板模式\n * - 'default': 标准 JSON Schema UI 模板\n * - 'a2ui': A2UI 协议模板(需服务端配合)\n * - 'custom': 使用自定义模板生成器\n */\n templateMode?: PromptTemplateMode;\n /**\n * 自定义模板生成器(仅当 templateMode='custom' 时使用)\n * 接收组件和 actions 上下文,返回完整的 prompt 字符串\n */\n customTemplate?: CustomTemplateGenerator;\n} = {}): string {\n const {\n name = 'tdesign',\n components = {},\n actions = {},\n includeExample = true,\n templateMode = 'default',\n customTemplate,\n } = options;\n\n // 合并内置组件和自定义组件,并标准化(将 Zod schema 转为字符串描述)\n const mergedComponents = { ...BUILTIN_COMPONENT_DOCS, ...components };\n const allComponents: Record<string, NormalizedComponentDoc> = {};\n for (const [key, doc] of Object.entries(mergedComponents)) {\n allComponents[key] = normalizeComponentDoc(doc);\n }\n \n // 合并内置 actions 和自定义 actions\n const builtinActions = {\n submit: { description: 'Submit form data to server' },\n reset: { description: 'Reset form to initial state' },\n cancel: { description: 'Cancel current operation' },\n };\n const allActions = { ...builtinActions, ...actions };\n\n // 自定义模板模式\n if (templateMode === 'custom' && customTemplate) {\n return customTemplate({ name, components: allComponents, actions: allActions });\n }\n\n // A2UI 模板模式 - 预留给服务端实现具体模板\n if (templateMode === 'a2ui') {\n return generateA2UIPrompt({ name, components: allComponents, actions: allActions, includeExample });\n }\n\n // 默认模板\n const lines: string[] = [\n `# ${name} UI Component Catalog`,\n '',\n 'You can generate dynamic UI using the following components and JSON schema format.',\n '',\n '## Output Format',\n '',\n 'Generate a JSON object with this structure:',\n '```json',\n '{',\n ' \"root\": \"element_id\", // ID of the root element',\n ' \"elements\": {',\n ' \"element_id\": {',\n ' \"key\": \"element_id\", // Same as the key in elements object',\n ' \"type\": \"ComponentName\", // One of the available components',\n ' \"props\": { ... }, // Component-specific props',\n ' \"children\": [\"child_id_1\", \"child_id_2\"] // Optional: IDs of child elements',\n ' }',\n ' },',\n ' \"data\": { // Optional: Initial data model for data binding',\n ' \"fieldName\": \"value\"',\n ' }',\n '}',\n '```',\n '',\n '## Available Components',\n '',\n ];\n\n // 组件文档\n for (const [name, doc] of Object.entries(allComponents)) {\n lines.push(`### ${name}`);\n lines.push(doc.description);\n if (doc.hasChildren) {\n lines.push('*This component can have children.*');\n }\n lines.push('');\n lines.push('**Props:**');\n for (const [propName, propDesc] of Object.entries(doc.props)) {\n lines.push(`- \\`${propName}\\`: ${propDesc}`);\n }\n lines.push('');\n }\n\n // Actions\n lines.push('## Available Actions');\n lines.push('');\n lines.push('Actions can be triggered by Button components. Use the `action` prop:');\n lines.push('- Simple: `\"action\": \"actionName\"`');\n lines.push('- With params: `\"action\": { \"name\": \"actionName\", \"params\": { ... } }`');\n lines.push('');\n for (const [name, def] of Object.entries(allActions)) {\n lines.push(`- \\`${name}\\`: ${def.description}`);\n }\n lines.push('');\n\n // Data Binding\n lines.push('## Data Binding');\n lines.push('');\n lines.push('Use `valuePath` to bind form fields to the data model:');\n lines.push('- `\"valuePath\": \"user.name\"` binds to `data.user.name`');\n lines.push('- `\"disabledPath\": \"formDisabled\"` controls disabled state from `data.formDisabled`');\n lines.push('');\n\n // 示例\n if (includeExample) {\n lines.push('## Example');\n lines.push('');\n lines.push('A simple form with two text fields and a submit button:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'card1',\n elements: {\n card1: {\n key: 'card1',\n type: 'Card',\n props: { title: 'User Information' },\n children: ['form_column'],\n },\n form_column: {\n key: 'form_column',\n type: 'Column',\n props: { gap: 16 },\n children: ['name_field', 'email_field', 'button_row'],\n },\n name_field: {\n key: 'name_field',\n type: 'TextField',\n props: {\n label: 'Name',\n valuePath: 'user.name',\n placeholder: 'Enter your name',\n required: true,\n },\n },\n email_field: {\n key: 'email_field',\n type: 'TextField',\n props: {\n label: 'Email',\n valuePath: 'user.email',\n placeholder: 'Enter your email',\n type: 'email',\n },\n },\n button_row: {\n key: 'button_row',\n type: 'Space',\n props: { direction: 'horizontal', size: 'medium' },\n children: ['submit_btn', 'cancel_btn'],\n },\n submit_btn: {\n key: 'submit_btn',\n type: 'Button',\n props: {\n children: 'Submit',\n theme: 'primary',\n action: { name: 'submit', params: { source: 'form' } },\n },\n },\n cancel_btn: {\n key: 'cancel_btn',\n type: 'Button',\n props: {\n children: 'Cancel',\n variant: 'outline',\n action: 'cancel',\n },\n },\n },\n data: {\n user: { name: '', email: '' },\n },\n }, null, 2));\n lines.push('```');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * A2UI 协议专用 Prompt 生成器\n * 生成符合 A2UI 消息格式的系统提示词\n * \n * @internal 内部函数,由 generateDetailedCatalogPrompt 调用\n */\nfunction generateA2UIPrompt(context: {\n name: string;\n components: Record<string, NormalizedComponentDoc>;\n actions: Record<string, { description: string }>;\n includeExample?: boolean;\n}): string {\n const { name, components, actions, includeExample = true } = context;\n\n const lines: string[] = [\n `# ${name} A2UI Component Catalog`,\n '',\n 'You can generate dynamic UI using A2UI protocol messages.',\n '',\n '## A2UI Message Types',\n '',\n '### createSurface',\n 'Create a new UI surface with initial elements:',\n '```json',\n '{',\n ' \"type\": \"createSurface\",',\n ' \"surfaceId\": \"unique_surface_id\",',\n ' \"ui\": {',\n ' \"root\": \"element_id\",',\n ' \"elements\": { ... }',\n ' },',\n ' \"data\": { ... }',\n '}',\n '```',\n '',\n '### updateComponents',\n 'Update existing UI elements:',\n '```json',\n '{',\n ' \"type\": \"updateComponents\",',\n ' \"surfaceId\": \"existing_surface_id\",',\n ' \"elements\": { ... }',\n '}',\n '```',\n '',\n '### updateDataModel',\n 'Update data model without changing UI:',\n '```json',\n '{',\n ' \"type\": \"updateDataModel\",',\n ' \"surfaceId\": \"existing_surface_id\",',\n ' \"data\": { ... }',\n '}',\n '```',\n '',\n '### deleteSurface',\n 'Remove a UI surface:',\n '```json',\n '{',\n ' \"type\": \"deleteSurface\",',\n ' \"surfaceId\": \"surface_to_delete\"',\n '}',\n '```',\n '',\n '## Available Components',\n '',\n ];\n\n // 组件文档\n for (const [compName, doc] of Object.entries(components)) {\n lines.push(`### ${compName}`);\n lines.push(doc.description);\n if (doc.hasChildren) {\n lines.push('*This component can have children.*');\n }\n lines.push('');\n lines.push('**Props:**');\n for (const [propName, propDesc] of Object.entries(doc.props)) {\n lines.push(`- \\`${propName}\\`: ${propDesc}`);\n }\n lines.push('');\n }\n\n // Actions\n lines.push('## Available Actions');\n lines.push('');\n for (const [actionName, def] of Object.entries(actions)) {\n lines.push(`- \\`${actionName}\\`: ${def.description}`);\n }\n lines.push('');\n\n // 示例\n if (includeExample) {\n lines.push('## Example');\n lines.push('');\n lines.push('Create a form surface:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'createSurface',\n surfaceId: 'user_form_1',\n ui: {\n root: 'form_card',\n elements: {\n form_card: {\n key: 'form_card',\n type: 'Card',\n props: { title: 'User Form' },\n children: ['name_field', 'submit_btn'],\n },\n name_field: {\n key: 'name_field',\n type: 'TextField',\n props: { label: 'Name', valuePath: 'user.name' },\n },\n submit_btn: {\n key: 'submit_btn',\n type: 'Button',\n props: { children: 'Submit', theme: 'primary', action: 'submit' },\n },\n },\n },\n data: { user: { name: '' } },\n }, null, 2));\n lines.push('```');\n }\n\n return lines.join('\\n');\n}\n"],"names":["tdesignCatalog","createCatalog","name","components","Button","props","z","object","label","string","optional","children","variant","nullable","theme","size","disabled","loading","block","action","union","params","record","any","description","Input","value","placeholder","type","clearable","maxlength","number","showLimitNumber","TextField","valuePath","required","helperText","Text","content","color","weight","Card","title","bordered","shadow","hasChildren","Row","gutter","justify","align","Col","span","min","max","offset","Space","direction","Column","gap","Divider","layout","dashed","actions","submit","reset","cancel","validation","createCustomCatalog","customConfig","tdesignComponents","tdesignActions","_objectSpread","tdesignComponentList","componentNames","tdesignActionList","actionNames","BUILTIN_COMPONENT_DOCS","disabledPath","zodSchemaToPropsDoc","schema","result","shape","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","key","zodTypeToString","ZodNullable","concat","unwrap","ZodOptional","ZodEnum","values","options","map","v","join","ZodUnion","_def","o","ZodString","ZodNumber","ZodBoolean","ZodObject","ZodArray","normalizeComponentDoc","doc","generateCatalogPrompt","arguments","undefined","_options$name","_options$components","_options$actions","_options$includeExamp","includeExample","_options$templateMode","templateMode","customTemplate","mergedComponents","allComponents","_i2","_Object$entries2","_Object$entries2$_i","builtinActions","allActions","generateA2UIPrompt","lines","_i3","_Object$entries3","_Object$entries3$_i","push","_i4","_Object$entries4","_Object$entries4$_i","propName","propDesc","_i5","_Object$entries5","_Object$entries5$_i","def","JSON","stringify","root","elements","card1","form_column","name_field","email_field","button_row","submit_btn","source","cancel_btn","data","user","email","context","_context$includeExamp","_i6","_Object$entries6","_Object$entries6$_i","compName","_i7","_Object$entries7","_Object$entries7$_i","_i8","_Object$entries8","_Object$entries8$_i","actionName","surfaceId","ui","form_card"],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sources":["../../../../../pro-components/chat/chat-engine/components/json-render/catalog.ts"],"sourcesContent":["/**\n * TDesign Catalog 定义(约束层)\n * 用于定义组件 props schema 和 actions 白名单\n * \n * 概念区分:\n * - Catalog(本文件):约束层,定义组件 props 的 Zod schemas 和 actions 白名单(给 AI/服务端用)\n * - ComponentRegistry(catalog/index.ts):渲染层,映射组件名到 React 组件(给 Renderer 用)\n */\n\nimport { createCatalog } from '@json-render/core';\nimport { z } from 'zod';\n\n/**\n * TDesign 内置组件 Catalog\n * 定义所有内置组件的 props schema 和可用 actions\n * \n * 这个 Catalog 用于:\n * 1. 告诉 AI/LLM 可以生成哪些组件\n * 2. 约束每个组件的 props 类型\n * 3. 定义可触发的 actions 白名单\n */\nexport const tdesignCatalog = createCatalog({\n name: 'tdesign',\n components: {\n // ==================== 基础组件 ====================\n \n Button: {\n props: z.object({\n // 支持 label 或 children 两种方式传递按钮文本\n label: z.string().optional(),\n children: z.string().optional(),\n variant: z.enum(['base', 'outline', 'dashed', 'text']).nullable(),\n theme: z.enum(['default', 'primary', 'success', 'warning', 'danger']).nullable(),\n size: z.enum(['small', 'medium', 'large']).nullable(),\n disabled: z.boolean().nullable(),\n loading: z.boolean().nullable(),\n block: z.boolean().nullable(),\n // action 支持字符串(action 名称)或 Action 对象 { name, params }\n action: z.union([\n z.string(),\n z.object({\n name: z.string(),\n params: z.record(z.any()).optional(),\n }),\n ]).nullable(),\n }),\n description: 'TDesign Button component with action support',\n },\n\n Input: {\n props: z.object({\n value: z.string().nullable(),\n placeholder: z.string().nullable(),\n type: z.enum(['text', 'password', 'number']).nullable(),\n disabled: z.boolean().nullable(),\n clearable: z.boolean().nullable(),\n maxlength: z.number().nullable(),\n showLimitNumber: z.boolean().nullable(),\n }),\n description: 'TDesign Input component',\n },\n\n TextField: {\n props: z.object({\n label: z.string(),\n name: z.string().optional(), // 表单字段名称(可选)\n valuePath: z.string(), // 数据绑定路径(必需)\n placeholder: z.string().nullable(),\n required: z.boolean().nullable(),\n type: z.enum(['text', 'password', 'email', 'number', 'tel']).nullable(),\n disabled: z.boolean().nullable(),\n helperText: z.string().nullable(),\n }),\n description: 'Form text field with label and data binding (combines Input + label)',\n },\n\n Text: {\n props: z.object({\n content: z.string(),\n variant: z.enum(['body', 'caption', 'label']).nullable(),\n color: z.enum(['default', 'primary', 'secondary', 'success', 'warning', 'error']).nullable(),\n weight: z.enum(['normal', 'medium', 'bold']).nullable(),\n }),\n description: 'Text display component',\n },\n\n Card: {\n props: z.object({\n title: z.string().nullable(),\n description: z.string().nullable(),\n bordered: z.boolean().nullable(),\n shadow: z.boolean().nullable(),\n loading: z.boolean().nullable(),\n }),\n hasChildren: true,\n description: 'TDesign Card container',\n },\n\n // ==================== 布局组件 ====================\n\n Row: {\n props: z.object({\n gutter: z.number().nullable(),\n justify: z.enum(['start', 'end', 'center', 'space-around', 'space-between']).nullable(),\n align: z.enum(['top', 'middle', 'bottom']).nullable(),\n }),\n hasChildren: true,\n description: 'Grid row layout',\n },\n\n Col: {\n props: z.object({\n span: z.number().min(1).max(24).nullable(),\n offset: z.number().nullable(),\n }),\n hasChildren: true,\n description: 'Grid column layout',\n },\n\n Space: {\n props: z.object({\n direction: z.enum(['horizontal', 'vertical']).nullable(),\n // size 支持字符串枚举或数字\n size: z.union([\n z.enum(['small', 'medium', 'large']),\n z.number(),\n z.string(),\n ]).nullable(),\n align: z.enum(['start', 'center', 'end', 'baseline']).nullable(),\n }),\n hasChildren: true,\n description: 'Space layout component',\n },\n\n Column: {\n props: z.object({\n gap: z.number().nullable(),\n align: z.enum(['start', 'center', 'end', 'stretch']).nullable(),\n }),\n hasChildren: true,\n description: 'Vertical column layout',\n },\n\n Divider: {\n props: z.object({\n layout: z.enum(['horizontal', 'vertical']).nullable(),\n dashed: z.boolean().nullable(),\n }),\n description: 'Divider line',\n },\n },\n \n actions: {\n submit: { \n description: 'Submit form data to server' \n },\n reset: { \n description: 'Reset form to initial state (handled by Button component automatically)' \n },\n cancel: { \n description: 'Cancel current operation' \n },\n },\n \n validation: 'strict',\n});\n\n/**\n * 创建自定义 Catalog(扩展 TDesign 内置 Catalog)\n * \n * @param customConfig - 自定义 Catalog 配置\n * @returns 合并后的 Catalog\n * \n * @example\n * ```typescript\n * import { createCustomCatalog } from '@tdesign-react/chat';\n * import { z } from 'zod';\n * \n * const customCatalog = createCustomCatalog({\n * name: 'my-dashboard',\n * components: {\n * StatusCard: {\n * props: z.object({\n * title: z.string(),\n * status: z.enum(['success', 'warning', 'error', 'info']),\n * description: z.string().nullable(),\n * }),\n * description: 'Custom status card component',\n * },\n * ProgressBar: {\n * props: z.object({\n * label: z.string().nullable(),\n * percentage: z.number().min(0).max(100),\n * showInfo: z.boolean().nullable(),\n * }),\n * description: 'Custom progress bar component',\n * },\n * },\n * actions: {\n * refresh: { description: 'Refresh data' },\n * export: { description: 'Export to file' },\n * },\n * });\n * \n * // 使用自定义 Catalog\n * // 1. 在服务端:告诉 AI 可以生成哪些组件\n * // 2. 在前端:配合 createCustomRegistry 提供渲染能力\n * ```\n */\nexport function createCustomCatalog(customConfig: {\n name: string;\n components?: Record<string, any>;\n actions?: Record<string, { description: string }>;\n validation?: 'strict' | 'warn';\n}) {\n // 获取 TDesign 内置配置\n const tdesignComponents = tdesignCatalog.components;\n const tdesignActions = tdesignCatalog.actions;\n\n // 合并配置\n return createCatalog({\n name: customConfig.name,\n components: {\n ...tdesignComponents,\n ...(customConfig.components || {}),\n },\n actions: {\n ...tdesignActions,\n ...(customConfig.actions || {}),\n },\n validation: customConfig.validation || 'strict',\n });\n}\n\n/**\n * 导出 TDesign Catalog 的组件列表(给 AI prompt 用)\n */\nexport const tdesignComponentList = tdesignCatalog.componentNames as string[];\n\n/**\n * 导出 TDesign Catalog 的 actions 列表(给 AI prompt 用)\n */\nexport const tdesignActionList = tdesignCatalog.actionNames as string[];\n\n/**\n * 内置组件的详细 Props 文档(用于生成详细 prompt)\n */\nconst BUILTIN_COMPONENT_DOCS: Record<string, { \n description: string;\n props: Record<string, string>;\n hasChildren?: boolean;\n}> = {\n Button: {\n description: 'Button component with action support',\n props: {\n label: 'string - Button text (alternative to children)',\n children: 'string - Button text',\n variant: '\"base\" | \"outline\" | \"dashed\" | \"text\" - Button style variant',\n theme: '\"default\" | \"primary\" | \"success\" | \"warning\" | \"danger\" - Color theme',\n size: '\"small\" | \"medium\" | \"large\" - Button size',\n disabled: 'boolean - Whether button is disabled',\n loading: 'boolean - Whether to show loading state',\n block: 'boolean - Whether button should be full width',\n action: 'string | { name: string, params?: object } - Action to trigger on click',\n },\n },\n Input: {\n description: 'Input component for text entry',\n props: {\n value: 'string - Input value',\n placeholder: 'string - Placeholder text',\n type: '\"text\" | \"password\" | \"number\" - Input type',\n disabled: 'boolean - Whether input is disabled',\n clearable: 'boolean - Whether to show clear button',\n maxlength: 'number - Maximum input length',\n showLimitNumber: 'boolean - Whether to show character count',\n },\n },\n TextField: {\n description: 'Form text field with label and data binding',\n props: {\n label: 'string (required) - Field label',\n name: 'string - Form field name',\n valuePath: 'string (required) - Data binding path in data model',\n placeholder: 'string - Placeholder text',\n required: 'boolean - Whether field is required',\n type: '\"text\" | \"password\" | \"email\" | \"number\" | \"tel\" - Input type',\n disabled: 'boolean - Whether field is disabled',\n disabledPath: 'string - Data path to control disabled state dynamically',\n helperText: 'string - Helper text below the field',\n },\n },\n Text: {\n description: 'Text display component',\n props: {\n content: 'string (required) - Text content to display',\n variant: '\"body\" | \"caption\" | \"label\" - Text style variant',\n color: '\"default\" | \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"error\" - Text color',\n weight: '\"normal\" | \"medium\" | \"bold\" - Font weight',\n },\n },\n Card: {\n description: 'Card container component',\n props: {\n title: 'string - Card title',\n description: 'string - Card description',\n bordered: 'boolean - Whether to show border',\n shadow: 'boolean - Whether to show shadow',\n loading: 'boolean - Whether to show loading state',\n },\n hasChildren: true,\n },\n Row: {\n description: 'Grid row layout (24-column grid system)',\n props: {\n gutter: 'number - Gap between columns in pixels',\n justify: '\"start\" | \"end\" | \"center\" | \"space-around\" | \"space-between\" - Horizontal alignment',\n align: '\"top\" | \"middle\" | \"bottom\" - Vertical alignment',\n },\n hasChildren: true,\n },\n Col: {\n description: 'Grid column layout (use inside Row)',\n props: {\n span: 'number (1-24) - Column width, out of 24 total',\n offset: 'number - Column offset from left',\n },\n hasChildren: true,\n },\n Space: {\n description: 'Space layout component for spacing children',\n props: {\n direction: '\"horizontal\" | \"vertical\" - Layout direction',\n size: '\"small\" | \"medium\" | \"large\" | number - Gap size',\n align: '\"start\" | \"center\" | \"end\" | \"baseline\" - Alignment',\n },\n hasChildren: true,\n },\n Column: {\n description: 'Vertical column layout',\n props: {\n gap: 'number - Gap between children in pixels',\n align: '\"start\" | \"center\" | \"end\" | \"stretch\" - Horizontal alignment',\n },\n hasChildren: true,\n },\n Divider: {\n description: 'Divider line',\n props: {\n layout: '\"horizontal\" | \"vertical\" - Divider direction',\n dashed: 'boolean - Whether to use dashed line',\n },\n },\n};\n\n/**\n * Prompt 模板模式\n * - 'default': 默认模板,生成标准的 JSON Schema UI\n * - 'a2ui': A2UI 模板,使用 A2UI 特定的消息格式和协议\n * - 'custom': 自定义模板,完全由 customTemplate 参数控制\n */\nexport type PromptTemplateMode = 'default' | 'a2ui' | 'custom';\n\n/**\n * 组件文档定义类型\n * props 支持两种格式:\n * 1. Record<string, string> - 人可读的 props 描述,如 { label: 'string - Button text' }\n * 2. ZodObject - Zod schema 对象,会自动转换为描述\n */\nexport interface ComponentDoc {\n description: string;\n /** Props 定义:可以是字符串描述映射,也可以是 Zod schema */\n props: Record<string, string> | z.ZodObject<any>;\n hasChildren?: boolean;\n}\n\n/**\n * 内部使用的标准化组件文档类型(props 已转为字符串)\n */\nexport interface NormalizedComponentDoc {\n description: string;\n props: Record<string, string>;\n hasChildren?: boolean;\n}\n\n/**\n * 将 Zod schema 转换为 props 描述字符串\n */\nfunction zodSchemaToPropsDoc(schema: z.ZodObject<any>): Record<string, string> {\n const result: Record<string, string> = {};\n const shape = schema.shape;\n \n for (const [key, value] of Object.entries(shape)) {\n result[key] = zodTypeToString(value as z.ZodTypeAny);\n }\n \n return result;\n}\n\n/**\n * 将 Zod 类型转换为可读字符串\n */\nfunction zodTypeToString(type: z.ZodTypeAny): string {\n // 处理 nullable\n if (type instanceof z.ZodNullable) {\n return `${zodTypeToString(type.unwrap())} (nullable)`;\n }\n \n // 处理 optional\n if (type instanceof z.ZodOptional) {\n return `${zodTypeToString(type.unwrap())} (optional)`;\n }\n \n // 处理 enum\n if (type instanceof z.ZodEnum) {\n const values = type.options as string[];\n return values.map(v => `\"${v}\"`).join(' | ');\n }\n \n // 处理 union\n if (type instanceof z.ZodUnion) {\n const options = (type as any)._def.options as z.ZodTypeAny[];\n return options.map(o => zodTypeToString(o)).join(' | ');\n }\n \n // 处理基础类型\n if (type instanceof z.ZodString) return 'string';\n if (type instanceof z.ZodNumber) return 'number';\n if (type instanceof z.ZodBoolean) return 'boolean';\n if (type instanceof z.ZodObject) return 'object';\n if (type instanceof z.ZodArray) return 'array';\n \n return 'any';\n}\n\n/**\n * 标准化组件文档(将 Zod schema 转换为字符串描述)\n */\nfunction normalizeComponentDoc(doc: ComponentDoc): NormalizedComponentDoc {\n let props: Record<string, string>;\n \n if (doc.props instanceof z.ZodObject) {\n props = zodSchemaToPropsDoc(doc.props);\n } else {\n props = doc.props;\n }\n \n return {\n description: doc.description,\n props,\n hasChildren: doc.hasChildren,\n };\n}\n\n/**\n * 自定义模板生成器函数类型\n * 接收标准化后的组件文档(props 已转为字符串描述)\n */\nexport type CustomTemplateGenerator = (context: {\n name: string;\n components: Record<string, NormalizedComponentDoc>;\n actions: Record<string, { description: string }>;\n}) => string;\n\n/**\n * 生成增强版 Catalog Prompt(包含完整 Props 文档和 Schema 示例)\n * \n * @param options - 配置选项\n * @returns 详细的 AI Prompt 字符串\n */\nexport function generateCatalogPrompt(options: {\n name?: string;\n components?: Record<string, ComponentDoc>;\n actions?: Record<string, { description: string }>;\n /** 是否包含 Schema 示例 */\n includeExample?: boolean;\n /** \n * Prompt 模板模式\n * - 'default': 标准 JSON Schema UI 模板\n * - 'a2ui': A2UI 协议模板(需服务端配合)\n * - 'custom': 使用自定义模板生成器\n */\n templateMode?: PromptTemplateMode;\n /**\n * 自定义模板生成器(仅当 templateMode='custom' 时使用)\n * 接收组件和 actions 上下文,返回完整的 prompt 字符串\n */\n customTemplate?: CustomTemplateGenerator;\n} = {}): string {\n const {\n name = 'tdesign',\n components = {},\n actions = {},\n includeExample = true,\n templateMode = 'default',\n customTemplate,\n } = options;\n\n // 合并内置组件和自定义组件,并标准化(将 Zod schema 转为字符串描述)\n const mergedComponents = { ...BUILTIN_COMPONENT_DOCS, ...components };\n const allComponents: Record<string, NormalizedComponentDoc> = {};\n for (const [key, doc] of Object.entries(mergedComponents)) {\n allComponents[key] = normalizeComponentDoc(doc);\n }\n \n // 合并内置 actions 和自定义 actions\n const builtinActions = {\n submit: { description: 'Submit form data to server' },\n reset: { description: 'Reset form to initial state' },\n cancel: { description: 'Cancel current operation' },\n };\n const allActions = { ...builtinActions, ...actions };\n\n // 自定义模板模式\n if (templateMode === 'custom' && customTemplate) {\n return customTemplate({ name, components: allComponents, actions: allActions });\n }\n\n // A2UI 模板模式 - 预留给服务端实现具体模板\n if (templateMode === 'a2ui') {\n return generateA2UIPrompt({ name, components: allComponents, actions: allActions, includeExample });\n }\n\n // 默认模板\n const lines: string[] = [\n `# ${name} UI Component Catalog`,\n '',\n 'You can generate dynamic UI using the following components and JSON schema format.',\n '',\n '## Output Format',\n '',\n 'Generate a JSON object with this structure:',\n '```json',\n '{',\n ' \"root\": \"element_id\", // ID of the root element',\n ' \"elements\": {',\n ' \"element_id\": {',\n ' \"key\": \"element_id\", // Same as the key in elements object',\n ' \"type\": \"ComponentName\", // One of the available components',\n ' \"props\": { ... }, // Component-specific props',\n ' \"children\": [\"child_id_1\", \"child_id_2\"] // Optional: IDs of child elements',\n ' }',\n ' },',\n ' \"data\": { // Optional: Initial data model for data binding',\n ' \"fieldName\": \"value\"',\n ' }',\n '}',\n '```',\n '',\n '## AG-UI ACTIVITY_DELTA Format (for Incremental Updates)',\n '',\n 'For updating existing UI, you can also generate AG-UI ACTIVITY_DELTA messages:',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"unique_message_id\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {\"op\": \"add\", \"path\": \"/elements/new-element\", \"value\": {...}},',\n ' {\"op\": \"replace\", \"path\": \"/elements/parent/children\", \"value\": [...]}',\n ' ]',\n '}',\n '```',\n '',\n '### JSON Patch Operations for ACTIVITY_DELTA',\n '',\n '**Add New Element:**',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/new-button\", \"value\": {',\n ' \"key\": \"new-button\",',\n ' \"type\": \"Button\",',\n ' \"props\": {\"children\": \"Click Me\", \"theme\": \"primary\"}',\n '}}',\n '```',\n '',\n '**Update Element Properties:**',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/my-card/props/title\", \"value\": \"Updated Title\"}',\n '```',\n '',\n '**Replace Children Array:**',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/container/children\", \"value\": [\"child1\", \"child2\", \"new-child\"]}',\n '```',\n '',\n '**Add Child to Parent:**',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/parent/children/-\", \"value\": \"new-child-id\"}',\n '```',\n '',\n '**Update Data Model:**',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/data/user/name\", \"value\": \"John Doe\"}',\n '```',\n '',\n '**Complete ACTIVITY_DELTA Example:**',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"update_123456\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {',\n ' \"op\": \"add\",',\n ' \"path\": \"/elements/success-message\",',\n ' \"value\": {',\n ' \"key\": \"success-message\",',\n ' \"type\": \"Text\",',\n ' \"props\": {',\n ' \"content\": \"Operation completed successfully!\",',\n ' \"color\": \"success\"',\n ' }',\n ' }',\n ' },',\n ' {',\n ' \"op\": \"add\",',\n ' \"path\": \"/elements/main-container/children/-\",',\n ' \"value\": \"success-message\"',\n ' }',\n ' ]',\n '}',\n '```',\n '',\n '## JSON-Render Data Structure Details',\n '',\n 'Understanding the structure is crucial for generating valid UI:',\n '',\n '### Root Level Properties',\n '- `root`: String - ID of the root element (must exist in elements)',\n '- `elements`: Object - Contains all UI elements indexed by their IDs',\n '- `data`: Object - Optional data model for form bindings and dynamic content',\n '',\n '### Element Structure',\n 'Each element in the `elements` object has:',\n '- `key`: String - Unique identifier (should match the object key)',\n '- `type`: String - Component type name (must be from available components)',\n '- `props`: Object - Component-specific properties',\n '- `children`: Array<String> - Optional array of child element IDs',\n '',\n '### Element Hierarchy Rules',\n '1. **Root Element**: Must be specified in `root` and exist in `elements`',\n '2. **Parent-Child Relationship**: Parent elements reference children by ID in `children` array',\n '3. **Child Order**: Order in `children` array determines rendering order',\n '4. **Unique IDs**: Each element must have a unique ID across the entire structure',\n '5. **Container Components**: Only components marked with \"can have children\" support `children`',\n '',\n '### Data Binding Paths',\n 'Form components can bind to data using dot notation:',\n '- `\"valuePath\": \"user.name\"` → binds to `data.user.name`',\n '- `\"valuePath\": \"settings.theme\"` → binds to `data.settings.theme`',\n '- `\"disabledPath\": \"form.disabled\"` → controls disabled state from `data.form.disabled`',\n '',\n '### Element ID Best Practices',\n '- Use descriptive names: `\"user_name_field\"` instead of `\"field1\"`',\n '- Use consistent naming: `snake_case` or `kebab-case`',\n '- Include purpose: `\"submit_button\"`, `\"main_container\"`, `\"status_card\"`',\n '',\n '## Available Components',\n '',\n ];\n\n // 组件文档\n for (const [name, doc] of Object.entries(allComponents)) {\n lines.push(`### ${name}`);\n lines.push(doc.description);\n if (doc.hasChildren) {\n lines.push('*This component can have children.*');\n }\n lines.push('');\n lines.push('**Props:**');\n for (const [propName, propDesc] of Object.entries(doc.props)) {\n lines.push(`- \\`${propName}\\`: ${propDesc}`);\n }\n lines.push('');\n }\n\n // Actions\n lines.push('## Available Actions');\n lines.push('');\n lines.push('Actions can be triggered by Button components. Use the `action` prop:');\n lines.push('- Simple: `\"action\": \"actionName\"`');\n lines.push('- With params: `\"action\": { \"name\": \"actionName\", \"params\": { ... } }`');\n lines.push('');\n for (const [name, def] of Object.entries(allActions)) {\n lines.push(`- \\`${name}\\`: ${def.description}`);\n }\n lines.push('');\n\n // Data Binding\n lines.push('## Data Binding');\n lines.push('');\n lines.push('Use `valuePath` to bind form fields to the data model:');\n lines.push('- `\"valuePath\": \"user.name\"` binds to `data.user.name`');\n lines.push('- `\"disabledPath\": \"formDisabled\"` controls disabled state from `data.formDisabled`');\n lines.push('');\n\n // 示例\n if (includeExample) {\n lines.push('## Examples');\n lines.push('');\n \n lines.push('### 1. Simple Form Structure');\n lines.push('A basic form with validation and data binding:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'main_card',\n elements: {\n main_card: {\n key: 'main_card',\n type: 'Card',\n props: { title: 'User Registration', bordered: true },\n children: ['form_layout'],\n },\n form_layout: {\n key: 'form_layout',\n type: 'Column',\n props: { gap: 16 },\n children: ['name_field', 'email_field', 'button_group'],\n },\n name_field: {\n key: 'name_field',\n type: 'TextField',\n props: {\n label: 'Full Name',\n valuePath: 'user.name',\n placeholder: 'Enter your full name',\n required: true,\n },\n },\n email_field: {\n key: 'email_field',\n type: 'TextField',\n props: {\n label: 'Email Address',\n valuePath: 'user.email',\n placeholder: 'Enter your email',\n type: 'email',\n required: true,\n },\n },\n button_group: {\n key: 'button_group',\n type: 'Space',\n props: { direction: 'horizontal', size: 'medium' },\n children: ['submit_btn', 'reset_btn'],\n },\n submit_btn: {\n key: 'submit_btn',\n type: 'Button',\n props: {\n children: 'Register',\n theme: 'primary',\n action: { name: 'submit', params: { form: 'registration' } },\n },\n },\n reset_btn: {\n key: 'reset_btn',\n type: 'Button',\n props: {\n children: 'Reset',\n variant: 'outline',\n action: 'reset',\n },\n },\n },\n data: {\n user: { name: '', email: '' },\n },\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 2. Dashboard Layout');\n lines.push('A more complex layout with grid system and multiple components:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'dashboard',\n elements: {\n dashboard: {\n key: 'dashboard',\n type: 'Column',\n props: { gap: 24 },\n children: ['header', 'content_row'],\n },\n header: {\n key: 'header',\n type: 'Card',\n props: { title: 'Dashboard Overview' },\n children: ['status_text'],\n },\n status_text: {\n key: 'status_text',\n type: 'Text',\n props: {\n content: 'System is running normally',\n color: 'success',\n weight: 'medium',\n },\n },\n content_row: {\n key: 'content_row',\n type: 'Row',\n props: { gutter: 16 },\n children: ['left_col', 'right_col'],\n },\n left_col: {\n key: 'left_col',\n type: 'Col',\n props: { span: 16 },\n children: ['main_content'],\n },\n right_col: {\n key: 'right_col',\n type: 'Col',\n props: { span: 8 },\n children: ['sidebar_card'],\n },\n main_content: {\n key: 'main_content',\n type: 'Card',\n props: { title: 'Main Content', shadow: true },\n children: ['content_text'],\n },\n content_text: {\n key: 'content_text',\n type: 'Text',\n props: { content: 'This is the main content area.' },\n },\n sidebar_card: {\n key: 'sidebar_card',\n type: 'Card',\n props: { title: 'Quick Actions' },\n children: ['action_buttons'],\n },\n action_buttons: {\n key: 'action_buttons',\n type: 'Column',\n props: { gap: 8 },\n children: ['refresh_btn', 'export_btn'],\n },\n refresh_btn: {\n key: 'refresh_btn',\n type: 'Button',\n props: {\n children: 'Refresh Data',\n block: true,\n action: 'refresh',\n },\n },\n export_btn: {\n key: 'export_btn',\n type: 'Button',\n props: {\n children: 'Export Report',\n variant: 'outline',\n block: true,\n action: 'export',\n },\n },\n },\n data: {\n lastUpdated: new Date().toISOString(),\n },\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 3. Dynamic Content with Data Binding');\n lines.push('Form with conditional disabled states:');\n lines.push('```json');\n lines.push(JSON.stringify({\n root: 'settings_form',\n elements: {\n settings_form: {\n key: 'settings_form',\n type: 'Card',\n props: { title: 'Settings' },\n children: ['form_fields'],\n },\n form_fields: {\n key: 'form_fields',\n type: 'Column',\n props: { gap: 16 },\n children: ['enable_notifications', 'email_field', 'save_btn'],\n },\n enable_notifications: {\n key: 'enable_notifications',\n type: 'TextField',\n props: {\n label: 'Enable Notifications',\n valuePath: 'settings.notifications',\n type: 'text',\n },\n },\n email_field: {\n key: 'email_field',\n type: 'TextField',\n props: {\n label: 'Notification Email',\n valuePath: 'settings.email',\n disabledPath: 'settings.emailDisabled',\n placeholder: 'Enter email for notifications',\n },\n },\n save_btn: {\n key: 'save_btn',\n type: 'Button',\n props: {\n children: 'Save Settings',\n theme: 'primary',\n action: 'submit',\n },\n },\n },\n data: {\n settings: {\n notifications: 'enabled',\n email: '',\n emailDisabled: false,\n },\n },\n }, null, 2));\n lines.push('```');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * A2UI 协议专用 Prompt 生成器\n * 生成符合 A2UI 消息格式的系统提示词\n * \n * @internal 内部函数,由 generateDetailedCatalogPrompt 调用\n */\nfunction generateA2UIPrompt(context: {\n name: string;\n components: Record<string, NormalizedComponentDoc>;\n actions: Record<string, { description: string }>;\n includeExample?: boolean;\n}): string {\n const { name, components, actions, includeExample = true } = context;\n\n const lines: string[] = [\n `# ${name} A2UI Component Catalog`,\n '',\n 'You can generate dynamic UI using A2UI protocol messages.',\n '',\n '## AG-UI ACTIVITY_DELTA Format',\n '',\n 'When generating UI updates, use the AG-UI ACTIVITY_DELTA message format:',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"unique_message_id\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {\"op\": \"add\", \"path\": \"/elements/element-id\", \"value\": {...}},',\n ' {\"op\": \"replace\", \"path\": \"/elements/parent/children\", \"value\": [...]}',\n ' ]',\n '}',\n '```',\n '',\n '## JSON Patch Operations for AG-UI ACTIVITY_DELTA',\n '',\n 'The `patch` array contains JSON Patch operations that modify the UI structure:',\n '',\n '### Add New Element',\n 'Create a new UI element in the elements object:',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/new-element-id\", \"value\": {',\n ' \"key\": \"new-element-id\",',\n ' \"type\": \"ComponentName\",',\n ' \"props\": {...},',\n ' \"children\": [\"child1\", \"child2\"] // optional',\n '}}',\n '```',\n '',\n '### Update Element Properties',\n 'Modify specific properties of an existing element:',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/element-id/props/title\", \"value\": \"New Title\"}',\n '```',\n '',\n '### Replace Children Array',\n 'Update the children of a container element:',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/elements/parent-id/children\", \"value\": [\"child1\", \"child2\", \"new-child\"]}',\n '```',\n '',\n '### Add Child to Parent',\n 'Append a child to the end of parent\\'s children array:',\n '```json',\n '{\"op\": \"add\", \"path\": \"/elements/parent-id/children/-\", \"value\": \"new-child-id\"}',\n '```',\n '',\n '### Remove Element',\n 'Delete an element (ensure it\\'s removed from parent\\'s children first):',\n '```json',\n '{\"op\": \"remove\", \"path\": \"/elements/element-id\"}',\n '```',\n '',\n '### Update Data Model',\n 'Modify the data model for form bindings:',\n '```json',\n '{\"op\": \"replace\", \"path\": \"/data/user/name\", \"value\": \"John Doe\"}',\n '```',\n '',\n '### Complete AG-UI ACTIVITY_DELTA Example',\n 'Adding a status card and updating container children:',\n '```json',\n '{',\n ' \"type\": \"ACTIVITY_DELTA\",',\n ' \"messageId\": \"update_1234567890\",',\n ' \"activityType\": \"json-render-main-card\",',\n ' \"patch\": [',\n ' {',\n ' \"op\": \"add\",',\n ' \"path\": \"/elements/status-card\",',\n ' \"value\": {',\n ' \"key\": \"status-card\",',\n ' \"type\": \"Card\",',\n ' \"props\": {',\n ' \"title\": \"Status Update\",',\n ' \"description\": \"Operation completed successfully\"',\n ' }',\n ' }',\n ' },',\n ' {',\n ' \"op\": \"replace\",',\n ' \"path\": \"/elements/main-container/children\",',\n ' \"value\": [\"existing-element\", \"status-card\"]',\n ' }',\n ' ]',\n '}',\n '```',\n '',\n '## A2UI Message Types (Alternative Formats)',\n '',\n 'Besides AG-UI ACTIVITY_DELTA, A2UI also supports these message types:',\n '',\n '### createSurface',\n 'Create a new UI surface with initial elements:',\n '```json',\n '{',\n ' \"type\": \"createSurface\",',\n ' \"surfaceId\": \"unique_surface_id\",',\n ' \"ui\": {',\n ' \"root\": \"element_id\",',\n ' \"elements\": { ... }',\n ' },',\n ' \"data\": { ... }',\n '}',\n '```',\n '',\n '### updateComponents',\n 'Update existing UI elements (similar to ACTIVITY_DELTA but different format):',\n '```json',\n '{',\n ' \"type\": \"updateComponents\",',\n ' \"surfaceId\": \"existing_surface_id\",',\n ' \"patch\": [',\n ' {\"op\": \"add\", \"path\": \"/elements/new-element\", \"value\": {...}}',\n ' ]',\n '}',\n '```',\n '',\n '### updateDataModel',\n 'Update data model without changing UI:',\n '```json',\n '{',\n ' \"type\": \"updateDataModel\",',\n ' \"surfaceId\": \"existing_surface_id\",',\n ' \"data\": { ... }',\n '}',\n '```',\n '',\n '### deleteSurface',\n 'Remove a UI surface:',\n '```json',\n '{',\n ' \"type\": \"deleteSurface\",',\n ' \"surfaceId\": \"surface_to_delete\"',\n '}',\n '```',\n '',\n '## Available Components',\n '',\n ];\n\n // 组件文档\n for (const [compName, doc] of Object.entries(components)) {\n lines.push(`### ${compName}`);\n lines.push(doc.description);\n if (doc.hasChildren) {\n lines.push('*This component can have children.*');\n }\n lines.push('');\n lines.push('**Props:**');\n for (const [propName, propDesc] of Object.entries(doc.props)) {\n lines.push(`- \\`${propName}\\`: ${propDesc}`);\n }\n lines.push('');\n }\n\n // Actions\n lines.push('## Available Actions');\n lines.push('');\n for (const [actionName, def] of Object.entries(actions)) {\n lines.push(`- \\`${actionName}\\`: ${def.description}`);\n }\n lines.push('');\n\n // 示例\n if (includeExample) {\n lines.push('## Examples');\n lines.push('');\n \n lines.push('### 1. Create a form surface:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'createSurface',\n surfaceId: 'user_form_1',\n ui: {\n root: 'form_card',\n elements: {\n form_card: {\n key: 'form_card',\n type: 'Card',\n props: { title: 'User Form' },\n children: ['name_field', 'submit_btn'],\n },\n name_field: {\n key: 'name_field',\n type: 'TextField',\n props: { label: 'Name', valuePath: 'user.name' },\n },\n submit_btn: {\n key: 'submit_btn',\n type: 'Button',\n props: { children: 'Submit', theme: 'primary', action: 'submit' },\n },\n },\n },\n data: { user: { name: '' } },\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 2. Update existing surface with JSON Patch:');\n lines.push('Add a status card and update the form title:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'updateComponents',\n surfaceId: 'user_form_1',\n patch: [\n {\n op: 'replace',\n path: '/elements/form_card/props/title',\n value: 'Updated User Form'\n },\n {\n op: 'add',\n path: '/elements/status_card',\n value: {\n key: 'status_card',\n type: 'Card',\n props: { \n title: 'Status',\n description: 'Form is ready for submission'\n }\n }\n },\n {\n op: 'add',\n path: '/elements/form_card/children/0',\n value: 'status_card'\n }\n ]\n }, null, 2));\n lines.push('```');\n lines.push('');\n \n lines.push('### 3. Update data model:');\n lines.push('```json');\n lines.push(JSON.stringify({\n type: 'updateDataModel',\n surfaceId: 'user_form_1',\n data: { \n user: { name: 'John Doe' },\n formStatus: 'ready'\n }\n }, null, 2));\n lines.push('```');\n }\n\n return lines.join('\\n');\n}\n"],"names":["tdesignCatalog","createCatalog","name","components","Button","props","z","object","label","string","optional","children","variant","nullable","theme","size","disabled","loading","block","action","union","params","record","any","description","Input","value","placeholder","type","clearable","maxlength","number","showLimitNumber","TextField","valuePath","required","helperText","Text","content","color","weight","Card","title","bordered","shadow","hasChildren","Row","gutter","justify","align","Col","span","min","max","offset","Space","direction","Column","gap","Divider","layout","dashed","actions","submit","reset","cancel","validation","createCustomCatalog","customConfig","tdesignComponents","tdesignActions","_objectSpread","tdesignComponentList","componentNames","tdesignActionList","actionNames","BUILTIN_COMPONENT_DOCS","disabledPath","zodSchemaToPropsDoc","schema","result","shape","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","key","zodTypeToString","ZodNullable","concat","unwrap","ZodOptional","ZodEnum","values","options","map","v","join","ZodUnion","_def","o","ZodString","ZodNumber","ZodBoolean","ZodObject","ZodArray","normalizeComponentDoc","doc","generateCatalogPrompt","arguments","undefined","_options$name","_options$components","_options$actions","_options$includeExamp","includeExample","_options$templateMode","templateMode","customTemplate","mergedComponents","allComponents","_i2","_Object$entries2","_Object$entries2$_i","builtinActions","allActions","generateA2UIPrompt","lines","_i3","_Object$entries3","_Object$entries3$_i","push","_i4","_Object$entries4","_Object$entries4$_i","propName","propDesc","_i5","_Object$entries5","_Object$entries5$_i","def","JSON","stringify","root","elements","main_card","form_layout","name_field","email_field","button_group","submit_btn","form","reset_btn","data","user","email","dashboard","header","status_text","content_row","left_col","right_col","main_content","content_text","sidebar_card","action_buttons","refresh_btn","export_btn","lastUpdated","Date","toISOString","settings_form","form_fields","enable_notifications","save_btn","settings","notifications","emailDisabled","context","_context$includeExamp","_i6","_Object$entries6","_Object$entries6$_i","compName","_i7","_Object$entries7","_Object$entries7$_i","_i8","_Object$entries8","_Object$entries8$_i","actionName","surfaceId","ui","form_card","patch","op","path","formStatus"],"mappings":"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BAAA,EACA,mBAAA,EACA,iDAAA,EACA,IAAA,EACA,KAAA,EACA,EAAA,EACA,+BAAA,EACA,oDAAA,EACA,SAAA,EACA,qFAAA,EACA,KAAA,EACA,EAAA,EACA,4BAAA,EACA,6CAAA,EACA,SAAA,EACA,uGAAA,EACA,KAAA,EACA,EAAA,EACA,yBAAA,EACA,uDAAA,EACA,SAAA,EACA,kFAAA,EACA,KAAA,EACA,EAAA,EACA,oBAAA,EACA,uEAAA,EACA,SAAA,EACA,kDAAA,EACA,KAAA,EACA,EAAA,EACA,uBAAA,EACA,0CAAA,EACA,SAAA,EACA,mEAAA,EACA,KAAA,EACA,EAAA,EACA,2CAAA,EACA,uDAAA,EACA,SAAA,EACA,GAAA,EACA,6BAAA,EACA,qCAAA,EACA,4CAAA,EACA,cAAA,EACA,OAAA,EACA,oBAAA,EACA,wCAAA,EACA,kBAAA,EACA,+BAAA,EACA,yBAAA,EACA,oBAAA,EACA,qCAAA,EACA,6DAAA,EACA,WAAA,EACA,SAAA,EACA,QAAA,EACA,OAAA,EACA,wBAAA,EACA,oDAAA,EACA,oDAAA,EACA,OAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,6CAAA,EACA,EAAA,EACA,uEAAA,EACA,EAAA,EACA,mBAAA,EACA,gDAAA,EACA,SAAA,EACA,GAAA,EACA,4BAAA,EACA,qCAAA,EACA,WAAA,EACA,2BAAA,EACA,yBAAA,EACA,MAAA,EACA,mBAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,sBAAA,EACA,+EAAA,EACA,SAAA,EACA,GAAA,EACA,+BAAA,EACA,uCAAA,EACA,cAAA,EACA,oEAAA,EACA,KAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,qBAAA,EACA,wCAAA,EACA,SAAA,EACA,GAAA,EACA,8BAAA,EACA,uCAAA,EACA,mBAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,mBAAA,EACA,sBAAA,EACA,SAAA,EACA,GAAA,EACA,4BAAA,EACA,oCAAA,EACA,GAAA,EACA,KAAA,EACA,EAAA,EACA,yBAAA,EACA,EAAA,CACF,CAAA;AAGA,EAAA,KAAA,IAAAqL,GAAA,GAAAC,CAAAA,EAAAA,gBAAA,GAA8BpG,MAAO,CAAAC,OAAA,CAAQlF,UAAU,CAAG,EAAAoL,GAAA,GAAAC,gBAAA,CAAAlG,MAAA,EAAAiG,GAAA,EAAA,EAAA;AAA1D,IAAA,IAAAE,mBAAA,GAAAjG,cAAA,CAAAgG,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAAYG,MAAAA,QAAU,GAAAD,mBAAA,CAAA,CAAA,CAAA;AAAA3E,MAAAA,GAAG,GAAA2E,mBAAA,CAAA,CAAA,CAAA,CAAA;AACjBvD,IAAAA,KAAA,CAAAI,IAAA,CAAA,MAAA,CAAA1C,MAAA,CAAY8F,QAAU,CAAA,CAAA,CAAA;AACtBxD,IAAAA,KAAA,CAAAI,IAAA,CAAKxB,IAAItF,WAAW,CAAA,CAAA;IAC1B,IAAIsF,IAAIjE,WAAa,EAAA;AACnBqF,MAAAA,KAAA,CAAMI,KAAK,qCAAqC,CAAA,CAAA;AAClD,KAAA;AACAJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACbJ,IAAAA,KAAA,CAAMI,KAAK,YAAY,CAAA,CAAA;IACZ,KAAAqD,IAAAA,GAAA,MAAAC,gBAAA,GAAwBxG,OAAOC,OAAQ,CAAAyB,GAAA,CAAIzG,KAAK,CAAG,EAAAsL,GAAA,GAAAC,gBAAA,CAAAtG,MAAA,EAAAqG,GAAA,EAAA,EAAA;AAAnD,MAAA,IAAAE,mBAAA,GAAArG,cAAA,CAAAoG,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAACjD,QAAAA;AAAUC,QAAAA,QAAQ,GAAAkD,mBAAA,CAAA,CAAA,CAAA,CAAA;MACtB3D,KAAA,CAAAI,IAAA,CAAA,KAAA,CAAA1C,MAAA,CAAY8C,QAAA,EAAA,KAAA,CAAA,CAAA9C,MAAA,CAAe+C,QAAU,CAAA,CAAA,CAAA;AAC7C,KAAA;AACAT,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACf,GAAA;AAGAJ,EAAAA,KAAA,CAAMI,KAAK,sBAAsB,CAAA,CAAA;AACjCJ,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AACb,EAAA,KAAA,IAAAwD,GAAA,GAAAC,CAAAA,EAAAA,gBAAA,GAAgC3G,MAAO,CAAAC,OAAA,CAAQvB,OAAO,CAAG,EAAAgI,GAAA,GAAAC,gBAAA,CAAAzG,MAAA,EAAAwG,GAAA,EAAA,EAAA;AAAzD,IAAA,IAAAE,mBAAA,GAAAxG,cAAA,CAAAuG,gBAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAAYG,MAAAA,UAAY,GAAAD,mBAAA,CAAA,CAAA,CAAA;AAAAjD,MAAAA,GAAG,GAAAiD,mBAAA,CAAA,CAAA,CAAA,CAAA;AACzB9D,IAAAA,KAAA,CAAMI,IAAK,CAAA1C,KAAAA,CAAAA,MAAA,CAAOqG,UAAiB,EAAArG,KAAAA,CAAAA,CAAAA,MAAA,CAAAmD,GAAA,CAAIvH,WAAa,CAAA,CAAA,CAAA;AACtD,GAAA;AACA0G,EAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAGb,EAAA,IAAIhB,cAAgB,EAAA;AAClBY,IAAAA,KAAA,CAAMI,KAAK,aAAa,CAAA,CAAA;AACxBJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAEbJ,IAAAA,KAAA,CAAMI,KAAK,+BAA+B,CAAA,CAAA;AAC1CJ,IAAAA,KAAA,CAAMI,KAAK,SAAS,CAAA,CAAA;AACdJ,IAAAA,KAAA,CAAAI,IAAA,CAAKU,KAAKC,SAAU,CAAA;AACxBrH,MAAAA,IAAM,EAAA,eAAA;AACNsK,MAAAA,SAAW,EAAA,aAAA;AACXC,MAAAA,EAAI,EAAA;AACFjD,QAAAA,IAAM,EAAA,WAAA;AACNC,QAAAA,QAAU,EAAA;AACRiD,UAAAA,SAAW,EAAA;AACT3G,YAAAA,GAAK,EAAA,WAAA;AACL7D,YAAAA,IAAM,EAAA,MAAA;AACNvB,YAAAA,KAAA,EAAO;AAAEqC,cAAAA,KAAA,EAAO,WAAA;aAAY;AAC5B/B,YAAAA,QAAA,EAAU,CAAC,YAAA,EAAc,YAAY,CAAA;WACvC;AACA2I,UAAAA,UAAY,EAAA;AACV7D,YAAAA,GAAK,EAAA,YAAA;AACL7D,YAAAA,IAAM,EAAA,WAAA;AACNvB,YAAAA,KAAO,EAAA;AAAEG,cAAAA,KAAO,EAAA,MAAA;AAAQ0B,cAAAA,WAAW,WAAA;AAAY,aAAA;WACjD;AACAuH,UAAAA,UAAY,EAAA;AACVhE,YAAAA,GAAK,EAAA,YAAA;AACL7D,YAAAA,IAAM,EAAA,QAAA;AACNvB,YAAAA,OAAO;AAAEM,cAAAA,QAAA,EAAU;AAAUG,cAAAA,KAAO,EAAA,SAAA;AAAWK,cAAAA,QAAQ,QAAA;AAAS,aAAA;AAClE,WAAA;AACF,SAAA;OACF;AACAyI,MAAAA,MAAM;AAAEC,QAAAA,IAAA,EAAM;AAAE3J,UAAAA,IAAA,EAAM,EAAA;AAAG,SAAA;AAAE,OAAA;AAC7B,KAAA,EAAG,IAAM,EAAA,CAAC,CAAC,CAAA,CAAA;AACXgI,IAAAA,KAAA,CAAMI,KAAK,KAAK,CAAA,CAAA;AAChBJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAEbJ,IAAAA,KAAA,CAAMI,KAAK,iDAAiD,CAAA,CAAA;AAC5DJ,IAAAA,KAAA,CAAMI,KAAK,8CAA8C,CAAA,CAAA;AACzDJ,IAAAA,KAAA,CAAMI,KAAK,SAAS,CAAA,CAAA;AACdJ,IAAAA,KAAA,CAAAI,IAAA,CAAKU,KAAKC,SAAU,CAAA;AACxBrH,MAAAA,IAAM,EAAA,kBAAA;AACNsK,MAAAA,SAAW,EAAA,aAAA;AACXG,MAAAA,KAAO,EAAA,CACL;AACEC,QAAAA,EAAI,EAAA,SAAA;AACJC,QAAAA,IAAM,EAAA,iCAAA;AACN7K,QAAAA,KAAO,EAAA,mBAAA;AACT,OAAA,EACA;AACE4K,QAAAA,EAAI,EAAA,KAAA;AACJC,QAAAA,IAAM,EAAA,uBAAA;AACN7K,QAAAA,KAAO,EAAA;AACL+D,UAAAA,GAAK,EAAA,aAAA;AACL7D,UAAAA,IAAM,EAAA,MAAA;AACNvB,UAAAA,KAAO,EAAA;AACLqC,YAAAA,KAAO,EAAA,QAAA;AACPlB,YAAAA,WAAa,EAAA,8BAAA;AACf,WAAA;AACF,SAAA;AACF,OAAA,EACA;AACE8K,QAAAA,EAAI,EAAA,KAAA;AACJC,QAAAA,IAAM,EAAA,gCAAA;AACN7K,QAAAA,KAAO,EAAA,aAAA;OACT,CAAA;AAEJ,KAAA,EAAG,IAAM,EAAA,CAAC,CAAC,CAAA,CAAA;AACXwG,IAAAA,KAAA,CAAMI,KAAK,KAAK,CAAA,CAAA;AAChBJ,IAAAA,KAAA,CAAMI,KAAK,EAAE,CAAA,CAAA;AAEbJ,IAAAA,KAAA,CAAMI,KAAK,2BAA2B,CAAA,CAAA;AACtCJ,IAAAA,KAAA,CAAMI,KAAK,SAAS,CAAA,CAAA;AACdJ,IAAAA,KAAA,CAAAI,IAAA,CAAKU,KAAKC,SAAU,CAAA;AACxBrH,MAAAA,IAAM,EAAA,iBAAA;AACNsK,MAAAA,SAAW,EAAA,aAAA;AACXtC,MAAAA,IAAM,EAAA;AACJC,QAAAA,IAAA,EAAM;AAAE3J,UAAAA,IAAA,EAAM,UAAA;SAAW;AACzBsM,QAAAA,UAAY,EAAA,OAAA;AACd,OAAA;AACF,KAAA,EAAG,IAAM,EAAA,CAAC,CAAC,CAAA,CAAA;AACXtE,IAAAA,KAAA,CAAMI,KAAK,KAAK,CAAA,CAAA;AAClB,GAAA;AAEO,EAAA,OAAAJ,KAAA,CAAM9B,KAAK,IAAI,CAAA,CAAA;AACxB;;;;"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
7
  import '@babel/runtime/helpers/defineProperty';
8
8
  import 'react';
9
- export { j as createA2UIJsonRenderActivityConfig, h as createJsonRenderActivityConfig, h as default, k as defaultA2UIJsonRenderActivityConfig, i as defaultJsonRenderActivityConfig } from '../../../_chunks/dep-3864b369.js';
9
+ export { j as createA2UIJsonRenderActivityConfig, h as createJsonRenderActivityConfig, h as default, k as defaultA2UIJsonRenderActivityConfig, i as defaultJsonRenderActivityConfig } from '../../../_chunks/dep-bcb234a1.js';
10
10
  import '@babel/runtime/helpers/typeof';
11
11
  import '@babel/runtime/helpers/slicedToArray';
12
12
  import './adapters/index.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,10 +1,10 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
6
6
 
7
- export { e as A2UIButton, A as A2UIJsonRenderActivityRenderer, d as A2UITextField, J as JsonRenderActivityRenderer, g as JsonRenderInput, a as a2uiRegistry, j as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, h as createJsonRenderActivityConfig, h as default, k as defaultA2UIJsonRenderActivityConfig, i as defaultJsonRenderActivityConfig, t as tdesignRegistry, f as withA2UIBinding, w as withStableProps } from '../../../_chunks/dep-3864b369.js';
7
+ export { e as A2UIButton, A as A2UIJsonRenderActivityRenderer, d as A2UITextField, J as JsonRenderActivityRenderer, g as JsonRenderInput, a as a2uiRegistry, j as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, h as createJsonRenderActivityConfig, h as default, k as defaultA2UIJsonRenderActivityConfig, i as defaultJsonRenderActivityConfig, t as tdesignRegistry, f as withA2UIBinding, w as withStableProps } from '../../../_chunks/dep-bcb234a1.js';
8
8
  export { JsonRenderEngine, createJsonRenderEngine } from './engine.js';
9
9
  export { PERFORMANCE_THRESHOLDS, PerformanceMonitor, checkPerformance, globalPerformanceMonitor } from './performance.js';
10
10
  export { JsonRenderButton } from './catalog/button.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -27,6 +27,8 @@ import '@babel/runtime/helpers/wrapNativeSuper';
27
27
  import '../../core/adapters/agui/state-manager.js';
28
28
  import '@babel/runtime/helpers/typeof';
29
29
  import '../../core/utils/index.js';
30
+ import '../../core/utils/json-patch/index.js';
31
+ import '../../core/utils/json-patch/helpers.js';
30
32
  import '../../core/adapters/agui/activity-manager.js';
31
33
  import '../../core/adapters/agui/utils.js';
32
34
  import '../../core/event-bus/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"agent-state.js","sources":["../../../../../pro-components/chat/chat-engine/components/provider/agent-state.tsx"],"sourcesContent":["import React from 'react';\nimport { AgentStateContext, type StateActionOptions, useAgentState } from '../../hooks/useAgentState';\n\n// 导出 Provider 组件\nexport const AgentStateProvider = ({ children, initialState = {}, subscribeKey }: StateActionOptions & {\n children: React.ReactNode;\n}) => {\n const agentStateResult = useAgentState({\n initialState,\n subscribeKey,\n });\n\n return (\n <AgentStateContext.Provider value={agentStateResult}>\n {children}\n </AgentStateContext.Provider>\n );\n};\n"],"names":["AgentStateProvider","_ref","children","_ref$initialState","initialState","subscribeKey","agentStateResult","useAgentState","React","createElement","AgentStateContext","Provider","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,kBAAA,GAAqB,SAArBA,kBAAAA,CAAAC,IAAA,EAEP;AAAA,EAAA,IAF+BC,QAAA,GAAAD,IAAA,CAAAC,QAAA;IAAAC,iBAAA,GAAAF,IAAA,CAAUG;AAAAA,IAAAA,8CAAe,EAAC,GAAAD,iBAAA;IAAGE,oBAAAA;EAGhE,IAAMC,mBAAmBC,aAAc,CAAA;AACrCH,IAAAA,YAAA,EAAAA,YAAA;AACAC,IAAAA,YAAA,EAAAA,YAAAA;AACF,GAAC,CAAA,CAAA;EAGC,sBAAAG,KAAA,CAAAC,aAAA,CAACC,kBAAkBC,QAAlB,EAAA;AAA2BC,IAAAA,KAAO,EAAAN,gBAAAA;GAAA,EAChCJ,QACH,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"agent-state.js","sources":["../../../../../pro-components/chat/chat-engine/components/provider/agent-state.tsx"],"sourcesContent":["import React from 'react';\nimport { AgentStateContext, type StateActionOptions, useAgentState } from '../../hooks/useAgentState';\n\n// 导出 Provider 组件\nexport const AgentStateProvider = ({ children, initialState = {}, subscribeKey }: StateActionOptions & {\n children: React.ReactNode;\n}) => {\n const agentStateResult = useAgentState({\n initialState,\n subscribeKey,\n });\n\n return (\n <AgentStateContext.Provider value={agentStateResult}>\n {children}\n </AgentStateContext.Provider>\n );\n};\n"],"names":["AgentStateProvider","_ref","children","_ref$initialState","initialState","subscribeKey","agentStateResult","useAgentState","React","createElement","AgentStateContext","Provider","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIaA,kBAAA,GAAqB,SAArBA,kBAAAA,CAAAC,IAAA,EAEP;AAAA,EAAA,IAF+BC,QAAA,GAAAD,IAAA,CAAAC,QAAA;IAAAC,iBAAA,GAAAF,IAAA,CAAUG;AAAAA,IAAAA,8CAAe,EAAC,GAAAD,iBAAA;IAAGE,oBAAAA;EAGhE,IAAMC,mBAAmBC,aAAc,CAAA;AACrCH,IAAAA,YAAA,EAAAA,YAAA;AACAC,IAAAA,YAAA,EAAAA,YAAAA;AACF,GAAC,CAAA,CAAA;EAGC,sBAAAG,KAAA,CAAAC,aAAA,CAACC,kBAAkBC,QAAlB,EAAA;AAA2BC,IAAAA,KAAO,EAAAN,gBAAAA;GAAA,EAChCJ,QACH,CAAA,CAAA;AAEJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -30,6 +30,8 @@ import '@babel/runtime/helpers/wrapNativeSuper';
30
30
  import '../../core/adapters/agui/state-manager.js';
31
31
  import '@babel/runtime/helpers/typeof';
32
32
  import '../../core/utils/index.js';
33
+ import '../../core/utils/json-patch/index.js';
34
+ import '../../core/utils/json-patch/helpers.js';
33
35
  import '../../core/adapters/agui/activity-manager.js';
34
36
  import '../../core/adapters/agui/utils.js';
35
37
  import '../../core/event-bus/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.2
2
+ * tdesign v1.1.0-alpha.4
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -22,6 +22,9 @@ import { AGUIEventType } from '../../core/adapters/agui/events.js';
22
22
  import '../../core/adapters/agui/state-manager.js';
23
23
  import '@babel/runtime/helpers/typeof';
24
24
  import '../../core/utils/index.js';
25
+ import '../../core/utils/json-patch/index.js';
26
+ import '../../core/utils/json-patch/helpers.js';
27
+ import '@babel/runtime/helpers/wrapNativeSuper';
25
28
  import '@babel/runtime/helpers/objectWithoutProperties';
26
29
  import '../../core/adapters/agui/index.js';
27
30
  import '@babel/runtime/helpers/toConsumableArray';
@@ -30,7 +33,6 @@ import '../../core/adapters/agui/activity-manager.js';
30
33
  import '../../core/adapters/agui/utils.js';
31
34
  import 'zod';
32
35
  import '../../core/adapters/agui/types.js';
33
- import '@babel/runtime/helpers/wrapNativeSuper';
34
36
  import '../../core/event-bus/index.js';
35
37
  import '../../core/event-bus/ChatEventBus.js';
36
38
  import '../../core/event-bus/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo, Component, ErrorInfo } from 'react';\nimport { isNonInteractiveConfig, type ToolcallComponentProps } from './types';\nimport { agentToolcallRegistry } from './registry';\nimport { AgentStateContext, useAgentStateDataByKey } from '../../hooks/useAgentState';\nimport { AGUIEventType, ToolCall } from '../../core';\n\ninterface ToolCallRendererProps {\n toolCall: ToolCall;\n onRespond?: (toolCall: ToolCall, response: any) => void;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\n/**\n * ToolCall 错误边界组件\n * 捕获子组件渲染错误,防止整个对话列表崩溃\n */\nclass ToolCallErrorBoundary extends Component<\n { children: React.ReactNode; toolCallName: string },\n ErrorBoundaryState\n> {\n constructor(props: { children: React.ReactNode; toolCallName: string }) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error(`[ToolCallRenderer] Error in tool \"${this.props.toolCallName}\":`, error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n // 空白兜底,仅在控制台输出错误\n return null;\n }\n\n return this.props.children;\n }\n}\n\nexport const ToolCallRenderer = React.memo<ToolCallRendererProps>(\n ({ toolCall, onRespond }) => {\n const [actionState, setActionState] = useState<{\n status: ToolcallComponentProps['status'];\n result?: any;\n error?: Error;\n }>({\n status: 'idle',\n });\n\n // 缓存配置获取\n const config = useMemo(() => {\n const cfg = agentToolcallRegistry.get(toolCall.toolCallName);\n return cfg;\n }, [toolCall.toolCallName]);\n\n // 添加注册状态监听\n const [isRegistered, setIsRegistered] = useState(\n () => !!agentToolcallRegistry.getRenderFunction(toolCall.toolCallName),\n );\n\n // 缓存参数解析\n const args = useMemo(() => {\n try {\n return toolCall.args ? JSON.parse(toolCall.args) : {};\n } catch (error) {\n console.error('解析工具调用参数失败:', error);\n return {};\n }\n }, [toolCall.args]);\n\n const handleRespond = useCallback(\n (response: any) => {\n if (onRespond) {\n onRespond(toolCall, response);\n setActionState((prev) => ({\n ...prev,\n status: 'complete',\n result: response,\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallId, onRespond],\n );\n\n // 执行 handler(如果存在)- 必须在条件判断之前调用\n useEffect(() => {\n if (!config) return;\n\n if (isNonInteractiveConfig(config)) {\n // 非交互式:执行 handler\n const executeHandler = async () => {\n try {\n setActionState({ status: 'executing' });\n\n // 解析后端返回的结果作为 handler 的第二个参数\n let backendResult;\n if (toolCall.result) {\n try {\n backendResult = JSON.parse(toolCall.result);\n } catch (error) {\n console.warn('解析后端结果失败,使用原始字符串:', error);\n backendResult = toolCall.result;\n }\n }\n\n // 调用 handler,传入 args 和 backendResult\n const result = await config.handler(args, backendResult);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n };\n\n executeHandler();\n } else if (toolCall.result) {\n // 交互式:已有结果,显示完成状态\n try {\n const result = JSON.parse(toolCall.result);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n } else if (toolCall.eventType === AGUIEventType.TOOL_CALL_END || toolCall.eventType === AGUIEventType.TOOL_CALL_RESULT) {\n // 工具调用已结束(无 result 的情况,如 show_progress)\n setActionState({ status: 'complete' });\n } else {\n // 等待用户交互或工具执行中\n setActionState({ status: 'executing' });\n }\n }, [config, args, toolCall.result, toolCall.eventType]);\n\n // 从配置中获取 subscribeKey 提取函数\n const subscribeKeyExtractor = useMemo(() => config?.subscribeKey, [config]);\n\n // 使用配置的提取函数来获取 targetStateKey\n const targetStateKey = useMemo(() => {\n if (!subscribeKeyExtractor) return undefined;\n\n // 构造完整的 props 对象传给提取函数\n const fullProps = {\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n };\n\n return subscribeKeyExtractor(fullProps);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribeKeyExtractor, args, actionState]);\n\n // 监听组件注册事件, 无论何时注册,都能正确触发重新渲染\n useEffect(() => {\n if (!isRegistered) {\n const handleRegistered = (event: CustomEvent) => {\n if (event.detail?.name === toolCall.toolCallName) {\n setIsRegistered(true);\n }\n };\n\n // 添加事件监听\n window.addEventListener('toolcall-registered', handleRegistered as EventListener);\n\n return () => {\n window.removeEventListener('toolcall-registered', handleRegistered as EventListener);\n };\n }\n }, [toolCall.toolCallName, isRegistered]);\n\n // 使用精确订阅\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n // 缓存组件 props\n const componentProps = useMemo<ToolcallComponentProps>(\n () => ({\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n agentState,\n }),\n [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState],\n );\n\n // 使用registry的缓存渲染函数\n const MemoizedComponent = useMemo(\n () => agentToolcallRegistry.getRenderFunction(toolCall.toolCallName),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallName, isRegistered],\n );\n\n if (!MemoizedComponent) {\n return null;\n }\n\n return (\n <ToolCallErrorBoundary toolCallName={toolCall.toolCallName}>\n <MemoizedComponent {...componentProps} />\n </ToolCallErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId &&\n prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName &&\n prevProps.toolCall.args === nextProps.toolCall.args &&\n prevProps.toolCall.result === nextProps.toolCall.result &&\n prevProps.toolCall.eventType === nextProps.toolCall.eventType &&\n prevProps.onRespond === nextProps.onRespond,\n);\n// 用于调试,可以在控制台查看每次渲染的参数\n// (prevProps, nextProps) => {\n// const toolCallIdSame = prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId;\n// const toolCallNameSame = prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName;\n// const argsSame = prevProps.toolCall.args === nextProps.toolCall.args;\n// const resultSame = prevProps.toolCall.result === nextProps.toolCall.result;\n// const onRespondSame = prevProps.onRespond === nextProps.onRespond;\n\n// console.log(`ToolCallRenderer memo 详细检查 [${prevProps.toolCall.toolCallName}]:`, {\n// toolCallIdSame,\n// toolCallNameSame,\n// argsSame,\n// resultSame,\n// onRespondSame,\n// prevToolCallId: prevProps.toolCall.toolCallId,\n// nextToolCallId: nextProps.toolCall.toolCallId,\n// prevOnRespond: prevProps.onRespond,\n// nextOnRespond: nextProps.onRespond,\n// });\n\n// const shouldSkip = toolCallIdSame && toolCallNameSame && argsSame && resultSame && onRespondSame;\n\n// console.log(`ToolCallRenderer memo 检查 [${prevProps.toolCall.toolCallName}]:`, shouldSkip ? '跳过渲染' : '需要重新渲染');\n// return shouldSkip\n// },\n// );\n\n// 定义增强后的 Props 类型\ntype WithAgentStateProps<P> = P & { agentState?: Record<string, any> };\n\nexport const withAgentStateToolcall1 = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => (\n <AgentStateContext.Consumer>\n {(context) => {\n if (!context) {\n console.warn('AgentStateContext not found, component will render without state');\n return <Component {...props} />;\n }\n\n return <Component {...props} agentState={context.stateMap} />;\n }}\n </AgentStateContext.Consumer>\n );\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n\nexport const withAgentStateToolcall = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n subscribeKeyExtractor?: (props: P) => string | undefined,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => {\n // 计算需要订阅的 stateKey\n const targetStateKey = useMemo(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined), [props]);\n\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n return <Component {...props} agentState={agentState} />;\n };\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n"],"names":["ToolCallErrorBoundary","props","_this","_classCallCheck","_callSuper","state","hasError","error","_inherits","_Component","_createClass","key","value","componentDidCatch","errorInfo","console","toolCallName","render","children","getDerivedStateFromError","Component","ToolCallRenderer","React","memo","_ref","toolCall","onRespond","_useState","useState","status","_useState2","_slicedToArray","actionState","setActionState","config","useMemo","cfg","agentToolcallRegistry","get","_useState3","getRenderFunction","_useState4","isRegistered","setIsRegistered","args","JSON","parse","handleRespond","useCallback","response","prev","_objectSpread","result","toolCallId","useEffect","isNonInteractiveConfig","executeHandler","_callee","backendResult","_t","_regeneratorRuntime","wrap","_context","next","warn","handler","sent","stop","eventType","AGUIEventType","TOOL_CALL_END","TOOL_CALL_RESULT","subscribeKeyExtractor","subscribeKey","targetStateKey","fullProps","respond","handleRegistered","event","_event$detail","detail","name","window","addEventListener","removeEventListener","agentState","useAgentStateDataByKey","componentProps","MemoizedComponent","createElement","prevProps","nextProps","withAgentStateToolcall1","WrappedComponent","AgentStateContext","Consumer","context","stateMap","displayName","concat","withAgentStateToolcall"],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sources":["../../../../../pro-components/chat/chat-engine/components/toolcall/render.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo, Component, ErrorInfo } from 'react';\nimport { isNonInteractiveConfig, type ToolcallComponentProps } from './types';\nimport { agentToolcallRegistry } from './registry';\nimport { AgentStateContext, useAgentStateDataByKey } from '../../hooks/useAgentState';\nimport { AGUIEventType, ToolCall } from '../../core';\n\ninterface ToolCallRendererProps {\n toolCall: ToolCall;\n onRespond?: (toolCall: ToolCall, response: any) => void;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\n/**\n * ToolCall 错误边界组件\n * 捕获子组件渲染错误,防止整个对话列表崩溃\n */\nclass ToolCallErrorBoundary extends Component<\n { children: React.ReactNode; toolCallName: string },\n ErrorBoundaryState\n> {\n constructor(props: { children: React.ReactNode; toolCallName: string }) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error(`[ToolCallRenderer] Error in tool \"${this.props.toolCallName}\":`, error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n // 空白兜底,仅在控制台输出错误\n return null;\n }\n\n return this.props.children;\n }\n}\n\nexport const ToolCallRenderer = React.memo<ToolCallRendererProps>(\n ({ toolCall, onRespond }) => {\n const [actionState, setActionState] = useState<{\n status: ToolcallComponentProps['status'];\n result?: any;\n error?: Error;\n }>({\n status: 'idle',\n });\n\n // 缓存配置获取\n const config = useMemo(() => {\n const cfg = agentToolcallRegistry.get(toolCall.toolCallName);\n return cfg;\n }, [toolCall.toolCallName]);\n\n // 添加注册状态监听\n const [isRegistered, setIsRegistered] = useState(\n () => !!agentToolcallRegistry.getRenderFunction(toolCall.toolCallName),\n );\n\n // 缓存参数解析\n const args = useMemo(() => {\n try {\n return toolCall.args ? JSON.parse(toolCall.args) : {};\n } catch (error) {\n console.error('解析工具调用参数失败:', error);\n return {};\n }\n }, [toolCall.args]);\n\n const handleRespond = useCallback(\n (response: any) => {\n if (onRespond) {\n onRespond(toolCall, response);\n setActionState((prev) => ({\n ...prev,\n status: 'complete',\n result: response,\n }));\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallId, onRespond],\n );\n\n // 执行 handler(如果存在)- 必须在条件判断之前调用\n useEffect(() => {\n if (!config) return;\n\n if (isNonInteractiveConfig(config)) {\n // 非交互式:执行 handler\n const executeHandler = async () => {\n try {\n setActionState({ status: 'executing' });\n\n // 解析后端返回的结果作为 handler 的第二个参数\n let backendResult;\n if (toolCall.result) {\n try {\n backendResult = JSON.parse(toolCall.result);\n } catch (error) {\n console.warn('解析后端结果失败,使用原始字符串:', error);\n backendResult = toolCall.result;\n }\n }\n\n // 调用 handler,传入 args 和 backendResult\n const result = await config.handler(args, backendResult);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n };\n\n executeHandler();\n } else if (toolCall.result) {\n // 交互式:已有结果,显示完成状态\n try {\n const result = JSON.parse(toolCall.result);\n setActionState({\n status: 'complete',\n result,\n });\n } catch (error) {\n setActionState({\n status: 'error',\n error: error as Error,\n });\n }\n } else if (toolCall.eventType === AGUIEventType.TOOL_CALL_END || toolCall.eventType === AGUIEventType.TOOL_CALL_RESULT) {\n // 工具调用已结束(无 result 的情况,如 show_progress)\n setActionState({ status: 'complete' });\n } else {\n // 等待用户交互或工具执行中\n setActionState({ status: 'executing' });\n }\n }, [config, args, toolCall.result, toolCall.eventType]);\n\n // 从配置中获取 subscribeKey 提取函数\n const subscribeKeyExtractor = useMemo(() => config?.subscribeKey, [config]);\n\n // 使用配置的提取函数来获取 targetStateKey\n const targetStateKey = useMemo(() => {\n if (!subscribeKeyExtractor) return undefined;\n\n // 构造完整的 props 对象传给提取函数\n const fullProps = {\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n };\n\n return subscribeKeyExtractor(fullProps);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribeKeyExtractor, args, actionState]);\n\n // 监听组件注册事件, 无论何时注册,都能正确触发重新渲染\n useEffect(() => {\n if (!isRegistered) {\n const handleRegistered = (event: CustomEvent) => {\n if (event.detail?.name === toolCall.toolCallName) {\n setIsRegistered(true);\n }\n };\n\n // 添加事件监听\n window.addEventListener('toolcall-registered', handleRegistered as EventListener);\n\n return () => {\n window.removeEventListener('toolcall-registered', handleRegistered as EventListener);\n };\n }\n }, [toolCall.toolCallName, isRegistered]);\n\n // 使用精确订阅\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n // 缓存组件 props\n const componentProps = useMemo<ToolcallComponentProps>(\n () => ({\n status: actionState.status,\n args,\n result: actionState.result,\n error: actionState.error,\n respond: handleRespond,\n agentState,\n }),\n [actionState.status, args, actionState.result, actionState.error, handleRespond, agentState],\n );\n\n // 使用registry的缓存渲染函数\n const MemoizedComponent = useMemo(\n () => agentToolcallRegistry.getRenderFunction(toolCall.toolCallName),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [toolCall.toolCallName, isRegistered],\n );\n\n if (!MemoizedComponent) {\n return null;\n }\n\n return (\n <ToolCallErrorBoundary toolCallName={toolCall.toolCallName}>\n <MemoizedComponent {...componentProps} />\n </ToolCallErrorBoundary>\n );\n },\n (prevProps, nextProps) =>\n prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId &&\n prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName &&\n prevProps.toolCall.args === nextProps.toolCall.args &&\n prevProps.toolCall.result === nextProps.toolCall.result &&\n prevProps.toolCall.eventType === nextProps.toolCall.eventType &&\n prevProps.onRespond === nextProps.onRespond,\n);\n// 用于调试,可以在控制台查看每次渲染的参数\n// (prevProps, nextProps) => {\n// const toolCallIdSame = prevProps.toolCall.toolCallId === nextProps.toolCall.toolCallId;\n// const toolCallNameSame = prevProps.toolCall.toolCallName === nextProps.toolCall.toolCallName;\n// const argsSame = prevProps.toolCall.args === nextProps.toolCall.args;\n// const resultSame = prevProps.toolCall.result === nextProps.toolCall.result;\n// const onRespondSame = prevProps.onRespond === nextProps.onRespond;\n\n// console.log(`ToolCallRenderer memo 详细检查 [${prevProps.toolCall.toolCallName}]:`, {\n// toolCallIdSame,\n// toolCallNameSame,\n// argsSame,\n// resultSame,\n// onRespondSame,\n// prevToolCallId: prevProps.toolCall.toolCallId,\n// nextToolCallId: nextProps.toolCall.toolCallId,\n// prevOnRespond: prevProps.onRespond,\n// nextOnRespond: nextProps.onRespond,\n// });\n\n// const shouldSkip = toolCallIdSame && toolCallNameSame && argsSame && resultSame && onRespondSame;\n\n// console.log(`ToolCallRenderer memo 检查 [${prevProps.toolCall.toolCallName}]:`, shouldSkip ? '跳过渲染' : '需要重新渲染');\n// return shouldSkip\n// },\n// );\n\n// 定义增强后的 Props 类型\ntype WithAgentStateProps<P> = P & { agentState?: Record<string, any> };\n\nexport const withAgentStateToolcall1 = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => (\n <AgentStateContext.Consumer>\n {(context) => {\n if (!context) {\n console.warn('AgentStateContext not found, component will render without state');\n return <Component {...props} />;\n }\n\n return <Component {...props} agentState={context.stateMap} />;\n }}\n </AgentStateContext.Consumer>\n );\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n\nexport const withAgentStateToolcall = <P extends object>(\n Component: React.ComponentType<WithAgentStateProps<P>>,\n subscribeKeyExtractor?: (props: P) => string | undefined,\n): React.ComponentType<P> => {\n const WrappedComponent: React.FC<P> = (props: P) => {\n // 计算需要订阅的 stateKey\n const targetStateKey = useMemo(() => (subscribeKeyExtractor ? subscribeKeyExtractor(props) : undefined), [props]);\n\n const agentState = useAgentStateDataByKey(targetStateKey);\n\n return <Component {...props} agentState={agentState} />;\n };\n\n WrappedComponent.displayName = `withAgentState(${Component.displayName || Component.name || 'Component'})`;\n return React.memo(WrappedComponent);\n};\n"],"names":["ToolCallErrorBoundary","props","_this","_classCallCheck","_callSuper","state","hasError","error","_inherits","_Component","_createClass","key","value","componentDidCatch","errorInfo","console","toolCallName","render","children","getDerivedStateFromError","Component","ToolCallRenderer","React","memo","_ref","toolCall","onRespond","_useState","useState","status","_useState2","_slicedToArray","actionState","setActionState","config","useMemo","cfg","agentToolcallRegistry","get","_useState3","getRenderFunction","_useState4","isRegistered","setIsRegistered","args","JSON","parse","handleRespond","useCallback","response","prev","_objectSpread","result","toolCallId","useEffect","isNonInteractiveConfig","executeHandler","_callee","backendResult","_t","_regeneratorRuntime","wrap","_context","next","warn","handler","sent","stop","eventType","AGUIEventType","TOOL_CALL_END","TOOL_CALL_RESULT","subscribeKeyExtractor","subscribeKey","targetStateKey","fullProps","respond","handleRegistered","event","_event$detail","detail","name","window","addEventListener","removeEventListener","agentState","useAgentStateDataByKey","componentProps","MemoizedComponent","createElement","prevProps","nextProps","withAgentStateToolcall1","WrappedComponent","AgentStateContext","Consumer","context","stateMap","displayName","concat","withAgentStateToolcall"],"mappings":"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"}