build(catalog): catalogue recognize_image and allowlist model-agnostic vision packages

Register the tool-image-recognition package in the tool-catalog generator so
its schema is catalogued, and add the model-agnostic vision seam/provider/
bundle to the README Model Experience omission allowlist.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Pine
2026-08-14 11:15:39 +08:00
parent b6b982dc87
commit 19b39bc2e0
3 changed files with 51 additions and 0 deletions
+16
View File
@@ -31,6 +31,8 @@ import PlanModeController from '@deepseek-ai/dsh-plan-mode'
import WebRuntime from '@deepseek-ai/dsh-web'
import * as WebSearchExa from '@deepseek-ai/dsh-web-search-exa'
import * as WebFetchLocal from '@deepseek-ai/dsh-web-fetch-http'
import ImageRecognitionRuntime from '@deepseek-ai/dsh-image-recognition'
import * as ToolImageRecognition from '@deepseek-ai/dsh-tool-image-recognition'
import SubagentRuntime from '@deepseek-ai/dsh-subagent'
import type { SubagentProvider, SubagentReportDelivery } from '@deepseek-ai/dsh-subagent'
import * as ToolSubagentControl from '@deepseek-ai/dsh-tool-subagent-control'
@@ -551,6 +553,20 @@ const TOOL_PACKAGES: ToolPackage[] = [
note:
'web_search and web_fetch keep provider selection behind ctx.web so model-visible schemas stay stable across backend swaps.',
},
{
pkg: '@deepseek-ai/dsh-tool-image-recognition',
dir: 'tool-image-recognition',
source: 'packages/vision/tool-image-recognition/src/index.ts',
requires: ['ctx.tools', 'ctx.skills', 'ctx.imageRecognition', 'ctx.systemPrompt'],
writes: ['tool/call', 'tool/result'],
async mount(ctx) {
await ctx.plugin(SkillRegistry)
await ctx.plugin(ImageRecognitionRuntime)
await ctx.plugin(ToolImageRecognition)
},
note:
'recognize_image keeps provider selection behind ctx.imageRecognition so the model-visible schema stays stable across backend swaps.',
},
]
/** One package's contribution to the catalog: its schemas plus attribution. */
@@ -31,6 +31,9 @@ interface SentenceContract {
*/
const NO_MODEL_EXPERIENCE_SECTION: Readonly<Record<string, string>> = {
'packages/core/scope': 'The package is a model-agnostic registration and lifecycle primitive; model-facing consumers own any context selection.',
'packages/vision/image-recognition': 'The seam is a model-agnostic provider registry; the model-facing tool and skill live in dsh-tool-image-recognition.',
'packages/vision/image-recognition-http': 'The provider is a model-agnostic backend; the model-facing tool and skill live in dsh-tool-image-recognition.',
'packages/bundle/image-recognition': 'The bundle mounts model-agnostic service/backend packages; the model-facing tool and skill live in dsh-tool-image-recognition.',
'packages/util/brand': 'The package is a type-only primitive erased at compile time.',
'packages/util/home-paths': 'The package only resolves harness-owned host paths; model-facing consumers own any rendered use.',
'packages/util/launch-environment': 'The package only resolves host environment values; model-facing consumers own any rendered use.',