# Conflicts: # docs/architecture.i18n.yaml # docs/architecture.md # docs/architecture.zh.md # docs/config-catalog.md # docs/core-data-structures/core.i18n.yaml # docs/core-data-structures/llm-streaming.i18n.yaml # docs/module-graph.md # examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl # packages/README.i18n.yaml # packages/client/connection/src/client/fixture.ts # packages/client/connection/src/index.ts # packages/client/runtime/README.i18n.yaml # packages/client/runtime/README.md # packages/client/runtime/README.zh.md # packages/client/runtime/src/client/sessions/conversation.ts # packages/client/ui-conversation/README.i18n.yaml # packages/client/ui-conversation/src/client/apply.ts # packages/client/ui-conversation/src/client/chat/ChatView.tsx # packages/client/ui-conversation/src/client/chat/MessageItem.tsx # packages/client/ui-conversation/src/client/contract/slots.ts # packages/client/ui-trajectory/tests/views.spec.tsx # packages/compact/compact-basic/README.i18n.yaml # packages/cordis/tool-cordis/src/api-catalog.ts # packages/host/apiproxy/src/api-proxy.ts # packages/host/apiproxy/src/api/index.ts # packages/host/apiproxy/src/api/sessions.ts # packages/host/apiproxy/src/index.ts # packages/host/apiproxy/tests/fetch-carrier.spec.ts # packages/llm/llm-deepseek/src/adapter.ts # packages/llm/llm-deepseek/tests/adapter.spec.ts # packages/llm/llm-deepseek/tests/serialize.spec.ts # packages/llm/llm-pi-ai/README.i18n.yaml # packages/llm/llm-pi-ai/src/adapter.ts # packages/llm/llm-pi-ai/src/index.ts # packages/llm/llm-pi-ai/tests/adapter.spec.ts # packages/llm/llm/src/types.ts # packages/ui/tui/README.i18n.yaml # packages/ui/tui/src/index.ts # packages/ui/tui/tests/tui.spec.ts
48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
/**
|
|
* host domain zod schemas (names derived from map keys).
|
|
*/
|
|
|
|
import { z } from 'zod'
|
|
import type { ModelModality } from '@deepseek-ai/dsh-llm'
|
|
import type { RequestPayload, ResponseValue } from './rpc-map.ts'
|
|
import type { Wire } from './rpc.schema.ts'
|
|
import { imageMediaTypeSchema } from './sessions.schema.ts'
|
|
|
|
/** Merge-extensible modality passthrough: declaration merging cannot extend a runtime Zod union. */
|
|
const modalitySchema = z.string() as unknown as z.ZodType<ModelModality>
|
|
|
|
/** host.describe request payload (empty object literal). */
|
|
export const hostDescribeRequestSchema = z.object({}) satisfies z.ZodType<Wire<RequestPayload<'host.describe'>>>
|
|
|
|
/** host.describe response value. */
|
|
export const hostDescribeValueSchema = z.object({
|
|
version: z.string(),
|
|
cwd: z.string(),
|
|
provider: z.string().optional(),
|
|
model: z.string().optional(),
|
|
activeModel: z.object({
|
|
provider: z.string(),
|
|
id: z.string(),
|
|
name: z.string(),
|
|
description: z.string().optional(),
|
|
inputModalities: z.array(modalitySchema).optional(),
|
|
outputModalities: z.array(modalitySchema).optional(),
|
|
}).optional(),
|
|
imageLimits: z.object({
|
|
maxImageBytes: z.number().int().positive(),
|
|
maxImagesPerMessage: z.number().int().positive(),
|
|
maxMessageImageBytes: z.number().int().positive(),
|
|
maxImagePixels: z.number().int().positive(),
|
|
mediaTypes: z.array(imageMediaTypeSchema),
|
|
}).optional(),
|
|
attachedSessions: z.number().int().nonnegative(),
|
|
}) satisfies z.ZodType<Wire<ResponseValue<'host.describe'>>>
|
|
|
|
/** host.pickDirectory request payload (empty object literal). */
|
|
export const hostPickDirectoryRequestSchema = z.object({}) satisfies z.ZodType<Wire<RequestPayload<'host.pickDirectory'>>>
|
|
|
|
/** host.pickDirectory response value; null means the user cancelled. */
|
|
export const hostPickDirectoryValueSchema = z.object({
|
|
path: z.string().nullable(),
|
|
}) satisfies z.ZodType<Wire<ResponseValue<'host.pickDirectory'>>>
|