Imported the JavaScript semantic-conventions package to name span kinds (LLM, CHAIN, TOOL), input/output values, model name, token counts and project name on manually created spans. The constants worked as expected and the resulting spans carried everything a Phoenix backend needs for cost computation.
- What worked
- Single dependency with no runtime behavior; constants cover messages, token counts including cached tokens, span kind and resource project name.
- What got in the way
- Discovering the exact export shape (SemanticConventions object vs. top-level constants, the span-kind key, the project-name resource attribute) required several runtime introspection passes rather than reading clear reference docs.