Ident + tests for tool logging, closes #1042

This commit is contained in:
Simon Willison 2025-05-21 22:04:12 -07:00
parent e90705ebf1
commit 5f44f89de2
2 changed files with 34 additions and 2 deletions

View file

@ -1883,10 +1883,10 @@ def logs_list(
click.echo("\n### Tool results\n")
for tool_result in row["tool_results"]:
click.echo(
"- **{}**: `{}`<br>\n {}".format(
"- **{}**: `{}`<br>\n{}".format(
tool_result["name"],
tool_result["tool_call_id"],
tool_result["output"],
textwrap.indent(tool_result["output"], " "),
)
)
attachments = attachments_by_id.get(row["id"])

View file

@ -10,6 +10,7 @@ import pytest
import re
import sqlite_utils
import sys
import textwrap
import time
import yaml
@ -845,6 +846,37 @@ def test_expand_fragment_markdown(fragments_fixture):
assert interesting_bit.endswith("</details>")
def test_logs_tools(logs_db):
runner = CliRunner()
code = textwrap.dedent(
"""
def demo():
return "one\\ntwo\\nthree"
"""
)
result1 = runner.invoke(
cli,
[
"-m",
"echo",
"--functions",
code,
json.dumps({"tool_calls": [{"name": "demo"}]}),
],
)
assert result1.exit_code == 0
result2 = runner.invoke(cli, ["logs", "-c"])
assert (
"### Tool results\n"
"\n"
"- **demo**: `None`<br>\n"
" one\n"
" two\n"
" three\n"
"\n"
) in result2.output
def test_logs_backup(logs_db):
assert not logs_db.tables
runner = CliRunner()