Muxiva Studio
Studio 是随 muxiva CLI 发布的本地可视化开发环境。它编辑的就是校验器与
Runtime Compiler 使用的严格 Graph v1 文档,不存在浏览器专用图格式。
启动
macOS/Windows Shell 直接运行 run.sh 也默认进入 Studio;Linux 默认 Headless,因此在
Linux 上打开 Studio 必须写 --studio。
无参数启动时,CLI 按顺序发现当前项目的 graph.json、独立的
muxiva.graph.json,以及 Muxiva 源码仓库内的旗舰 Voice Agent。都不存在时会创建一份
新的 muxiva.graph.json,不会覆盖已有文件。也可以显式传入项目目录或 Graph:
Studio 允许打开尚未通过校验的 Graph,以便在画布和诊断面板中修复错误。
可视化开发流程
Palette 将架构层级与图中角色分开:可以按 Transport、Algorithm、Media、Control 或 Utility 过滤,也可以按 Capability、Tag 或 Node Type 搜索。选择 Node 后, Inspector 会展示功能摘要、稳定 Capability、详细 Port Schema、实现源码和独立指南。
- 将内置或项目 Node 从 Palette 拖到画布。
- 从输出 Port 拉线到类型兼容的输入 Port。
- 选择 Node,查看 Factory 元数据、配置与实现源码。
- 校验并运行 Graph,观察实时指标,按需停止 Runtime。
- 将格式化 Graph JSON 原子写回文件。
Studio 根据 Port Schema 自动推导 Edge 的 Frame 类型。audio、video、text、 byte、signal 与 event Port 之间不允许错误连接。
在 Studio 中创建 Node
点击 Create Node,选择语言和角色,编辑模板代码,声明 Port 与配置 Schema, 然后点击 Save & Register。
Package 会立即进入当前项目的 Palette。Python Node 通过可信本地 Host 运行;
符合 Muxiva ABI v1、放在 .muxiva/native/<package_id>/ 的 C++ 动态库也会被严格核对
Manifest 身份、版本、角色与 Port 后加载。TypeScript 与 Rust 项目源码目前仍需
在 Studio 外构建为受支持的运行产物。
选中项目 Node 后,Inspector 会展示 .muxiva/nodes/ 中保存的完整源码,并提供
Edit in Node Lab。通过兼容配置 .muxiva/providers.json 加载的官方 Node 会展示精确源码,
但保持只读;项目自己的 .muxiva/nodes 仍可编辑。选中编译内置 Node 时会展示精确 Factory 身份,并链接到
权威 Rust 实现。
Runtime 可观测性
紧凑 Runtime 面板展示会话总量。点击顶部 ◎ Observe 可进入专门的实时诊断页: 逐 Node 吞吐与处理耗时、逐 Edge 速率与队列等待、Node 内部 SDK 缓冲、自动热点判定 以及点击下钻详情。完整用法见可观测性与堵点定位。Run 使用当前 画布快照,不要求预先保存。
Studio 不再托管 Voice Room 或其他最终用户页面。部署时使用 muxiva serve 运行 Graph,
并单独托管 examples/voice-agent/web/。这样用户设备上的麦克风页面不依赖开发机上的
Studio;完整路径见Headless Runtime 与独立网页。
安全边界
Studio 默认只监听 127.0.0.1,所有接口要求随机 Bearer Token。保存、浏览或
校验 Package 都不会执行源码;只有可信本地用户主动点击 Run 后,语言 Host
才会加载 Package。
Studio 不是远程生产控制面,禁止直接暴露到公网。