name: "query_execution_result"
# 注意：这是一个内部工具，不执行外部命令
# command 字段设置为特殊值，实际功能需要在代码中实现
# 实现位置：internal/mcp/server.go 或 internal/handler/agent.go
command: "internal:query_execution_result"
enabled: true
# 简短描述（用于工具列表，减少token消耗）
short_description: "查询工具执行结果，支持分页、搜索和过滤大结果集"
# 工具详细描述
description: |
  查询工具执行结果工具，用于查询已保存的工具执行结果。当工具返回的结果过大时，系统会自动保存完整结果，此工具用于按需查询这些结果。

  **主要功能：**
  - 分页查询：支持分页浏览大结果集，避免一次性加载过多数据
  - 全文搜索：在结果中搜索特定关键词
  - 条件过滤：根据条件过滤结果（如只显示包含"error"的行）
  - 元信息查询：获取结果的基本信息（总行数、总页数等）

  **使用场景：**
  - 当工具返回的结果超过阈值（如50KB）时，系统会自动保存结果
  - 需要查看完整结果时，使用此工具按需查询
  - 需要搜索特定信息时，使用搜索功能
  - 需要过滤特定类型的内容时，使用过滤功能

  **工作流程：**
  1. 工具执行完成后，如果结果过大，系统会保存完整结果并返回执行ID
  2. 使用此工具，通过 execution_id 查询结果
  3. 可以分页浏览、搜索关键词或过滤条件

  **注意事项：**
  - execution_id 是必需参数，从工具执行的返回消息中获取
  - 默认每页返回100行，可以通过 limit 参数调整
  - 搜索和过滤功能可以组合使用
  - 结果会保留一段时间（默认7天），之后可能被清理

# 参数定义
parameters:
  - name: "execution_id"
    type: "string"
    description: |
      工具执行的ID。从工具执行完成后的返回消息中获取。

      **格式要求：**
      - 执行ID字符串，格式通常为 "exec_xxxxx" 或 UUID
      - 必需参数，不能为空

      **示例值：**
      - "exec_12345"
      - "550e8400-e29b-41d4-a716-446655440000"

      **如何获取：**
      - 当工具返回大结果时，系统会在消息中提供 execution_id
      - 格式示例：`工具执行完成。结果已保存（ID: exec_12345）`

      **注意事项：**
      - 确保 execution_id 正确，否则查询会失败
      - execution_id 区分大小写
    required: true
    format: "positional"
    position: 0

  - name: "page"
    type: "integer"
    description: |
      要查询的页码。从1开始计数。

      **格式要求：**
      - 正整数，从1开始
      - 如果不指定，默认为1（第一页）

      **示例值：**
      - 1 (第一页，默认)
      - 2 (第二页)
      - 10 (第十页)

      **注意事项：**
      - 页码不能小于1
      - 如果指定的页码超过总页数，会返回空结果
      - 建议先查询第一页了解结果结构，再决定是否需要查看其他页
    required: false
    default: 1

  - name: "limit"
    type: "integer"
    description: |
      每页返回的行数。控制单次查询返回的数据量。

      **格式要求：**
      - 正整数，建议范围：10-500
      - 如果不指定，默认为100行

      **示例值：**
      - 50 (每页50行)
      - 100 (每页100行，默认)
      - 200 (每页200行)

      **注意事项：**
      - 较小的 limit 可以减少单次查询的token消耗
      - 较大的 limit 可以减少查询次数，但会增加单次返回的数据量
      - 建议根据实际需要调整，平衡查询次数和数据量
    required: false
    default: 100

  - name: "search"
    type: "string"
    description: |
      搜索关键词。在结果中搜索包含此关键词的行。

      **格式要求：**
      - 任意字符串
      - 搜索是大小写敏感的
      - 支持部分匹配

      **示例值：**
      - "open" (搜索包含"open"的行，如开放端口)
      - "error" (搜索包含"error"的行)
      - "CVE-2023" (搜索包含CVE编号的行)
      - "80/tcp" (搜索特定端口)

      **使用场景：**
      - 快速定位关键信息
      - 查找特定类型的条目
      - 过滤感兴趣的内容

      **注意事项：**
      - 搜索会在所有行中进行，可能返回多页结果
      - 搜索结果也会分页返回
      - 可以结合 page 和 limit 参数控制返回结果
      - 如果同时指定 search 和 filter，会先应用 filter，再在结果中搜索
    required: false

  - name: "filter"
    type: "string"
    description: |
      过滤条件。只返回包含此关键词的行。

      **格式要求：**
      - 任意字符串
      - 过滤是大小写敏感的
      - 支持部分匹配

      **示例值：**
      - "error" (只返回包含"error"的行)
      - "warning" (只返回包含"warning"的行)
      - "open" (只返回包含"open"的行)
      - "200" (只返回包含"200"的行，如HTTP状态码)

      **使用场景：**
      - 只查看错误信息
      - 只查看特定状态的结果
      - 过滤掉不感兴趣的内容

      **注意事项：**
      - 过滤会在所有行中进行，可能返回多页结果
      - 过滤结果也会分页返回
      - 可以结合 page 和 limit 参数控制返回结果
      - 如果同时指定 search 和 filter，会先应用 filter，再在结果中搜索
    required: false

