AI Slop Code RIsk Monitor

cloudflare/agents

Build and deploy AI Agents on Cloudflare

5.4 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for cloudflare/agents, a TypeScript project with 5,806 GitHub stars. SynthScan examined 738,430 lines of code across 2712 source files, recording 1696 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 5.4 (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.4
Adjusted Signal
5.4
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
5.8K
Stars
TypeScript
Language
738.4K
Lines of Code
2.7K
Files
1.7K
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 6.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

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

Agent Over-Engineering Ratio 19.0/100 · LOW

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

PR Review Velocity Impact 23.9/100 · LOW

Which changes need focused human review? 1696 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 3MEDIUM 1158LOW 535

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 1696 distinct pattern matches across 13 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 Separators976 hits · 2897 pts
SeverityFileLineSnippetContext
MEDIUMdesign/rfc-think-multi-session.md129 // ── SQLite schema (managed internally) ──────────────────────────COMMENT
MEDIUMdesign/rfc-think-multi-session.md185 // ── Search-provider hooks (for RemoteSearchProvider) ────────────COMMENT
MEDIUMdesign/rfc-think-multi-session.md197 // ── Spawning chats ──────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/client.tsx51// ─── Helpers ───────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/client.tsx121// ─── Action Queue Panel ────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/client.tsx279// ─── Customer Table ────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/client.tsx334// ─── Chat Panel ────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/client.tsx649// ─── App Root ──────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts20// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts22// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts50// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts55// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts105// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts107// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts120 // ─── Sub-agent access ───────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts126 // ─── Queue table ─────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts145 // ─── State sync ──────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts165 // ─── Gatekeeper API ──────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts247 // ─── Chat ────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-gatekeeper/src/server.ts344// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/client.tsx96// ─── Execution Log ─────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/client.tsx153// ─── Customer Table ────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/client.tsx204// ─── Main ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts50// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts52// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts75// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts77// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts134// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts146// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts177// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts183// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts214// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts216// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts230// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts232// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts245 // ─── Database sub-agent ────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts270 // ─── Tables ──────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts284 // ─── State sync ──────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts296 // ─── Trace delivery (from TailLoopback) ──────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts308 // ─── Code execution via LOADER ───────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts407 // ─── Chat ────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-sandbox/src/server.ts504// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/e2e/recovery.test.ts369 // ── Settled-tool persist gate against a FOREIGN tool vocabulary ─────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts180 // ── Handshake host state (shared with the streaming/broadcast loop) ─────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts208 // ── Transcript persistence ──────────────────────────────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts347 // ── Model selection (faux default | real Workers AI) ───────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts386 // ── Turn execution (fiber-wrapped so a mid-stream crash is recoverable) ─────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts631 // ── Scheduled recovery callbacks (engine-driven) ────────────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts641 // ── WebSocket wiring: drive the shared ResumeHandshake ──────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts733 // ── Fiber recovery entry: drive the shared engine ───────────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts800 // ── Shared engine adapter ───────────────────────────────────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/tanstack-agent.ts911 // ── Inspection surface (server HTTP → e2e assertions) ───────────────────────COMMENT
MEDIUMexperimental/tanstack-recovery/src/ws-bridge.ts143 // ── internals ──────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gateway-resume-think/src/layer-b.test.ts11// ── helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gateway-resume-think/src/layer-b.test.ts58// ── planResume (Layer-B decision) ──────────────────────────────────────────COMMENT
MEDIUMexperimental/gateway-resume-think/src/layer-b.test.ts97// ── createResumableStream — cross-invocation re-attach ──────────────────────COMMENT
MEDIUMexperimental/gateway-resume-think/src/layer-b.test.ts159// ── zero-loss reconstruction (parse-layer seam) ────────────────────────────COMMENT
MEDIUMexperimental/gadgets-subagents/src/client.tsx102// ─── Perspective Card ──────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-subagents/src/client.tsx169// ─── Analysis Panel ────────────────────────────────────────────────────────COMMENT
MEDIUMexperimental/gadgets-subagents/src/client.tsx259// ─── Main ──────────────────────────────────────────────────────────────────COMMENT
916 more matches not shown…
AI Slop Vocabulary139 hits · 324 pts
SeverityFileLineSnippetContext
MEDIUMpnpm-workspace.yaml32 # Transitive dep of @cloudflare/tanstack-ai (tanstack-recovery harness). TheCOMMENT
MEDIUMexperimental/gateway-resume-think/src/server.ts120 // mismatch (RFC §9.4) it can drop the prefix. from=0 is the robust,COMMENT
MEDIUMexperimental/gateway-resume/src/index.ts13 * (RFC #1257). This harness verifies the contract empirically, across models,COMMENT
MEDIUMexamples/next/harnesses/pi/src/sockets.ts61 readonly #harness: PiHarness;CODE
MEDIUMexamples/next/harnesses/pi/src/sockets.ts72 this.#harness = harness;CODE
MEDIUMexamples/next/harnesses/pi/src/sockets.ts97 for (const { id } of await this.#harness.sessions.list()) {CODE
MEDIUMexamples/next/harnesses/pi/src/sockets.ts125 const stream = await this.#harness.session(session).events();CODE
MEDIUMexamples/next/harnesses/pi/src/sockets.ts173 const handle = this.#harness.session(session);CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts99 readonly #harness: OpenCodeHarness;CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts110 this.#harness = harness;CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts133 for (const { id, busy } of await this.#harness.sessions.list()) {CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts142 const sessions = await this.#harness.sessions.list();CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts200 const handle = this.#harness.session(session);CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts232 const created = await this.#harness.sessions.create();CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts233 const sessions = await this.#harness.sessions.list();CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts253 const handle = this.#harness.session(session);CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts257 this.#harness.pending({ session })CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts286 const sessions = await this.#harness.sessions.list();CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts290 if (!(await this.#harness.session(session).busy())) {CODE
MEDIUMexamples/next/harnesses/opencode/src/sockets.ts303 for await (const event of this.#harnessCODE
MEDIUMexamples/next/channels/src/client.tsx23// The URL hash picks the agent and room: #<harness>/<room>.COMMENT
MEDIUMpackages/think/src/harness/think.ts751 if (!this.#handle) await this.harness.session().messages();CODE
MEDIUMpackages/think/src/harness/think.ts758 this.#messages = await this.harness.session().messages();CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts173 readonly #harness: HarnessConversations;CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts183 this.#harness = new HarnessConversations(options.harness, {CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts231 await this.#harness.attachAll();CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts244 from.conversationId ?? this.#harness.defaultConversation(),CODE
MEDIUM⚡…ages/agents/src/experimental/channels/conversations.ts337 this.#harness.snapshot(conversationId)CODE
MEDIUM⚡…ages/agents/src/experimental/channels/conversations.ts341 defaultConversation: () => this.#harness.defaultConversation(),CODE
MEDIUM⚡…ages/agents/src/experimental/channels/conversations.ts343 listConversations: () => this.#runInHost(() => this.#harness.list()),CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts362 await this.#harness.onEvent(event, origin);CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts406 const harness = this.#harness;CODE
MEDIUM…ages/agents/src/experimental/channels/conversations.ts426 this.#harness.snapshot(origin.conversationId)CODE
MEDIUM⚡…nts/src/experimental/channels/harness-conversations.ts65 readonly #harness: AgentHarness;CODE
MEDIUM⚡…nts/src/experimental/channels/harness-conversations.ts70 this.#harness = harness;CODE
MEDIUM⚡…nts/src/experimental/channels/harness-conversations.ts76 return this.#harness.session().id;CODE
MEDIUM⚡…nts/src/experimental/channels/harness-conversations.ts162 const sessions = await this.#harness.sessions.list();CODE
MEDIUM⚡…nts/src/experimental/channels/harness-conversations.ts172 const session = await this.#harness.sessions.create();CODE
MEDIUM⚡…nts/src/experimental/channels/harness-conversations.ts179 const session = await this.#harness.sessions.fork(from);CODE
MEDIUM…nts/src/experimental/channels/harness-conversations.ts217 const session = this.#harness.session(conversationId);CODE
MEDIUMpackages/agents/src/tests/retries.test.ts396 // wrappers may not — the cause chain is the robust signal.COMMENT
MEDIUMpackages/agents/src/harness/think/chat.ts133 readonly #harness: ThinkHarness;CODE
MEDIUMpackages/agents/src/harness/think/chat.ts153 this.#harness = options.harness;CODE
MEDIUMpackages/agents/src/harness/think/chat.ts162 this.#unobserve = this.#harness.observe((session, event) => {CODE
MEDIUM⚡packages/agents/src/harness/think/chat.ts176 return Response.json(await this.#harness.session(this.#session).messages());CODE
MEDIUM⚡packages/agents/src/harness/think/chat.ts187 const session = this.#harness.session(this.#session);CODE
MEDIUMpackages/agents/src/harness/think/chat.ts228 const session = this.#harness.session(this.#session);CODE
MEDIUMpackages/agents/src/harness/think/chat.ts360 const inFlight = await this.#harness.session(this.#session).inFlight();CODE
MEDIUMpackages/agents/src/harness/think/chat.ts401 const messages = await this.#harness.session(this.#session).messages();CODE
MEDIUMpackages/agents/src/harness/think/chat.ts522 const messages = await this.#harness.session(this.#session).messages();CODE
MEDIUMpackages/agents/src/harness/think/chat.ts532 const session = this.#harness.session(this.#session);CODE
MEDIUMpackages/agents/src/harness/think/chat.ts560 const messages = await this.#harness.session(this.#session).messages();CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2055 readonly #harness: ThinkHarness;CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2064 this.#harness = harness;CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2074 return this.#harness.enqueue(CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2112 return this.#harness.enqueue(this.id, { kind: "continue" }, options);CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2120 return this.#harness.wait(this.id, operationId, signal);CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2128 return this.#harness.abort(this.id, operationId);CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2133 return this.#harness.reset(this.id, handoff);CODE
MEDIUM⚡packages/agents/src/harness/think/harness.ts2138 return this.#harness.messages(this.id);CODE
79 more matches not shown…
Hyper-Verbose Identifiers235 hits · 220 pts
SeverityFileLineSnippetContext
LOWdesign/chat-api.md360async function defaultGetInitialMessagesFetch({ url }: GetInitialMessagesOptions) {CODE
LOWagent-think/src/tools/fs/edit-diff.ts169export function applyEditsToNormalizedContent(CODE
LOWdocs/agents/queue.md156class DataProcessor extends Agent {CODE
LOWguides/anthropic-patterns/src/app.tsx109function getOrCreateSessionId() {CODE
LOWexamples/assistant/src/client.tsx309function shouldShowStreamedTextPart(part: {CODE
LOWexamples/assistant/src/auth.ts180export function createUnauthorizedResponse(request: Request) {CODE
LOWexamples/dynamic-tools/src/client.tsx158function shouldShowStreamedTextPart(part: {CODE
LOWexamples/next/harnesses/think/src/client.tsx91function shouldShowStreamedTextPart(part: {CODE
LOW…ples/next/harnesses/self-modifying/src/system-tools.ts97export function customToolsFromLegacyDefinitions(CODE
LOWexamples/next/harnesses/codex/src/language-model-v4.ts208function responsesToolsToLanguageModelTools(CODE
LOWexamples/playground/src/hooks/useUserId.ts6function getOrCreateUserId(): string {CODE
LOWexamples/agents-as-tools/src/client.tsx163function isTerminalAgentToolStatus(CODE
LOWexamples/auth-agent/src/auth.ts180export function createUnauthorizedResponse(request: Request) {CODE
LOWexamples/chat-sdk-messenger/src/client.tsx639 async function resetSelectedConversation() {CODE
LOW…amples/chat-sdk-messenger/src/intelligence/messages.ts14export function conversationNameForThread(thread: Pick<Thread, "id">): string {CODE
LOW…amples/chat-sdk-messenger/src/intelligence/messages.ts106export function extractLatestAssistantText(CODE
LOWexamples/ai-chat/src/client.tsx94function shouldShowStreamedTextPart(part: {CODE
LOWexamples/deploy-churn/src/server.ts386function createSingleTaskMockModel(): LanguageModel {CODE
LOWexamples/voice-agent/src/stt-providers/workers-ai.ts8export function createWorkersAITranscriber(CODE
LOWexamples/voice-agent/src/stt-providers/elevenlabs.ts5export function createElevenLabsTranscriber(env: Env, url: URL): Transcriber {CODE
LOWexamples/voice-agent/src/stt-providers/assemblyai.ts13export function createAssemblyAITranscriber(env: Env, url: URL): Transcriber {CODE
LOWexamples/voice-agent/src/stt-providers/assemblyai.ts29function getAssemblyAILanguageCodes(CODE
LOWexamples/voice-agent/src/stt-providers/utils.ts11export function getOptionalProviderKeyterms(url: URL): string[] | undefined {CODE
LOW…pts/vitest/strip-node-modules-source-map-references.ts12export function stripNodeModulesSourceMapReferences(): Plugin {CODE
LOWpackages/think/src/media-eviction.ts70export function resolveMediaEvictionConfig(CODE
LOWpackages/think/src/think.ts318function withoutOverwrittenStartMetadata(CODE
LOWpackages/think/src/think.ts441function settleMessengerRecoveryDelivery(CODE
LOWpackages/think/src/think.ts730function shouldMarkSkippedAfterGenerationChange(CODE
LOWpackages/think/src/think.ts891function actionAuthorizationErrorEnvelope(CODE
LOWpackages/think/src/think.ts906function actionApprovalInputErrorEnvelope(): {CODE
LOWpackages/think/src/think.ts917function actionPendingErrorEnvelope(): {CODE
LOWpackages/think/src/think.ts929function actionKeyConflictEnvelope(CODE
LOWpackages/think/src/think.ts978function safeStringifyActionOutput(output: unknown): {CODE
LOWpackages/think/src/think.ts1009function prepareActionOutputForModel(output: unknown): unknown {CODE
LOWpackages/think/src/think.ts1097function parseDeclaredTaskSchedule(CODE
LOWpackages/think/src/think.ts1111function tryParseDeclaredTaskSchedule(CODE
LOWpackages/think/src/think.ts1133function parseDeclaredTaskScheduleUnchecked(CODE
LOWpackages/think/src/think.ts1489function ensureValidContinueCheckpoint(CODE
LOWpackages/think/src/think.ts2023function isTransientClassification(CODE
LOWpackages/think/src/think.ts2456function workflowNotificationItemId(CODE
LOWpackages/think/src/think.ts2510function dropGenerationAfterToolCall(CODE
LOWpackages/think/src/think.ts2577function toProviderSafeExecutionOutcomeMessage(message: UIMessage): UIMessage {CODE
LOWpackages/think/src/think.ts2608function isThinkFinalAnswerToolName(name: string): boolean {CODE
LOWpackages/think/src/think.ts2619function thinkFinalAnswerInstruction(toolName: string): string {CODE
LOWpackages/think/src/think.ts3095export function defaultContextOverflowClassifier(CODE
LOWpackages/think/src/tools/execute.ts375export function truncatePausedExecutionOutput(output: unknown): unknown {CODE
LOWpackages/think/src/tools/fetch.ts857function normalizeAllowlistPattern(pattern: string): string {CODE
LOWpackages/think/src/tests/submissions.test.ts1539 async function seedRunningStructuredSubmission(CODE
LOWpackages/think/src/tests/message-reconciliation.test.ts138function makeClientOptimisticAssistant(id: string): UIMessage {CODE
LOWpackages/think/src/tests/eviction-recovery.test.ts35async function seedInterruptedContinueTurn(CODE
LOWpackages/think/src/tests/streaming-message-id.test.ts40function runTurnAndCollectStartChunks(CODE
LOWpackages/think/src/tests/client-tools.test.ts224async function waitForOverlappingSubmits(CODE
LOWpackages/think/src/tests/client-tools.test.ts3263 async function answerMidStreamThenSettle(agent: ChainAgent, ws: WebSocket) {CODE
LOWpackages/think/src/tests/client-tools.test.ts3275 async function expectOneContinuationPerStep(agent: ChainAgent) {CODE
LOW⚡packages/think/src/tests/think-session.test.ts154async function freshConfigInSessionAgent(name: string) {CODE
LOW⚡packages/think/src/tests/think-session.test.ts161async function freshLegacyConfigMigrationAgent(name: string) {CODE
LOWpackages/think/src/tests/terminal-frame-order.test.ts77function expectTranscriptBeforeDone(frames: Frame[], text: string) {CODE
LOWpackages/think/src/tests/actions-durable-pause.test.ts837 async function approvedMidStreamWithoutContinuation(name: string) {CODE
LOWpackages/think/src/tests/agents/execute-hitl.ts40function executionOutcomeRolesInPrompt(CODE
LOWpackages/think/src/tests/agents/think-session.ts87function recoveryTransportCountsForTest(CODE
175 more matches not shown…
Structural Annotation Overuse74 hits · 130 pts
SeverityFileLineSnippetContext
LOWdocs/agents/workflows.md69 // Step 1: Process dataCOMMENT
LOWdocs/agents/workflows.md82 // Step 2: Save resultsCOMMENT
LOWdocs/agents/human-in-the-loop.md69 // Step 1: Validate the expenseCOMMENT
LOWdocs/agents/human-in-the-loop.md74 // Step 2: Wait for manager approvalCOMMENT
LOWdocs/agents/human-in-the-loop.md88 // Step 3: Process the approved expenseCOMMENT
LOWdocs/agents/mcp-transports.md98#### Step 1: Define your MCP serverCOMMENT
LOWdocs/agents/mcp-transports.md134#### Step 2: Connect your Agent to the MCP serverCOMMENT
LOWdocs/agents/mcp-transports.md165#### Step 3: Configure Durable Object bindingsCOMMENT
LOWdocs/agents/mcp-transports.md186#### Step 4: Set up your Worker fetch handlerCOMMENT
LOWexamples/workflows/src/server.ts438 // Step 1: ValidateCOMMENT
LOWexamples/workflows/src/server.ts460 // Step 2: ProcessCOMMENT
LOWexamples/workflows/src/server.ts486 // Step 3: Wait for human approvalCOMMENT
LOWexamples/workflows/src/server.ts511 // Step 4: FinalizeCOMMENT
LOW⚡packages/agents/README.md414 // Step 1: Validate (retries automatically on failure)COMMENT
LOW⚡packages/agents/README.md419 // Step 2: Wait for human approvalCOMMENT
LOW⚡packages/agents/README.md423 // Step 3: Process the approved orderCOMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts36 // Step 1: Report start (non-durable)COMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts44 // Step 2: If waiting for approval, pause and wait for eventCOMMENT
LOWpackages/agents/src/tests/test-workflow.ts66 // Step 3: Process the task (non-durable progress report)COMMENT
LOWpackages/agents/src/tests/test-workflow.ts85 // Step 4: Call agent method via RPC (if agent is available)COMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts96 // Step 5: Broadcast to clients (non-durable)COMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts103 // Step 6: Report completion (durable via step)COMMENT
LOWpackages/ai-chat/e2e/on-stream-end-llm.spec.ts186 // Step 1: Open observer WebSocket and wait for it to be establishedCOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts221 // Step 2: Wait for WebSocket to be fully registered with the DOCOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts224 // Step 3: Trigger server-initiated stream via Playwright's request APICOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts233 // Step 4: Wait a bit for stream completion to propagateCOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts236 // Step 5: Collect observer results from the browserCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts21 // Step 1: Persist a message with tool output on the serverCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts38 // Step 2: Client sends the same message but without the tool outputCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts62 // Step 3: Verify the tool output is preservedCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts85 // Step 1: Server has a tool that was approved and executed (output-available)COMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts102 // Step 2: Client sends the same tool but in approval-responded stateCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts126 // Step 3: Verify the server's output-available state is preserved,COMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts152 // Step 1: Server has a tool that was executed (output-available)COMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts169 // Step 2: Client sends the same tool but in approval-requested stateCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts192 // Step 3: Verify the server's output-available state is preserved,COMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts523 // Step 1: Simulate an initial interrupted streamCOMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts543 // Step 2: Continue, producing more contentCOMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts556 // Step 3: Simulate that continuation was ALSO interrupted —COMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts568 // Step 4: Trigger fiber recovery — should persist the second partialCOMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts580 // Step 5: Continue againCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts85 // Step 1: Send initial request so context is establishedCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts88 // Step 2: Persist a tool call in input-available stateCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts106 // Step 3: Clear captured state before continuationCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts109 // Step 4: Send tool result with autoContinueCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts145 // Step 1: Send initial requestCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts148 // Step 2: Persist a tool call in approval-required stateCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts166 // Step 3: Clear captured stateCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts169 // Step 4: Send approval with autoContinueCOMMENT
LOWpackages/ai-chat/src/tests/request-id.test.ts123 // Step 5: Verify a requestId was passed (server-generated, so just check it exists)COMMENT
LOWpackages/ai-chat/src/tests/request-id.test.ts182 // Step 5: Verify requestId was passedCOMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts12 // Step 1: Set up a conversation with a pending tool call (simulates state before refresh)COMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts38 // Step 2: Connect (simulates reconnect after refresh)COMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts49 // Step 3: Send tool result WITH clientTools (simulates client approval after reconnect)COMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts83 // Step 4: Verify continuation received client toolsCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts320 // Step 1: Send initial chat request to establish the agentCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts334 // Step 2: Persist a tool call in input-available stateCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts354 // Step 3: Send tool result with autoContinue=trueCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts368 // Step 4: Verify onChatResponse resultsCOMMENT
LOW⚡packages/ai-chat/src/tests/regenerate-message.test.ts70 // Step 1: Send the first message — server will respond with an assistant messageCOMMENT
14 more matches not shown…
Over-Commented Block139 hits · 130 pts
SeverityFileLineSnippetContext
LOWdesign/rfc-think-multi-session.md121 /**COMMENT
LOWexperimental/tanstack-recovery/src/tanstack-agent.ts121// The model provider this turn ran under (`faux` default | `workers-ai`). StoredCOMMENT
LOWexperimental/gateway-resume/src/index.ts61//COMMENT
LOWexperimental/gateway-resume/src/index.ts301COMMENT
LOWexperimental/chat-recovery-probe/src/server.ts61 //COMMENT
LOWagent-think/worker-configuration.d.ts14461// The message includes metadata about the broker, the client, and the payloadCOMMENT
LOWagent-think/worker-configuration.d.ts14601 [K in keyof T]: Unstubify<T[K]>;COMMENT
LOWagent-think/worker-configuration.d.ts14641 [K in keyof T]: MethodOrProperty<T[K]>;COMMENT
LOWagent-think/worker-configuration.d.ts14661 // interface GlobalProps {COMMENT
LOWagent-think/worker-configuration.d.ts15921 | StreamDiagnosticCOMMENT
LOWagent-think/test/env.d.ts1/// <reference types="@cloudflare/vitest-pool-workers/types" />COMMENT
LOWagent-think/test/vitest.config.ts21 stripNodeModulesSourceMapReferences(),COMMENT
LOWagent-think/test/server.ts1import { setupServer } from "msw/node";COMMENT
LOWagent-think/src/sandbox.ts61 constructor(ctx: DurableObjectState, env: SandboxEnv) {COMMENT
LOWagent-think/src/sandbox.ts81 // CloudflareContainerBackend(container) [stage=connect]:COMMENT
LOWdocs/agents/chat-agents.md661override chatRecovery = {COMMENT
LOWdocs/agents/sub-agents.md461COMMENT
LOW…amples/assistant/agents/assistant/shared-mcp-client.ts1import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";COMMENT
LOWexamples/assistant/agents/assistant/agent.ts1import { callable } from "agents";COMMENT
LOWexamples/assistant/agents/assistant/agent.ts281 }COMMENT
LOWexamples/assistant/agents/assistant/agent.ts381 async symlink(target: string, linkPath: string): Promise<void> {COMMENT
LOWexamples/assistant/agents/assistant/shared-workspace.ts1import type { Workspace } from "@cloudflare/think";COMMENT
LOWexamples/assistant/src/use-chats.ts101 // from the directory — which is the single source of truth forCOMMENT
LOWexamples/assistant/src/client.tsx481 } | null>(null);COMMENT
LOWexamples/assistant/src/tests/env.d.ts1/// <reference types="@cloudflare/vitest-pool-workers/types" />COMMENT
LOWexamples/next/harnesses/codex/wasm-kernel/src/lib.rs1//! A small Codex-derived transition kernel for Cloudflare Workers.COMMENT
LOWexamples/agents-as-tools/playwright.config.ts41 // Real-LLM timing — see the comment block above. The exampleCOMMENT
LOWexamples/agents-as-tools/playwright.config.ts61 // suite. With 1 retry we can ride out transient capacity issuesCOMMENT
LOWexamples/agents-as-tools/e2e/refresh-replay.e2e.ts61 // `cf_agent_tool_runs` is the source of truth and neverCOMMENT
LOWexamples/agents-as-tools/e2e/planner-drill-in.e2e.ts61 // Sanity: a Planner panel rendered. The bug would have NOTCOMMENT
LOWexamples/agents-as-tools/e2e/compare-fanout.e2e.ts41 // "Compare X and Y" is in-distribution for the `compare` tool —COMMENT
LOWexamples/agents-as-tools/src/client.tsx801//COMMENT
LOWexamples/agents-as-tools/src/client.tsx841 // shipped on 2026-04-28 from a different root cause.COMMENT
LOWexamples/deploy-churn/src/server.ts281//COMMENT
LOWexamples/voice-agent/src/client.tsx441 // The VoiceClient passes unknown JSON to onNonVoiceMessage, but that onlyCOMMENT
LOWexamples/voice-agent/src/client.tsx521 // public API. Instead, we create a temporary PartySocket connection.COMMENT
LOWexamples/voice-agent/src/client.tsx541 // But actually, the better approach is to just send the kick via theCOMMENT
LOWpackages/think/src/think.ts1421 * `Think`'s `classifyRecoveredTurn` detail (the {@link ChatFiberWakeHooks}COMMENT
LOWpackages/think/src/think.ts1441// incident engine (agents/chat) and are applied by `resolveChatRecoveryConfig`COMMENT
LOWpackages/think/src/think.ts1461// through to a spurious error, and a true orphan (a sibling that never arrives)COMMENT
LOWpackages/think/src/think.ts4841 // client tool result can arrive over the WebSocket before that write (theCOMMENT
LOWpackages/think/src/think.ts7721 : this._turnTelemetry(turnTelemetry),COMMENT
LOWpackages/think/src/think.ts7741 // instance which is not JSON-serializable, and a returned overrideCOMMENT
LOWpackages/think/src/think.ts7801 // also accepts the renamed `onStepEnd`, but v6 does not). Use the sharedCOMMENT
LOWpackages/think/src/think.ts8721 // keeps it a *direct* AsyncIterable so the AI SDK streams theCOMMENT
LOWpackages/think/src/think.ts10521 };COMMENT
LOWpackages/think/src/think.ts13561 return _onConnect(connection, ctx);COMMENT
LOWpackages/think/src/think.ts14541 // When a stall-recovery early-return schedules a continuation, theCOMMENT
LOWpackages/think/src/think.ts14721 }COMMENT
LOWpackages/think/src/think.ts15301 // `doneSent = true` keeps the outer `finally` from emitting one (it wouldCOMMENT
LOWpackages/think/src/think.ts16681 // the eventual end-of-stream persist.COMMENT
LOWpackages/think/src/think.ts17061 (await this.ctx.storage.get<ChatRecoveryIncident>(key)) ?? null,COMMENT
LOWpackages/think/src/think.ts18621 if (!ready) {COMMENT
LOWpackages/think/src/tools/workspace.ts1import type { Workspace, FileInfo } from "@cloudflare/shell";COMMENT
LOWpackages/think/src/tests/client-tools.test.ts2061 // Non-evicted, this combination DOES continue once: the erroredCOMMENT
LOWpackages/think/src/tests/onconnect-broadcast.test.ts341COMMENT
LOWpackages/think/src/tests/think-session.test.ts601COMMENT
LOWpackages/think/src/e2e-tests/harden-net.ts1// Side-effect module for the `wrangler dev` chaos e2e tests. Import it (for itsCOMMENT
LOWpackages/think/src/e2e-tests/messenger-recovery.test.ts261 //COMMENT
LOWpackages/think/src/e2e-tests/worker.ts941 childCOMMENT
79 more matches not shown…
Verbosity Indicators62 hits · 110 pts
SeverityFileLineSnippetContext
LOWexamples/workflows/src/server.ts438 // Step 1: ValidateCOMMENT
LOWexamples/workflows/src/server.ts460 // Step 2: ProcessCOMMENT
LOWexamples/workflows/src/server.ts486 // Step 3: Wait for human approvalCOMMENT
LOWexamples/workflows/src/server.ts511 // Step 4: FinalizeCOMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts36 // Step 1: Report start (non-durable)COMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts44 // Step 2: If waiting for approval, pause and wait for eventCOMMENT
LOWpackages/agents/src/tests/test-workflow.ts66 // Step 3: Process the task (non-durable progress report)COMMENT
LOWpackages/agents/src/tests/test-workflow.ts85 // Step 4: Call agent method via RPC (if agent is available)COMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts96 // Step 5: Broadcast to clients (non-durable)COMMENT
LOW⚡packages/agents/src/tests/test-workflow.ts103 // Step 6: Report completion (durable via step)COMMENT
LOWpackages/ai-chat/e2e/on-stream-end-llm.spec.ts186 // Step 1: Open observer WebSocket and wait for it to be establishedCOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts221 // Step 2: Wait for WebSocket to be fully registered with the DOCOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts224 // Step 3: Trigger server-initiated stream via Playwright's request APICOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts233 // Step 4: Wait a bit for stream completion to propagateCOMMENT
LOW⚡packages/ai-chat/e2e/on-stream-end-llm.spec.ts236 // Step 5: Collect observer results from the browserCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts21 // Step 1: Persist a message with tool output on the serverCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts38 // Step 2: Client sends the same message but without the tool outputCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts62 // Step 3: Verify the tool output is preservedCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts85 // Step 1: Server has a tool that was approved and executed (output-available)COMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts102 // Step 2: Client sends the same tool but in approval-responded stateCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts126 // Step 3: Verify the server's output-available state is preserved,COMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts152 // Step 1: Server has a tool that was executed (output-available)COMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts169 // Step 2: Client sends the same tool but in approval-requested stateCOMMENT
LOWpackages/ai-chat/src/tests/merge-server-state.test.ts192 // Step 3: Verify the server's output-available state is preserved,COMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts523 // Step 1: Simulate an initial interrupted streamCOMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts543 // Step 2: Continue, producing more contentCOMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts556 // Step 3: Simulate that continuation was ALSO interrupted —COMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts568 // Step 4: Trigger fiber recovery — should persist the second partialCOMMENT
LOWpackages/ai-chat/src/tests/continue-last-turn.test.ts580 // Step 5: Continue againCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts85 // Step 1: Send initial request so context is establishedCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts88 // Step 2: Persist a tool call in input-available stateCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts106 // Step 3: Clear captured state before continuationCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts109 // Step 4: Send tool result with autoContinueCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts145 // Step 1: Send initial requestCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts148 // Step 2: Persist a tool call in approval-required stateCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts166 // Step 3: Clear captured stateCOMMENT
LOW⚡packages/ai-chat/src/tests/request-id.test.ts169 // Step 4: Send approval with autoContinueCOMMENT
LOWpackages/ai-chat/src/tests/request-id.test.ts123 // Step 5: Verify a requestId was passed (server-generated, so just check it exists)COMMENT
LOWpackages/ai-chat/src/tests/request-id.test.ts182 // Step 5: Verify requestId was passedCOMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts12 // Step 1: Set up a conversation with a pending tool call (simulates state before refresh)COMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts38 // Step 2: Connect (simulates reconnect after refresh)COMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts49 // Step 3: Send tool result WITH clientTools (simulates client approval after reconnect)COMMENT
LOW…kages/ai-chat/src/tests/client-tools-reconnect.test.ts83 // Step 4: Verify continuation received client toolsCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts320 // Step 1: Send initial chat request to establish the agentCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts334 // Step 2: Persist a tool call in input-available stateCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts354 // Step 3: Send tool result with autoContinue=trueCOMMENT
LOWpackages/ai-chat/src/tests/on-stream-end.test.ts368 // Step 4: Verify onChatResponse resultsCOMMENT
LOW⚡packages/ai-chat/src/tests/regenerate-message.test.ts70 // Step 1: Send the first message — server will respond with an assistant messageCOMMENT
LOW⚡packages/ai-chat/src/tests/regenerate-message.test.ts80 // Step 2: Simulate regenerate() — client removes the assistant messageCOMMENT
LOW⚡packages/ai-chat/src/tests/regenerate-message.test.ts85 // Step 3: Verify the old assistant message was deleted and replacedCOMMENT
LOW…ges/ai-chat/src/tests/custom-body-continuation.test.ts16 // Step 1: Send initial chat request WITH custom body fields to store themCOMMENT
LOW…ges/ai-chat/src/tests/custom-body-continuation.test.ts67 // Step 2: Persist a tool call in input-available stateCOMMENT
LOW⚡…ges/ai-chat/src/tests/custom-body-continuation.test.ts85 // Step 3: Clear captured state before continuationCOMMENT
LOW⚡…ges/ai-chat/src/tests/custom-body-continuation.test.ts88 // Step 4: Send tool result with autoContinue to trigger continuationCOMMENT
LOW…ges/ai-chat/src/tests/custom-body-continuation.test.ts104 // Step 5: Verify continuation received the same bodyCOMMENT
LOW…es/ai-chat/src/tests/client-tools-continuation.test.ts43 // Step 1: Send initial chat request WITH client tools to store themCOMMENT
LOW…es/ai-chat/src/tests/client-tools-continuation.test.ts105 // Step 2: Persist a tool call in input-available stateCOMMENT
LOW⚡…es/ai-chat/src/tests/client-tools-continuation.test.ts123 // Step 3: Clear captured state before continuationCOMMENT
LOW⚡…es/ai-chat/src/tests/client-tools-continuation.test.ts126 // Step 4: Send tool result with autoContinue to trigger continuationCOMMENT
LOW…es/ai-chat/src/tests/client-tools-continuation.test.ts140 // Step 5: Verify continuation received client toolsCOMMENT
2 more matches not shown…
Modern AI Meta-Vocabulary42 hits · 100 pts
SeverityFileLineSnippetContext
MEDIUMdesign/rfc-helper-sub-agent-orchestration.md1# RFC: Agent tool orchestrationCOMMENT
MEDIUMdesign/rfc-chat-recovery-foundation.md1043| Auto-continuation barrier | Barrier inside the continuation turn; fixed 60s timeout tCODE
MEDIUMdesign/rfc-chat-recovery-foundation.md1155#### Adopt Think's event-driven auto-continuation barrierCOMMENT
MEDIUMdesign/rfc-chat-recovery-foundation-progress.md1647### Phase 1: introduce internal engine scaffoldingCOMMENT
MEDIUMexperimental/inference-buffer/README.md213The SDK handles: model wrapping (custom fetch for all providers — including Workers AI via the `fetch` option added in [CODE
MEDIUMdocs/think/index.md674[Compaction](https://github.com/cloudflare/agents/blob/main/docs/agents/sessions.md#compaction) is checked **between turCODE
MEDIUMdocs/think/sub-agents.md351See [`cloudflare/agents#1406`](https://github.com/cloudflare/agents/issues/1406) for the original motivation, and [AgentCODE
MEDIUMdocs/think/sub-agents.md510| `maxRecoveryWork` | `10000` | Runaway-loop guard: max recovery work since the incident opened before a CODE
MEDIUMdocs/think/sub-agents.md510| `maxRecoveryWork` | `10000` | Runaway-loop guard: max recovery work since the incident opened before a CODE
MEDIUMdocs/agents/browse-the-web.md514You can also manage Browser Rendering sessions directly. `createBrowserSession` accepts [hostname guardrails](https://deCODE
MEDIUMdocs/agents/chat-agents.md698| `maxRecoveryWork` | `10000` | Runaway-loop guard. Maximum recovery work since the incident began beforeCODE
MEDIUMdocs/agents/chat-agents.md1547Use [`wrapLanguageModel`](https://ai-sdk.dev/docs/ai-sdk-core/middleware) to add guardrails, RAG, caching, or logging wiCODE
MEDIUMexamples/assistant/agents/assistant/agent.ts32 // (see `getScheduledTasks`) and leaves room for top-level agentic workCOMMENT
MEDIUMexamples/playground/testing.md294### Supervisor Pattern (`/multi-agent/supervisor`)COMMENT
MEDIUMexamples/playground/testing.md351### Chat Rooms (`/multi-agent/rooms`)COMMENT
MEDIUMexamples/playground/testing.md410### Workers Pattern (`/multi-agent/workers`)COMMENT
MEDIUMexamples/playground/testing.md425### Pipeline Pattern (`/multi-agent/pipeline`)COMMENT
MEDIUMexamples/chat-sdk-messenger/README.md150 index.ts # Ingress orchestration and Chat SDK event wiringCODE
MEDIUMexamples/deploy-churn/src/server.ts590 // agentic loop actually settles tool results that recovery must preserve.COMMENT
MEDIUMexamples/multi-ai-chat/src/server.ts330 // Allow multi-step agentic loops — the model can call a tool,COMMENT
MEDIUMpackages/think/CHANGELOG.md658- [#1817](https://github.com/cloudflare/agents/pull/1817) [`7f367d8`](https://github.com/cloudflare/agents/commit/7f367dCODE
MEDIUMpackages/think/CHANGELOG.md658- [#1817](https://github.com/cloudflare/agents/pull/1817) [`7f367d8`](https://github.com/cloudflare/agents/commit/7f367dCODE
MEDIUMpackages/think/CHANGELOG.md1153- [#1667](https://github.com/cloudflare/agents/pull/1667) [`919bfaa`](https://github.com/cloudflare/agents/commit/919bfaCODE
MEDIUMpackages/think/CHANGELOG.md1468- [#1641](https://github.com/cloudflare/agents/pull/1641) [`3aa1936`](https://github.com/cloudflare/agents/commit/3aa193CODE
MEDIUMpackages/think/CHANGELOG.md1603- [#1561](https://github.com/cloudflare/agents/pull/1561) [`831ba1d`](https://github.com/cloudflare/agents/commit/831ba1CODE
MEDIUMpackages/think/CHANGELOG.md1603- [#1561](https://github.com/cloudflare/agents/pull/1561) [`831ba1d`](https://github.com/cloudflare/agents/commit/831ba1CODE
MEDIUMpackages/think/CHANGELOG.md1642- [#1517](https://github.com/cloudflare/agents/pull/1517) [`449b421`](https://github.com/cloudflare/agents/commit/449b42CODE
MEDIUMpackages/think/CHANGELOG.md1686- [#1421](https://github.com/cloudflare/agents/pull/1421) [`1b65ff5`](https://github.com/cloudflare/agents/commit/1b65ffCODE
MEDIUMpackages/think/CHANGELOG.md1762- [#1372](https://github.com/cloudflare/agents/pull/1372) [`040da0f`](https://github.com/cloudflare/agents/commit/040da0CODE
MEDIUMpackages/think/src/tests/hooks.test.ts383 // agentic loop, and `ctx.steps` / `ctx.stepNumber` must reflect theCOMMENT
MEDIUM…ges/think/src/e2e-tests/step-prompt-structured.test.ts223 // Multi-step agentic path: the model must call real (workspace) tools beforeCOMMENT
MEDIUMpackages/agents/CHANGELOG.md118- [#2294](https://github.com/cloudflare/agents/pull/2294) [`abda4e3`](https://github.com/cloudflare/agents/commit/abda4eCODE
MEDIUMpackages/agents/CHANGELOG.md118- [#2294](https://github.com/cloudflare/agents/pull/2294) [`abda4e3`](https://github.com/cloudflare/agents/commit/abda4eCODE
MEDIUMpackages/agents/CHANGELOG.md1954- [#1641](https://github.com/cloudflare/agents/pull/1641) [`3aa1936`](https://github.com/cloudflare/agents/commit/3aa193CODE
MEDIUMpackages/agents/CHANGELOG.md2131- [#1421](https://github.com/cloudflare/agents/pull/1421) [`1b65ff5`](https://github.com/cloudflare/agents/commit/1b65ffCODE
MEDIUMpackages/agents/src/browser/browser-run.ts13 * Browser Run [hostname guardrails](https://developers.cloudflare.com/browser-run/features/guardrails/):COMMENT
MEDIUMpackages/agents/src/browser/browser-run.ts183 // uniform whether or not guardrails are set.COMMENT
MEDIUM…es/agents/src/tests-d/browser-engine-options.test-d.ts51// openOneShotBrowserSession — same split, plus guardrails on the Chromium arm.COMMENT
MEDIUM…es/agents/src/tests-d/browser-engine-options.test-d.ts68 // @ts-expect-error — guardrails are Chromium-onlyCOMMENT
MEDIUMpackages/ai-chat/CHANGELOG.md373- [#1788](https://github.com/cloudflare/agents/pull/1788) [`3b2af54`](https://github.com/cloudflare/agents/commit/3b2af5CODE
MEDIUMpackages/ai-chat/CHANGELOG.md877- [#1641](https://github.com/cloudflare/agents/pull/1641) [`3aa1936`](https://github.com/cloudflare/agents/commit/3aa193CODE
MEDIUMpackages/ai-chat/CHANGELOG.md1000- [#1421](https://github.com/cloudflare/agents/pull/1421) [`1b65ff5`](https://github.com/cloudflare/agents/commit/1b65ffCODE
Fake / Example Data22 hits · 22 pts
SeverityFileLineSnippetContext
LOWdocs/agents/email.md349 await email.forward("admin@example.com");CODE
LOWdocs/agents/scheduling.md149await this.schedule(300, "sendFollowUp", { email: "user@example.com" });CODE
LOWdocs/agents/retries.md176 { to: "user@example.com" },CODE
LOWdocs/agents/queue.md114 email: "user@example.com",CODE
LOWexamples/next/harnesses/codex/src/stress/model.ts33 const unit = `${seed} lorem ipsum dolor sit amet `;CODE
LOWexamples/next/harnesses/codex/src/stress/model.ts33 const unit = `${seed} lorem ipsum dolor sit amet `;CODE
LOWpackages/think/src/tests/action-types.test-d.ts144 to: ["user@example.com"]CODE
LOWpackages/shell/src/tests/git.test.ts266 author: { name: "Test", email: "test@test.com" }CODE
LOWpackages/agents/src/tests/email-routing.test.ts552 from: "user@example.com"CODE
LOWpackages/agents/src/tests/email-routing.test.ts639 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts655 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts666 expect(call!.to).toBe("user@example.com");CODE
LOWpackages/agents/src/tests/email-routing.test.ts684 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts705 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts729 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts752 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts761 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts774 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-routing.test.ts783 to: "user@example.com",CODE
LOWpackages/agents/src/tests/email-headers.test.ts80 From: "user@example.com",CODE
LOWpackages/agents/src/tests/models/ai-sdk/gateway.test.ts992 "x-api-key": "placeholder"CODE
LOWpackages/agents/conformance/everything-server.ts372 default: "John Doe"CODE
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHpackages/agents/src/tests/skill-runner.test.ts640print(template.replace("{{text}}", data["text"].upper()))`,CODE
HIGHpackages/agents/src/tests/skill-runner.test.ts678print("done")`CODE
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdesign/rfc-workers-ai-gateway-merge.md465 model: string; // slug as requested, e.g. "openrouter/anthropic/claude-…"CODE
TODO Padding2 hits · 2 pts
SeverityFileLineSnippetContext
LOWguides/anthropic-patterns/src/app.tsx168 // TODO: Add validationCOMMENT
LOWguides/anthropic-patterns/src/app.tsx252 "e.g.,\nfunction processUserData(data) {\n // TODO: Add validation\n database.save(data);\n return trueCODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMsite/agents/src/components/header-visual.tsx167 text: "If you’re using a CLI-based PR system, let me know which tool you use (e.g., GitLab CLI, GiteCODE
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpackages/agents/src/skills/runner.ts779 except Exception as err:CODE