[English](README.md) | [简体中文](README.zh-CN.md)
# PaddedCell
OpenClaw 插件:安全密码管理 + 安全执行 + 安全重启
## 功能模块
### 1. pass_mgr - 密码管理二进制 (Go)
使用 AES-256-GCM 加密,每个 agent 基于公私钥进行加/解密。
```bash
# 初始化
pass_mgr admin init [--key-path ]
# 获取密码
pass_mgr get [--username]
# 生成密码 (agent 可用)
pass_mgr generate [--username ]
# 设置密码 (仅人类)
pass_mgr set [--username ]
# 删除密码
pass_mgr unset
# 轮换密码
pass_mgr rotate
```
**安全特性:**
- Agent 无法执行 `set` 操作(通过环境变量检测)
- 未初始化前所有操作报错
- Admin 密码泄露检测(监控 message/tool calling)
### 2. pcexec - 安全执行工具 (TypeScript)
与 OpenClaw 原生 exec 接口一致,自动处理 pass_mgr get 并脱敏输出。
```typescript
import { pcexec } from 'pcexec';
const result = await pcexec('echo $(pass_mgr get mypassword)', {
cwd: '/workspace',
timeout: 30000,
});
// result.stdout 中密码会被替换为 ######
```
### 3. safe-restart - 安全重启模块 (TypeScript)
提供 agent 状态管理和协调重启。
**Agent 状态:**
- `idle` - 空闲
- `busy` - 处理消息中
- `focus` - 专注模式(工作流)
- `freeze` - 冻结(不接受新消息)
- `pre-freeze` - 准备冻结
- `pre-freeze-focus` - 准备冻结(专注模式)
**API:**
- `POST /query-restart` - 查询重启就绪状态
- `POST /restart-result` - 报告重启结果
- `GET /status` - 获取所有状态
**Slash 命令:**
```
/padded-cell-ctrl status
/padded-cell-ctrl enable pass-mgr|safe-restart
/padded-cell-ctrl disable pass-mgr|safe-restart
```
## 项目结构
```
PaddedCell/
├── pass_mgr/ # Go 密码管理二进制
│ ├── src/
│ │ └── main.go
│ └── go.mod
├── pcexec/ # TypeScript 安全执行工具
│ ├── src/
│ │ └── index.ts
│ ├── package.json
│ └── tsconfig.json
├── safe-restart/ # TypeScript 安全重启模块
│ ├── src/
│ │ ├── index.ts
│ │ ├── status-manager.ts
│ │ ├── api.ts
│ │ ├── safe-restart.ts
│ │ └── slash-commands.ts
│ ├── package.json
│ └── tsconfig.json
├── docs/ # 文档
├── PROJECT_PLAN.md # 项目计划
├── AGENT_TASKS.md # 任务清单
├── README.md # 英文版本
└── README.zh-CN.md # 本文档 (简体中文)
```
## 安装
```bash
# 安装
node install.mjs --install
# 卸载
node install.mjs --uninstall
```
## 使用
### pass_mgr
```bash
# 初始化(首次使用前必须执行)
~/.openclaw/bin/pass_mgr admin init
# 设置密码
~/.openclaw/bin/pass_mgr set mykey mypassword
# 获取密码
~/.openclaw/bin/pass_mgr get mykey
```
## 许可证
MIT