Metadata-Version: 2.4
Name: odv
Version: 0.2.2
Summary: Local-first data asset manager — scan, classify, organize, report
Author-email: Shangrila <wutc@oasyce.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/Shangri-la-0428/DataVault
Keywords: data,asset-management,classification,local-first,privacy
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: oasyce
Requires-Dist: oasyce>=2.3.0; extra == "oasyce"
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Dynamic: license-file

# DataVault

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

> English version: [README_EN.md](README_EN.md)

**Oasyce 的默认数据入口。**

DataVault 给你的 AI 提供一套标准化的工作流——扫描、分类、隐私检测、安全注册数据资产。它不是替代 AI 的判断力，而是一套**确定性 SOP**，让每个 Agent 每次都遵循同样的规则。

最重要的定位只有一句：

- `DataVault`：默认的数据入口，适合目录、批量、安全扫描
- `oas register`：显式单文件注册，适合精确控制和调试

## 为什么需要 DataVault？

你的 AI 已经能读文件、分类数据了。但没有 DataVault：
- 每次对话应用的标准不一样
- 隐私检查靠概率
- 没有审计记录
- 用户想不到让 AI 管理数据资产

DataVault 提供**确定性规则**（正则 PII 检测、扩展名分类）加上**标准管线**，AI Agent 自动遵循。

## 安装

```bash
pip install odv              # 独立扫描器
pip install oasyce           # 推荐：同时包含 Oasyce + DataVault
oas bootstrap                # 自更新 + 钱包 + DataVault 就绪 + 托管自动更新
```

## 使用

```bash
datavault scan ~/Documents                  # 扫描目录，SHA-256 哈希
datavault classify                          # 自动检测文件类型
datavault privacy                           # 扫描 PII（身份证、信用卡、API 密钥）
datavault report                            # 查看报告
datavault report --format json              # JSON 格式输出
datavault register ~/Documents --confirm --json  # 只注册 safe 文件
```

### 什么时候优先用 DataVault？

优先场景：

- 你面对的是一个目录，而不是一个明确文件
- 你希望 AI 先检查隐私，再决定能不能注册
- 你希望注册动作有明确报告和人工确认

保留 `oas register` 的场景：

- 你已经知道就是这一个文件
- 你要显式写 `owner / tags / rights_type`
- 你在调试协议动作，而不是做目录级资产治理

### 作为 AI Skill 使用

当 Claude Code、Cursor 或任何 AI 编程助手使用时：

```
用户: "帮我管理 ~/Documents 里的数据资产"

AI（装了 DataVault skill）:
  1. datavault scan ~/Documents     -> 扫描 342 个文件
  2. datavault privacy              -> 标记 12 个包含 PII 的文件
  3. datavault report --format json -> 显示 330 个安全文件
  4. "发现 330 个安全文件，12 个包含敏感信息（信用卡号、API 密钥）。
     要注册安全的那些吗？"
  5. datavault register ~/Documents --confirm --json
     -> 只自动注册 `privacy_risk == safe` 的文件
```

没有 DataVault，AI 每次都会用不同的方式处理这个流程。

## 管线

```
扫描 (本地) -> 分类 (本地) -> 隐私检测 (本地) -> 报告 (本地)
                                                      |
                                                  用户确认
                                                      |
                                                注册 (上链)
```

分割线以上全部在本地完成，免费。注册是一个需要明确确认的操作，发布到 Oasyce 网络。

## 上链的是什么？

只有 **SHA-256 哈希**和**元数据**（名称、标签、权利类型）。永远不上传原始文件内容。文件留在你的机器上。

## 风险等级

| 等级 | 含义 |
|------|------|
| safe | 未检测到 PII |
| low | 仅 IP 地址 |
| medium | 电子邮件地址 |
| high | 电话号码、身份证 |
| critical | 信用卡、API 密钥 |

**铁律：** AI-first 自动注册只允许 `privacy_risk == safe` 的文件上链。
标记为 `low`、`medium`、`high`、`critical` 的文件都会留在本地等待人工审查。

## 生态

```
oasyce-chain  — L1 共识层（Go 应用链）
oasyce CLI    — Python 薄客户端 + Dashboard
DataVault     — AI Agent 数据管理 Skill（本仓库）
```

| 组件 | 定位 |
|------|------|
| [oasyce-chain](https://github.com/Shangri-la-0428/oasyce-chain) | L1 共识和结算 |
| [oasyce](https://github.com/Shangri-la-0428/oasyce-net) | Python 客户端、CLI、Dashboard |
| **DataVault** (本仓库) | 默认数据入口：扫描、隐私检测、报告、注册 |

## 当前进度

- v0.2.1，测试见仓库 CI / 本地回归
- 确定性扫描 + SHA-256 哈希 + 文件分类
- 正则 PII 检测（邮箱、信用卡、API 密钥、身份证）
- SQLite 本地清单
- Oasyce 桥接注册
- AI Agent Skill 模式（CLAUDE.md 内置 SOP）
- `--confirm` 标志防止意外注册

## 许可证

MIT
