[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80447":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":28,"discoverSource":29},80447,"deepseek-harness","morlay\u002Fdeepseek-harness","morlay","WIP 自用鲸鱼鞍","",null,"TypeScript",54,4,53,1,0,2,42.3,"MIT License",false,"hashline",[23,24],"deepseek","opencode","2026-06-12 04:01:28","# Deekseep harnness\n\n基于 [pi](https:\u002F\u002Fpi.dev\u002F) 的自定义 coding agent，提供中文工具描述和增强的文件操作工具。\n\n## 工具\n\n### read — 读取文件\n\n读取文件内容，支持文本和图片（jpg\u002Fpng\u002Fgif\u002Fwebp）。文本输出按行数或大小自动截断，大文件用 `offset`\u002F`limit` 分段读取。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `path` | string | 文件路径（相对或绝对） |\n| `offset` | number? | 起始行号，从 1 开始 |\n| `limit` | number? | 最大读取行数 |\n\n> 使用 read 而不是 bash(cat\u002Fbat\u002Fsed)。目录列表请用 find。\n\n### grep — 正则搜索\n\n正则搜索文本（ripgrep），遵守 `.gitignore`。按文件拆分返回匹配行（`file:line: content`）。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `pattern` | string | 正则匹配模式（PCRE），或 `literal: true` 时作为字面字符串 |\n| `path` | string? | 搜索目录或文件，默认当前目录 |\n| `glob` | string? | 文件过滤，如 `*.ts` 或 `**\u002F*.spec.ts` |\n| `ignoreCase` | boolean? | 忽略大小写 |\n| `literal` | boolean? | 将 pattern 视为字面字符串而非正则 |\n| `context` | number? | 匹配行前后各显示的行数 |\n| `limit` | number? | 最大匹配数 |\n\n> 使用 grep 而不是 bash(rg)。\n\n### edit — 精确替换\n\n精确替换文件内容（`oldText`\u002F`newText`）。每个 `oldText` 必须在原始文件中唯一、不重叠地匹配。支持单文件多处非重叠编辑。不匹配时抛出错误。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `path` | string | 文件路径 |\n| `edits` | { oldText, newText }[] | 一次或多次精确替换，基于原始文件匹配，非增量式 |\n\n> 邻近或重叠的改动合并为一次 edit。`oldText` 尽量简短但保持唯一。创建新文件或整体覆盖用 write。\n\n### write — 创建\u002F覆盖\n\n创建或覆盖文件。文件不存在时自动创建（含父目录），存在时整体覆盖。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `path` | string | 文件路径 |\n| `content` | string | 要写入的完整内容 |\n\n> 新建文件或整体覆盖用 write，精确修改用 edit。\n\n### move — 移动\u002F重命名\u002F删除\n\n移动或重命名文件。目标父目录不存在时自动创建。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `path` | string | 源文件路径 |\n| `newPath` | string | 目标路径。设为 `\u002Fdev\u002Fnull` 时删除文件 |\n\n> 返回 `M \u003Cpath> -> \u003CnewPath>`（移动）或 `D \u003Cpath>`（删除）。\n\n### find — 搜索文件\n\n按 glob 模式搜索文件，遵守 `.gitignore`。返回匹配文件的相对路径列表。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `pattern` | string | glob 模式，如 `*.ts`、`**\u002F*.json` |\n| `path` | string? | 搜索目录 |\n| `limit` | number? | 最大结果数 |\n\n> 使用 find 而不是 bash(find\u002Ffd)。\n\n### bash — 执行命令\n\n在当前工作目录执行命令，返回 stdout 和 stderr。内置 OS 级沙箱约束文件系统和网络访问。Shell 命令通过权限策略校验（默认拒绝所有命令，需在沙箱配置中显式允许）。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `command` | string | 要执行的单条命令 |\n| `timeout` | number? | 超时秒数 |\n\n> 内置工具能解决的问题，请勿使用 bash。禁止 `&&`、`;` 多命令串联。\n\n### astgrep — AST 搜索\n\nAST 模式搜索代码结构，不受格式\u002F空格干扰。使用 `$NAME` 匹配标识符，`$$$NAME` 匹配多节点。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `pattern` | string | AST 匹配模式 |\n| `lang` | string? | 解析语言（ts\u002Fjs\u002Fcss\u002Fgo\u002Frust\u002Fpython…） |\n| `path` | string? | 搜索的目录或文件 |\n\n### astedit — AST 改写\n\nAST 结构化改写。pattern 搜索匹配，rewrite 替换（`$` 变量展开为匹配到的原值）。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `pattern` | string | AST 匹配模式 |\n| `rewrite` | string | 替换模板，使用相同的 `$` 变量 |\n| `lang` | string? | 解析语言 |\n| `path` | string? | 搜索的目录或文件 |\n\n### webfetch — 获取网页\n\n获取指定 URL 的内容，自动 HTML→Markdown 转换（基于 Content-Type 判断）。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| `url` | string | 要获取的 URL |\n| `format` | auto\\|html\\|json\\|markdown? | 期望的返回格式，默认 auto |\n| `timeout` | number? | 超时时间（ms） |\n| `maxBytes` | number? | 最大响应体大小（bytes） |\n\n> 使用 webfetch 而不是 bash(curl\u002Fwget)。\n\n---\n\n## 沙箱配置\n\nbash 命令通过 OS 级沙箱（macOS sandbox-exec \u002F Linux bubblewrap）限制文件系统和网络访问，并在执行前通过 Shell 命令权限策略校验。\n\n### 配置文件\n\n| 路径 | 作用域 |\n|------|--------|\n| `~\u002F.pi\u002Fagent\u002Fsandbox.json` | 全局，所有项目生效 |\n| `\u003Ccwd>\u002F.pi\u002Fsandbox.json` | 当前项目，优先级高于全局 |\n\n合并优先级：`DEFAULT_CONFIG → 全局 → 项目`。\n\n### 配置项\n\n```json\n{\n  \"enabled\": true,\n  \"network\": {\n    \"allowedDomains\": [],\n    \"deniedDomains\": []\n  },\n  \"filesystem\": {\n    \"denyRead\": [],\n    \"allowRead\": [],\n    \"denyWrite\": [],\n    \"allowWrite\": [\".\"]\n  },\n  \"shell\": {\n    \"allowMultiple\": false,\n    \"allowPipe\": true,\n    \"permissons\": {\n      \"*\": \"deny\",\n      \"git *\": \"allow\",\n      \"rg *\": \"allow\"\n    }\n  }\n}\n```\n\n| 字段 | 说明 |\n|------|------|\n| `enabled` | `false` 时禁用沙箱 |\n| `network.allowedDomains` | 允许的域名，支持 `*` 和 `*.example.com` 通配；空数组拒绝所有网络 |\n| `network.deniedDomains` | 显式拒绝的域名，优先级高于 `allowedDomains` |\n| `filesystem.denyRead` | 拒绝读取的路径 |\n| `filesystem.allowRead` | 允许读取的路径（OS 沙箱层） |\n| `filesystem.denyWrite` | 拒绝写入的路径，优先级最高 |\n| `filesystem.allowWrite` | 允许写入的路径，`\".\"` 展开为工作目录 |\n\n### 禁用沙箱\n\n```json\n{ \"enabled\": false }\n```\n\n### Shell 命令权限\n\nbash 命令在执行前通过权限策略校验，基于命令名和参数按具体性优先级匹配。**未匹配任何模式时默认拒绝**。\n\n| 字段 | 说明 |\n|------|------|\n| `allowMultiple` | `false` 时禁止 `&&`、`;` 多命令串联 |\n| `allowPipe` | `false` 时禁止 `|` 管道 |\n| `permissons` | 命令权限映射，键为匹配模式，值为 `\"allow\"` \u002F `\"deny\"` |\n\n**模式语法**：\n\n| 模式 | 匹配 |\n|------|------|\n| `\"*\"` | 所有命令 |\n| `\"git *\"` | 命令名为 `git`，任意参数 |\n| `\"git push *\"` | `git push`，任意参数 |\n| `\"git reset --hard\"` | `git reset` 且参数包含 `--hard`（包含匹配） |\n\n**优先级**：非 `*` 部分越多越具体；同具体性时原始字符串越长越优先。\n\n---\n\n## 其他\n\n- 系统提示和工具描述均使用中文\n- bash 自动 `SandboxManager.wrapWithSandbox()` 包装，受 `.pi\u002Fsandbox.json` 约束\n","morlay\u002Fdeepseek-harness 是一个基于 pi 的自定义 coding agent，提供了多种文件操作和代码搜索工具。其核心功能包括读取、搜索、编辑、移动文件以及执行命令等，支持中文工具描述，并且通过增强的文件操作工具（如 read, grep, edit, write, move, find）提供更便捷的操作体验。此外，项目还集成了 AST 搜索与改写工具(astgrep, astedit)，能够以结构化方式处理代码；webfetch 工具则用于获取网页内容并自动转换格式。内置的沙箱配置确保了 bash 命令的安全执行环境。该项目适用于需要高效进行代码管理和文本处理的开发场景。","2026-06-11 04:00:47","CREATED_QUERY"]