Kuruwa
Kuruwa 面向 agent 提供项目级终端复用与多种权限环境的访问。控制面的授权边界与沙盒自身的隔离强度是两个独立概念。
Language
主 daemon: 为一个项目管理执行环境和终端访问的常驻服务,其实际权限由启动它的用户与环境决定。 Avoid: 项目级 daemon(容易与实例 daemon 混淆)。
主机权限: 主 daemon 启动时所处环境的实际权限基线,不特指 root 权限或物理宿主的完整权限。 Avoid: 将主机权限等同于系统最高权限。
沙盒定义: 描述可信的自定义环境初始化过程及其最终执行环境的规格,与实际运行的沙盒及其终端分别存在;初始化由指定的外部程序执行,可以跨越外部程序执行边界。
沙盒实例: 初始化后持续存在的具体执行环境,具有代表该环境的实例 daemon,并与其中的终端实例具有独立身份;环境的建立方式可以定制。
实例 daemon: 完成环境初始化后留在沙盒实例内、负责创建该实例中终端进程的服务;后续进程继承它的执行环境。
终端后端: 在沙盒实例内承载终端复用与交互状态的部分;本项目由该实例的 RMUX(即实例 daemon)承担,不另设独立的终端 daemon。终端是 RMUX session 中的单 pane,不向上层暴露多 pane 或原始 RMUX 命令。
主机实例: 直接使用主 daemon 所处权限环境、无需额外建立隔离环境的沙盒实例。
终端实例: 位于某个执行环境中的具体终端,其名称在同一个主 daemon 管理的所有租户与沙盒实例中唯一;名称不代表访问权限。命令任务与长期交互 shell 使用同一种对象模型,不另设任务实体,终端生命周期不依赖客户端连接是否持续存在。
销毁实例: 结束沙盒实例并清理其受管资源的操作;非空实例默认拒绝销毁,显式强制销毁才终止其终端和实例 daemon。
临时授权: 针对本次主 daemon 运行中具体实例或终端授予的访问许可,不在主 daemon 重启后自动恢复。
隔离强度: 沙盒对其中程序访问外部资源的限制程度;不同沙盒可以具有不同的隔离强度。
管理入口: 供人工管理主 daemon 的完整管理入口,包括创建执行环境、终端和访问授权。
受限入口: 具有特定对象可见范围和操作权限的 Unix socket 访问入口;共享该入口的访问者共享其授权,而不依赖自报的 agent 身份。
租户: 独立的控制面授权上下文,可以供多个 agent 共用并关联多个沙盒实例;租户不是 Linux 用户或沙盒实例。
主机租户: 项目内拥有最高控制面管理权限的租户,与提供宿主执行环境的主机实例分别存在。
终端访问授权: 通过受限入口访问指定终端的许可,不自动包含所在沙盒实例的管理权,也不限制 shell 内命令本身的能力。
实例终端控制权: 随沙盒实例控制权授予的、创建和管理该实例内终端的权限,不另设独立的创建终端权限;它与仅访问指定终端的权限分别授予,不自动包含主 daemon 的管理权限。
实例创建授权: 通过受限入口依据指定沙盒定义创建实例,并管理所创建实例及其终端的许可。
撤回访问: 切断已有访问并禁止后续访问的授权变更,与终止终端或任务分别处理。