@tambo-ai/react 0.75.0 → 1.0.0-rc.4
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/dist/hoc/with-tambo-interactable.d.ts.map +1 -1
- package/dist/hoc/with-tambo-interactable.js +13 -13
- package/dist/hoc/with-tambo-interactable.js.map +1 -1
- package/dist/hoc/with-tambo-interactable.test.js +3 -3
- package/dist/hoc/with-tambo-interactable.test.js.map +1 -1
- package/dist/index.d.ts +7 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -59
- package/dist/index.js.map +1 -1
- package/dist/mcp/mcp-hooks.js +5 -5
- package/dist/mcp/mcp-hooks.js.map +1 -1
- package/dist/model/component-metadata.d.ts +4 -4
- package/dist/model/component-metadata.js.map +1 -1
- package/dist/providers/tambo-client-provider.d.ts +6 -0
- package/dist/providers/tambo-client-provider.d.ts.map +1 -1
- package/dist/providers/tambo-client-provider.js +4 -2
- package/dist/providers/tambo-client-provider.js.map +1 -1
- package/dist/providers/tambo-interactable-provider.d.ts +1 -1
- package/dist/providers/tambo-interactables-additional-context-edge-cases.test.js +2 -10
- package/dist/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -1
- package/dist/providers/tambo-interactables-additional-context.test.js +3 -19
- package/dist/providers/tambo-interactables-additional-context.test.js.map +1 -1
- package/dist/providers/tambo-mcp-token-provider.d.ts +8 -17
- package/dist/providers/tambo-mcp-token-provider.d.ts.map +1 -1
- package/dist/providers/tambo-mcp-token-provider.js +20 -97
- package/dist/providers/tambo-mcp-token-provider.js.map +1 -1
- package/dist/testing/tools.d.ts +3 -3
- package/dist/testing/tools.d.ts.map +1 -1
- package/dist/testing/tools.js.map +1 -1
- package/dist/util/registry-validators.js +1 -1
- package/dist/util/registry-validators.js.map +1 -1
- package/dist/v1/__tests__/v1-interactables.test.js +1 -1
- package/dist/v1/__tests__/v1-interactables.test.js.map +1 -1
- package/dist/v1/components/v1-component-renderer.d.ts +9 -9
- package/dist/v1/components/v1-component-renderer.d.ts.map +1 -1
- package/dist/v1/components/v1-component-renderer.js +13 -13
- package/dist/v1/components/v1-component-renderer.js.map +1 -1
- package/dist/v1/components/v1-component-renderer.test.js +15 -15
- package/dist/v1/components/v1-component-renderer.test.js.map +1 -1
- package/{esm/hooks/use-current-message.d.ts → dist/v1/hooks/use-tambo-current-message.d.ts} +30 -9
- package/dist/v1/hooks/use-tambo-current-message.d.ts.map +1 -0
- package/dist/{hooks/use-current-message.js → v1/hooks/use-tambo-current-message.js} +13 -8
- package/dist/v1/hooks/use-tambo-current-message.js.map +1 -0
- package/dist/v1/hooks/use-tambo-v1-auth-state.d.ts +5 -5
- package/dist/v1/hooks/use-tambo-v1-auth-state.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-auth-state.js +8 -8
- package/dist/v1/hooks/use-tambo-v1-auth-state.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-auth-state.test.js +12 -12
- package/dist/v1/hooks/use-tambo-v1-auth-state.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-component-state.d.ts +7 -6
- package/dist/v1/hooks/use-tambo-v1-component-state.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-component-state.js +50 -24
- package/dist/v1/hooks/use-tambo-v1-component-state.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-component-state.test.js +60 -35
- package/dist/v1/hooks/use-tambo-v1-component-state.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-messages.d.ts +9 -9
- package/dist/v1/hooks/use-tambo-v1-messages.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-messages.js +4 -4
- package/dist/v1/hooks/use-tambo-v1-messages.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-messages.test.js +7 -7
- package/dist/v1/hooks/use-tambo-v1-messages.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-send-message.d.ts +3 -3
- package/dist/v1/hooks/use-tambo-v1-send-message.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-send-message.js +20 -22
- package/dist/v1/hooks/use-tambo-v1-send-message.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-send-message.test.js +51 -51
- package/dist/v1/hooks/use-tambo-v1-send-message.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-stream-status.d.ts +5 -5
- package/dist/v1/hooks/use-tambo-v1-stream-status.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-stream-status.js +12 -14
- package/dist/v1/hooks/use-tambo-v1-stream-status.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-stream-status.test.js +19 -19
- package/dist/v1/hooks/use-tambo-v1-stream-status.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-suggestions.d.ts +7 -7
- package/dist/v1/hooks/use-tambo-v1-suggestions.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-suggestions.js +9 -9
- package/dist/v1/hooks/use-tambo-v1-suggestions.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-suggestions.test.js +44 -44
- package/dist/v1/hooks/use-tambo-v1-suggestions.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread-input.d.ts +3 -3
- package/dist/v1/hooks/use-tambo-v1-thread-input.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread-input.js +4 -4
- package/dist/v1/hooks/use-tambo-v1-thread-input.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread-input.test.js +29 -29
- package/dist/v1/hooks/use-tambo-v1-thread-input.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread-list.d.ts +4 -4
- package/dist/v1/hooks/use-tambo-v1-thread-list.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread-list.js +5 -5
- package/dist/v1/hooks/use-tambo-v1-thread-list.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread-list.test.js +13 -17
- package/dist/v1/hooks/use-tambo-v1-thread-list.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread.d.ts +3 -3
- package/dist/v1/hooks/use-tambo-v1-thread.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread.js +4 -4
- package/dist/v1/hooks/use-tambo-v1-thread.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1-thread.test.js +5 -5
- package/dist/v1/hooks/use-tambo-v1-thread.test.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1.d.ts +16 -7
- package/dist/v1/hooks/use-tambo-v1.d.ts.map +1 -1
- package/dist/v1/hooks/use-tambo-v1.js +41 -10
- package/dist/v1/hooks/use-tambo-v1.js.map +1 -1
- package/dist/v1/hooks/use-tambo-v1.test.js +176 -48
- package/dist/v1/hooks/use-tambo-v1.test.js.map +1 -1
- package/dist/v1/index.d.ts +31 -27
- package/dist/v1/index.d.ts.map +1 -1
- package/dist/v1/index.js +45 -35
- package/dist/v1/index.js.map +1 -1
- package/dist/v1/providers/tambo-v1-provider.d.ts +20 -20
- package/dist/v1/providers/tambo-v1-provider.d.ts.map +1 -1
- package/dist/v1/providers/tambo-v1-provider.js +32 -32
- package/dist/v1/providers/tambo-v1-provider.js.map +1 -1
- package/dist/v1/providers/tambo-v1-provider.test.js +22 -22
- package/dist/v1/providers/tambo-v1-provider.test.js.map +1 -1
- package/dist/v1/providers/tambo-v1-stream-context.d.ts +15 -15
- package/dist/v1/providers/tambo-v1-stream-context.d.ts.map +1 -1
- package/dist/v1/providers/tambo-v1-stream-context.js +17 -17
- package/dist/v1/providers/tambo-v1-stream-context.js.map +1 -1
- package/dist/v1/providers/tambo-v1-stream-context.test.js +9 -9
- package/dist/v1/providers/tambo-v1-stream-context.test.js.map +1 -1
- package/dist/v1/providers/tambo-v1-stub-provider.d.ts +9 -9
- package/dist/v1/providers/tambo-v1-stub-provider.d.ts.map +1 -1
- package/dist/v1/providers/tambo-v1-stub-provider.js +7 -7
- package/dist/v1/providers/tambo-v1-stub-provider.js.map +1 -1
- package/dist/v1/providers/tambo-v1-stub-provider.test.js +25 -25
- package/dist/v1/providers/tambo-v1-stub-provider.test.js.map +1 -1
- package/dist/v1/providers/tambo-v1-thread-input-provider.d.ts +9 -9
- package/dist/v1/providers/tambo-v1-thread-input-provider.d.ts.map +1 -1
- package/dist/v1/providers/tambo-v1-thread-input-provider.js +16 -16
- package/dist/v1/providers/tambo-v1-thread-input-provider.js.map +1 -1
- package/dist/v1/types/auth.d.ts +2 -2
- package/dist/v1/types/auth.d.ts.map +1 -1
- package/dist/v1/types/auth.js.map +1 -1
- package/dist/v1/types/component.d.ts +3 -3
- package/dist/v1/types/component.d.ts.map +1 -1
- package/dist/v1/types/component.js +2 -2
- package/dist/v1/types/component.js.map +1 -1
- package/dist/v1/types/event.d.ts +1 -1
- package/dist/v1/types/event.js +1 -1
- package/dist/v1/types/event.js.map +1 -1
- package/dist/v1/types/message.d.ts +17 -24
- package/dist/v1/types/message.d.ts.map +1 -1
- package/dist/v1/types/message.js +1 -1
- package/dist/v1/types/message.js.map +1 -1
- package/dist/v1/types/thread.d.ts +10 -8
- package/dist/v1/types/thread.d.ts.map +1 -1
- package/dist/v1/types/thread.js +1 -1
- package/dist/v1/types/thread.js.map +1 -1
- package/dist/v1/types/tool-choice.d.ts +1 -1
- package/dist/v1/types/tool-choice.js.map +1 -1
- package/dist/v1/utils/component-renderer.d.ts +11 -5
- package/dist/v1/utils/component-renderer.d.ts.map +1 -1
- package/dist/v1/utils/component-renderer.js +16 -7
- package/dist/v1/utils/component-renderer.js.map +1 -1
- package/dist/v1/utils/component-renderer.test.js +7 -7
- package/dist/v1/utils/component-renderer.test.js.map +1 -1
- package/dist/v1/utils/event-accumulator.d.ts +13 -13
- package/dist/v1/utils/event-accumulator.d.ts.map +1 -1
- package/dist/v1/utils/event-accumulator.js +26 -15
- package/dist/v1/utils/event-accumulator.js.map +1 -1
- package/dist/v1/utils/event-accumulator.test.js +54 -19
- package/dist/v1/utils/event-accumulator.test.js.map +1 -1
- package/dist/v1/utils/registry-conversion.d.ts +18 -18
- package/dist/v1/utils/registry-conversion.js +23 -23
- package/dist/v1/utils/registry-conversion.js.map +1 -1
- package/dist/v1/utils/stream-handler.d.ts +1 -1
- package/dist/v1/utils/stream-handler.js +1 -1
- package/dist/v1/utils/stream-handler.js.map +1 -1
- package/dist/v1/utils/thread-utils.d.ts +2 -2
- package/dist/v1/utils/thread-utils.d.ts.map +1 -1
- package/dist/v1/utils/thread-utils.js.map +1 -1
- package/dist/v1/utils/tool-call-tracker.d.ts +1 -1
- package/dist/v1/utils/tool-call-tracker.js +1 -1
- package/dist/v1/utils/tool-call-tracker.js.map +1 -1
- package/dist/v1/utils/tool-executor.d.ts +1 -1
- package/dist/v1/utils/tool-executor.js +2 -2
- package/dist/v1/utils/tool-executor.js.map +1 -1
- package/esm/hoc/with-tambo-interactable.d.ts.map +1 -1
- package/esm/hoc/with-tambo-interactable.js +13 -13
- package/esm/hoc/with-tambo-interactable.js.map +1 -1
- package/esm/hoc/with-tambo-interactable.test.js +1 -1
- package/esm/hoc/with-tambo-interactable.test.js.map +1 -1
- package/esm/index.d.ts +7 -25
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +7 -21
- package/esm/index.js.map +1 -1
- package/esm/mcp/mcp-hooks.js +1 -1
- package/esm/mcp/mcp-hooks.js.map +1 -1
- package/esm/model/component-metadata.d.ts +4 -4
- package/esm/model/component-metadata.js.map +1 -1
- package/esm/providers/tambo-client-provider.d.ts +6 -0
- package/esm/providers/tambo-client-provider.d.ts.map +1 -1
- package/esm/providers/tambo-client-provider.js +4 -2
- package/esm/providers/tambo-client-provider.js.map +1 -1
- package/esm/providers/tambo-interactable-provider.d.ts +1 -1
- package/esm/providers/tambo-interactables-additional-context-edge-cases.test.js +2 -10
- package/esm/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -1
- package/esm/providers/tambo-interactables-additional-context.test.js +3 -19
- package/esm/providers/tambo-interactables-additional-context.test.js.map +1 -1
- package/esm/providers/tambo-mcp-token-provider.d.ts +8 -17
- package/esm/providers/tambo-mcp-token-provider.d.ts.map +1 -1
- package/esm/providers/tambo-mcp-token-provider.js +20 -97
- package/esm/providers/tambo-mcp-token-provider.js.map +1 -1
- package/esm/testing/tools.d.ts +3 -3
- package/esm/testing/tools.d.ts.map +1 -1
- package/esm/testing/tools.js.map +1 -1
- package/esm/util/registry-validators.js +1 -1
- package/esm/util/registry-validators.js.map +1 -1
- package/esm/v1/__tests__/v1-interactables.test.js +1 -1
- package/esm/v1/__tests__/v1-interactables.test.js.map +1 -1
- package/esm/v1/components/v1-component-renderer.d.ts +9 -9
- package/esm/v1/components/v1-component-renderer.d.ts.map +1 -1
- package/esm/v1/components/v1-component-renderer.js +12 -12
- package/esm/v1/components/v1-component-renderer.js.map +1 -1
- package/esm/v1/components/v1-component-renderer.test.js +16 -16
- package/esm/v1/components/v1-component-renderer.test.js.map +1 -1
- package/{dist/hooks/use-current-message.d.ts → esm/v1/hooks/use-tambo-current-message.d.ts} +30 -9
- package/esm/v1/hooks/use-tambo-current-message.d.ts.map +1 -0
- package/esm/{hooks/use-current-message.js → v1/hooks/use-tambo-current-message.js} +13 -8
- package/esm/v1/hooks/use-tambo-current-message.js.map +1 -0
- package/esm/v1/hooks/use-tambo-v1-auth-state.d.ts +5 -5
- package/esm/v1/hooks/use-tambo-v1-auth-state.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-auth-state.js +8 -8
- package/esm/v1/hooks/use-tambo-v1-auth-state.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-auth-state.test.js +14 -14
- package/esm/v1/hooks/use-tambo-v1-auth-state.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-component-state.d.ts +7 -6
- package/esm/v1/hooks/use-tambo-v1-component-state.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-component-state.js +50 -24
- package/esm/v1/hooks/use-tambo-v1-component-state.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-component-state.test.js +62 -37
- package/esm/v1/hooks/use-tambo-v1-component-state.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-messages.d.ts +9 -9
- package/esm/v1/hooks/use-tambo-v1-messages.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-messages.js +3 -3
- package/esm/v1/hooks/use-tambo-v1-messages.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-messages.test.js +9 -9
- package/esm/v1/hooks/use-tambo-v1-messages.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-send-message.d.ts +3 -3
- package/esm/v1/hooks/use-tambo-v1-send-message.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-send-message.js +21 -23
- package/esm/v1/hooks/use-tambo-v1-send-message.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-send-message.test.js +54 -54
- package/esm/v1/hooks/use-tambo-v1-send-message.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-stream-status.d.ts +5 -5
- package/esm/v1/hooks/use-tambo-v1-stream-status.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-stream-status.js +12 -14
- package/esm/v1/hooks/use-tambo-v1-stream-status.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-stream-status.test.js +21 -21
- package/esm/v1/hooks/use-tambo-v1-stream-status.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-suggestions.d.ts +7 -7
- package/esm/v1/hooks/use-tambo-v1-suggestions.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-suggestions.js +11 -11
- package/esm/v1/hooks/use-tambo-v1-suggestions.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-suggestions.test.js +48 -48
- package/esm/v1/hooks/use-tambo-v1-suggestions.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread-input.d.ts +3 -3
- package/esm/v1/hooks/use-tambo-v1-thread-input.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread-input.js +3 -3
- package/esm/v1/hooks/use-tambo-v1-thread-input.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread-input.test.js +32 -32
- package/esm/v1/hooks/use-tambo-v1-thread-input.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread-list.d.ts +4 -4
- package/esm/v1/hooks/use-tambo-v1-thread-list.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread-list.js +6 -6
- package/esm/v1/hooks/use-tambo-v1-thread-list.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread-list.test.js +15 -19
- package/esm/v1/hooks/use-tambo-v1-thread-list.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread.d.ts +3 -3
- package/esm/v1/hooks/use-tambo-v1-thread.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread.js +4 -4
- package/esm/v1/hooks/use-tambo-v1-thread.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1-thread.test.js +6 -6
- package/esm/v1/hooks/use-tambo-v1-thread.test.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1.d.ts +16 -7
- package/esm/v1/hooks/use-tambo-v1.d.ts.map +1 -1
- package/esm/v1/hooks/use-tambo-v1.js +43 -12
- package/esm/v1/hooks/use-tambo-v1.js.map +1 -1
- package/esm/v1/hooks/use-tambo-v1.test.js +178 -50
- package/esm/v1/hooks/use-tambo-v1.test.js.map +1 -1
- package/esm/v1/index.d.ts +31 -27
- package/esm/v1/index.d.ts.map +1 -1
- package/esm/v1/index.js +38 -33
- package/esm/v1/index.js.map +1 -1
- package/esm/v1/providers/tambo-v1-provider.d.ts +20 -20
- package/esm/v1/providers/tambo-v1-provider.d.ts.map +1 -1
- package/esm/v1/providers/tambo-v1-provider.js +32 -32
- package/esm/v1/providers/tambo-v1-provider.js.map +1 -1
- package/esm/v1/providers/tambo-v1-provider.test.js +23 -23
- package/esm/v1/providers/tambo-v1-provider.test.js.map +1 -1
- package/esm/v1/providers/tambo-v1-stream-context.d.ts +15 -15
- package/esm/v1/providers/tambo-v1-stream-context.d.ts.map +1 -1
- package/esm/v1/providers/tambo-v1-stream-context.js +17 -17
- package/esm/v1/providers/tambo-v1-stream-context.js.map +1 -1
- package/esm/v1/providers/tambo-v1-stream-context.test.js +10 -10
- package/esm/v1/providers/tambo-v1-stream-context.test.js.map +1 -1
- package/esm/v1/providers/tambo-v1-stub-provider.d.ts +9 -9
- package/esm/v1/providers/tambo-v1-stub-provider.d.ts.map +1 -1
- package/esm/v1/providers/tambo-v1-stub-provider.js +9 -9
- package/esm/v1/providers/tambo-v1-stub-provider.js.map +1 -1
- package/esm/v1/providers/tambo-v1-stub-provider.test.js +28 -28
- package/esm/v1/providers/tambo-v1-stub-provider.test.js.map +1 -1
- package/esm/v1/providers/tambo-v1-thread-input-provider.d.ts +9 -9
- package/esm/v1/providers/tambo-v1-thread-input-provider.d.ts.map +1 -1
- package/esm/v1/providers/tambo-v1-thread-input-provider.js +15 -15
- package/esm/v1/providers/tambo-v1-thread-input-provider.js.map +1 -1
- package/esm/v1/types/auth.d.ts +2 -2
- package/esm/v1/types/auth.d.ts.map +1 -1
- package/esm/v1/types/auth.js.map +1 -1
- package/esm/v1/types/component.d.ts +3 -3
- package/esm/v1/types/component.d.ts.map +1 -1
- package/esm/v1/types/component.js +2 -2
- package/esm/v1/types/component.js.map +1 -1
- package/esm/v1/types/event.d.ts +1 -1
- package/esm/v1/types/event.js +1 -1
- package/esm/v1/types/event.js.map +1 -1
- package/esm/v1/types/message.d.ts +17 -24
- package/esm/v1/types/message.d.ts.map +1 -1
- package/esm/v1/types/message.js +1 -1
- package/esm/v1/types/message.js.map +1 -1
- package/esm/v1/types/thread.d.ts +10 -8
- package/esm/v1/types/thread.d.ts.map +1 -1
- package/esm/v1/types/thread.js +1 -1
- package/esm/v1/types/thread.js.map +1 -1
- package/esm/v1/types/tool-choice.d.ts +1 -1
- package/esm/v1/types/tool-choice.js.map +1 -1
- package/esm/v1/utils/component-renderer.d.ts +11 -5
- package/esm/v1/utils/component-renderer.d.ts.map +1 -1
- package/esm/v1/utils/component-renderer.js +13 -5
- package/esm/v1/utils/component-renderer.js.map +1 -1
- package/esm/v1/utils/component-renderer.test.js +8 -8
- package/esm/v1/utils/component-renderer.test.js.map +1 -1
- package/esm/v1/utils/event-accumulator.d.ts +13 -13
- package/esm/v1/utils/event-accumulator.d.ts.map +1 -1
- package/esm/v1/utils/event-accumulator.js +26 -15
- package/esm/v1/utils/event-accumulator.js.map +1 -1
- package/esm/v1/utils/event-accumulator.test.js +54 -19
- package/esm/v1/utils/event-accumulator.test.js.map +1 -1
- package/esm/v1/utils/registry-conversion.d.ts +18 -18
- package/esm/v1/utils/registry-conversion.js +23 -23
- package/esm/v1/utils/registry-conversion.js.map +1 -1
- package/esm/v1/utils/stream-handler.d.ts +1 -1
- package/esm/v1/utils/stream-handler.js +1 -1
- package/esm/v1/utils/stream-handler.js.map +1 -1
- package/esm/v1/utils/thread-utils.d.ts +2 -2
- package/esm/v1/utils/thread-utils.d.ts.map +1 -1
- package/esm/v1/utils/thread-utils.js.map +1 -1
- package/esm/v1/utils/tool-call-tracker.d.ts +1 -1
- package/esm/v1/utils/tool-call-tracker.js +1 -1
- package/esm/v1/utils/tool-call-tracker.js.map +1 -1
- package/esm/v1/utils/tool-executor.d.ts +1 -1
- package/esm/v1/utils/tool-executor.js +2 -2
- package/esm/v1/utils/tool-executor.js.map +1 -1
- package/package.json +4 -9
- package/dist/hooks/index.d.ts +0 -9
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -34
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/use-component-state.d.ts +0 -30
- package/dist/hooks/use-component-state.d.ts.map +0 -1
- package/dist/hooks/use-component-state.js +0 -139
- package/dist/hooks/use-component-state.js.map +0 -1
- package/dist/hooks/use-component-state.test.d.ts +0 -2
- package/dist/hooks/use-component-state.test.d.ts.map +0 -1
- package/dist/hooks/use-component-state.test.js +0 -406
- package/dist/hooks/use-component-state.test.js.map +0 -1
- package/dist/hooks/use-current-message.d.ts.map +0 -1
- package/dist/hooks/use-current-message.js.map +0 -1
- package/dist/hooks/use-current-message.test.d.ts +0 -2
- package/dist/hooks/use-current-message.test.d.ts.map +0 -1
- package/dist/hooks/use-current-message.test.js +0 -269
- package/dist/hooks/use-current-message.test.js.map +0 -1
- package/dist/hooks/use-streaming-props.d.ts +0 -11
- package/dist/hooks/use-streaming-props.d.ts.map +0 -1
- package/dist/hooks/use-streaming-props.js +0 -37
- package/dist/hooks/use-streaming-props.js.map +0 -1
- package/dist/hooks/use-suggestions.d.ts +0 -46
- package/dist/hooks/use-suggestions.d.ts.map +0 -1
- package/dist/hooks/use-suggestions.js +0 -118
- package/dist/hooks/use-suggestions.js.map +0 -1
- package/dist/hooks/use-suggestions.test.d.ts +0 -2
- package/dist/hooks/use-suggestions.test.d.ts.map +0 -1
- package/dist/hooks/use-suggestions.test.js +0 -247
- package/dist/hooks/use-suggestions.test.js.map +0 -1
- package/dist/hooks/use-tambo-stream-status.d.ts +0 -90
- package/dist/hooks/use-tambo-stream-status.d.ts.map +0 -1
- package/dist/hooks/use-tambo-stream-status.js +0 -213
- package/dist/hooks/use-tambo-stream-status.js.map +0 -1
- package/dist/hooks/use-tambo-stream-status.test.d.ts +0 -2
- package/dist/hooks/use-tambo-stream-status.test.d.ts.map +0 -1
- package/dist/hooks/use-tambo-stream-status.test.js +0 -378
- package/dist/hooks/use-tambo-stream-status.test.js.map +0 -1
- package/dist/hooks/use-tambo-threads.d.ts +0 -158
- package/dist/hooks/use-tambo-threads.d.ts.map +0 -1
- package/dist/hooks/use-tambo-threads.js +0 -45
- package/dist/hooks/use-tambo-threads.js.map +0 -1
- package/dist/hooks/use-tambo-threads.test.d.ts +0 -2
- package/dist/hooks/use-tambo-threads.test.d.ts.map +0 -1
- package/dist/hooks/use-tambo-threads.test.js +0 -214
- package/dist/hooks/use-tambo-threads.test.js.map +0 -1
- package/dist/model/generate-component-response.d.ts +0 -37
- package/dist/model/generate-component-response.d.ts.map +0 -1
- package/dist/model/generate-component-response.js +0 -29
- package/dist/model/generate-component-response.js.map +0 -1
- package/dist/model/tambo-thread.d.ts +0 -15
- package/dist/model/tambo-thread.d.ts.map +0 -1
- package/dist/model/tambo-thread.js +0 -3
- package/dist/model/tambo-thread.js.map +0 -1
- package/dist/providers/__tests__/thread-input-resource-resolution.test.d.ts +0 -2
- package/dist/providers/__tests__/thread-input-resource-resolution.test.d.ts.map +0 -1
- package/dist/providers/__tests__/thread-input-resource-resolution.test.js +0 -592
- package/dist/providers/__tests__/thread-input-resource-resolution.test.js.map +0 -1
- package/dist/providers/index.d.ts +0 -13
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -41
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/tambo-component-provider.d.ts +0 -23
- package/dist/providers/tambo-component-provider.d.ts.map +0 -1
- package/dist/providers/tambo-component-provider.js +0 -88
- package/dist/providers/tambo-component-provider.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/index.d.ts +0 -19
- package/dist/providers/tambo-prop-stream-provider/index.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/index.js +0 -43
- package/dist/providers/tambo-prop-stream-provider/index.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/pending.d.ts +0 -12
- package/dist/providers/tambo-prop-stream-provider/pending.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/pending.js +0 -31
- package/dist/providers/tambo-prop-stream-provider/pending.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/provider.d.ts +0 -17
- package/dist/providers/tambo-prop-stream-provider/provider.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/provider.js +0 -107
- package/dist/providers/tambo-prop-stream-provider/provider.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/streaming.d.ts +0 -12
- package/dist/providers/tambo-prop-stream-provider/streaming.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/streaming.js +0 -28
- package/dist/providers/tambo-prop-stream-provider/streaming.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/success.d.ts +0 -12
- package/dist/providers/tambo-prop-stream-provider/success.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/success.js +0 -28
- package/dist/providers/tambo-prop-stream-provider/success.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/types.d.ts +0 -25
- package/dist/providers/tambo-prop-stream-provider/types.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider/types.js +0 -6
- package/dist/providers/tambo-prop-stream-provider/types.js.map +0 -1
- package/dist/providers/tambo-prop-stream-provider.test.d.ts +0 -2
- package/dist/providers/tambo-prop-stream-provider.test.d.ts.map +0 -1
- package/dist/providers/tambo-prop-stream-provider.test.js +0 -275
- package/dist/providers/tambo-prop-stream-provider.test.js.map +0 -1
- package/dist/providers/tambo-provider.d.ts +0 -53
- package/dist/providers/tambo-provider.d.ts.map +0 -1
- package/dist/providers/tambo-provider.js +0 -133
- package/dist/providers/tambo-provider.js.map +0 -1
- package/dist/providers/tambo-stubs.d.ts +0 -89
- package/dist/providers/tambo-stubs.d.ts.map +0 -1
- package/dist/providers/tambo-stubs.js +0 -279
- package/dist/providers/tambo-stubs.js.map +0 -1
- package/dist/providers/tambo-stubs.test.d.ts +0 -2
- package/dist/providers/tambo-stubs.test.d.ts.map +0 -1
- package/dist/providers/tambo-stubs.test.js +0 -97
- package/dist/providers/tambo-stubs.test.js.map +0 -1
- package/dist/providers/tambo-thread-input-provider.d.ts +0 -65
- package/dist/providers/tambo-thread-input-provider.d.ts.map +0 -1
- package/dist/providers/tambo-thread-input-provider.js +0 -179
- package/dist/providers/tambo-thread-input-provider.js.map +0 -1
- package/dist/providers/tambo-thread-provider-initial-messages.test.d.ts +0 -2
- package/dist/providers/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
- package/dist/providers/tambo-thread-provider-initial-messages.test.js +0 -278
- package/dist/providers/tambo-thread-provider-initial-messages.test.js.map +0 -1
- package/dist/providers/tambo-thread-provider.d.ts +0 -126
- package/dist/providers/tambo-thread-provider.d.ts.map +0 -1
- package/dist/providers/tambo-thread-provider.js +0 -931
- package/dist/providers/tambo-thread-provider.js.map +0 -1
- package/dist/providers/tambo-thread-provider.test.d.ts +0 -2
- package/dist/providers/tambo-thread-provider.test.d.ts.map +0 -1
- package/dist/providers/tambo-thread-provider.test.js +0 -1591
- package/dist/providers/tambo-thread-provider.test.js.map +0 -1
- package/dist/util/generate-component.d.ts +0 -12
- package/dist/util/generate-component.d.ts.map +0 -1
- package/dist/util/generate-component.js +0 -58
- package/dist/util/generate-component.js.map +0 -1
- package/dist/util/generate-component.test.d.ts +0 -2
- package/dist/util/generate-component.test.d.ts.map +0 -1
- package/dist/util/generate-component.test.js +0 -340
- package/dist/util/generate-component.test.js.map +0 -1
- package/esm/hooks/index.d.ts +0 -9
- package/esm/hooks/index.d.ts.map +0 -1
- package/esm/hooks/index.js +0 -10
- package/esm/hooks/index.js.map +0 -1
- package/esm/hooks/use-component-state.d.ts +0 -30
- package/esm/hooks/use-component-state.d.ts.map +0 -1
- package/esm/hooks/use-component-state.js +0 -136
- package/esm/hooks/use-component-state.js.map +0 -1
- package/esm/hooks/use-component-state.test.d.ts +0 -2
- package/esm/hooks/use-component-state.test.d.ts.map +0 -1
- package/esm/hooks/use-component-state.test.js +0 -401
- package/esm/hooks/use-component-state.test.js.map +0 -1
- package/esm/hooks/use-current-message.d.ts.map +0 -1
- package/esm/hooks/use-current-message.js.map +0 -1
- package/esm/hooks/use-current-message.test.d.ts +0 -2
- package/esm/hooks/use-current-message.test.d.ts.map +0 -1
- package/esm/hooks/use-current-message.test.js +0 -264
- package/esm/hooks/use-current-message.test.js.map +0 -1
- package/esm/hooks/use-streaming-props.d.ts +0 -11
- package/esm/hooks/use-streaming-props.d.ts.map +0 -1
- package/esm/hooks/use-streaming-props.js +0 -34
- package/esm/hooks/use-streaming-props.js.map +0 -1
- package/esm/hooks/use-suggestions.d.ts +0 -46
- package/esm/hooks/use-suggestions.d.ts.map +0 -1
- package/esm/hooks/use-suggestions.js +0 -115
- package/esm/hooks/use-suggestions.js.map +0 -1
- package/esm/hooks/use-suggestions.test.d.ts +0 -2
- package/esm/hooks/use-suggestions.test.d.ts.map +0 -1
- package/esm/hooks/use-suggestions.test.js +0 -245
- package/esm/hooks/use-suggestions.test.js.map +0 -1
- package/esm/hooks/use-tambo-stream-status.d.ts +0 -90
- package/esm/hooks/use-tambo-stream-status.d.ts.map +0 -1
- package/esm/hooks/use-tambo-stream-status.js +0 -210
- package/esm/hooks/use-tambo-stream-status.js.map +0 -1
- package/esm/hooks/use-tambo-stream-status.test.d.ts +0 -2
- package/esm/hooks/use-tambo-stream-status.test.d.ts.map +0 -1
- package/esm/hooks/use-tambo-stream-status.test.js +0 -376
- package/esm/hooks/use-tambo-stream-status.test.js.map +0 -1
- package/esm/hooks/use-tambo-threads.d.ts +0 -158
- package/esm/hooks/use-tambo-threads.d.ts.map +0 -1
- package/esm/hooks/use-tambo-threads.js +0 -42
- package/esm/hooks/use-tambo-threads.js.map +0 -1
- package/esm/hooks/use-tambo-threads.test.d.ts +0 -2
- package/esm/hooks/use-tambo-threads.test.d.ts.map +0 -1
- package/esm/hooks/use-tambo-threads.test.js +0 -212
- package/esm/hooks/use-tambo-threads.test.js.map +0 -1
- package/esm/model/generate-component-response.d.ts +0 -37
- package/esm/model/generate-component-response.d.ts.map +0 -1
- package/esm/model/generate-component-response.js +0 -25
- package/esm/model/generate-component-response.js.map +0 -1
- package/esm/model/tambo-thread.d.ts +0 -15
- package/esm/model/tambo-thread.d.ts.map +0 -1
- package/esm/model/tambo-thread.js +0 -2
- package/esm/model/tambo-thread.js.map +0 -1
- package/esm/providers/__tests__/thread-input-resource-resolution.test.d.ts +0 -2
- package/esm/providers/__tests__/thread-input-resource-resolution.test.d.ts.map +0 -1
- package/esm/providers/__tests__/thread-input-resource-resolution.test.js +0 -587
- package/esm/providers/__tests__/thread-input-resource-resolution.test.js.map +0 -1
- package/esm/providers/index.d.ts +0 -13
- package/esm/providers/index.d.ts.map +0 -1
- package/esm/providers/index.js +0 -11
- package/esm/providers/index.js.map +0 -1
- package/esm/providers/tambo-component-provider.d.ts +0 -23
- package/esm/providers/tambo-component-provider.d.ts.map +0 -1
- package/esm/providers/tambo-component-provider.js +0 -50
- package/esm/providers/tambo-component-provider.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/index.d.ts +0 -19
- package/esm/providers/tambo-prop-stream-provider/index.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/index.js +0 -22
- package/esm/providers/tambo-prop-stream-provider/index.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/pending.d.ts +0 -12
- package/esm/providers/tambo-prop-stream-provider/pending.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/pending.js +0 -24
- package/esm/providers/tambo-prop-stream-provider/pending.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/provider.d.ts +0 -17
- package/esm/providers/tambo-prop-stream-provider/provider.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/provider.js +0 -70
- package/esm/providers/tambo-prop-stream-provider/provider.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/streaming.d.ts +0 -12
- package/esm/providers/tambo-prop-stream-provider/streaming.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/streaming.js +0 -21
- package/esm/providers/tambo-prop-stream-provider/streaming.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/success.d.ts +0 -12
- package/esm/providers/tambo-prop-stream-provider/success.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/success.js +0 -21
- package/esm/providers/tambo-prop-stream-provider/success.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/types.d.ts +0 -25
- package/esm/providers/tambo-prop-stream-provider/types.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider/types.js +0 -3
- package/esm/providers/tambo-prop-stream-provider/types.js.map +0 -1
- package/esm/providers/tambo-prop-stream-provider.test.d.ts +0 -2
- package/esm/providers/tambo-prop-stream-provider.test.d.ts.map +0 -1
- package/esm/providers/tambo-prop-stream-provider.test.js +0 -270
- package/esm/providers/tambo-prop-stream-provider.test.js.map +0 -1
- package/esm/providers/tambo-provider.d.ts +0 -53
- package/esm/providers/tambo-provider.d.ts.map +0 -1
- package/esm/providers/tambo-provider.js +0 -94
- package/esm/providers/tambo-provider.js.map +0 -1
- package/esm/providers/tambo-stubs.d.ts +0 -89
- package/esm/providers/tambo-stubs.d.ts.map +0 -1
- package/esm/providers/tambo-stubs.js +0 -242
- package/esm/providers/tambo-stubs.js.map +0 -1
- package/esm/providers/tambo-stubs.test.d.ts +0 -2
- package/esm/providers/tambo-stubs.test.d.ts.map +0 -1
- package/esm/providers/tambo-stubs.test.js +0 -62
- package/esm/providers/tambo-stubs.test.js.map +0 -1
- package/esm/providers/tambo-thread-input-provider.d.ts +0 -65
- package/esm/providers/tambo-thread-input-provider.d.ts.map +0 -1
- package/esm/providers/tambo-thread-input-provider.js +0 -141
- package/esm/providers/tambo-thread-input-provider.js.map +0 -1
- package/esm/providers/tambo-thread-provider-initial-messages.test.d.ts +0 -2
- package/esm/providers/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
- package/esm/providers/tambo-thread-provider-initial-messages.test.js +0 -273
- package/esm/providers/tambo-thread-provider-initial-messages.test.js.map +0 -1
- package/esm/providers/tambo-thread-provider.d.ts +0 -126
- package/esm/providers/tambo-thread-provider.d.ts.map +0 -1
- package/esm/providers/tambo-thread-provider.js +0 -891
- package/esm/providers/tambo-thread-provider.js.map +0 -1
- package/esm/providers/tambo-thread-provider.test.d.ts +0 -2
- package/esm/providers/tambo-thread-provider.test.d.ts.map +0 -1
- package/esm/providers/tambo-thread-provider.test.js +0 -1553
- package/esm/providers/tambo-thread-provider.test.js.map +0 -1
- package/esm/util/generate-component.d.ts +0 -12
- package/esm/util/generate-component.d.ts.map +0 -1
- package/esm/util/generate-component.js +0 -52
- package/esm/util/generate-component.js.map +0 -1
- package/esm/util/generate-component.test.d.ts +0 -2
- package/esm/util/generate-component.test.d.ts.map +0 -1
- package/esm/util/generate-component.test.js +0 -302
- package/esm/util/generate-component.test.js.map +0 -1
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { render, screen } from "@testing-library/react";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { useTamboCurrentMessage } from "../hooks/use-current-message.js";
|
|
4
|
-
import { GenerationStage, } from "../model/generate-component-response.js";
|
|
5
|
-
import { useTamboGenerationStage, useTamboThread, } from "../providers/tambo-thread-provider.js";
|
|
6
|
-
import { TamboPropStreamProvider, useTamboStream, } from "./tambo-prop-stream-provider/index.js";
|
|
7
|
-
// Mock the required providers
|
|
8
|
-
jest.mock("../providers/tambo-thread-provider", () => ({
|
|
9
|
-
useTamboThread: jest.fn(),
|
|
10
|
-
useTamboGenerationStage: jest.fn(),
|
|
11
|
-
}));
|
|
12
|
-
jest.mock("../hooks/use-current-message", () => ({
|
|
13
|
-
useTamboCurrentMessage: jest.fn(),
|
|
14
|
-
}));
|
|
15
|
-
// Mock window for SSR tests
|
|
16
|
-
const originalWindow = global.window;
|
|
17
|
-
// Helper function to create mock ComponentDecisionV2
|
|
18
|
-
const createMockComponent = (props = {}) => ({
|
|
19
|
-
componentName: "TestComponent",
|
|
20
|
-
componentState: {},
|
|
21
|
-
message: "Component generated",
|
|
22
|
-
props,
|
|
23
|
-
reasoning: "Test reasoning",
|
|
24
|
-
});
|
|
25
|
-
// Helper function to create mock TamboThreadMessage
|
|
26
|
-
const createMockMessage = (overrides = {}) => ({
|
|
27
|
-
id: "test-message",
|
|
28
|
-
componentState: {},
|
|
29
|
-
content: [{ type: "text", text: "test content" }],
|
|
30
|
-
createdAt: new Date().toISOString(),
|
|
31
|
-
role: "assistant",
|
|
32
|
-
threadId: "test-thread",
|
|
33
|
-
...overrides,
|
|
34
|
-
});
|
|
35
|
-
// Helper function to create mock CombinedTamboThreadContextProps
|
|
36
|
-
const createMockThreadContext = (overrides = {}) => {
|
|
37
|
-
const mockThread = {
|
|
38
|
-
id: "test-thread",
|
|
39
|
-
projectId: "test-project",
|
|
40
|
-
messages: [],
|
|
41
|
-
name: "Test Thread",
|
|
42
|
-
createdAt: new Date().toISOString(),
|
|
43
|
-
updatedAt: new Date().toISOString(),
|
|
44
|
-
};
|
|
45
|
-
return {
|
|
46
|
-
// TamboThreadContextProps properties
|
|
47
|
-
thread: mockThread,
|
|
48
|
-
currentThreadId: mockThread.id,
|
|
49
|
-
currentThread: mockThread,
|
|
50
|
-
threadMap: { [mockThread.id]: mockThread },
|
|
51
|
-
setThreadMap: jest.fn(),
|
|
52
|
-
switchCurrentThread: jest.fn(),
|
|
53
|
-
startNewThread: jest.fn(),
|
|
54
|
-
updateThreadName: jest.fn(),
|
|
55
|
-
generateThreadName: jest.fn(),
|
|
56
|
-
addThreadMessage: jest.fn(),
|
|
57
|
-
updateThreadMessage: jest.fn(),
|
|
58
|
-
cancel: jest.fn(),
|
|
59
|
-
streaming: false,
|
|
60
|
-
sendThreadMessage: jest.fn(),
|
|
61
|
-
// GenerationStageContextProps properties
|
|
62
|
-
generationStage: GenerationStage.IDLE,
|
|
63
|
-
generationStatusMessage: "",
|
|
64
|
-
isIdle: true,
|
|
65
|
-
...overrides,
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
// Helper component to test hook usage
|
|
69
|
-
const TestHookComponent = ({ testKey = "default", }) => {
|
|
70
|
-
const { streamStatus, getStatusForKey } = useTamboStream();
|
|
71
|
-
const status = getStatusForKey(testKey);
|
|
72
|
-
return (React.createElement("div", null,
|
|
73
|
-
React.createElement("div", { "data-testid": "stream-status" }, JSON.stringify(streamStatus)),
|
|
74
|
-
React.createElement("div", { "data-testid": "key-status" }, JSON.stringify(status))));
|
|
75
|
-
};
|
|
76
|
-
describe("TamboPropStreamProvider", () => {
|
|
77
|
-
beforeEach(() => {
|
|
78
|
-
// Restore window for client-side tests
|
|
79
|
-
global.window = originalWindow;
|
|
80
|
-
// Default mock implementations
|
|
81
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext());
|
|
82
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
83
|
-
generationStage: GenerationStage.IDLE,
|
|
84
|
-
generationStatusMessage: "",
|
|
85
|
-
isIdle: true,
|
|
86
|
-
});
|
|
87
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue({
|
|
88
|
-
id: "test-message",
|
|
89
|
-
component: {
|
|
90
|
-
props: {},
|
|
91
|
-
},
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
afterEach(() => {
|
|
95
|
-
jest.clearAllMocks();
|
|
96
|
-
});
|
|
97
|
-
describe("Hook Error Handling", () => {
|
|
98
|
-
it("should throw error when useTamboStream is used outside provider", () => {
|
|
99
|
-
// Suppress console.error for this test
|
|
100
|
-
const originalError = console.error;
|
|
101
|
-
console.error = jest.fn();
|
|
102
|
-
expect(() => {
|
|
103
|
-
render(React.createElement(TestHookComponent, null));
|
|
104
|
-
}).toThrow("useTamboStream must be used within a TamboPropStreamProvider");
|
|
105
|
-
console.error = originalError;
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
describe("Compound Components", () => {
|
|
109
|
-
describe("Streaming Component", () => {
|
|
110
|
-
it("should render streaming when isPending is true", () => {
|
|
111
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
112
|
-
generationStage: GenerationStage.IDLE,
|
|
113
|
-
}));
|
|
114
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
115
|
-
generationStage: GenerationStage.IDLE,
|
|
116
|
-
generationStatusMessage: "",
|
|
117
|
-
isIdle: true,
|
|
118
|
-
});
|
|
119
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
120
|
-
component: createMockComponent({ title: "" }),
|
|
121
|
-
}));
|
|
122
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
123
|
-
React.createElement(TamboPropStreamProvider.Streaming, null,
|
|
124
|
-
React.createElement("div", { "data-testid": "loading" }, "Loading..."))));
|
|
125
|
-
expect(screen.getByTestId("loading")).toBeInTheDocument();
|
|
126
|
-
});
|
|
127
|
-
it("should render streaming when isStreaming is true", () => {
|
|
128
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
129
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
130
|
-
}));
|
|
131
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
132
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
133
|
-
generationStatusMessage: "",
|
|
134
|
-
isIdle: false,
|
|
135
|
-
});
|
|
136
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
137
|
-
component: createMockComponent({ title: "Partial" }),
|
|
138
|
-
}));
|
|
139
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
140
|
-
React.createElement(TamboPropStreamProvider.Streaming, null,
|
|
141
|
-
React.createElement("div", { "data-testid": "loading" }, "Loading..."))));
|
|
142
|
-
expect(screen.getByTestId("loading")).toBeInTheDocument();
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
describe("Success Component", () => {
|
|
146
|
-
it("should not render success when isSuccess is false", () => {
|
|
147
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
148
|
-
generationStage: GenerationStage.IDLE,
|
|
149
|
-
}));
|
|
150
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
151
|
-
generationStage: GenerationStage.IDLE,
|
|
152
|
-
generationStatusMessage: "",
|
|
153
|
-
isIdle: true,
|
|
154
|
-
});
|
|
155
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
156
|
-
component: createMockComponent({ title: "" }),
|
|
157
|
-
}));
|
|
158
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
159
|
-
React.createElement(TamboPropStreamProvider.Success, null,
|
|
160
|
-
React.createElement("div", { "data-testid": "complete" }, "Complete!"))));
|
|
161
|
-
expect(screen.queryByTestId("complete")).not.toBeInTheDocument();
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
describe("Pending Component", () => {
|
|
165
|
-
it("should render pending when no active status", () => {
|
|
166
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
167
|
-
generationStage: GenerationStage.IDLE,
|
|
168
|
-
}));
|
|
169
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
170
|
-
generationStage: GenerationStage.IDLE,
|
|
171
|
-
generationStatusMessage: "",
|
|
172
|
-
isIdle: true,
|
|
173
|
-
});
|
|
174
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
175
|
-
component: createMockComponent({ title: "" }),
|
|
176
|
-
}));
|
|
177
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
178
|
-
React.createElement(TamboPropStreamProvider.Pending, null,
|
|
179
|
-
React.createElement("div", { "data-testid": "empty" }, "Empty!"))));
|
|
180
|
-
expect(screen.getByTestId("empty")).toBeInTheDocument();
|
|
181
|
-
});
|
|
182
|
-
it("should not render pending when isPending is true", () => {
|
|
183
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
184
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
185
|
-
}));
|
|
186
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
187
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
188
|
-
generationStatusMessage: "",
|
|
189
|
-
isIdle: false,
|
|
190
|
-
});
|
|
191
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
192
|
-
component: createMockComponent({ title: "Partial" }),
|
|
193
|
-
}));
|
|
194
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
195
|
-
React.createElement(TamboPropStreamProvider.Pending, null,
|
|
196
|
-
React.createElement("div", { "data-testid": "empty" }, "Empty!"))));
|
|
197
|
-
expect(screen.queryByTestId("empty")).not.toBeInTheDocument();
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
describe("Key-based Status", () => {
|
|
202
|
-
it("should provide status for keys not in propStatus", () => {
|
|
203
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
204
|
-
generationStage: GenerationStage.COMPLETE,
|
|
205
|
-
}));
|
|
206
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
207
|
-
generationStage: GenerationStage.COMPLETE,
|
|
208
|
-
generationStatusMessage: "",
|
|
209
|
-
isIdle: false,
|
|
210
|
-
});
|
|
211
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
212
|
-
component: createMockComponent({ name: "John" }),
|
|
213
|
-
}));
|
|
214
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
215
|
-
React.createElement(TestHookComponent, { testKey: "nonexistent" })));
|
|
216
|
-
const keyStatus = JSON.parse(screen.getByTestId("key-status").textContent);
|
|
217
|
-
expect(keyStatus.isPending).toBe(true);
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
describe("Compound Components with Keys", () => {
|
|
221
|
-
it("should render loading for specific key when pending", () => {
|
|
222
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
223
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
224
|
-
}));
|
|
225
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
226
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
227
|
-
generationStatusMessage: "",
|
|
228
|
-
isIdle: false,
|
|
229
|
-
});
|
|
230
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
231
|
-
component: createMockComponent({
|
|
232
|
-
name: "Partial",
|
|
233
|
-
age: 25,
|
|
234
|
-
}),
|
|
235
|
-
}));
|
|
236
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
237
|
-
React.createElement(TamboPropStreamProvider.Streaming, { streamKey: "name" },
|
|
238
|
-
React.createElement("div", { "data-testid": "name-loading" }, "Name Loading...")),
|
|
239
|
-
React.createElement(TamboPropStreamProvider.Streaming, { streamKey: "age" },
|
|
240
|
-
React.createElement("div", { "data-testid": "age-loading" }, "Age Loading...")),
|
|
241
|
-
React.createElement(TamboPropStreamProvider.Success, { streamKey: "name" },
|
|
242
|
-
React.createElement("div", { "data-testid": "name-complete" }, "Name Complete!"))));
|
|
243
|
-
// Both props should be loading since they're in streaming stage
|
|
244
|
-
expect(screen.getByTestId("name-loading")).toBeInTheDocument();
|
|
245
|
-
expect(screen.getByTestId("age-loading")).toBeInTheDocument();
|
|
246
|
-
expect(screen.queryByTestId("name-complete")).not.toBeInTheDocument();
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
describe("Styling", () => {
|
|
250
|
-
it("should apply className to loading component", () => {
|
|
251
|
-
jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext({
|
|
252
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
253
|
-
}));
|
|
254
|
-
jest.mocked(useTamboGenerationStage).mockReturnValue({
|
|
255
|
-
generationStage: GenerationStage.STREAMING_RESPONSE,
|
|
256
|
-
generationStatusMessage: "",
|
|
257
|
-
isIdle: false,
|
|
258
|
-
});
|
|
259
|
-
jest.mocked(useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
260
|
-
component: createMockComponent({ title: "Partial" }),
|
|
261
|
-
}));
|
|
262
|
-
render(React.createElement(TamboPropStreamProvider, null,
|
|
263
|
-
React.createElement(TamboPropStreamProvider.Streaming, { className: "loading-class" },
|
|
264
|
-
React.createElement("div", { "data-testid": "loading" }, "Loading..."))));
|
|
265
|
-
const loadingElement = screen.getByTestId("loading").parentElement;
|
|
266
|
-
expect(loadingElement).toHaveClass("loading-class");
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
});
|
|
270
|
-
//# sourceMappingURL=tambo-prop-stream-provider.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-prop-stream-provider.test.js","sourceRoot":"","sources":["../../src/providers/tambo-prop-stream-provider.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,eAAe,GAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEL,uBAAuB,EACvB,cAAc,GACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,cAAc,GACf,MAAM,8BAA8B,CAAC;AAEtC,8BAA8B;AAC9B,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;IACzB,uBAAuB,EAAE,IAAI,CAAC,EAAE,EAAE;CACnC,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE;CAClC,CAAC,CAAC,CAAC;AAEJ,4BAA4B;AAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;AAErC,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,CAAC,QAAiC,EAAE,EAAO,EAAE,CAAC,CAAC;IACzE,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,qBAAqB;IAC9B,KAAK;IACL,SAAS,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AAEH,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,CACxB,YAAyC,EAAE,EACvB,EAAE,CAAC,CAAC;IACxB,EAAE,EAAE,cAAc;IAClB,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACjD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACnC,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,aAAa;IACvB,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,iEAAiE;AACjE,MAAM,uBAAuB,GAAG,CAC9B,YAAsD,EAAE,EACvB,EAAE;IACnC,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,aAAa;QACjB,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,OAAO;QACL,qCAAqC;QACrC,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,UAAU,CAAC,EAAE;QAC9B,aAAa,EAAE,UAAU;QACzB,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE;QAC1C,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;QACvB,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC9B,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;QACzB,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC3B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC3B,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC9B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACjB,SAAS,EAAE,KAAK;QAChB,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC5B,yCAAyC;QACzC,eAAe,EAAE,eAAe,CAAC,IAAI;QACrC,uBAAuB,EAAE,EAAE;QAC3B,MAAM,EAAE,IAAI;QACZ,GAAG,SAAS;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,sCAAsC;AACtC,MAAM,iBAAiB,GAAmC,CAAC,EACzD,OAAO,GAAG,SAAS,GACpB,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,cAAc,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,CACL;QACE,4CAAiB,eAAe,IAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAO;QACrE,4CAAiB,YAAY,IAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAO,CACxD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,GAAG,EAAE;QACd,uCAAuC;QACvC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;QAE/B,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;YACnD,eAAe,EAAE,eAAe,CAAC,IAAI;YACrC,uBAAuB,EAAE,EAAE;YAC3B,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CAAC;YAClD,EAAE,EAAE,cAAc;YAClB,SAAS,EAAE;gBACT,KAAK,EAAE,EAAE;aACV;SACoB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,uCAAuC;YACvC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;YACpC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAE1B,MAAM,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,oBAAC,iBAAiB,OAAG,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC,OAAO,CACR,8DAA8D,CAC/D,CAAC;YAEF,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACnC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;gBACxD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;oBACtB,eAAe,EAAE,eAAe,CAAC,IAAI;iBACtC,CAAC,CACH,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;oBACnD,eAAe,EAAE,eAAe,CAAC,IAAI;oBACrC,uBAAuB,EAAE,EAAE;oBAC3B,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;oBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBAC9C,CAAC,CACH,CAAC;gBAEF,MAAM,CACJ,oBAAC,uBAAuB;oBACtB,oBAAC,uBAAuB,CAAC,SAAS;wBAChC,4CAAiB,SAAS,iBAAiB,CACT,CACZ,CAC3B,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;oBACtB,eAAe,EAAE,eAAe,CAAC,kBAAkB;iBACpD,CAAC,CACH,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;oBACnD,eAAe,EAAE,eAAe,CAAC,kBAAkB;oBACnD,uBAAuB,EAAE,EAAE;oBAC3B,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;oBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;iBACrD,CAAC,CACH,CAAC;gBAEF,MAAM,CACJ,oBAAC,uBAAuB;oBACtB,oBAAC,uBAAuB,CAAC,SAAS;wBAChC,4CAAiB,SAAS,iBAAiB,CACT,CACZ,CAC3B,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;gBAC3D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;oBACtB,eAAe,EAAE,eAAe,CAAC,IAAI;iBACtC,CAAC,CACH,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;oBACnD,eAAe,EAAE,eAAe,CAAC,IAAI;oBACrC,uBAAuB,EAAE,EAAE;oBAC3B,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;oBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBAC9C,CAAC,CACH,CAAC;gBAEF,MAAM,CACJ,oBAAC,uBAAuB;oBACtB,oBAAC,uBAAuB,CAAC,OAAO;wBAC9B,4CAAiB,UAAU,gBAAgB,CACX,CACV,CAC3B,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACrD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;oBACtB,eAAe,EAAE,eAAe,CAAC,IAAI;iBACtC,CAAC,CACH,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;oBACnD,eAAe,EAAE,eAAe,CAAC,IAAI;oBACrC,uBAAuB,EAAE,EAAE;oBAC3B,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;oBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;iBAC9C,CAAC,CACH,CAAC;gBAEF,MAAM,CACJ,oBAAC,uBAAuB;oBACtB,oBAAC,uBAAuB,CAAC,OAAO;wBAC9B,4CAAiB,OAAO,aAAa,CACL,CACV,CAC3B,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;oBACtB,eAAe,EAAE,eAAe,CAAC,kBAAkB;iBACpD,CAAC,CACH,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;oBACnD,eAAe,EAAE,eAAe,CAAC,kBAAkB;oBACnD,uBAAuB,EAAE,EAAE;oBAC3B,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;oBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;iBACrD,CAAC,CACH,CAAC;gBAEF,MAAM,CACJ,oBAAC,uBAAuB;oBACtB,oBAAC,uBAAuB,CAAC,OAAO;wBAC9B,4CAAiB,OAAO,aAAa,CACL,CACV,CAC3B,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;gBACtB,eAAe,EAAE,eAAe,CAAC,QAAQ;aAC1C,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;gBACnD,eAAe,EAAE,eAAe,CAAC,QAAQ;gBACzC,uBAAuB,EAAE,EAAE;gBAC3B,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;gBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aACjD,CAAC,CACH,CAAC;YAEF,MAAM,CACJ,oBAAC,uBAAuB;gBACtB,oBAAC,iBAAiB,IAAC,OAAO,EAAC,aAAa,GAAG,CACnB,CAC3B,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,WAAW,CAC7C,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;gBACtB,eAAe,EAAE,eAAe,CAAC,kBAAkB;aACpD,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;gBACnD,eAAe,EAAE,eAAe,CAAC,kBAAkB;gBACnD,uBAAuB,EAAE,EAAE;gBAC3B,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;gBAChB,SAAS,EAAE,mBAAmB,CAAC;oBAC7B,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,EAAE;iBACR,CAAC;aACH,CAAC,CACH,CAAC;YAEF,MAAM,CACJ,oBAAC,uBAAuB;gBACtB,oBAAC,uBAAuB,CAAC,SAAS,IAAC,SAAS,EAAC,MAAM;oBACjD,4CAAiB,cAAc,sBAAsB,CACnB;gBACpC,oBAAC,uBAAuB,CAAC,SAAS,IAAC,SAAS,EAAC,KAAK;oBAChD,4CAAiB,aAAa,qBAAqB,CACjB;gBACpC,oBAAC,uBAAuB,CAAC,OAAO,IAAC,SAAS,EAAC,MAAM;oBAC/C,4CAAiB,eAAe,qBAAqB,CACrB,CACV,CAC3B,CAAC;YAEF,gEAAgE;YAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CACzC,uBAAuB,CAAC;gBACtB,eAAe,EAAE,eAAe,CAAC,kBAAkB;aACpD,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,eAAe,CAAC;gBACnD,eAAe,EAAE,eAAe,CAAC,kBAAkB;gBACnD,uBAAuB,EAAE,EAAE;gBAC3B,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,eAAe,CACjD,iBAAiB,CAAC;gBAChB,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aACrD,CAAC,CACH,CAAC;YAEF,MAAM,CACJ,oBAAC,uBAAuB;gBACtB,oBAAC,uBAAuB,CAAC,SAAS,IAAC,SAAS,EAAC,eAAe;oBAC1D,4CAAiB,SAAS,iBAAiB,CACT,CACZ,CAC3B,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YACnE,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { render, screen } from \"@testing-library/react\";\nimport React from \"react\";\nimport { useTamboCurrentMessage } from \"../hooks/use-current-message\";\nimport {\n GenerationStage,\n TamboThreadMessage,\n} from \"../model/generate-component-response\";\nimport {\n CombinedTamboThreadContextProps,\n useTamboGenerationStage,\n useTamboThread,\n} from \"../providers/tambo-thread-provider\";\nimport {\n TamboPropStreamProvider,\n useTamboStream,\n} from \"./tambo-prop-stream-provider\";\n\n// Mock the required providers\njest.mock(\"../providers/tambo-thread-provider\", () => ({\n useTamboThread: jest.fn(),\n useTamboGenerationStage: jest.fn(),\n}));\n\njest.mock(\"../hooks/use-current-message\", () => ({\n useTamboCurrentMessage: jest.fn(),\n}));\n\n// Mock window for SSR tests\nconst originalWindow = global.window;\n\n// Helper function to create mock ComponentDecisionV2\nconst createMockComponent = (props: Record<string, unknown> = {}): any => ({\n componentName: \"TestComponent\",\n componentState: {},\n message: \"Component generated\",\n props,\n reasoning: \"Test reasoning\",\n});\n\n// Helper function to create mock TamboThreadMessage\nconst createMockMessage = (\n overrides: Partial<TamboThreadMessage> = {},\n): TamboThreadMessage => ({\n id: \"test-message\",\n componentState: {},\n content: [{ type: \"text\", text: \"test content\" }],\n createdAt: new Date().toISOString(),\n role: \"assistant\",\n threadId: \"test-thread\",\n ...overrides,\n});\n\n// Helper function to create mock CombinedTamboThreadContextProps\nconst createMockThreadContext = (\n overrides: Partial<CombinedTamboThreadContextProps> = {},\n): CombinedTamboThreadContextProps => {\n const mockThread = {\n id: \"test-thread\",\n projectId: \"test-project\",\n messages: [],\n name: \"Test Thread\",\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n };\n return {\n // TamboThreadContextProps properties\n thread: mockThread,\n currentThreadId: mockThread.id,\n currentThread: mockThread,\n threadMap: { [mockThread.id]: mockThread },\n setThreadMap: jest.fn(),\n switchCurrentThread: jest.fn(),\n startNewThread: jest.fn(),\n updateThreadName: jest.fn(),\n generateThreadName: jest.fn(),\n addThreadMessage: jest.fn(),\n updateThreadMessage: jest.fn(),\n cancel: jest.fn(),\n streaming: false,\n sendThreadMessage: jest.fn(),\n // GenerationStageContextProps properties\n generationStage: GenerationStage.IDLE,\n generationStatusMessage: \"\",\n isIdle: true,\n ...overrides,\n };\n};\n\n// Helper component to test hook usage\nconst TestHookComponent: React.FC<{ testKey?: string }> = ({\n testKey = \"default\",\n}) => {\n const { streamStatus, getStatusForKey } = useTamboStream();\n const status = getStatusForKey(testKey);\n\n return (\n <div>\n <div data-testid=\"stream-status\">{JSON.stringify(streamStatus)}</div>\n <div data-testid=\"key-status\">{JSON.stringify(status)}</div>\n </div>\n );\n};\n\ndescribe(\"TamboPropStreamProvider\", () => {\n beforeEach(() => {\n // Restore window for client-side tests\n global.window = originalWindow;\n\n // Default mock implementations\n jest.mocked(useTamboThread).mockReturnValue(createMockThreadContext());\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.IDLE,\n generationStatusMessage: \"\",\n isIdle: true,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue({\n id: \"test-message\",\n component: {\n props: {},\n },\n } as TamboThreadMessage);\n });\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n describe(\"Hook Error Handling\", () => {\n it(\"should throw error when useTamboStream is used outside provider\", () => {\n // Suppress console.error for this test\n const originalError = console.error;\n console.error = jest.fn();\n\n expect(() => {\n render(<TestHookComponent />);\n }).toThrow(\n \"useTamboStream must be used within a TamboPropStreamProvider\",\n );\n\n console.error = originalError;\n });\n });\n\n describe(\"Compound Components\", () => {\n describe(\"Streaming Component\", () => {\n it(\"should render streaming when isPending is true\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.IDLE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.IDLE,\n generationStatusMessage: \"\",\n isIdle: true,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ title: \"\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Streaming>\n <div data-testid=\"loading\">Loading...</div>\n </TamboPropStreamProvider.Streaming>\n </TamboPropStreamProvider>,\n );\n\n expect(screen.getByTestId(\"loading\")).toBeInTheDocument();\n });\n\n it(\"should render streaming when isStreaming is true\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n generationStatusMessage: \"\",\n isIdle: false,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ title: \"Partial\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Streaming>\n <div data-testid=\"loading\">Loading...</div>\n </TamboPropStreamProvider.Streaming>\n </TamboPropStreamProvider>,\n );\n\n expect(screen.getByTestId(\"loading\")).toBeInTheDocument();\n });\n });\n\n describe(\"Success Component\", () => {\n it(\"should not render success when isSuccess is false\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.IDLE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.IDLE,\n generationStatusMessage: \"\",\n isIdle: true,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ title: \"\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Success>\n <div data-testid=\"complete\">Complete!</div>\n </TamboPropStreamProvider.Success>\n </TamboPropStreamProvider>,\n );\n\n expect(screen.queryByTestId(\"complete\")).not.toBeInTheDocument();\n });\n });\n\n describe(\"Pending Component\", () => {\n it(\"should render pending when no active status\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.IDLE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.IDLE,\n generationStatusMessage: \"\",\n isIdle: true,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ title: \"\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Pending>\n <div data-testid=\"empty\">Empty!</div>\n </TamboPropStreamProvider.Pending>\n </TamboPropStreamProvider>,\n );\n\n expect(screen.getByTestId(\"empty\")).toBeInTheDocument();\n });\n\n it(\"should not render pending when isPending is true\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n generationStatusMessage: \"\",\n isIdle: false,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ title: \"Partial\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Pending>\n <div data-testid=\"empty\">Empty!</div>\n </TamboPropStreamProvider.Pending>\n </TamboPropStreamProvider>,\n );\n\n expect(screen.queryByTestId(\"empty\")).not.toBeInTheDocument();\n });\n });\n });\n\n describe(\"Key-based Status\", () => {\n it(\"should provide status for keys not in propStatus\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.COMPLETE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.COMPLETE,\n generationStatusMessage: \"\",\n isIdle: false,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ name: \"John\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TestHookComponent testKey=\"nonexistent\" />\n </TamboPropStreamProvider>,\n );\n\n const keyStatus = JSON.parse(\n screen.getByTestId(\"key-status\").textContent,\n );\n expect(keyStatus.isPending).toBe(true);\n });\n });\n\n describe(\"Compound Components with Keys\", () => {\n it(\"should render loading for specific key when pending\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n generationStatusMessage: \"\",\n isIdle: false,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({\n name: \"Partial\",\n age: 25,\n }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Streaming streamKey=\"name\">\n <div data-testid=\"name-loading\">Name Loading...</div>\n </TamboPropStreamProvider.Streaming>\n <TamboPropStreamProvider.Streaming streamKey=\"age\">\n <div data-testid=\"age-loading\">Age Loading...</div>\n </TamboPropStreamProvider.Streaming>\n <TamboPropStreamProvider.Success streamKey=\"name\">\n <div data-testid=\"name-complete\">Name Complete!</div>\n </TamboPropStreamProvider.Success>\n </TamboPropStreamProvider>,\n );\n\n // Both props should be loading since they're in streaming stage\n expect(screen.getByTestId(\"name-loading\")).toBeInTheDocument();\n expect(screen.getByTestId(\"age-loading\")).toBeInTheDocument();\n expect(screen.queryByTestId(\"name-complete\")).not.toBeInTheDocument();\n });\n });\n\n describe(\"Styling\", () => {\n it(\"should apply className to loading component\", () => {\n jest.mocked(useTamboThread).mockReturnValue(\n createMockThreadContext({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n }),\n );\n\n jest.mocked(useTamboGenerationStage).mockReturnValue({\n generationStage: GenerationStage.STREAMING_RESPONSE,\n generationStatusMessage: \"\",\n isIdle: false,\n });\n\n jest.mocked(useTamboCurrentMessage).mockReturnValue(\n createMockMessage({\n component: createMockComponent({ title: \"Partial\" }),\n }),\n );\n\n render(\n <TamboPropStreamProvider>\n <TamboPropStreamProvider.Streaming className=\"loading-class\">\n <div data-testid=\"loading\">Loading...</div>\n </TamboPropStreamProvider.Streaming>\n </TamboPropStreamProvider>,\n );\n\n const loadingElement = screen.getByTestId(\"loading\").parentElement;\n expect(loadingElement).toHaveClass(\"loading-class\");\n });\n });\n});\n"]}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import React, { PropsWithChildren } from "react";
|
|
2
|
-
import { TamboInteractableContext } from "../model/tambo-interactable.js";
|
|
3
|
-
import { TamboClientContextProps, TamboClientProviderProps } from "./tambo-client-provider.js";
|
|
4
|
-
import { TamboComponentContextProps } from "./tambo-component-provider.js";
|
|
5
|
-
import { ContextAttachmentState } from "./tambo-context-attachment-provider.js";
|
|
6
|
-
import { TamboContextHelpersContextProps, TamboContextHelpersProviderProps } from "./tambo-context-helpers-provider.js";
|
|
7
|
-
import { TamboRegistryProviderProps } from "./tambo-registry-provider.js";
|
|
8
|
-
import { TamboGenerationStageContextProps, TamboThreadContextProps, TamboThreadProviderProps } from "./tambo-thread-provider.js";
|
|
9
|
-
/**
|
|
10
|
-
* The TamboProvider gives full access to the whole Tambo API. This includes the
|
|
11
|
-
* TamboAI client, the component registry, the current thread context, and interactable components.
|
|
12
|
-
* @param props - The props for the TamboProvider
|
|
13
|
-
* @param props.children - The children to wrap
|
|
14
|
-
* @param props.tamboUrl - The URL of the Tambo API
|
|
15
|
-
* @param props.apiKey - The API key for the Tambo API
|
|
16
|
-
* @param props.components - The components to register
|
|
17
|
-
* @param props.environment - The environment to use for the Tambo API
|
|
18
|
-
* @param props.tools - The tools to register
|
|
19
|
-
* @param props.mcpServers - The MCP servers to register (metadata only - use TamboMcpProvider for connections)
|
|
20
|
-
* @param props.streaming - Whether to stream the response by default. Defaults to true.
|
|
21
|
-
* @param props.autoGenerateThreadName - Whether to automatically generate thread names. Defaults to true.
|
|
22
|
-
* @param props.autoGenerateNameThreshold - The message count threshold at which the thread name will be auto-generated. Defaults to 3.
|
|
23
|
-
* @param props.contextHelpers - Configuration for which context helpers are enabled/disabled
|
|
24
|
-
* @param props.userToken - The user's OAuth token (access or ID) used to identify the user and exchange for a Tambo session token
|
|
25
|
-
* @param props.contextKey - Optional context key passed to thread input provider for scoping threads
|
|
26
|
-
* @param props.onCallUnregisteredTool - Callback function called when an unregistered tool is called
|
|
27
|
-
* @param props.initialMessages - Initial messages to be included in new threads
|
|
28
|
-
* @param props.getResource - Optional getResource function for registry resources
|
|
29
|
-
* @param props.listResources - Optional listResources function for registry resources
|
|
30
|
-
* @param props.resources - Optional static resources for the registry
|
|
31
|
-
* @returns The TamboProvider component
|
|
32
|
-
*/
|
|
33
|
-
export declare const TamboProvider: React.FC<PropsWithChildren<TamboClientProviderProps & TamboRegistryProviderProps & TamboThreadProviderProps & TamboContextHelpersProviderProps>>;
|
|
34
|
-
export type TamboContextProps = TamboClientContextProps & TamboThreadContextProps & TamboGenerationStageContextProps & TamboComponentContextProps & TamboInteractableContext & TamboContextHelpersContextProps & ContextAttachmentState;
|
|
35
|
-
export declare const TamboContext: React.Context<TamboContextProps>;
|
|
36
|
-
/**
|
|
37
|
-
* TamboCompositeProvider is a provider that combines the TamboClient,
|
|
38
|
-
* TamboThread, TamboComponent, and TamboInteractable providers
|
|
39
|
-
* @param props - The props for the TamboCompositeProvider
|
|
40
|
-
* @param props.children - The children to wrap
|
|
41
|
-
* @returns The wrapped component
|
|
42
|
-
*/
|
|
43
|
-
export declare const TamboCompositeProvider: React.FC<PropsWithChildren>;
|
|
44
|
-
/**
|
|
45
|
-
* The useTambo hook provides access to the Tambo API. This is the primary entrypoint
|
|
46
|
-
* for the Tambo React SDK.
|
|
47
|
-
*
|
|
48
|
-
* This includes the TamboAI client, the component registry, the current thread context,
|
|
49
|
-
* and interactable component management.
|
|
50
|
-
* @returns The Tambo API
|
|
51
|
-
*/
|
|
52
|
-
export declare const useTambo: () => TamboContextProps;
|
|
53
|
-
//# sourceMappingURL=tambo-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-provider.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAA6B,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAEL,uBAAuB,EAEvB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,0BAA0B,EAG3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EAGvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,+BAA+B,EAE/B,gCAAgC,EAEjC,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAEL,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EAEvB,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAClC,iBAAiB,CACf,wBAAwB,GACtB,0BAA0B,GAC1B,wBAAwB,GACxB,gCAAgC,CACnC,CAiEF,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GACrD,uBAAuB,GACvB,gCAAgC,GAChC,0BAA0B,GAC1B,wBAAwB,GACxB,+BAA+B,GAC/B,sBAAsB,CAAC;AAEzB,eAAO,MAAM,YAAY,kCAExB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0C9D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,yBAEpB,CAAC"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import React, { createContext, useContext } from "react";
|
|
3
|
-
import { TamboMcpProvider } from "../mcp/tambo-mcp-provider.js";
|
|
4
|
-
import { TamboClientContext, TamboClientProvider, } from "./tambo-client-provider.js";
|
|
5
|
-
import { TamboComponentProvider, useTamboComponent, } from "./tambo-component-provider.js";
|
|
6
|
-
import { TamboContextAttachmentProvider, useTamboContextAttachment, } from "./tambo-context-attachment-provider.js";
|
|
7
|
-
import { TamboContextHelpersProvider, useTamboContextHelpers, } from "./tambo-context-helpers-provider.js";
|
|
8
|
-
import { TamboInteractableProvider, useTamboInteractable, } from "./tambo-interactable-provider.js";
|
|
9
|
-
import { TamboMcpTokenProvider } from "./tambo-mcp-token-provider.js";
|
|
10
|
-
import { TamboRegistryProvider, } from "./tambo-registry-provider.js";
|
|
11
|
-
import { TamboThreadInputProvider } from "./tambo-thread-input-provider.js";
|
|
12
|
-
import { TamboThreadProvider, useTamboThread, } from "./tambo-thread-provider.js";
|
|
13
|
-
/**
|
|
14
|
-
* The TamboProvider gives full access to the whole Tambo API. This includes the
|
|
15
|
-
* TamboAI client, the component registry, the current thread context, and interactable components.
|
|
16
|
-
* @param props - The props for the TamboProvider
|
|
17
|
-
* @param props.children - The children to wrap
|
|
18
|
-
* @param props.tamboUrl - The URL of the Tambo API
|
|
19
|
-
* @param props.apiKey - The API key for the Tambo API
|
|
20
|
-
* @param props.components - The components to register
|
|
21
|
-
* @param props.environment - The environment to use for the Tambo API
|
|
22
|
-
* @param props.tools - The tools to register
|
|
23
|
-
* @param props.mcpServers - The MCP servers to register (metadata only - use TamboMcpProvider for connections)
|
|
24
|
-
* @param props.streaming - Whether to stream the response by default. Defaults to true.
|
|
25
|
-
* @param props.autoGenerateThreadName - Whether to automatically generate thread names. Defaults to true.
|
|
26
|
-
* @param props.autoGenerateNameThreshold - The message count threshold at which the thread name will be auto-generated. Defaults to 3.
|
|
27
|
-
* @param props.contextHelpers - Configuration for which context helpers are enabled/disabled
|
|
28
|
-
* @param props.userToken - The user's OAuth token (access or ID) used to identify the user and exchange for a Tambo session token
|
|
29
|
-
* @param props.contextKey - Optional context key passed to thread input provider for scoping threads
|
|
30
|
-
* @param props.onCallUnregisteredTool - Callback function called when an unregistered tool is called
|
|
31
|
-
* @param props.initialMessages - Initial messages to be included in new threads
|
|
32
|
-
* @param props.getResource - Optional getResource function for registry resources
|
|
33
|
-
* @param props.listResources - Optional listResources function for registry resources
|
|
34
|
-
* @param props.resources - Optional static resources for the registry
|
|
35
|
-
* @returns The TamboProvider component
|
|
36
|
-
*/
|
|
37
|
-
export const TamboProvider = ({ children, tamboUrl, apiKey, userToken, components, environment, tools, mcpServers, streaming, autoGenerateThreadName, autoGenerateNameThreshold, contextHelpers, contextKey, initialMessages, onCallUnregisteredTool, getResource, listResources, resources, }) => {
|
|
38
|
-
return (React.createElement(TamboClientProvider, { tamboUrl: tamboUrl, apiKey: apiKey, environment: environment, userToken: userToken },
|
|
39
|
-
React.createElement(TamboRegistryProvider, { components: components, tools: tools, mcpServers: mcpServers, onCallUnregisteredTool: onCallUnregisteredTool, getResource: getResource, listResources: listResources, resources: resources },
|
|
40
|
-
React.createElement(TamboContextHelpersProvider, { contextHelpers: contextHelpers },
|
|
41
|
-
React.createElement(TamboThreadProvider, { contextKey: contextKey, streaming: streaming, autoGenerateThreadName: autoGenerateThreadName, autoGenerateNameThreshold: autoGenerateNameThreshold, initialMessages: initialMessages },
|
|
42
|
-
React.createElement(TamboMcpTokenProvider, null,
|
|
43
|
-
React.createElement(TamboMcpProvider, { contextKey: contextKey },
|
|
44
|
-
React.createElement(TamboContextAttachmentProvider, null,
|
|
45
|
-
React.createElement(TamboComponentProvider, null,
|
|
46
|
-
React.createElement(TamboInteractableProvider, null,
|
|
47
|
-
React.createElement(TamboThreadInputProvider, null,
|
|
48
|
-
React.createElement(TamboCompositeProvider, null, children))))))))))));
|
|
49
|
-
};
|
|
50
|
-
export const TamboContext = createContext({});
|
|
51
|
-
/**
|
|
52
|
-
* TamboCompositeProvider is a provider that combines the TamboClient,
|
|
53
|
-
* TamboThread, TamboComponent, and TamboInteractable providers
|
|
54
|
-
* @param props - The props for the TamboCompositeProvider
|
|
55
|
-
* @param props.children - The children to wrap
|
|
56
|
-
* @returns The wrapped component
|
|
57
|
-
*/
|
|
58
|
-
export const TamboCompositeProvider = ({ children, }) => {
|
|
59
|
-
const threads = useTamboThread();
|
|
60
|
-
const clientContext = useContext(TamboClientContext);
|
|
61
|
-
if (!clientContext) {
|
|
62
|
-
throw new Error("TamboCompositeProvider must be used within a TamboClientProvider");
|
|
63
|
-
}
|
|
64
|
-
const { client, queryClient, isUpdatingToken, tokenExchangeError, userToken, hasValidToken, } = clientContext;
|
|
65
|
-
const componentRegistry = useTamboComponent();
|
|
66
|
-
const interactableComponents = useTamboInteractable();
|
|
67
|
-
const contextHelpers = useTamboContextHelpers();
|
|
68
|
-
const contextAttachment = useTamboContextAttachment();
|
|
69
|
-
return (React.createElement(TamboContext.Provider, { value: {
|
|
70
|
-
client,
|
|
71
|
-
queryClient,
|
|
72
|
-
isUpdatingToken,
|
|
73
|
-
tokenExchangeError,
|
|
74
|
-
userToken,
|
|
75
|
-
hasValidToken,
|
|
76
|
-
...componentRegistry,
|
|
77
|
-
...threads,
|
|
78
|
-
...interactableComponents,
|
|
79
|
-
...contextHelpers,
|
|
80
|
-
...contextAttachment,
|
|
81
|
-
} }, children));
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* The useTambo hook provides access to the Tambo API. This is the primary entrypoint
|
|
85
|
-
* for the Tambo React SDK.
|
|
86
|
-
*
|
|
87
|
-
* This includes the TamboAI client, the component registry, the current thread context,
|
|
88
|
-
* and interactable component management.
|
|
89
|
-
* @returns The Tambo API
|
|
90
|
-
*/
|
|
91
|
-
export const useTambo = () => {
|
|
92
|
-
return useContext(TamboContext);
|
|
93
|
-
};
|
|
94
|
-
//# sourceMappingURL=tambo-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-provider.js","sourceRoot":"","sources":["../../src/providers/tambo-provider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\nimport React, { PropsWithChildren, createContext, useContext } from \"react\";\nimport { TamboMcpProvider } from \"../mcp/tambo-mcp-provider\";\nimport { TamboInteractableContext } from \"../model/tambo-interactable\";\nimport {\n TamboClientContext,\n TamboClientContextProps,\n TamboClientProvider,\n TamboClientProviderProps,\n} from \"./tambo-client-provider\";\nimport {\n TamboComponentContextProps,\n TamboComponentProvider,\n useTamboComponent,\n} from \"./tambo-component-provider\";\nimport {\n ContextAttachmentState,\n TamboContextAttachmentProvider,\n useTamboContextAttachment,\n} from \"./tambo-context-attachment-provider\";\nimport {\n TamboContextHelpersContextProps,\n TamboContextHelpersProvider,\n TamboContextHelpersProviderProps,\n useTamboContextHelpers,\n} from \"./tambo-context-helpers-provider\";\nimport {\n TamboInteractableProvider,\n useTamboInteractable,\n} from \"./tambo-interactable-provider\";\nimport { TamboMcpTokenProvider } from \"./tambo-mcp-token-provider\";\nimport {\n TamboRegistryProvider,\n TamboRegistryProviderProps,\n} from \"./tambo-registry-provider\";\nimport { TamboThreadInputProvider } from \"./tambo-thread-input-provider\";\nimport {\n TamboGenerationStageContextProps,\n TamboThreadContextProps,\n TamboThreadProvider,\n TamboThreadProviderProps,\n useTamboThread,\n} from \"./tambo-thread-provider\";\n\n/**\n * The TamboProvider gives full access to the whole Tambo API. This includes the\n * TamboAI client, the component registry, the current thread context, and interactable components.\n * @param props - The props for the TamboProvider\n * @param props.children - The children to wrap\n * @param props.tamboUrl - The URL of the Tambo API\n * @param props.apiKey - The API key for the Tambo API\n * @param props.components - The components to register\n * @param props.environment - The environment to use for the Tambo API\n * @param props.tools - The tools to register\n * @param props.mcpServers - The MCP servers to register (metadata only - use TamboMcpProvider for connections)\n * @param props.streaming - Whether to stream the response by default. Defaults to true.\n * @param props.autoGenerateThreadName - Whether to automatically generate thread names. Defaults to true.\n * @param props.autoGenerateNameThreshold - The message count threshold at which the thread name will be auto-generated. Defaults to 3.\n * @param props.contextHelpers - Configuration for which context helpers are enabled/disabled\n * @param props.userToken - The user's OAuth token (access or ID) used to identify the user and exchange for a Tambo session token\n * @param props.contextKey - Optional context key passed to thread input provider for scoping threads\n * @param props.onCallUnregisteredTool - Callback function called when an unregistered tool is called\n * @param props.initialMessages - Initial messages to be included in new threads\n * @param props.getResource - Optional getResource function for registry resources\n * @param props.listResources - Optional listResources function for registry resources\n * @param props.resources - Optional static resources for the registry\n * @returns The TamboProvider component\n */\nexport const TamboProvider: React.FC<\n PropsWithChildren<\n TamboClientProviderProps &\n TamboRegistryProviderProps &\n TamboThreadProviderProps &\n TamboContextHelpersProviderProps\n >\n> = ({\n children,\n tamboUrl,\n apiKey,\n userToken,\n components,\n environment,\n tools,\n mcpServers,\n streaming,\n autoGenerateThreadName,\n autoGenerateNameThreshold,\n contextHelpers,\n contextKey,\n initialMessages,\n onCallUnregisteredTool,\n getResource,\n listResources,\n resources,\n}) => {\n return (\n <TamboClientProvider\n tamboUrl={tamboUrl}\n apiKey={apiKey}\n environment={environment}\n userToken={userToken}\n >\n <TamboRegistryProvider\n components={components}\n tools={tools}\n mcpServers={mcpServers}\n onCallUnregisteredTool={onCallUnregisteredTool}\n getResource={getResource}\n listResources={listResources}\n resources={resources}\n >\n <TamboContextHelpersProvider contextHelpers={contextHelpers}>\n <TamboThreadProvider\n contextKey={contextKey}\n streaming={streaming}\n autoGenerateThreadName={autoGenerateThreadName}\n autoGenerateNameThreshold={autoGenerateNameThreshold}\n initialMessages={initialMessages}\n >\n <TamboMcpTokenProvider>\n <TamboMcpProvider contextKey={contextKey}>\n <TamboContextAttachmentProvider>\n <TamboComponentProvider>\n <TamboInteractableProvider>\n <TamboThreadInputProvider>\n <TamboCompositeProvider>\n {children}\n </TamboCompositeProvider>\n </TamboThreadInputProvider>\n </TamboInteractableProvider>\n </TamboComponentProvider>\n </TamboContextAttachmentProvider>\n </TamboMcpProvider>\n </TamboMcpTokenProvider>\n </TamboThreadProvider>\n </TamboContextHelpersProvider>\n </TamboRegistryProvider>\n </TamboClientProvider>\n );\n};\n\nexport type TamboContextProps = TamboClientContextProps &\n TamboThreadContextProps &\n TamboGenerationStageContextProps &\n TamboComponentContextProps &\n TamboInteractableContext &\n TamboContextHelpersContextProps &\n ContextAttachmentState;\n\nexport const TamboContext = createContext<TamboContextProps>(\n {} as TamboContextProps,\n);\n\n/**\n * TamboCompositeProvider is a provider that combines the TamboClient,\n * TamboThread, TamboComponent, and TamboInteractable providers\n * @param props - The props for the TamboCompositeProvider\n * @param props.children - The children to wrap\n * @returns The wrapped component\n */\nexport const TamboCompositeProvider: React.FC<PropsWithChildren> = ({\n children,\n}) => {\n const threads = useTamboThread();\n const clientContext = useContext(TamboClientContext);\n if (!clientContext) {\n throw new Error(\n \"TamboCompositeProvider must be used within a TamboClientProvider\",\n );\n }\n const {\n client,\n queryClient,\n isUpdatingToken,\n tokenExchangeError,\n userToken,\n hasValidToken,\n } = clientContext;\n const componentRegistry = useTamboComponent();\n const interactableComponents = useTamboInteractable();\n const contextHelpers = useTamboContextHelpers();\n const contextAttachment = useTamboContextAttachment();\n\n return (\n <TamboContext.Provider\n value={{\n client,\n queryClient,\n isUpdatingToken,\n tokenExchangeError,\n userToken,\n hasValidToken,\n ...componentRegistry,\n ...threads,\n ...interactableComponents,\n ...contextHelpers,\n ...contextAttachment,\n }}\n >\n {children}\n </TamboContext.Provider>\n );\n};\n\n/**\n * The useTambo hook provides access to the Tambo API. This is the primary entrypoint\n * for the Tambo React SDK.\n *\n * This includes the TamboAI client, the component registry, the current thread context,\n * and interactable component management.\n * @returns The Tambo API\n */\nexport const useTambo = () => {\n return useContext(TamboContext);\n};\n"]}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import TamboAI from "@tambo-ai/typescript-sdk";
|
|
2
|
-
import React, { PropsWithChildren } from "react";
|
|
3
|
-
import { TamboComponent, TamboTool } from "../model/component-metadata.js";
|
|
4
|
-
import { TamboThread } from "../model/tambo-thread.js";
|
|
5
|
-
import { TamboContextHelpersProviderProps } from "./tambo-context-helpers-provider.js";
|
|
6
|
-
import { type TamboContextProps } from "./tambo-provider.js";
|
|
7
|
-
/**
|
|
8
|
-
* TamboStubProvider props - includes all the data that would normally be inferred
|
|
9
|
-
*/
|
|
10
|
-
export interface TamboStubProviderProps extends Partial<TamboContextProps> {
|
|
11
|
-
/** Required: The thread data to display */
|
|
12
|
-
thread: TamboThread;
|
|
13
|
-
/** Optional: Components registry - defaults to empty */
|
|
14
|
-
components?: TamboComponent[];
|
|
15
|
-
/** Optional: Tools registry - defaults to empty */
|
|
16
|
-
tools?: TamboTool[];
|
|
17
|
-
/** Optional: Threads data to populate thread list - overrides useTamboThreadList() */
|
|
18
|
-
threads?: Partial<TamboAI.Beta.Threads.ThreadsOffsetAndLimit>;
|
|
19
|
-
/** Optional: Project ID to use for query cache - defaults to thread.projectId */
|
|
20
|
-
projectId?: string;
|
|
21
|
-
/** Optional: Context key for thread list queries */
|
|
22
|
-
contextKey?: string;
|
|
23
|
-
/** Optional: Configuration for which context helpers are enabled/disabled */
|
|
24
|
-
contextHelpers?: TamboContextHelpersProviderProps["contextHelpers"];
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* The TamboStubProvider provides a way to use the Tambo API with static/stub data.
|
|
28
|
-
* This is useful for testing, samples, and static UI development.
|
|
29
|
-
*
|
|
30
|
-
* Unlike TamboProvider, all data must be provided as props rather than being inferred.
|
|
31
|
-
* @example
|
|
32
|
-
* ```tsx
|
|
33
|
-
* import { TamboStubProvider } from '@tambo-ai/react-sdk';
|
|
34
|
-
*
|
|
35
|
-
* const exampleThread = {
|
|
36
|
-
* id: "example-thread",
|
|
37
|
-
* messages: [
|
|
38
|
-
* {
|
|
39
|
-
* id: "msg-1",
|
|
40
|
-
* role: "user",
|
|
41
|
-
* content: [{ type: "text", text: "Hello!" }],
|
|
42
|
-
* createdAt: new Date().toISOString(),
|
|
43
|
-
* threadId: "example-thread",
|
|
44
|
-
* componentState: {},
|
|
45
|
-
* },
|
|
46
|
-
* {
|
|
47
|
-
* id: "msg-2",
|
|
48
|
-
* role: "assistant",
|
|
49
|
-
* content: [{ type: "text", text: "Hi there!" }],
|
|
50
|
-
* createdAt: new Date().toISOString(),
|
|
51
|
-
* threadId: "example-thread",
|
|
52
|
-
* componentState: {},
|
|
53
|
-
* }
|
|
54
|
-
* ],
|
|
55
|
-
* createdAt: new Date().toISOString(),
|
|
56
|
-
* projectId: "example-project",
|
|
57
|
-
* updatedAt: new Date().toISOString(),
|
|
58
|
-
* metadata: {},
|
|
59
|
-
* };
|
|
60
|
-
*
|
|
61
|
-
* const exampleThreadList = [exampleThread];
|
|
62
|
-
*
|
|
63
|
-
* function MyComponent() {
|
|
64
|
-
* return (
|
|
65
|
-
* <TamboStubProvider
|
|
66
|
-
* thread={exampleThread}
|
|
67
|
-
* components={[]}
|
|
68
|
-
* tools={[]}
|
|
69
|
-
* threads={exampleThreadList}
|
|
70
|
-
* projectId="example-project"
|
|
71
|
-
* >
|
|
72
|
-
* <MessageThreadFull />
|
|
73
|
-
* </TamboStubProvider>
|
|
74
|
-
* );
|
|
75
|
-
* }
|
|
76
|
-
* ```
|
|
77
|
-
* @param props - The props for the TamboStubProvider
|
|
78
|
-
* @param props.children - The children to wrap
|
|
79
|
-
* @param props.thread - The thread data to display
|
|
80
|
-
* @param props.components - Optional components registry
|
|
81
|
-
* @param props.tools - Optional tools registry
|
|
82
|
-
* @param props.threads - Optional threads data to populate thread list (overrides useTamboThreadList)
|
|
83
|
-
* @param props.projectId - Optional project ID for query cache (defaults to thread.projectId)
|
|
84
|
-
* @param props.contextKey - Optional context key for thread list queries
|
|
85
|
-
* @param props.contextHelpers - Optional configuration for which context helpers are enabled/disabled
|
|
86
|
-
* @returns The TamboStubProvider component
|
|
87
|
-
*/
|
|
88
|
-
export declare const TamboStubProvider: React.FC<PropsWithChildren<TamboStubProviderProps>>;
|
|
89
|
-
//# sourceMappingURL=tambo-stubs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-stubs.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-stubs.tsx"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAE/C,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,SAAS,EAEV,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,OAAO,EAEL,gCAAgC,EACjC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAQ1B;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACxE,2CAA2C;IAC3C,MAAM,EAAE,WAAW,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,mDAAmD;IACnD,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9D,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,gCAAgC,CAAC,gBAAgB,CAAC,CAAC;CACrE;AA8KD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CACtC,iBAAiB,CAAC,sBAAsB,CAAC,CAwH1C,CAAC"}
|