Replace the restricted workspace_rg parameter mapping with native args and optional cwd. Preserve rg output and exit codes, and reuse process cancellation and output_read pagination so large search results remain accessible. Ask remains read-only within the workspace; Execute uses current-account permissions. Validation: focused regression 169 passed, 1 skipped; typecheck and lint passed. Real DeepSeek Ask and Execute pagination scenarios passed with six counted requests in the successful run; an earlier failed fixture run has no retained request count. Full-suite validation is not green: the recorded run had unrelated failures and the latest run timed out without a summary. The remote Agent does not use this local execution path. Release note: 直连模型可使用 ripgrep 原生参数搜索文件并保留原生结果,大输出可通过 output_read 完整续读。Ask 保持工作区只读,Execute 使用当前账号权限。
153 lines
4.6 KiB
TypeScript
153 lines
4.6 KiB
TypeScript
export type BuiltinModelToolSummary = {
|
|
name: string
|
|
displayName: string
|
|
description: string
|
|
access: 'read' | 'write'
|
|
group: 'filesystem' | 'browser' | 'web' | 'programming' | 'image'
|
|
}
|
|
|
|
export const builtinModelTools = [
|
|
{
|
|
name: 'generate_image',
|
|
displayName: 'Generate or edit image',
|
|
description: 'Generate or edit an image with an enabled image model and save it in this conversation.',
|
|
access: 'write',
|
|
group: 'image'
|
|
},
|
|
{
|
|
name: 'workspace_rg',
|
|
displayName: '搜索工作区',
|
|
description:
|
|
'使用内置 ripgrep 原生参数搜索或列出文件;Ask 限于工作区只读搜索,Execute 使用当前账号权限,长输出可分页续读。',
|
|
access: 'read',
|
|
group: 'filesystem'
|
|
},
|
|
{
|
|
name: 'workspace_read_text',
|
|
displayName: '读取工作区文本',
|
|
description: '按行分页读取当前工作区内的 UTF-8 文本文件。',
|
|
access: 'read',
|
|
group: 'filesystem'
|
|
},
|
|
{
|
|
name: 'workspace_apply_patch',
|
|
displayName: '应用工作区补丁',
|
|
description:
|
|
'使用 apply_patch 格式在当前工作区内新增、修改或删除 UTF-8 文本文件。',
|
|
access: 'write',
|
|
group: 'filesystem'
|
|
},
|
|
{
|
|
name: 'browser_navigate',
|
|
displayName: '浏览器导航',
|
|
description: '在隔离浏览器中打开当前设备可连接的 HTTP 或 HTTPS 页面。',
|
|
access: 'write',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'browser_snapshot',
|
|
displayName: '读取浏览器快照',
|
|
description: '读取当前页面的有界可访问性快照;可编辑值会被隐藏。',
|
|
access: 'read',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'browser_click',
|
|
displayName: '点击浏览器元素',
|
|
description: '点击最近一次浏览器快照中的可见元素。',
|
|
access: 'write',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'browser_type',
|
|
displayName: '输入浏览器文本',
|
|
description: '向可编辑页面元素(包括密码框)输入文本;不支持上传文件。',
|
|
access: 'write',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'browser_select',
|
|
displayName: '选择浏览器选项',
|
|
description: '在最近一次快照标识的原生选择控件中选择值。',
|
|
access: 'write',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'browser_back',
|
|
displayName: '浏览器返回',
|
|
description: '在隔离浏览器的历史记录中返回上一页。',
|
|
access: 'write',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'browser_screenshot',
|
|
displayName: '截取浏览器页面',
|
|
description: '截取当前可见页面区域、约 200KB 的有界 JPEG 图片。',
|
|
access: 'read',
|
|
group: 'browser'
|
|
},
|
|
{
|
|
name: 'web_search',
|
|
displayName: '联网搜索',
|
|
description:
|
|
'通过 Exa 托管 MCP 搜索公开网页,查询词会发送给第三方服务。',
|
|
access: 'read',
|
|
group: 'web'
|
|
},
|
|
{
|
|
name: 'web_fetch',
|
|
displayName: '读取网页',
|
|
description:
|
|
'通过 Exa 托管 MCP 读取公开 HTTP 或 HTTPS 网页的有界正文。',
|
|
access: 'read',
|
|
group: 'web'
|
|
},
|
|
{
|
|
name: 'process_execute',
|
|
displayName: '进程执行',
|
|
description:
|
|
'使用当前用户权限运行 PowerShell、Bash 或 Sh 命令,可指定工作目录;长输出保留完整内容并支持分页续读。',
|
|
access: 'write',
|
|
group: 'programming'
|
|
},
|
|
{
|
|
name: 'output_read',
|
|
displayName: '续读工具输出',
|
|
description: '按 cursor 分页读取当前会话已保留的搜索、进程或 Subagent 输出;会话释放后失效。',
|
|
access: 'read',
|
|
group: 'programming'
|
|
},
|
|
{
|
|
name: 'subagent_delegate',
|
|
displayName: '编程 Subagent',
|
|
description:
|
|
'将聚焦任务委派给同一模型连接,继承当前工作模式和工作区;长输出可分页续读。',
|
|
access: 'read',
|
|
group: 'programming'
|
|
}
|
|
] as const satisfies readonly BuiltinModelToolSummary[]
|
|
|
|
export const builtinModelToolGroups = [
|
|
{
|
|
id: 'filesystem',
|
|
name: '工作区文件',
|
|
description:
|
|
'搜索和分页读取工作区文件;Execute 模式还可通过补丁新增、修改或删除文件。',
|
|
tools: builtinModelTools.filter((tool) => tool.group === 'filesystem')
|
|
},
|
|
{
|
|
id: 'web',
|
|
name: '联网搜索',
|
|
description:
|
|
'启用后,直连模型可在 Ask 和 Execute 模式搜索并读取公开网页。',
|
|
tools: builtinModelTools.filter((tool) => tool.group === 'web')
|
|
},
|
|
{
|
|
id: 'programming',
|
|
name: '开发工具',
|
|
description:
|
|
'直连模型可运行项目命令,或将聚焦的开发任务委派给继承当前模式的 Subagent。',
|
|
tools: builtinModelTools.filter((tool) => tool.group === 'programming')
|
|
}
|
|
] as const
|