Show runtime guidance in transcript
This commit is contained in:
@@ -213,6 +213,79 @@ def agent_session_delta(
|
||||
}
|
||||
|
||||
|
||||
def append_agent_display_message(
|
||||
session_id: str,
|
||||
message: JSONDict,
|
||||
directory: Path | None = None,
|
||||
) -> dict[str, Any] | None:
|
||||
target_dir = directory or DEFAULT_AGENT_SESSION_DIR
|
||||
if not isinstance(message, dict):
|
||||
return None
|
||||
message_key = _display_message_key(message)
|
||||
message_json = json.dumps(message, ensure_ascii=False, sort_keys=True)
|
||||
now = time.time()
|
||||
with _connect_agent_session_db(target_dir) as conn:
|
||||
existing = conn.execute(
|
||||
"""
|
||||
select seq, message_json
|
||||
from agent_display_messages
|
||||
where session_id = ? and message_key = ?
|
||||
order by seq asc
|
||||
limit 1
|
||||
""",
|
||||
(session_id, message_key),
|
||||
).fetchone()
|
||||
if existing is not None:
|
||||
if existing['message_json'] != message_json:
|
||||
conn.execute(
|
||||
"""
|
||||
update agent_display_messages
|
||||
set role = ?,
|
||||
updated_at = ?,
|
||||
message_json = ?
|
||||
where session_id = ? and seq = ?
|
||||
""",
|
||||
(
|
||||
str(message.get('role') or ''),
|
||||
now,
|
||||
message_json,
|
||||
session_id,
|
||||
int(existing['seq']),
|
||||
),
|
||||
)
|
||||
return {
|
||||
'seq': int(existing['seq']),
|
||||
'updated_at': now,
|
||||
'message': message,
|
||||
}
|
||||
latest = conn.execute(
|
||||
"""
|
||||
select max(seq) as latest_seq
|
||||
from agent_display_messages
|
||||
where session_id = ?
|
||||
""",
|
||||
(session_id,),
|
||||
).fetchone()
|
||||
seq = int(latest['latest_seq'] or 0) + 1 if latest is not None else 1
|
||||
conn.execute(
|
||||
"""
|
||||
insert into agent_display_messages (
|
||||
session_id, seq, message_key, role, updated_at, message_json
|
||||
)
|
||||
values (?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
session_id,
|
||||
seq,
|
||||
message_key,
|
||||
str(message.get('role') or ''),
|
||||
now,
|
||||
message_json,
|
||||
),
|
||||
)
|
||||
return {'seq': seq, 'updated_at': now, 'message': message}
|
||||
|
||||
|
||||
def enqueue_session_input(
|
||||
session_id: str,
|
||||
*,
|
||||
|
||||
Reference in New Issue
Block a user