BarnsL/Reel-Repo-Hunter

GitHub: BarnsL/Reel-Repo-Hunter

一款将短视频应用演示证据映射到可能对应公开 GitHub 仓库的可解释推理工具,通过启发式线索提取、搜索和加权排名生成可审计报告。

Stars: 0 | Forks: 0

# Reel Repo Hunter Reel Repo Hunter 是一款可解释的推理工具,用于将短视频应用演示(例如 reel 证据)映射到可能的公开 GitHub 仓库。 它通过两个阶段完成此操作: 1. 从用户提供的证据中提取线索。 2. 搜索 GitHub 并使用透明的评分证据对候选仓库进行排名。 该项目旨在提供可复现、可审计的输出,而不是不透明的一次性猜测。 ## 当前范围 该仓库目前实现了一个 API 优先的 MVP 切片。 目前已实现: 1. 案例创建和证据录入。 2. 启发式线索提取。 3. 带有后备查询策略的 GitHub 仓库搜索。 4. 轻量级代码搜索验证。 5. 加权排名模型。 6. Markdown 报告生成。 7. 用于本地测试的最小内置浏览器 UI。 尚未实现: 1. 持久化数据库存储。 2. 基于队列的异步 worker 执行。 3. 原生截图上传 + OCR pipeline。 4. 身份验证、配额和多用户租户。 ## 仓库布局 1. `apps/api` 用途:Fastify API 服务和本地浏览器控制面板。 2. `apps/worker` 用途:用于未来队列执行的 worker 引导占位符。 3. `packages/shared` 用途:共享领域模型和核心逻辑。 内容包括提取、GitHub 检索、评分和报告生成。 4. `docs/architecture.md` 用途:高级架构概述。 5. `docs/api.md` 用途:端点列表和请求/响应参考。 ## 端到端数据流 1. 用户创建一个案例。 2. 用户添加一个或多个证据记录(字幕、文字记录、截图文本等)。 3. API 运行 pipeline。 4. 提取模块将证据转换为带类型的线索。 5. GitHub 模块搜索仓库并尽力执行代码短语检查。 6. 评分模块计算加权特征分数。 7. 报告模块生成可解释的 Markdown 输出。 ## 前置条件 1. Node.js 20+(已测试 Node 24)。 2. npm 10+。 3. 可选:设置 `GITHUB_TOKEN` 以获得更好的速率限制和搜索一致性。 ## 本地设置 1. 安装依赖。 ``` npm install ``` 2. 创建本地环境文件。 ``` cp .env.example .env ``` 3. 可选:在 `.env` 中设置 GitHub token。 ``` GITHUB_TOKEN= ``` 4. 启动 API。 ``` npm run dev --workspace @rrh/api ``` 5. 打开本地 UI。 `http://127.0.0.1:4010/` ## 常用命令 1. 对所有包进行类型检查。 ``` npm run typecheck ``` 2. 构建所有包。 ``` npm run build ``` 3. 运行 lint 占位符。 ``` npm run lint ``` 4. 运行测试占位符。 ``` npm run test ``` ## API 快速参考 Base URL: `http://127.0.0.1:4010` 1. `GET /health` 返回存活状态。 2. `POST /v1/cases` 创建一个案例。 3. `POST /v1/cases/:id/evidence` 追加证据项。 4. `POST /v1/cases/:id/run` 运行提取 + 检索 + 排名 + 报告生成。 5. `GET /v1/cases/:id/candidates` 返回排名后的候选者。 6. `GET /v1/cases/:id/report` 返回生成的 Markdown 报告。 有关完整契约,请参阅 `docs/api.md`。 ## 评分模型摘要 排名模型是对归一化特征组件的加权线性评分。 特征分组: 1. 名称匹配。 2. 描述匹配。 3. 技术栈匹配。 4. 代码证据短语命中。 5. 所有者提示匹配。 6. 时效性。 被归档的仓库将受到明确的惩罚。 最终输出包含每个特征的证据明细,以支持可解释性。 ## 配置 环境变量: 1. `HOST` 默认值:`127.0.0.1`。 2. `PORT` 默认值:`4010`。 3. `GITHUB_TOKEN` 可选,但建议设置以获得更高的 GitHub API 限制。 ## 安全注意事项 1. 此工具仅搜索公开的 GitHub 内容。 2. 结果是基于推断的,在证据稀少时可能会出错。 3. 请勿在证据字段中输入私密凭据或敏感的内部数据。 4. 将 `.env` 保留在本地,不要提交。 ## 故障排除 1. `POST /run` 返回 pipeline 失败。 原因:GitHub API 限流或搜索被拒绝。 操作:设置 `GITHUB_TOKEN`,使用更丰富的证据重试。 2. 候选列表为空。 原因:线索微弱或措辞过于局限。 操作:添加文字记录文本、明确的 UI 字符串或框架提示。 3. UI 加载成功但操作失败。 原因:API 未在预期的 host/port 上运行。 操作:验证 `HOST`、`PORT` 和 `GET /health`。 ## 开发说明 1. API 目前使用内存存储映射。 2. worker 包特意进行了基础搭建,为未来集成队列做准备。 3. shared 包包含领域逻辑,以便 API 和 worker 可以重用完全相同的行为。 ## 计划的后续步骤 1. 为案例/结果添加持久化存储。 2. 添加带重试功能的异步队列执行。 3. 添加 OCR 和文字记录摄取适配器。 4. 添加评估测试用例和可重复的基准评分。
标签:Fastify, GitHub搜索, MITM代理, 代码溯源, 信息推理, 加权排名, 启发式提取, 开源情报分析, 自动化攻击