Add type definitions for observations and traces #24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Changes
New:
lib/langfuse/types.rb(335 lines)OBSERVATION_TYPESconstant: 10 observation types (span, generation, event, embedding, agent, tool, chain, retriever, evaluator, guardrail)LEVELSconstant: 4 severity levels (DEBUG, DEFAULT, WARNING, ERROR)SpanAttributesclass: Base class with 7 configurable attributesGenerationAttributesclass: Extends SpanAttributes with 6 LLM-specific fieldsEmbeddingAttributesclass: Extends GenerationAttributes for embedding callsTraceAttributesclass: 11 trace-level attributesNew:
spec/langfuse/types_spec.rb(379 lines)Modified:
lib/langfuse.rb- Added require for types moduleModified:
.gitignore- Added internal dev filesDesign
All attribute classes follow a consistent pattern:
#to_hmethod that excludes nil values (for clean API payloads)Test Coverage
100% coverage of types module (379 lines of specs testing all classes, constants, and methods)
References
Closes #6