summaryrefslogtreecommitdiff
path: root/libpanto/src/conversation.zig
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-06-22 18:18:28 -0600
committert <t@tjp.lol>2026-06-23 09:34:55 -0600
commit538a5d926fa626a00cc3dc12c555f11f82867efd (patch)
tree7ea3b84ea5086d67973d0b427ec7c382eb635e50 /libpanto/src/conversation.zig
parenta417727810cc6722b3c82e3c9e9b46982ef40a08 (diff)
libpanto ponytail-audit simplifications
Diffstat (limited to 'libpanto/src/conversation.zig')
-rw-r--r--libpanto/src/conversation.zig26
1 files changed, 3 insertions, 23 deletions
diff --git a/libpanto/src/conversation.zig b/libpanto/src/conversation.zig
index 2c63f19..ea4309c 100644
--- a/libpanto/src/conversation.zig
+++ b/libpanto/src/conversation.zig
@@ -351,15 +351,7 @@ pub const Conversation = struct {
/// Blocks must use this conversation's allocator for any owned bytes,
/// since the conversation will free them with that allocator.
pub fn addUserMessage(self: *Conversation, blocks: []const ContentBlock) !void {
- var content: std.ArrayList(ContentBlock) = .empty;
- try content.ensureTotalCapacity(self.allocator, blocks.len);
- for (blocks) |block| {
- content.appendAssumeCapacity(block);
- }
- try self.messages.append(self.allocator, .{
- .role = .user,
- .content = content,
- });
+ return self.addMessage(.user, blocks, null);
}
/// Append a `user`-role message carrying a single `.CompactionSummary`
@@ -388,16 +380,7 @@ pub const Conversation = struct {
blocks: []const ContentBlock,
usage: ?Usage,
) !void {
- var content: std.ArrayList(ContentBlock) = .empty;
- try content.ensureTotalCapacity(self.allocator, blocks.len);
- for (blocks) |block| {
- content.appendAssumeCapacity(block);
- }
- try self.messages.append(self.allocator, .{
- .role = .assistant,
- .content = content,
- .usage = usage,
- });
+ return self.addMessage(.assistant, blocks, usage);
}
/// Append a message of any role from a slice of content blocks, with
@@ -497,10 +480,7 @@ pub fn effectiveSystemBlocks(
for (msg.content.items) |block| {
switch (block) {
.System => |sb| {
- switch (sb.mode) {
- .append => {},
- .replace => out.clearRetainingCapacity(),
- }
+ if (sb.mode == .replace) out.clearRetainingCapacity();
try out.append(alloc, sb.text.items);
},
// Be tolerant of plain `.Text` blocks on a system message