Building LLM Primitives from Scratch in TypeScript: Tokenizers, Vectors, and Attention