@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/providers/tambo-prop-stream-provider/streaming.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yCAA4C;AAC5C,mCAAwE;AAExE;;;;;;;GAOG;AACI,MAAM,SAAS,GAAwC,CAAC,EAC7D,SAAS,GAAG,0BAAkB,EAC9B,QAAQ,EACR,SAAS,GACV,EAAE,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,yBAAc,GAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uCACE,SAAS,EAAE,SAAS,qBACH,SAAS,uBACR,WAAW,IAE5B,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,SAAS,aAqBpB;AAEF,iBAAS,CAAC,WAAW,GAAG,mCAAmC,CAAC","sourcesContent":["import React from \"react\";\nimport { useTamboStream } from \"./provider\";\nimport { DEFAULT_STREAM_KEY, StreamStateComponentProps } from \"./types\";\n\n/**\n * Streaming component that renders children when the stream is in a streaming state\n * @param props - The props for the Streaming component\n * @param props.streamKey - The key to identify this streaming state\n * @param props.children - The children to render when streaming\n * @param props.className - Optional className for styling\n * @returns The Streaming component\n */\nexport const Streaming: React.FC<StreamStateComponentProps> = ({\n streamKey = DEFAULT_STREAM_KEY,\n children,\n className,\n}) => {\n const { getStatusForKey } = useTamboStream();\n const status = getStatusForKey(streamKey);\n\n if (!status.isPending && !status.isStreaming) {\n return null;\n }\n\n return (\n <div\n className={className}\n data-stream-key={streamKey}\n data-stream-state=\"streaming\"\n >\n {children}\n </div>\n );\n};\n\nStreaming.displayName = \"TamboPropStreamProvider.Streaming\";\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { StreamStateComponentProps } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
* Success component that renders children when the stream has data
|
|
5
|
-
* @param props - The props for the Success component
|
|
6
|
-
* @param props.streamKey - The key to identify this success state
|
|
7
|
-
* @param props.children - The children to render when success
|
|
8
|
-
* @param props.className - Optional className for styling
|
|
9
|
-
* @returns The Success component
|
|
10
|
-
*/
|
|
11
|
-
export declare const Success: React.FC<StreamStateComponentProps>;
|
|
12
|
-
//# sourceMappingURL=success.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"success.d.ts","sourceRoot":"","sources":["../../../src/providers/tambo-prop-stream-provider/success.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAsB,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAqBvD,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Success = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const provider_1 = require("./provider");
|
|
9
|
-
const types_1 = require("./types");
|
|
10
|
-
/**
|
|
11
|
-
* Success component that renders children when the stream has data
|
|
12
|
-
* @param props - The props for the Success component
|
|
13
|
-
* @param props.streamKey - The key to identify this success state
|
|
14
|
-
* @param props.children - The children to render when success
|
|
15
|
-
* @param props.className - Optional className for styling
|
|
16
|
-
* @returns The Success component
|
|
17
|
-
*/
|
|
18
|
-
const Success = ({ streamKey = types_1.DEFAULT_STREAM_KEY, children, className, }) => {
|
|
19
|
-
const { getStatusForKey } = (0, provider_1.useTamboStream)();
|
|
20
|
-
const status = getStatusForKey(streamKey);
|
|
21
|
-
if (!status.isSuccess) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
return (react_1.default.createElement("div", { className: className, "data-stream-key": streamKey, "data-stream-state": "success" }, children));
|
|
25
|
-
};
|
|
26
|
-
exports.Success = Success;
|
|
27
|
-
exports.Success.displayName = "TamboPropStreamProvider.Success";
|
|
28
|
-
//# sourceMappingURL=success.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"success.js","sourceRoot":"","sources":["../../../src/providers/tambo-prop-stream-provider/success.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yCAA4C;AAC5C,mCAAwE;AAExE;;;;;;;GAOG;AACI,MAAM,OAAO,GAAwC,CAAC,EAC3D,SAAS,GAAG,0BAAkB,EAC9B,QAAQ,EACR,SAAS,GACV,EAAE,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,yBAAc,GAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uCACE,SAAS,EAAE,SAAS,qBACH,SAAS,uBACR,SAAS,IAE1B,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,OAAO,WAqBlB;AAEF,eAAO,CAAC,WAAW,GAAG,iCAAiC,CAAC","sourcesContent":["import React from \"react\";\nimport { useTamboStream } from \"./provider\";\nimport { DEFAULT_STREAM_KEY, StreamStateComponentProps } from \"./types\";\n\n/**\n * Success component that renders children when the stream has data\n * @param props - The props for the Success component\n * @param props.streamKey - The key to identify this success state\n * @param props.children - The children to render when success\n * @param props.className - Optional className for styling\n * @returns The Success component\n */\nexport const Success: React.FC<StreamStateComponentProps> = ({\n streamKey = DEFAULT_STREAM_KEY,\n children,\n className,\n}) => {\n const { getStatusForKey } = useTamboStream();\n const status = getStatusForKey(streamKey);\n\n if (!status.isSuccess) {\n return null;\n }\n\n return (\n <div\n className={className}\n data-stream-key={streamKey}\n data-stream-state=\"success\"\n >\n {children}\n </div>\n );\n};\n\nSuccess.displayName = \"TamboPropStreamProvider.Success\";\n"]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { StreamStatus as HookStreamStatus } from "../../hooks/use-tambo-stream-status";
|
|
3
|
-
export declare const DEFAULT_STREAM_KEY = "default";
|
|
4
|
-
export interface StreamStateComponentProps {
|
|
5
|
-
/** The key to identify this stream state */
|
|
6
|
-
streamKey?: string;
|
|
7
|
-
/** The children to render */
|
|
8
|
-
children: React.ReactNode;
|
|
9
|
-
/** Optional className for styling */
|
|
10
|
-
className?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface StreamStatus {
|
|
13
|
-
isPending: boolean;
|
|
14
|
-
isStreaming: boolean;
|
|
15
|
-
isSuccess: boolean;
|
|
16
|
-
isError: boolean;
|
|
17
|
-
error?: Error;
|
|
18
|
-
}
|
|
19
|
-
export interface TamboPropStreamContextValue {
|
|
20
|
-
/** The stream status */
|
|
21
|
-
streamStatus: HookStreamStatus;
|
|
22
|
-
/** Get the status for a specific key */
|
|
23
|
-
getStatusForKey: (key: string) => StreamStatus;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/tambo-prop-stream-provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,MAAM,WAAW,yBAAyB;IACxC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,wBAAwB;IACxB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,wCAAwC;IACxC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC;CAChD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/tambo-prop-stream-provider/types.ts"],"names":[],"mappings":";;;AAGA,YAAY;AACC,QAAA,kBAAkB,GAAG,SAAS,CAAC","sourcesContent":["import React from \"react\";\nimport { StreamStatus as HookStreamStatus } from \"../../hooks/use-tambo-stream-status\";\n\n// Constants\nexport const DEFAULT_STREAM_KEY = \"default\";\n\nexport interface StreamStateComponentProps {\n /** The key to identify this stream state */\n streamKey?: string;\n /** The children to render */\n children: React.ReactNode;\n /** Optional className for styling */\n className?: string;\n}\n\nexport interface StreamStatus {\n isPending: boolean;\n isStreaming: boolean;\n isSuccess: boolean;\n isError: boolean;\n error?: Error;\n}\n\nexport interface TamboPropStreamContextValue {\n /** The stream status */\n streamStatus: HookStreamStatus;\n /** Get the status for a specific key */\n getStatusForKey: (key: string) => StreamStatus;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-prop-stream-provider.test.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-prop-stream-provider.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const react_1 = require("@testing-library/react");
|
|
7
|
-
const react_2 = __importDefault(require("react"));
|
|
8
|
-
const use_current_message_1 = require("../hooks/use-current-message");
|
|
9
|
-
const generate_component_response_1 = require("../model/generate-component-response");
|
|
10
|
-
const tambo_thread_provider_1 = require("../providers/tambo-thread-provider");
|
|
11
|
-
const tambo_prop_stream_provider_1 = require("./tambo-prop-stream-provider");
|
|
12
|
-
// Mock the required providers
|
|
13
|
-
jest.mock("../providers/tambo-thread-provider", () => ({
|
|
14
|
-
useTamboThread: jest.fn(),
|
|
15
|
-
useTamboGenerationStage: jest.fn(),
|
|
16
|
-
}));
|
|
17
|
-
jest.mock("../hooks/use-current-message", () => ({
|
|
18
|
-
useTamboCurrentMessage: jest.fn(),
|
|
19
|
-
}));
|
|
20
|
-
// Mock window for SSR tests
|
|
21
|
-
const originalWindow = global.window;
|
|
22
|
-
// Helper function to create mock ComponentDecisionV2
|
|
23
|
-
const createMockComponent = (props = {}) => ({
|
|
24
|
-
componentName: "TestComponent",
|
|
25
|
-
componentState: {},
|
|
26
|
-
message: "Component generated",
|
|
27
|
-
props,
|
|
28
|
-
reasoning: "Test reasoning",
|
|
29
|
-
});
|
|
30
|
-
// Helper function to create mock TamboThreadMessage
|
|
31
|
-
const createMockMessage = (overrides = {}) => ({
|
|
32
|
-
id: "test-message",
|
|
33
|
-
componentState: {},
|
|
34
|
-
content: [{ type: "text", text: "test content" }],
|
|
35
|
-
createdAt: new Date().toISOString(),
|
|
36
|
-
role: "assistant",
|
|
37
|
-
threadId: "test-thread",
|
|
38
|
-
...overrides,
|
|
39
|
-
});
|
|
40
|
-
// Helper function to create mock CombinedTamboThreadContextProps
|
|
41
|
-
const createMockThreadContext = (overrides = {}) => {
|
|
42
|
-
const mockThread = {
|
|
43
|
-
id: "test-thread",
|
|
44
|
-
projectId: "test-project",
|
|
45
|
-
messages: [],
|
|
46
|
-
name: "Test Thread",
|
|
47
|
-
createdAt: new Date().toISOString(),
|
|
48
|
-
updatedAt: new Date().toISOString(),
|
|
49
|
-
};
|
|
50
|
-
return {
|
|
51
|
-
// TamboThreadContextProps properties
|
|
52
|
-
thread: mockThread,
|
|
53
|
-
currentThreadId: mockThread.id,
|
|
54
|
-
currentThread: mockThread,
|
|
55
|
-
threadMap: { [mockThread.id]: mockThread },
|
|
56
|
-
setThreadMap: jest.fn(),
|
|
57
|
-
switchCurrentThread: jest.fn(),
|
|
58
|
-
startNewThread: jest.fn(),
|
|
59
|
-
updateThreadName: jest.fn(),
|
|
60
|
-
generateThreadName: jest.fn(),
|
|
61
|
-
addThreadMessage: jest.fn(),
|
|
62
|
-
updateThreadMessage: jest.fn(),
|
|
63
|
-
cancel: jest.fn(),
|
|
64
|
-
streaming: false,
|
|
65
|
-
sendThreadMessage: jest.fn(),
|
|
66
|
-
// GenerationStageContextProps properties
|
|
67
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
68
|
-
generationStatusMessage: "",
|
|
69
|
-
isIdle: true,
|
|
70
|
-
...overrides,
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
// Helper component to test hook usage
|
|
74
|
-
const TestHookComponent = ({ testKey = "default", }) => {
|
|
75
|
-
const { streamStatus, getStatusForKey } = (0, tambo_prop_stream_provider_1.useTamboStream)();
|
|
76
|
-
const status = getStatusForKey(testKey);
|
|
77
|
-
return (react_2.default.createElement("div", null,
|
|
78
|
-
react_2.default.createElement("div", { "data-testid": "stream-status" }, JSON.stringify(streamStatus)),
|
|
79
|
-
react_2.default.createElement("div", { "data-testid": "key-status" }, JSON.stringify(status))));
|
|
80
|
-
};
|
|
81
|
-
describe("TamboPropStreamProvider", () => {
|
|
82
|
-
beforeEach(() => {
|
|
83
|
-
// Restore window for client-side tests
|
|
84
|
-
global.window = originalWindow;
|
|
85
|
-
// Default mock implementations
|
|
86
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext());
|
|
87
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
88
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
89
|
-
generationStatusMessage: "",
|
|
90
|
-
isIdle: true,
|
|
91
|
-
});
|
|
92
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue({
|
|
93
|
-
id: "test-message",
|
|
94
|
-
component: {
|
|
95
|
-
props: {},
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
afterEach(() => {
|
|
100
|
-
jest.clearAllMocks();
|
|
101
|
-
});
|
|
102
|
-
describe("Hook Error Handling", () => {
|
|
103
|
-
it("should throw error when useTamboStream is used outside provider", () => {
|
|
104
|
-
// Suppress console.error for this test
|
|
105
|
-
const originalError = console.error;
|
|
106
|
-
console.error = jest.fn();
|
|
107
|
-
expect(() => {
|
|
108
|
-
(0, react_1.render)(react_2.default.createElement(TestHookComponent, null));
|
|
109
|
-
}).toThrow("useTamboStream must be used within a TamboPropStreamProvider");
|
|
110
|
-
console.error = originalError;
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
describe("Compound Components", () => {
|
|
114
|
-
describe("Streaming Component", () => {
|
|
115
|
-
it("should render streaming when isPending is true", () => {
|
|
116
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
117
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
118
|
-
}));
|
|
119
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
120
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
121
|
-
generationStatusMessage: "",
|
|
122
|
-
isIdle: true,
|
|
123
|
-
});
|
|
124
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
125
|
-
component: createMockComponent({ title: "" }),
|
|
126
|
-
}));
|
|
127
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
128
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Streaming, null,
|
|
129
|
-
react_2.default.createElement("div", { "data-testid": "loading" }, "Loading..."))));
|
|
130
|
-
expect(react_1.screen.getByTestId("loading")).toBeInTheDocument();
|
|
131
|
-
});
|
|
132
|
-
it("should render streaming when isStreaming is true", () => {
|
|
133
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
134
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
135
|
-
}));
|
|
136
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
137
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
138
|
-
generationStatusMessage: "",
|
|
139
|
-
isIdle: false,
|
|
140
|
-
});
|
|
141
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
142
|
-
component: createMockComponent({ title: "Partial" }),
|
|
143
|
-
}));
|
|
144
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
145
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Streaming, null,
|
|
146
|
-
react_2.default.createElement("div", { "data-testid": "loading" }, "Loading..."))));
|
|
147
|
-
expect(react_1.screen.getByTestId("loading")).toBeInTheDocument();
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
describe("Success Component", () => {
|
|
151
|
-
it("should not render success when isSuccess is false", () => {
|
|
152
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
153
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
154
|
-
}));
|
|
155
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
156
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
157
|
-
generationStatusMessage: "",
|
|
158
|
-
isIdle: true,
|
|
159
|
-
});
|
|
160
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
161
|
-
component: createMockComponent({ title: "" }),
|
|
162
|
-
}));
|
|
163
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
164
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Success, null,
|
|
165
|
-
react_2.default.createElement("div", { "data-testid": "complete" }, "Complete!"))));
|
|
166
|
-
expect(react_1.screen.queryByTestId("complete")).not.toBeInTheDocument();
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
describe("Pending Component", () => {
|
|
170
|
-
it("should render pending when no active status", () => {
|
|
171
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
172
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
173
|
-
}));
|
|
174
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
175
|
-
generationStage: generate_component_response_1.GenerationStage.IDLE,
|
|
176
|
-
generationStatusMessage: "",
|
|
177
|
-
isIdle: true,
|
|
178
|
-
});
|
|
179
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
180
|
-
component: createMockComponent({ title: "" }),
|
|
181
|
-
}));
|
|
182
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
183
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Pending, null,
|
|
184
|
-
react_2.default.createElement("div", { "data-testid": "empty" }, "Empty!"))));
|
|
185
|
-
expect(react_1.screen.getByTestId("empty")).toBeInTheDocument();
|
|
186
|
-
});
|
|
187
|
-
it("should not render pending when isPending is true", () => {
|
|
188
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
189
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
190
|
-
}));
|
|
191
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
192
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
193
|
-
generationStatusMessage: "",
|
|
194
|
-
isIdle: false,
|
|
195
|
-
});
|
|
196
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
197
|
-
component: createMockComponent({ title: "Partial" }),
|
|
198
|
-
}));
|
|
199
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
200
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Pending, null,
|
|
201
|
-
react_2.default.createElement("div", { "data-testid": "empty" }, "Empty!"))));
|
|
202
|
-
expect(react_1.screen.queryByTestId("empty")).not.toBeInTheDocument();
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
describe("Key-based Status", () => {
|
|
207
|
-
it("should provide status for keys not in propStatus", () => {
|
|
208
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
209
|
-
generationStage: generate_component_response_1.GenerationStage.COMPLETE,
|
|
210
|
-
}));
|
|
211
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
212
|
-
generationStage: generate_component_response_1.GenerationStage.COMPLETE,
|
|
213
|
-
generationStatusMessage: "",
|
|
214
|
-
isIdle: false,
|
|
215
|
-
});
|
|
216
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
217
|
-
component: createMockComponent({ name: "John" }),
|
|
218
|
-
}));
|
|
219
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
220
|
-
react_2.default.createElement(TestHookComponent, { testKey: "nonexistent" })));
|
|
221
|
-
const keyStatus = JSON.parse(react_1.screen.getByTestId("key-status").textContent);
|
|
222
|
-
expect(keyStatus.isPending).toBe(true);
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
describe("Compound Components with Keys", () => {
|
|
226
|
-
it("should render loading for specific key when pending", () => {
|
|
227
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
228
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
229
|
-
}));
|
|
230
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
231
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
232
|
-
generationStatusMessage: "",
|
|
233
|
-
isIdle: false,
|
|
234
|
-
});
|
|
235
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
236
|
-
component: createMockComponent({
|
|
237
|
-
name: "Partial",
|
|
238
|
-
age: 25,
|
|
239
|
-
}),
|
|
240
|
-
}));
|
|
241
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
242
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Streaming, { streamKey: "name" },
|
|
243
|
-
react_2.default.createElement("div", { "data-testid": "name-loading" }, "Name Loading...")),
|
|
244
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Streaming, { streamKey: "age" },
|
|
245
|
-
react_2.default.createElement("div", { "data-testid": "age-loading" }, "Age Loading...")),
|
|
246
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Success, { streamKey: "name" },
|
|
247
|
-
react_2.default.createElement("div", { "data-testid": "name-complete" }, "Name Complete!"))));
|
|
248
|
-
// Both props should be loading since they're in streaming stage
|
|
249
|
-
expect(react_1.screen.getByTestId("name-loading")).toBeInTheDocument();
|
|
250
|
-
expect(react_1.screen.getByTestId("age-loading")).toBeInTheDocument();
|
|
251
|
-
expect(react_1.screen.queryByTestId("name-complete")).not.toBeInTheDocument();
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
describe("Styling", () => {
|
|
255
|
-
it("should apply className to loading component", () => {
|
|
256
|
-
jest.mocked(tambo_thread_provider_1.useTamboThread).mockReturnValue(createMockThreadContext({
|
|
257
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
258
|
-
}));
|
|
259
|
-
jest.mocked(tambo_thread_provider_1.useTamboGenerationStage).mockReturnValue({
|
|
260
|
-
generationStage: generate_component_response_1.GenerationStage.STREAMING_RESPONSE,
|
|
261
|
-
generationStatusMessage: "",
|
|
262
|
-
isIdle: false,
|
|
263
|
-
});
|
|
264
|
-
jest.mocked(use_current_message_1.useTamboCurrentMessage).mockReturnValue(createMockMessage({
|
|
265
|
-
component: createMockComponent({ title: "Partial" }),
|
|
266
|
-
}));
|
|
267
|
-
(0, react_1.render)(react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider, null,
|
|
268
|
-
react_2.default.createElement(tambo_prop_stream_provider_1.TamboPropStreamProvider.Streaming, { className: "loading-class" },
|
|
269
|
-
react_2.default.createElement("div", { "data-testid": "loading" }, "Loading..."))));
|
|
270
|
-
const loadingElement = react_1.screen.getByTestId("loading").parentElement;
|
|
271
|
-
expect(loadingElement).toHaveClass("loading-class");
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
});
|
|
275
|
-
//# 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":"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","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";
|
|
3
|
-
import { TamboClientContextProps, TamboClientProviderProps } from "./tambo-client-provider";
|
|
4
|
-
import { TamboComponentContextProps } from "./tambo-component-provider";
|
|
5
|
-
import { ContextAttachmentState } from "./tambo-context-attachment-provider";
|
|
6
|
-
import { TamboContextHelpersContextProps, TamboContextHelpersProviderProps } from "./tambo-context-helpers-provider";
|
|
7
|
-
import { TamboRegistryProviderProps } from "./tambo-registry-provider";
|
|
8
|
-
import { TamboGenerationStageContextProps, TamboThreadContextProps, TamboThreadProviderProps } from "./tambo-thread-provider";
|
|
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,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.useTambo = exports.TamboCompositeProvider = exports.TamboContext = exports.TamboProvider = void 0;
|
|
38
|
-
const react_1 = __importStar(require("react"));
|
|
39
|
-
const tambo_mcp_provider_1 = require("../mcp/tambo-mcp-provider");
|
|
40
|
-
const tambo_client_provider_1 = require("./tambo-client-provider");
|
|
41
|
-
const tambo_component_provider_1 = require("./tambo-component-provider");
|
|
42
|
-
const tambo_context_attachment_provider_1 = require("./tambo-context-attachment-provider");
|
|
43
|
-
const tambo_context_helpers_provider_1 = require("./tambo-context-helpers-provider");
|
|
44
|
-
const tambo_interactable_provider_1 = require("./tambo-interactable-provider");
|
|
45
|
-
const tambo_mcp_token_provider_1 = require("./tambo-mcp-token-provider");
|
|
46
|
-
const tambo_registry_provider_1 = require("./tambo-registry-provider");
|
|
47
|
-
const tambo_thread_input_provider_1 = require("./tambo-thread-input-provider");
|
|
48
|
-
const tambo_thread_provider_1 = require("./tambo-thread-provider");
|
|
49
|
-
/**
|
|
50
|
-
* The TamboProvider gives full access to the whole Tambo API. This includes the
|
|
51
|
-
* TamboAI client, the component registry, the current thread context, and interactable components.
|
|
52
|
-
* @param props - The props for the TamboProvider
|
|
53
|
-
* @param props.children - The children to wrap
|
|
54
|
-
* @param props.tamboUrl - The URL of the Tambo API
|
|
55
|
-
* @param props.apiKey - The API key for the Tambo API
|
|
56
|
-
* @param props.components - The components to register
|
|
57
|
-
* @param props.environment - The environment to use for the Tambo API
|
|
58
|
-
* @param props.tools - The tools to register
|
|
59
|
-
* @param props.mcpServers - The MCP servers to register (metadata only - use TamboMcpProvider for connections)
|
|
60
|
-
* @param props.streaming - Whether to stream the response by default. Defaults to true.
|
|
61
|
-
* @param props.autoGenerateThreadName - Whether to automatically generate thread names. Defaults to true.
|
|
62
|
-
* @param props.autoGenerateNameThreshold - The message count threshold at which the thread name will be auto-generated. Defaults to 3.
|
|
63
|
-
* @param props.contextHelpers - Configuration for which context helpers are enabled/disabled
|
|
64
|
-
* @param props.userToken - The user's OAuth token (access or ID) used to identify the user and exchange for a Tambo session token
|
|
65
|
-
* @param props.contextKey - Optional context key passed to thread input provider for scoping threads
|
|
66
|
-
* @param props.onCallUnregisteredTool - Callback function called when an unregistered tool is called
|
|
67
|
-
* @param props.initialMessages - Initial messages to be included in new threads
|
|
68
|
-
* @param props.getResource - Optional getResource function for registry resources
|
|
69
|
-
* @param props.listResources - Optional listResources function for registry resources
|
|
70
|
-
* @param props.resources - Optional static resources for the registry
|
|
71
|
-
* @returns The TamboProvider component
|
|
72
|
-
*/
|
|
73
|
-
const TamboProvider = ({ children, tamboUrl, apiKey, userToken, components, environment, tools, mcpServers, streaming, autoGenerateThreadName, autoGenerateNameThreshold, contextHelpers, contextKey, initialMessages, onCallUnregisteredTool, getResource, listResources, resources, }) => {
|
|
74
|
-
return (react_1.default.createElement(tambo_client_provider_1.TamboClientProvider, { tamboUrl: tamboUrl, apiKey: apiKey, environment: environment, userToken: userToken },
|
|
75
|
-
react_1.default.createElement(tambo_registry_provider_1.TamboRegistryProvider, { components: components, tools: tools, mcpServers: mcpServers, onCallUnregisteredTool: onCallUnregisteredTool, getResource: getResource, listResources: listResources, resources: resources },
|
|
76
|
-
react_1.default.createElement(tambo_context_helpers_provider_1.TamboContextHelpersProvider, { contextHelpers: contextHelpers },
|
|
77
|
-
react_1.default.createElement(tambo_thread_provider_1.TamboThreadProvider, { contextKey: contextKey, streaming: streaming, autoGenerateThreadName: autoGenerateThreadName, autoGenerateNameThreshold: autoGenerateNameThreshold, initialMessages: initialMessages },
|
|
78
|
-
react_1.default.createElement(tambo_mcp_token_provider_1.TamboMcpTokenProvider, null,
|
|
79
|
-
react_1.default.createElement(tambo_mcp_provider_1.TamboMcpProvider, { contextKey: contextKey },
|
|
80
|
-
react_1.default.createElement(tambo_context_attachment_provider_1.TamboContextAttachmentProvider, null,
|
|
81
|
-
react_1.default.createElement(tambo_component_provider_1.TamboComponentProvider, null,
|
|
82
|
-
react_1.default.createElement(tambo_interactable_provider_1.TamboInteractableProvider, null,
|
|
83
|
-
react_1.default.createElement(tambo_thread_input_provider_1.TamboThreadInputProvider, null,
|
|
84
|
-
react_1.default.createElement(exports.TamboCompositeProvider, null, children))))))))))));
|
|
85
|
-
};
|
|
86
|
-
exports.TamboProvider = TamboProvider;
|
|
87
|
-
exports.TamboContext = (0, react_1.createContext)({});
|
|
88
|
-
/**
|
|
89
|
-
* TamboCompositeProvider is a provider that combines the TamboClient,
|
|
90
|
-
* TamboThread, TamboComponent, and TamboInteractable providers
|
|
91
|
-
* @param props - The props for the TamboCompositeProvider
|
|
92
|
-
* @param props.children - The children to wrap
|
|
93
|
-
* @returns The wrapped component
|
|
94
|
-
*/
|
|
95
|
-
const TamboCompositeProvider = ({ children, }) => {
|
|
96
|
-
const threads = (0, tambo_thread_provider_1.useTamboThread)();
|
|
97
|
-
const clientContext = (0, react_1.useContext)(tambo_client_provider_1.TamboClientContext);
|
|
98
|
-
if (!clientContext) {
|
|
99
|
-
throw new Error("TamboCompositeProvider must be used within a TamboClientProvider");
|
|
100
|
-
}
|
|
101
|
-
const { client, queryClient, isUpdatingToken, tokenExchangeError, userToken, hasValidToken, } = clientContext;
|
|
102
|
-
const componentRegistry = (0, tambo_component_provider_1.useTamboComponent)();
|
|
103
|
-
const interactableComponents = (0, tambo_interactable_provider_1.useTamboInteractable)();
|
|
104
|
-
const contextHelpers = (0, tambo_context_helpers_provider_1.useTamboContextHelpers)();
|
|
105
|
-
const contextAttachment = (0, tambo_context_attachment_provider_1.useTamboContextAttachment)();
|
|
106
|
-
return (react_1.default.createElement(exports.TamboContext.Provider, { value: {
|
|
107
|
-
client,
|
|
108
|
-
queryClient,
|
|
109
|
-
isUpdatingToken,
|
|
110
|
-
tokenExchangeError,
|
|
111
|
-
userToken,
|
|
112
|
-
hasValidToken,
|
|
113
|
-
...componentRegistry,
|
|
114
|
-
...threads,
|
|
115
|
-
...interactableComponents,
|
|
116
|
-
...contextHelpers,
|
|
117
|
-
...contextAttachment,
|
|
118
|
-
} }, children));
|
|
119
|
-
};
|
|
120
|
-
exports.TamboCompositeProvider = TamboCompositeProvider;
|
|
121
|
-
/**
|
|
122
|
-
* The useTambo hook provides access to the Tambo API. This is the primary entrypoint
|
|
123
|
-
* for the Tambo React SDK.
|
|
124
|
-
*
|
|
125
|
-
* This includes the TamboAI client, the component registry, the current thread context,
|
|
126
|
-
* and interactable component management.
|
|
127
|
-
* @returns The Tambo API
|
|
128
|
-
*/
|
|
129
|
-
const useTambo = () => {
|
|
130
|
-
return (0, react_1.useContext)(exports.TamboContext);
|
|
131
|
-
};
|
|
132
|
-
exports.useTambo = useTambo;
|
|
133
|
-
//# sourceMappingURL=tambo-provider.js.map
|