Repository Analysis

BlockRunAI/ClawRouter

The agent-native LLM router for OpenClaw. 41+ models, <1ms routing, USDC payments on Base & Solana via x402.

7.3 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of BlockRunAI/ClawRouter, a TypeScript project with 6,656 GitHub stars. SynthScan v2.0 examined 73,038 lines of code across 207 source files, recording 259 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 7.3 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).

7.3
Adjusted Score
7.3
Raw Score
100%
Time Factor
2026-07-12
Last Push
6.7K
Stars
TypeScript
Language
73.0K
Lines of Code
207
Files
259
Pattern Hits
2026-07-14
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 115LOW 144

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 259 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.ts88// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts91// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts111// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts114// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts143// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts146// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts165// ═══════════════════════════════════════════════════════════════COMMENT
MEDIUMtest/smoke-wallet-scenarios.ts168// ═══════════════════════════════════════════════════════════════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…
Modern AI Meta-Vocabulary42 hits · 128 pts
SeverityFileLineSnippetContext
MEDIUMtest/e2e.ts79// System prompt with reasoning/agentic keywords should NOT affect simple queriesCOMMENT
MEDIUMtest/e2e.ts80// Bug: if client's system prompt had "step by step" / "edit files" / "fix bugs", ALL queries became REASONING/agenticCOMMENT
MEDIUMtest/e2e.ts116// Coding assistant system prompt should NOT force agentic mode on simple queriesCOMMENT
MEDIUMtest/e2e.ts118// triggering agenticScore >= 0.6 on EVERY request, routing all to Sonnet via agentic tiersCOMMENT
MEDIUMtest/e2e.ts138 // But if USER explicitly requests agentic work, it SHOULD trigger agentic modeCOMMENT
MEDIUMtest/e2e.ts139 // Need 3+ agentic keyword matches for score 0.6: "fix", "deploy", "make sure"COMMENT
MEDIUMtest/e2e.ts480 // 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/proxy.ts793 // Happens when models like gemini-3.1-flash-lite receive complex agentic requestsCOMMENT
MEDIUMsrc/proxy.ts3610 // model believe those capabilities do not exist, which breaks agentic runs.COMMENT
MEDIUMsrc/proxy.ts3611 // Reliability is handled later via agentic routing and tool-support filters.COMMENT
MEDIUMsrc/proxy.ts4303 // Tool detection — when tools are present, force agentic tiers for reliable tool useCOMMENT
MEDIUMsrc/proxy.ts4329 // Keep agentic routing when tools are present, even for SIMPLE queries.COMMENT
MEDIUMsrc/proxy.ts4331 // demoting to non-agentic tiers causes fallback to models that refuseCOMMENT
MEDIUMsrc/proxy.ts4802 // Case A: tool/complex/agentic routing profile — check global model tableCOMMENT
MEDIUMsrc/proxy.ts4803 // Intentionally exclude free models: they cannot handle complex/agentic tasks.COMMENT
MEDIUMsrc/proxy.ts5073 // Complex/agentic tasks with no affordable model: already blocked above (before streaming headers).COMMENT
MEDIUMsrc/proxy.ts5096 // (A) complex/agentic routing profile tasks (tools / COMPLEX / REASONING tier)COMMENT
MEDIUMsrc/models.ts140 "grok-code": "xai/grok-build-0.1", // xAI's agentic coding model (Build 0.1, 2026-06-04)CODE
MEDIUMsrc/models.ts709 // Anthropic - all Claude models excel at agentic workflowsCOMMENT
MEDIUMsrc/models.ts750 // 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/types.ts18 agenticScore?: number; // 0-1 agentic task score for auto-switching to agentic tiersCODE
MEDIUMsrc/router/types.ts31 agenticScore?: number; // 0-1 agentic task score (present when tier routing used)CODE
MEDIUMsrc/router/rules.ts246 // Score agentic task indicators — user prompt onlyCOMMENT
MEDIUMsrc/router/rules.ts249 // force every request into agentic mode.COMMENT
MEDIUMsrc/router/strategy.ts96 // dropping into auto routing (which could select agentic tiers).COMMENT
MEDIUMsrc/router/strategy.ts108 // Auto profile (or undefined): intelligent routing with agentic detection.COMMENT
MEDIUMsrc/router/strategy.ts111 // - `true` → force agentic tiers (ignore heuristics)COMMENT
MEDIUMsrc/router/strategy.ts112 // - `false` → disable agentic tiers entirely (even if tools are present)COMMENT
MEDIUMsrc/router/strategy.ts120 // Explicitly disabled — never use agentic tiersCOMMENT
MEDIUMsrc/router/strategy.ts123 // Explicitly enabled — use agentic tiers if availableCOMMENT
MEDIUMsrc/router/strategy.test.ts147 // Regression test for #148: agenticMode: false should disable agentic tierCOMMENT
MEDIUMsrc/router/strategy.test.ts147 // Regression test for #148: agenticMode: false should disable agentic tierCOMMENT
MEDIUMsrc/router/config.ts904 // English - File operations (clearly agentic)COMMENT
MEDIUMsrc/router/config.ts1025 agenticTask: 0.04, // Reduced - agentic signals influence tier selection, not dominate itCODE
MEDIUMsrc/router/config.ts1229 primary: "anthropic/claude-sonnet-4.6", // 2,110ms — best agentic qualityCODE
MEDIUMsrc/router/config.ts1234 "anthropic/claude-sonnet-5", // in-family hot swap — same cost, near-Opus agentic qualityCODE
MEDIUMsrc/router/config.ts1242 "openai/gpt-5.5", // Prior flagship — native agent + computer use (exactly the agentic-tier use case)CODE
MEDIUMsrc/router/config.ts1279 // Set to `true` to force agentic tiers; `false` to disable them entirely.COMMENT
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.md22## Step 1: Benchmarking the FleetCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md73## Step 2: Adding the Quality DimensionCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md125## Step 3: The Failed Experiment (Latency-First Routing)COMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md145## Step 4: The 14-Dimension Scoring SystemCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md210## Step 5: Tier-to-Model MappingCOMMENT
LOWdocs/smart-llm-router-14-dimension-classifier.md267## 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…
Hyper-Verbose Identifiers37 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.ts47export 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.ts618export function debugHeadersEnabledFromEnv(CODE
LOWsrc/proxy.ts756export function detectDegradedSuccessResponse(body: string): string | undefined {CODE
LOWsrc/proxy.ts1002function normalizeMessagesForGoogle(messages: ChatMessage[]): ChatMessage[] {CODE
LOWsrc/proxy.ts1067export function normalizeMessagesForThinking(CODE
LOWsrc/proxy.ts1634export function resolvePhoneTelemetryCost(args: {CODE
LOWsrc/index.ts213function isBlockrunWebSearchDisabled(config?: unknown): boolean {CODE
LOWsrc/index.ts639function clearDeferredProxyStartTimer(CODE
LOWsrc/index.ts680function startPendingConfiguredProxyIfQueued(CODE
LOWsrc/index.ts696function resumePendingConfiguredProxyAfterStaleFailure(CODE
LOWsrc/index.ts705function supersedeEmptyConfigStartup(api: OpenClawPluginApi): void {CODE
LOWsrc/index.ts1085function buildImageGenerationProvider(): ImageGenerationProviderPlugin {CODE
LOWsrc/index.ts1178function buildMusicGenerationProvider(): MusicGenerationProviderPlugin {CODE
LOWsrc/index.ts1258function buildVideoGenerationProvider(): VideoGenerationProviderPlugin {CODE
LOWsrc/index.ts1344function restartProxyForChainSwitch(api: OpenClawPluginApi): void {CODE
LOWsrc/auth.ts222export async function resolveOrGenerateWalletKey(): Promise<WalletResolution> {CODE
LOWsrc/auth.ts284export 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 Block16 hits · 15 pts
SeverityFileLineSnippetContext
LOWdocs/worker-network.md1321cd /Users/vickyfu/Documents/blockrun-web/ClawRouterCOMMENT
LOWdocs/configuration.md361COMMENT
LOWscripts/sync-install-to-blockrun.sh1#!/bin/bashCOMMENT
LOWsrc/proxy.ts121]);COMMENT
LOWsrc/proxy.ts5681 if (rsp.choices && Array.isArray(rsp.choices)) {COMMENT
LOWsrc/index.ts501 logger.info(COMMENT
LOWsrc/index.ts2121 // register() twice during gateway startup. The first call happens beforeCOMMENT
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.ts546 // Step 1: detect OpenClaw on PATHCOMMENT
LOWsrc/cli.ts562 // Step 2: register as an OpenClaw plugin (writes plugins.entries.clawrouter).COMMENT
LOWsrc/cli.ts586 // Step 3: sync the models allowlist + provider config + auth profile directly.COMMENT
LOWsrc/proxy.ts2445 // Step 1: submit job. Fast models return 200 + image data inline withinCOMMENT
LOWsrc/proxy.ts2475 // Step 2: slow path — BlockRun returned 202 + poll_url (slow model > 30sCOMMENT
LOWsrc/proxy.ts2557 // Step 3: save images to ~/.openclaw/blockrun/images/ and replace with localhost URLsCOMMENT
LOWsrc/proxy.ts2876 // Step 1: submit job. Server returns 202 with poll_url.COMMENT
LOWsrc/proxy.ts2906 // Step 2: if no poll_url, upstream responded with the final result (legacy server) —COMMENT
LOWsrc/proxy.ts2993 // 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.ts414 "async function handleRequest() { ... }"CODE