mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
116 lines
4.3 KiB
TypeScript
116 lines
4.3 KiB
TypeScript
/**
|
|
* llm domain zod schemas (names derived from map keys: llmProvidersRequestSchema /
|
|
* llmProvidersValueSchema / llmModelsRequestSchema / llmModelsValueSchema).
|
|
*/
|
|
|
|
import { z } from 'zod'
|
|
import type { RequestPayload, ResponseValue } from './rpc-map.ts'
|
|
import type { Wire } from './rpc.schema.ts'
|
|
import type { ConfigurableProviderView, DiscoveredModelView } from './llm.ts'
|
|
import type {
|
|
ModelCatalogFailure,
|
|
ModelCatalogModel,
|
|
ModelSelection,
|
|
ModelProviderGroup,
|
|
ModelReasoning,
|
|
ModelReasoningEffort,
|
|
} from '@deepseek-ai/dsh-api-session-controller/types'
|
|
|
|
/** One adapter-owned reasoning effort. */
|
|
const modelReasoningEffortSchema = z.object({
|
|
id: z.string().min(1),
|
|
name: z.string().min(1),
|
|
description: z.string().optional(),
|
|
}) satisfies z.ZodType<Wire<ModelReasoningEffort>>
|
|
|
|
/** Exact-model reasoning metadata. */
|
|
const modelReasoningSchema = z.object({
|
|
efforts: z.array(modelReasoningEffortSchema).min(1),
|
|
defaultEffort: z.string().min(1).optional(),
|
|
}) satisfies z.ZodType<Wire<ModelReasoning>>
|
|
|
|
/** One advisory model entry inside a provider group. */
|
|
const modelCatalogModelSchema = z.object({
|
|
id: z.string().min(1),
|
|
name: z.string().min(1),
|
|
description: z.string().optional(),
|
|
reasoning: modelReasoningSchema.optional(),
|
|
}) satisfies z.ZodType<Wire<ModelCatalogModel>>
|
|
|
|
/** One successfully loaded provider group. */
|
|
const modelProviderGroupSchema = z.object({
|
|
id: z.string().min(1),
|
|
name: z.string().min(1),
|
|
models: z.array(modelCatalogModelSchema),
|
|
}) satisfies z.ZodType<Wire<ModelProviderGroup>>
|
|
|
|
/** One provider-local catalog failure. */
|
|
const modelCatalogFailureSchema = z.object({
|
|
id: z.string().min(1),
|
|
name: z.string().min(1),
|
|
message: z.string(),
|
|
}) satisfies z.ZodType<Wire<ModelCatalogFailure>>
|
|
|
|
/** Complete model selection used as the Host default. */
|
|
const modelSelectionSchema = z.object({
|
|
provider: z.string().min(1),
|
|
model: z.string().min(1),
|
|
reasoningEffort: z.string().min(1).optional(),
|
|
}) satisfies z.ZodType<Wire<ModelSelection>>
|
|
|
|
/** ConfigurableProviderView row of llm.providers. */
|
|
export const configurableProviderViewSchema = z.object({
|
|
provider: z.string().min(1),
|
|
displayName: z.string().min(1),
|
|
settingsNs: z.string(),
|
|
settingsPath: z.array(z.string()),
|
|
active: z.boolean(),
|
|
declared: z.boolean().optional(),
|
|
}) satisfies z.ZodType<Wire<ConfigurableProviderView>>
|
|
|
|
/** llm.providers request payload. */
|
|
export const llmProvidersRequestSchema = z.object({}) satisfies z.ZodType<Wire<RequestPayload<'llm.providers'>>>
|
|
|
|
/** llm.providers response value. */
|
|
export const llmProvidersValueSchema = z.object({
|
|
providers: z.array(configurableProviderViewSchema),
|
|
}) satisfies z.ZodType<Wire<ResponseValue<'llm.providers'>>>
|
|
|
|
/** llm.models request payload. */
|
|
export const llmModelsRequestSchema = z.object({}) satisfies z.ZodType<Wire<RequestPayload<'llm.models'>>>
|
|
|
|
/** llm.models response value. */
|
|
export const llmModelsValueSchema = z.object({
|
|
default: modelSelectionSchema,
|
|
routableProviders: z.array(z.string().min(1)),
|
|
groups: z.array(modelProviderGroupSchema),
|
|
failures: z.array(modelCatalogFailureSchema),
|
|
}) satisfies z.ZodType<Wire<ResponseValue<'llm.models'>>>
|
|
|
|
/** DiscoveredModelView row of llm.discoverModels. */
|
|
export const discoveredModelViewSchema = z.object({
|
|
id: z.string().min(1),
|
|
name: z.string().min(1).optional(),
|
|
contextWindow: z.number().int().positive().optional(),
|
|
maxTokens: z.number().int().positive().optional(),
|
|
}) satisfies z.ZodType<Wire<DiscoveredModelView>>
|
|
|
|
/** llm.discoverModels request payload. */
|
|
export const llmDiscoverModelsRequestSchema = z.object({
|
|
settingsNs: z.string().min(1),
|
|
provider: z.string().min(1).optional(),
|
|
baseURL: z.string().min(1).optional(),
|
|
api: z.string().min(1).optional(),
|
|
// Write-only at the host: used for this one interrogation, never stored and
|
|
// never returned. It does ride the client's outgoing envelope like every
|
|
// other secret-bearing payload (`settings/update`), which
|
|
// `subscribeEnvelopes()` observers can see — redacting that tap is a
|
|
// configuration-plane-wide change, not this method's to make alone.
|
|
apiKey: z.string().min(1).optional(),
|
|
}) satisfies z.ZodType<Wire<RequestPayload<'llm.discoverModels'>>>
|
|
|
|
/** llm.discoverModels response value. */
|
|
export const llmDiscoverModelsValueSchema = z.object({
|
|
models: z.array(discoveredModelViewSchema),
|
|
}) satisfies z.ZodType<Wire<ResponseValue<'llm.discoverModels'>>>
|