1---2name: tools3description: Skill for the Tools area of Wiki. 422 symbols across 131 files.4---56# Tools78422 symbols | 131 files | Cohesion: 56%910## When to Use1112- Working with code in `AI/`13- Understanding how normalizeSecretInput, extractXaiWebSearchContent, requestXaiWebSearch work14- Modifying tools-related functionality1516## Key Files1718| File | Symbols |19|------|---------|20| `AI/3-Application/Openclaw-source/src/agents/tools/web-fetch.ts` | resolveFetchMaxCharsCap, resolveFetchMaxResponseBytes, resolveFirecrawlApiKey, resolveFirecrawlBaseUrl, resolveFirecrawlMaxAgeMs (+12) |21| `AI/3-Application/Openclaw-source/src/agents/tools/web-search-provider-common.ts` | postTrustedWebToolsJson, withTrustedWebSearchEndpoint, resolveSearchTimeoutSeconds, resolveSearchCount, isValidIsoDate (+11) |22| `AI/3-Application/Openclaw-source/src/agents/tools/web-tools.enabled-defaults.test.ts` | installBraveResultsFetch, installBraveLlmContextFetch, createPerplexitySearchTool, createKimiSearchTool, createProviderSearchTool (+6) |23| `AI/3-Application/Openclaw-source/src/agents/tools/image-generate-tool.ts` | resolveImageGenerationModelCandidates, resolveImageGenerationModelConfigForTool, loadReferenceImages, resolveAction, resolveRequestedCount (+6) |24| `AI/3-Application/Openclaw-source/src/agents/tools/sessions-resolution.ts` | resolveMainSessionAlias, resolveInternalSessionKey, listSpawnedSessionKeys, isRequesterSpawnedSessionVisible, shouldVerifyRequesterSpawnedSessionVisibility (+6) |25| `AI/3-Application/Openclaw-source/src/agents/tools/sessions-access.ts` | resolveSessionToolsVisibility, resolveEffectiveSessionToolsVisibility, createSessionVisibilityGuard, matchesAllow, isAllowed (+6) |26| `AI/3-Application/Claude-Code-source/src/services/tools/StreamingToolExecutor.ts` | createSyntheticErrorMessage, getAbortReason, getToolInterruptBehavior, updateInterruptibleState, executeTool (+5) |27| `AI/3-Application/FrontAgent-app/packages/mcp-file/src/path-safety.ts` | normalizeRelativePath, isInsidePath, getRealProjectRoot, findNearestExistingParent, resolveReadPath (+4) |28| `AI/3-Application/Openclaw-source/src/agents/tools/image-tool.test.ts` | stubMinimaxOkFetch, stubOpenAiCompletionsOkFetch, stubMinimaxFetch, requireImageTool, createRequiredImageTool (+4) |29| `AI/3-Application/Openclaw-source/apps/android/app/src/main/java/ai/openclaw/app/tools/ToolDisplay.kt` | resolve, loadConfig, titleFromName, normalizeVerb, readDetail (+4) |3031## Entry Points3233Start here when exploring this area:3435- **`normalizeSecretInput`** (Function) — `AI/3-Application/Openclaw-source/src/utils/normalize-secret-input.ts:15`36- **`extractXaiWebSearchContent`** (Function) — `AI/3-Application/Openclaw-source/extensions/xai/src/web-search-shared.ts:90`37- **`requestXaiWebSearch`** (Function) — `AI/3-Application/Openclaw-source/extensions/xai/src/web-search-shared.ts:125`38- **`runTavilySearch`** (Function) — `AI/3-Application/Openclaw-source/extensions/tavily/src/tavily-client.ts:67`39- **`runTavilyExtract`** (Function) — `AI/3-Application/Openclaw-source/extensions/tavily/src/tavily-client.ts:160`4041## Key Symbols4243| Symbol | Type | File | Line |44|--------|------|------|------|45| `ToolInputError` | Class | `AI/3-Application/Openclaw-source/src/agents/tools/common.ts` | 26 |46| `normalizeSecretInput` | Function | `AI/3-Application/Openclaw-source/src/utils/normalize-secret-input.ts` | 15 |47| `extractXaiWebSearchContent` | Function | `AI/3-Application/Openclaw-source/extensions/xai/src/web-search-shared.ts` | 90 |48| `requestXaiWebSearch` | Function | `AI/3-Application/Openclaw-source/extensions/xai/src/web-search-shared.ts` | 125 |49| `runTavilySearch` | Function | `AI/3-Application/Openclaw-source/extensions/tavily/src/tavily-client.ts` | 67 |50| `runTavilyExtract` | Function | `AI/3-Application/Openclaw-source/extensions/tavily/src/tavily-client.ts` | 160 |51| `resolveTavilySearchConfig` | Function | `AI/3-Application/Openclaw-source/extensions/tavily/src/config.ts` | 22 |52| `resolveTavilyApiKey` | Function | `AI/3-Application/Openclaw-source/extensions/tavily/src/config.ts` | 40 |53| `resolveTavilyBaseUrl` | Function | `AI/3-Application/Openclaw-source/extensions/tavily/src/config.ts` | 49 |54| `resolveCacheTtlMs` | Function | `AI/3-Application/Openclaw-source/src/agents/tools/web-shared.ts` | 15 |55| `normalizeCacheKey` | Function | `AI/3-Application/Openclaw-source/src/agents/tools/web-shared.ts` | 21 |56| `readCache` | Function | `AI/3-Application/Openclaw-source/src/agents/tools/web-shared.ts` | 25 |57| `writeCache` | Function | `AI/3-Application/Openclaw-source/src/agents/tools/web-shared.ts` | 40 |58| `postTrustedWebToolsJson` | Function | `AI/3-Application/Openclaw-source/src/agents/tools/web-search-provider-common.ts` | 94 |59| `runFirecrawlSearch` | Function | `AI/3-Application/Openclaw-source/extensions/firecrawl/src/firecrawl-client.ts` | 183 |60| `runFirecrawlScrape` | Function | `AI/3-Application/Openclaw-source/extensions/firecrawl/src/firecrawl-client.ts` | 341 |61| `resolveFirecrawlSearchConfig` | Function | `AI/3-Application/Openclaw-source/extensions/firecrawl/src/config.ts` | 63 |62| `resolveFirecrawlApiKey` | Function | `AI/3-Application/Openclaw-source/extensions/firecrawl/src/config.ts` | 101 |63| `resolveFirecrawlBaseUrl` | Function | `AI/3-Application/Openclaw-source/extensions/firecrawl/src/config.ts` | 116 |64| `isInsidePath` | Function | `AI/3-Application/FrontAgent-app/packages/mcp-file/src/path-safety.ts` | 22 |6566## Connected Areas6768| Area | Connections |69|------|-------------|70| Scripts | 91 calls |71| Ink | 25 calls |72| Agents | 24 calls |73| Security | 18 calls |74| Auto-reply | 17 calls |75| Gateway | 15 calls |76| Tavily | 10 calls |77| Plugins | 10 calls |7879## How to Explore80811. `gitnexus_context({name: "normalizeSecretInput"})` — see callers and callees822. `gitnexus_query({query: "tools"})` — find related execution flows833. Read key files listed above for implementation details