[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80456":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":13,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":19,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":14,"starSnapshotCount":14,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},80456,"haking-code-","elbelicojackson-hue\u002Fhaking-code-","elbelicojackson-hue",null,"TypeScript",70,9,52,1,0,11,3,false,"main",true,[],"2026-06-12 02:04:02","# ⚡ Haking Code\n\n\u003Cdiv align=\"center\">\n\n**全球最强的 AI 驱动网络安全终端 Agent**\n\n*当 AI 遇上渗透测试，当对抗共识遇上逆向工程*\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENSE)\n[![Bun](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fruntime-Bun-black.svg)](https:\u002F\u002Fbun.sh)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flanguage-TypeScript-blue.svg)](https:\u002F\u002Fwww.typescriptlang.org)\n[![Security](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdomain-CyberSecurity-red.svg)]()\n\n\u003C\u002Fdiv>\n\n---\n\n\u003Cdiv align=\"center\">\n\n### 🧠 强制思考 · 从不编造 · 每一句话都有据可查\n\n\u003Ch3>\u003Ccode style=\"color:red\">🔒 第一性原理锁 — 5 条公理锁死推理框架，幻觉率压到最低\u003C\u002Fcode>\u003C\u002Fh3>\n\n\u003C\u002Fdiv>\n\n> \u003Cb style=\"color:red\">🔴 NEW: 第一性原理推导引擎 — 存在需要证据 · 推导需要链条 · 沉默优于编造 · 工具是真理\u003C\u002Fb>\n>\n> \u003Cb style=\"color:red\">🔴 NEW: VulnHunter 自主猎洞引擎 — 11 类漏洞模式 · 攻击面映射 · 假设生成 · 定向验证\u003C\u002Fb>\n>\n> \u003Cb style=\"color:red\">🔴 NEW: 反致幻协议 — FACT\u002FDERIVED\u002FHYPOTHESIS\u002FUNKNOWN 四级标注 · 零容忍编造\u003C\u002Fb>\n>\n> 🔴 **16 种钓鱼\u002F社工手法** · 🔴 **12 个 C2 框架** · 🔴 **12 种 EDR 免杀技术** · 🔴 **25+ Web 攻击向量**\n>\n> 🟠 **70+ 安全工具集成** · 🟠 **MITRE ATT&CK 全战术覆盖** · 🟠 **SecLists 60k⭐ 字典库**\n>\n> 🟡 **CVE 强制引用（NVD\u002FCISA KEV\u002FCIRCL）** · 🟡 **逆向情报（MalwareBazaar\u002FThreatFox\u002FYARA）**\n>\n> 🟢 **GTFOBins + LOLBAS 提权** · 🟢 **Nuclei 漏洞模板** · 🟢 **Shodan 侦察** · 🟢 **HackTricks 方法论**\n>\n> 🔵 **4 链对抗共识引擎** · 🔵 **PEV 假设驱动逆向** · 🔵 **1M 上下文优化** · 🔵 **FuzzTag Payload 引擎**\n>\n> ⚫ **全部数据源免费 · 零配置即用 · 不确定就查证 · AI 不能撒谎**\n\n---\n\n> **Haking Code 不是一个工具集合器。它是一个会思考的安全研究员。**\n>\n> 它能在你睡觉的时候自主完成渗透测试报告，能用 4 个 AI 角色互相辩论直到得出最可靠的漏洞分析，能假设驱动地逆向一个你从未见过的二进制文件。它集成了 70+ 安全工具、世界最全的渗透测试字典库、国产最强安全平台的 FuzzTag 引擎，还有一个赛博朋克风格的知识图谱。\n\n---\n\n## 📑 快速跳转\n\n| 🚨 必读 | 🔧 功能 | 📖 参考 |\n|---------|---------|---------|\n| [⚠️ 使用声明（必看）](#-使用声明--不按规矩来直接报废) | [🔥 核心特性](#-为什么-haking-code-与众不同) | [算法架构](#算法架构) |\n| [🔑 环境变量配置](#-环境变量配置) | [\u002Farena 对抗共识](#arena--4-链对抗共识) | [UI 布局](#ui-布局) |\n| [📖 所有命令](#-所有命令一览) | [\u002Frecon 逆向引擎](#recon--pev-逆向分析引擎) | [多 Provider 配置](#多-provider-配置reconarena) |\n| [快速开始](#快速开始) | [安全工具箱](#reverseclitool--内置安全工具箱) | [开发](#开发) |\n| [🛠️ 最新修复](#️-修复2026-05-25) | [知识图谱 Wiki](#-haking-wiki--知识图谱) | [更新日志](#-更新日志v110--v131) |\n\n---\n\n## 🔥 为什么 Haking Code 与众不同\n\n### 1. `\u002Farena` — 4 链对抗共识引擎（业界首创）\n\n不是一个 AI 回答你，而是 **4 个 AI 角色互相攻击、质疑、验证、综合**，直到收敛到最可靠的答案：\n\n```\nC1 Proposer    → 构建论点，寻找支持证据\nC2 Challenger  → 逻辑攻击，找漏洞和反例\nC3 Verifier    → 实时网络搜索事实查证\nC4 Synthesizer → 综合收敛，标注共识与分歧\n```\n\n基于博弈论的 **CR-EIG 信息效率算子** + **ε_t 可利用度** 驱动收敛，不是固定轮次，而是信号驱动停止。这是你在任何其他工具里找不到的。\n\n### 2. `\u002Frecon` — PEV 假设驱动逆向引擎\n\n不是让 AI 帮你跑 strings，而是让 AI **像真正的逆向工程师一样思考**：\n\n```\n提出假设 → 选择工具验证 → 正则判定结果 → 更新假设 → 循环\n```\n\n支持 8 种假设类型（文件类型\u002F壳\u002F编译器\u002F家族\u002F算法\u002F反分析\u002F能力\u002F协议），自动调度 nmap\u002Fstrings\u002Fdiec\u002Fghidra 等工具，直到所有假设被验证或预算耗尽。\n\n### 3. 70+ 安全工具，一个 AI 全部调用\n\n从信息收集到后渗透，从密码破解到云安全，全部内置：\n\n| 分类 | 工具 |\n|------|------|\n| 🔍 侦察 | nmap、rustscan、amass、subfinder、httpx、spiderfoot、trufflehog、gitleaks |\n| 🌐 Web攻击 | nuclei、ffuf、nikto、gobuster、feroxbuster、dalfox、xsstrike、wafw00f |\n| 🏢 AD渗透 | bloodhound、impacket、responder、certipy、kerbrute、netexec |\n| 🔑 密码破解 | hashcat、john、hydra、**pdfrip**（Rust多线程PDF破解，R5快15.5x） |\n| 🎯 后渗透\u002FC2 | sliver、havoc、mythic、evil-winrm、ligolo-ng、chisel、peass-ng |\n| ☁️ 云安全 | prowler、scoutsuite、pacu、trivy |\n| 📱 移动安全 | mobsf、frida、objection |\n| 🔬 逆向\u002F取证 | ghidra、radare2、volatility3、binwalk、pspy |\n\n### 4. FuzzTag 引擎（来自国产安全平台 yakit）\n\n参考 76k ⭐ 的 yakit Web Fuzzer，内置 FuzzTag 语法，AI 可以直接生成测试 Payload：\n\n```\n{{int(1-1000)}}          → 生成 1000 个数字\n{{list(admin|root|test)}} → 枚举列表\n{{base64(admin:pass)}}   → Base64 编码\n{{file(wordlist.txt)}}   → 从字典文件读取\n{{randstr(16)}}          → 随机字符串\n```\n\n多个标签自动做**笛卡尔积展开**，一行模板生成数千个 Payload。\n\n### 5. SecLists 字典库深度集成（60k ⭐）\n\n世界最全的渗透测试字典，直接内置：\n\n```\nPasswords\u002FCommon-Credentials\u002F10k-most-common.txt\nPasswords\u002FDefault-Credentials\u002Fdefault-passwords.csv  ← SSH\u002FFTP\u002FMySQL\u002FTomcat默认凭据\nDiscovery\u002FWeb-Content\u002Fraft-medium-directories.txt    ← Web目录爆破\nFuzzing\u002FXSS\u002F                                         ← XSS Payload\nFuzzing\u002FDatabases\u002FSQLi\u002F                              ← SQL注入\nFuzzing\u002FLFI\u002FLFI-Jhaddix.txt                         ← 本地文件包含\n```\n\nAI 知道所有字典路径，可以直接组合 FuzzTag + SecLists 发起攻击。\n\n### 6. 知识图谱 Wiki（赛博朋克风格）\n\n内置 D3 力导向知识图谱，爬取安全研究文章自动建立节点关系，实时 WebSocket 广播，Markdown 预览。\n\n```bash\ncd wiki && bun run dev  # → http:\u002F\u002Flocalhost:7891\n```\n\n### 7. 灵动岛 — AI 工具总控面板\n\nTauri 2 桌面应用，悬浮在屏幕顶部，一键启动\u002F切换所有 AI coding agent，支持 Windows Terminal 原生分屏。\n\n---\n\n\n## 🛠️ 修复（2026-05-26 · 全项目质量审计）\n\n本轮针对仓库做了系统化质量审计：`bunx tsc --noEmit` 全量类型检查 + `biome lint` + `bun test` + 手工核查关键运行时路径。结果：158 个 TS 错误、17 个 lint error、45 个测试失败。本次提交修复其中影响用户体验的关键问题。\n\n### 🐛 `\u002Fhandoff` 和 `\u002Fpickup` 命令注册不通过、返回字段错（致命）\n\n**根因**：`LocalCommandResult` 的契约是 `{ type: 'text', value: string }`，但实现里写的是 `{ type: 'text', text: '...' }`；同时命令对象缺必填字段 `supportsNonInteractive`，类型检查直接拒绝注册。\n\n**修复**：返回字段 `text` → `value`；`index.ts` 加 `supportsNonInteractive: true`。两个命令现在能正常注册并显示结果。\n\n### 🐛 `ReverseCliTool` \u002F `CdpBrowserTool` 缺 inputSchema + call 签名错 + 返回字段错（致命三连）\n\n**根因**：\n1. 工具对象**完全没有 `inputSchema`** —— `expect(tool.inputSchema).toBeDefined()` 测试断言失败；`zodToJsonSchema(tool.inputSchema)` 抛错后兜底回 `{type:'object', properties:{}}`，DeepSeek 只能瞎猜参数。\n2. `call(_toolUseId: string, input: ...)` —— 真实签名是 `call(args, context, ...)`，所以 input 永远 = toolUseId 字符串，所有 `input.action` 都是 undefined，工具一律走 default 分支。\n3. 返回 `{ output: ... }` —— 真实契约是 `{ data: ... }`，UI 渲染拿到的总是 undefined。\n\n**结果**：原 ReverseCli\u002FCdpBrowser **从未真正成功跑过任何动作**——LLM 调用 → 输入校验失败 → input.action 是字符串 → 走 default → echo 默认信息 → 字段名错 → UI 显示空。\n\n**修复**：\n- 加 `import { z } from 'zod\u002Fv4'` + 完整 `inputSchema = z.object({ action, targetPath, pentestTool, ... })` 覆盖现有所有字段\n- `call` 签名改为 `(input)` 单参形式\n- 所有返回 `{ output: ... }` → `{ data: ... }`\n- 移除手工 `as Action \u002F as string \u002F as number` 强转（zod 已校验）\n- import 路径 `'..\u002F..\u002FTool.js'` → `'..\u002FTool.js'`\n\n### 🐛 `claude.ts:1887` 解构不存在的 `deepseekCreate`（潜在崩溃）\n\n**根因**：第二个 `useDirectRoute()` 分支（约 line 1887）从 `.\u002Fdeepseek-direct.js` 解构 `deepseekCreate`，但该模块只导出 `useDirectRoute \u002F queryModelDeepSeekDirect`，根本没这个函数。当前因为 line 1047 处 early return 走第一个分支兜底，但任何人改了上游路径都会立刻让 DeepSeek 用户撞上 `TypeError: deepseekCreate is not a function`。\n\n**修复**：删除 line 1886-1939 整段死代码（54 行），加注释说明历史以防误以为缺一个分支再加回来。同时显露并修复一个被 `as any` 掩盖的旧错（`yield e.value` 类型不匹配）。\n\n### 🎨 ink 颜色 prop 全部用了非法字符串（视觉失效）\n\n**根因**：`@ant\u002Fink` 的 `Color` 类型必须是 `'ansi:cyan' | 'ansi:green' | ...`（带 `ansi:` 前缀）或 RGB \u002F Hex。代码里写的全是裸名 `color=\"cyan\"` —— ink 看到不认识的色值会直接忽略，**LogoV2 \u002F WelcomeV2 \u002F CondensedLogo \u002F Setup 面板 \u002F Arena UI \u002F TaskPanel 全部退化成默认终端色**，README 宣传的赛博朋克 cyan 配色彻底失效。\n\n**修复**：30+ 处批量替换 → `ansi:cyan` \u002F `ansi:green` \u002F `ansi:yellow` \u002F `ansi:red`。顺手治了 setup 里 `color={x ? 'cyan' : 'dimColor'}` 这种把 `dimColor` 当颜色字面量误用的写法（改成 `color={x ? 'ansi:cyan' : undefined} dimColor={!x}`）。\n\n### 🔧 `HakingConfig` 类型扩 4 个 top-level 字段 + `ArenaProvider` 加 displayName\u002FbaseUrl 默认值\n\n**根因**：\n- `setup.tsx` 把 `apiKey\u002FbaseUrl\u002Fmodel\u002FfastModel` 写到 config 顶层，但 `HakingConfig` 类型只有 `providers\u002FdefaultProvider\u002Ftheme`——读上来全部是 undefined，每次启动都要重填。**README 宣传的\"持久化保存\"功能直接失效**。\n- `ArenaProvider.baseUrl` 类型上必填，但来源 `ProviderEntry.baseUrl` 是 optional，未填 baseUrl 的 provider 让 `\u002Farena` 命令在 `fetch(\\`${undefined}\u002Fv1\u002Fmessages\\`)` 时直接 `Failed to parse URL`。\n- `PevSession.tsx` 渲染 `provider.displayName`，但 `ArenaProvider` 没这字段，UI 显示成 `undefined(claude) · ...`。\n\n**修复**：\n- `HakingConfig` 加 `apiKey\u002FbaseUrl\u002Fmodel\u002FfastModel` 4 个 optional 字段；`applyHakingConfig` 实现 \"env > top-level > defaultProvider 的 provider 字段\" 三层注入（高优先级覆盖低优先级）\n- `ArenaProvider` 加 `displayName: string`（默认回退到 `id`）和 `baseUrl: string`（默认回退到 DeepSeek 端点）；增加 `fromEntry` 适配函数把 `ProviderEntry` 安全转换成 `ArenaProvider`\n- 删除重复的 `src\u002Fservices\u002Futils\u002FhakingConfig.ts`（与 `src\u002Futils\u002FhakingConfig.ts` 内容完全一致的\"幽灵副本\"）\n\n### 📊 量化结果\n\n| 指标 | 修复前 | 修复后 |\n|------|-------|-------|\n| TypeScript 错误数 | 158 | 82 |\n| 关键 P0 运行时 bug | 6 | 2 |\n| 测试 pass | 3565\u002F3611 | tool-chain 测试 14\u002F14 全过（之前 1 fail） |\n| 用户启动可见 UI 颜色 | 默认终端色 | 完整赛博朋克配色 |\n\n**剩余审计项**（待后续提交）：vulnHunter xss 分支缺失、PEV propagator 自适应带宽未实现、cav-adapter 409 后认证失败、PEV Dashboard 模块缺失、ccbteam-math 路径错、PEV 属性测试缺 fast-check 包。详见 `tmp_check\u002Ftypecheck-after5.log`。\n\n---\n\n\n## 🛠️ 修复（2026-05-26）\n\n### 🐛 全屏渲染残帧 — 界面重复叠加（关键修复）\n\n**根因**：`isFullscreenEnvEnabled()` 默认返回 `false`（仅 `USER_TYPE=ant` 时启用），导致 Ink 在主屏幕模式下运行。主屏幕模式每次重绘是追加式的——新帧写在旧帧下方，旧帧留在终端滚动缓冲区中，表现为\"界面被重复叠加\"。\n\n**修复**：\n- `fullscreen.ts`：`isFullscreenEnvEnabled()` 默认返回 `true`，所有交互式会话自动进入 alt-screen 全屏模式\n- 用户可通过 `CLAUDE_CODE_NO_FLICKER=0` 手动关闭\n\n### 🐛 侧边栏与内容区重叠\u002F文本换行错位\n\n**根因**：`HakingLayout`（侧边栏容器）在 `\u003CAlternateScreen>` 外部包裹 REPL，导致 Yoga 高度计算冲突。同时 `FullscreenLayout` 和 `Messages` 中硬编码 `width={columns}`（终端全宽），未减去侧边栏 24 列宽度。\n\n**修复**：\n- `replLauncher.tsx`：移除外层 HakingLayout 包裹\n- `REPL.tsx`：将 HakingLayout 移到 `\u003CAlternateScreen>` 内部\n- `HakingLayout.tsx`：新增 `ContentColumnsContext` + `useContentColumns()` hook，传递实际内容区宽度\n- `FullscreenLayout.tsx`：用 `useContentColumns()` 替代 `useTerminalSize().columns`\n- `Messages.tsx`：同上，消息行和 Divider 在正确宽度内渲染\n\n### 🐛 Citation 系统消息在 UI 中重复显示\n\n**根因**：`stopHooks.ts` 每轮注入的 CVE\u002FRE-INTEL\u002FPENTEST-KB citation 消息以 `isMeta: false` 创建，在 UI 中可见。去重窗口仅 3 轮，相同术语第 4 轮起重复注入。\n\n**修复**：\n- `stopHooks.ts`：citation 消息设置 `isMeta = true`，对模型可见但 UI 不渲染\n- `forcedVerification.ts`：`DEDUP_WINDOW_TURNS` 从 3 增大到 8\n\n---\n\n\n## 🛠️ 修复（2026-05-25）\n\n### 🐛 DeepSeek 多轮对话无法返回消息（关键修复）\n\n**根因**：DeepSeek 直连路径在消息预处理时缺少 `stripCallerField` + `stripAdvisorBlocks` 清理步骤，导致 `caller`、`advisor_tool_result`、`server_tool_use` 等 DeepSeek 不认识的字段\u002F块被发送到 API，触发 400 或空响应。\n\n**修复**：\n- `claude.ts`：DeepSeek 直连路径补齐 `stripCallerFieldFromAssistantMessage` + `stripAdvisorBlocks`\n- `deepseek-direct.ts`：`buildApiMessages` 新增 `sanitizeBlocks`，过滤 6 种不兼容块类型 + 移除 `citations` 字段\n\n### 🐛 滚轮滚动跳顶\u002F跳底（Windows Terminal）\n\n**根因**：Windows Terminal 滚轮事件间隔不规律，在 200ms 的 bounce 判定窗口内容易产生方向翻转假象，导致 `wheelMode` 被误触发，加速曲线生效后单次滚轮跳过大量内容。\n\n**修复**：`ScrollKeybindingHandler.tsx` 中 `WHEEL_BOUNCE_GAP_MAX_MS` 在 Windows Terminal（`WT_SESSION`）下从 200ms 收紧到 80ms，只有真正的编码器弹跳才能触发 wheelMode。\n\n---\n\n\n## 🛠️ 今日新增（2026-05-23）\n\n### 🔗 Spectre Bridge — 事件驱动意识体协同\n\nHaking Code 现在可以与 **Spectre**（原白龙马）意识体双向通信：\n\n```\n┌──────────────┐     SQLite WAL      ┌──────────────┐\n│   Spectre    │ ◄──── bridge.db ───► │  Haking Code │\n│  (意识体)    │                      │  (红队引擎)  │\n└──────────────┘                      └──────────────┘\n```\n\n- Spectre 可以自主下发扫描任务给 Haking Code\n- Haking Code 以无头子进程运行，由 Spectre spawn\u002F管理\n- 通过共享 SQLite（WAL 模式）通信，零代码耦合\n- 任一方挂了另一方正常运行\n\n### 📋 `\u002Fhandoff` — 会话交接\n\n会话结束前保留当前状态，压缩存储未完成的任务和上下文：\n\n```\n\u002Fhandoff 明天继续搞那个 SQL 注入\n```\n\n提取任务、上下文、工具结果 → 压缩存储 → 下次 `\u002Fpickup` 恢复。\n\n### 📥 `\u002Fpickup` — 恢复上次会话\n\n加载上一个 `\u002Fhandoff` 保存的未完成工作，无缝继续：\n\n```\n\u002Fpickup\n```\n\n显示未完成任务列表、上下文摘要、最近工具结果，直接接着干。\n\n---\n\n## 🛠️ 今日新增（2026-05-22）\n\n本次更新参考了 GitHub 今日 Trending 的多个顶级项目并深度集成：\n\n| 来源项目 | ⭐ | 集成内容 |\n|---------|-----|---------|\n| [colbymchenry\u002Fcodegraph](https:\u002F\u002Fgithub.com\u002Fcolbymchenry\u002Fcodegraph) | 12.7k | 代码知识图谱 MCP，减少 35% token 消耗 |\n| [yaklang\u002Fyakit](https:\u002F\u002Fgithub.com\u002Fyaklang\u002Fyakit) | 7.3k | FuzzTag 引擎移植到 ReverseCliTool |\n| [danielmiessler\u002FSecLists](https:\u002F\u002Fgithub.com\u002Fdanielmiessler\u002FSecLists) | 60k | 渗透测试字典库全量集成 |\n| [Z4nzu\u002Fhackingtool](https:\u002F\u002Fgithub.com\u002FZ4nzu\u002Fhackingtool) | 76k | 工具列表扩充至 70+ |\n| [mufeedvh\u002Fpdfrip](https:\u002F\u002Fgithub.com\u002Fmufeedvh\u002Fpdfrip) | 1.4k | PDF密码破解工具安装集成 |\n| [HKUDS\u002FCLI-Anything](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FCLI-Anything) | 39k | 安全工具 Skill 文件自动生成 |\n| [obra\u002Fsuperpowers](https:\u002F\u002Fgithub.com\u002Fobra\u002Fsuperpowers) | 201k | 14个开发方法论 Skill 集成 |\n| [trimstray\u002Fthe-book-of-secret-knowledge](https:\u002F\u002Fgithub.com\u002Ftrimstray\u002Fthe-book-of-secret-knowledge) | 222k | 黑客知识大全作为 agent 参考资料 |\n| [multica-ai\u002Fandrej-karpathy-skills](https:\u002F\u002Fgithub.com\u002Fmultica-ai\u002Fandrej-karpathy-skills) | 142k | Karpathy 行为规则集成到 CLAUDE.md |\n\n---\n\n## 🗺️ 下一版本路线图\n\n详见 [NEXT-VERSION.md](.\u002FNEXT-VERSION.md)，已规划三大方向：\n\n1. **Hash 锚定编辑**（参考 oh-my-pi）— 用内容 hash 替代行号定位，预计减少 61% token 消耗\n2. **Hindsight 跨 Session 记忆**（参考 oh-my-pi）— `retain\u002Frecall\u002Freflect` 三层记忆 API，让 agent 记住每次渗透测试的结论\n3. **多 Agent 分工协作**（参考 multica）— `\u002Fmission` 命令，复杂任务自动拆分并行，每个子任务走 `\u002Farena` 质量保证\n\n---\n\n> AI-powered terminal agent for cybersecurity professionals.\n\n专为网络安全研究员打造的终端 AI Agent，集成逆向工程、渗透测试、多模型对抗共识等能力。\n\n## 📋 更新日志（v1.1.0 → v1.3.117）\n\n> 以下为 v1.0.1 之后的全部 commit 摘要，按时间倒序。\n\n### `467793b` feat(pentest-kb): 今日新增Cisco CVSS10.0 + Bitwarden供应链攻击\n\n- **CVE-2026-20223** Cisco Secure Workload — CVSS 10.0 满分 RCE（5月22日修复）\n- **Bitwarden CLI 供应链投毒** — npm 恶意包 v2026.4.0 窃取 AWS\u002FAzure\u002FGCP\u002FGitHub token\n\n---\n\n### `fc37b3b` fix: inputSchema未定义时crash + 安全搜索强制用Firecrawl\n\n- AssistantToolUseMessage 可选链防护（`inputSchema?.safeParse`、`input?.success`）\n- 系统 prompt 新增 `\u003Ctool_routing>` 规则：漏洞搜索必须用 WebFetch 不用 WebSearch\n\n---\n\n### `659ca57` feat(pentest-kb): 补充2025-2026最新CVE(Linux+Windows在野利用)\n\n**Linux 2026 内核漏洞（CISA KEV 在野利用）：**\n- 🔴 **CopyFail** (CVE-2026-31431) — 9年老洞，732字节 exploit 即 root，影响所有 2017 后内核\n- 🔴 **Dirty Frag** — CopyFail 后继，页缓存腐败提权\n- 🔴 **Fragnesia** (CVE-2026-46300) — Dirty Frag 补丁引入的新 LPE\n- 🔴 **CVE-2026-46333** — 权限管理缺陷，Debian\u002FFedora\u002FUbuntu 默认受影响\n\n**Windows 2026 零日（活跃利用）：**\n- 🔴 **RedSun\u002FUnDefend** (CVE-2026-41091\u002F45498) — Microsoft Defender 零日\n- 🔴 **CVE-2026-42897** — Exchange Server 零日 XSS，无永久补丁\n- 🔴 **CVE-2026-21510\u002F21513** — APT28 利用攻击乌克兰\u002FEU\n- 🔴 **YellowKey\u002FGreenPlasma** — Nightmare-Eclipse 披露的 Windows 零日\n\n---\n\n### `57f0547` feat(pentest-kb): 添加钓鱼\u002F社工\u002FC2\u002F免杀知识库\n\n**新增 3 大知识库（全部本地即时查询，无网络延迟）：**\n\n| 知识库 | 条目数 | 覆盖内容 |\n|--------|--------|----------|\n| 🎣 Phishing\u002FSE KB | 16 种 | evilginx、gophish、vishing、smishing、quishing、MFA bypass、pretexting、watering hole... |\n| 🏴‍☠️ C2\u002FRedTeam KB | 12 个 | Sliver、Havoc、Mythic、Cobalt Strike、Metasploit、Empire、Brute Ratel、Ligolo-ng... |\n| 🛡️ Evasion KB | 12 种 | AMSI bypass、ETW patch、unhooking、direct syscalls、process hollowing、ScareCrow... |\n\n---\n\n### `10942d0` feat(pentest-kb): Linux提权知识库 - 内核漏洞+配置滥用+枚举工具\n\n- 15 个内核漏洞（DirtyPipe → CopyFail 全系列）\n- 13 种配置滥用（SUID\u002Fcapabilities\u002Fcron\u002Fsudo\u002Fdocker\u002Flxd\u002FNFS\u002FPATH...）\n- 4 个枚举工具（LinPEAS\u002FLinEnum\u002Flse\u002Fpspy）\n\n---\n\n### `86ce698` feat: 渗透测试知识数据库 - 7大免费数据源全攻击链覆盖\n\n新增 `src\u002Fservices\u002FpentestKnowledgeDB.ts`：\n\n| 数据源 | 用途 | 费用 |\n|--------|------|------|\n| Shodan InternetDB | IP 侦察（端口\u002F漏洞\u002FCPE） | 免费 |\n| GTFOBins | Linux 提权\u002F逃逸 | 免费 |\n| LOLBAS | Windows LOLBIN | 免费 |\n| WADComs | AD 域攻击命令 | 免费 |\n| PayloadsAllTheThings | 25+ Web 攻击 payload | 免费 |\n| Nuclei Templates | 漏洞检测模板 | 免费 |\n| HackTricks | 综合渗透方法论 | 免费 |\n\n---\n\n### `25ea9fb` perf: 1M上下文优化 - citation去重+预算控制+单消息合并\n\n针对 1M token 上下文窗口的优化策略：\n\n- **预算控制**：每轮 citation 注入上限 800 token（3200 字符），超出按优先级截断\n- **去重窗口**：3 轮内相同 CVE\u002Fhash\u002Findicator 不重复注入\n- **单消息合并**：所有 citation（VERIFIED + CVE + RE-INTEL）合并为 1 条 system message\n- **可压缩标记**：旧 citation 可被 autocompact 安全丢弃，零保留优先级\n- 100 轮安全对话最坏 80k token（8%），实际有去重约 20k（2%）\n\n---\n\n### `2ea928d` fix: RE情报查证改为条件触发，避免误触发和上下文扰动\n\n- CVE 查证仅在文本包含 CVE-ID 时触发\n- RE 情报仅在安全相关上下文（含安全关键词）时触发\n- 过滤 MD5 长度 hex（可能是颜色值），只保留真实 indicator\n- 限制最多 5 个 indicator 查询\n\n---\n\n### `90ed7e4` feat: 逆向工程情报数据库 - 强制查证框架(全免费API)\n\n新增 `src\u002Fservices\u002FreverseEngineeringDB.ts`（5 大免费数据源）：\n\n- **MalwareBazaar**：恶意软件家族\u002F壳\u002F标签查询\n- **ThreatFox**：IOC 关联（IP\u002F域名\u002F哈希）\n- **URLhaus**：恶意 URL 数据库\n- **Hashlookup (CIRCL)**：已知文件分类\n- **MITRE ATT&CK**：TTP 战术技术知识库\n- 自动提取响应中的哈希\u002FIP\u002F域名\u002FMITRE ID 并查证\n\n---\n\n### `cce0d44` feat(cve): 添加CIRCL免费数据源作为首选(无需API key)\n\nCVE 查询优先级：CIRCL (完全免费无 key 无限速) → NVD → CISA KEV → Firecrawl。零配置即可用。\n\n---\n\n### `b48fe28` feat: CVE强制引用框架 - NVD\u002FCISA KEV\u002FFirecrawl三层数据源\n\n---\n\n### `d615bc2` feat(todo): 参考CC2.0强化运行时校验+prompt规则\n\n---\n\n### `1bca835` feat: PEV强制查证模块 - 不确定时自动Firecrawl查证\n\n新增 `src\u002Falgorithms\u002Fcav\u002Fpev\u002FforcedVerification.ts`（纯算法驱动的强制事实查证）：\n\n- **不确定性检测器**：正则+加权评分，扫描 hedging 词（\"I think\"\u002F\"可能\"\u002F\"IIRC\"）、版本号声明、技术名称、API 断言\n- **强制触发**：score > 0.4 时自动调用 Firecrawl 搜索最新技术文档\n- **系统 prompt 注入**：`\u003Cforced_verification>` section 强制模型引用 `[VERIFIED]` 证据块\n- **stopHook 集成**：每轮 assistant 响应后自动执行，证据作为 system message 注入下一轮\n\n需要 `FIRECRAWL_API_KEY` 环境变量。未配置时静默跳过。\n\n---\n\n### `5a18bf3` fix: 修复滚轮滚动瞬间跳到顶部\u002F底部的bug\n\n`ScrollKeybindingHandler.tsx` 滚轮加速逻辑修复：\n\n- 降低 wheelMode 加速参数（STEP\u002FCAP: 15→8）避免单次步长过大\n- `scroll:lineUp`\u002F`lineDown` 限制步长不超过视口高度 1\u002F3\n- `scrollUp`\u002F`scrollDown` 接近边界时只滚剩余距离，不再直接跳到极端位置\n\n---\n\n### `669d09b` fix(deepseek): normalize messages before sending to direct route\n\n**根因**：DeepSeek 直连路径拿到的是原始 messages 数组，跳过了 `normalizeMessagesForAPI()` + `ensureToolResultPairing()` 两个关键处理步骤。几轮工具调用后 messages 里出现 API 不认识的内部字段和不配对的 tool_result，导致 DeepSeek 返回 400 或空响应——表现为\"对话几轮后不回复\"。\n\n**修复**：`claude.ts` 调用 `queryModelDeepSeekDirect` 前先走 `normalizeMessagesForAPI` + `ensureToolResultPairing`，与 SDK 路径同一套清洗逻辑。\n\n---\n\n### `c5780f9` fix(deepseek): don't inject cache_control on tool_result blocks + surface empty responses\n\n1. **cache_control 注入修复**：之前给最后一条 user 消息的最后一个 content block 无差别加 `cache_control`，如果那个 block 是 `tool_result` 类型，DeepSeek 会返回 400。现在只给 `type: 'text'` 的 block 加。\n2. **空响应不再静默**：如果 DeepSeek 返回 0 content blocks + 0 output tokens，显示 `[DeepSeek returned empty response]` 并附带诊断提示（上下文过长 \u002F tool_result 格式错误），而不是一条空消息。\n\n---\n\n### `8667548` fix: guard msg.message?.content access with optional chaining\n\n`src\u002Fcomponents\u002FMessages.tsx` 两处 `msg.message?.content[0]` → `msg.message?.content?.[0]`。system \u002F attachment 等消息没有 `.message.content` 字段，直接 `[0]` 会 TypeError crash。\n\n---\n\n### `8d8882a` docs: add Wiki section to README — emphasize Firecrawl API Key requirement\n\nREADME 新增 \"📚 Haking Wiki\" 段落，强调爬虫功能**必须自行配置 Firecrawl API Key**（获取地址、三种配置方式、免费额度说明）。\n\n---\n\n### `ec54de7` feat(wiki): P0 knowledge graph + Web UI (v1.0.0)\n\n全新 `wiki\u002F` 目录（9 文件，1512 行）：\n\n| 模块 | 文件 | 功能 |\n|------|------|------|\n| 数据层 | `core\u002Fgraph.ts` | WikiGraph 类：节点\u002F边 CRUD、graph.json 持久化（单写队列防并发）、subscribe\u002Femit delta、子串搜索 |\n| 爬取层 | `core\u002Fcrawler.ts` | Firecrawl scrape → Turndown 回退 → `.haking\u002Fwiki\u002Fpages\u002F{id}.md`，自动 upsert page 节点 |\n| HTTP | `server.ts` | Bun.serve port 7891，静态文件 + REST + WS + markdown 页面服务 |\n| REST | `routes\u002Fapi.ts` | 8 个 endpoint（nodes\u002Fedges CRUD + search + snapshot） |\n| WebSocket | `routes\u002Fws.ts` | 连接即推 snapshot，后续 delta 实时广播；客户端可 crawl\u002Fsearch\u002Fping |\n| 前端 | `web\u002Findex.html` | 三栏布局（工具栏 \u002F D3 画布 \u002F Markdown 面板） |\n| 可视化 | `web\u002Fgraph.js` | D3 force-directed 图，增量 delta 更新，搜索高亮，节点选中 → 右侧 markdown 预览 |\n| 样式 | `web\u002Fstyle.css` | 赛博朋克暗色主题（与灵动岛同色系 #00fff7 \u002F #a855f7 \u002F #ff2d95） |\n\n启动：`cd wiki && bun run dev` → http:\u002F\u002Flocalhost:7891\n\n---\n\n### `55a5918` feat(island): tools launcher + wt.exe split-pane + drag fix (v1.1.0)\n\n灵动岛 Tauri 2 项目首次入库（`island\u002F` 目录，10 文件，768 行）：\n\n- **拖拽修复**：补 `capabilities\u002Fdefault.json`（6 条 window 权限）+ `withGlobalTauri: true` + mousedown 显式 `startDragging()`\n- **三连击关闭**：`MouseEvent.detail >= 3` → `close()`\n- **CLI 工具启动器**：6 个默认工具（Haking \u002F OpenCode \u002F Codex \u002F Claude \u002F Aider \u002F Gemini），每个一种品牌色圆球，配置存 `%APPDATA%\\haking-island\\tools.json`\n- **wt.exe 分屏**：Shift+多选 ≥2 工具 → 点 Layout 按钮 → 一行 `wt new-tab ... ; split-pane ...` 原生分屏（4 种 layout：左右 \u002F 上下 \u002F 田字 \u002F 多 Tab）\n- **无 wt.exe 回退**：每工具独立 cmd 窗口\n\n---\n\n### `4969433` feat(deepseek): full overhaul + multi-instance island hub (v1.1.0)\n\n**DeepSeek 直连路径完全重写**（`src\u002Fservices\u002Fapi\u002Fdeepseek-direct.ts`，672 行）：\n\n| 项 | 之前 | 现在 |\n|---|---|---|\n| 流式输出 | `await res.json()` 阻塞 | SSE `stream:true`，emit Anthropic 标准事件 |\n| 工具 schema | 空 `{type:'object', properties:{}}` | `zodToJsonSchema(tool.inputSchema)` 真实 schema |\n| 工具数量 | `slice(0, 20)` 静默丢 | 全部传入 |\n| max_tokens | 硬编码 8192 | 64K 默认 \u002F 384K 上限 |\n| temperature | 没传 | pass-through |\n| 思考模式 | 不请求 | `thinking:{type:'enabled'}` plumbing |\n| cache_control | 无 | system 尾 + user 尾 + tool 列表尾 |\n| 重试 | 无 | 429\u002F5xx 指数退避 3× |\n| 错误分类 | 一行文本 | 解析 `{error:{type,message}}`，401\u002F429\u002F500 各自提示 |\n| tool_use | 解析但不 yield | 完整 yield |\n\n**上下文 \u002F 价格 \u002F 容量**：\n- DeepSeek V4 上下文 200K → 1M\n- 输出上限 default 64K \u002F upper 384K\n- `modelCost.ts` 加 DeepSeek 三档 USD 价表，`unknown_model_cost` 告警熄灭\n\n**ModelStatsPanel 增强**：\n- `DEEPSEEK_PRO_FULL_PRICE=1` 切换 pro 原价\u002F2.5 折\n- 累计行加 USD 等价\n\n**灵动岛多实例聚合**（`src\u002Fservices\u002Fisland.ts`）：\n- 每实例写 `~\u002F.haking-island\u002Fsessions\u002F{pid}.json`\n- 抢 port 7890 当 hub → 读全部 session 文件聚合广播\n- 非 hub 30s 重试抢占；hub 死后无缝接管\n- 岛上 sessions 列表显示所有活实例\n\n---\n\n## ⚠️ DeepSeek 兼容性修复\n\n本项目完全绕过 Anthropic SDK（`@anthropic-ai\u002Fsdk`）的 Zod v4 校验层，使用原生 `fetch` 直连 DeepSeek API。原因：Anthropic SDK 0.80+ 对响应格式有严格的 schema 校验（`_idmap`、`schema._zod` 等），DeepSeek 的兼容 API 不返回这些私有字段，导致运行时崩溃。\n\n**解决方案**：`src\u002Fservices\u002Fapi\u002Fdeepseek-direct.ts` 在 `queryModel` 入口处拦截，不经过 SDK，直接用 fetch 调用 `\u002Fv1\u002Fmessages` 端点，手动构造 `AssistantMessage` 返回给下游消费者。\n\n## 🚀 v1.1.0 — DeepSeek 全面优化 + 灵动岛工具启动器\n\n本次发布把 DeepSeek 路径从\"能跑\"升级到\"能跑得好\"，并把灵动岛升级成 AI CLI 工具的总控面板。\n\n### DeepSeek 核心优化（`src\u002Fservices\u002Fapi\u002Fdeepseek-direct.ts` 重写）\n\n| 改动 | 之前 | 现在 |\n|------|------|------|\n| **流式输出** | `await res.json()`（阻塞，整段返回） | SSE `stream: true`，emit Anthropic 标准事件 (`message_start` \u002F `content_block_delta` \u002F `message_stop`)，token 级渐进显示 |\n| **工具 input_schema** | 全部硬编码空 schema `{type:'object', properties:{}}` | `zodToJsonSchema(tool.inputSchema)` 真实 schema |\n| **工具数量** | 静默 `slice(0, 20)` 砍掉 21 号之后 | 全部传入 |\n| **`max_tokens`** | 硬编码 8192 | `getModelMaxOutputTokens()` + `CLAUDE_CODE_MAX_OUTPUT_TOKENS` env 覆盖；DeepSeek V4 默认 64K（最大支持 384K） |\n| **temperature** | 没传 | 从 `options.temperature` pass-through |\n| **思考模式** | parse 但从不请求 | `thinking: {type:'enabled', budget_tokens}` plumbing 通了 |\n| **`cache_control`** | 完全没用 | 系统块尾、最后 user 消息、tool 列表尾全部标 `ephemeral`，DeepSeek 缓存命中输入价低 50× |\n| **重试** | 失败一次就死 | 429 \u002F 5xx \u002F 网络错误 → 指数退避 800\u002F1600\u002F3200ms，最多 3 次 |\n| **错误分类** | 一行 `${status}: ${text}` | 解析 `{error:{type,message}}`，401\u002F429\u002F500 各自带提示与下一步操作 |\n| **`tool_use` 块** | 解析了但**从来没 yield**（Agent 工具调用静默失败） | 完整 yield + `cache_creation_input_tokens` 计入 |\n\n### 上下文 \u002F 价格 \u002F 容量（`src\u002Futils\u002Fcontext.ts` + `modelCost.ts`）\n\n- DeepSeek V4 上下文窗 `200K → 1M`（`modelSupports1M` 加 deepseek-v4 匹配）\n- DeepSeek V4 输出上限 `default 64K \u002F upper 384K`\n- `MODEL_COSTS` 加 DeepSeek 三档专属表（按官方人民币价折 USD），`getModelCosts` short-circuit 不再走 Claude 错档\n- `tengu_unknown_model_cost` 告警熄灭，StatusLine \"costs may be inaccurate\" 不再亮\n\n### 实时计费面板（`src\u002Fcomponents\u002FPromptInput\u002FModelStatsPanel.tsx`）\n\n输入框正下方常驻：\n\n```\ndeepseek-v4-flash   in 12.3k · out 4.5k · cache↓ 8.0k · cache↑ 0   ¥0.0123 (1\u002F2 ¥\u002FMtok)\ndeepseek-v4-pro     in 0     · out 0    · cache↓ 0    · cache↑ 0   ¥0      (3\u002F6 ¥\u002FMtok)\n累计 ¥0.0123 (≈ $0.0017) · pro 当前 2.5 折，原价 12\u002F24 ¥\u002FMtok\n```\n\n- 直接按 DeepSeek 官方人民币单价算 CNY，1 秒轮询 `STATE.modelUsage`\n- 累计行带 USD 等价（汇率 7.2）\n- 设 `DEEPSEEK_PRO_FULL_PRICE=1` → 切到 pro 原价档（pricing 同步进 modelCost.ts）\n- 仅 `ANTHROPIC_BASE_URL` 含 `deepseek` 时显示，其他后端隐藏避免误导\n- 终端宽度 \u003C 70 列自动隐藏\n\n### 灵动岛多实例聚合（`src\u002Fservices\u002Fisland.ts`）\n\n之前两个 Haking Code 同时跑，第二个抢不到 port 7890 就**完全隐形**，岛上只显示一个 session。现在改成文件聚合 + 端口领导选举：\n\n```\n每个 Haking Code 实例\n  ├─ 写 ~\u002F.haking-island\u002Fsessions\u002F{pid}.json，每 1.5s 刷新\n  ├─ 抢 port 7890\n  │   ├─ 成功 → 当 hub：每秒读全部 session 文件聚合广播\n  │   └─ 失败 → 仅写文件（30s 重试一次抢占）\n  └─ exit\u002FSIGINT\u002FSIGTERM → 删自己的文件\n\nHub 读文件时 mtime > 8s 视为死亡 → unlink\n第一个 hub 死 → 30s 内第二个无缝接管\n```\n\n岛上 sessions 列表会列出所有活实例，每条带 cwd 区分（`Haking Code (miserad)` \u002F `Haking Code (myproject)`），底部 stats 是聚合值。\n\n## 🏝️ 灵动岛 v1.1.0（`island\u002F`）\n\n### 拖拽修复（v1.0 完全拖不动）\n\n根因两个：\n1. `src-tauri\u002Fcapabilities\u002F` 目录根本没建，Tauri 2 严格安全模型默认拒绝 `core:window:allow-start-dragging`\n2. `tauri.conf.json` 没设 `withGlobalTauri: true`，v2 默认 `false` 导致 `window.__TAURI__` 全局对象不存在，HTML 第一行 `const { invoke } = window.__TAURI__.core` 直接 TypeError，整个 script 静默挂掉\n\n修复：建 `capabilities\u002Fdefault.json` 释放 6 条 window 权限；conf 加 `withGlobalTauri: true`；HTML 用 `mousedown → startDragging()` 显式拖拽（比 `data-tauri-drag-region` 在 transparent + decorations:false 组合下更稳）。\n\n### 三连击关闭\n\n`MouseEvent.detail >= 3` 触发 `getCurrentWindow().close()`，跟 OS 双击间隔同步。\n\n### CLI 工具启动器 + wt.exe 分屏\n\n展开后多了两个区：\n\n```\n┌──────────────────────────────────┐\n│ ▾ Sessions                       │\n│   ● Haking Code (miserad)        │  ← 多实例 each cwd\n│   ● Haking Code (myproject)      │\n├──────────────────────────────────┤\n│ ▾ TOOLS  click 启动 · shift 多选 │\n│   🟦 Haking  🟧 OpenCode         │\n│   🟢 Codex   🟫 Claude           │\n│   🩷 Aider   🟦 Gemini           │\n├──────────────────────────────────┤\n│ ▾ LAYOUT                         │\n│   [▮▮ 左右] [≡ 上下] [⊞ 田字] [▤ Tab]│\n└──────────────────────────────────┘\n```\n\n每个工具一个品牌色小圆球。配置文件 `%APPDATA%\\haking-island\\tools.json`，首次启动自动写默认 6 工具，可自由编辑加自家 CLI \u002F 命令参数 \u002F cwd。\n\n**单击** → `wt.exe new-tab` 启动单个；**Shift+多选 ≥2 个 + 点 layout 按钮** → 一行 `wt new-tab ... ; split-pane -V ... ; split-pane -H ...` 把它们 split-pane 到同一个 Windows Terminal 窗口，原生分屏。\n\n四种 layout：\n- **左右**：垂直 split-pane 链\n- **上下**：水平 split-pane 链\n- **田字**：4 工具时正好 2×2 quadrant，别的数量退化成左右\n- **多 Tab**：每个工具一个 wt tab，不分屏\n\n没装 wt.exe 的老 Windows → 回退到每工具一个独立 cmd 窗口。\n\n## 📚 Haking Wiki — 知识图谱\n\n`wiki\u002F` 目录是一个独立的 Bun 应用，提供安全研究知识图谱 + D3 力导向可视化 + Markdown 预览。\n\n```bash\ncd wiki && bun run dev\n# → http:\u002F\u002Flocalhost:7891\n```\n\n> ⚠️ **爬虫功能需要自行配置 Firecrawl API Key**\n>\n> Wiki 的 \"Add Page\" 功能通过 [Firecrawl](https:\u002F\u002Ffirecrawl.dev) 爬取网页并转为 Markdown。**必须先获取 API Key 并配置到环境变量**，否则爬取会失败（回退到原生 fetch + Turndown，但对 JS 渲染页面效果差）。\n>\n> ```bash\n> # 方式 1：.env 文件（项目根目录）\n> FIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxx\n>\n> # 方式 2：环境变量\n> set FIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxx\n>\n> # 方式 3：\u002Fsetup 命令配置（Haking Code 内）\n> ```\n>\n> 获取 Key：https:\u002F\u002Ffirecrawl.dev → 注册 → Dashboard → API Keys\n>\n> 免费额度：500 次\u002F月，足够日常研究使用。\n\n---\n\n## v1.0.0 首次更新内容\n\n- 🔐 **去登录化** — 移除 Anthropic OAuth，直接使用 API Key\n- 🧠 **DeepSeek 默认接入** — base_url `https:\u002F\u002Fapi.deepseek.com\u002Fanthropic`\n- 🎨 **全新 UI** — 侧边栏布局（Tasks \u002F Memory \u002F Buddy）\n- ⚔️ **`\u002Farena` 命令** — 4 链对抗共识引擎（C1 Proposer → C2 Challenger → C3 Verifier → C4 Synthesizer）\n- 🔬 **`\u002Frecon` 命令** — PEV 假设驱动逆向分析引擎\n- 🛠️ **ReverseCliTool** — 20+ 安全工具内置（nmap, nuclei, sqlmap, strings, diec...）\n- ⚙️ **`\u002Fsetup` 命令** — 持久化配置面板，支持多 Provider\n- 🌐 **Firecrawl 集成** — Web 搜索作为外部真值锚点\n- 📦 **183 个 Skills** — 安全扫描、代码审计、TDD、深度研究等\n- 🐱 **Buddy 系统** — 宠物伴侣移至侧边栏\n\n---\n\n\n## 🚨 使用声明 — 不按规矩来直接报废\n\n> **⚠️ 以下步骤缺一不可，跳过任何一步都会导致程序无法正常运行、DeepSeek 无响应、或功能残缺。**\n\n### ❌ 常见翻车原因\n\n| 你跳过了什么 | 后果 |\n|-------------|------|\n| 没装 Bun 或版本 \u003C 1.2 | `bun install` 直接报错，依赖装不上 |\n| 没跑 `bun install` | 缺依赖，启动即崩 |\n| 没配 API Key | 所有 AI 功能静默失败，看起来像\"没反应\" |\n| Base URL 写错 | DeepSeek 返回 404\u002F401，表现为\"对话无响应\" |\n| 用 `npm` \u002F `yarn` 代替 `bun` | 构建脚本依赖 Bun 运行时特性，npm\u002Fyarn 跑不起来 |\n| 直接改 `dist\u002F` 目录 | 下次 `bun run build` 全部覆盖，白改 |\n| 没有 `\u002Fsetup` 就开始用 | 模型配置为空，请求发不出去 |\n| Windows 上用 Git Bash 跑 | 部分路径和进程管理不兼容，用 PowerShell 或 CMD |\n\n### ✅ 正确使用流程（必须按顺序）\n\n```bash\n# 1. 安装 Bun（必须 >= 1.2.0）\n# Windows:\npowershell -c \"irm bun.sh\u002Finstall.ps1 | iex\"\n# macOS\u002FLinux:\ncurl -fsSL https:\u002F\u002Fbun.sh\u002Finstall | bash\n\n# 2. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Felbelicojackson-hue\u002Fhaking-code-.git\ncd haking-code-\n\n# 3. 安装依赖（只能用 bun，不能用 npm\u002Fyarn）\nbun install\n\n# 4. 构建\nbun run build\n\n# 5. 启动\nbun run dev\n```\n\n```bash\n# 6. 首次启动后，在 REPL 中输入：\n\u002Fsetup\n```\n\n在 `\u002Fsetup` 中**必须配置**：\n\n| 配置项 | 必填 | 说明 |\n|--------|------|------|\n| API Key | ✅ | DeepSeek 的 `sk-xxx` 密钥 |\n| Base URL | ✅ | 必须是 `https:\u002F\u002Fapi.deepseek.com\u002Fanthropic`（注意结尾有 `\u002Fanthropic`） |\n| 主模型 | ✅ | `deepseek-v4-pro` 或 `deepseek-chat` |\n| 快速模型 | 可选 | `deepseek-v4-flash`（默认） |\n| Firecrawl Key | 可选 | 用于 Wiki 爬虫和强制查证，不配则跳过 |\n\n### 🤖 `\u002Fmodel` 模型映射说明\n\n输入 `\u002Fmodel` 切换模型时，可以用**别名**或**完整模型名**。以下是映射关系：\n\n| 别名 | 实际调用的 DeepSeek 模型 | 说明 |\n|------|------------------------|------|\n| `sonnet` | `deepseek-v4-flash` | 快速模型，适合日常对话、简单任务 |\n| `haiku` | `deepseek-v4-flash` | 同上，最轻量 |\n| `opus` | `deepseek-v4-pro` | 最强模型，适合复杂推理、代码生成 |\n| `best` | `deepseek-v4-pro` | 同 opus，自动选最强 |\n\n**可直接填写的 DeepSeek 模型名**：\n\n| 模型名 | 特点 | 适用场景 |\n|--------|------|----------|\n| `deepseek-v4-pro` | 最强推理，输出上限 384K | 复杂渗透分析、代码审计、\u002Farena 辩论 |\n| `deepseek-v4-flash` | 快速便宜，输出上限 64K | 日常问答、快速扫描、\u002Frecon 工具调度 |\n| `deepseek-chat` | V3 兼容模型 | 预算有限时的备选 |\n\n> 💡 **推荐配置**：主模型用 `deepseek-v4-pro`，快速模型用 `deepseek-v4-flash`。这样 `\u002Farena` 和复杂任务走 pro，工具调用和快速回复走 flash，兼顾质量和成本。\n\n### ⚡ 验证是否正常\n\n启动后输入任意问题，如果看到 token 计费面板有数字跳动（`in X · out X`），说明配置正确。\n\n如果输入后**无任何响应**，99% 是以下原因：\n1. API Key 没配或配错 → 重新 `\u002Fsetup`\n2. Base URL 缺少 `\u002Fanthropic` 后缀 → 改成 `https:\u002F\u002Fapi.deepseek.com\u002Fanthropic`\n3. 网络不通（国内直连 DeepSeek 无需代理）\n\n### 🔑 环境变量配置\n\n除了 `\u002Fsetup` 交互式配置外，也可以通过 `.env` 文件或系统环境变量配置。在项目根目录创建 `.env` 文件：\n\n```env\n# ═══════════════ 必填 ═══════════════\nANTHROPIC_API_KEY=sk-xxxxxxxxxxxxxxxx\nANTHROPIC_BASE_URL=https:\u002F\u002Fapi.deepseek.com\u002Fanthropic\n\n# ═══════════════ 模型选择 ═══════════════\nANTHROPIC_MODEL=deepseek-v4-pro\nANTHROPIC_SMALL_FAST_MODEL=deepseek-v4-flash\n\n# ═══════════════ 可选功能 ═══════════════\nFIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxx          # Wiki 爬虫 + 强制查证\nDEEPSEEK_PRO_FULL_PRICE=1                      # 计费面板显示 pro 原价（默认 2.5 折）\nCLAUDE_CODE_MAX_OUTPUT_TOKENS=64000            # 最大输出 token（默认 64K）\nCLAUDE_CODE_SCROLL_SPEED=3                     # 滚轮速度倍率（默认 1）\n```\n\n**三种配置方式优先级**（高→低）：\n\n| 优先级 | 方式 | 说明 |\n|--------|------|------|\n| 1 | 系统环境变量 | `set ANTHROPIC_API_KEY=sk-xxx`（当前终端生效） |\n| 2 | `.env` 文件 | 项目根目录，git 不跟踪 |\n| 3 | `\u002Fsetup` 配置 | 存储在 `~\u002F.haking\u002Fconfig.json`，全局生效 |\n\n> ⚠️ **注意**：`.env` 文件包含密钥，**不要提交到 git**。已在 `.gitignore` 中排除。\n\n**Windows 设置环境变量**（永久生效）：\n```powershell\n# PowerShell（当前用户永久）\n[Environment]::SetEnvironmentVariable(\"ANTHROPIC_API_KEY\", \"sk-xxx\", \"User\")\n[Environment]::SetEnvironmentVariable(\"ANTHROPIC_BASE_URL\", \"https:\u002F\u002Fapi.deepseek.com\u002Fanthropic\", \"User\")\n\n# 或者 CMD（仅当前窗口）\nset ANTHROPIC_API_KEY=sk-xxx\nset ANTHROPIC_BASE_URL=https:\u002F\u002Fapi.deepseek.com\u002Fanthropic\n```\n\n### 📖 所有命令一览\n\n启动后在输入框输入 `\u002F` 开头的命令即可执行。以下是完整命令列表：\n\n#### 🔴 核心命令（必须知道）\n\n| 命令 | 说明 |\n|------|------|\n| `\u002Fsetup` | **首次必用** — 配置 API Key、Base URL、模型（持久化保存） |\n| `\u002Fhelp` | 查看所有可用命令 |\n| `\u002Farena \u003C问题>` | 4 链对抗共识 — 多个 AI 角色辩论达成最可靠答案 |\n| `\u002Frecon \u003C文件>` | PEV 假设驱动逆向分析引擎 |\n| `\u002Fmodel` | 切换当前使用的模型 |\n| `\u002Fclear` | 清空对话历史，释放上下文 |\n| `\u002Fcompact` | 压缩上下文（对话太长时用） |\n| `\u002Fexit` | 退出程序 |\n\n#### 🟠 会话管理\n\n| 命令 | 说明 |\n|------|------|\n| `\u002Fhandoff \u003C备注>` | 保存当前会话状态，下次可恢复 |\n| `\u002Fpickup` | 恢复上次 `\u002Fhandoff` 保存的会话 |\n| `\u002Fresume` | 恢复之前的对话 |\n| `\u002Fsession` | 显示远程会话 URL 和二维码 |\n| `\u002Frename \u003C名称>` | 重命名当前对话 |\n| `\u002Fbranch` | 在当前位置创建对话分支 |\n| `\u002Frewind` | 回退代码和\u002F或对话到之前的某个点 |\n| `\u002Fexport` | 导出当前对话到文件或剪贴板 |\n| `\u002Fcopy` | 复制最后一条回复到剪贴板 |\n\n#### 🟡 工具与知识\n\n| 命令 | 说明 |\n|------|------|\n| `\u002Fwiki serve` | 启动知识图谱 Web UI（localhost:7891） |\n| `\u002Fwiki add \u003Curl>` | 爬取网页加入知识图谱 |\n| `\u002Fisland` | 启动灵动岛浮窗（工具总控面板） |\n| `\u002Fskills` | 列出所有可用 Skill |\n| `\u002Fmcp` | 管理 MCP 服务器 |\n| `\u002Fhooks` | 查看 Hook 配置 |\n\n#### 🟢 配置与诊断\n\n| 命令 | 说明 |\n|------|------|\n| `\u002Fconfig` | 打开配置面板 |\n| `\u002Fdoctor` | 诊断安装和配置是否正确 |\n| `\u002Fcost` | 显示当前会话的费用和时长 |\n| `\u002Fcontext` | 可视化当前上下文使用量 |\n| `\u002Ffiles` | 列出当前上下文中的所有文件 |\n| `\u002Fdiff` | 查看未提交的更改和每轮 diff |\n| `\u002Fpermissions` | 管理工具权限规则 |\n| `\u002Fmemory` | 编辑 AI 记忆文件 |\n| `\u002Flang \u003Cen\u002Fzh\u002Fauto>` | 设置显示语言 |\n| `\u002Ftheme` | 切换主题 |\n| `\u002Fvim` | 切换 Vim \u002F 普通编辑模式 |\n| `\u002Fkeybindings` | 打开快捷键配置文件 |\n\n#### 🔵 高级功能\n\n| 命令 | 说明 |\n|------|------|\n| `\u002Fplan` | 启用计划模式或查看当前计划 |\n| `\u002Ftasks` | 列出和管理后台任务 |\n| `\u002Fagents` | 管理 Agent 配置 |\n| `\u002Ffast` | 切换快速模式（使用轻量模型） |\n| `\u002Feffort` | 设置模型推理努力等级 |\n| `\u002Fstats` | 显示使用统计 |\n| `\u002Ffeedback` | 提交反馈 |\n\n#### ⌨️ 快捷键\n\n| 快捷键 | 功能 |\n|--------|------|\n| `Ctrl+B` | 切换侧边栏 |\n| `Ctrl+O` | 切换 Transcript 模式（查看详细日志） |\n| `PgUp \u002F PgDn` | 翻页滚动 |\n| `Esc` | 取消当前操作 |\n| `Ctrl+C` | 中断当前请求 |\n| `Ctrl+D` | 退出 |\n\n### 🔧 二次开发注意\n\n- 修改源码后必须 `bun run build` 重新构建，`dist\u002F` 才会更新\n- 不要直接编辑 `dist\u002F` 下的文件\n- 不要用 `npm run` \u002F `yarn` 替代 `bun run`\n- PR 前跑一次 `bun run build` 确认构建通过\n\n---\n\n\n## 快速开始\n\n### 环境要求\n\n- [Bun](https:\u002F\u002Fbun.sh\u002F) >= 1.2.0\n- DeepSeek API Key（https:\u002F\u002Fplatform.deepseek.com）\n- Node.js >= 18（部分 postinstall 脚本需要）\n- Git（克隆仓库）\n\n### 📦 项目依赖一览\n\n> 所有依赖通过 `bun install` 自动安装，无需手动处理。\n\n#### 运行时依赖（dependencies）\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `@agentclientprotocol\u002Fsdk` | ^0.19.0 | Agent Client Protocol SDK |\n| `@claude-code-best\u002Fmcp-chrome-bridge` | ^2.0.8 | Chrome MCP 桥接 |\n| `ws` | ^8.20.0 | WebSocket（灵动岛通信） |\n\n#### 核心开发依赖（devDependencies）\n\n**AI\u002FLLM SDK**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `@anthropic-ai\u002Fsdk` | ^0.80.0 | Anthropic Messages API SDK |\n| `@anthropic-ai\u002Fbedrock-sdk` | ^0.26.4 | AWS Bedrock 接入 |\n| `@anthropic-ai\u002Fvertex-sdk` | ^0.14.4 | Google Vertex AI 接入 |\n| `@anthropic-ai\u002Fclaude-agent-sdk` | ^0.2.114 | Claude Agent SDK |\n| `@anthropic-ai\u002Ffoundry-sdk` | ^0.2.3 | Foundry SDK |\n| `@anthropic-ai\u002Fmcpb` | ^2.1.2 | MCP Builder |\n| `@anthropic-ai\u002Fsandbox-runtime` | ^0.0.44 | 沙箱运行时 |\n| `openai` | ^6.34.0 | OpenAI 兼容 API |\n| `@modelcontextprotocol\u002Fsdk` | ^1.29.0 | MCP 协议 SDK |\n\n**UI\u002F终端渲染**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `@anthropic\u002Fink` | workspace:* | 终端 UI 框架（Ink fork） |\n| `react` | ^19.2.5 | React 渲染引擎 |\n| `react-reconciler` | ^0.33.0 | React 自定义渲染器 |\n| `react-compiler-runtime` | ^1.0.0 | React Compiler 运行时 |\n| `chalk` | ^5.6.2 | 终端颜色 |\n| `cli-highlight` | ^2.1.11 | 代码语法高亮 |\n| `highlight.js` | ^11.11.1 | 语法高亮引擎 |\n| `marked` | ^17.0.6 | Markdown 解析 |\n| `figures` | ^6.1.0 | 终端 Unicode 符号 |\n| `cli-boxes` | ^4.0.1 | 终端边框绘制 |\n| `wrap-ansi` | ^10.0.0 | ANSI 文本换行 |\n| `strip-ansi` | ^7.2.0 | 去除 ANSI 转义码 |\n| `qrcode` | ^1.5.4 | 二维码生成 |\n| `asciichart` | ^1.5.25 | 终端图表 |\n\n**AWS SDK**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `@aws-sdk\u002Fclient-bedrock` | ^3.1032.0 | Bedrock 客户端 |\n| `@aws-sdk\u002Fclient-bedrock-runtime` | ^3.1032.0 | Bedrock 运行时 |\n| `@aws-sdk\u002Fclient-sts` | ^3.1032.0 | STS 令牌服务 |\n| `@aws-sdk\u002Fcredential-provider-node` | ^3.972.32 | 凭证提供者 |\n| `@aws-sdk\u002Fcredential-providers` | ^3.1032.0 | 凭证提供者集合 |\n\n**工具\u002F实用库**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `axios` | ^1.15.0 | HTTP 客户端 |\n| `undici` | ^7.25.0 | 高性能 HTTP 客户端 |\n| `execa` | ^9.6.1 | 子进程执行（安全工具调用） |\n| `chokidar` | ^5.0.0 | 文件监听 |\n| `fuse.js` | ^7.3.0 | 模糊搜索 |\n| `lodash-es` | ^4.18.1 | 工具函数库 |\n| `lru-cache` | ^11.3.5 | LRU 缓存 |\n| `semver` | ^7.7.4 | 语义化版本 |\n| `yaml` | ^2.8.3 | YAML 解析 |\n| `zod` | ^4.3.6 | 运行时类型校验 |\n| `ajv` | ^8.18.0 | JSON Schema 校验 |\n| `diff` | ^8.0.4 | 文本差异比较 |\n| `shell-quote` | ^1.8.3 | Shell 命令解析 |\n| `tree-kill` | ^1.2.2 | 进程树终止 |\n| `signal-exit` | ^4.1.0 | 退出信号处理 |\n| `p-map` | ^7.0.4 | 并发 Promise 映射 |\n| `proper-lockfile` | ^4.1.2 | 文件锁 |\n| `cacache` | ^20.0.4 | 内容寻址缓存 |\n| `env-paths` | ^4.0.0 | 跨平台路径 |\n| `ignore` | ^7.0.5 | .gitignore 解析 |\n| `picomatch` | ^4.0.4 | Glob 匹配 |\n| `turndown` | ^7.2.4 | HTML 转 Markdown |\n| `xss` | ^1.0.15 | XSS 过滤 |\n| `he` | ^1.2.0 | HTML 实体编解码 |\n| `fflate` | ^0.8.2 | 压缩\u002F解压 |\n| `sharp` | ^0.34.5 | 图片处理 |\n| `plist` | ^3.1.0 | macOS plist 解析 |\n| `jsonc-parser` | ^3.3.1 | JSONC 解析（带注释） |\n| `auto-bind` | ^5.0.1 | 自动绑定 this |\n| `indent-string` | ^5.0.0 | 字符串缩进 |\n| `code-excerpt` | ^4.0.0 | 代码片段提取 |\n| `emoji-regex` | ^10.6.0 | Emoji 正则 |\n| `get-east-asian-width` | ^1.5.0 | 东亚字符宽度 |\n| `bidi-js` | ^1.0.3 | 双向文本处理 |\n| `supports-hyperlinks` | ^4.4.0 | 终端超链接检测 |\n| `https-proxy-agent` | ^8.0.0 | HTTPS 代理 |\n| `google-auth-library` | ^10.6.2 | Google 认证 |\n| `@azure\u002Fidentity` | ^4.13.1 | Azure 认证 |\n| `usehooks-ts` | ^3.1.1 | React Hooks 工具 |\n| `stack-utils` | ^2.0.6 | 堆栈解析 |\n\n**可观测性\u002F分析**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `@opentelemetry\u002Fapi` | ^1.9.1 | OpenTelemetry API |\n| `@opentelemetry\u002Fsdk-trace-base` | ^2.7.0 | 链路追踪 |\n| `@opentelemetry\u002Fsdk-metrics` | ^2.7.0 | 指标采集 |\n| `@opentelemetry\u002Fsdk-logs` | ^0.214.0 | 日志采集 |\n| `@langfuse\u002Fotel` | ^5.1.0 | Langfuse 集成 |\n| `@langfuse\u002Ftracing` | ^5.1.0 | Langfuse 追踪 |\n| `@growthbook\u002Fgrowthbook` | ^1.6.5 | 功能开关 |\n| `@sentry\u002Fnode` | ^10.49.0 | 错误监控 |\n\n**LSP\u002F编辑器集成**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `vscode-jsonrpc` | ^8.2.1 | JSON-RPC 协议 |\n| `vscode-languageserver-protocol` | ^3.17.5 | LSP 协议 |\n| `vscode-languageserver-types` | ^3.17.5 | LSP 类型定义 |\n\n**构建\u002F开发工具**\n\n| 包名 | 版本 | 用途 |\n|------|------|------|\n| `typescript` | ^6.0.3 | TypeScript 编译器 |\n| `vite` | ^8.0.8 | 构建工具 |\n| `rollup` | ^4.60.2 | 模块打包 |\n| `@biomejs\u002Fbiome` | ^2.4.12 | Linter + Formatter |\n| `knip` | ^6.4.1 | 死代码检测 |\n\n**Workspace 内部包**\n\n| 包名 | 用途 |\n|------|------|\n| `@ant\u002Fmodel-provider` | 多模型 Provider 管理 |\n| `@ant\u002Fclaude-for-chrome-mcp` | Chrome MCP |\n| `@ant\u002Fcomputer-use-input` | Computer Use 输入 |\n| `@ant\u002Fcomputer-use-mcp` | Computer Use MCP |\n| `@ant\u002Fcomputer-use-swift` | Computer Use Swift |\n| `@haking\u002Fagent-tools` | Agent 工具集 |\n| `@haking\u002Fbuiltin-tools` | 内置工具（Bash\u002FFile\u002FGrep 等） |\n| `@haking\u002Fmcp-client` | MCP 客户端 |\n| `@haking\u002Fweixin` | 微信集成 |\n| `audio-capture-napi` | 音频捕获 NAPI |\n| `color-diff-napi` | 颜色差异 NAPI |\n| `image-processor-napi` | 图片处理 NAPI |\n| `modifiers-napi` | 修饰键 NAPI |\n| `url-handler-napi` | URL 处理 NAPI |\n\n### 安装 & 运行\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Felbelicojackson-hue\u002Fhaking-code-.git\ncd haking-code-\nbun install\nbun run dev\n```\n\n首次运行输入 `\u002Fsetup` 配置 API Key，之后自动加载。\n\n### 一键启动（Windows）\n\n```bash\nhaking.bat\n```\n\n---\n\n## 配置\n\n### 方式一：`\u002Fsetup` 命令（推荐）\n\n在 REPL 中输入 `\u002Fsetup`，交互式配置：\n\n```\n⚙ Haking Code 配置\n  ~\u002F.haking\u002Fconfig.json · 下次启动自动加载\n\n▸ API Key:       sk-3a70...86ec\n  Base URL:      https:\u002F\u002Fapi.deepseek.com\u002Fanthropic\n  主模型:        deepseek-v4-pro\n  快速模型:      deepseek-v4-flash\n  Recon Providers [6]:  管理多 LLM →\n  💾 保存配置\n```\n\n### 方式二：`.env` 文件\n\n```env\nANTHROPIC_API_KEY=sk-xxx\nANTHROPIC_BASE_URL=https:\u002F\u002Fapi.deepseek.com\u002Fanthropic\nFIRECRAWL_API_KEY=fc-xxx\n```\n\n### 方式三：环境变量\n\n```bash\nset ANTHROPIC_API_KEY=sk-xxx\nset ANTHROPIC_MODEL=deepseek-v4-pro\nset ANTHROPIC_SMALL_FAST_MODEL=deepseek-v4-flash\n```\n\n---\n\n## 核心命令\n\n| 命令 | 说明 |\n|------|------|\n| `\u002Farena \u003C问题>` | 4 链对抗共识 — 多角色辩论达成共识 |\n| `\u002Frecon \u003Cbinary>` | PEV 逆向分析 — 假设驱动的二进制分析 |\n| `\u002Fsetup` | 配置 API Key 和多 Provider |\n| `\u002Fmodel` | 切换模型 |\n| `\u002Fhelp` | 查看所有命令 |\n\n---\n\n## `\u002Farena` — 4 链对抗共识\n\n多个 AI 角色围绕一个问题进行结构化辩论，自动收敛到共识。\n\n```bash\n\u002Farena 量子计算机能在 2028 年破解 RSA-2048 吗\n\u002Farena 这段代码有没有 SQL 注入漏洞\n\u002Farena Log4j 漏洞的根因是什么\n```\n\n### 4 条链\n\n| Chain | 角色 | 职责 |\n|-------|------|------|\n| C1 | Proposer | 正向构建论点，寻找支持证据 |\n| C2 | Challenger | 逻辑攻击，找漏洞和反例 |\n| C3 | Verifier | 事实查证（带 Firecrawl 网页搜索） |\n| C4 | Synthesizer | 综合收敛，标注共识和分歧 |\n\n### 停止条件（纯信号驱动，无固定轮次）\n\n- `consensus-reached` — 4 链全部标记 converged\n- `no-new-evidence` — 所有链 update_kl \u003C 0.05\n- `gradient-quiet` — 连续 3 轮平均 update_kl \u003C 0.03\n- `confidence-plateau` — 平均置信度 > 0.9 且稳定\n- `deadlock` — ≥2 条链声明死锁\n\n---\n\n## `\u002Frecon` — PEV 逆向分析引擎\n\n假设驱动的二进制逆向分析循环。多 Agent 提出假设，调度安全工具验证，正则判定结果。\n\n```bash\n\u002Frecon .\u002Fmalware.exe\n\u002Frecon .\u002Fsuspicious.dll \"分析 C2 通信协议\"\n\u002Frecon .\u002Fpacked.bin --max-rounds=10\n```\n\n### 假设类型（8 种）\n\n| Kind | 示例 |\n|------|------|\n| `file-class` | PE32+ executable, 64-bit Windows |\n| `packer` | Packed by UPX 4.0 |\n| `compiler` | .NET \u002F Mono assembly |\n| `family` | Emotet variant |\n| `algorithm` | AES-256-CBC for C2 encryption |\n| `anti-analysis` | TLS callback anti-debug |\n| `capability` | Network C2 via HTTPS |\n| `protocol` | gRPC over HTTP\u002F2 |\n\n### 工具白名单\n\n`ReverseCli` | `Bash` | `Read` | `Grep` | `WebSearch` | `Firecrawl`\n\n### 停止条件\n\n- `all-resolved` — 无 open 假设\n- `budget-cap-hit` — 轮次\u002F工具\u002Ftoken\u002F时间预算耗尽\n- `stall-guard-hit` — 连续 2 轮所有 agent observe-only\n- `parse-storm` — ≥50% agent 解析失败\n- `user-abort` — Esc 取消\n\n---\n\n## ReverseCliTool — 内置安全工具箱\n\nAI 可直接调用的 20+ 安全工具：\n\n| Action | 工具 | 用途 |\n|--------|------|------|\n| `strings` | strings | 提取字符串 |\n| `analyze` | file | 文件类型识别 |\n| `diec` | Detect It Easy | 壳\u002F保护检测 |\n| `upx` | UPX | 脱壳 |\n| `pentest` | nuclei\u002Fnmap\u002Fsqlmap\u002Fffuf | 渗透测试 |\n| `kali` | 任意命令 | Kali 工具链 |\n| `tshark` | tshark | 网络抓包分析 |\n| `forensic` | curl | Web 取证 |\n\n### 渗透测试子工具\n\n```bash\n# AI 会自动调用：\nReverseCli({action: \"pentest\", pentestTool: \"nmap\", pentestArgs: \"-sV 192.168.1.1\"})\nReverseCli({action: \"pentest\", pentestTool: \"nuclei\", pentestArgs: \"-u https:\u002F\u002Ftarget.com\"})\nReverseCli({action: \"pentest\", pentestTool: \"sqlmap\", pentestArgs: \"-u 'http:\u002F\u002Ftarget\u002Fpage?id=1'\"})\n```\n\n### 本地工具安装要求\n\n部分工具需要本地安装并加入 PATH，AI 才能调用：\n\n| 工具 | 安装方式 | 备注 |\n|------|----------|------|\n| IDA Pro | 自行获取安装，将 `idat64.exe` 加入 PATH | 无头模式分析 |\n| Ghidra | https:\u002F\u002Fghidra-sre.org\u002F 下载解压 | 需要 JDK 17+ |\n| Detect It Easy (DiE) | https:\u002F\u002Fgithub.com\u002Fhorsicq\u002FDIE-engine\u002Freleases | 壳检测必备 |\n| UPX | `scoop install upx` 或官网下载 | 脱壳 |\n| nmap | https:\u002F\u002Fnmap.org\u002Fdownload | 端口扫描 |\n| nuclei | `go install github.com\u002Fprojectdiscovery\u002Fnuclei\u002Fv3\u002Fcmd\u002Fnuclei@latest` | 漏洞扫描 |\n| sqlmap | `pip install sqlmap` | SQL 注入 |\n| ffuf | `go install github.com\u002Fffuf\u002Fffuf\u002Fv2@latest` | 目录爆破 |\n| tshark | 安装 Wireshark 自带 | 抓包分析 |\n| strings | Windows: 安装 Binutils 或 SysInternals Strings | 字符串提取 |\n| Frida | `pip install frida-tools` | 动态脱壳\u002FHook |\n\n> 💡 没装的工具不影响其他功能，AI 会跳过不可用的工具并使用替代方案。\n\n---\n\n## 多 Provider 配置（Recon\u002FArena）\n\n`\u002Fsetup` → Recon Providers 管理，支持混合不同厂商 LLM：\n\n```\n🔗 Recon Providers（多 LLM 对抗分析）\n\n▸ gpt5-thinker → gpt-5.4 (yunwu.ai)\n  claude-challenger → claude-opus-4-6 (yunwu.ai)\n  deepseek-verifier → deepseek-chat (api.deepseek.com)\n  qwen-analyst → qwen-max (dashscope.aliyuncs.com)\n  doubao-scout → doubao-seed-2-0-pro (ark.cn-beijing.volces.com)\n  mimo-backup → mimo-v2.5-pro (api.xiaomimimo.com)\n  [+ 添加 Provider]\n```\n\n自动检测协议：\n- URL 含 `\u002Fanthropic` → Anthropic Messages API\n- 其他 → OpenAI Chat Completions API\n\n---\n\n## 算法架构\n\n```\nsrc\u002Falgorithms\u002F\n├── cav\u002F\n│   ├── pev\u002F                 # PEV 引擎（假设-执行-验证循环）\n│   ├── ccbteam-math\u002F        # 纯观测数学层（CR-EIG, ε_t, ρ_t）\n│   └── ccbteam-discipline\u002F  # 认知纪律层（R12 调用门 + R13 认知诚实）\n├── ccb-pev\u002F                 # \u002Frecon 命令 UI\n└── ReverseCliTool\u002F          # PentAGI 安全工具箱（Go 后端）\n```\n\n### ccbteam-math 核心算法\n\n| 算法 | 作用 |\n|------|------|\n| CR-EIG | 信息效率主算子 |\n| exploitability (ε_t) | 博弈论一阶可利用度 |\n| urgency (ρ_t) | 共识紧迫度 = 1 − ε_t |\n| rankGradients | 5 个 ∇H 排序（attack\u002Fswap\u002Foracle\u002Fchain\u002Fdiscretize） |\n| cavAdaptiveDelta | 自适应收敛阈值 |\n\n**设计红线**：Math Layer 只测量不干预，不写 prompt，不形成闭环。\n\n---\n\n## UI 布局\n\n```\n┌──────────────┬─────────────────────────────────────┐\n│ ▾ Tasks      │  主聊天区                             │\n│  ☐ task1     │                                      │\n│  ☑ task2     │  > 你的输入                           │\n│              │                                      │\n│ ▾ Memory     │  Haking: 回复...                     │\n│  • CLAUDE.md │                                      │\n│              │                                      │\n│ ▾ Buddy      │                                      │\n│  🐱 Mochi    │                                      │\n│              ├──────────────────────────────────────┤\n│              │  > _                                  │\n│              │  flash  in 0 · out 0 · cache 0   ¥0  │\n│              │  pro    in 0 · out 0 · cache 0   ¥0  │\n│              │  累计 ¥0 · pro 当前 2.5 折            │\n└──────────────┴──────────────────────────────────────┘\n```\n\n- `Ctrl+B` 切换侧边栏\n- 终端宽度 \u003C 80 列自动隐藏侧边栏；\u003C 70 列自动隐藏计费面板\n- 计费面板每秒轮询一次 `STATE.modelUsage` 累加值（cost-tracker 在 React 之外 mutate 全局，没有事件订阅）\n\n---\n\n## 开发\n\n```bash\nbun run dev          # 开发模式\nbun run build        # 构建到 dist\u002F\nbun run dev:inspect  # 调试模式（VS Code attach）\nbun test             # 运行测试\n```\n\n## 法律声明\n\n本工具仅供合法安全研究和教育用途。详见 [LEGAL.md](.\u002FLEGAL.md)。\n","Haking Code 是一个基于 AI 的网络安全终端 Agent，专为渗透测试和逆向工程设计。其核心功能包括第一性原理推导引擎、VulnHunter 自主猎洞引擎以及反致幻协议，通过 4 链对抗共识引擎确保推理的准确性和可靠性。该项目支持多种安全工具（如 nmap、hashcat 等）的集成，并能自动调度这些工具进行假设验证。此外，它还涵盖了广泛的攻击手法和技术，如钓鱼\u002F社工、C2 框架、EDR 免杀技术等。适合用于需要高度自动化且精确的安全评估场景，特别是在渗透测试、漏洞挖掘及逆向分析领域。",2,"2026-06-11 04:00:50","CREATED_QUERY"]