Open computers from the chat, let bots ask for a take-over, show task progress
- Serve each computer to its owner under /computers/<id>/ (HTTP and websockets proxied to the AIO sandbox) and show it in a shared ComputerView with browser, terminal and code modes, opened from the computers modal or a take-over button in the thread. - ask_user_to_take_over lets a bot hand a computer to the user for a login or captcha; the message gets a take-over button and needs-you, and the viewer hands it back with a chat message. - While a task runs the thread shows "<bot> is working..." with the task's latest step; steps read as plain words, not tool names. - A coordinator with no workers no longer claims to delegate, and bots describe started tasks in the first person. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -42,3 +42,29 @@ export const BotReplyJobTitle = "Thinking";
|
||||
* The bot's status line while its job waits for a rate-limited model.
|
||||
*/
|
||||
export const BotWaitingStatusLine = "Waiting for a free model";
|
||||
|
||||
/**
|
||||
* How a job step that called a tool reads in the chat's working row, by
|
||||
* tool name. Tools not listed read "Using <name>".
|
||||
*/
|
||||
export const JobStepToolLabels: Record<string, string> = {
|
||||
sandbox_execute_bash: "Running a command",
|
||||
sandbox_execute_code: "Running code",
|
||||
sandbox_read_file: "Reading a file",
|
||||
sandbox_write_file: "Writing a file",
|
||||
sandbox_file_operations: "Working with files",
|
||||
search_computers: "Searching the computers",
|
||||
ask_user_to_take_over: "Asking you to take over",
|
||||
start_task: "Starting a task",
|
||||
delegate_task: "Handing work to the crew",
|
||||
assign_computer: "Changing computer access",
|
||||
update_memory: "Updating memory",
|
||||
update_instructions: "Updating instructions",
|
||||
};
|
||||
|
||||
/**
|
||||
* Labels for whole families of tools, by name prefix.
|
||||
*/
|
||||
export const JobStepToolPrefixLabels: Record<string, string> = {
|
||||
browser_: "Using the browser",
|
||||
};
|
||||
|
||||
@@ -87,3 +87,34 @@ export const ComputerMcpExcludedTools = [
|
||||
"browser_gui_screenshot",
|
||||
"browser_gui_execute_action",
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* How the user can open a computer, each one of the AIO sandbox's own
|
||||
* apps at `path` (relative to the computer's address). More of them
|
||||
* (VNC, opencode, codex) can join later.
|
||||
*/
|
||||
export const ComputerViewModes = [
|
||||
{
|
||||
title: "Browser",
|
||||
value: "browser",
|
||||
path: "browser-ui",
|
||||
},
|
||||
{
|
||||
title: "Terminal",
|
||||
value: "terminal",
|
||||
path: "terminal",
|
||||
},
|
||||
{
|
||||
title: "Code",
|
||||
value: "code",
|
||||
path: "code-server/",
|
||||
},
|
||||
] as const;
|
||||
|
||||
export type ComputerViewMode = (typeof ComputerViewModes)[number]["value"];
|
||||
|
||||
/**
|
||||
* Where the app serves a computer to its owner's browser:
|
||||
* `/computers/<id>/<path>`, proxied to the sandbox (`handleComputerProxy`).
|
||||
*/
|
||||
export const ComputerProxyPrefix = "/computers";
|
||||
|
||||
Reference in New Issue
Block a user