arize-phoenix 7.12.1__tar.gz → 7.12.2__tar.gz

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.

Potentially problematic release.


This version of arize-phoenix might be problematic. Click here for more details.

Files changed (346) hide show
  1. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/PKG-INFO +1 -1
  2. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/.vite/manifest.json +9 -9
  3. arize_phoenix-7.12.1/src/phoenix/server/static/assets/components-Caw_U14D.js → arize_phoenix-7.12.2/src/phoenix/server/static/assets/components-DckIzNmE.js +2 -2
  4. arize_phoenix-7.12.1/src/phoenix/server/static/assets/index-EgdbaF48.js → arize_phoenix-7.12.2/src/phoenix/server/static/assets/index-Bf25Ogon.js +1 -1
  5. arize_phoenix-7.12.1/src/phoenix/server/static/assets/pages-BFZvquxr.js → arize_phoenix-7.12.2/src/phoenix/server/static/assets/pages-DL7J9q9w.js +1 -1
  6. arize_phoenix-7.12.2/src/phoenix/version.py +1 -0
  7. arize_phoenix-7.12.1/src/phoenix/version.py +0 -1
  8. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/.gitignore +0 -0
  9. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/IP_NOTICE +0 -0
  10. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/LICENSE +0 -0
  11. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/README.md +0 -0
  12. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/pyproject.toml +0 -0
  13. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/__init__.py +0 -0
  14. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/auth.py +0 -0
  15. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/config.py +0 -0
  16. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/core/__init__.py +0 -0
  17. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/core/embedding_dimension.py +0 -0
  18. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/core/model.py +0 -0
  19. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/core/model_schema.py +0 -0
  20. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/core/model_schema_adapter.py +0 -0
  21. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/datetime_utils.py +0 -0
  22. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/README.md +0 -0
  23. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/__init__.py +0 -0
  24. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/alembic.ini +0 -0
  25. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/bulk_inserter.py +0 -0
  26. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/engines.py +0 -0
  27. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/enums.py +0 -0
  28. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/facilitator.py +0 -0
  29. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/helpers.py +0 -0
  30. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/__init__.py +0 -0
  31. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/constants.py +0 -0
  32. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/dataset.py +0 -0
  33. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/document_annotation.py +0 -0
  34. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/evaluation.py +0 -0
  35. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/helpers.py +0 -0
  36. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/span.py +0 -0
  37. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/span_annotation.py +0 -0
  38. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/trace_annotation.py +0 -0
  39. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/insertion/types.py +0 -0
  40. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrate.py +0 -0
  41. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/__init__.py +0 -0
  42. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
  43. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
  44. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/env.py +0 -0
  45. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/script.py.mako +0 -0
  46. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
  47. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
  48. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
  49. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
  50. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  51. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/db/models.py +0 -0
  52. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/exceptions.py +0 -0
  53. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/__init__.py +0 -0
  54. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/evaluators/__init__.py +0 -0
  55. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/evaluators/base.py +0 -0
  56. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
  57. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
  58. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/evaluators/utils.py +0 -0
  59. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/functions.py +0 -0
  60. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/tracing.py +0 -0
  61. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/types.py +0 -0
  62. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/experiments/utils.py +0 -0
  63. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/inferences/__init__.py +0 -0
  64. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/inferences/errors.py +0 -0
  65. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/inferences/fixtures.py +0 -0
  66. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/inferences/inferences.py +0 -0
  67. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/inferences/schema.py +0 -0
  68. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/inferences/validation.py +0 -0
  69. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/logging/__init__.py +0 -0
  70. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/logging/_config.py +0 -0
  71. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/logging/_filter.py +0 -0
  72. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/logging/_formatter.py +0 -0
  73. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/README.md +0 -0
  74. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/__init__.py +0 -0
  75. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/binning.py +0 -0
  76. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/metrics.py +0 -0
  77. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/mixins.py +0 -0
  78. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  79. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/timeseries.py +0 -0
  80. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/metrics/wrappers.py +0 -0
  81. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/pointcloud/__init__.py +0 -0
  82. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/pointcloud/clustering.py +0 -0
  83. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/pointcloud/pointcloud.py +0 -0
  84. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/pointcloud/projectors.py +0 -0
  85. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  86. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/py.typed +0 -0
  87. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/__init__.py +0 -0
  88. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/README.md +0 -0
  89. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/__init__.py +0 -0
  90. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/auth.py +0 -0
  91. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/context.py +0 -0
  92. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  93. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
  94. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
  95. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  96. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  97. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
  98. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
  99. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  100. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  101. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  102. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
  103. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
  104. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
  105. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
  106. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
  107. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  108. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  109. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
  110. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  111. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
  112. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
  113. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
  114. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
  115. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
  116. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
  117. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
  118. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  119. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
  120. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  121. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
  122. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
  123. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
  124. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/dataloaders/users.py +0 -0
  125. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/exceptions.py +0 -0
  126. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/helpers/__init__.py +0 -0
  127. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
  128. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
  129. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
  130. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
  131. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
  132. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
  133. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
  134. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
  135. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
  136. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
  137. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  138. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  139. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
  140. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
  141. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
  142. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  143. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
  144. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
  145. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
  146. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
  147. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
  148. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
  149. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
  150. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  151. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  152. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
  153. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  154. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
  155. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
  156. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
  157. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
  158. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  159. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
  160. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
  161. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  162. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/TemplateOptions.py +0 -0
  163. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  164. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
  165. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
  166. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/input_types/__init__.py +0 -0
  167. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/interceptor.py +0 -0
  168. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/__init__.py +0 -0
  169. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
  170. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/chat_mutations.py +0 -0
  171. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
  172. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
  173. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
  174. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
  175. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
  176. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
  177. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
  178. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/openapi/__init__.py +0 -0
  179. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/openapi/main.py +0 -0
  180. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/openapi/schema.py +0 -0
  181. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/queries.py +0 -0
  182. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/__init__.py +0 -0
  183. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/auth.py +0 -0
  184. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/embeddings.py +0 -0
  185. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/oauth2.py +0 -0
  186. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/utils.py +0 -0
  187. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  188. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
  189. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  190. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
  191. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
  192. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
  193. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/pydantic_compat.py +0 -0
  194. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  195. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  196. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/routers/v1/utils.py +0 -0
  197. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/schema.py +0 -0
  198. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/subscriptions.py +0 -0
  199. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Annotation.py +0 -0
  200. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
  201. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
  202. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ApiKey.py +0 -0
  203. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/AuthMethod.py +0 -0
  204. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
  205. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
  206. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Cluster.py +0 -0
  207. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
  208. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  209. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Dataset.py +0 -0
  210. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DatasetExample.py +0 -0
  211. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
  212. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  213. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
  214. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Dimension.py +0 -0
  215. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  216. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  217. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DimensionType.py +0 -0
  218. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  219. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  220. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  221. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  222. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  223. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Evaluation.py +0 -0
  224. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  225. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Event.py +0 -0
  226. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  227. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
  228. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Experiment.py +0 -0
  229. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
  230. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
  231. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
  232. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
  233. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  234. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Functionality.py +0 -0
  235. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
  236. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
  237. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Inferences.py +0 -0
  238. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/InferencesRole.py +0 -0
  239. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/LabelFraction.py +0 -0
  240. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/MimeType.py +0 -0
  241. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Model.py +0 -0
  242. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/NumericRange.py +0 -0
  243. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  244. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Project.py +0 -0
  245. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ProjectSession.py +0 -0
  246. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  247. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Retrieval.py +0 -0
  248. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  249. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Segments.py +0 -0
  250. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/SortDir.py +0 -0
  251. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Span.py +0 -0
  252. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
  253. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
  254. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
  255. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/TemplateLanguage.py +0 -0
  256. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  257. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/TokenUsage.py +0 -0
  258. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/Trace.py +0 -0
  259. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
  260. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  261. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/User.py +0 -0
  262. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/UserApiKey.py +0 -0
  263. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/UserRole.py +0 -0
  264. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  265. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  266. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/__init__.py +0 -0
  267. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/node.py +0 -0
  268. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/types/pagination.py +0 -0
  269. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/api/utils.py +0 -0
  270. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/app.py +0 -0
  271. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/bearer_auth.py +0 -0
  272. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/dml_event.py +0 -0
  273. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/dml_event_handler.py +0 -0
  274. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/email/__init__.py +0 -0
  275. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/email/sender.py +0 -0
  276. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/email/templates/__init__.py +0 -0
  277. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/email/templates/password_reset.html +0 -0
  278. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/email/types.py +0 -0
  279. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/grpc_server.py +0 -0
  280. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/jwt_store.py +0 -0
  281. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/main.py +0 -0
  282. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/oauth2.py +0 -0
  283. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/openapi/__init__.py +0 -0
  284. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/prometheus.py +0 -0
  285. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/rate_limiters.py +0 -0
  286. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  287. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  288. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  289. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  290. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  291. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  292. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  293. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  294. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-DvC8cT4X.js +0 -0
  295. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-DxkFTwjz.css +0 -0
  296. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-arizeai-Do1793cv.js +0 -0
  297. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-codemirror-BzwZPyJM.js +0 -0
  298. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-recharts-_Jb7JjhG.js +0 -0
  299. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-shiki-Cl9QBraO.js +0 -0
  300. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/assets/vendor-three-DwGkEfCM.js +0 -0
  301. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/favicon.ico +0 -0
  302. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/static/modernizr.js +0 -0
  303. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/telemetry.py +0 -0
  304. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/templates/__init__.py +0 -0
  305. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/templates/index.html +0 -0
  306. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/thread_server.py +0 -0
  307. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/server/types.py +0 -0
  308. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/services.py +0 -0
  309. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/session/__init__.py +0 -0
  310. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/session/client.py +0 -0
  311. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/session/data_extractor.py +0 -0
  312. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/session/evaluation.py +0 -0
  313. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/session/session.py +0 -0
  314. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/settings.py +0 -0
  315. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/__init__.py +0 -0
  316. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/attributes.py +0 -0
  317. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/dsl/README.md +0 -0
  318. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/dsl/__init__.py +0 -0
  319. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/dsl/filter.py +0 -0
  320. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/dsl/helpers.py +0 -0
  321. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/dsl/query.py +0 -0
  322. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/errors.py +0 -0
  323. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/evaluation_conventions.py +0 -0
  324. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/exporter.py +0 -0
  325. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/fixtures.py +0 -0
  326. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/otel.py +0 -0
  327. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/projects.py +0 -0
  328. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/schemas.py +0 -0
  329. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/span_evaluations.py +0 -0
  330. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/span_json_decoder.py +0 -0
  331. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/span_json_encoder.py +0 -0
  332. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/trace_dataset.py +0 -0
  333. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/utils.py +0 -0
  334. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/v1/__init__.py +0 -0
  335. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  336. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  337. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/__init__.py +0 -0
  338. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/client.py +0 -0
  339. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/deprecation.py +0 -0
  340. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/error_handling.py +0 -0
  341. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/json.py +0 -0
  342. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/logging.py +0 -0
  343. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/project.py +0 -0
  344. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/re.py +0 -0
  345. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/span_store.py +0 -0
  346. {arize_phoenix-7.12.1 → arize_phoenix-7.12.2}/src/phoenix/utilities/template_formatters.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 7.12.1
3
+ Version: 7.12.2
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://docs.arize.com/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -1,22 +1,22 @@
1
1
  {
2
- "_components-Caw_U14D.js": {
3
- "file": "assets/components-Caw_U14D.js",
2
+ "_components-DckIzNmE.js": {
3
+ "file": "assets/components-DckIzNmE.js",
4
4
  "name": "components",
5
5
  "imports": [
6
6
  "_vendor-DvC8cT4X.js",
7
- "_pages-BFZvquxr.js",
7
+ "_pages-DL7J9q9w.js",
8
8
  "_vendor-arizeai-Do1793cv.js",
9
9
  "_vendor-codemirror-BzwZPyJM.js",
10
10
  "_vendor-three-DwGkEfCM.js"
11
11
  ]
12
12
  },
13
- "_pages-BFZvquxr.js": {
14
- "file": "assets/pages-BFZvquxr.js",
13
+ "_pages-DL7J9q9w.js": {
14
+ "file": "assets/pages-DL7J9q9w.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
17
  "_vendor-DvC8cT4X.js",
18
18
  "_vendor-arizeai-Do1793cv.js",
19
- "_components-Caw_U14D.js",
19
+ "_components-DckIzNmE.js",
20
20
  "_vendor-codemirror-BzwZPyJM.js",
21
21
  "_vendor-recharts-_Jb7JjhG.js"
22
22
  ]
@@ -69,15 +69,15 @@
69
69
  "name": "vendor-three"
70
70
  },
71
71
  "index.tsx": {
72
- "file": "assets/index-EgdbaF48.js",
72
+ "file": "assets/index-Bf25Ogon.js",
73
73
  "name": "index",
74
74
  "src": "index.tsx",
75
75
  "isEntry": true,
76
76
  "imports": [
77
77
  "_vendor-DvC8cT4X.js",
78
78
  "_vendor-arizeai-Do1793cv.js",
79
- "_pages-BFZvquxr.js",
80
- "_components-Caw_U14D.js",
79
+ "_pages-DL7J9q9w.js",
80
+ "_components-DckIzNmE.js",
81
81
  "_vendor-three-DwGkEfCM.js",
82
82
  "_vendor-codemirror-BzwZPyJM.js",
83
83
  "_vendor-shiki-Cl9QBraO.js",
@@ -1,4 +1,4 @@
1
- import{r as h,R as G,j as e,n as Wn,a as we,e as Xe,s as T1,b as e1,c as ke,d as N1,f as Oa,g as ge,h as _a,i as Fa,k as R1,l,m as Na,o as Se,C as t1,p as Be,q as $e,t as N,u as Ra,v as Ha,L as Un,w as jn,x as Qn,y as oe,z as w,A as u1,B as qn,D as m,E as Xn,F as Yn,G as Ze,$ as Ka,H as Ba,I as $a,J as Z1,K as Jn,M as a1,N as i1,O as et,P as r1,Q as Za,S as Ga,T as Wa,U,V as Ua,W as ja,X as Qa,Y as nt,Z as qa,_ as Xa,a0 as tt,a1 as Ya,a2 as V,a3 as at,a4 as Te,a5 as m1,a6 as Ee,a7 as F,a8 as Ja,a9 as ei,aa as ni,ab as ti,ac as pn,ad as ai,ae as ii,af as ri,ag as gn,ah as oi,ai as li,aj as si,ak as I1,al as G1,am as ci,an as di,ao as ui,ap as mi,aq as hi,ar as pi,as as gi,at as fi,au as Ci,av as bi,aw as Li,ax as vi,ay as yi,az as wi,aA as ki,aB as Si,aC as xi}from"./vendor-DvC8cT4X.js";import{m as Mi,T as Ti,a as fn,u as Ii}from"./pages-BFZvquxr.js";import{u as Ai,_ as it,a as te,T as j,b as zi,c as Ei,R as J,d as Ge,e as ne,f as Vi,E as rt,g as B,h as W1,i as Ve,j as ot,k as ve,D as h1,l as o1,I as U1,m as j1,n as lt,P as Q1,C as p1,o as g1,A as We,L as Ce,p as Di,q as ye,F as st,r as Pi,s as Oi,t as _i,v as ce,w as de,x as Fi,y as Ni,z as Cn,B as Ri}from"./vendor-arizeai-Do1793cv.js";import{L as ct,a as dt,l as H1,j as ut,h as Hi,b as Ki,c as Bi,d as $i,e as Zi,f as Gi,s as Wi,R as Ue,g as mt,n as je,i as ht,E as q1,p as Ui,k as ji}from"./vendor-codemirror-BzwZPyJM.js";import{V as Qi}from"./vendor-three-DwGkEfCM.js";const pt=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},t={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},a={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},i={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},r={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},o=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],s=[{alias:null,args:[{kind:"Variable",name:"clusters",variableName:"clusters"}],concreteType:"Cluster",kind:"LinkedField",name:"clusters",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"eventIds",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"driftRatio",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"primaryToCorpusRatio",storageKey:null},{condition:"fetchDataQualityMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"columnName",variableName:"dataQualityMetricColumnName"},{kind:"Literal",name:"metric",value:"mean"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"dataQualityMetric",plural:!1,selections:o,storageKey:null}]},{condition:"fetchPerformanceMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"metric",variableName:"performanceMetric"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"performanceMetric",plural:!1,selections:o,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,t,a,i,r],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:s,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,a,t,i,r],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:s},params:{cacheID:"86666967012812887ac0a0149d2d2535",id:null,metadata:{},name:"pointCloudStore_clusterMetricsQuery",operationKind:"query",text:`query pointCloudStore_clusterMetricsQuery(
1
+ import{r as h,R as G,j as e,n as Wn,a as we,e as Xe,s as T1,b as e1,c as ke,d as N1,f as Oa,g as ge,h as _a,i as Fa,k as R1,l,m as Na,o as Se,C as t1,p as Be,q as $e,t as N,u as Ra,v as Ha,L as Un,w as jn,x as Qn,y as oe,z as w,A as u1,B as qn,D as m,E as Xn,F as Yn,G as Ze,$ as Ka,H as Ba,I as $a,J as Z1,K as Jn,M as a1,N as i1,O as et,P as r1,Q as Za,S as Ga,T as Wa,U,V as Ua,W as ja,X as Qa,Y as nt,Z as qa,_ as Xa,a0 as tt,a1 as Ya,a2 as V,a3 as at,a4 as Te,a5 as m1,a6 as Ee,a7 as F,a8 as Ja,a9 as ei,aa as ni,ab as ti,ac as pn,ad as ai,ae as ii,af as ri,ag as gn,ah as oi,ai as li,aj as si,ak as I1,al as G1,am as ci,an as di,ao as ui,ap as mi,aq as hi,ar as pi,as as gi,at as fi,au as Ci,av as bi,aw as Li,ax as vi,ay as yi,az as wi,aA as ki,aB as Si,aC as xi}from"./vendor-DvC8cT4X.js";import{m as Mi,T as Ti,a as fn,u as Ii}from"./pages-DL7J9q9w.js";import{u as Ai,_ as it,a as te,T as j,b as zi,c as Ei,R as J,d as Ge,e as ne,f as Vi,E as rt,g as B,h as W1,i as Ve,j as ot,k as ve,D as h1,l as o1,I as U1,m as j1,n as lt,P as Q1,C as p1,o as g1,A as We,L as Ce,p as Di,q as ye,F as st,r as Pi,s as Oi,t as _i,v as ce,w as de,x as Fi,y as Ni,z as Cn,B as Ri}from"./vendor-arizeai-Do1793cv.js";import{L as ct,a as dt,l as H1,j as ut,h as Hi,b as Ki,c as Bi,d as $i,e as Zi,f as Gi,s as Wi,R as Ue,g as mt,n as je,i as ht,E as q1,p as Ui,k as ji}from"./vendor-codemirror-BzwZPyJM.js";import{V as Qi}from"./vendor-three-DwGkEfCM.js";const pt=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},t={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},a={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},i={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},r={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},o=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],s=[{alias:null,args:[{kind:"Variable",name:"clusters",variableName:"clusters"}],concreteType:"Cluster",kind:"LinkedField",name:"clusters",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"eventIds",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"driftRatio",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"primaryToCorpusRatio",storageKey:null},{condition:"fetchDataQualityMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"columnName",variableName:"dataQualityMetricColumnName"},{kind:"Literal",name:"metric",value:"mean"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"dataQualityMetric",plural:!1,selections:o,storageKey:null}]},{condition:"fetchPerformanceMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"metric",variableName:"performanceMetric"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"performanceMetric",plural:!1,selections:o,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,t,a,i,r],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:s,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,a,t,i,r],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:s},params:{cacheID:"86666967012812887ac0a0149d2d2535",id:null,metadata:{},name:"pointCloudStore_clusterMetricsQuery",operationKind:"query",text:`query pointCloudStore_clusterMetricsQuery(
2
2
  $clusters: [ClusterInput!]!
3
3
  $fetchDataQualityMetric: Boolean!
4
4
  $dataQualityMetricColumnName: String
@@ -144,7 +144,7 @@ import{r as h,R as G,j as e,n as Wn,a as we,e as Xe,s as T1,b as e1,c as ke,d as
144
144
  id
145
145
  }
146
146
  }
147
- `}}}();Ct.hash="e8fa488a0d466b5e40fdadc1e5227a57";const qi=30,bn=5,Ln=100,Xi=0,vn=0,yn=.99,Yi=500,wn=300,kn=1e5,Ji=10,Sn=1,er=2,nr=1,tr=0;var z=(n=>(n.inferences="inferences",n.correctness="correctness",n.dimension="dimension",n))(z||{}),Ae=(n=>(n.list="list",n.gallery="gallery",n))(Ae||{}),Ie=(n=>(n.small="small",n.medium="medium",n.large="large",n))(Ie||{}),E=(n=>(n.primary="primary",n.reference="reference",n.corpus="corpus",n))(E||{}),H=(n=>(n.correct="correct",n.incorrect="incorrect",n.unknown="unknown",n))(H||{});const ar=["#05fbff","#cb8afd"],ir=["#00add0","#4500d9"],le="#a5a5a5",xe=le;var ee=(n=>(n.primary="primary",n.reference="reference",n.corpus="corpus",n))(ee||{});function D(n){throw new Error("Unreachable")}function X1(n){return typeof n=="number"||n===null}function rr(n){return typeof n=="string"||n===null}function hc(n){return Array.isArray(n)?n.every(t=>typeof t=="string"):!1}function Y1(n){return typeof n=="object"&&n!==null}function pc(n){return Y1(n)&&Object.keys(n).every(t=>typeof t=="string")}const gc=()=>n=>n,J1=h.createContext(null);function f1(){const n=G.useContext(J1);if(n===null)throw new Error("useInferences must be used within a InferencesProvider");return n}function fc(n){return e(J1.Provider,{value:{primaryInferences:n.primaryInferences,referenceInferences:n.referenceInferences,corpusInferences:n.corpusInferences,getInferencesNameByRole:t=>{var a,i;switch(t){case ee.primary:return n.primaryInferences.name;case ee.reference:return((a=n.referenceInferences)==null?void 0:a.name)??"reference";case ee.corpus:return((i=n.corpusInferences)==null?void 0:i.name)??"corpus";default:D()}}},children:n.children})}const en=h.createContext(null);function Cc({children:n,...t}){const[a]=h.useState(()=>Sr(t));return e(en.Provider,{value:a,children:n})}function y(n,t){const a=h.useContext(en);if(!a)throw new Error("Missing PointCloudContext.Provider in the tree");return Wn(a,n,t)}var X=(n=>(n.last_hour="Last Hour",n.last_day="Last Day",n.last_week="Last Week",n.last_month="Last Month",n.last_3_months="Last 3 Months",n.first_hour="First Hour",n.first_day="First Day",n.first_week="First Week",n.first_month="First Month",n.all="All",n))(X||{});const bt=h.createContext(null);function or(){const n=h.useContext(bt);if(n===null)throw new Error("useTimeRange must be used within a TimeRangeProvider");return n}function lr(n,t){return h.useMemo(()=>{switch(n){case"Last Hour":{const i=we(Fa(t.end),{roundingMethod:"ceil"});return{start:R1(i,1),end:i}}case"Last Day":{const i=we(_a(t.end),{roundingMethod:"ceil"});return{start:ge(i,1),end:i}}case"Last Week":{const i=we(Xe(t.end),{roundingMethod:"ceil"});return{start:ge(i,7),end:i}}case"Last Month":{const i=we(Xe(t.end),{roundingMethod:"ceil"});return{start:ge(i,30),end:i}}case"Last 3 Months":{const i=we(Xe(t.end),{roundingMethod:"ceil"});return{start:ge(i,90),end:i}}case"First Hour":{const i=N1(t.start);return{start:i,end:Oa(i,1)}}case"First Day":{const i=ke(t.start);return{start:i,end:e1(i,1)}}case"First Week":{const i=T1(t.start);return{start:i,end:e1(i,7)}}case"First Month":{const i=T1(t.start);return{start:i,end:e1(i,30)}}case"All":{const i=we(Xe(t.end),{roundingMethod:"floor"});return{start:T1(t.start),end:i}}default:D()}},[n,t])}function bc(n){const[t,a]=h.useState("Last Month"),i=lr(t,n.timeRangeBounds),r=h.useCallback(o=>{h.startTransition(()=>{a(o)})},[]);return e(bt.Provider,{value:{timeRange:i,timePreset:t,setTimePreset:r},children:n.children})}const Lt=h.createContext(null);function Lc({children:n}){const[t,a]=Ai({style:{zIndex:1e3}}),i=h.useCallback(o=>{t({variant:"danger",...o})},[t]),r=h.useCallback(o=>{t({variant:"success",...o})},[t]);return l(Lt.Provider,{value:{notify:t,notifyError:i,notifySuccess:r},children:[n,a]})}function vt(){const n=h.useContext(Lt);if(n===null)throw new Error("useGlobalNotification must be used within a NotificationProvider");return n}function vc(){return vt().notifyError}function C1(){return vt().notifySuccess}const yt="arize-phoenix-theme";function wt(){return localStorage.getItem(yt)==="light"?"light":"dark"}const nn=h.createContext(null);function Q(){const n=h.useContext(nn);if(n===null)throw new Error("useTheme must be used within a ThemeProvider");return n}function yc(n){const[t,a]=h.useState(wt()),i=h.useCallback(r=>{localStorage.setItem(yt,r),a(r)},[]);return e(nn.Provider,{value:{theme:t,setTheme:i},children:n.children})}function sr(n){return n.endsWith("/")?n.slice(0,-1):n}const kt=sr(window.Config.basename),cr=window.location.protocol==="https:",Qe=`${window.location.protocol}//${window.location.host}${kt}`,dr=`${cr?"wss":"ws"}://${window.location.host}${kt}`,wc=window.Config.platformVersion,Re="returnUrl";function xn(n,t){const a=new URL(n,window.location.origin);return t.forEach((i,r)=>{a.searchParams.append(r,i)}),a.pathname+a.search}function ur(){const n=window.Config.basename,t=n==null||n===""||n==="/",a=n!=null&&n.startsWith("/")&&!n.endsWith("/");if(!(t||a))throw new Error(`Invalid basename: ${n}`);const i=window.location.pathname,r=window.location.origin,o=new URLSearchParams(window.location.search);if(t){const s=new URL("/login",r);return s.searchParams.set(Re,xn(i,o)),s.pathname+s.search}if(i.startsWith(n)){const s=i.slice(n.length);if(s===""||s.startsWith("/")){const d=new URL(n+"/login",r);return d.searchParams.set(Re,xn(s,o)),d.pathname+d.search}}return n+"/login"}function kc(n){const t=window.Config.basename,a=t==null||t===""||t==="/",i=t!=null&&t.startsWith("/")&&!t.endsWith("/");if(!(a||i))throw new Error(`Invalid basename: ${t}`);return a?n:t+n}const Sc=({path:n,searchParams:t})=>{const i=new URL(window.location.href).searchParams.get(Re),r=new URLSearchParams(t||{});i&&r.set(Re,i);const o=r.toString();return`${n}${o?`?${o}`:""}`},mr=n=>!(typeof n!="string"||!n.startsWith("/")||n.replace(/\\/g,"/").startsWith("//")),hr=n=>mr(n)?n:"/",xc=()=>{const n=new URL(window.location.href);return hr(n.searchParams.get(Re))},pr=Qe+"/auth/refresh";class Mn extends Error{constructor(){super("Unauthorized")}}async function gr(n,t){try{return await fetch(n,t).then(a=>{if(a.status===401)throw new Mn;return a})}catch(a){if(a instanceof Mn)return await St(),fetch(n,t);if(a instanceof Error&&a.name==="AbortError")throw a}throw new Error("An unexpected error occurred while fetching data")}let Oe=null;async function St(){return Oe||(Oe=fetch(pr,{method:"POST"}).then(n=>(n.ok||(window.location.href=ur()),Oe=null,n)),Oe)}const fr=Qe+"/graphql",xt=window.Config.authenticationEnabled,Cr=xt?gr:fetch;function br(n,t,a){return Se.Observable.create(i=>{const r=new AbortController;return Cr(n,{...t,signal:r.signal}).then(o=>o.json()).then(o=>{const s=a==null?void 0:a(o);if(s)throw s;i.next(o),i.complete()}).catch(o=>{o.name==="AbortError"?i.complete():i.error(o)}),()=>{r.abort()}})}const Lr=(n,t,a)=>br(fr,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:n.text,variables:t})},i=>{if(!(!Y1(i)||!("errors"in i))&&Array.isArray(i.errors))return new Error(`Error fetching GraphQL query '${n.name}' with variables '${JSON.stringify(t)}': ${JSON.stringify(i.errors)}`)}),vr=Na({url:`${dr}/graphql`,shouldRetry:n=>xt&&n instanceof Event&&n.type==="error"?(St(),!0):!1}),yr=(n,t)=>Se.Observable.create(a=>vr.subscribe({operationName:n.name,query:n.text,variables:t},a)),qe=new Se.Environment({network:Se.Network.create(Lr,yr),store:new Se.Store(new Se.RecordSource,{gcReleaseBufferSize:10})});function Mt(n){return n.includes("PRIMARY")?ee.primary:n.includes("CORPUS")?ee.corpus:ee.reference}function tn(n){const t=[],a=[],i=[];return n.forEach(r=>{const o=Mt(r);o==ee.primary?t.push(r):o==ee.corpus?i.push(r):a.push(r)}),{primaryEventIds:t,referenceEventIds:a,corpusEventIds:i}}const l1=10,Fe="unknown",Tt=Ha,It=Ra,wr=n=>It[n],kr=n=>Tt(n/l1);var ze=(n=>(n.move="move",n.select="select",n))(ze||{}),an=(n=>(n.default="default",n.highlight="highlight",n))(an||{});const Me=()=>wt()==="light"?ir:ar;function Mc(){const n=Me();return{coloringStrategy:z.inferences,pointGroupVisibility:{[E.primary]:!0,[E.reference]:!0},pointGroupColors:{[E.primary]:n[0],[E.reference]:n[1],[E.corpus]:le},metric:{type:"drift",metric:"euclideanDistance"}}}function Tc(){const n=Me();return{coloringStrategy:z.inferences,pointGroupVisibility:{[E.primary]:!0,[E.corpus]:!0},pointGroupColors:{[E.primary]:n[0],[E.corpus]:le},metric:{type:"retrieval",metric:"queryDistance"},clusterSort:{dir:"desc",column:"primaryMetricValue"}}}function Ic(){return{coloringStrategy:z.correctness,pointGroupVisibility:{[H.correct]:!0,[H.incorrect]:!0,[H.unknown]:!0},pointGroupColors:{[H.correct]:t1.Discrete2.LightBlueOrange[0],[H.incorrect]:t1.Discrete2.LightBlueOrange[1],[H.unknown]:xe},metric:{type:"performance",metric:"accuracyScore"},clusterSort:{dir:"asc",column:"primaryMetricValue"}}}const Sr=n=>{const t={loading:!1,errorMessage:null,points:[],eventIdToDataMap:new Map,clusters:[],clusterSort:{dir:"desc",column:"driftRatio"},pointData:null,selectedEventIds:new Set,hoveredEventId:null,highlightedClusterId:null,selectedClusterId:null,canvasMode:"move",pointSizeScale:1,clusterColorMode:"default",coloringStrategy:z.inferences,inferencesVisibility:{primary:!0,reference:!0,corpus:!0},pointGroupVisibility:{[E.primary]:!0,[E.reference]:!0,[E.corpus]:!0},pointGroupColors:{[E.primary]:Me()[0],[E.reference]:Me()[1],[E.corpus]:le},eventIdToGroup:{},selectionDisplay:Ae.gallery,selectionGridSize:Ie.large,dimension:null,dimensionMetadata:null,umapParameters:{minDist:Xi,nNeighbors:qi,nSamples:Yi},hdbscanParameters:{minClusterSize:Ji,clusterMinSamples:nr,clusterSelectionEpsilon:tr},clustersLoading:!1,metric:{type:"drift",metric:"euclideanDistance"},selectionSearchText:""},a=(i,r)=>({...t,...n,setInitialData:async({points:o,clusters:s,retrievals:c})=>{const d=r(),u=new Map,p=c.reduce((C,b)=>{const{queryId:k}=b;return C[k]?C[k].push(b):C[k]=[b],C},{});o.forEach(C=>{C={...C,retrievals:p[C.eventId]??[]},u.set(C.eventId,C)});const g=s.map(In).sort(z1(d.clusterSort));i({loading:!1,points:o,eventIdToDataMap:u,clusters:g,clustersLoading:!1,selectedEventIds:new Set,selectedClusterId:null,pointData:null,eventIdToGroup:pe({points:o,coloringStrategy:d.coloringStrategy,pointsData:d.pointData??{},dimension:d.dimension||null,dimensionMetadata:d.dimensionMetadata})});const f=await Tr(o.map(C=>C.eventId)).catch(()=>i({errorMessage:"Failed to load the point events"}));f&&i({pointData:f,clusters:g,clustersLoading:!1,eventIdToGroup:pe({points:o,coloringStrategy:d.coloringStrategy,pointsData:f??{},dimension:d.dimension||null,dimensionMetadata:d.dimensionMetadata})})},setClusters:o=>{const s=r(),c=o.map(In).sort(z1(s.clusterSort));i({clusters:c,clustersLoading:!1,selectedClusterId:null,highlightedClusterId:null})},setClusterSort:o=>{const c=[...r().clusters].sort(z1(o));i({clusterSort:o,clusters:c})},setSelectedEventIds:o=>i({selectedEventIds:o,selectionSearchText:""}),setHoveredEventId:o=>i({hoveredEventId:o}),setHighlightedClusterId:o=>i({highlightedClusterId:o}),setSelectedClusterId:o=>i({selectedClusterId:o,highlightedClusterId:null}),setPointSizeScale:o=>i({pointSizeScale:o}),setCanvasMode:o=>i({canvasMode:o}),setClusterColorMode:o=>i({clusterColorMode:o}),setColoringStrategy:o=>{const s=r();switch(i({coloringStrategy:o}),o){case z.correctness:i({pointGroupVisibility:{[H.correct]:!0,[H.incorrect]:!0,[H.unknown]:!0},pointGroupColors:{[H.correct]:t1.Discrete2.LightBlueOrange[0],[H.incorrect]:t1.Discrete2.LightBlueOrange[1],[H.unknown]:xe},dimension:null,dimensionMetadata:null,eventIdToGroup:pe({points:s.points,coloringStrategy:o,pointsData:s.pointData??{},dimension:s.dimension||null,dimensionMetadata:s.dimensionMetadata})});break;case z.inferences:{i({pointGroupVisibility:{[E.primary]:!0,[E.reference]:!0,[E.corpus]:!0},pointGroupColors:{[E.primary]:Me()[0],[E.reference]:Me()[1],[E.corpus]:le},dimension:null,dimensionMetadata:null,eventIdToGroup:pe({points:s.points,coloringStrategy:o,pointsData:s.pointData??{},dimension:s.dimension||null,dimensionMetadata:s.dimensionMetadata})});break}case z.dimension:{i({pointGroupVisibility:{unknown:!0},pointGroupColors:{unknown:xe},dimension:null,dimensionMetadata:null,eventIdToGroup:pe({points:s.points,coloringStrategy:o,pointsData:s.pointData??{},dimension:s.dimension||null,dimensionMetadata:s.dimensionMetadata})});break}default:D()}},inferencesVisibility:{primary:!0,reference:!0,corpus:!0},setInferencesVisibility:o=>i({inferencesVisibility:o}),setPointGroupVisibility:o=>i({pointGroupVisibility:o}),selectionDisplay:Ae.gallery,setSelectionDisplay:o=>i({selectionDisplay:o}),setSelectionGridSize:o=>i({selectionGridSize:o}),reset:()=>{i({points:[],clusters:[],selectedEventIds:new Set,selectedClusterId:null,eventIdToGroup:{}})},setDimension:async o=>{const s=r();i({dimension:o,dimensionMetadata:null});const c=await Mr(o).catch(()=>i({errorMessage:"Failed to load the dimension metadata"}));if(c){if(i({dimensionMetadata:c}),c.categories&&c.categories.length){const d=c.categories.length,p=d<=It.length?wr:g=>Tt(g/d);i({pointGroupVisibility:{...c.categories.reduce((g,f)=>({...g,[f]:!0}),{}),unknown:!0},pointGroupColors:{...c.categories.reduce((g,f,C)=>({...g,[f]:p(C)}),{}),unknown:xe},eventIdToGroup:pe({points:s.points,coloringStrategy:s.coloringStrategy,pointsData:s.pointData??{},dimension:o,dimensionMetadata:c})})}else if(c.interval!==null){const d=At(c.interval);i({pointGroupVisibility:{...d.reduce((u,p)=>({...u,[p.name]:!0}),{}),unknown:!0},pointGroupColors:{...d.reduce((u,p,g)=>({...u,[p.name]:kr(g)}),{}),unknown:xe},eventIdToGroup:pe({points:s.points,coloringStrategy:s.coloringStrategy,pointsData:s.pointData??{},dimension:o,dimensionMetadata:c})})}}},setDimensionMetadata:o=>i({dimensionMetadata:o}),setUMAPParameters:o=>i({umapParameters:o}),setHDBSCANParameters:async o=>{const s=r();i({hdbscanParameters:o,clustersLoading:!0});const c=await Ir({metric:s.metric,points:s.points,hdbscanParameters:o});s.setClusters(c)},getHDSCANParameters:()=>r().hdbscanParameters,getMetric:()=>r().metric,setErrorMessage:o=>i({errorMessage:o}),setLoading:o=>i({loading:o}),setMetric:async o=>{const s=r();i({metric:o,clustersLoading:!0});const c=await Ar({metric:o,clusters:s.clusters,hdbscanParameters:s.hdbscanParameters});s.setClusters(c)},setSelectionSearchText:o=>i({selectionSearchText:o})});return Be()($e(a))},Tn=new Intl.NumberFormat([],{maximumFractionDigits:2});function xr({min:n,max:t}){return`${Tn.format(n)} - ${Tn.format(t)}`}function At({min:n,max:t}){const i=(t-n)/l1,r=[];for(let o=0;o<l1;o++){const s=n+o*i,c=n+(o+1)*i;r.push({min:s,max:c,name:xr({min:s,max:c})})}return r}function A1({numericGroupIntervals:n,numericValue:t}){let a=Fe,i=n.findIndex(r=>t>=r.min&&t<r.max);return i=i===-1?l1-1:i,a=n[i].name,a}function pe(n){const{points:t,coloringStrategy:a,pointsData:i,dimension:r,dimensionMetadata:o}=n,s={},c=t.map(d=>d.eventId);switch(a){case z.inferences:{const{primaryEventIds:d,referenceEventIds:u,corpusEventIds:p}=tn(c);d.forEach(g=>{s[g]=E.primary}),u.forEach(g=>{s[g]=E.reference}),p.forEach(g=>{s[g]=E.corpus});break}case z.correctness:{t.forEach(d=>{let u=H.unknown;const{predictionLabel:p,actualLabel:g}=d.eventMetadata;p!==null&&g!==null&&(u=p===g?H.correct:H.incorrect),s[d.eventId]=u});break}case z.dimension:{let d;o&&(o==null?void 0:o.interval)!==null&&(d=At(o.interval));const u=(r==null?void 0:r.type)==="prediction"&&(r==null?void 0:r.dataType)==="categorical",p=(r==null?void 0:r.type)==="prediction"&&(r==null?void 0:r.dataType)==="numeric",g=(r==null?void 0:r.type)==="actual"&&(r==null?void 0:r.dataType)==="categorical",f=(r==null?void 0:r.type)==="actual"&&(r==null?void 0:r.dataType)==="numeric";t.forEach(C=>{let b=Fe;const k=i[C.eventId];if(r!=null&&k!=null)if(u)b=k.eventMetadata.predictionLabel??Fe;else if(p){if(d==null)throw new Error("Cannot color by prediction score without numeric group intervals");const S=k.eventMetadata.predictionScore;typeof S=="number"&&(b=A1({numericGroupIntervals:d,numericValue:S}))}else if(f){if(d==null)throw new Error("Cannot color by actual score without numeric group intervals");const S=k.eventMetadata.actualScore;typeof S=="number"&&(b=A1({numericGroupIntervals:d,numericValue:S}))}else if(g)b=k.eventMetadata.actualLabel??Fe;else{const S=k.dimensions.find(K=>K.dimension.name===r.name);if(S!=null&&r.dataType==="categorical")b=S.value??Fe;else if(S!=null&&r.dataType==="numeric"&&d!=null){const K=typeof(S==null?void 0:S.value)=="string"?parseFloat(S.value):null;typeof K=="number"&&(b=A1({numericGroupIntervals:d,numericValue:K}))}}s[C.eventId]=b});break}default:D()}return s}async function Mr(n){const t=await N.fetchQuery(qe,Ct,{id:n.id,getDimensionMinMax:n.dataType==="numeric",getDimensionCategories:n.dataType==="categorical"}).toPromise(),a=t==null?void 0:t.dimension;if(!n)throw new Error("Dimension not found");let i=null;return typeof(a==null?void 0:a.min)=="number"&&typeof(a==null?void 0:a.max)=="number"&&(i={min:a.min,max:a.max}),{interval:i,categories:(a==null?void 0:a.categories)??null}}async function Tr(n){var u,p,g,f,C,b;const{primaryEventIds:t,referenceEventIds:a,corpusEventIds:i}=tn([...n]),r=await N.fetchQuery(qe,ft,{primaryEventIds:t,referenceEventIds:a,corpusEventIds:i}).toPromise(),o=((p=(u=r==null?void 0:r.model)==null?void 0:u.primaryInferences)==null?void 0:p.events)??[],s=((f=(g=r==null?void 0:r.model)==null?void 0:g.referenceInferences)==null?void 0:f.events)??[],c=((b=(C=r==null?void 0:r.model)==null?void 0:C.corpusInferences)==null?void 0:b.events)??[];return[...o,...s,...c].reduce((k,P)=>(k[P.id]=P,k),{})}async function Ir({metric:n,points:t,hdbscanParameters:a}){const i=await N.fetchQuery(qe,gt,{eventIds:t.map(r=>r.eventId),coordinates:t.map(r=>({x:r.position[0],y:r.position[1],z:r.position[2]})),fetchDataQualityMetric:n.type==="dataQuality",dataQualityMetricColumnName:n.type==="dataQuality"?n.dimension.name:null,fetchPerformanceMetric:n.type==="performance",performanceMetric:n.type==="performance"?n.metric:"accuracyScore",...a},{fetchPolicy:"network-only"}).toPromise();return(i==null?void 0:i.hdbscanClustering)??[]}async function Ar({metric:n,clusters:t,hdbscanParameters:a}){const i=await N.fetchQuery(qe,pt,{clusters:t.map(r=>({id:r.id,eventIds:r.eventIds})),fetchDataQualityMetric:n.type==="dataQuality",dataQualityMetricColumnName:n.type==="dataQuality"?n.dimension.name:null,fetchPerformanceMetric:n.type==="performance",performanceMetric:n.type==="performance"?n.metric:"accuracyScore",...a},{fetchPolicy:"network-only"}).toPromise();return(i==null?void 0:i.clusters)??[]}const z1=n=>(t,a)=>{const{dir:i,column:r}=n,o=i==="asc",s=t[r],c=a[r];return s==null?1:c==null?-1:s>c?o?1:-1:s<c?o?-1:1:0};function In(n){let t=n.driftRatio,a=null;return n.dataQualityMetric?(t=n.dataQualityMetric.primaryValue,a=n.dataQualityMetric.referenceValue):n.performanceMetric?(t=n.performanceMetric.primaryValue,a=n.performanceMetric.referenceValue):n.primaryToCorpusRatio!=null&&(t=(n.primaryToCorpusRatio+1)/2*100),{...n,size:n.eventIds.length,primaryMetricValue:t,referenceMetricValue:a}}const Ac=n=>{const t=a=>({...n,columnVisibility:{metadata:!1},annotationColumnVisibility:{},setColumnVisibility:i=>{a({columnVisibility:i})},setAnnotationColumnVisibility:i=>{a({annotationColumnVisibility:i})}});return Be()($e(t))},se={NONE:"NONE",FString:"F_STRING",Mustache:"MUSTACHE"},zc={OPENAI:"OpenAI",AZURE_OPENAI:"Azure OpenAI",ANTHROPIC:"Anthropic",GEMINI:"Gemini"},zt="OPENAI",zr="gpt-4o",Er="user",Ec=["2024-10-01-preview","2024-09-01-preview","2024-08-01-preview","2024-07-01-preview","2024-06-01","2024-05-01-preview","2024-04-01-preview","2024-03-01-preview","2024-02-15-preview","2024-02-01","2023-10-01-preview","2023-09-01-preview","2023-08-01-preview","2023-07-01-preview","2023-06-01-preview","2023-05-15","2023-03-15-preview"],Et=({parser:n,text:t})=>{const a=n.parse(t),i=[],r=a.cursor();do r.name==="Variable"&&i.push(t.slice(r.node.from,r.node.to));while(r.next());return i},Vt=({parser:n,text:t,variables:a,postFormat:i})=>{if(!t)return"";let r=t,o=n.parse(r),s=o.cursor();do if(s.name==="Variable"){const c=r.slice(s.node.from,s.node.to),d=s.node.parent;c in a&&(r=`${r.slice(0,d.from)}${a[c]}${r.slice(d.to)}`,o=n.parse(r),s=o.cursor())}while(s.next());return i&&(r=i(r)),r},Vr=Un.deserialize({version:14,states:"!WQQOPOOOcOQO'#C^OOOO'#Cb'#CbQQOPOOOOOO'#Cc'#CcOhOQO,58xOOOO-E6`-E6`OOOO-E6a-E6aOOOO1G.d1G.d",stateData:"v~ORPOXQOYQOZQO[QO~OSSO~OSSOTWO~OZRX[X~",goto:"iWPPXPPP]cTQORQRORURQTPRVT",nodeNames:"⚠ FStringTemplate Template LBrace Variable RBrace",maxTerm:12,skippedNodes:[0],repeatNodeCount:2,tokenData:"%[~RaXY!WYZ!W]^!Wpq!Wqr!Wrs!]sw!Wwx!bx#O!W#O#P!i#P#o!W#o#p$c#p#q!W#q#r$|#r;'S!W;'S;=`%U<%lO!W~!]OX~~!bO[~~!iOX~[~~!lYrs!W!P!Q!W#O#P!W#U#V!W#Y#Z!W#b#c!W#f#g!W#h#i!W#i#j#[#o#p$^~#_R!Q![#h!c!i#h#T#Z#h~#kR!Q![#t!c!i#t#T#Z#t~#wR!Q![$Q!c!i$Q#T#Z$Q~$TR!Q![!W!c!i!W#T#Z!W~$cOZ~~$jQR~X~#o#p$p#q#r$w~$wOZ~[~~$|OY~~%RPX~#q#r!]~%XP;=`<%l!W",tokenizers:[1,new jn("!p~RVO#Oh#O#P!P#P#qh#q#r!j#r;'Sh;'S;=`y<%lOh~mSS~O#qh#r;'Sh;'S;=`y<%lOh~|P;=`<%lh~!UTS~O#qh#q#r!e#r;'Sh;'S;=`y<%lOh~!jOS~~!oOT~~",77)],topRules:{FStringTemplate:[0,1]},tokenPrec:32}),rn=ct.define({parser:Vr.configure({props:[Qn({"Template/LBrace":oe.quote,"Template/RBrace":oe.quote,"Template/Variable":oe.variableName,"⚠":oe.invalid})]}),languageData:{}}),Dr=({text:n,variables:t})=>Vt({parser:rn.parser,text:n,variables:t,postFormat:a=>a.replaceAll("\\{","{").replaceAll("{{","{").replaceAll("}}","}")}),Pr=n=>Et({parser:rn.parser,text:n});function Or(){return new dt(rn)}const _r=Un.deserialize({version:14,states:"!WQQOPOOOcOQO'#C^OOOO'#Cb'#CbQQOPOOOOOO'#Cc'#CcOhOQO,58xOOOO-E6`-E6`OOOO-E6a-E6aOOOO1G.d1G.d",stateData:"v~ORPOXQOYQOZQO[QO~OSSO~OSSOTWO~OZRX[X~",goto:"iWPPXPPP]cTQORQRORURQTPRVT",nodeNames:"⚠ MustacheLikeTemplate Template LBrace Variable RBrace",maxTerm:12,skippedNodes:[0],repeatNodeCount:2,tokenData:"%W~RaXY!WYZ!W]^!Wpq!Wqr!Wrs!]sw!Wwx!bx#O!W#O#P!i#P#o!W#o#p$c#p#q!W#q#r!b#r;'S!W;'S;=`%Q<%lO!W~!]OX~~!bO[~~!iOX~[~~!lYrs!W!P!Q!W#O#P!W#U#V!W#Y#Z!W#b#c!W#f#g!W#h#i!W#i#j#[#o#p$^~#_R!Q![#h!c!i#h#T#Z#h~#kR!Q![#t!c!i#t#T#Z#t~#wR!Q![$Q!c!i$Q#T#Z$Q~$TR!Q![!W!c!i!W#T#Z!W~$cOZ~~$jPX~[~#o#p$m~$rPR~#q#r$u~$xP#q#r${~%QOY~~%TP;=`<%l!W",tokenizers:[1,new jn("#e~RVO#oh#o#p!P#p#qh#q#r#X#r;'Sh;'S;=`y<%lOh~mSS~O#qh#r;'Sh;'S;=`y<%lOh~|P;=`<%lh~!USS~O#q!b#r;'S!b;'S;=`#R<%lO!b~!gVS~O#O!b#O#P!b#P#q!b#q#r!|#r;'S!b;'S;=`#R<%lO!b~#ROS~~#UP;=`<%l!b~#[P#q#r#_~#dOT~~",112)],topRules:{MustacheLikeTemplate:[0,1]},tokenPrec:32}),on=ct.define({parser:_r.configure({props:[Qn({"Template/LBrace":oe.quote,"Template/RBrace":oe.quote,"Template/Variable":oe.variableName,"Template/⚠":oe.invalid})]}),languageData:{}}),Fr=({text:n,variables:t})=>Vt({parser:on.parser,text:n,variables:t,postFormat:a=>a.replaceAll("\\{{","{{")}),Nr=n=>Et({parser:on.parser,text:n});function Rr(){return new dt(on)}const Vc=n=>{switch(n){case se.FString:return{format:Dr,extractVariables:Pr};case se.Mustache:return{format:Fr,extractVariables:Nr};case se.NONE:return{format:({text:t})=>t,extractVariables:()=>[]};default:D()}},Hr=w.union([w.string(),w.number(),w.boolean(),w.null()]),s1=w.lazy(()=>w.union([Hr,w.array(s1),w.record(s1)])),An=w.object({type:w.enum(["string","number","boolean","object","array","null","integer"]).describe("The type of the parameter"),description:w.string().optional().describe("A description of the parameter"),enum:w.array(w.string()).optional().describe("The allowed values")}).passthrough().describe("A map of parameter names to their definitions"),Dt=w.object({type:w.literal("object"),properties:w.record(w.union([An,w.object({anyOf:w.array(An)}).describe("A list of possible parameter names to their definitions")])),required:w.array(w.string()).optional().describe("The required parameters"),additionalProperties:w.boolean().optional().describe("Whether or not additional properties are allowed in the schema")}).passthrough(),b1=w.object({type:w.literal("function").describe("The type of the tool"),function:w.object({name:w.string().describe("The name of the function"),description:w.string().optional().describe("A description of the function"),parameters:Dt.extend({strict:w.boolean().optional().describe("Whether or not the arguments should exactly match the function definition, only supported for OpenAI models")}).describe("The parameters that the function accepts")}).passthrough().describe("The function definition")}).passthrough(),Dc=u1(b1,{removeAdditionalStrategy:"passthrough"}),L1=w.object({name:w.string(),description:w.string(),input_schema:Dt}),Pc=u1(L1,{removeAdditionalStrategy:"passthrough"}),Kr=L1.transform(n=>({type:"function",function:{name:n.name,description:n.description,parameters:n.input_schema}})),Br=b1.transform(n=>({name:n.function.name,description:n.function.description??n.function.name,input_schema:n.function.parameters})),Oc=w.union([b1,L1,s1]),$r=n=>{const{success:t,data:a}=b1.safeParse(n);if(t)return{provider:"OPENAI",validatedToolDefinition:a};const{success:i,data:r}=L1.safeParse(n);return i?{provider:"ANTHROPIC",validatedToolDefinition:r}:{provider:"UNKNOWN",validatedToolDefinition:null}},zn=n=>{const{provider:t,validatedToolDefinition:a}=$r(n);switch(t){case"AZURE_OPENAI":case"OPENAI":return a;case"ANTHROPIC":return Kr.parse(a);case"UNKNOWN":return null;default:D()}},Zr=({toolDefinition:n,targetProvider:t})=>{switch(t){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return Br.parse(n);case"GEMINI":return n;default:D()}};function _c(n){return{type:"function",function:{name:`new_function_${n}`,description:"",parameters:{type:"object",properties:{new_arg:{type:"string"}},required:[]}}}}function Fc(n){return{name:`new_function_${n}`,description:"",input_schema:{type:"object",properties:{new_arg:{type:"string"}},required:[]}}}const v1=w.object({id:w.string().describe("The ID of the tool call"),function:w.object({name:w.string().describe("The name of the function"),arguments:w.record(w.unknown()).describe("The arguments for the function")}).describe("The function that is being called").passthrough()}),Gr=w.array(v1),Nc=u1(Gr,{removeAdditionalStrategy:"passthrough"}),y1=w.object({id:w.string().describe("The ID of the tool call"),type:w.literal("tool_use"),name:w.string().describe("The name of the tool"),input:w.record(w.unknown()).describe("The input for the tool")}).passthrough(),Wr=w.array(y1),Rc=u1(Wr,{removeAdditionalStrategy:"passthrough"}),Ur=y1.transform(n=>({id:n.id,function:{name:n.name,arguments:n.input}})),jr=v1.transform(n=>({id:n.id,type:"tool_use",name:n.function.name,input:typeof n.function.arguments=="string"?{[n.function.arguments]:n.function.arguments}:n.function.arguments??{}})),Qr=w.union([v1,y1,s1]),Hc=w.array(Qr),qr=n=>{const{success:t,data:a}=v1.safeParse(n);if(t)return{provider:"OPENAI",validatedToolCall:a};const{success:i,data:r}=y1.safeParse(n);return i?{provider:"ANTHROPIC",validatedToolCall:r}:{provider:"UNKNOWN",validatedToolCall:null}},En=n=>{const{provider:t,validatedToolCall:a}=qr(n);switch(t){case"AZURE_OPENAI":case"OPENAI":return a;case"ANTHROPIC":return Ur.parse(a);case"UNKNOWN":return null;default:D()}},Xr=({toolCall:n,targetProvider:t})=>{switch(t){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return jr.parse(n);case"GEMINI":return n;default:D()}};function Kc(){return{id:"",function:{name:"",arguments:{}}}}function Bc(){return{id:"",type:"tool_use",name:"",input:{}}}function Yr({str:n,excludePrimitives:t=!1,excludeArray:a=!1}){try{const i=JSON.parse(n);if(t&&typeof i!="object"||a&&Array.isArray(i))return!1}catch{return!1}return!0}function Jr(n){return Yr({str:n,excludeArray:!0,excludePrimitives:!0})}function $c(n){try{return{json:JSON.parse(n)}}catch(t){return{json:null,parseError:t}}}function Zc(...n){try{return{json:JSON.stringify(...n)}}catch(t){return{json:null,stringifyError:t}}}const e2=({instanceTools:n,provider:t})=>n.map(a=>{switch(t){case"OPENAI":case"AZURE_OPENAI":{const i=zn(a.definition);return{...a,definition:i??a.definition}}case"ANTHROPIC":{const i=zn(a.definition),r=i?Zr({toolDefinition:i,targetProvider:t}):a.definition;return{...a,definition:r}}case"GEMINI":return a;default:D()}}),n2=({toolCalls:n,provider:t})=>{if(n!=null)return n.map(a=>{switch(t){case"OPENAI":case"AZURE_OPENAI":return En(a)??a;case"ANTHROPIC":{const i=En(a);return i!=null?Xr({toolCall:i,targetProvider:t}):a}case"GEMINI":return a;default:D()}})};let t2=0,a2=0,i2=1,r2=0;const Pt=()=>t2++,Vn=()=>i2++,Gc=()=>r2++,o2=()=>a2++,Ot=()=>({__type:"chat",messages:[{id:Vn(),role:"system",content:"You are a chatbot"},{id:Vn(),role:"user",content:"{{question}}"}]}),l2={__type:"text_completion",prompt:"{{question}}"};function s2(){return{id:Pt(),template:Ot(),model:{provider:zt,modelName:zr,invocationParameters:[],supportedInvocationParameters:[]},tools:[],toolChoice:"auto",output:void 0,spanId:null,activeRunId:null}}function Wc(){return{type:"json_schema",json_schema:{name:"response",schema:{type:"object",properties:{},required:[],additionalProperties:!1},strict:!0}}}function c2(n){if(n.instances!=null&&n.instances.length>0)return n.instances;const t=s2(),a=Object.values(n.modelConfigByProvider);if(!(a.length>0))return[t];const r=a.find(o=>o.provider===zt)??a[0];return t.model={...t.model,...r},[t]}const Uc=n=>Be($e((a,i)=>({streaming:!0,operationType:"chat",inputMode:"manual",input:{variablesValueCache:{}},templateLanguage:se.Mustache,instances:c2(n),setInput:r=>{a({input:r})},setOperationType:r=>{a(r==="chat"?{instances:i().instances.map(o=>({...o,template:Ot()}))}:{instances:i().instances.map(o=>({...o,template:l2}))}),a({operationType:r})},addInstance:()=>{const r=i().instances,o=i().instances[0];o&&a({instances:[...r,{...o,id:Pt(),activeRunId:null,experimentId:null,spanId:null}]})},updateModelSupportedInvocationParameters:({instanceId:r,supportedInvocationParameters:o})=>{const s=i().instances;a({instances:s.map(c=>c.id===r?{...c,model:{...c.model,supportedInvocationParameters:o,invocationParameters:Mi(c.model.invocationParameters,o)},tools:o.find(d=>d.canonicalName===Ti)?c.tools:[]}:c)})},updateProvider:({instanceId:r,provider:o,modelConfigByProvider:s})=>{const c=i().instances,d=c.find(g=>g.id===r);if(!d||d.model.provider===o)return;const u=s[o],p={model:u?{...u,supportedInvocationParameters:[],provider:o}:{modelName:null,baseUrl:null,invocationParameters:[],supportedInvocationParameters:[],apiVersion:null,endpoint:null,provider:o},tools:e2({instanceTools:d.tools,provider:o})};d.template.__type==="chat"&&(p.template={__type:"chat",messages:d.template.messages.map(g=>({...g,toolCalls:n2({toolCalls:g.toolCalls,provider:o})}))}),a({instances:c.map(g=>g.id===r?{...g,...p}:g)})},updateModel:({instanceId:r,patch:o})=>{const s=i().instances;s.find(d=>d.id===r)&&a({instances:s.map(d=>d.id===r?{...d,model:{...d.model,...o}}:d)})},deleteInstance:r=>{const o=i().instances;a({instances:o.filter(s=>s.id!==r)})},addMessage:({playgroundInstanceId:r})=>{const o=i().instances;a({instances:o.map(s=>s.id===r&&(s!=null&&s.template)&&(s==null?void 0:s.template.__type)==="chat"?{...s,messages:[...s.template.messages,{role:Er,content:"{question}"}]}:s)})},updateInstance:({instanceId:r,patch:o})=>{const s=i().instances;a({instances:s.map(c=>c.id===r?{...c,...o}:c)})},runPlaygroundInstances:()=>{const r=i().instances;a({instances:r.map(o=>({...o,activeRunId:o2(),spanId:null}))})},cancelPlaygroundInstances:()=>{a({instances:i().instances.map(r=>({...r,activeRunId:null,spanId:null}))})},markPlaygroundInstanceComplete:r=>{const o=i().instances;a({instances:o.map(s=>s.id===r?{...s,activeRunId:null}:s)})},setTemplateLanguage:r=>{a({templateLanguage:r})},setVariableValue:(r,o)=>{const s=i().input;a({input:{...s,variablesValueCache:{...s.variablesValueCache,[r]:o}}})},setStreaming:r=>{a({streaming:r})},updateInstanceModelInvocationParameters:({instanceId:r,invocationParameters:o})=>{i().instances.find(c=>c.id===r)&&a({instances:i().instances.map(c=>c.id===r?{...c,model:{...c.model,invocationParameters:o}}:c)})},upsertInvocationParameterInput:({instanceId:r,invocationParameterInput:o})=>{const s=i().instances.find(d=>d.id===r);if(!s)return;const c=s.model.invocationParameters.find(d=>fn(d,o));a(c?{instances:i().instances.map(d=>d.id===r?{...d,model:{...d.model,invocationParameters:d.model.invocationParameters.map(u=>fn(u,o)?o:u)}}:d)}:{instances:i().instances.map(d=>d.id===r?{...d,model:{...d.model,invocationParameters:[...d.model.invocationParameters,o]}}:d)})},deleteInvocationParameterInput:({instanceId:r,invocationParameterInputInvocationName:o})=>{i().instances.find(c=>c.id===r)&&a({instances:i().instances.map(c=>c.id===r?{...c,model:{...c.model,invocationParameters:c.model.invocationParameters.filter(d=>d.invocationName!==o)}}:c)})},...n}))),jc=n=>{const t=a=>({setCredential:({provider:i,value:r})=>{a({[i]:r})},...n});return Be()(qn($e(t),{name:"arize-phoenix-credentials"}))};function _t(n){return e("div",{onClick:t=>t.stopPropagation(),css:m`
147
+ `}}}();Ct.hash="e8fa488a0d466b5e40fdadc1e5227a57";const qi=30,bn=5,Ln=100,Xi=0,vn=0,yn=.99,Yi=500,wn=300,kn=1e5,Ji=10,Sn=1,er=2,nr=1,tr=0;var z=(n=>(n.inferences="inferences",n.correctness="correctness",n.dimension="dimension",n))(z||{}),Ae=(n=>(n.list="list",n.gallery="gallery",n))(Ae||{}),Ie=(n=>(n.small="small",n.medium="medium",n.large="large",n))(Ie||{}),E=(n=>(n.primary="primary",n.reference="reference",n.corpus="corpus",n))(E||{}),H=(n=>(n.correct="correct",n.incorrect="incorrect",n.unknown="unknown",n))(H||{});const ar=["#05fbff","#cb8afd"],ir=["#00add0","#4500d9"],le="#a5a5a5",xe=le;var ee=(n=>(n.primary="primary",n.reference="reference",n.corpus="corpus",n))(ee||{});function D(n){throw new Error("Unreachable")}function X1(n){return typeof n=="number"||n===null}function rr(n){return typeof n=="string"||n===null}function hc(n){return Array.isArray(n)?n.every(t=>typeof t=="string"):!1}function Y1(n){return typeof n=="object"&&n!==null}function pc(n){return Y1(n)&&Object.keys(n).every(t=>typeof t=="string")}const gc=()=>n=>n,J1=h.createContext(null);function f1(){const n=G.useContext(J1);if(n===null)throw new Error("useInferences must be used within a InferencesProvider");return n}function fc(n){return e(J1.Provider,{value:{primaryInferences:n.primaryInferences,referenceInferences:n.referenceInferences,corpusInferences:n.corpusInferences,getInferencesNameByRole:t=>{var a,i;switch(t){case ee.primary:return n.primaryInferences.name;case ee.reference:return((a=n.referenceInferences)==null?void 0:a.name)??"reference";case ee.corpus:return((i=n.corpusInferences)==null?void 0:i.name)??"corpus";default:D()}}},children:n.children})}const en=h.createContext(null);function Cc({children:n,...t}){const[a]=h.useState(()=>Sr(t));return e(en.Provider,{value:a,children:n})}function y(n,t){const a=h.useContext(en);if(!a)throw new Error("Missing PointCloudContext.Provider in the tree");return Wn(a,n,t)}var X=(n=>(n.last_hour="Last Hour",n.last_day="Last Day",n.last_week="Last Week",n.last_month="Last Month",n.last_3_months="Last 3 Months",n.first_hour="First Hour",n.first_day="First Day",n.first_week="First Week",n.first_month="First Month",n.all="All",n))(X||{});const bt=h.createContext(null);function or(){const n=h.useContext(bt);if(n===null)throw new Error("useTimeRange must be used within a TimeRangeProvider");return n}function lr(n,t){return h.useMemo(()=>{switch(n){case"Last Hour":{const i=we(Fa(t.end),{roundingMethod:"ceil"});return{start:R1(i,1),end:i}}case"Last Day":{const i=we(_a(t.end),{roundingMethod:"ceil"});return{start:ge(i,1),end:i}}case"Last Week":{const i=we(Xe(t.end),{roundingMethod:"ceil"});return{start:ge(i,7),end:i}}case"Last Month":{const i=we(Xe(t.end),{roundingMethod:"ceil"});return{start:ge(i,30),end:i}}case"Last 3 Months":{const i=we(Xe(t.end),{roundingMethod:"ceil"});return{start:ge(i,90),end:i}}case"First Hour":{const i=N1(t.start);return{start:i,end:Oa(i,1)}}case"First Day":{const i=ke(t.start);return{start:i,end:e1(i,1)}}case"First Week":{const i=T1(t.start);return{start:i,end:e1(i,7)}}case"First Month":{const i=T1(t.start);return{start:i,end:e1(i,30)}}case"All":{const i=we(Xe(t.end),{roundingMethod:"floor"});return{start:T1(t.start),end:i}}default:D()}},[n,t])}function bc(n){const[t,a]=h.useState("Last Month"),i=lr(t,n.timeRangeBounds),r=h.useCallback(o=>{h.startTransition(()=>{a(o)})},[]);return e(bt.Provider,{value:{timeRange:i,timePreset:t,setTimePreset:r},children:n.children})}const Lt=h.createContext(null);function Lc({children:n}){const[t,a]=Ai({style:{zIndex:1e3}}),i=h.useCallback(o=>{t({variant:"danger",...o})},[t]),r=h.useCallback(o=>{t({variant:"success",...o})},[t]);return l(Lt.Provider,{value:{notify:t,notifyError:i,notifySuccess:r},children:[n,a]})}function vt(){const n=h.useContext(Lt);if(n===null)throw new Error("useGlobalNotification must be used within a NotificationProvider");return n}function vc(){return vt().notifyError}function C1(){return vt().notifySuccess}const yt="arize-phoenix-theme";function wt(){return localStorage.getItem(yt)==="light"?"light":"dark"}const nn=h.createContext(null);function Q(){const n=h.useContext(nn);if(n===null)throw new Error("useTheme must be used within a ThemeProvider");return n}function yc(n){const[t,a]=h.useState(wt()),i=h.useCallback(r=>{localStorage.setItem(yt,r),a(r)},[]);return e(nn.Provider,{value:{theme:t,setTheme:i},children:n.children})}function sr(n){return n.endsWith("/")?n.slice(0,-1):n}const kt=sr(window.Config.basename),cr=window.location.protocol==="https:",Qe=`${window.location.protocol}//${window.location.host}${kt}`,dr=`${cr?"wss":"ws"}://${window.location.host}${kt}`,wc=window.Config.platformVersion,Re="returnUrl";function xn(n,t){const a=new URL(n,window.location.origin);return t.forEach((i,r)=>{a.searchParams.append(r,i)}),a.pathname+a.search}function ur(){const n=window.Config.basename,t=n==null||n===""||n==="/",a=n!=null&&n.startsWith("/")&&!n.endsWith("/");if(!(t||a))throw new Error(`Invalid basename: ${n}`);const i=window.location.pathname,r=window.location.origin,o=new URLSearchParams(window.location.search);if(t){const s=new URL("/login",r);return s.searchParams.set(Re,xn(i,o)),s.pathname+s.search}if(i.startsWith(n)){const s=i.slice(n.length);if(s===""||s.startsWith("/")){const d=new URL(n+"/login",r);return d.searchParams.set(Re,xn(s,o)),d.pathname+d.search}}return n+"/login"}function kc(n){const t=window.Config.basename,a=t==null||t===""||t==="/",i=t!=null&&t.startsWith("/")&&!t.endsWith("/");if(!(a||i))throw new Error(`Invalid basename: ${t}`);return a?n:t+n}const Sc=({path:n,searchParams:t})=>{const i=new URL(window.location.href).searchParams.get(Re),r=new URLSearchParams(t||{});i&&r.set(Re,i);const o=r.toString();return`${n}${o?`?${o}`:""}`},mr=n=>!(typeof n!="string"||!n.startsWith("/")||n.replace(/\\/g,"/").startsWith("//")),hr=n=>mr(n)?n:"/",xc=()=>{const n=new URL(window.location.href);return hr(n.searchParams.get(Re))},pr=Qe+"/auth/refresh";class Mn extends Error{constructor(){super("Unauthorized")}}async function gr(n,t){try{return await fetch(n,t).then(a=>{if(a.status===401)throw new Mn;return a})}catch(a){if(a instanceof Mn)return await St(),fetch(n,t);if(a instanceof Error&&a.name==="AbortError")throw a}throw new Error("An unexpected error occurred while fetching data")}let Oe=null;async function St(){return Oe||(Oe=fetch(pr,{method:"POST"}).then(n=>(n.ok||(window.location.href=ur()),Oe=null,n)),Oe)}const fr=Qe+"/graphql",xt=window.Config.authenticationEnabled,Cr=xt?gr:fetch;function br(n,t,a){return Se.Observable.create(i=>{const r=new AbortController;return Cr(n,{...t,signal:r.signal}).then(o=>o.json()).then(o=>{const s=a==null?void 0:a(o);if(s)throw s;i.next(o),i.complete()}).catch(o=>{o.name==="AbortError"?i.complete():i.error(o)}),()=>{r.abort()}})}const Lr=(n,t,a)=>br(fr,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:n.text,variables:t})},i=>{if(!(!Y1(i)||!("errors"in i))&&Array.isArray(i.errors))return new Error(`Error fetching GraphQL query '${n.name}' with variables '${JSON.stringify(t)}': ${JSON.stringify(i.errors)}`)}),vr=Na({url:`${dr}/graphql`,shouldRetry:n=>xt&&n instanceof Event&&n.type==="error"?(St(),!0):!1}),yr=(n,t)=>Se.Observable.create(a=>vr.subscribe({operationName:n.name,query:n.text,variables:t},a)),qe=new Se.Environment({network:Se.Network.create(Lr,yr),store:new Se.Store(new Se.RecordSource,{gcReleaseBufferSize:10})});function Mt(n){return n.includes("PRIMARY")?ee.primary:n.includes("CORPUS")?ee.corpus:ee.reference}function tn(n){const t=[],a=[],i=[];return n.forEach(r=>{const o=Mt(r);o==ee.primary?t.push(r):o==ee.corpus?i.push(r):a.push(r)}),{primaryEventIds:t,referenceEventIds:a,corpusEventIds:i}}const l1=10,Fe="unknown",Tt=Ha,It=Ra,wr=n=>It[n],kr=n=>Tt(n/l1);var ze=(n=>(n.move="move",n.select="select",n))(ze||{}),an=(n=>(n.default="default",n.highlight="highlight",n))(an||{});const Me=()=>wt()==="light"?ir:ar;function Mc(){const n=Me();return{coloringStrategy:z.inferences,pointGroupVisibility:{[E.primary]:!0,[E.reference]:!0},pointGroupColors:{[E.primary]:n[0],[E.reference]:n[1],[E.corpus]:le},metric:{type:"drift",metric:"euclideanDistance"}}}function Tc(){const n=Me();return{coloringStrategy:z.inferences,pointGroupVisibility:{[E.primary]:!0,[E.corpus]:!0},pointGroupColors:{[E.primary]:n[0],[E.corpus]:le},metric:{type:"retrieval",metric:"queryDistance"},clusterSort:{dir:"desc",column:"primaryMetricValue"}}}function Ic(){return{coloringStrategy:z.correctness,pointGroupVisibility:{[H.correct]:!0,[H.incorrect]:!0,[H.unknown]:!0},pointGroupColors:{[H.correct]:t1.Discrete2.LightBlueOrange[0],[H.incorrect]:t1.Discrete2.LightBlueOrange[1],[H.unknown]:xe},metric:{type:"performance",metric:"accuracyScore"},clusterSort:{dir:"asc",column:"primaryMetricValue"}}}const Sr=n=>{const t={loading:!1,errorMessage:null,points:[],eventIdToDataMap:new Map,clusters:[],clusterSort:{dir:"desc",column:"driftRatio"},pointData:null,selectedEventIds:new Set,hoveredEventId:null,highlightedClusterId:null,selectedClusterId:null,canvasMode:"move",pointSizeScale:1,clusterColorMode:"default",coloringStrategy:z.inferences,inferencesVisibility:{primary:!0,reference:!0,corpus:!0},pointGroupVisibility:{[E.primary]:!0,[E.reference]:!0,[E.corpus]:!0},pointGroupColors:{[E.primary]:Me()[0],[E.reference]:Me()[1],[E.corpus]:le},eventIdToGroup:{},selectionDisplay:Ae.gallery,selectionGridSize:Ie.large,dimension:null,dimensionMetadata:null,umapParameters:{minDist:Xi,nNeighbors:qi,nSamples:Yi},hdbscanParameters:{minClusterSize:Ji,clusterMinSamples:nr,clusterSelectionEpsilon:tr},clustersLoading:!1,metric:{type:"drift",metric:"euclideanDistance"},selectionSearchText:""},a=(i,r)=>({...t,...n,setInitialData:async({points:o,clusters:s,retrievals:c})=>{const d=r(),u=new Map,p=c.reduce((C,b)=>{const{queryId:k}=b;return C[k]?C[k].push(b):C[k]=[b],C},{});o.forEach(C=>{C={...C,retrievals:p[C.eventId]??[]},u.set(C.eventId,C)});const g=s.map(In).sort(z1(d.clusterSort));i({loading:!1,points:o,eventIdToDataMap:u,clusters:g,clustersLoading:!1,selectedEventIds:new Set,selectedClusterId:null,pointData:null,eventIdToGroup:pe({points:o,coloringStrategy:d.coloringStrategy,pointsData:d.pointData??{},dimension:d.dimension||null,dimensionMetadata:d.dimensionMetadata})});const f=await Tr(o.map(C=>C.eventId)).catch(()=>i({errorMessage:"Failed to load the point events"}));f&&i({pointData:f,clusters:g,clustersLoading:!1,eventIdToGroup:pe({points:o,coloringStrategy:d.coloringStrategy,pointsData:f??{},dimension:d.dimension||null,dimensionMetadata:d.dimensionMetadata})})},setClusters:o=>{const s=r(),c=o.map(In).sort(z1(s.clusterSort));i({clusters:c,clustersLoading:!1,selectedClusterId:null,highlightedClusterId:null})},setClusterSort:o=>{const c=[...r().clusters].sort(z1(o));i({clusterSort:o,clusters:c})},setSelectedEventIds:o=>i({selectedEventIds:o,selectionSearchText:""}),setHoveredEventId:o=>i({hoveredEventId:o}),setHighlightedClusterId:o=>i({highlightedClusterId:o}),setSelectedClusterId:o=>i({selectedClusterId:o,highlightedClusterId:null}),setPointSizeScale:o=>i({pointSizeScale:o}),setCanvasMode:o=>i({canvasMode:o}),setClusterColorMode:o=>i({clusterColorMode:o}),setColoringStrategy:o=>{const s=r();switch(i({coloringStrategy:o}),o){case z.correctness:i({pointGroupVisibility:{[H.correct]:!0,[H.incorrect]:!0,[H.unknown]:!0},pointGroupColors:{[H.correct]:t1.Discrete2.LightBlueOrange[0],[H.incorrect]:t1.Discrete2.LightBlueOrange[1],[H.unknown]:xe},dimension:null,dimensionMetadata:null,eventIdToGroup:pe({points:s.points,coloringStrategy:o,pointsData:s.pointData??{},dimension:s.dimension||null,dimensionMetadata:s.dimensionMetadata})});break;case z.inferences:{i({pointGroupVisibility:{[E.primary]:!0,[E.reference]:!0,[E.corpus]:!0},pointGroupColors:{[E.primary]:Me()[0],[E.reference]:Me()[1],[E.corpus]:le},dimension:null,dimensionMetadata:null,eventIdToGroup:pe({points:s.points,coloringStrategy:o,pointsData:s.pointData??{},dimension:s.dimension||null,dimensionMetadata:s.dimensionMetadata})});break}case z.dimension:{i({pointGroupVisibility:{unknown:!0},pointGroupColors:{unknown:xe},dimension:null,dimensionMetadata:null,eventIdToGroup:pe({points:s.points,coloringStrategy:o,pointsData:s.pointData??{},dimension:s.dimension||null,dimensionMetadata:s.dimensionMetadata})});break}default:D()}},inferencesVisibility:{primary:!0,reference:!0,corpus:!0},setInferencesVisibility:o=>i({inferencesVisibility:o}),setPointGroupVisibility:o=>i({pointGroupVisibility:o}),selectionDisplay:Ae.gallery,setSelectionDisplay:o=>i({selectionDisplay:o}),setSelectionGridSize:o=>i({selectionGridSize:o}),reset:()=>{i({points:[],clusters:[],selectedEventIds:new Set,selectedClusterId:null,eventIdToGroup:{}})},setDimension:async o=>{const s=r();i({dimension:o,dimensionMetadata:null});const c=await Mr(o).catch(()=>i({errorMessage:"Failed to load the dimension metadata"}));if(c){if(i({dimensionMetadata:c}),c.categories&&c.categories.length){const d=c.categories.length,p=d<=It.length?wr:g=>Tt(g/d);i({pointGroupVisibility:{...c.categories.reduce((g,f)=>({...g,[f]:!0}),{}),unknown:!0},pointGroupColors:{...c.categories.reduce((g,f,C)=>({...g,[f]:p(C)}),{}),unknown:xe},eventIdToGroup:pe({points:s.points,coloringStrategy:s.coloringStrategy,pointsData:s.pointData??{},dimension:o,dimensionMetadata:c})})}else if(c.interval!==null){const d=At(c.interval);i({pointGroupVisibility:{...d.reduce((u,p)=>({...u,[p.name]:!0}),{}),unknown:!0},pointGroupColors:{...d.reduce((u,p,g)=>({...u,[p.name]:kr(g)}),{}),unknown:xe},eventIdToGroup:pe({points:s.points,coloringStrategy:s.coloringStrategy,pointsData:s.pointData??{},dimension:o,dimensionMetadata:c})})}}},setDimensionMetadata:o=>i({dimensionMetadata:o}),setUMAPParameters:o=>i({umapParameters:o}),setHDBSCANParameters:async o=>{const s=r();i({hdbscanParameters:o,clustersLoading:!0});const c=await Ir({metric:s.metric,points:s.points,hdbscanParameters:o});s.setClusters(c)},getHDSCANParameters:()=>r().hdbscanParameters,getMetric:()=>r().metric,setErrorMessage:o=>i({errorMessage:o}),setLoading:o=>i({loading:o}),setMetric:async o=>{const s=r();i({metric:o,clustersLoading:!0});const c=await Ar({metric:o,clusters:s.clusters,hdbscanParameters:s.hdbscanParameters});s.setClusters(c)},setSelectionSearchText:o=>i({selectionSearchText:o})});return Be()($e(a))},Tn=new Intl.NumberFormat([],{maximumFractionDigits:2});function xr({min:n,max:t}){return`${Tn.format(n)} - ${Tn.format(t)}`}function At({min:n,max:t}){const i=(t-n)/l1,r=[];for(let o=0;o<l1;o++){const s=n+o*i,c=n+(o+1)*i;r.push({min:s,max:c,name:xr({min:s,max:c})})}return r}function A1({numericGroupIntervals:n,numericValue:t}){let a=Fe,i=n.findIndex(r=>t>=r.min&&t<r.max);return i=i===-1?l1-1:i,a=n[i].name,a}function pe(n){const{points:t,coloringStrategy:a,pointsData:i,dimension:r,dimensionMetadata:o}=n,s={},c=t.map(d=>d.eventId);switch(a){case z.inferences:{const{primaryEventIds:d,referenceEventIds:u,corpusEventIds:p}=tn(c);d.forEach(g=>{s[g]=E.primary}),u.forEach(g=>{s[g]=E.reference}),p.forEach(g=>{s[g]=E.corpus});break}case z.correctness:{t.forEach(d=>{let u=H.unknown;const{predictionLabel:p,actualLabel:g}=d.eventMetadata;p!==null&&g!==null&&(u=p===g?H.correct:H.incorrect),s[d.eventId]=u});break}case z.dimension:{let d;o&&(o==null?void 0:o.interval)!==null&&(d=At(o.interval));const u=(r==null?void 0:r.type)==="prediction"&&(r==null?void 0:r.dataType)==="categorical",p=(r==null?void 0:r.type)==="prediction"&&(r==null?void 0:r.dataType)==="numeric",g=(r==null?void 0:r.type)==="actual"&&(r==null?void 0:r.dataType)==="categorical",f=(r==null?void 0:r.type)==="actual"&&(r==null?void 0:r.dataType)==="numeric";t.forEach(C=>{let b=Fe;const k=i[C.eventId];if(r!=null&&k!=null)if(u)b=k.eventMetadata.predictionLabel??Fe;else if(p){if(d==null)throw new Error("Cannot color by prediction score without numeric group intervals");const S=k.eventMetadata.predictionScore;typeof S=="number"&&(b=A1({numericGroupIntervals:d,numericValue:S}))}else if(f){if(d==null)throw new Error("Cannot color by actual score without numeric group intervals");const S=k.eventMetadata.actualScore;typeof S=="number"&&(b=A1({numericGroupIntervals:d,numericValue:S}))}else if(g)b=k.eventMetadata.actualLabel??Fe;else{const S=k.dimensions.find(K=>K.dimension.name===r.name);if(S!=null&&r.dataType==="categorical")b=S.value??Fe;else if(S!=null&&r.dataType==="numeric"&&d!=null){const K=typeof(S==null?void 0:S.value)=="string"?parseFloat(S.value):null;typeof K=="number"&&(b=A1({numericGroupIntervals:d,numericValue:K}))}}s[C.eventId]=b});break}default:D()}return s}async function Mr(n){const t=await N.fetchQuery(qe,Ct,{id:n.id,getDimensionMinMax:n.dataType==="numeric",getDimensionCategories:n.dataType==="categorical"}).toPromise(),a=t==null?void 0:t.dimension;if(!n)throw new Error("Dimension not found");let i=null;return typeof(a==null?void 0:a.min)=="number"&&typeof(a==null?void 0:a.max)=="number"&&(i={min:a.min,max:a.max}),{interval:i,categories:(a==null?void 0:a.categories)??null}}async function Tr(n){var u,p,g,f,C,b;const{primaryEventIds:t,referenceEventIds:a,corpusEventIds:i}=tn([...n]),r=await N.fetchQuery(qe,ft,{primaryEventIds:t,referenceEventIds:a,corpusEventIds:i}).toPromise(),o=((p=(u=r==null?void 0:r.model)==null?void 0:u.primaryInferences)==null?void 0:p.events)??[],s=((f=(g=r==null?void 0:r.model)==null?void 0:g.referenceInferences)==null?void 0:f.events)??[],c=((b=(C=r==null?void 0:r.model)==null?void 0:C.corpusInferences)==null?void 0:b.events)??[];return[...o,...s,...c].reduce((k,P)=>(k[P.id]=P,k),{})}async function Ir({metric:n,points:t,hdbscanParameters:a}){const i=await N.fetchQuery(qe,gt,{eventIds:t.map(r=>r.eventId),coordinates:t.map(r=>({x:r.position[0],y:r.position[1],z:r.position[2]})),fetchDataQualityMetric:n.type==="dataQuality",dataQualityMetricColumnName:n.type==="dataQuality"?n.dimension.name:null,fetchPerformanceMetric:n.type==="performance",performanceMetric:n.type==="performance"?n.metric:"accuracyScore",...a},{fetchPolicy:"network-only"}).toPromise();return(i==null?void 0:i.hdbscanClustering)??[]}async function Ar({metric:n,clusters:t,hdbscanParameters:a}){const i=await N.fetchQuery(qe,pt,{clusters:t.map(r=>({id:r.id,eventIds:r.eventIds})),fetchDataQualityMetric:n.type==="dataQuality",dataQualityMetricColumnName:n.type==="dataQuality"?n.dimension.name:null,fetchPerformanceMetric:n.type==="performance",performanceMetric:n.type==="performance"?n.metric:"accuracyScore",...a},{fetchPolicy:"network-only"}).toPromise();return(i==null?void 0:i.clusters)??[]}const z1=n=>(t,a)=>{const{dir:i,column:r}=n,o=i==="asc",s=t[r],c=a[r];return s==null?1:c==null?-1:s>c?o?1:-1:s<c?o?-1:1:0};function In(n){let t=n.driftRatio,a=null;return n.dataQualityMetric?(t=n.dataQualityMetric.primaryValue,a=n.dataQualityMetric.referenceValue):n.performanceMetric?(t=n.performanceMetric.primaryValue,a=n.performanceMetric.referenceValue):n.primaryToCorpusRatio!=null&&(t=(n.primaryToCorpusRatio+1)/2*100),{...n,size:n.eventIds.length,primaryMetricValue:t,referenceMetricValue:a}}const Ac=n=>{const t=a=>({...n,columnVisibility:{metadata:!1},annotationColumnVisibility:{},setColumnVisibility:i=>{a({columnVisibility:i})},setAnnotationColumnVisibility:i=>{a({annotationColumnVisibility:i})}});return Be()($e(t))},se={NONE:"NONE",FString:"F_STRING",Mustache:"MUSTACHE"},zc={OPENAI:"OpenAI",AZURE_OPENAI:"Azure OpenAI",ANTHROPIC:"Anthropic",GEMINI:"Gemini"},zt="OPENAI",zr="gpt-4o",Er="user",Ec=["2024-10-01-preview","2024-09-01-preview","2024-08-01-preview","2024-07-01-preview","2024-06-01","2024-05-01-preview","2024-04-01-preview","2024-03-01-preview","2024-02-15-preview","2024-02-01","2023-10-01-preview","2023-09-01-preview","2023-08-01-preview","2023-07-01-preview","2023-06-01-preview","2023-05-15","2023-03-15-preview"],Et=({parser:n,text:t})=>{const a=n.parse(t),i=[],r=a.cursor();do if(r.name==="Variable"){const o=t.slice(r.node.from,r.node.to).trim();i.push(o)}while(r.next());return i},Vt=({parser:n,text:t,variables:a,postFormat:i})=>{if(!t)return"";let r=t,o=n.parse(r),s=o.cursor();do if(s.name==="Variable"){const c=r.slice(s.node.from,s.node.to).trim(),d=s.node.parent;c in a&&(r=`${r.slice(0,d.from)}${a[c]}${r.slice(d.to)}`,o=n.parse(r),s=o.cursor())}while(s.next());return i&&(r=i(r)),r},Vr=Un.deserialize({version:14,states:"!WQQOPOOOcOQO'#C^OOOO'#Cb'#CbQQOPOOOOOO'#Cc'#CcOhOQO,58xOOOO-E6`-E6`OOOO-E6a-E6aOOOO1G.d1G.d",stateData:"v~ORPOXQOYQOZQO[QO~OSSO~OSSOTWO~OZRX[X~",goto:"iWPPXPPP]cTQORQRORURQTPRVT",nodeNames:"⚠ FStringTemplate Template LBrace Variable RBrace",maxTerm:12,skippedNodes:[0],repeatNodeCount:2,tokenData:"%[~RaXY!WYZ!W]^!Wpq!Wqr!Wrs!]sw!Wwx!bx#O!W#O#P!i#P#o!W#o#p$c#p#q!W#q#r$|#r;'S!W;'S;=`%U<%lO!W~!]OX~~!bO[~~!iOX~[~~!lYrs!W!P!Q!W#O#P!W#U#V!W#Y#Z!W#b#c!W#f#g!W#h#i!W#i#j#[#o#p$^~#_R!Q![#h!c!i#h#T#Z#h~#kR!Q![#t!c!i#t#T#Z#t~#wR!Q![$Q!c!i$Q#T#Z$Q~$TR!Q![!W!c!i!W#T#Z!W~$cOZ~~$jQR~X~#o#p$p#q#r$w~$wOZ~[~~$|OY~~%RPX~#q#r!]~%XP;=`<%l!W",tokenizers:[1,new jn("!p~RVO#Oh#O#P!P#P#qh#q#r!j#r;'Sh;'S;=`y<%lOh~mSS~O#qh#r;'Sh;'S;=`y<%lOh~|P;=`<%lh~!UTS~O#qh#q#r!e#r;'Sh;'S;=`y<%lOh~!jOS~~!oOT~~",77)],topRules:{FStringTemplate:[0,1]},tokenPrec:32}),rn=ct.define({parser:Vr.configure({props:[Qn({"Template/LBrace":oe.quote,"Template/RBrace":oe.quote,"Template/Variable":oe.variableName,"⚠":oe.invalid})]}),languageData:{}}),Dr=({text:n,variables:t})=>Vt({parser:rn.parser,text:n,variables:t,postFormat:a=>a.replaceAll("\\{","{").replaceAll("{{","{").replaceAll("}}","}")}),Pr=n=>Et({parser:rn.parser,text:n});function Or(){return new dt(rn)}const _r=Un.deserialize({version:14,states:"!WQQOPOOOcOQO'#C^OOOO'#Cb'#CbQQOPOOOOOO'#Cc'#CcOhOQO,58xOOOO-E6`-E6`OOOO-E6a-E6aOOOO1G.d1G.d",stateData:"v~ORPOXQOYQOZQO[QO~OSSO~OSSOTWO~OZRX[X~",goto:"iWPPXPPP]cTQORQRORURQTPRVT",nodeNames:"⚠ MustacheLikeTemplate Template LBrace Variable RBrace",maxTerm:12,skippedNodes:[0],repeatNodeCount:2,tokenData:"%W~RaXY!WYZ!W]^!Wpq!Wqr!Wrs!]sw!Wwx!bx#O!W#O#P!i#P#o!W#o#p$c#p#q!W#q#r!b#r;'S!W;'S;=`%Q<%lO!W~!]OX~~!bO[~~!iOX~[~~!lYrs!W!P!Q!W#O#P!W#U#V!W#Y#Z!W#b#c!W#f#g!W#h#i!W#i#j#[#o#p$^~#_R!Q![#h!c!i#h#T#Z#h~#kR!Q![#t!c!i#t#T#Z#t~#wR!Q![$Q!c!i$Q#T#Z$Q~$TR!Q![!W!c!i!W#T#Z!W~$cOZ~~$jPX~[~#o#p$m~$rPR~#q#r$u~$xP#q#r${~%QOY~~%TP;=`<%l!W",tokenizers:[1,new jn("#e~RVO#oh#o#p!P#p#qh#q#r#X#r;'Sh;'S;=`y<%lOh~mSS~O#qh#r;'Sh;'S;=`y<%lOh~|P;=`<%lh~!USS~O#q!b#r;'S!b;'S;=`#R<%lO!b~!gVS~O#O!b#O#P!b#P#q!b#q#r!|#r;'S!b;'S;=`#R<%lO!b~#ROS~~#UP;=`<%l!b~#[P#q#r#_~#dOT~~",112)],topRules:{MustacheLikeTemplate:[0,1]},tokenPrec:32}),on=ct.define({parser:_r.configure({props:[Qn({"Template/LBrace":oe.quote,"Template/RBrace":oe.quote,"Template/Variable":oe.variableName,"Template/⚠":oe.invalid})]}),languageData:{}}),Fr=({text:n,variables:t})=>Vt({parser:on.parser,text:n,variables:t,postFormat:a=>a.replaceAll("\\{{","{{")}),Nr=n=>Et({parser:on.parser,text:n});function Rr(){return new dt(on)}const Vc=n=>{switch(n){case se.FString:return{format:Dr,extractVariables:Pr};case se.Mustache:return{format:Fr,extractVariables:Nr};case se.NONE:return{format:({text:t})=>t,extractVariables:()=>[]};default:D()}},Hr=w.union([w.string(),w.number(),w.boolean(),w.null()]),s1=w.lazy(()=>w.union([Hr,w.array(s1),w.record(s1)])),An=w.object({type:w.enum(["string","number","boolean","object","array","null","integer"]).describe("The type of the parameter"),description:w.string().optional().describe("A description of the parameter"),enum:w.array(w.string()).optional().describe("The allowed values")}).passthrough().describe("A map of parameter names to their definitions"),Dt=w.object({type:w.literal("object"),properties:w.record(w.union([An,w.object({anyOf:w.array(An)}).describe("A list of possible parameter names to their definitions")])),required:w.array(w.string()).optional().describe("The required parameters"),additionalProperties:w.boolean().optional().describe("Whether or not additional properties are allowed in the schema")}).passthrough(),b1=w.object({type:w.literal("function").describe("The type of the tool"),function:w.object({name:w.string().describe("The name of the function"),description:w.string().optional().describe("A description of the function"),parameters:Dt.extend({strict:w.boolean().optional().describe("Whether or not the arguments should exactly match the function definition, only supported for OpenAI models")}).describe("The parameters that the function accepts")}).passthrough().describe("The function definition")}).passthrough(),Dc=u1(b1,{removeAdditionalStrategy:"passthrough"}),L1=w.object({name:w.string(),description:w.string(),input_schema:Dt}),Pc=u1(L1,{removeAdditionalStrategy:"passthrough"}),Kr=L1.transform(n=>({type:"function",function:{name:n.name,description:n.description,parameters:n.input_schema}})),Br=b1.transform(n=>({name:n.function.name,description:n.function.description??n.function.name,input_schema:n.function.parameters})),Oc=w.union([b1,L1,s1]),$r=n=>{const{success:t,data:a}=b1.safeParse(n);if(t)return{provider:"OPENAI",validatedToolDefinition:a};const{success:i,data:r}=L1.safeParse(n);return i?{provider:"ANTHROPIC",validatedToolDefinition:r}:{provider:"UNKNOWN",validatedToolDefinition:null}},zn=n=>{const{provider:t,validatedToolDefinition:a}=$r(n);switch(t){case"AZURE_OPENAI":case"OPENAI":return a;case"ANTHROPIC":return Kr.parse(a);case"UNKNOWN":return null;default:D()}},Zr=({toolDefinition:n,targetProvider:t})=>{switch(t){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return Br.parse(n);case"GEMINI":return n;default:D()}};function _c(n){return{type:"function",function:{name:`new_function_${n}`,description:"",parameters:{type:"object",properties:{new_arg:{type:"string"}},required:[]}}}}function Fc(n){return{name:`new_function_${n}`,description:"",input_schema:{type:"object",properties:{new_arg:{type:"string"}},required:[]}}}const v1=w.object({id:w.string().describe("The ID of the tool call"),function:w.object({name:w.string().describe("The name of the function"),arguments:w.record(w.unknown()).describe("The arguments for the function")}).describe("The function that is being called").passthrough()}),Gr=w.array(v1),Nc=u1(Gr,{removeAdditionalStrategy:"passthrough"}),y1=w.object({id:w.string().describe("The ID of the tool call"),type:w.literal("tool_use"),name:w.string().describe("The name of the tool"),input:w.record(w.unknown()).describe("The input for the tool")}).passthrough(),Wr=w.array(y1),Rc=u1(Wr,{removeAdditionalStrategy:"passthrough"}),Ur=y1.transform(n=>({id:n.id,function:{name:n.name,arguments:n.input}})),jr=v1.transform(n=>({id:n.id,type:"tool_use",name:n.function.name,input:typeof n.function.arguments=="string"?{[n.function.arguments]:n.function.arguments}:n.function.arguments??{}})),Qr=w.union([v1,y1,s1]),Hc=w.array(Qr),qr=n=>{const{success:t,data:a}=v1.safeParse(n);if(t)return{provider:"OPENAI",validatedToolCall:a};const{success:i,data:r}=y1.safeParse(n);return i?{provider:"ANTHROPIC",validatedToolCall:r}:{provider:"UNKNOWN",validatedToolCall:null}},En=n=>{const{provider:t,validatedToolCall:a}=qr(n);switch(t){case"AZURE_OPENAI":case"OPENAI":return a;case"ANTHROPIC":return Ur.parse(a);case"UNKNOWN":return null;default:D()}},Xr=({toolCall:n,targetProvider:t})=>{switch(t){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return jr.parse(n);case"GEMINI":return n;default:D()}};function Kc(){return{id:"",function:{name:"",arguments:{}}}}function Bc(){return{id:"",type:"tool_use",name:"",input:{}}}function Yr({str:n,excludePrimitives:t=!1,excludeArray:a=!1}){try{const i=JSON.parse(n);if(t&&typeof i!="object"||a&&Array.isArray(i))return!1}catch{return!1}return!0}function Jr(n){return Yr({str:n,excludeArray:!0,excludePrimitives:!0})}function $c(n){try{return{json:JSON.parse(n)}}catch(t){return{json:null,parseError:t}}}function Zc(...n){try{return{json:JSON.stringify(...n)}}catch(t){return{json:null,stringifyError:t}}}const e2=({instanceTools:n,provider:t})=>n.map(a=>{switch(t){case"OPENAI":case"AZURE_OPENAI":{const i=zn(a.definition);return{...a,definition:i??a.definition}}case"ANTHROPIC":{const i=zn(a.definition),r=i?Zr({toolDefinition:i,targetProvider:t}):a.definition;return{...a,definition:r}}case"GEMINI":return a;default:D()}}),n2=({toolCalls:n,provider:t})=>{if(n!=null)return n.map(a=>{switch(t){case"OPENAI":case"AZURE_OPENAI":return En(a)??a;case"ANTHROPIC":{const i=En(a);return i!=null?Xr({toolCall:i,targetProvider:t}):a}case"GEMINI":return a;default:D()}})};let t2=0,a2=0,i2=1,r2=0;const Pt=()=>t2++,Vn=()=>i2++,Gc=()=>r2++,o2=()=>a2++,Ot=()=>({__type:"chat",messages:[{id:Vn(),role:"system",content:"You are a chatbot"},{id:Vn(),role:"user",content:"{{question}}"}]}),l2={__type:"text_completion",prompt:"{{question}}"};function s2(){return{id:Pt(),template:Ot(),model:{provider:zt,modelName:zr,invocationParameters:[],supportedInvocationParameters:[]},tools:[],toolChoice:"auto",output:void 0,spanId:null,activeRunId:null}}function Wc(){return{type:"json_schema",json_schema:{name:"response",schema:{type:"object",properties:{},required:[],additionalProperties:!1},strict:!0}}}function c2(n){if(n.instances!=null&&n.instances.length>0)return n.instances;const t=s2(),a=Object.values(n.modelConfigByProvider);if(!(a.length>0))return[t];const r=a.find(o=>o.provider===zt)??a[0];return t.model={...t.model,...r},[t]}const Uc=n=>Be($e((a,i)=>({streaming:!0,operationType:"chat",inputMode:"manual",input:{variablesValueCache:{}},templateLanguage:se.Mustache,instances:c2(n),setInput:r=>{a({input:r})},setOperationType:r=>{a(r==="chat"?{instances:i().instances.map(o=>({...o,template:Ot()}))}:{instances:i().instances.map(o=>({...o,template:l2}))}),a({operationType:r})},addInstance:()=>{const r=i().instances,o=i().instances[0];o&&a({instances:[...r,{...o,id:Pt(),activeRunId:null,experimentId:null,spanId:null}]})},updateModelSupportedInvocationParameters:({instanceId:r,supportedInvocationParameters:o})=>{const s=i().instances;a({instances:s.map(c=>c.id===r?{...c,model:{...c.model,supportedInvocationParameters:o,invocationParameters:Mi(c.model.invocationParameters,o)},tools:o.find(d=>d.canonicalName===Ti)?c.tools:[]}:c)})},updateProvider:({instanceId:r,provider:o,modelConfigByProvider:s})=>{const c=i().instances,d=c.find(g=>g.id===r);if(!d||d.model.provider===o)return;const u=s[o],p={model:u?{...u,supportedInvocationParameters:[],provider:o}:{modelName:null,baseUrl:null,invocationParameters:[],supportedInvocationParameters:[],apiVersion:null,endpoint:null,provider:o},tools:e2({instanceTools:d.tools,provider:o})};d.template.__type==="chat"&&(p.template={__type:"chat",messages:d.template.messages.map(g=>({...g,toolCalls:n2({toolCalls:g.toolCalls,provider:o})}))}),a({instances:c.map(g=>g.id===r?{...g,...p}:g)})},updateModel:({instanceId:r,patch:o})=>{const s=i().instances;s.find(d=>d.id===r)&&a({instances:s.map(d=>d.id===r?{...d,model:{...d.model,...o}}:d)})},deleteInstance:r=>{const o=i().instances;a({instances:o.filter(s=>s.id!==r)})},addMessage:({playgroundInstanceId:r})=>{const o=i().instances;a({instances:o.map(s=>s.id===r&&(s!=null&&s.template)&&(s==null?void 0:s.template.__type)==="chat"?{...s,messages:[...s.template.messages,{role:Er,content:"{question}"}]}:s)})},updateInstance:({instanceId:r,patch:o})=>{const s=i().instances;a({instances:s.map(c=>c.id===r?{...c,...o}:c)})},runPlaygroundInstances:()=>{const r=i().instances;a({instances:r.map(o=>({...o,activeRunId:o2(),spanId:null}))})},cancelPlaygroundInstances:()=>{a({instances:i().instances.map(r=>({...r,activeRunId:null,spanId:null}))})},markPlaygroundInstanceComplete:r=>{const o=i().instances;a({instances:o.map(s=>s.id===r?{...s,activeRunId:null}:s)})},setTemplateLanguage:r=>{a({templateLanguage:r})},setVariableValue:(r,o)=>{const s=i().input;a({input:{...s,variablesValueCache:{...s.variablesValueCache,[r]:o}}})},setStreaming:r=>{a({streaming:r})},updateInstanceModelInvocationParameters:({instanceId:r,invocationParameters:o})=>{i().instances.find(c=>c.id===r)&&a({instances:i().instances.map(c=>c.id===r?{...c,model:{...c.model,invocationParameters:o}}:c)})},upsertInvocationParameterInput:({instanceId:r,invocationParameterInput:o})=>{const s=i().instances.find(d=>d.id===r);if(!s)return;const c=s.model.invocationParameters.find(d=>fn(d,o));a(c?{instances:i().instances.map(d=>d.id===r?{...d,model:{...d.model,invocationParameters:d.model.invocationParameters.map(u=>fn(u,o)?o:u)}}:d)}:{instances:i().instances.map(d=>d.id===r?{...d,model:{...d.model,invocationParameters:[...d.model.invocationParameters,o]}}:d)})},deleteInvocationParameterInput:({instanceId:r,invocationParameterInputInvocationName:o})=>{i().instances.find(c=>c.id===r)&&a({instances:i().instances.map(c=>c.id===r?{...c,model:{...c.model,invocationParameters:c.model.invocationParameters.filter(d=>d.invocationName!==o)}}:c)})},...n}))),jc=n=>{const t=a=>({setCredential:({provider:i,value:r})=>{a({[i]:r})},...n});return Be()(qn($e(t),{name:"arize-phoenix-credentials"}))};function _t(n){return e("div",{onClick:t=>t.stopPropagation(),css:m`
148
148
  display: inline-block;
149
149
  `,children:e(Xn,{css:m`
150
150
  color: var(--ac-global-color-primary);
@@ -1,4 +1,4 @@
1
- import{r as c,j as e,dL as v,l as n,U as F,R as w,D as L,bq as E,dM as S,dN as R,dO as a,dP as k,t as I,dQ as A}from"./vendor-DvC8cT4X.js";import{k as C,Q as _,D as j,Y as z}from"./vendor-arizeai-Do1793cv.js";import{E as O,L as T,R as D,r as N,b as G,F as M,A as U,c as W,d as q,P as B,h as J,M as K,e as m,D as Q,f as V,g as H,i as Y,j as $,k as X,l as Z,p as ee,n as h,o as ae,S as re,s as te,q as oe,t as g,v as ne,w as u,x as b,y as se,z as le,B as ie,C as de,G as ce,H as x,I as pe,J as me,K as he,N as ge,O as ue,Q as be,U as xe,V as fe,W as Pe}from"./pages-BFZvquxr.js";import{V as ye,d4 as ve,at as Fe,ab as we,d5 as Le,d6 as Ee}from"./components-Caw_U14D.js";import"./vendor-three-DwGkEfCM.js";import"./vendor-codemirror-BzwZPyJM.js";import"./vendor-shiki-Cl9QBraO.js";import"./vendor-recharts-_Jb7JjhG.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))d(t);new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&d(l)}).observe(document,{childList:!0,subtree:!0});function i(t){const o={};return t.integrity&&(o.integrity=t.integrity),t.referrerPolicy&&(o.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?o.credentials="include":t.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function d(t){if(t.ep)return;t.ep=!0;const o=i(t);fetch(t.href,o)}})();const f="arize-phoenix-feature-flags",p={__RESET__:!1};function Se(){const r=localStorage.getItem(f);if(!r)return p;try{const s=JSON.parse(r);return Object.assign({},p,s)}catch{return p}}const P=c.createContext(null);function Re(){const r=w.useContext(P);if(r===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return r}function ke(r){const[s,i]=c.useState(Se()),d=t=>{localStorage.setItem(f,JSON.stringify(t)),i(t)};return e(P.Provider,{value:{featureFlags:s,setFeatureFlags:d},children:e(Ie,{children:r.children})})}function Ie(r){const{children:s}=r,{featureFlags:i,setFeatureFlags:d}=Re(),[t,o]=c.useState(!1);return v("ctrl+shift+f",()=>o(!0)),n(F,{children:[s,e(j,{type:"modal",isDismissable:!0,onDismiss:()=>o(!1),children:t&&e(C,{title:"Feature Flags",children:e(ye,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(l=>e(_,{isSelected:i[l],onChange:y=>d({...i,[l]:y}),children:l},l))})})})]})}function Ae(){return e(E,{styles:L`
1
+ import{r as c,j as e,dL as v,l as n,U as F,R as w,D as L,bq as E,dM as S,dN as R,dO as a,dP as k,t as I,dQ as A}from"./vendor-DvC8cT4X.js";import{k as C,Q as _,D as j,Y as z}from"./vendor-arizeai-Do1793cv.js";import{E as O,L as T,R as D,r as N,b as G,F as M,A as U,c as W,d as q,P as B,h as J,M as K,e as m,D as Q,f as V,g as H,i as Y,j as $,k as X,l as Z,p as ee,n as h,o as ae,S as re,s as te,q as oe,t as g,v as ne,w as u,x as b,y as se,z as le,B as ie,C as de,G as ce,H as x,I as pe,J as me,K as he,N as ge,O as ue,Q as be,U as xe,V as fe,W as Pe}from"./pages-DL7J9q9w.js";import{V as ye,d4 as ve,at as Fe,ab as we,d5 as Le,d6 as Ee}from"./components-DckIzNmE.js";import"./vendor-three-DwGkEfCM.js";import"./vendor-codemirror-BzwZPyJM.js";import"./vendor-shiki-Cl9QBraO.js";import"./vendor-recharts-_Jb7JjhG.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))d(t);new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&d(l)}).observe(document,{childList:!0,subtree:!0});function i(t){const o={};return t.integrity&&(o.integrity=t.integrity),t.referrerPolicy&&(o.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?o.credentials="include":t.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function d(t){if(t.ep)return;t.ep=!0;const o=i(t);fetch(t.href,o)}})();const f="arize-phoenix-feature-flags",p={__RESET__:!1};function Se(){const r=localStorage.getItem(f);if(!r)return p;try{const s=JSON.parse(r);return Object.assign({},p,s)}catch{return p}}const P=c.createContext(null);function Re(){const r=w.useContext(P);if(r===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return r}function ke(r){const[s,i]=c.useState(Se()),d=t=>{localStorage.setItem(f,JSON.stringify(t)),i(t)};return e(P.Provider,{value:{featureFlags:s,setFeatureFlags:d},children:e(Ie,{children:r.children})})}function Ie(r){const{children:s}=r,{featureFlags:i,setFeatureFlags:d}=Re(),[t,o]=c.useState(!1);return v("ctrl+shift+f",()=>o(!0)),n(F,{children:[s,e(j,{type:"modal",isDismissable:!0,onDismiss:()=>o(!1),children:t&&e(C,{title:"Feature Flags",children:e(ye,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(l=>e(_,{isSelected:i[l],onChange:y=>d({...i,[l]:y}),children:l},l))})})})]})}function Ae(){return e(E,{styles:L`
2
2
  body {
3
3
  background-color: var(--ac-global-color-grey-75);
4
4
  color: var(--ac-global-text-color-900);
@@ -1,4 +1,4 @@
1
- import{z as R,aD as de,aE as Ee,aF as _e,aG as Qa,A as Md,r as u,j as e,R as ve,n as _a,D as v,l as s,aH as je,a0 as ee,U as B,t as L,a6 as He,a7 as W,a8 as Ce,a9 as Fe,ac as H,aI as he,aJ as mn,aK as gn,aL as Oe,aM as Ad,aN as _t,aO as kn,aP as Wa,a2 as ie,aQ as $a,ab as Pn,g as Xl,aR as Nd,a4 as Vt,G as zd,aS as Vd,aT as St,aU as vt,aV as ba,aW as ca,aX as Yl,o as Xa,aY as $d,ay as Od,az as Qd,aZ as jd,p as ei,q as qd,a_ as Ud,M as Bd,N as Hd,ah as ni,a$ as Gd,b0 as fl,b1 as Wd,b2 as Jd,b3 as Zd,b4 as Xd,b5 as Yd,b6 as ec,b7 as nc,b8 as ac,b9 as tc}from"./vendor-DvC8cT4X.js";import{A as ce,C as j,h as $t,k as J,D as Z,B as Ot,y as qe,z as ne,G as lc,s as Ya,p as et,P as Wn,j as Jn,q as nt,v as Zn,w as ua,H as Ye,L as ja,J as ai,K as ic,M as ti,N as rc,O as sc,Q as ma,e as Me,f as Xn,T as ue,S as Qt,i as Ae,g as ae,E as at,a as Pe,U as jt,V as qt,c as Ln,o as hl,W as oc,n as dc,I as cc,m as kl,l as uc,u as mc,X as gc,r as pc,R as Ia,d as li}from"./vendor-arizeai-Do1793cv.js";import{s as Ut,a as me,l as yc,j as ii,b as xe,i as ri,c as si,d as xn,e as oi,f as fc,g as Pa,D as hc,h as qa,k as kc,T as Qn,m as bc,n as bl,o as Sc,p as vc,q as Sl,r as Cc,t as Fc,N as Kc,u as Tc,L as ye,v as Ke,w as Ra,B as xc,_ as k,x as Fn,I,C as Ic,G as di,y as Bt,P as ga,z as tt,S as Dc,A as Pc,E as Lc,F as wc,H as Ec,J as _c,K as Rc,M as Mc,O as un,Q as N,R as Ge,U as ci,V as C,W as ze,X as lt,Y as Yn,Z as Ne,$ as F,a0 as pe,a1 as Te,a2 as pa,a3 as pn,a4 as bn,a5 as it,a6 as Ie,a7 as re,a8 as Xe,a9 as wn,aa as se,ab as we,ac as ui,ad as We,ae as mi,af as en,ag as En,ah as Ht,ai as tn,aj as Sn,ak as Gt,al as gi,am as pi,an as yn,ao as ke,ap as be,aq as Se,ar as vl,as as Cl,at as vn,au as Ac,av as Nc,aw as U,ax as yi,ay as Wt,az as rt,aA as ya,aB as fi,aC as fa,aD as ha,aE as hi,aF as Cn,aG as Re,aH as st,aI as _n,aJ as ki,aK as Jt,aL as Je,aM as bi,aN as zc,aO as Vc,aP as $c,aQ as Oc,aR as Qc,aS as ln,aT as rn,aU as jc,aV as Ue,aW as qc,aX as Uc,aY as Si,aZ as Bc,a_ as Hc,a$ as Fl,b0 as Gc,b1 as Wc,b2 as Jc,b3 as Zc,b4 as Xc,b5 as Yc,b6 as vi,b7 as eu,b8 as nu,b9 as au,ba as tu,bb as lu,bc as Un,bd as Zt,be as Ci,bf as ra,bg as Rt,bh as On,bi as Tn,bj as iu,bk as ru,bl as Fi,bm as ot,bn as Ki,bo as sn,bp as su,bq as ou,br as La,bs as Le,bt as Ua,bu as Ti,bv as du,bw as $e,bx as Xt,by as cu,bz as uu,bA as mu,bB as gu,bC as Yt,bD as Be,bE as nn,bF as ka,bG as pu,bH as dt,bI as xi,bJ as Ii,bK as Ct,bL as yu,bM as ct,bN as ut,bO as Ze,bP as Ve,bQ as fu,bR as el,bS as Di,bT as Pi,bU as Li,bV as hu,bW as on,bX as wi,bY as In,bZ as ku,b_ as Kl,b$ as Ei,c0 as bu,c1 as Su,c2 as vu,c3 as Cu,c4 as _i,c5 as dn,c6 as Fu,c7 as sa,c8 as Mt,c9 as Ku,ca as Ri,cb as Mi,cc as Tu,cd as xu,ce as Iu,cf as mt,cg as Ai,ch as Ma,ci as Tl,cj as Ni,ck as nl,cl as Du,cm as Pu,cn as al,co as zi,cp as Vi,cq as Lu,cr as wu,cs as Eu,ct as At,cu as $i,cv as _u,cw as Ru,cx as Oa,cy as Mu,cz as Au,cA as Oi,cB as Qi,cC as Nu,cD as zu,cE as Vu,cF as $u,cG as ji,cH as tl,cI as qi,cJ as Ou,cK as Qu,cL as Nt,cM as ju,cN as qu,cO as Uu,cP as Bu,cQ as Hu,cR as Gu,cS as Ui,cT as Wu,cU as Ju,cV as Zu,cW as Xu,cX as Yu,cY as em,cZ as nm,c_ as am,c$ as tm,d0 as lm,d1 as im,d2 as xl,d3 as Il}from"./components-Caw_U14D.js";import{p as Aa,R as Rn,n as Mn,i as rm,E as Bi,m as Hi,o as Gi,g as sm}from"./vendor-codemirror-BzwZPyJM.js";import{R as An,C as Na,X as Nn,Y as an,a as zn,T as Vn,B as oa,A as wa,b as Wi,c as ll,L as Ji,d as om,P as dm,e as cm,f as um}from"./vendor-recharts-_Jb7JjhG.js";const mm=4,gm={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},pm="Unable to parse span input messages, expected messages which include a role and content.",ym="Unable to parse span output messages, expected messages which include a role and content.",fm="Unable to parse span output expected output.value to be present.",hm="Unable to parse span attributes, attributes must be valid JSON.",km="Unable to parse model config, expected llm.model_name to be present.",bm="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",Sm="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",vm="Unable to parse tools, expected tools to be an array of valid tools.",Cm="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",Dl={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GEMINI:["gemini"]},Da="TOOL_CHOICE",Ba="tool_choice",Bn="RESPONSE_FORMAT",jn="response_format",Fm=[Da,Bn],il=Ut()(R.union([R.literal("auto"),R.literal("none"),R.literal("required"),R.object({type:R.literal("function"),function:R.object({name:R.string()})})])),rl=R.object({type:R.union([R.literal("auto"),R.literal("any"),R.literal("tool")]),disable_parallel_tool_use:R.boolean().optional(),name:R.string().optional()}),Km=rl.transform(n=>{switch(n.type){case"any":case"auto":return"auto";case"tool":return n.name?{type:"function",function:{name:n.name}}:"auto";default:return"auto"}}),Tm=il.transform(n=>typeof n=="string"?{type:"auto"}:{type:"tool",name:n.function.name});R.union([il,rl]);const xm=n=>{const{success:a,data:t}=il.safeParse(n);if(a)return{provider:"OPENAI",toolChoice:t};const{success:l,data:i}=rl.safeParse(n);return l?{provider:"ANTHROPIC",toolChoice:i}:{provider:null,toolChoice:null}},Im=n=>{const{provider:a,toolChoice:t}=xm(n);if(a==null||t==null)throw new Error("Could not detect provider of tool choice");switch(a){case"AZURE_OPENAI":case"OPENAI":return t;case"ANTHROPIC":return Km.parse(t);default:me()}},Dm=({toolChoice:n,targetProvider:a})=>{switch(a){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return Tm.parse(n);case"GEMINI":return n;default:me()}},Pm=({toolChoice:n,targetProvider:a})=>{try{const t=Im(n);return Dm({toolChoice:t,targetProvider:a})}catch{return null}},Lm=R.object({tool_call:R.object({id:R.string().optional(),function:R.object({name:R.string(),arguments:R.string()}).partial()}).partial()}).partial(),Zi=R.object({[de.message]:R.object({[Ee.role]:R.string(),[Ee.content]:R.union([R.string(),R.array(R.record(R.string(),R.unknown()))]).default(""),[Ee.tool_calls]:R.array(Lm).optional(),[Ee.tool_call_id]:R.string().optional()})}),wm=R.object({[de.llm]:R.object({[_e.input_messages]:R.array(Zi)})}),Em=R.object({[de.llm]:R.object({[_e.output_messages]:R.array(Zi)})}),_m=R.object({[de.output]:R.object({value:R.string()})}),Xi=Ut()(R.enum(["user","ai","system","tool"])),Rm=Ut()(R.object({id:R.number(),role:Xi,content:R.string().optional(),toolCallId:R.string().optional(),toolCalls:R.array(yc).optional()})),Mm=R.array(Rm),sl=R.lazy(()=>R.record(ii)),Am=sl,Yi=R.string().transform((n,a)=>{const{json:t}=xe(n);if(!ri(t))return a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER;const{success:l,data:i}=Am.safeParse(t);return l?i:(a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER)}).default("{}"),Nm=R.object({[de.llm]:R.object({[_e.provider]:R.string().optional(),[_e.model_name]:R.string()})}),er=R.object({[de.llm]:R.object({[_e.invocation_parameters]:Yi})}),zm=R.object({[de.llm]:R.object({[_e.invocation_parameters]:Yi.pipe(R.object({response_format:sl.optional()}))})}),Vm=R.object({url:R.object({full:R.string(),path:R.string().optional()})}),$m=R.string().transform((n,a)=>{const{json:t}=xe(n);return t==null||!ri(t)?(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),R.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=si.safeParse(n);return l?t:(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),R.NEVER)}),Om=R.object({[de.llm]:R.object({[_e.tools]:R.array(R.object({[de.tool]:R.object({[Qa.json_schema]:$m})}).optional()).optional()}).optional()}).optional(),Qm=R.lazy(()=>R.object({type:R.literal("json_schema"),json_schema:R.object({name:R.string().describe("The name of the schema"),schema:ii.describe("The schema itself in JSON format"),strict:R.literal(!0).describe("The schema must be strict")})})),jm=Md(Qm,{removeAdditionalStrategy:"passthrough"}),qm=R.string().transform((n,a)=>{const{json:t}=xe(n);return xn(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:c}=oi(o);c!=null&&(i[r]=c)}return i},{}):(a.addIssue({code:R.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),R.NEVER)}),Um=R.object({[de.llm]:R.object({[_e.prompt_template]:R.object({variables:qm}).optional()}).optional()}).optional();function nr(n){return Xi.safeParse(n).success}function Ja(n){if(nr(n))return n;for(const[a,t]of Object.entries(gm))if(t.includes(n))return a;return kc}function Bm({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,o,c;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:d}=xe(t.function.arguments);xn(d)&&(l=d)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((o=t.function)==null?void 0:o.name)??"",input:l};case"GEMINI":return{id:t.id??"",function:{name:((c=t.function)==null?void 0:c.name)??"",arguments:l}};default:me()}}).filter(t=>t!=null)}function ar({messages:n,provider:a}){return n.map(({message:t})=>({id:Pa(),role:t.tool_call_id!=null?Ja("tool"):Ja(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Bm({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function Hm({provider:n,parsedAttributes:a}){var l;const t=wm.safeParse(a);if(!t.success)return{messageParsingErrors:[pm],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=er.safeParse(a);if(i){const o=t.data.llm.input_messages,c=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof c=="string"&&c&&(!o||o[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:c}})}}return{messageParsingErrors:[],messages:ar({provider:n,messages:t.data.llm.input_messages})}}function Gm({provider:n,parsedAttributes:a}){const t=[],l=Em.safeParse(a);if(l.success)return{output:ar({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(ym);const i=_m.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(fm),{output:void 0,outputParsingErrors:t})}function Wm(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GEMINI";case"azure":return"AZURE_OPENAI";default:return null}}function Jm(n){for(const a of Object.keys(Dl))if(Dl[a].some(l=>n.includes(l)))return a;return hc}function Zm(n){const{success:a,data:t}=Nm.safeParse(n);if(a){const l=Wm(t.llm.provider)||Jm(t.llm.model_name),i=Xm(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[km]}}function Xm(n){const{success:a,data:t}=Vm.safeParse(n);if(a)try{const l=new URL(t.url.full);let i=l;if(t.url.path)try{i=new URL(t.url.full.split(t.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:l.origin,apiVersion:l.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function Ym(n,a=[]){const{success:t,data:l}=er.safeParse(n),i=[];return t||i.push(bm),{invocationParameters:og((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function eg(n){const{success:a,data:t}=zm.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[Sm]}}function ng(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(t=>(t==null?void 0:t.tool)==null?null:{id:qa(),definition:t.tool.json_schema}).filter(t=>t!=null)}function ag(n){var l;const{data:a,success:t}=Om.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:ng(a),parsingErrors:[]}:{tools:null,parsingErrors:[vm]}}function tg(n){var l;const{success:a,data:t}=Um.safeParse(n);return a?((l=t==null?void 0:t.llm)==null?void 0:l.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:t.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[Cm]}}function lg(n){const a=fc(),{json:t,parseError:l}=xe(n.attributes);if(l)return{playgroundInstance:{...a,spanId:(n==null?void 0:n.id)??null},parsingErrors:[hm]};const i=n.invocationParameters,r=Zm(t);let{modelConfig:o}=r;const{parsingErrors:c}=r,{messages:d,messageParsingErrors:m}=Hm({provider:(o==null?void 0:o.provider)??a.model.provider,parsedAttributes:t}),{output:y,outputParsingErrors:g}=Gm({provider:(o==null?void 0:o.provider)??a.model.provider,parsedAttributes:t}),{invocationParameters:f,parsingErrors:p}=Ym(t,i),{variables:h,parsingErrors:b}=tg(t),{parsingErrors:K}=eg(t);o=o!=null?{...o,invocationParameters:K.length>0?f.filter(P=>P.invocationName!==jn&&P.canonicalName!==Bn):f}:null;const{tools:T,parsingErrors:D}=ag(t);return{playgroundInstance:{...a,model:o??a.model,template:d!=null?{__type:"chat",messages:d}:a.template,output:y,spanId:n.id,tools:T??a.tools},playgroundInput:h!=null?{variablesValueCache:h}:void 0,parsingErrors:[...m,...g,...c,...D,...p,...K,...b]}}const ig=n=>Mm.safeParse(n).success,tr=({instance:n,templateLanguage:a})=>{if(a==Qn.NONE)return[];const t=new Set,l=n.template.__type,i=bc(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(c=>{t.add(c)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{t.add(o)});break}default:me()}return Array.from(t)},rg=({instances:n,templateLanguage:a})=>a==Qn.NONE?[]:Array.from(new Set(n.flatMap(t=>tr({instance:t,templateLanguage:a})))),lr=({instances:n,templateLanguage:a,input:t})=>{if(a==Qn.NONE)return{variablesMap:{},variableKeys:[]};const l=rg({instances:n,templateLanguage:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,c)=>(o[c]=i[c]||"",o),{}),variableKeys:l}};function Hn(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const sg=(n,a)=>n.filter(t=>a.some(l=>Hn(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>Hn(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),gt=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),og=(n,a)=>Object.entries(n).map(([t,l])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===t.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===t.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[gt(i.invocationInputField)]:l}}).filter(t=>t!=null),Ha=n=>{const{provider:a,validatedToolDefinition:t}=vc(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:me()}},Pl=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:qa(),definition:Sl(a)};case"ANTHROPIC":return{id:qa(),definition:Cc(a)};case"GEMINI":return{id:qa(),definition:Sl(a)};default:me()}},dg=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return bl();case"ANTHROPIC":return Sc();case"GEMINI":return bl();default:me()}};function cg(n){return{content:n.content,role:ug(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function ug(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:me()}}const ir=({playgroundStore:n,instanceId:a,credentials:t})=>{const{instances:l}=n.getState(),i=l.find(m=>m.id===a);if(!i)throw new Error(`No instance found for id ${a}`);if(i.template.__type!=="chat")throw new Error("We only support chat templates for now");const r=i.model.supportedInvocationParameters;let o=[...i.model.invocationParameters];const c=Pm({toolChoice:i.toolChoice,targetProvider:i.model.provider});i.tools.length>0?(o=o.filter(m=>m.invocationName!==Ba&&m.canonicalName!==Da),o.push({canonicalName:Da,invocationName:Ba,valueJson:c})):o=o.filter(m=>m.invocationName!==Ba&&m.canonicalName!==Da),o=r.length?sg(o,r):o;const d=i.model.provider==="AZURE_OPENAI"?{endpoint:i.model.endpoint,apiVersion:i.model.apiVersion}:{};return{messages:i.template.messages.map(cg),model:{providerKey:i.model.provider,name:i.model.modelName||"",baseUrl:i.model.baseUrl,...d},invocationParameters:o,tools:i.tools.length?i.tools.map(m=>m.definition):void 0,apiKey:t[i.model.provider]||null}},mg=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=ir({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateLanguage:r,input:o}=n.getState(),{variablesMap:c}=lr({instances:i,input:o,templateLanguage:r});return{...l,template:{variables:c,language:r}}},Ll=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...ir({playgroundStore:n,instanceId:a,credentials:t}),templateLanguage:n.getState().templateLanguage,datasetId:l});function rr(n){return n==null||n===""?"{}":typeof n=="string"?n:JSON.stringify(n,null,2)}function sr(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>Hn(l,t)))}const gg=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function B1(n,a){const t=new Map(n.map(l=>[l.canonicalName||l.invocationName,l]));return a.forEach(l=>{var d;const i=l.canonicalName||l.invocationName,r=gg(l),o=gt(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((d=t.get(i))==null?void 0:d[o])!=null)return;const c={canonicalName:l.canonicalName,invocationName:l.invocationName,[o]:r};t.set(i,c)}),Array.from(t.values())}const or=u.createContext(null);function H1({children:n,...a}){const[t]=u.useState(()=>Fc(a));return e(or.Provider,{value:t,children:n})}function da(n,a){const t=ve.useContext(or);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return _a(t,n,a)}const dr=u.createContext(null);function pg(){const n=u.useContext(dr);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function G1(n){return e(dr.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const yg=v`
1
+ import{z as R,aD as de,aE as Ee,aF as _e,aG as Qa,A as Md,r as u,j as e,R as ve,n as _a,D as v,l as s,aH as je,a0 as ee,U as B,t as L,a6 as He,a7 as W,a8 as Ce,a9 as Fe,ac as H,aI as he,aJ as mn,aK as gn,aL as Oe,aM as Ad,aN as _t,aO as kn,aP as Wa,a2 as ie,aQ as $a,ab as Pn,g as Xl,aR as Nd,a4 as Vt,G as zd,aS as Vd,aT as St,aU as vt,aV as ba,aW as ca,aX as Yl,o as Xa,aY as $d,ay as Od,az as Qd,aZ as jd,p as ei,q as qd,a_ as Ud,M as Bd,N as Hd,ah as ni,a$ as Gd,b0 as fl,b1 as Wd,b2 as Jd,b3 as Zd,b4 as Xd,b5 as Yd,b6 as ec,b7 as nc,b8 as ac,b9 as tc}from"./vendor-DvC8cT4X.js";import{A as ce,C as j,h as $t,k as J,D as Z,B as Ot,y as qe,z as ne,G as lc,s as Ya,p as et,P as Wn,j as Jn,q as nt,v as Zn,w as ua,H as Ye,L as ja,J as ai,K as ic,M as ti,N as rc,O as sc,Q as ma,e as Me,f as Xn,T as ue,S as Qt,i as Ae,g as ae,E as at,a as Pe,U as jt,V as qt,c as Ln,o as hl,W as oc,n as dc,I as cc,m as kl,l as uc,u as mc,X as gc,r as pc,R as Ia,d as li}from"./vendor-arizeai-Do1793cv.js";import{s as Ut,a as me,l as yc,j as ii,b as xe,i as ri,c as si,d as xn,e as oi,f as fc,g as Pa,D as hc,h as qa,k as kc,T as Qn,m as bc,n as bl,o as Sc,p as vc,q as Sl,r as Cc,t as Fc,N as Kc,u as Tc,L as ye,v as Ke,w as Ra,B as xc,_ as k,x as Fn,I,C as Ic,G as di,y as Bt,P as ga,z as tt,S as Dc,A as Pc,E as Lc,F as wc,H as Ec,J as _c,K as Rc,M as Mc,O as un,Q as N,R as Ge,U as ci,V as C,W as ze,X as lt,Y as Yn,Z as Ne,$ as F,a0 as pe,a1 as Te,a2 as pa,a3 as pn,a4 as bn,a5 as it,a6 as Ie,a7 as re,a8 as Xe,a9 as wn,aa as se,ab as we,ac as ui,ad as We,ae as mi,af as en,ag as En,ah as Ht,ai as tn,aj as Sn,ak as Gt,al as gi,am as pi,an as yn,ao as ke,ap as be,aq as Se,ar as vl,as as Cl,at as vn,au as Ac,av as Nc,aw as U,ax as yi,ay as Wt,az as rt,aA as ya,aB as fi,aC as fa,aD as ha,aE as hi,aF as Cn,aG as Re,aH as st,aI as _n,aJ as ki,aK as Jt,aL as Je,aM as bi,aN as zc,aO as Vc,aP as $c,aQ as Oc,aR as Qc,aS as ln,aT as rn,aU as jc,aV as Ue,aW as qc,aX as Uc,aY as Si,aZ as Bc,a_ as Hc,a$ as Fl,b0 as Gc,b1 as Wc,b2 as Jc,b3 as Zc,b4 as Xc,b5 as Yc,b6 as vi,b7 as eu,b8 as nu,b9 as au,ba as tu,bb as lu,bc as Un,bd as Zt,be as Ci,bf as ra,bg as Rt,bh as On,bi as Tn,bj as iu,bk as ru,bl as Fi,bm as ot,bn as Ki,bo as sn,bp as su,bq as ou,br as La,bs as Le,bt as Ua,bu as Ti,bv as du,bw as $e,bx as Xt,by as cu,bz as uu,bA as mu,bB as gu,bC as Yt,bD as Be,bE as nn,bF as ka,bG as pu,bH as dt,bI as xi,bJ as Ii,bK as Ct,bL as yu,bM as ct,bN as ut,bO as Ze,bP as Ve,bQ as fu,bR as el,bS as Di,bT as Pi,bU as Li,bV as hu,bW as on,bX as wi,bY as In,bZ as ku,b_ as Kl,b$ as Ei,c0 as bu,c1 as Su,c2 as vu,c3 as Cu,c4 as _i,c5 as dn,c6 as Fu,c7 as sa,c8 as Mt,c9 as Ku,ca as Ri,cb as Mi,cc as Tu,cd as xu,ce as Iu,cf as mt,cg as Ai,ch as Ma,ci as Tl,cj as Ni,ck as nl,cl as Du,cm as Pu,cn as al,co as zi,cp as Vi,cq as Lu,cr as wu,cs as Eu,ct as At,cu as $i,cv as _u,cw as Ru,cx as Oa,cy as Mu,cz as Au,cA as Oi,cB as Qi,cC as Nu,cD as zu,cE as Vu,cF as $u,cG as ji,cH as tl,cI as qi,cJ as Ou,cK as Qu,cL as Nt,cM as ju,cN as qu,cO as Uu,cP as Bu,cQ as Hu,cR as Gu,cS as Ui,cT as Wu,cU as Ju,cV as Zu,cW as Xu,cX as Yu,cY as em,cZ as nm,c_ as am,c$ as tm,d0 as lm,d1 as im,d2 as xl,d3 as Il}from"./components-DckIzNmE.js";import{p as Aa,R as Rn,n as Mn,i as rm,E as Bi,m as Hi,o as Gi,g as sm}from"./vendor-codemirror-BzwZPyJM.js";import{R as An,C as Na,X as Nn,Y as an,a as zn,T as Vn,B as oa,A as wa,b as Wi,c as ll,L as Ji,d as om,P as dm,e as cm,f as um}from"./vendor-recharts-_Jb7JjhG.js";const mm=4,gm={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},pm="Unable to parse span input messages, expected messages which include a role and content.",ym="Unable to parse span output messages, expected messages which include a role and content.",fm="Unable to parse span output expected output.value to be present.",hm="Unable to parse span attributes, attributes must be valid JSON.",km="Unable to parse model config, expected llm.model_name to be present.",bm="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",Sm="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",vm="Unable to parse tools, expected tools to be an array of valid tools.",Cm="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",Dl={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GEMINI:["gemini"]},Da="TOOL_CHOICE",Ba="tool_choice",Bn="RESPONSE_FORMAT",jn="response_format",Fm=[Da,Bn],il=Ut()(R.union([R.literal("auto"),R.literal("none"),R.literal("required"),R.object({type:R.literal("function"),function:R.object({name:R.string()})})])),rl=R.object({type:R.union([R.literal("auto"),R.literal("any"),R.literal("tool")]),disable_parallel_tool_use:R.boolean().optional(),name:R.string().optional()}),Km=rl.transform(n=>{switch(n.type){case"any":case"auto":return"auto";case"tool":return n.name?{type:"function",function:{name:n.name}}:"auto";default:return"auto"}}),Tm=il.transform(n=>typeof n=="string"?{type:"auto"}:{type:"tool",name:n.function.name});R.union([il,rl]);const xm=n=>{const{success:a,data:t}=il.safeParse(n);if(a)return{provider:"OPENAI",toolChoice:t};const{success:l,data:i}=rl.safeParse(n);return l?{provider:"ANTHROPIC",toolChoice:i}:{provider:null,toolChoice:null}},Im=n=>{const{provider:a,toolChoice:t}=xm(n);if(a==null||t==null)throw new Error("Could not detect provider of tool choice");switch(a){case"AZURE_OPENAI":case"OPENAI":return t;case"ANTHROPIC":return Km.parse(t);default:me()}},Dm=({toolChoice:n,targetProvider:a})=>{switch(a){case"AZURE_OPENAI":case"OPENAI":return n;case"ANTHROPIC":return Tm.parse(n);case"GEMINI":return n;default:me()}},Pm=({toolChoice:n,targetProvider:a})=>{try{const t=Im(n);return Dm({toolChoice:t,targetProvider:a})}catch{return null}},Lm=R.object({tool_call:R.object({id:R.string().optional(),function:R.object({name:R.string(),arguments:R.string()}).partial()}).partial()}).partial(),Zi=R.object({[de.message]:R.object({[Ee.role]:R.string(),[Ee.content]:R.union([R.string(),R.array(R.record(R.string(),R.unknown()))]).default(""),[Ee.tool_calls]:R.array(Lm).optional(),[Ee.tool_call_id]:R.string().optional()})}),wm=R.object({[de.llm]:R.object({[_e.input_messages]:R.array(Zi)})}),Em=R.object({[de.llm]:R.object({[_e.output_messages]:R.array(Zi)})}),_m=R.object({[de.output]:R.object({value:R.string()})}),Xi=Ut()(R.enum(["user","ai","system","tool"])),Rm=Ut()(R.object({id:R.number(),role:Xi,content:R.string().optional(),toolCallId:R.string().optional(),toolCalls:R.array(yc).optional()})),Mm=R.array(Rm),sl=R.lazy(()=>R.record(ii)),Am=sl,Yi=R.string().transform((n,a)=>{const{json:t}=xe(n);if(!ri(t))return a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER;const{success:l,data:i}=Am.safeParse(t);return l?i:(a.addIssue({code:R.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),R.NEVER)}).default("{}"),Nm=R.object({[de.llm]:R.object({[_e.provider]:R.string().optional(),[_e.model_name]:R.string()})}),er=R.object({[de.llm]:R.object({[_e.invocation_parameters]:Yi})}),zm=R.object({[de.llm]:R.object({[_e.invocation_parameters]:Yi.pipe(R.object({response_format:sl.optional()}))})}),Vm=R.object({url:R.object({full:R.string(),path:R.string().optional()})}),$m=R.string().transform((n,a)=>{const{json:t}=xe(n);return t==null||!ri(t)?(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),R.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=si.safeParse(n);return l?t:(a.addIssue({code:R.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),R.NEVER)}),Om=R.object({[de.llm]:R.object({[_e.tools]:R.array(R.object({[de.tool]:R.object({[Qa.json_schema]:$m})}).optional()).optional()}).optional()}).optional(),Qm=R.lazy(()=>R.object({type:R.literal("json_schema"),json_schema:R.object({name:R.string().describe("The name of the schema"),schema:ii.describe("The schema itself in JSON format"),strict:R.literal(!0).describe("The schema must be strict")})})),jm=Md(Qm,{removeAdditionalStrategy:"passthrough"}),qm=R.string().transform((n,a)=>{const{json:t}=xe(n);return xn(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:c}=oi(o);c!=null&&(i[r]=c)}return i},{}):(a.addIssue({code:R.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),R.NEVER)}),Um=R.object({[de.llm]:R.object({[_e.prompt_template]:R.object({variables:qm}).optional()}).optional()}).optional();function nr(n){return Xi.safeParse(n).success}function Ja(n){if(nr(n))return n;for(const[a,t]of Object.entries(gm))if(t.includes(n))return a;return kc}function Bm({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,o,c;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:d}=xe(t.function.arguments);xn(d)&&(l=d)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((o=t.function)==null?void 0:o.name)??"",input:l};case"GEMINI":return{id:t.id??"",function:{name:((c=t.function)==null?void 0:c.name)??"",arguments:l}};default:me()}}).filter(t=>t!=null)}function ar({messages:n,provider:a}){return n.map(({message:t})=>({id:Pa(),role:t.tool_call_id!=null?Ja("tool"):Ja(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Bm({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function Hm({provider:n,parsedAttributes:a}){var l;const t=wm.safeParse(a);if(!t.success)return{messageParsingErrors:[pm],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=er.safeParse(a);if(i){const o=t.data.llm.input_messages,c=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof c=="string"&&c&&(!o||o[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:c}})}}return{messageParsingErrors:[],messages:ar({provider:n,messages:t.data.llm.input_messages})}}function Gm({provider:n,parsedAttributes:a}){const t=[],l=Em.safeParse(a);if(l.success)return{output:ar({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(ym);const i=_m.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(fm),{output:void 0,outputParsingErrors:t})}function Wm(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GEMINI";case"azure":return"AZURE_OPENAI";default:return null}}function Jm(n){for(const a of Object.keys(Dl))if(Dl[a].some(l=>n.includes(l)))return a;return hc}function Zm(n){const{success:a,data:t}=Nm.safeParse(n);if(a){const l=Wm(t.llm.provider)||Jm(t.llm.model_name),i=Xm(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[km]}}function Xm(n){const{success:a,data:t}=Vm.safeParse(n);if(a)try{const l=new URL(t.url.full);let i=l;if(t.url.path)try{i=new URL(t.url.full.split(t.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:l.origin,apiVersion:l.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function Ym(n,a=[]){const{success:t,data:l}=er.safeParse(n),i=[];return t||i.push(bm),{invocationParameters:og((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function eg(n){const{success:a,data:t}=zm.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[Sm]}}function ng(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(t=>(t==null?void 0:t.tool)==null?null:{id:qa(),definition:t.tool.json_schema}).filter(t=>t!=null)}function ag(n){var l;const{data:a,success:t}=Om.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:ng(a),parsingErrors:[]}:{tools:null,parsingErrors:[vm]}}function tg(n){var l;const{success:a,data:t}=Um.safeParse(n);return a?((l=t==null?void 0:t.llm)==null?void 0:l.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:t.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[Cm]}}function lg(n){const a=fc(),{json:t,parseError:l}=xe(n.attributes);if(l)return{playgroundInstance:{...a,spanId:(n==null?void 0:n.id)??null},parsingErrors:[hm]};const i=n.invocationParameters,r=Zm(t);let{modelConfig:o}=r;const{parsingErrors:c}=r,{messages:d,messageParsingErrors:m}=Hm({provider:(o==null?void 0:o.provider)??a.model.provider,parsedAttributes:t}),{output:y,outputParsingErrors:g}=Gm({provider:(o==null?void 0:o.provider)??a.model.provider,parsedAttributes:t}),{invocationParameters:f,parsingErrors:p}=Ym(t,i),{variables:h,parsingErrors:b}=tg(t),{parsingErrors:K}=eg(t);o=o!=null?{...o,invocationParameters:K.length>0?f.filter(P=>P.invocationName!==jn&&P.canonicalName!==Bn):f}:null;const{tools:T,parsingErrors:D}=ag(t);return{playgroundInstance:{...a,model:o??a.model,template:d!=null?{__type:"chat",messages:d}:a.template,output:y,spanId:n.id,tools:T??a.tools},playgroundInput:h!=null?{variablesValueCache:h}:void 0,parsingErrors:[...m,...g,...c,...D,...p,...K,...b]}}const ig=n=>Mm.safeParse(n).success,tr=({instance:n,templateLanguage:a})=>{if(a==Qn.NONE)return[];const t=new Set,l=n.template.__type,i=bc(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(c=>{t.add(c)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{t.add(o)});break}default:me()}return Array.from(t)},rg=({instances:n,templateLanguage:a})=>a==Qn.NONE?[]:Array.from(new Set(n.flatMap(t=>tr({instance:t,templateLanguage:a})))),lr=({instances:n,templateLanguage:a,input:t})=>{if(a==Qn.NONE)return{variablesMap:{},variableKeys:[]};const l=rg({instances:n,templateLanguage:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,c)=>(o[c]=i[c]||"",o),{}),variableKeys:l}};function Hn(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const sg=(n,a)=>n.filter(t=>a.some(l=>Hn(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>Hn(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),gt=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),og=(n,a)=>Object.entries(n).map(([t,l])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===t.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===t.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[gt(i.invocationInputField)]:l}}).filter(t=>t!=null),Ha=n=>{const{provider:a,validatedToolDefinition:t}=vc(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:me()}},Pl=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:qa(),definition:Sl(a)};case"ANTHROPIC":return{id:qa(),definition:Cc(a)};case"GEMINI":return{id:qa(),definition:Sl(a)};default:me()}},dg=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return bl();case"ANTHROPIC":return Sc();case"GEMINI":return bl();default:me()}};function cg(n){return{content:n.content,role:ug(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function ug(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:me()}}const ir=({playgroundStore:n,instanceId:a,credentials:t})=>{const{instances:l}=n.getState(),i=l.find(m=>m.id===a);if(!i)throw new Error(`No instance found for id ${a}`);if(i.template.__type!=="chat")throw new Error("We only support chat templates for now");const r=i.model.supportedInvocationParameters;let o=[...i.model.invocationParameters];const c=Pm({toolChoice:i.toolChoice,targetProvider:i.model.provider});i.tools.length>0?(o=o.filter(m=>m.invocationName!==Ba&&m.canonicalName!==Da),o.push({canonicalName:Da,invocationName:Ba,valueJson:c})):o=o.filter(m=>m.invocationName!==Ba&&m.canonicalName!==Da),o=r.length?sg(o,r):o;const d=i.model.provider==="AZURE_OPENAI"?{endpoint:i.model.endpoint,apiVersion:i.model.apiVersion}:{};return{messages:i.template.messages.map(cg),model:{providerKey:i.model.provider,name:i.model.modelName||"",baseUrl:i.model.baseUrl,...d},invocationParameters:o,tools:i.tools.length?i.tools.map(m=>m.definition):void 0,apiKey:t[i.model.provider]||null}},mg=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=ir({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateLanguage:r,input:o}=n.getState(),{variablesMap:c}=lr({instances:i,input:o,templateLanguage:r});return{...l,template:{variables:c,language:r}}},Ll=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...ir({playgroundStore:n,instanceId:a,credentials:t}),templateLanguage:n.getState().templateLanguage,datasetId:l});function rr(n){return n==null||n===""?"{}":typeof n=="string"?n:JSON.stringify(n,null,2)}function sr(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>Hn(l,t)))}const gg=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function B1(n,a){const t=new Map(n.map(l=>[l.canonicalName||l.invocationName,l]));return a.forEach(l=>{var d;const i=l.canonicalName||l.invocationName,r=gg(l),o=gt(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((d=t.get(i))==null?void 0:d[o])!=null)return;const c={canonicalName:l.canonicalName,invocationName:l.invocationName,[o]:r};t.set(i,c)}),Array.from(t.values())}const or=u.createContext(null);function H1({children:n,...a}){const[t]=u.useState(()=>Fc(a));return e(or.Provider,{value:t,children:n})}function da(n,a){const t=ve.useContext(or);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return _a(t,n,a)}const dr=u.createContext(null);function pg(){const n=u.useContext(dr);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function G1(n){return e(dr.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const yg=v`
2
2
  display: flex;
3
3
  direction: row;
4
4
  height: 100vh;
@@ -0,0 +1 @@
1
+ __version__ = "7.12.2"
@@ -1 +0,0 @@
1
- __version__ = "7.12.1"
File without changes
File without changes
File without changes