CocoConsole 是 CocoPlus 2.0 的只读本地浏览器控制面板(control plane),用于在本地以浏览器仪表盘的形式查看项目状态与安全策略决策。
用途 CocoConsole 面向需要观察 CocoPlus 项目运行情况的用户,提供一个本地只读的浏览器界面。它不参与项目变更,仅用于查看 .cocoplus/ 目录下的工件以及(在显式配置 SDK 读取器时)Snowflake 可观测性数据。
主要能力
- 启动本地控制面板:执行
$cocoplus console后,若已有运行中的面板,会输出其地址并打开浏览器;若没有,则运行invoke cocoplus-console.js启动服务。 - 状态记录:服务器会写入 .cocoplus/lifecycle/console-state.json,记录 running、port、url、pid、started_at 以及面板列表(panel list)。
- 安全面板:Safety panel 读取 .cocoplus/lifecycle/policy-decisions.jsonl,展示 Policy Decision Log。默认视图包含 deny 与 instruct 决策;当 policy_log_all = true 产生 allow 决策时,可通过浏览器开关显示这些 allow 决策。
- 状态查询:
$cocoplus console status读取 console-state.json 并报告 URL、PID、启动时间和面板列表;若文件不存在,则提示该项目未运行 CocoConsole。 - 停止面板:
$cocoplus console stop读取 console-state.json,若存在 pid 则使用宿主安全的进程停止机制结束该进程,然后将状态文件重写为 running: false 并记录 stopped_at。
使用方式
- 前置检查:确认 .cocoplus/ 目录存在。若不存在,输出“CocoPlus not initialized in this directory. Run $pod init to begin.”并停止。
- 启动:运行
$cocoplus console。若 console-state.json 记录已有面板运行,输出“CocoConsole running at http://localhost:<port>. Opening browser.”;否则运行invoke cocoplus-console.js。在宿主允许打开浏览器时,打开 http://localhost:<port>/。 - 查看状态:运行
$cocoplus console status。 - 停止:运行
$cocoplus console stop。
适用场景
- 需要以只读方式查看 CocoPlus 项目生命周期状态与面板信息。
- 需要查看 Policy Decision Log(策略决策日志),了解 deny、instruct 以及(在 policy_log_all = true 时)allow 决策。
- 需要在本地浏览器中观察运行状态,而不希望面板对项目产生任何写入或控制行为。
限制与边界
- CocoConsole 严格只读:不会编辑项目文件、更改配置、恢复流程、批准门禁或调用 CocoPlus 命令。
- 仅读取 .cocoplus/ 工件;只有在显式配置了 SDK 支持的读取器时,才读取 Snowflake 可观测性数据。
- Policy Decision Log 为只读,永远不会清除、批准或编辑运行时策略决策。
- 退出标准包括:
$cocoplus console产生本地 URL;console-state.json 记录运行实例;仪表盘面板为只读;Policy Decision Log 为只读。
关于收费、价格、平台支持范围等具体信息,资料中暂未提供。