Let a bot's reply link to the files it saved

Both runners now pass the files a run wrote back into the reply, and a
computer file ref renders as a chip like a bot file ref does, so a
reply can point at what it produced instead of naming a path.
This commit is contained in:
2026-10-22 07:37:27 +01:00
parent 43e70de983
commit 80b6b6c1d7
3 changed files with 9 additions and 0 deletions
+2
View File
@@ -4,6 +4,7 @@ import {
ActionCheckNote,
BotFilesNote,
ChatReplyNote,
ComputerFilesNote,
CoordinatorReplyNote,
CoordinatorSoloNote,
TasksNote,
@@ -128,6 +129,7 @@ export default async function runBotReply({
carry_over,
ChatReplyNote,
BotFilesNote,
ComputerFilesNote({ computer_id: computers[0]?.id || 0, can_import: false }),
TasksNote,
TaskReminderNote,
ActionCheckNote,
+1
View File
@@ -79,6 +79,7 @@ export const JobStepToolLabels: Record<string, string> = {
sandbox_write_file: "Writing a file",
sandbox_file_operations: "Working with files",
search_computers: "Searching the computers",
import_file: "Copying a file from the computer",
ask_user_to_take_over: "Asking you to take over",
start_task: "Starting a task",
delegate_task: "Handing work to the crew",
@@ -8,9 +8,11 @@ import {
TakeOverRefHrefPrefix,
WorkspaceRefHrefPrefix,
} from "@/src/utils/link-computer-refs";
import { parsePathRefHref } from "@/src/utils/path-ref";
import BotRefChip from "./bot-ref-chip";
import ComputerRefChip from "./computer-ref-chip";
import FileRefChip from "./file-ref-chip";
import PathRefChip from "./path-ref-chip";
import TakeOverChip from "./take-over-chip";
import WorkspaceRefChip from "./workspace-ref-chip";
@@ -61,6 +63,10 @@ export default function MarkdownLink({ href, children }: ComponentProps<"a">) {
if (file_id) return <FileRefChip file_id={file_id} />;
}
const path_ref = parsePathRefHref({ href });
if (path_ref) return <PathRefChip spec={path_ref.spec} path={path_ref.path} />;
return (
<Link
href={href}