const std = @import("std"); const provider = @import("provider.zig"); const conversation = @import("conversation.zig"); pub const Agent = struct { provider: provider.Provider, allocator: std.mem.Allocator, pub fn init(allocator: std.mem.Allocator, prov: provider.Provider) Agent { return .{ .provider = prov, .allocator = allocator, }; } pub fn runStep(self: Agent, conv: *conversation.Conversation, receiver: *provider.Receiver) !void { try self.provider.streamStep(conv, receiver); } pub fn deinit(self: Agent) void { self.provider.deinit(); } };