Shell Built-In

内建 Shell tools、Workspace 持久 Sandbox 与 host 审批

Shell 是 @downcity/city 提供的 Workspace 内建能力,不是 Power。Shell 持有自己的 SandboxProvider、为当前 Workspace 创建的持久 Sandbox,以及其中创建的全部 Shell Sessions。City 不理解 Workspace 使用哪种执行后端。

import { Agent } from "@downcity/agent";
import { City, Shell, Workspace } from "@downcity/city";
import { MicrosandboxProvider } from "@downcity/sandbox-microsandbox";

const workspace = new Workspace({
  id: "project",
  path: "/path/to/project",
  shell: new Shell({
    sandbox_provider: new MicrosandboxProvider(),
  }),
});
const city = new City({
  workspaces: [workspace],
});
const agent = new Agent({ id: "repo-helper" });
city.agents.add(agent);

模型会获得 shell_exec 和 shell_session。两者默认使用 target: "sandbox",项目固定挂载在 /workspace。只有确实需要完整宿主能力时才使用 target: "host" 并提供清晰 reason,请求必须经过审批。

同一 Workspace 下的 Chat Session 共享 Sandbox HOME 与已安装工具,不同 Workspace 的可写环境彼此独立。shell_id 标识 Shell Session,不能与 Chat session_id 混用。

关闭 City 或 Workspace 只停止计算资源,不删除持久 Sandbox 文件系统。系统不再提供宿主路径白名单或中间执行 mode。

生命周期、环境变量和审批细节见 Shell 与 Sandbox。