@tdesign-react/chat 1.0.2-alpha.9 → 1.0.3-alpha.2
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.
- package/CHANGELOG.md +14 -1
- package/README.md +76 -22
- package/es/_chunks/dep-076af7c3.js +438 -0
- package/es/_chunks/dep-076af7c3.js.map +1 -0
- package/es/_chunks/dep-1007ac80.js +205 -0
- package/es/_chunks/dep-1007ac80.js.map +1 -0
- package/es/_chunks/dep-16520c2b.js +1247 -0
- package/es/_chunks/dep-16520c2b.js.map +1 -0
- package/es/_chunks/dep-1743bd61.js +438 -0
- package/es/_chunks/dep-1743bd61.js.map +1 -0
- package/es/_chunks/dep-1ca64fef.js +1247 -0
- package/es/_chunks/dep-1ca64fef.js.map +1 -0
- package/es/_chunks/dep-24472232.js +839 -0
- package/es/_chunks/dep-24472232.js.map +1 -0
- package/es/_chunks/dep-3864b369.js +839 -0
- package/es/_chunks/dep-3864b369.js.map +1 -0
- package/es/_chunks/dep-3e40d789.js +169 -0
- package/es/_chunks/dep-3e40d789.js.map +1 -0
- package/es/_chunks/dep-4dedfbef.js +438 -0
- package/es/_chunks/dep-4dedfbef.js.map +1 -0
- package/es/_chunks/dep-56f5e08e.js +448 -0
- package/es/_chunks/dep-56f5e08e.js.map +1 -0
- package/es/_chunks/dep-5b6b17d0.js +169 -0
- package/es/_chunks/dep-5b6b17d0.js.map +1 -0
- package/es/_chunks/dep-688e4aaa.js +438 -0
- package/es/_chunks/dep-688e4aaa.js.map +1 -0
- package/es/_chunks/dep-870f0d35.js +839 -0
- package/es/_chunks/dep-870f0d35.js.map +1 -0
- package/es/_chunks/dep-96eca06f.js +169 -0
- package/es/_chunks/dep-96eca06f.js.map +1 -0
- package/es/_chunks/dep-ba3bd553.js +169 -0
- package/es/_chunks/dep-ba3bd553.js.map +1 -0
- package/es/_chunks/dep-bcb234a1.js +839 -0
- package/es/_chunks/dep-bcb234a1.js.map +1 -0
- package/es/_chunks/dep-de8ac730.js +1247 -0
- package/es/_chunks/dep-de8ac730.js.map +1 -0
- package/es/_chunks/dep-e9dbff09.js +1247 -0
- package/es/_chunks/dep-e9dbff09.js.map +1 -0
- package/es/_chunks/dep-ebc4cf30.js +1247 -0
- package/es/_chunks/dep-ebc4cf30.js.map +1 -0
- package/es/_chunks/dep-f2051ebd.js +839 -0
- package/es/_chunks/dep-f2051ebd.js.map +1 -0
- package/es/_chunks/dep-f691a67e.js +438 -0
- package/es/_chunks/dep-f691a67e.js.map +1 -0
- package/es/_chunks/dep-f8016301.js +169 -0
- package/es/_chunks/dep-f8016301.js.map +1 -0
- package/es/_util/reactify.js +33 -13
- package/es/_util/reactify.js.map +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
- package/es/chat-engine/components/a2ui/containers/index.js +30 -0
- package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/index.d.ts +11 -0
- package/es/chat-engine/components/a2ui/index.js +62 -0
- package/es/chat-engine/components/a2ui/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
- package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
- package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
- package/es/chat-engine/components/a2ui/registry.js +74 -0
- package/es/chat-engine/components/a2ui/registry.js.map +1 -0
- package/es/chat-engine/components/activity/index.d.ts +0 -1
- package/es/chat-engine/components/activity/index.js +10 -5
- package/es/chat-engine/components/activity/index.js.map +1 -1
- package/es/chat-engine/components/activity/registry.d.ts +7 -41
- package/es/chat-engine/components/activity/registry.js +23 -77
- package/es/chat-engine/components/activity/registry.js.map +1 -1
- package/es/chat-engine/components/activity/render.d.ts +5 -1
- package/es/chat-engine/components/activity/render.js +33 -71
- package/es/chat-engine/components/activity/render.js.map +1 -1
- package/es/chat-engine/components/activity/types.d.ts +0 -3
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.js +16 -11
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
- package/es/chat-engine/components/json-render/adapters/index.js +11 -0
- package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
- package/es/chat-engine/components/json-render/catalog/index.js +36 -0
- package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/input.js +36 -0
- package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog.js +779 -0
- package/es/chat-engine/components/json-render/catalog.js.map +1 -0
- package/es/chat-engine/components/json-render/config.d.ts +154 -0
- package/es/chat-engine/components/json-render/config.js +36 -0
- package/es/chat-engine/components/json-render/config.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
- package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
- package/es/chat-engine/components/json-render/contexts/data.js +183 -0
- package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
- package/es/chat-engine/components/json-render/contexts/index.js +27 -0
- package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
- package/es/chat-engine/components/json-render/contexts/store.js +104 -0
- package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
- package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
- package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
- package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
- package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
- package/es/chat-engine/components/json-render/engine.d.ts +58 -0
- package/es/chat-engine/components/json-render/engine.js +88 -0
- package/es/chat-engine/components/json-render/engine.js.map +1 -0
- package/es/chat-engine/components/json-render/index.d.ts +13 -0
- package/es/chat-engine/components/json-render/index.js +76 -0
- package/es/chat-engine/components/json-render/index.js.map +1 -0
- package/es/chat-engine/components/json-render/performance.d.ts +91 -0
- package/es/chat-engine/components/json-render/performance.js +135 -0
- package/es/chat-engine/components/json-render/performance.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
- package/es/chat-engine/components/json-render/registry/config.js +76 -0
- package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
- package/es/chat-engine/components/json-render/registry/index.js +76 -0
- package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
- package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/index.js +125 -0
- package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer.js +124 -0
- package/es/chat-engine/components/json-render/renderer.js.map +1 -0
- package/es/chat-engine/components/json-render/types.d.ts +87 -0
- package/es/chat-engine/components/json-render/types.js +7 -0
- package/es/chat-engine/components/json-render/types.js.map +1 -0
- package/es/chat-engine/components/provider/agent-state.js +1 -1
- package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
- package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
- package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
- package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
- package/es/chat-engine/components/shared/createRegistry.js +72 -0
- package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
- package/es/chat-engine/components/shared/index.d.ts +4 -0
- package/es/chat-engine/components/shared/index.js +18 -0
- package/es/chat-engine/components/shared/index.js.map +1 -0
- package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
- package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
- package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
- package/es/chat-engine/components/toolcall/index.d.ts +1 -1
- package/es/chat-engine/components/toolcall/index.js +12 -8
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
- package/es/chat-engine/components/toolcall/registry.js +23 -67
- package/es/chat-engine/components/toolcall/registry.js.map +1 -1
- package/es/chat-engine/components/toolcall/render.d.ts +1 -1
- package/es/chat-engine/components/toolcall/render.js +30 -79
- package/es/chat-engine/components/toolcall/render.js.map +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/a2ui/index.js +24 -0
- package/es/chat-engine/core/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
- package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
- package/es/chat-engine/core/adapters/agui/event-mapper.js +94 -52
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
- package/es/chat-engine/core/adapters/agui/events.js +34 -34
- package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/index.d.ts +21 -4
- package/es/chat-engine/core/adapters/agui/index.js +48 -23
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/state-manager.js +7 -1
- package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
- package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
- package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
- package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
- package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
- package/es/chat-engine/core/adapters/agui/types.js +5 -5
- package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
- package/es/chat-engine/core/adapters/agui/utils.js +23 -4
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
- package/es/chat-engine/core/adapters/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/index.js +34 -0
- package/es/chat-engine/core/adapters/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
- package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
- package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
- package/es/chat-engine/core/adapters/json-render/index.js +18 -0
- package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
- package/es/chat-engine/core/event-bus/index.d.ts +5 -0
- package/es/chat-engine/core/event-bus/index.js +13 -0
- package/es/chat-engine/core/event-bus/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/types.d.ts +230 -0
- package/es/chat-engine/core/event-bus/types.js +32 -0
- package/es/chat-engine/core/event-bus/types.js.map +1 -0
- package/es/chat-engine/core/index.d.ts +17 -2
- package/es/chat-engine/core/index.js +185 -22
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.js +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -1
- package/es/chat-engine/core/server/llm-service.js +4 -2
- package/es/chat-engine/core/server/llm-service.js.map +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/store/message.js +6 -2
- package/es/chat-engine/core/store/message.js.map +1 -1
- package/es/chat-engine/core/store/model.js +2 -1
- package/es/chat-engine/core/store/model.js.map +1 -1
- package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
- package/es/chat-engine/core/store/reactiveState.js +15 -1235
- package/es/chat-engine/core/store/reactiveState.js.map +1 -1
- package/es/chat-engine/core/type.d.ts +25 -1
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
- package/es/chat-engine/core/utils/immutable-patch.js +147 -0
- package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
- package/es/chat-engine/core/utils/index.d.ts +7 -2
- package/es/chat-engine/core/utils/index.js +9 -883
- package/es/chat-engine/core/utils/index.js.map +1 -1
- package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
- package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
- package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
- package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
- package/es/chat-engine/core/utils/json-patch/index.js +387 -0
- package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/core/utils/performance.d.ts +94 -0
- package/es/chat-engine/core/utils/performance.js +205 -0
- package/es/chat-engine/core/utils/performance.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
- package/es/chat-engine/hooks/a2ui/index.js +19 -0
- package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
- package/es/chat-engine/hooks/index.js +8 -1
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
- package/es/chat-engine/hooks/useAgentActivity.js +10 -2
- package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
- package/es/chat-engine/hooks/useAgentState.js +1 -1
- package/es/chat-engine/hooks/useAgentState.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +10 -2
- package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
- package/es/chat-engine/hooks/useChat.d.ts +1 -1
- package/es/chat-engine/hooks/useChat.js +3 -3
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
- package/es/chat-engine/index.d.ts +2 -4
- package/es/chat-engine/index.js +14 -34
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/docs/react-best-practice.d.ts +13 -0
- package/es/chatbot/index.js +1 -1
- package/es/index.js +13 -31
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +10 -5
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 状态管理器
|
|
3
|
+
* 支持两种订阅模式:
|
|
4
|
+
* 1. 最新状态模式:订阅最新状态,适用于状态覆盖场景
|
|
5
|
+
* 2. 绑定状态模式:订阅特定stateKey,适用于状态隔离场景
|
|
6
|
+
*/
|
|
7
|
+
export interface StateManager {
|
|
8
|
+
/**
|
|
9
|
+
* 获取当前活跃的状态key
|
|
10
|
+
*/
|
|
11
|
+
getCurrentStateKey: () => string | null;
|
|
12
|
+
/**
|
|
13
|
+
* 获取当前状态(基于当前状态key)
|
|
14
|
+
*/
|
|
15
|
+
getCurrentState: () => any;
|
|
16
|
+
/**
|
|
17
|
+
* 获取指定状态key的状态
|
|
18
|
+
*/
|
|
19
|
+
getState: (stateKey: string) => any;
|
|
20
|
+
/**
|
|
21
|
+
* 获取所有状态keys
|
|
22
|
+
*/
|
|
23
|
+
getAllStateKeys: () => string[];
|
|
24
|
+
/**
|
|
25
|
+
* 订阅状态变化
|
|
26
|
+
* @param callback 状态变化回调函数
|
|
27
|
+
* @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态
|
|
28
|
+
*/
|
|
29
|
+
subscribe: (callback: (state: any, stateKey: string) => void, targetStateKey?: string) => () => void;
|
|
30
|
+
/**
|
|
31
|
+
* 处理AG-UI状态事件,自动从事件中提取stateKey
|
|
32
|
+
*/
|
|
33
|
+
handleStateEvent: (event: {
|
|
34
|
+
type: string;
|
|
35
|
+
snapshot?: any;
|
|
36
|
+
delta?: any[];
|
|
37
|
+
}) => void;
|
|
38
|
+
/**
|
|
39
|
+
* 清理所有状态和订阅
|
|
40
|
+
*/
|
|
41
|
+
clear: () => void;
|
|
42
|
+
}
|
|
43
|
+
export declare class StateManagerImpl implements StateManager {
|
|
44
|
+
private states;
|
|
45
|
+
private currentStateKey;
|
|
46
|
+
private latestSubscribers;
|
|
47
|
+
private boundSubscribers;
|
|
48
|
+
/**
|
|
49
|
+
* 获取当前活跃的状态key
|
|
50
|
+
*/
|
|
51
|
+
getCurrentStateKey(): string | null;
|
|
52
|
+
/**
|
|
53
|
+
* 获取当前状态(基于当前状态key)
|
|
54
|
+
*/
|
|
55
|
+
getCurrentState(): any;
|
|
56
|
+
/**
|
|
57
|
+
* 获取指定状态key的状态
|
|
58
|
+
*/
|
|
59
|
+
getState(stateKey: string): any;
|
|
60
|
+
/**
|
|
61
|
+
* 获取所有状态keys
|
|
62
|
+
*/
|
|
63
|
+
getAllStateKeys(): string[];
|
|
64
|
+
/**
|
|
65
|
+
* 订阅最新状态(覆盖模式)
|
|
66
|
+
* 适用于只有一个组件,每轮都用新状态更新的场景
|
|
67
|
+
*/
|
|
68
|
+
subscribeToLatest(callback: (state: any, stateKey: string) => void): () => void;
|
|
69
|
+
/**
|
|
70
|
+
* 订阅状态变化(实现 StateManager 接口)
|
|
71
|
+
* @param callback 状态变化回调函数
|
|
72
|
+
* @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态
|
|
73
|
+
*/
|
|
74
|
+
subscribe(callback: (state: any, stateKey: string) => void, targetStateKey?: string): () => void;
|
|
75
|
+
/**
|
|
76
|
+
* 订阅特定状态(隔离模式)
|
|
77
|
+
* 适用于每轮对话创建新组件,各自保持独立状态的场景
|
|
78
|
+
*/
|
|
79
|
+
subscribeToState(stateKey: string, callback: (state: any) => void): () => void;
|
|
80
|
+
/**
|
|
81
|
+
* 处理AG-UI状态事件
|
|
82
|
+
* 自动从事件中提取stateKey,无需外部传递
|
|
83
|
+
*/
|
|
84
|
+
handleStateEvent(event: {
|
|
85
|
+
type: string;
|
|
86
|
+
snapshot?: any;
|
|
87
|
+
delta?: any[];
|
|
88
|
+
}): void;
|
|
89
|
+
clear(): void;
|
|
90
|
+
/**
|
|
91
|
+
* 设置状态并立即通知订阅者
|
|
92
|
+
*/
|
|
93
|
+
private setState;
|
|
94
|
+
/**
|
|
95
|
+
* 通知订阅者
|
|
96
|
+
*/
|
|
97
|
+
private notifySubscribers;
|
|
98
|
+
}
|
|
99
|
+
export declare const stateManager: StateManagerImpl;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.11
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
9
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
10
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
11
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
12
|
+
import { applyJsonPatch } from '../../utils/index.js';
|
|
13
|
+
import '../../utils/immutable-patch.js';
|
|
14
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
15
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
16
|
+
import '@babel/runtime/helpers/toArray';
|
|
17
|
+
|
|
18
|
+
var StateManagerImpl = /*#__PURE__*/function () {
|
|
19
|
+
function StateManagerImpl() {
|
|
20
|
+
_classCallCheck(this, StateManagerImpl);
|
|
21
|
+
_defineProperty(this, "states", {});
|
|
22
|
+
_defineProperty(this, "currentStateKey", null);
|
|
23
|
+
_defineProperty(this, "latestSubscribers", /* @__PURE__ */new Set());
|
|
24
|
+
_defineProperty(this, "boundSubscribers", /* @__PURE__ */new Map());
|
|
25
|
+
}
|
|
26
|
+
return _createClass(StateManagerImpl, [{
|
|
27
|
+
key: "getCurrentStateKey",
|
|
28
|
+
value: function getCurrentStateKey() {
|
|
29
|
+
return this.currentStateKey;
|
|
30
|
+
}
|
|
31
|
+
}, {
|
|
32
|
+
key: "getCurrentState",
|
|
33
|
+
value: function getCurrentState() {
|
|
34
|
+
if (!this.currentStateKey) return null;
|
|
35
|
+
return this.states[this.currentStateKey];
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
key: "getState",
|
|
39
|
+
value: function getState(stateKey) {
|
|
40
|
+
return this.states[stateKey];
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
key: "getAllStateKeys",
|
|
44
|
+
value: function getAllStateKeys() {
|
|
45
|
+
return Object.keys(this.states);
|
|
46
|
+
}
|
|
47
|
+
}, {
|
|
48
|
+
key: "subscribeToLatest",
|
|
49
|
+
value: function subscribeToLatest(callback) {
|
|
50
|
+
var _this = this;
|
|
51
|
+
this.latestSubscribers.add(callback);
|
|
52
|
+
if (this.currentStateKey && this.states[this.currentStateKey]) {
|
|
53
|
+
try {
|
|
54
|
+
callback(this.states[this.currentStateKey], this.currentStateKey);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(this.currentStateKey, "]:"), error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return function () {
|
|
60
|
+
return _this.latestSubscribers["delete"](callback);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
key: "subscribe",
|
|
65
|
+
value: function subscribe(callback, targetStateKey) {
|
|
66
|
+
if (targetStateKey) {
|
|
67
|
+
return this.subscribeToState(targetStateKey, function (state) {
|
|
68
|
+
return callback(state, targetStateKey);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return this.subscribeToLatest(callback);
|
|
72
|
+
}
|
|
73
|
+
}, {
|
|
74
|
+
key: "subscribeToState",
|
|
75
|
+
value: function subscribeToState(stateKey, callback) {
|
|
76
|
+
var _this2 = this;
|
|
77
|
+
if (!this.boundSubscribers.has(stateKey)) {
|
|
78
|
+
this.boundSubscribers.set(stateKey, /* @__PURE__ */new Set());
|
|
79
|
+
}
|
|
80
|
+
this.boundSubscribers.get(stateKey).add(callback);
|
|
81
|
+
if (this.states[stateKey]) {
|
|
82
|
+
try {
|
|
83
|
+
callback(this.states[stateKey]);
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return function () {
|
|
89
|
+
var _this2$boundSubscribe;
|
|
90
|
+
(_this2$boundSubscribe = _this2.boundSubscribers.get(stateKey)) === null || _this2$boundSubscribe === void 0 || _this2$boundSubscribe["delete"](callback);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "handleStateEvent",
|
|
95
|
+
value: function handleStateEvent(event) {
|
|
96
|
+
var _this3 = this;
|
|
97
|
+
if (event.type === "STATE_SNAPSHOT") {
|
|
98
|
+
if (event.snapshot && _typeof(event.snapshot) === "object") {
|
|
99
|
+
Object.entries(event.snapshot).forEach(function (_ref) {
|
|
100
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
101
|
+
stateKey = _ref2[0],
|
|
102
|
+
stateData = _ref2[1];
|
|
103
|
+
_this3.setState(stateKey, stateData);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
} else if (event.type === "STATE_DELTA") {
|
|
107
|
+
if (event.delta && Array.isArray(event.delta)) {
|
|
108
|
+
var firstDelta = event.delta[0];
|
|
109
|
+
if (firstDelta && firstDelta.path) {
|
|
110
|
+
var pathParts = firstDelta.path.split("/");
|
|
111
|
+
if (pathParts.length > 1) {
|
|
112
|
+
var stateKey = pathParts[1];
|
|
113
|
+
var currentState = this.getState(stateKey);
|
|
114
|
+
if (currentState) {
|
|
115
|
+
try {
|
|
116
|
+
var originalStructure = _defineProperty({}, stateKey, currentState);
|
|
117
|
+
var updatedStructure = applyJsonPatch(originalStructure, event.delta);
|
|
118
|
+
var updatedState = updatedStructure[stateKey];
|
|
119
|
+
this.setState(stateKey, updatedState);
|
|
120
|
+
} catch (error) {
|
|
121
|
+
console.error("STATE_DELTA\u5904\u7406\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
122
|
+
}
|
|
123
|
+
} else {
|
|
124
|
+
console.warn("STATE_DELTA: \u627E\u4E0D\u5230\u72B6\u6001 [".concat(stateKey, "]\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u63A5\u6536STATE_SNAPSHOT"));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}, {
|
|
132
|
+
key: "clear",
|
|
133
|
+
value: function clear() {
|
|
134
|
+
this.states = {};
|
|
135
|
+
this.latestSubscribers.clear();
|
|
136
|
+
this.boundSubscribers.clear();
|
|
137
|
+
this.currentStateKey = null;
|
|
138
|
+
}
|
|
139
|
+
}, {
|
|
140
|
+
key: "setState",
|
|
141
|
+
value: function setState(stateKey, state) {
|
|
142
|
+
this.states[stateKey] = state;
|
|
143
|
+
this.currentStateKey = stateKey;
|
|
144
|
+
this.notifySubscribers(stateKey, state);
|
|
145
|
+
}
|
|
146
|
+
}, {
|
|
147
|
+
key: "notifySubscribers",
|
|
148
|
+
value: function notifySubscribers(stateKey, state) {
|
|
149
|
+
var boundSubs = this.boundSubscribers.get(stateKey);
|
|
150
|
+
if (boundSubs) {
|
|
151
|
+
boundSubs.forEach(function (callback) {
|
|
152
|
+
try {
|
|
153
|
+
callback(state);
|
|
154
|
+
} catch (error) {
|
|
155
|
+
console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
this.latestSubscribers.forEach(function (callback) {
|
|
160
|
+
try {
|
|
161
|
+
callback(state, stateKey);
|
|
162
|
+
} catch (error) {
|
|
163
|
+
console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}]);
|
|
168
|
+
}();
|
|
169
|
+
var stateManager = new StateManagerImpl();
|
|
170
|
+
|
|
171
|
+
export { StateManagerImpl, stateManager };
|
|
172
|
+
//# sourceMappingURL=StateManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateManager.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/StateManager.ts"],"sourcesContent":["import { applyJsonPatch } from '../../utils';\n\n/**\n * 状态管理器\n * 支持两种订阅模式:\n * 1. 最新状态模式:订阅最新状态,适用于状态覆盖场景\n * 2. 绑定状态模式:订阅特定stateKey,适用于状态隔离场景\n */\n\nexport interface StateManager {\n /**\n * 获取当前活跃的状态key\n */\n getCurrentStateKey: () => string | null;\n /**\n * 获取当前状态(基于当前状态key)\n */\n getCurrentState: () => any;\n /**\n * 获取指定状态key的状态\n */\n getState: (stateKey: string) => any;\n /**\n * 获取所有状态keys\n */\n getAllStateKeys: () => string[];\n /**\n * 订阅状态变化\n * @param callback 状态变化回调函数\n * @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态\n */\n subscribe: (callback: (state: any, stateKey: string) => void, targetStateKey?: string) => () => void;\n /**\n * 处理AG-UI状态事件,自动从事件中提取stateKey\n */\n handleStateEvent: (event: { type: string; snapshot?: any; delta?: any[] }) => void;\n /**\n * 清理所有状态和订阅\n */\n clear: () => void;\n}\n\nexport class StateManagerImpl implements StateManager {\n private states: Record<string, any> = {};\n\n private currentStateKey: string | null = null;\n\n // 最新状态订阅者(覆盖模式)\n private latestSubscribers: Set<(state: any, stateKey: string) => void> = new Set();\n\n // 绑定状态订阅者(隔离模式)\n private boundSubscribers: Map<string, Set<(state: any) => void>> = new Map();\n\n /**\n * 获取当前活跃的状态key\n */\n getCurrentStateKey(): string | null {\n return this.currentStateKey;\n }\n\n /**\n * 获取当前状态(基于当前状态key)\n */\n getCurrentState(): any {\n if (!this.currentStateKey) return null;\n return this.states[this.currentStateKey];\n }\n\n /**\n * 获取指定状态key的状态\n */\n getState(stateKey: string): any {\n return this.states[stateKey];\n }\n\n /**\n * 获取所有状态keys\n */\n getAllStateKeys(): string[] {\n return Object.keys(this.states);\n }\n\n /**\n * 订阅最新状态(覆盖模式)\n * 适用于只有一个组件,每轮都用新状态更新的场景\n */\n subscribeToLatest(callback: (state: any, stateKey: string) => void): () => void {\n this.latestSubscribers.add(callback);\n // 立即调用一次当前状态\n if (this.currentStateKey && this.states[this.currentStateKey]) {\n try {\n callback(this.states[this.currentStateKey], this.currentStateKey);\n } catch (error) {\n console.error(`最新状态订阅回调执行失败 [${this.currentStateKey}]:`, error);\n }\n }\n\n return () => this.latestSubscribers.delete(callback);\n }\n\n /**\n * 订阅状态变化(实现 StateManager 接口)\n * @param callback 状态变化回调函数\n * @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态\n */\n subscribe(callback: (state: any, stateKey: string) => void, targetStateKey?: string): () => void {\n if (targetStateKey) {\n // 绑定模式:订阅特定 stateKey\n return this.subscribeToState(targetStateKey, (state) => callback(state, targetStateKey));\n }\n // 最新模式:订阅最新状态\n return this.subscribeToLatest(callback);\n }\n\n /**\n * 订阅特定状态(隔离模式)\n * 适用于每轮对话创建新组件,各自保持独立状态的场景\n */\n subscribeToState(stateKey: string, callback: (state: any) => void): () => void {\n if (!this.boundSubscribers.has(stateKey)) {\n this.boundSubscribers.set(stateKey, new Set());\n }\n this.boundSubscribers.get(stateKey)!.add(callback);\n\n // 立即调用一次(如果状态存在)\n if (this.states[stateKey]) {\n try {\n callback(this.states[stateKey]);\n } catch (error) {\n console.error(`绑定状态订阅回调执行失败 [${stateKey}]:`, error);\n }\n }\n\n return () => {\n this.boundSubscribers.get(stateKey)?.delete(callback);\n };\n }\n\n /**\n * 处理AG-UI状态事件\n * 自动从事件中提取stateKey,无需外部传递\n */\n handleStateEvent(event: { type: string; snapshot?: any; delta?: any[] }): void {\n if (event.type === 'STATE_SNAPSHOT') {\n // 处理STATE_SNAPSHOT:立即更新\n if (event.snapshot && typeof event.snapshot === 'object') {\n Object.entries(event.snapshot).forEach(([stateKey, stateData]) => {\n this.setState(stateKey, stateData);\n });\n }\n } else if (event.type === 'STATE_DELTA') {\n // 处理STATE_DELTA:立即更新\n if (event.delta && Array.isArray(event.delta)) {\n // 从第一个delta操作的路径中提取stateKey\n const firstDelta = event.delta[0];\n if (firstDelta && firstDelta.path) {\n const pathParts = firstDelta.path.split('/');\n if (pathParts.length > 1) {\n const stateKey = pathParts[1]; // 路径格式: /stateKey/items/...\n const currentState = this.getState(stateKey);\n\n if (currentState) {\n try {\n // 重新构造原始结构以应用JSON Patch\n const originalStructure = { [stateKey]: currentState };\n const updatedStructure = applyJsonPatch(originalStructure, event.delta);\n const updatedState = updatedStructure[stateKey];\n this.setState(stateKey, updatedState);\n } catch (error) {\n console.error(`STATE_DELTA处理失败 [${stateKey}]:`, error);\n }\n } else {\n console.warn(`STATE_DELTA: 找不到状态 [${stateKey}],可能需要先接收STATE_SNAPSHOT`);\n }\n }\n }\n }\n }\n }\n\n // 清理所有状态和订阅\n clear(): void {\n // 清理状态和订阅\n this.states = {};\n this.latestSubscribers.clear();\n this.boundSubscribers.clear();\n this.currentStateKey = null;\n }\n\n /**\n * 设置状态并立即通知订阅者\n */\n private setState(stateKey: string, state: any): void {\n // 更新状态\n this.states[stateKey] = state;\n this.currentStateKey = stateKey;\n this.notifySubscribers(stateKey, state);\n }\n\n /**\n * 通知订阅者\n */\n private notifySubscribers(stateKey: string, state: any): void {\n // 通知绑定订阅者(只通知对应stateKey的订阅者)\n const boundSubs = this.boundSubscribers.get(stateKey);\n if (boundSubs) {\n boundSubs.forEach((callback) => {\n try {\n callback(state);\n } catch (error) {\n console.error(`绑定状态订阅回调执行失败 [${stateKey}]:`, error);\n }\n });\n }\n\n // 通知最新状态订阅者(所有订阅者都收到最新状态)\n this.latestSubscribers.forEach((callback) => {\n try {\n callback(state, stateKey);\n } catch (error) {\n console.error(`最新状态订阅回调执行失败 [${stateKey}]:`, error);\n }\n });\n }\n}\n\n// 全局单例\nexport const stateManager = new StateManagerImpl();\n"],"names":["StateManagerImpl","_classCallCheck","_defineProperty","Set","Map","_createClass","key","value","getCurrentStateKey","currentStateKey","getCurrentState","states","getState","stateKey","getAllStateKeys","Object","keys","subscribeToLatest","callback","_this","latestSubscribers","add","error","console","concat","subscribe","targetStateKey","subscribeToState","state","_this2","boundSubscribers","has","set","get","_this2$boundSubscribe","handleStateEvent","event","_this3","type","snapshot","_typeof","entries","forEach","_ref","_ref2","_slicedToArray","stateData","setState","delta","Array","isArray","firstDelta","path","pathParts","split","length","currentState","originalStructure","updatedStructure","applyJsonPatch","updatedState","warn","clear","notifySubscribers","boundSubs","stateManager"],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activity 状态管理器
|
|
3
|
+
*
|
|
4
|
+
* 职责:
|
|
5
|
+
* - 处理 AG-UI Activity 事件的 Snapshot/Delta 增量合并
|
|
6
|
+
* - 提供当前 Activity 数据的快捷访问(用于 event-mapper 生成消息内容)
|
|
7
|
+
*
|
|
8
|
+
* 注意:
|
|
9
|
+
* - Activity 本身会渲染在消息流中,不需要独立订阅机制
|
|
10
|
+
* - 如需监听 Activity 变化,应使用 eventBus 的 MESSAGE_UPDATE 事件
|
|
11
|
+
*/
|
|
12
|
+
export interface ActivityData {
|
|
13
|
+
activityType: string;
|
|
14
|
+
content: Record<string, any>;
|
|
15
|
+
messageId?: string;
|
|
16
|
+
/** 增量更新信息 */
|
|
17
|
+
deltaInfo?: {
|
|
18
|
+
fromIndex: number;
|
|
19
|
+
toIndex: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface ActivityManager {
|
|
23
|
+
/**
|
|
24
|
+
* 获取当前活跃的 activityType
|
|
25
|
+
*/
|
|
26
|
+
getCurrentActivityType: () => string | null;
|
|
27
|
+
/**
|
|
28
|
+
* 获取当前 Activity 内容(基于当前活跃的 activityType)
|
|
29
|
+
*/
|
|
30
|
+
getCurrentActivity: () => ActivityData | null;
|
|
31
|
+
/**
|
|
32
|
+
* 获取指定 activityType 的 Activity 内容
|
|
33
|
+
*/
|
|
34
|
+
getActivity: (activityType: string) => ActivityData | null;
|
|
35
|
+
/**
|
|
36
|
+
* 获取所有 activityType
|
|
37
|
+
*/
|
|
38
|
+
getAllActivityTypes: () => string[];
|
|
39
|
+
/**
|
|
40
|
+
* 处理 AG-UI Activity 事件
|
|
41
|
+
*/
|
|
42
|
+
handleActivityEvent: (event: {
|
|
43
|
+
type: string;
|
|
44
|
+
activityType: string;
|
|
45
|
+
content?: any;
|
|
46
|
+
patch?: any[];
|
|
47
|
+
messageId?: string;
|
|
48
|
+
}) => ActivityData | null;
|
|
49
|
+
/**
|
|
50
|
+
* 清理活动数据
|
|
51
|
+
*/
|
|
52
|
+
clear: () => void;
|
|
53
|
+
}
|
|
54
|
+
export declare class ActivityManagerImpl implements ActivityManager {
|
|
55
|
+
private activities;
|
|
56
|
+
private currentActivityType;
|
|
57
|
+
/**
|
|
58
|
+
* 获取当前活跃的 activityType
|
|
59
|
+
*/
|
|
60
|
+
getCurrentActivityType(): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* 获取当前 Activity 内容
|
|
63
|
+
*/
|
|
64
|
+
getCurrentActivity(): ActivityData | null;
|
|
65
|
+
/**
|
|
66
|
+
* 获取指定 activityType 的 Activity 内容
|
|
67
|
+
*/
|
|
68
|
+
getActivity(activityType: string): ActivityData | null;
|
|
69
|
+
/**
|
|
70
|
+
* 获取所有 activityType
|
|
71
|
+
*/
|
|
72
|
+
getAllActivityTypes(): string[];
|
|
73
|
+
/**
|
|
74
|
+
* 处理 AG-UI Activity 事件
|
|
75
|
+
* 返回更新后的 ActivityData,供 event-mapper 使用
|
|
76
|
+
*/
|
|
77
|
+
handleActivityEvent(event: {
|
|
78
|
+
type: string;
|
|
79
|
+
activityType: string;
|
|
80
|
+
content?: any;
|
|
81
|
+
patch?: any[];
|
|
82
|
+
messageId?: string;
|
|
83
|
+
}): ActivityData | null;
|
|
84
|
+
/**
|
|
85
|
+
* 清理所有活动数据
|
|
86
|
+
* 用于新一轮对话开始时重置状态
|
|
87
|
+
*/
|
|
88
|
+
clear(): void;
|
|
89
|
+
/**
|
|
90
|
+
* 根据 JSON Patch 路径推断初始内容结构
|
|
91
|
+
*/
|
|
92
|
+
private inferInitialContent;
|
|
93
|
+
/**
|
|
94
|
+
* 获取 content 中的 operations/messages 数量
|
|
95
|
+
*/
|
|
96
|
+
private getOperationsCount;
|
|
97
|
+
/**
|
|
98
|
+
* 设置 Activity
|
|
99
|
+
*/
|
|
100
|
+
private setActivity;
|
|
101
|
+
}
|
|
102
|
+
export declare const activityManager: ActivityManagerImpl;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.4
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
8
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
9
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
10
|
+
import { applyJsonPatch } from '../../utils/index.js';
|
|
11
|
+
import '../../utils/json-patch/index.js';
|
|
12
|
+
import '@babel/runtime/helpers/typeof';
|
|
13
|
+
import '../../utils/json-patch/helpers.js';
|
|
14
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
15
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
16
|
+
import '@babel/runtime/helpers/inherits';
|
|
17
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
18
|
+
|
|
19
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
20
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
21
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
22
|
+
var ActivityManagerImpl = /*#__PURE__*/function () {
|
|
23
|
+
function ActivityManagerImpl() {
|
|
24
|
+
_classCallCheck(this, ActivityManagerImpl);
|
|
25
|
+
_defineProperty(this, "activities", {});
|
|
26
|
+
_defineProperty(this, "currentActivityType", null);
|
|
27
|
+
}
|
|
28
|
+
return _createClass(ActivityManagerImpl, [{
|
|
29
|
+
key: "getCurrentActivityType",
|
|
30
|
+
value: function getCurrentActivityType() {
|
|
31
|
+
return this.currentActivityType;
|
|
32
|
+
}
|
|
33
|
+
}, {
|
|
34
|
+
key: "getCurrentActivity",
|
|
35
|
+
value: function getCurrentActivity() {
|
|
36
|
+
if (!this.currentActivityType) return null;
|
|
37
|
+
return this.activities[this.currentActivityType] || null;
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
key: "getActivity",
|
|
41
|
+
value: function getActivity(activityType) {
|
|
42
|
+
return this.activities[activityType] || null;
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "getAllActivityTypes",
|
|
46
|
+
value: function getAllActivityTypes() {
|
|
47
|
+
return Object.keys(this.activities);
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "handleActivityEvent",
|
|
51
|
+
value: function handleActivityEvent(event) {
|
|
52
|
+
var activityType = event.activityType,
|
|
53
|
+
messageId = event.messageId;
|
|
54
|
+
if (event.type === "ACTIVITY_SNAPSHOT") {
|
|
55
|
+
var activityData = {
|
|
56
|
+
activityType: activityType,
|
|
57
|
+
content: event.content || {},
|
|
58
|
+
messageId: messageId
|
|
59
|
+
};
|
|
60
|
+
this.setActivity(activityType, activityData);
|
|
61
|
+
return activityData;
|
|
62
|
+
}
|
|
63
|
+
if (event.type === "ACTIVITY_DELTA") {
|
|
64
|
+
var isFirstDelta = !this.activities[activityType];
|
|
65
|
+
var currentActivity = this.activities[activityType];
|
|
66
|
+
if (isFirstDelta) {
|
|
67
|
+
currentActivity = {
|
|
68
|
+
activityType: activityType,
|
|
69
|
+
content: this.inferInitialContent(event.patch),
|
|
70
|
+
messageId: messageId
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
var oldContent = currentActivity.content;
|
|
74
|
+
var oldOpsCount = this.getOperationsCount(oldContent);
|
|
75
|
+
var newContent = oldContent;
|
|
76
|
+
if (event.patch && Array.isArray(event.patch)) {
|
|
77
|
+
newContent = applyJsonPatch(oldContent, event.patch);
|
|
78
|
+
}
|
|
79
|
+
var newOpsCount = this.getOperationsCount(newContent);
|
|
80
|
+
var deltaInfo = newOpsCount > oldOpsCount ? {
|
|
81
|
+
fromIndex: oldOpsCount,
|
|
82
|
+
toIndex: newOpsCount
|
|
83
|
+
} : void 0;
|
|
84
|
+
var _activityData = {
|
|
85
|
+
activityType: activityType,
|
|
86
|
+
content: newContent,
|
|
87
|
+
messageId: messageId,
|
|
88
|
+
deltaInfo: deltaInfo
|
|
89
|
+
};
|
|
90
|
+
this.setActivity(activityType, _activityData);
|
|
91
|
+
return _activityData;
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}, {
|
|
96
|
+
key: "clear",
|
|
97
|
+
value: function clear() {
|
|
98
|
+
this.activities = {};
|
|
99
|
+
this.currentActivityType = null;
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
key: "inferInitialContent",
|
|
103
|
+
value: function inferInitialContent(patch) {
|
|
104
|
+
if (!patch || !Array.isArray(patch) || patch.length === 0) {
|
|
105
|
+
return {};
|
|
106
|
+
}
|
|
107
|
+
var initialContent = {};
|
|
108
|
+
var _iterator = _createForOfIteratorHelper(patch),
|
|
109
|
+
_step;
|
|
110
|
+
try {
|
|
111
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
112
|
+
var op = _step.value;
|
|
113
|
+
if (op.path) {
|
|
114
|
+
var pathParts = op.path.split("/").filter(Boolean);
|
|
115
|
+
if (pathParts.length > 0) {
|
|
116
|
+
var rootKey = pathParts[0];
|
|
117
|
+
if (pathParts.length > 1 && (pathParts[1] === "-" || /^\d+$/.test(pathParts[1]))) {
|
|
118
|
+
if (!initialContent[rootKey]) {
|
|
119
|
+
initialContent[rootKey] = [];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
} catch (err) {
|
|
126
|
+
_iterator.e(err);
|
|
127
|
+
} finally {
|
|
128
|
+
_iterator.f();
|
|
129
|
+
}
|
|
130
|
+
return initialContent;
|
|
131
|
+
}
|
|
132
|
+
}, {
|
|
133
|
+
key: "getOperationsCount",
|
|
134
|
+
value: function getOperationsCount(content) {
|
|
135
|
+
if (!content) return 0;
|
|
136
|
+
var ops = content.operations || content.messages;
|
|
137
|
+
return Array.isArray(ops) ? ops.length : 0;
|
|
138
|
+
}
|
|
139
|
+
}, {
|
|
140
|
+
key: "setActivity",
|
|
141
|
+
value: function setActivity(activityType, activity) {
|
|
142
|
+
this.activities[activityType] = activity;
|
|
143
|
+
this.currentActivityType = activityType;
|
|
144
|
+
}
|
|
145
|
+
}]);
|
|
146
|
+
}();
|
|
147
|
+
var activityManager = new ActivityManagerImpl();
|
|
148
|
+
|
|
149
|
+
export { ActivityManagerImpl, activityManager };
|
|
150
|
+
//# sourceMappingURL=activity-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-manager.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/activity-manager.ts"],"sourcesContent":["import { applyJsonPatch } from '../../utils';\n\n/**\n * Activity 状态管理器\n * \n * 职责:\n * - 处理 AG-UI Activity 事件的 Snapshot/Delta 增量合并\n * - 提供当前 Activity 数据的快捷访问(用于 event-mapper 生成消息内容)\n * \n * 注意:\n * - Activity 本身会渲染在消息流中,不需要独立订阅机制\n * - 如需监听 Activity 变化,应使用 eventBus 的 MESSAGE_UPDATE 事件\n */\n\nexport interface ActivityData {\n activityType: string;\n content: Record<string, any>;\n messageId?: string;\n /** 增量更新信息 */\n deltaInfo?: {\n fromIndex: number;\n toIndex: number;\n };\n}\n\nexport interface ActivityManager {\n /**\n * 获取当前活跃的 activityType\n */\n getCurrentActivityType: () => string | null;\n /**\n * 获取当前 Activity 内容(基于当前活跃的 activityType)\n */\n getCurrentActivity: () => ActivityData | null;\n /**\n * 获取指定 activityType 的 Activity 内容\n */\n getActivity: (activityType: string) => ActivityData | null;\n /**\n * 获取所有 activityType\n */\n getAllActivityTypes: () => string[];\n /**\n * 处理 AG-UI Activity 事件\n */\n handleActivityEvent: (event: {\n type: string;\n activityType: string;\n content?: any;\n patch?: any[];\n messageId?: string;\n }) => ActivityData | null;\n /**\n * 清理活动数据\n */\n clear: () => void;\n}\n\nexport class ActivityManagerImpl implements ActivityManager {\n private activities: Record<string, ActivityData> = {};\n\n private currentActivityType: string | null = null;\n\n /**\n * 获取当前活跃的 activityType\n */\n getCurrentActivityType(): string | null {\n return this.currentActivityType;\n }\n\n /**\n * 获取当前 Activity 内容\n */\n getCurrentActivity(): ActivityData | null {\n if (!this.currentActivityType) return null;\n return this.activities[this.currentActivityType] || null;\n }\n\n /**\n * 获取指定 activityType 的 Activity 内容\n */\n getActivity(activityType: string): ActivityData | null {\n return this.activities[activityType] || null;\n }\n\n /**\n * 获取所有 activityType\n */\n getAllActivityTypes(): string[] {\n return Object.keys(this.activities);\n }\n\n\n\n /**\n * 处理 AG-UI Activity 事件\n * 返回更新后的 ActivityData,供 event-mapper 使用\n */\n handleActivityEvent(event: {\n type: string;\n activityType: string;\n content?: any;\n patch?: any[];\n messageId?: string;\n }): ActivityData | null {\n const { activityType, messageId } = event;\n\n if (event.type === 'ACTIVITY_SNAPSHOT') {\n // SNAPSHOT: 全量更新\n const activityData: ActivityData = {\n activityType,\n content: event.content || {},\n messageId,\n };\n this.setActivity(activityType, activityData);\n return activityData;\n }\n\n if (event.type === 'ACTIVITY_DELTA') {\n // DELTA: 增量更新\n const isFirstDelta = !this.activities[activityType];\n let currentActivity = this.activities[activityType];\n\n // 如果没有 snapshot,自动初始化空的 activity(纯增量模式)\n if (isFirstDelta) {\n currentActivity = {\n activityType,\n content: this.inferInitialContent(event.patch),\n messageId,\n };\n }\n\n // 记录旧的 operations/messages 数量(用于增量标记)\n const oldContent = currentActivity.content;\n const oldOpsCount = this.getOperationsCount(oldContent);\n\n let newContent = oldContent;\n\n // 使用 patch 进行 JSON Patch 更新\n if (event.patch && Array.isArray(event.patch)) {\n newContent = applyJsonPatch(oldContent, event.patch);\n }\n\n // 计算新增的 operations 范围\n const newOpsCount = this.getOperationsCount(newContent);\n const deltaInfo =\n newOpsCount > oldOpsCount ? { fromIndex: oldOpsCount, toIndex: newOpsCount } : undefined;\n\n const activityData: ActivityData = {\n activityType,\n content: newContent,\n messageId,\n deltaInfo,\n };\n\n this.setActivity(activityType, activityData);\n return activityData;\n }\n\n return null;\n }\n\n /**\n * 清理所有活动数据\n * 用于新一轮对话开始时重置状态\n */\n clear(): void {\n this.activities = {};\n this.currentActivityType = null;\n }\n\n /**\n * 根据 JSON Patch 路径推断初始内容结构\n */\n private inferInitialContent(patch: any[] | undefined): Record<string, any> {\n if (!patch || !Array.isArray(patch) || patch.length === 0) {\n return {};\n }\n\n const initialContent: Record<string, any> = {};\n\n for (const op of patch) {\n if (op.path) {\n const pathParts = op.path.split('/').filter(Boolean);\n if (pathParts.length > 0) {\n const rootKey = pathParts[0];\n // 如果路径包含 - 或数字索引,说明是数组\n if (pathParts.length > 1 && (pathParts[1] === '-' || /^\\d+$/.test(pathParts[1]))) {\n if (!initialContent[rootKey]) {\n initialContent[rootKey] = [];\n }\n }\n }\n }\n }\n\n return initialContent;\n }\n\n /**\n * 获取 content 中的 operations/messages 数量\n */\n private getOperationsCount(content: Record<string, any> | null | undefined): number {\n if (!content) return 0;\n const ops = content.operations || content.messages;\n return Array.isArray(ops) ? ops.length : 0;\n }\n\n /**\n * 设置 Activity\n */\n private setActivity(activityType: string, activity: ActivityData): void {\n this.activities[activityType] = activity;\n this.currentActivityType = activityType;\n }\n}\n\n// 全局单例\nexport const activityManager = new ActivityManagerImpl();\n"],"names":["ActivityManagerImpl","_classCallCheck","_defineProperty","_createClass","key","value","getCurrentActivityType","currentActivityType","getCurrentActivity","activities","getActivity","activityType","getAllActivityTypes","Object","keys","handleActivityEvent","event","messageId","type","activityData","content","setActivity","isFirstDelta","currentActivity","inferInitialContent","patch","oldContent","oldOpsCount","getOperationsCount","newContent","Array","isArray","applyJsonPatch","newOpsCount","deltaInfo","fromIndex","toIndex","clear","length","initialContent","_iterator","_createForOfIteratorHelper","_step","s","n","done","op","path","pathParts","split","filter","Boolean","rootKey","test","err","e","f","ops","operations","messages","activity","activityManager"],"mappings":"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"}
|
|
@@ -4,12 +4,22 @@ import type { AIMessageContent, SSEChunkData, ToolCall } from '../../type';
|
|
|
4
4
|
* 将AG-UI协议事件(SSEChunkData)转换为AIContentChunkUpdate
|
|
5
5
|
* 支持多轮对话、增量文本、工具调用、思考、状态快照、消息快照等基础事件
|
|
6
6
|
* 同时提供状态变更和步骤生命周期事件的分发机制
|
|
7
|
+
*
|
|
8
|
+
* 支持简化模式:
|
|
9
|
+
* - TEXT_MESSAGE_CHUNK:自动补全 Start → Content → End 生命周期
|
|
10
|
+
* - TOOL_CALL_CHUNK:自动补全 Start → Args → End 生命周期
|
|
7
11
|
*/
|
|
8
12
|
export declare class AGUIEventMapper {
|
|
9
13
|
private toolCallMap;
|
|
10
14
|
private toolCallEnded;
|
|
11
|
-
private currentActivity;
|
|
12
15
|
private reasoningContext;
|
|
16
|
+
/**
|
|
17
|
+
* 暴露 activityManager,供 AGUIAdapter 访问
|
|
18
|
+
*/
|
|
19
|
+
get activityManager(): import("./ActivityManager").ActivityManagerImpl;
|
|
20
|
+
private currentTextMessageId;
|
|
21
|
+
private currentTextMessageRole;
|
|
22
|
+
private toolCallChunkStarted;
|
|
13
23
|
/**
|
|
14
24
|
* 主入口:将SSE事件转换为AIContentChunkUpdate
|
|
15
25
|
*
|
|
@@ -35,18 +45,41 @@ export declare class AGUIEventMapper {
|
|
|
35
45
|
reset(): void;
|
|
36
46
|
/**
|
|
37
47
|
* 处理文本消息事件
|
|
48
|
+
*
|
|
49
|
+
* 支持两种模式:
|
|
50
|
+
* 1. 标准模式:TEXT_MESSAGE_START → TEXT_MESSAGE_CONTENT → TEXT_MESSAGE_END
|
|
51
|
+
* 2. 简化模式:仅发送 TEXT_MESSAGE_CHUNK,自动补全生命周期
|
|
38
52
|
*/
|
|
39
53
|
private handleTextMessageEvent;
|
|
54
|
+
/**
|
|
55
|
+
* 处理简化模式的 TEXT_MESSAGE_CHUNK 事件
|
|
56
|
+
* 自动补全 Start → Content → End 生命周期
|
|
57
|
+
*
|
|
58
|
+
* 关键:通过 messageId 区分不同的文本块,
|
|
59
|
+
* 当 messageId 变化时创建新的内容块
|
|
60
|
+
*/
|
|
61
|
+
private handleTextMessageChunk;
|
|
40
62
|
/**
|
|
41
63
|
* 处理思考事件
|
|
42
64
|
*/
|
|
43
65
|
private handleThinkingEvent;
|
|
44
66
|
/**
|
|
45
67
|
* 处理工具调用事件
|
|
68
|
+
*
|
|
69
|
+
* 支持两种模式:
|
|
70
|
+
* 1. 标准模式:TOOL_CALL_START → TOOL_CALL_ARGS → TOOL_CALL_END
|
|
71
|
+
* 2. 简化模式:仅发送 TOOL_CALL_CHUNK,自动补全生命周期
|
|
46
72
|
*/
|
|
47
73
|
private handleToolCallEvent;
|
|
48
74
|
/**
|
|
49
75
|
* 处理活动事件
|
|
76
|
+
* 委托给 activityManager 进行状态管理和订阅通知
|
|
77
|
+
*
|
|
78
|
+
* 支持两种模式:
|
|
79
|
+
* 1. 标准模式:先收到 ACTIVITY_SNAPSHOT,后续 ACTIVITY_DELTA 基于 snapshot 增量更新
|
|
80
|
+
* 2. 纯增量模式:没有 ACTIVITY_SNAPSHOT,直接收到 ACTIVITY_DELTA,自动初始化空内容
|
|
81
|
+
*
|
|
82
|
+
* 注意:不同 activityType 的活动是独立管理的,互不影响
|
|
50
83
|
*/
|
|
51
84
|
private handleActivityEvent;
|
|
52
85
|
/**
|
|
@@ -86,7 +119,14 @@ export declare class AGUIEventMapper {
|
|
|
86
119
|
*/
|
|
87
120
|
private handleToolCallArgs;
|
|
88
121
|
/**
|
|
89
|
-
*
|
|
122
|
+
* 处理简化模式的 TOOL_CALL_CHUNK 事件
|
|
123
|
+
* 自动补全 Start → Args → End 生命周期
|
|
124
|
+
*
|
|
125
|
+
* TOOL_CALL_CHUNK 事件结构:
|
|
126
|
+
* - toolCallId: 工具调用ID(可选,首次时自动生成)
|
|
127
|
+
* - toolCallName: 工具名称(首次必需)
|
|
128
|
+
* - delta: 参数增量内容
|
|
129
|
+
* - parentMessageId: 父消息ID(可选)
|
|
90
130
|
*/
|
|
91
131
|
private handleToolCallChunk;
|
|
92
132
|
/**
|