Feat/vision mcp - #36
Conversation
…dings Replace the describer-proxy design (house glm-4.6v chat call, visionModel setting) with the GLM Vision MCP flow: explicit install/uninstall commands, health tracking over vscode.lm.tools, a visionEnabled toggle, analyze_image calls over content-addressed temp files, and new walkthrough steps. Fix the confirmed findings from the 2026-07-17 branch review: - Gate image analysis on the vision toggle. With visionEnabled off, uncached images from history or tool results are no longer written to disk or sent to the vision tool; they degrade to the unavailable marker with a "vision is turned off" notice. Cached descriptions still resolve so old conversations stay coherent. - Require the GLM Vision label slug in analyze_image tool names so another server's look-alike tool can neither mark the server healthy nor receive the user's image files. - Enforce the 256-file temp-image bound on every analysis call instead of once per session. - Reset visionEnabled on uninstall (update to undefined clears the Global override) so a reinstall asks for consent again instead of silently resuming analysis. - Check the Node.js major version during the install preflight (node --version, minimum 18), matching the documented behavior; an unknown version stays advisory and does not block. - Correct key-source wording in README, CHANGELOG, and llms.txt: the injected key comes from SecretStorage or the documented settings fallback, and the extension itself never writes it to settings.json. The P3 timeout-hang finding is intentionally not addressed: it is plausible but unconfirmed and requires an MCP server that ignores cancellation.
Treat authManager.getApiKey() rejections as a missing-key preflight failure so image analysis falls back to the unavailable marker instead of aborting the request.
|
Important Review skippedAuto reviews are disabled on this repository. To trigger a review, include ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughAdds an optional local GLM Vision MCP server with locked installation and lifecycle commands, enables image analysis for text-only GLM models, caches descriptions, validates image inputs, handles failures and cancellation, and integrates vision state into model metadata, chat responses, and token estimation. ChangesGLM Vision integration
Estimated code review effort: 5 (Critical) | ~90 minutes Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@CodeRabbit @codex review |
|
✅ Action performedReview finished.
|
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (6)
src/provider/vision/resolve.ts (1)
353-373: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low valuePrune can delete another request's in-flight run directory.
pruneTempImagesruns on every analysis andrms the oldest entries recursively, including run directories created by concurrent chat requests. Once the directory count exceedsVISION_TEMP_MAX_FILES - 1, a still-running sibling request can lose its temp dir mid-analysis and fail with ENOENT. Consider skipping entries whose mtime is newer than process start of the current run, or tracking active run dirs in a module-level set.🤖 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 `@src/provider/vision/resolve.ts` around lines 353 - 373, Update pruneTempImages to avoid deleting directories belonging to active analysis requests during concurrent runs. Track currently active run directories in a module-level set and skip those entries when selecting stale items for removal, ensuring only inactive entries are pruned while preserving the existing retention limit and warning behavior.src/runtime/mcp-package.ts (2)
36-41: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDerive the package.json path from the shared constants instead of re-hardcoding the scope/name.
entryPointcomes fromVISION_MCP_ENTRYPOINT_PARTSwhile the manifest path is spelled out literally; if the pinned package or entry layout ever changes, these two can drift silently andisInstalled()would report a false negative/positive.♻️ Proposed refactor
- const packageJsonPath = join(installDir, 'node_modules', '`@z_ai`', 'mcp-server', 'package.json'); - const entryPoint = join(installDir, ...VISION_MCP_ENTRYPOINT_PARTS); + const entryPoint = join(installDir, ...VISION_MCP_ENTRYPOINT_PARTS); + const packageJsonPath = join(installDir, 'node_modules', VISION_MCP_PACKAGE_NAME, 'package.json');🤖 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 `@src/runtime/mcp-package.ts` around lines 36 - 41, Update hasInstalledVisionMcp to derive packageJsonPath from the shared VISION_MCP_ENTRYPOINT_PARTS constants rather than hard-coding the `@z_ai/mcp-server` scope and package name, while preserving the existing existence checks and boolean behavior.
63-75: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win
maxBuffer: 1024 * 1024may abort an otherwise successfulnpm ci.npm writes progress/notice output to stderr; exceeding 1 MB kills the child with
ENOBUFSand surfaces as a generic install failure. Consider raising it (e.g. 8 MB) or adding--no-progress/npm_config_progress: 'false'.🤖 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 `@src/runtime/mcp-package.ts` around lines 63 - 75, Update the npm ci spawn options in the MCP package installation flow to prevent large stderr output from aborting successful installs: either increase maxBuffer substantially (for example, 8 MB) or disable npm progress via the existing environment configuration. Preserve the current install timeout and other npm settings.src/runtime/mcp-package.test.ts (1)
136-151: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAssert against
VISION_MCP_PACKAGE_VERSIONrather than a third copy of0.1.4.The pinned version now lives in
src/consts.ts, inseedInstalledPackage(line 21), and here. Importing the constant keeps a version bump from silently passing/failing in only some places (the integrity hash still needs a manual update, which is the point of the test).🤖 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 `@src/runtime/mcp-package.test.ts` around lines 136 - 151, Update the test case around the pinned MCP package assertion to import and compare against VISION_MCP_PACKAGE_VERSION from src/consts.ts instead of hardcoding 0.1.4. Keep the explicit integrity hash assertion unchanged so integrity updates remain manual.src/runtime/mcp.ts (1)
408-410: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRegistration is pushed to
context.subscriptionson every (re)install.
uninstall()disposesthis.registrationbut nothing removes it fromcontext.subscriptions, so an install → uninstall → install cycle accumulates dead disposables for the extension's lifetime. Sincedispose()already tears the registration down viathis.registration, the push is redundant.🤖 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 `@src/runtime/mcp.ts` around lines 408 - 410, Remove the this.context.subscriptions.push(this.registration) call from the installation flow around register and retain registration disposal through this.registration in uninstall(). Ensure repeated install/uninstall cycles do not accumulate disposed registrations while preserving the existing register and return behavior.package.json (1)
264-290: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDropping
visionfromcustomModelswhileadditionalProperties: falsebreaks existing user settings.Users who previously set
"vision": trueon a custom model will now get a settings validation error (andgetCustomModelssilently ignores it). Consider keeping the property with a deprecation message instead of removing it outright.♻️ Suggested deprecation shim
"thinking": { "type": "boolean", "description": "Whether the model supports thinking. Defaults to true." + }, + "vision": { + "type": "boolean", + "deprecationMessage": "No longer used. Image input is provided by the GLM Vision MCP server via glm-copilot.visionEnabled.", + "description": "Deprecated." }🤖 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 `@package.json` around lines 264 - 290, Preserve backward compatibility in the custom model schema by adding the legacy vision boolean property back alongside id, name, and capability fields. Keep additionalProperties false and mark vision as deprecated with a clear description indicating that it is retained for existing settings and no longer used.
🤖 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 `@src/runtime/mcp.ts`:
- Around line 81-97: Update the child-process completion handling around the
stdout collector to resolve on the child’s close event instead of exit, ensuring
all stdout data has been flushed before returning { code, stdout }. Keep the
timeout and error handling behavior unchanged, and preserve the existing
probeNodeMajor result flow.
---
Nitpick comments:
In `@package.json`:
- Around line 264-290: Preserve backward compatibility in the custom model
schema by adding the legacy vision boolean property back alongside id, name, and
capability fields. Keep additionalProperties false and mark vision as deprecated
with a clear description indicating that it is retained for existing settings
and no longer used.
In `@src/provider/vision/resolve.ts`:
- Around line 353-373: Update pruneTempImages to avoid deleting directories
belonging to active analysis requests during concurrent runs. Track currently
active run directories in a module-level set and skip those entries when
selecting stale items for removal, ensuring only inactive entries are pruned
while preserving the existing retention limit and warning behavior.
In `@src/runtime/mcp-package.test.ts`:
- Around line 136-151: Update the test case around the pinned MCP package
assertion to import and compare against VISION_MCP_PACKAGE_VERSION from
src/consts.ts instead of hardcoding 0.1.4. Keep the explicit integrity hash
assertion unchanged so integrity updates remain manual.
In `@src/runtime/mcp-package.ts`:
- Around line 36-41: Update hasInstalledVisionMcp to derive packageJsonPath from
the shared VISION_MCP_ENTRYPOINT_PARTS constants rather than hard-coding the
`@z_ai/mcp-server` scope and package name, while preserving the existing existence
checks and boolean behavior.
- Around line 63-75: Update the npm ci spawn options in the MCP package
installation flow to prevent large stderr output from aborting successful
installs: either increase maxBuffer substantially (for example, 8 MB) or disable
npm progress via the existing environment configuration. Preserve the current
install timeout and other npm settings.
In `@src/runtime/mcp.ts`:
- Around line 408-410: Remove the
this.context.subscriptions.push(this.registration) call from the installation
flow around register and retain registration disposal through this.registration
in uninstall(). Ensure repeated install/uninstall cycles do not accumulate
disposed registrations while preserving the existing register and return
behavior.
🪄 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: CHILL
Plan: Pro Plus
Run ID: 255b762d-a945-475a-ad6b-31f59611d946
⛔ Files ignored due to path filters (1)
resources/vision-mcp/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (34)
CHANGELOG.mdREADME.mdllms.txtpackage.jsonpackage.nls.jsonpackage.nls.zh-cn.jsonresources/vision-mcp/package.jsonresources/walkthrough/enable-vision.mdresources/walkthrough/install-vision-mcp.mdsrc/auth.tssrc/config.tssrc/consts.tssrc/i18n.tssrc/provider/index.tssrc/provider/models.tssrc/provider/stream.tssrc/provider/thinking.tssrc/provider/tokens.test.tssrc/provider/tokens.tssrc/provider/vision/cache.test.tssrc/provider/vision/cache.tssrc/provider/vision/consts.tssrc/provider/vision/resolve.test.tssrc/provider/vision/resolve.tssrc/runtime/mcp-package.test.tssrc/runtime/mcp-package.tssrc/runtime/mcp.test.tssrc/runtime/mcp.tssrc/runtime/provider.tssrc/test-helpers.tssrc/types.tssrc/vision-tool.test.tssrc/vision-tool.tstsconfig.json
KiwiGaze
left a comment
There was a problem hiding this comment.
Three findings from reviewing this branch against the pinned @z_ai/mcp-server@0.1.4 package contents. Each was verified by executing or reading the pinned package rather than inferred from its docs.
Not duplicated with the existing CodeRabbit review. A fourth item I looked at — a race in runProbe where exit can fire before stdout is drained, silently skipping the Node version gate — is already covered by CodeRabbit's actionable comment on src/runtime/mcp.ts:97, so it is omitted here.
KiwiGaze
left a comment
There was a problem hiding this comment.
Two additional verified findings from the supplied review list. Items 1 and 2 are already present in the current review threads, so they are omitted here to avoid duplicates.
|
@codex @CodeRabbit review |
|
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/runtime/mcp-package.ts (1)
114-134: 🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy liftMake package lifecycle transitions rollback-safe.
Both install and uninstall can leave Vision unavailable while state no longer reflects the filesystem.
src/runtime/mcp-package.ts#L114-L134: preserve the existing installation until the staged directory has been successfully promoted, or use a backup-and-rollback sequence if promotion fails.src/runtime/mcp.ts#L307-L357: clear persisted state and dispose registration only after uninstall succeeds; otherwise retain or mark the installation as pending cleanup.🤖 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 `@src/runtime/mcp-package.ts` around lines 114 - 134, The package lifecycle transitions are not rollback-safe. In src/runtime/mcp-package.ts:114-134, update install() to preserve the existing installation until staging is successfully promoted, or restore it if promotion fails. In src/runtime/mcp.ts:307-357, update uninstall() so persisted state is cleared and registration disposed only after uninstall succeeds; otherwise retain the state or mark the installation pending cleanup.
🤖 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.
Outside diff comments:
In `@src/runtime/mcp-package.ts`:
- Around line 114-134: The package lifecycle transitions are not rollback-safe.
In src/runtime/mcp-package.ts:114-134, update install() to preserve the existing
installation until staging is successfully promoted, or restore it if promotion
fails. In src/runtime/mcp.ts:307-357, update uninstall() so persisted state is
cleared and registration disposed only after uninstall succeeds; otherwise
retain the state or mark the installation pending cleanup.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: cf32d7e1-db33-4ade-8e5e-535010e45d9a
📒 Files selected for processing (11)
src/consts.tssrc/provider/tokens.test.tssrc/provider/tokens.tssrc/provider/vision/consts.tssrc/provider/vision/parts.tssrc/provider/vision/resolve.test.tssrc/provider/vision/resolve.tssrc/runtime/mcp-package.test.tssrc/runtime/mcp-package.tssrc/runtime/mcp.test.tssrc/runtime/mcp.ts
🚧 Files skipped from review as they are similar to previous changes (7)
- src/provider/vision/consts.ts
- src/runtime/mcp-package.test.ts
- src/provider/vision/resolve.test.ts
- src/provider/tokens.test.ts
- src/provider/vision/resolve.ts
- src/runtime/mcp.test.ts
- src/consts.ts
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 88e6788a4b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed the outside-diff package lifecycle finding in 5d71178. Installation now preserves and restores the previous package if promotion fails, successful promotion remains valid if old-backup cleanup fails, and uninstall retains registration and persisted state when package removal fails. Regression coverage exercises all three failure paths. Verification: 204 tests, typecheck, lint, and git diff check passed under Node 22.22. |
|
@codex @CodeRabbit review |
|
✅ Action performedReview finished.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5d71178db7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex @CodeRabbit review |
|
✅ Action performedReview finished.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4b18a78747
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (3)
src/runtime/mcp.test.ts (1)
665-667: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueNegative
toHaveBeenCalledWithis arg-exact, so this can pass vacuously.
not.toHaveBeenCalledWith('visionMcp.uninstall.done')only fails on a call with exactly that one argument. If the success path ever passes an action button alongside the message, these tests would keep passing. Asserting on the message argument alone is more robust.🧪 Suggested stricter assertion
- expect(mocks.showInformationMessage).not.toHaveBeenCalledWith( - 'visionMcp.uninstall.done', - ); + expect( + mocks.showInformationMessage.mock.calls.map((call) => call[0]), + ).not.toContain('visionMcp.uninstall.done');Also applies to: 685-687
🤖 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 `@src/runtime/mcp.test.ts` around lines 665 - 667, Update the negative assertions in the uninstall tests around the existing showInformationMessage expectations to verify that no call contains the message argument, regardless of additional action-button arguments. Apply the same message-only matching approach to both assertion locations.src/auth.test.ts (1)
48-54: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winConsider pinning the settings-key fail-closed case too.
This asserts no fallback from the chat secret. The other fallback path that matters for credential isolation is
getSettingsApiKey(): with no secrets stored at all,getApiKey()returnssettings.secretwhilegetVisionApiKey()must stayundefined.🧪 Suggested additional case
+ it('does not fall back to the settings credential for the Vision key', async () => { + const authManager = new AuthManager(fakeContext(new Map())); + + expect(await authManager.getApiKey()).toBe('settings.secret'); + expect(await authManager.getVisionApiKey()).toBeUndefined(); + });🤖 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 `@src/auth.test.ts` around lines 48 - 54, Add a test covering the settings-key credential isolation case: construct AuthManager with no stored secrets, assert getApiKey() returns the settings credential, and assert getVisionApiKey() remains undefined. Keep the existing chat-secret fallback test unchanged.pnpm-workspace.yaml (1)
1-3: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winPin pnpm to 10.26+ before using
allowBuilds.
allowBuildswas added in pnpm v10.26; before that, pnpm does not recognize it and falls back to existing build allowlist settings, so these entries may be ignored. Add apackageManager/runtime pin or switch back toonlyBuiltDependenciesif older pnpm versions are supported.🤖 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 `@pnpm-workspace.yaml` around lines 1 - 3, Ensure the workspace uses pnpm 10.26 or newer before relying on the allowBuilds configuration in pnpm-workspace.yaml, by adding or updating the repository’s packageManager/runtime version pin. If older pnpm versions must remain supported, replace allowBuilds with onlyBuiltDependencies while preserving the '`@vscode/vsce-sign`' and keytar entries.
🤖 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 `@src/runtime/mcp-package.ts`:
- Around line 136-157: Update the promotion failure handling around renamePath
and the promotionError/restoreError catches so backupDir is also cleaned up on
any failed promotion, including when restoring the previous installation fails.
Perform this as best-effort cleanup without masking the original promotion or
aggregate restore error, while preserving the existing successful-install backup
removal.
In `@src/runtime/mcp.ts`:
- Around line 323-415: Update install() and uninstall() to use the existing
installInProgress flag as a shared operation lock. Have uninstall() return or
otherwise avoid starting while installation is active, and ensure install() sets
and clears the flag across its entire operation, including failure paths, so
uninstall cannot interleave with registration, state persistence, or package
cleanup.
- Around line 719-722: Update deleteTempImages to catch and ignore
vscode.FileSystemError.FileNotFound when deleting the directory returned by
getVisionTempDir, while preserving propagation of other deletion errors so
cleanupFailures still records genuine failures.
---
Nitpick comments:
In `@pnpm-workspace.yaml`:
- Around line 1-3: Ensure the workspace uses pnpm 10.26 or newer before relying
on the allowBuilds configuration in pnpm-workspace.yaml, by adding or updating
the repository’s packageManager/runtime version pin. If older pnpm versions must
remain supported, replace allowBuilds with onlyBuiltDependencies while
preserving the '`@vscode/vsce-sign`' and keytar entries.
In `@src/auth.test.ts`:
- Around line 48-54: Add a test covering the settings-key credential isolation
case: construct AuthManager with no stored secrets, assert getApiKey() returns
the settings credential, and assert getVisionApiKey() remains undefined. Keep
the existing chat-secret fallback test unchanged.
In `@src/runtime/mcp.test.ts`:
- Around line 665-667: Update the negative assertions in the uninstall tests
around the existing showInformationMessage expectations to verify that no call
contains the message argument, regardless of additional action-button arguments.
Apply the same message-only matching approach to both assertion locations.
🪄 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: CHILL
Plan: Pro Plus
Run ID: 7f15d6de-f612-4d96-adc9-320ba0f27c48
📒 Files selected for processing (32)
.vscodeignoreCHANGELOG.mdREADME.mdllms.txtpackage.jsonpackage.nls.jsonpackage.nls.zh-cn.jsonpnpm-workspace.yamlresources/walkthrough/enable-vision.mdsrc/auth.test.tssrc/auth.tssrc/config.tssrc/consts.tssrc/i18n.tssrc/provider/convert.tssrc/provider/index.tssrc/provider/models.test.tssrc/provider/models.tssrc/provider/thinking.tssrc/provider/tokens.tssrc/provider/vision/cache.test.tssrc/provider/vision/cache.tssrc/provider/vision/resolve.test.tssrc/provider/vision/resolve.tssrc/runtime/mcp-package.test.tssrc/runtime/mcp-package.tssrc/runtime/mcp.test.tssrc/runtime/mcp.tssrc/runtime/provider.tssrc/types.tssrc/vision-tool.test.tssrc/vision-tool.ts
🚧 Files skipped from review as they are similar to previous changes (19)
- resources/walkthrough/enable-vision.md
- src/provider/vision/cache.test.ts
- src/provider/models.ts
- src/provider/vision/cache.ts
- src/vision-tool.test.ts
- src/vision-tool.ts
- src/runtime/provider.ts
- src/config.ts
- src/runtime/mcp-package.test.ts
- llms.txt
- src/provider/index.ts
- package.nls.json
- package.nls.zh-cn.json
- src/types.ts
- src/provider/tokens.ts
- package.json
- README.md
- src/consts.ts
- src/provider/vision/resolve.test.ts
Summary
Related issue
Type of change
Checklist
pnpm exec tsc -p ./compiles with no errors.pnpm exec vsce package --no-dependencies -o dist/packages cleanly.types, no logic comments, no new runtime dependencies).
Summary by CodeRabbit