{"data":{"skill":{"slug":"internet-court-0g-compute","name":"0g-compute","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/0g/0g-compute","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"8cc81936-e3c3-472d-b77e-59a344ec7a10","skill_id":"320502ef-920e-487b-8c6b-2de59932edad","version":2,"content_hash":"v3:3f6e026a3363e0954ede7bef0cfe88d4475de137:5af544f552f1bba017f20311dd09fef6a7d244cd6ed05574cc30f158449ea176:7fa805a7f512490aaf4b3fd3b966315cc377e977b26f97a9853b2874fccea1cd:736b696c6c732f696e7465726e65742d636f7572742f30672d636f6d70757465:386e238ecf8e4617e308df23e50fb68e","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"Most alerts are scanner misclassifications of Markdown, documentation links, standard installation paths, local configuration, and intended 0G examples. Two image-download fetches are confirmed because provider-supplied URLs lack destination and size controls. Financial commands also lack explicit approval guardrails.","remediation":[{"issue":"Provider-supplied image URLs are downloaded without trust or resource controls.","severity":"high","suggestion":"Require HTTPS, allowlist trusted hosts, block private addresses and unsafe redirects, verify image types, stream responses, and enforce strict byte and time limits."},{"issue":"Deposit, transfer, and refund examples do not require explicit user confirmation.","severity":"medium","suggestion":"Require confirmation before every transaction and display the network, wallet, provider, amount, fee estimate, and expected effect before execution."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"README.md","line_end":20,"line_start":20},{"file":"README.md","line_end":23,"line_start":23},{"file":"README.md","line_end":26,"line_start":26},{"file":"references/account-management.md","line_end":218,"line_start":218},{"file":"references/account-management.md","line_end":219,"line_start":219},{"file":"references/account-management.md","line_end":568,"line_start":568},{"file":"references/examples/speech-to-text.md","line_end":238,"line_start":238},{"file":"references/examples/speech-to-text.md","line_end":114,"line_start":114},{"file":"references/examples/speech-to-text.md","line_end":143,"line_start":143},{"file":"references/examples/streaming-chat.md","line_end":277,"line_start":277},{"file":"references/examples/streaming-chat.md","line_end":113,"line_start":113},{"file":"references/examples/streaming-chat.md","line_end":144,"line_start":144},{"file":"references/examples/streaming-chat.md","line_end":450,"line_start":450},{"file":"references/examples/text-to-image.md","line_end":188,"line_start":188},{"file":"references/examples/text-to-image.md","line_end":280,"line_start":280},{"file":"references/examples/text-to-image.md","line_end":440,"line_start":440},{"file":"references/examples/text-to-image.md","line_end":457,"line_start":457},{"file":"references/examples/text-to-image.md","line_end":67,"line_start":67},{"file":"references/examples/text-to-image.md","line_end":111,"line_start":111},{"file":"references/examples/text-to-image.md","line_end":138,"line_start":138},{"file":"references/examples/text-to-image.md","line_end":389,"line_start":389},{"file":"references/inference.md","line_end":131,"line_start":131},{"file":"references/inference.md","line_end":156,"line_start":156},{"file":"references/inference.md","line_end":236,"line_start":236},{"file":"references/inference.md","line_end":273,"line_start":273},{"file":"references/inference.md","line_end":296,"line_start":296},{"file":"references/inference.md","line_end":16,"line_start":16},{"file":"references/inference.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":73,"line_start":73},{"file":"SKILL.md","line_end":27,"line_start":27},{"file":"SKILL.md","line_end":28,"line_start":28},{"file":"SKILL.md","line_end":56,"line_start":56},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":171,"line_start":171},{"file":"SKILL.md","line_end":172,"line_start":172},{"file":"SKILL.md","line_end":173,"line_start":173},{"file":"SKILL.md","line_end":175,"line_start":175}]},{"factor":"filesystem","evidence":[{"file":"README.md","line_end":11,"line_start":11},{"file":"README.md","line_end":12,"line_start":12},{"file":"README.md","line_end":13,"line_start":13},{"file":"README.md","line_end":20,"line_start":20},{"file":"README.md","line_end":23,"line_start":23},{"file":"README.md","line_end":26,"line_start":26},{"file":"README.md","line_end":11,"line_start":11},{"file":"README.md","line_end":12,"line_start":12},{"file":"README.md","line_end":13,"line_start":13},{"file":"README.md","line_end":20,"line_start":20},{"file":"README.md","line_end":23,"line_start":23},{"file":"README.md","line_end":26,"line_start":26},{"file":"references/examples/README.md","line_end":145,"line_start":145},{"file":"references/examples/README.md","line_end":146,"line_start":146},{"file":"references/examples/README.md","line_end":147,"line_start":147},{"file":"references/examples/README.md","line_end":163,"line_start":163},{"file":"references/examples/speech-to-text.md","line_end":299,"line_start":299},{"file":"references/examples/speech-to-text.md","line_end":383,"line_start":383},{"file":"references/examples/speech-to-text.md","line_end":672,"line_start":672},{"file":"references/examples/speech-to-text.md","line_end":287,"line_start":287},{"file":"references/examples/speech-to-text.md","line_end":298,"line_start":298},{"file":"references/examples/speech-to-text.md","line_end":303,"line_start":303},{"file":"references/examples/speech-to-text.md","line_end":383,"line_start":383},{"file":"references/examples/speech-to-text.md","line_end":225,"line_start":225},{"file":"references/examples/speech-to-text.md","line_end":528,"line_start":528},{"file":"references/examples/speech-to-text.md","line_end":341,"line_start":341},{"file":"references/examples/speech-to-text.md","line_end":676,"line_start":676},{"file":"references/examples/streaming-chat.md","line_end":250,"line_start":250},{"file":"references/examples/streaming-chat.md","line_end":273,"line_start":273},{"file":"references/examples/streaming-chat.md","line_end":645,"line_start":645},{"file":"references/examples/streaming-chat.md","line_end":646,"line_start":646},{"file":"references/examples/text-to-image.md","line_end":194,"line_start":194},{"file":"references/examples/text-to-image.md","line_end":228,"line_start":228},{"file":"references/examples/text-to-image.md","line_end":325,"line_start":325},{"file":"references/examples/text-to-image.md","line_end":442,"line_start":442},{"file":"references/examples/text-to-image.md","line_end":446,"line_start":446},{"file":"references/examples/text-to-image.md","line_end":227,"line_start":227},{"file":"references/examples/text-to-image.md","line_end":194,"line_start":194},{"file":"references/examples/text-to-image.md","line_end":325,"line_start":325},{"file":"references/examples/text-to-image.md","line_end":442,"line_start":442},{"file":"references/examples/text-to-image.md","line_end":446,"line_start":446},{"file":"references/examples/text-to-image.md","line_end":263,"line_start":263},{"file":"references/examples/text-to-image.md","line_end":271,"line_start":271},{"file":"references/examples/text-to-image.md","line_end":454,"line_start":454}]},{"factor":"external_commands","evidence":[{"file":"references/account-management.md","line_end":233,"line_start":232},{"file":"references/account-management.md","line_end":234,"line_start":233},{"file":"references/account-management.md","line_end":235,"line_start":234},{"file":"references/account-management.md","line_end":271,"line_start":266},{"file":"references/account-management.md","line_end":272,"line_start":271},{"file":"references/account-management.md","line_end":273,"line_start":272},{"file":"references/account-management.md","line_end":280,"line_start":273},{"file":"references/account-management.md","line_end":281,"line_start":280},{"file":"references/account-management.md","line_end":588,"line_start":574},{"file":"references/account-management.md","line_end":602,"line_start":588},{"file":"references/account-management.md","line_end":606,"line_start":602},{"file":"references/examples/speech-to-text.md","line_end":202,"line_start":191},{"file":"references/examples/speech-to-text.md","line_end":208,"line_start":202},{"file":"references/examples/speech-to-text.md","line_end":209,"line_start":208},{"file":"references/examples/speech-to-text.md","line_end":210,"line_start":209},{"file":"references/examples/speech-to-text.md","line_end":238,"line_start":210},{"file":"references/examples/speech-to-text.md","line_end":249,"line_start":238},{"file":"references/examples/speech-to-text.md","line_end":288,"line_start":249},{"file":"references/examples/speech-to-text.md","line_end":294,"line_start":288},{"file":"references/examples/speech-to-text.md","line_end":306,"line_start":294},{"file":"references/examples/speech-to-text.md","line_end":307,"line_start":306},{"file":"references/examples/speech-to-text.md","line_end":312,"line_start":307},{"file":"references/examples/speech-to-text.md","line_end":321,"line_start":312},{"file":"references/examples/speech-to-text.md","line_end":322,"line_start":321},{"file":"references/examples/speech-to-text.md","line_end":328,"line_start":322},{"file":"references/examples/speech-to-text.md","line_end":332,"line_start":328},{"file":"references/examples/speech-to-text.md","line_end":333,"line_start":332},{"file":"references/examples/speech-to-text.md","line_end":341,"line_start":333},{"file":"references/examples/speech-to-text.md","line_end":353,"line_start":341},{"file":"references/examples/speech-to-text.md","line_end":380,"line_start":353},{"file":"references/examples/speech-to-text.md","line_end":384,"line_start":380},{"file":"references/examples/speech-to-text.md","line_end":388,"line_start":384},{"file":"references/examples/speech-to-text.md","line_end":389,"line_start":388},{"file":"references/examples/speech-to-text.md","line_end":392,"line_start":389},{"file":"references/examples/speech-to-text.md","line_end":396,"line_start":392},{"file":"references/examples/speech-to-text.md","line_end":402,"line_start":396},{"file":"references/examples/speech-to-text.md","line_end":404,"line_start":402},{"file":"references/examples/speech-to-text.md","line_end":407,"line_start":404},{"file":"references/examples/speech-to-text.md","line_end":410,"line_start":407},{"file":"references/examples/speech-to-text.md","line_end":418,"line_start":410},{"file":"references/examples/speech-to-text.md","line_end":421,"line_start":418},{"file":"references/examples/speech-to-text.md","line_end":426,"line_start":421},{"file":"references/examples/speech-to-text.md","line_end":435,"line_start":426},{"file":"references/examples/speech-to-text.md","line_end":576,"line_start":574},{"file":"references/examples/speech-to-text.md","line_end":680,"line_start":676},{"file":"references/examples/streaming-chat.md","line_end":202,"line_start":179},{"file":"references/examples/streaming-chat.md","line_end":211,"line_start":202},{"file":"references/examples/streaming-chat.md","line_end":216,"line_start":211},{"file":"references/examples/streaming-chat.md","line_end":217,"line_start":216},{"file":"references/examples/streaming-chat.md","line_end":226,"line_start":217}]},{"factor":"env_access","evidence":[{"file":"references/account-management.md","line_end":217,"line_start":217},{"file":"references/account-management.md","line_end":222,"line_start":222},{"file":"references/account-management.md","line_end":569,"line_start":569},{"file":"references/account-management.md","line_end":217,"line_start":217},{"file":"references/account-management.md","line_end":222,"line_start":222},{"file":"references/account-management.md","line_end":569,"line_start":569},{"file":"references/account-management.md","line_end":222,"line_start":222},{"file":"references/account-management.md","line_end":569,"line_start":569},{"file":"references/examples/speech-to-text.md","line_end":143,"line_start":143},{"file":"references/examples/speech-to-text.md","line_end":144,"line_start":144},{"file":"references/examples/speech-to-text.md","line_end":145,"line_start":145},{"file":"references/examples/speech-to-text.md","line_end":149,"line_start":149},{"file":"references/examples/speech-to-text.md","line_end":274,"line_start":274},{"file":"references/examples/speech-to-text.md","line_end":311,"line_start":311},{"file":"references/examples/speech-to-text.md","line_end":143,"line_start":143},{"file":"references/examples/speech-to-text.md","line_end":144,"line_start":144},{"file":"references/examples/speech-to-text.md","line_end":145,"line_start":145},{"file":"references/examples/speech-to-text.md","line_end":149,"line_start":149},{"file":"references/examples/speech-to-text.md","line_end":274,"line_start":274},{"file":"references/examples/speech-to-text.md","line_end":311,"line_start":311},{"file":"references/examples/speech-to-text.md","line_end":67,"line_start":67},{"file":"references/examples/speech-to-text.md","line_end":136,"line_start":136},{"file":"references/examples/speech-to-text.md","line_end":141,"line_start":141},{"file":"references/examples/speech-to-text.md","line_end":117,"line_start":117},{"file":"references/examples/speech-to-text.md","line_end":274,"line_start":274},{"file":"references/examples/speech-to-text.md","line_end":275,"line_start":275},{"file":"references/examples/speech-to-text.md","line_end":311,"line_start":311},{"file":"references/examples/streaming-chat.md","line_end":144,"line_start":144},{"file":"references/examples/streaming-chat.md","line_end":148,"line_start":148},{"file":"references/examples/streaming-chat.md","line_end":149,"line_start":149},{"file":"references/examples/streaming-chat.md","line_end":189,"line_start":189},{"file":"references/examples/streaming-chat.md","line_end":201,"line_start":201},{"file":"references/examples/streaming-chat.md","line_end":144,"line_start":144},{"file":"references/examples/streaming-chat.md","line_end":148,"line_start":148},{"file":"references/examples/streaming-chat.md","line_end":149,"line_start":149},{"file":"references/examples/streaming-chat.md","line_end":189,"line_start":189},{"file":"references/examples/streaming-chat.md","line_end":201,"line_start":201},{"file":"references/examples/streaming-chat.md","line_end":66,"line_start":66},{"file":"references/examples/streaming-chat.md","line_end":138,"line_start":138},{"file":"references/examples/streaming-chat.md","line_end":141,"line_start":141},{"file":"references/examples/streaming-chat.md","line_end":116,"line_start":116},{"file":"references/examples/streaming-chat.md","line_end":189,"line_start":189},{"file":"references/examples/streaming-chat.md","line_end":190,"line_start":190},{"file":"references/examples/streaming-chat.md","line_end":201,"line_start":201},{"file":"references/examples/streaming-chat.md","line_end":574,"line_start":574},{"file":"references/examples/streaming-chat.md","line_end":578,"line_start":578},{"file":"references/examples/text-to-image.md","line_end":138,"line_start":138},{"file":"references/examples/text-to-image.md","line_end":139,"line_start":139},{"file":"references/examples/text-to-image.md","line_end":143,"line_start":143},{"file":"references/examples/text-to-image.md","line_end":203,"line_start":203}]}],"critical_findings":[],"high_findings":[{"title":"Fetch API call","locations":[{"file":"references/examples/text-to-image.md","line_end":188,"line_start":188}],"confidence":0.94,"description":"const response = await fetch(url);","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The example fetches a provider-supplied image URL without destination, redirect, response-size, or content-type controls. This permits SSRF and resource exhaustion."},{"title":"Fetch API call","locations":[{"file":"references/examples/text-to-image.md","line_end":440,"line_start":440}],"confidence":0.94,"description":"const response = await fetch(imageUrl);","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The example fetches a provider-supplied image URL without destination, redirect, response-size, or content-type controls. This permits SSRF and resource exhaustion."}],"medium_findings":[{"title":"Financial Commands Lack Confirmation Guardrails","locations":[{"file":"SKILL.md","line_end":46,"line_start":42},{"file":"SKILL.md","line_end":136,"line_start":131},{"file":"references/account-management.md","line_end":206,"line_start":168}],"confidence":0.88,"description":"The skill presents token deposit, transfer, and refund commands without requiring explicit approval or rechecking the network, provider, and amount before execution.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The on-chain commands and missing approval requirement are explicit. Impact still depends on an agent having wallet access and command permissions."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":9,"total_lines":4051,"audit_model":"codex","audited_at":"2026-07-19T10:05:12.081+00:00","created_at":"2026-07-19T11:17:06.400596+00:00","static_findings":[{"id":"network:README.md:20:hardcoded-url","file":"README.md","pattern":"Hardcoded URL","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.claude/skills/0g-compute","category":"network","line_end":20,"severity":"low","line_start":20},{"id":"network:README.md:23:hardcoded-url","file":"README.md","pattern":"Hardcoded URL","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.agents/skills/0g-compute","category":"network","line_end":23,"severity":"low","line_start":23},{"id":"network:README.md:26:hardcoded-url","file":"README.md","pattern":"Hardcoded URL","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.openclaw/skills/0g-compute","category":"network","line_end":26,"severity":"low","line_start":26},{"id":"filesystem:README.md:11:hidden-file-in-home-directory","file":"README.md","pattern":"Hidden file in home directory","snippet":"- **Claude Code** — `~/.claude/skills/0g-compute/`","category":"filesystem","line_end":11,"severity":"high","line_start":11},{"id":"filesystem:README.md:12:hidden-file-in-home-directory","file":"README.md","pattern":"Hidden file in home directory","snippet":"- **OpenAI Codex** — `~/.agents/skills/0g-compute/`","category":"filesystem","line_end":12,"severity":"high","line_start":12},{"id":"filesystem:README.md:13:hidden-file-in-home-directory","file":"README.md","pattern":"Hidden file in home directory","snippet":"- **OpenClaw** — `~/.openclaw/skills/0g-compute/`","category":"filesystem","line_end":13,"severity":"high","line_start":13},{"id":"filesystem:README.md:20:hidden-file-in-home-directory","file":"README.md","pattern":"Hidden file in home directory","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.claude/skills/0g-compute","category":"filesystem","line_end":20,"severity":"high","line_start":20},{"id":"filesystem:README.md:23:hidden-file-in-home-directory","file":"README.md","pattern":"Hidden file in home directory","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.agents/skills/0g-compute","category":"filesystem","line_end":23,"severity":"high","line_start":23},{"id":"filesystem:README.md:26:hidden-file-in-home-directory","file":"README.md","pattern":"Hidden file in home directory","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.openclaw/skills/0g-compute","category":"filesystem","line_end":26,"severity":"high","line_start":26},{"id":"filesystem:README.md:11:hidden-file-access","file":"README.md","pattern":"Hidden file access","snippet":"- **Claude Code** — `~/.claude/skills/0g-compute/`","category":"filesystem","line_end":11,"severity":"medium","line_start":11},{"id":"filesystem:README.md:12:hidden-file-access","file":"README.md","pattern":"Hidden file access","snippet":"- **OpenAI Codex** — `~/.agents/skills/0g-compute/`","category":"filesystem","line_end":12,"severity":"medium","line_start":12},{"id":"filesystem:README.md:13:hidden-file-access","file":"README.md","pattern":"Hidden file access","snippet":"- **OpenClaw** — `~/.openclaw/skills/0g-compute/`","category":"filesystem","line_end":13,"severity":"medium","line_start":13},{"id":"filesystem:README.md:20:hidden-file-access","file":"README.md","pattern":"Hidden file access","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.claude/skills/0g-compute","category":"filesystem","line_end":20,"severity":"medium","line_start":20},{"id":"filesystem:README.md:23:hidden-file-access","file":"README.md","pattern":"Hidden file access","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.agents/skills/0g-compute","category":"filesystem","line_end":23,"severity":"medium","line_start":23},{"id":"filesystem:README.md:26:hidden-file-access","file":"README.md","pattern":"Hidden file access","snippet":"git clone https://github.com/0gfoundation/0g-compute-skills ~/.openclaw/skills/0g-compute","category":"filesystem","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:references/account-management.md:232:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Total Balance: ${ethers.formatEther(account.totalBalance)} 0G`);","category":"external_commands","line_end":233,"severity":"medium","line_start":232},{"id":"external_commands:references/account-management.md:233:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Available: ${ethers.formatEther(account.availableBalance)} 0G`);","category":"external_commands","line_end":234,"severity":"medium","line_start":233},{"id":"external_commands:references/account-management.md:234:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Locked: ${ethers.formatEther(account.lockedBalance)} 0G`);","category":"external_commands","line_end":235,"severity":"medium","line_start":234},{"id":"external_commands:references/account-management.md:266:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Sub-account balance: ${ethers.formatEther(subAccount.balance)} 0G`);","category":"external_commands","line_end":271,"severity":"medium","line_start":266},{"id":"external_commands:references/account-management.md:271:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Refund ${index + 1}:`);","category":"external_commands","line_end":272,"severity":"medium","line_start":271},{"id":"external_commands:references/account-management.md:272:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`  Amount: ${ethers.formatEther(refund.amount)} 0G`);","category":"external_commands","line_end":273,"severity":"medium","line_start":272},{"id":"external_commands:references/account-management.md:273:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`  Unlock time: ${new Date(refund.unlockTime * 1000)}`);","category":"external_commands","line_end":280,"severity":"medium","line_start":273},{"id":"external_commands:references/account-management.md:280:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Fine-tuning sub-account balance: ${ethers.formatEther(ftSubAccount.balance)} 0G`);","category":"external_commands","line_end":281,"severity":"medium","line_start":280},{"id":"external_commands:references/account-management.md:574:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Initial balance: ${ethers.formatEther(account.totalBalance)} 0G`);","category":"external_commands","line_end":588,"severity":"medium","line_start":574},{"id":"external_commands:references/account-management.md:588:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Sub-account balance: ${ethers.formatEther(subAccount.balance)} 0G`);","category":"external_commands","line_end":602,"severity":"medium","line_start":588},{"id":"external_commands:references/account-management.md:602:ruby-shell-backtick-execution","file":"references/account-management.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Final balance: ${ethers.formatEther(account.totalBalance)} 0G`);","category":"external_commands","line_end":606,"severity":"medium","line_start":602},{"id":"network:references/account-management.md:218:hardcoded-url","file":"references/account-management.md","pattern":"Hardcoded URL","snippet":"? \"https://evmrpc.0g.ai\"  // Mainnet","category":"network","line_end":218,"severity":"low","line_start":218},{"id":"network:references/account-management.md:219:hardcoded-url","file":"references/account-management.md","pattern":"Hardcoded URL","snippet":": \"https://evmrpc-testnet.0g.ai\";  // Testnet","category":"network","line_end":219,"severity":"low","line_start":219},{"id":"network:references/account-management.md:568:hardcoded-url","file":"references/account-management.md","pattern":"Hardcoded URL","snippet":"const provider = new ethers.JsonRpcProvider(\"https://evmrpc-testnet.0g.ai\");","category":"network","line_end":568,"severity":"low","line_start":568},{"id":"env_access:references/account-management.md:217:environment-variable-access-dot-notation","file":"references/account-management.md","pattern":"Environment variable access (dot notation)","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"env_access","line_end":217,"severity":"low","line_start":217},{"id":"env_access:references/account-management.md:222:environment-variable-access-dot-notation","file":"references/account-management.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":222,"severity":"low","line_start":222},{"id":"env_access:references/account-management.md:569:environment-variable-access-dot-notation","file":"references/account-management.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":569,"severity":"low","line_start":569},{"id":"env_access:references/account-management.md:217:environment-variable-object","file":"references/account-management.md","pattern":"Environment variable object","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"env_access","line_end":217,"severity":"low","line_start":217},{"id":"env_access:references/account-management.md:222:environment-variable-object","file":"references/account-management.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":222,"severity":"low","line_start":222},{"id":"env_access:references/account-management.md:569:environment-variable-object","file":"references/account-management.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":569,"severity":"low","line_start":569},{"id":"env_access:references/account-management.md:222:generic-api-secret-keys","file":"references/account-management.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":222,"severity":"high","line_start":222},{"id":"env_access:references/account-management.md:569:generic-api-secret-keys","file":"references/account-management.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":569,"severity":"high","line_start":569},{"id":"sensitive:references/account-management.md:217:environment-file-access","file":"references/account-management.md","pattern":"Environment file access","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"sensitive","line_end":217,"severity":"high","line_start":217},{"id":"sensitive:references/account-management.md:222:environment-file-access","file":"references/account-management.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"sensitive","line_end":222,"severity":"high","line_start":222},{"id":"sensitive:references/account-management.md:569:environment-file-access","file":"references/account-management.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"sensitive","line_end":569,"severity":"high","line_start":569},{"id":"sensitive:references/account-management.md:91:crypto-seed-private-key-mention","file":"references/account-management.md","pattern":"Crypto seed/private key mention","snippet":"# Login with wallet private key","category":"sensitive","line_end":91,"severity":"high","line_start":91},{"id":"sensitive:references/account-management.md:370:crypto-seed-private-key-mention","file":"references/account-management.md","pattern":"Crypto seed/private key mention","snippet":"- Never share private keys","category":"sensitive","line_end":370,"severity":"high","line_start":370},{"id":"sensitive:references/account-management.md:517:crypto-seed-private-key-mention","file":"references/account-management.md","pattern":"Crypto seed/private key mention","snippet":"# Enter private key when prompted","category":"sensitive","line_end":517,"severity":"high","line_start":517},{"id":"sensitive:references/account-management.md:639:crypto-seed-private-key-mention","file":"references/account-management.md","pattern":"Crypto seed/private key mention","snippet":"- ❌ Never share private keys","category":"sensitive","line_end":639,"severity":"high","line_start":639},{"id":"blocker:references/account-management.md:234:ransomware-file-extensions","file":"references/account-management.md","pattern":"Ransomware file extensions","snippet":"console.log(`Locked: ${ethers.formatEther(account.lockedBalance)} 0G`);","category":"blocker","line_end":234,"severity":"high","line_start":234},{"id":"blocker:references/account-management.md:465:system-reconnaissance","file":"references/account-management.md","pattern":"System reconnaissance","snippet":"- Avoid submitting multiple transactions simultaneously","category":"blocker","line_end":465,"severity":"low","line_start":465},{"id":"filesystem:references/examples/README.md:145:path-traversal-sequence","file":"references/examples/README.md","pattern":"Path traversal sequence","snippet":"- **API Reference**: See [inference.md](../inference.md) for detailed API documentation","category":"filesystem","line_end":145,"severity":"high","line_start":145},{"id":"filesystem:references/examples/README.md:146:path-traversal-sequence","file":"references/examples/README.md","pattern":"Path traversal sequence","snippet":"- **Account Management**: See [account-management.md](../account-management.md) for fund management","category":"filesystem","line_end":146,"severity":"high","line_start":146},{"id":"filesystem:references/examples/README.md:147:path-traversal-sequence","file":"references/examples/README.md","pattern":"Path traversal sequence","snippet":"- **SDK Documentation**: See [SKILL.md](../../SKILL.md) for quick SDK reference","category":"filesystem","line_end":147,"severity":"high","line_start":147},{"id":"filesystem:references/examples/README.md:163:path-traversal-sequence","file":"references/examples/README.md","pattern":"Path traversal sequence","snippet":"- **Fine-tuning**: [fine-tuning.md](../fine-tuning.md) - Train custom models","category":"filesystem","line_end":163,"severity":"high","line_start":163},{"id":"sensitive:references/examples/README.md:122:environment-file-access","file":"references/examples/README.md","pattern":"Environment file access","snippet":"2. **Environment configuration**: Setup `.env` file with private key","category":"sensitive","line_end":122,"severity":"high","line_start":122},{"id":"sensitive:references/examples/README.md:122:crypto-seed-private-key-mention","file":"references/examples/README.md","pattern":"Crypto seed/private key mention","snippet":"2. **Environment configuration**: Setup `.env` file with private key","category":"sensitive","line_end":122,"severity":"high","line_start":122},{"id":"external_commands:references/examples/speech-to-text.md:191:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"\\`);","category":"external_commands","line_end":202,"severity":"medium","line_start":191},{"id":"external_commands:references/examples/speech-to-text.md:202:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"return \\`\\${hours.toString().padStart(2, \"0\")}:\\${minutes.toString().padStart(2, \"0\")}:\\${secs.toStr","category":"external_commands","line_end":208,"severity":"medium","line_start":202},{"id":"external_commands:references/examples/speech-to-text.md:208:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"srt += \\`\\${index + 1}\\n\\`;","category":"external_commands","line_end":209,"severity":"medium","line_start":208},{"id":"external_commands:references/examples/speech-to-text.md:209:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"srt += \\`\\${formatTimestamp(segment.start)} --> \\${formatTimestamp(segment.end)}\\n\\`;","category":"external_commands","line_end":210,"severity":"medium","line_start":209},{"id":"external_commands:references/examples/speech-to-text.md:210:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"srt += \\`\\${segment.text.trim()}\\n\\n\\`;","category":"external_commands","line_end":238,"severity":"medium","line_start":210},{"id":"external_commands:references/examples/speech-to-text.md:238:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(\\`\\${endpoint}/audio/transcriptions\\`, {","category":"external_commands","line_end":249,"severity":"medium","line_start":238},{"id":"external_commands:references/examples/speech-to-text.md:249:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`Transcription failed: \\${response.status} - \\${errorText}\\`);","category":"external_commands","line_end":288,"severity":"medium","line_start":249},{"id":"external_commands:references/examples/speech-to-text.md:288:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`File not found: \\${audioFile}\\`);","category":"external_commands","line_end":294,"severity":"medium","line_start":288},{"id":"external_commands:references/examples/speech-to-text.md:294:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`Invalid format. Must be one of: \\${validFormats.join(\", \")}\\`);","category":"external_commands","line_end":306,"severity":"medium","line_start":294},{"id":"external_commands:references/examples/speech-to-text.md:306:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n📁 File: \\${path.basename(audioFile)}\\`);","category":"external_commands","line_end":307,"severity":"medium","line_start":306},{"id":"external_commands:references/examples/speech-to-text.md:307:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📊 Size: \\${fileSizeMB} MB\\`);","category":"external_commands","line_end":312,"severity":"medium","line_start":307},{"id":"external_commands:references/examples/speech-to-text.md:312:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n📍 Wallet: \\${wallet.address}\\`);","category":"external_commands","line_end":321,"severity":"medium","line_start":312},{"id":"external_commands:references/examples/speech-to-text.md:321:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📡 Endpoint: \\${endpoint}\\`);","category":"external_commands","line_end":322,"severity":"medium","line_start":321},{"id":"external_commands:references/examples/speech-to-text.md:322:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`🤖 Model: \\${model}\\`);","category":"external_commands","line_end":328,"severity":"medium","line_start":322},{"id":"external_commands:references/examples/speech-to-text.md:328:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`💰 Sub-Account Balance: \\${balance} 0G\\`);","category":"external_commands","line_end":332,"severity":"medium","line_start":328},{"id":"external_commands:references/examples/speech-to-text.md:332:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"\\`Balance is 0. Transfer funds:\\n\\` +","category":"external_commands","line_end":333,"severity":"medium","line_start":332},{"id":"external_commands:references/examples/speech-to-text.md:333:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"\\`  0g-compute-cli transfer-fund --provider \\${providerAddress} --amount 1\\`","category":"external_commands","line_end":341,"severity":"medium","line_start":333},{"id":"external_commands:references/examples/speech-to-text.md:341:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n🎙️  Transcribing...\\`);","category":"external_commands","line_end":353,"severity":"medium","line_start":341},{"id":"external_commands:references/examples/speech-to-text.md:353:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`✅ Transcription completed in \\${duration}s\\`);","category":"external_commands","line_end":380,"severity":"medium","line_start":353},{"id":"external_commands:references/examples/speech-to-text.md:380:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"\\`\\${baseName}_\\${timestamp}.\\${outputExt}\\`","category":"external_commands","line_end":384,"severity":"medium","line_start":380},{"id":"external_commands:references/examples/speech-to-text.md:384:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n📄 Transcript saved: \\${outputFile}\\`);","category":"external_commands","line_end":388,"severity":"medium","line_start":384},{"id":"external_commands:references/examples/speech-to-text.md:388:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n📊 Statistics:\\`);","category":"external_commands","line_end":389,"severity":"medium","line_start":388},{"id":"external_commands:references/examples/speech-to-text.md:389:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Audio duration: \\${result.duration.toFixed(2)}s\\`);","category":"external_commands","line_end":392,"severity":"medium","line_start":389},{"id":"external_commands:references/examples/speech-to-text.md:392:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Segments: \\${result.segments.length}\\`);","category":"external_commands","line_end":396,"severity":"medium","line_start":392},{"id":"external_commands:references/examples/speech-to-text.md:396:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Detected language: \\${result.language}\\`);","category":"external_commands","line_end":402,"severity":"medium","line_start":396},{"id":"external_commands:references/examples/speech-to-text.md:402:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n💰 Usage:\\`);","category":"external_commands","line_end":404,"severity":"medium","line_start":402},{"id":"external_commands:references/examples/speech-to-text.md:404:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Input tokens: \\${result.usage.prompt_tokens}\\`);","category":"external_commands","line_end":407,"severity":"medium","line_start":404},{"id":"external_commands:references/examples/speech-to-text.md:407:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Output tokens: \\${result.usage.completion_tokens}\\`);","category":"external_commands","line_end":410,"severity":"medium","line_start":407},{"id":"external_commands:references/examples/speech-to-text.md:410:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Total tokens: \\${result.usage.total_tokens}\\`);","category":"external_commands","line_end":418,"severity":"medium","line_start":410},{"id":"external_commands:references/examples/speech-to-text.md:418:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n💳 Updated Balance: \\${updatedBalance} 0G\\`);","category":"external_commands","line_end":421,"severity":"medium","line_start":418},{"id":"external_commands:references/examples/speech-to-text.md:421:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n🎉 Transcription completed successfully!\\`);","category":"external_commands","line_end":426,"severity":"medium","line_start":421},{"id":"external_commands:references/examples/speech-to-text.md:426:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.error(\\`   \\${error.message}\\`);","category":"external_commands","line_end":435,"severity":"medium","line_start":426},{"id":"external_commands:references/examples/speech-to-text.md:574:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"return \\`\\${hours.toString().padStart(2, \"0\")}:\\${minutes.toString().padStart(2, \"0\")}:\\${secs.toStr","category":"external_commands","line_end":576,"severity":"medium","line_start":574},{"id":"external_commands:references/examples/speech-to-text.md:676:ruby-shell-backtick-execution","file":"references/examples/speech-to-text.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`Processing \\${file}...\\`);","category":"external_commands","line_end":680,"severity":"medium","line_start":676},{"id":"network:references/examples/speech-to-text.md:238:fetch-api-call","file":"references/examples/speech-to-text.md","pattern":"Fetch API call","snippet":"const response = await fetch(\\`\\${endpoint}/audio/transcriptions\\`, {","category":"network","line_end":238,"severity":"low","line_start":238},{"id":"network:references/examples/speech-to-text.md:114:hardcoded-url","file":"references/examples/speech-to-text.md","pattern":"Hardcoded URL","snippet":"RPC_URL=https://evmrpc.0g.ai","category":"network","line_end":114,"severity":"low","line_start":114},{"id":"network:references/examples/speech-to-text.md:143:hardcoded-url","file":"references/examples/speech-to-text.md","pattern":"Hardcoded URL","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"network","line_end":143,"severity":"low","line_start":143},{"id":"filesystem:references/examples/speech-to-text.md:299:node-js-fs-operations","file":"references/examples/speech-to-text.md","pattern":"Node.js fs operations","snippet":"fs.mkdirSync(TRANSCRIPT_DIR, { recursive: true });","category":"filesystem","line_end":299,"severity":"medium","line_start":299},{"id":"filesystem:references/examples/speech-to-text.md:383:node-js-fs-operations","file":"references/examples/speech-to-text.md","pattern":"Node.js fs operations","snippet":"fs.writeFileSync(outputFile, outputContent);","category":"filesystem","line_end":383,"severity":"medium","line_start":383},{"id":"filesystem:references/examples/speech-to-text.md:672:node-js-fs-operations","file":"references/examples/speech-to-text.md","pattern":"Node.js fs operations","snippet":"const audioFiles = fs.readdirSync(AUDIO_DIR)","category":"filesystem","line_end":672,"severity":"medium","line_start":672},{"id":"filesystem:references/examples/speech-to-text.md:287:node-js-fs-stat-operations","file":"references/examples/speech-to-text.md","pattern":"Node.js fs stat operations","snippet":"if (!fs.existsSync(audioFile)) {","category":"filesystem","line_end":287,"severity":"low","line_start":287},{"id":"filesystem:references/examples/speech-to-text.md:298:node-js-fs-stat-operations","file":"references/examples/speech-to-text.md","pattern":"Node.js fs stat operations","snippet":"if (!fs.existsSync(TRANSCRIPT_DIR)) {","category":"filesystem","line_end":298,"severity":"low","line_start":298},{"id":"filesystem:references/examples/speech-to-text.md:303:node-js-fs-stat-operations","file":"references/examples/speech-to-text.md","pattern":"Node.js fs stat operations","snippet":"const fileStat = fs.statSync(audioFile);","category":"filesystem","line_end":303,"severity":"low","line_start":303},{"id":"filesystem:references/examples/speech-to-text.md:383:synchronous-file-operations","file":"references/examples/speech-to-text.md","pattern":"Synchronous file operations","snippet":"fs.writeFileSync(outputFile, outputContent);","category":"filesystem","line_end":383,"severity":"medium","line_start":383},{"id":"filesystem:references/examples/speech-to-text.md:225:file-stream-creation","file":"references/examples/speech-to-text.md","pattern":"File stream creation","snippet":"const fileStream = fs.createReadStream(audioFilePath);","category":"filesystem","line_end":225,"severity":"medium","line_start":225},{"id":"filesystem:references/examples/speech-to-text.md:528:file-stream-creation","file":"references/examples/speech-to-text.md","pattern":"File stream creation","snippet":"const fileStream = fs.createReadStream(audioFilePath);","category":"filesystem","line_end":528,"severity":"medium","line_start":528},{"id":"filesystem:references/examples/speech-to-text.md:341:path-traversal-sequence","file":"references/examples/speech-to-text.md","pattern":"Path traversal sequence","snippet":"console.log(\\`\\n🎙️  Transcribing...\\`);","category":"filesystem","line_end":341,"severity":"high","line_start":341},{"id":"filesystem:references/examples/speech-to-text.md:676:path-traversal-sequence","file":"references/examples/speech-to-text.md","pattern":"Path traversal sequence","snippet":"console.log(\\`Processing \\${file}...\\`);","category":"filesystem","line_end":676,"severity":"high","line_start":676},{"id":"env_access:references/examples/speech-to-text.md:143:environment-variable-access-dot-notation","file":"references/examples/speech-to-text.md","pattern":"Environment variable access (dot notation)","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"env_access","line_end":143,"severity":"low","line_start":143},{"id":"env_access:references/examples/speech-to-text.md:144:environment-variable-access-dot-notation","file":"references/examples/speech-to-text.md","pattern":"Environment variable access (dot notation)","snippet":"const AUDIO_DIR = process.env.AUDIO_DIR || \"./audio\";","category":"env_access","line_end":144,"severity":"low","line_start":144},{"id":"env_access:references/examples/speech-to-text.md:145:environment-variable-access-dot-notation","file":"references/examples/speech-to-text.md","pattern":"Environment variable access (dot notation)","snippet":"const TRANSCRIPT_DIR = process.env.TRANSCRIPT_DIR || \"./transcripts\";","category":"env_access","line_end":145,"severity":"low","line_start":145},{"id":"env_access:references/examples/speech-to-text.md:149:environment-variable-access-dot-notation","file":"references/examples/speech-to-text.md","pattern":"Environment variable access (dot notation)","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"env_access","line_end":149,"severity":"low","line_start":149},{"id":"env_access:references/examples/speech-to-text.md:274:environment-variable-access-dot-notation","file":"references/examples/speech-to-text.md","pattern":"Environment variable access (dot notation)","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":274,"severity":"low","line_start":274},{"id":"env_access:references/examples/speech-to-text.md:311:environment-variable-access-dot-notation","file":"references/examples/speech-to-text.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":311,"severity":"low","line_start":311},{"id":"env_access:references/examples/speech-to-text.md:143:environment-variable-object","file":"references/examples/speech-to-text.md","pattern":"Environment variable object","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"env_access","line_end":143,"severity":"low","line_start":143},{"id":"env_access:references/examples/speech-to-text.md:144:environment-variable-object","file":"references/examples/speech-to-text.md","pattern":"Environment variable object","snippet":"const AUDIO_DIR = process.env.AUDIO_DIR || \"./audio\";","category":"env_access","line_end":144,"severity":"low","line_start":144},{"id":"env_access:references/examples/speech-to-text.md:145:environment-variable-object","file":"references/examples/speech-to-text.md","pattern":"Environment variable object","snippet":"const TRANSCRIPT_DIR = process.env.TRANSCRIPT_DIR || \"./transcripts\";","category":"env_access","line_end":145,"severity":"low","line_start":145},{"id":"env_access:references/examples/speech-to-text.md:149:environment-variable-object","file":"references/examples/speech-to-text.md","pattern":"Environment variable object","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"env_access","line_end":149,"severity":"low","line_start":149},{"id":"env_access:references/examples/speech-to-text.md:274:environment-variable-object","file":"references/examples/speech-to-text.md","pattern":"Environment variable object","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":274,"severity":"low","line_start":274},{"id":"env_access:references/examples/speech-to-text.md:311:environment-variable-object","file":"references/examples/speech-to-text.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":311,"severity":"low","line_start":311},{"id":"env_access:references/examples/speech-to-text.md:67:dotenv-library","file":"references/examples/speech-to-text.md","pattern":"dotenv library","snippet":"\"dotenv\": \"^17.2.3\",","category":"env_access","line_end":67,"severity":"low","line_start":67},{"id":"env_access:references/examples/speech-to-text.md:136:dotenv-library","file":"references/examples/speech-to-text.md","pattern":"dotenv library","snippet":"import * as dotenv from \"dotenv\";","category":"env_access","line_end":136,"severity":"low","line_start":136},{"id":"env_access:references/examples/speech-to-text.md:141:dotenv-library","file":"references/examples/speech-to-text.md","pattern":"dotenv library","snippet":"dotenv.config();","category":"env_access","line_end":141,"severity":"low","line_start":141},{"id":"env_access:references/examples/speech-to-text.md:117:generic-api-secret-keys","file":"references/examples/speech-to-text.md","pattern":"Generic API/secret keys","snippet":"PRIVATE_KEY=your_private_key_here","category":"env_access","line_end":117,"severity":"high","line_start":117},{"id":"env_access:references/examples/speech-to-text.md:274:generic-api-secret-keys","file":"references/examples/speech-to-text.md","pattern":"Generic API/secret keys","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":274,"severity":"high","line_start":274},{"id":"env_access:references/examples/speech-to-text.md:275:generic-api-secret-keys","file":"references/examples/speech-to-text.md","pattern":"Generic API/secret keys","snippet":"throw new Error(\"PRIVATE_KEY not found in .env\");","category":"env_access","line_end":275,"severity":"high","line_start":275},{"id":"env_access:references/examples/speech-to-text.md:311:generic-api-secret-keys","file":"references/examples/speech-to-text.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":311,"severity":"high","line_start":311},{"id":"sensitive:references/examples/speech-to-text.md:27:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"└── .env","category":"sensitive","line_end":27,"severity":"high","line_start":27},{"id":"sensitive:references/examples/speech-to-text.md:110:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"Create `.env`:","category":"sensitive","line_end":110,"severity":"high","line_start":110},{"id":"sensitive:references/examples/speech-to-text.md:143:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"sensitive","line_end":143,"severity":"high","line_start":143},{"id":"sensitive:references/examples/speech-to-text.md:144:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"const AUDIO_DIR = process.env.AUDIO_DIR || \"./audio\";","category":"sensitive","line_end":144,"severity":"high","line_start":144},{"id":"sensitive:references/examples/speech-to-text.md:145:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"const TRANSCRIPT_DIR = process.env.TRANSCRIPT_DIR || \"./transcripts\";","category":"sensitive","line_end":145,"severity":"high","line_start":145},{"id":"sensitive:references/examples/speech-to-text.md:149:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"sensitive","line_end":149,"severity":"high","line_start":149},{"id":"sensitive:references/examples/speech-to-text.md:172:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"--provider <address>    Provider address (default: from .env)","category":"sensitive","line_end":172,"severity":"high","line_start":172},{"id":"sensitive:references/examples/speech-to-text.md:274:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"if (!process.env.PRIVATE_KEY) {","category":"sensitive","line_end":274,"severity":"high","line_start":274},{"id":"sensitive:references/examples/speech-to-text.md:275:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"throw new Error(\"PRIVATE_KEY not found in .env\");","category":"sensitive","line_end":275,"severity":"high","line_start":275},{"id":"sensitive:references/examples/speech-to-text.md:311:environment-file-access","file":"references/examples/speech-to-text.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"sensitive","line_end":311,"severity":"high","line_start":311},{"id":"sensitive:references/examples/speech-to-text.md:116:crypto-seed-private-key-mention","file":"references/examples/speech-to-text.md","pattern":"Crypto seed/private key mention","snippet":"# Your wallet private key","category":"sensitive","line_end":116,"severity":"high","line_start":116},{"id":"blocker:references/examples/speech-to-text.md:294:system-reconnaissance","file":"references/examples/speech-to-text.md","pattern":"System reconnaissance","snippet":"throw new Error(\\`Invalid format. Must be one of: \\${validFormats.join(\", \")}\\`);","category":"blocker","line_end":294,"severity":"low","line_start":294},{"id":"blocker:references/examples/speech-to-text.md:372:system-reconnaissance","file":"references/examples/speech-to-text.md","pattern":"System reconnaissance","snippet":"throw new Error(\"Invalid output format\");","category":"blocker","line_end":372,"severity":"low","line_start":372},{"id":"blocker:references/examples/speech-to-text.md:707:system-reconnaissance","file":"references/examples/speech-to-text.md","pattern":"System reconnaissance","snippet":"5. **Caching**: Store transcriptions to avoid reprocessing","category":"blocker","line_end":707,"severity":"low","line_start":707},{"id":"external_commands:references/examples/streaming-chat.md:179:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`);","category":"external_commands","line_end":202,"severity":"medium","line_start":179},{"id":"external_commands:references/examples/streaming-chat.md:202:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📍 Connected to network with wallet: \\${wallet.address}\\`);","category":"external_commands","line_end":211,"severity":"medium","line_start":202},{"id":"external_commands:references/examples/streaming-chat.md:211:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`🔍 Fetching service metadata for provider: \\${providerAddress}\\`","category":"external_commands","line_end":216,"severity":"medium","line_start":211},{"id":"external_commands:references/examples/streaming-chat.md:216:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📡 Endpoint: \\${endpoint}\\`);","category":"external_commands","line_end":217,"severity":"medium","line_start":216},{"id":"external_commands:references/examples/streaming-chat.md:217:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`🤖 Model: \\${model}\\`);","category":"external_commands","line_end":226,"severity":"medium","line_start":217},{"id":"external_commands:references/examples/streaming-chat.md:226:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📊 Provider Sub-Account Balance: \\${subBalance} 0G\\`);","category":"external_commands","line_end":232,"severity":"medium","line_start":226},{"id":"external_commands:references/examples/streaming-chat.md:232:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`\\\\n⚠️  WARNING: Sub-account balance is low (\\${subBalance} 0G)\\`","category":"external_commands","line_end":235,"severity":"medium","line_start":232},{"id":"external_commands:references/examples/streaming-chat.md:235:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`   Recommended: Transfer funds to continue using this provider\\`","category":"external_commands","line_end":238,"severity":"medium","line_start":235},{"id":"external_commands:references/examples/streaming-chat.md:238:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`   Command: 0g-compute-cli transfer-fund --provider \\${providerAddress} --amount 1\\\\n\\`","category":"external_commands","line_end":243,"severity":"medium","line_start":238},{"id":"external_commands:references/examples/streaming-chat.md:243:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`Sub-account balance is 0. Please transfer funds first:\\\\n\\` +","category":"external_commands","line_end":244,"severity":"medium","line_start":243},{"id":"external_commands:references/examples/streaming-chat.md:244:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"\\`  0g-compute-cli transfer-fund --provider \\${providerAddress} --amount 1\\`","category":"external_commands","line_end":273,"severity":"medium","line_start":244},{"id":"external_commands:references/examples/streaming-chat.md:273:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\\\n💬 Sending streaming chat request to \\${model}...\\`);","category":"external_commands","line_end":274,"severity":"medium","line_start":273},{"id":"external_commands:references/examples/streaming-chat.md:274:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📝 User message: \\${finalMessage}\\`);","category":"external_commands","line_end":277,"severity":"medium","line_start":274},{"id":"external_commands:references/examples/streaming-chat.md:277:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(\\`\\${endpoint}/chat/completions\\`, {","category":"external_commands","line_end":294,"severity":"medium","line_start":277},{"id":"external_commands:references/examples/streaming-chat.md:294:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`API request failed: \\${response.status} - \\${errorText}\\`);","category":"external_commands","line_end":301,"severity":"medium","line_start":294},{"id":"external_commands:references/examples/streaming-chat.md:301:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`🤖 \\${model} Streaming Response:\\`);","category":"external_commands","line_end":357,"severity":"medium","line_start":301},{"id":"external_commands:references/examples/streaming-chat.md:357:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Input tokens: \\${usageData.prompt_tokens}\\`);","category":"external_commands","line_end":358,"severity":"medium","line_start":357},{"id":"external_commands:references/examples/streaming-chat.md:358:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Output tokens: \\${usageData.completion_tokens}\\`);","category":"external_commands","line_end":359,"severity":"medium","line_start":358},{"id":"external_commands:references/examples/streaming-chat.md:359:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`   Total tokens: \\${usageData.total_tokens}\\`);","category":"external_commands","line_end":377,"severity":"medium","line_start":359},{"id":"external_commands:references/examples/streaming-chat.md:377:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\\\n💳 Updated Sub-Account Balance: \\${updatedSubBalance} 0G\\`);","category":"external_commands","line_end":386,"severity":"medium","line_start":377},{"id":"external_commands:references/examples/streaming-chat.md:386:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.error(\\`   \\${error.message}\\`);","category":"external_commands","line_end":400,"severity":"medium","line_start":386},{"id":"external_commands:references/examples/streaming-chat.md:491:ruby-shell-backtick-execution","file":"references/examples/streaming-chat.md","pattern":"Ruby/shell backtick execution","snippet":"console.warn(`⚠️  WARNING: Sub-account balance is low`);","category":"external_commands","line_end":494,"severity":"medium","line_start":491},{"id":"network:references/examples/streaming-chat.md:277:fetch-api-call","file":"references/examples/streaming-chat.md","pattern":"Fetch API call","snippet":"const response = await fetch(\\`\\${endpoint}/chat/completions\\`, {","category":"network","line_end":277,"severity":"low","line_start":277},{"id":"network:references/examples/streaming-chat.md:113:hardcoded-url","file":"references/examples/streaming-chat.md","pattern":"Hardcoded URL","snippet":"RPC_URL=https://evmrpc.0g.ai","category":"network","line_end":113,"severity":"low","line_start":113},{"id":"network:references/examples/streaming-chat.md:144:hardcoded-url","file":"references/examples/streaming-chat.md","pattern":"Hardcoded URL","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"network","line_end":144,"severity":"low","line_start":144},{"id":"network:references/examples/streaming-chat.md:450:hardcoded-url","file":"references/examples/streaming-chat.md","pattern":"Hardcoded URL","snippet":"📡 Endpoint: https://provider-endpoint.example.com/v1/proxy","category":"network","line_end":450,"severity":"low","line_start":450},{"id":"filesystem:references/examples/streaming-chat.md:250:path-traversal-sequence","file":"references/examples/streaming-chat.md","pattern":"Path traversal sequence","snippet":"console.warn(\"Continuing anyway...\\\\n\");","category":"filesystem","line_end":250,"severity":"high","line_start":250},{"id":"filesystem:references/examples/streaming-chat.md:273:path-traversal-sequence","file":"references/examples/streaming-chat.md","pattern":"Path traversal sequence","snippet":"console.log(\\`\\\\n💬 Sending streaming chat request to \\${model}...\\`);","category":"filesystem","line_end":273,"severity":"high","line_start":273},{"id":"filesystem:references/examples/streaming-chat.md:645:path-traversal-sequence","file":"references/examples/streaming-chat.md","pattern":"Path traversal sequence","snippet":"- **API Reference**: [../inference.md](../inference.md) - Detailed SDK documentation","category":"filesystem","line_end":645,"severity":"high","line_start":645},{"id":"filesystem:references/examples/streaming-chat.md:646:path-traversal-sequence","file":"references/examples/streaming-chat.md","pattern":"Path traversal sequence","snippet":"- **Fine-tuning**: [../fine-tuning.md](../fine-tuning.md) - Train custom models","category":"filesystem","line_end":646,"severity":"high","line_start":646},{"id":"env_access:references/examples/streaming-chat.md:144:environment-variable-access-dot-notation","file":"references/examples/streaming-chat.md","pattern":"Environment variable access (dot notation)","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"env_access","line_end":144,"severity":"low","line_start":144},{"id":"env_access:references/examples/streaming-chat.md:148:environment-variable-access-dot-notation","file":"references/examples/streaming-chat.md","pattern":"Environment variable access (dot notation)","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"env_access","line_end":148,"severity":"low","line_start":148},{"id":"env_access:references/examples/streaming-chat.md:149:environment-variable-access-dot-notation","file":"references/examples/streaming-chat.md","pattern":"Environment variable access (dot notation)","snippet":"let userMessage = process.env.USER_MESSAGE;","category":"env_access","line_end":149,"severity":"low","line_start":149},{"id":"env_access:references/examples/streaming-chat.md:189:environment-variable-access-dot-notation","file":"references/examples/streaming-chat.md","pattern":"Environment variable access (dot notation)","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":189,"severity":"low","line_start":189},{"id":"env_access:references/examples/streaming-chat.md:201:environment-variable-access-dot-notation","file":"references/examples/streaming-chat.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":201,"severity":"low","line_start":201},{"id":"env_access:references/examples/streaming-chat.md:144:environment-variable-object","file":"references/examples/streaming-chat.md","pattern":"Environment variable object","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"env_access","line_end":144,"severity":"low","line_start":144},{"id":"env_access:references/examples/streaming-chat.md:148:environment-variable-object","file":"references/examples/streaming-chat.md","pattern":"Environment variable object","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"env_access","line_end":148,"severity":"low","line_start":148},{"id":"env_access:references/examples/streaming-chat.md:149:environment-variable-object","file":"references/examples/streaming-chat.md","pattern":"Environment variable object","snippet":"let userMessage = process.env.USER_MESSAGE;","category":"env_access","line_end":149,"severity":"low","line_start":149},{"id":"env_access:references/examples/streaming-chat.md:189:environment-variable-object","file":"references/examples/streaming-chat.md","pattern":"Environment variable object","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":189,"severity":"low","line_start":189},{"id":"env_access:references/examples/streaming-chat.md:201:environment-variable-object","file":"references/examples/streaming-chat.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":201,"severity":"low","line_start":201},{"id":"env_access:references/examples/streaming-chat.md:66:dotenv-library","file":"references/examples/streaming-chat.md","pattern":"dotenv library","snippet":"\"dotenv\": \"^17.2.3\",","category":"env_access","line_end":66,"severity":"low","line_start":66},{"id":"env_access:references/examples/streaming-chat.md:138:dotenv-library","file":"references/examples/streaming-chat.md","pattern":"dotenv library","snippet":"import * as dotenv from \"dotenv\";","category":"env_access","line_end":138,"severity":"low","line_start":138},{"id":"env_access:references/examples/streaming-chat.md:141:dotenv-library","file":"references/examples/streaming-chat.md","pattern":"dotenv library","snippet":"dotenv.config();","category":"env_access","line_end":141,"severity":"low","line_start":141},{"id":"env_access:references/examples/streaming-chat.md:116:generic-api-secret-keys","file":"references/examples/streaming-chat.md","pattern":"Generic API/secret keys","snippet":"PRIVATE_KEY=your_private_key_here","category":"env_access","line_end":116,"severity":"high","line_start":116},{"id":"env_access:references/examples/streaming-chat.md:189:generic-api-secret-keys","file":"references/examples/streaming-chat.md","pattern":"Generic API/secret keys","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":189,"severity":"high","line_start":189},{"id":"env_access:references/examples/streaming-chat.md:190:generic-api-secret-keys","file":"references/examples/streaming-chat.md","pattern":"Generic API/secret keys","snippet":"throw new Error(\"PRIVATE_KEY not found in environment variables\");","category":"env_access","line_end":190,"severity":"high","line_start":190},{"id":"env_access:references/examples/streaming-chat.md:201:generic-api-secret-keys","file":"references/examples/streaming-chat.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":201,"severity":"high","line_start":201},{"id":"env_access:references/examples/streaming-chat.md:574:generic-api-secret-keys","file":"references/examples/streaming-chat.md","pattern":"Generic API/secret keys","snippet":"#### \"PRIVATE_KEY not found\"","category":"env_access","line_end":574,"severity":"high","line_start":574},{"id":"env_access:references/examples/streaming-chat.md:578:generic-api-secret-keys","file":"references/examples/streaming-chat.md","pattern":"Generic API/secret keys","snippet":"PRIVATE_KEY=your_private_key_here","category":"env_access","line_end":578,"severity":"high","line_start":578},{"id":"sensitive:references/examples/streaming-chat.md:17:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"└── .env                     # Environment variables (not committed)","category":"sensitive","line_end":17,"severity":"high","line_start":17},{"id":"sensitive:references/examples/streaming-chat.md:109:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"Create `.env` file (never commit this!):","category":"sensitive","line_end":109,"severity":"high","line_start":109},{"id":"sensitive:references/examples/streaming-chat.md:144:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"sensitive","line_end":144,"severity":"high","line_start":144},{"id":"sensitive:references/examples/streaming-chat.md:148:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"sensitive","line_end":148,"severity":"high","line_start":148},{"id":"sensitive:references/examples/streaming-chat.md:149:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"let userMessage = process.env.USER_MESSAGE;","category":"sensitive","line_end":149,"severity":"high","line_start":149},{"id":"sensitive:references/examples/streaming-chat.md:164:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"--provider <address>    Provider address (default: from .env PROVIDER_ADDRESS)","category":"sensitive","line_end":164,"severity":"high","line_start":164},{"id":"sensitive:references/examples/streaming-chat.md:165:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"--message <text>        User message (default: from .env USER_MESSAGE)","category":"sensitive","line_end":165,"severity":"high","line_start":165},{"id":"sensitive:references/examples/streaming-chat.md:189:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"if (!process.env.PRIVATE_KEY) {","category":"sensitive","line_end":189,"severity":"high","line_start":189},{"id":"sensitive:references/examples/streaming-chat.md:195:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"\"Provider address not specified. Use --provider flag or set PROVIDER_ADDRESS in .env\"","category":"sensitive","line_end":195,"severity":"high","line_start":195},{"id":"sensitive:references/examples/streaming-chat.md:201:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"sensitive","line_end":201,"severity":"high","line_start":201},{"id":"sensitive:references/examples/streaming-chat.md:407:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"# Using default provider from .env","category":"sensitive","line_end":407,"severity":"high","line_start":407},{"id":"sensitive:references/examples/streaming-chat.md:576:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"Ensure `.env` file exists and contains:","category":"sensitive","line_end":576,"severity":"high","line_start":576},{"id":"sensitive:references/examples/streaming-chat.md:583:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"Either add to `.env`:","category":"sensitive","line_end":583,"severity":"high","line_start":583},{"id":"sensitive:references/examples/streaming-chat.md:616:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"- Never commit `.env` file","category":"sensitive","line_end":616,"severity":"high","line_start":616},{"id":"sensitive:references/examples/streaming-chat.md:618:environment-file-access","file":"references/examples/streaming-chat.md","pattern":"Environment file access","snippet":"- Add `.env` to `.gitignore`","category":"sensitive","line_end":618,"severity":"high","line_start":618},{"id":"sensitive:references/examples/streaming-chat.md:115:crypto-seed-private-key-mention","file":"references/examples/streaming-chat.md","pattern":"Crypto seed/private key mention","snippet":"# Your wallet private key (NEVER commit this file!)","category":"sensitive","line_end":115,"severity":"high","line_start":115},{"id":"blocker:references/examples/streaming-chat.md:345:system-reconnaissance","file":"references/examples/streaming-chat.md","pattern":"System reconnaissance","snippet":"// Skip invalid JSON","category":"blocker","line_end":345,"severity":"low","line_start":345},{"id":"blocker:references/examples/streaming-chat.md:363:system-reconnaissance","file":"references/examples/streaming-chat.md","pattern":"System reconnaissance","snippet":"const isValid = await broker.inference.processResponse(","category":"blocker","line_end":363,"severity":"low","line_start":363},{"id":"external_commands:references/examples/text-to-image.md:182:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"\\`);","category":"external_commands","line_end":190,"severity":"medium","line_start":182},{"id":"external_commands:references/examples/text-to-image.md:190:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`Failed to download image: \\${response.statusText}\\`);","category":"external_commands","line_end":218,"severity":"medium","line_start":190},{"id":"external_commands:references/examples/text-to-image.md:218:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`Invalid size. Must be one of: \\${validSizes.join(\", \")}\\`);","category":"external_commands","line_end":234,"severity":"medium","line_start":218},{"id":"external_commands:references/examples/text-to-image.md:234:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n📍 Wallet: \\${wallet.address}\\`);","category":"external_commands","line_end":243,"severity":"medium","line_start":234},{"id":"external_commands:references/examples/text-to-image.md:243:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📡 Endpoint: \\${endpoint}\\`);","category":"external_commands","line_end":244,"severity":"medium","line_start":243},{"id":"external_commands:references/examples/text-to-image.md:244:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`🤖 Model: \\${model}\\`);","category":"external_commands","line_end":250,"severity":"medium","line_start":244},{"id":"external_commands:references/examples/text-to-image.md:250:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`💰 Sub-Account Balance: \\${balance} 0G\\`);","category":"external_commands","line_end":254,"severity":"medium","line_start":250},{"id":"external_commands:references/examples/text-to-image.md:254:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"\\`Sub-account balance is 0. Transfer funds:\\n\\` +","category":"external_commands","line_end":255,"severity":"medium","line_start":254},{"id":"external_commands:references/examples/text-to-image.md:255:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"\\`  0g-compute-cli transfer-fund --provider \\${providerAddress} --amount 1\\`","category":"external_commands","line_end":263,"severity":"medium","line_start":255},{"id":"external_commands:references/examples/text-to-image.md:263:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n🎨 Generating \\${numImages} image(s)...\\`);","category":"external_commands","line_end":264,"severity":"medium","line_start":263},{"id":"external_commands:references/examples/text-to-image.md:264:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📝 Prompt: \"\\${prompt}\"\\`);","category":"external_commands","line_end":265,"severity":"medium","line_start":264},{"id":"external_commands:references/examples/text-to-image.md:265:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📐 Size: \\${imageSize}\\`);","category":"external_commands","line_end":271,"severity":"medium","line_start":265},{"id":"external_commands:references/examples/text-to-image.md:271:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n[\\${i + 1}/\\${numImages}] Generating...\\`);","category":"external_commands","line_end":280,"severity":"medium","line_start":271},{"id":"external_commands:references/examples/text-to-image.md:280:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(\\`\\${endpoint}/images/generations\\`, {","category":"external_commands","line_end":291,"severity":"medium","line_start":280},{"id":"external_commands:references/examples/text-to-image.md:291:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"throw new Error(\\`API request failed: \\${response.status} - \\${errorText}\\`);","category":"external_commands","line_end":316,"severity":"medium","line_start":291},{"id":"external_commands:references/examples/text-to-image.md:316:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"const filename = \\`image_\\${timestamp}_\\${i + 1}.png\\`;","category":"external_commands","line_end":321,"severity":"medium","line_start":316},{"id":"external_commands:references/examples/text-to-image.md:321:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`✅ Saved: \\${filepath}\\`);","category":"external_commands","line_end":326,"severity":"medium","line_start":321},{"id":"external_commands:references/examples/text-to-image.md:326:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`✅ Saved: \\${filepath}\\`);","category":"external_commands","line_end":335,"severity":"medium","line_start":326},{"id":"external_commands:references/examples/text-to-image.md:335:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n💳 Updated Balance: \\${updatedBalance} 0G\\`);","category":"external_commands","line_end":338,"severity":"medium","line_start":335},{"id":"external_commands:references/examples/text-to-image.md:338:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`\\n🎉 Successfully generated \\${numImages} image(s)!\\`);","category":"external_commands","line_end":339,"severity":"medium","line_start":338},{"id":"external_commands:references/examples/text-to-image.md:339:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`📁 Output directory: \\${OUTPUT_DIR}\\`);","category":"external_commands","line_end":344,"severity":"medium","line_start":339},{"id":"external_commands:references/examples/text-to-image.md:344:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.error(\\`   \\${error.message}\\`);","category":"external_commands","line_end":353,"severity":"medium","line_start":344},{"id":"external_commands:references/examples/text-to-image.md:454:ruby-shell-backtick-execution","file":"references/examples/text-to-image.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(\\`[\\${i + 1}/\\${numImages}] Generating...\\`);","category":"external_commands","line_end":463,"severity":"medium","line_start":454},{"id":"network:references/examples/text-to-image.md:188:fetch-api-call","file":"references/examples/text-to-image.md","pattern":"Fetch API call","snippet":"const response = await fetch(url);","category":"network","line_end":188,"severity":"low","line_start":188},{"id":"network:references/examples/text-to-image.md:280:fetch-api-call","file":"references/examples/text-to-image.md","pattern":"Fetch API call","snippet":"const response = await fetch(\\`\\${endpoint}/images/generations\\`, {","category":"network","line_end":280,"severity":"low","line_start":280},{"id":"network:references/examples/text-to-image.md:440:fetch-api-call","file":"references/examples/text-to-image.md","pattern":"Fetch API call","snippet":"const response = await fetch(imageUrl);","category":"network","line_end":440,"severity":"low","line_start":440},{"id":"network:references/examples/text-to-image.md:457:fetch-api-call","file":"references/examples/text-to-image.md","pattern":"Fetch API call","snippet":"const response = await fetch(...);","category":"network","line_end":457,"severity":"low","line_start":457},{"id":"network:references/examples/text-to-image.md:67:http-client-library","file":"references/examples/text-to-image.md","pattern":"HTTP client library","snippet":"\"node-fetch\": \"^3.3.2\"","category":"network","line_end":67,"severity":"low","line_start":67},{"id":"network:references/examples/text-to-image.md:111:hardcoded-url","file":"references/examples/text-to-image.md","pattern":"Hardcoded URL","snippet":"RPC_URL=https://evmrpc.0g.ai","category":"network","line_end":111,"severity":"low","line_start":111},{"id":"network:references/examples/text-to-image.md:138:hardcoded-url","file":"references/examples/text-to-image.md","pattern":"Hardcoded URL","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"network","line_end":138,"severity":"low","line_start":138},{"id":"network:references/examples/text-to-image.md:389:hardcoded-url","file":"references/examples/text-to-image.md","pattern":"Hardcoded URL","snippet":"📡 Endpoint: https://provider-endpoint.example.com/v1/proxy","category":"network","line_end":389,"severity":"low","line_start":389},{"id":"filesystem:references/examples/text-to-image.md:194:node-js-fs-operations","file":"references/examples/text-to-image.md","pattern":"Node.js fs operations","snippet":"fs.writeFileSync(filepath, Buffer.from(buffer));","category":"filesystem","line_end":194,"severity":"medium","line_start":194},{"id":"filesystem:references/examples/text-to-image.md:228:node-js-fs-operations","file":"references/examples/text-to-image.md","pattern":"Node.js fs operations","snippet":"fs.mkdirSync(OUTPUT_DIR, { recursive: true });","category":"filesystem","line_end":228,"severity":"medium","line_start":228},{"id":"filesystem:references/examples/text-to-image.md:325:node-js-fs-operations","file":"references/examples/text-to-image.md","pattern":"Node.js fs operations","snippet":"fs.writeFileSync(filepath, Buffer.from(base64Data, \"base64\"));","category":"filesystem","line_end":325,"severity":"medium","line_start":325},{"id":"filesystem:references/examples/text-to-image.md:442:node-js-fs-operations","file":"references/examples/text-to-image.md","pattern":"Node.js fs operations","snippet":"fs.writeFileSync(filepath, Buffer.from(buffer));","category":"filesystem","line_end":442,"severity":"medium","line_start":442},{"id":"filesystem:references/examples/text-to-image.md:446:node-js-fs-operations","file":"references/examples/text-to-image.md","pattern":"Node.js fs operations","snippet":"fs.writeFileSync(filepath, Buffer.from(base64Data, \"base64\"));","category":"filesystem","line_end":446,"severity":"medium","line_start":446},{"id":"filesystem:references/examples/text-to-image.md:227:node-js-fs-stat-operations","file":"references/examples/text-to-image.md","pattern":"Node.js fs stat operations","snippet":"if (!fs.existsSync(OUTPUT_DIR)) {","category":"filesystem","line_end":227,"severity":"low","line_start":227},{"id":"filesystem:references/examples/text-to-image.md:194:synchronous-file-operations","file":"references/examples/text-to-image.md","pattern":"Synchronous file operations","snippet":"fs.writeFileSync(filepath, Buffer.from(buffer));","category":"filesystem","line_end":194,"severity":"medium","line_start":194},{"id":"filesystem:references/examples/text-to-image.md:325:synchronous-file-operations","file":"references/examples/text-to-image.md","pattern":"Synchronous file operations","snippet":"fs.writeFileSync(filepath, Buffer.from(base64Data, \"base64\"));","category":"filesystem","line_end":325,"severity":"medium","line_start":325},{"id":"filesystem:references/examples/text-to-image.md:442:synchronous-file-operations","file":"references/examples/text-to-image.md","pattern":"Synchronous file operations","snippet":"fs.writeFileSync(filepath, Buffer.from(buffer));","category":"filesystem","line_end":442,"severity":"medium","line_start":442},{"id":"filesystem:references/examples/text-to-image.md:446:synchronous-file-operations","file":"references/examples/text-to-image.md","pattern":"Synchronous file operations","snippet":"fs.writeFileSync(filepath, Buffer.from(base64Data, \"base64\"));","category":"filesystem","line_end":446,"severity":"medium","line_start":446},{"id":"filesystem:references/examples/text-to-image.md:263:path-traversal-sequence","file":"references/examples/text-to-image.md","pattern":"Path traversal sequence","snippet":"console.log(\\`\\n🎨 Generating \\${numImages} image(s)...\\`);","category":"filesystem","line_end":263,"severity":"high","line_start":263},{"id":"filesystem:references/examples/text-to-image.md:271:path-traversal-sequence","file":"references/examples/text-to-image.md","pattern":"Path traversal sequence","snippet":"console.log(\\`\\n[\\${i + 1}/\\${numImages}] Generating...\\`);","category":"filesystem","line_end":271,"severity":"high","line_start":271},{"id":"filesystem:references/examples/text-to-image.md:454:path-traversal-sequence","file":"references/examples/text-to-image.md","pattern":"Path traversal sequence","snippet":"console.log(\\`[\\${i + 1}/\\${numImages}] Generating...\\`);","category":"filesystem","line_end":454,"severity":"high","line_start":454},{"id":"env_access:references/examples/text-to-image.md:138:environment-variable-access-dot-notation","file":"references/examples/text-to-image.md","pattern":"Environment variable access (dot notation)","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"env_access","line_end":138,"severity":"low","line_start":138},{"id":"env_access:references/examples/text-to-image.md:139:environment-variable-access-dot-notation","file":"references/examples/text-to-image.md","pattern":"Environment variable access (dot notation)","snippet":"const OUTPUT_DIR = process.env.OUTPUT_DIR || \"./outputs\";","category":"env_access","line_end":139,"severity":"low","line_start":139},{"id":"env_access:references/examples/text-to-image.md:143:environment-variable-access-dot-notation","file":"references/examples/text-to-image.md","pattern":"Environment variable access (dot notation)","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"env_access","line_end":143,"severity":"low","line_start":143},{"id":"env_access:references/examples/text-to-image.md:203:environment-variable-access-dot-notation","file":"references/examples/text-to-image.md","pattern":"Environment variable access (dot notation)","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":203,"severity":"low","line_start":203},{"id":"env_access:references/examples/text-to-image.md:233:environment-variable-access-dot-notation","file":"references/examples/text-to-image.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":233,"severity":"low","line_start":233},{"id":"env_access:references/examples/text-to-image.md:138:environment-variable-object","file":"references/examples/text-to-image.md","pattern":"Environment variable object","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"env_access","line_end":138,"severity":"low","line_start":138},{"id":"env_access:references/examples/text-to-image.md:139:environment-variable-object","file":"references/examples/text-to-image.md","pattern":"Environment variable object","snippet":"const OUTPUT_DIR = process.env.OUTPUT_DIR || \"./outputs\";","category":"env_access","line_end":139,"severity":"low","line_start":139},{"id":"env_access:references/examples/text-to-image.md:143:environment-variable-object","file":"references/examples/text-to-image.md","pattern":"Environment variable object","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"env_access","line_end":143,"severity":"low","line_start":143},{"id":"env_access:references/examples/text-to-image.md:203:environment-variable-object","file":"references/examples/text-to-image.md","pattern":"Environment variable object","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":203,"severity":"low","line_start":203},{"id":"env_access:references/examples/text-to-image.md:233:environment-variable-object","file":"references/examples/text-to-image.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":233,"severity":"low","line_start":233},{"id":"env_access:references/examples/text-to-image.md:65:dotenv-library","file":"references/examples/text-to-image.md","pattern":"dotenv library","snippet":"\"dotenv\": \"^17.2.3\",","category":"env_access","line_end":65,"severity":"low","line_start":65},{"id":"env_access:references/examples/text-to-image.md:132:dotenv-library","file":"references/examples/text-to-image.md","pattern":"dotenv library","snippet":"import * as dotenv from \"dotenv\";","category":"env_access","line_end":132,"severity":"low","line_start":132},{"id":"env_access:references/examples/text-to-image.md:136:dotenv-library","file":"references/examples/text-to-image.md","pattern":"dotenv library","snippet":"dotenv.config();","category":"env_access","line_end":136,"severity":"low","line_start":136},{"id":"env_access:references/examples/text-to-image.md:114:generic-api-secret-keys","file":"references/examples/text-to-image.md","pattern":"Generic API/secret keys","snippet":"PRIVATE_KEY=your_private_key_here","category":"env_access","line_end":114,"severity":"high","line_start":114},{"id":"env_access:references/examples/text-to-image.md:203:generic-api-secret-keys","file":"references/examples/text-to-image.md","pattern":"Generic API/secret keys","snippet":"if (!process.env.PRIVATE_KEY) {","category":"env_access","line_end":203,"severity":"high","line_start":203},{"id":"env_access:references/examples/text-to-image.md:204:generic-api-secret-keys","file":"references/examples/text-to-image.md","pattern":"Generic API/secret keys","snippet":"throw new Error(\"PRIVATE_KEY not found in .env\");","category":"env_access","line_end":204,"severity":"high","line_start":204},{"id":"env_access:references/examples/text-to-image.md:233:generic-api-secret-keys","file":"references/examples/text-to-image.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"env_access","line_end":233,"severity":"high","line_start":233},{"id":"obfuscation:references/examples/text-to-image.md:325:buffer-base64-decode","file":"references/examples/text-to-image.md","pattern":"Buffer base64 decode","snippet":"fs.writeFileSync(filepath, Buffer.from(base64Data, \"base64\"));","category":"obfuscation","line_end":325,"severity":"medium","line_start":325},{"id":"obfuscation:references/examples/text-to-image.md:446:buffer-base64-decode","file":"references/examples/text-to-image.md","pattern":"Buffer base64 decode","snippet":"fs.writeFileSync(filepath, Buffer.from(base64Data, \"base64\"));","category":"obfuscation","line_end":446,"severity":"medium","line_start":446},{"id":"sensitive:references/examples/text-to-image.md:26:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"└── .env","category":"sensitive","line_end":26,"severity":"high","line_start":26},{"id":"sensitive:references/examples/text-to-image.md:107:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"Create `.env`:","category":"sensitive","line_end":107,"severity":"high","line_start":107},{"id":"sensitive:references/examples/text-to-image.md:138:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"const RPC_URL = process.env.RPC_URL || \"https://evmrpc.0g.ai\";","category":"sensitive","line_end":138,"severity":"high","line_start":138},{"id":"sensitive:references/examples/text-to-image.md:139:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"const OUTPUT_DIR = process.env.OUTPUT_DIR || \"./outputs\";","category":"sensitive","line_end":139,"severity":"high","line_start":139},{"id":"sensitive:references/examples/text-to-image.md:143:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"let providerAddress = process.env.PROVIDER_ADDRESS;","category":"sensitive","line_end":143,"severity":"high","line_start":143},{"id":"sensitive:references/examples/text-to-image.md:166:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"--provider <address>    Provider address (default: from .env)","category":"sensitive","line_end":166,"severity":"high","line_start":166},{"id":"sensitive:references/examples/text-to-image.md:203:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"if (!process.env.PRIVATE_KEY) {","category":"sensitive","line_end":203,"severity":"high","line_start":203},{"id":"sensitive:references/examples/text-to-image.md:204:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"throw new Error(\"PRIVATE_KEY not found in .env\");","category":"sensitive","line_end":204,"severity":"high","line_start":204},{"id":"sensitive:references/examples/text-to-image.md:208:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"throw new Error(\"Provider address required. Use --provider or set in .env\");","category":"sensitive","line_end":208,"severity":"high","line_start":208},{"id":"sensitive:references/examples/text-to-image.md:233:environment-file-access","file":"references/examples/text-to-image.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);","category":"sensitive","line_end":233,"severity":"high","line_start":233},{"id":"sensitive:references/examples/text-to-image.md:113:crypto-seed-private-key-mention","file":"references/examples/text-to-image.md","pattern":"Crypto seed/private key mention","snippet":"# Your wallet private key","category":"sensitive","line_end":113,"severity":"high","line_start":113},{"id":"blocker:references/examples/text-to-image.md:218:system-reconnaissance","file":"references/examples/text-to-image.md","pattern":"System reconnaissance","snippet":"throw new Error(\\`Invalid size. Must be one of: \\${validSizes.join(\", \")}\\`);","category":"blocker","line_end":218,"severity":"low","line_start":218},{"id":"blocker:references/examples/text-to-image.md:515:system-reconnaissance","file":"references/examples/text-to-image.md","pattern":"System reconnaissance","snippet":"### \"Invalid size\"","category":"blocker","line_end":515,"severity":"low","line_start":515},{"id":"blocker:references/examples/text-to-image.md:590:system-reconnaissance","file":"references/examples/text-to-image.md","pattern":"System reconnaissance","snippet":"5. **Caching**: Store prompts to avoid duplicate generations","category":"blocker","line_end":590,"severity":"low","line_start":590},{"id":"sensitive:references/fine-tuning.md:243:crypto-seed-private-key-mention","file":"references/fine-tuning.md","pattern":"Crypto seed/private key mention","snippet":"- Decrypts the key using your private key","category":"sensitive","line_end":243,"severity":"high","line_start":243},{"id":"sensitive:references/fine-tuning.md:432:crypto-seed-private-key-mention","file":"references/fine-tuning.md","pattern":"Crypto seed/private key mention","snippet":"- Ensure you're using the correct private key","category":"sensitive","line_end":432,"severity":"high","line_start":432},{"id":"sensitive:references/fine-tuning.md:438:crypto-seed-private-key-mention","file":"references/fine-tuning.md","pattern":"Crypto seed/private key mention","snippet":"### Private Key Safety","category":"sensitive","line_end":438,"severity":"high","line_start":438},{"id":"sensitive:references/fine-tuning.md:440:crypto-seed-private-key-mention","file":"references/fine-tuning.md","pattern":"Crypto seed/private key mention","snippet":"- **Never share** your private key","category":"sensitive","line_end":440,"severity":"high","line_start":440},{"id":"sensitive:references/fine-tuning.md:441:crypto-seed-private-key-mention","file":"references/fine-tuning.md","pattern":"Crypto seed/private key mention","snippet":"- **Use environment variables** for private keys","category":"sensitive","line_end":441,"severity":"high","line_start":441},{"id":"blocker:references/fine-tuning.md:91:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"- Valid encoding","category":"blocker","line_end":91,"severity":"low","line_start":91},{"id":"blocker:references/fine-tuning.md:216:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"--task-id <TASK_ID> \\","category":"blocker","line_end":216,"severity":"low","line_start":216},{"id":"blocker:references/fine-tuning.md:235:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"--task-id <TASK_ID> \\","category":"blocker","line_end":235,"severity":"low","line_start":235},{"id":"blocker:references/fine-tuning.md:382:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"### Invalid Dataset Format","category":"blocker","line_end":382,"severity":"low","line_start":382},{"id":"blocker:references/fine-tuning.md:405:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"- Invalid configuration parameters","category":"blocker","line_end":405,"severity":"low","line_start":405},{"id":"blocker:references/fine-tuning.md:511:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"--task-id 6b607314-88b0-4fef-91e7-43227a54de57 \\","category":"blocker","line_end":511,"severity":"low","line_start":511},{"id":"blocker:references/fine-tuning.md:517:system-reconnaissance","file":"references/fine-tuning.md","pattern":"System reconnaissance","snippet":"--task-id 6b607314-88b0-4fef-91e7-43227a54de57 \\","category":"blocker","line_end":517,"severity":"low","line_start":517},{"id":"external_commands:references/inference.md:70:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Provider: ${service.provider}`);","category":"external_commands","line_end":71,"severity":"medium","line_start":70},{"id":"external_commands:references/inference.md:71:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Service Type: ${service.serviceType}`);","category":"external_commands","line_end":72,"severity":"medium","line_start":71},{"id":"external_commands:references/inference.md:72:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Model: ${service.model}`);","category":"external_commands","line_end":73,"severity":"medium","line_start":72},{"id":"external_commands:references/inference.md:73:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Verifiability: ${service.verifiability}`); // 'TeeML' or empty","category":"external_commands","line_end":84,"severity":"medium","line_start":73},{"id":"external_commands:references/inference.md:101:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`Best chatbot: ${bestProvider.model} at ${bestProvider.provider}`);","category":"external_commands","line_end":102,"severity":"medium","line_start":101},{"id":"external_commands:references/inference.md:131:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(`${endpoint}/chat/completions`, {","category":"external_commands","line_end":151,"severity":"medium","line_start":131},{"id":"external_commands:references/inference.md:156:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(`${endpoint}/chat/completions`, {","category":"external_commands","line_end":212,"severity":"medium","line_start":156},{"id":"external_commands:references/inference.md:236:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(`${endpoint}/images/generations`, {","category":"external_commands","line_end":254,"severity":"medium","line_start":236},{"id":"external_commands:references/inference.md:273:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(`${endpoint}/audio/transcriptions`, {","category":"external_commands","line_end":291,"severity":"medium","line_start":273},{"id":"external_commands:references/inference.md:296:ruby-shell-backtick-execution","file":"references/inference.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(`${endpoint}/audio/transcriptions`, {","category":"external_commands","line_end":338,"severity":"medium","line_start":296},{"id":"network:references/inference.md:131:fetch-api-call","file":"references/inference.md","pattern":"Fetch API call","snippet":"const response = await fetch(`${endpoint}/chat/completions`, {","category":"network","line_end":131,"severity":"low","line_start":131},{"id":"network:references/inference.md:156:fetch-api-call","file":"references/inference.md","pattern":"Fetch API call","snippet":"const response = await fetch(`${endpoint}/chat/completions`, {","category":"network","line_end":156,"severity":"low","line_start":156},{"id":"network:references/inference.md:236:fetch-api-call","file":"references/inference.md","pattern":"Fetch API call","snippet":"const response = await fetch(`${endpoint}/images/generations`, {","category":"network","line_end":236,"severity":"low","line_start":236},{"id":"network:references/inference.md:273:fetch-api-call","file":"references/inference.md","pattern":"Fetch API call","snippet":"const response = await fetch(`${endpoint}/audio/transcriptions`, {","category":"network","line_end":273,"severity":"low","line_start":273},{"id":"network:references/inference.md:296:fetch-api-call","file":"references/inference.md","pattern":"Fetch API call","snippet":"const response = await fetch(`${endpoint}/audio/transcriptions`, {","category":"network","line_end":296,"severity":"low","line_start":296},{"id":"network:references/inference.md:16:hardcoded-url","file":"references/inference.md","pattern":"Hardcoded URL","snippet":"? \"https://evmrpc.0g.ai\"  // Mainnet","category":"network","line_end":16,"severity":"low","line_start":16},{"id":"network:references/inference.md:17:hardcoded-url","file":"references/inference.md","pattern":"Hardcoded URL","snippet":": \"https://evmrpc-testnet.0g.ai\";  // Testnet","category":"network","line_end":17,"severity":"low","line_start":17},{"id":"env_access:references/inference.md:15:environment-variable-access-dot-notation","file":"references/inference.md","pattern":"Environment variable access (dot notation)","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"env_access","line_end":15,"severity":"low","line_start":15},{"id":"env_access:references/inference.md:20:environment-variable-access-dot-notation","file":"references/inference.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":20,"severity":"low","line_start":20},{"id":"env_access:references/inference.md:15:environment-variable-object","file":"references/inference.md","pattern":"Environment variable object","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"env_access","line_end":15,"severity":"low","line_start":15},{"id":"env_access:references/inference.md:20:environment-variable-object","file":"references/inference.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":20,"severity":"low","line_start":20},{"id":"env_access:references/inference.md:20:generic-api-secret-keys","file":"references/inference.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":20,"severity":"high","line_start":20},{"id":"env_access:references/inference.md:419:generic-api-secret-keys","file":"references/inference.md","pattern":"Generic API/secret keys","snippet":"api_key='app-sk-<YOUR_SECRET>'","category":"env_access","line_end":419,"severity":"high","line_start":419},{"id":"env_access:references/inference.md:446:generic-api-secret-keys","file":"references/inference.md","pattern":"Generic API/secret keys","snippet":"api_key='app-sk-<YOUR_SECRET>'","category":"env_access","line_end":446,"severity":"high","line_start":446},{"id":"env_access:references/inference.md:466:generic-api-secret-keys","file":"references/inference.md","pattern":"Generic API/secret keys","snippet":"api_key='app-sk-<YOUR_SECRET>'","category":"env_access","line_end":466,"severity":"high","line_start":466},{"id":"sensitive:references/inference.md:15:environment-file-access","file":"references/inference.md","pattern":"Environment file access","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"sensitive","line_end":15,"severity":"high","line_start":15},{"id":"sensitive:references/inference.md:20:environment-file-access","file":"references/inference.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"sensitive","line_end":20,"severity":"high","line_start":20},{"id":"sensitive:references/inference.md:31:cryptocurrency-wallet","file":"references/inference.md","pattern":"Cryptocurrency wallet","snippet":"if (typeof window.ethereum === \"undefined\") {","category":"sensitive","line_end":31,"severity":"critical","line_start":31},{"id":"sensitive:references/inference.md:35:cryptocurrency-wallet","file":"references/inference.md","pattern":"Cryptocurrency wallet","snippet":"const provider = new BrowserProvider(window.ethereum);","category":"sensitive","line_end":35,"severity":"critical","line_start":35},{"id":"blocker:references/inference.md:143:system-reconnaissance","file":"references/inference.md","pattern":"System reconnaissance","snippet":"chatID = data.id;  // Use completion.id from response body","category":"blocker","line_end":143,"severity":"low","line_start":143},{"id":"blocker:references/inference.md:248:system-reconnaissance","file":"references/inference.md","pattern":"System reconnaissance","snippet":"const isValid = await broker.inference.processResponse(","category":"blocker","line_end":248,"severity":"low","line_start":248},{"id":"blocker:references/inference.md:285:system-reconnaissance","file":"references/inference.md","pattern":"System reconnaissance","snippet":"const isValid = await broker.inference.processResponse(","category":"blocker","line_end":285,"severity":"low","line_start":285},{"id":"blocker:references/inference.md:332:system-reconnaissance","file":"references/inference.md","pattern":"System reconnaissance","snippet":"const isValid = await broker.inference.processResponse(","category":"blocker","line_end":332,"severity":"low","line_start":332},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. Call `processResponse()` after every API response (see processResponse section below).","category":"external_commands","line_end":13,"severity":"medium","line_start":13},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Mainnet | `https://evmrpc.0g.ai` | Yes | Yes |","category":"external_commands","line_end":27,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Testnet | `https://evmrpc-testnet.0g.ai` | Yes | Yes |","category":"external_commands","line_end":28,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Model availability changes frequently. Always use `broker.inference.listService()` or `0g-compute-cl","category":"external_commands","line_end":30,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":38,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":42,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":47,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":51,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":66,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"console.log(`${s.provider} | ${s.model} | ${s.serviceType}`);","category":"external_commands","line_end":73,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"const response = await fetch(`${endpoint}/chat/completions`, {","category":"external_commands","line_end":91,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":97,"severity":"medium","line_start":91},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Call `broker.inference.processResponse()` after EVERY API response for fee settlement and TEE verifi","category":"external_commands","line_end":99,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":105,"severity":"medium","line_start":99},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":111,"severity":"medium","line_start":105},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Always try `ZG-Res-Key` response header first. Use fallback only when header is absent.","category":"external_commands","line_end":115,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Chatbot | `ZG-Res-Key` header | `data.id` from response body |","category":"external_commands","line_end":115,"severity":"medium","line_start":115},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Text-to-Image | `ZG-Res-Key` header | none |","category":"external_commands","line_end":117,"severity":"medium","line_start":116},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Speech-to-Text | `ZG-Res-Key` header | none |","category":"external_commands","line_end":118,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Chatbot Streaming | `ZG-Res-Key` header | `id` from stream chunk |","category":"external_commands","line_end":118,"severity":"medium","line_start":118},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Audio Streaming | `ZG-Res-Key` header | none |","category":"external_commands","line_end":131,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":137,"severity":"medium","line_start":131},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":143,"severity":"medium","line_start":137},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":157,"severity":"medium","line_start":143},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":163,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Insufficient balance | `deposit --amount 5` then `transfer-fund --provider <ADDR> --amount 2` |","category":"external_commands","line_end":163,"severity":"medium","line_start":163},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Provider not acknowledged | `inference acknowledge-provider --provider <ADDR>` |","category":"external_commands","line_end":166,"severity":"medium","line_start":164},{"id":"network:SKILL.md:73:fetch-api-call","file":"SKILL.md","pattern":"Fetch API call","snippet":"const response = await fetch(`${endpoint}/chat/completions`, {","category":"network","line_end":73,"severity":"low","line_start":73},{"id":"network:SKILL.md:27:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"| Mainnet | `https://evmrpc.0g.ai` | Yes | Yes |","category":"network","line_end":27,"severity":"low","line_start":27},{"id":"network:SKILL.md:28:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"| Testnet | `https://evmrpc-testnet.0g.ai` | Yes | Yes |","category":"network","line_end":28,"severity":"low","line_start":28},{"id":"network:SKILL.md:56:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"? \"https://evmrpc.0g.ai\"","category":"network","line_end":56,"severity":"low","line_start":56},{"id":"network:SKILL.md:57:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":": \"https://evmrpc-testnet.0g.ai\";","category":"network","line_end":57,"severity":"low","line_start":57},{"id":"network:SKILL.md:171:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [GitHub Starter Kit](https://github.com/0gfoundation/0g-compute-ts-starter-kit)","category":"network","line_end":171,"severity":"low","line_start":171},{"id":"network:SKILL.md:172:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Package Releases](https://github.com/0gfoundation/0g-serving-broker/releases)","category":"network","line_end":172,"severity":"low","line_start":172},{"id":"network:SKILL.md:173:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Discord Support](https://discord.gg/0glabs)","category":"network","line_end":173,"severity":"low","line_start":173},{"id":"network:SKILL.md:175:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"> Note: A unified skill covering all 0G services (Compute, Storage, Chain) exists at [0g-agent-skill","category":"network","line_end":175,"severity":"low","line_start":175},{"id":"env_access:SKILL.md:55:environment-variable-access-dot-notation","file":"SKILL.md","pattern":"Environment variable access (dot notation)","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"env_access","line_end":55,"severity":"low","line_start":55},{"id":"env_access:SKILL.md:60:environment-variable-access-dot-notation","file":"SKILL.md","pattern":"Environment variable access (dot notation)","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":60,"severity":"low","line_start":60},{"id":"env_access:SKILL.md:55:environment-variable-object","file":"SKILL.md","pattern":"Environment variable object","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"env_access","line_end":55,"severity":"low","line_start":55},{"id":"env_access:SKILL.md:60:environment-variable-object","file":"SKILL.md","pattern":"Environment variable object","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":60,"severity":"low","line_start":60},{"id":"env_access:SKILL.md:60:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"env_access","line_end":60,"severity":"high","line_start":60},{"id":"sensitive:SKILL.md:55:environment-file-access","file":"SKILL.md","pattern":"Environment file access","snippet":"const RPC_URL = process.env.NODE_ENV === 'production'","category":"sensitive","line_end":55,"severity":"high","line_start":55},{"id":"sensitive:SKILL.md:60:environment-file-access","file":"SKILL.md","pattern":"Environment file access","snippet":"const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);","category":"sensitive","line_end":60,"severity":"high","line_start":60},{"id":"sensitive:SKILL.md:14:crypto-seed-private-key-mention","file":"SKILL.md","pattern":"Crypto seed/private key mention","snippet":"3. Use environment variables for private keys. Never hardcode secrets.","category":"sensitive","line_end":14,"severity":"high","line_start":14},{"id":"sensitive:SKILL.md:44:crypto-seed-private-key-mention","file":"SKILL.md","pattern":"Crypto seed/private key mention","snippet":"0g-compute-cli login                       # Login with wallet private key","category":"sensitive","line_end":44,"severity":"high","line_start":44}],"finding_verdicts":[{"id":"network:README.md:20:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:README.md:23:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:README.md:26:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:README.md:11:hidden-file-in-home-directory","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:12:hidden-file-in-home-directory","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:13:hidden-file-in-home-directory","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:20:hidden-file-in-home-directory","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:23:hidden-file-in-home-directory","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:26:hidden-file-in-home-directory","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:11:hidden-file-access","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:12:hidden-file-access","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:13:hidden-file-access","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:20:hidden-file-access","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:23:hidden-file-access","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:README.md:26:hidden-file-access","reason":"The path is a documented, standard per-user skill installation directory. The command does not inspect unrelated hidden files or conceal payloads.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:232:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:233:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:234:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:266:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:271:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:272:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:273:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:280:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:574:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:588:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/account-management.md:602:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"network:references/account-management.md:218:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/account-management.md:219:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/account-management.md:568:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/account-management.md:217:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/account-management.md:222:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/account-management.md:569:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/account-management.md:217:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/account-management.md:222:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/account-management.md:569:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/account-management.md:222:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/account-management.md:569:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/account-management.md:217:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/account-management.md:222:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/account-management.md:569:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/account-management.md:91:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/account-management.md:370:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/account-management.md:517:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/account-management.md:639:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/account-management.md:234:ransomware-file-extensions","reason":"The match is the lockedBalance property inside a console message. It neither references a file extension nor performs ransomware behavior.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/account-management.md:465:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/README.md:145:path-traversal-sequence","reason":"The parent-directory sequence is a relative Markdown link to another bundled reference. It is not applied to user input or a filesystem operation.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/README.md:146:path-traversal-sequence","reason":"The parent-directory sequence is a relative Markdown link to another bundled reference. It is not applied to user input or a filesystem operation.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/README.md:147:path-traversal-sequence","reason":"The parent-directory sequence is a relative Markdown link to another bundled reference. It is not applied to user input or a filesystem operation.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/README.md:163:path-traversal-sequence","reason":"The parent-directory sequence is a relative Markdown link to another bundled reference. It is not applied to user input or a filesystem operation.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/examples/README.md:122:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/README.md:122:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:references/examples/speech-to-text.md:191:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:202:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:208:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:209:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:210:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:238:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:249:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:288:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:294:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:306:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:307:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:312:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:321:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:322:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:328:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:332:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:333:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:341:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:353:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:380:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:384:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:388:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:389:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:392:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:396:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:402:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:404:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:407:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:410:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:418:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:421:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:426:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:574:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/speech-to-text.md:676:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"network:references/examples/speech-to-text.md:238:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/examples/speech-to-text.md:114:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/examples/speech-to-text.md:143:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/speech-to-text.md:299:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/speech-to-text.md:383:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/speech-to-text.md:672:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/speech-to-text.md:287:node-js-fs-stat-operations","reason":"The operation checks the selected input or configured output directory before processing. It performs no broad filesystem discovery.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/speech-to-text.md:298:node-js-fs-stat-operations","reason":"The operation checks the selected input or configured output directory before processing. It performs no broad filesystem discovery.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/speech-to-text.md:303:node-js-fs-stat-operations","reason":"The operation checks the selected input or configured output directory before processing. It performs no broad filesystem discovery.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/speech-to-text.md:383:synchronous-file-operations","reason":"The operation writes a requested transcript or generated image to the configured output directory. It is visible application behavior, not destructive access.","verdict":"false_positive","confidence":0.95},{"id":"filesystem:references/examples/speech-to-text.md:225:file-stream-creation","reason":"The stream reads the audio file explicitly supplied for transcription and labels it with basename. This is expected, user-directed file access.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/speech-to-text.md:528:file-stream-creation","reason":"The stream reads the audio file explicitly supplied for transcription and labels it with basename. This is expected, user-directed file access.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/speech-to-text.md:341:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/speech-to-text.md:676:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/examples/speech-to-text.md:143:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:144:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:145:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:149:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:274:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:311:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:143:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:144:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:145:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:149:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:274:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:311:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/speech-to-text.md:67:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/speech-to-text.md:136:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/speech-to-text.md:141:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/speech-to-text.md:117:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/speech-to-text.md:274:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/speech-to-text.md:275:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/speech-to-text.md:311:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:27:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:110:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:143:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:144:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:145:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:149:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:172:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:274:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:275:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:311:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/speech-to-text.md:116:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/examples/speech-to-text.md:294:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/examples/speech-to-text.md:372:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/examples/speech-to-text.md:707:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:179:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:202:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:211:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:216:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:217:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:226:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:232:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:235:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:238:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:243:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:244:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:273:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:274:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:277:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:294:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:301:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:357:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:358:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:359:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:377:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:386:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/streaming-chat.md:491:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"network:references/examples/streaming-chat.md:277:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/examples/streaming-chat.md:113:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/examples/streaming-chat.md:144:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/examples/streaming-chat.md:450:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/streaming-chat.md:250:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/streaming-chat.md:273:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/streaming-chat.md:645:path-traversal-sequence","reason":"The parent-directory sequence is a relative Markdown link to another bundled reference. It is not applied to user input or a filesystem operation.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/streaming-chat.md:646:path-traversal-sequence","reason":"The parent-directory sequence is a relative Markdown link to another bundled reference. It is not applied to user input or a filesystem operation.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/examples/streaming-chat.md:144:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:148:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:149:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:189:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:201:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:144:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:148:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:149:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:189:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:201:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/streaming-chat.md:66:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/streaming-chat.md:138:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/streaming-chat.md:141:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/streaming-chat.md:116:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/streaming-chat.md:189:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/streaming-chat.md:190:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/streaming-chat.md:201:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/streaming-chat.md:574:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/streaming-chat.md:578:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:17:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:109:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:144:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:148:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:149:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:164:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:165:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:189:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:195:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:201:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:407:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:576:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:583:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:616:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:618:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/streaming-chat.md:115:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/examples/streaming-chat.md:345:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/examples/streaming-chat.md:363:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:182:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:190:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:218:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:234:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:243:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:244:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:250:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:254:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:255:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:263:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:264:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:265:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:271:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:280:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:291:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:316:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:321:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:326:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:335:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:338:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:339:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:344:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/examples/text-to-image.md:454:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"network:references/examples/text-to-image.md:188:fetch-api-call","reason":"The example fetches a provider-supplied image URL without destination, redirect, response-size, or content-type controls. This permits SSRF and resource exhaustion.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"network:references/examples/text-to-image.md:280:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/examples/text-to-image.md:440:fetch-api-call","reason":"The example fetches a provider-supplied image URL without destination, redirect, response-size, or content-type controls. This permits SSRF and resource exhaustion.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"network:references/examples/text-to-image.md:457:fetch-api-call","reason":"This is non-runnable placeholder pseudocode in a batch-processing explanation. It does not define a destination or perform a request.","verdict":"false_positive","confidence":0.99},{"id":"network:references/examples/text-to-image.md:67:http-client-library","reason":"The dependency is a standard HTTP client used by the documented image workflow. Its declaration alone does not create unauthorized network behavior.","verdict":"false_positive","confidence":0.99},{"id":"network:references/examples/text-to-image.md:111:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/examples/text-to-image.md:138:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/examples/text-to-image.md:389:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/text-to-image.md:194:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/text-to-image.md:228:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/text-to-image.md:325:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/text-to-image.md:442:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/text-to-image.md:446:node-js-fs-operations","reason":"The example creates its configured output directory or writes requested transcripts and images. It does not alter unrelated files or use attacker-controlled filenames.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:references/examples/text-to-image.md:227:node-js-fs-stat-operations","reason":"The operation checks the selected input or configured output directory before processing. It performs no broad filesystem discovery.","verdict":"false_positive","confidence":0.98},{"id":"filesystem:references/examples/text-to-image.md:194:synchronous-file-operations","reason":"The operation writes a requested transcript or generated image to the configured output directory. It is visible application behavior, not destructive access.","verdict":"false_positive","confidence":0.95},{"id":"filesystem:references/examples/text-to-image.md:325:synchronous-file-operations","reason":"The operation writes a requested transcript or generated image to the configured output directory. It is visible application behavior, not destructive access.","verdict":"false_positive","confidence":0.95},{"id":"filesystem:references/examples/text-to-image.md:442:synchronous-file-operations","reason":"The operation writes a requested transcript or generated image to the configured output directory. It is visible application behavior, not destructive access.","verdict":"false_positive","confidence":0.95},{"id":"filesystem:references/examples/text-to-image.md:446:synchronous-file-operations","reason":"The operation writes a requested transcript or generated image to the configured output directory. It is visible application behavior, not destructive access.","verdict":"false_positive","confidence":0.95},{"id":"filesystem:references/examples/text-to-image.md:263:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/text-to-image.md:271:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/examples/text-to-image.md:454:path-traversal-sequence","reason":"The scanner matched escaped newlines or TypeScript template syntax in documentation. No parent-directory path is constructed or accessed.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/examples/text-to-image.md:138:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:139:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:143:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:203:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:233:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:138:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:139:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:143:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:203:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:233:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/examples/text-to-image.md:65:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/text-to-image.md:132:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/text-to-image.md:136:dotenv-library","reason":"The dependency loads named local configuration for the sample application. The documentation also instructs users not to commit the environment file.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/examples/text-to-image.md:114:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/text-to-image.md:203:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/text-to-image.md:204:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/examples/text-to-image.md:233:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"obfuscation:references/examples/text-to-image.md:325:buffer-base64-decode","reason":"The buffer decodes a documented base64 image response before saving it. The bytes are not evaluated or used to hide executable code.","verdict":"false_positive","confidence":0.99},{"id":"obfuscation:references/examples/text-to-image.md:446:buffer-base64-decode","reason":"The buffer decodes a documented base64 image response before saving it. The bytes are not evaluated or used to hide executable code.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/examples/text-to-image.md:26:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:107:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:138:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:139:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:143:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:166:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:203:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:204:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:208:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:233:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/examples/text-to-image.md:113:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/examples/text-to-image.md:218:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/examples/text-to-image.md:515:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/examples/text-to-image.md:590:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/fine-tuning.md:243:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/fine-tuning.md:432:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/fine-tuning.md:438:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/fine-tuning.md:440:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/fine-tuning.md:441:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/fine-tuning.md:91:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/fine-tuning.md:216:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/fine-tuning.md:235:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/fine-tuning.md:382:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/fine-tuning.md:405:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/fine-tuning.md:511:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/fine-tuning.md:517:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:70:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:71:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:72:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:73:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:101:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:131:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:156:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:236:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:273:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/inference.md:296:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"network:references/inference.md:131:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/inference.md:156:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/inference.md:236:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/inference.md:273:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/inference.md:296:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:references/inference.md:16:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:references/inference.md:17:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"env_access:references/inference.md:15:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/inference.md:20:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/inference.md:15:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/inference.md:20:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:references/inference.md:20:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/inference.md:419:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/inference.md:446:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"env_access:references/inference.md:466:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/inference.md:15:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/inference.md:20:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/inference.md:31:cryptocurrency-wallet","reason":"The browser example checks for an injected wallet and creates an ethers provider. It does not extract a key or initiate an undisclosed transaction.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/inference.md:35:cryptocurrency-wallet","reason":"The browser example checks for an injected wallet and creates an ethers provider. It does not extract a key or initiate an undisclosed transaction.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/inference.md:143:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/inference.md:248:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/inference.md:285:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/inference.md:332:system-reconnaissance","reason":"The line performs ordinary validation, response processing, caching guidance, or task identification. It does not inspect the host or collect system details.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","reason":"The match is Markdown fencing, inline code, or a TypeScript template literal. It does not use Ruby backticks or shell command substitution.","verdict":"false_positive","confidence":0.99},{"id":"network:SKILL.md:73:fetch-api-call","reason":"The request targets the endpoint for the user-selected 0G service and sends the requested inference input. This disclosed network access is core functionality.","verdict":"false_positive","confidence":0.95},{"id":"network:SKILL.md:27:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:28:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:56:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:57:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:171:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:172:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:173:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:175:hardcoded-url","reason":"The URL is an explicit 0G, GitHub, support, or local development endpoint in documentation. It is not a covert destination or credential sink.","verdict":"false_positive","confidence":0.98},{"id":"env_access:SKILL.md:55:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:SKILL.md:60:environment-variable-access-dot-notation","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:SKILL.md:55:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:SKILL.md:60:environment-variable-object","reason":"The code reads named configuration values required by the example. It does not enumerate, log, or exfiltrate the environment.","verdict":"false_positive","confidence":0.97},{"id":"env_access:SKILL.md:60:generic-api-secret-keys","reason":"The value is a placeholder or a locally supplied credential required for the documented 0G flow. No credential is embedded, logged, or covertly transmitted.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:SKILL.md:55:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:SKILL.md:60:environment-file-access","reason":"The example uses documented local configuration with placeholders and warnings against committing secrets. It does not harvest unrelated environment data.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:SKILL.md:14:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:SKILL.md:44:crypto-seed-private-key-mention","reason":"The line is wallet setup or explicit key-safety guidance. It contains no private key and does not ask users to disclose one to the agent.","verdict":"false_positive","confidence":0.98}],"semantic_findings":[{"title":"Financial Commands Lack Confirmation Guardrails","severity":"medium","locations":[{"file":"SKILL.md","line_end":46,"line_start":42},{"file":"SKILL.md","line_end":136,"line_start":131},{"file":"references/account-management.md","line_end":206,"line_start":168}],"confidence":0.88,"description":"The skill presents token deposit, transfer, and refund commands without requiring explicit approval or rechecking the network, provider, and amount before execution.","confidence_reasoning":"The on-chain commands and missing approval requirement are explicit. Impact still depends on an agent having wallet access and command permissions."}],"subject_marketplace_commit_sha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","subject_content_hash":"5af544f552f1bba017f20311dd09fef6a7d244cd6ed05574cc30f158449ea176","subject_tree_hash":"7fa805a7f512490aaf4b3fd3b966315cc377e977b26f97a9853b2874fccea1cd","subject_plugin_path":"skills/internet-court/0g-compute","audit_payload_hash":"386e238ecf8e4617e308df23e50fb68e","confirmed_risk_level":"medium","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","contentHash":"5af544f552f1bba017f20311dd09fef6a7d244cd6ed05574cc30f158449ea176","treeHash":"7fa805a7f512490aaf4b3fd3b966315cc377e977b26f97a9853b2874fccea1cd","pluginPath":"skills/internet-court/0g-compute","auditPayloadHash":"386e238ecf8e4617e308df23e50fb68e"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"unavailable","url":null,"status":null},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":1,"capabilityReviewCount":2,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"unavailable","verificationState":"not_verified"},"isLatest":true}}