AI Slop Code RIsk Monitor

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.

5.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for BlockRunAI/ClawRouter, a TypeScript project with 6,622 GitHub stars. SynthScan examined 113,780 lines of code across 305 source files, recording 309 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 5.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.0
Adjusted Signal
5.0
Raw Pattern Score
100%
Time Factor
2026-10-05
Last Push
6.6K
Stars
TypeScript
Language
113.8K
Lines of Code
305
Files
309
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 12.9/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 222 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

Are imports declared and package/API names verified? 4 finding(s).

Agent Over-Engineering Ratio 12.2/100 · LOW

Are wrappers, guards, and repeated structures necessary? 134 finding(s).

PR Review Velocity Impact 21.1/100 · LOW

Which changes need focused human review? 309 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 0MEDIUM 115LOW 194

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 309 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Decorative Section Separators81 hits · 248 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
21 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
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md784# Step 1: Check git status (must be clean)COMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md793# Step 2: Check we're on main branchCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md803# Step 3: Pull latest changesCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md809# Step 4: Install dependenciesCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md815# Step 5: Run typecheckCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md821# Step 6: Run buildCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md827# Step 7: Run testsCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md894# Step 10: Rebuild with new versionCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md900# Step 11: Commit version bumpCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md907# Step 12: Create git tagCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md913# Step 13: Confirm publishCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md929# Step 14: Publish to npmCOMMENT
LOW⚡docs/plans/2026-02-13-e2e-docker-deployment.md935# Step 15: Push to GitHubCOMMENT
LOW⚡docs/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-Vocabulary32 hits · 93 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/configuration.md525 # agenticTiers: { ... } # or `null` to disable agentic switching entirelyCOMMENT
MEDIUMdocs/configuration.md542 # agenticMode: true | false # force / disable the agentic tier set (default: auto-detect)COMMENT
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.ts287 // premium REASONING and agentic COMPLEX/REASONING primaries.COMMENT
MEDIUMsrc/proxy.ts976 // Happens when models like gemini-3.1-flash-lite receive complex agentic requestsCOMMENT
MEDIUMsrc/proxy.ts4768 // model believe those capabilities do not exist, which breaks agentic runs.COMMENT
MEDIUMsrc/proxy.ts4769 // Reliability is handled later via agentic routing and tool-support filters.COMMENT
MEDIUMsrc/proxy.ts5582 // Tool detection — when tools are present, force agentic tiers for reliable tool useCOMMENT
MEDIUMsrc/proxy.ts5653 // Keep agentic routing when tools are present, even for SIMPLE queries.COMMENT
MEDIUMsrc/proxy.ts5655 // demoting to non-agentic tiers causes fallback to models that refuseCOMMENT
MEDIUMsrc/proxy.ts6146 // Case A: tool/complex/agentic routing profile — check global model tableCOMMENT
MEDIUMsrc/proxy.ts6147 // Intentionally exclude free models: they cannot handle complex/agentic tasks.COMMENT
MEDIUMsrc/proxy.ts6506 // Complex/agentic tasks with no affordable model: already blocked above (before streaming headers).COMMENT
MEDIUMsrc/proxy.ts6529 // (A) complex/agentic routing profile tasks (tools / COMPLEX / REASONING tier)COMMENT
MEDIUMsrc/models.ts175 // and agentic tool use. EXPLICIT PINS ONLY: bare `qwen` deliberately staysCOMMENT
MEDIUMsrc/models.ts873 // Chat/vision only upstream — no reasoning or agentic categories.COMMENT
MEDIUMsrc/models.ts1090 // Anthropic - all Claude models excel at agentic workflowsCOMMENT
MEDIUMsrc/models.ts1131 // Newest Sonnet — near-Opus coding/agentic quality at Sonnet cost.COMMENT
MEDIUMsrc/models.ts2138 // agentic eligibility is its own change with its own evidence bar.COMMENT
MEDIUMsrc/models.ts266 "grok-code": "xai/grok-build-0.1", // xAI's agentic coding model (Build 0.1, 2026-06-04)CODE
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 Identifiers51 hits · 48 pts
SeverityFileLineSnippetContext
LOWtest/test-e2e.ts325function extractFirstMessageContent(payload: ResponsePayload): string | undefined {CODE
LOWapps/desktop/electron/core/manager.ts698function currencyNumberOrUndefined(value: unknown): number | undefined {CODE
LOWapps/desktop/electron/core/manager.ts863function solanaAddressFromMnemonic(mnemonic: string): string {CODE
LOWapps/desktop/electron/core/service-auth.ts65async function readTokenAfterConcurrentCreate(path: string): Promise<string> {CODE
LOWapps/desktop/electron/core/files.ts112export async function canonicalWriteDestination(path: string): Promise<string> {CODE
LOWsrc/mcp-config.ts41function normalizeServerDefinition(server: McpServerDefinition): Record<string, unknown> {CODE
LOW⚡src/mcp-config.ts61function looksLikeBlockrunPackageArgs(args: string[]): boolean {CODE
LOW⚡src/mcp-config.ts65function looksLikeLocalBlockrunDistArgs(args: string[]): boolean {CODE
LOW⚡src/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.ts52export 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/timestamp-strip.ts19export function stripLeadingTextBlockTimestamp(blocks: unknown[]): unknown[] {CODE
LOWsrc/share-formatters.ts539export function transformForTelegramSplit(md: string): string[] {CODE
LOWsrc/builder-code.ts25export function withBuilderCodeServiceCode(CODE
LOWsrc/proxy.ts788export function debugHeadersEnabledFromEnv(CODE
LOWsrc/proxy.ts939export function detectDegradedSuccessResponse(body: string): string | undefined {CODE
LOWsrc/proxy.ts1195function normalizeMessagesForGoogle(messages: ChatMessage[]): ChatMessage[] {CODE
LOWsrc/proxy.ts1260export function normalizeMessagesForThinking(CODE
LOWsrc/proxy.ts1851export function estimateBalancePreflightAmount(CODE
LOWsrc/proxy.ts2086export function resolvePhoneTelemetryCost(args: {CODE
LOWsrc/proxy.ts2180function gatewayRemainingCreditUsd(response: Response | undefined): number | undefined {CODE
LOWsrc/proxy.ts2544function warnIfSpendLimitsUnenforced(spendControl: SpendControl | undefined): void {CODE
LOWsrc/proxy.ts2585function assertExistingProxyBillsUs(CODE
LOWsrc/index.ts162function isBlockrunWebSearchDisabled(config?: unknown): boolean {CODE
LOWsrc/index.ts771function removeInjectedAuthPlaceholder(CODE
LOWsrc/index.ts815function clearDeferredProxyStartTimer(CODE
LOWsrc/index.ts856function startPendingConfiguredProxyIfQueued(CODE
LOWsrc/index.ts872function resumePendingConfiguredProxyAfterStaleFailure(CODE
LOWsrc/index.ts881function supersedeEmptyConfigStartup(api: OpenClawPluginApi): void {CODE
LOWsrc/index.ts1323export function buildImageGenerationProvider(): ImageGenerationProviderPlugin {CODE
LOWsrc/index.ts1440function buildMusicGenerationProvider(): MusicGenerationProviderPlugin {CODE
LOWsrc/index.ts1520function buildVideoGenerationProvider(): VideoGenerationProviderPlugin {CODE
LOWsrc/index.ts1608function restartProxyForChainSwitch(api: OpenClawPluginApi): void {CODE
LOWsrc/auth.ts146export async function migrateLegacyWalletToCore(): Promise<LegacyWalletMigration> {CODE
LOWsrc/auth.ts365async function warnIfLegacyWalletDiffers(coreAddress: string): Promise<void> {CODE
LOWsrc/auth.ts450export async function resolveOrGenerateWalletKey(): Promise<WalletResolution> {CODE
LOWsrc/auth.ts471async function loadCoreSolanaKeyForSelectedChain(): Promise<Uint8Array | undefined> {CODE
LOWsrc/auth.ts548export async function recoverWalletFromMnemonic(): Promise<void> {CODE
LOWsrc/openclaw-plugin-config.ts30export function prepareBlockRunPluginConfig(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 Block50 hits · 42 pts
SeverityFileLineSnippetContext
LOWdocs/worker-network.md1321cd /Users/vickyfu/Documents/blockrun-web/ClawRouterCOMMENT
LOWdocs/configuration.md421// {COMMENT
LOWdocs/configuration.md481 - id: "@blockrun/clawrouter"COMMENT
LOWdocs/configuration.md501 # Strategy. Default: portfolio (Router Core V3.4 — constraint-first rankingCOMMENT
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
LOW.github/workflows/ci.yml61 - name: Brand numbersCOMMENT
LOWsrc/models.test.ts281 it("keeps vision on Claude models that blockrun's catalog under-claims", () => {COMMENT
LOWsrc/models.test.ts301 // blockrun-sol owner.COMMENT
LOWsrc/proxy.ts161// direct callers (ClawRouter using the full ID) still get HTTP 200; onlyCOMMENT
LOWsrc/proxy.ts181// completion hangs; the gateway 400s the `free/` id) and hidden from theCOMMENT
LOWsrc/proxy.ts201// vs OpenRouter's $0 pool), so one pool's outage does not takeCOMMENT
LOWsrc/proxy.ts1981 "nano-banana-pro": "google/nano-banana-pro",COMMENT
LOWsrc/proxy.ts2381 responseHeaders[key] = value;COMMENT
LOWsrc/proxy.ts4041 if (!res.headersSent) {COMMENT
LOWsrc/proxy.ts5661 }COMMENT
LOWsrc/proxy.ts6301 res.on("close", onClientClose);COMMENT
LOWsrc/proxy.ts7761 // API-key rail: no x402 payment happens, so `actualPayment` is always 0COMMENT
LOWsrc/top-models.test.ts21 // HTTP 410 Gone at NVIDIA in blockrun's 2026-07-28 re-probe (baa967b) —COMMENT
LOWsrc/index.ts441 //COMMENT
LOWsrc/index.ts481COMMENT
LOWsrc/index.ts2061 api: "openai-completions",COMMENT
LOWsrc/index.ts2421 });COMMENT
LOWsrc/index.ts2501 //COMMENT
LOWsrc/models.ts41 // (delisted 2026-06-13, both direct-Anthropic and Bedrock re-probed HTTP 200).COMMENT
LOWsrc/models.ts161 // would silently ~5x every generic-`kimi` quote and break per-call-cap wallets (mirrorsCOMMENT
LOWsrc/models.ts201 "qwen3.7-flash": "qwen/qwen3.7-flash",COMMENT
LOWsrc/models.ts281 //COMMENT
LOWsrc/models.ts321 "nvidia/nemotron-nano-12b-v2-vl": "free/nemotron-nano-12b-v2-vl",COMMENT
LOWsrc/models.ts341 "qwen3.5-122b": "free/qwen3.5-122b-a10b",COMMENT
LOWsrc/models.ts381 // nemotron-nano-9b-v2 hit 410 on 2026-08-30; the generic shorthands followCOMMENT
LOWsrc/models.ts441 // `free` = the free-tier default. Must equal router-core's ecoTiers.SIMPLECOMMENT
LOWsrc/models.ts1301 reasoning: true,COMMENT
LOWsrc/models.ts1981 // NO `vision: true` — 2026-08-31. Both catalogs advertise vision on thisCOMMENT
LOWsrc/models.ts2061 // both of blockrun's probe passes (blockrun #448, the #391 shape). UpstreamCOMMENT
LOWsrc/models.ts2121 // been told, by the flag, that it would be seen.COMMENT
LOWsrc/models.ts2301 maxOutput: 131072,COMMENT
LOWsrc/auth.ts401 ...(await resolvedSolanaMaterial(coreSolanaKey)),COMMENT
LOWsrc/polymarket/tool.ts1// src/polymarket/tool.tsCOMMENT
LOWsrc/polymarket/l1-auth-1271.ts1// src/utils/polymarket/l1-auth-1271.tsCOMMENT
LOWsrc/polymarket/orders.ts1// src/utils/polymarket/orders.tsCOMMENT
LOWsrc/polymarket/orders.ts301 return { text: `Limit orders need both price and size (shares).`, isError: true };COMMENT
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/spend-policy.ts1// src/polymarket/spend-policy.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.ts650 // Step 1: locate OpenClaw. `command -v` alone is not enough — npm runs lifecycleCOMMENT
LOWsrc/cli.ts699 // Step 2: preflight config compatibility before installation. Do not add theCOMMENT
LOWsrc/cli.ts944 // Step 3: sync the models allowlist + provider config + auth profile directly.COMMENT
LOWsrc/proxy.ts3384 // Step 1: submit job. Fast models return 200 + image data inline withinCOMMENT
LOWsrc/proxy.ts3415 // Step 2: slow path — BlockRun returned 202 + poll_url (slow model > 30sCOMMENT
LOWsrc/proxy.ts3497 // Step 3: save images to ~/.openclaw/blockrun/images/ and replace with localhost URLsCOMMENT
LOWsrc/proxy.ts3873 // Step 1: submit job. Server returns 202 with poll_url.COMMENT
LOWsrc/proxy.ts3904 // Step 2: if no poll_url, upstream responded with the final result (legacy server) —COMMENT
LOWsrc/proxy.ts3991 // Step 3: download any hosted URLs to local disk + rewrite to localhost.COMMENT
Slop Phrases2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMsrc/models.test.ts299 // llama-3.2-11b-vision said "I'm unable to see the image" on 3 of 3 while aCOMMENT
MEDIUMsrc/models.ts2201 // back "I'm unable to see the image" / "you haven't provided an image",COMMENT
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippetContext
LOWopenclaw.plugin.json64 "placeholder": "brk_live_... (optional \u2014 pay by card at user.blockrun.ai)"CODE
LOWopenclaw.plugin.json69 "placeholder": "0x... (optional \u2014 auto-generated)"CODE
LOWtest/test-model-selection.sh58 apiKey: 'dummy-key',CODE
LOWsrc/proxy.api-key-services.test.ts152 "x-api-key": "placeholder",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