@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
package/esm/v1/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@tambo-ai/react
|
|
2
|
+
* `@tambo-ai/react` - React SDK for Tambo AI
|
|
3
3
|
*
|
|
4
4
|
* Provides React hooks and providers for building AI-powered applications
|
|
5
|
-
* using the
|
|
5
|
+
* using the streaming API with AG-UI protocol.
|
|
6
6
|
*
|
|
7
7
|
* ## Authentication & Thread Ownership
|
|
8
8
|
*
|
|
@@ -16,28 +16,28 @@
|
|
|
16
16
|
*
|
|
17
17
|
* ```tsx
|
|
18
18
|
* import {
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* } from '@tambo-ai/react
|
|
19
|
+
* TamboProvider,
|
|
20
|
+
* useTambo,
|
|
21
|
+
* useTamboThreadInput,
|
|
22
|
+
* } from '@tambo-ai/react';
|
|
23
23
|
*
|
|
24
24
|
* function App() {
|
|
25
25
|
* return (
|
|
26
|
-
* <
|
|
26
|
+
* <TamboProvider
|
|
27
27
|
* apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}
|
|
28
28
|
* userKey={currentUserId} // Required: identifies thread owner
|
|
29
29
|
* components={[WeatherCard]}
|
|
30
30
|
* tools={[searchTool]}
|
|
31
31
|
* >
|
|
32
32
|
* <ChatInterface />
|
|
33
|
-
* </
|
|
33
|
+
* </TamboProvider>
|
|
34
34
|
* );
|
|
35
35
|
* }
|
|
36
36
|
*
|
|
37
37
|
* function ChatInterface() {
|
|
38
38
|
* const [threadId, setThreadId] = useState<string>();
|
|
39
|
-
* const { messages, isStreaming } =
|
|
40
|
-
* const { value, setValue, submit, isPending } =
|
|
39
|
+
* const { messages, isStreaming } = useTambo();
|
|
40
|
+
* const { value, setValue, submit, isPending } = useTamboThreadInput();
|
|
41
41
|
*
|
|
42
42
|
* const handleSubmit = async (e: React.FormEvent) => {
|
|
43
43
|
* e.preventDefault();
|
|
@@ -58,10 +58,9 @@
|
|
|
58
58
|
*
|
|
59
59
|
* ## Type Imports
|
|
60
60
|
*
|
|
61
|
-
* Types are imported directly
|
|
62
|
-
* - Thread state: `import type {
|
|
63
|
-
* - Messages: `import type {
|
|
64
|
-
* - Custom events: `import type { ComponentStartEvent } from '@tambo-ai/react/v1/types/event'`
|
|
61
|
+
* Types are imported directly:
|
|
62
|
+
* - Thread state: `import type { TamboThread } from '@tambo-ai/react'`
|
|
63
|
+
* - Messages: `import type { TamboThreadMessage } from '@tambo-ai/react'`
|
|
65
64
|
*
|
|
66
65
|
* SDK types: `import type { ... } from '@tambo-ai/typescript-sdk'`
|
|
67
66
|
* AG-UI events: `import { EventType, type BaseEvent } from '@ag-ui/core'`
|
|
@@ -69,41 +68,45 @@
|
|
|
69
68
|
// =============================================================================
|
|
70
69
|
// Providers
|
|
71
70
|
// =============================================================================
|
|
72
|
-
export {
|
|
73
|
-
// Re-export registry provider
|
|
71
|
+
export { TamboProvider, useTamboConfig, } from "./providers/tambo-v1-provider.js";
|
|
72
|
+
// Re-export registry provider
|
|
74
73
|
export { TamboRegistryProvider } from "../providers/tambo-registry-provider.js";
|
|
75
|
-
// Re-export client provider
|
|
74
|
+
// Re-export client provider
|
|
76
75
|
export { TamboClientProvider, useIsTamboTokenUpdating, } from "../providers/tambo-client-provider.js";
|
|
77
|
-
// Re-export context helpers
|
|
76
|
+
// Re-export context helpers
|
|
78
77
|
export { TamboContextHelpersProvider, useTamboContextHelpers, } from "../providers/tambo-context-helpers-provider.js";
|
|
79
|
-
// Re-export context attachment hook
|
|
78
|
+
// Re-export context attachment hook
|
|
80
79
|
export { useTamboContextAttachment } from "../providers/tambo-context-attachment-provider.js";
|
|
81
|
-
// Export
|
|
82
|
-
export {
|
|
83
|
-
// Export
|
|
84
|
-
export {
|
|
80
|
+
// Export thread input provider for advanced composition
|
|
81
|
+
export { TamboThreadInputProvider, } from "./providers/tambo-v1-thread-input-provider.js";
|
|
82
|
+
// Export stub provider for testing
|
|
83
|
+
export { TamboStubProvider, } from "./providers/tambo-v1-stub-provider.js";
|
|
85
84
|
// =============================================================================
|
|
86
85
|
// Components
|
|
87
86
|
// =============================================================================
|
|
88
|
-
export {
|
|
87
|
+
export { ComponentRenderer, } from "./components/v1-component-renderer.js";
|
|
89
88
|
// =============================================================================
|
|
90
89
|
// Hooks
|
|
91
90
|
// =============================================================================
|
|
92
|
-
export {
|
|
93
|
-
export {
|
|
94
|
-
export {
|
|
95
|
-
export {
|
|
96
|
-
export {
|
|
97
|
-
export {
|
|
98
|
-
export {
|
|
99
|
-
// Re-export client hook
|
|
91
|
+
export { useTambo } from "./hooks/use-tambo-v1.js";
|
|
92
|
+
export { useTamboThreadInput } from "./hooks/use-tambo-v1-thread-input.js";
|
|
93
|
+
export { useTamboThread } from "./hooks/use-tambo-v1-thread.js";
|
|
94
|
+
export { useTamboThreadList } from "./hooks/use-tambo-v1-thread-list.js";
|
|
95
|
+
export { useTamboComponentState } from "./hooks/use-tambo-v1-component-state.js";
|
|
96
|
+
export { useTamboStreamStatus, } from "./hooks/use-tambo-v1-stream-status.js";
|
|
97
|
+
export { useTamboSuggestions, } from "./hooks/use-tambo-v1-suggestions.js";
|
|
98
|
+
// Re-export client hook
|
|
100
99
|
export { useTamboClient } from "../providers/tambo-client-provider.js";
|
|
101
100
|
// Re-export image handling hook (pure React, API-agnostic)
|
|
102
101
|
export { useMessageImages, } from "../hooks/use-message-images.js";
|
|
103
102
|
// Re-export voice input hook (uses standalone transcription API)
|
|
104
103
|
export { useTamboVoice } from "../hooks/use-tambo-voice.js";
|
|
105
104
|
// =============================================================================
|
|
106
|
-
//
|
|
105
|
+
// Message Context (for components rendered by the AI)
|
|
106
|
+
// =============================================================================
|
|
107
|
+
export { TamboMessageProvider, useTamboCurrentMessage, useTamboCurrentComponent, } from "./hooks/use-tambo-current-message.js";
|
|
108
|
+
// =============================================================================
|
|
109
|
+
// Re-exports from SDK
|
|
107
110
|
// =============================================================================
|
|
108
111
|
// Tool definition helper
|
|
109
112
|
export { defineTool } from "../util/registry.js";
|
|
@@ -111,6 +114,8 @@ export { defineTool } from "../util/registry.js";
|
|
|
111
114
|
export { currentPageContextHelper, currentTimeContextHelper, } from "../context-helpers/index.js";
|
|
112
115
|
// MCP server types
|
|
113
116
|
export { MCPTransport } from "../model/mcp-server-info.js";
|
|
117
|
+
// Component content context
|
|
118
|
+
export { ComponentContentProvider, useComponentContent, } from "./utils/component-renderer.js";
|
|
114
119
|
// =============================================================================
|
|
115
120
|
// Interactable Components
|
|
116
121
|
// =============================================================================
|
package/esm/v1/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAEH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EACL,eAAe,EAEf,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AAEvC,4DAA4D;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,0DAA0D;AAC1D,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,0DAA0D;AAC1D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,6CAA6C,CAAC;AAErD,kEAAkE;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,2DAA2D;AAC3D,OAAO,EACL,0BAA0B,GAG3B,MAAM,4CAA4C,CAAC;AAEpD,sCAAsC;AACtC,OAAO,EACL,mBAAmB,GAEpB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,OAAO,EACL,mBAAmB,GAEpB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EACL,sBAAsB,GAGvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,qBAAqB,GAItB,MAAM,kCAAkC,CAAC;AAE1C,sDAAsD;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,2DAA2D;AAC3D,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAErC,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,gFAAgF;AAChF,gDAAgD;AAChD,gFAAgF;AAEhF,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,2BAA2B;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAoB5B,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA+BxD,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,mDAAmD;AACnD,OAAO,EACL,qBAAqB,GAGtB,MAAM,gCAAgC,CAAC;AAExC,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,0CAA0C,CAAC","sourcesContent":["/**\n * `@tambo-ai/react/v1` - React SDK for Tambo v1 API\n *\n * Provides React hooks and providers for building AI-powered applications\n * using the v1 streaming API with AG-UI protocol.\n *\n * ## Authentication & Thread Ownership\n *\n * All thread operations require user identification. Provide ONE of:\n * - `userKey` - Direct user identifier (for server-side or trusted environments)\n * - `userToken` - OAuth bearer token containing the userKey (for client-side apps)\n *\n * Threads are scoped to the userKey - each user only sees their own threads.\n *\n * ## Quick Start\n *\n * ```tsx\n * import {\n * TamboV1Provider,\n * useTamboV1,\n * useTamboV1ThreadInput,\n * } from '@tambo-ai/react/v1';\n *\n * function App() {\n * return (\n * <TamboV1Provider\n * apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}\n * userKey={currentUserId} // Required: identifies thread owner\n * components={[WeatherCard]}\n * tools={[searchTool]}\n * >\n * <ChatInterface />\n * </TamboV1Provider>\n * );\n * }\n *\n * function ChatInterface() {\n * const [threadId, setThreadId] = useState<string>();\n * const { messages, isStreaming } = useTamboV1(threadId);\n * const { value, setValue, submit, isPending } = useTamboV1ThreadInput(threadId);\n *\n * const handleSubmit = async (e: React.FormEvent) => {\n * e.preventDefault();\n * const result = await submit();\n * if (!threadId) setThreadId(result.threadId);\n * };\n *\n * return (\n * <form onSubmit={handleSubmit}>\n * {messages.map(msg => <Message key={msg.id} message={msg} />)}\n * {isStreaming && <LoadingIndicator />}\n * <input value={value} onChange={(e) => setValue(e.target.value)} />\n * <button disabled={isPending}>Send</button>\n * </form>\n * );\n * }\n * ```\n *\n * ## Type Imports\n *\n * Types are imported directly from specific files:\n * - Thread state: `import type { TamboV1Thread } from '@tambo-ai/react/v1/types/thread'`\n * - Messages: `import type { TamboV1Message } from '@tambo-ai/react/v1/types/message'`\n * - Custom events: `import type { ComponentStartEvent } from '@tambo-ai/react/v1/types/event'`\n *\n * SDK types: `import type { ... } from '@tambo-ai/typescript-sdk'`\n * AG-UI events: `import { EventType, type BaseEvent } from '@ag-ui/core'`\n */\n\n// =============================================================================\n// Providers\n// =============================================================================\n\nexport {\n TamboV1Provider,\n type TamboV1ProviderProps,\n useTamboV1Config,\n type TamboV1Config,\n} from \"./providers/tambo-v1-provider\";\n\n// Re-export registry provider from beta SDK (works with v1)\nexport { TamboRegistryProvider } from \"../providers/tambo-registry-provider\";\n\n// Re-export client provider from beta SDK (works with v1)\nexport {\n TamboClientProvider,\n useIsTamboTokenUpdating,\n} from \"../providers/tambo-client-provider\";\n\n// Re-export context helpers from beta SDK (works with v1)\nexport {\n TamboContextHelpersProvider,\n useTamboContextHelpers,\n} from \"../providers/tambo-context-helpers-provider\";\n\n// Re-export context attachment hook from beta SDK (works with v1)\nexport { useTamboContextAttachment } from \"../providers/tambo-context-attachment-provider\";\n\n// Export v1 thread input provider for advanced composition\nexport {\n TamboV1ThreadInputProvider,\n type TamboV1ThreadInputContextProps,\n type SubmitOptions,\n} from \"./providers/tambo-v1-thread-input-provider\";\n\n// Export v1 stub provider for testing\nexport {\n TamboV1StubProvider,\n type TamboV1StubProviderProps,\n} from \"./providers/tambo-v1-stub-provider\";\n\n// =============================================================================\n// Components\n// =============================================================================\n\nexport {\n V1ComponentRenderer,\n type V1ComponentRendererProps,\n} from \"./components/v1-component-renderer\";\n\n// =============================================================================\n// Hooks\n// =============================================================================\n\nexport { useTamboV1 } from \"./hooks/use-tambo-v1\";\n\nexport type { TamboV1AuthState } from \"./types/auth\";\n\nexport type { ToolChoice } from \"./types/tool-choice\";\n\nexport { useTamboV1ThreadInput } from \"./hooks/use-tambo-v1-thread-input\";\n\nexport { useTamboV1Thread } from \"./hooks/use-tambo-v1-thread\";\n\nexport { useTamboV1ThreadList } from \"./hooks/use-tambo-v1-thread-list\";\n\nexport { useTamboV1ComponentState } from \"./hooks/use-tambo-v1-component-state\";\n\nexport {\n useTamboV1StreamStatus,\n type StreamStatus,\n type PropStatus,\n} from \"./hooks/use-tambo-v1-stream-status\";\n\nexport {\n useTamboV1Suggestions,\n type UseTamboV1SuggestionsOptions,\n type UseTamboV1SuggestionsReturn,\n type AcceptSuggestionOptions,\n} from \"./hooks/use-tambo-v1-suggestions\";\n\n// Re-export client hook from beta SDK (works with v1)\nexport { useTamboClient } from \"../providers/tambo-client-provider\";\n\n// Re-export image handling hook (pure React, API-agnostic)\nexport {\n useMessageImages,\n type StagedImage,\n} from \"../hooks/use-message-images\";\n\n// Re-export voice input hook (uses standalone transcription API)\nexport { useTamboVoice } from \"../hooks/use-tambo-voice\";\n\n// =============================================================================\n// Re-exports from Beta SDK (compatible with v1)\n// =============================================================================\n\n// Tool definition helper\nexport { defineTool } from \"../util/registry\";\n\n// Built-in context helpers\nexport {\n currentPageContextHelper,\n currentTimeContextHelper,\n} from \"../context-helpers\";\n\n// Context helper types\nexport type {\n AdditionalContext,\n ContextHelperFn,\n ContextHelpers,\n} from \"../context-helpers\";\n\n// Component and tool types\nexport type {\n ComponentContextToolMetadata,\n ComponentRegistry,\n ParameterSpec,\n RegisteredComponent,\n TamboComponent,\n TamboTool,\n ToolAnnotations,\n} from \"../model/component-metadata\";\n\n// MCP server types\nexport { MCPTransport } from \"../model/mcp-server-info\";\nexport type {\n McpServerInfo,\n NormalizedMcpServerInfo,\n} from \"../model/mcp-server-info\";\n\n// Resource types\nexport type {\n ListResourceItem,\n ReadResourceResult,\n ResourceSource,\n} from \"../model/resource-info\";\n\n// Error types from Tambo TypeScript SDK\nexport type {\n APIError,\n RateLimitError,\n TamboAIError,\n} from \"@tambo-ai/typescript-sdk\";\n\n// Suggestion types from Tambo TypeScript SDK\nexport type {\n Suggestion,\n SuggestionGenerateParams,\n SuggestionGenerateResponse,\n SuggestionListResponse,\n} from \"@tambo-ai/typescript-sdk/resources/beta/threads/suggestions\";\n\n// V1 extended content types with computed state\nexport type { V1ToolUseContent, TamboToolDisplayProps } from \"./types/message\";\n\n// =============================================================================\n// Interactable Components\n// =============================================================================\n\n// HOC for making components interactable by the AI\nexport {\n withTamboInteractable,\n type InteractableConfig,\n type WithTamboInteractableProps,\n} from \"../hoc/with-tambo-interactable\";\n\n// Interactable provider hooks\nexport {\n useTamboInteractable,\n useCurrentInteractablesSnapshot,\n} from \"../providers/tambo-interactable-provider\";\n\n// Interactable types\nexport type {\n TamboInteractableComponent as InteractableComponent,\n TamboInteractableContext,\n} from \"../model/tambo-interactable\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/v1/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAEH,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EACL,aAAa,EAEb,cAAc,GAEf,MAAM,+BAA+B,CAAC;AAEvC,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,4BAA4B;AAC5B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,4BAA4B;AAC5B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,6CAA6C,CAAC;AAErD,oCAAoC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,wDAAwD;AACxD,OAAO,EACL,wBAAwB,GAGzB,MAAM,4CAA4C,CAAC;AAEpD,mCAAmC;AACnC,OAAO,EACL,iBAAiB,GAElB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,GAElB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAuB,MAAM,sBAAsB,CAAC;AAMrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EACL,oBAAoB,GAGrB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,mBAAmB,GAIpB,MAAM,kCAAkC,CAAC;AAE1C,wBAAwB;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,2DAA2D;AAC3D,OAAO,EACL,gBAAgB,GAEjB,MAAM,6BAA6B,CAAC;AAErC,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAEhF,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GAEzB,MAAM,mCAAmC,CAAC;AAE3C,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,yBAAyB;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,2BAA2B;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAoB5B,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA8DxD,4BAA4B;AAC5B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GAEpB,MAAM,4BAA4B,CAAC;AAEpC,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,mDAAmD;AACnD,OAAO,EACL,qBAAqB,GAGtB,MAAM,gCAAgC,CAAC;AAExC,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,0CAA0C,CAAC","sourcesContent":["/**\n * `@tambo-ai/react` - React SDK for Tambo AI\n *\n * Provides React hooks and providers for building AI-powered applications\n * using the streaming API with AG-UI protocol.\n *\n * ## Authentication & Thread Ownership\n *\n * All thread operations require user identification. Provide ONE of:\n * - `userKey` - Direct user identifier (for server-side or trusted environments)\n * - `userToken` - OAuth bearer token containing the userKey (for client-side apps)\n *\n * Threads are scoped to the userKey - each user only sees their own threads.\n *\n * ## Quick Start\n *\n * ```tsx\n * import {\n * TamboProvider,\n * useTambo,\n * useTamboThreadInput,\n * } from '@tambo-ai/react';\n *\n * function App() {\n * return (\n * <TamboProvider\n * apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}\n * userKey={currentUserId} // Required: identifies thread owner\n * components={[WeatherCard]}\n * tools={[searchTool]}\n * >\n * <ChatInterface />\n * </TamboProvider>\n * );\n * }\n *\n * function ChatInterface() {\n * const [threadId, setThreadId] = useState<string>();\n * const { messages, isStreaming } = useTambo();\n * const { value, setValue, submit, isPending } = useTamboThreadInput();\n *\n * const handleSubmit = async (e: React.FormEvent) => {\n * e.preventDefault();\n * const result = await submit();\n * if (!threadId) setThreadId(result.threadId);\n * };\n *\n * return (\n * <form onSubmit={handleSubmit}>\n * {messages.map(msg => <Message key={msg.id} message={msg} />)}\n * {isStreaming && <LoadingIndicator />}\n * <input value={value} onChange={(e) => setValue(e.target.value)} />\n * <button disabled={isPending}>Send</button>\n * </form>\n * );\n * }\n * ```\n *\n * ## Type Imports\n *\n * Types are imported directly:\n * - Thread state: `import type { TamboThread } from '@tambo-ai/react'`\n * - Messages: `import type { TamboThreadMessage } from '@tambo-ai/react'`\n *\n * SDK types: `import type { ... } from '@tambo-ai/typescript-sdk'`\n * AG-UI events: `import { EventType, type BaseEvent } from '@ag-ui/core'`\n */\n\n// =============================================================================\n// Providers\n// =============================================================================\n\nexport {\n TamboProvider,\n type TamboProviderProps,\n useTamboConfig,\n type TamboConfig,\n} from \"./providers/tambo-v1-provider\";\n\n// Re-export registry provider\nexport { TamboRegistryProvider } from \"../providers/tambo-registry-provider\";\n\n// Re-export client provider\nexport {\n TamboClientProvider,\n useIsTamboTokenUpdating,\n} from \"../providers/tambo-client-provider\";\n\n// Re-export context helpers\nexport {\n TamboContextHelpersProvider,\n useTamboContextHelpers,\n} from \"../providers/tambo-context-helpers-provider\";\n\n// Re-export context attachment hook\nexport { useTamboContextAttachment } from \"../providers/tambo-context-attachment-provider\";\n\n// Export thread input provider for advanced composition\nexport {\n TamboThreadInputProvider,\n type TamboThreadInputContextProps,\n type SubmitOptions,\n} from \"./providers/tambo-v1-thread-input-provider\";\n\n// Export stub provider for testing\nexport {\n TamboStubProvider,\n type TamboStubProviderProps,\n} from \"./providers/tambo-v1-stub-provider\";\n\n// =============================================================================\n// Components\n// =============================================================================\n\nexport {\n ComponentRenderer,\n type ComponentRendererProps,\n} from \"./components/v1-component-renderer\";\n\n// =============================================================================\n// Hooks\n// =============================================================================\n\nexport { useTambo, type UseTamboReturn } from \"./hooks/use-tambo-v1\";\n\nexport type { TamboAuthState } from \"./types/auth\";\n\nexport type { ToolChoice } from \"./types/tool-choice\";\n\nexport { useTamboThreadInput } from \"./hooks/use-tambo-v1-thread-input\";\n\nexport { useTamboThread } from \"./hooks/use-tambo-v1-thread\";\n\nexport { useTamboThreadList } from \"./hooks/use-tambo-v1-thread-list\";\n\nexport { useTamboComponentState } from \"./hooks/use-tambo-v1-component-state\";\n\nexport {\n useTamboStreamStatus,\n type StreamStatus,\n type PropStatus,\n} from \"./hooks/use-tambo-v1-stream-status\";\n\nexport {\n useTamboSuggestions,\n type UseTamboSuggestionsOptions,\n type UseTamboSuggestionsReturn,\n type AcceptSuggestionOptions,\n} from \"./hooks/use-tambo-v1-suggestions\";\n\n// Re-export client hook\nexport { useTamboClient } from \"../providers/tambo-client-provider\";\n\n// Re-export image handling hook (pure React, API-agnostic)\nexport {\n useMessageImages,\n type StagedImage,\n} from \"../hooks/use-message-images\";\n\n// Re-export voice input hook (uses standalone transcription API)\nexport { useTamboVoice } from \"../hooks/use-tambo-voice\";\n\n// =============================================================================\n// Message Context (for components rendered by the AI)\n// =============================================================================\n\nexport {\n TamboMessageProvider,\n useTamboCurrentMessage,\n useTamboCurrentComponent,\n type TamboCurrentComponent,\n} from \"./hooks/use-tambo-current-message\";\n\n// =============================================================================\n// Re-exports from SDK\n// =============================================================================\n\n// Tool definition helper\nexport { defineTool } from \"../util/registry\";\n\n// Built-in context helpers\nexport {\n currentPageContextHelper,\n currentTimeContextHelper,\n} from \"../context-helpers\";\n\n// Context helper types\nexport type {\n AdditionalContext,\n ContextHelperFn,\n ContextHelpers,\n} from \"../context-helpers\";\n\n// Component and tool types\nexport type {\n ComponentContextToolMetadata,\n ComponentRegistry,\n ParameterSpec,\n RegisteredComponent,\n TamboComponent,\n TamboTool,\n ToolAnnotations,\n} from \"../model/component-metadata\";\n\n// MCP server types\nexport { MCPTransport } from \"../model/mcp-server-info\";\nexport type {\n McpServerInfo,\n NormalizedMcpServerInfo,\n} from \"../model/mcp-server-info\";\n\n// Resource types\nexport type {\n ListResourceItem,\n ReadResourceResult,\n ResourceSource,\n} from \"../model/resource-info\";\n\n// Error types from Tambo TypeScript SDK\nexport type {\n APIError,\n RateLimitError,\n TamboAIError,\n} from \"@tambo-ai/typescript-sdk\";\n\n// Suggestion types from Tambo TypeScript SDK\nexport type {\n Suggestion,\n SuggestionGenerateParams,\n SuggestionGenerateResponse,\n SuggestionListResponse,\n} from \"@tambo-ai/typescript-sdk/resources/beta/threads/suggestions\";\n\n// Extended content types with computed state\nexport type {\n TamboToolUseContent,\n TamboToolDisplayProps,\n} from \"./types/message\";\n\n// Thread message type\nexport type { TamboThreadMessage } from \"./types/message\";\n\n// Content types\nexport type {\n Content,\n TamboComponentContent,\n ComponentStreamingState,\n MessageRole,\n TextContent,\n ToolResultContent,\n ResourceContent,\n InputMessage,\n InitialInputMessage,\n MessageListResponse,\n MessageGetResponse,\n} from \"./types/message\";\n\n// Thread types\nexport type {\n TamboThread,\n RunStatus,\n StreamingState,\n ThreadCreateResponse,\n ThreadRetrieveResponse,\n ThreadListResponse,\n} from \"./types/thread\";\n\n// Component content context\nexport {\n ComponentContentProvider,\n useComponentContent,\n type ComponentContentContext,\n} from \"./utils/component-renderer\";\n\n// =============================================================================\n// Interactable Components\n// =============================================================================\n\n// HOC for making components interactable by the AI\nexport {\n withTamboInteractable,\n type InteractableConfig,\n type WithTamboInteractableProps,\n} from \"../hoc/with-tambo-interactable\";\n\n// Interactable provider hooks\nexport {\n useTamboInteractable,\n useCurrentInteractablesSnapshot,\n} from \"../providers/tambo-interactable-provider\";\n\n// Interactable types\nexport type {\n TamboInteractableComponent as InteractableComponent,\n TamboInteractableContext,\n} from \"../model/tambo-interactable\";\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* TamboProvider - Main Provider
|
|
3
3
|
*
|
|
4
|
-
* Composes the necessary providers for the
|
|
4
|
+
* Composes the necessary providers for the SDK:
|
|
5
5
|
* - TamboClientProvider: API client and authentication
|
|
6
6
|
* - TamboRegistryProvider: Component and tool registration
|
|
7
7
|
* - TamboContextHelpersProvider: Context helper functions
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
* - TamboMcpProvider: MCP server connections and tool discovery
|
|
10
10
|
* - TamboContextAttachmentProvider: Single-message context attachments
|
|
11
11
|
* - TamboInteractableProvider: Interactive component tracking
|
|
12
|
-
* -
|
|
12
|
+
* - TamboStreamProvider: Streaming state management
|
|
13
13
|
*
|
|
14
14
|
* This provider should wrap your entire application or the portion
|
|
15
|
-
* that needs access to Tambo
|
|
15
|
+
* that needs access to Tambo functionality.
|
|
16
16
|
*/
|
|
17
17
|
import React, { type PropsWithChildren } from "react";
|
|
18
18
|
import { type TamboClientProviderProps } from "../../providers/tambo-client-provider.js";
|
|
@@ -22,10 +22,10 @@ import type { McpServerInfo } from "../../model/mcp-server-info.js";
|
|
|
22
22
|
import type { ListResourceItem, ResourceSource } from "../../model/resource-info.js";
|
|
23
23
|
import type { InitialInputMessage } from "../types/message.js";
|
|
24
24
|
/**
|
|
25
|
-
* Configuration values for
|
|
25
|
+
* Configuration values for the SDK.
|
|
26
26
|
* These are static values that don't change during the session.
|
|
27
27
|
*/
|
|
28
|
-
export interface
|
|
28
|
+
export interface TamboConfig {
|
|
29
29
|
/** User key for thread ownership and scoping */
|
|
30
30
|
userKey?: string;
|
|
31
31
|
/** Whether to automatically generate thread names after a threshold of messages. Defaults to true. */
|
|
@@ -39,20 +39,20 @@ export interface TamboV1Config {
|
|
|
39
39
|
initialMessages?: InitialInputMessage[];
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* Context for
|
|
42
|
+
* Context for SDK configuration.
|
|
43
43
|
* @internal
|
|
44
44
|
*/
|
|
45
|
-
export declare const
|
|
45
|
+
export declare const TamboConfigContext: React.Context<TamboConfig | null>;
|
|
46
46
|
/**
|
|
47
|
-
* Hook to access
|
|
47
|
+
* Hook to access SDK configuration.
|
|
48
48
|
* @returns Configuration values including userKey
|
|
49
|
-
* @throws {Error} If used outside
|
|
49
|
+
* @throws {Error} If used outside TamboProvider
|
|
50
50
|
*/
|
|
51
|
-
export declare function
|
|
51
|
+
export declare function useTamboConfig(): TamboConfig;
|
|
52
52
|
/**
|
|
53
|
-
* Props for
|
|
53
|
+
* Props for TamboProvider
|
|
54
54
|
*/
|
|
55
|
-
export interface
|
|
55
|
+
export interface TamboProviderProps extends Pick<TamboClientProviderProps, "apiKey" | "tamboUrl" | "environment" | "userToken"> {
|
|
56
56
|
/**
|
|
57
57
|
* Components to register with the registry.
|
|
58
58
|
* These will be available for the AI to use in responses.
|
|
@@ -128,12 +128,12 @@ export interface TamboV1ProviderProps extends Pick<TamboClientProviderProps, "ap
|
|
|
128
128
|
children: React.ReactNode;
|
|
129
129
|
}
|
|
130
130
|
/**
|
|
131
|
-
* Main provider for the Tambo
|
|
131
|
+
* Main provider for the Tambo SDK.
|
|
132
132
|
*
|
|
133
|
-
* Composes TamboClientProvider, TamboRegistryProvider, and
|
|
133
|
+
* Composes TamboClientProvider, TamboRegistryProvider, and TamboStreamProvider
|
|
134
134
|
* to provide a complete context for building AI-powered applications.
|
|
135
135
|
*
|
|
136
|
-
* Threads are managed dynamically through
|
|
136
|
+
* Threads are managed dynamically through useTambo() hook functions:
|
|
137
137
|
* - startNewThread() - Begin a new conversation
|
|
138
138
|
* - switchThread(threadId) - Switch to an existing thread
|
|
139
139
|
* - initThread(threadId) - Initialize a thread for receiving events
|
|
@@ -157,20 +157,20 @@ export interface TamboV1ProviderProps extends Pick<TamboClientProviderProps, "ap
|
|
|
157
157
|
* @returns Provider component tree
|
|
158
158
|
* @example
|
|
159
159
|
* ```tsx
|
|
160
|
-
* import {
|
|
160
|
+
* import { TamboProvider } from '@tambo-ai/react';
|
|
161
161
|
*
|
|
162
162
|
* function App() {
|
|
163
163
|
* return (
|
|
164
|
-
* <
|
|
164
|
+
* <TamboProvider
|
|
165
165
|
* apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}
|
|
166
166
|
* components={[WeatherCard, StockChart]}
|
|
167
167
|
* tools={[searchTool, calculatorTool]}
|
|
168
168
|
* >
|
|
169
169
|
* <ChatInterface />
|
|
170
|
-
* </
|
|
170
|
+
* </TamboProvider>
|
|
171
171
|
* );
|
|
172
172
|
* }
|
|
173
173
|
* ```
|
|
174
174
|
*/
|
|
175
|
-
export declare function
|
|
175
|
+
export declare function TamboProvider({ apiKey, tamboUrl, environment, userToken, components, tools, mcpServers, onCallUnregisteredTool, resources, listResources, getResource, contextHelpers, userKey, autoGenerateThreadName, autoGenerateNameThreshold, initialMessages, children, }: PropsWithChildren<TamboProviderProps>): React.JSX.Element;
|
|
176
176
|
//# sourceMappingURL=tambo-v1-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-v1-provider.d.ts","sourceRoot":"","sources":["../../../src/v1/providers/tambo-v1-provider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAIZ,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,yCAAyC,CAAC;AAMjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D;;;GAGG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"tambo-v1-provider.d.ts","sourceRoot":"","sources":["../../../src/v1/providers/tambo-v1-provider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAIZ,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,yCAAyC,CAAC;AAMjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kGAAkG;IAClG,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAM5C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,wBAAwB,EACxB,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,CACpD;IACC;;;OAGG;IACH,UAAU,CAAC,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAEtD;;;OAGG;IACH,KAAK,CAAC,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE5C;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,CAAC;IAExC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;IAE9E;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAEhD;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAE5C;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAExC;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,KAAK,EACL,UAAU,EACV,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,OAAO,EACP,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,QAAQ,GACT,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,qBA+CvC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* TamboProvider - Main Provider
|
|
4
4
|
*
|
|
5
|
-
* Composes the necessary providers for the
|
|
5
|
+
* Composes the necessary providers for the SDK:
|
|
6
6
|
* - TamboClientProvider: API client and authentication
|
|
7
7
|
* - TamboRegistryProvider: Component and tool registration
|
|
8
8
|
* - TamboContextHelpersProvider: Context helper functions
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
* - TamboMcpProvider: MCP server connections and tool discovery
|
|
11
11
|
* - TamboContextAttachmentProvider: Single-message context attachments
|
|
12
12
|
* - TamboInteractableProvider: Interactive component tracking
|
|
13
|
-
* -
|
|
13
|
+
* - TamboStreamProvider: Streaming state management
|
|
14
14
|
*
|
|
15
15
|
* This provider should wrap your entire application or the portion
|
|
16
|
-
* that needs access to Tambo
|
|
16
|
+
* that needs access to Tambo functionality.
|
|
17
17
|
*/
|
|
18
18
|
import React, { createContext, useContext, useEffect, } from "react";
|
|
19
|
-
import {
|
|
19
|
+
import { useTamboAuthState } from "../hooks/use-tambo-v1-auth-state.js";
|
|
20
20
|
import { TamboClientProvider, } from "../../providers/tambo-client-provider.js";
|
|
21
21
|
import { TamboRegistryProvider, } from "../../providers/tambo-registry-provider.js";
|
|
22
22
|
import { TamboContextAttachmentProvider } from "../../providers/tambo-context-attachment-provider.js";
|
|
@@ -24,57 +24,57 @@ import { TamboContextHelpersProvider } from "../../providers/tambo-context-helpe
|
|
|
24
24
|
import { TamboInteractableProvider } from "../../providers/tambo-interactable-provider.js";
|
|
25
25
|
import { TamboMcpTokenProvider } from "../../providers/tambo-mcp-token-provider.js";
|
|
26
26
|
import { TamboMcpProvider } from "../../mcp/tambo-mcp-provider.js";
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
27
|
+
import { TamboStreamProvider } from "./tambo-v1-stream-context.js";
|
|
28
|
+
import { TamboThreadInputProvider } from "./tambo-v1-thread-input-provider.js";
|
|
29
29
|
/**
|
|
30
|
-
* Context for
|
|
30
|
+
* Context for SDK configuration.
|
|
31
31
|
* @internal
|
|
32
32
|
*/
|
|
33
|
-
export const
|
|
33
|
+
export const TamboConfigContext = createContext(null);
|
|
34
34
|
/**
|
|
35
|
-
* Hook to access
|
|
35
|
+
* Hook to access SDK configuration.
|
|
36
36
|
* @returns Configuration values including userKey
|
|
37
|
-
* @throws {Error} If used outside
|
|
37
|
+
* @throws {Error} If used outside TamboProvider
|
|
38
38
|
*/
|
|
39
|
-
export function
|
|
40
|
-
const config = useContext(
|
|
39
|
+
export function useTamboConfig() {
|
|
40
|
+
const config = useContext(TamboConfigContext);
|
|
41
41
|
if (!config) {
|
|
42
|
-
throw new Error("
|
|
42
|
+
throw new Error("useTamboConfig must be used within TamboProvider");
|
|
43
43
|
}
|
|
44
44
|
return config;
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Internal component that emits console warnings for auth misconfiguration.
|
|
48
48
|
* Rendered inside the provider tree so both TamboClientContext and
|
|
49
|
-
*
|
|
49
|
+
* TamboConfigContext are available.
|
|
50
50
|
*/
|
|
51
|
-
function
|
|
52
|
-
const authState =
|
|
51
|
+
function TamboAuthWarnings() {
|
|
52
|
+
const authState = useTamboAuthState();
|
|
53
53
|
const authError = authState.status === "error" ? authState.error : null;
|
|
54
54
|
useEffect(() => {
|
|
55
55
|
switch (authState.status) {
|
|
56
56
|
case "unauthenticated":
|
|
57
|
-
console.warn("[
|
|
57
|
+
console.warn("[TamboProvider] Neither userKey nor userToken provided. " +
|
|
58
58
|
"API requests will be blocked until authentication is configured.");
|
|
59
59
|
break;
|
|
60
60
|
case "invalid":
|
|
61
|
-
console.warn("[
|
|
61
|
+
console.warn("[TamboProvider] Both userKey and userToken were provided. " +
|
|
62
62
|
"You must provide one or the other, not both.");
|
|
63
63
|
break;
|
|
64
64
|
case "error":
|
|
65
|
-
console.warn("[
|
|
65
|
+
console.warn("[TamboProvider] Token exchange failed:", authError);
|
|
66
66
|
break;
|
|
67
67
|
}
|
|
68
68
|
}, [authState.status, authError]);
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* Main provider for the Tambo
|
|
72
|
+
* Main provider for the Tambo SDK.
|
|
73
73
|
*
|
|
74
|
-
* Composes TamboClientProvider, TamboRegistryProvider, and
|
|
74
|
+
* Composes TamboClientProvider, TamboRegistryProvider, and TamboStreamProvider
|
|
75
75
|
* to provide a complete context for building AI-powered applications.
|
|
76
76
|
*
|
|
77
|
-
* Threads are managed dynamically through
|
|
77
|
+
* Threads are managed dynamically through useTambo() hook functions:
|
|
78
78
|
* - startNewThread() - Begin a new conversation
|
|
79
79
|
* - switchThread(threadId) - Switch to an existing thread
|
|
80
80
|
* - initThread(threadId) - Initialize a thread for receiving events
|
|
@@ -98,22 +98,22 @@ function TamboV1AuthWarnings() {
|
|
|
98
98
|
* @returns Provider component tree
|
|
99
99
|
* @example
|
|
100
100
|
* ```tsx
|
|
101
|
-
* import {
|
|
101
|
+
* import { TamboProvider } from '@tambo-ai/react';
|
|
102
102
|
*
|
|
103
103
|
* function App() {
|
|
104
104
|
* return (
|
|
105
|
-
* <
|
|
105
|
+
* <TamboProvider
|
|
106
106
|
* apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}
|
|
107
107
|
* components={[WeatherCard, StockChart]}
|
|
108
108
|
* tools={[searchTool, calculatorTool]}
|
|
109
109
|
* >
|
|
110
110
|
* <ChatInterface />
|
|
111
|
-
* </
|
|
111
|
+
* </TamboProvider>
|
|
112
112
|
* );
|
|
113
113
|
* }
|
|
114
114
|
* ```
|
|
115
115
|
*/
|
|
116
|
-
export function
|
|
116
|
+
export function TamboProvider({ apiKey, tamboUrl, environment, userToken, components, tools, mcpServers, onCallUnregisteredTool, resources, listResources, getResource, contextHelpers, userKey, autoGenerateThreadName, autoGenerateNameThreshold, initialMessages, children, }) {
|
|
117
117
|
// Config is static - created once and never changes
|
|
118
118
|
const config = {
|
|
119
119
|
userKey,
|
|
@@ -121,16 +121,16 @@ export function TamboV1Provider({ apiKey, tamboUrl, environment, userToken, comp
|
|
|
121
121
|
autoGenerateNameThreshold,
|
|
122
122
|
initialMessages,
|
|
123
123
|
};
|
|
124
|
-
return (React.createElement(TamboClientProvider, { apiKey: apiKey, tamboUrl: tamboUrl, environment: environment, userToken: userToken },
|
|
124
|
+
return (React.createElement(TamboClientProvider, { apiKey: apiKey, tamboUrl: tamboUrl, environment: environment, userToken: userToken, userKey: userKey },
|
|
125
125
|
React.createElement(TamboRegistryProvider, { components: components, tools: tools, mcpServers: mcpServers, onCallUnregisteredTool: onCallUnregisteredTool, resources: resources, listResources: listResources, getResource: getResource },
|
|
126
126
|
React.createElement(TamboContextHelpersProvider, { contextHelpers: contextHelpers },
|
|
127
127
|
React.createElement(TamboMcpTokenProvider, null,
|
|
128
128
|
React.createElement(TamboMcpProvider, null,
|
|
129
129
|
React.createElement(TamboContextAttachmentProvider, null,
|
|
130
130
|
React.createElement(TamboInteractableProvider, null,
|
|
131
|
-
React.createElement(
|
|
132
|
-
React.createElement(
|
|
133
|
-
React.createElement(
|
|
134
|
-
React.createElement(
|
|
131
|
+
React.createElement(TamboConfigContext.Provider, { value: config },
|
|
132
|
+
React.createElement(TamboAuthWarnings, null),
|
|
133
|
+
React.createElement(TamboStreamProvider, { initialMessages: initialMessages },
|
|
134
|
+
React.createElement(TamboThreadInputProvider, null, children)))))))))));
|
|
135
135
|
}
|
|
136
136
|
//# sourceMappingURL=tambo-v1-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-v1-provider.js","sourceRoot":"","sources":["../../../src/v1/providers/tambo-v1-provider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\n/**\n * TamboV1Provider - Main Provider for v1 API\n *\n * Composes the necessary providers for the v1 SDK:\n * - TamboClientProvider: API client and authentication\n * - TamboRegistryProvider: Component and tool registration\n * - TamboContextHelpersProvider: Context helper functions\n * - TamboMcpTokenProvider: MCP access token management\n * - TamboMcpProvider: MCP server connections and tool discovery\n * - TamboContextAttachmentProvider: Single-message context attachments\n * - TamboInteractableProvider: Interactive component tracking\n * - TamboV1StreamProvider: Streaming state management\n *\n * This provider should wrap your entire application or the portion\n * that needs access to Tambo v1 functionality.\n */\n\nimport React, {\n createContext,\n useContext,\n useEffect,\n type PropsWithChildren,\n} from \"react\";\nimport { useTamboV1AuthState } from \"../hooks/use-tambo-v1-auth-state\";\nimport {\n TamboClientProvider,\n type TamboClientProviderProps,\n} from \"../../providers/tambo-client-provider\";\nimport {\n TamboRegistryProvider,\n type TamboRegistryProviderProps,\n} from \"../../providers/tambo-registry-provider\";\nimport { TamboContextAttachmentProvider } from \"../../providers/tambo-context-attachment-provider\";\nimport { TamboContextHelpersProvider } from \"../../providers/tambo-context-helpers-provider\";\nimport { TamboInteractableProvider } from \"../../providers/tambo-interactable-provider\";\nimport { TamboMcpTokenProvider } from \"../../providers/tambo-mcp-token-provider\";\nimport { TamboMcpProvider } from \"../../mcp/tambo-mcp-provider\";\nimport type { ContextHelpers } from \"../../context-helpers\";\nimport type { McpServerInfo } from \"../../model/mcp-server-info\";\nimport type {\n ListResourceItem,\n ResourceSource,\n} from \"../../model/resource-info\";\nimport type { InitialInputMessage } from \"../types/message\";\nimport { TamboV1StreamProvider } from \"./tambo-v1-stream-context\";\nimport { TamboV1ThreadInputProvider } from \"./tambo-v1-thread-input-provider\";\n\n/**\n * Configuration values for v1 SDK.\n * These are static values that don't change during the session.\n */\nexport interface TamboV1Config {\n /** User key for thread ownership and scoping */\n userKey?: string;\n /** Whether to automatically generate thread names after a threshold of messages. Defaults to true. */\n autoGenerateThreadName?: boolean;\n /** The message count threshold at which the thread name will be auto-generated. Defaults to 3. */\n autoGenerateNameThreshold?: number;\n /**\n * Initial messages to seed new threads with.\n * These are displayed in the UI immediately and sent to the API on first message.\n */\n initialMessages?: InitialInputMessage[];\n}\n\n/**\n * Context for v1 SDK configuration.\n * @internal\n */\nexport const TamboV1ConfigContext = createContext<TamboV1Config | null>(null);\n\n/**\n * Hook to access v1 SDK configuration.\n * @returns Configuration values including userKey\n * @throws {Error} If used outside TamboV1Provider\n */\nexport function useTamboV1Config(): TamboV1Config {\n const config = useContext(TamboV1ConfigContext);\n if (!config) {\n throw new Error(\"useTamboV1Config must be used within TamboV1Provider\");\n }\n return config;\n}\n\n/**\n * Props for TamboV1Provider\n */\nexport interface TamboV1ProviderProps extends Pick<\n TamboClientProviderProps,\n \"apiKey\" | \"tamboUrl\" | \"environment\" | \"userToken\"\n> {\n /**\n * Components to register with the registry.\n * These will be available for the AI to use in responses.\n */\n components?: TamboRegistryProviderProps[\"components\"];\n\n /**\n * Tools to register with the registry.\n * These will be executed client-side when requested by the AI.\n */\n tools?: TamboRegistryProviderProps[\"tools\"];\n\n /**\n * MCP servers to register with the registry.\n * These provide additional tools and resources from MCP-compatible servers.\n */\n mcpServers?: (McpServerInfo | string)[];\n\n /**\n * Callback function called when an unregistered tool is called.\n * If not provided, an error will be thrown for unknown tools.\n */\n onCallUnregisteredTool?: TamboRegistryProviderProps[\"onCallUnregisteredTool\"];\n\n /**\n * Static resources to register with the registry.\n * These will be available for the AI to access.\n */\n resources?: ListResourceItem[];\n\n /**\n * Dynamic resource search function.\n * Must be paired with getResource.\n * Called when searching for resources dynamically.\n */\n listResources?: ResourceSource[\"listResources\"];\n\n /**\n * Dynamic resource fetch function.\n * Must be paired with listResources.\n * Called when fetching a specific resource by URI.\n */\n getResource?: ResourceSource[\"getResource\"];\n\n /**\n * Configuration for context helpers.\n * A dictionary of functions that provide additional context to the AI.\n * Each key becomes the context name, and the function returns the value.\n */\n contextHelpers?: ContextHelpers;\n\n /**\n * User key for thread ownership and scoping.\n *\n * **Required**: You must provide either `userKey` OR `userToken` (which contains a userKey).\n * All thread operations (create, list, fetch) only return threads owned by this userKey.\n *\n * - Use `userKey` for server-side or trusted environments where you control the user identity\n * - Use `userToken` (OAuth bearer token) for client-side apps where the token contains the userKey\n */\n userKey?: string;\n\n /**\n * Whether to automatically generate thread names after a threshold of messages.\n * Defaults to true.\n */\n autoGenerateThreadName?: boolean;\n\n /**\n * The message count threshold at which the thread name will be auto-generated.\n * Defaults to 3.\n */\n autoGenerateNameThreshold?: number;\n\n /**\n * Initial messages to seed new threads with.\n * These are displayed in the UI immediately (before the first API call)\n * and sent to the API when the first message is sent to create the thread.\n */\n initialMessages?: InitialInputMessage[];\n\n /**\n * Children components\n */\n children: React.ReactNode;\n}\n\n/**\n * Internal component that emits console warnings for auth misconfiguration.\n * Rendered inside the provider tree so both TamboClientContext and\n * TamboV1ConfigContext are available.\n */\nfunction TamboV1AuthWarnings(): null {\n const authState = useTamboV1AuthState();\n const authError = authState.status === \"error\" ? authState.error : null;\n\n useEffect(() => {\n switch (authState.status) {\n case \"unauthenticated\":\n console.warn(\n \"[TamboV1Provider] Neither userKey nor userToken provided. \" +\n \"API requests will be blocked until authentication is configured.\",\n );\n break;\n case \"invalid\":\n console.warn(\n \"[TamboV1Provider] Both userKey and userToken were provided. \" +\n \"You must provide one or the other, not both.\",\n );\n break;\n case \"error\":\n console.warn(\"[TamboV1Provider] Token exchange failed:\", authError);\n break;\n }\n }, [authState.status, authError]);\n\n return null;\n}\n\n/**\n * Main provider for the Tambo v1 SDK.\n *\n * Composes TamboClientProvider, TamboRegistryProvider, and TamboV1StreamProvider\n * to provide a complete context for building AI-powered applications.\n *\n * Threads are managed dynamically through useTamboV1() hook functions:\n * - startNewThread() - Begin a new conversation\n * - switchThread(threadId) - Switch to an existing thread\n * - initThread(threadId) - Initialize a thread for receiving events\n * @param props - Provider configuration\n * @param props.apiKey - Tambo API key for authentication\n * @param props.tamboUrl - Optional custom Tambo API URL\n * @param props.environment - Optional environment configuration\n * @param props.userToken - Optional OAuth token for user authentication\n * @param props.components - Components to register with the AI\n * @param props.tools - Tools to register for client-side execution\n * @param props.mcpServers - MCP servers to register for additional tools/resources\n * @param props.onCallUnregisteredTool - Callback for handling unknown tool calls\n * @param props.resources - Static resources to register with the AI\n * @param props.listResources - Dynamic resource search function (must be paired with getResource)\n * @param props.getResource - Dynamic resource fetch function (must be paired with listResources)\n * @param props.contextHelpers - Configuration for context helper functions\n * @param props.userKey - User key for thread ownership (required if not using userToken)\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.children - Child components\n * @returns Provider component tree\n * @example\n * ```tsx\n * import { TamboV1Provider } from '@tambo-ai/react/v1';\n *\n * function App() {\n * return (\n * <TamboV1Provider\n * apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}\n * components={[WeatherCard, StockChart]}\n * tools={[searchTool, calculatorTool]}\n * >\n * <ChatInterface />\n * </TamboV1Provider>\n * );\n * }\n * ```\n */\nexport function TamboV1Provider({\n apiKey,\n tamboUrl,\n environment,\n userToken,\n components,\n tools,\n mcpServers,\n onCallUnregisteredTool,\n resources,\n listResources,\n getResource,\n contextHelpers,\n userKey,\n autoGenerateThreadName,\n autoGenerateNameThreshold,\n initialMessages,\n children,\n}: PropsWithChildren<TamboV1ProviderProps>) {\n // Config is static - created once and never changes\n const config: TamboV1Config = {\n userKey,\n autoGenerateThreadName,\n autoGenerateNameThreshold,\n initialMessages,\n };\n\n return (\n <TamboClientProvider\n apiKey={apiKey}\n tamboUrl={tamboUrl}\n environment={environment}\n userToken={userToken}\n >\n <TamboRegistryProvider\n components={components}\n tools={tools}\n mcpServers={mcpServers}\n onCallUnregisteredTool={onCallUnregisteredTool}\n resources={resources}\n listResources={listResources}\n getResource={getResource}\n >\n <TamboContextHelpersProvider contextHelpers={contextHelpers}>\n <TamboMcpTokenProvider>\n <TamboMcpProvider>\n <TamboContextAttachmentProvider>\n <TamboInteractableProvider>\n <TamboV1ConfigContext.Provider value={config}>\n <TamboV1AuthWarnings />\n <TamboV1StreamProvider initialMessages={initialMessages}>\n <TamboV1ThreadInputProvider>\n {children}\n </TamboV1ThreadInputProvider>\n </TamboV1StreamProvider>\n </TamboV1ConfigContext.Provider>\n </TamboInteractableProvider>\n </TamboContextAttachmentProvider>\n </TamboMcpProvider>\n </TamboMcpTokenProvider>\n </TamboContextHelpersProvider>\n </TamboRegistryProvider>\n </TamboClientProvider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tambo-v1-provider.js","sourceRoot":"","sources":["../../../src/v1/providers/tambo-v1-provider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\n/**\n * TamboProvider - Main Provider\n *\n * Composes the necessary providers for the SDK:\n * - TamboClientProvider: API client and authentication\n * - TamboRegistryProvider: Component and tool registration\n * - TamboContextHelpersProvider: Context helper functions\n * - TamboMcpTokenProvider: MCP access token management\n * - TamboMcpProvider: MCP server connections and tool discovery\n * - TamboContextAttachmentProvider: Single-message context attachments\n * - TamboInteractableProvider: Interactive component tracking\n * - TamboStreamProvider: Streaming state management\n *\n * This provider should wrap your entire application or the portion\n * that needs access to Tambo functionality.\n */\n\nimport React, {\n createContext,\n useContext,\n useEffect,\n type PropsWithChildren,\n} from \"react\";\nimport { useTamboAuthState } from \"../hooks/use-tambo-v1-auth-state\";\nimport {\n TamboClientProvider,\n type TamboClientProviderProps,\n} from \"../../providers/tambo-client-provider\";\nimport {\n TamboRegistryProvider,\n type TamboRegistryProviderProps,\n} from \"../../providers/tambo-registry-provider\";\nimport { TamboContextAttachmentProvider } from \"../../providers/tambo-context-attachment-provider\";\nimport { TamboContextHelpersProvider } from \"../../providers/tambo-context-helpers-provider\";\nimport { TamboInteractableProvider } from \"../../providers/tambo-interactable-provider\";\nimport { TamboMcpTokenProvider } from \"../../providers/tambo-mcp-token-provider\";\nimport { TamboMcpProvider } from \"../../mcp/tambo-mcp-provider\";\nimport type { ContextHelpers } from \"../../context-helpers\";\nimport type { McpServerInfo } from \"../../model/mcp-server-info\";\nimport type {\n ListResourceItem,\n ResourceSource,\n} from \"../../model/resource-info\";\nimport type { InitialInputMessage } from \"../types/message\";\nimport { TamboStreamProvider } from \"./tambo-v1-stream-context\";\nimport { TamboThreadInputProvider } from \"./tambo-v1-thread-input-provider\";\n\n/**\n * Configuration values for the SDK.\n * These are static values that don't change during the session.\n */\nexport interface TamboConfig {\n /** User key for thread ownership and scoping */\n userKey?: string;\n /** Whether to automatically generate thread names after a threshold of messages. Defaults to true. */\n autoGenerateThreadName?: boolean;\n /** The message count threshold at which the thread name will be auto-generated. Defaults to 3. */\n autoGenerateNameThreshold?: number;\n /**\n * Initial messages to seed new threads with.\n * These are displayed in the UI immediately and sent to the API on first message.\n */\n initialMessages?: InitialInputMessage[];\n}\n\n/**\n * Context for SDK configuration.\n * @internal\n */\nexport const TamboConfigContext = createContext<TamboConfig | null>(null);\n\n/**\n * Hook to access SDK configuration.\n * @returns Configuration values including userKey\n * @throws {Error} If used outside TamboProvider\n */\nexport function useTamboConfig(): TamboConfig {\n const config = useContext(TamboConfigContext);\n if (!config) {\n throw new Error(\"useTamboConfig must be used within TamboProvider\");\n }\n return config;\n}\n\n/**\n * Props for TamboProvider\n */\nexport interface TamboProviderProps extends Pick<\n TamboClientProviderProps,\n \"apiKey\" | \"tamboUrl\" | \"environment\" | \"userToken\"\n> {\n /**\n * Components to register with the registry.\n * These will be available for the AI to use in responses.\n */\n components?: TamboRegistryProviderProps[\"components\"];\n\n /**\n * Tools to register with the registry.\n * These will be executed client-side when requested by the AI.\n */\n tools?: TamboRegistryProviderProps[\"tools\"];\n\n /**\n * MCP servers to register with the registry.\n * These provide additional tools and resources from MCP-compatible servers.\n */\n mcpServers?: (McpServerInfo | string)[];\n\n /**\n * Callback function called when an unregistered tool is called.\n * If not provided, an error will be thrown for unknown tools.\n */\n onCallUnregisteredTool?: TamboRegistryProviderProps[\"onCallUnregisteredTool\"];\n\n /**\n * Static resources to register with the registry.\n * These will be available for the AI to access.\n */\n resources?: ListResourceItem[];\n\n /**\n * Dynamic resource search function.\n * Must be paired with getResource.\n * Called when searching for resources dynamically.\n */\n listResources?: ResourceSource[\"listResources\"];\n\n /**\n * Dynamic resource fetch function.\n * Must be paired with listResources.\n * Called when fetching a specific resource by URI.\n */\n getResource?: ResourceSource[\"getResource\"];\n\n /**\n * Configuration for context helpers.\n * A dictionary of functions that provide additional context to the AI.\n * Each key becomes the context name, and the function returns the value.\n */\n contextHelpers?: ContextHelpers;\n\n /**\n * User key for thread ownership and scoping.\n *\n * **Required**: You must provide either `userKey` OR `userToken` (which contains a userKey).\n * All thread operations (create, list, fetch) only return threads owned by this userKey.\n *\n * - Use `userKey` for server-side or trusted environments where you control the user identity\n * - Use `userToken` (OAuth bearer token) for client-side apps where the token contains the userKey\n */\n userKey?: string;\n\n /**\n * Whether to automatically generate thread names after a threshold of messages.\n * Defaults to true.\n */\n autoGenerateThreadName?: boolean;\n\n /**\n * The message count threshold at which the thread name will be auto-generated.\n * Defaults to 3.\n */\n autoGenerateNameThreshold?: number;\n\n /**\n * Initial messages to seed new threads with.\n * These are displayed in the UI immediately (before the first API call)\n * and sent to the API when the first message is sent to create the thread.\n */\n initialMessages?: InitialInputMessage[];\n\n /**\n * Children components\n */\n children: React.ReactNode;\n}\n\n/**\n * Internal component that emits console warnings for auth misconfiguration.\n * Rendered inside the provider tree so both TamboClientContext and\n * TamboConfigContext are available.\n */\nfunction TamboAuthWarnings(): null {\n const authState = useTamboAuthState();\n const authError = authState.status === \"error\" ? authState.error : null;\n\n useEffect(() => {\n switch (authState.status) {\n case \"unauthenticated\":\n console.warn(\n \"[TamboProvider] Neither userKey nor userToken provided. \" +\n \"API requests will be blocked until authentication is configured.\",\n );\n break;\n case \"invalid\":\n console.warn(\n \"[TamboProvider] Both userKey and userToken were provided. \" +\n \"You must provide one or the other, not both.\",\n );\n break;\n case \"error\":\n console.warn(\"[TamboProvider] Token exchange failed:\", authError);\n break;\n }\n }, [authState.status, authError]);\n\n return null;\n}\n\n/**\n * Main provider for the Tambo SDK.\n *\n * Composes TamboClientProvider, TamboRegistryProvider, and TamboStreamProvider\n * to provide a complete context for building AI-powered applications.\n *\n * Threads are managed dynamically through useTambo() hook functions:\n * - startNewThread() - Begin a new conversation\n * - switchThread(threadId) - Switch to an existing thread\n * - initThread(threadId) - Initialize a thread for receiving events\n * @param props - Provider configuration\n * @param props.apiKey - Tambo API key for authentication\n * @param props.tamboUrl - Optional custom Tambo API URL\n * @param props.environment - Optional environment configuration\n * @param props.userToken - Optional OAuth token for user authentication\n * @param props.components - Components to register with the AI\n * @param props.tools - Tools to register for client-side execution\n * @param props.mcpServers - MCP servers to register for additional tools/resources\n * @param props.onCallUnregisteredTool - Callback for handling unknown tool calls\n * @param props.resources - Static resources to register with the AI\n * @param props.listResources - Dynamic resource search function (must be paired with getResource)\n * @param props.getResource - Dynamic resource fetch function (must be paired with listResources)\n * @param props.contextHelpers - Configuration for context helper functions\n * @param props.userKey - User key for thread ownership (required if not using userToken)\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.children - Child components\n * @returns Provider component tree\n * @example\n * ```tsx\n * import { TamboProvider } from '@tambo-ai/react';\n *\n * function App() {\n * return (\n * <TamboProvider\n * apiKey={process.env.NEXT_PUBLIC_TAMBO_API_KEY!}\n * components={[WeatherCard, StockChart]}\n * tools={[searchTool, calculatorTool]}\n * >\n * <ChatInterface />\n * </TamboProvider>\n * );\n * }\n * ```\n */\nexport function TamboProvider({\n apiKey,\n tamboUrl,\n environment,\n userToken,\n components,\n tools,\n mcpServers,\n onCallUnregisteredTool,\n resources,\n listResources,\n getResource,\n contextHelpers,\n userKey,\n autoGenerateThreadName,\n autoGenerateNameThreshold,\n initialMessages,\n children,\n}: PropsWithChildren<TamboProviderProps>) {\n // Config is static - created once and never changes\n const config: TamboConfig = {\n userKey,\n autoGenerateThreadName,\n autoGenerateNameThreshold,\n initialMessages,\n };\n\n return (\n <TamboClientProvider\n apiKey={apiKey}\n tamboUrl={tamboUrl}\n environment={environment}\n userToken={userToken}\n userKey={userKey}\n >\n <TamboRegistryProvider\n components={components}\n tools={tools}\n mcpServers={mcpServers}\n onCallUnregisteredTool={onCallUnregisteredTool}\n resources={resources}\n listResources={listResources}\n getResource={getResource}\n >\n <TamboContextHelpersProvider contextHelpers={contextHelpers}>\n <TamboMcpTokenProvider>\n <TamboMcpProvider>\n <TamboContextAttachmentProvider>\n <TamboInteractableProvider>\n <TamboConfigContext.Provider value={config}>\n <TamboAuthWarnings />\n <TamboStreamProvider initialMessages={initialMessages}>\n <TamboThreadInputProvider>\n {children}\n </TamboThreadInputProvider>\n </TamboStreamProvider>\n </TamboConfigContext.Provider>\n </TamboInteractableProvider>\n </TamboContextAttachmentProvider>\n </TamboMcpProvider>\n </TamboMcpTokenProvider>\n </TamboContextHelpersProvider>\n </TamboRegistryProvider>\n </TamboClientProvider>\n );\n}\n"]}
|