feat+docs: settings JSON schema + image input + migration guide#56
Merged
Conversation
Three pieces of polish that don't depend on external resources.
· packages/core/schemas/settings.schema.json (NEW, ~165 lines)
- Full draft-07 JSON schema for settings.json: top-level
model/baseURL/apiKeyHelper/effortLevel/permissions/autoMode/sandbox/
hooks/allowedHttpHookUrls/disableAllHooks/memoryLoadCapKB/
outputStyle/skillOverrides/mcpServers/disabledPlugins/worktree/voice.
- Definitions: HookMatcherList, HookHandler, McpServer.
- Published as a static asset (added to package.json files[]).
- Users add `"$schema": "https://deepcode.dev/schemas/settings.schema.json"`
to get IDE autocomplete + validation.
· packages/core/src/config/schema.ts (NEW)
- settingsSchemaJson() / settingsSchemaObject() — cached loaders.
- validateSettingsShallow(obj) — fast checks for model / effortLevel
/ defaultMode / hook event names. 7 unit tests.
· packages/core/src/vision/index.ts (NEW)
- VisionProvider interface + ImageContentBlock shape.
- loadImage() resolves data URL / file path / http(s) URL into
{ contentType, base64, byteSize }.
- parseDataUrl(), guessContentType() helpers.
- StubVisionProvider (default; rejects images).
- OpenAICompatVisionProvider (encodes as data URL → image_url payload,
enforces maxBytes default 20 MB). Works against Qwen-VL / GPT-4o /
any OpenAI-compatible multimodal endpoint.
- 14 unit tests covering data URL + local file + remote URL + size
cap.
· docs/MIGRATION_FROM_CLAUDE_CODE.md (NEW)
- 5-minute switch (rename ~/.claude → ~/.deepcode + CLAUDE.md →
AGENTS.md).
- Field-by-field mapping (credentials/settings/skills/agents/plugins).
- Settings.json model field map.
- Slash command parity table.
- Hooks + permissions + sandbox + plugins + MCP + sub-agents:
identical schemas.
- Behaviors that DIFFER (DeepSeek-only models, no image input until
vision provider configured, pipeline-aware sandbox bypass).
- Behaviors NEW in DeepCode (auto classifier, effort-bench,
LSP bridge, VS Code extension).
Tests: 522 → 549 passing (+27: 7 schema + 14 vision + adjustments).
Build clean across all 6 packages.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
settings.schema.json (draft-07, full coverage) + validateSettingsShallow + VisionProvider abstraction (Stub + OpenAICompat) + Claude Code migration guide. 27 new tests. 522→549 passing.