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, ActionCheckNote,
BotFilesNote, BotFilesNote,
ChatReplyNote, ChatReplyNote,
ComputerFilesNote,
CoordinatorReplyNote, CoordinatorReplyNote,
CoordinatorSoloNote, CoordinatorSoloNote,
TasksNote, TasksNote,
@@ -128,6 +129,7 @@ export default async function runBotReply({
carry_over, carry_over,
ChatReplyNote, ChatReplyNote,
BotFilesNote, BotFilesNote,
ComputerFilesNote({ computer_id: computers[0]?.id || 0, can_import: false }),
TasksNote, TasksNote,
TaskReminderNote, TaskReminderNote,
ActionCheckNote, ActionCheckNote,
+1
View File
@@ -79,6 +79,7 @@ export const JobStepToolLabels: Record<string, string> = {
sandbox_write_file: "Writing a file", sandbox_write_file: "Writing a file",
sandbox_file_operations: "Working with files", sandbox_file_operations: "Working with files",
search_computers: "Searching the computers", search_computers: "Searching the computers",
import_file: "Copying a file from the computer",
ask_user_to_take_over: "Asking you to take over", ask_user_to_take_over: "Asking you to take over",
start_task: "Starting a task", start_task: "Starting a task",
delegate_task: "Handing work to the crew", delegate_task: "Handing work to the crew",
@@ -8,9 +8,11 @@ import {
TakeOverRefHrefPrefix, TakeOverRefHrefPrefix,
WorkspaceRefHrefPrefix, WorkspaceRefHrefPrefix,
} from "@/src/utils/link-computer-refs"; } from "@/src/utils/link-computer-refs";
import { parsePathRefHref } from "@/src/utils/path-ref";
import BotRefChip from "./bot-ref-chip"; import BotRefChip from "./bot-ref-chip";
import ComputerRefChip from "./computer-ref-chip"; import ComputerRefChip from "./computer-ref-chip";
import FileRefChip from "./file-ref-chip"; import FileRefChip from "./file-ref-chip";
import PathRefChip from "./path-ref-chip";
import TakeOverChip from "./take-over-chip"; import TakeOverChip from "./take-over-chip";
import WorkspaceRefChip from "./workspace-ref-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} />; 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 ( return (
<Link <Link
href={href} href={href}