@tambo-ai/react 0.65.2 → 0.66.0
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/README.md +174 -81
- package/dist/context-helpers/context-helpers-provider.test.d.ts.map +1 -0
- package/dist/context-helpers/{__tests__/context-helpers-provider.test.js → context-helpers-provider.test.js} +2 -2
- package/dist/context-helpers/context-helpers-provider.test.js.map +1 -0
- package/dist/context-helpers/context-helpers.test.d.ts.map +1 -0
- package/dist/context-helpers/{__tests__/context-helpers.test.js → context-helpers.test.js} +1 -1
- package/dist/context-helpers/context-helpers.test.js.map +1 -0
- package/{esm/providers → dist}/hoc/with-tambo-interactable.d.ts +2 -2
- package/dist/hoc/with-tambo-interactable.d.ts.map +1 -0
- package/dist/{providers/hoc → hoc}/with-tambo-interactable.js +29 -2
- package/dist/hoc/with-tambo-interactable.js.map +1 -0
- package/dist/hoc/with-tambo-interactable.test.d.ts +2 -0
- package/dist/hoc/with-tambo-interactable.test.d.ts.map +1 -0
- package/dist/hoc/with-tambo-interactable.test.js +192 -0
- package/dist/hoc/with-tambo-interactable.test.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-component-state.d.ts +11 -24
- package/dist/hooks/use-component-state.d.ts.map +1 -1
- package/dist/hooks/use-component-state.js +14 -5
- package/dist/hooks/use-component-state.js.map +1 -1
- package/dist/hooks/use-component-state.test.d.ts.map +1 -0
- package/dist/hooks/{__tests__/use-component-state.test.js → use-component-state.test.js} +7 -7
- package/dist/hooks/use-component-state.test.js.map +1 -0
- package/dist/hooks/use-current-message.d.ts +51 -7
- package/dist/hooks/use-current-message.d.ts.map +1 -1
- package/dist/hooks/use-current-message.js +50 -6
- package/dist/hooks/use-current-message.js.map +1 -1
- package/dist/hooks/use-current-message.test.d.ts +2 -0
- package/dist/hooks/use-current-message.test.d.ts.map +1 -0
- package/dist/hooks/use-current-message.test.js +264 -0
- package/dist/hooks/use-current-message.test.js.map +1 -0
- package/dist/hooks/use-message-images.test.d.ts.map +1 -0
- package/dist/hooks/{__tests__/use-message-images.test.js → use-message-images.test.js} +1 -1
- package/dist/hooks/use-message-images.test.js.map +1 -0
- package/dist/hooks/use-streaming-props.d.ts +7 -19
- package/dist/hooks/use-streaming-props.d.ts.map +1 -1
- package/dist/hooks/use-streaming-props.js +7 -19
- package/dist/hooks/use-streaming-props.js.map +1 -1
- package/dist/hooks/use-suggestions.d.ts +1 -1
- package/dist/hooks/use-suggestions.d.ts.map +1 -1
- package/dist/hooks/use-suggestions.js.map +1 -1
- package/dist/hooks/use-suggestions.test.d.ts.map +1 -0
- package/dist/hooks/{__tests__/use-suggestions.test.js → use-suggestions.test.js} +36 -29
- package/dist/hooks/use-suggestions.test.js.map +1 -0
- package/dist/hooks/use-tambo-stream-status.d.ts +9 -8
- package/dist/hooks/use-tambo-stream-status.d.ts.map +1 -1
- package/dist/hooks/use-tambo-stream-status.js +9 -8
- package/dist/hooks/use-tambo-stream-status.js.map +1 -1
- package/dist/hooks/use-tambo-stream-status.test.d.ts.map +1 -0
- package/dist/hooks/{__tests__/use-tambo-stream-status.test.js → use-tambo-stream-status.test.js} +6 -6
- package/dist/hooks/use-tambo-stream-status.test.js.map +1 -0
- package/dist/hooks/use-tambo-threads.test.d.ts.map +1 -0
- package/dist/hooks/{__tests__/use-tambo-threads.test.js → use-tambo-threads.test.js} +3 -3
- package/dist/hooks/use-tambo-threads.test.js.map +1 -0
- package/dist/index.d.ts +10 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/elicitation.d.ts +10 -2
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +19 -1
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/elicitation.test.d.ts.map +1 -0
- package/dist/mcp/{__tests__/elicitation.test.js → elicitation.test.js} +1 -1
- package/dist/mcp/elicitation.test.js.map +1 -0
- package/dist/mcp/index.d.ts +11 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +11 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/mcp-client.d.ts +29 -10
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.test.d.ts.map +1 -0
- package/dist/mcp/{__tests__/mcp-client.test.js → mcp-client.test.js} +1 -1
- package/dist/mcp/mcp-client.test.js.map +1 -0
- package/dist/mcp/mcp-hooks.d.ts +129 -25
- package/dist/mcp/mcp-hooks.d.ts.map +1 -1
- package/dist/mcp/mcp-hooks.js +104 -40
- package/dist/mcp/mcp-hooks.js.map +1 -1
- package/dist/mcp/mcp-hooks.test.d.ts.map +1 -0
- package/dist/mcp/{__tests__/mcp-hooks.test.js → mcp-hooks.test.js} +90 -51
- package/dist/mcp/mcp-hooks.test.js.map +1 -0
- package/dist/mcp/tambo-mcp-provider.d.ts +2 -0
- package/dist/mcp/tambo-mcp-provider.d.ts.map +1 -1
- package/dist/mcp/tambo-mcp-provider.js +60 -13
- package/dist/mcp/tambo-mcp-provider.js.map +1 -1
- package/dist/mcp/tambo-mcp-provider.test.d.ts.map +1 -0
- package/dist/mcp/{__tests__/tambo-mcp-provider.test.js → tambo-mcp-provider.test.js} +9 -25
- package/dist/mcp/tambo-mcp-provider.test.js.map +1 -0
- package/dist/mcp/use-mcp-servers.test.d.ts.map +1 -0
- package/dist/mcp/{__tests__/use-mcp-servers.test.js → use-mcp-servers.test.js} +5 -11
- package/dist/mcp/use-mcp-servers.test.js.map +1 -0
- package/dist/model/component-metadata.d.ts +444 -14
- package/dist/model/component-metadata.d.ts.map +1 -1
- package/dist/model/component-metadata.js.map +1 -1
- package/dist/model/generate-component-response.d.ts +12 -1
- package/dist/model/generate-component-response.d.ts.map +1 -1
- package/dist/model/generate-component-response.js.map +1 -1
- package/dist/model/mcp-server-info.d.ts +3 -1
- package/dist/model/mcp-server-info.d.ts.map +1 -1
- package/dist/model/mcp-server-info.js.map +1 -1
- package/dist/model/resource-info.d.ts +55 -0
- package/dist/model/resource-info.d.ts.map +1 -0
- package/dist/model/resource-info.js +3 -0
- package/dist/model/resource-info.js.map +1 -0
- package/dist/model/tambo-thread.d.ts +6 -1
- package/dist/model/tambo-thread.d.ts.map +1 -1
- package/dist/model/tambo-thread.js.map +1 -1
- package/dist/providers/hooks/use-tambo-session-token.test.d.ts.map +1 -0
- package/dist/providers/hooks/{__tests__/use-tambo-session-token.test.js → use-tambo-session-token.test.js} +1 -1
- package/dist/providers/hooks/use-tambo-session-token.test.js.map +1 -0
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/tambo-client-provider.d.ts +0 -4
- package/dist/providers/tambo-client-provider.d.ts.map +1 -1
- package/dist/providers/tambo-client-provider.js +0 -3
- package/dist/providers/tambo-client-provider.js.map +1 -1
- package/dist/providers/tambo-component-provider.d.ts +4 -4
- package/dist/providers/tambo-component-provider.d.ts.map +1 -1
- package/dist/providers/tambo-component-provider.js.map +1 -1
- package/dist/providers/tambo-context-attachment-provider.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-context-attachment-provider.test.js → tambo-context-attachment-provider.test.js} +2 -2
- package/dist/providers/tambo-context-attachment-provider.test.js.map +1 -0
- package/dist/providers/tambo-context-helpers-provider.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-context-helpers-provider.test.js → tambo-context-helpers-provider.test.js} +2 -2
- package/dist/providers/tambo-context-helpers-provider.test.js.map +1 -0
- package/dist/providers/tambo-interactable-provider-partial-updates.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-interactable-provider-partial-updates.test.js → tambo-interactable-provider-partial-updates.test.js} +91 -91
- package/dist/providers/tambo-interactable-provider-partial-updates.test.js.map +1 -0
- package/dist/providers/tambo-interactable-provider.d.ts +2 -3
- package/dist/providers/tambo-interactable-provider.d.ts.map +1 -1
- package/dist/providers/tambo-interactable-provider.js +47 -41
- package/dist/providers/tambo-interactable-provider.js.map +1 -1
- package/dist/providers/tambo-interactables-additional-context-edge-cases.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.js → tambo-interactables-additional-context-edge-cases.test.js} +17 -17
- package/dist/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -0
- package/dist/providers/tambo-interactables-additional-context.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-interactables-additional-context.test.js → tambo-interactables-additional-context.test.js} +19 -19
- package/dist/providers/tambo-interactables-additional-context.test.js.map +1 -0
- package/dist/providers/tambo-mcp-token-provider.d.ts +20 -13
- package/dist/providers/tambo-mcp-token-provider.d.ts.map +1 -1
- package/dist/providers/tambo-mcp-token-provider.js +122 -10
- package/dist/providers/tambo-mcp-token-provider.js.map +1 -1
- package/dist/providers/tambo-prop-stream-provider.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-prop-stream-provider.test.js → tambo-prop-stream-provider.test.js} +32 -25
- package/dist/providers/tambo-prop-stream-provider.test.js.map +1 -0
- package/dist/providers/tambo-provider.d.ts +2 -2
- package/dist/providers/tambo-provider.d.ts.map +1 -1
- package/dist/providers/tambo-provider.js +5 -7
- package/dist/providers/tambo-provider.js.map +1 -1
- package/dist/providers/tambo-registry-provider.d.ts +28 -7
- package/dist/providers/tambo-registry-provider.d.ts.map +1 -1
- package/dist/providers/tambo-registry-provider.js +70 -181
- package/dist/providers/tambo-registry-provider.js.map +1 -1
- package/dist/providers/tambo-registry-provider.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-registry-provider.test.js → tambo-registry-provider.test.js} +153 -31
- package/dist/providers/tambo-registry-provider.test.js.map +1 -0
- package/dist/providers/tambo-registry-schema-compat.test.d.ts +2 -0
- package/dist/providers/tambo-registry-schema-compat.test.d.ts.map +1 -0
- package/dist/providers/tambo-registry-schema-compat.test.js +616 -0
- package/dist/providers/tambo-registry-schema-compat.test.js.map +1 -0
- package/dist/providers/tambo-stubs.d.ts +2 -2
- package/dist/providers/tambo-stubs.d.ts.map +1 -1
- package/dist/providers/tambo-stubs.js +9 -2
- package/dist/providers/tambo-stubs.js.map +1 -1
- package/dist/providers/tambo-stubs.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-stubs.test.js → tambo-stubs.test.js} +2 -2
- package/dist/providers/tambo-stubs.test.js.map +1 -0
- package/dist/providers/tambo-thread-input-provider.d.ts +2 -1
- package/dist/providers/tambo-thread-input-provider.d.ts.map +1 -1
- package/dist/providers/tambo-thread-input-provider.js +3 -3
- package/dist/providers/tambo-thread-input-provider.js.map +1 -1
- package/dist/providers/tambo-thread-provider-initial-messages.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-thread-provider-initial-messages.test.js → tambo-thread-provider-initial-messages.test.js} +7 -9
- package/dist/providers/tambo-thread-provider-initial-messages.test.js.map +1 -0
- package/dist/providers/tambo-thread-provider.d.ts +8 -0
- package/dist/providers/tambo-thread-provider.d.ts.map +1 -1
- package/dist/providers/tambo-thread-provider.js +82 -19
- package/dist/providers/tambo-thread-provider.js.map +1 -1
- package/dist/providers/tambo-thread-provider.test.d.ts.map +1 -0
- package/dist/providers/{__tests__/tambo-thread-provider.test.js → tambo-thread-provider.test.js} +42 -78
- package/dist/providers/tambo-thread-provider.test.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +18 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/json-schema.d.ts +35 -0
- package/dist/schema/json-schema.d.ts.map +1 -0
- package/dist/schema/json-schema.js +103 -0
- package/dist/schema/json-schema.js.map +1 -0
- package/dist/schema/schema.d.ts +66 -0
- package/dist/schema/schema.d.ts.map +1 -0
- package/dist/schema/schema.js +192 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/schema.test.d.ts +2 -0
- package/dist/schema/schema.test.d.ts.map +1 -0
- package/dist/schema/schema.test.js +41 -0
- package/dist/schema/schema.test.js.map +1 -0
- package/dist/schema/standard-schema.d.ts +21 -0
- package/dist/schema/standard-schema.d.ts.map +1 -0
- package/dist/schema/standard-schema.js +37 -0
- package/dist/schema/standard-schema.js.map +1 -0
- package/dist/schema/validate.d.ts +14 -0
- package/dist/schema/validate.d.ts.map +1 -0
- package/dist/schema/validate.js +148 -0
- package/dist/schema/validate.js.map +1 -0
- package/dist/schema/validate.test.d.ts +2 -0
- package/dist/schema/validate.test.d.ts.map +1 -0
- package/dist/schema/validate.test.js +128 -0
- package/dist/schema/validate.test.js.map +1 -0
- package/dist/schema/zod.d.ts +54 -0
- package/dist/schema/zod.d.ts.map +1 -0
- package/dist/schema/zod.js +135 -0
- package/dist/schema/zod.js.map +1 -0
- package/dist/testing/tools.d.ts +29 -15
- package/dist/testing/tools.d.ts.map +1 -1
- package/dist/testing/tools.js +64 -19
- package/dist/testing/tools.js.map +1 -1
- package/dist/util/content-parts.test.d.ts.map +1 -0
- package/dist/util/{__tests__/content-parts.test.js → content-parts.test.js} +1 -1
- package/dist/util/content-parts.test.js.map +1 -0
- package/dist/util/generate-component.d.ts.map +1 -1
- package/dist/util/generate-component.js +3 -3
- package/dist/util/generate-component.js.map +1 -1
- package/dist/util/mcp-server-utils.d.ts +23 -0
- package/dist/util/mcp-server-utils.d.ts.map +1 -0
- package/dist/util/mcp-server-utils.js +107 -0
- package/dist/util/mcp-server-utils.js.map +1 -0
- package/dist/util/mcp-server-utils.test.d.ts +2 -0
- package/dist/util/mcp-server-utils.test.d.ts.map +1 -0
- package/dist/util/mcp-server-utils.test.js +287 -0
- package/dist/util/mcp-server-utils.test.js.map +1 -0
- package/dist/util/message-builder.d.ts +4 -3
- package/dist/util/message-builder.d.ts.map +1 -1
- package/dist/util/message-builder.js +83 -8
- package/dist/util/message-builder.js.map +1 -1
- package/dist/util/message-builder.test.d.ts.map +1 -0
- package/dist/util/message-builder.test.js +678 -0
- package/dist/util/message-builder.test.js.map +1 -0
- package/dist/util/query-utils.d.ts.map +1 -1
- package/dist/util/query-utils.js +49 -31
- package/dist/util/query-utils.js.map +1 -1
- package/dist/util/registry-validators.d.ts +26 -0
- package/dist/util/registry-validators.d.ts.map +1 -0
- package/dist/util/registry-validators.js +105 -0
- package/dist/util/registry-validators.js.map +1 -0
- package/dist/util/registry-validators.test.d.ts +2 -0
- package/dist/util/registry-validators.test.d.ts.map +1 -0
- package/dist/util/registry-validators.test.js +235 -0
- package/dist/util/registry-validators.test.js.map +1 -0
- package/dist/util/registry.d.ts +35 -7
- package/dist/util/registry.d.ts.map +1 -1
- package/dist/util/registry.js +60 -77
- package/dist/util/registry.js.map +1 -1
- package/dist/util/registry.test.d.ts +2 -0
- package/dist/util/registry.test.d.ts.map +1 -0
- package/dist/util/registry.test.js +204 -0
- package/dist/util/registry.test.js.map +1 -0
- package/dist/util/resource-validators.d.ts +16 -0
- package/dist/util/resource-validators.d.ts.map +1 -0
- package/dist/util/resource-validators.js +34 -0
- package/dist/util/resource-validators.js.map +1 -0
- package/dist/util/tool-caller.d.ts +2 -2
- package/dist/util/tool-caller.d.ts.map +1 -1
- package/dist/util/tool-caller.js +12 -4
- package/dist/util/tool-caller.js.map +1 -1
- package/esm/context-helpers/context-helpers-provider.test.d.ts.map +1 -0
- package/esm/context-helpers/{__tests__/context-helpers-provider.test.js → context-helpers-provider.test.js} +2 -2
- package/esm/context-helpers/context-helpers-provider.test.js.map +1 -0
- package/esm/context-helpers/context-helpers.test.d.ts.map +1 -0
- package/esm/context-helpers/{__tests__/context-helpers.test.js → context-helpers.test.js} +1 -1
- package/esm/context-helpers/context-helpers.test.js.map +1 -0
- package/{dist/providers → esm}/hoc/with-tambo-interactable.d.ts +2 -2
- package/esm/hoc/with-tambo-interactable.d.ts.map +1 -0
- package/esm/{providers/hoc → hoc}/with-tambo-interactable.js +29 -2
- package/esm/hoc/with-tambo-interactable.js.map +1 -0
- package/esm/hoc/with-tambo-interactable.test.d.ts +2 -0
- package/esm/hoc/with-tambo-interactable.test.d.ts.map +1 -0
- package/esm/hoc/with-tambo-interactable.test.js +187 -0
- package/esm/hoc/with-tambo-interactable.test.js.map +1 -0
- package/esm/hooks/index.d.ts +1 -1
- package/esm/hooks/index.d.ts.map +1 -1
- package/esm/hooks/index.js +1 -1
- package/esm/hooks/index.js.map +1 -1
- package/esm/hooks/use-component-state.d.ts +11 -24
- package/esm/hooks/use-component-state.d.ts.map +1 -1
- package/esm/hooks/use-component-state.js +14 -5
- package/esm/hooks/use-component-state.js.map +1 -1
- package/esm/hooks/use-component-state.test.d.ts.map +1 -0
- package/esm/hooks/{__tests__/use-component-state.test.js → use-component-state.test.js} +7 -7
- package/esm/hooks/use-component-state.test.js.map +1 -0
- package/esm/hooks/use-current-message.d.ts +51 -7
- package/esm/hooks/use-current-message.d.ts.map +1 -1
- package/esm/hooks/use-current-message.js +48 -5
- package/esm/hooks/use-current-message.js.map +1 -1
- package/esm/hooks/use-current-message.test.d.ts +2 -0
- package/esm/hooks/use-current-message.test.d.ts.map +1 -0
- package/esm/hooks/use-current-message.test.js +259 -0
- package/esm/hooks/use-current-message.test.js.map +1 -0
- package/esm/hooks/use-message-images.test.d.ts.map +1 -0
- package/esm/hooks/{__tests__/use-message-images.test.js → use-message-images.test.js} +1 -1
- package/esm/hooks/use-message-images.test.js.map +1 -0
- package/esm/hooks/use-streaming-props.d.ts +7 -19
- package/esm/hooks/use-streaming-props.d.ts.map +1 -1
- package/esm/hooks/use-streaming-props.js +7 -19
- package/esm/hooks/use-streaming-props.js.map +1 -1
- package/esm/hooks/use-suggestions.d.ts +1 -1
- package/esm/hooks/use-suggestions.d.ts.map +1 -1
- package/esm/hooks/use-suggestions.js.map +1 -1
- package/esm/hooks/use-suggestions.test.d.ts.map +1 -0
- package/esm/hooks/{__tests__/use-suggestions.test.js → use-suggestions.test.js} +36 -29
- package/esm/hooks/use-suggestions.test.js.map +1 -0
- package/esm/hooks/use-tambo-stream-status.d.ts +9 -8
- package/esm/hooks/use-tambo-stream-status.d.ts.map +1 -1
- package/esm/hooks/use-tambo-stream-status.js +9 -8
- package/esm/hooks/use-tambo-stream-status.js.map +1 -1
- package/esm/hooks/use-tambo-stream-status.test.d.ts.map +1 -0
- package/esm/hooks/{__tests__/use-tambo-stream-status.test.js → use-tambo-stream-status.test.js} +6 -6
- package/esm/hooks/use-tambo-stream-status.test.js.map +1 -0
- package/esm/hooks/use-tambo-threads.test.d.ts.map +1 -0
- package/esm/hooks/{__tests__/use-tambo-threads.test.js → use-tambo-threads.test.js} +3 -3
- package/esm/hooks/use-tambo-threads.test.js.map +1 -0
- package/esm/index.d.ts +10 -8
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -2
- package/esm/index.js.map +1 -1
- package/esm/mcp/elicitation.d.ts +10 -2
- package/esm/mcp/elicitation.d.ts.map +1 -1
- package/esm/mcp/elicitation.js +19 -1
- package/esm/mcp/elicitation.js.map +1 -1
- package/esm/mcp/elicitation.test.d.ts.map +1 -0
- package/esm/mcp/{__tests__/elicitation.test.js → elicitation.test.js} +1 -1
- package/esm/mcp/elicitation.test.js.map +1 -0
- package/esm/mcp/index.d.ts +11 -2
- package/esm/mcp/index.d.ts.map +1 -1
- package/esm/mcp/index.js +10 -1
- package/esm/mcp/index.js.map +1 -1
- package/esm/mcp/mcp-client.d.ts +29 -10
- package/esm/mcp/mcp-client.d.ts.map +1 -1
- package/esm/mcp/mcp-client.test.d.ts.map +1 -0
- package/esm/mcp/{__tests__/mcp-client.test.js → mcp-client.test.js} +1 -1
- package/esm/mcp/mcp-client.test.js.map +1 -0
- package/esm/mcp/mcp-hooks.d.ts +129 -25
- package/esm/mcp/mcp-hooks.d.ts.map +1 -1
- package/esm/mcp/mcp-hooks.js +103 -40
- package/esm/mcp/mcp-hooks.js.map +1 -1
- package/esm/mcp/mcp-hooks.test.d.ts.map +1 -0
- package/esm/mcp/{__tests__/mcp-hooks.test.js → mcp-hooks.test.js} +90 -51
- package/esm/mcp/mcp-hooks.test.js.map +1 -0
- package/esm/mcp/tambo-mcp-provider.d.ts +2 -0
- package/esm/mcp/tambo-mcp-provider.d.ts.map +1 -1
- package/esm/mcp/tambo-mcp-provider.js +60 -13
- package/esm/mcp/tambo-mcp-provider.js.map +1 -1
- package/esm/mcp/tambo-mcp-provider.test.d.ts.map +1 -0
- package/esm/mcp/{__tests__/tambo-mcp-provider.test.js → tambo-mcp-provider.test.js} +9 -25
- package/esm/mcp/tambo-mcp-provider.test.js.map +1 -0
- package/esm/mcp/use-mcp-servers.test.d.ts.map +1 -0
- package/esm/mcp/{__tests__/use-mcp-servers.test.js → use-mcp-servers.test.js} +5 -11
- package/esm/mcp/use-mcp-servers.test.js.map +1 -0
- package/esm/model/component-metadata.d.ts +444 -14
- package/esm/model/component-metadata.d.ts.map +1 -1
- package/esm/model/component-metadata.js.map +1 -1
- package/esm/model/generate-component-response.d.ts +12 -1
- package/esm/model/generate-component-response.d.ts.map +1 -1
- package/esm/model/generate-component-response.js.map +1 -1
- package/esm/model/mcp-server-info.d.ts +3 -1
- package/esm/model/mcp-server-info.d.ts.map +1 -1
- package/esm/model/mcp-server-info.js.map +1 -1
- package/esm/model/resource-info.d.ts +55 -0
- package/esm/model/resource-info.d.ts.map +1 -0
- package/esm/model/resource-info.js +2 -0
- package/esm/model/resource-info.js.map +1 -0
- package/esm/model/tambo-thread.d.ts +6 -1
- package/esm/model/tambo-thread.d.ts.map +1 -1
- package/esm/model/tambo-thread.js.map +1 -1
- package/esm/providers/hooks/use-tambo-session-token.test.d.ts.map +1 -0
- package/esm/providers/hooks/{__tests__/use-tambo-session-token.test.js → use-tambo-session-token.test.js} +1 -1
- package/esm/providers/hooks/use-tambo-session-token.test.js.map +1 -0
- package/esm/providers/index.d.ts +1 -1
- package/esm/providers/index.d.ts.map +1 -1
- package/esm/providers/index.js.map +1 -1
- package/esm/providers/tambo-client-provider.d.ts +0 -4
- package/esm/providers/tambo-client-provider.d.ts.map +1 -1
- package/esm/providers/tambo-client-provider.js +0 -3
- package/esm/providers/tambo-client-provider.js.map +1 -1
- package/esm/providers/tambo-component-provider.d.ts +4 -4
- package/esm/providers/tambo-component-provider.d.ts.map +1 -1
- package/esm/providers/tambo-component-provider.js.map +1 -1
- package/esm/providers/tambo-context-attachment-provider.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-context-attachment-provider.test.js → tambo-context-attachment-provider.test.js} +2 -2
- package/esm/providers/tambo-context-attachment-provider.test.js.map +1 -0
- package/esm/providers/tambo-context-helpers-provider.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-context-helpers-provider.test.js → tambo-context-helpers-provider.test.js} +2 -2
- package/esm/providers/tambo-context-helpers-provider.test.js.map +1 -0
- package/esm/providers/tambo-interactable-provider-partial-updates.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-interactable-provider-partial-updates.test.js → tambo-interactable-provider-partial-updates.test.js} +5 -5
- package/esm/providers/tambo-interactable-provider-partial-updates.test.js.map +1 -0
- package/esm/providers/tambo-interactable-provider.d.ts +2 -3
- package/esm/providers/tambo-interactable-provider.d.ts.map +1 -1
- package/esm/providers/tambo-interactable-provider.js +44 -38
- package/esm/providers/tambo-interactable-provider.js.map +1 -1
- package/esm/providers/tambo-interactables-additional-context-edge-cases.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.js → tambo-interactables-additional-context-edge-cases.test.js} +10 -10
- package/esm/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -0
- package/esm/providers/tambo-interactables-additional-context.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-interactables-additional-context.test.js → tambo-interactables-additional-context.test.js} +10 -10
- package/esm/providers/tambo-interactables-additional-context.test.js.map +1 -0
- package/esm/providers/tambo-mcp-token-provider.d.ts +20 -13
- package/esm/providers/tambo-mcp-token-provider.d.ts.map +1 -1
- package/esm/providers/tambo-mcp-token-provider.js +123 -11
- package/esm/providers/tambo-mcp-token-provider.js.map +1 -1
- package/esm/providers/tambo-prop-stream-provider.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-prop-stream-provider.test.js → tambo-prop-stream-provider.test.js} +32 -25
- package/esm/providers/tambo-prop-stream-provider.test.js.map +1 -0
- package/esm/providers/tambo-provider.d.ts +2 -2
- package/esm/providers/tambo-provider.d.ts.map +1 -1
- package/esm/providers/tambo-provider.js +5 -7
- package/esm/providers/tambo-provider.js.map +1 -1
- package/esm/providers/tambo-registry-provider.d.ts +28 -7
- package/esm/providers/tambo-registry-provider.d.ts.map +1 -1
- package/esm/providers/tambo-registry-provider.js +67 -175
- package/esm/providers/tambo-registry-provider.js.map +1 -1
- package/esm/providers/tambo-registry-provider.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-registry-provider.test.js → tambo-registry-provider.test.js} +149 -27
- package/esm/providers/tambo-registry-provider.test.js.map +1 -0
- package/esm/providers/tambo-registry-schema-compat.test.d.ts +2 -0
- package/esm/providers/tambo-registry-schema-compat.test.d.ts.map +1 -0
- package/esm/providers/tambo-registry-schema-compat.test.js +578 -0
- package/esm/providers/tambo-registry-schema-compat.test.js.map +1 -0
- package/esm/providers/tambo-stubs.d.ts +2 -2
- package/esm/providers/tambo-stubs.d.ts.map +1 -1
- package/esm/providers/tambo-stubs.js +9 -2
- package/esm/providers/tambo-stubs.js.map +1 -1
- package/esm/providers/tambo-stubs.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-stubs.test.js → tambo-stubs.test.js} +2 -2
- package/esm/providers/tambo-stubs.test.js.map +1 -0
- package/esm/providers/tambo-thread-input-provider.d.ts +2 -1
- package/esm/providers/tambo-thread-input-provider.d.ts.map +1 -1
- package/esm/providers/tambo-thread-input-provider.js +3 -3
- package/esm/providers/tambo-thread-input-provider.js.map +1 -1
- package/esm/providers/tambo-thread-provider-initial-messages.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-thread-provider-initial-messages.test.js → tambo-thread-provider-initial-messages.test.js} +7 -9
- package/esm/providers/tambo-thread-provider-initial-messages.test.js.map +1 -0
- package/esm/providers/tambo-thread-provider.d.ts +8 -0
- package/esm/providers/tambo-thread-provider.d.ts.map +1 -1
- package/esm/providers/tambo-thread-provider.js +82 -19
- package/esm/providers/tambo-thread-provider.js.map +1 -1
- package/esm/providers/tambo-thread-provider.test.d.ts.map +1 -0
- package/esm/providers/{__tests__/tambo-thread-provider.test.js → tambo-thread-provider.test.js} +34 -70
- package/esm/providers/tambo-thread-provider.test.js.map +1 -0
- package/esm/schema/index.d.ts +6 -0
- package/esm/schema/index.d.ts.map +1 -0
- package/esm/schema/index.js +6 -0
- package/esm/schema/index.js.map +1 -0
- package/esm/schema/json-schema.d.ts +35 -0
- package/esm/schema/json-schema.d.ts.map +1 -0
- package/esm/schema/json-schema.js +98 -0
- package/esm/schema/json-schema.js.map +1 -0
- package/esm/schema/schema.d.ts +66 -0
- package/esm/schema/schema.d.ts.map +1 -0
- package/esm/schema/schema.js +185 -0
- package/esm/schema/schema.js.map +1 -0
- package/esm/schema/schema.test.d.ts +2 -0
- package/esm/schema/schema.test.d.ts.map +1 -0
- package/esm/schema/schema.test.js +39 -0
- package/esm/schema/schema.test.js.map +1 -0
- package/esm/schema/standard-schema.d.ts +21 -0
- package/esm/schema/standard-schema.d.ts.map +1 -0
- package/esm/schema/standard-schema.js +34 -0
- package/esm/schema/standard-schema.js.map +1 -0
- package/esm/schema/validate.d.ts +14 -0
- package/esm/schema/validate.d.ts.map +1 -0
- package/esm/schema/validate.js +145 -0
- package/esm/schema/validate.js.map +1 -0
- package/esm/schema/validate.test.d.ts +2 -0
- package/esm/schema/validate.test.d.ts.map +1 -0
- package/esm/schema/validate.test.js +126 -0
- package/esm/schema/validate.test.js.map +1 -0
- package/esm/schema/zod.d.ts +54 -0
- package/esm/schema/zod.d.ts.map +1 -0
- package/esm/schema/zod.js +124 -0
- package/esm/schema/zod.js.map +1 -0
- package/esm/testing/tools.d.ts +29 -15
- package/esm/testing/tools.d.ts.map +1 -1
- package/esm/testing/tools.js +62 -16
- package/esm/testing/tools.js.map +1 -1
- package/esm/util/content-parts.test.d.ts.map +1 -0
- package/esm/util/{__tests__/content-parts.test.js → content-parts.test.js} +1 -1
- package/esm/util/content-parts.test.js.map +1 -0
- package/esm/util/generate-component.d.ts.map +1 -1
- package/esm/util/generate-component.js +3 -3
- package/esm/util/generate-component.js.map +1 -1
- package/esm/util/mcp-server-utils.d.ts +23 -0
- package/esm/util/mcp-server-utils.d.ts.map +1 -0
- package/esm/util/mcp-server-utils.js +102 -0
- package/esm/util/mcp-server-utils.js.map +1 -0
- package/esm/util/mcp-server-utils.test.d.ts +2 -0
- package/esm/util/mcp-server-utils.test.d.ts.map +1 -0
- package/esm/util/mcp-server-utils.test.js +285 -0
- package/esm/util/mcp-server-utils.test.js.map +1 -0
- package/esm/util/message-builder.d.ts +4 -3
- package/esm/util/message-builder.d.ts.map +1 -1
- package/esm/util/message-builder.js +83 -8
- package/esm/util/message-builder.js.map +1 -1
- package/esm/util/message-builder.test.d.ts.map +1 -0
- package/esm/util/message-builder.test.js +676 -0
- package/esm/util/message-builder.test.js.map +1 -0
- package/esm/util/query-utils.d.ts.map +1 -1
- package/esm/util/query-utils.js +49 -31
- package/esm/util/query-utils.js.map +1 -1
- package/esm/util/registry-validators.d.ts +26 -0
- package/esm/util/registry-validators.d.ts.map +1 -0
- package/esm/util/registry-validators.js +100 -0
- package/esm/util/registry-validators.js.map +1 -0
- package/esm/util/registry-validators.test.d.ts +2 -0
- package/esm/util/registry-validators.test.d.ts.map +1 -0
- package/esm/util/registry-validators.test.js +233 -0
- package/esm/util/registry-validators.test.js.map +1 -0
- package/esm/util/registry.d.ts +35 -7
- package/esm/util/registry.d.ts.map +1 -1
- package/esm/util/registry.js +57 -73
- package/esm/util/registry.js.map +1 -1
- package/esm/util/registry.test.d.ts +2 -0
- package/esm/util/registry.test.d.ts.map +1 -0
- package/esm/util/registry.test.js +169 -0
- package/esm/util/registry.test.js.map +1 -0
- package/esm/util/resource-validators.d.ts +16 -0
- package/esm/util/resource-validators.d.ts.map +1 -0
- package/esm/util/resource-validators.js +30 -0
- package/esm/util/resource-validators.js.map +1 -0
- package/esm/util/tool-caller.d.ts +2 -2
- package/esm/util/tool-caller.d.ts.map +1 -1
- package/esm/util/tool-caller.js +12 -4
- package/esm/util/tool-caller.js.map +1 -1
- package/package.json +30 -11
- package/dist/__tests__/util/validate-zod-schema.test.d.ts +0 -2
- package/dist/__tests__/util/validate-zod-schema.test.d.ts.map +0 -1
- package/dist/__tests__/util/validate-zod-schema.test.js +0 -96
- package/dist/__tests__/util/validate-zod-schema.test.js.map +0 -1
- package/dist/context-helpers/__tests__/context-helpers-provider.test.d.ts.map +0 -1
- package/dist/context-helpers/__tests__/context-helpers-provider.test.js.map +0 -1
- package/dist/context-helpers/__tests__/context-helpers.test.d.ts.map +0 -1
- package/dist/context-helpers/__tests__/context-helpers.test.js.map +0 -1
- package/dist/hooks/__tests__/use-component-state.test.d.ts.map +0 -1
- package/dist/hooks/__tests__/use-component-state.test.js.map +0 -1
- package/dist/hooks/__tests__/use-message-images.test.d.ts.map +0 -1
- package/dist/hooks/__tests__/use-message-images.test.js.map +0 -1
- package/dist/hooks/__tests__/use-suggestions.test.d.ts.map +0 -1
- package/dist/hooks/__tests__/use-suggestions.test.js.map +0 -1
- package/dist/hooks/__tests__/use-tambo-stream-status.test.d.ts.map +0 -1
- package/dist/hooks/__tests__/use-tambo-stream-status.test.js.map +0 -1
- package/dist/hooks/__tests__/use-tambo-threads.test.d.ts.map +0 -1
- package/dist/hooks/__tests__/use-tambo-threads.test.js.map +0 -1
- package/dist/mcp/__tests__/elicitation.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/elicitation.test.js.map +0 -1
- package/dist/mcp/__tests__/mcp-client.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/mcp-client.test.js.map +0 -1
- package/dist/mcp/__tests__/mcp-hooks.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/mcp-hooks.test.js.map +0 -1
- package/dist/mcp/__tests__/tambo-mcp-provider.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/tambo-mcp-provider.test.js.map +0 -1
- package/dist/mcp/__tests__/use-mcp-servers.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/use-mcp-servers.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-context-attachment-provider.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-context-attachment-provider.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-context-helpers-provider.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-context-helpers-provider.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-interactable-provider-partial-updates.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-interactable-provider-partial-updates.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-interactables-additional-context.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-interactables-additional-context.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-prop-stream-provider.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-prop-stream-provider.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-registry-provider.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-registry-provider.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-stubs.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-stubs.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-thread-provider-initial-messages.test.js.map +0 -1
- package/dist/providers/__tests__/tambo-thread-provider.test.d.ts.map +0 -1
- package/dist/providers/__tests__/tambo-thread-provider.test.js.map +0 -1
- package/dist/providers/hoc/with-tambo-interactable.d.ts.map +0 -1
- package/dist/providers/hoc/with-tambo-interactable.js.map +0 -1
- package/dist/providers/hooks/__tests__/use-tambo-session-token.test.d.ts.map +0 -1
- package/dist/providers/hooks/__tests__/use-tambo-session-token.test.js.map +0 -1
- package/dist/util/__tests__/content-parts.test.d.ts.map +0 -1
- package/dist/util/__tests__/content-parts.test.js.map +0 -1
- package/dist/util/__tests__/message-builder.test.d.ts.map +0 -1
- package/dist/util/__tests__/message-builder.test.js +0 -191
- package/dist/util/__tests__/message-builder.test.js.map +0 -1
- package/dist/util/validate-zod-schema.d.ts +0 -10
- package/dist/util/validate-zod-schema.d.ts.map +0 -1
- package/dist/util/validate-zod-schema.js +0 -100
- package/dist/util/validate-zod-schema.js.map +0 -1
- package/esm/__tests__/util/validate-zod-schema.test.d.ts +0 -2
- package/esm/__tests__/util/validate-zod-schema.test.d.ts.map +0 -1
- package/esm/__tests__/util/validate-zod-schema.test.js +0 -94
- package/esm/__tests__/util/validate-zod-schema.test.js.map +0 -1
- package/esm/context-helpers/__tests__/context-helpers-provider.test.d.ts.map +0 -1
- package/esm/context-helpers/__tests__/context-helpers-provider.test.js.map +0 -1
- package/esm/context-helpers/__tests__/context-helpers.test.d.ts.map +0 -1
- package/esm/context-helpers/__tests__/context-helpers.test.js.map +0 -1
- package/esm/hooks/__tests__/use-component-state.test.d.ts.map +0 -1
- package/esm/hooks/__tests__/use-component-state.test.js.map +0 -1
- package/esm/hooks/__tests__/use-message-images.test.d.ts.map +0 -1
- package/esm/hooks/__tests__/use-message-images.test.js.map +0 -1
- package/esm/hooks/__tests__/use-suggestions.test.d.ts.map +0 -1
- package/esm/hooks/__tests__/use-suggestions.test.js.map +0 -1
- package/esm/hooks/__tests__/use-tambo-stream-status.test.d.ts.map +0 -1
- package/esm/hooks/__tests__/use-tambo-stream-status.test.js.map +0 -1
- package/esm/hooks/__tests__/use-tambo-threads.test.d.ts.map +0 -1
- package/esm/hooks/__tests__/use-tambo-threads.test.js.map +0 -1
- package/esm/mcp/__tests__/elicitation.test.d.ts.map +0 -1
- package/esm/mcp/__tests__/elicitation.test.js.map +0 -1
- package/esm/mcp/__tests__/mcp-client.test.d.ts.map +0 -1
- package/esm/mcp/__tests__/mcp-client.test.js.map +0 -1
- package/esm/mcp/__tests__/mcp-hooks.test.d.ts.map +0 -1
- package/esm/mcp/__tests__/mcp-hooks.test.js.map +0 -1
- package/esm/mcp/__tests__/tambo-mcp-provider.test.d.ts.map +0 -1
- package/esm/mcp/__tests__/tambo-mcp-provider.test.js.map +0 -1
- package/esm/mcp/__tests__/use-mcp-servers.test.d.ts.map +0 -1
- package/esm/mcp/__tests__/use-mcp-servers.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-context-attachment-provider.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-context-attachment-provider.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-context-helpers-provider.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-context-helpers-provider.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-interactable-provider-partial-updates.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-interactable-provider-partial-updates.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-interactables-additional-context.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-interactables-additional-context.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-prop-stream-provider.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-prop-stream-provider.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-registry-provider.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-registry-provider.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-stubs.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-stubs.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-thread-provider-initial-messages.test.js.map +0 -1
- package/esm/providers/__tests__/tambo-thread-provider.test.d.ts.map +0 -1
- package/esm/providers/__tests__/tambo-thread-provider.test.js.map +0 -1
- package/esm/providers/hoc/with-tambo-interactable.d.ts.map +0 -1
- package/esm/providers/hoc/with-tambo-interactable.js.map +0 -1
- package/esm/providers/hooks/__tests__/use-tambo-session-token.test.d.ts.map +0 -1
- package/esm/providers/hooks/__tests__/use-tambo-session-token.test.js.map +0 -1
- package/esm/util/__tests__/content-parts.test.d.ts.map +0 -1
- package/esm/util/__tests__/content-parts.test.js.map +0 -1
- package/esm/util/__tests__/message-builder.test.d.ts.map +0 -1
- package/esm/util/__tests__/message-builder.test.js +0 -189
- package/esm/util/__tests__/message-builder.test.js.map +0 -1
- package/esm/util/validate-zod-schema.d.ts +0 -10
- package/esm/util/validate-zod-schema.d.ts.map +0 -1
- package/esm/util/validate-zod-schema.js +0 -97
- package/esm/util/validate-zod-schema.js.map +0 -1
- /package/dist/context-helpers/{__tests__/context-helpers-provider.test.d.ts → context-helpers-provider.test.d.ts} +0 -0
- /package/dist/context-helpers/{__tests__/context-helpers.test.d.ts → context-helpers.test.d.ts} +0 -0
- /package/dist/hooks/{__tests__/use-component-state.test.d.ts → use-component-state.test.d.ts} +0 -0
- /package/dist/hooks/{__tests__/use-message-images.test.d.ts → use-message-images.test.d.ts} +0 -0
- /package/dist/hooks/{__tests__/use-suggestions.test.d.ts → use-suggestions.test.d.ts} +0 -0
- /package/dist/hooks/{__tests__/use-tambo-stream-status.test.d.ts → use-tambo-stream-status.test.d.ts} +0 -0
- /package/dist/hooks/{__tests__/use-tambo-threads.test.d.ts → use-tambo-threads.test.d.ts} +0 -0
- /package/dist/mcp/{__tests__/elicitation.test.d.ts → elicitation.test.d.ts} +0 -0
- /package/dist/mcp/{__tests__/mcp-client.test.d.ts → mcp-client.test.d.ts} +0 -0
- /package/dist/mcp/{__tests__/mcp-hooks.test.d.ts → mcp-hooks.test.d.ts} +0 -0
- /package/dist/mcp/{__tests__/tambo-mcp-provider.test.d.ts → tambo-mcp-provider.test.d.ts} +0 -0
- /package/dist/mcp/{__tests__/use-mcp-servers.test.d.ts → use-mcp-servers.test.d.ts} +0 -0
- /package/dist/providers/hooks/{__tests__/use-tambo-session-token.test.d.ts → use-tambo-session-token.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-context-attachment-provider.test.d.ts → tambo-context-attachment-provider.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-context-helpers-provider.test.d.ts → tambo-context-helpers-provider.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-interactable-provider-partial-updates.test.d.ts → tambo-interactable-provider-partial-updates.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts → tambo-interactables-additional-context-edge-cases.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-interactables-additional-context.test.d.ts → tambo-interactables-additional-context.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-prop-stream-provider.test.d.ts → tambo-prop-stream-provider.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-registry-provider.test.d.ts → tambo-registry-provider.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-stubs.test.d.ts → tambo-stubs.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-thread-provider-initial-messages.test.d.ts → tambo-thread-provider-initial-messages.test.d.ts} +0 -0
- /package/dist/providers/{__tests__/tambo-thread-provider.test.d.ts → tambo-thread-provider.test.d.ts} +0 -0
- /package/dist/util/{__tests__/content-parts.test.d.ts → content-parts.test.d.ts} +0 -0
- /package/dist/util/{__tests__/message-builder.test.d.ts → message-builder.test.d.ts} +0 -0
- /package/esm/context-helpers/{__tests__/context-helpers-provider.test.d.ts → context-helpers-provider.test.d.ts} +0 -0
- /package/esm/context-helpers/{__tests__/context-helpers.test.d.ts → context-helpers.test.d.ts} +0 -0
- /package/esm/hooks/{__tests__/use-component-state.test.d.ts → use-component-state.test.d.ts} +0 -0
- /package/esm/hooks/{__tests__/use-message-images.test.d.ts → use-message-images.test.d.ts} +0 -0
- /package/esm/hooks/{__tests__/use-suggestions.test.d.ts → use-suggestions.test.d.ts} +0 -0
- /package/esm/hooks/{__tests__/use-tambo-stream-status.test.d.ts → use-tambo-stream-status.test.d.ts} +0 -0
- /package/esm/hooks/{__tests__/use-tambo-threads.test.d.ts → use-tambo-threads.test.d.ts} +0 -0
- /package/esm/mcp/{__tests__/elicitation.test.d.ts → elicitation.test.d.ts} +0 -0
- /package/esm/mcp/{__tests__/mcp-client.test.d.ts → mcp-client.test.d.ts} +0 -0
- /package/esm/mcp/{__tests__/mcp-hooks.test.d.ts → mcp-hooks.test.d.ts} +0 -0
- /package/esm/mcp/{__tests__/tambo-mcp-provider.test.d.ts → tambo-mcp-provider.test.d.ts} +0 -0
- /package/esm/mcp/{__tests__/use-mcp-servers.test.d.ts → use-mcp-servers.test.d.ts} +0 -0
- /package/esm/providers/hooks/{__tests__/use-tambo-session-token.test.d.ts → use-tambo-session-token.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-context-attachment-provider.test.d.ts → tambo-context-attachment-provider.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-context-helpers-provider.test.d.ts → tambo-context-helpers-provider.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-interactable-provider-partial-updates.test.d.ts → tambo-interactable-provider-partial-updates.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts → tambo-interactables-additional-context-edge-cases.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-interactables-additional-context.test.d.ts → tambo-interactables-additional-context.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-prop-stream-provider.test.d.ts → tambo-prop-stream-provider.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-registry-provider.test.d.ts → tambo-registry-provider.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-stubs.test.d.ts → tambo-stubs.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-thread-provider-initial-messages.test.d.ts → tambo-thread-provider-initial-messages.test.d.ts} +0 -0
- /package/esm/providers/{__tests__/tambo-thread-provider.test.d.ts → tambo-thread-provider.test.d.ts} +0 -0
- /package/esm/util/{__tests__/content-parts.test.d.ts → content-parts.test.d.ts} +0 -0
- /package/esm/util/{__tests__/message-builder.test.d.ts → message-builder.test.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-metadata.js","sourceRoot":"","sources":["../../src/model/component-metadata.ts"],"names":[],"mappings":"","sourcesContent":["import TamboAI from \"@tambo-ai/typescript-sdk\";\nimport { JSONSchema7 } from \"json-schema\";\nimport { ComponentType } from \"react\";\nimport z from \"zod\";\nimport type zodToJsonSchema from \"zod-to-json-schema\";\n/** Extension of the ToolParameters interface from Tambo AI to include JSONSchema definition */\nexport type ParameterSpec = TamboAI.ToolParameters & {\n schema?: ReturnType<typeof zodToJsonSchema>;\n};\n\n/**\n * Extends the base ContextTool interface from Tambo AI to include schema information\n * for parameter validation using zod-to-json-schema.\n */\nexport interface ComponentContextToolMetadata\n extends TamboAI.ComponentContextToolMetadata {\n parameters: ParameterSpec[];\n}\n\nexport interface ComponentContextTool {\n getComponentContext: (...args: any[]) => Promise<any>;\n definition: ComponentContextToolMetadata;\n}\n\nexport interface RegisteredComponent extends TamboAI.AvailableComponent {\n component: ComponentType<any>;\n loadingComponent?: ComponentType<any>;\n}\n\nexport type ComponentRegistry = Record<string, RegisteredComponent>;\n\nexport type TamboToolRegistry = Record<string, TamboTool>;\n\n/**\n * A JSON Schema that is compatible with the MCP.\n * This is a simplified JSON Schema that is compatible with the MCPClient and the toolSchema.\n *\n * Do not export this type from the SDK.\n */\nexport type JSONSchemaLite = ReturnType<typeof zodToJsonSchema> & {\n description?: string;\n};\n\nexport interface TamboTool<\n Args extends z.ZodTuple<any, any> = z.ZodTuple<any, any>,\n Returns extends z.ZodTypeAny = z.ZodTypeAny,\n> {\n name: string;\n description: string;\n tool: (...args: z.infer<Args>) => z.infer<Returns>;\n toolSchema: z.ZodFunction<Args, Returns> | JSONSchemaLite;\n /**\n * Optional function to transform the tool's return value into an array of content parts.\n * If not provided, the return value will be converted to a string and wrapped in a text content part.\n * @param result - The result returned by the tool function\n * @returns An array of content parts to be sent back to the AI\n */\n transformToContent?: (\n result: z.infer<Returns>,\n ) =>\n | Promise<TamboAI.Beta.Threads.ChatCompletionContentPart[]>\n | TamboAI.Beta.Threads.ChatCompletionContentPart[];\n}\n\nexport type TamboToolAssociations = Record<string, string[]>;\n/**\n * A component that can be registered with the TamboRegistryProvider.\n */\n\nexport interface TamboComponent {\n /** The name of the component */\n name: string;\n /** The description of the component */\n description: string;\n /**\n * The React component to render.\n *\n * Make sure to pass the Component itself, not an instance of the component. For example,\n * if you have a component like this:\n *\n * ```tsx\n * const MyComponent = () => {\n * return <div>My Component</div>;\n * };\n * ```\n *\n * You should pass the `Component`:\n *\n * ```tsx\n * const components = [MyComponent];\n * <TamboRegistryProvider components={components} />\n * ```\n */\n component: ComponentType<any>;\n\n /**\n * A zod schema for the component props. (Recommended)\n * Either this or propsDefinition must be provided, but not both.\n */\n propsSchema?: z.ZodTypeAny | JSONSchema7;\n /**\n * The props definition of the component as a JSON object.\n * Either this or propsSchema must be provided, but not both.\n * @deprecated Use propsSchema instead.\n */\n propsDefinition?: any;\n /** The loading component to render while the component is loading */\n loadingComponent?: ComponentType<any>;\n /** The tools that are associated with the component */\n associatedTools?: TamboTool[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"component-metadata.js","sourceRoot":"","sources":["../../src/model/component-metadata.ts"],"names":[],"mappings":"","sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport TamboAI from \"@tambo-ai/typescript-sdk\";\nimport { JSONSchema7 } from \"json-schema\";\nimport { ComponentType } from \"react\";\nimport {\n ZodFunction as Zod3Function,\n ZodTuple as Zod3FunctionArgs,\n ZodType as Zod3FunctionReturns,\n infer as Zod3Infer,\n} from \"zod/v3\";\nimport {\n $ZodFunction as Zod4Function,\n $ZodFunctionArgs as Zod4FunctionArgs,\n $ZodType as Zod4FunctionReturns,\n infer as Zod4Infer,\n} from \"zod/v4/core\";\n\n/**\n * A schema type that accepts either a Standard Schema compliant validator\n * (e.g., Zod, Valibot, ArkType) or a raw JSON Schema object.\n *\n * Standard Schema is a specification that provides a unified interface for\n * TypeScript validation libraries. Libraries like Zod implement this spec,\n * allowing us to accept any compliant validator without depending on a specific library.\n * @see https://standardschema.dev/\n */\nexport type SupportedSchema = StandardSchemaV1 | JSONSchema7;\n\n/** Extension of the ToolParameters interface from Tambo AI to include JSONSchema definition */\nexport type ParameterSpec = TamboAI.ToolParameters & {\n schema?: JSONSchema7;\n};\n\n/**\n * Extends the base ContextTool interface from Tambo AI to include schema information\n * for parameter validation.\n */\nexport interface ComponentContextToolMetadata\n extends TamboAI.ComponentContextToolMetadata {\n parameters: ParameterSpec[];\n}\n\nexport interface ComponentContextTool {\n getComponentContext: (...args: any[]) => Promise<any>;\n definition: ComponentContextToolMetadata;\n}\n\nexport interface RegisteredComponent extends TamboAI.AvailableComponent {\n component: ComponentType<any>;\n loadingComponent?: ComponentType<any>;\n}\n\nexport type ComponentRegistry = Record<string, RegisteredComponent>;\n\nexport type TamboToolRegistry = Record<\n string,\n TamboTool | TamboToolWithToolSchema\n>;\n\n/**\n * A JSON Schema that is compatible with the MCP.\n * This is a simplified JSON Schema that is compatible with the MCPClient and the tool's inputSchema.\n *\n * Do not export this type from the SDK.\n */\nexport type JSONSchemaLite = JSONSchema7 & {\n description?: string;\n};\n\ntype MaybeAsync<T> = T | Promise<T>;\n\n/**\n * TamboTool is a type that represents a tool that can be registered with Tambo.\n *\n * It is preferable to use the `defineTool` helper function to create tools, as\n * it provides better type inference and safety.\n * @example\n * ```ts\n * import { TamboTool, defineTool } from \"@tambo-ai/react\";\n * import { z } from \"zod\";\n *\n * const locationToLatLon = defineTool({\n * name: \"location_to_latlon\",\n * description:\n * \"Fetch latitude and longitude from a location string. Returns an object with 'lat' and 'lon' properties.\",\n * tool: async ({ location }) => getLatLonFromLocation(location),\n * inputSchema: z.object({\n * location: z.string(),\n * }),\n * outputSchema: z.object({\n * lat: z.number(),\n * lon: z.number(),\n * }),\n * });\n * ```\n * Alternatively, you manually construct a TamboTool with type safety by passing\n * the expected parameter and return types as generics:\n * ```ts\n * import { TamboTool } from \"@tambo-ai/react\";\n * import { z } from \"zod\";\n *\n * const locationToLatLon: TamboTool<{ location: string }, { lat: number; lon: number }> = {\n * name: \"location_to_latlon\",\n * description:\n * \"Fetch latitude and longitude from a location string. Returns an object with 'lat' and 'lon' properties.\",\n * tool: async ({ location }) => getLatLonFromLocation(location),\n * inputSchema: z.object({\n * location: z.string(),\n * }),\n * outputSchema: z.object({\n * lat: z.number(),\n * lon: z.number(),\n * }),\n * });\n * ```\n */\nexport interface TamboTool<\n Params = any,\n Returns = any,\n Rest extends any[] = [],\n> {\n /**\n * Unique identifier for the tool\n */\n name: string;\n /**\n * Description of what the tool does - used by AI to determine when to use it\n */\n description: string;\n /**\n * Optional human-readable name of the tool for display purposes.\n */\n title?: string;\n /**\n * Optional properties describing tool behavior\n */\n annotations?: {\n /**\n * An array indicating the intended audience(s) for this resource. Valid\n * values are \"user\" and \"assistant\". For example, [\"user\", \"assistant\"]\n * indicates content useful for both.\n */\n audience: (\"user\" | \"assistant\")[];\n /**\n * A number from 0.0 to 1.0 indicating the importance of this resource. A\n * value of 1 means \"most important\" (effectively required), while 0 means\n * \"least important\" (entirely optional).\n */\n priority: number;\n /**\n * An ISO 8601 formatted timestamp indicating when the resource was last\n * modified (e.g., \"2025-01-12T15:00:58Z\").\n */\n lastModified: string;\n };\n\n /**\n * The function that implements the tool's logic. This function will be called\n * by Tambo when the model decides to invoke the tool.\n * @param params - The input parameters for the tool. These are validated\n * against the inputSchema before being passed so are guaranteed to be correct\n * when called by the model.\n * @returns The result of the tool execution, which can be a value or a\n * Promise resolving to a value\n */\n tool: (params: Params, ...rest: Rest) => MaybeAsync<Returns>;\n\n /**\n * The schema for the tool's input parameters. This can be a validator from\n * any Standard Schema compliant library (Zod, Valibot, ArkType, etc.) or a\n * raw JSON Schema object.\n *\n * This schema is used to validate and parse the parameters before passing\n * them to the tool function.\n */\n inputSchema: SupportedSchema | unknown;\n\n /**\n * The schema for the tool's output/return value. This can be any Standard Schema\n * compliant validator (Zod, Valibot, ArkType, etc.) or a raw JSON Schema object.\n *\n * This is used to inform the model about the structure of the tool's return value\n * and is not used for runtime validation at this stage.\n */\n outputSchema: SupportedSchema | unknown;\n\n /**\n * Optional function to transform the tool's return value into an array of content parts.\n * If not provided, the return value will be converted to a string and wrapped in a text content part.\n * @param result - The result returned by the tool function\n * @returns An array of content parts to be sent back to the AI\n */\n transformToContent?: (\n result: any,\n ) =>\n | Promise<TamboAI.Beta.Threads.ChatCompletionContentPart[]>\n | TamboAI.Beta.Threads.ChatCompletionContentPart[];\n}\n\n/**\n * Simplified interface for tools using the deprecated toolSchema format.\n * This interface uses simple `any` types to avoid complex type instantiation.\n * Use `defineTamboTool()` for full type inference when creating tools.\n * @deprecated Use TamboTool with `inputSchema`/`outputSchema` instead.\n */\nexport type TamboToolWithToolSchema<\n Args extends any[] = any[],\n Returns = any,\n> = Omit<TamboTool, \"tool\" | \"inputSchema\" | \"outputSchema\"> & {\n tool: (...args: Args) => MaybeAsync<Returns>;\n /** @deprecated Use `inputSchema`/`outputSchema` properties instead. */\n toolSchema: unknown;\n};\n\n// NOTE(lachieh): this comment mirrors the one from `TamboTool` above\n/**\n * TamboTool is a type that represents a tool that can be registered with Tambo.\n *\n * It is preferable to use the `defineTool` helper function to create tools, as\n * it provides better type inference and safety.\n * @example\n * ```ts\n * import { TamboTool, defineTool } from \"@tambo-ai/react\";\n * import { z } from \"zod\";\n *\n * const locationToLatLon = defineTool({\n * name: \"location_to_latlon\",\n * description:\n * \"Fetch latitude and longitude from a location string. Returns an object with 'lat' and 'lon' properties.\",\n * tool: async ({ location }) => getLatLonFromLocation(location),\n * inputSchema: z.object({\n * location: z.string(),\n * }),\n * outputSchema: z.object({\n * lat: z.number(),\n * lon: z.number(),\n * }),\n * });\n * ```\n * Alternatively, you manually construct a TamboTool with type safety by passing\n * the expected parameter and return types as generics:\n * ```ts\n * import { TamboTool } from \"@tambo-ai/react\";\n * import { z } from \"zod\";\n *\n * const locationToLatLon: TamboTool<{ location: string }, { lat: number; lon: number }> = {\n * name: \"location_to_latlon\",\n * description:\n * \"Fetch latitude and longitude from a location string. Returns an object with 'lat' and 'lon' properties.\",\n * tool: async ({ location }) => getLatLonFromLocation(location),\n * inputSchema: z.object({\n * location: z.string(),\n * }),\n * outputSchema: z.object({\n * lat: z.number(),\n * lon: z.number(),\n * }),\n * });\n * ```\n */\nexport type TamboToolBase<Params = any, Returns = any> =\n | TamboToolWithToolSchema\n | TamboTool<Params, Returns>;\n\n/**\n * A tool that uses JSON Schema compliant input and output schemas.\n * This does not provide type safety for the tool's parameters and return value.\n * @internal\n */\nexport type TamboToolJSONSchema<\n Args extends unknown[] = unknown[],\n Returns = unknown,\n> = Omit<TamboTool<Args, Returns>, \"tool\" | \"inputSchema\" | \"outputSchema\"> & {\n tool: (...args: Args) => MaybeAsync<Returns>;\n inputSchema: JSONSchemaLite;\n outputSchema: JSONSchemaLite;\n};\n\n/**\n * A tool that could not be matched to any known schema types.\n * This means type safety cannot be guaranteed.\n * @internal\n */\nexport type TamboToolUnknown = Omit<\n TamboTool,\n \"tool\" | \"inputSchema\" | \"outputSchema\"\n> & {\n tool: (...args: unknown[]) => MaybeAsync<unknown>;\n inputSchema: unknown;\n outputSchema: unknown;\n};\n\n/**\n * A tool that uses Standard Schema compliant input and output schemas.\n * This provides full type safety for the tool's parameters and return value.\n * @internal\n */\nexport type TamboToolStandardSchema<\n Input extends StandardSchemaV1 = StandardSchemaV1,\n Output extends StandardSchemaV1 = StandardSchemaV1,\n> = Omit<\n TamboTool<\n StandardSchemaV1.InferOutput<Input>,\n StandardSchemaV1.InferOutput<Output>\n >,\n \"tool\" | \"inputSchema\" | \"outputSchema\"\n> & {\n tool: (\n ...args: [StandardSchemaV1.InferOutput<Input>]\n ) => MaybeAsync<StandardSchemaV1.InferOutput<Output>>;\n inputSchema: Input;\n outputSchema: Output;\n};\n\ntype TamboToolZod3Function<\n Args extends Zod3FunctionArgs,\n Returns extends Zod3FunctionReturns,\n> = Omit<\n TamboToolWithToolSchema<Zod3Infer<Args>, Zod3Infer<Returns>>,\n \"toolSchema\"\n> & {\n tool: (...args: Zod3Infer<Args>) => MaybeAsync<Zod3Infer<Returns>>;\n /** @deprecated Use `inputSchema`/`outputSchema` properties instead. */\n toolSchema: Zod3Function<Args, Returns>;\n};\n\ntype TamboToolZod4Function<\n Args extends Zod4FunctionArgs,\n Returns extends Zod4FunctionReturns,\n> = Omit<\n TamboToolWithToolSchema<Zod4Infer<Args>, Zod4Infer<Returns>>,\n \"toolSchema\"\n> & {\n tool: (...args: Zod4Infer<Args>) => MaybeAsync<Zod4Infer<Returns>>;\n /** @deprecated Use `inputSchema`/`outputSchema` properties instead. */\n toolSchema: Zod4Function<Args, Returns>;\n};\n\nexport type TamboToolAssociations = Record<string, string[]>;\n/**\n * A component that can be registered with the TamboRegistryProvider.\n */\n\nexport interface TamboComponent {\n /** The name of the component */\n name: string;\n /** The description of the component */\n description: string;\n /**\n * The React component to render.\n *\n * Make sure to pass the Component itself, not an instance of the component. For example,\n * if you have a component like this:\n *\n * ```tsx\n * const MyComponent = () => {\n * return <div>My Component</div>;\n * };\n * ```\n *\n * You should pass the `Component`:\n *\n * ```tsx\n * const components = [MyComponent];\n * <TamboRegistryProvider components={components} />\n * ```\n */\n component: ComponentType<any>;\n\n /**\n * Schema describing the component's props. Accepts any Standard Schema\n * compliant validator (Zod, Valibot, ArkType, etc.) or a raw JSON Schema\n * object.\n *\n * Either this or propsDefinition must be provided, but not both.\n * @example\n * ```typescript\n * import { z } from \"zod/v4\";\n *\n * const component: TamboComponent = {\n * name: \"MyComponent\",\n * description: \"A sample component\",\n * component: MyComponent,\n * propsSchema: z.object({\n * title: z.string(),\n * count: z.number().optional()\n * })\n * };\n * ```\n */\n propsSchema?: SupportedSchema;\n /**\n * The props definition of the component as a JSON object.\n * Either this or propsSchema must be provided, but not both.\n * @deprecated Use propsSchema instead.\n */\n propsDefinition?: any;\n /** The loading component to render while the component is loading */\n loadingComponent?: ComponentType<any>;\n /** The tools that are associated with the component */\n associatedTools?: (TamboTool | TamboToolWithToolSchema)[];\n}\n\nexport interface RegisterToolsFn {\n /**\n * Registers one or more Tambo tools.\n * @param tools - An array of Tambo tools to register\n */\n (tools: TamboTool[]): void;\n (tools: (TamboTool | TamboToolWithToolSchema)[]): void;\n}\n\n/**\n * Function interface for registering a Tambo tool with full type inference.\n * This function has multiple overloads to handle different schema types. This\n * is a utility function and does not perform any runtime logic.\n */\nexport interface RegisterToolFn {\n /**\n * @deprecated Use `inputSchema`/`outputSchema` instead. toolSchema is deprecated\n * and will be removed in future versions.\n * @example\n * ```diff\n * import { z } from \"zod/v3\";\n * const myTool = defineTamboTool({\n * ...\n * - toolSchema: z.function()\n * - .arguments(z.tuple([z.string()]))\n * - .returns(z.number()),\n * + inputSchema: z.object({\n * + input: z.string().describe(\"Input description\")\n * + }),\n * + outputSchema: z.number().describe(\"Result description\"),\n * });\n */\n <Args extends Zod3FunctionArgs, Returns extends Zod3FunctionReturns>(\n tool: TamboToolZod3Function<Args, Returns>,\n warnOnOverwrite?: boolean,\n ): void;\n /**\n * @deprecated Use `inputSchema`/`outputSchema` instead. toolSchema is deprecated\n * and will be removed in future versions.\n * @example\n * ```diff\n * import { z } from \"zod/v4\";\n * const myTool = defineTamboTool({\n * ...\n * - toolSchema: z.function({\n * - input: z.tuple([z.string()]),\n * - output: z.number(),\n * - }),\n * + inputSchema: z.object({\n * + input: z.string().describe(\"Input description\")\n * + }),\n * + outputSchema: z.number().describe(\"Result description\"),\n * });\n */\n <Args extends Zod4FunctionArgs, Returns extends Zod4FunctionReturns>(\n tool: TamboToolZod4Function<Args, Returns>,\n warnOnOverwrite?: boolean,\n ): void;\n (tool: TamboToolWithToolSchema, warnOnOverwrite?: boolean): void;\n <Args extends StandardSchemaV1, Returns extends StandardSchemaV1>(\n tool: TamboTool<\n StandardSchemaV1.InferOutput<Args>,\n StandardSchemaV1.InferOutput<Returns>\n >,\n warnOnOverwrite?: boolean,\n ): void;\n <Args extends any[], Returns = any>(\n tool: TamboToolJSONSchema<Args, Returns>,\n warnOnOverwrite?: boolean,\n ): void;\n (tool: TamboToolUnknown, warnOnOverwrite?: boolean): void;\n (tool: TamboTool, warnOnOverwrite?: boolean): void;\n}\n\n/**\n * Function interface for defining a Tambo tool with full type inference. This\n * function has multiple overloads to handle different schema types. This is a\n * utility function and does not perform any runtime logic.\n */\nexport interface DefineToolFn {\n /**\n * Provides type safety for defining a Tambo Tool.\n *\n * Tambo uses the [standard-schema.dev](https://standard-schema.dev) spec which means you can use any Standard Schema\n * compliant validator (Zod, Valibot, ArkType, etc.). This definition ensures the input and output types are correctly\n * inferred from the provided schemas.\n * @example\n * ```typescript\n * import { z } from \"zod/v4\";\n *\n * const myTool = defineTamboTool({\n * // ...\n * inputSchema: z.object({\n * input: z.string().describe(\"Input description\")\n * }),\n * outputSchema: z.number().describe(\"Result description\"),\n * });\n * ```\n * @see {@link https://standard-schema.dev/}\n * @param tool The tool definition to register\n * @returns The registered tool definition\n */\n <Input extends StandardSchemaV1, Output extends StandardSchemaV1>(\n tool: TamboToolStandardSchema<Input, Output>,\n ): TamboTool<\n StandardSchemaV1.InferOutput<Input>,\n StandardSchemaV1.InferOutput<Output>\n >;\n /**\n * Provides type safety for defining a Tambo Tool.\n *\n * This tool uses the deprecated `toolSchema` format which uses a zod function schema. If you are using a validation\n * library that implements StandardSchema.dev, please switch to using separate `inputSchema` and `outputSchema`\n * properties instead. See example below.\n * @example\n * ```diff\n * import { z } from \"zod/v4\";\n *\n * const myTool = defineTamboTool({\n * // ...\n * - toolSchema: z.function({\n * - input: z.tuple([z.string()]),\n * - output: z.number(),\n * - })\n * + inputSchema: z.object({\n * + input: z.string().describe(\"Input description\")\n * + }),\n * + outputSchema: z.number().describe(\"Result description\"),\n * });\n * @see {@link https://standard-schema.dev/}\n * @param tool The tool definition to register\n * @returns The registered tool definition\n * @deprecated Using `toolSchema` is deprecated. Please use separate `inputSchema` and `outputSchema` properties instead.\n * Note that use of `toolSchema` will be removed in a future release.\n * ```\n */\n <Args extends Zod3FunctionArgs, Returns extends Zod3FunctionReturns>(\n tool: TamboToolZod3Function<Args, Returns>,\n ): TamboToolZod3Function<Args, Returns>;\n /**\n * Provides type safety for defining a Tambo Tool.\n *\n * This tool uses the deprecated `toolSchema` format which uses a zod function schema. If you are using a validation\n * library that implements standard-schema.dev, please switch to using separate `inputSchema` and `outputSchema`\n * properties instead. See example below.\n * @param tool The tool definition to register\n * @returns The registered tool definition\n * @deprecated Using `toolSchema` is deprecated. Please use separate `inputSchema` and `outputSchema` properties instead.\n * Note that use of `toolSchema` will be removed in a future release.\n * @example\n * ```diff\n * import { z } from \"zod/v4\";\n *\n * const myTool = defineTamboTool({\n * // ...\n * - toolSchema: z.function({\n * - input: z.tuple([z.string()]),\n * - output: z.number(),\n * - })\n * + inputSchema: z.object({\n * + input: z.string().describe(\"Input description\")\n * + }),\n * + outputSchema: z.number().describe(\"Result description\"),\n * });\n * ```\n */\n <Args extends Zod4FunctionArgs, Returns extends Zod4FunctionReturns>(\n tool: TamboToolZod4Function<Args, Returns>,\n ): TamboToolZod4Function<Args, Returns>;\n /**\n * Provides type safety for defining a Tambo Tool.\n *\n * This tool uses the deprecated `toolSchema` property which uses a zod function schema. If you are using a validation\n * library that implements standard-schema.dev, please switch to using separate `inputSchema` and `outputSchema`\n * properties instead. See example below.\n * @param tool The tool definition to register\n * @returns The registered tool definition\n * @deprecated Using `toolSchema` is deprecated. Please use separate `inputSchema` and `outputSchema` properties instead.\n * Note that use of `toolSchema` will be removed in a future release.\n * @example\n * ```diff\n * import { z } from \"zod/v4\";\n *\n * const myTool = defineTamboTool({\n * // ...\n * - toolSchema: { ... }\n * + inputSchema: z.object({ ... }),\n * + outputSchema: z.number(),\n * });\n * ```\n */\n (tool: TamboToolWithToolSchema): TamboToolWithToolSchema;\n /**\n * Provides type safety for defining a Tambo Tool.\n *\n * This tool definition matched to JSON Schema input and output schemas which allows does not guarantee type\n * safety. If you are using a validation library that implements\n * [Standard Schema](https://standardschema.dev/#what-tools-frameworks-accept-speccompliant-schemas), please ensure\n * your schemas are correctly typed.\n * @see {@link https://standard-schema.dev/}\n * @param tool The tool definition to register\n * @returns The registered tool definition\n */\n <I extends any[], O = any>(\n tool: TamboToolJSONSchema<I, O>,\n ): TamboToolJSONSchema<I, O>;\n /**\n * Provides type safety for defining a Tambo Tool.\n *\n * This tool definition could not be matched to any known schema types which means type safety cannot be\n * guaranteed. If you are using a validation library that implements\n * [Standard Schema](https://standardschema.dev/#what-tools-frameworks-accept-speccompliant-schemas), please ensure\n * your schemas are correctly typed.\n * @example\n * ```typescript\n * const myTool = defineTamboTool({\n * name: \"myTool\",\n * description: \"An example tool\",\n * tool: (input) => { ... },\n * inputSchema: yourInputSchema,\n * outputSchema: yourOutputSchema,\n * });\n * @param tool The tool definition to register\n * @returns The registered tool definition\n * ```\n */\n (tool: TamboToolUnknown): TamboToolUnknown;\n (tool: TamboTool): TamboTool;\n}\n"]}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import TamboAI from "@tambo-ai/typescript-sdk";
|
|
2
2
|
import { ReactElement } from "react";
|
|
3
|
+
import type { InteractableConfig } from "../hoc/with-tambo-interactable";
|
|
4
|
+
/**
|
|
5
|
+
* Metadata for interactable components.
|
|
6
|
+
* Used when a component is wrapped with withInteractable.
|
|
7
|
+
*/
|
|
8
|
+
export interface InteractableMetadata extends InteractableConfig {
|
|
9
|
+
/** Unique identifier for this interactable instance */
|
|
10
|
+
id: string;
|
|
11
|
+
}
|
|
3
12
|
/**
|
|
4
13
|
* An extension of the TamboAI.Beta.Threads.ThreadMessage type that includes a
|
|
5
|
-
* renderedComponent
|
|
14
|
+
* renderedComponent and optional interactable metadata
|
|
6
15
|
*/
|
|
7
16
|
export interface TamboThreadMessage extends TamboAI.Beta.Threads.ThreadMessage {
|
|
8
17
|
renderedComponent?: ReactElement | null;
|
|
18
|
+
/** Optional metadata for interactable components */
|
|
19
|
+
interactableMetadata?: InteractableMetadata;
|
|
9
20
|
}
|
|
10
21
|
export declare enum GenerationStage {
|
|
11
22
|
IDLE = "IDLE",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-component-response.d.ts","sourceRoot":"","sources":["../../src/model/generate-component-response.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-component-response.d.ts","sourceRoot":"","sources":["../../src/model/generate-component-response.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa;IAC5E,iBAAiB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AACD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,eAAe,WAO3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-component-response.js","sourceRoot":"","sources":["../../src/model/generate-component-response.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generate-component-response.js","sourceRoot":"","sources":["../../src/model/generate-component-response.ts"],"names":[],"mappings":";;;AAsCA,kCAOC;AAtBD,IAAY,eASX;AATD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,4DAAyC,CAAA;IACzC,wDAAqC,CAAA;IACrC,8DAA2C,CAAA;IAC3C,4DAAyC,CAAA;IACzC,wCAAqB,CAAA;IACrB,kCAAe,CAAA;IACf,0CAAuB,CAAA;AACzB,CAAC,EATW,eAAe,+BAAf,eAAe,QAS1B;AACD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,eAAgC;IAC1D,OAAO;QACL,eAAe,CAAC,IAAI;QACpB,eAAe,CAAC,QAAQ;QACxB,eAAe,CAAC,KAAK;QACrB,eAAe,CAAC,SAAS;KAC1B,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["import TamboAI from \"@tambo-ai/typescript-sdk\";\nimport { ReactElement } from \"react\";\nimport type { InteractableConfig } from \"../hoc/with-tambo-interactable\";\n\n/**\n * Metadata for interactable components.\n * Used when a component is wrapped with withInteractable.\n */\nexport interface InteractableMetadata extends InteractableConfig {\n /** Unique identifier for this interactable instance */\n id: string;\n}\n\n/**\n * An extension of the TamboAI.Beta.Threads.ThreadMessage type that includes a\n * renderedComponent and optional interactable metadata\n */\nexport interface TamboThreadMessage extends TamboAI.Beta.Threads.ThreadMessage {\n renderedComponent?: ReactElement | null;\n /** Optional metadata for interactable components */\n interactableMetadata?: InteractableMetadata;\n}\n\nexport enum GenerationStage {\n IDLE = \"IDLE\",\n CHOOSING_COMPONENT = \"CHOOSING_COMPONENT\",\n FETCHING_CONTEXT = \"FETCHING_CONTEXT\",\n HYDRATING_COMPONENT = \"HYDRATING_COMPONENT\",\n STREAMING_RESPONSE = \"STREAMING_RESPONSE\",\n COMPLETE = \"COMPLETE\",\n ERROR = \"ERROR\",\n CANCELLED = \"CANCELLED\",\n}\n/**\n * Checks if the generation stage is in a state where it can accept user input.\n * @param generationStage - The generation stage to check\n * @returns True if the generation stage is idle, false otherwise\n */\nexport function isIdleStage(generationStage: GenerationStage) {\n return [\n GenerationStage.IDLE,\n GenerationStage.COMPLETE,\n GenerationStage.ERROR,\n GenerationStage.CANCELLED,\n ].includes(generationStage);\n}\n"]}
|
|
@@ -14,7 +14,9 @@ export declare enum MCPTransport {
|
|
|
14
14
|
* The `handlers` field is intentionally typed as `unknown` here so the core
|
|
15
15
|
* SDK does not depend on the MCP subpackage. In the `@tambo-ai/react/mcp`
|
|
16
16
|
* subpackage this is treated as `Partial<MCPHandlers>` (with
|
|
17
|
-
* `elicitation` / `sampling` callbacks).
|
|
17
|
+
* `elicitation` / `sampling` callbacks). See the React SDK README for the
|
|
18
|
+
* optional MCP peer dependencies that applications must install when they
|
|
19
|
+
* enable MCP support.
|
|
18
20
|
*/
|
|
19
21
|
export interface McpServerInfo {
|
|
20
22
|
/** Optional name for the MCP server */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-info.d.ts","sourceRoot":"","sources":["../../src/model/mcp-server-info.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED
|
|
1
|
+
{"version":3,"file":"mcp-server-info.d.ts","sourceRoot":"","sources":["../../src/model/mcp-server-info.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,WAAW,GAAG,eAAe,CAAC,GACrE,MAAM,CAUR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-info.js","sourceRoot":"","sources":["../../src/model/mcp-server-info.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mcp-server-info.js","sourceRoot":"","sources":["../../src/model/mcp-server-info.ts"],"names":[],"mappings":";;;AA6EA,sDAYC;AAzFD;;GAEG;AACH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AA+DD;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,UAAsE;IAEtE,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa;QACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CACZ,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAU,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAC1C;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,GAAG,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;AACvF,CAAC","sourcesContent":["/**\n * The transport protocol to use for MCP connections.\n */\nexport enum MCPTransport {\n SSE = \"sse\",\n HTTP = \"http\",\n}\n\n/**\n * User-provided configuration for an MCP server.\n *\n * This is the type accepted by `TamboProvider` / `TamboRegistryProvider` in\n * the `mcpServers` prop.\n *\n * The `handlers` field is intentionally typed as `unknown` here so the core\n * SDK does not depend on the MCP subpackage. In the `@tambo-ai/react/mcp`\n * subpackage this is treated as `Partial<MCPHandlers>` (with\n * `elicitation` / `sampling` callbacks). See the React SDK README for the\n * optional MCP peer dependencies that applications must install when they\n * enable MCP support.\n */\nexport interface McpServerInfo {\n /** Optional name for the MCP server */\n name?: string;\n /** The URL of the MCP server to connect to */\n url: string;\n /** Optional description of the MCP server */\n description?: string;\n /** The transport type to use (SSE or HTTP). Defaults to HTTP for string URLs */\n transport?: MCPTransport;\n /** Optional custom headers to include in requests */\n customHeaders?: Record<string, string>;\n /**\n * Optional short name for namespacing MCP resources, prompts, and tools.\n * When multiple MCP servers are configured, this key is used to prefix:\n * - prompts: `<serverKey>:<promptName>`\n * - resources: `<serverKey>:<resourceUrl>`\n * - tools: `<serverKey>__<toolName>`\n *\n * If not provided, a key will be derived from the URL hostname.\n * For example, \"https://mcp.linear.app/mcp\" becomes \"linear\".\n */\n serverKey?: string;\n /**\n * Optional handlers for elicitation and sampling requests from the server.\n *\n * In the MCP subpackage this is interpreted as `Partial<MCPHandlers>`,\n * i.e. `{ elicitation?: MCPElicitationHandler; sampling?: MCPSamplingHandler }`.\n *\n * Note: These callbacks should be stable (e.g., wrapped in useCallback or\n * defined outside the component) to avoid constant re-registration of the\n * MCP server on every render.\n */\n handlers?: unknown;\n}\n\n/**\n * Normalized MCP server metadata used internally by the registry and MCP\n * provider.\n *\n * This is equivalent to `McpServerInfo` except that:\n * - `serverKey` is guaranteed to be present\n * - `transport` is resolved to a concrete value (defaults to HTTP)\n */\nexport interface NormalizedMcpServerInfo extends McpServerInfo {\n transport: MCPTransport;\n serverKey: string;\n}\n\n/**\n * Creates a stable identifier for an MCP server based on its connection properties.\n * Two servers with the same URL, transport, and headers will have the same key.\n *\n * This is used by both the registry and MCP provider to deduplicate servers,\n * so it lives alongside the shared server metadata type.\n * @returns A stable string key identifying the server\n */\nexport function getMcpServerUniqueKey(\n serverInfo: Pick<McpServerInfo, \"url\" | \"transport\" | \"customHeaders\">,\n): string {\n const headerStr = serverInfo.customHeaders\n ? JSON.stringify(\n Object.entries(serverInfo.customHeaders)\n .map(([k, v]) => [k.toLowerCase(), v] as const)\n .sort(([a], [b]) => a.localeCompare(b)),\n )\n : \"\";\n\n return `${serverInfo.url}|${serverInfo.transport ?? MCPTransport.HTTP}|${headerStr}`;\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ListResourcesResult, ReadResourceResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* A single resource item from the MCP SDK listResources response.
|
|
4
|
+
* Re-exported for convenience when registering static resources.
|
|
5
|
+
*/
|
|
6
|
+
export type ListResourceItem = ListResourcesResult["resources"][number];
|
|
7
|
+
export type { ReadResourceResult };
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for a dynamic resource source that can search and fetch resources.
|
|
10
|
+
*
|
|
11
|
+
* Both `listResources` and `getResource` must be provided together - you cannot
|
|
12
|
+
* provide one without the other.
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const resourceSource: ResourceSource = {
|
|
16
|
+
* listResources: async (search) => {
|
|
17
|
+
* const allResources = await fetchMyResources();
|
|
18
|
+
* return search
|
|
19
|
+
* ? allResources.filter(r => r.name.includes(search))
|
|
20
|
+
* : allResources;
|
|
21
|
+
* },
|
|
22
|
+
* getResource: async (uri, args) => {
|
|
23
|
+
* const content = await fetchResourceContent(uri, args);
|
|
24
|
+
* return {
|
|
25
|
+
* contents: [{
|
|
26
|
+
* uri,
|
|
27
|
+
* mimeType: 'text/plain',
|
|
28
|
+
* text: content,
|
|
29
|
+
* }],
|
|
30
|
+
* };
|
|
31
|
+
* },
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export interface ResourceSource {
|
|
36
|
+
/**
|
|
37
|
+
* Lists available resources, optionally filtered by a search string.
|
|
38
|
+
* @param search - Optional search string to filter resources
|
|
39
|
+
* @returns Promise resolving to an array of resource items
|
|
40
|
+
*/
|
|
41
|
+
listResources: (search?: string) => Promise<ListResourceItem[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Fetches the content of a specific resource by URI.
|
|
44
|
+
*
|
|
45
|
+
* Note: `getResource` may be invoked for URIs that have not previously
|
|
46
|
+
* been returned by `listResources` (for example, when the caller already
|
|
47
|
+
* knows a concrete URI). Implementations should handle unknown URIs
|
|
48
|
+
* gracefully rather than assuming they were listed first.
|
|
49
|
+
* @param uri - The URI of the resource to fetch
|
|
50
|
+
* @param args - Optional arguments to pass to the resource fetch
|
|
51
|
+
* @returns Promise resolving to the resource content
|
|
52
|
+
*/
|
|
53
|
+
getResource: (uri: string, args?: Record<string, unknown>) => Promise<ReadResourceResult>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=resource-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-info.d.ts","sourceRoot":"","sources":["../../src/model/resource-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxE,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEhE;;;;;;;;;;OAUG;IACH,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-info.js","sourceRoot":"","sources":["../../src/model/resource-info.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ListResourcesResult,\n ReadResourceResult,\n} from \"@modelcontextprotocol/sdk/types.js\";\n\n/**\n * A single resource item from the MCP SDK listResources response.\n * Re-exported for convenience when registering static resources.\n */\nexport type ListResourceItem = ListResourcesResult[\"resources\"][number];\n\n// Re-export the MCP SDK ReadResourceResult type so consumers can depend on\n// a stable SDK surface without importing directly from the MCP package.\nexport type { ReadResourceResult };\n\n/**\n * Configuration for a dynamic resource source that can search and fetch resources.\n *\n * Both `listResources` and `getResource` must be provided together - you cannot\n * provide one without the other.\n * @example\n * ```typescript\n * const resourceSource: ResourceSource = {\n * listResources: async (search) => {\n * const allResources = await fetchMyResources();\n * return search\n * ? allResources.filter(r => r.name.includes(search))\n * : allResources;\n * },\n * getResource: async (uri, args) => {\n * const content = await fetchResourceContent(uri, args);\n * return {\n * contents: [{\n * uri,\n * mimeType: 'text/plain',\n * text: content,\n * }],\n * };\n * },\n * };\n * ```\n */\nexport interface ResourceSource {\n /**\n * Lists available resources, optionally filtered by a search string.\n * @param search - Optional search string to filter resources\n * @returns Promise resolving to an array of resource items\n */\n listResources: (search?: string) => Promise<ListResourceItem[]>;\n\n /**\n * Fetches the content of a specific resource by URI.\n *\n * Note: `getResource` may be invoked for URIs that have not previously\n * been returned by `listResources` (for example, when the caller already\n * knows a concrete URI). Implementations should handle unknown URIs\n * gracefully rather than assuming they were listed first.\n * @param uri - The URI of the resource to fetch\n * @param args - Optional arguments to pass to the resource fetch\n * @returns Promise resolving to the resource content\n */\n getResource: (\n uri: string,\n args?: Record<string, unknown>,\n ) => Promise<ReadResourceResult>;\n}\n"]}
|
|
@@ -2,9 +2,14 @@ import TamboAI from "@tambo-ai/typescript-sdk";
|
|
|
2
2
|
import { TamboThreadMessage } from "./generate-component-response";
|
|
3
3
|
/**
|
|
4
4
|
* An extension of the TamboAI.Beta.Thread type that includes
|
|
5
|
-
* messages with renderedComponent
|
|
5
|
+
* messages with renderedComponent and MCP token information
|
|
6
6
|
*/
|
|
7
7
|
export interface TamboThread extends TamboAI.Beta.Thread {
|
|
8
8
|
messages: TamboThreadMessage[];
|
|
9
|
+
/**
|
|
10
|
+
* MCP access token for the internal Tambo MCP server.
|
|
11
|
+
* This token is specific to this thread.
|
|
12
|
+
*/
|
|
13
|
+
mcpAccessToken?: string;
|
|
9
14
|
}
|
|
10
15
|
//# sourceMappingURL=tambo-thread.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-thread.d.ts","sourceRoot":"","sources":["../../src/model/tambo-thread.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,IAAI,CAAC,MAAM;IACtD,QAAQ,EAAE,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tambo-thread.d.ts","sourceRoot":"","sources":["../../src/model/tambo-thread.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,IAAI,CAAC,MAAM;IACtD,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-thread.js","sourceRoot":"","sources":["../../src/model/tambo-thread.ts"],"names":[],"mappings":"","sourcesContent":["import TamboAI from \"@tambo-ai/typescript-sdk\";\nimport { TamboThreadMessage } from \"./generate-component-response\";\n\n/**\n * An extension of the TamboAI.Beta.Thread type that includes\n * messages with renderedComponent\n */\nexport interface TamboThread extends TamboAI.Beta.Thread {\n messages: TamboThreadMessage[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tambo-thread.js","sourceRoot":"","sources":["../../src/model/tambo-thread.ts"],"names":[],"mappings":"","sourcesContent":["import TamboAI from \"@tambo-ai/typescript-sdk\";\nimport { TamboThreadMessage } from \"./generate-component-response\";\n\n/**\n * An extension of the TamboAI.Beta.Thread type that includes\n * messages with renderedComponent and MCP token information\n */\nexport interface TamboThread extends TamboAI.Beta.Thread {\n messages: TamboThreadMessage[];\n /**\n * MCP access token for the internal Tambo MCP server.\n * This token is specific to this thread.\n */\n mcpAccessToken?: string;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-tambo-session-token.test.d.ts","sourceRoot":"","sources":["../../../src/providers/hooks/use-tambo-session-token.test.tsx"],"names":[],"mappings":""}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const react_query_1 = require("@tanstack/react-query");
|
|
4
4
|
const react_1 = require("@testing-library/react");
|
|
5
|
-
const use_tambo_session_token_1 = require("
|
|
5
|
+
const use_tambo_session_token_1 = require("./use-tambo-session-token");
|
|
6
6
|
describe("useTamboSessionToken", () => {
|
|
7
7
|
const mockTokenResponse = {
|
|
8
8
|
access_token: "test-access-token",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-tambo-session-token.test.js","sourceRoot":"","sources":["../../../src/providers/hooks/use-tambo-session-token.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import TamboAI from \"@tambo-ai/typescript-sdk\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { act, renderHook } from \"@testing-library/react\";\nimport { DeepPartial } from \"ts-essentials\";\nimport { useTamboSessionToken } from \"./use-tambo-session-token\";\n\ntype PartialTamboAI = DeepPartial<TamboAI>;\n\ndescribe(\"useTamboSessionToken\", () => {\n const mockTokenResponse = {\n access_token: \"test-access-token\",\n expires_in: 3600, // 1 hour\n token_type: \"Bearer\",\n };\n\n const mockAuthApi = {\n getToken: jest.fn(),\n } satisfies DeepPartial<TamboAI[\"beta\"][\"auth\"]>;\n\n const mockBeta = {\n auth: mockAuthApi,\n } satisfies PartialTamboAI[\"beta\"];\n\n const mockTamboAI = {\n apiKey: \"\",\n beta: mockBeta,\n bearer: \"\",\n } satisfies PartialTamboAI as unknown as TamboAI;\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: false,\n refetchOnWindowFocus: false,\n },\n },\n });\n\n beforeEach(() => {\n jest.clearAllMocks();\n jest.clearAllTimers();\n jest.useFakeTimers();\n (mockTamboAI as any).bearer = \"\";\n queryClient.clear();\n });\n\n afterEach(async () => {\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n jest.useRealTimers();\n jest.resetAllMocks();\n });\n\n it(\"should return null initially when no userToken is provided\", () => {\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, undefined),\n );\n\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: false,\n });\n expect(mockAuthApi.getToken).not.toHaveBeenCalled();\n });\n\n it(\"should fetch and return session token when userToken is provided\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(1);\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: mockTokenResponse,\n isFetching: false,\n });\n expect(mockTamboAI.bearer).toBe(mockTokenResponse.access_token);\n // Verify the hook was called with correct parameters\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(2);\n expect(mockAuthApi.getToken).toHaveBeenCalledWith(expect.any(Object));\n });\n\n it(\"should call getToken with correct token exchange parameters\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n const callArgs = mockAuthApi.getToken.mock.calls[0][0];\n const tokenRequestString = new TextDecoder().decode(callArgs);\n const tokenRequest = new URLSearchParams(tokenRequestString);\n\n expect(tokenRequest.get(\"grant_type\")).toBe(\n \"urn:ietf:params:oauth:grant-type:token-exchange\",\n );\n expect(tokenRequest.get(\"subject_token\")).toBe(\"user-token\");\n expect(tokenRequest.get(\"subject_token_type\")).toBe(\n \"urn:ietf:params:oauth:token-type:access_token\",\n );\n });\n\n it(\"should set bearer token on client\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: mockTokenResponse,\n });\n expect(mockTamboAI.bearer).toBe(\"test-access-token\");\n });\n\n it(\"should handle different token responses\", async () => {\n const customTokenResponse = {\n access_token: \"custom-access-token\",\n expires_in: 7200, // 2 hours\n token_type: \"Bearer\",\n };\n\n mockAuthApi.getToken.mockResolvedValue(customTokenResponse);\n\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: true,\n });\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: customTokenResponse,\n isFetching: false,\n });\n expect(mockTamboAI.bearer).toBe(\"custom-access-token\");\n });\n\n it(\"should not fetch token when userToken changes to undefined\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n const { result, rerender } = renderHook(\n ({ userToken }) =>\n useTamboSessionToken(mockTamboAI, queryClient, userToken),\n {\n initialProps: { userToken: \"user-token\" as string | undefined },\n },\n );\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(1);\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: mockTokenResponse,\n isFetching: false,\n });\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(2);\n\n // Clear mock and change userToken to undefined\n jest.clearAllMocks();\n\n act(() => {\n rerender({ userToken: undefined });\n });\n\n expect(mockAuthApi.getToken).not.toHaveBeenCalled();\n });\n\n it(\"should refetch token when userToken changes\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n const { result, rerender } = renderHook(\n ({ userToken }) =>\n useTamboSessionToken(mockTamboAI, queryClient, userToken),\n {\n initialProps: { userToken: \"user-token-1\" },\n },\n );\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(1);\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: mockTokenResponse,\n isFetching: false,\n });\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(2);\n\n // Mock response for new token\n mockAuthApi.getToken.mockResolvedValue({\n ...mockTokenResponse,\n access_token: \"new-access-token\",\n });\n\n // Change userToken\n act(() => {\n rerender({ userToken: \"user-token-2\" });\n });\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: { access_token: \"new-access-token\" },\n isFetching: false,\n });\n expect(mockAuthApi.getToken).toHaveBeenCalledTimes(4);\n });\n\n it(\"should reset token when userToken becomes null\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n const { result, rerender } = renderHook(\n ({ userToken }) =>\n useTamboSessionToken(mockTamboAI, queryClient, userToken),\n {\n initialProps: { userToken: \"user-token\" as string | undefined },\n },\n );\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n expect(result.current).toMatchObject({\n data: mockTokenResponse,\n isFetching: false,\n });\n\n // Change userToken to undefined\n rerender({ userToken: undefined });\n await act(async () => {\n await jest.runAllTimersAsync();\n });\n\n // Token should reset to null (hook doesn't reset it to null when userToken is undefined)\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: false,\n });\n });\n\n it(\"should not update state if component is unmounted during token fetch\", async () => {\n let resolvePromise: (value: any) => void;\n const promise = new Promise((resolve) => {\n resolvePromise = resolve;\n });\n\n mockAuthApi.getToken.mockReturnValue(promise);\n\n const { result, unmount } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: true,\n });\n\n // Unmount before the promise resolves\n unmount();\n\n // Now resolve the promise\n act(() => {\n resolvePromise!(mockTokenResponse);\n });\n\n // Token should still be null since component was unmounted\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: true,\n });\n });\n\n it(\"should set isUpdating to true while fetching token\", () => {\n mockAuthApi.getToken.mockImplementation(async () => {\n return await new Promise(() => {}); // Never resolves\n });\n\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n\n // Should be updating immediately when userToken is provided\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: true,\n });\n });\n\n it(\"should set isUpdating to false after token fetch completes\", async () => {\n mockAuthApi.getToken.mockResolvedValue(mockTokenResponse);\n\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n\n // Should be updating initially\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: true,\n });\n\n await act(async () => {\n await jest.runOnlyPendingTimersAsync();\n });\n\n // Should not be updating after completion\n expect(result.current).toMatchObject({\n data: mockTokenResponse,\n isFetching: false,\n });\n });\n\n it(\"should set isUpdating to false after token fetch fails\", async () => {\n mockAuthApi.getToken.mockRejectedValue(new Error(\"Token fetch failed\"));\n\n const { result } = renderHook(() =>\n useTamboSessionToken(mockTamboAI, queryClient, \"user-token\"),\n );\n\n // Should be updating initially\n expect(result.current).toMatchObject({\n data: undefined,\n isFetching: true,\n });\n\n await act(async () => {\n await jest.runAllTimersAsync();\n });\n\n // Should not be updating after failure\n expect(result.current).toMatchObject({\n data: undefined,\n error: expect.any(Error),\n isFetching: false,\n });\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { TamboComponent, TamboTool } from "../model/component-metadata";
|
|
1
|
+
export type { RegisterToolFn, RegisterToolsFn, TamboComponent, TamboTool, } from "../model/component-metadata";
|
|
2
2
|
export { TamboClientProvider, useIsTamboTokenUpdating, useTamboClient, } from "./tambo-client-provider";
|
|
3
3
|
export { TamboComponentProvider, useTamboComponent, } from "./tambo-component-provider";
|
|
4
4
|
export { TamboContextAttachmentProvider, useTamboContextAttachment, type ContextAttachment, type ContextAttachmentState, type ContextHelperData, type TamboContextAttachmentProviderProps, } from "./tambo-context-attachment-provider";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAS,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,GACzC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,GACtC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,uBAAuB,EACvB,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,yBAAyB,EACzB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;AAMA,iEAIiC;AAH/B,4HAAA,mBAAmB,OAAA;AACnB,gIAAA,uBAAuB,OAAA;AACvB,uHAAA,cAAc,OAAA;AAEhB,uEAGoC;AAFlC,kIAAA,sBAAsB,OAAA;AACtB,6HAAA,iBAAiB,OAAA;AAEnB,yFAO6C;AAN3C,mJAAA,8BAA8B,OAAA;AAC9B,8IAAA,yBAAyB,OAAA;AAM3B,mFAK0C;AAJxC,6IAAA,2BAA2B,OAAA;AAC3B,wIAAA,sBAAsB,OAAA;AAIxB,2EAMsC;AALpC,qHAAA,OAAO,OAAA;AACP,uHAAA,SAAS,OAAA;AACT,qHAAA,OAAO,OAAA;AACP,qIAAA,uBAAuB,OAAA;AACvB,4HAAA,cAAc,OAAA;AAOhB,mDAAyE;AAAhE,8GAAA,YAAY,OAAA;AAAE,+GAAA,aAAa,OAAA;AAAE,0GAAA,QAAQ,OAAA;AAC9C,qEAKmC;AAJjC,gIAAA,qBAAqB,OAAA;AACrB,iIAAA,sBAAsB,OAAA;AACtB,2HAAA,gBAAgB,OAAA;AAGlB,6CAA+E;AAAtE,gHAAA,iBAAiB,OAAA;AAC1B,6EAIuC;AAHrC,uIAAA,wBAAwB,OAAA;AACxB,kIAAA,mBAAmB,OAAA;AAGrB,iEAMiC;AAL/B,2HAAA,kBAAkB,OAAA;AAClB,4HAAA,mBAAmB,OAAA;AACnB,gIAAA,uBAAuB,OAAA;AACvB,uHAAA,cAAc,OAAA","sourcesContent":["export type {\n RegisterToolFn,\n RegisterToolsFn,\n TamboComponent,\n TamboTool,\n} from \"../model/component-metadata\";\nexport {\n TamboClientProvider,\n useIsTamboTokenUpdating,\n useTamboClient,\n} from \"./tambo-client-provider\";\nexport {\n TamboComponentProvider,\n useTamboComponent,\n} from \"./tambo-component-provider\";\nexport {\n TamboContextAttachmentProvider,\n useTamboContextAttachment,\n type ContextAttachment,\n type ContextAttachmentState,\n type ContextHelperData,\n type TamboContextAttachmentProviderProps,\n} from \"./tambo-context-attachment-provider\";\nexport {\n TamboContextHelpersProvider,\n useTamboContextHelpers,\n type TamboContextHelpersContextProps,\n type TamboContextHelpersProviderProps,\n} from \"./tambo-context-helpers-provider\";\nexport {\n Pending,\n Streaming,\n Success,\n TamboPropStreamProvider,\n useTamboStream,\n} from \"./tambo-prop-stream-provider\";\nexport type {\n StreamStateComponentProps,\n StreamStatus,\n TamboPropStreamContextValue,\n} from \"./tambo-prop-stream-provider\";\nexport { TamboContext, TamboProvider, useTambo } from \"./tambo-provider\";\nexport {\n TamboRegistryProvider,\n useTamboMcpServerInfos,\n useTamboRegistry,\n type TamboRegistryContext,\n} from \"./tambo-registry-provider\";\nexport { TamboStubProvider, type TamboStubProviderProps } from \"./tambo-stubs\";\nexport {\n TamboThreadInputProvider,\n useTamboThreadInput,\n type TamboThreadInputContextProps,\n} from \"./tambo-thread-input-provider\";\nexport {\n TamboThreadContext,\n TamboThreadProvider,\n useTamboGenerationStage,\n useTamboThread,\n type TamboThreadProviderProps,\n} from \"./tambo-thread-provider\";\n"]}
|
|
@@ -30,10 +30,6 @@ export interface TamboClientContextProps {
|
|
|
30
30
|
queryClient: QueryClient;
|
|
31
31
|
/** Whether the session token is currently being updated */
|
|
32
32
|
isUpdatingToken: boolean;
|
|
33
|
-
/** The current MCP access token for the internal Tambo MCP server */
|
|
34
|
-
mcpAccessToken: string | null;
|
|
35
|
-
/** Update the MCP access token (for internal use by TamboThreadProvider) */
|
|
36
|
-
setMcpAccessToken: (token: string | null) => void;
|
|
37
33
|
}
|
|
38
34
|
export declare const TamboClientContext: React.Context<TamboClientContextProps | undefined>;
|
|
39
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-client-provider.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-client-provider.tsx"],"names":[],"mappings":"AACA,OAAO,OAA0B,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAI1E,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAEvC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,yBAAyB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,2DAA2D;IAC3D,eAAe,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tambo-client-provider.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-client-provider.tsx"],"names":[],"mappings":"AACA,OAAO,OAA0B,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAI1E,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAEvC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,yBAAyB;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,2DAA2D;IAC3D,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB,oDAEnB,CAAC;AAEb;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CACxC,iBAAiB,CAAC,wBAAwB,CAAC,CAmC5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,eAM1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,mBAQ/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAQnC,CAAC"}
|
|
@@ -70,15 +70,12 @@ const TamboClientProvider = ({ children, tamboUrl, apiKey, environment, userToke
|
|
|
70
70
|
}
|
|
71
71
|
const [client] = (0, react_1.useState)(() => new typescript_sdk_1.default(tamboConfig));
|
|
72
72
|
const [queryClient] = (0, react_1.useState)(() => new react_query_1.QueryClient());
|
|
73
|
-
const [mcpAccessToken, setMcpAccessToken] = (0, react_1.useState)(null);
|
|
74
73
|
// Keep the session token updated and get the updating state
|
|
75
74
|
const { isFetching: isUpdatingToken } = (0, use_tambo_session_token_1.useTamboSessionToken)(client, queryClient, userToken);
|
|
76
75
|
return (react_1.default.createElement(exports.TamboClientContext.Provider, { value: {
|
|
77
76
|
client,
|
|
78
77
|
queryClient,
|
|
79
78
|
isUpdatingToken,
|
|
80
|
-
mcpAccessToken,
|
|
81
|
-
setMcpAccessToken,
|
|
82
79
|
} }, children));
|
|
83
80
|
};
|
|
84
81
|
exports.TamboClientProvider = TamboClientProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-client-provider.js","sourceRoot":"","sources":["../../src/providers/tambo-client-provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACb,8EAAkE;AAClE,uDAAoD;AACpD,+CAA0E;AAC1E,sEAA6C;AAC7C,6EAAuE;
|
|
1
|
+
{"version":3,"file":"tambo-client-provider.js","sourceRoot":"","sources":["../../src/providers/tambo-client-provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACb,8EAAkE;AAClE,uDAAoD;AACpD,+CAA0E;AAC1E,sEAA6C;AAC7C,6EAAuE;AAmC1D,QAAA,kBAAkB,GAAG,IAAA,qBAAa,EAE7C,SAAS,CAAC,CAAC;AAEb;;;;;;;;;;GAUG;AACI,MAAM,mBAAmB,GAE5B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;IAC7D,MAAM,WAAW,GAAkB;QACjC,MAAM;QACN,cAAc,EAAE;YACd,uBAAuB,EAAE,sBAAW,CAAC,OAAO;SAC7C;KACF,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IACxC,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,wBAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC;IAExD,4DAA4D;IAC5D,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,IAAA,8CAAoB,EAC1D,MAAM,EACN,WAAW,EACX,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,0BAAkB,CAAC,QAAQ,IAC1B,KAAK,EAAE;YACL,MAAM;YACN,WAAW;YACX,eAAe;SAChB,IAEA,QAAQ,CACmB,CAC/B,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,mBAAmB,uBAoC9B;AAEF;;;;GAIG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,OAAO,GAAG,eAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEF;;;;;GAKG;AACI,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,eAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CAAC;AAC7B,CAAC,CAAC;AARW,QAAA,mBAAmB,uBAQ9B;AAEF;;;GAGG;AACI,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,eAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,eAAe,CAAC;AACjC,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC","sourcesContent":["\"use client\";\nimport TamboAI, { ClientOptions } from \"@tambo-ai/typescript-sdk\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport React, { createContext, PropsWithChildren, useState } from \"react\";\nimport packageJson from \"../../package.json\";\nimport { useTamboSessionToken } from \"./hooks/use-tambo-session-token\";\n\nexport interface TamboClientProviderProps {\n /**\n * The URL of the Tambo API (only used for local development and debugging)\n */\n tamboUrl?: string;\n /**\n * The API key for the Tambo API. This typically comes from a variable like\n * `process.env.NEXT_PUBLIC_TAMBO_API_KEY`\n */\n apiKey: string;\n /**\n * The environment to use for the Tambo API\n */\n environment?: \"production\" | \"staging\";\n\n /**\n * The user token to use to identify the user in the Tambo API. This token is\n * a 3rd party token like a Google or GitHub access token, exchanged with the\n * Tambo API to get a session token. This is used to securely identify the\n * user when calling the Tambo API.\n */\n userToken?: string;\n}\n\nexport interface TamboClientContextProps {\n /** The TamboAI client */\n client: TamboAI;\n /** The tambo-specific query client */\n queryClient: QueryClient;\n /** Whether the session token is currently being updated */\n isUpdatingToken: boolean;\n}\n\nexport const TamboClientContext = createContext<\n TamboClientContextProps | undefined\n>(undefined);\n\n/**\n * The TamboClientProvider is a React provider that provides a TamboAI client\n * and a query client to the descendants of the provider.\n * @param props - The props for the TamboClientProvider\n * @param props.children - The children to wrap\n * @param props.tamboUrl - The URL of the Tambo API\n * @param props.apiKey - The API key for the Tambo API\n * @param props.environment - The environment to use for the Tambo API\n * @param props.userToken - The oauth access token to use to identify the user in the Tambo API\n * @returns The TamboClientProvider component\n */\nexport const TamboClientProvider: React.FC<\n PropsWithChildren<TamboClientProviderProps>\n> = ({ children, tamboUrl, apiKey, environment, userToken }) => {\n const tamboConfig: ClientOptions = {\n apiKey,\n defaultHeaders: {\n \"X-Tambo-React-Version\": packageJson.version,\n },\n };\n if (tamboUrl) {\n tamboConfig.baseURL = tamboUrl;\n }\n if (environment) {\n tamboConfig.environment = environment;\n }\n const [client] = useState(() => new TamboAI(tamboConfig));\n const [queryClient] = useState(() => new QueryClient());\n\n // Keep the session token updated and get the updating state\n const { isFetching: isUpdatingToken } = useTamboSessionToken(\n client,\n queryClient,\n userToken,\n );\n\n return (\n <TamboClientContext.Provider\n value={{\n client,\n queryClient,\n isUpdatingToken,\n }}\n >\n {children}\n </TamboClientContext.Provider>\n );\n};\n\n/**\n * The useTamboClient hook provides access to the TamboAI client\n * to the descendants of the TamboClientProvider.\n * @returns The TamboAI client\n */\nexport const useTamboClient = () => {\n const context = React.useContext(TamboClientContext);\n if (context === undefined) {\n throw new Error(\"useTamboClient must be used within a TamboClientProvider\");\n }\n return context.client;\n};\n\n/**\n * The useTamboQueryClient hook provides access to the tambo-specific query client\n * to the descendants of the TamboClientProvider.\n * @returns The tambo-specific query client\n * @private\n */\nexport const useTamboQueryClient = () => {\n const context = React.useContext(TamboClientContext);\n if (context === undefined) {\n throw new Error(\n \"useTamboQueryClient must be used within a TamboClientProvider\",\n );\n }\n return context.queryClient;\n};\n\n/**\n * Hook to check if the session token is currently being updated\n * @returns true if the token is being refreshed, false otherwise\n */\nexport const useIsTamboTokenUpdating = () => {\n const context = React.useContext(TamboClientContext);\n if (context === undefined) {\n throw new Error(\n \"useIsTamboTokenUpdating must be used within a TamboClientProvider\",\n );\n }\n return context.isUpdatingToken;\n};\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from "react";
|
|
2
|
-
import { TamboComponent, TamboTool } from "../model/component-metadata";
|
|
2
|
+
import { RegisterToolFn, RegisterToolsFn, TamboComponent, TamboTool, TamboToolWithToolSchema } from "../model/component-metadata";
|
|
3
3
|
export interface TamboComponentContextProps {
|
|
4
4
|
registerComponent: (options: TamboComponent) => void;
|
|
5
|
-
registerTool:
|
|
6
|
-
registerTools:
|
|
7
|
-
addToolAssociation: (componentName: string, tool: TamboTool) => void;
|
|
5
|
+
registerTool: RegisterToolFn;
|
|
6
|
+
registerTools: RegisterToolsFn;
|
|
7
|
+
addToolAssociation: (componentName: string, tool: TamboTool | TamboToolWithToolSchema) => void;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* The TamboComponentProvider is a React provider that provides component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-component-provider.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-component-provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"tambo-component-provider.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-component-provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,SAAS,EACT,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAIrC,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,eAAe,CAAC;IAC/B,kBAAkB,EAAE,CAClB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,SAAS,GAAG,uBAAuB,KACtC,IAAI,CAAC;CACX;AAqBD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoB9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,kCAE7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tambo-component-provider.js","sourceRoot":"","sources":["../../src/providers/tambo-component-provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACb,+CAA4E;
|
|
1
|
+
{"version":3,"file":"tambo-component-provider.js","sourceRoot":"","sources":["../../src/providers/tambo-component-provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACb,+CAA4E;AAQ5E,mEAAyD;AACzD,uEAA6D;AAY7D,MAAM,qBAAqB,GAAG,IAAA,qBAAa,EAA6B;IACtE;;OAEG;IACH,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC3B;;OAEG;IACH,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;IACvB;;OAEG;IACH,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;CAC7B,CAAC,CAAC;AAEH;;;;;;GAMG;AACI,MAAM,sBAAsB,GAAgC,CAAC,EAClE,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,sCAAc,GAAE,CAAC;IAChC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,GAC1E,IAAA,0CAAgB,GAAE,CAAC;IAErB,MAAM,KAAK,GAAG;QACZ,MAAM;QACN,iBAAiB;QACjB,YAAY;QACZ,aAAa;QACb,kBAAkB;KACnB,CAAC;IAEF,OAAO,CACL,8BAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACzC,QAAQ,CACsB,CAClC,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,sBAAsB,0BAoBjC;AAEF;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO,IAAA,kBAAU,EAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B","sourcesContent":["\"use client\";\nimport React, { createContext, PropsWithChildren, useContext } from \"react\";\nimport {\n RegisterToolFn,\n RegisterToolsFn,\n TamboComponent,\n TamboTool,\n TamboToolWithToolSchema,\n} from \"../model/component-metadata\";\nimport { useTamboClient } from \"./tambo-client-provider\";\nimport { useTamboRegistry } from \"./tambo-registry-provider\";\n\nexport interface TamboComponentContextProps {\n registerComponent: (options: TamboComponent) => void;\n registerTool: RegisterToolFn;\n registerTools: RegisterToolsFn;\n addToolAssociation: (\n componentName: string,\n tool: TamboTool | TamboToolWithToolSchema,\n ) => void;\n}\n\nconst TamboComponentContext = createContext<TamboComponentContextProps>({\n /**\n *\n */\n registerComponent: () => {},\n /**\n *\n */\n registerTool: () => {},\n /**\n *\n */\n registerTools: () => {},\n /**\n *\n */\n addToolAssociation: () => {},\n});\n\n/**\n * The TamboComponentProvider is a React provider that provides component\n * registration services to the descendants of the provider.\n * @param props - The props for the TamboComponentProvider\n * @param props.children - The children to wrap\n * @returns The TamboComponentProvider component\n */\nexport const TamboComponentProvider: React.FC<PropsWithChildren> = ({\n children,\n}) => {\n const client = useTamboClient();\n const { registerComponent, addToolAssociation, registerTool, registerTools } =\n useTamboRegistry();\n\n const value = {\n client,\n registerComponent,\n registerTool,\n registerTools,\n addToolAssociation,\n };\n\n return (\n <TamboComponentContext.Provider value={value}>\n {children}\n </TamboComponentContext.Provider>\n );\n};\n\n/**\n * The useTamboComponent hook provides access to the component registration\n * services to the descendants of the TamboComponentProvider.\n * @returns The component registration services\n */\nexport const useTamboComponent = () => {\n return useContext(TamboComponentContext);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tambo-context-attachment-provider.test.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-context-attachment-provider.test.tsx"],"names":[],"mappings":""}
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = require("@testing-library/react");
|
|
7
7
|
const react_2 = __importDefault(require("react"));
|
|
8
|
-
const tambo_context_attachment_provider_1 = require("
|
|
9
|
-
const tambo_context_helpers_provider_1 = require("
|
|
8
|
+
const tambo_context_attachment_provider_1 = require("./tambo-context-attachment-provider");
|
|
9
|
+
const tambo_context_helpers_provider_1 = require("./tambo-context-helpers-provider");
|
|
10
10
|
/**
|
|
11
11
|
* Test suite for TamboContextAttachmentProvider
|
|
12
12
|
*
|