-- context.lua — in-memory conversation history + token budget. -- Phase 0: ordered turn list, sliding window eviction. -- Tokenization is char/4 heuristic in Phase 0; accurate count is Phase 2. -- See docs/PHASE0.md §8. local M = {} -- Construct a Context table from config.context. function M.new(opts) error("context.new: not implemented (Phase 0 pending)") end -- Append a turn { role = ..., content = ... }. function M:append(turn) error("context:append: not implemented (Phase 0 pending)") end -- Render messages array suitable for broker.chat (system prompt prepended). function M:to_messages() error("context:to_messages: not implemented (Phase 0 pending)") end -- Apply max_turns eviction policy. Returns number of turns evicted. function M:enforce_budget() error("context:enforce_budget: not implemented (Phase 0 pending)") end return M