{
  "projectId": "solana-agent-kit",
  "title": "Solana Agent Kit 的工具转换与签名路径",
  "summary": "核心发行包将动作映射到不同 Agent 框架的工具格式，并通过注入的钱包对象签名或发送 Solana 交易。",
  "scope": "npm solana-agent-kit@2.0.10 的选定发布文件；REA 解析 1 个 JS 文件，静态分析。",
  "status": "partial",
  "analyzedAt": "2026-10-13T10:34:56.834378+00:00",
  "tool": {
    "name": "REA",
    "version": "6.4.0"
  },
  "findings": [
    {
      "title": "同一动作可适配多种模型工具接口",
      "detail": "发行入口包含 executeAction、createOpenAITools、createLangchainTools 与 schema 转换。Agent 框架的工具外壳与底层 action handler 分离。",
      "evidenceType": "code_inference",
      "evidenceIds": [
        "ev_d2c5669efa52dcd245fa989471c28d427f9ea308d038100011ae785b91c7eae7"
      ],
      "sourceUrls": [
        "https://registry.npmjs.org/solana-agent-kit/-/solana-agent-kit-2.0.10.tgz"
      ]
    },
    {
      "title": "签名和广播依赖外部钱包与 RPC",
      "detail": "sendTx 调用 agent.wallet.signTransaction 后交给 connection；另一分支要求钱包实现 signAndSendTransaction，缺失时抛出错误。不能把包的工具清单等同于用户已经授权这些操作。",
      "evidenceType": "code_inference",
      "evidenceIds": [
        "ev_d2c5669efa52dcd245fa989471c28d427f9ea308d038100011ae785b91c7eae7"
      ],
      "sourceUrls": [
        "https://registry.npmjs.org/solana-agent-kit/-/solana-agent-kit-2.0.10.tgz"
      ]
    }
  ],
  "limitations": [
    "只覆盖核心发行入口，不包含所有独立插件的实现。",
    "没有连接钱包或发送链上交易。",
    "静态代码不证明运行行为、完整风控、成交或收益；未审计服务端。",
    "没有登录、读取账户、连接钱包、签名、交易或执行目标代码。"
  ],
  "artifacts": [
    {
      "label": "solana-agent-kit@2.0.10",
      "url": "https://registry.npmjs.org/solana-agent-kit/-/solana-agent-kit-2.0.10.tgz",
      "sha256": "113858513146591489d34e99b95137362acce22735f2faf9f958c3f362ee7b13"
    },
    {
      "label": "dist--index.js",
      "url": "https://registry.npmjs.org/solana-agent-kit/-/solana-agent-kit-2.0.10.tgz",
      "sha256": "497a98b6dbce5bf72bf1ccbc74a445dc18411a64b0d40afe4964f34e863e4018"
    }
  ],
  "evidenceIds": [
    "ev_d2c5669efa52dcd245fa989471c28d427f9ea308d038100011ae785b91c7eae7"
  ],
  "reportUrl": "/research/rea/solana-agent-kit.json",
  "coverage": {
    "parsedFiles": 1,
    "parseFailures": 0,
    "semanticCoverage": "unknown",
    "rootArtifactSha256": "bd25cc8351ac8bbd55a8a19cd28e80ff52a868fb267333c2a3e81a1b04ddd4c7",
    "inputFileCount": 1,
    "inputBytes": 18065,
    "npmIntegrityVerified": true,
    "analysisResult": "completed"
  }
}
