Repository Analysis

BlockRunAI/ClawRouter

The agent-native LLM router for autonomous agents. Every frontier model behind one wallet, <1ms local routing, USDC payments on Base & Solana via x402.

6.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of BlockRunAI/ClawRouter, a TypeScript project with 6,574 GitHub stars. SynthScan v2.0 examined 73,385 lines of code across 216 source files, recording 249 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 6.7 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

6.7
Adjusted Score
6.7
Raw Score
100%
Time Factor
2026-08-26
Last Push
6.6K
Stars
TypeScript
Language
73.4K
Lines of Code
216
Files
249
Pattern Hits
2026-08-29
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 0MEDIUM 102LOW 147

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 249 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators73 hits · 224 pts
SeverityFileLineSnippetContext
MEDIUMtest/resilience-stability.ts104// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-stability.ts106// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-stability.ts199// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-stability.ts201// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-stability.ts252// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-stability.ts254// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts103// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts105// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts140// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts142// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts195// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts197// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts250// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts252// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts281// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts283// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts315// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-errors.ts317// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts45// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts48// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts95// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts98// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts119// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts122// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts151// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts154// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts173// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts176// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts93// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts95// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts145// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts147// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts174// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts176// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts211// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts213// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts233// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/resilience-lifecycle.ts235// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh66# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh68# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh126# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh128# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh185# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh187# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh272# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh274# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh371# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh373# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh466# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh468# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh518# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh520# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh551# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/docker/edge-case-tests.sh553# ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/integration/multiturn-reasoning.test.ts29// ─── Mock upstream server ─────────────────────────────────────────────────────COMMENT
MEDIUMtest/integration/multiturn-reasoning.test.ts107// ─── Tests ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/sync-install-to-blockrun.sh4# ============================================================================COMMENT
MEDIUMscripts/sync-install-to-blockrun.sh6# ============================================================================COMMENT
MEDIUMscripts/sync-install-to-blockrun.sh21# ============================================================================COMMENT
MEDIUMscripts/update.sh7# ─────────────────────────────────────────────────────────────COMMENT
13 more matches not shown…
Structural Annotation Overuse75 hits · 109 pts
SeverityFileLineSnippetContext
LOWdocs/subscription-failover.md87#### Step 1: Set Primary Model (Your Subscription)COMMENT
LOWdocs/subscription-failover.md100#### Step 2: Add ClawRouter as FallbackCOMMENT
LOWdocs/subscription-failover.md110#### Step 3: Verify ConfigurationCOMMENT
LOWdocs/subscription-failover.md124#### Step 4: Test Failover (Optional)COMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md27## Step 1: Benchmarking the FleetCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md78## Step 2: Adding the Quality DimensionCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md130## Step 3: The Failed Experiment (Latency-First Routing)COMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md150## Step 4: The 14-Dimension Scoring SystemCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md215## Step 5: Tier-to-Model MappingCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md272## Step 6: Context-Aware FilteringCOMMENT
LOWdocs/anthropic-cost-savings.md227### Step 1: InstallCOMMENT
LOWdocs/anthropic-cost-savings.md235### Step 2: Update Your CodeCOMMENT
LOWdocs/anthropic-cost-savings.md276### Step 3: Fund (optional)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md784# Step 1: Check git status (must be clean)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md793# Step 2: Check we're on main branchCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md803# Step 3: Pull latest changesCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md809# Step 4: Install dependenciesCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md815# Step 5: Run typecheckCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md821# Step 6: Run buildCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md827# Step 7: Run testsCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md894# Step 10: Rebuild with new versionCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md900# Step 11: Commit version bumpCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md907# Step 12: Create git tagCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md913# Step 13: Confirm publishCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md929# Step 14: Publish to npmCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md935# Step 15: Push to GitHubCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md942# Step 16: Create GitHub releaseCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md22### Step 1: Add test for 413 Payload Too Large (150KB limit)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md55### Step 2: Add test for 400 Bad Request (malformed JSON)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md76### Step 3: Add test for 400 Bad Request (missing required fields)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md102### Step 4: Add test for large message array (200 messages limit)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md135### Step 5: Add test for invalid model nameCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md163### Step 6: Add test for concurrent requests (stress test)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md204### Step 7: Add test for negative max_tokens (should be rejected)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md229### Step 8: Add test for empty messages arrayCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md252### Step 9: Add test for streaming with large response (token counting)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md301### Step 10: Add test for balance check (verify wallet has funds)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md318### Step 11: Run expanded E2E testsCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md354### Step 12: Commit E2E test expansionCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md386### Step 1: Create Dockerfile for installation testingCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md414### Step 2: Create bash test script with 10 test casesCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md667### Step 3: Make test script executableCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md673### Step 4: Update run-docker-test.sh to include installation testsCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md697### Step 5: Run Docker installation testsCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md734### Step 6: Commit Docker installation testsCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md766### Step 1: Create deployment scriptCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md841# Step 8: Get version bump typeCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md882# Step 9: Update version in src/version.tsCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md967### Step 2: Make deployment script executableCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md973### Step 3: Add deploy command to package.jsonCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md999### Step 4: Test deployment script (dry run)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md1017### Step 5: Document deployment processCOMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md1156### Step 6: Run deployment script (test mode)COMMENT
LOWdocs/plans/2026-02-13-e2e-docker-deployment.md1232### Step 7: Commit deployment automationCOMMENT
LOWskills/release/SKILL.md18## Step 1: Confirm the New VersionCOMMENT
LOWskills/release/SKILL.md30## Step 2: Update `package.json` VersionCOMMENT
LOWskills/release/SKILL.md36## Step 3: Write CHANGELOG EntryCOMMENT
LOWskills/release/SKILL.md56## Step 4: Confirm No Manual Server Sync RequiredCOMMENT
LOWskills/release/SKILL.md96## Step 5: BuildCOMMENT
LOWskills/release/SKILL.md106## Step 6: Run TestsCOMMENT
15 more matches not shown…
Modern AI Meta-Vocabulary29 hits · 84 pts
SeverityFileLineSnippetContext
MEDIUMtest/e2e.ts83// System prompt with reasoning/agentic keywords should NOT affect simple queriesCOMMENT
MEDIUMtest/e2e.ts84// Bug: if client's system prompt had "step by step" / "edit files" / "fix bugs", ALL queries became REASONING/agenticCOMMENT
MEDIUMtest/e2e.ts120// Coding assistant system prompt should NOT force agentic mode on simple queriesCOMMENT
MEDIUMtest/e2e.ts122// triggering agenticScore >= 0.6 on EVERY request, routing all to Sonnet via agentic tiersCOMMENT
MEDIUMtest/e2e.ts142 // But if USER explicitly requests agentic work, it SHOULD trigger agentic modeCOMMENT
MEDIUMtest/e2e.ts143 // Need 3+ agentic keyword matches for score 0.6: "fix", "deploy", "make sure"COMMENT
MEDIUMtest/e2e.ts484 // Test 6: Agentic score should be 0 for non-agentic queriesCOMMENT
MEDIUMdocs/features.md8- [Agentic Auto-Detection](#agentic-auto-detection)CODE
MEDIUMdocs/features.md135 agenticMode: true # Always use agentic tiersCODE
MEDIUMdocs/features.md145// Request with tools → auto-agentic modeCOMMENT
MEDIUMsrc/models.test.ts207 // Pro tier is deliberately NOT `agentic` (mirrors gpt-5.4-pro): max-computeCOMMENT
MEDIUMsrc/models.test.ts275 // premium REASONING and agentic COMPLEX/REASONING primaries.COMMENT
MEDIUMsrc/proxy.ts798 // Happens when models like gemini-3.1-flash-lite receive complex agentic requestsCOMMENT
MEDIUMsrc/proxy.ts3786 // model believe those capabilities do not exist, which breaks agentic runs.COMMENT
MEDIUMsrc/proxy.ts3787 // Reliability is handled later via agentic routing and tool-support filters.COMMENT
MEDIUMsrc/proxy.ts4558 // Tool detection — when tools are present, force agentic tiers for reliable tool useCOMMENT
MEDIUMsrc/proxy.ts4629 // Keep agentic routing when tools are present, even for SIMPLE queries.COMMENT
MEDIUMsrc/proxy.ts4631 // demoting to non-agentic tiers causes fallback to models that refuseCOMMENT
MEDIUMsrc/proxy.ts5122 // Case A: tool/complex/agentic routing profile — check global model tableCOMMENT
MEDIUMsrc/proxy.ts5123 // Intentionally exclude free models: they cannot handle complex/agentic tasks.COMMENT
MEDIUMsrc/proxy.ts5422 // Complex/agentic tasks with no affordable model: already blocked above (before streaming headers).COMMENT
MEDIUMsrc/proxy.ts5445 // (A) complex/agentic routing profile tasks (tools / COMPLEX / REASONING tier)COMMENT
MEDIUMsrc/models.ts151 // and agentic tool use. EXPLICIT PINS ONLY: bare `qwen` deliberately staysCOMMENT
MEDIUMsrc/models.ts213 "grok-code": "xai/grok-build-0.1", // xAI's agentic coding model (Build 0.1, 2026-06-04)CODE
MEDIUMsrc/models.ts695 // Chat/vision only upstream — no reasoning or agentic categories.COMMENT
MEDIUMsrc/models.ts896 // Anthropic - all Claude models excel at agentic workflowsCOMMENT
MEDIUMsrc/models.ts937 // Newest Sonnet — near-Opus coding/agentic quality at Sonnet cost. SameCOMMENT
MEDIUMsrc/polymarket/tool.ts11// engine's guardrails (confirm:true hard gate, POLYMARKET_MAX_BET_USD per-orderCOMMENT
MEDIUMsrc/router/brand-numbers.test.ts42 // eco / auto / premium / agentic — one tier table each.COMMENT
Hyper-Verbose Identifiers38 hits · 36 pts
SeverityFileLineSnippetContext
LOWtest/test-e2e.ts325function extractFirstMessageContent(payload: ResponsePayload): string | undefined {CODE
LOWsrc/mcp-config.ts41function normalizeServerDefinition(server: McpServerDefinition): Record<string, unknown> {CODE
LOWsrc/mcp-config.ts61function looksLikeBlockrunPackageArgs(args: string[]): boolean {CODE
LOWsrc/mcp-config.ts65function looksLikeLocalBlockrunDistArgs(args: string[]): boolean {CODE
LOWsrc/mcp-config.ts69export function createBlockrunMcpServerDefinition(opts?: {CODE
LOWsrc/mcp-config.ts92function isManagedBlockrunMcpServerDefinition(value: unknown): value is McpServerDefinition {CODE
LOWsrc/mcp-config.ts101export function ensureBlockrunMcpServerConfig(CODE
LOWsrc/mcp-config.ts139export function removeManagedBlockrunMcpServerConfig(config: OpenClawConfig): boolean {CODE
LOWsrc/payment-preauth.ts49export function createPayFetchWithPreAuth(CODE
LOWsrc/web-search-provider.ts114function normalizeBlockRunExaPayload(query: string, payload: unknown): Record<string, unknown> {CODE
LOWsrc/web-search-provider.ts149function ensureBlockrunExaSelection(config: OpenClawConfig): OpenClawConfig {CODE
LOWsrc/share-formatters.ts539export function transformForTelegramSplit(md: string): string[] {CODE
LOWsrc/builder-code.ts25export function withBuilderCodeServiceCode(CODE
LOWsrc/proxy.ts623export function debugHeadersEnabledFromEnv(CODE
LOWsrc/proxy.ts761export function detectDegradedSuccessResponse(body: string): string | undefined {CODE
LOWsrc/proxy.ts1007function normalizeMessagesForGoogle(messages: ChatMessage[]): ChatMessage[] {CODE
LOWsrc/proxy.ts1072export function normalizeMessagesForThinking(CODE
LOWsrc/proxy.ts1577export function estimateBalancePreflightAmount(CODE
LOWsrc/proxy.ts1789export function resolvePhoneTelemetryCost(args: {CODE
LOWsrc/index.ts214function isBlockrunWebSearchDisabled(config?: unknown): boolean {CODE
LOWsrc/index.ts722function clearDeferredProxyStartTimer(CODE
LOWsrc/index.ts763function startPendingConfiguredProxyIfQueued(CODE
LOWsrc/index.ts779function resumePendingConfiguredProxyAfterStaleFailure(CODE
LOWsrc/index.ts788function supersedeEmptyConfigStartup(api: OpenClawPluginApi): void {CODE
LOWsrc/index.ts1176export function buildImageGenerationProvider(): ImageGenerationProviderPlugin {CODE
LOWsrc/index.ts1288function buildMusicGenerationProvider(): MusicGenerationProviderPlugin {CODE
LOWsrc/index.ts1368function buildVideoGenerationProvider(): VideoGenerationProviderPlugin {CODE
LOWsrc/index.ts1456function restartProxyForChainSwitch(api: OpenClawPluginApi): void {CODE
LOWsrc/auth.ts241export async function resolveOrGenerateWalletKey(): Promise<WalletResolution> {CODE
LOWsrc/auth.ts303export async function recoverWalletFromMnemonic(): Promise<void> {CODE
LOWsrc/polymarket/creds.ts120export function loadDepositWalletForSigner(signer: string): string | undefined {CODE
LOWsrc/polymarket/relayer.ts34export function relayerCredsMissingMessage(): string {CODE
LOWsrc/polymarket/relayer.ts46async function getOrCreateBuilderCreds(): Promise<{CODE
LOWsrc/polymarket/relayer.ts117export async function deriveDepositWalletNoCreds(): Promise<Hex> {CODE
LOWsrc/polymarket/client.ts72export function installUnderscoreHeaderBridge(instance: {CODE
LOWsrc/polymarket/wallet-adapter.ts38export function getOrCreateWalletKey(): Hex {CODE
LOWsrc/compression/layers/whitespace.ts52export function normalizeMessagesWhitespace(messages: NormalizedMessage[]): WhitespaceResult {CODE
LOWsrc/compression/layers/dynamic-codebook.ts166export function generateDynamicCodebookHeader(codebook: Record<string, string>): string {CODE
Over-Commented Block18 hits · 18 pts
SeverityFileLineSnippetContext
LOWdocs/worker-network.md1321cd /Users/vickyfu/Documents/blockrun-web/ClawRouterCOMMENT
LOWdocs/configuration.md361 - id: "@blockrun/clawrouter"COMMENT
LOWscripts/reinstall.sh401} catch (e) { fs.writeFileSync('$CHANNEL_CONFIG_BACKUP', '{}'); }COMMENT
LOWscripts/sync-install-to-blockrun.sh1#!/bin/bashCOMMENT
LOW.github/workflows/brand-sync.yml1# Vendored into every repo listed in blockrun's brand/consumers.json — theCOMMENT
LOWsrc/proxy.ts121 "blockrun/premium",COMMENT
LOWsrc/index.ts501 needsWrite = true;COMMENT
LOWsrc/index.ts2221 });COMMENT
LOWsrc/index.ts2241 // and the user's custom routing/wallet config is silently ignored.COMMENT
LOWsrc/polymarket/tool.ts1// src/polymarket/tool.tsCOMMENT
LOWsrc/polymarket/l1-auth-1271.ts1// src/utils/polymarket/l1-auth-1271.tsCOMMENT
LOWsrc/polymarket/constants.ts1// src/utils/polymarket/constants.tsCOMMENT
LOWsrc/polymarket/creds.ts1// src/utils/polymarket/creds.tsCOMMENT
LOWsrc/polymarket/relayer.ts1// src/utils/polymarket/relayer.tsCOMMENT
LOWsrc/polymarket/client.ts1// src/utils/polymarket/client.tsCOMMENT
LOWsrc/polymarket/wallet-adapter.ts1// src/polymarket/wallet-adapter.tsCOMMENT
LOWsrc/polymarket/withdraw.ts1// src/utils/polymarket/withdraw.tsCOMMENT
LOWsrc/polymarket/redeem.ts1// src/utils/polymarket/redeem.tsCOMMENT
Verbosity Indicators9 hits · 13 pts
SeverityFileLineSnippetContext
LOWsrc/cli.ts550 // Step 1: locate OpenClaw. `command -v` alone is not enough — npm runs lifecycleCOMMENT
LOWsrc/cli.ts599 // Step 2: register as an OpenClaw plugin (writes plugins.entries.clawrouter).COMMENT
LOWsrc/cli.ts623 // Step 3: sync the models allowlist + provider config + auth profile directly.COMMENT
LOWsrc/proxy.ts2611 // Step 1: submit job. Fast models return 200 + image data inline withinCOMMENT
LOWsrc/proxy.ts2641 // Step 2: slow path — BlockRun returned 202 + poll_url (slow model > 30sCOMMENT
LOWsrc/proxy.ts2723 // Step 3: save images to ~/.openclaw/blockrun/images/ and replace with localhost URLsCOMMENT
LOWsrc/proxy.ts3042 // Step 1: submit job. Server returns 202 with poll_url.COMMENT
LOWsrc/proxy.ts3072 // Step 2: if no poll_url, upstream responded with the final result (legacy server) —COMMENT
LOWsrc/proxy.ts3159 // Step 3: download any hosted URLs to local disk + rewrite to localhost.COMMENT
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWopenclaw.plugin.json59 "placeholder": "0x... (optional — auto-generated)"CODE
LOWtest/test-model-selection.sh58 apiKey: 'dummy-key',CODE
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/benchmark.py93 except Exception as e:CODE
LOWscripts/benchmark.py161 except Exception as e:CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtest/docker-install-tests.sh97 # Check if openclaw.plugin.json exists in the packageCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/sync-install-to-blockrun.sh17# Usage:COMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/e2e.ts418 "async function handleRequest() { ... }"CODE