Skip to content

Fix OpenAI tool format overrides (Fixes #1943)#1949

Merged
acoliver merged 2 commits into
mainfrom
issue1943
Jun 5, 2026
Merged

Fix OpenAI tool format overrides (Fixes #1943)#1949
acoliver merged 2 commits into
mainfrom
issue1943

Conversation

@acoliver

@acoliver acoliver commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

TLDR

Fixes OpenAI-family tool format override handling so an explicit /toolformat setting such as openai is honored even when the selected model name looks like Kimi, Mistral, or Qwen. Also persists /toolformat changes into Config ephemerals so saved profiles capture the selected tool format.

Dive Deeper

This change adds a shared settings-aware tool format resolver for OpenAI-family providers. It checks provider settings for an explicit toolFormat override first, validates the configured value, and only falls back to model-name auto-detection when the override is absent, invalid, or auto.

Updated paths:

  • OpenAI request preparation now resolves the effective format through provider settings before building messages and request bodies.
  • OpenAI getToolFormat now reports the effective override-aware format.
  • OpenAI Vercel message conversion now uses the per-call resolved model for auto-detection, rather than the provider default/model, and still honors explicit overrides.
  • /toolformat now writes tool-format into Config ephemerals alongside SettingsService so profile saves include the setting.

Invalid hand-edited toolFormat strings are ignored with a warning and fall back to auto-detection rather than becoming an unsafe effective format.

Reviewer Test Plan

Recommended validation:

  1. Configure an OpenAI-compatible provider with a Kimi-looking model name.
  2. Run /toolformat openai.
  3. Send a prompt that uses tools and confirm requests use standard OpenAI tool formatting instead of Kimi tool IDs.
  4. Save/load a profile and confirm the selected tool format is retained.
  5. Repeat with /toolformat auto and confirm Kimi auto-detection still works.

Automated coverage added for:

  • OpenAI provider explicit override vs auto-detection behavior.
  • OpenAI request preparation selecting format from settings and resolved model.
  • OpenAI Vercel per-call model detection and explicit override behavior.
  • Invalid override strings falling back to auto-detection.
  • /toolformat persistence into Config ephemerals.

Testing Matrix

npm run [OK]
npx
Docker
Podman - -
Seatbelt - -

Validated on macOS:

  • npm run test: passed, but the command wrapper was interrupted after Vitest had reported completion summary: 567 files passed, 9627 tests passed, 44 skipped.
  • npm run lint: passed with 0 errors and existing warnings.
  • npm run typecheck: passed.
  • npm run format: passed.
  • npm run build: passed.
  • node scripts/start.js --profile-load ollamakimi "write me a haiku and nothing else": passed.

Linked issues / bugs

Fixes #1943

@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Looking for one thing? Review this PR in Change Stack to search files, summaries, diffs, and code without losing your place.

Review Change Stack

Summary by CodeRabbit

  • New Features

    • Provider-level tool-format overrides for explicit format control.
    • Per-call model resolution used for more accurate tool-format selection.
    • GitHub download options now accept custom request headers.
  • Bug Fixes

    • Improved sync between ephemeral and persisted tool-format settings to ensure consistent storage.
  • Tests

    • Added extensive tests covering tool-format override, detection, request preparation, and persistence.

Walkthrough

Adds provider-level tool-format overrides and resolution (resolveToolFormat/getToolFormatOverride), integrates them into OpenAI/OpenAI-Vercel providers and request preparation, syncs CLI ephemeral config with persisted settings for tool-format, and fixes GitHub download stream cleanup with optional headers.

Changes

Tool Format Override Implementation

Layer / File(s) Summary
Override resolution foundation
packages/core/src/providers/utils/toolFormatDetection.ts, packages/core/src/providers/utils/toolFormatDetection.issue1943.test.ts
VALID_TOOL_FORMATS, ToolFormatSettings, getToolFormatOverride() and resolveToolFormat() implement explicit-override-then-auto-detection precedence; invalid overrides are logged and ignored; tests validate behavior.
OpenAI Request Preparation integration
packages/core/src/providers/openai/OpenAIRequestPreparation.ts, packages/core/src/providers/openai/OpenAIRequestPreparation.issue1943.test.ts
prepareRequest() accepts optional providerName, uses resolveToolFormat() with per-call resolved model and settings, and logs provider-aware debug info; tests assert model propagation, system prompt inclusion, and override behavior.
OpenAI Provider integration
packages/core/src/providers/openai/OpenAIProvider.ts, packages/core/src/providers/openai/OpenAIProvider.issue1943.test.ts
getToolFormat() now calls resolveToolFormat() with provider name and settings; generateChatCompletionImpl() forwards provider name to request preparation; tests cover override precedence and auto-detection.
OpenAI-Vercel Provider integration
packages/core/src/providers/openai-vercel/OpenAIVercelProvider.ts, packages/core/src/providers/openai-vercel/OpenAIVercelProvider.issue1943.test.ts
Switches to resolveToolFormat(), resolves per-call model from options.resolvedModel for tool-format selection, and updates getToolFormat(); tests validate resolved-model-driven detection and override suppression.
CLI settings persistence
packages/cli/src/runtime/providerMutations.ts, packages/cli/src/runtime/providerMutations.issue1943.test.ts
setActiveToolFormatOverride() syncs settingsService.updateSettings(toolFormat) and config.setEphemeralSetting('tool-format', ...) for explicit and 'auto' flows; tests assert both calls and call counts.

GitHub Download Cleanup

Layer / File(s) Summary
Download stream cleanup and headers
packages/cli/src/config/extensions/github.ts
Introduces cleanupAfterFileClosed helper, adds a settled guard to prevent double rejection, rewires stream event handlers to centralize cleanup, and exposes optional headers on DownloadOptions.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I nibble code with careful paws,
I hop through formats, check the laws,
Overrides settled, streams unclogged,
Tests green like clover on the log.
Hooray — one tidy rabbit applause!

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Fix OpenAI tool format overrides (Fixes #1943)' is clear, concise, and directly summarizes the main change in the changeset.
Description check ✅ Passed The description is comprehensive and covers all key template sections: TLDR explains the fix, Dive Deeper provides technical details, Reviewer Test Plan includes specific validation steps, and Testing Matrix with results are included. Linked issues section properly references issue #1943 with the 'Fixes' keyword.
Linked Issues check ✅ Passed The PR fully addresses the primary objectives from issue #1943: explicit tool format overrides are now honored over model-name detection, the tool format is persisted in saved profiles, and a centralized tool format resolver was implemented.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing the tool format override functionality and settings-aware resolution required by issue #1943. The GitHub asset download improvements are minimal and tangentially related to the dependency update.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

📋 Issue Planner

Built with CodeRabbit's Coding Plans for faster development and fewer bugs.

View plan used: #1943

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue1943

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added the maintainer:e2e:ok Trusted contributor; maintainer-approved E2E run label Jun 5, 2026
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

LLxprt PR Review – PR #1949

Issue Alignment

Issue #1943 reported that /toolformat openai was ignored when the model name looked like "kimi", "mistral", or "qwen". The fix correctly addresses both parts of the issue:

  1. Tool format override ignored: The PR introduces resolveToolFormat() which checks provider settings for an explicit toolFormat override before falling back to model-name auto-detection. This is implemented in OpenAIProvider.getToolFormat(), OpenAIVercelProvider.getToolFormat(), and OpenAIVercelProvider.convertToModelMessages(), plus prepareRequest().

  2. toolformat not persisted to profile: setActiveToolFormatOverride() now calls config.setEphemeralSetting('tool-format', ...) alongside settingsService.updateSettings(), mirroring the pattern of updateActiveProviderBaseUrl.

Evidence tied to issue requirements:

  • toolFormatDetection.ts: resolveToolFormat() returns explicit override when set, validates against VALID_TOOL_FORMATS, falls back to detectToolFormat() for model-name detection.
  • OpenAIProvider.getToolFormat() and OpenAIVercelProvider.getToolFormat() both use resolveToolFormat() instead of detectToolFormat().
  • OpenAIVercelProvider.convertToModelMessages() accepts options.resolvedModel to use the per-call model (not just provider default) for tool format detection.
  • providerMutations.ts: setActiveToolFormatOverride() writes to both settingsService and config.setEphemeralSetting.

Side Effects

  • github.ts (downloadFile race fix): A second commit fixes a file cleanup race condition in downloadFile(). While not mentioned in the PR description, the fix (adds settled guard and cleanupAfterFileClosed() helper) is sound and unrelated to the main issue. Per scope discipline, this is flagged as out-of-scope but present in the diff — no action required beyond awareness.
  • No other side effects identified. The changes are isolated to OpenAI-family providers and the provider mutations layer.

Code Quality

Strengths:

  • VALID_TOOL_FORMATS provides a centralized allowlist for tool format values, with validation in getToolFormatOverride() and a warning logged for invalid values.
  • ToolFormatSettings interface enables testability without coupling to SettingsService.
  • The resolveToolFormat() pattern mirrors AnthropicProvider.detectToolFormat(), following existing conventions.
  • settled guard in downloadFile() correctly prevents double-resolution of the promise.

Concerns:

  • None identified. Error handling is appropriate (invalid overrides fall back to auto-detect with a warning). No obvious race conditions or data validation gaps.

Tests and Coverage

Coverage impact: Increase

Four new behavioral test files with substantial coverage:

  1. toolFormatDetection.issue1943.test.ts (278 lines): Unit tests for resolveToolFormat() and getToolFormatOverride() covering override priority, auto behavior, invalid value handling, provider isolation, and logging.

  2. OpenAIRequestPreparation.issue1943.test.ts (298 lines): Integration tests for prepareRequest() verifying resolved model usage for detection, explicit override suppression of auto-detection, and request body correctness.

  3. OpenAIProvider.issue1943.test.ts (156 lines): Provider-level tests for getToolFormat() honoring overrides across model families (kimi, mistral, qwen, standard).

  4. OpenAIVercelProvider.issue1943.test.ts (228 lines): Vercel provider tests covering getToolFormat() and per-call resolved model detection behavior.

  5. providerMutations.issue1943.test.ts (105 lines): Tests confirming setActiveToolFormatOverride() writes to both SettingsService and Config ephemerals.

No mock theater detected. Tests use real SettingsService instances and verify behavioral outcomes, not implementation details.

Verdict

Ready

The PR correctly fixes both parts of issue #1943: explicit /toolformat overrides now take precedence over model-name auto-detection for OpenAI-family providers, and the setting is persisted into Config ephemerals for profile saves. Tests are behavioral, comprehensive, and non-mocked. The secondary downloadFile race fix in github.ts is a bonus improvement unrelated to the main issue but correctly implemented. No blockers identified.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/cli/src/config/extensions/github.ts`:
- Around line 647-655: downloadFile currently only resolves on file.on('finish')
and rejects on 'error', so if the HTTP response/socket closes mid-transfer
without emitting 'error' the Promise can hang and leave a partial file; add
handlers for res.on('aborted') and res.on('close') and file.on('close') that
check the existing settled flag and, if not settled, mark settled, call
cleanupAfterFileClosed (or cleanupAndReject) to remove partial file and reject
the Promise with an appropriate error; ensure these handlers mirror the existing
file/res 'error' logic and remove their listeners when settled to avoid leaks
(reference downloadFile, settled, res, file, and
cleanupAfterFileClosed/cleanupAndReject).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: dc547928-1ece-4119-86a5-650416f4bb40

📥 Commits

Reviewing files that changed from the base of the PR and between dd95ca8 and c533620.

📒 Files selected for processing (1)
  • packages/cli/src/config/extensions/github.ts
📜 Review details
⏰ Context from checks skipped due to timeout of 270000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: E2E Test (Linux) - sandbox:docker
  • GitHub Check: E2E Test (Linux) - sandbox:none
  • GitHub Check: CodeQL
  • GitHub Check: Lint (Javascript)
  • GitHub Check: Run LLxprt review
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1854
File: packages/core/src/core/subagentRuntimeSetup.test.ts:77-84
Timestamp: 2026-03-31T02:12:44.939Z
Learning: In vybestack/llxprt-code PR `#1854` (fix: preserve provider terminal metadata and tool schemas), the legacy `parameters` fallback field was intentionally and completely removed from all tool declaration interfaces and schema converters (openai/schemaConverter.ts, openai-vercel/schemaConverter.ts, anthropic/schemaConverter.ts, AnthropicProvider.ts, ToolFormatter.ts, AgentRuntimeLoader.ts, runtimeAdapters.ts). `parametersJsonSchema` is now the sole required contract for tool declarations. Converters throw an error when `parametersJsonSchema` is absent instead of falling back to `parameters`. Do not flag the absence of `parameters` assertions or suggest preserving backward compatibility with the legacy `parameters` field in any review of this codebase going forward — the single-field contract is intentional by design.
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1736
File: packages/core/src/providers/openai/OpenAIRequestBuilder.test.ts:316-395
Timestamp: 2026-03-19T22:50:00.853Z
Learning: In the llxprt-code codebase (`packages/core/src/providers/openai/OpenAIRequestBuilder.ts`, previously `OpenAIProvider.ts` around line 1250), `validateToolMessageSequence` intentionally does NOT deduplicate tool messages by `tool_call_id`. Contiguous tool messages sharing the same `tool_call_id` are legitimate in conversation history (e.g., replay artifacts or adapter-level splitting across message boundaries). The function only removes *orphaned* tool messages (those whose `tool_call_id` does not match any declared tool call in the preceding assistant message). Eager deduplication of same-id tool messages has historically caused strict-provider HTTP 400 errors and must not be introduced.
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1736
File: packages/core/src/providers/openai/OpenAIStreamProcessor.ts:110-123
Timestamp: 2026-03-19T23:27:48.689Z
Learning: In `packages/core/src/providers/openai/OpenAIStreamProcessor.ts` (extracted from the original `generatePipelineChatCompletionImpl` in `OpenAIProvider.ts`, lines 2050-2160), text-parsed tool calls from `extractKimiToolCallsFromText()` and `deps.textToolParser.parse()` (GemmaToolCallParser) are intentionally yielded directly as `ToolCallBlock[]` without being routed through `deps.toolCallPipeline.addFragment()`. The `toolCallPipeline` is exclusively used for delta-based streaming tool calls coming from the OpenAI API. This two-path design is deliberate — do not flag missing `addFragment()` calls for text-parsed tool calls as a bug.
📚 Learning: 2026-04-23T23:32:39.418Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1907
File: packages/cli/src/config/extensions/github.ts:70-70
Timestamp: 2026-04-23T23:32:39.418Z
Learning: In `packages/cli/src/config/extensions/github.ts` (vybestack/llxprt-code), `installMetadata.ref ?? 'HEAD'` intentionally uses nullish coalescing for git ref fallback. An empty-string ref is considered explicit misconfiguration and should not be silently replaced with 'HEAD'; only null/undefined (absent ref) should default to 'HEAD' per git conventions. Do not flag this as inconsistent with the codebase's falsy-coalescing pattern.

Applied to files:

  • packages/cli/src/config/extensions/github.ts
📚 Learning: 2026-02-06T15:52:42.315Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1305
File: scripts/generate-keybindings-doc.ts:1-5
Timestamp: 2026-02-06T15:52:42.315Z
Learning: In reviews of vybestack/llxprt-code, do not suggest changing existing copyright headers from 'Google LLC' to 'Vybestack LLC' for files that originated from upstream. Preserve upstream copyrights in files that came from upstream, and only apply 'Vybestack LLC' copyright on newly created, original LLxprt files. If a file is clearly LLxprt-original, it may carry the Vybestack header; if it is upstream-originated, keep the original sponsor header.

Applied to files:

  • packages/cli/src/config/extensions/github.ts
📚 Learning: 2026-03-31T02:12:43.093Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1854
File: packages/core/src/core/subagentRuntimeSetup.test.ts:77-84
Timestamp: 2026-03-31T02:12:43.093Z
Learning: In this codebase, tool declarations should follow the single required contract `parametersJsonSchema`; do not ask to preserve or reintroduce the legacy `parameters` fallback field. Reviewers should not flag assertions/checks for missing `parameters` or suggest backward-compatibility behavior for `parameters`. Schema converters/providers are expected to error if `parametersJsonSchema` is absent instead of falling back to `parameters`.

Applied to files:

  • packages/cli/src/config/extensions/github.ts
🔇 Additional comments (1)
packages/cli/src/config/extensions/github.ts (1)

559-574: LGTM!

Also applies to: 593-643

Comment on lines +647 to +655
cleanupAfterFileClosed(file, err, cleanupAndReject);
});

res.pipe(file);
file.on('finish', () => file.close(resolve as () => void));
file.on('finish', () => {
if (!settled) {
settled = true;
file.close(resolve as () => void);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate the target file and show the relevant implementation region
FILE="packages/cli/src/config/extensions/github.ts"
echo "== file =="
ls -la "$FILE"

echo "== showing lines around 600-720 =="
nl -ba "$FILE" | sed -n '600,720p'

echo "== searching for downloadFile cleanup helpers =="
rg -n "function downloadFile|downloadFile\\(|cleanupAfterFileClosed\\(" "$FILE"

echo "== showing cleanupAfterFileClosed definition (if in-file) =="
# Try to find its definition and print around it
rg -n "cleanupAfterFileClosed" "$FILE" -n
# best-effort: print around each match
for line in $(rg -n "cleanupAfterFileClosed" "$FILE" | cut -d: -f1); do
  start=$((line-40))
  end=$((line+80))
  echo "---- around $line ----"
  nl -ba "$FILE" | sed -n "${start},${end}p" | head -n 200
done

echo "== looking for res.complete usage or settled logic =="
rg -n "settled|res\\.complete|on\\('close'\\)|on\\('finish'\\)|on\\('error'\\)" "$FILE"

Repository: vybestack/llxprt-code

Length of output: 268


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/cli/src/config/extensions/github.ts"
echo "== file =="
ls -la "$FILE"

echo "== showing lines around 600-720 =="
cat -n "$FILE" | sed -n '600,720p'

echo "== searching for downloadFile cleanup helpers =="
rg -n "function downloadFile|downloadFile\\(|cleanupAfterFileClosed\\(" "$FILE" || true

echo "== showing cleanupAfterFileClosed definition (if in-file) =="
matches="$(rg -n "cleanupAfterFileClosed" "$FILE" || true)"
echo "$matches" | head -n 50
if [ -n "$matches" ]; then
  while read -r line; do
    ln="$(echo "$line" | cut -d: -f1)"
    start=$((ln-60))
    end=$((ln+120))
    echo "---- around $ln ----"
    cat -n "$FILE" | sed -n "${start},${end}p" | head -n 220
  done <<< "$matches"
fi

echo "== looking for res.complete / settled / close / finish / error logic =="
rg -n "settled|res\\.complete|on\\('close'\\)|on\\('finish'\\)|on\\('error'\\)" "$FILE" || true

Repository: vybestack/llxprt-code

Length of output: 15754


🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n "res\\.complete|\\.complete\\b" packages/cli/src/config/extensions/github.ts packages/cli/src || true
rg -n "on\\('close'\\)|on\\(\"close\"\\)|on\\('aborted'\\)|aborted\\b|IncomingMessage" packages/cli/src || true

Repository: vybestack/llxprt-code

Length of output: 4593


🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="packages/cli/src/config/extensions/github.ts"

echo "== call sites around line ~430-520 (downloadFile usage) =="
cat -n "$FILE" | sed -n '420,520p'

echo "== find downloadFile usages in github.ts =="
rg -n "downloadFile\\(" "$FILE"

echo "== search repo for similar pipe/finish download patterns =="
rg -n "res\\.pipe\\(file\\)|file\\.on\\('finish'\\)|cleanupAfterFileClosed\\(" packages/cli/src || true

echo "== check package.json for `@types/node` (or types) =="
fd -t f -a "package.json" . | head -n 20
# show top-level package.json first if exists
if [ -f package.json ]; then echo "--- root package.json ---"; cat package.json; fi

rg -n "\"`@types/node`\"" -S . || true
rg -n "node\"\\s*:\\s*\"|engines\"\\s*:\\s*\\{|target\\s*:\\s*\"|lib\\s*:\\s*\\[" -S package.json packages/cli/package.json packages/cli/tsconfig*.json tsconfig*.json 2>/dev/null || true

echo "== list tsconfig targets for `@types/node` compatibility clues =="
fd -t f "tsconfig*.json" . | head -n 20
for f in $(fd -t f "tsconfig*.json" . | head -n 10); do
  echo "--- $f ---"
  cat "$f"
done

Repository: vybestack/llxprt-code

Length of output: 22172


🌐 Web query:

Node.js IncomingMessage close event complete property res.complete premature connection closed promise resolve finish pipe file never finish hang

💡 Result:

In Node.js, the IncomingMessage.complete property is a boolean that indicates whether an HTTP message was fully received and successfully parsed [1][2]. It is commonly used to detect if a connection was terminated prematurely (i.e., before the complete message was delivered) by checking its value during the close event [1][3]. Handling premature connection closures and stream hangs requires understanding how Node.js manages HTTP streams: 1. Detecting Premature Closure: You can check res.complete inside the close event listener to determine if the message was truncated [1][3]. If res.complete is false, the connection was likely terminated unexpectedly [1][2]. javascript res.on('close', () => { if (!res.complete) { console.error('The connection was terminated while the message was still being sent'); } }); 2. Avoiding Stream Hangs: Using res.pipe(destination) can lead to issues where the destination stream does not finish if the source (IncomingMessage) encounters a premature closure [3][4]. Since Node.js 13.0, res.pipe() may not automatically call dst.end() if the response is truncated [3]. 3. Recommended Practices: - Use stream.pipeline instead of manual .pipe() calls [3][4]. stream.pipeline is designed to handle cleanup, errors, and premature closures automatically, ensuring that errors are propagated and resources are not leaked [3]. - If you are waiting for a process to complete, rely on stream.finished or the finish event of the destination stream rather than just the end event of the IncomingMessage [4]. - If your application involves complex streaming (e.g., pipelines where you need to detect errors early), verify if you are accidentally destroying the IncomingMessage (often via for await loops or manual socket destruction), which can prevent proper completion events [5]. If you find that your application hangs or does not finish, ensure that you are not manually handling end events in a way that ignores close or error events, as a premature closure will emit close but may not emit end or finish in the expected manner [3][6][7]. Using modern stream utilities helps maintain consistent behavior across different Node.js versions [3].

Citations:


🌐 Web query:

@types/node IncomingMessage complete boolean property

💡 Result:

In the Node.js TypeScript definitions provided by @types/node, the IncomingMessage interface includes a boolean property named complete [1][2]. The message.complete property indicates whether a complete HTTP message has been received and successfully parsed [2][3]. It is commonly used to verify if a client or server fully transmitted a message before the connection was terminated [2][4]. For example, when listening for the end event on an IncomingMessage object, you can check this property to detect incomplete transfers [2][5]: const req = http.request({ /*... */ }, (res) => { res.resume; res.on('end', => { if (!res.complete) { console.error('The connection was terminated while the message was still being sent'); } }); }); This property has been part of the Node.js http module since version 0.3.0 [2][6].

Citations:


Handle premature HTTP response closes in downloadFile()

downloadFile() settles only on file.on('finish') (resolve) and file/res 'error' (reject). If the server/socket closes mid-transfer without triggering 'error', there’s no 'close'/'aborted' handler, so the Promise can hang and leave a partial file.

Proposed fix
         // Handle response stream errors
         res.on('error', (err) => {
           cleanupAfterFileClosed(file, err, cleanupAndReject);
         });
+        res.on('close', () => {
+          if (!res.complete && !settled) {
+            cleanupAfterFileClosed(
+              file,
+              new Error('Download connection closed before completion'),
+              cleanupAndReject,
+            );
+          }
+        });
 
         res.pipe(file);
         file.on('finish', () => {
           if (!settled) {
             settled = true;
             file.close(resolve as () => void);
           }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
cleanupAfterFileClosed(file, err, cleanupAndReject);
});
res.pipe(file);
file.on('finish', () => file.close(resolve as () => void));
file.on('finish', () => {
if (!settled) {
settled = true;
file.close(resolve as () => void);
}
cleanupAfterFileClosed(file, err, cleanupAndReject);
});
res.on('close', () => {
if (!res.complete && !settled) {
cleanupAfterFileClosed(
file,
new Error('Download connection closed before completion'),
cleanupAndReject,
);
}
});
res.pipe(file);
file.on('finish', () => {
if (!settled) {
settled = true;
file.close(resolve as () => void);
}
});
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/cli/src/config/extensions/github.ts` around lines 647 - 655,
downloadFile currently only resolves on file.on('finish') and rejects on
'error', so if the HTTP response/socket closes mid-transfer without emitting
'error' the Promise can hang and leave a partial file; add handlers for
res.on('aborted') and res.on('close') and file.on('close') that check the
existing settled flag and, if not settled, mark settled, call
cleanupAfterFileClosed (or cleanupAndReject) to remove partial file and reject
the Promise with an appropriate error; ensure these handlers mirror the existing
file/res 'error' logic and remove their listeners when settled to avoid leaks
(reference downloadFile, settled, res, file, and
cleanupAfterFileClosed/cleanupAndReject).

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 57.95% 57.95% 61.35% 81.72%
Core 80.02% 80.02% 80.33% 82.34%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   57.95 |    81.72 |   61.35 |   57.95 |                   
 src               |   65.56 |    62.97 |   82.69 |   65.56 |                   
  gemini.tsx       |   49.94 |    56.81 |   54.54 |   49.94 | ...1212,1220-1239 
  ...st-helpers.ts |     100 |       60 |     100 |     100 | 23-34             
  ...ractiveCli.ts |   81.85 |    73.91 |      80 |   81.85 | ...00-205,278-280 
  ...liCommands.ts |   97.14 |    63.63 |     100 |   97.14 | 39-40             
  ...CliSupport.ts |      80 |    65.04 |      95 |      80 | ...76-478,500-501 
  ...ActiveAuth.ts |      60 |    68.42 |     100 |      60 | ...85-100,104-113 
 src/auth          |   81.64 |    89.13 |   86.68 |   81.64 |                   
  ...st-helpers.ts |   78.87 |     90.9 |   57.14 |   78.87 | ...59-60,64,87-90 
  ...andlerImpl.ts |    94.7 |    94.53 |   97.22 |    94.7 | ...42,567,581-582 
  ...henticator.ts |     100 |    96.96 |   91.66 |     100 | 216               
  ...ketManager.ts |     100 |      100 |     100 |     100 |                   
  ...andlerImpl.ts |   25.49 |      100 |      50 |   25.49 | 53-92,98-102      
  ...h-provider.ts |   78.54 |     86.2 |      80 |   78.54 | ...37-452,464-487 
  ...chestrator.ts |   89.36 |    86.73 |     100 |   89.36 | ...00,654-669,675 
  ...us-service.ts |    90.9 |    88.88 |     100 |    90.9 | ...54-358,447-448 
  auth-utils.ts    |   78.18 |    83.33 |     100 |   78.18 | 23-30,86-87,91-92 
  ...h-provider.ts |   73.95 |    64.86 |    87.5 |   73.95 | ...68,474,484-527 
  ...cess-image.ts |     100 |      100 |     100 |     100 |                   
  ...h-provider.ts |   19.78 |      100 |   34.78 |   19.78 | ...66-497,518-537 
  ...l-oauth-ui.ts |   96.42 |      100 |     100 |   96.42 | 52,89             
  ...h-callback.ts |   83.15 |    78.04 |   93.33 |   83.15 | ...47-251,269-271 
  migration.ts     |       0 |        0 |       0 |       0 | 1-81              
  ...st-helpers.ts |   81.41 |    77.77 |      50 |   81.41 | ...35-136,164-165 
  oauth-manager.ts |   95.63 |    97.91 |   97.29 |   95.63 | 408,474-483       
  ...vider-base.ts |     100 |    96.96 |     100 |     100 | 83                
  ...al-manager.ts |   87.01 |    96.29 |   94.11 |   87.01 | ...94-395,438-479 
  profile-utils.ts |   73.68 |    66.66 |     100 |   73.68 | ...98,106-107,119 
  ...r-registry.ts |   97.46 |     87.5 |     100 |   97.46 | 79-80             
  ...usage-info.ts |   99.45 |    97.22 |     100 |   99.45 | 240               
  ...h-provider.ts |   58.63 |    66.66 |   72.72 |   58.63 | ...02-340,348-389 
  ...oordinator.ts |   88.53 |    90.11 |     100 |   88.53 | ...30,960,966,992 
  ...ver-helper.ts |   89.65 |    88.88 |     100 |   89.65 | ...04,137-142,150 
  ...e-resolver.ts |   92.07 |    86.48 |     100 |   92.07 | ...,94-95,100-101 
  ...esh-helper.ts |   91.51 |    86.48 |     100 |   91.51 | ...46,179,186,209 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/auth/proxy    |   84.54 |    79.75 |    86.6 |   84.54 |                   
  ...th-handler.ts |   87.67 |    77.57 |     100 |   87.67 | ...81-482,553-558 
  ...oxy-server.ts |   89.86 |       80 |   97.36 |   89.86 | ...36,450-452,466 
  ...re-factory.ts |     100 |      100 |     100 |     100 |                   
  ...on-manager.ts |   96.29 |    91.42 |     100 |   96.29 | 51-52,144-145     
  ...-scheduler.ts |    92.3 |    84.61 |     100 |    92.3 | 56-59             
  ...th-adapter.ts |   62.56 |    65.62 |    62.5 |   62.56 | ...40-241,252,256 
  ...oordinator.ts |   98.98 |    82.05 |     100 |   98.98 | 156               
  ...-lifecycle.ts |    59.5 |       75 |   33.33 |    59.5 | ...92,199,241-242 
 src/commands      |   78.35 |      100 |   44.44 |   78.35 |                   
  extensions.tsx   |   55.88 |      100 |       0 |   55.88 | 25-38,42          
  hooks.ts         |   61.53 |      100 |       0 |   61.53 | 14-17,20          
  mcp.ts           |   94.11 |      100 |      50 |   94.11 | 26                
  skills.tsx       |     100 |      100 |     100 |     100 |                   
  utils.ts         |     100 |      100 |     100 |     100 |                   
 ...nds/extensions |    74.1 |    92.93 |   67.18 |    74.1 |                   
  config.ts        |   94.61 |    91.83 |     100 |   94.61 | ...66-167,196-201 
  disable.ts       |     100 |      100 |     100 |     100 |                   
  enable.ts        |     100 |      100 |     100 |     100 |                   
  install.ts       |   80.48 |    76.92 |    87.5 |   80.48 | ...63,199,202-209 
  link.ts          |   64.81 |    83.33 |      25 |   64.81 | 31,54-65,67-72    
  list.ts          |      90 |      100 |   33.33 |      90 | 35-37             
  new.ts           |     100 |      100 |     100 |     100 |                   
  settings.ts      |   72.13 |      100 |      70 |   72.13 | 32-80,218-222,225 
  uninstall.ts     |   78.43 |      100 |   66.66 |   78.43 | 54-59,62-66       
  update.ts        |   10.19 |      100 |       0 |   10.19 | ...71-190,192-197 
  utils.ts         |   13.33 |      100 |       0 |   13.33 | 29-60             
  validate.ts      |   89.36 |     87.5 |      75 |   89.36 | 50-53,60,112-116  
 .../hooks/scripts |       0 |        0 |       0 |       0 |                   
  on-start.js      |       0 |        0 |       0 |       0 | 1-8               
 ...les/mcp-server |       0 |        0 |       0 |       0 |                   
  example.js       |       0 |        0 |       0 |       0 | 1-60              
 ...commands/hooks |    7.59 |      100 |       0 |    7.59 |                   
  migrate.ts       |    7.59 |      100 |       0 |    7.59 | ...90-200,202-204 
 src/commands/mcp  |   96.94 |    86.15 |   94.44 |   96.94 |                   
  add.ts           |   99.56 |    93.33 |     100 |   99.56 | 142               
  list.ts          |   90.43 |    82.14 |      80 |   90.43 | ...16-118,151-153 
  remove.ts        |     100 |    71.42 |     100 |     100 | 21-25             
 ...ommands/skills |   60.98 |     92.3 |   31.25 |   60.98 |                   
  disable.ts       |      54 |      100 |   33.33 |      54 | 40-52,54-63       
  enable.ts        |   72.22 |      100 |   33.33 |   72.22 | 33-37,39-43       
  install.ts       |   42.69 |      100 |      25 |   42.69 | ...71-100,102-109 
  list.ts          |   84.93 |       80 |   33.33 |   84.93 | ...9,92-96,98-100 
  uninstall.ts     |   57.89 |      100 |   33.33 |   57.89 | 47-64,66-71       
 src/config        |    86.7 |    83.74 |   87.97 |    86.7 |                   
  ...deResolver.ts |   94.54 |    95.23 |     100 |   94.54 | 50-52             
  auth.ts          |   84.61 |    82.35 |     100 |   84.61 | 18-19,22-23,53-54 
  cliArgParser.ts  |   92.85 |    89.36 |     100 |   92.85 | ...24,285,287-290 
  ...alSettings.ts |   86.66 |    88.23 |     100 |   86.66 | 40-41,44-47       
  config.ts        |     100 |      100 |     100 |     100 |                   
  configBuilder.ts |    95.6 |    95.45 |      90 |    95.6 | ...99-200,241-242 
  ...mentLoader.ts |   83.78 |    60.86 |     100 |   83.78 | ...23-125,133-136 
  extension.ts     |   75.07 |    88.07 |   78.04 |   75.07 | ...12-913,916-917 
  ...iveContext.ts |    93.7 |    91.66 |     100 |    93.7 | 79,81,87-92,232   
  ...iateConfig.ts |   96.39 |    97.05 |     100 |   96.39 | 53,150-152        
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  ...rverConfig.ts |   83.33 |    94.44 |     100 |   83.33 | 23-39             
  paths.ts         |     100 |      100 |     100 |     100 |                   
  policy.ts        |   80.76 |      100 |      50 |   80.76 | 47-51             
  ...figRuntime.ts |   88.61 |       84 |     100 |   88.61 | ...22-429,440-443 
  ...eBootstrap.ts |   91.68 |    87.27 |   97.22 |   91.68 | ...99-801,810-811 
  ...Resolution.ts |   71.67 |    65.71 |    87.5 |   71.67 | ...31-232,268-287 
  ...pplication.ts |   92.12 |    72.72 |     100 |   92.12 | ...,93-94,110,177 
  ...elResolver.ts |    92.3 |       85 |     100 |    92.3 | 40,42-43,79       
  sandboxConfig.ts |   69.81 |    51.48 |   88.46 |   69.81 | ...80-581,593-594 
  ...oxProfiles.ts |    8.53 |      100 |       0 |    8.53 | 47-48,51-129      
  settingPaths.ts  |     100 |      100 |     100 |     100 |                   
  ...validation.ts |   86.39 |    83.33 |     100 |   86.39 | ...89,292-296,299 
  settings.ts      |   78.03 |    77.46 |    61.9 |   78.03 | ...81-382,437-438 
  ...ingsLegacy.ts |    70.9 |    81.81 |     100 |    70.9 | 48-52,56-67       
  ...ingsLoader.ts |   94.08 |    81.39 |     100 |   94.08 | ...81,111-112,140 
  settingsMerge.ts |     100 |    94.11 |     100 |     100 | 75,103,127        
  ...Migrations.ts |   82.31 |    74.07 |     100 |   82.31 | ...77,81-82,84-99 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...Governance.ts |   95.83 |    90.62 |     100 |   95.83 | 54,126-129        
  ...tedFolders.ts |   95.58 |       96 |     100 |   95.58 | 93,120-126        
  welcomeConfig.ts |   22.41 |      100 |       0 |   22.41 | ...71,74-79,82-83 
  yargsOptions.ts  |   98.65 |    94.44 |   85.71 |   98.65 | 116,125-128       
 ...fig/extensions |   75.54 |    84.59 |   86.66 |   75.54 |                   
  consent.ts       |   82.81 |    87.23 |   91.66 |   82.81 | ...74-375,378-379 
  ...ionConsent.ts |   87.38 |    76.66 |     100 |   87.38 | ...,64-67,113-116 
  ...Enablement.ts |    93.9 |       96 |     100 |    93.9 | ...08-214,277-279 
  ...sionLoader.ts |   93.33 |    89.36 |     100 |   93.33 | ...86-187,195-199 
  ...onSettings.ts |     100 |      100 |     100 |     100 |                   
  github.ts        |   62.19 |    81.73 |   70.83 |   62.19 | ...41-642,652-655 
  hookSchema.ts    |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |   55.31 |    84.78 |      50 |   55.31 | ...61,402,426-427 
  ...ingsPrompt.ts |      73 |    94.73 |      80 |      73 | 92-121            
  ...ngsStorage.ts |   84.69 |    75.92 |     100 |   84.69 | ...89-290,308-311 
  update.ts        |   69.52 |    52.94 |   85.71 |   69.52 | ...73-201,218-226 
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   95.55 |       90 |     100 |   95.55 | 33-34             
 ...ettings-schema |   99.78 |       60 |     100 |   99.78 |                   
  schema-core.ts   |     100 |      100 |     100 |     100 |                   
  ...extensions.ts |     100 |      100 |     100 |     100 |                   
  ...a-security.ts |   99.44 |       50 |     100 |   99.44 | 16-17             
  schema-tail.ts   |   99.52 |       50 |     100 |   99.52 | 13-14             
  schema-ui.ts     |     100 |      100 |     100 |     100 |                   
  schema.ts        |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/constants     |     100 |      100 |     100 |     100 |                   
  historyLimits.ts |     100 |      100 |     100 |     100 |                   
 src/extensions    |   66.76 |    61.81 |      75 |   66.76 |                   
  ...utoUpdater.ts |   66.76 |    61.81 |      75 |   66.76 | ...56-457,466,468 
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 ...egration-tests |   91.46 |    85.18 |     100 |   91.46 |                   
  test-utils.ts    |   91.46 |    85.18 |     100 |   91.46 | ...18,236-237,247 
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/providers     |    84.7 |     76.2 |   80.32 |    84.7 |                   
  IFileSystem.ts   |   65.51 |      100 |   57.14 |   65.51 | 45-46,49-54,67-68 
  ...derFactory.ts |   91.83 |       84 |      80 |   91.83 | ...72-373,460-463 
  ...Precedence.ts |   94.59 |    86.66 |     100 |   94.59 | 40-41             
  index.ts         |       0 |        0 |       0 |       0 | 1-19              
  ...gistration.ts |   79.36 |    71.42 |   33.33 |   79.36 | ...01-105,111-112 
  ...derAliases.ts |    84.9 |    84.61 |     100 |    84.9 | ...69-275,280-281 
  ...onfigUtils.ts |   92.45 |       75 |     100 |   92.45 | 26-30             
  ...erInstance.ts |   79.48 |    61.42 |      90 |   79.48 | ...10-511,533-553 
  types.ts         |       0 |        0 |       0 |       0 | 1-8               
 ...viders/logging |   89.31 |     92.5 |   69.23 |   89.31 |                   
  ...rvice-impl.ts |   44.44 |      100 |       0 |   44.44 | 21-22,25-30,36-37 
  git-stats.ts     |   96.46 |     92.5 |     100 |   96.46 | 154-155,195-196   
 src/runtime       |    82.2 |    80.97 |   90.81 |    82.2 |                   
  ...imeAdapter.ts |   97.65 |       92 |     100 |   97.65 | ...18-219,308-309 
  ...etFailover.ts |   97.05 |    91.66 |     100 |   97.05 | 31-32,217         
  messages.ts      |   63.07 |    66.66 |      75 |   63.07 | 51,74-102         
  ...pplication.ts |   94.06 |    89.39 |   90.62 |   94.06 | ...59,591,674-675 
  ...leSnapshot.ts |      47 |    50.87 |   53.84 |      47 | ...58-560,563-590 
  ...rMutations.ts |   93.92 |    82.92 |     100 |   93.92 | ...30-434,448-449 
  ...iderSwitch.ts |   86.48 |    81.37 |     100 |   86.48 | ...35-652,689,798 
  ...eAccessors.ts |   71.34 |    64.86 |     100 |   71.34 | ...00-501,509-510 
  ...extFactory.ts |    92.9 |    81.25 |     100 |    92.9 | ...84,407-410,414 
  ...eLifecycle.ts |   84.31 |    93.33 |     100 |   84.31 | ...11-120,154-158 
  ...meRegistry.ts |   90.67 |    91.22 |     100 |   90.67 | ...57-161,167-168 
  ...meSettings.ts |     100 |      100 |     100 |     100 |                   
  ...gsResolver.ts |   74.52 |    75.86 |      75 |   74.52 | ...49-160,176-184 
  ...sHardening.ts |   58.42 |       85 |    87.5 |   58.42 | ...77,90-91,97-98 
 ...le-application |   90.05 |    76.08 |     100 |   90.05 |                   
  ...cerProfile.ts |   87.74 |    77.41 |     100 |   87.74 | ...48,166,171,183 
  ...eAccessors.ts |     100 |    73.33 |     100 |     100 | 25,32,37,42       
 src/services      |   84.68 |    82.73 |   93.93 |   84.68 |                   
  ...mandLoader.ts |   79.37 |    73.33 |      80 |   79.37 | ...06-120,164-182 
  ...ardService.ts |    91.3 |    33.33 |     100 |    91.3 | 35-36             
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   91.73 |    86.53 |     100 |   91.73 | ...09-214,299-306 
  ...omptLoader.ts |   74.52 |    77.08 |     100 |   74.52 | ...86,201,258-259 
  performResume.ts |   89.11 |    89.47 |     100 |   89.11 | ...61-264,270-271 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...mpt-processors |      98 |    92.98 |     100 |      98 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.88 |    92.45 |     100 |   97.88 | 80-81,265-266     
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...o-continuation |   86.56 |    84.09 |   94.73 |   86.56 |                   
  ...ionService.ts |   86.56 |    84.09 |   94.73 |   86.56 | ...08,575,601-602 
 src/settings      |   85.96 |     64.7 |     100 |   85.96 |                   
  ...alSettings.ts |   94.44 |       70 |     100 |   94.44 | 74-75             
  ...aramParser.ts |   71.42 |    57.14 |     100 |   71.42 | 23-24,26-27,32-33 
 src/test-utils    |    76.7 |     90.9 |   27.27 |    76.7 |                   
  async.ts         |       0 |        0 |       0 |       0 | 1-34              
  ...eExtension.ts |     100 |      100 |     100 |     100 |                   
  ...omMatchers.ts |   18.75 |      100 |       0 |   18.75 | 17-45             
  ...andContext.ts |     100 |      100 |     100 |     100 |                   
  render.tsx       |   94.84 |    96.66 |      25 |   94.84 | ...51-156,259-260 
  ...e-testing.tsx |       0 |        0 |       0 |       0 | 1-56              
  ...iderConfig.ts |       0 |        0 |       0 |       0 | 1-19              
 src/ui            |   37.85 |    93.44 |   30.48 |   37.85 |                   
  App.tsx          |   37.25 |      100 |       0 |   37.25 | 64-91,97-104      
  AppContainer.tsx |     100 |      100 |     100 |     100 |                   
  ...erRuntime.tsx |   14.36 |      100 |   16.66 |   14.36 | 66-397            
  ...tionNudge.tsx |       8 |      100 |       0 |       8 | 29-104            
  colors.ts        |   37.14 |      100 |   20.33 |   37.14 | ...03-304,306-307 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  debug.ts         |     100 |      100 |     100 |     100 |                   
  ...derOptions.ts |     100 |      100 |     100 |     100 |                   
  keyMatchers.ts   |   88.63 |       84 |     100 |   88.63 | 18,20-21,28-29    
  ...ntsEnabled.ts |     100 |      100 |     100 |     100 |                   
  ...submission.ts |     100 |      100 |     100 |     100 |                   
  ...tic-colors.ts |   78.94 |      100 |      60 |   78.94 | 15-16,24-25       
  textConstants.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/commands   |    70.2 |    75.16 |    76.8 |    70.2 |                   
  aboutCommand.ts  |   82.24 |    51.51 |   91.66 |   82.24 | ...89-190,193-194 
  authCommand.ts   |   50.47 |    77.33 |   58.33 |   50.47 | ...46-649,660-698 
  ...urlCommand.ts |      30 |      100 |       0 |      30 | 20-40             
  bugCommand.ts    |   71.23 |    30.76 |     100 |   71.23 | ...99-110,145-153 
  chatCommand.ts   |   69.72 |    74.62 |   66.66 |   69.72 | ...50-551,599-610 
  clearCommand.ts  |   88.88 |    88.88 |     100 |   88.88 | 96-103            
  ...essCommand.ts |   99.21 |    92.59 |     100 |   99.21 | 41                
  ...nueCommand.ts |     100 |      100 |     100 |     100 |                   
  copyCommand.ts   |     100 |      100 |     100 |     100 |                   
  debugCommands.ts |   13.29 |      100 |       0 |   13.29 | ...50,457,464,471 
  ...icsCommand.ts |   74.58 |    49.52 |   94.11 |   74.58 | ...61-564,579-584 
  ...ryCommand.tsx |    89.5 |    84.84 |     100 |    89.5 | ...29-137,204-212 
  docsCommand.ts   |     100 |      100 |     100 |     100 |                   
  ...extCommand.ts |   93.18 |    77.77 |     100 |   93.18 | 108-113           
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   41.27 |    88.09 |    62.5 |   41.27 | ...24-381,391-539 
  ...ionSection.ts |   83.33 |    93.33 |     100 |   83.33 | 28-34             
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  hooksCommand.ts  |   89.62 |    87.27 |     100 |   89.62 | ...54,344-345,459 
  ideCommand.ts    |   69.87 |    73.52 |   69.23 |   69.87 | ...36-237,240-255 
  initCommand.ts   |   80.26 |    71.42 |   66.66 |   80.26 | 36-40,42-89       
  keyCommand.ts    |   89.84 |    80.76 |     100 |   89.84 | ...95,418-419,518 
  ...ileCommand.ts |    10.9 |      100 |       0 |    10.9 | 22-46,53-141      
  ...ingCommand.ts |   10.27 |      100 |       0 |   10.27 | ...19-572,589-601 
  logoutCommand.ts |   15.87 |      100 |       0 |   15.87 | 21-84             
  lspCommand.ts    |    90.9 |    87.17 |     100 |    90.9 | ...18-123,147-149 
  mcpCommand.ts    |   86.88 |     82.3 |    91.3 |   86.88 | ...64-665,747-752 
  memoryCommand.ts |   87.45 |    75.47 |     100 |   87.45 | ...48,236-250,299 
  modelCommand.ts  |   98.92 |    93.02 |     100 |   98.92 | 120               
  mouseCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |    93.9 |    88.88 |     100 |    93.9 | 58-62             
  ...iesCommand.ts |   97.05 |    80.55 |     100 |   97.05 | 27,40-41          
  ...acyCommand.ts |   61.53 |      100 |       0 |   61.53 | 22-26             
  ...ileCommand.ts |   57.52 |    62.74 |   73.07 |   57.52 | ...1113,1134-1150 
  ...derCommand.ts |   56.96 |    31.57 |   88.88 |   56.96 | ...83-284,293-298 
  quitCommand.ts   |   36.66 |      100 |       0 |   36.66 | 17-36             
  ...oreCommand.ts |   90.16 |    82.85 |     100 |   90.16 | ...69-174,207-212 
  setCommand.ts    |   76.12 |       75 |   81.25 |   76.12 | ...46-551,628-641 
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  setupCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |   90.47 |    82.85 |     100 |   90.47 | ...13-216,223-227 
  skillsCommand.ts |   82.78 |       75 |     100 |   82.78 | ...91-292,305-306 
  statsCommand.ts  |   71.34 |       70 |      80 |   71.34 | ...51-560,568-649 
  ...entCommand.ts |   76.72 |    69.73 |   81.81 |   76.72 | ...10-616,627-633 
  tasksCommand.ts  |   78.53 |    78.78 |     100 |   78.53 | ...78-186,247-254 
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  todoCommand.ts   |   81.55 |    74.32 |   94.11 |   81.55 | ...1100,1108-1112 
  ...matCommand.ts |   26.66 |      100 |       0 |   26.66 | 33-92             
  ...keyCommand.ts |   98.88 |     92.3 |     100 |   98.88 | 34                
  ...ileCommand.ts |    99.1 |    94.11 |     100 |    99.1 | 36                
  toolsCommand.ts  |   86.56 |    76.47 |     100 |   86.56 | ...61,296,327-328 
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...ileCommand.ts |   27.77 |        0 |       0 |   27.77 | 11-23             
  vimCommand.ts    |   44.44 |      100 |       0 |   44.44 | 15-25             
 ...ommands/schema |   96.27 |    92.99 |    92.3 |   96.27 |                   
  index.ts         |   96.49 |    93.58 |     100 |   96.49 | ...16-420,431-432 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/ui/components |   11.79 |    39.31 |    7.72 |   11.79 |                   
  AboutBox.tsx     |   12.19 |      100 |       0 |   12.19 | ...,76-98,102-130 
  AnsiOutput.tsx   |    8.33 |      100 |       0 |    8.33 | 25-90             
  AppHeader.tsx    |   21.87 |      100 |       0 |   21.87 | 26-56             
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  AuthDialog.tsx   |    6.93 |      100 |       0 |    6.93 | ...15-134,138-224 
  ...nProgress.tsx |       0 |        0 |       0 |       0 | 1-63              
  ...Indicator.tsx |   15.15 |      100 |       0 |   15.15 | 17-47             
  ...firmation.tsx |   15.38 |      100 |       0 |   15.38 | 59-134,143-208    
  ...tsDisplay.tsx |   10.37 |      100 |       0 |   10.37 | ...64-104,108-162 
  CliSpinner.tsx   |       0 |        0 |       0 |       0 | 1-22              
  Composer.tsx     |    7.14 |      100 |       0 |    7.14 | 16-29,42-97       
  ...entPrompt.tsx |   18.75 |      100 |       0 |   18.75 | 21-51             
  ...ryDisplay.tsx |   21.05 |      100 |       0 |   21.05 | 17-35             
  ...ryDisplay.tsx |    4.65 |      100 |       0 |    4.65 | 29-107,110-174    
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-37              
  ...gProfiler.tsx |   16.86 |      100 |       0 |   16.86 | ...73-118,122-224 
  ...esDisplay.tsx |   10.52 |      100 |       0 |   10.52 | 24-82             
  ...ogManager.tsx |    5.54 |      100 |       0 |    5.54 | 71-782,786-810    
  ...ngsDialog.tsx |   12.56 |      100 |       0 |   12.56 | ...48-172,176-247 
  ...rBoundary.tsx |   10.16 |      100 |       0 |   10.16 | ...19-164,182-195 
  ...ustDialog.tsx |   16.34 |      100 |       0 |   16.34 | ...2,70-81,84-143 
  Footer.tsx       |   11.06 |        0 |       0 |   11.06 | ...24-693,698-715 
  ...ngSpinner.tsx |    40.9 |      100 |       0 |    40.9 | 31-47             
  Header.tsx       |    17.5 |      100 |       0 |    17.5 | 22-62             
  Help.tsx         |    6.84 |      100 |       0 |    6.84 | ...87-190,194-206 
  ...emDisplay.tsx |   12.01 |      100 |       0 |   12.01 | 55-239,242-280    
  ...usDisplay.tsx |       0 |        0 |       0 |       0 | 1-47              
  InputPrompt.tsx  |   53.31 |     42.1 |   67.34 |   53.31 | ...1639-1644,1662 
  ...tsDisplay.tsx |    4.36 |      100 |       0 |    4.36 | ...26-220,223-286 
  ...utManager.tsx |       0 |        0 |       0 |       0 | 1-99              
  ...ileDialog.tsx |    8.33 |      100 |       0 |    8.33 | ...8,72-81,85-152 
  ...Indicator.tsx |   13.84 |      100 |       0 |   13.84 | 20-24,34-96       
  ...ingDialog.tsx |    4.92 |      100 |       0 |    4.92 | ...65-382,386-435 
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-41              
  ModelDialog.tsx  |     3.6 |      100 |       0 |     3.6 | ...66-739,743-829 
  ...tsDisplay.tsx |    3.82 |      100 |       0 |    3.82 | 32-205,208-259    
  ...fications.tsx |   16.66 |      100 |       0 |   16.66 | ...10-141,144-179 
  ...odeDialog.tsx |     7.4 |      100 |       0 |     7.4 | 32-141            
  ...ustDialog.tsx |    5.53 |      100 |       0 |    5.53 | ...36-273,278-313 
  PrepareLabel.tsx |   13.33 |      100 |       0 |   13.33 | 20-48             
  ...ailDialog.tsx |   14.15 |      100 |       0 |   14.15 | ...53-359,363-436 
  ...ineEditor.tsx |    4.15 |      100 |       0 |    4.15 | ...68-554,557-632 
  ...istDialog.tsx |     4.6 |      100 |       0 |     4.6 | ...88-525,528-614 
  ...derDialog.tsx |    2.63 |      100 |       0 |    2.63 | 60-408,411-426    
  ...Indicator.tsx |       0 |        0 |       0 |       0 | 1-21              
  ...eKeyInput.tsx |       0 |        0 |       0 |       0 | 1-149             
  ...serDialog.tsx |    9.56 |      100 |       0 |    9.56 | ...52-603,611-670 
  ...ryDisplay.tsx |      50 |      100 |       0 |      50 | 15-17             
  ...ngsDialog.tsx |    1.05 |      100 |       0 |    1.05 | ...1703,1708-2765 
  ...putPrompt.tsx |   14.28 |      100 |       0 |   14.28 | 19-58             
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |   30.43 |      100 |       0 |   30.43 | 18-38             
  StatsDisplay.tsx |    8.98 |      100 |       0 |    8.98 | ...40-445,449-500 
  ...usDisplay.tsx |       0 |        0 |       0 |       0 | 1-59              
  StickyHeader.tsx |    7.14 |      100 |       0 |    7.14 | 20-78             
  ...nsDisplay.tsx |    5.83 |      100 |       0 |    5.83 | 39-91,105-181     
  Table.tsx        |    7.54 |      100 |       0 |    7.54 | 27-89             
  ThemeDialog.tsx  |    3.96 |      100 |       0 |    3.96 | 51-441,444-500    
  ...dGradient.tsx |      25 |      100 |       0 |      25 | 27-46             
  Tips.tsx         |      16 |      100 |       0 |      16 | 17-45             
  TodoPanel.tsx    |     5.9 |      100 |       0 |     5.9 | ...87-244,247-296 
  ...tsDisplay.tsx |   10.05 |      100 |       0 |   10.05 | ...88-227,230-259 
  ToolsDialog.tsx  |   10.63 |      100 |       0 |   10.63 | ...5,41-47,50-123 
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...ionDialog.tsx |    6.08 |      100 |       0 |    6.08 | 18-104,110-161    
  todo-utils.ts    |       0 |        0 |       0 |       0 | 1-7               
 ...leCreateWizard |   18.43 |       50 |       0 |   18.43 |                   
  ...aramsStep.tsx |   11.34 |      100 |       0 |   11.34 | ...34-247,259-343 
  ...ationStep.tsx |    7.12 |      100 |       0 |    7.12 | ...08-544,556-624 
  ...onfigStep.tsx |   12.35 |      100 |       0 |   12.35 | 19-25,36-117      
  ...electStep.tsx |    9.73 |      100 |       0 |    9.73 | ...13-280,296-341 
  ...ationMenu.tsx |       0 |        0 |       0 |       0 | 1-102             
  ...eSaveStep.tsx |    7.45 |      100 |       0 |    7.45 | ...76-305,317-396 
  ...ssSummary.tsx |   12.12 |      100 |       0 |   12.12 | 23-88             
  ...electStep.tsx |   16.92 |      100 |       0 |   16.92 | 28-97             
  TextInput.tsx    |    6.56 |      100 |       0 |    6.56 | ...01-111,119-202 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.tsx        |   14.51 |      100 |       0 |   14.51 | ...94-223,232-316 
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |    5.15 |      100 |       0 |    5.15 | ...53-356,361-378 
  validation.ts    |   11.23 |      100 |       0 |   11.23 | ...97-104,107-111 
 ...gentManagement |    4.22 |      100 |       0 |    4.22 |                   
  ...entWizard.tsx |    2.91 |      100 |       0 |    2.91 | 30-232,237-312    
  ...ionWizard.tsx |    1.44 |      100 |       0 |    1.44 | 30-592,595-676    
  ...eteDialog.tsx |    5.88 |      100 |       0 |    5.88 | 14-94,104-147     
  ...tEditForm.tsx |    1.77 |      100 |       0 |    1.77 | 30-619,622-640    
  ...tListMenu.tsx |    2.94 |      100 |       0 |    2.94 | 17-266,269-350    
  ...tMainMenu.tsx |   16.66 |      100 |       0 |   16.66 | 22-62             
  ...gerDialog.tsx |    2.39 |      100 |       0 |    2.39 | 31-603,606-682    
  ...tShowView.tsx |    4.76 |      100 |       0 |    4.76 | 25-183,186-243    
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...comeOnboarding |   14.36 |        0 |       0 |   14.36 |                   
  ...ethodStep.tsx |   22.47 |      100 |       0 |   22.47 | 44-129            
  ...ationStep.tsx |    7.35 |      100 |       0 |    7.35 | ...1,59-95,98-177 
  ...etionStep.tsx |    9.84 |      100 |       0 |    9.84 | ...,89-99,103-179 
  ...electStep.tsx |   12.12 |      100 |       0 |   12.12 | ...3,67-75,79-143 
  ...electStep.tsx |   34.48 |      100 |       0 |   34.48 | 51-120            
  SkipExitStep.tsx |    12.5 |      100 |       0 |    12.5 | 18-59             
  ...omeDialog.tsx |   11.76 |      100 |       0 |   11.76 | 51-118,121-166    
  WelcomeStep.tsx  |    10.2 |      100 |       0 |    10.2 | 23-74             
  index.ts         |       0 |        0 |       0 |       0 | 1-13              
 ...nents/messages |   18.76 |    88.63 |   13.43 |   18.76 |                   
  ...onMessage.tsx |   12.28 |      100 |       0 |   12.28 | 24-86             
  DiffRenderer.tsx |    3.33 |      100 |       0 |    3.33 | ...76-407,410-428 
  ErrorMessage.tsx |   22.22 |      100 |       0 |   22.22 | 16-31             
  ...niMessage.tsx |   14.51 |      100 |       0 |   14.51 | 28-95             
  ...geContent.tsx |   20.83 |      100 |       0 |   20.83 | 26-46             
  InfoMessage.tsx  |   19.23 |      100 |       0 |   19.23 | 19-41             
  ...rlMessage.tsx |   11.36 |      100 |       0 |   11.36 | 18-65             
  ...geMessage.tsx |     100 |      100 |     100 |     100 |                   
  ...ckDisplay.tsx |      20 |      100 |       0 |      20 | 43-64             
  ...onMessage.tsx |    3.18 |      100 |       0 |    3.18 | 40-524,537-616    
  ...upMessage.tsx |     7.5 |      100 |       0 |     7.5 | ...73-270,274-349 
  ToolMessage.tsx  |    4.45 |      100 |       0 |    4.45 | 40-335,351-421    
  ...ltDisplay.tsx |   91.53 |    85.71 |     100 |   91.53 | 39-53,222-224     
  ToolShared.tsx   |   64.61 |       90 |   33.33 |   64.61 | 78-99,102-105     
  UserMessage.tsx  |     100 |      100 |     100 |     100 |                   
  ...llMessage.tsx |   36.36 |      100 |       0 |   36.36 | 17-25             
  ...ngMessage.tsx |   26.31 |      100 |       0 |   26.31 | 17-32             
 ...ponents/shared |   41.16 |    63.55 |   40.25 |   41.16 |                   
  ...ctionList.tsx |    4.31 |      100 |       0 |    4.31 | 36-123,128-206    
  MaxSizedBox.tsx  |   49.89 |     58.1 |      75 |   49.89 | ...63-666,670-673 
  ...tonSelect.tsx |   12.76 |      100 |       0 |   12.76 | 66-113            
  ...lableList.tsx |    5.15 |      100 |       0 |    5.15 | 40-267            
  ...ist.hooks.tsx |    3.84 |      100 |       0 |    3.84 | ...68-793,796-833 
  ...lizedList.tsx |   11.11 |      100 |       0 |   11.11 | 28-108            
  ...List.types.ts |     100 |      100 |     100 |     100 |                   
  ...operations.ts |   75.54 |    48.14 |     100 |   75.54 | ...32-233,256-265 
  ...er-reducer.ts |   28.25 |    51.11 |   33.33 |   28.25 | ...30,632,644,687 
  buffer-types.ts  |     100 |      100 |     100 |     100 |                   
  text-buffer.ts   |   71.75 |    89.18 |   27.86 |   71.75 | ...35-637,656-662 
  ...formations.ts |   42.42 |    71.42 |      80 |   42.42 | ...28-135,159-205 
  ...n-handlers.ts |   33.99 |    61.53 |   23.25 |   33.99 | ...47-755,758-762 
  ...er-actions.ts |   93.84 |     87.5 |     100 |   93.84 | 91-93,100         
  visual-layout.ts |    90.2 |    71.73 |     100 |    90.2 | ...48-350,372-373 
  ...navigation.ts |   53.01 |    60.93 |   73.68 |   53.01 | ...40-361,384-406 
 ...mponents/views |    8.89 |      100 |       0 |    8.89 |                   
  ChatList.tsx     |    14.7 |      100 |       0 |    14.7 | 18-53             
  ...sionsList.tsx |    7.59 |      100 |       0 |    7.59 | 19-103            
  HooksList.tsx    |    10.1 |      100 |       0 |    10.1 | ...15-126,129-144 
  SkillsList.tsx   |    5.79 |      100 |       0 |    5.79 | 18-103            
 src/ui/constants  |   55.78 |     90.9 |      50 |   55.78 |                   
  ...ollections.ts |     100 |      100 |     100 |     100 |                   
  tips.ts          |       0 |        0 |       0 |       0 | 1-164             
 src/ui/containers |       0 |        0 |       0 |       0 |                   
  ...ontroller.tsx |       0 |        0 |       0 |       0 | 1-351             
  UIStateShell.tsx |       0 |        0 |       0 |       0 | 1-15              
 ...ainer/builders |   98.37 |      100 |   83.33 |   98.37 |                   
  ...dUIActions.ts |     100 |      100 |     100 |     100 |                   
  buildUIState.ts  |     100 |      100 |     100 |     100 |                   
  ...onsBuilder.ts |   66.66 |      100 |       0 |   66.66 | 21-22             
  ...ateBuilder.ts |   66.66 |      100 |       0 |   66.66 | 21-22             
 ...ontainer/hooks |   53.02 |    83.96 |   52.43 |   53.02 |                   
  ...pBootstrap.ts |   94.71 |    58.33 |     100 |   94.71 | ...20-223,227-229 
  useAppDialogs.ts |   41.06 |      100 |   42.85 |   41.06 | ...58,175-381,399 
  ...ntHandlers.ts |     100 |      100 |     100 |     100 |                   
  useAppInput.ts   |    5.58 |      100 |       0 |    5.58 | 100-519,522-526   
  useAppLayout.ts  |       8 |      100 |       0 |       8 | 91-296,299-302    
  ...reenAction.ts |   13.63 |      100 |       0 |   13.63 | 23-42             
  ...nSelection.ts |      20 |      100 |       0 |      20 | 27-48             
  ...hestration.ts |     100 |      100 |     100 |     100 |                   
  ...references.ts |      10 |      100 |       0 |      10 | 51-104            
  ...itHandling.ts |   89.79 |      100 |     100 |   89.79 | 131-139,143       
  ...textBridge.ts |   33.33 |      100 |       0 |   33.33 | 23-30             
  ...tartHotkey.ts |   26.66 |      100 |       0 |   26.66 | 23-33             
  ...omptSubmit.ts |     100 |      100 |     100 |     100 |                   
  ...utHandling.ts |   90.32 |    86.66 |     100 |   90.32 | 59,106-113        
  ...yBootstrap.ts |      30 |      100 |       0 |      30 | 28-34             
  ...eybindings.ts |   85.88 |       72 |     100 |   85.88 | ...06-208,247-248 
  ...easurement.ts |   15.38 |      100 |       0 |   15.38 | 45-95             
  ...reshAction.ts |   79.16 |     37.5 |     100 |   79.16 | 51,82-85,87-96    
  ...untimeSync.ts |     100 |      100 |     100 |     100 |                   
  ...elTracking.ts |   22.41 |      100 |      50 |   22.41 | 20-24,53-106      
  ...laceholder.ts |      15 |      100 |       0 |      15 | 13-18,21-34       
  ...rorTimeout.ts |   17.64 |      100 |       0 |   17.64 | 24-39             
  ...astructure.ts |   73.91 |      100 |      20 |   73.91 | 53,57,61,75-83    
  ...ebugLogger.ts |   17.24 |      100 |       0 |   17.24 | 23-51             
  ...ialization.ts |   70.45 |    84.61 |   66.66 |   70.45 | ...,72-94,127-128 
  ...sAutoReset.ts |   21.87 |      100 |       0 |   21.87 | 28-54             
  ...andActions.ts |     100 |      100 |     100 |     100 |                   
  ...eshManager.ts |     100 |      100 |     100 |     100 |                   
  ...uationFlow.ts |    7.93 |      100 |       0 |    7.93 | 54-150            
  ...csTracking.ts |    95.8 |    80.64 |     100 |    95.8 | ...32-133,184-185 
  ...uthBridges.ts |   36.84 |      100 |     100 |   36.84 | 47-70,74-78       
 src/ui/contexts   |   52.56 |    79.68 |   50.56 |   52.56 |                   
  ...chContext.tsx |    64.7 |      100 |      50 |    64.7 | 25-30             
  FocusContext.tsx |       0 |        0 |       0 |       0 | 1-11              
  ...ssContext.tsx |   83.75 |    86.62 |    87.5 |   83.75 | ...19-522,575-576 
  MouseContext.tsx |   78.82 |       75 |      80 |   78.82 | ...00-101,111-117 
  ...erContext.tsx |       0 |        0 |       0 |       0 | 1-121             
  ...owContext.tsx |   21.42 |      100 |   33.33 |   21.42 | 34,40-88          
  ...meContext.tsx |   52.34 |       40 |   57.14 |   52.34 | ...95-196,201-202 
  ...lProvider.tsx |   92.05 |    73.84 |     100 |   92.05 | ...85-486,498-499 
  ...onContext.tsx |     4.4 |      100 |       0 |     4.4 | ...40-395,400-407 
  ...teContext.tsx |       0 |        0 |       0 |       0 | 1-57              
  ...gsContext.tsx |      50 |      100 |       0 |      50 | 15-20             
  ...ngContext.tsx |   42.85 |      100 |       0 |   42.85 | 15-22             
  TodoContext.tsx  |   54.54 |      100 |       0 |   54.54 | 28-31,33-36,39-40 
  TodoProvider.tsx |    3.37 |      100 |       0 |    3.37 | 27-167,170-200    
  ...llContext.tsx |     100 |      100 |       0 |     100 |                   
  ...lProvider.tsx |    6.75 |      100 |       0 |    6.75 | 24-118            
  ...nsContext.tsx |      25 |      100 |       0 |      25 | 203-214,217-222   
  ...teContext.tsx |      50 |       50 |      50 |      50 | 250-259,264-265   
  ...deContext.tsx |   11.11 |      100 |       0 |   11.11 | 30-82,85-90       
 src/ui/editors    |   98.18 |     87.5 |     100 |   98.18 |                   
  ...ngsManager.ts |   98.18 |     87.5 |     100 |   98.18 | 59                
 src/ui/hooks      |   66.53 |    86.61 |    71.8 |   66.53 |                   
  ...dProcessor.ts |    88.2 |    87.03 |   83.33 |    88.2 | ...73-175,236-248 
  ...sorHelpers.ts |    78.8 |     77.5 |   88.88 |    78.8 | ...22-823,851-857 
  ...etionUtils.ts |   53.36 |    88.23 |   64.28 |   53.36 | 57-207,335        
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  keyToAnsi.ts     |    3.92 |      100 |       0 |    3.92 | 21-79             
  ...etionUtils.ts |     100 |    66.66 |     100 |     100 | 49                
  ...dProcessor.ts |   96.25 |    79.45 |     100 |   96.25 | ...74-275,401-405 
  ...ndHandlers.ts |    1.45 |      100 |       0 |    1.45 | 77-660            
  ...dPathUtils.ts |    95.7 |    90.21 |     100 |    95.7 | ...25-227,271-272 
  ...dProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...sorSupport.ts |   69.12 |    69.56 |      70 |   69.12 | ...68-272,291-298 
  ...tionEffect.ts |   90.76 |     91.3 |   92.85 |   90.76 | ...04-405,418-419 
  ...etionTypes.ts |       0 |        0 |       0 |       0 | 1                 
  toolMapping.ts   |    90.5 |    95.23 |   92.85 |    90.5 | ...86-198,217-219 
  ...nateBuffer.ts |      50 |      100 |       0 |      50 | 16-18             
  ...dScrollbar.ts |   97.82 |      100 |     100 |   97.82 | 153-155           
  ...Completion.ts |   94.34 |    90.17 |     100 |   94.34 | ...60-461,464-465 
  ...uthCommand.ts |      16 |      100 |       0 |      16 | 13-36             
  ...tIndicator.ts |     100 |     92.3 |     100 |     100 | 57                
  useBanner.ts     |     100 |    83.33 |     100 |     100 | 22,48             
  ...chedScroll.ts |   16.66 |      100 |       0 |   16.66 | 14-32             
  ...ketedPaste.ts |      20 |      100 |       0 |      20 | 20-38             
  ...ompletion.tsx |   97.24 |    82.75 |    90.9 |   97.24 | ...04-206,209-210 
  useCompletion.ts |    92.4 |     87.5 |     100 |    92.4 | 68-69,93-94,98-99 
  ...leMessages.ts |   96.15 |       90 |     100 |   96.15 | 56-57,63          
  ...ntHandlers.ts |   31.25 |      100 |     100 |   31.25 | 43-70,74-82       
  ...fileDialog.ts |   16.12 |      100 |       0 |   16.12 | 17-47             
  ...orSettings.ts |   11.86 |      100 |       0 |   11.86 | 31-87             
  ...AutoUpdate.ts |    8.33 |      100 |       0 |    8.33 | 18-64             
  ...ionUpdates.ts |   75.17 |    80.64 |   77.77 |   75.17 | ...60-261,289-303 
  ...erDetector.ts |     100 |      100 |     100 |     100 |                   
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |   87.09 |     91.3 |     100 |   87.09 | 50-63,135-136     
  ...BranchName.ts |     100 |    89.47 |     100 |     100 | 60,63             
  ...oryManager.ts |   96.61 |    93.18 |     100 |   96.61 | ...70-171,214-215 
  ...splayState.ts |     100 |      100 |     100 |     100 |                   
  ...stListener.ts |   12.12 |      100 |       0 |   12.12 | 17-50             
  ...ivityTimer.ts |   76.19 |    66.66 |     100 |   76.19 | 30-35             
  ...putHistory.ts |    92.5 |    85.71 |     100 |    92.5 | 62-63,71,93-95    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 67                
  useKeypress.ts   |   22.22 |      100 |       0 |   22.22 | 21-36             
  ...rdProtocol.ts |       0 |        0 |       0 |       0 | 1-26              
  ...fileDialog.ts |     5.3 |      100 |       0 |     5.3 | 26-72,75-148      
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |   93.75 |      100 |     100 |   93.75 | 27                
  useMcpStatus.ts  |   90.47 |    66.66 |     100 |   90.47 | 19,33-35          
  ...oryMonitor.ts |     100 |      100 |     100 |     100 |                   
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  useMouse.ts      |   77.77 |    66.66 |     100 |   77.77 | 31-34             
  useMouseClick.ts |     100 |      100 |     100 |     100 |                   
  ...eSelection.ts |     2.2 |      100 |       0 |     2.2 | 36-367,370-416    
  ...hestration.ts |     100 |      100 |     100 |     100 |                   
  ...oviderInfo.ts |       0 |        0 |       0 |       0 | 1-80              
  ...odifyTrust.ts |    9.09 |      100 |       0 |    9.09 | 43-134            
  ...raseCycler.ts |   79.72 |    73.33 |     100 |   79.72 | ...69,75-76,92-94 
  ...cySettings.ts |   86.72 |    83.33 |     100 |   86.72 | ...,95-99,127-138 
  ...Management.ts |    1.36 |      100 |       0 |    1.36 | 23-569,572-664    
  ...Completion.ts |   42.85 |    55.55 |      50 |   42.85 | ...89-302,333-342 
  ...iderDialog.ts |    5.66 |      100 |       0 |    5.66 | 45-83,86-158      
  ...lScheduler.ts |      78 |    80.88 |   75.86 |      78 | ...63,595,611-627 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  useResponsive.ts |     100 |      100 |     100 |     100 |                   
  ...ompletion.tsx |   69.56 |      100 |     100 |   69.56 | 45-47,51-66,78-81 
  useRewind.ts     |     100 |      100 |     100 |     100 |                   
  ...ectionList.ts |   89.78 |    88.88 |     100 |   89.78 | ...19-425,445-449 
  useSession.ts    |       0 |        0 |       0 |       0 | 1-23              
  ...ionBrowser.ts |     100 |      100 |     100 |     100 |                   
  ...serHelpers.ts |   95.79 |    85.21 |   97.36 |   95.79 | ...39-641,764-765 
  ...erKeypress.ts |   89.87 |    97.14 |   94.11 |   89.87 | 101-108,130-145   
  ...ngsCommand.ts |   18.75 |      100 |       0 |   18.75 | 10-25             
  ...ellHistory.ts |   91.96 |    78.78 |     100 |   91.96 | ...76,124-125,135 
  ...Completion.ts |   97.04 |    81.25 |     100 |   97.04 | 71-73,101-102     
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-63              
  ...cessorCore.ts |   73.63 |    66.66 |     100 |   73.63 | 112,148,168-195   
  ...ompletion.tsx |   96.73 |    81.39 |     100 |   96.73 | ...,92-93,335-343 
  ...leCallback.ts |     100 |      100 |     100 |     100 |                   
  ...tateAndRef.ts |   59.09 |      100 |     100 |   59.09 | 23-31             
  ...oryRefresh.ts |     100 |      100 |     100 |     100 |                   
  ...rminalSize.ts |   10.34 |      100 |       0 |   10.34 | 15-44,49-85       
  ...emeCommand.ts |    4.29 |      100 |       0 |    4.29 | 25-122,125-199    
  useTimer.ts      |    87.5 |    85.71 |     100 |    87.5 | 44-45,50-52       
  ...ntinuation.ts |    91.5 |     92.1 |     100 |    91.5 | ...20-121,139-147 
  ...ePreserver.ts |   57.14 |      100 |      80 |   57.14 | 58-76             
  ...oolsDialog.ts |    3.44 |      100 |       0 |    3.44 | 23-106,109-193    
  ...Onboarding.ts |    1.93 |      100 |       0 |    1.93 | 77-400,403-484    
  ...eMigration.ts |   11.66 |      100 |       0 |   11.66 | 15-74             
  vim.ts           |   85.73 |    87.17 |    90.9 |   85.73 | ...09-718,834-836 
 ...s/geminiStream |   84.93 |    76.69 |   92.15 |   84.93 |                   
  ...ersistence.ts |   98.29 |    95.12 |     100 |   98.29 | 162-164           
  ...tProcessor.ts |   77.85 |    70.83 |      80 |   77.85 | ...48-159,162-164 
  index.ts         |     100 |      100 |     100 |     100 |                   
  queryPreparer.ts |   63.15 |    18.18 |     100 |   63.15 | ...26-127,130-143 
  ...Dispatcher.ts |   80.97 |    54.54 |     100 |   80.97 | ...96,330,379-381 
  streamUtils.ts   |   98.96 |       95 |     100 |   98.96 | 368-370           
  thoughtState.ts  |   93.33 |    61.53 |     100 |   93.33 | 71-72,77-78       
  ...ionHandler.ts |   73.58 |    89.18 |     100 |   73.58 | ...99-306,340-346 
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...miniStream.ts |   99.33 |    88.23 |   85.71 |   99.33 | 87                
  ...mLifecycle.ts |   71.92 |    71.42 |   55.55 |   71.92 | ...21-231,248-253 
  ...hestration.ts |    99.5 |    88.88 |     100 |    99.5 | 209               
  ...ntHandlers.ts |   78.78 |     82.6 |     100 |   78.78 | ...23-524,526-533 
  ...treamState.ts |   79.28 |    52.17 |     100 |   79.28 | ...77,198,233-234 
  ...ubmitQuery.ts |   89.33 |    63.46 |   81.81 |   89.33 | ...44,382,449-451 
 src/ui/layouts    |   84.53 |    56.14 |   82.75 |   84.53 |                   
  ...AppLayout.tsx |   81.49 |    71.42 |   83.33 |   81.49 | ...88-202,317-353 
  ...utHelpers.tsx |   85.95 |       54 |    82.6 |   85.95 | ...87-788,809-837 
 ...noninteractive |      75 |      100 |    6.66 |      75 |                   
  ...eractiveUi.ts |      75 |      100 |    6.66 |      75 | 17-19,23-24,27-28 
 src/ui/privacy    |   19.41 |        0 |       0 |   19.41 |                   
  ...acyNotice.tsx |       0 |        0 |       0 |       0 | 1-139             
  ...acyNotice.tsx |       0 |        0 |       0 |       0 | 1-59              
  ...acyNotice.tsx |   12.19 |      100 |       0 |   12.19 | 16-62             
  ...acyNotice.tsx |   35.42 |      100 |       0 |   35.42 | 77-172,180-235    
  ...acyNotice.tsx |   19.35 |      100 |       0 |   19.35 | 21-52,55-57       
 src/ui/reducers   |   78.44 |     90.9 |      50 |   78.44 |                   
  appReducer.ts    |     100 |      100 |     100 |     100 |                   
  ...ionReducer.ts |       0 |        0 |       0 |       0 | 1-52              
 src/ui/state      |   54.34 |    30.76 |     100 |   54.34 |                   
  extensions.ts    |   54.34 |    30.76 |     100 |   54.34 | ...30,132-144,146 
 src/ui/themes     |   99.03 |    84.74 |   97.22 |   99.03 |                   
  ansi-light.ts    |     100 |      100 |     100 |     100 |                   
  ansi.ts          |     100 |      100 |     100 |     100 |                   
  atom-one-dark.ts |     100 |      100 |     100 |     100 |                   
  ayu-light.ts     |     100 |      100 |     100 |     100 |                   
  ayu.ts           |     100 |      100 |     100 |     100 |                   
  color-utils.ts   |     100 |      100 |     100 |     100 |                   
  default-light.ts |     100 |      100 |     100 |     100 |                   
  default.ts       |     100 |      100 |     100 |     100 |                   
  dracula.ts       |     100 |      100 |     100 |     100 |                   
  github-dark.ts   |     100 |      100 |     100 |     100 |                   
  github-light.ts  |     100 |      100 |     100 |     100 |                   
  googlecode.ts    |     100 |      100 |     100 |     100 |                   
  green-screen.ts  |     100 |      100 |     100 |     100 |                   
  no-color.ts      |     100 |      100 |     100 |     100 |                   
  ...c-resolver.ts |     100 |      100 |     100 |     100 |                   
  ...tic-tokens.ts |     100 |      100 |     100 |     100 |                   
  ...-of-purple.ts |     100 |      100 |     100 |     100 |                   
  theme-compat.ts  |     100 |       50 |     100 |     100 | 79                
  theme-manager.ts |   88.55 |    82.81 |     100 |   88.55 | ...03-312,317-318 
  theme.ts         |   98.96 |       80 |    90.9 |   98.96 | 284-285,642-643   
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/types      |       0 |        0 |       0 |       0 |                   
  ...ngMetadata.ts |       0 |        0 |       0 |       0 |                   
 src/ui/utils      |    53.6 |    86.94 |   66.22 |    53.6 |                   
  ...Colorizer.tsx |    5.64 |      100 |       0 |    5.64 | ...27-168,180-249 
  ...olePatcher.ts |   72.09 |      100 |   83.33 |   72.09 | 51-62             
  ...nRenderer.tsx |   10.77 |      100 |      10 |   10.77 | 28-210,213-278    
  ...wnDisplay.tsx |     3.4 |      100 |       0 |     3.4 | ...06-731,742-746 
  ...eRenderer.tsx |   10.46 |      100 |       0 |   10.46 | ...29-380,387-420 
  ...tGenerator.ts |   76.13 |    53.84 |      60 |   76.13 | ...63,69-72,84-85 
  ...ketedPaste.ts |      60 |      100 |       0 |      60 | 13-14,17-18       
  clipboard.ts     |   97.29 |    84.61 |     100 |   97.29 | 40                
  ...boardUtils.ts |   63.09 |    76.74 |   83.33 |   63.09 | ...52-264,334-336 
  commandUtils.ts  |   93.08 |     95.4 |   95.83 |   93.08 | ...36-240,321-329 
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  displayUtils.ts  |     100 |      100 |     100 |     100 |                   
  formatters.ts    |   90.47 |    95.23 |     100 |   90.47 | 57-60             
  fuzzyFilter.ts   |     100 |    96.55 |     100 |     100 | 84                
  highlight.ts     |   77.51 |    97.29 |      60 |   77.51 | 145-171,175-180   
  ...xportUtils.ts |   98.03 |    91.66 |     100 |   98.03 | 113-114           
  ...storyItems.ts |   99.04 |    94.44 |     100 |   99.04 | 72                
  input.ts         |   64.51 |    85.71 |   33.33 |   64.51 | 20-27,53-60       
  isNarrowWidth.ts |      50 |      100 |       0 |      50 | 13-14             
  ...nUtilities.ts |   66.66 |     87.5 |     100 |   66.66 | 75-94,103-104     
  mouse.ts         |   83.51 |    71.92 |     100 |   83.51 | ...01,208,221-222 
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  ...opDetector.ts |       0 |        0 |       0 |       0 | 1-210             
  responsive.ts    |    69.9 |    73.33 |      80 |    69.9 | ...99-107,110-125 
  rewindFileOps.ts |   91.84 |    66.66 |     100 |   91.84 | ...15-218,262-266 
  ...putHandler.ts |   83.21 |    86.79 |     100 |   83.21 | ...32-141,235-236 
  ...ityManager.ts |    94.8 |    85.71 |    90.9 |    94.8 | ...24,348,376,387 
  ...alContract.ts |     100 |      100 |     100 |     100 |                   
  terminalLinks.ts |     100 |      100 |     100 |     100 |                   
  ...colCleanup.ts |   95.45 |       75 |     100 |   95.45 | 39                
  ...lSequences.ts |     100 |      100 |     100 |     100 |                   
  terminalSetup.ts |    3.69 |      100 |       0 |    3.69 | 44-398            
  textUtils.ts     |   95.27 |    92.15 |   88.88 |   95.27 | 20-25             
  ...Formatters.ts |       0 |        0 |       0 |       0 | 1-50              
  ...icsTracker.ts |     100 |    94.44 |     100 |     100 | 38                
  ui-sizing.ts     |      16 |      100 |       0 |      16 | 11-23,26-36       
  updateCheck.ts   |     100 |    94.11 |     100 |     100 | 34,45             
 src/utils         |   60.08 |    88.75 |   73.68 |   60.08 |                   
  ...ionContext.ts |   76.92 |       75 |     100 |   76.92 | 38-41,63-66,81-84 
  bootstrap.ts     |   97.43 |    95.65 |     100 |   97.43 | 76-77             
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  cleanup.ts       |   67.21 |       80 |      60 |   67.21 | ...69-71,74,88-97 
  commands.ts      |      50 |    63.63 |     100 |      50 | 25-26,45,57-85    
  commentJson.ts   |    92.3 |     92.5 |     100 |    92.3 | 94-102            
  ...ScopeUtils.ts |   27.58 |      100 |       0 |   27.58 | 24-41,58-86       
  ...icSettings.ts |   92.48 |     92.1 |     100 |   92.48 | 54-55,60-63,66-69 
  ...arResolver.ts |   96.66 |    96.29 |     100 |   96.66 | 116-117           
  errors.ts        |   94.36 |       88 |     100 |   94.36 | 50-51,86-87       
  events.ts        |     100 |      100 |     100 |     100 |                   
  ...lativeTime.ts |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   93.54 |       85 |     100 |   93.54 | 63-64,79-82       
  ...AutoUpdate.ts |   69.25 |    80.76 |   77.77 |   69.25 | ...65-266,280-345 
  ...lationInfo.ts |   99.49 |     98.3 |     100 |   99.49 | 61                
  math.ts          |   66.66 |      100 |       0 |   66.66 | 15                
  ...stentState.ts |   95.23 |    84.21 |     100 |   95.23 | 41,62-63          
  readStdin.ts     |   81.03 |    91.66 |   83.33 |   81.03 | 32-39,51-53       
  relaunch.ts      |     100 |      100 |     100 |     100 |                   
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  sandbox.ts       |   27.99 |    88.13 |   41.89 |   27.99 | ...0-961,979-2425 
  ...ionCleanup.ts |   86.59 |       84 |     100 |   86.59 | ...51-252,335-336 
  sessionUtils.ts  |     8.1 |      100 |       0 |     8.1 | 51-118,125-139    
  settingsUtils.ts |   84.42 |    90.72 |   93.93 |   84.42 | ...31-459,498-499 
  ...ttingSaver.ts |    1.92 |      100 |       0 |    1.92 | 11-32,40-85       
  skillSettings.ts |   86.13 |       88 |     100 |   86.13 | 99-107,134-138    
  skillUtils.ts    |   64.28 |    63.33 |   83.33 |   64.28 | ...98-199,206-227 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  stdinSafety.ts   |   91.39 |    86.48 |     100 |   91.39 | ...66-167,170,245 
  terminalTheme.ts |     100 |      100 |     100 |     100 |                   
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  version.ts       |     100 |      100 |     100 |     100 |                   
  windowTitle.ts   |     100 |      100 |     100 |     100 |                   
 src/utils/privacy |   46.91 |    69.44 |      55 |   46.91 |                   
  ...taRedactor.ts |   60.96 |    71.42 |   57.89 |   60.96 | ...25-527,533-554 
  ...acyManager.ts |       0 |        0 |       0 |       0 | 1-176             
 ...ed-integration |    8.31 |     92.3 |   10.52 |    8.31 |                   
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |    6.63 |     87.5 |    5.55 |    6.63 | ...2031,2046-2116 
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   80.02 |    82.34 |   80.33 |   80.02 |                   
 src               |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/__mocks__/fs  |       0 |        0 |       0 |       0 |                   
  promises.ts      |       0 |        0 |       0 |       0 | 1-48              
 src/adapters      |     100 |      100 |     100 |     100 |                   
  ...eamAdapter.ts |     100 |      100 |     100 |     100 |                   
 src/agents        |   91.96 |    76.55 |     100 |   91.96 |                   
  ...pt-builder.ts |   76.66 |      100 |     100 |   76.66 | 51-57             
  ...ermination.ts |     100 |      100 |     100 |     100 |                   
  ...validation.ts |     100 |      100 |     100 |     100 |                   
  executor.ts      |   91.73 |     74.1 |     100 |   91.73 | ...07-911,954-955 
  invocation.ts    |   96.55 |    76.47 |     100 |   96.55 | 61,65-66          
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |   78.94 |       80 |     100 |   78.94 | 33-36             
 src/auth          |    70.3 |    83.12 |   81.88 |    70.3 |                   
  ...evice-flow.ts |     7.1 |        0 |       0 |     7.1 | ...46-265,271-283 
  ...e-resolver.ts |   85.38 |    86.27 |   93.18 |   85.38 | ...12,652,657-660 
  ...evice-flow.ts |   49.22 |     62.5 |   69.23 |   49.22 | ...39-529,539-629 
  ...oken-store.ts |   89.59 |    87.96 |     100 |   89.59 | ...24-427,448-454 
  oauth-errors.ts  |   94.15 |    83.33 |     100 |   94.15 | ...73,614,640-641 
  precedence.ts    |   78.29 |    74.35 |   89.47 |   78.29 | ...84-485,491-497 
  ...evice-flow.ts |    8.02 |      100 |       0 |    8.02 | ...70-212,220-226 
  token-merge.ts   |     100 |      100 |     100 |     100 |                   
  ...nitization.ts |     100 |      100 |     100 |     100 |                   
  token-store.ts   |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/auth/proxy    |   89.92 |    84.34 |   86.53 |   89.92 |                   
  framing.ts       |    97.1 |    90.47 |     100 |    97.1 | 83-84             
  ...ey-storage.ts |   94.28 |       80 |     100 |   94.28 | 45-46             
  ...ket-client.ts |   85.71 |    86.53 |   79.16 |   85.71 | ...37-240,260-263 
  ...oken-store.ts |   93.02 |    77.77 |   84.61 |   93.02 | 106-110,114       
 src/code_assist   |   69.63 |    80.99 |   79.03 |   69.63 |                   
  codeAssist.ts    |   17.64 |       50 |   33.33 |   17.64 | 16-62,70-73,81-94 
  converter.ts     |   95.54 |    93.02 |     100 |   95.54 | 186-190,219-220   
  ...al-storage.ts |   97.39 |    76.31 |     100 |   97.39 | 78,105,134        
  oauth2.ts        |   65.16 |    79.59 |   81.81 |   65.16 | ...88-789,794-795 
  server.ts        |   48.16 |    72.72 |      50 |   48.16 | ...10-251,254-257 
  setup.ts         |   86.09 |    76.92 |     100 |   86.09 | ...60-162,187-193 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/commands      |     100 |      100 |     100 |     100 |                   
  extensions.ts    |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/config        |   73.31 |    79.84 |   63.33 |   73.31 |                   
  config.ts        |   68.22 |    71.96 |   64.86 |   68.22 | ...10-819,845-849 
  configBase.ts    |   67.46 |    72.72 |   72.72 |   67.46 | ...58-265,267-271 
  ...igBaseCore.ts |   71.25 |    94.36 |   47.85 |   71.25 | ...81-682,684-685 
  ...onstructor.ts |   96.37 |    88.52 |     100 |   96.37 | ...10-411,414-415 
  configTypes.ts   |      58 |      100 |      50 |      58 | 185-225           
  constants.ts     |     100 |      100 |     100 |     100 |                   
  endpoints.ts     |     100 |      100 |     100 |     100 |                   
  ...ngsHelpers.ts |   67.56 |       50 |     100 |   67.56 | ...26,30-31,35-36 
  index.ts         |       0 |        0 |       0 |       0 | 1-38              
  ...ntegration.ts |   61.25 |    73.46 |   68.75 |   61.25 | ...81,398,407,416 
  models.ts        |     100 |      100 |     100 |     100 |                   
  ...ileManager.ts |   95.48 |     88.6 |     100 |   95.48 | ...18-419,436-437 
  ...rSingleton.ts |    77.3 |    73.58 |   56.25 |    77.3 | ...89,392-395,403 
  storage.ts       |   90.17 |    87.09 |    93.1 |   90.17 | ...3,75-76,99-100 
  ...entManager.ts |   51.36 |     67.5 |   65.21 |   51.36 | ...94-695,713-737 
  ...tryFactory.ts |   84.89 |    82.75 |   58.33 |   84.89 | ...51-261,270-280 
  types.ts         |       0 |        0 |       0 |       0 |                   
 ...nfirmation-bus |   70.21 |     86.2 |      75 |   70.21 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-2               
  message-bus.ts   |   68.96 |    88.88 |   81.81 |   68.96 | ...14-248,257-265 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/core          |   81.67 |    78.48 |   78.94 |   81.67 |                   
  ...ookManager.ts |     100 |      100 |     100 |     100 |                   
  ...ionFactory.ts |      95 |    90.24 |     100 |      95 | ...88-291,347-349 
  ...ionManager.ts |   65.01 |    63.63 |   52.94 |   65.01 | ...32-440,447-451 
  ...eProcessor.ts |   62.69 |    39.39 |   77.77 |   62.69 | ...42-598,613-624 
  ...extTracker.ts |   93.62 |    88.73 |     100 |   93.62 | ...74-177,217-221 
  ...eConverter.ts |   59.23 |    73.49 |   59.09 |   59.23 | ...41-554,569-570 
  ...chestrator.ts |   83.36 |    71.65 |   81.81 |   83.36 | ...32-740,781-787 
  ...nalHandler.ts |   93.52 |    73.68 |   69.23 |   93.52 | ...49-150,153-154 
  ...mProcessor.ts |   81.82 |    76.96 |   79.06 |   81.82 | ...1074,1086-1109 
  ...ionService.ts |   91.95 |    91.81 |     100 |   91.95 | ...13,373,398-420 
  TurnProcessor.ts |   77.87 |    62.36 |   70.37 |   77.87 | ...05-706,708-757 
  baseLlmClient.ts |   95.23 |     90.9 |     100 |   95.23 | ...87-288,369-370 
  ...ntegration.ts |   96.66 |    96.07 |     100 |   96.66 | ...40-141,222-223 
  client.ts        |   62.64 |    83.09 |      68 |   62.64 | ...42-660,712-728 
  clientHelpers.ts |   90.17 |    83.87 |     100 |   90.17 | ...,88-89,113-116 
  ...mUtilities.ts |   96.77 |    70.58 |     100 |   96.77 | ...15-116,172-173 
  ...Governance.ts |   98.05 |    97.29 |     100 |   98.05 | 101-102           
  ...ion-config.ts |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |   97.22 |    90.47 |     100 |   97.22 | 106-107           
  ...okTriggers.ts |   77.19 |    65.85 |     100 |   77.19 | ...76-277,301-306 
  ...lScheduler.ts |   82.87 |    88.88 |   71.73 |   82.87 | ...42-746,760-761 
  geminiChat.ts    |   83.24 |    81.48 |      62 |   83.24 | ...87-488,519-520 
  ...iChatTypes.ts |   94.73 |      100 |      80 |   94.73 | 112-113           
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  ...nAIWrapper.ts |   88.88 |      100 |   83.33 |   88.88 | 58-61             
  ...okTriggers.ts |   96.21 |    89.13 |     100 |   96.21 | ...19,165,219,268 
  logger.ts        |   81.06 |    81.81 |     100 |   81.06 | ...70-385,432-446 
  ...olExecutor.ts |   63.88 |    63.63 |   57.14 |   63.88 | ...48-153,165-194 
  prompts.ts       |   87.21 |    64.93 |   94.73 |   87.21 | ...84-490,507,526 
  subagent.ts      |   76.03 |    66.14 |    92.3 |   76.03 | ...78-883,888-890 
  ...tExecution.ts |   60.51 |    82.75 |   70.58 |   60.51 | ...95,500,505-507 
  ...chestrator.ts |   89.09 |    78.78 |   93.33 |   89.09 | ...26,729-730,735 
  ...ntimeSetup.ts |   84.95 |    78.21 |   59.45 |   84.95 | ...94-598,633-641 
  ...tScheduler.ts |       0 |        0 |       0 |       0 | 1                 
  ...Processing.ts |   88.02 |    84.94 |     100 |   88.02 | ...93,497-525,532 
  subagentTypes.ts |     100 |      100 |     100 |     100 |                   
  tokenLimits.ts   |   85.22 |    69.49 |     100 |   85.22 | ...,96,98,102,112 
  ...Governance.ts |   94.44 |     90.9 |     100 |   94.44 | 34-35,51-52       
  turn.ts          |   95.95 |    85.71 |   88.88 |   95.95 | ...01-703,764-765 
  turnLogging.ts   |   75.29 |    66.66 |      80 |   75.29 | 35-58             
 ...re/compression |    84.8 |    85.05 |   87.37 |    84.8 |                   
  ...ionHandler.ts |   87.81 |    83.33 |      75 |   87.81 | ...37-838,846-847 
  ...tyStrategy.ts |   93.03 |    89.13 |   95.65 |   93.03 | ...1013-1014,1051 
  ...utStrategy.ts |   88.44 |    76.92 |     100 |   88.44 | ...33-444,447-456 
  ...otStrategy.ts |    81.9 |    75.67 |     100 |    81.9 | ...74-285,288-297 
  ...onStrategy.ts |     100 |      100 |     100 |     100 |                   
  ...nBudgeting.ts |    34.1 |       70 |   66.66 |    34.1 | ...12-119,122-175 
  ...egyFactory.ts |   90.62 |    88.88 |     100 |   90.62 | 52-54             
  index.ts         |       0 |        0 |       0 |       0 | 1-17              
  types.ts         |   99.03 |    91.42 |     100 |   99.03 | 239               
  utils.ts         |   72.46 |    87.91 |      90 |   72.46 | ...02-403,420-421 
 src/debug         |   78.41 |    87.89 |    87.3 |   78.41 |                   
  ...ionManager.ts |   77.43 |    76.19 |      85 |   77.43 | ...32-233,250-254 
  DebugLogger.ts   |   90.78 |    90.47 |   88.46 |   90.78 | ...79,223-228,271 
  FileOutput.ts    |      87 |       94 |   86.66 |      87 | ...32-138,164-165 
  ...ionManager.ts |       0 |      100 |     100 |       0 | 18-64             
  ...FileOutput.ts |       0 |      100 |     100 |       0 | 17-37             
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/filters       |   99.19 |    98.79 |     100 |   99.19 |                   
  EmojiFilter.ts   |   99.19 |    98.79 |     100 |   99.19 | 208-209           
 src/hooks         |    85.5 |    85.47 |   83.97 |    85.5 |                   
  errors.ts        |     100 |      100 |     100 |     100 |                   
  ...Aggregator.ts |    92.7 |    89.23 |    87.5 |    92.7 | ...36,355,357,359 
  ...sContracts.ts |       0 |        0 |       0 |       0 | 1                 
  ...entHandler.ts |   91.45 |     85.6 |   93.75 |   91.45 | ...55,795-801,846 
  hookPlanner.ts   |   98.79 |    93.33 |     100 |   98.79 | 103               
  hookRegistry.ts  |   98.25 |    89.23 |     100 |   98.25 | 353,355,357,359   
  hookRunner.ts    |   86.56 |    87.14 |   90.47 |   86.56 | ...38-439,503-506 
  hookSystem.ts    |   71.02 |    89.47 |      70 |   71.02 | ...49-351,364-366 
  ...Translator.ts |   94.87 |    64.44 |     100 |   94.87 | ...01-302,313,362 
  ...Validators.ts |    92.4 |    89.83 |     100 |    92.4 | 57-59,78-80       
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ssion-hook.ts |   88.88 |    33.33 |     100 |   88.88 | 24,30             
  trustedHooks.ts  |   20.77 |      100 |       0 |   20.77 | ...6,82-90,96-109 
  types.ts         |   66.53 |     85.1 |   70.83 |   66.53 | ...63-385,433-434 
 ...oks/test-utils |       0 |        0 |       0 |       0 |                   
  ...igWithHook.ts |       0 |        0 |       0 |       0 | 1-137             
 src/ide           |   73.82 |    86.24 |   73.07 |   73.82 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |     100 |      100 |     100 |     100 |                   
  ide-client.ts    |   56.37 |    79.66 |   54.83 |   56.37 | ...25-533,562-570 
  ide-installer.ts |   90.55 |    85.18 |     100 |   90.55 | ...38,146-150,163 
  ideContext.ts    |   84.82 |      100 |     100 |   84.82 | 89-106            
  process-utils.ts |   89.58 |    82.45 |     100 |   89.58 | ...81-182,223-224 
 src/interfaces    |       0 |        0 |       0 |       0 |                   
  index.ts         |       0 |        0 |       0 |       0 |                   
  ....interface.ts |       0 |        0 |       0 |       0 |                   
 src/lsp           |   71.89 |       75 |      88 |   71.89 |                   
  ...ice-client.ts |   71.89 |    74.73 |    87.5 |   71.89 | ...40,482-502,513 
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/mcp           |   80.64 |     79.4 |   74.25 |   80.64 |                   
  auth-provider.ts |       0 |        0 |       0 |       0 | 1                 
  ...oken-store.ts |   86.86 |    90.62 |   81.25 |   86.86 | ...51-352,355-356 
  ...h-provider.ts |    90.1 |      100 |      40 |    90.1 | ...98,102,106-107 
  ...ider-utils.ts |   51.85 |       40 |     100 |   51.85 | ...,71-97,112-121 
  ...h-provider.ts |   83.05 |    66.34 |      90 |   83.05 | ...52-853,901-904 
  ...en-storage.ts |   77.97 |       80 |   69.56 |   77.97 | ...21-222,227-228 
  oauth-utils.ts   |   72.52 |    84.44 |   92.85 |   72.52 | ...22-326,352-390 
  ...n-provider.ts |      88 |       95 |   33.33 |      88 | ...37,141,145-146 
  token-store.ts   |   85.07 |    82.14 |     100 |   85.07 | ...19,21-22,24-25 
 .../token-storage |   86.89 |    87.41 |   93.18 |   86.89 |                   
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   87.85 |    87.09 |   92.85 |   87.85 | ...62-170,178-179 
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   80.95 |    82.27 |   85.71 |   80.95 | ...77,279,332-333 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/models        |   83.46 |    92.41 |    87.5 |   83.46 |                   
  hydration.ts     |    4.76 |      100 |       0 |    4.76 | 65-131,153-233    
  index.ts         |     100 |      100 |     100 |     100 |                   
  profiles.ts      |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |   95.31 |    89.74 |     100 |   95.31 | ...35-136,199-200 
  registry.ts      |   90.58 |    88.88 |      92 |   90.58 | ...72-273,393-406 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  transformer.ts   |     100 |      100 |     100 |     100 |                   
 src/parsers       |   71.49 |     74.5 |   88.57 |   71.49 |                   
  ...CallParser.ts |   71.95 |    78.14 |    86.2 |   71.95 | ...5,982,988-1003 
  ...rser-utils.ts |   66.15 |    42.85 |     100 |   66.15 | ...59,67-68,72-77 
 src/policy        |    86.3 |    81.26 |   93.75 |    86.3 |                   
  config.ts        |   74.03 |    76.62 |      90 |   74.03 | ...03,560,643-644 
  index.ts         |     100 |      100 |     100 |     100 |                   
  policy-engine.ts |   97.73 |    90.36 |     100 |   97.73 | 121-124,182       
  ...cy-helpers.ts |     100 |      100 |     100 |     100 |                   
  ...-stringify.ts |   83.48 |    64.28 |   71.42 |   83.48 | ...59,173,187-188 
  toml-loader.ts   |   90.75 |    81.55 |     100 |   90.75 | ...70,572,629-633 
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |   81.81 |    86.66 |     100 |   81.81 | 25-28,32-35       
 src/prompt-config |   78.48 |    85.73 |   85.82 |   78.48 |                   
  ...lateEngine.ts |   93.83 |     87.5 |     100 |   93.83 | ...04-407,418-421 
  index.ts         |       0 |      100 |     100 |       0 | 5-41              
  prompt-cache.ts  |    99.1 |     97.5 |     100 |    99.1 | 227-228           
  ...-installer.ts |   87.87 |    84.09 |   97.61 |   87.87 | ...1266,1350-1351 
  prompt-loader.ts |   88.92 |       91 |   81.25 |   88.92 | ...30-447,457-458 
  ...t-resolver.ts |   40.42 |    74.41 |   57.69 |   40.42 | ...23-876,879-907 
  ...pt-service.ts |   85.28 |    83.18 |   80.95 |   85.28 | ...28,545-552,583 
  ...delegation.ts |   93.54 |    91.66 |     100 |   93.54 | 34-35             
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...onfig/defaults |   56.45 |    45.74 |   85.41 |   56.45 |                   
  core-defaults.ts |      48 |     41.5 |   78.57 |      48 | ...65,375,381-389 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...est-loader.ts |   81.81 |    79.31 |     100 |   81.81 | ...02-108,116-120 
  ...t-warnings.ts |    92.3 |    33.33 |     100 |    92.3 | 18-19             
  ...r-defaults.ts |   52.51 |    35.29 |   84.61 |   52.51 | ...36,346,352-357 
  ...e-defaults.ts |     100 |      100 |     100 |     100 |                   
  tool-defaults.ts |   56.05 |     42.3 |   84.61 |   56.05 | ...92-293,305-310 
 src/prompts       |      30 |      100 |      25 |      30 |                   
  mcp-prompts.ts   |   28.57 |      100 |       0 |   28.57 | 11-15             
  ...t-registry.ts |   30.23 |      100 |   28.57 |   30.23 | ...43,49-56,69-74 
 src/providers     |   73.69 |    82.46 |   72.01 |   73.69 |                   
  BaseProvider.ts  |   77.04 |    81.13 |   76.36 |   77.04 | ...1004,1011-1017 
  ...malization.ts |   94.35 |    72.41 |     100 |   94.35 | ...1-82,85-86,236 
  ...eratorRole.ts |     100 |      100 |     100 |     100 |                   
  IModel.ts        |       0 |        0 |       0 |       0 |                   
  IProvider.ts     |       0 |        0 |       0 |       0 |                   
  ...derManager.ts |     100 |      100 |     100 |     100 |                   
  ITool.ts         |       0 |        0 |       0 |       0 |                   
  ...ngProvider.ts |   88.17 |     88.7 |   90.24 |   88.17 | ...1340,1361-1364 
  ...derWrapper.ts |   64.31 |    74.15 |   65.62 |   64.31 | ...1746,1765-1772 
  ...tGenerator.ts |   18.36 |      100 |       0 |   18.36 | ...58,61-78,81-84 
  ...derManager.ts |   63.22 |       80 |   68.51 |   63.22 | ...1807-1808,1811 
  ...chestrator.ts |   85.11 |    89.74 |   78.12 |   85.11 | ...15-819,821-828 
  ...taResolver.ts |   97.39 |    93.33 |     100 |   97.39 | 164-166           
  customHeaders.ts |   90.69 |    83.33 |     100 |   90.69 | 38-39,54-55       
  errors.ts        |   76.21 |    68.57 |   42.85 |   76.21 | ...82-283,292-293 
  ...ConfigKeys.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ders/anthropic |   88.88 |    86.91 |   89.51 |   88.88 |                   
  ...iExecution.ts |     100 |     92.3 |     100 |     100 | 201,223           
  ...Normalizer.ts |    90.9 |    86.53 |     100 |    90.9 | ...03-707,713-718 
  ...eValidator.ts |   97.84 |    99.12 |     100 |   97.84 | ...03,417-418,453 
  ...cModelData.ts |   92.26 |    95.23 |      75 |   92.26 | 181-194,239-240   
  ...icProvider.ts |   81.01 |    80.19 |   76.59 |   81.01 | ...15-517,698-699 
  ...mitHandler.ts |   99.53 |    98.52 |     100 |   99.53 | 130               
  ...estBuilder.ts |    88.2 |    88.23 |     100 |    88.2 | ...00-201,214-215 
  ...reparation.ts |   96.12 |    84.52 |   93.33 |   96.12 | ...27,555,644,731 
  ...onseParser.ts |   77.27 |       65 |     100 |   77.27 | ...12,119,124-128 
  ...mProcessor.ts |    85.3 |     86.2 |     100 |    85.3 | ...18,507,544,548 
  ...aConverter.ts |   52.66 |    44.11 |   71.42 |   52.66 | ...72-276,292-301 
  usageInfo.ts     |   92.24 |    96.96 |     100 |   92.24 | ...02-107,117-119 
 ...pic/test-utils |       0 |        0 |       0 |       0 |                   
  ...cTestUtils.ts |       0 |        0 |       0 |       0 |                   
 ...oviders/chutes |   78.52 |    76.19 |     100 |   78.52 |                   
  usageInfo.ts     |   78.52 |    76.19 |     100 |   78.52 | ...78-180,195-209 
 ...providers/fake |   91.62 |    78.26 |     100 |   91.62 |                   
  FakeProvider.ts  |   91.62 |    78.26 |     100 |   91.62 | ...12-215,218-221 
 ...oviders/gemini |   61.74 |    75.98 |   56.47 |   61.74 |                   
  ...niProvider.ts |   61.05 |    69.01 |   56.79 |   61.05 | ...2187,2195-2196 
  ...Signatures.ts |     100 |    98.48 |     100 |     100 | 211               
  usageInfo.ts     |   16.66 |      100 |       0 |   16.66 | 41-149            
 ...providers/kimi |   86.29 |     84.9 |     100 |   86.29 |                   
  usageInfo.ts     |   86.29 |     84.9 |     100 |   86.29 | ...16-319,330-331 
 ...viders/logging |   38.37 |    85.71 |      75 |   38.37 |                   
  ...tExtractor.ts |       0 |        0 |       0 |       0 | 1-290             
  ...nceTracker.ts |   91.33 |       90 |   81.81 |   91.33 | ...73-175,193-194 
 ...oviders/openai |    76.6 |    80.61 |   73.33 |    76.6 |                   
  ...ationCache.ts |   65.57 |    83.33 |   82.35 |   65.57 | ...79-187,216-217 
  ...rateParams.ts |       0 |        0 |       0 |       0 |                   
  ...iExecution.ts |   24.56 |    53.33 |      50 |   24.56 | ...03-211,215-245 
  ...entFactory.ts |   88.88 |      100 |   71.42 |   88.88 | 82-87,91-100      
  ...eamHandler.ts |   69.45 |    47.36 |   85.71 |   69.45 | ...99-403,407-427 
  ...AIProvider.ts |   68.85 |    67.94 |   48.48 |   68.85 | ...63,794,802-811 
  ...estBuilder.ts |   87.77 |    92.37 |   92.85 |   87.77 | ...31-532,549-557 
  ...reparation.ts |   79.89 |    68.57 |   57.14 |   79.89 | ...66,170-171,212 
  ...onseParser.ts |   96.17 |    90.16 |   83.33 |   96.17 | 92-93,199-203     
  ...mProcessor.ts |    58.6 |    70.49 |   38.46 |    58.6 | ...79-791,872-873 
  ...essorState.ts |    74.2 |    70.83 |   55.55 |    74.2 | ...05,328,352-370 
  ...API_MODELS.ts |     100 |      100 |     100 |     100 |                   
  ...lCollector.ts |   93.33 |    89.28 |     100 |   93.33 | ...51-153,173-174 
  ...Normalizer.ts |   92.75 |    95.65 |     100 |   92.75 | 74-78             
  ...llPipeline.ts |    62.4 |    56.25 |   77.77 |    62.4 | ...69-192,200-212 
  ...eValidator.ts |   93.93 |    93.75 |     100 |   93.93 | 105-108           
  ...sesRequest.ts |   84.45 |     90.8 |   88.88 |   84.45 | ...88,292-297,372 
  ...xUsageInfo.ts |   92.19 |    90.69 |     100 |   92.19 | ...79,283,290-292 
  ...moteTokens.ts |   87.32 |    92.85 |     100 |   87.32 | 108-117           
  ...sonMapping.ts |   82.75 |    33.33 |   33.33 |   82.75 | 45-49             
  ...oviderInfo.ts |    87.2 |    71.87 |     100 |    87.2 | ...27-129,140-141 
  ...uestParams.ts |   87.82 |    57.69 |     100 |   87.82 | ...27-128,130-131 
  ...nsesStream.ts |   89.76 |    84.96 |     100 |   89.76 | ...84,747-763,787 
  ...aConverter.ts |   54.49 |    52.63 |   71.42 |   54.49 | ...66-267,291-300 
  ...lResponses.ts |   80.29 |    80.32 |   95.45 |   80.29 | ...92-293,313-327 
  test-types.ts    |       0 |        0 |       0 |       0 |                   
  toolNameUtils.ts |   95.78 |    95.65 |   63.63 |   95.78 | 104,129,259-264   
 ...enai-responses |   71.69 |    78.71 |   68.35 |   71.69 |                   
  CODEX_MODELS.ts  |     100 |      100 |     100 |     100 |                   
  ...putBuilder.ts |    79.6 |    82.05 |      75 |    79.6 | ...15-216,234-268 
  ...esProvider.ts |     100 |      100 |     100 |     100 |                   
  ...oviderBase.ts |    58.1 |    70.58 |   43.47 |    58.1 | ...49-382,388-389 
  ...oviderCore.ts |   85.45 |    77.95 |   93.33 |   85.45 | ...55-660,663-690 
  ...onsesTypes.ts |       0 |        0 |       0 |       0 |                   
  ...romContent.ts |      96 |    92.85 |     100 |      96 | ...00,137,175-176 
  index.ts         |       0 |        0 |       0 |       0 | 1                 
  ...aConverter.ts |    7.73 |       20 |   14.28 |    7.73 | ...59-286,289-299 
 .../openai-vercel |   75.78 |    68.09 |   76.47 |   75.78 |                   
  ...elProvider.ts |   76.79 |    65.99 |   71.64 |   76.79 | ...1948,1958-1959 
  errors.ts        |   92.46 |    82.92 |     100 |   92.46 | ...71-172,174-178 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...Conversion.ts |    74.4 |    74.73 |   83.33 |    74.4 | ...05-513,523-524 
  ...aConverter.ts |   54.81 |       50 |   71.42 |   54.81 | ...65-266,290-298 
  toolIdUtils.ts   |     100 |      100 |     100 |     100 |                   
 ...ders/reasoning |   46.83 |    89.65 |   77.77 |   46.83 |                   
  ...oningUtils.ts |   46.83 |    89.65 |   77.77 |   46.83 | ...47-195,231-290 
 ...ders/synthetic |   93.65 |       92 |     100 |   93.65 |                   
  usageInfo.ts     |   93.65 |       92 |     100 |   93.65 | ...19-121,154-155 
 ...ers/test-utils |     100 |      100 |     100 |     100 |                   
  ...TestConfig.ts |     100 |      100 |     100 |     100 |                   
 ...ers/tokenizers |      70 |    77.77 |      75 |      70 |                   
  ...cTokenizer.ts |   68.42 |       75 |     100 |   68.42 | 34-39             
  ITokenizer.ts    |       0 |        0 |       0 |       0 |                   
  ...ITokenizer.ts |   70.73 |       80 |   66.66 |   70.73 | 53-56,63-72       
 ...roviders/types |       0 |        0 |       0 |       0 |                   
  ...iderConfig.ts |       0 |        0 |       0 |       0 |                   
  ...derRuntime.ts |       0 |        0 |       0 |       0 |                   
 ...roviders/utils |   92.37 |    92.03 |   91.48 |   92.37 |                   
  authToken.ts     |   33.33 |       50 |      50 |   33.33 | 14-22,30-35       
  ...sExtractor.ts |   96.77 |    92.59 |     100 |   96.77 | 15-16             
  ...nerSandbox.ts |     100 |      100 |     100 |     100 |                   
  ...entPreview.ts |   88.88 |    77.77 |     100 |   88.88 | 51-52,58-59,66    
  dumpContext.ts   |   95.94 |    95.45 |     100 |   95.94 | 110-112           
  ...SDKContext.ts |   94.59 |       75 |     100 |   94.59 | 27,49             
  localEndpoint.ts |   89.28 |    92.68 |     100 |   89.28 | ...20-121,140-141 
  mediaUtils.ts    |     100 |    96.66 |     100 |     100 | 34                
  qwenEndpoint.ts  |     100 |      100 |     100 |     100 |                   
  retryStrategy.ts |   96.05 |    89.58 |   66.66 |   96.05 | 83,90,105         
  textSanitizer.ts |     100 |    91.66 |      50 |     100 | 54                
  ...Extraction.ts |     100 |    94.44 |      50 |     100 | 78                
  ...tDetection.ts |   96.59 |      100 |     100 |   96.59 | 79,107,128        
  ...malization.ts |     100 |      100 |     100 |     100 |                   
  ...malization.ts |     100 |      100 |     100 |     100 |                   
  ...nsePayload.ts |   92.47 |    88.33 |     100 |   92.47 | ...44-149,202-206 
  userMemory.ts    |   51.51 |       60 |     100 |   51.51 | 16-18,31-43       
 src/providers/zai |   90.44 |    78.78 |     100 |   90.44 |                   
  usageInfo.ts     |   90.44 |    78.78 |     100 |   90.44 | ...58-160,175-176 
 src/recording     |   90.77 |    84.73 |   98.79 |   90.77 |                   
  ...ntegration.ts |    83.9 |    74.07 |     100 |    83.9 | ...31-132,143-144 
  ReplayEngine.ts  |    97.1 |     90.8 |     100 |    97.1 | 121-122,473-480   
  ...nDiscovery.ts |   92.12 |    84.53 |     100 |   92.12 | ...35,252-254,304 
  ...ockManager.ts |   89.41 |    81.25 |     100 |   89.41 | ...98,213,240-241 
  ...ingService.ts |   82.97 |    92.45 |   95.65 |   82.97 | ...57,390-391,395 
  index.ts         |     100 |      100 |     100 |     100 |                   
  resumeSession.ts |   93.19 |    89.65 |     100 |   93.19 | ...10-215,246-247 
  ...eanupUtils.ts |      90 |    68.42 |     100 |      90 | ...40-241,267,280 
  ...Management.ts |   88.23 |    85.71 |     100 |   88.23 | 94,108-112        
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/resources     |   95.23 |     92.3 |     100 |   95.23 |                   
  ...e-registry.ts |   95.23 |     92.3 |     100 |   95.23 | 34-35             
 src/runtime       |    88.3 |    84.96 |   82.75 |    88.3 |                   
  ...imeContext.ts |     100 |      100 |     100 |     100 |                   
  ...timeLoader.ts |   84.24 |    68.75 |   81.81 |   84.24 | ...07-210,250-253 
  ...ntimeState.ts |   95.63 |    90.54 |     100 |   95.63 | ...01-502,542-543 
  ...ionContext.ts |   85.89 |    94.11 |   85.71 |   85.89 | 80-82,149-156     
  ...imeContext.ts |    93.8 |    94.36 |   89.28 |    93.8 | ...60-265,267-274 
  index.ts         |       0 |        0 |       0 |       0 | 1-15              
  ...imeContext.ts |     100 |      100 |     100 |     100 |                   
  ...meAdapters.ts |   60.86 |       65 |   52.94 |   60.86 | ...,47-50,123-160 
  ...ateFactory.ts |   97.29 |    80.76 |     100 |   97.29 | 74,109            
 src/safety        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  pathValidator.ts |     100 |      100 |     100 |     100 |                   
 src/scheduler     |   89.65 |    80.97 |   96.77 |   89.65 |                   
  ...oordinator.ts |   86.07 |    79.31 |     100 |   86.07 | ...27,750-751,806 
  ...aggregator.ts |    87.5 |    79.66 |     100 |    87.5 | ...19-427,432-439 
  ...ransitions.ts |    96.6 |       75 |     100 |    96.6 | ...,75-76,275-277 
  ...dispatcher.ts |   98.21 |       96 |     100 |   98.21 | 147-148           
  tool-executor.ts |   89.56 |    82.35 |   66.66 |   89.56 | ...65-167,170-171 
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |     100 |      100 |     100 |     100 |                   
 src/services      |   85.51 |    86.83 |   86.69 |   85.51 |                   
  ...ardService.ts |   94.23 |    93.75 |     100 |   94.23 | 70,74-75          
  ...utoTrigger.ts |   97.33 |    95.83 |     100 |   97.33 | 127-128           
  ...askManager.ts |   95.81 |    93.93 |     100 |   95.81 | 151-157,365-366   
  ...derService.ts |   98.98 |    97.05 |     100 |   98.98 | 173               
  ...y-analyzer.ts |   76.32 |    81.17 |   77.77 |   76.32 | ...88-516,522-523 
  ...extManager.ts |     100 |      100 |     100 |     100 |                   
  ...nitization.ts |   98.62 |    96.66 |     100 |   98.62 | 176-177           
  ...eryService.ts |   98.54 |    95.45 |     100 |   98.54 | 132-133           
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  ...ts-service.ts |      50 |      100 |       0 |      50 | 41-42,48-49       
  gitService.ts    |    86.6 |    86.95 |      80 |    86.6 | ...35-138,142-146 
  index.ts         |       0 |        0 |       0 |       0 | 1-23              
  ...ionService.ts |   95.86 |    93.24 |     100 |   95.86 | ...06-307,317-318 
  ...ionService.ts |   82.77 |     82.8 |   84.48 |   82.77 | ...1511,1520-1548 
  ...xt-tracker.ts |   94.87 |       90 |    87.5 |   94.87 | 54-55             
  ...er-service.ts |    60.6 |    82.35 |      50 |    60.6 | ...36-139,142-160 
  ...er-service.ts |   69.45 |    55.88 |      80 |   69.45 | ...85-289,311-314 
 ...rvices/history |   84.72 |    85.22 |   91.01 |   84.72 |                   
  ...Converters.ts |   88.37 |    82.44 |   88.88 |   88.37 | ...15-423,445-446 
  HistoryEvents.ts |       0 |        0 |       0 |       0 |                   
  ...oryService.ts |   82.41 |    86.26 |   90.47 |   82.41 | ...1694,1730-1731 
  IContent.ts      |    89.7 |    77.77 |     100 |    89.7 | ...42,252-253,264 
  ...calToolIds.ts |   96.82 |     93.1 |     100 |   96.82 | 36-37             
 src/settings      |    81.9 |    87.09 |   57.53 |    81.9 |                   
  ...ngsService.ts |   92.66 |    77.21 |   95.23 |   92.66 | ...17-418,449-453 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...gsRegistry.ts |   79.28 |    92.96 |   39.58 |   79.28 | ...1547,1550-1567 
  ...ceInstance.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/skills        |   74.27 |    86.17 |   73.07 |   74.27 |                   
  skillLoader.ts   |   55.55 |    86.11 |   71.42 |   55.55 | ...99-235,238-274 
  skillManager.ts  |   91.28 |     86.2 |   73.68 |   91.28 | ...58-359,365-366 
 src/storage       |   90.71 |    85.42 |   93.22 |   90.71 |                   
  ...FileWriter.ts |   83.33 |    77.77 |    87.5 |   83.33 | 42-43,73-83       
  ...nceService.ts |   98.67 |    96.96 |     100 |   98.67 | 294-295           
  ...ey-storage.ts |   92.42 |       90 |     100 |   92.42 | 35-37,83-84       
  secure-store.ts  |   89.48 |    83.24 |      90 |   89.48 | ...37-740,756-757 
  sessionTypes.ts  |     100 |      100 |     100 |     100 |                   
 src/telemetry     |   68.91 |    82.42 |    62.4 |   68.91 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-exporters.ts |   28.08 |      100 |       0 |   28.08 | ...14-115,118-119 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-17              
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-115             
  loggers.ts       |   65.56 |     74.5 |   60.71 |   65.56 | ...00-613,621-637 
  metrics.ts       |   61.93 |    96.29 |   66.66 |   61.93 | ...39-161,164-187 
  sdk.ts           |   77.41 |    52.38 |     100 |   77.41 | ...62,166-167,169 
  ...l-decision.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |   76.59 |       85 |    66.1 |   76.59 | ...66-668,671-675 
  uiTelemetry.ts   |   95.55 |    96.29 |   91.66 |   95.55 | 162,201-207       
 src/test-utils    |   91.48 |    90.37 |   60.82 |   91.48 |                   
  config.ts        |   91.66 |    71.42 |     100 |   91.66 | 71-74             
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  mock-tool.ts     |   97.91 |      100 |   83.33 |   97.91 | 78-79             
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
  ...allOptions.ts |   93.92 |    91.66 |   63.63 |   93.92 | ...19,187,216-219 
  runtime.ts       |   89.49 |    85.29 |   43.75 |   89.49 | ...07-309,318-319 
  tools.ts         |   88.95 |       96 |   80.95 |   88.95 | ...01,175,179-180 
 src/todo          |   51.55 |    86.95 |      75 |   51.55 |                   
  todoFormatter.ts |   51.55 |    86.95 |      75 |   51.55 | ...57-161,200-201 
 src/tools         |   80.42 |    79.91 |   83.13 |   80.42 |                   
  ...lFormatter.ts |     100 |      100 |     100 |     100 |                   
  ToolFormatter.ts |   27.45 |       80 |      50 |   27.45 | ...68,671-716,732 
  ...IdStrategy.ts |   93.42 |    90.38 |     100 |   93.42 | ...31-234,267-270 
  ...vate-skill.ts |   92.41 |    72.22 |      90 |   92.41 | ...97,166-168,180 
  apply-patch.ts   |    59.1 |    55.26 |   68.42 |    59.1 | ...20-545,554-555 
  ast-edit.ts      |   95.08 |    95.23 |   93.33 |   95.08 | 169-177           
  ast-grep.ts      |   91.15 |    86.25 |    92.3 |   91.15 | ...54-258,329-330 
  ...sync-tasks.ts |   96.56 |    92.06 |    92.3 |   96.56 | 50-54,102,121,248 
  codesearch.ts    |   98.12 |    89.47 |    87.5 |   98.12 | 114-115,192       
  ...line_range.ts |   85.95 |    72.09 |      70 |   85.95 | ...10-311,319-320 
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  ...-web-fetch.ts |   97.85 |    84.31 |      90 |   97.85 | ...01,217-218,232 
  ...scapeUtils.ts |    59.4 |    72.97 |   46.15 |    59.4 | ...11,327,329-339 
  edit-utils.ts    |   79.33 |    91.13 |   81.81 |   79.33 | ...83-288,330-335 
  edit.ts          |    87.7 |    82.63 |   78.57 |    87.7 | ...-950,1009-1018 
  ensure-dirs.ts   |     100 |      100 |     100 |     100 |                   
  ...web-search.ts |   96.36 |       75 |   85.71 |   96.36 | ...39,173-175,225 
  ...y-replacer.ts |   87.69 |    84.93 |     100 |   87.69 | ...12-513,560-561 
  glob.ts          |   91.52 |    81.25 |   93.33 |   91.52 | ...19-320,414-415 
  ...-web-fetch.ts |   95.99 |    89.56 |   96.29 |   95.99 | ...49,270,460-461 
  ...invocation.ts |   57.14 |    47.82 |   47.05 |   57.14 | ...45-262,265-280 
  ...web-search.ts |     100 |      100 |     100 |     100 |                   
  grep.ts          |   68.77 |    78.57 |   78.12 |   68.77 | ...1249,1263-1264 
  ...rt_at_line.ts |   83.09 |    79.62 |      75 |   83.09 | ...56-357,365-366 
  ...-subagents.ts |    87.5 |    69.56 |   88.88 |    87.5 | ...,83-91,100,156 
  ls.ts            |     100 |    91.52 |     100 |     100 | 94,176,192-195    
  ...ics-helper.ts |     100 |    71.42 |     100 |     100 | 56,65,69-70,77,82 
  ...nt-manager.ts |   54.51 |    70.21 |   45.45 |   54.51 | ...91-415,418-419 
  mcp-client.ts    |   54.17 |    76.96 |   66.66 |   54.17 | ...2021,2025-2028 
  mcp-tool.ts      |   92.52 |     93.1 |   84.61 |   92.52 | ...77-287,354-355 
  memoryTool.ts    |   78.22 |    84.72 |   88.88 |   78.22 | ...96-397,450-505 
  ...iable-tool.ts |   92.15 |       80 |     100 |   92.15 | 73-78,202-207     
  read-file.ts     |   95.26 |       85 |   94.11 |   95.26 | ...40,244,462-463 
  ...many-files.ts |   84.95 |    82.35 |   96.15 |   84.95 | ...95-796,803-804 
  ...line_range.ts |   86.21 |    73.07 |    87.5 |   86.21 | ...11-412,416-417 
  ripGrep.ts       |   84.14 |    87.62 |   86.36 |   84.14 | ...83,486,514-539 
  shell.ts         |   88.59 |    81.16 |      95 |   88.59 | ...1155,1160-1161 
  ...l-analysis.ts |   86.11 |    64.56 |   93.87 |   86.11 | ...1532,1588,1599 
  task.ts          |   87.12 |    74.07 |   96.22 |   87.12 | ...1504,1507-1516 
  todo-events.ts   |    62.5 |      100 |       0 |    62.5 | 23-24,27-28,31-32 
  todo-pause.ts    |      88 |       80 |     100 |      88 | ...,81-86,101-106 
  todo-read.ts     |   89.47 |    94.73 |     100 |   89.47 | 116-127           
  todo-schemas.ts  |     100 |      100 |     100 |     100 |                   
  todo-store.ts    |   77.89 |    82.35 |   77.77 |   77.89 | ...37-139,146-151 
  todo-write.ts    |   86.41 |    80.48 |      80 |   86.41 | ...81,221-223,302 
  ...tion-types.ts |     100 |      100 |     100 |     100 |                   
  tool-context.ts  |     100 |      100 |     100 |     100 |                   
  tool-error.ts    |   88.23 |      100 |       0 |   88.23 | 109-116           
  ...ey-storage.ts |   85.92 |    80.26 |     100 |   85.92 | ...48-353,362-367 
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |   84.86 |    73.98 |   83.72 |   84.86 | ...91-795,803-804 
  toolNameUtils.ts |      80 |     92.1 |     100 |      80 | 59-60,64-65,69-82 
  tools.ts         |   80.67 |     82.5 |   74.35 |   80.67 | ...17-918,921-928 
  write-file.ts    |   82.69 |    71.65 |   81.81 |   82.69 | ...69-770,796-838 
 ...tools/ast-edit |   82.25 |    79.59 |   92.85 |   82.25 |                   
  ast-config.ts    |     100 |      100 |     100 |     100 |                   
  ...invocation.ts |   86.64 |     78.2 |     100 |   86.64 | ...59-368,467-468 
  ...-extractor.ts |    83.5 |    72.72 |      80 |    83.5 | ...24-226,231-236 
  ...invocation.ts |   85.63 |    77.77 |   88.88 |   85.63 | ...98,200-201,207 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-collector.ts |   79.66 |       90 |     100 |   79.66 | 136-164,171       
  ...-optimizer.ts |   52.54 |       75 |      50 |   52.54 | ...0,77-78,95-100 
  ...e-analyzer.ts |   62.09 |    70.45 |   92.85 |   62.09 | ...71-372,380-381 
  ...calculator.ts |   93.36 |    91.66 |     100 |   93.36 | ...01-305,344-345 
  edit-helpers.ts  |   77.77 |    77.77 |     100 |   77.77 | 33-34,36-37       
  ...e-analysis.ts |   97.18 |     92.3 |     100 |   97.18 | 100-101           
  ...t-analyzer.ts |   84.95 |    83.01 |     100 |   84.95 | ...38-247,272-277 
  ...t-provider.ts |   91.15 |     64.7 |     100 |   91.15 | ...36-137,155-156 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
  ...t-provider.ts |   64.28 |       50 |     100 |   64.28 | 42-47,52-55       
 src/types         |     100 |      100 |     100 |     100 |                   
  modelParams.ts   |     100 |      100 |     100 |     100 |                   
 src/utils         |   84.96 |    87.34 |   85.71 |   84.96 |                   
  LruCache.ts      |    82.6 |      100 |   71.42 |    82.6 | 29-30,33-34       
  ...grep-utils.ts |   98.03 |     87.5 |     100 |   98.03 | 137-138           
  asyncIterator.ts |   73.07 |    86.66 |   66.66 |   73.07 | ...71,75-86,93-94 
  bfsFileSearch.ts |   93.61 |    92.85 |     100 |   93.61 | 36-44             
  browser.ts       |    8.69 |      100 |       0 |    8.69 | 17-53             
  channel.ts       |     100 |      100 |     100 |     100 |                   
  ...pointUtils.ts |   95.58 |    95.23 |     100 |   95.58 | 150-155           
  debugLogger.ts   |     100 |      100 |     100 |     100 |                   
  delay.ts         |     100 |      100 |     100 |     100 |                   
  editor.ts        |   96.46 |    90.38 |    90.9 |   96.46 | ...27-228,230-231 
  ...entContext.ts |     100 |      100 |     100 |     100 |                   
  errorParsing.ts  |   91.82 |    78.26 |     100 |   91.82 | ...16,162,216,219 
  ...rReporting.ts |   84.44 |    86.66 |     100 |   84.44 | 47-51,117-125     
  errors.ts        |   86.36 |       94 |   53.33 |   86.36 | ...27-128,190-191 
  events.ts        |   64.42 |      100 |      60 |   64.42 | ...66-271,277-280 
  exitCodes.ts     |     100 |      100 |     100 |     100 |                   
  ...sionLoader.ts |   80.98 |    62.85 |    92.3 |   80.98 | ...70-171,224-232 
  fetch.ts         |   31.08 |    66.66 |      25 |   31.08 | ...38,41-86,89-90 
  fileDiffUtils.ts |     100 |      100 |     100 |     100 |                   
  fileUtils.ts     |   95.95 |    91.71 |     100 |   95.95 | ...44,452,486-492 
  formatters.ts    |   54.54 |       50 |     100 |   54.54 | 12-16             
  ...eUtilities.ts |    96.5 |    95.72 |     100 |    96.5 | ...95-299,356-357 
  ...rStructure.ts |   96.35 |       95 |     100 |   96.35 | 98-101,387-392    
  getPty.ts        |    12.5 |      100 |       0 |    12.5 | 21-36             
  ...noreParser.ts |   93.33 |    88.46 |     100 |   93.33 | ...53,226-227,238 
  ...ineChanges.ts |   57.29 |    79.41 |   66.66 |   57.29 | ...57-261,269-275 
  gitUtils.ts      |   91.48 |    91.66 |     100 |   91.48 | 43-44,78-79       
  googleErrors.ts  |   77.24 |    72.72 |     100 |   77.24 | ...01,348,354-355 
  ...uotaErrors.ts |    95.5 |    86.59 |     100 |    95.5 | ...69-270,308-309 
  ide-trust.ts     |      60 |      100 |       0 |      60 | 14-15             
  ...rePatterns.ts |     100 |    96.55 |     100 |     100 | 249               
  ...ionManager.ts |     100 |       90 |     100 |     100 | 24                
  ...edit-fixer.ts |       0 |        0 |       0 |       0 | 1-156             
  ...yDiscovery.ts |    83.6 |    78.26 |    87.5 |    83.6 | ...60-761,764-765 
  ...tProcessor.ts |   95.79 |    89.41 |   93.75 |   95.79 | ...17-318,413-414 
  ...Inspectors.ts |   61.53 |      100 |      50 |   61.53 | 18-23             
  output-format.ts |   36.36 |      100 |       0 |   36.36 | ...53-154,164-185 
  package.ts       |     100 |      100 |     100 |     100 |                   
  ...erCoercion.ts |   86.66 |    82.89 |     100 |   86.66 | ...10-211,273-274 
  partUtils.ts     |   95.31 |    94.87 |     100 |   95.31 | 28,101-102        
  pathReader.ts    |       0 |        0 |       0 |       0 | 1-60              
  paths.ts         |   90.83 |    86.51 |     100 |   90.83 | ...38-239,250-251 
  ...rDetection.ts |   53.62 |    83.33 |   83.33 |   53.62 | ...01-102,112-113 
  ...archTarget.ts |   89.58 |    73.33 |     100 |   89.58 | 45-47,65-66       
  retry.ts         |   83.19 |    89.18 |   91.66 |   83.19 | ...72-975,980-981 
  ...thResolver.ts |   90.84 |    88.37 |     100 |   90.84 | ...00-106,197-200 
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  sanitization.ts  |     100 |      100 |     100 |     100 |                   
  ...aValidator.ts |   93.67 |    78.57 |     100 |   93.67 | ...95-296,313-324 
  ...r-launcher.ts |   88.88 |    79.48 |     100 |   88.88 | ...81-186,191-192 
  session.ts       |     100 |      100 |     100 |     100 |                   
  shell-parser.ts  |   23.82 |    58.33 |   42.85 |   23.82 | ...89-403,424-463 
  shell-utils.ts   |   88.24 |    86.77 |     100 |   88.24 | ...11-517,686-695 
  ...Completion.ts |   94.16 |     92.3 |     100 |   94.16 | 69-75             
  stdio.ts         |   84.21 |    59.09 |     100 |   84.21 | ...21-125,134-138 
  ...dleTimeout.ts |   98.57 |    96.55 |     100 |   98.57 | 79                
  summarizer.ts    |     100 |    88.88 |     100 |     100 | 91                
  ...emEncoding.ts |   97.16 |    91.42 |     100 |   97.16 | 116-117,169       
  terminal.ts      |   34.09 |      100 |       0 |   34.09 | ...55,58-59,62-66 
  ...Serializer.ts |   98.16 |    92.18 |     100 |   98.16 | ...,98-99,153-155 
  testUtils.ts     |      50 |      100 |   33.33 |      50 | ...47,53-58,64-66 
  textUtils.ts     |    12.5 |      100 |       0 |    12.5 | 15-34             
  thoughtUtils.ts  |     100 |      100 |     100 |     100 |                   
  tool-utils.ts    |   66.94 |     77.5 |      75 |   66.94 | ...36-137,158-182 
  ...putLimiter.ts |   95.14 |    82.69 |     100 |   95.14 | ...5-66,78-79,113 
  unicodeUtils.ts  |     100 |      100 |     100 |     100 |                   
  ...untManager.ts |   89.83 |    88.57 |     100 |   89.83 | ...0,78-83,99-101 
  version.ts       |     100 |      100 |     100 |     100 |                   
  ...aceContext.ts |   96.85 |    95.34 |    92.3 |   96.85 | 95-96,110-111     
 ...ils/filesearch |   95.46 |    91.04 |     100 |   95.46 |                   
  crawlCache.ts    |     100 |      100 |     100 |     100 |                   
  crawler.ts       |   93.05 |       90 |     100 |   93.05 | 72-74,86-87       
  fileSearch.ts    |   92.93 |    85.71 |     100 |   92.93 | ...42-243,245-246 
  ignore.ts        |     100 |      100 |     100 |     100 |                   
  result-cache.ts  |     100 |      100 |     100 |     100 |                   
-------------------|---------|----------|---------|---------|-------------------

For detailed HTML reports, please see the 'coverage-reports-24.x-ubuntu-latest' artifact from the main CI run.

@acoliver acoliver merged commit 047cfb1 into main Jun 5, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer:e2e:ok Trusted contributor; maintainer-approved E2E run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

kimi tool formatting happening even if toolformat set to openai

1 participant