@nekro-nxt/contracts 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +1433 -194
- package/dist/index.mjs.map +1 -1
- package/lib/types/community.d.ts +9 -0
- package/lib/types/community.d.ts.map +1 -1
- package/lib/types/config-schema.d.ts +16 -2
- package/lib/types/config-schema.d.ts.map +1 -1
- package/lib/types/credentials.d.ts +328 -0
- package/lib/types/credentials.d.ts.map +1 -0
- package/lib/types/domain.d.ts +11 -2
- package/lib/types/domain.d.ts.map +1 -1
- package/lib/types/extension-capabilities.d.ts +151 -5
- package/lib/types/extension-capabilities.d.ts.map +1 -1
- package/lib/types/extension-ui.d.ts +117 -6
- package/lib/types/extension-ui.d.ts.map +1 -1
- package/lib/types/host-api.d.ts +3494 -603
- package/lib/types/host-api.d.ts.map +1 -1
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/linked-accounts.d.ts +100 -0
- package/lib/types/linked-accounts.d.ts.map +1 -0
- package/lib/types/response-timing.d.ts +60 -0
- package/lib/types/response-timing.d.ts.map +1 -0
- package/lib/types/runtime-compatibility.d.ts +2 -2
- package/package.json +1 -1
- package/src/community.ts +7 -0
- package/src/config-schema.ts +33 -2
- package/src/credentials.ts +260 -0
- package/src/domain.ts +15 -2
- package/src/extension-capabilities.ts +260 -8
- package/src/extension-ui.ts +16 -1
- package/src/host-api.ts +911 -167
- package/src/index.ts +3 -0
- package/src/linked-accounts.ts +77 -0
- package/src/management-api.ts +1 -1
- package/src/response-timing.ts +77 -0
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["NonEmptyStringSchema"],"sources":["../src/domain.ts","../src/config-schema.ts","../src/extension-capabilities.ts","../src/extension-ui.ts","../src/commands.ts","../src/logs.ts","../src/runtime-compatibility.ts","../src/management-api.ts","../src/community.ts","../src/community-personas.ts","../src/community-feedback.ts","../src/community-feedback-host.ts","../src/host-api.ts"],"sourcesContent":["import { z } from 'zod'\n\n/** Rendered send-tool result consumed by both the agent and the product detail view. */\nexport const MessageDeliverySummarySchema = z\n .object({\n status: z.enum(['sent', 'partially-sent', 'failed', 'unknown']),\n issues: z\n .array(\n z\n .object({\n status: z.enum(['failed', 'unknown']),\n message: z.string().max(1000),\n kind: z.enum(['transient', 'permanent', 'rate-limited', 'authentication', 'invalid']).optional(),\n action: z.string().max(120).optional(),\n retcode: z.number().int().safe().optional(),\n })\n .strict(),\n )\n .max(20),\n omittedIssues: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nconst brandedId = <Prefix extends string, Brand extends string>(prefix: Prefix, brand: Brand) =>\n z\n .string()\n .regex(new RegExp(`^${prefix}_[0-9A-Za-z]+$`), `${brand} has an invalid format.`)\n .brand(brand)\n\nexport const AgentIdSchema = brandedId('agt', 'AgentId')\nexport const AgentRevisionIdSchema = brandedId('arev', 'AgentRevisionId')\nexport const ConnectionIdSchema = brandedId('con', 'ConnectionId')\nexport const ConnectionEventIdSchema = brandedId('cev', 'ConnectionEventId')\nexport const ChannelIdSchema = brandedId('chn', 'ChannelId')\nexport const ChannelEventIdSchema = brandedId('evt', 'ChannelEventId')\nexport const PlatformIdentityIdSchema = brandedId('pid', 'PlatformIdentityId')\nexport const ChannelMemberIdSchema = brandedId('mbr', 'ChannelMemberId')\nexport const AdmissionIdSchema = brandedId('adm', 'AdmissionId')\nexport const OutboundIntentIdSchema = brandedId('out', 'OutboundIntentId')\nexport const LogicalMessageIdSchema = brandedId('msg', 'LogicalMessageId')\nexport const PhysicalDeliveryIdSchema = brandedId('phy', 'PhysicalDeliveryId')\nexport const AssetIdSchema = brandedId('ast', 'AssetId')\nexport const EpisodeIdSchema = brandedId('eps', 'EpisodeId')\nexport const EpisodeHandoffIdSchema = brandedId('hof', 'EpisodeHandoffId')\nexport const ExtensionIdSchema = brandedId('ext', 'ExtensionId')\nexport const ExtensionRevisionIdSchema = brandedId('xrv', 'ExtensionRevisionId')\nexport const DshPluginPackageIdSchema = brandedId('dsp', 'DshPluginPackageId')\nexport const DshPluginEntryIdSchema = brandedId('dse', 'DshPluginEntryId')\nexport const HostUiPageInstanceIdSchema = brandedId('hup', 'HostUiPageInstanceId')\nexport const AuthoringTaskIdSchema = brandedId('aut', 'AuthoringTaskId')\nexport const AuthoringAttemptIdSchema = brandedId('aua', 'AuthoringAttemptId')\nexport const SubConversationIdSchema = brandedId('cnv', 'SubConversationId')\n\nexport type AgentId = z.infer<typeof AgentIdSchema>\nexport type SubConversationId = z.infer<typeof SubConversationIdSchema>\nexport type AgentRevisionId = z.infer<typeof AgentRevisionIdSchema>\nexport type ConnectionId = z.infer<typeof ConnectionIdSchema>\nexport type ConnectionEventId = z.infer<typeof ConnectionEventIdSchema>\nexport type ChannelId = z.infer<typeof ChannelIdSchema>\nexport type ChannelEventId = z.infer<typeof ChannelEventIdSchema>\nexport type PlatformIdentityId = z.infer<typeof PlatformIdentityIdSchema>\nexport type ChannelMemberId = z.infer<typeof ChannelMemberIdSchema>\nexport type AdmissionId = z.infer<typeof AdmissionIdSchema>\nexport type OutboundIntentId = z.infer<typeof OutboundIntentIdSchema>\nexport type LogicalMessageId = z.infer<typeof LogicalMessageIdSchema>\nexport type PhysicalDeliveryId = z.infer<typeof PhysicalDeliveryIdSchema>\nexport type AssetId = z.infer<typeof AssetIdSchema>\nexport type EpisodeId = z.infer<typeof EpisodeIdSchema>\nexport type EpisodeHandoffId = z.infer<typeof EpisodeHandoffIdSchema>\nexport type ExtensionId = z.infer<typeof ExtensionIdSchema>\nexport type ExtensionRevisionId = z.infer<typeof ExtensionRevisionIdSchema>\nexport type DshPluginPackageId = z.infer<typeof DshPluginPackageIdSchema>\nexport type DshPluginEntryId = z.infer<typeof DshPluginEntryIdSchema>\nexport type HostUiPageInstanceId = z.infer<typeof HostUiPageInstanceIdSchema>\nexport type AuthoringTaskId = z.infer<typeof AuthoringTaskIdSchema>\nexport type AuthoringAttemptId = z.infer<typeof AuthoringAttemptIdSchema>\n\nexport const AdapterActivityKeySchema = z\n .string()\n .trim()\n .min(1)\n .max(128)\n .regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/u, 'Adapter activity key has an invalid format.')\n\nexport type AdapterActivityKey = z.infer<typeof AdapterActivityKeySchema>\n\nconst PromptTextSegmentSchema = z.object({ type: z.literal('text'), text: z.string() }).strict()\n\nconst PromptReferenceLabelSchema = z.string().trim().min(1).max(120)\n\nconst PromptReferenceSegmentSchema = z.discriminatedUnion('kind', [\n z\n .object({\n type: z.literal('reference'),\n kind: z.literal('platform-user'),\n targetId: PlatformIdentityIdSchema,\n labelSnapshot: PromptReferenceLabelSchema,\n })\n .strict(),\n z\n .object({\n type: z.literal('reference'),\n kind: z.literal('channel'),\n targetId: ChannelIdSchema,\n labelSnapshot: PromptReferenceLabelSchema,\n })\n .strict(),\n z\n .object({\n type: z.literal('reference'),\n kind: z.literal('extension'),\n targetId: ExtensionIdSchema,\n labelSnapshot: PromptReferenceLabelSchema,\n })\n .strict(),\n])\n\nexport const PromptSegmentSchema = z.union([PromptTextSegmentSchema, PromptReferenceSegmentSchema])\n\nexport const PROMPT_DOCUMENT_MAX_REFERENCES = 128\nexport const PROMPT_DOCUMENT_MAX_PLAIN_TEXT_LENGTH = 64 * 1024\n\nexport const PromptDocumentV1Schema = z\n .object({ version: z.literal(1), segments: z.array(PromptSegmentSchema) })\n .strict()\n .superRefine((document, context) => {\n const referenceCount = document.segments.filter((segment) => segment.type === 'reference').length\n if (referenceCount > PROMPT_DOCUMENT_MAX_REFERENCES) {\n context.addIssue({\n code: 'custom',\n message: `Prompt document must not contain more than ${PROMPT_DOCUMENT_MAX_REFERENCES} references.`,\n path: ['segments'],\n })\n }\n const plainTextLength = document.segments.reduce(\n (length, segment) => length + (segment.type === 'text' ? segment.text.length : segment.labelSnapshot.length + 1),\n 0,\n )\n if (plainTextLength > PROMPT_DOCUMENT_MAX_PLAIN_TEXT_LENGTH) {\n context.addIssue({\n code: 'custom',\n message: `Prompt document plain-text projection must not exceed ${PROMPT_DOCUMENT_MAX_PLAIN_TEXT_LENGTH} characters.`,\n path: ['segments'],\n })\n }\n })\n\nexport type PromptSegment = z.output<typeof PromptSegmentSchema>\nexport type PromptDocumentV1 = z.output<typeof PromptDocumentV1Schema>\n\nexport const promptDocumentFromText = (text: string): PromptDocumentV1 =>\n normalizePromptDocument({ version: 1, segments: text.length === 0 ? [] : [{ type: 'text', text }] })\n\nexport const promptDocumentPlainText = (document: PromptDocumentV1): string =>\n document.segments.map((segment) => (segment.type === 'text' ? segment.text : `@${segment.labelSnapshot}`)).join('')\n\nexport const normalizePromptDocument = (input: unknown): PromptDocumentV1 => {\n const parsed = PromptDocumentV1Schema.parse(input)\n const segments: PromptSegment[] = []\n for (const segment of parsed.segments) {\n if (segment.type === 'text') {\n if (segment.text.length === 0) continue\n const previous = segments.at(-1)\n if (previous?.type === 'text') {\n segments[segments.length - 1] = { type: 'text', text: `${previous.text}${segment.text}` }\n } else {\n segments.push(segment)\n }\n continue\n }\n segments.push(segment)\n }\n return PromptDocumentV1Schema.parse({ version: 1, segments })\n}\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { readonly [key: string]: JsonValue }\n\nexport const JsonValueSchema = z.json()\n\nexport function parseJsonValue(input: unknown): JsonValue {\n return JsonValueSchema.parse(input)\n}\n\n/** Package identity and source for one DSH extension visible in the current Host. */\nexport interface DshPluginCatalogEntry {\n readonly packageName: string\n readonly packageVersion: string\n readonly origin: 'builtin' | 'profile' | 'dynamic' | 'installed'\n readonly settingsNamespaces: readonly string[]\n readonly loadError?: { readonly code: string; readonly message: string }\n}\n\nexport type DshPluginInstallSource = 'registry' | 'tarball' | 'imported'\nexport type DshPluginActivationScope = 'host' | 'agent'\n\nexport interface DshPluginPackageRecord {\n readonly id: DshPluginPackageId\n readonly packageName: string\n readonly packageVersion: string\n readonly source: DshPluginInstallSource\n readonly packageDigest: string\n readonly integrity?: string\n readonly lockfileDigest: string\n readonly manifest: JsonValue\n readonly approvedBuilds: readonly string[]\n readonly installedAt: number\n}\n\nexport interface DshPluginEntryRecord {\n readonly id: DshPluginEntryId\n readonly packageId: DshPluginPackageId\n readonly entryKey: string\n readonly moduleName: string\n readonly suggestedScope: DshPluginActivationScope\n readonly selectedScope?: DshPluginActivationScope\n readonly config: JsonValue\n readonly createdAt: number\n}\n\nexport interface DshPluginActivationRecord {\n readonly entryId: DshPluginEntryId\n readonly targetKey: string\n readonly target: DshPluginActivationScope\n readonly agentId?: AgentId\n readonly activatedAt: number\n}\n\nexport interface DshPluginDiagnosticRecord {\n readonly entryId: DshPluginEntryId\n readonly targetKey: string\n readonly status: 'active' | 'load-failed' | 'restore-failed' | 'dispose-failed'\n readonly phase: 'import' | 'apply' | 'update' | 'dispose' | 'restore'\n readonly message?: string\n readonly observedAt: number\n}\n\nexport interface DshSettingsNamespaceView {\n readonly ns: string\n readonly schema: unknown\n readonly resolved: unknown\n readonly base?: unknown\n readonly user?: unknown\n readonly applies: 'live' | 'restart'\n readonly secrets: readonly { readonly path: readonly string[]; readonly set: boolean }[]\n readonly revision: number\n readonly writable: boolean\n readonly owner?: { readonly packageName: string; readonly packageVersion: string }\n}\n\nexport type DshSettingsPathOperation =\n | { readonly op: 'set'; readonly path: readonly string[]; readonly value: unknown }\n | { readonly op: 'unset'; readonly path: readonly string[] }\n\nexport interface DshSettingsMutationRequest {\n readonly expectedRevision: number\n readonly ops: readonly DshSettingsPathOperation[]\n}\n\nexport interface DshCredentialView {\n readonly configured: boolean\n readonly source?: string\n readonly writable: boolean\n}\n\nconst utf8ByteLength = (value: string): number => new TextEncoder().encode(value).byteLength\n\nexport const RICH_EXTENSION_MAX_BYTES = 64 * 1024\n\nexport const RichExtensionSchema = JsonValueSchema.refine(\n (value) => utf8ByteLength(JSON.stringify(value)) <= RICH_EXTENSION_MAX_BYTES,\n `rich extension must not exceed ${RICH_EXTENSION_MAX_BYTES} bytes.`,\n)\n\nexport const RichTargetUrlSchema = z\n .url()\n .max(2048)\n .refine((value) => {\n const protocol = new URL(value).protocol\n return protocol === 'http:' || protocol === 'https:'\n }, 'rich target URL must use HTTP or HTTPS.')\n\nexport const MessagePartSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), text: z.string() }).strict(),\n z.object({ type: z.literal('mention'), memberId: ChannelMemberIdSchema }).strict(),\n z\n .object({\n type: z.literal('image'),\n assetId: AssetIdSchema,\n alt: z.string().optional(),\n /**\n * The platform reported the picture as a sticker. A hint only: a sticker dragged in from a desktop client and\n * pictures from platforms without this signal arrive unmarked.\n */\n sticker: z.literal(true).optional(),\n })\n .strict(),\n z.object({ type: z.literal('file'), assetId: AssetIdSchema, name: z.string().optional() }).strict(),\n z.object({ type: z.literal('audio'), assetId: AssetIdSchema }).strict(),\n z.object({ type: z.literal('quote'), messageId: LogicalMessageIdSchema }).strict(),\n z\n .object({\n type: z.literal('rich'),\n adapterKey: z.string().trim().min(1).max(64),\n kind: z.string().trim().min(1).max(64),\n summary: z.string().trim().min(1).max(500),\n title: z.string().trim().min(1).max(200).optional(),\n source: z.string().trim().min(1).max(80).optional(),\n targetUrl: RichTargetUrlSchema.optional(),\n previewAssetId: AssetIdSchema.optional(),\n extension: RichExtensionSchema.optional(),\n })\n .strict(),\n])\n\nexport type MessagePart = z.infer<typeof MessagePartSchema>\n\nexport const MessagePartsSchema = z.array(MessagePartSchema)\nexport const NonEmptyMessagePartsSchema = MessagePartsSchema.min(1)\n\nexport function parseMessageParts(input: unknown): MessagePart[] {\n return MessagePartsSchema.parse(input)\n}\n\nconst collectRichAssetIds = (value: JsonValue | undefined, into: AssetId[], imagesOnly = false): void => {\n if (value === null || value === undefined || typeof value === 'boolean' || typeof value === 'number') return\n if (typeof value === 'string') return\n if (Array.isArray(value)) {\n for (const item of value) collectRichAssetIds(item, into, imagesOnly)\n return\n }\n for (const [key, child] of Object.entries(value)) {\n if (\n (key === 'imageAssetId' ||\n key === 'previewAssetId' ||\n (!imagesOnly && (key === 'audioAssetId' || key === 'fileAssetId'))) &&\n typeof child === 'string'\n ) {\n const parsed = AssetIdSchema.safeParse(child)\n if (parsed.success) into.push(parsed.data)\n } else {\n collectRichAssetIds(child, into, imagesOnly)\n }\n }\n}\n\nexport const messagePartAssetIds = (part: MessagePart): readonly AssetId[] => {\n if (part.type === 'image' || part.type === 'file' || part.type === 'audio') return [part.assetId]\n if (part.type !== 'rich') return []\n const ids: AssetId[] = []\n if (part.previewAssetId) ids.push(part.previewAssetId)\n collectRichAssetIds(part.extension, ids)\n return ids\n}\n\nexport const messagePartAssetId = (part: MessagePart): AssetId | undefined => messagePartAssetIds(part)[0]\n\n/** Only actual pictures enter visual context; forwarded files and recordings retain their own media kind. */\nexport const messagePartImageAssetIds = (part: MessagePart): readonly AssetId[] => {\n if (part.type === 'image') return [part.assetId]\n if (part.type !== 'rich') return []\n const ids: AssetId[] = part.previewAssetId ? [part.previewAssetId] : []\n collectRichAssetIds(part.extension, ids, true)\n return ids\n}\n\nconst asJsonRecord = (value: JsonValue | undefined): Readonly<Record<string, JsonValue>> | undefined =>\n value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined\n\nconst richItemLine = (value: JsonValue): string | undefined => {\n const item = asJsonRecord(value)\n if (!item) return undefined\n const sender = typeof item['sender'] === 'string' ? item['sender'] : undefined\n const text = typeof item['text'] === 'string' ? item['text'] : undefined\n const card = asJsonRecord(item['card'])\n const cardSummary =\n typeof card?.['summary'] === 'string'\n ? card['summary']\n : typeof card?.['title'] === 'string'\n ? card['title']\n : undefined\n const imageName = typeof item['imageName'] === 'string' ? item['imageName'] : undefined\n const imageText = typeof item['imageAssetId'] === 'string' ? `[图片${imageName ? ` ${imageName}` : ''}]` : undefined\n const audioText = typeof item['audioAssetId'] === 'string' ? `[语音 ${item['audioAssetId']}]` : undefined\n const fileText =\n typeof item['fileAssetId'] === 'string'\n ? `[${typeof item['fileMediaType'] === 'string' && item['fileMediaType'].startsWith('video/') ? '视频' : '文件'} ${item['fileAssetId']}${typeof item['fileName'] === 'string' ? `:${item['fileName']}` : ''}]`\n : undefined\n const body = [text, cardSummary ? `[卡片] ${cardSummary}` : undefined, imageText, audioText, fileText]\n .filter((part): part is string => Boolean(part && part.length > 0))\n .join(' ')\n if (!sender && !body) return undefined\n return sender ? `${sender}:${body}` : body\n}\n\n/** Flatten a rich part for search and model context. */\nexport const richPartContextText = (part: Extract<MessagePart, { type: 'rich' }>): string => {\n const header = [part.summary, part.title, part.source].filter(\n (value, index, all): value is string =>\n typeof value === 'string' && value.length > 0 && all.indexOf(value) === index,\n )\n const items = asJsonRecord(part.extension)?.['items']\n const itemLines = Array.isArray(items)\n ? items.flatMap((item) => {\n const line = richItemLine(item)\n return line === undefined ? [] : [line]\n })\n : []\n return [...header, ...itemLines].join('\\n')\n}\n\nexport const messagePartsSearchText = (parts: readonly MessagePart[]): string =>\n parts\n .flatMap((part) => {\n if (part.type === 'text') return [part.text]\n if (part.type === 'rich') return [richPartContextText(part)]\n return []\n })\n .join('\\n')\n","import { z } from 'zod'\nimport { JsonValueSchema, type JsonValue } from './domain.js'\n\n/**\n * The single configuration format: serialized Schemastery (`Schema.toJSON()`), restricted to the subset the\n * product form can render and the Host can validate without executing Schema callbacks.\n *\n * Supported nodes: object (dict), string, number, natural, percent, boolean, const, union of consts (enum) and\n * array of primitives. `meta.role: 'secret'` marks a write-only credential. NekroNXT reads three extra meta keys:\n * `hint` (help text), `advanced` (collapsed by default) and `visibleWhen` (show only when a sibling equals a value).\n */\nexport const CONFIG_SCHEMA_MAX_BYTES = 64 * 1024\n\nconst DescriptionSchema = z.union([z.string(), z.record(z.string(), z.string())])\n\nexport const ConfigSchemaMetaSchema = z\n .object({\n description: DescriptionSchema.optional(),\n hint: z.string().max(500).optional(),\n required: z.boolean().optional(),\n default: JsonValueSchema.optional(),\n role: z.string().max(32).optional(),\n hidden: z.boolean().optional(),\n min: z.number().finite().optional(),\n max: z.number().finite().optional(),\n step: z.number().finite().positive().optional(),\n pattern: z.object({ source: z.string().max(500), flags: z.string().max(8).optional() }).optional(),\n advanced: z.boolean().optional(),\n group: z.string().max(40).optional(),\n visibleWhen: z\n .object({ key: z.string().min(1).max(64), equals: JsonValueSchema })\n .strict()\n .optional(),\n })\n .loose()\n\nexport type ConfigSchemaMeta = z.output<typeof ConfigSchemaMetaSchema>\n\nexport type ConfigSchemaNode =\n | {\n readonly type: 'object'\n readonly dict: Readonly<Record<string, ConfigSchemaNode>>\n readonly meta?: ConfigSchemaMeta | undefined\n }\n | {\n readonly type: 'string' | 'number' | 'natural' | 'percent' | 'boolean'\n readonly meta?: ConfigSchemaMeta | undefined\n }\n | { readonly type: 'const'; readonly value: JsonValue; readonly meta?: ConfigSchemaMeta | undefined }\n | { readonly type: 'union'; readonly list: readonly ConfigSchemaNode[]; readonly meta?: ConfigSchemaMeta | undefined }\n | { readonly type: 'array'; readonly inner: ConfigSchemaNode; readonly meta?: ConfigSchemaMeta | undefined }\n\nconst SAFE_KEY = /^(?!__proto__$|prototype$|constructor$)[A-Za-z_$][\\w$-]{0,63}$/u\n\nexport const ConfigSchemaNodeSchema: z.ZodType<ConfigSchemaNode> = z.lazy(() =>\n z.union([\n z\n .object({\n type: z.literal('object'),\n dict: z.record(z.string().regex(SAFE_KEY), ConfigSchemaNodeSchema),\n meta: ConfigSchemaMetaSchema.optional(),\n })\n .loose(),\n z\n .object({\n type: z.enum(['string', 'number', 'natural', 'percent', 'boolean']),\n meta: ConfigSchemaMetaSchema.optional(),\n })\n .loose(),\n z.object({ type: z.literal('const'), value: JsonValueSchema, meta: ConfigSchemaMetaSchema.optional() }).loose(),\n z\n .object({\n type: z.literal('union'),\n list: z.array(ConfigSchemaNodeSchema).min(1).max(64),\n meta: ConfigSchemaMetaSchema.optional(),\n })\n .loose(),\n z\n .object({ type: z.literal('array'), inner: ConfigSchemaNodeSchema, meta: ConfigSchemaMetaSchema.optional() })\n .loose(),\n ]),\n)\n\n/** A whole configuration document: always an object at the root. */\nexport const ConfigSchemaDocumentSchema = ConfigSchemaNodeSchema.refine(\n (node) => node.type === 'object',\n '配置 Schema 的根节点必须是 object。',\n).refine((node) => new TextEncoder().encode(JSON.stringify(node)).length <= CONFIG_SCHEMA_MAX_BYTES, {\n message: `配置 Schema 不能超过 ${CONFIG_SCHEMA_MAX_BYTES} 字节。`,\n})\n\nexport type ConfigSchemaDocument = Extract<ConfigSchemaNode, { readonly type: 'object' }>\n\nexport const EMPTY_CONFIG_SCHEMA: ConfigSchemaDocument = { type: 'object', dict: {} }\n\nexport type ConfigFieldKind = 'string' | 'number' | 'boolean' | 'enum' | 'secret' | 'array' | 'object'\n\nexport interface ConfigField {\n readonly key: string\n readonly kind: ConfigFieldKind\n readonly title: string\n readonly hint?: string\n readonly required: boolean\n readonly default?: JsonValue\n readonly advanced: boolean\n readonly group?: string\n readonly options?: readonly { readonly value: JsonValue; readonly label: string }[]\n readonly node: ConfigSchemaNode\n}\n\nexport const configDescription = (meta: ConfigSchemaMeta | undefined): string | undefined => {\n const description = meta?.description\n if (typeof description === 'string') return description\n if (description) return description['zh-CN'] ?? description['zh'] ?? Object.values(description)[0]\n return undefined\n}\n\nconst isEnumUnion = (node: ConfigSchemaNode): node is Extract<ConfigSchemaNode, { readonly type: 'union' }> =>\n node.type === 'union' && node.list.every((option) => option.type === 'const')\n\nexport const configFieldKind = (node: ConfigSchemaNode): ConfigFieldKind => {\n if (node.meta?.role === 'secret') return 'secret'\n if (node.type === 'string') return 'string'\n if (node.type === 'number' || node.type === 'natural' || node.type === 'percent') return 'number'\n if (node.type === 'boolean') return 'boolean'\n if (node.type === 'array') return 'array'\n if (node.type === 'object') return 'object'\n if (node.type === 'const' || isEnumUnion(node)) return 'enum'\n throw new TypeError('配置 Schema 只支持常量组成的 union。')\n}\n\n/** Flattens the top level of a document into product form fields (order preserved). */\nconst jsonLabel = (value: JsonValue): string => (typeof value === 'string' ? value : JSON.stringify(value))\n\nexport const configFields = (document: ConfigSchemaDocument): readonly ConfigField[] =>\n Object.entries(document.dict).map(([key, node]) => {\n const kind = configFieldKind(node)\n const title = configDescription(node.meta) ?? key\n const options =\n node.type === 'union' && isEnumUnion(node)\n ? node.list.map((option) => ({\n value: option.type === 'const' ? option.value : null,\n label: configDescription(option.meta) ?? (option.type === 'const' ? jsonLabel(option.value) : ''),\n }))\n : node.type === 'const'\n ? [{ value: node.value, label: configDescription(node.meta) ?? jsonLabel(node.value) }]\n : undefined\n return {\n key,\n kind,\n title,\n ...(node.meta?.hint === undefined ? {} : { hint: node.meta.hint }),\n required: node.meta?.required === true,\n ...(node.meta?.default === undefined ? {} : { default: node.meta.default }),\n advanced: node.meta?.advanced === true,\n ...(node.meta?.group === undefined ? {} : { group: node.meta.group }),\n ...(options === undefined ? {} : { options }),\n node,\n }\n })\n\nexport const configSecretKeys = (document: ConfigSchemaDocument): readonly string[] =>\n configFields(document)\n .filter((field) => field.kind === 'secret')\n .map((field) => field.key)\n\nexport interface ConfigValidationIssue {\n readonly path: string\n readonly message: string\n}\n\nconst isRecord = (value: unknown): value is Readonly<Record<string, JsonValue>> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst sameJson = (left: JsonValue, right: JsonValue): boolean => JSON.stringify(left) === JSON.stringify(right)\n\nconst validateNode = (\n node: ConfigSchemaNode,\n value: JsonValue | undefined,\n path: string,\n label: string,\n issues: ConfigValidationIssue[],\n): JsonValue | undefined => {\n const resolved = value ?? node.meta?.default\n if (resolved === undefined || resolved === null) {\n if (node.meta?.required === true) issues.push({ path, message: `请填写${label}。` })\n if (node.type === 'object') return validateNode(node, {}, path, label, issues)\n return undefined\n }\n switch (node.type) {\n case 'object': {\n if (!isRecord(resolved)) {\n issues.push({ path, message: `${label}必须是对象。` })\n return undefined\n }\n const output: Record<string, JsonValue> = {}\n for (const key of Object.keys(resolved)) {\n if (!Object.hasOwn(node.dict, key))\n issues.push({ path: path ? `${path}.${key}` : key, message: `未知配置项:${key}` })\n }\n for (const [key, child] of Object.entries(node.dict)) {\n const childPath = path ? `${path}.${key}` : key\n const next = validateNode(child, resolved[key], childPath, configDescription(child.meta) ?? key, issues)\n if (next !== undefined) output[key] = next\n }\n return output\n }\n case 'string': {\n if (typeof resolved !== 'string') {\n issues.push({ path, message: `${label}必须是文本。` })\n return undefined\n }\n if (node.meta?.required === true && resolved.trim().length === 0)\n issues.push({ path, message: `请填写${label}。` })\n const pattern = node.meta?.pattern\n if (pattern && resolved.length > 0 && !new RegExp(pattern.source, pattern.flags ?? '').test(resolved)) {\n issues.push({ path, message: `${label}的格式不正确。` })\n }\n return resolved\n }\n case 'number':\n case 'natural':\n case 'percent': {\n if (typeof resolved !== 'number' || !Number.isFinite(resolved)) {\n issues.push({ path, message: `${label}必须是数字。` })\n return undefined\n }\n if (node.type === 'natural' && (!Number.isInteger(resolved) || resolved < 0)) {\n issues.push({ path, message: `${label}必须是非负整数。` })\n }\n if (node.type === 'percent' && (resolved < 0 || resolved > 1))\n issues.push({ path, message: `${label}必须在 0 到 1 之间。` })\n if (node.meta?.min !== undefined && resolved < node.meta.min)\n issues.push({ path, message: `${label}不能小于 ${node.meta.min}。` })\n if (node.meta?.max !== undefined && resolved > node.meta.max)\n issues.push({ path, message: `${label}不能大于 ${node.meta.max}。` })\n return resolved\n }\n case 'boolean':\n if (typeof resolved !== 'boolean') {\n issues.push({ path, message: `${label}必须是开关值。` })\n return undefined\n }\n return resolved\n case 'const':\n if (!sameJson(resolved, node.value)) issues.push({ path, message: `${label}的取值无效。` })\n return resolved\n case 'union':\n if (!node.list.some((option) => option.type === 'const' && sameJson(option.value, resolved))) {\n issues.push({ path, message: `${label}的取值无效。` })\n }\n return resolved\n case 'array': {\n if (!Array.isArray(resolved)) {\n issues.push({ path, message: `${label}必须是列表。` })\n return undefined\n }\n return resolved.flatMap((item, index) => {\n const next = validateNode(node.inner, item, `${path}[${index}]`, `${label}第 ${index + 1} 项`, issues)\n return next === undefined ? [] : [next]\n })\n }\n }\n}\n\n/**\n * Validates a configuration value against a document and fills declared defaults. Secret fields are not part of the\n * stored value; callers pass them through the credential store instead.\n */\nexport const validateConfigValue = (\n document: ConfigSchemaDocument,\n value: JsonValue | undefined,\n options: { readonly skipKeys?: readonly string[] } = {},\n): { readonly value: Readonly<Record<string, JsonValue>>; readonly issues: readonly ConfigValidationIssue[] } => {\n const skip = new Set(options.skipKeys ?? [])\n const issues: ConfigValidationIssue[] = []\n const input = isRecord(value) ? value : value === undefined || value === null ? {} : undefined\n if (input === undefined) return { value: {}, issues: [{ path: '', message: '配置必须是对象。' }] }\n const filtered: ConfigSchemaDocument = {\n ...document,\n dict: Object.fromEntries(Object.entries(document.dict).filter(([key]) => !skip.has(key))),\n }\n const output = validateNode(filtered, input, '', '配置', issues)\n return { value: isRecord(output) ? output : {}, issues }\n}\n\n/** Throws the first validation issue as a user-readable error. */\nexport const parseConfigValue = (\n document: ConfigSchemaDocument,\n value: JsonValue | undefined,\n options: { readonly skipKeys?: readonly string[] } = {},\n): Readonly<Record<string, JsonValue>> => {\n const result = validateConfigValue(document, value, options)\n const first = result.issues[0]\n if (first) throw new TypeError(first.message)\n return result.value\n}\n\ninterface FieldOptions<Value extends JsonValue> {\n readonly hint?: string\n readonly default?: Value\n readonly required?: boolean\n readonly advanced?: boolean\n readonly group?: string\n}\n\nconst fieldMeta = <Value extends JsonValue>(title: string, options: FieldOptions<Value> = {}): ConfigSchemaMeta => ({\n description: title,\n ...(options.hint === undefined ? {} : { hint: options.hint }),\n ...(options.default === undefined ? {} : { default: options.default }),\n ...(options.required === undefined ? {} : { required: options.required }),\n ...(options.advanced === undefined ? {} : { advanced: options.advanced }),\n ...(options.group === undefined ? {} : { group: options.group }),\n})\n\n/** Builds serialized Schemastery documents without depending on the Schemastery runtime. */\nexport const configSchema = {\n object: (dict: Readonly<Record<string, ConfigSchemaNode>>): ConfigSchemaDocument => ({ type: 'object', dict }),\n string: (title: string, options: FieldOptions<string> & { readonly multiline?: boolean } = {}): ConfigSchemaNode => ({\n type: 'string',\n meta: { ...fieldMeta(title, options), ...(options.multiline ? { role: 'textarea' } : {}) },\n }),\n secret: (title: string, options: Omit<FieldOptions<string>, 'default'> = {}): ConfigSchemaNode => ({\n type: 'string',\n meta: { ...fieldMeta(title, options), role: 'secret' },\n }),\n number: (\n title: string,\n options: FieldOptions<number> & { readonly min?: number; readonly max?: number; readonly integer?: boolean } = {},\n ): ConfigSchemaNode => ({\n type: options.integer ? 'natural' : 'number',\n meta: {\n ...fieldMeta(title, options),\n ...(options.min === undefined ? {} : { min: options.min }),\n ...(options.max === undefined ? {} : { max: options.max }),\n },\n }),\n boolean: (title: string, options: FieldOptions<boolean> = {}): ConfigSchemaNode => ({\n type: 'boolean',\n meta: fieldMeta(title, options),\n }),\n enum: (\n title: string,\n choices: readonly { readonly value: string | number; readonly label: string }[],\n options: FieldOptions<string | number> = {},\n ): ConfigSchemaNode => ({\n type: 'union',\n list: choices.map((choice) => ({ type: 'const', value: choice.value, meta: { description: choice.label } })),\n meta: fieldMeta(title, options),\n }),\n} as const\n","import { z } from 'zod'\n\n/**\n * Host capability level this build implements. A Revision that declares `requires.sdk` above it is rejected at\n * import with an \"upgrade NekroNXT\" message instead of an opaque schema error. Bump when a Manifest capability\n * ships; never reuse a level for a different meaning. Level 7 is Manifest V7 (host instance + agent attachments); level 8 adds the asset library, image info, tool result\n * images, the search index and host-layer model calls. Level 9 adds the structured logger and explicit chat commands. Level 10 adds version lineage, the data version with its\n * migration hook and administrator-only commands. Level 11 lists the pictures of an inbound message to inbound hooks.\n */\nexport const EXTENSION_SDK_LEVEL = 11\n\n/** Lineage, `dataVersion` and administrator-only commands need this level; packages that carry them declare it. */\nexport const EXTENSION_GOVERNANCE_SDK_LEVEL = 10\n\n/**\n * The first NekroNXT version of each capability level, so users read \"needs NekroNXT 0.5.0\" rather than a level\n * number. Add the row for a new level in the change that raises EXTENSION_SDK_LEVEL; a test keeps the two in step.\n */\nexport const EXTENSION_SDK_RELEASES: readonly { readonly level: number; readonly version: string }[] = [\n { level: 6, version: '0.3.0' },\n { level: 7, version: '0.4.0' },\n { level: 8, version: '0.5.0' },\n { level: 9, version: '0.6.0' },\n { level: 10, version: '0.6.0' },\n { level: 11, version: '0.6.0' },\n]\n\n/** The oldest NekroNXT version that supports `level`; undefined for a level no release supports yet. */\nexport const extensionSdkVersion = (level: number): string | undefined =>\n EXTENSION_SDK_RELEASES.find((release) => release.level >= level)?.version\n\n/** Manifest V7 itself; extensions that use nothing newer need this level. */\nexport const EXTENSION_SDK_BASE_LEVEL = 7\n\nexport const ExtensionRequiresSchema = z.object({ sdk: z.number().int().min(1).max(1000) }).strict()\nexport type ExtensionRequires = z.output<typeof ExtensionRequiresSchema>\n\n/** `api.example.com` or `*.example.com` (subdomains only); lower-case DNS labels, no scheme, port or path. */\nexport const ExtensionNetworkDomainSchema = z\n .string()\n .trim()\n .toLowerCase()\n .max(253)\n .regex(/^(\\*\\.)?(?=.{1,253}$)([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+$/u, {\n message: '网络域名必须是 api.example.com 或 *.example.com 形式,不含协议、端口和路径。',\n })\n\nexport const ExtensionNetworkCapabilitySchema = z.discriminatedUnion('mode', [\n z\n .object({\n mode: z.literal('domains'),\n domains: z.array(ExtensionNetworkDomainSchema).min(1).max(32),\n })\n .strict(),\n z\n .object({\n mode: z.literal('config'),\n /** Top-level config fields whose current value is a URL or host the user typed. */\n fields: z.array(z.string().trim().min(1).max(64)).min(1).max(8),\n })\n .strict(),\n z\n .object({\n mode: z.literal('unrestricted'),\n /** Shown to the user next to the risk acknowledgement. */\n purpose: z.string().trim().min(4).max(200),\n })\n .strict(),\n])\nexport type ExtensionNetworkCapability = z.output<typeof ExtensionNetworkCapabilitySchema>\n\nexport const EXTENSION_STORAGE_SCOPES = ['agent', 'channel', 'member', 'shared'] as const\nexport const ExtensionStorageScopeSchema = z.enum(EXTENSION_STORAGE_SCOPES)\nexport type ExtensionStorageScope = z.output<typeof ExtensionStorageScopeSchema>\n\nexport const EXTENSION_STORAGE_DEFAULT_QUOTA_BYTES = 8 * 1024 * 1024\nexport const EXTENSION_STORAGE_MAX_QUOTA_BYTES = 64 * 1024 * 1024\n\nexport const ExtensionStorageCapabilitySchema = z\n .object({\n scopes: z.array(ExtensionStorageScopeSchema).min(1).max(EXTENSION_STORAGE_SCOPES.length),\n quotaBytes: z.number().int().min(1024).max(EXTENSION_STORAGE_MAX_QUOTA_BYTES).optional(),\n })\n .strict()\n .refine((value) => new Set(value.scopes).size === value.scopes.length, '存储作用域不能重复。')\nexport type ExtensionStorageCapability = z.output<typeof ExtensionStorageCapabilitySchema>\n\nexport const EXTENSION_CONTEXT_STATIC_MAX_CHARS = 4000\nexport const EXTENSION_CONTEXT_DYNAMIC_MAX_CHARS = 2000\n\nexport const ExtensionContextContributionSchema = z\n .object({\n name: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{0,39}$/u, '上下文名称只能使用小写字母、数字和连字符。'),\n kind: z.enum(['static', 'dynamic']),\n maxChars: z.number().int().min(1).max(EXTENSION_CONTEXT_STATIC_MAX_CHARS),\n })\n .strict()\n .refine(\n (value) => value.kind === 'static' || value.maxChars <= EXTENSION_CONTEXT_DYNAMIC_MAX_CHARS,\n `动态上下文最多 ${EXTENSION_CONTEXT_DYNAMIC_MAX_CHARS} 字。`,\n )\nexport type ExtensionContextContribution = z.output<typeof ExtensionContextContributionSchema>\n\nexport const EXTENSION_LLM_MAX_CALLS_PER_TURN = 20\nexport const EXTENSION_LLM_MAX_OUTPUT_TOKENS = 8192\n\nexport const ExtensionLlmCapabilitySchema = z\n .object({\n maxCallsPerTurn: z.number().int().min(1).max(EXTENSION_LLM_MAX_CALLS_PER_TURN),\n maxOutputTokens: z.number().int().min(64).max(EXTENSION_LLM_MAX_OUTPUT_TOKENS),\n })\n .strict()\nexport type ExtensionLlmCapability = z.output<typeof ExtensionLlmCapabilitySchema>\n\nexport const EXTENSION_INBOUND_HOOK_MAX_TIMEOUT_MS = 15_000\n\nexport const ExtensionInboundHookCapabilitySchema = z\n .object({\n /** `triggered`: only messages that would wake the agent anyway; `all`: every message in bound channels. */\n reads: z.enum(['triggered', 'all']),\n mayHide: z.boolean(),\n mayForceTrigger: z.boolean(),\n timeoutMs: z.number().int().min(100).max(EXTENSION_INBOUND_HOOK_MAX_TIMEOUT_MS),\n })\n .strict()\nexport type ExtensionInboundHookCapability = z.output<typeof ExtensionInboundHookCapabilitySchema>\n\nexport const EXTENSION_JOB_MAX_RUNTIME = 50\n\nexport const ExtensionDeclaredJobSchema = z\n .object({\n id: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{0,39}$/u, '定时任务 id 只能使用小写字母、数字和连字符。'),\n label: z.string().trim().min(1).max(200),\n cron: z.string().trim().min(9).max(120),\n timezone: z.string().trim().min(1).max(64).optional(),\n })\n .strict()\nexport type ExtensionDeclaredJob = z.output<typeof ExtensionDeclaredJobSchema>\n\nexport const ExtensionJobsCapabilitySchema = z\n .object({\n /** Fixed schedules; each fires in every channel bound to the agent that enables the extension. */\n declared: z\n .array(ExtensionDeclaredJobSchema)\n .max(8)\n .refine((jobs) => new Set(jobs.map(({ id }) => id)).size === jobs.length, '定时任务 id 不能重复。')\n .optional(),\n /** Jobs the extension creates at runtime (`ctx.nxt.jobs.schedule`), at most this many active per agent. */\n runtime: z\n .object({ maxActive: z.number().int().min(1).max(EXTENSION_JOB_MAX_RUNTIME) })\n .strict()\n .optional(),\n })\n .strict()\nexport type ExtensionJobsCapability = z.output<typeof ExtensionJobsCapabilitySchema>\n\nconst AdapterKeySchema = z.string().trim().min(1).max(64)\n\nexport const ExtensionPlatformCapabilitySchema = z\n .object({\n /** Typed actions an Adapter declares, as `{ adapter, action }`. */\n actions: z\n .array(z.object({ adapter: AdapterKeySchema, action: z.string().regex(/^[a-z0-9_]{1,64}$/u) }).strict())\n .max(32)\n .default([]),\n /** Adapters whose raw API passthrough the extension may call. */\n raw: z.array(AdapterKeySchema).max(8).default([]),\n })\n .strict()\nexport type ExtensionPlatformCapability = z.output<typeof ExtensionPlatformCapabilitySchema>\n\nexport const EXTENSION_ASSET_LIBRARY_DEFAULT_QUOTA_BYTES = 2 * 1024 * 1024 * 1024\nexport const EXTENSION_ASSET_LIBRARY_MAX_QUOTA_BYTES = 32 * 1024 * 1024 * 1024\n\nexport const ExtensionAssetLibraryCapabilitySchema = z\n .object({\n quotaBytes: z\n .number()\n .int()\n .min(1024 * 1024)\n .max(EXTENSION_ASSET_LIBRARY_MAX_QUOTA_BYTES)\n .optional(),\n })\n .strict()\nexport type ExtensionAssetLibraryCapability = z.output<typeof ExtensionAssetLibraryCapabilitySchema>\n\n/**\n * `write` creates Assets in the current channel; `library` keeps Assets in the extension's own library so they can be\n * used in any channel later.\n */\nexport const ExtensionAssetsCapabilitySchema = z\n .object({\n write: z.literal(true).optional(),\n library: ExtensionAssetLibraryCapabilitySchema.optional(),\n })\n .strict()\n .refine((value) => value.write !== undefined || value.library !== undefined, 'assets 至少声明 write 或 library。')\nexport type ExtensionAssetsCapability = z.output<typeof ExtensionAssetsCapabilitySchema>\n\nconst IndexNameSchema = z\n .string()\n .trim()\n .regex(/^[a-z][a-z0-9_]{0,31}$/u, '索引、字段和过滤项名称只能使用小写字母、数字和下划线,以字母开头。')\n\nexport const EXTENSION_INDEX_MAX_TEXT_FIELDS = 4\nexport const EXTENSION_INDEX_MAX_FILTERS = 4\n\n/**\n * One searchable collection. Text fields are matched by keywords (and vectors when the Host has them enabled); weights\n * rank keyword matches. Filter fields hold short keyword values, possibly several per document.\n */\nexport const ExtensionIndexCollectionSchema = z\n .object({\n name: IndexNameSchema,\n fields: z\n .array(z.object({ name: IndexNameSchema, weight: z.number().min(0.1).max(10).default(1) }).strict())\n .min(1)\n .max(EXTENSION_INDEX_MAX_TEXT_FIELDS),\n filters: z.array(IndexNameSchema).max(EXTENSION_INDEX_MAX_FILTERS).default([]),\n })\n .strict()\n .superRefine((value, context) => {\n const names = [...value.fields.map(({ name }) => name), ...value.filters]\n if (new Set(names).size !== names.length) {\n context.addIssue({ code: 'custom', message: '同一索引里的字段与过滤项不能重名。' })\n }\n })\nexport type ExtensionIndexCollection = z.output<typeof ExtensionIndexCollectionSchema>\n\nexport const ExtensionIndexCapabilitySchema = z\n .object({\n collections: z\n .array(ExtensionIndexCollectionSchema)\n .min(1)\n .max(4)\n .refine((value) => new Set(value.map(({ name }) => name)).size === value.length, '索引名称不能重复。'),\n })\n .strict()\nexport type ExtensionIndexCapability = z.output<typeof ExtensionIndexCapabilitySchema>\n\nexport const EXTENSION_MODEL_MAX_CALLS_PER_MINUTE = 120\n\n/** Calls to a model the user picks from the Host's configured models, with images allowed; host layer only. */\nexport const ExtensionModelsCapabilitySchema = z\n .object({\n maxCallsPerMinute: z.number().int().min(1).max(EXTENSION_MODEL_MAX_CALLS_PER_MINUTE),\n maxOutputTokens: z.number().int().min(64).max(EXTENSION_LLM_MAX_OUTPUT_TOKENS),\n })\n .strict()\nexport type ExtensionModelsCapability = z.output<typeof ExtensionModelsCapabilitySchema>\n\n/** A header or environment value: literal text, or the current value of a `meta.role: 'secret'` config field. */\nexport const ExtensionMcpValueSchema = z.union([\n z.string().max(4096),\n z.object({ secret: z.string().trim().min(1).max(64) }).strict(),\n])\nexport type ExtensionMcpValue = z.output<typeof ExtensionMcpValueSchema>\n\n/** Becomes the model-facing tool prefix `mcp__<name>__`. */\nexport const ExtensionMcpServerNameSchema = z.string().regex(/^[A-Za-z0-9_-]{1,32}$/u)\n\nconst McpValueMapSchema = z\n .record(z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]{0,127}$/u), ExtensionMcpValueSchema)\n .refine((value) => Object.keys(value).length <= 32, '最多 32 项。')\n .default({})\n\nexport const ExtensionMcpServerSchema = z.discriminatedUnion('transport', [\n z\n .object({\n transport: z.literal('streamable-http'),\n name: ExtensionMcpServerNameSchema,\n url: z\n .string()\n .url()\n .refine((value) => /^https?:\\/\\//iu.test(value), 'MCP 地址必须是 http 或 https。'),\n headers: McpValueMapSchema,\n })\n .strict(),\n z\n .object({\n transport: z.literal('stdio'),\n name: ExtensionMcpServerNameSchema,\n command: z.string().trim().min(1).max(512),\n args: z.array(z.string().max(4096)).max(64).default([]),\n env: McpValueMapSchema,\n })\n .strict(),\n])\nexport type ExtensionMcpServer = z.output<typeof ExtensionMcpServerSchema>\n\n/**\n * MCP servers the Host connects for the agent while the extension is enabled; their tools appear as\n * `mcp__<name>__<tool>`. `stdio` runs a program on the Host and is only created from the administrator's form.\n */\nexport const ExtensionMcpCapabilitySchema = z\n .object({\n servers: z\n .array(ExtensionMcpServerSchema)\n .min(1)\n .max(8)\n .refine((value) => new Set(value.map(({ name }) => name)).size === value.length, 'MCP 服务名称不能重复。'),\n })\n .strict()\nexport type ExtensionMcpCapability = z.output<typeof ExtensionMcpCapabilitySchema>\n\n/** One header or environment row of the administrator's form; secret rows become credential config fields. */\nconst McpFormValueSchema = z\n .object({\n name: z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]{0,127}$/u, '名称只能包含字母、数字、下划线和连字符。'),\n value: z.string().max(4096),\n secret: z.boolean().default(false),\n })\n .strict()\n\nexport const McpServerFormSchema = z.discriminatedUnion('transport', [\n z\n .object({\n transport: z.literal('streamable-http'),\n name: ExtensionMcpServerNameSchema,\n url: z.string().url(),\n headers: z.array(McpFormValueSchema).max(32).default([]),\n })\n .strict(),\n z\n .object({\n transport: z.literal('stdio'),\n name: ExtensionMcpServerNameSchema,\n command: z.string().trim().min(1).max(512),\n args: z.array(z.string().max(4096)).max(64).default([]),\n env: z.array(McpFormValueSchema).max(32).default([]),\n })\n .strict(),\n])\nexport type McpServerForm = z.output<typeof McpServerFormSchema>\n\n/** Secret config fields an MCP declaration reads. */\nexport const mcpSecretFields = (mcp: ExtensionMcpCapability | undefined): readonly string[] => [\n ...new Set(\n (mcp?.servers ?? []).flatMap((server) =>\n Object.values(server.transport === 'stdio' ? server.env : server.headers).flatMap((value) =>\n typeof value === 'string' ? [] : [value.secret],\n ),\n ),\n ),\n]\n\n/** What a server connects to; changing it needs a new approval, unlike its credentials. */\nconst mcpTarget = (server: ExtensionMcpServer): string =>\n server.transport === 'stdio'\n ? JSON.stringify(['stdio', server.name, server.command, server.args])\n : JSON.stringify(['streamable-http', server.name, server.url])\n\n/**\n * Agent-layer capabilities (`permissions.agent`): what the extension may do inside the agents it is enabled for. An\n * absent field means the extension cannot use that capability.\n */\nexport const ExtensionCapabilitiesSchema = z\n .object({\n network: ExtensionNetworkCapabilitySchema.optional(),\n storage: ExtensionStorageCapabilitySchema.optional(),\n assets: ExtensionAssetsCapabilitySchema.optional(),\n index: ExtensionIndexCapabilitySchema.optional(),\n /** Host layer only; the agent layer uses `llm`, which runs on the agent's own model. */\n models: ExtensionModelsCapabilitySchema.optional(),\n history: z\n .object({ read: z.literal(true) })\n .strict()\n .optional(),\n inboundHook: ExtensionInboundHookCapabilitySchema.optional(),\n jobs: ExtensionJobsCapabilitySchema.optional(),\n platform: ExtensionPlatformCapabilitySchema.optional(),\n llm: ExtensionLlmCapabilitySchema.optional(),\n mcp: ExtensionMcpCapabilitySchema.optional(),\n context: z\n .array(ExtensionContextContributionSchema)\n .max(8)\n .refine((value) => new Set(value.map(({ name }) => name)).size === value.length, '上下文名称不能重复。')\n .optional(),\n })\n .strict()\nexport type ExtensionCapabilities = z.output<typeof ExtensionCapabilitiesSchema>\n\n/**\n * Host-layer capabilities (`permissions.host`): what the extension's single host instance may do through the `nxt`\n * service its factory receives. Host storage is the extension's `shared` partition.\n */\nexport const HostLayerCapabilitiesSchema = z\n .object({\n network: ExtensionNetworkCapabilitySchema.optional(),\n storage: z\n .object({ quotaBytes: z.number().int().min(1024).max(EXTENSION_STORAGE_MAX_QUOTA_BYTES).optional() })\n .strict()\n .optional(),\n /** The same library agent attachments use; the host instance lists and imports into it. */\n assets: z.object({ library: ExtensionAssetLibraryCapabilitySchema }).strict().optional(),\n /** The same collections agent attachments declare; pages search and maintain them. */\n index: ExtensionIndexCapabilitySchema.optional(),\n models: ExtensionModelsCapabilitySchema.optional(),\n })\n .strict()\nexport type HostLayerCapabilities = z.output<typeof HostLayerCapabilitiesSchema>\n\n/** Host-layer capabilities in the agent-capability shape, so digests, expansion and summaries share one implementation. */\nexport const hostLayerAsCapabilities = (host: HostLayerCapabilities | undefined): ExtensionCapabilities | undefined =>\n host === undefined || Object.keys(host).length === 0\n ? undefined\n : {\n ...(host.network === undefined ? {} : { network: host.network }),\n ...(host.storage === undefined\n ? {}\n : {\n storage: {\n scopes: ['shared'],\n ...(host.storage.quotaBytes === undefined ? {} : { quotaBytes: host.storage.quotaBytes }),\n },\n }),\n ...(host.assets === undefined ? {} : { assets: { library: host.assets.library } }),\n ...(host.index === undefined ? {} : { index: host.index }),\n ...(host.models === undefined ? {} : { models: host.models }),\n }\n\nconst NETWORK_MODE_RANK = { domains: 0, config: 1, unrestricted: 2 } as const\n\nconst networkExpands = (\n previous: ExtensionNetworkCapability | undefined,\n next: ExtensionNetworkCapability | undefined,\n): boolean => {\n if (next === undefined) return false\n if (previous === undefined) return true\n if (NETWORK_MODE_RANK[next.mode] !== NETWORK_MODE_RANK[previous.mode]) {\n return NETWORK_MODE_RANK[next.mode] > NETWORK_MODE_RANK[previous.mode]\n }\n if (next.mode === 'domains' && previous.mode === 'domains') {\n return next.domains.some((domain) => !previous.domains.includes(domain))\n }\n if (next.mode === 'config' && previous.mode === 'config') {\n return next.fields.some((field) => !previous.fields.includes(field))\n }\n return false\n}\n\n/**\n * Whether `next` asks for something an approval of `previous` did not cover. Narrowing never needs approval;\n * storage quota is bounded by the Host maximum and is not an expansion. Context contributions are capped text\n * shown in the trace, so adding one is not an expansion either.\n */\nexport const extensionCapabilitiesExpand = (\n previous: ExtensionCapabilities | undefined,\n next: ExtensionCapabilities | undefined,\n): boolean => {\n if (next === undefined) return false\n if (networkExpands(previous?.network, next.network)) return true\n if (next.storage?.scopes.some((scope) => !(previous?.storage?.scopes ?? []).includes(scope))) return true\n if (next.assets?.write !== undefined && previous?.assets?.write === undefined) return true\n if (next.assets?.library !== undefined && previous?.assets?.library === undefined) return true\n if (\n next.models !== undefined &&\n (previous?.models === undefined ||\n next.models.maxCallsPerMinute > previous.models.maxCallsPerMinute ||\n next.models.maxOutputTokens > previous.models.maxOutputTokens)\n ) {\n return true\n }\n if (next.history !== undefined && previous?.history === undefined) return true\n const platformKey = ({ adapter, action }: { readonly adapter: string; readonly action: string }) =>\n `${adapter}:${action}`\n const previousActions = new Set((previous?.platform?.actions ?? []).map(platformKey))\n if ((next.platform?.actions ?? []).some((entry) => !previousActions.has(platformKey(entry)))) return true\n if ((next.platform?.raw ?? []).some((adapter) => !(previous?.platform?.raw ?? []).includes(adapter))) return true\n const hook = next.inboundHook\n const previousHook = previous?.inboundHook\n if (\n hook !== undefined &&\n (previousHook === undefined ||\n (hook.reads === 'all' && previousHook.reads === 'triggered') ||\n (hook.mayHide && !previousHook.mayHide) ||\n (hook.mayForceTrigger && !previousHook.mayForceTrigger))\n ) {\n return true\n }\n if (\n next.jobs?.runtime !== undefined &&\n (previous?.jobs?.runtime === undefined || next.jobs.runtime.maxActive > previous.jobs.runtime.maxActive)\n ) {\n return true\n }\n const previousMcp = new Set((previous?.mcp?.servers ?? []).map(mcpTarget))\n if ((next.mcp?.servers ?? []).some((server) => !previousMcp.has(mcpTarget(server)))) return true\n if (\n next.llm !== undefined &&\n (previous?.llm === undefined ||\n next.llm.maxCallsPerTurn > previous.llm.maxCallsPerTurn ||\n next.llm.maxOutputTokens > previous.llm.maxOutputTokens)\n ) {\n return true\n }\n return false\n}\n\nconst formatLibraryQuota = (bytes: number): string =>\n bytes >= 1024 * 1024 * 1024\n ? `${+(bytes / 1024 / 1024 / 1024).toFixed(1)} GB`\n : `${Math.round(bytes / 1024 / 1024)} MB`\n\n/** Capability risk tiers shown on the approval page (§7 of the capability decision). */\nexport type ExtensionCapabilityRisk = 'normal' | 'sensitive' | 'high'\n\nexport interface ExtensionCapabilitySummaryItem {\n readonly key: string\n readonly risk: ExtensionCapabilityRisk\n readonly label: string\n readonly detail?: string\n}\n\n/**\n * User-facing summary of declared capabilities, in a stable order, for approval and inspection pages. `layer: 'host'`\n * phrases host-layer capabilities (passed through {@link hostLayerAsCapabilities}) for the host instance.\n */\nexport const summarizeExtensionCapabilities = (\n capabilities: ExtensionCapabilities | undefined,\n options: {\n readonly layer?: 'host' | 'agent'\n /** Display name of a config field, so `network.mode: 'config'` names the fields as the user knows them. */\n readonly fieldTitle?: (key: string) => string\n } = {},\n): readonly ExtensionCapabilitySummaryItem[] => {\n if (capabilities === undefined) return []\n const items: ExtensionCapabilitySummaryItem[] = []\n const network = capabilities.network\n if (network?.mode === 'domains') {\n items.push({ key: 'network', risk: 'normal', label: '访问指定网站', detail: network.domains.join('、') })\n } else if (network?.mode === 'config') {\n items.push({\n key: 'network',\n risk: 'normal',\n label: '访问你在配置中填写的地址',\n detail: network.fields.map((field) => options.fieldTitle?.(field) ?? field).join('、'),\n })\n } else if (network?.mode === 'unrestricted') {\n items.push({ key: 'network', risk: 'high', label: '访问任意公网地址', detail: network.purpose })\n }\n if (capabilities.storage !== undefined && options.layer === 'host') {\n items.push({ key: 'storage', risk: 'normal', label: '在本机保存扩展数据,页面与启用它的智能体共用' })\n } else if (capabilities.storage !== undefined) {\n const shared = capabilities.storage.scopes.includes('shared')\n items.push({\n key: 'storage',\n risk: shared ? 'sensitive' : 'normal',\n label: shared ? '保存数据,并在启用它的智能体之间共享' : '为这个智能体保存数据',\n })\n }\n if (capabilities.assets?.write !== undefined)\n items.push({ key: 'assets', risk: 'normal', label: '在当前频道生成图片或文件' })\n if (capabilities.assets?.library !== undefined) {\n items.push({\n key: 'assets.library',\n risk: 'sensitive',\n label: '把频道里的图片收进扩展资源库,之后可以在其他频道使用',\n detail: `最多 ${formatLibraryQuota(capabilities.assets.library.quotaBytes ?? EXTENSION_ASSET_LIBRARY_DEFAULT_QUOTA_BYTES)}`,\n })\n }\n if (capabilities.index !== undefined) {\n items.push({\n key: 'index',\n risk: 'normal',\n label: '建立可搜索的索引',\n detail: capabilities.index.collections.map(({ name }) => name).join('、'),\n })\n }\n if (capabilities.models !== undefined) {\n items.push({\n key: 'models',\n risk: 'sensitive',\n label: '使用本机已配置的模型,可以发送图片',\n detail: `每分钟最多 ${capabilities.models.maxCallsPerMinute} 次,计入所选模型的用量`,\n })\n }\n if (capabilities.history !== undefined)\n items.push({ key: 'history', risk: 'normal', label: '读取当前频道的聊天记录' })\n const hook = capabilities.inboundHook\n if (hook !== undefined) {\n const effects = [\n hook.mayHide ? '对智能体隐藏消息' : '',\n hook.mayForceTrigger ? '让智能体回应原本不会回应的消息' : '',\n ]\n .filter((effect) => effect !== '')\n .join('、')\n items.push({\n key: 'inboundHook',\n risk: hook.reads === 'all' ? 'high' : 'sensitive',\n label: hook.reads === 'all' ? '查看频道里的全部消息' : '在智能体回应前查看要回应的消息',\n ...(effects === '' ? {} : { detail: `可以${effects}` }),\n })\n }\n const jobs = capabilities.jobs\n if (jobs?.declared !== undefined && jobs.declared.length > 0) {\n items.push({\n key: 'jobs.declared',\n risk: 'normal',\n label: '按固定计划唤醒智能体',\n detail: jobs.declared.map(({ label }) => label).join('、'),\n })\n }\n if (jobs?.runtime !== undefined) {\n items.push({\n key: 'jobs.runtime',\n risk: 'sensitive',\n label: '创建定时任务唤醒智能体',\n detail: `同时最多 ${jobs.runtime.maxActive} 个`,\n })\n }\n const platform = capabilities.platform\n if (platform !== undefined && platform.actions.length > 0) {\n items.push({\n key: 'platform.actions',\n // Actions such as muting or removing members affect other people, so every typed action is confirmed.\n risk: 'high',\n label: '在平台上执行操作',\n detail: platform.actions.map(({ adapter, action }) => `${adapter} · ${action}`).join('、'),\n })\n }\n if (platform !== undefined && platform.raw.length > 0) {\n items.push({\n key: 'platform.raw',\n risk: 'high',\n label: '直接调用平台原始接口',\n detail: platform.raw.join('、'),\n })\n }\n if (capabilities.llm !== undefined) {\n items.push({\n key: 'llm',\n risk: 'sensitive',\n label: '使用这个智能体的模型',\n detail: `每轮最多 ${capabilities.llm.maxCallsPerTurn} 次,计入智能体用量`,\n })\n }\n for (const server of capabilities.mcp?.servers ?? []) {\n items.push(\n server.transport === 'stdio'\n ? {\n key: `mcp.${server.name}`,\n risk: 'high',\n label: `在本机运行 MCP 程序 ${server.name}`,\n detail: [server.command, ...server.args].join(' '),\n }\n : {\n key: `mcp.${server.name}`,\n risk: 'sensitive',\n label: `连接 MCP 服务 ${server.name}`,\n detail: new URL(server.url).host,\n },\n )\n }\n if (capabilities.context !== undefined && capabilities.context.length > 0) {\n items.push({\n key: 'context',\n risk: 'normal',\n label: '向智能体提供补充说明',\n detail: capabilities.context.map(({ name }) => name).join('、'),\n })\n }\n return items\n}\n","import { z } from 'zod'\nimport {\n ExtensionCapabilitiesSchema,\n HostLayerCapabilitiesSchema,\n hostLayerAsCapabilities,\n EXTENSION_SDK_BASE_LEVEL,\n} from './extension-capabilities.js'\nimport { ExtensionIdSchema, ExtensionRevisionIdSchema, HostUiPageInstanceIdSchema } from './domain.js'\nimport { ConfigSchemaDocumentSchema } from './config-schema.js'\n\nexport const HostUiPermissionSchema = z.enum([\n 'agents.read',\n 'channels.read',\n 'connections.read',\n 'extensions.read',\n 'dsh-plugins.read',\n 'runtime.read',\n 'messages.read',\n 'assets.read',\n 'agents.manage',\n 'channels.manage',\n 'connections.manage',\n 'credentials.write',\n 'messages.send',\n 'notifications.publish',\n 'network.request',\n])\n\nexport type HostUiPermission = z.output<typeof HostUiPermissionSchema>\n\nexport const HOST_UI_KIT_COMPONENT_NAMES = [\n 'Button',\n 'IconButton',\n 'Input',\n 'Textarea',\n 'Select',\n 'Switch',\n 'Tabs',\n 'Dialog',\n 'Popover',\n 'Tooltip',\n 'Field',\n 'StatusBadge',\n 'InlineFeedback',\n 'EmptyState',\n 'Spinner',\n 'PageHeader',\n 'MetricStrip',\n 'Metric',\n 'Section',\n 'Stack',\n 'Grid',\n 'DataTable',\n 'PropertyList',\n 'PropertyRow',\n] as const\n\nexport const HostUiKitComponentNameSchema = z.enum(HOST_UI_KIT_COMPONENT_NAMES)\n\nexport type HostUiKitComponentName = z.output<typeof HostUiKitComponentNameSchema>\n\nexport const HostUiPageGeometryEvidenceSchema = z\n .object({\n entryId: z\n .string()\n .trim()\n .regex(/^[a-z](?:[a-z0-9-]{0,62}[a-z0-9])?$/u),\n objectPane: z.enum(['navigation', 'hidden']),\n viewport: z\n .object({\n width: z.number().finite().positive().max(16_384),\n height: z.number().finite().positive().max(16_384),\n })\n .strict(),\n insets: z\n .object({\n top: z.number().finite().nonnegative().max(512),\n right: z.number().finite().nonnegative().max(512),\n bottom: z.number().finite().nonnegative().max(512),\n left: z.number().finite().nonnegative().max(512),\n })\n .strict(),\n contentAxesAligned: z.boolean(),\n horizontalOverflow: z.boolean(),\n titleDistinct: z.boolean(),\n })\n .strict()\n\nexport type HostUiPageGeometryEvidence = z.output<typeof HostUiPageGeometryEvidenceSchema>\n\nexport const HostIconNameSchema = z.enum([\n 'app-window',\n 'bar-chart',\n 'book-open',\n 'boxes',\n 'database',\n 'file-text',\n 'folder',\n 'globe',\n 'layout-dashboard',\n 'puzzle',\n 'terminal',\n 'workflow',\n 'wrench',\n])\n\nexport type HostIconName = z.output<typeof HostIconNameSchema>\n\nexport const HostPageIconSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('host-icon'), name: HostIconNameSchema }).strict(),\n z\n .object({\n kind: z.literal('svg'),\n path: z\n .string()\n .trim()\n .regex(/^assets\\/[a-z0-9][a-z0-9/_-]*\\.svg$/u),\n sha256: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n])\n\nexport type HostPageIcon = z.output<typeof HostPageIconSchema>\n\nexport const HostPageContributionSchema = z\n .object({\n kind: z.literal('host-page'),\n entryId: z\n .string()\n .trim()\n .regex(/^[a-z](?:[a-z0-9-]{0,62}[a-z0-9])?$/u),\n title: z.string().trim().min(1).max(40),\n description: z.string().trim().max(120).optional(),\n icon: HostPageIconSchema,\n objectPane: z.enum(['navigation', 'hidden']),\n startPath: z\n .string()\n .trim()\n .regex(/^(?:[a-z0-9][a-z0-9/_-]*)?$/u),\n /** Registers a navigation rail entry for this page; at most one page of an extension may declare it. */\n rail: z\n .object({ order: z.number().int().min(0).max(999).optional() })\n .strict()\n .optional(),\n })\n .strict()\n\nexport type HostPageContribution = z.output<typeof HostPageContributionSchema>\n\n/** Rail position of a page that registers a rail entry without an explicit order. */\nexport const HOST_PAGE_DEFAULT_RAIL_ORDER = 100\n\n/** The stored rail position of a page; `null` when the page has no rail entry. */\nexport const hostPageRailOrder = (page: Pick<HostPageContribution, 'rail'>): number | null =>\n page.rail === undefined ? null : (page.rail.order ?? HOST_PAGE_DEFAULT_RAIL_ORDER)\n\nexport const HostUiNavigationItemSchema = z\n .object({\n id: z.string().trim().min(1).max(80),\n label: z.string().trim().min(1).max(80),\n description: z.string().trim().max(120).optional(),\n icon: HostPageIconSchema.optional(),\n badge: z.string().trim().max(24).optional(),\n status: z.enum(['neutral', 'info', 'success', 'warning', 'error']).optional(),\n disabledReason: z.string().trim().max(160).optional(),\n path: z\n .string()\n .trim()\n .regex(/^(?:[a-z0-9][a-z0-9/_-]*)?$/u),\n })\n .strict()\n\nexport const HostUiNavigationGroupSchema = z\n .object({\n id: z.string().trim().min(1).max(80),\n label: z.string().trim().max(80).optional(),\n items: z.array(HostUiNavigationItemSchema).max(256),\n })\n .strict()\n\nexport const HostUiNavigationModelSchema = z\n .object({\n revision: z.number().int().nonnegative(),\n groups: z.array(HostUiNavigationGroupSchema).max(16),\n })\n .strict()\n .refine((model) => model.groups.reduce((total, group) => total + group.items.length, 0) <= 256, {\n message: 'Host UI navigation cannot contain more than 256 items.',\n })\n\nexport type HostUiNavigationModel = z.output<typeof HostUiNavigationModelSchema>\n\nexport const HostUiNetworkOriginSchema = z\n .string()\n .url()\n .transform((value, context) => {\n const url = new URL(value)\n if (url.protocol !== 'http:' && url.protocol !== 'https:') {\n context.addIssue({ code: 'custom', message: 'Host UI network origins must use HTTP(S).' })\n return z.NEVER\n }\n if (url.pathname !== '/' || url.search || url.hash || url.username || url.password) {\n context.addIssue({ code: 'custom', message: 'Host UI network origins cannot contain paths or credentials.' })\n return z.NEVER\n }\n return url.origin\n })\n\nconst checkBrowserPermissions = (\n value: { readonly permissions: readonly HostUiPermission[]; readonly networkOrigins: readonly string[] },\n context: z.RefinementCtx,\n): void => {\n if (new Set(value.permissions).size !== value.permissions.length) {\n context.addIssue({ code: 'custom', path: ['permissions'], message: 'Host UI permissions must be unique.' })\n }\n if (new Set(value.networkOrigins).size !== value.networkOrigins.length) {\n context.addIssue({ code: 'custom', path: ['networkOrigins'], message: 'Host UI network origins must be unique.' })\n }\n if (value.networkOrigins.length > 0 && !value.permissions.includes('network.request')) {\n context.addIssue({\n code: 'custom',\n path: ['networkOrigins'],\n message: 'Host UI network origins require network.request.',\n })\n }\n}\n\n/**\n * One approval: browser-side permissions plus the capabilities of one layer. Grants, digests and the approval page\n * use this shape for both the host approval and each agent approval.\n */\nexport const HostUiPermissionDeclarationSchema = z\n .object({\n permissions: z.array(HostUiPermissionSchema).max(HostUiPermissionSchema.options.length),\n networkOrigins: z.array(HostUiNetworkOriginSchema).max(32).default([]),\n capabilities: ExtensionCapabilitiesSchema.optional(),\n })\n .strict()\n .superRefine(checkBrowserPermissions)\n\nexport type HostUiPermissionDeclaration = z.output<typeof HostUiPermissionDeclarationSchema>\n\n/**\n * Manifest V7 `permissions`: browser-side permissions of pages and panels (`host.call`), host-layer capabilities used\n * by the single host instance, and agent-layer capabilities used inside each enabled agent.\n */\nexport const ExtensionPermissionsSchema = z\n .object({\n permissions: z.array(HostUiPermissionSchema).max(HostUiPermissionSchema.options.length).default([]),\n networkOrigins: z.array(HostUiNetworkOriginSchema).max(32).default([]),\n host: HostLayerCapabilitiesSchema.optional(),\n agent: ExtensionCapabilitiesSchema.optional(),\n })\n .strict()\n .superRefine(checkBrowserPermissions)\n .superRefine((value, context) => {\n if (value.agent?.models !== undefined) {\n context.addIssue({\n code: 'custom',\n path: ['agent', 'models'],\n message: 'models 只能在 permissions.host 中声明;智能体层使用 llm 调用智能体自己的模型。',\n })\n }\n // Both layers read and write the same collections, so a name must mean one definition.\n for (const collection of value.agent?.index?.collections ?? []) {\n const host = value.host?.index?.collections.find(({ name }) => name === collection.name)\n if (host !== undefined && JSON.stringify(host) !== JSON.stringify(collection)) {\n context.addIssue({\n code: 'custom',\n path: ['agent', 'index'],\n message: `索引 ${collection.name} 在 permissions.host 与 permissions.agent 中的定义不一致。`,\n })\n }\n }\n })\n\nexport type ExtensionPermissions = z.output<typeof ExtensionPermissionsSchema>\n\nexport const EMPTY_EXTENSION_PERMISSIONS: ExtensionPermissions = { permissions: [], networkOrigins: [] }\n\n/** What installing the extension on this machine asks the user to approve. */\nexport const hostPermissionDeclaration = (permissions: ExtensionPermissions): HostUiPermissionDeclaration => {\n const capabilities = hostLayerAsCapabilities(permissions.host)\n return {\n permissions: [...permissions.permissions],\n networkOrigins: [...permissions.networkOrigins],\n ...(capabilities === undefined ? {} : { capabilities }),\n }\n}\n\n/** What enabling the extension for one agent asks the user to approve. */\nexport const agentPermissionDeclaration = (permissions: ExtensionPermissions): HostUiPermissionDeclaration => ({\n permissions: [],\n networkOrigins: [],\n ...(permissions.agent === undefined || Object.keys(permissions.agent).length === 0\n ? {}\n : { capabilities: permissions.agent }),\n})\n\nexport const HostUiOwnerSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('extension'),\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n })\n .strict(),\n z\n .object({\n kind: z.literal('dsh-plugin'),\n entryId: z.string().trim().min(1),\n artifactDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n])\n\nexport type HostUiOwner = z.output<typeof HostUiOwnerSchema>\n\nexport const HostUiPageEntrySchema = z\n .object({\n pageInstanceId: HostUiPageInstanceIdSchema,\n owner: HostUiOwnerSchema,\n entryId: z.string().trim().min(1).max(64),\n title: z.string().trim().min(1).max(40),\n description: z.string().trim().max(120).optional(),\n icon: HostPageIconSchema,\n objectPane: z.enum(['navigation', 'hidden']),\n startPath: z.string(),\n visible: z.boolean(),\n sortOrder: z.number().int().nonnegative(),\n /** Present when the page registered a navigation rail entry; lower orders come first. */\n rail: z\n .object({ order: z.number().int().min(0).max(999) })\n .strict()\n .optional(),\n routeBase: z.string().regex(/^\\/apps\\/hup_[0-9A-Za-z]+$/u),\n client: z\n .object({\n moduleUrl: z.string().startsWith('/'),\n buildKey: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n diagnostic: z\n .object({\n status: z.enum(['ready', 'load-failed', 'navigation-failed', 'rpc-failed', 'restore-failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n createdAt: z.number().int().safe().nonnegative(),\n updatedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport type HostUiPageEntry = z.output<typeof HostUiPageEntrySchema>\n\nexport const HostUiPagePreferencesSchema = z\n .object({\n revision: z.number().int().nonnegative(),\n entries: z.array(\n z\n .object({\n pageInstanceId: HostUiPageInstanceIdSchema,\n visible: z.boolean(),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport type HostUiPagePreferences = z.output<typeof HostUiPagePreferencesSchema>\n\nexport const DshNxtHostUiSchema = z\n .object({\n schemaVersion: z.literal(1),\n entryKey: z.string().trim().min(1).max(120),\n client: z\n .string()\n .trim()\n .regex(/^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[a-zA-Z0-9._/-]+\\.m?js$/u),\n css: z\n .string()\n .trim()\n .regex(/^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[a-zA-Z0-9._/-]+\\.css$/u)\n .optional(),\n pages: z.array(HostPageContributionSchema).min(1).max(8),\n permissions: HostUiPermissionDeclarationSchema.default({ permissions: [], networkOrigins: [] }),\n })\n .strict()\n\nexport type DshNxtHostUi = z.output<typeof DshNxtHostUiSchema>\n\n/** Where the product shell may place an extension panel. The Host decides the concrete page and position. */\nexport const ExtensionPanelAnchorSchema = z.enum(['agent', 'channel', 'extension', 'connection'])\nexport type ExtensionPanelAnchor = z.output<typeof ExtensionPanelAnchorSchema>\n\n/**\n * Which layer a panel belongs to. Agent and channel panels follow the agents the extension is enabled for (a channel\n * panel also shows on channels of the extension's own adapter); extension and connection panels belong to the host\n * instance.\n */\nexport const PANEL_ANCHOR_LAYER = {\n agent: 'agent',\n channel: 'agent',\n extension: 'host',\n connection: 'host',\n} as const satisfies Readonly<Record<ExtensionPanelAnchor, 'agent' | 'host'>>\n\nexport const PanelDensitySchema = z.enum(['compact', 'full'])\nexport type PanelDensity = z.output<typeof PanelDensitySchema>\n\nexport const ConnectionPanelRoleSchema = z.enum(['setup', 'status', 'diagnostics'])\nexport type ConnectionPanelRole = z.output<typeof ConnectionPanelRoleSchema>\n\nexport const ToolViewDensitySchema = z.enum(['chip', 'card'])\nexport type ToolViewDensity = z.output<typeof ToolViewDensitySchema>\n\nconst ContributionIdSchema = z\n .string()\n .trim()\n .regex(/^[a-z](?:[a-z0-9-]{0,62}[a-z0-9])?$/u)\n\nconst panelFields = {\n id: ContributionIdSchema,\n anchor: ExtensionPanelAnchorSchema,\n title: z.string().trim().min(1).max(24),\n icon: HostIconNameSchema.optional(),\n densities: z.array(PanelDensitySchema).min(1).max(2),\n role: ConnectionPanelRoleSchema.optional(),\n when: z\n .object({\n channelKinds: z\n .array(z.enum(['internal', 'direct', 'group']))\n .min(1)\n .max(3)\n .optional(),\n })\n .strict()\n .optional(),\n}\n\nconst checkPanel = (\n value: {\n readonly anchor: ExtensionPanelAnchor\n readonly densities: readonly PanelDensity[]\n readonly role?: ConnectionPanelRole | undefined\n readonly when?: { readonly channelKinds?: readonly string[] | undefined } | undefined\n },\n context: z.RefinementCtx,\n): void => {\n if (new Set(value.densities).size !== value.densities.length) {\n context.addIssue({ code: 'custom', path: ['densities'], message: '面板密度不能重复。' })\n }\n if (value.anchor === 'connection' && value.role === undefined) {\n context.addIssue({\n code: 'custom',\n path: ['role'],\n message: '连接面板必须声明 setup、status 或 diagnostics 角色。',\n })\n }\n if (value.anchor !== 'connection' && value.role !== undefined) {\n context.addIssue({ code: 'custom', path: ['role'], message: '只有连接面板可以声明角色。' })\n }\n if (value.when?.channelKinds !== undefined && value.anchor !== 'channel') {\n context.addIssue({ code: 'custom', path: ['when'], message: '只有频道面板可以按频道类型限定。' })\n }\n if (\n value.when?.channelKinds !== undefined &&\n new Set(value.when.channelKinds).size !== value.when.channelKinds.length\n ) {\n context.addIssue({ code: 'custom', path: ['when', 'channelKinds'], message: '频道类型不能重复。' })\n }\n}\n\n/** Client-side registration options for one panel; identical to the Manifest contribution without `kind`. */\nexport const ExtensionPanelDeclarationSchema = z.object(panelFields).strict().superRefine(checkPanel)\nexport type ExtensionPanelDeclaration = z.output<typeof ExtensionPanelDeclarationSchema>\n\nexport const PanelContributionSchema = z\n .object({ kind: z.literal('panel'), ...panelFields })\n .strict()\n .superRefine(checkPanel)\nexport type PanelContribution = z.output<typeof PanelContributionSchema>\n\nexport const ToolViewContributionSchema = z\n .object({ kind: z.literal('tool-view'), tool: z.string().trim().min(1).max(64) })\n .strict()\nexport type ToolViewContribution = z.output<typeof ToolViewContributionSchema>\n\nexport const RichKindSchema = z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9._-]{0,62}$/u)\n\nexport const MessageRendererContributionSchema = z\n .object({ kind: z.literal('message-renderer'), richKind: RichKindSchema })\n .strict()\nexport type MessageRendererContribution = z.output<typeof MessageRendererContributionSchema>\n\n/** What an extension provides, derived from its Manifest; for listing and filtering, never a lifecycle switch. */\nexport const EXTENSION_PROVIDES = ['agent', 'page', 'adapter', 'mcp'] as const\nexport const ExtensionProvideSchema = z.enum(EXTENSION_PROVIDES)\nexport type ExtensionProvide = z.output<typeof ExtensionProvideSchema>\n\n/** One configuration form: a serialized Schemastery document. */\nexport const ExtensionConfigDeclarationSchema = z.object({ schema: ConfigSchemaDocumentSchema }).strict()\nexport type ExtensionConfigDeclaration = z.output<typeof ExtensionConfigDeclarationSchema>\n\n/** Manifest V7 `config`: the host instance's configuration and each enabled agent's configuration. */\nexport const ExtensionLayeredConfigSchema = z\n .object({ host: ExtensionConfigDeclarationSchema.optional(), agent: ExtensionConfigDeclarationSchema.optional() })\n .strict()\nexport type ExtensionLayeredConfig = z.output<typeof ExtensionLayeredConfigSchema>\nexport type ExtensionConfigLayer = 'host' | 'agent'\n\n/** Product projection of what one Revision contributes to the shell. */\nexport const ExtensionUiContributionsSchema = z\n .object({\n panels: z.array(PanelContributionSchema).max(16),\n toolViews: z.array(z.string().trim().min(1).max(64)).max(32),\n messageRenderers: z.array(RichKindSchema).max(32),\n })\n .strict()\nexport type ExtensionUiContributions = z.output<typeof ExtensionUiContributionsSchema>\n\nexport const EMPTY_EXTENSION_UI_CONTRIBUTIONS: ExtensionUiContributions = {\n panels: [],\n toolViews: [],\n messageRenderers: [],\n}\n\n/** Read permission each Client data hook requires; the host enforces it in every runtime that renders a Client. */\nexport const EXTENSION_DATA_HOOK_PERMISSIONS = {\n useAgent: 'agents.read',\n useChannel: 'channels.read',\n useConnection: 'connections.read',\n useChannelRuntime: 'runtime.read',\n} as const satisfies Readonly<Record<string, HostUiPermission>>\n\nexport type ExtensionDataHookName = keyof typeof EXTENSION_DATA_HOOK_PERMISSIONS\n\n/**\n * The capability level a set of permissions needs: Manifest V7 itself, or the level that introduced the newest\n * capability it declares. Packaging and import compare it with `requires.sdk`, so an extension cannot claim a level\n * too old for what it uses.\n */\nexport const requiredExtensionSdkLevel = (\n permissions: ExtensionPermissions | undefined,\n): { readonly level: number; readonly capabilities: readonly string[] } => {\n const level8 = [\n permissions?.host?.assets === undefined ? undefined : '扩展资源库',\n permissions?.agent?.assets?.library === undefined ? undefined : '扩展资源库',\n permissions?.host?.index === undefined && permissions?.agent?.index === undefined ? undefined : '检索索引',\n permissions?.host?.models === undefined ? undefined : '本机层模型调用',\n ].filter((name): name is string => name !== undefined)\n return level8.length > 0\n ? { level: 8, capabilities: [...new Set(level8)] }\n : { level: EXTENSION_SDK_BASE_LEVEL, capabilities: [] }\n}\n","import { z } from 'zod'\nimport {\n AgentIdSchema,\n AgentRevisionIdSchema,\n ChannelEventIdSchema,\n ChannelIdSchema,\n ConnectionIdSchema,\n ExtensionRevisionIdSchema,\n MessagePartSchema,\n OutboundIntentIdSchema,\n type AgentId,\n type ChannelId,\n type ChannelMemberId,\n type MessagePart,\n} from './domain.js'\n\nexport const COMMAND_DEFAULT_TIMEOUT_SECONDS = 60\nexport const COMMAND_MAX_TIMEOUT_SECONDS = 600\n/**\n * Who may run a command. `channel-admin` is granted per channel; `admin` is an instance administrator (the signed-in\n * console or a platform account listed in Settings → Administrators) and also holds every channel's `channel-admin`.\n */\nexport const CommandPermissionSchema = z.enum(['public', 'channel-admin', 'admin'])\nexport type CommandPermission = z.output<typeof CommandPermissionSchema>\nconst nameSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[\\p{L}\\p{N}_-]+$/u)\nconst scalarSchema = z.union([z.string(), z.number().finite(), z.boolean()])\nexport const CommandParameterSchema = z\n .object({\n name: nameSchema,\n description: z.string().max(500).optional(),\n kind: z.enum(['positional', 'option']),\n type: z.enum(['string', 'number', 'integer', 'boolean']),\n required: z.boolean().optional(),\n default: scalarSchema.optional(),\n choices: z.array(scalarSchema).min(1).max(100).optional(),\n min: z.number().finite().optional(),\n max: z.number().finite().optional(),\n })\n .strict()\nexport const CommandDefinitionSchema = z\n .object({\n name: nameSchema,\n aliases: z.array(nameSchema).max(16).default([]),\n description: z.string().min(1).max(1000),\n parameters: z.array(CommandParameterSchema).max(32).default([]),\n examples: z.array(z.string().max(2000)).max(16).default([]),\n minimumPermission: CommandPermissionSchema.default('public'),\n enabledByDefault: z.boolean().default(true),\n /**\n * Where the result goes when an administrator runs the command from the console (Web or Desktop) in an external\n * channel. `local` (default) shows it in the console only; `channel` also sends it through the bot account, and\n * the console labels the command accordingly. Platform-originated commands always reply in their conversation.\n */\n consoleReply: z.enum(['local', 'channel']).default('local'),\n /**\n * How long an extension handler may run before it is cancelled and recorded as timed out, so a stuck handler\n * cannot hold the channel's command queue. Built-in commands ignore it.\n */\n timeoutSeconds: z.number().int().min(1).max(COMMAND_MAX_TIMEOUT_SECONDS).default(COMMAND_DEFAULT_TIMEOUT_SECONDS),\n })\n .strict()\n .superRefine((definition, ctx) => {\n const names = [definition.name, ...definition.aliases]\n if (new Set(names).size !== names.length) ctx.addIssue({ code: 'custom', message: '命令名称和别名不能重复。' })\n if (new Set(definition.parameters.map((p) => p.name)).size !== definition.parameters.length)\n ctx.addIssue({ code: 'custom', message: '参数名称不能重复。' })\n let optional = false\n for (const p of definition.parameters) {\n if (p.min !== undefined && p.max !== undefined && p.min > p.max)\n ctx.addIssue({ code: 'custom', message: `参数 ${p.name} 的范围无效。` })\n if (p.kind === 'positional') {\n if (optional && p.required) ctx.addIssue({ code: 'custom', message: '必填位置参数必须在可选参数之前。' })\n if (!p.required || p.default !== undefined) optional = true\n }\n if (p.default !== undefined) {\n try {\n if (validateValue(p, String(p.default)) !== p.default) throw new Error('默认值类型不匹配。')\n } catch {\n ctx.addIssue({ code: 'custom', message: `参数 ${p.name} 的默认值无效。` })\n }\n }\n }\n })\nexport type CommandDefinition = z.output<typeof CommandDefinitionSchema>\n/** What an extension author writes: defaults are optional. */\nexport type CommandDefinitionInput = z.input<typeof CommandDefinitionSchema>\nexport const CommandPolicySchema = z\n .object({ enabled: z.boolean().optional(), permission: CommandPermissionSchema.optional() })\n .strict()\nexport type CommandPolicy = z.output<typeof CommandPolicySchema>\nexport const CommandExecutionIdentitySchema = z\n .object({\n source: z.enum(['web', 'platform']),\n connectionId: ConnectionIdSchema.optional(),\n platformUserId: z.string().optional(),\n displayName: z.string(),\n viewerId: z.string().optional(),\n })\n .strict()\nexport type CommandExecutionIdentity = z.output<typeof CommandExecutionIdentitySchema>\nexport const CommandResultSchema = z\n .object({\n parts: z\n .array(MessagePartSchema)\n .min(1)\n .max(32)\n .refine(\n (parts) => parts.every((p) => ['text', 'image', 'file'].includes(p.type)),\n '命令结果仅支持文本、图片和文件。',\n ),\n summary: z.string().max(2000).optional(),\n })\n .strict()\nexport type CommandResult = z.output<typeof CommandResultSchema>\n/** An execution may send a few progress replies before its final result. */\nexport const COMMAND_MAX_PROGRESS_REPLIES = 5\nexport const CommandReplySchema = z\n .object({\n /** Position within the execution; the final result always has the highest ordinal. */\n ordinal: z.number().int().nonnegative(),\n kind: z.enum(['progress', 'final']),\n parts: CommandResultSchema.shape.parts,\n /** Set once the reply has an Outbound; absent with `error` means planning failed. */\n intentId: OutboundIntentIdSchema.optional(),\n error: z.string().optional(),\n })\n .strict()\nexport type CommandReply = z.output<typeof CommandReplySchema>\nexport const CommandExecutionRecordSchema = z\n .object({\n id: z.string().min(1),\n channelId: ChannelIdSchema,\n source: z.enum(['web', 'platform']),\n requestId: z.string().min(1).max(200),\n eventId: ChannelEventIdSchema.optional(),\n rawText: z.string(),\n identity: CommandExecutionIdentitySchema,\n commandName: z.string().optional(),\n commandVersion: z.string().optional(),\n extensionRevisionId: ExtensionRevisionIdSchema.optional(),\n agentId: AgentIdSchema.optional(),\n agentRevisionId: AgentRevisionIdSchema.optional(),\n status: z.enum(['pending', 'running', 'succeeded', 'failed', 'uncertain']),\n result: CommandResultSchema.optional(),\n error: z.string().optional(),\n /** Replies in send order. A platform command's replies go to its conversation; see `replyLocal`. */\n replies: z\n .array(CommandReplySchema)\n .max(COMMAND_MAX_PROGRESS_REPLIES + 1)\n .default([]),\n /** No reply is sent on purpose (unauthorized or unknown platform command, or console-local result). */\n replySuppressed: z.boolean().optional(),\n /** The result was kept in the console on purpose and never sent to the platform. */\n replyLocal: z.boolean().optional(),\n createdAt: z.number().int().nonnegative(),\n completedAt: z.number().int().nonnegative().optional(),\n })\n .strict()\nexport type CommandExecutionRecord = z.output<typeof CommandExecutionRecordSchema>\n/** Replies that still need an Outbound or a recorded failure. */\nexport const undeliveredCommandReplies = (record: CommandExecutionRecord): readonly CommandReply[] =>\n record.replySuppressed === true\n ? []\n : record.replies.filter((reply) => reply.intentId === undefined && reply.error === undefined)\nexport interface CommandExecutionContext {\n readonly channelId: ChannelId\n readonly agentId?: AgentId\n readonly identity: CommandExecutionIdentity\n readonly arguments: Readonly<Record<string, string | number | boolean>>\n readonly signal: AbortSignal\n /**\n * Sends a progress reply now; the handler's return value is the final result. At most\n * COMMAND_MAX_PROGRESS_REPLIES per execution, delivered in order without making the handler wait for receipts.\n */\n readonly reply: (result: CommandResult) => void\n readonly host: {\n status(): {\n readonly bound: boolean\n readonly responseMode?: string\n readonly paused?: boolean\n readonly running: boolean\n }\n /** Resolves with `stopped: false` when nothing was running. */\n stop(): Promise<{ readonly stopped: boolean }>\n reset(mode: 'clear' | 'compact'): Promise<void>\n }\n}\nexport type CommandHandler = (context: CommandExecutionContext) => CommandResult | Promise<CommandResult>\nexport const CommandCatalogEntrySchema = z\n .object({\n definition: CommandDefinitionSchema,\n fullName: z.string(),\n source: z.string(),\n extensionRevisionId: ExtensionRevisionIdSchema.optional(),\n enabled: z.boolean(),\n permission: CommandPermissionSchema,\n usage: z.string(),\n available: z.boolean(),\n unavailableReason: z.string().optional(),\n globalPolicy: CommandPolicySchema.optional(),\n channelPolicy: CommandPolicySchema.optional(),\n })\n .strict()\nexport type CommandCatalogEntry = z.output<typeof CommandCatalogEntrySchema>\n\n/** Shell-like quoting without evaluation or interpolation. */\nexport function tokenizeCommand(text: string): string[] {\n const tokens: string[] = []\n let value = '',\n quote = '',\n escaped = false,\n started = false\n for (const char of text) {\n if (escaped) {\n value += char\n escaped = false\n started = true\n continue\n }\n if (char === '\\\\') {\n escaped = true\n started = true\n continue\n }\n if (quote) {\n if (char === quote) quote = ''\n else value += char\n continue\n }\n if (char === '\"' || char === \"'\") {\n quote = char\n started = true\n continue\n }\n if (/\\s/u.test(char)) {\n if (started) tokens.push(value)\n value = ''\n started = false\n continue\n }\n value += char\n started = true\n }\n if (escaped || quote) throw new Error('引号或转义未闭合。')\n if (started) tokens.push(value)\n return tokens\n}\nfunction validateValue(p: z.output<typeof CommandParameterSchema>, raw: string): string | number | boolean {\n let value: string | number | boolean = raw\n if (p.type === 'boolean') {\n if (!['true', 'false'].includes(raw)) throw new Error(`参数 ${p.name} 必须为 true 或 false。`)\n value = raw === 'true'\n } else if (p.type !== 'string') {\n value = Number(raw)\n if (raw.trim() === '' || !Number.isFinite(value) || (p.type === 'integer' && !Number.isSafeInteger(value)))\n throw new Error(`参数 ${p.name} 必须为${p.type === 'integer' ? '整数' : '数字'}。`)\n }\n const size = typeof value === 'string' ? [...value].length : typeof value === 'number' ? value : undefined\n if (size !== undefined && ((p.min !== undefined && size < p.min) || (p.max !== undefined && size > p.max)))\n throw new Error(`参数 ${p.name} 超出允许范围。`)\n if (p.choices !== undefined && !p.choices.includes(value))\n throw new Error(`参数 ${p.name} 必须为:${p.choices.join('、')}。`)\n return value\n}\nexport function parseCommandArguments(\n definition: CommandDefinition,\n tokens: readonly string[],\n): Readonly<Record<string, string | number | boolean>> {\n const args = new Map<string, string | number | boolean>()\n const positions = definition.parameters.filter((p) => p.kind === 'positional')\n let index = 0,\n options = true\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]!\n if (options && token === '--') {\n options = false\n continue\n }\n let p: CommandDefinition['parameters'][number] | undefined,\n raw = token\n if (options && token.startsWith('--')) {\n const equal = token.indexOf('=')\n const key = token.slice(2, equal < 0 ? undefined : equal)\n p = definition.parameters.find((p) => p.kind === 'option' && p.name === key)\n if (!p) throw new Error(`未知选项:--${key}`)\n if (equal >= 0) raw = token.slice(equal + 1)\n else if (p.type === 'boolean' && (tokens[i + 1] === undefined || !['true', 'false'].includes(tokens[i + 1]!)))\n raw = 'true'\n else {\n const next = tokens[++i]\n if (next === undefined || next.startsWith('--')) throw new Error(`选项 --${key} 缺少值。`)\n raw = next\n }\n } else {\n p = positions[index++]\n if (!p) throw new Error(`多余参数:${token}`)\n }\n if (args.has(p.name)) throw new Error(`重复参数:${p.name}`)\n args.set(p.name, validateValue(p, raw))\n }\n for (const p of definition.parameters) {\n if (args.has(p.name)) continue\n if (p.default !== undefined) args.set(p.name, p.default)\n else if (p.required) throw new Error(`缺少参数:${p.kind === 'option' ? '--' : ''}${p.name}`)\n }\n return Object.fromEntries(args)\n}\nexport function commandUsage(definition: CommandDefinition, name = definition.name): string {\n return (\n '/' +\n name +\n definition.parameters\n .map((p) => {\n const value =\n p.kind === 'option' ? `--${p.name} ${p.type === 'boolean' ? '[true|false]' : `<${p.name}>`}` : `<${p.name}>`\n return ' ' + (p.required ? value : `[${value}]`)\n })\n .join('')\n )\n}\nexport type CommandRecognition =\n | { readonly kind: 'command'; readonly text: string }\n | { readonly kind: 'escaped'; readonly parts: readonly MessagePart[] }\n | { readonly kind: 'chat' }\nexport interface CommandRecognitionOptions {\n /** External groups: only text addressed to this account is a command. */\n readonly requireMention?: boolean\n /**\n * The platform itself says this message mentions the account (QQ's @ events, WeCom group callbacks), even when the\n * mention is not a leading mention part. Such adapters may also leave a leading `@name` as plain text.\n */\n readonly addressed?: boolean\n}\nexport function recognizeCommand(\n parts: readonly MessagePart[],\n botMemberId?: ChannelMemberId,\n options: CommandRecognitionOptions = {},\n): CommandRecognition {\n let input = parts\n while (input.length > 1 && input[0]?.type === 'text' && input[0].text.trim() === '') input = input.slice(1)\n let addressed = options.addressed === true\n let mentionPart = false\n if (input[0]?.type === 'mention') {\n // A leading mention of someone else addresses them, never this account.\n if (botMemberId === undefined || input[0].memberId !== botMemberId) return { kind: 'chat' }\n input = input.slice(1)\n addressed = true\n mentionPart = true\n }\n if (options.requireMention === true && !addressed) return { kind: 'chat' }\n if (input.length === 0 || input.some((p) => p.type !== 'text')) return { kind: 'chat' }\n let text = input\n .map((p) => (p.type === 'text' ? p.text : ''))\n .join('')\n .trimStart()\n if (options.addressed === true && !mentionPart) text = text.replace(/^@\\S+\\s+/u, '')\n if (text.startsWith('//')) return { kind: 'escaped', parts: [{ type: 'text', text: text.slice(1) }] }\n if (!text.startsWith('/')) return { kind: 'chat' }\n return { kind: 'command', text }\n}\n/** The command name a recognized text invokes (`/name args` → `name`). */\nexport const commandNameOf = (text: string): string => /^\\/(\\S*)/u.exec(text.trimStart())?.[1] ?? ''\n","import { z } from 'zod'\n\n/** Log summaries are labels; leave structured diagnostics and stacks untouched. */\nexport function formatLogMessage(message: string): string {\n return message.trimEnd().replace(/[。.]$/u, '')\n}\n\nexport const hostLogLevelSchema = z.enum(['debug', 'info', 'warn', 'error'])\nexport type HostLogLevel = z.infer<typeof hostLogLevelSchema>\n/** Write-only, owner-bound SDK capability. No caller-supplied identity fields. */\nexport interface NxtLogger {\n debug(message: string, details?: unknown): void\n info(message: string, details?: unknown): void\n warn(message: string, details?: unknown): void\n error(message: string, details?: unknown): void\n}\nexport const hostLogSourceKindSchema = z.enum(['system', 'dsh-plugin', 'extension', 'connection', 'unknown'])\nexport type HostLogSourceKind = z.infer<typeof hostLogSourceKindSchema>\nexport const hostLogSourceSchema = z\n .object({\n kind: hostLogSourceKindSchema,\n id: z.string().min(1).max(512),\n name: z.string().min(1).max(512),\n version: z.string().max(512).optional(),\n component: z.string().max(512).optional(),\n })\n .strict()\nexport type HostLogSource = z.infer<typeof hostLogSourceSchema>\nexport const hostLogScopeSchema = z\n .object({\n extensionId: z.string().max(512).optional(),\n revisionId: z.string().max(512).optional(),\n connectionId: z.string().max(512).optional(),\n agentId: z.string().max(512).optional(),\n channelId: z.string().max(512).optional(),\n sessionId: z.string().max(512).optional(),\n episodeId: z.string().max(512).optional(),\n operationId: z.string().max(512).optional(),\n })\n .strict()\nexport type HostLogScope = z.infer<typeof hostLogScopeSchema>\nexport const hostLogEntrySchema = z\n .object({\n id: z.string(),\n sequence: z.number().int().nonnegative(),\n timestamp: z.iso.datetime(),\n runId: z.string(),\n level: hostLogLevelSchema,\n message: z.string(),\n source: hostLogSourceSchema,\n scope: hostLogScopeSchema.optional(),\n details: z.json().optional(),\n code: z.string().optional(),\n redacted: z.boolean(),\n truncated: z.boolean(),\n })\n .strict()\nexport type HostLogEntry = z.infer<typeof hostLogEntrySchema>\nexport interface HostLogInput {\n formatArgs?: readonly unknown[]\n level: HostLogLevel\n message: string\n source: HostLogSource\n scope?: HostLogScope\n details?: unknown\n code?: string\n}\nexport const hostLogQuerySchema = z\n .object({\n levels: z.array(hostLogLevelSchema).max(4).optional(),\n sourceKinds: z.array(hostLogSourceKindSchema).max(5).optional(),\n sourceIds: z.array(z.string().max(512)).max(100).optional(),\n sources: z\n .array(hostLogSourceSchema.pick({ kind: true, id: true }))\n .max(100)\n .optional(),\n scope: hostLogScopeSchema.optional(),\n keyword: z.string().max(1000).optional(),\n from: z.iso.datetime().optional(),\n to: z.iso.datetime().optional(),\n olderCursor: z.string().max(128).optional(),\n afterCursor: z.string().max(128).optional(),\n headCursor: z.string().max(128).optional(),\n limit: z.number().int().min(1).max(500).optional(),\n })\n .strict()\nexport type HostLogQuery = z.infer<typeof hostLogQuerySchema>\nexport const hostLogPageSchema = z\n .object({\n entries: z.array(hostLogEntrySchema),\n olderCursor: z.string().nullable(),\n headCursor: z.string(),\n hasMore: z.boolean(),\n gap: z.enum(['expired', 'reset']).optional(),\n })\n .strict()\nexport type HostLogPage = z.infer<typeof hostLogPageSchema>\nexport const hostLogSettingsSchema = z\n .object({\n retentionDays: z.number().int().min(1).max(30),\n maxSizeMiB: z.number().int().min(64).max(2048),\n revision: z.number().int().nonnegative(),\n })\n .strict()\nexport type HostLogSettings = z.infer<typeof hostLogSettingsSchema>\nexport const hostLogSettingsUpdateSchema = hostLogSettingsSchema\nexport const hostLogDebugRequestSchema = z\n .object({\n source: hostLogSourceSchema.pick({ kind: true, id: true }).optional(),\n durationMinutes: z.union([z.literal(5), z.literal(15), z.literal(30)]).default(15),\n })\n .strict()\nexport type HostLogDebugRequest = z.infer<typeof hostLogDebugRequestSchema>\nexport const hostLogDebugLeaseSchema = hostLogDebugRequestSchema.extend({ id: z.string(), expiresAt: z.iso.datetime() })\nexport type HostLogDebugLease = z.infer<typeof hostLogDebugLeaseSchema>\nexport const hostLogStatusSchema = z\n .object({\n state: z.enum(['ready', 'degraded', 'closed']),\n runId: z.string(),\n headCursor: z.string(),\n bytes: z.number().nonnegative(),\n count: z.number().int().nonnegative(),\n oldestTimestamp: z.iso.datetime().nullable(),\n newestTimestamp: z.iso.datetime().nullable(),\n queuedBytes: z.number().nonnegative(),\n droppedCount: z.number().int().nonnegative(),\n debugLeases: z.array(hostLogDebugLeaseSchema),\n error: z.string().optional(),\n })\n .strict()\nexport type HostLogStatus = z.infer<typeof hostLogStatusSchema>\nexport const hostLogStreamEventSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('entries'), entries: z.array(hostLogEntrySchema), cursor: z.string() }),\n z.object({ type: z.literal('gap'), reason: z.enum(['expired', 'reset', 'overflow']), cursor: z.string() }),\n z.object({ type: z.literal('status'), status: hostLogStatusSchema }),\n])\nexport type HostLogStreamEvent = z.infer<typeof hostLogStreamEventSchema>\nexport type HostLogExportFormat = 'text' | 'jsonl'\n","import { z } from 'zod'\n\nexport const RuntimeCompatibilityDiagnosticSchema = z\n .object({\n objectKind: z.enum(['agent', 'model-provider', 'extension', 'dsh-plugin', 'adapter', 'client-page']),\n objectId: z.string().min(1),\n objectVersion: z.string().min(1),\n configurationRevision: z.string(),\n runtimeFingerprint: z.string().min(1),\n status: z.enum(['checking', 'compatible', 'isolated']),\n phase: z.enum(['configuration', 'dependency', 'build', 'load', 'render', 'restore', 'dispose']),\n reason: z.string().max(2048).optional(),\n retryable: z.boolean(),\n checkedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type RuntimeCompatibilityDiagnostic = z.infer<typeof RuntimeCompatibilityDiagnosticSchema>\n\nexport const HostUpgradeSummarySchema = z\n .object({\n runtimeVersion: z.string().min(1),\n sessionCompatibilityId: z.string().min(1),\n backupId: z.string().optional(),\n resetContexts: z.boolean(),\n diagnostics: z.array(RuntimeCompatibilityDiagnosticSchema),\n })\n .strict()\nexport type HostUpgradeSummary = z.infer<typeof HostUpgradeSummarySchema>\n","import { z } from 'zod'\n\nconst NonEmptyStringSchema = z.string().trim().min(1)\nconst Base64UrlSchema = z.string().regex(/^[A-Za-z0-9_-]+$/u)\n\nexport const ServerInstanceIdSchema = z\n .string()\n .regex(/^nxt_instance_[0-9A-HJKMNP-TV-Z]{26}$/u)\n .brand<'ServerInstanceId'>()\nexport type ServerInstanceId = z.output<typeof ServerInstanceIdSchema>\n\nexport const ManagementDeviceIdSchema = z\n .string()\n .regex(/^nxt_device_[0-9A-HJKMNP-TV-Z]{26}$/u)\n .brand<'ManagementDeviceId'>()\nexport type ManagementDeviceId = z.output<typeof ManagementDeviceIdSchema>\n\nexport const InstanceDescriptorWireSchema = z\n .object({\n format: z.literal('nxt.instance-descriptor'),\n descriptorVersion: z.number().int().positive(),\n instanceId: ServerInstanceIdSchema,\n releaseId: NonEmptyStringSchema.max(256),\n productVersion: NonEmptyStringSchema.max(64),\n managementProtocol: z.number().int().positive(),\n desktopChromeProtocol: z.number().int().positive(),\n transport: NonEmptyStringSchema.max(80),\n })\n .passthrough()\nexport type InstanceDescriptorWire = z.output<typeof InstanceDescriptorWireSchema>\n\nexport const InstanceDescriptorSchema = z\n .object({\n format: z.literal('nxt.instance-descriptor'),\n descriptorVersion: z.literal(1),\n instanceId: ServerInstanceIdSchema,\n releaseId: NonEmptyStringSchema.max(256),\n productVersion: NonEmptyStringSchema.max(64),\n managementProtocol: z.union([z.literal(1), z.literal(2)]),\n desktopChromeProtocol: z.literal(1),\n transport: z.enum(['loopback-http', 'auto-tls-pinned-v1', 'explicit-http-v1']),\n })\n .strict()\n .superRefine((value, context) => {\n const valid =\n (value.managementProtocol === 1 &&\n (value.transport === 'loopback-http' || value.transport === 'auto-tls-pinned-v1')) ||\n (value.managementProtocol === 2 && value.transport === 'explicit-http-v1')\n if (!valid) context.addIssue({ code: 'custom', message: 'management protocol 与 transport 不匹配。' })\n })\nexport type InstanceDescriptor = z.output<typeof InstanceDescriptorSchema>\n\nexport const ManagementChallengeResponseSchema = z\n .object({\n challengeId: Base64UrlSchema,\n serverNonce: Base64UrlSchema,\n instanceId: ServerInstanceIdSchema,\n spkiSha256: Base64UrlSchema,\n expiresAt: z.number().int().positive(),\n })\n .strict()\nexport type ManagementChallengeResponse = z.output<typeof ManagementChallengeResponseSchema>\n\nexport const InsecureHttpManagementChallengeResponseSchema = z\n .object({\n challengeId: Base64UrlSchema,\n serverNonce: Base64UrlSchema,\n instanceId: ServerInstanceIdSchema,\n transportBinding: Base64UrlSchema,\n expiresAt: z.number().int().positive(),\n })\n .strict()\nexport type InsecureHttpManagementChallengeResponse = z.output<typeof InsecureHttpManagementChallengeResponseSchema>\n\nexport const ManagementDeviceEnrollmentRequestSchema = z\n .object({\n challengeId: Base64UrlSchema,\n clientNonce: Base64UrlSchema,\n proof: Base64UrlSchema,\n label: z.string().trim().min(1).max(80),\n clientReleaseId: NonEmptyStringSchema.max(256),\n })\n .strict()\nexport type ManagementDeviceEnrollmentRequest = z.input<typeof ManagementDeviceEnrollmentRequestSchema>\n\nexport const ManagementDeviceEnrollmentResponseSchema = z\n .object({\n deviceId: ManagementDeviceIdSchema,\n deviceSecret: Base64UrlSchema,\n })\n .strict()\nexport type ManagementDeviceEnrollmentResponse = z.output<typeof ManagementDeviceEnrollmentResponseSchema>\n\nexport const ManagementSessionRequestSchema = z\n .object({ deviceId: ManagementDeviceIdSchema, deviceSecret: Base64UrlSchema })\n .strict()\nexport type ManagementSessionRequest = z.input<typeof ManagementSessionRequestSchema>\n\nexport const ManagementSessionResponseSchema = z\n .object({ authenticated: z.literal(true), deviceId: ManagementDeviceIdSchema, csrfToken: Base64UrlSchema })\n .strict()\nexport type ManagementSessionResponse = z.output<typeof ManagementSessionResponseSchema>\n\nexport const ManagementDeviceViewSchema = z\n .object({\n id: ManagementDeviceIdSchema,\n label: z.string().trim().min(1).max(80),\n createdAt: z.number().int().nonnegative(),\n lastUsedAt: z.number().int().nonnegative().optional(),\n revokedAt: z.number().int().nonnegative().optional(),\n /** The device this request is signed in with. */\n current: z.boolean().optional(),\n })\n .strict()\nexport type ManagementDeviceView = z.output<typeof ManagementDeviceViewSchema>\n\nexport const ClientNotificationSchema = z\n .object({\n id: z.string().trim().min(1).max(160),\n kind: z.enum(['action-required']),\n title: z.string().trim().min(1).max(80),\n body: z.string().trim().min(1).max(240),\n occurredAt: z.number().int().nonnegative(),\n route: z\n .string()\n .regex(\n /^\\/(?:(?:live|channels|agents|workshop|wiring|settings|community|apps|work|connections|users|extensions)(?:\\/[^?#]*)?)?$/u,\n )\n .optional(),\n })\n .strict()\nexport type ClientNotification = z.output<typeof ClientNotificationSchema>\n\nexport const MANAGEMENT_PAIR_PROOF_PREFIX = 'nxt-management-pair-v1' as const\n\nexport const managementPairProofMessage = (input: {\n readonly challengeId: string\n readonly serverNonce: string\n readonly clientNonce: string\n readonly instanceId: ServerInstanceId\n readonly spkiSha256: string\n}): string =>\n [\n MANAGEMENT_PAIR_PROOF_PREFIX,\n input.challengeId,\n input.serverNonce,\n input.clientNonce,\n input.instanceId,\n input.spkiSha256,\n ].join('\\n')\n\nexport const INSECURE_HTTP_MANAGEMENT_PAIR_PROOF_PREFIX = 'nxt-management-pair-insecure-http-v1' as const\n\nexport const insecureHttpManagementPairProofMessage = (input: {\n readonly challengeId: string\n readonly serverNonce: string\n readonly clientNonce: string\n readonly instanceId: ServerInstanceId\n readonly transportBinding: string\n}): string =>\n [\n INSECURE_HTTP_MANAGEMENT_PAIR_PROOF_PREFIX,\n input.challengeId,\n input.serverNonce,\n input.clientNonce,\n input.instanceId,\n input.transportBinding,\n ].join('\\n')\n","import { z } from 'zod'\nimport { ExtensionIdSchema, ExtensionRevisionIdSchema } from './domain.js'\n\n/**\n * NekroNXT 社区在本机的投影。Host 代理社区开放接口并把结果归一到这些结构;社区新增的字段在 Host 处丢弃,\n * 不直接透传给页面。审查状态与社区 `ReviewStatus` 一致。\n */\nexport const COMMUNITY_REVIEW_STATUSES = [\n 'pending',\n 'reviewing',\n 'passed',\n 'passed_with_notes',\n 'flagged',\n 'held',\n 'risk_confirmed',\n 'rejected',\n 'incomplete',\n] as const\nexport const CommunityReviewStatusSchema = z.enum(COMMUNITY_REVIEW_STATUSES)\nexport type CommunityReviewStatus = z.output<typeof CommunityReviewStatusSchema>\n\n/** 社区评级的六个维度(审查标准 v1),从正上方顺时针排列成六边形。 */\nexport const COMMUNITY_RATING_DIMENSIONS = [\n 'security',\n 'openness',\n 'reliability',\n 'lightweight',\n 'usability',\n 'craft',\n] as const\nexport type CommunityRatingDimension = (typeof COMMUNITY_RATING_DIMENSIONS)[number]\n\nexport const COMMUNITY_RATING_DIMENSION_LABELS: Readonly<Record<CommunityRatingDimension, string>> = {\n security: '安全',\n openness: '开放',\n reliability: '稳定',\n lightweight: '轻量',\n usability: '易用',\n craft: '工艺',\n}\n\n/** 社区的审查员,评级与审查记录以她署名。 */\nexport const COMMUNITY_REVIEWER_NAME = '小澄'\n\n/** 社区判定的达成标签;不认识的标签不显示。扩展页面最多显示 {@link COMMUNITY_RATING_BADGE_LIMIT} 个。 */\nexport const COMMUNITY_RATING_BADGES: Readonly<\n Record<string, { readonly label: string; readonly description: string }>\n> = {\n 'zero-permission': { label: '零权限', description: '没有申请任何权限。' },\n 'least-privilege': { label: '最小权限', description: '声明的每项能力都用得上,安全满星。' },\n 'no-network': { label: '不联网', description: '不访问任何网络。' },\n 'scoped-network': { label: '限定地址联网', description: '只访问指定域名或用户在配置中填写的地址。' },\n 'managed-secrets': { label: '凭据托管', description: '凭据都是配置中的凭据字段,经宿主读取,没有写进源码。' },\n 'readable-source': { label: '源码可读', description: '没有混淆、压缩或内嵌大段编码内容。' },\n 'open-source': { label: '开源', description: '填写了公开的源码仓库。' },\n 'readable-errors': { label: '错误可读', description: '失败时都返回给用户看的说明,稳定满星。' },\n 'stable-context': { label: '上下文稳定', description: '不占上下文,或注入的上下文稳定、不破坏提示缓存。' },\n 'complete-docs': { label: '说明完整', description: '有图标和介绍,易用至少四星。' },\n}\nexport const COMMUNITY_RATING_BADGE_LIMIT = 4\n\n/** 一次发布的评级:六维星级、综合评分(各维度平均,保留一位小数)与达成标签。 */\nexport const CommunityRatingSchema = z.object({\n standard: z.string().max(20),\n score: z.number().min(1).max(5),\n dimensions: z\n .array(\n z.object({\n key: z.string().max(40),\n stars: z.number().int().min(1).max(5),\n headline: z.string().max(200),\n cap: z.string().max(200).optional(),\n }),\n )\n .max(16),\n badges: z.array(z.string().max(40)).max(32),\n})\nexport type CommunityRating = z.output<typeof CommunityRatingSchema>\n\n/** 市场的排序方式。 */\nexport const COMMUNITY_EXTENSION_SORTS = [\n { key: 'updated', label: '最近更新' },\n { key: 'score', label: '综合评分' },\n { key: 'downloads', label: '下载最多' },\n { key: 'newest', label: '最新上架' },\n] as const\nexport type CommunityExtensionSort = (typeof COMMUNITY_EXTENSION_SORTS)[number]['key']\nexport const CommunityExtensionSortSchema = z.enum(['updated', 'score', 'downloads', 'newest'])\n\nexport const CommunityReleaseIdSchema = z.string().regex(/^rel_[0-9A-Za-z]+$/u)\n\nexport const CommunityAccountSchema = z.object({\n /** Immutable community identity; absent when connected to a community predating feedback support. */\n id: z.string().min(1).max(100).optional(),\n handle: z.string().min(1).max(80),\n displayName: z.string().max(200),\n avatarUrl: z.string().url().nullable(),\n})\nexport type CommunityAccount = z.output<typeof CommunityAccountSchema>\n\nexport const CommunityEnvironmentSchema = z.enum(['production', 'staging', 'development'])\nexport type CommunityEnvironment = z.output<typeof CommunityEnvironmentSchema>\n\nexport const CommunityStatusSchema = z.object({\n features: z.array(z.string()).optional(),\n communityUrl: z.string().url(),\n /** 社区自我声明的环境;连不上或旧版社区时为 null。 */\n environment: CommunityEnvironmentSchema.nullable(),\n account: CommunityAccountSchema.nullable(),\n signedInAt: z.number().int().nullable(),\n /** 最近一次更新检查发现的可更新扩展数量(只读缓存,不发起网络请求)。 */\n updatesAvailable: z.number().int().nonnegative(),\n})\nexport type CommunityStatus = z.output<typeof CommunityStatusSchema>\n\nexport const CommunityPermissionItemSchema = z.object({\n key: z.string().max(120),\n level: z.enum(['normal', 'elevated', 'high']),\n label: z.string().max(200),\n detail: z.string().max(2000).optional(),\n /** `host`: approved when installed on this machine; `agent`: approved when enabled for an agent. */\n layer: z.enum(['host', 'agent']).optional(),\n})\n\nexport type CommunityPermissionItem = z.output<typeof CommunityPermissionItemSchema>\n\nexport const CommunityReleaseSchema = z.object({\n id: CommunityReleaseIdSchema,\n reviewStatus: CommunityReviewStatusSchema,\n /** 审查完成后的评级;尚未审查、审查未完成或旧版社区时为 null。 */\n rating: CommunityRatingSchema.nullable(),\n permissions: z.array(CommunityPermissionItemSchema).max(64),\n packageSize: z.number().int().nonnegative(),\n requiresSdk: z.number().int().positive().nullable(),\n notes: z.string().max(2000),\n createdAt: z.number().int(),\n /** Release number on the community line; absent from older communities. */\n number: z.number().int().positive().optional(),\n /** Revision the release contains and its lineage, so NekroNXT can tell fast-forward from divergence. */\n revisionId: ExtensionRevisionIdSchema.optional(),\n parentRevisionId: ExtensionRevisionIdSchema.nullable().optional(),\n ancestry: z.array(ExtensionRevisionIdSchema).max(256).optional(),\n})\nexport type CommunityRelease = z.output<typeof CommunityReleaseSchema>\n\n/** 社区为官方扩展保留的发布者标识:官方扩展由多位官方成员维护,对外不显示个人账号。 */\nexport const COMMUNITY_OFFICIAL_HANDLE = 'nekro-nxt'\n\n/** 发布者的展示文字:官方扩展显示「NekroNXT 官方」,其余显示 @账号。 */\nexport const communityPublisherLabel = (handle: string): string =>\n handle === COMMUNITY_OFFICIAL_HANDLE ? 'NekroNXT 官方' : `@${handle}`\n\nexport const CommunityExtensionSummarySchema = z.object({\n id: ExtensionIdSchema,\n /** What the extension provides, derived from its Manifest; unknown future labels are dropped. */\n provides: z.array(z.string().max(32)).max(8),\n displayName: z.string().max(200),\n summary: z.string().max(1000),\n tags: z.array(z.string().max(40)).max(16),\n /** 最新公开发布包内的扩展图标(社区的绝对地址);没有图标或旧版社区时为 null。 */\n iconUrl: z.string().url().nullable(),\n /** 由社区后台认定的官方扩展;此时发布者是社区保留的官方主页(`COMMUNITY_OFFICIAL_HANDLE`)。 */\n official: z.boolean(),\n publisher: CommunityAccountSchema,\n latest: CommunityReleaseSchema.nullable(),\n downloads: z.number().int().nonnegative(),\n updatedAt: z.number().int(),\n pageUrl: z.string().url(),\n /**\n * The extension and version this one is a branch of; null for an original line or an older community. Without a\n * displayName the origin is not public on the community.\n */\n branchOf: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema.nullable(),\n displayName: z.string().max(200).nullable(),\n })\n .nullable()\n .optional(),\n /** Public branches made from this extension. */\n branchCount: z.number().int().nonnegative().optional(),\n})\nexport type CommunityExtensionSummary = z.output<typeof CommunityExtensionSummarySchema>\n\nexport const CommunityExtensionDetailSchema = CommunityExtensionSummarySchema.extend({\n description: z.string().max(20_000),\n sourceUrl: z.string().url().nullable(),\n /** 公开的审查记录:评级、总评、各维度说明,以及发现与自动检查的标题。 */\n review: z\n .object({\n status: CommunityReviewStatusSchema,\n rating: CommunityRatingSchema.nullable(),\n summary: z.string().max(2000).nullable(),\n dimensions: z.array(z.object({ key: z.string().max(40), notes: z.string().max(2000) })).max(16),\n findings: z\n .array(z.object({ dimension: z.string().max(40), severity: z.string().max(20), title: z.string().max(200) }))\n .max(64),\n checks: z.array(z.object({ severity: z.string().max(20), title: z.string().max(200) })).max(64),\n reviewedAt: z.number().int().nullable(),\n })\n .nullable(),\n})\nexport type CommunityExtensionDetail = z.output<typeof CommunityExtensionDetailSchema>\n\n/**\n * 发布时随包提交的条目信息(作者自己写的介绍)。首次发布用于建条目;之后提供了哪项就覆盖哪项,未提供的保持不变。\n */\nexport const COMMUNITY_LISTING_LIMITS = { summary: 160, description: 20_000, tags: 8, tag: 40 } as const\n\nexport const CommunityListingInputSchema = z.object({\n summary: z.string().trim().max(COMMUNITY_LISTING_LIMITS.summary).optional(),\n description: z.string().max(COMMUNITY_LISTING_LIMITS.description).optional(),\n tags: z\n .array(z.string().trim().min(1).max(COMMUNITY_LISTING_LIMITS.tag))\n .max(COMMUNITY_LISTING_LIMITS.tags)\n .optional(),\n sourceUrl: z\n .string()\n .trim()\n .url()\n .refine((value) => /^https?:\\/\\//iu.test(value), '源码地址必须是 http(s) 链接。')\n .optional(),\n})\nexport type CommunityListingInput = z.output<typeof CommunityListingInputSchema>\n\nexport const CommunityEndpointSchema = z.object({\n url: z.string().url(),\n source: z.enum(['setting', 'environment', 'default']),\n defaultUrl: z.string().url(),\n environmentUrl: z.string().url().nullable(),\n /** 当前地址是未加密的非本机地址。 */\n insecure: z.boolean(),\n})\nexport type CommunityEndpoint = z.output<typeof CommunityEndpointSchema>\n\nexport const CommunitySourceSchema = z.object({\n kind: z.literal('community'),\n communityUrl: z.string().url(),\n releaseId: CommunityReleaseIdSchema,\n publisherHandle: z.string().min(1).max(80),\n installedAt: z.number().int().nonnegative(),\n})\nexport type CommunitySource = z.output<typeof CommunitySourceSchema>\n\n/**\n * How this machine's current version of one extension relates to the community's newest public release, with the\n * action that relation calls for. `role` says whether this machine may publish the line or only follows it.\n */\nexport const CommunitySyncItemSchema = z.object({\n extensionId: ExtensionIdSchema,\n displayName: z.string(),\n communityUrl: z.string().url(),\n role: z.enum(['owner', 'subscriber']),\n currentRevisionId: ExtensionRevisionIdSchema,\n currentVersionLabel: z.string(),\n /** Release the current version is, when it is one. */\n currentRelease: z.object({ id: CommunityReleaseIdSchema, number: z.number().int().positive().nullable() }).nullable(),\n /** `remote-ahead`: update; `local-ahead`: publish (owner) or local changes (subscriber); `diverged`: merge first. */\n status: z.enum(['same', 'remote-ahead', 'local-ahead', 'diverged', 'unrelated', 'unknown']),\n found: z.boolean(),\n delisted: z.boolean(),\n delistedReason: z.string().nullable(),\n /** The release the current version came from was withdrawn by its author. */\n releaseWithdrawn: z.boolean(),\n latest: CommunityReleaseSchema.nullable(),\n /** The user chose to keep local changes over `latest`; it is not offered again. */\n dismissed: z.boolean(),\n addedPermissions: z.array(CommunityPermissionItemSchema),\n})\nexport type CommunitySyncItem = z.output<typeof CommunitySyncItemSchema>\n\nexport const CommunitySyncSchema = z.object({\n checkedAt: z.number().int().nullable(),\n items: z.array(CommunitySyncItemSchema),\n})\n\nexport const CommunityInstalledItemSchema = z.object({\n extensionId: ExtensionIdSchema,\n displayName: z.string(),\n revisionId: z.string(),\n source: CommunitySourceSchema,\n /** 来源与当前社区地址一致时才能检查更新。 */\n sameCommunity: z.boolean(),\n /** 社区仍有这个条目。 */\n found: z.boolean(),\n delisted: z.boolean(),\n delistedReason: z.string().nullable(),\n releaseWithdrawn: z.boolean(),\n latest: CommunityReleaseSchema.nullable(),\n updateAvailable: z.boolean(),\n addedPermissions: z.array(CommunityPermissionItemSchema),\n})\nexport type CommunityInstalledItem = z.output<typeof CommunityInstalledItemSchema>\n\nexport const CommunityInstalledSchema = z.object({\n checkedAt: z.number().int().nullable(),\n items: z.array(CommunityInstalledItemSchema),\n})\n\nexport const CommunityMyExtensionSchema = CommunityExtensionSummarySchema.extend({\n releases: z.array(CommunityReleaseSchema.extend({ withdrawn: z.boolean() })),\n delisted: z.boolean(),\n delistedReason: z.string().nullable(),\n})\nexport type CommunityMyExtension = z.output<typeof CommunityMyExtensionSchema>\n\n/** 审查发现可归属的维度:六个评级维度加合规。 */\nexport const COMMUNITY_REVIEW_DIMENSION_LABELS: Readonly<Record<string, string>> = {\n ...COMMUNITY_RATING_DIMENSION_LABELS,\n compliance: '合规',\n}\n\n/** 作者看到的完整审查报告。 */\nexport const CommunityReviewReportSchema = z.object({\n releaseId: CommunityReleaseIdSchema,\n status: CommunityReviewStatusSchema,\n rating: CommunityRatingSchema.nullable(),\n deterministic: z.array(\n z.object({\n severity: z.enum(['info', 'warning', 'risk', 'block']),\n title: z.string(),\n detail: z.string(),\n file: z.string().optional(),\n line: z.number().int().optional(),\n }),\n ),\n ai: z\n .object({\n summary: z.string(),\n verdict: z.string(),\n compliance: z.object({ ok: z.boolean(), notes: z.string() }).nullable(),\n dimensions: z.array(\n z.object({\n key: z.string(),\n stars: z.number().int().min(1).max(5),\n headline: z.string(),\n notes: z.string(),\n /** 不满五星时拿下一颗星的修改建议。 */\n nextStar: z.string().optional(),\n }),\n ),\n findings: z.array(\n z.object({\n dimension: z.string(),\n severity: z.enum(['info', 'suggestion', 'warning', 'risk', 'critical']),\n title: z.string(),\n detail: z.string(),\n file: z.string().optional(),\n line: z.number().int().optional(),\n suggestion: z.string().optional(),\n }),\n ),\n exploitability: z.string().optional(),\n })\n .nullable(),\n model: z.string().nullable(),\n error: z.string().nullable(),\n decisions: z.array(z.object({ decision: z.string(), note: z.string(), by: z.string(), createdAt: z.number().int() })),\n finishedAt: z.number().int().nullable(),\n reportUrl: z.string().url(),\n})\nexport type CommunityReviewReport = z.output<typeof CommunityReviewReportSchema>\n\n/** 安装者看到的审查标签:只描述审查发现,不做「安全」担保。 */\nexport const communityReviewLabel = (\n status: CommunityReviewStatus,\n): { readonly tone: 'neutral' | 'ok' | 'accent' | 'warn' | 'bad'; readonly label: string } => {\n switch (status) {\n case 'passed':\n return { tone: 'ok', label: '审查通过' }\n case 'passed_with_notes':\n return { tone: 'accent', label: '审查通过,有建议' }\n case 'flagged':\n return { tone: 'warn', label: '有风险,待复审' }\n case 'risk_confirmed':\n return { tone: 'warn', label: '有风险' }\n case 'held':\n return { tone: 'bad', label: '暂停公开,待复审' }\n case 'rejected':\n return { tone: 'bad', label: '未通过' }\n case 'pending':\n case 'reviewing':\n case 'incomplete':\n return { tone: 'neutral', label: '风险未知' }\n }\n}\n","import { z } from 'zod'\nimport { CommunityAccountSchema } from './community.js'\nimport { AgentIdSchema } from './domain.js'\n\n/**\n * 社区人设在本机的投影:名称、头像、简介、作者介绍、标签与人设正文(对应智能体的 `persona`)。不含模型与扩展。\n * Host 宽松读取社区响应并归一到这些结构;头像改写为本机代理地址,页面不直接跨域读取社区图片。\n */\nexport const CommunityPersonaIdSchema = z.string().regex(/^psn_[0-9A-Za-z]+$/u)\nexport const CommunityPersonaRevisionIdSchema = z.string().regex(/^prv_[0-9A-Za-z]+$/u)\n\n/** 人设正文上限,与智能体设定一致。 */\nexport const COMMUNITY_PERSONA_MAX_LENGTH = 64 * 1024\n/** 发布头像上限(社区约定 ≤512 KiB 的 PNG、JPEG 或 WebP)。 */\nexport const COMMUNITY_PERSONA_AVATAR_MAX_BYTES = 512 * 1024\nexport const COMMUNITY_PERSONA_AVATAR_TYPES = ['image/png', 'image/jpeg', 'image/webp'] as const\n\nconst TagsSchema = z.array(z.string().min(1).max(40)).max(16)\n\nexport const CommunityPersonaSummarySchema = z.object({\n id: CommunityPersonaIdSchema,\n name: z.string().min(1).max(200),\n summary: z.string().max(1000),\n tags: TagsSchema,\n /** 本机代理地址 `/api/community/personas/<id>/avatar?v=…`;没有头像时为 null。 */\n avatarUrl: z.string().startsWith('/api/community/personas/').nullable(),\n official: z.boolean(),\n publisher: CommunityAccountSchema,\n installs: z.number().int().nonnegative(),\n updatedAt: z.number().int(),\n pageUrl: z.string().url(),\n})\nexport type CommunityPersonaSummary = z.output<typeof CommunityPersonaSummarySchema>\n\nexport const CommunityPersonaDetailSchema = CommunityPersonaSummarySchema.extend({\n description: z.string().max(20_000),\n persona: z.string().max(COMMUNITY_PERSONA_MAX_LENGTH),\n revision: z.object({\n id: CommunityPersonaRevisionIdSchema,\n notes: z.string().max(2000),\n createdAt: z.number().int(),\n }),\n review: z.object({ status: z.enum(['approved', 'flagged']), summary: z.string().max(2000).nullable() }).nullable(),\n})\nexport type CommunityPersonaDetail = z.output<typeof CommunityPersonaDetailSchema>\n\nexport const CommunityPersonaReviewStatusSchema = z.enum(['pending', 'approved', 'flagged', 'rejected'])\nexport type CommunityPersonaReviewStatus = z.output<typeof CommunityPersonaReviewStatusSchema>\n\nexport const CommunityMyPersonaSchema = CommunityPersonaSummarySchema.extend({\n status: z.enum(['listed', 'delisted']),\n latestRevision: z.object({\n id: CommunityPersonaRevisionIdSchema,\n createdAt: z.number().int(),\n reviewStatus: CommunityPersonaReviewStatusSchema,\n reviewSummary: z.string().max(2000).nullable(),\n }),\n})\nexport type CommunityMyPersona = z.output<typeof CommunityMyPersonaSchema>\n\nexport const CommunityMyPersonasSchema = z.object({\n items: z.array(CommunityMyPersonaSchema),\n /** 本机智能体最近一次发布到当前社区的人设,用于「更新已发布的人设」。 */\n agentLinks: z.record(AgentIdSchema, CommunityPersonaIdSchema),\n})\n\n/** 作者看到的审查状态文字。 */\nexport const communityPersonaReviewLabel = (\n status: CommunityPersonaReviewStatus,\n): { readonly tone: 'neutral' | 'ok' | 'warn' | 'bad'; readonly label: string } => {\n switch (status) {\n case 'approved':\n return { tone: 'ok', label: '已公开' }\n case 'pending':\n return { tone: 'neutral', label: '审查中' }\n case 'flagged':\n return { tone: 'warn', label: '待人工复核' }\n case 'rejected':\n return { tone: 'bad', label: '未通过' }\n }\n}\n","import { z } from 'zod'\n\nexport const COMMUNITY_FEEDBACK_STATUSES = [\n 'new',\n 'needs_info',\n 'triaged',\n 'planned',\n 'fixed',\n 'duplicate',\n 'wontfix',\n 'withdrawn',\n] as const\nexport const CommunityFeedbackStatusSchema = z.enum(COMMUNITY_FEEDBACK_STATUSES)\nexport type CommunityFeedbackStatus = z.output<typeof CommunityFeedbackStatusSchema>\nexport const COMMUNITY_FEEDBACK_STATUS_LABELS: Readonly<Record<CommunityFeedbackStatus, string>> = {\n new: '新反馈',\n needs_info: '需要补充',\n triaged: '已确认',\n planned: '已计划',\n fixed: '已修复',\n duplicate: '重复',\n wontfix: '不处理',\n withdrawn: '已撤回',\n}\nexport const CommunityFeedbackKindSchema = z.enum(['bug', 'suggestion', 'question'])\nexport const CommunityFeedbackIdSchema = z\n .string()\n .regex(/^fbk_[0-9a-z]{26}$/u)\n .brand<'CommunityFeedbackId'>()\nexport const CommunityFeedbackRefSchema = z.string().regex(/^FB-[1-9][0-9]*$/u)\nexport const CommunityFeedbackTargetSchema = z.union([\n z.literal('nxt'),\n z.object({ extensionId: z.string().regex(/^ext_[0-9A-Za-z]+$/u), version: z.string().max(120).optional() }).strict(),\n])\nconst version = z.string().trim().min(1).max(120)\nconst timestamp = z.number().int().nonnegative()\n\nexport const CommunityFeedbackExtensionDiagnosticSchema = z\n .object({\n extensionId: z.string().max(100),\n version,\n accessLevel: z.string().max(80).optional(),\n activation: z.enum(['host', 'agent']).optional(),\n })\n .strict()\nexport const CommunityFeedbackDiagnosticEntrySchema = z\n .object({\n kind: z.enum(['compatibility', 'extension', 'connection']),\n summary: z.string().max(2000),\n extensionId: z.string().max(100).optional(),\n })\n .strict()\n\n/** An explicit allowlist: credentials, account grants and arbitrary host configuration never cross this boundary. */\nexport const CommunityFeedbackDiagnosticsSchema = z\n .object({\n nxtVersion: version.optional(),\n releaseChannel: z.enum(['stable', 'preview', 'development']).optional(),\n hostKind: z.enum(['desktop', 'server']).optional(),\n platform: z.string().max(80).optional(),\n arch: z.string().max(40).optional(),\n dshVersion: version.optional(),\n adapters: z.array(z.string().max(100)).max(64).optional(),\n agent: z\n .object({\n accessLevel: z.string().max(80),\n subagents: z.boolean(),\n fileTools: z.boolean(),\n webSearch: z.boolean(),\n dynamicCreation: z.boolean(),\n developmentShell: z.boolean(),\n unrestrictedFileAccess: z.boolean(),\n scheduledTasks: z.boolean(),\n codeRun: z.boolean(),\n commandNetwork: z.boolean(),\n communityFeedbackAuto: z.boolean(),\n })\n .strict()\n .optional(),\n extensions: z.array(CommunityFeedbackExtensionDiagnosticSchema).max(256).optional(),\n entries: z.array(CommunityFeedbackDiagnosticEntrySchema).max(32).optional(),\n instanceId: z.string().min(1).max(100).optional(),\n })\n .strict()\nexport type CommunityFeedbackDiagnostics = z.output<typeof CommunityFeedbackDiagnosticsSchema>\n\nexport const CommunityFeedbackExcerptSchema = z\n .array(\n z\n .object({\n speaker: z.string().max(80),\n text: z.string().max(6000),\n })\n .strict(),\n )\n .max(8)\nexport type CommunityFeedbackExcerpt = z.output<typeof CommunityFeedbackExcerptSchema>\n\nexport const CommunityFeedbackCreateSchema = z\n .object({\n clientRequestId: z.string().min(1).max(160),\n kind: CommunityFeedbackKindSchema,\n target: CommunityFeedbackTargetSchema,\n title: z.string().trim().min(1).max(120),\n body: z.string().trim().min(1).max(8000),\n diagnostics: CommunityFeedbackDiagnosticsSchema.default({}),\n excerpt: CommunityFeedbackExcerptSchema.optional(),\n excerptSharedWithAuthor: z.boolean().default(false),\n source: z.enum(['assistant', 'assistant_auto', 'form', 'web']),\n instanceId: z.string().min(1).max(100).optional(),\n })\n .strict()\nexport type CommunityFeedbackCreate = z.output<typeof CommunityFeedbackCreateSchema>\nexport const CommunityFeedbackMessageInputSchema = z\n .object({\n body: z.string().trim().min(1).max(4000),\n audience: z.enum(['everyone', 'staff']).default('everyone'),\n })\n .strict()\nexport const CommunityFeedbackSupplementSchema = z\n .object({\n diagnostics: CommunityFeedbackDiagnosticsSchema.optional(),\n excerpt: CommunityFeedbackExcerptSchema.optional(),\n excerptSharedWithAuthor: z.boolean().optional(),\n })\n .strict()\nexport const CommunityFeedbackWithdrawSchema = z.object({ deleteText: z.boolean().default(false) }).strict()\nexport const CommunityFeedbackConfirmSchema = z.object({ clientVersion: version }).strict()\nexport const CommunityFeedbackReopenSchema = z.object({ note: z.string().trim().min(1).max(2000) }).strict()\nexport const CommunityFeedbackAffectedSchema = z\n .object({\n diagnostics: CommunityFeedbackDiagnosticsSchema.optional(),\n nxtVersion: version.optional(),\n })\n .strict()\nexport const CommunityFeedbackTransitionSchema = z\n .object({\n status: CommunityFeedbackStatusSchema,\n fixedIn: version.optional(),\n duplicateOf: CommunityFeedbackRefSchema.optional(),\n note: z.string().trim().max(2000).optional(),\n })\n .strict()\nexport type CommunityFeedbackTransition = z.output<typeof CommunityFeedbackTransitionSchema>\nexport const CommunityFeedbackLabelsSchema = z\n .object({\n labels: z.array(z.string().trim().min(1).max(40)).max(20),\n priority: z.enum(['low', 'normal', 'high']).nullable(),\n })\n .strict()\nexport const CommunityFeedbackLinkSchema = z\n .object({\n githubUrl: z\n .string()\n .url()\n .max(1000)\n .refine((value) => /^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/issues\\/[1-9][0-9]*$/u.test(value))\n .nullable(),\n })\n .strict()\nexport const CommunityFeedbackVisibilitySchema = z.object({ visibility: z.enum(['private', 'public']) }).strict()\n\nexport const CommunityFeedbackEventDataSchema = z\n .object({\n from: CommunityFeedbackStatusSchema.optional(),\n to: CommunityFeedbackStatusSchema.optional(),\n fixedIn: version.nullable().optional(),\n duplicateOf: CommunityFeedbackRefSchema.nullable().optional(),\n note: z.string().max(2000).optional(),\n labels: z.array(z.string()).optional(),\n priority: z.enum(['low', 'normal', 'high']).nullable().optional(),\n visibility: z.enum(['private', 'public']).optional(),\n clientVersion: version.optional(),\n messageId: z.string().optional(),\n audience: z.enum(['everyone', 'staff']).optional(),\n deleteText: z.boolean().optional(),\n affected: z.boolean().optional(),\n })\n .strict()\nexport const CommunityFeedbackEventSchema = z.object({\n seq: z.number().int().positive(),\n ref: CommunityFeedbackRefSchema,\n type: z.enum([\n 'created',\n 'message',\n 'status_changed',\n 'labeled',\n 'priority_changed',\n 'linked_issue',\n 'duplicate_marked',\n 'fixed_in_set',\n 'visibility_changed',\n 'affected_added',\n 'withdrawn',\n 'reopened',\n 'supplemented',\n 'fix_confirmed',\n ]),\n actorKind: z.enum(['user', 'admin', 'author', 'token', 'system']).optional(),\n actor: z.string().optional(),\n tokenId: z.string().optional(),\n data: CommunityFeedbackEventDataSchema,\n createdAt: timestamp,\n title: z.string().optional(),\n status: CommunityFeedbackStatusSchema.optional(),\n})\nexport type CommunityFeedbackEvent = z.output<typeof CommunityFeedbackEventSchema>\nexport const CommunityFeedbackMessageSchema = z.object({\n id: z.string(),\n authorKind: z.enum(['user', 'admin', 'author', 'system']),\n author: z.string().nullable(),\n audience: z.enum(['everyone', 'staff']),\n body: z.string(),\n createdAt: timestamp,\n})\n\nexport const CommunityFeedbackSummarySchema = z.object({\n id: CommunityFeedbackIdSchema,\n ref: CommunityFeedbackRefSchema,\n title: z.string(),\n kind: CommunityFeedbackKindSchema.optional(),\n target: CommunityFeedbackTargetSchema.optional(),\n status: CommunityFeedbackStatusSchema,\n fixedIn: version.nullable(),\n affectedCount: z.number().int().nonnegative(),\n source: CommunityFeedbackCreateSchema.shape.source.optional(),\n confirmedCount: z.number().int().nonnegative().optional(),\n createdAt: timestamp.optional(),\n updatedAt: timestamp.optional(),\n})\nexport type CommunityFeedbackSummary = z.output<typeof CommunityFeedbackSummarySchema>\n\n/** Optional private fields are emitted only by the server's role-specific projection. */\nexport const CommunityFeedbackSchema = CommunityFeedbackSummarySchema.extend({\n access: z.enum(['owner', 'admin', 'author', 'subscriber', 'public']),\n body: z.string().optional(),\n diagnostics: CommunityFeedbackDiagnosticsSchema.optional(),\n excerpt: CommunityFeedbackExcerptSchema.nullable().optional(),\n excerptSharedWithAuthor: z.boolean().optional(),\n messages: z.array(CommunityFeedbackMessageSchema).optional(),\n events: z.array(CommunityFeedbackEventSchema).optional(),\n submitter: z.string().optional(),\n instanceId: z.string().nullable().optional(),\n priority: z.enum(['low', 'normal', 'high']).nullable().optional(),\n labels: z.array(z.string()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n duplicateOf: CommunityFeedbackRefSchema.nullable().optional(),\n githubUrl: z.string().nullable().optional(),\n closedAt: timestamp.nullable().optional(),\n purgedAt: timestamp.nullable().optional(),\n confirmed: z.boolean().default(false),\n affected: z.boolean().default(false),\n affectedDiagnostics: z\n .array(\n z.object({\n user: z.string(),\n diagnostics: CommunityFeedbackDiagnosticsSchema.nullable(),\n nxtVersion: version.nullable(),\n createdAt: timestamp,\n }),\n )\n .optional(),\n})\nexport type CommunityFeedback = z.output<typeof CommunityFeedbackSchema>\nexport const CommunityFeedbackListSchema = z.object({\n items: z.array(CommunityFeedbackSummarySchema),\n cursor: z.string().nullable(),\n})\nexport const CommunityFeedbackChangesSchema = z.object({\n events: z.array(CommunityFeedbackEventSchema),\n cursor: z.number().int().nonnegative(),\n hasMore: z.boolean(),\n})\nexport type CommunityFeedbackChanges = z.output<typeof CommunityFeedbackChangesSchema>\nexport const CommunityFeedbackDigestSchema = z.object({\n since: timestamp,\n counts: z.object({\n status: z.record(CommunityFeedbackStatusSchema, z.number().int().nonnegative()),\n kind: z.record(CommunityFeedbackKindSchema, z.number().int().nonnegative()),\n target: z.record(z.enum(['nxt', 'extension']), z.number().int().nonnegative()),\n extensions: z.record(z.string(), z.number().int().nonnegative()),\n }),\n newItems: z.array(CommunityFeedbackSummarySchema),\n awaitingReply: z.array(CommunityFeedbackSummarySchema),\n mostAffected: z.array(CommunityFeedbackSummarySchema),\n unconfirmedFixes: z.array(CommunityFeedbackSummarySchema),\n fixedCount: z.number().int().nonnegative(),\n})\nexport type CommunityFeedbackDigest = z.output<typeof CommunityFeedbackDigestSchema>\n","import { z } from 'zod'\nimport { AgentIdSchema, ChannelIdSchema, LogicalMessageIdSchema } from './domain.js'\nimport {\n CommunityFeedbackCreateSchema,\n CommunityFeedbackDiagnosticsSchema,\n CommunityFeedbackExcerptSchema,\n CommunityFeedbackKindSchema,\n CommunityFeedbackRefSchema,\n CommunityFeedbackStatusSchema,\n CommunityFeedbackTargetSchema,\n} from './community-feedback.js'\n\nexport const CommunityFeedbackDraftIdSchema = z\n .string()\n .regex(/^fbd_[0-9A-Za-z]+$/u)\n .brand<'CommunityFeedbackDraftId'>()\nexport type CommunityFeedbackDraftId = z.output<typeof CommunityFeedbackDraftIdSchema>\nexport const CommunityFeedbackDraftStateSchema = z.enum(['awaiting', 'sending', 'sent', 'failed', 'discarded'])\nexport const CommunityFeedbackDraftSchema = z\n .object({\n id: CommunityFeedbackDraftIdSchema,\n communityUrl: z.string().url(),\n communityUserId: z.string().min(1).nullable(),\n agentId: AgentIdSchema.nullable(),\n channelId: ChannelIdSchema.nullable(),\n kind: CommunityFeedbackKindSchema,\n target: CommunityFeedbackTargetSchema,\n title: z.string().max(120),\n body: z.string().max(8000),\n excerpt: CommunityFeedbackExcerptSchema.nullable(),\n excerptSharedWithAuthor: z.boolean(),\n diagnostics: CommunityFeedbackDiagnosticsSchema,\n state: CommunityFeedbackDraftStateSchema,\n requestedBy: z.string(),\n auto: z.boolean(),\n error: z.string().nullable(),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type CommunityFeedbackDraft = z.output<typeof CommunityFeedbackDraftSchema>\n\nexport const CommunityFeedbackItemSchema = z\n .object({\n ref: CommunityFeedbackRefSchema,\n communityUrl: z.string().url(),\n communityUserId: z.string().min(1),\n channelId: ChannelIdSchema.nullable(),\n draftId: CommunityFeedbackDraftIdSchema.nullable(),\n title: z.string(),\n kind: CommunityFeedbackKindSchema.nullable(),\n target: CommunityFeedbackTargetSchema.nullable(),\n status: CommunityFeedbackStatusSchema,\n fixedIn: z.string().nullable(),\n unread: z.boolean(),\n lastEventSeq: z.number().int().nonnegative(),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type CommunityFeedbackItem = z.output<typeof CommunityFeedbackItemSchema>\n\nexport const CommunityFeedbackDraftInputSchema = z\n .object({\n kind: CommunityFeedbackKindSchema,\n target: CommunityFeedbackTargetSchema,\n title: z.string().trim().min(1).max(120),\n body: z.string().trim().min(1).max(8000),\n conversationRefs: z.array(LogicalMessageIdSchema).max(8).optional(),\n })\n .strict()\nexport type CommunityFeedbackDraftInput = z.output<typeof CommunityFeedbackDraftInputSchema>\nexport const CommunityFeedbackDraftUpdateSchema = z\n .object({\n title: z.string().trim().min(1).max(120),\n body: z.string().trim().min(1).max(8000),\n includeExcerpt: z.boolean(),\n excerptSharedWithAuthor: z.boolean().default(false),\n expectedUpdatedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport const CommunityFeedbackSettingsSchema = z\n .object({\n enabled: z.boolean(),\n supported: z.boolean(),\n signedIn: z.boolean(),\n communityUrl: z.string().url(),\n communityUserId: z.string().nullable(),\n consentedAt: z.number().int().nonnegative().nullable(),\n })\n .strict()\nexport type CommunityFeedbackSettings = z.output<typeof CommunityFeedbackSettingsSchema>\nexport const CommunityFeedbackSettingsUpdateSchema = z\n .object({ enabled: z.boolean(), consent: z.boolean().default(false) })\n .strict()\nexport const CommunityFeedbackSnapshotSchema = z\n .object({\n enabled: z.boolean(),\n signedIn: z.boolean(),\n pendingDrafts: z.number().int().nonnegative(),\n unread: z.number().int().nonnegative(),\n })\n .strict()\nexport const CommunityFeedbackLocalListSchema = z\n .object({\n drafts: z.array(CommunityFeedbackDraftSchema),\n items: z.array(CommunityFeedbackItemSchema),\n syncError: z.string().optional(),\n })\n .strict()\nexport const CommunityFeedbackPayloadSchema = z\n .object({ payload: CommunityFeedbackCreateSchema, redactions: z.array(z.string()) })\n .strict()\nexport const CommunityFeedbackLastPayloadSchema = z\n .object({\n ref: CommunityFeedbackRefSchema,\n sentAt: z.number().int().nonnegative(),\n payload: CommunityFeedbackCreateSchema,\n })\n .strict()\n .nullable()\n","import { CommandCatalogEntrySchema, CommandExecutionRecordSchema, CommandPolicySchema } from './commands.js'\nimport { z } from 'zod'\nimport {\n hostLogDebugLeaseSchema,\n hostLogDebugRequestSchema,\n hostLogEntrySchema,\n hostLogPageSchema,\n hostLogSettingsSchema,\n hostLogSourceSchema,\n hostLogStatusSchema,\n} from './logs.js'\nimport { McpServerFormSchema } from './extension-capabilities.js'\nimport { HostUpgradeSummarySchema, RuntimeCompatibilityDiagnosticSchema } from './runtime-compatibility.js'\nimport {\n AgentIdSchema,\n AgentRevisionIdSchema,\n AuthoringAttemptIdSchema,\n SubConversationIdSchema,\n AuthoringTaskIdSchema,\n AssetIdSchema,\n ChannelEventIdSchema,\n AdapterActivityKeySchema,\n ChannelIdSchema,\n ChannelMemberIdSchema,\n ConnectionIdSchema,\n ConnectionEventIdSchema,\n DshPluginEntryIdSchema,\n DshPluginPackageIdSchema,\n ExtensionIdSchema,\n ExtensionRevisionIdSchema,\n HostUiPageInstanceIdSchema,\n EpisodeIdSchema,\n JsonValueSchema,\n LogicalMessageIdSchema,\n RichExtensionSchema,\n RichTargetUrlSchema,\n OutboundIntentIdSchema,\n PlatformIdentityIdSchema,\n PromptDocumentV1Schema,\n promptDocumentPlainText,\n} from './domain.js'\nimport { ClientNotificationSchema, ManagementDeviceIdSchema, ManagementDeviceViewSchema } from './management-api.js'\nimport { ConfigSchemaDocumentSchema } from './config-schema.js'\nimport {\n CommunityExtensionDetailSchema,\n CommunityExtensionSummarySchema,\n CommunityExtensionSortSchema,\n CommunityListingInputSchema,\n CommunityReleaseIdSchema,\n CommunityReviewStatusSchema,\n CommunityStatusSchema,\n CommunityEndpointSchema,\n CommunitySyncSchema,\n CommunityMyExtensionSchema,\n CommunityReviewReportSchema,\n} from './community.js'\nimport {\n COMMUNITY_PERSONA_AVATAR_TYPES,\n COMMUNITY_PERSONA_MAX_LENGTH,\n CommunityMyPersonaSchema,\n CommunityMyPersonasSchema,\n CommunityPersonaDetailSchema,\n CommunityPersonaIdSchema,\n CommunityPersonaRevisionIdSchema,\n CommunityPersonaSummarySchema,\n} from './community-personas.js'\nimport {\n DshNxtHostUiSchema,\n EMPTY_EXTENSION_UI_CONTRIBUTIONS,\n ExtensionUiContributionsSchema,\n PanelContributionSchema,\n RichKindSchema,\n HostPageContributionSchema,\n HostIconNameSchema,\n HostUiKitComponentNameSchema,\n HostUiPageGeometryEvidenceSchema,\n HostUiPageEntrySchema,\n HostUiPermissionDeclarationSchema,\n ExtensionPanelAnchorSchema,\n ExtensionPermissionsSchema,\n ExtensionProvideSchema,\n} from './extension-ui.js'\n\nconst EmptyParamsSchema = z.object({}).strict()\nconst NoRequestBodySchema = z.undefined()\nconst NonEmptyStringSchema = z.string().trim().min(1)\nconst DynamicIdSchema = NonEmptyStringSchema\n\nconst DynamicAttemptStatusSchema = z.enum([\n 'awaiting-approval',\n 'starting-host',\n 'client-pending',\n 'running',\n 'waiting',\n 'rejected',\n 'failed',\n 'cancelled',\n 'stopped',\n])\n\nconst DynamicHalfStateSchema = z\n .object({\n status: z.enum(['absent', 'pending', 'stopped', 'running', 'waiting', 'failed']),\n waitingFor: z.array(z.string()),\n error: z.string().optional(),\n })\n .strict()\n\nconst DynamicAttemptErrorSchema = z\n .object({\n phase: z.enum(['approval', 'host-load', 'host-apply', 'client-load', 'client-apply', 'client-render']),\n message: z.string(),\n stack: z.string().optional(),\n /** A render failure also names the contribution slot that failed and whether its frame gave up. */\n slot: NonEmptyStringSchema.optional(),\n abdicated: z.boolean().optional(),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n })\n .strict()\n\nconst DynamicLatestRunSchema = z\n .object({\n pluginRunId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n mode: z.enum(['run', 'update']),\n status: DynamicAttemptStatusSchema,\n approvalRequestId: DynamicIdSchema.optional(),\n requiresApproval: z.boolean().optional(),\n host: DynamicHalfStateSchema,\n client: DynamicHalfStateSchema,\n error: DynamicAttemptErrorSchema.optional(),\n })\n .strict()\n\nconst AuthoringTaskStatusSchema = z.enum([\n 'working',\n 'awaiting-approval',\n 'running',\n 'ready',\n 'repairing',\n 'failed',\n 'interrupted',\n 'stopped',\n 'completed',\n 'paused',\n])\n\nconst AuthoringAttemptStateSchema = z.enum([\n 'drafting',\n 'preflight-failed',\n 'awaiting-approval',\n 'starting-host',\n 'loading-client',\n 'verifying',\n 'active',\n 'failed',\n 'rejected',\n 'stopped',\n])\n\nconst AuthoringAttemptSummarySchema = z\n .object({\n id: AuthoringAttemptIdSchema,\n ordinal: z.number().int().positive(),\n name: z.string(),\n purpose: z.string(),\n state: AuthoringAttemptStateSchema,\n riskDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n host: DynamicHalfStateSchema,\n client: DynamicHalfStateSchema,\n error: z\n .object({\n phase: z.enum([\n 'preflight',\n 'approval',\n 'host-load',\n 'host-apply',\n 'client-load',\n 'client-apply',\n 'client-render',\n 'verification',\n 'settlement',\n 'restore',\n ]),\n message: z.string(),\n repairable: z.boolean(),\n })\n .strict()\n .optional(),\n /** Verified without loading its interface, because no browser was available; the interface itself is unchecked. */\n uiUnverified: z.boolean().optional(),\n createdAt: z.number().int().nonnegative(),\n settledAt: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nconst AuthoringTaskSummarySchema = z\n .object({\n id: AuthoringTaskIdSchema,\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema,\n episodeId: EpisodeIdSchema,\n title: z.string(),\n requirementSummary: z.string(),\n status: AuthoringTaskStatusSchema,\n /** `create` builds a new extension; `revise` changes `targetExtensionId` starting from `baseRevisionId`. */\n kind: z.enum(['create', 'revise']).default('create'),\n targetExtensionId: ExtensionIdSchema.optional(),\n baseRevisionId: ExtensionRevisionIdSchema.optional(),\n referenceRevisionId: ExtensionRevisionIdSchema.optional(),\n /** Why the task is paused; it continues when the agent picks it up in a later conversation. */\n pausedReason: z.string().optional(),\n /** The conversation the task runs in is live, so its candidate can be previewed directly. */\n live: z.boolean().default(false),\n approvalPolicy: z.enum(['risk-stable', 'fully-automatic']),\n approvedRiskDigest: z\n .string()\n .regex(/^[a-f0-9]{64}$/u)\n .optional(),\n revision: z.number().int().positive(),\n activeAttempt: AuthoringAttemptSummarySchema.optional(),\n candidateAttempt: AuthoringAttemptSummarySchema.optional(),\n /** Latest attempt that still carries product verification evidence; it can be restored as the candidate. */\n verifiedAttempt: AuthoringAttemptSummarySchema.optional(),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict()\nconst ConnectionAliasInputSchema = z\n .string()\n .trim()\n .max(80)\n .transform((value) => value || undefined)\nconst ConnectionAliasOutputSchema = z.string().trim().min(1).max(80)\n\nexport const HostApiErrorSchema = z\n .object({\n error: z\n .object({\n code: NonEmptyStringSchema,\n message: z.string(),\n })\n .strict(),\n })\n .strict()\n\nconst AgentModelSchema = z\n .object({\n provider: NonEmptyStringSchema,\n model: NonEmptyStringSchema,\n reasoningEffort: NonEmptyStringSchema.optional(),\n })\n .strict()\n\n/**\n * An enable or disable request of one agent extension that has not settled: `waiting` until the agent reaches a safe\n * gap (its current reply ends), or `failed` with the reason until the next request replaces it.\n */\n/** What one approval asks the user to grant and whether the current grant already covers it. */\nexport const ExtensionPermissionRequirementSchema = z\n .object({\n declaration: HostUiPermissionDeclarationSchema,\n permissionDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n approvalRequired: z.boolean(),\n })\n .strict()\n\nexport type ExtensionPermissionRequirement = z.output<typeof ExtensionPermissionRequirementSchema>\n\nexport const ExtensionActivationTransitionSchema = z\n .object({\n agentId: AgentIdSchema,\n target: z.enum(['enabled', 'disabled']),\n extensionRevisionId: ExtensionRevisionIdSchema.optional(),\n state: z.enum(['waiting', 'failed']),\n message: z.string().optional(),\n since: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport const ImageUnderstandingPolicyApiSchema = z\n .object({\n history: z\n .object({\n mode: z.literal('persistent-distinct'),\n detail: z.enum(['low', 'auto', 'high']),\n restoreAfterCompaction: z\n .object({\n recentMessages: z.number().int().min(1).max(100),\n maxImages: z.number().int().min(1).max(50),\n })\n .strict(),\n })\n .strict(),\n textModel: z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('disabled') }).strict(),\n z\n .object({\n mode: z.literal('auxiliary'),\n model: AgentModelSchema,\n maxTokens: z.number().int().min(256).max(8192),\n })\n .strict(),\n ]),\n })\n .strict()\n\nexport const CommandAccountServiceSchema = z.enum(['github'])\nexport type CommandAccountService = z.output<typeof CommandAccountServiceSchema>\n\nexport const CommandAccountUsageSchema = z.enum(['read', 'issues', 'pull-requests', 'push'])\n\nconst CommandAccountGrantSchema = z\n .object({\n service: CommandAccountServiceSchema,\n accountId: NonEmptyStringSchema.max(64),\n /** Told to the agent as guidance, not enforced; empty gives no hint. */\n usage: z.array(CommandAccountUsageSchema).max(4).default([]),\n })\n .strict()\n\nconst AgentCapabilitiesSchema = z\n .object({\n subagents: z.boolean(),\n fileTools: z.boolean(),\n webSearch: z.boolean(),\n dynamicCreation: z.boolean(),\n developmentShell: z.boolean(),\n unrestrictedFileAccess: z.boolean(),\n /** Absent in older clients means on. */\n scheduledTasks: z.boolean().default(true),\n /** Tools are called from one TypeScript program (`run_code`); takes effect only with `developmentShell`. */\n codeRun: z.boolean().default(false),\n /** Network for commands; absent in older clients means on. */\n commandNetwork: z.boolean().default(true),\n communityFeedbackAuto: z.boolean().default(false),\n /** Accounts this agent's commands may act as; absent in older clients means none. */\n commandAccounts: z.array(CommandAccountGrantSchema).max(8).default([]),\n /**\n * What the agent may do with extensions without the console: `manual` only develops and test-runs, `confirm` asks\n * an administrator in the channel for every step, `autonomous` takes ordinary steps that only affect itself.\n */\n extensionAutonomy: z.enum(['manual', 'confirm', 'autonomous']).default('manual'),\n /** Whose requests make the agent develop or change extensions: anyone in the channel, or administrators only. */\n extensionRequesters: z.enum(['everyone', 'admins']).default('everyone'),\n })\n .strict()\n\nexport const DynamicClientApprovalPolicySchema = z.enum(['manual', 'automatic'])\n\nexport const NotificationEventKeySchema = z.enum(['dynamic-client-approval-requested', 'community-feedback-update'])\nexport type NotificationEventKey = z.output<typeof NotificationEventKeySchema>\n\nexport const NotificationSettingsViewSchema = z\n .object({\n revision: z.number().int().positive().optional(),\n system: z.object({ enabled: z.boolean() }).strict(),\n bark: z\n .object({\n enabled: z.boolean(),\n serverUrl: z.url(),\n deviceKeyConfigured: z.boolean(),\n })\n .strict(),\n events: z\n .object({\n 'dynamic-client-approval-requested': z.boolean(),\n 'community-feedback-update': z.boolean().default(true),\n })\n .strict(),\n })\n .strict()\n\nexport const UpdateNotificationSettingsRequestSchema = z\n .object({\n expectedRevision: z.number().int().positive().optional(),\n system: z.object({ enabled: z.boolean() }).strict(),\n bark: z\n .object({\n enabled: z.boolean(),\n serverUrl: z.url(),\n deviceKey: z.string().trim().min(1).max(2048).optional(),\n clearDeviceKey: z.boolean().optional(),\n })\n .strict(),\n events: z\n .object({ 'dynamic-client-approval-requested': z.boolean(), 'community-feedback-update': z.boolean().optional() })\n .strict(),\n })\n .strict()\n .refine((value) => !(value.bark.deviceKey !== undefined && value.bark.clearDeviceKey === true), {\n message: '不能同时更新并清除 Bark Device Key。',\n path: ['bark'],\n })\n\nexport const TestBarkNotificationRequestSchema = z\n .object({ serverUrl: z.url(), deviceKey: z.string().trim().min(1).max(2048).optional() })\n .strict()\n\nexport const ClientNotificationFeedResponseSchema = z\n .object({\n cursor: z.number().int().nonnegative(),\n notifications: z.array(ClientNotificationSchema),\n })\n .strict()\n\nconst AgentRevisionRequestContentSchema = z\n .object({\n displayName: z.string().trim().min(1).max(80),\n persona: z\n .string()\n .max(64 * 1024)\n .default(''),\n personaDocument: PromptDocumentV1Schema.optional(),\n model: AgentModelSchema,\n imagePolicy: ImageUnderstandingPolicyApiSchema.optional(),\n dynamicClientApprovalPolicy: DynamicClientApprovalPolicySchema.optional(),\n })\n .strict()\n\nconst validatePersonaDocumentProjection = (\n value: z.output<typeof AgentRevisionRequestContentSchema>,\n context: z.core.$RefinementCtx<z.output<typeof AgentRevisionRequestContentSchema>>,\n): void => {\n if (value.personaDocument !== undefined && promptDocumentPlainText(value.personaDocument) !== value.persona) {\n context.addIssue({\n code: 'custom',\n message: '人设文本必须与结构化人设文档一致。',\n path: ['personaDocument'],\n input: value,\n })\n }\n}\n\nconst CreateAgentRequestSchema = AgentRevisionRequestContentSchema.extend({\n capabilities: AgentCapabilitiesSchema.optional(),\n}).superRefine((value, context) => {\n validatePersonaDocumentProjection(value, context)\n})\n\nconst ReviseAgentRequestSchema = AgentRevisionRequestContentSchema.extend({\n expectedCurrentRevisionId: AgentRevisionIdSchema,\n}).superRefine((value, context) => {\n validatePersonaDocumentProjection(value, context)\n})\n\n// Defaults that fill capabilities for older clients must not\n// reset them in a partial update.\nconst UpdateAgentCapabilitiesRequestSchema = AgentCapabilitiesSchema.partial()\n .extend({\n scheduledTasks: z.boolean().optional(),\n codeRun: z.boolean().optional(),\n commandNetwork: z.boolean().optional(),\n communityFeedbackAuto: z.boolean().optional(),\n commandAccounts: z.array(CommandAccountGrantSchema).max(8).optional(),\n extensionAutonomy: z.enum(['manual', 'confirm', 'autonomous']).optional(),\n extensionRequesters: z.enum(['everyone', 'admins']).optional(),\n })\n .strict()\n .refine((value) => Object.values(value).some((entry) => entry !== undefined), '至少提供一个能力。')\n\nconst TriggerPolicySchema = z.enum(['always', 'mentioned-or-replied', 'command', 'observe-only'])\n\nexport const WorkTreeOrderSchema = z\n .object({\n agentIds: z.array(AgentIdSchema),\n channelIdsByAgent: z.record(AgentIdSchema, z.array(ChannelIdSchema)),\n unboundChannelIds: z.array(ChannelIdSchema),\n })\n .strict()\n\nexport type WorkTreeOrder = z.output<typeof WorkTreeOrderSchema>\n\nconst SnapshotMessagePartSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), text: z.string() }).strict(),\n z\n .object({ type: z.literal('mention'), memberId: ChannelMemberIdSchema, displayName: z.string().optional() })\n .strict(),\n z\n .object({\n type: z.literal('image'),\n assetId: AssetIdSchema,\n alt: z.string().optional(),\n sticker: z.literal(true).optional(),\n })\n .strict(),\n z.object({ type: z.literal('file'), assetId: AssetIdSchema, name: z.string().optional() }).strict(),\n z.object({ type: z.literal('audio'), assetId: AssetIdSchema }).strict(),\n z.object({ type: z.literal('quote'), messageId: LogicalMessageIdSchema }).strict(),\n z\n .object({\n type: z.literal('rich'),\n adapterKey: z.string().trim().min(1).max(64),\n kind: z.string().trim().min(1).max(64),\n summary: z.string().trim().min(1).max(500),\n title: z.string().trim().min(1).max(200).optional(),\n source: z.string().trim().min(1).max(80).optional(),\n targetUrl: RichTargetUrlSchema.optional(),\n previewAssetId: AssetIdSchema.optional(),\n extension: RichExtensionSchema.optional(),\n })\n .strict(),\n])\n\nexport const HostSnapshotMessageSchema = z\n .object({\n id: z.union([ChannelEventIdSchema, OutboundIntentIdSchema]),\n channelId: ChannelIdSchema,\n role: z.enum(['member', 'agent', 'system']),\n parts: z.array(SnapshotMessagePartSchema),\n sender: z\n .object({\n memberId: ChannelMemberIdSchema,\n displayName: z.string().optional(),\n /** The sender is the account of this agent on this host, answering the channel through another connection. */\n localAgentId: AgentIdSchema.optional(),\n })\n .strict()\n .optional(),\n mentionedConnectionAccount: z.boolean().optional(),\n activityKey: AdapterActivityKeySchema.optional(),\n targetLogicalMessageId: LogicalMessageIdSchema.optional(),\n occurredAt: z.number().finite(),\n deliveryState: z.enum(['planned', 'sending', 'sent', 'partially-sent', 'failed', 'unknown']).optional(),\n /** Latest administrator resolution of an unsettled delivery; history keeps the original receipt state. */\n deliveryResolution: z\n .object({\n action: z.enum(['retry', 'confirm-delivered']),\n resolvedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n origin: z.enum(['admin-console', 'command', 'extension-notice']).optional(),\n command: CommandExecutionRecordSchema.optional(),\n /** A host notice about extension work: a request an administrator must confirm, or what an action did. */\n extensionNotice: z.object({ requestNumber: z.number().int().positive().optional() }).strict().optional(),\n /** What the agent's inbound hooks decided for this message, when anything differs from the default. */\n inboundHook: z\n .object({\n trigger: z.enum(['default', 'suppress', 'force']),\n hidden: z.boolean(),\n annotation: z.string().optional(),\n extensions: z.array(z.string()),\n problems: z.array(z.string()).optional(),\n })\n .strict()\n .optional(),\n /** A scheduled task came due: a Host fact shown as a notice, not a member message. */\n scheduledTask: z\n .object({ label: z.string(), extensionName: z.string().optional(), note: z.string().optional() })\n .strict()\n .optional(),\n })\n .strict()\n\nexport type HostSnapshotMessage = z.output<typeof HostSnapshotMessageSchema>\n\nexport const HostConnectionEventSchema = z\n .object({\n id: ConnectionEventIdSchema,\n connectionId: ConnectionIdSchema,\n activityKey: AdapterActivityKeySchema,\n summary: z.string(),\n actor: z.object({ identityId: PlatformIdentityIdSchema, displayName: z.string().optional() }).strict().optional(),\n subject: z.object({ identityId: PlatformIdentityIdSchema, displayName: z.string().optional() }).strict().optional(),\n occurredAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport type HostConnectionEvent = z.output<typeof HostConnectionEventSchema>\n\nconst PlatformUserChannelPreviewSchema = z\n .object({\n id: ChannelIdSchema,\n displayName: z.string().trim().min(1).max(120).optional(),\n kind: z.enum(['internal', 'direct', 'group']),\n })\n .strict()\n\nconst PlatformUserFacetAdapterSchema = z\n .object({ key: NonEmptyStringSchema, displayName: NonEmptyStringSchema, userCount: z.number().int().nonnegative() })\n .strict()\n\nconst PlatformUserFacetConnectionSchema = z\n .object({\n id: ConnectionIdSchema,\n adapterKey: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n userCount: z.number().int().nonnegative(),\n })\n .strict()\n\nexport const PlatformUserListResponseSchema = z\n .object({\n total: z.number().int().nonnegative(),\n items: z.array(\n z\n .object({\n identityId: PlatformIdentityIdSchema,\n displayName: z.string().trim().min(1).max(120).optional(),\n adapter: z.object({ key: NonEmptyStringSchema, displayName: NonEmptyStringSchema }).strict(),\n connection: z.object({ id: ConnectionIdSchema, displayName: NonEmptyStringSchema }).strict(),\n activeChannelCount: z.number().int().nonnegative(),\n channelPreview: z.array(PlatformUserChannelPreviewSchema).max(3),\n historicalOnly: z.boolean(),\n /** Listed in Settings → Administrators. */\n administrator: z.boolean().default(false),\n })\n .strict(),\n ),\n facets: z\n .object({\n adapters: z.array(PlatformUserFacetAdapterSchema),\n connections: z.array(PlatformUserFacetConnectionSchema),\n })\n .strict(),\n nextCursor: PlatformIdentityIdSchema.optional(),\n })\n .strict()\n\nexport type PlatformUserListResponse = z.output<typeof PlatformUserListResponseSchema>\n\nexport const ChannelFactSseItemSchema = z\n .object({\n kind: z.enum(['inbound', 'outbound']),\n sourceId: z.union([ChannelEventIdSchema, OutboundIntentIdSchema]),\n message: HostSnapshotMessageSchema,\n })\n .strict()\n\nexport const ChannelFactSseDataSchema = z\n .object({\n channelId: ChannelIdSchema,\n revision: z.number().int().positive(),\n items: z.array(ChannelFactSseItemSchema).min(1),\n })\n .strict()\n\nexport const ChannelRuntimePhaseSchema = z.enum(['idle', 'thinking', 'using-tool', 'waiting-input', 'unavailable'])\n\nexport const ChannelRuntimeUsageSchema = z\n .object({\n inputTokens: z.number().int().nonnegative(),\n outputTokens: z.number().int().nonnegative(),\n totalTokens: z.number().int().nonnegative().optional(),\n cacheReadTokens: z.number().int().nonnegative().optional(),\n cacheWriteTokens: z.number().int().nonnegative().optional(),\n reasoningTokens: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nconst channelRuntimeToolFields = {\n callId: NonEmptyStringSchema,\n name: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n state: z.enum(['running', 'succeeded', 'failed']),\n inputPreview: z.string().optional(),\n resultPreview: z.string().optional(),\n wroteToChannel: z.boolean().optional(),\n deliveryState: z.enum(['sent', 'partially-sent', 'failed', 'unknown']).optional(),\n durationMs: z.number().int().nonnegative().optional(),\n}\n\nexport const ChannelRuntimeToolSchema = z\n .object({\n ...channelRuntimeToolFields,\n /** Source of a `run_code` program. */\n code: z.string().optional(),\n /** Tools a `run_code` program called, in the order they started. */\n children: z.array(z.object(channelRuntimeToolFields).strict()).optional(),\n })\n .strict()\n\nexport const ChannelRuntimeStepSchema = z\n .object({\n step: z.number().int().nonnegative(),\n tools: z.array(ChannelRuntimeToolSchema),\n internalOutput: z\n .object({\n kind: z.literal('internal-output'),\n text: z.string().optional(),\n reasoning: z.string().optional(),\n })\n .strict()\n .optional(),\n durationMs: z.number().int().nonnegative().optional(),\n firstTokenMs: z.number().int().nonnegative().optional(),\n usage: ChannelRuntimeUsageSchema.optional(),\n })\n .strict()\n\n/** One message that entered the model's input during a turn: channel admissions and host or DSH injections. */\nexport const ChannelRuntimeInputSchema = z\n .object({\n messageId: z.string().min(1),\n /** DSH `user/message` source kind, e.g. `nekro-nxt-channel` or `nekro-nxt-handoff`. */\n source: z.string().min(1),\n /** Channel Events carried by a channel admission. */\n eventCount: z.number().int().positive().optional(),\n preview: z.string().optional(),\n at: z.number().int().safe().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimeTurnSchema = z\n .object({\n turn: z.number().int().nonnegative(),\n state: z.enum(['in-progress', 'completed', 'unreplied', 'aborted', 'error', 'max-tokens', 'interrupted']),\n producedReply: z.boolean(),\n responseState: z.enum(['not-required', 'pending', 'sent', 'finished', 'protocol-failed', 'interrupted']),\n error: z.object({ code: NonEmptyStringSchema, message: z.string() }).strict().optional(),\n steps: z.array(ChannelRuntimeStepSchema),\n durationMs: z.number().int().nonnegative().optional(),\n /** Session log time the turn opened. */\n startedAt: z.number().int().safe().nonnegative().optional(),\n /** Session log time the turn closed; absent while it is still running. */\n endedAt: z.number().int().safe().nonnegative().optional(),\n /** Newest Channel Event of the admission that opened this turn; absent for non-channel turns. */\n triggerEventId: ChannelEventIdSchema.optional(),\n /** Messages that entered the model's input during the turn, in log order; absent when there were none. */\n inputs: z.array(ChannelRuntimeInputSchema).optional(),\n })\n .strict()\n\nexport const ChannelRuntimeOccupancySchema = z\n .object({\n projectedTokens: z.number().int().nonnegative(),\n contextWindow: z.number().int().positive(),\n breakdown: z\n .object({\n systemTokens: z.number().int().nonnegative(),\n toolsTokens: z.number().int().nonnegative(),\n messageTokens: z.number().int().nonnegative(),\n })\n .strict()\n .optional(),\n /** Pictures in the conversation; their tokens are not in the breakdown, so they make up most of the rest. */\n imageCount: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimeCacheSampleSchema = z\n .object({\n turn: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n at: z.number().nonnegative().optional(),\n uncachedInputTokens: z.number().int().nonnegative(),\n cacheReadTokens: z.number().int().nonnegative().optional(),\n cacheWriteTokens: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimeCacheSchema = z\n .object({\n scope: z.literal('episode'),\n aggregate: z\n .object({\n usageRequestCount: z.number().int().nonnegative(),\n observedRequestCount: z.number().int().nonnegative(),\n shareRequestCount: z.number().int().nonnegative(),\n hitRequestCount: z.number().int().nonnegative(),\n uncachedInputTokens: z.number().int().nonnegative(),\n cacheReadTokens: z.number().int().nonnegative(),\n cacheWriteTokens: z.number().int().nonnegative(),\n averageRequestReadShare: z.number().min(0).max(1).optional(),\n })\n .strict(),\n recent: z\n .object({\n windowSize: z.number().int().positive(),\n samples: z.array(ChannelRuntimeCacheSampleSchema),\n })\n .strict(),\n })\n .strict()\n\nexport const ChannelRuntimePerformanceSampleSchema = z\n .object({\n turn: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n at: z.number().nonnegative().optional(),\n firstTokenMs: z.number().int().nonnegative().optional(),\n decodeMs: z.number().int().nonnegative().optional(),\n outputTokens: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimePerformanceSchema = z\n .object({\n scope: z.literal('episode'),\n aggregate: z\n .object({\n steps: z.number().int().nonnegative(),\n llmMs: z.number().nonnegative(),\n toolMs: z.number().nonnegative(),\n ttftMs: z.number().nonnegative(),\n ttftSteps: z.number().int().nonnegative(),\n decodeMs: z.number().nonnegative(),\n decodeTokens: z.number().int().nonnegative(),\n decodeSteps: z.number().int().nonnegative(),\n retryCount: z.number().int().nonnegative(),\n retryDelayMs: z.number().nonnegative(),\n })\n .strict(),\n recent: z\n .object({\n windowSize: z.number().int().positive(),\n samples: z.array(ChannelRuntimePerformanceSampleSchema),\n })\n .strict(),\n })\n .strict()\n\n/** What the agent remembered or looked up, newest first; the admin sees it, the model does not. */\nexport const ChannelMemoryActivitySchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('backlog-folded'),\n at: z.number().nonnegative().optional(),\n foldedCount: z.number().int().nonnegative(),\n shownCount: z.number().int().nonnegative(),\n foldedImageCount: z.number().int().nonnegative(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('history-search'),\n at: z.number().nonnegative().optional(),\n query: z.string(),\n hits: z.number().int().nonnegative(),\n sender: z.string().optional(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('notes-updated'),\n at: z.number().nonnegative().optional(),\n revision: z.number().int().nonnegative(),\n chars: z.number().int().nonnegative(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('member-notes-updated'),\n at: z.number().nonnegative().optional(),\n memberId: z.string(),\n name: z.string().optional(),\n chars: z.number().int().nonnegative(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('idle-review'),\n at: z.number().nonnegative().optional(),\n quietMinutes: z.number().int().nonnegative(),\n })\n .strict(),\n])\n\nexport type ChannelMemoryActivity = z.output<typeof ChannelMemoryActivitySchema>\n\nexport const ChannelRuntimeProjectionSchema = z\n .object({\n channelId: ChannelIdSchema,\n agentId: AgentIdSchema.optional(),\n episodeId: EpisodeIdSchema.optional(),\n phase: ChannelRuntimePhaseSchema,\n summary: z.string(),\n pendingInjectCount: z.number().int().nonnegative(),\n occupancy: ChannelRuntimeOccupancySchema.optional(),\n cache: ChannelRuntimeCacheSchema.optional(),\n performance: ChannelRuntimePerformanceSchema.optional(),\n memory: z.array(ChannelMemoryActivitySchema).optional(),\n turns: z.array(ChannelRuntimeTurnSchema),\n })\n .strict()\n\nexport const ChannelRuntimeSseDataSchema = ChannelRuntimeProjectionSchema.extend({\n revision: z.number().int().positive(),\n truncated: z.boolean().optional(),\n}).strict()\n\nexport const ChannelRuntimeContextSchema = z\n .object({\n available: z.boolean(),\n route: z\n .object({\n provider: z.string(),\n model: z.string(),\n contextWindow: z.number().int().positive().optional(),\n reasoningEffort: z.string().optional(),\n temperature: z.number().optional(),\n maxTokens: z.number().int().positive().optional(),\n })\n .strict()\n .optional(),\n instructions: z.array(\n z.object({ role: z.enum(['system', 'developer']), text: z.string(), truncated: z.boolean() }).strict(),\n ),\n tools: z.array(\n z.object({ name: z.string(), description: z.string().optional(), parameters: z.string().optional() }).strict(),\n ),\n changes: z.array(\n z\n .object({\n at: z.number().nonnegative().optional(),\n reason: z.enum(['initial', 'resume', 'change', 'series']),\n toolCount: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\nconst ChannelPromptPartSchema = z\n .object({\n document: PromptDocumentV1Schema,\n /** Notes only: the agent may not rewrite them. */\n locked: z.boolean(),\n /** 0 before the first save; send it back as `expectedRevision`. */\n revision: z.number().int().nonnegative(),\n maxChars: z.number().int().positive(),\n updatedBy: z.enum(['admin', 'agent']).optional(),\n updatedAt: z.number().int().nonnegative().optional(),\n revisions: z.array(\n z\n .object({\n revision: z.number().int().positive(),\n document: PromptDocumentV1Schema,\n updatedBy: z.enum(['admin', 'agent']),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\n/**\n * What the agent answering a channel reads about it, each part with recent earlier versions to restore: the admin's\n * instructions (system prompt) and the agent's own notes (runtime context).\n */\nexport const ChannelPromptViewSchema = z\n .object({ instructions: ChannelPromptPartSchema, notes: ChannelPromptPartSchema })\n .strict()\n\n/**\n * How much of a channel's unread backlog reaches the agent at once, and when it looks back on its own. Uncertain\n * trade-offs stay per channel: a busy meme group and a long tabletop session want different budgets.\n */\nexport const ChannelContextPolicySchema = z\n .object({\n /** Text characters of a backlog read message by message; older messages collapse into one line. 0: no limit. */\n backlogTextChars: z.number().int().nonnegative().max(1_000_000),\n /** Backlog images shown as pictures, newest first; the rest stay references the agent can open. */\n backlogImages: z.number().int().nonnegative().max(20),\n /** Quiet minutes after which the agent reviews the conversation and updates its notes. 0: off. */\n idleReviewMinutes: z\n .number()\n .int()\n .nonnegative()\n .max(24 * 60),\n })\n .strict()\n\nexport type ChannelContextPolicy = z.output<typeof ChannelContextPolicySchema>\n\nexport const DEFAULT_CHANNEL_CONTEXT_POLICY: ChannelContextPolicy = Object.freeze({\n backlogTextChars: 40_000,\n backlogImages: 6,\n idleReviewMinutes: 45,\n})\n\nexport const ChannelContextPolicyViewSchema = z\n .object({\n policy: ChannelContextPolicySchema,\n defaults: ChannelContextPolicySchema,\n /** False while the channel follows the defaults. */\n custom: z.boolean(),\n })\n .strict()\n\nexport type ChannelContextPolicyView = z.output<typeof ChannelContextPolicyViewSchema>\n\n/** Whether a newer release exists on the build's own channel; development builds are never compared. */\nexport const ProductUpdateStatusSchema = z\n .object({\n channel: z.enum(['stable', 'preview', 'development']),\n currentVersion: z.string(),\n /** Short commit of a release build. */\n currentCommit: z.string().optional(),\n state: z.enum(['unknown', 'up-to-date', 'available', 'failed', 'unsupported']),\n latest: z\n .object({\n version: z.string(),\n commit: z.string().optional(),\n url: z.string().url(),\n publishedAt: z.number().int().nonnegative().optional(),\n })\n .strict()\n .optional(),\n checkedAt: z.number().int().nonnegative().optional(),\n error: z.string().optional(),\n autoCheck: z.boolean(),\n })\n .strict()\n\nexport type ProductUpdateStatus = z.output<typeof ProductUpdateStatusSchema>\n\n/** Pause between consecutive messages an agent sends to one channel; longer messages wait a little longer. */\nexport const MessagePacingSchema = z.enum(['off', 'fast', 'normal', 'slow'])\n\nexport type MessagePacing = z.output<typeof MessagePacingSchema>\n\nexport const DEFAULT_MESSAGE_PACING: MessagePacing = 'normal'\n\nexport const MessagePacingSettingsSchema = z.object({ pacing: MessagePacingSchema }).strict()\n\n/**\n * A conversation of its own under a channel's conversation (docs/NekroNxt界面交互模型.md §5.6): the agent opens one\n * for a separate piece of work, and the host opens scripted ones to check creation candidates. It has its own log\n * and context, and is shown under its channel.\n */\nexport const SubConversationSchema = z\n .object({\n id: SubConversationIdSchema,\n channelId: ChannelIdSchema,\n episodeId: EpisodeIdSchema,\n agentId: AgentIdSchema,\n title: z.string().min(1).max(200),\n /** `agent`: the agent opened it with a tool; `host`: NekroNXT opened it, such as to check a candidate. */\n openedBy: z.enum(['agent', 'host']),\n /** `model`: the agent's model talks in it; `script`: the host plays fixed tool calls. */\n driver: z.enum(['model', 'script']),\n status: z.enum(['open', 'closed']),\n closeReason: z.enum(['completed', 'closed-by-agent', 'closed-by-admin', 'failed', 'conversation-ended']).optional(),\n /** What it handed back to the channel's conversation when it ended. */\n summary: z.string().max(4000).optional(),\n authoringTaskId: AuthoringTaskIdSchema.optional(),\n createdAt: z.number().int().nonnegative(),\n closedAt: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport type SubConversation = z.output<typeof SubConversationSchema>\n\n/** How long ended sub-conversations are kept before they are cleaned up. */\nexport const SubConversationRetentionSchema = z.enum(['1d', '3d', '7d', '30d', 'never'])\nexport type SubConversationRetention = z.output<typeof SubConversationRetentionSchema>\nexport const DEFAULT_SUB_CONVERSATION_RETENTION: SubConversationRetention = '7d'\nexport const SubConversationSettingsSchema = z.object({ retention: SubConversationRetentionSchema }).strict()\n\n/** `keyword`: SQLite keyword search only; `builtin`: keywords fused with the built-in semantic model. */\nexport const RetrievalModeSchema = z.enum(['keyword', 'builtin'])\nexport type RetrievalMode = z.output<typeof RetrievalModeSchema>\n\n/** Search used by extension indexes (表情包与扩展素材能力 §6.4). */\nexport const RetrievalStatusSchema = z\n .object({\n mode: RetrievalModeSchema,\n builtin: z\n .object({\n model: z.string(),\n /** False where no inference runtime is published for this system and processor. */\n supported: z.boolean(),\n downloadBytes: z.number().int().nonnegative(),\n install: z.discriminatedUnion('state', [\n z.object({ state: z.literal('not-installed') }).strict(),\n z\n .object({\n state: z.literal('downloading'),\n receivedBytes: z.number().int().nonnegative(),\n totalBytes: z.number().int().nonnegative(),\n })\n .strict(),\n z.object({ state: z.literal('installed') }).strict(),\n z.object({ state: z.literal('failed'), error: z.string() }).strict(),\n ]),\n })\n .strict(),\n vectors: z\n .object({\n documents: z.number().int().nonnegative(),\n embedded: z.number().int().nonnegative(),\n state: z.enum(['idle', 'running', 'ready']),\n error: z.string().optional(),\n })\n .strict(),\n })\n .strict()\nexport type RetrievalStatus = z.output<typeof RetrievalStatusSchema>\n\n/** Where the Host keeps restore points it takes before an upgrade, or none. */\nexport const UpgradeBackupModeSchema = z.enum(['data', 'directory', 'off'])\nexport const UpgradeBackupSettingsSchema = z\n .object({\n mode: UpgradeBackupModeSchema,\n /** The chosen directory when `mode` is `directory`. */\n directory: z.string().nullable(),\n /** Set through the server's environment; the settings page cannot change it. */\n locked: z.boolean(),\n /** Restore points kept; older ones are removed after an upgrade succeeds. */\n keep: z.number().int().positive(),\n /** Restore points currently in the chosen place. */\n usage: z.object({ count: z.number().int().nonnegative(), bytes: z.number().int().nonnegative() }).strict(),\n })\n .strict()\nexport type UpgradeBackupSettings = z.output<typeof UpgradeBackupSettingsSchema>\n\n/** What the agent keeps about individual members of one channel; each note comes with that member's messages. */\nexport const ChannelMemberNotesViewSchema = z\n .object({\n notes: z.array(\n z\n .object({\n memberId: ChannelMemberIdSchema,\n displayName: z.string().optional(),\n text: z.string(),\n updatedBy: z.enum(['admin', 'agent']),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n maxChars: z.number().int().positive(),\n })\n .strict()\n\nexport type ChannelMemberNotesView = z.output<typeof ChannelMemberNotesViewSchema>\n\nexport type ChannelRuntimePhase = z.output<typeof ChannelRuntimePhaseSchema>\nexport type ChannelRuntimeUsage = z.output<typeof ChannelRuntimeUsageSchema>\nexport type ChannelRuntimeOccupancy = z.output<typeof ChannelRuntimeOccupancySchema>\nexport type ChannelRuntimeCacheSample = z.output<typeof ChannelRuntimeCacheSampleSchema>\nexport type ChannelRuntimeCache = z.output<typeof ChannelRuntimeCacheSchema>\nexport type ChannelRuntimePerformanceSample = z.output<typeof ChannelRuntimePerformanceSampleSchema>\nexport type ChannelRuntimePerformance = z.output<typeof ChannelRuntimePerformanceSchema>\nexport type ChannelRuntimeProjection = z.output<typeof ChannelRuntimeProjectionSchema>\nexport type ChannelRuntimeContext = z.output<typeof ChannelRuntimeContextSchema>\nexport type ChannelRuntimeInput = z.output<typeof ChannelRuntimeInputSchema>\nexport type ChannelPromptView = z.output<typeof ChannelPromptViewSchema>\nexport type ChannelRuntimeSseData = z.output<typeof ChannelRuntimeSseDataSchema>\nexport type ChannelFactSseData = z.output<typeof ChannelFactSseDataSchema>\n\nconst AdapterConnectionCreationSchema = z\n .object({\n mode: z.enum(['schema-form', 'qr-login']),\n actionLabel: z.string().trim().min(1).optional(),\n pendingLabel: z.string().trim().min(1).optional(),\n })\n .strict()\n\nconst AdapterConnectionDescriptorSchema = z\n .object({\n key: NonEmptyStringSchema,\n displayName: z.string(),\n description: z.string(),\n provisioning: z.enum(['user-created', 'system-singleton']),\n aliasEditable: z.boolean(),\n channelDiscovery: z.enum(['host-created', 'adapter-observed']),\n channelKinds: z.array(z.enum(['internal', 'direct', 'group'])).min(1),\n activities: z.array(\n z\n .object({\n key: AdapterActivityKeySchema,\n scope: z.enum(['channel', 'connection']),\n displayName: z.string().trim().min(1),\n description: z.string().trim().min(1),\n icon: HostIconNameSchema.optional(),\n triggerable: z.boolean(),\n channelKinds: z.array(z.enum(['internal', 'direct', 'group'])).optional(),\n directedAt: z.enum(['member', 'message']).optional(),\n })\n .strict(),\n ),\n features: z\n .object({\n processingFeedback: z\n .object({ channelKinds: z.array(z.enum(['direct', 'group'])).min(1) })\n .strict()\n .optional(),\n })\n .strict(),\n diagnostics: z.object({ receive: z.boolean(), send: z.boolean() }).strict(),\n creation: AdapterConnectionCreationSchema.optional(),\n /** Typed platform actions the Adapter offers to agent extensions (`ctx.nxt.platform`). */\n platformActions: z\n .array(\n z\n .object({\n name: z.string().regex(/^[a-z0-9_]{1,64}$/u),\n title: z.string(),\n description: z.string(),\n risk: z.enum(['low', 'admin']),\n channelKinds: z.array(z.enum(['direct', 'group'])).min(1),\n parameters: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), JsonValueSchema),\n required: z.array(z.string()).optional(),\n })\n .strict(),\n })\n .strict(),\n )\n .optional(),\n rawApi: z.object({ description: z.string() }).strict().optional(),\n configSchema: ConfigSchemaDocumentSchema,\n })\n .strict()\n\nconst AdapterCapabilityStateSchema = z\n .object({\n state: z.enum(['available', 'disabled', 'unsupported', 'degraded', 'unknown']),\n reason: z.string().optional(),\n })\n .strict()\n\nconst ActivityTriggerOverridesSchema = z.record(AdapterActivityKeySchema, z.boolean())\n\nexport const HostSyncCursorSchema = z\n .object({\n epoch: z.string().regex(/^[a-zA-Z0-9_-]{1,100}$/u),\n sequence: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),\n })\n .strict()\n\nexport const AgentAppearanceSchema = z\n .object({\n hue: z.number().int().min(0).max(359).optional(),\n avatarAssetId: AssetIdSchema.optional(),\n })\n .strict()\n\nexport type AgentAppearance = z.output<typeof AgentAppearanceSchema>\n\n/** Upper bound of a reported unread count; `unreadCapped` marks that more exist. */\nexport const CHANNEL_UNREAD_COUNT_CAP = 99\n\nexport const ChannelActivitySummarySchema = z\n .object({\n lastActivityAt: z.number().int().safe().nonnegative().optional(),\n lastMessage: z\n .object({\n role: z.enum(['member', 'agent', 'admin', 'system']),\n author: z.string().max(120),\n preview: z.string().max(160),\n occurredAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n unreadCount: z.number().int().nonnegative().max(CHANNEL_UNREAD_COUNT_CAP),\n unreadCapped: z.boolean(),\n })\n .strict()\n\nexport type ChannelActivitySummary = z.output<typeof ChannelActivitySummarySchema>\n\nexport const AttentionItemSchema = z\n .object({\n /** Stable fingerprint; a recurrence of the same condition gets a new fingerprint. */\n id: z.string().min(1).max(200),\n kind: z.enum([\n 'delivery-unconfirmed',\n 'delivery-failed',\n 'turn-failed',\n 'authoring-approval',\n 'connection-unhealthy',\n 'agent-model-unavailable',\n 'agent-vision-unavailable',\n 'logs-unavailable',\n 'community-feedback',\n ]),\n severity: z.enum(['critical', 'warning', 'info']),\n subject: z\n .object({\n kind: z.enum(['outbound', 'channel', 'authoring-task', 'connection', 'agent', 'logs', 'community-feedback']),\n id: NonEmptyStringSchema,\n })\n .strict(),\n related: z\n .object({\n channelId: ChannelIdSchema.optional(),\n agentId: AgentIdSchema.optional(),\n connectionId: ConnectionIdSchema.optional(),\n taskId: AuthoringTaskIdSchema.optional(),\n outboundId: OutboundIntentIdSchema.optional(),\n })\n .strict(),\n title: z.string().min(1).max(120),\n detail: z.string().max(400),\n action: z\n .object({\n kind: z.enum([\n 'open-channel',\n 'resolve-delivery',\n 'open-authoring-task',\n 'open-connection',\n 'open-agent',\n 'open-logs',\n 'open-community-feedback',\n ]),\n label: z.string().min(1).max(40),\n })\n .strict(),\n occurredAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport type AttentionItem = z.output<typeof AttentionItemSchema>\n\nexport const AttentionListSchema = z\n .object({\n revision: z.string().min(1),\n items: z.array(AttentionItemSchema).max(200),\n })\n .strict()\n\nexport const ChannelPendingContextSchema = z\n .object({\n channelId: ChannelIdSchema,\n episodeId: EpisodeIdSchema.optional(),\n items: z.array(\n z\n .object({\n admissionId: NonEmptyStringSchema,\n /** `next-step`: injected at the next safe step boundary; `next-turn`: waits for a later turn. */\n target: z.enum(['next-step', 'next-turn']),\n events: z.array(\n z\n .object({\n eventId: ChannelEventIdSchema,\n author: z.string().max(120),\n preview: z.string().max(160),\n receivedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport type ChannelPendingContext = z.output<typeof ChannelPendingContextSchema>\n\nexport const ACTIVITY_MAX_WINDOW_MS = 24 * 60 * 60 * 1000\nexport const ACTIVITY_MIN_BUCKET_MS = 60 * 1000\nexport const ACTIVITY_MAX_BUCKETS = 288\n\nconst ActivityDurationSchema = z.string().regex(/^[1-9][0-9]{0,4}[mh]$/u)\n\nexport const activityDurationMs = (value: string): number => {\n const amount = Number(value.slice(0, -1))\n return value.endsWith('h') ? amount * 60 * 60 * 1000 : amount * 60 * 1000\n}\n\nexport const ActivityQuerySchema = z\n .object({\n window: ActivityDurationSchema.default('2h'),\n bucket: ActivityDurationSchema.default('5m'),\n })\n .strict()\n .superRefine((value, context) => {\n const window = activityDurationMs(value.window)\n const bucket = activityDurationMs(value.bucket)\n if (window > ACTIVITY_MAX_WINDOW_MS)\n context.addIssue({ code: 'custom', path: ['window'], message: '统计窗口不能超过 24 小时。' })\n if (bucket < ACTIVITY_MIN_BUCKET_MS)\n context.addIssue({ code: 'custom', path: ['bucket'], message: '统计间隔不能小于 1 分钟。' })\n if (bucket > window) context.addIssue({ code: 'custom', path: ['bucket'], message: '统计间隔不能大于统计窗口。' })\n if (window / bucket > ACTIVITY_MAX_BUCKETS) {\n context.addIssue({ code: 'custom', path: ['bucket'], message: `统计桶不能超过 ${ACTIVITY_MAX_BUCKETS} 个。` })\n }\n })\n\nexport const ChannelActivitySeriesSchema = z\n .object({\n from: z.number().int().safe().nonnegative(),\n to: z.number().int().safe().nonnegative(),\n bucketMs: z.number().int().positive(),\n channels: z.array(\n z\n .object({\n channelId: ChannelIdSchema,\n counts: z.array(z.number().int().nonnegative()).max(ACTIVITY_MAX_BUCKETS),\n total: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport type ChannelActivitySeries = z.output<typeof ChannelActivitySeriesSchema>\n\nexport const ScheduledTaskIdSchema = z.string().regex(/^job_[0-9A-Za-z]+$/u)\n\n/**\n * One scheduled task of an agent in one channel. `chat` tasks come from the agent's scheduling tools; `declared` and\n * `runtime` tasks belong to an extension (Manifest plan or `ctx.nxt.jobs`).\n */\nexport const ScheduledTaskSchema = z\n .object({\n id: ScheduledTaskIdSchema,\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema,\n source: z.enum(['chat', 'declared', 'runtime']),\n extensionId: ExtensionIdSchema.optional(),\n extensionName: z.string().optional(),\n label: z.string(),\n note: z.string().optional(),\n schedule: z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('once'), at: z.number().int().safe() }).strict(),\n z.object({ kind: z.literal('cron'), cron: z.string(), timezone: z.string() }).strict(),\n ]),\n /** `inactive`: the owning extension is disabled for this agent, so the task stays silent. */\n state: z.enum(['scheduled', 'paused', 'finished', 'inactive']),\n nextRunAt: z.number().int().safe().optional(),\n lastFiredAt: z.number().int().safe().optional(),\n createdAt: z.number().int().safe(),\n })\n .strict()\n\nexport type ScheduledTask = z.output<typeof ScheduledTaskSchema>\n\n/** The Node that runs `run_code` programs, and the download the desktop app offers when there is none. */\nexport const CodeRunAvailabilitySchema = z\n .object({\n available: z.boolean(),\n source: z.enum(['host', 'system', 'downloaded']).optional(),\n version: z.string().optional(),\n download: z\n .object({\n version: z.string(),\n state: z.enum(['idle', 'downloading', 'failed']),\n receivedBytes: z.number().int().nonnegative().optional(),\n totalBytes: z.number().int().nonnegative().optional(),\n error: z.string().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport type CodeRunAvailability = z.output<typeof CodeRunAvailabilitySchema>\n\n/** The GitHub CLI commands call: found on this machine, or downloaded by NekroNXT where it can. */\nexport const GithubCliAvailabilitySchema = CodeRunAvailabilitySchema\nexport type GithubCliAvailability = z.output<typeof GithubCliAvailabilitySchema>\n\n/** The optional headless Chromium that loads and checks creation candidates when no page is open. */\nexport const VerificationBrowserAvailabilitySchema = CodeRunAvailabilitySchema\nexport type VerificationBrowserAvailability = z.output<typeof VerificationBrowserAvailabilitySchema>\n\n/**\n * One account in the host's library. The library only keeps accounts; an account takes effect only for the agents\n * whose capabilities grant it, which `usedBy` lists.\n */\nexport const CommandAccountSchema = z\n .object({\n id: NonEmptyStringSchema.max(64),\n service: CommandAccountServiceSchema,\n /** The account name on the service. */\n login: NonEmptyStringSchema,\n source: z.enum(['token', 'gh-login']),\n /** Token scopes where the service reports them (classic tokens); absent for fine-grained tokens. */\n scopes: z.array(z.string()).optional(),\n createdAt: z.number().int().nonnegative(),\n usedBy: z.array(AgentIdSchema),\n })\n .strict()\n\nexport type CommandAccount = z.output<typeof CommandAccountSchema>\n\n/** A login the local `gh` holds, offered as a quick way to add an account. */\nexport const LocalGithubLoginSchema = z.object({ login: NonEmptyStringSchema, active: z.boolean() }).strict()\n\nexport const CommandAccountsViewSchema = z\n .object({\n accounts: z.array(CommandAccountSchema),\n /** Logins found in the local GitHub CLI; empty when it is missing or not logged in. */\n localLogins: z.array(LocalGithubLoginSchema),\n })\n .strict()\n\nexport type CommandAccountsView = z.output<typeof CommandAccountsViewSchema>\n\nexport const AddCommandAccountRequestSchema = z.discriminatedUnion('source', [\n z\n .object({ source: z.literal('token'), service: CommandAccountServiceSchema, token: NonEmptyStringSchema.max(512) })\n .strict(),\n z\n .object({\n source: z.literal('gh-login'),\n service: CommandAccountServiceSchema,\n login: NonEmptyStringSchema.max(128),\n })\n .strict(),\n])\n\nexport type AddCommandAccountRequest = z.output<typeof AddCommandAccountRequestSchema>\n\n/** An extension action an agent asked an administrator to confirm, or one it took on its own. */\nexport const ExtensionRequestSchema = z\n .object({\n number: z.number().int().positive(),\n kind: z.string(),\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema.nullable(),\n extensionId: ExtensionIdSchema.nullable(),\n summary: z.string(),\n status: z.enum(['pending', 'approved', 'rejected', 'expired', 'completed', 'failed']),\n autonomous: z.boolean(),\n resultMessage: z.string().nullable(),\n decidedBy: z.string().nullable(),\n createdAt: z.number().int().nonnegative(),\n expiresAt: z.number().int().nonnegative(),\n decidedAt: z.number().int().nonnegative().nullable(),\n })\n .strict()\nexport type ExtensionRequestView = z.output<typeof ExtensionRequestSchema>\n\nexport const HostSnapshotSchema = z\n .object({\n communityFeedback: CommunityFeedbackSnapshotSchema.optional(),\n upgrade: HostUpgradeSummarySchema.optional(),\n cursor: HostSyncCursorSchema,\n diagnosticsSampledAt: z.number().int().nonnegative(),\n productMetadata: z\n .object({\n displayName: NonEmptyStringSchema,\n organizationName: NonEmptyStringSchema,\n version: NonEmptyStringSchema,\n releaseId: NonEmptyStringSchema,\n repositoryUrl: z.url(),\n licenseSpdx: NonEmptyStringSchema.nullable(),\n dshVersion: NonEmptyStringSchema.optional(),\n })\n .strict()\n .optional(),\n models: z.array(\n z\n .object({\n provider: NonEmptyStringSchema,\n providerName: NonEmptyStringSchema,\n id: NonEmptyStringSchema,\n name: z.string(),\n description: z.string().optional(),\n inputModalities: z.array(z.string()).optional(),\n })\n .strict(),\n ),\n capabilityAvailability: z\n .object({\n subagents: z.object({ available: z.boolean() }).strict(),\n /** Optional in older hosts, which never offer `run_code`. */\n codeRun: CodeRunAvailabilitySchema.optional(),\n /** Optional in older hosts, which never offer command accounts. */\n githubCli: GithubCliAvailabilitySchema.optional(),\n /** Optional in older hosts, which check candidates only in an open page. */\n verificationBrowser: VerificationBrowserAvailabilitySchema.optional(),\n /** What this host can confine for commands beyond file writes; optional in older hosts. */\n commandConfinement: z.object({ readScope: z.boolean(), networkControl: z.boolean() }).strict().optional(),\n webSearch: z\n .object({\n unavailableReason: z.string().optional(),\n provider: z.literal('deepseek-official'),\n available: z.boolean(),\n credentialConfigured: z.boolean(),\n credentialReference: NonEmptyStringSchema,\n maxUsesPerCall: z.number().int().nonnegative(),\n maxResultsPerCall: z.number().int().nonnegative(),\n timeoutMs: z.number().int().nonnegative(),\n })\n .strict(),\n })\n .strict(),\n connectionAdapters: z.array(AdapterConnectionDescriptorSchema),\n notificationSettings: NotificationSettingsViewSchema,\n /** Optional in older hosts, which have no account library. */\n commandAccounts: z.array(CommandAccountSchema).optional(),\n agents: z.array(\n z\n .object({\n id: AgentIdSchema,\n displayName: z.string(),\n persona: z.string(),\n personaDocument: PromptDocumentV1Schema,\n model: AgentModelSchema,\n capabilities: AgentCapabilitiesSchema,\n imagePolicy: ImageUnderstandingPolicyApiSchema,\n dynamicClientApprovalPolicy: DynamicClientApprovalPolicySchema,\n imageDiagnostics: z\n .object({\n route: z\n .object({\n mode: z.enum(['direct', 'delegated', 'unavailable']),\n provider: z.string().optional(),\n model: z.string().optional(),\n })\n .strict(),\n activeSessions: z.number().int().nonnegative(),\n residentImages: z.number().int().nonnegative(),\n duplicateImagesSkipped: z.number().int().nonnegative(),\n lastInspection: z\n .object({\n mode: z.enum(['direct', 'delegated']),\n imageCount: z.number().int().nonnegative(),\n provider: z.string().optional(),\n model: z.string().optional(),\n cacheHit: z.boolean(),\n usage: ChannelRuntimeUsageSchema.optional(),\n errorCode: z.string().optional(),\n })\n .strict()\n .optional(),\n lastRestoration: z\n .object({\n compactionId: z.string(),\n candidateCount: z.number().int().nonnegative(),\n restoredCount: z.number().int().nonnegative(),\n skippedCount: z.number().int().nonnegative(),\n error: z.string().optional(),\n })\n .strict()\n .optional(),\n blockers: z.array(z.string()),\n })\n .strict(),\n currentRevisionId: AgentRevisionIdSchema,\n runtimeStatus: z.enum(['idle', 'running']),\n runtimePhase: ChannelRuntimePhaseSchema.default('idle'),\n createdAt: z.number().finite(),\n channels: z.array(ChannelIdSchema),\n appearance: AgentAppearanceSchema.default({}),\n })\n .strict(),\n ),\n channels: z.array(\n z\n .object({\n id: ChannelIdSchema,\n connectionId: ConnectionIdSchema,\n platformChannelId: NonEmptyStringSchema,\n kind: z.enum(['internal', 'group', 'direct']),\n displayName: z.string().optional(),\n localDisplayName: z.string().optional(),\n platformDisplayName: z.string().optional(),\n boundAgentId: AgentIdSchema.optional(),\n runtimePhase: ChannelRuntimePhaseSchema.default('idle'),\n activity: ChannelActivitySummarySchema.default({ unreadCount: 0, unreadCapped: false }),\n /** Other agents on this host that answer the same platform channel through another connection; absent when none. */\n localAgentIds: z.array(AgentIdSchema).min(1).optional(),\n bindings: z.array(\n z\n .object({\n channelId: ChannelIdSchema,\n agentId: AgentIdSchema,\n triggerPolicy: TriggerPolicySchema,\n /** Channel pause, independent of the response rule. */\n paused: z.boolean().default(false),\n processingFeedback: z.enum(['auto', 'off']).default('auto'),\n /** Absent means `observe`. */\n localAgentMessages: z.enum(['observe', 'trigger']).optional(),\n activityTriggerOverrides: ActivityTriggerOverridesSchema.default({}),\n boundAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n workTreeOrder: WorkTreeOrderSchema.default({\n agentIds: [],\n channelIdsByAgent: {},\n unboundChannelIds: [],\n }),\n messages: z.array(HostSnapshotMessageSchema),\n connections: z.array(\n z\n .object({\n id: ConnectionIdSchema,\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasOutputSchema.optional(),\n activityTriggerDefaults: z.array(AdapterActivityKeySchema).default([]),\n configuredSecrets: z.array(z.string()).optional(),\n status: z\n .object({\n state: z.enum(['stopped', 'connecting', 'connected', 'reconnecting', 'failed']),\n message: z.string().optional(),\n credentialConfigured: z.boolean(),\n proactiveSend: z.boolean(),\n accountReference: z.string().optional(),\n implementation: z\n .object({\n name: z.string().optional(),\n version: z.string().optional(),\n protocolVersion: z.string().optional(),\n })\n .strict()\n .optional(),\n optionalCapabilities: z\n .record(z.string(), z.enum(['unknown', 'available', 'unsupported', 'degraded']))\n .optional(),\n activities: z.record(z.string(), AdapterCapabilityStateSchema).default({}),\n processingFeedback: AdapterCapabilityStateSchema.optional(),\n })\n .strict()\n .default({ state: 'stopped', credentialConfigured: false, proactiveSend: false, activities: {} }),\n channelCount: z.number().int().nonnegative(),\n knownChannels: z.array(\n z.object({ id: ChannelIdSchema, name: z.string(), kind: z.enum(['internal', 'group', 'direct']) }).strict(),\n ),\n lastInbound: z\n .object({\n channelId: ChannelIdSchema,\n platformMessageId: NonEmptyStringSchema,\n receivedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n receiveTest: z.lazy(() => ConnectionTestResultSchema).optional(),\n sendTest: z.lazy(() => ConnectionTestResultSchema).optional(),\n configuration: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).default({}),\n })\n .strict(),\n ),\n archivedConnections: z\n .array(\n z\n .object({\n id: ConnectionIdSchema,\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasOutputSchema.optional(),\n channelCount: z.number().int().nonnegative(),\n archivedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n )\n .default([]),\n extensions: z.array(\n z\n .object({\n id: ExtensionIdSchema,\n /** What the latest Revision provides; listing and filtering only. */\n provides: z.array(ExtensionProvideSchema),\n slug: NonEmptyStringSchema,\n displayName: z.string(),\n description: z.string(),\n createdByAgentId: AgentIdSchema.optional(),\n /** The Revision of another extension this one was branched from. */\n branchOf: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n /** Present while the original is on this machine. */\n displayName: z.string().optional(),\n })\n .strict()\n .optional(),\n /** Shape version of the data stored on this machine. */\n dataVersion: z.number().int().positive().default(1),\n /** The unfinished revise task of this extension, if any. */\n openRevisionTaskId: AuthoringTaskIdSchema.optional(),\n /** Whether this machine publishes (`owner`) or follows the line on each community. */\n communityLinks: z\n .array(z.object({ communityUrl: z.string(), role: z.enum(['owner', 'subscriber']) }).strict())\n .default([]),\n revisions: z.array(\n z\n .object({\n id: ExtensionRevisionIdSchema,\n revisionNumber: z.number().int().positive(),\n /** Version number from the lineage, `v3` (or `v3·2` for a second Revision of the same generation). */\n versionLabel: z.string(),\n parentRevisionId: ExtensionRevisionIdSchema.optional(),\n origin: z.enum(['authored', 'file', 'community', 'branch']),\n authoringTaskId: AuthoringTaskIdSchema.optional(),\n dataVersion: z.number().int().positive(),\n /** Community releases this Revision is; installs and publishes from here both record one. */\n releases: z\n .array(\n z\n .object({\n communityUrl: z.string(),\n releaseId: CommunityReleaseIdSchema,\n number: z.number().int().positive().nullable(),\n publisherHandle: z.string(),\n via: z.enum(['install', 'publish']),\n recordedAt: z.number().int().nonnegative(),\n })\n .strict(),\n )\n .default([]),\n format: z.enum(['current', 'unavailable']).optional(),\n ui: ExtensionUiContributionsSchema.default(EMPTY_EXTENSION_UI_CONTRIBUTIONS),\n /** The host instance's configuration form (`config.host`). */\n hostConfigSchema: ConfigSchemaDocumentSchema.optional(),\n /** Each enabled agent's configuration form (`config.agent`). */\n agentConfigSchema: ConfigSchemaDocumentSchema.optional(),\n /** 扩展包自带图标的读取路径(同源、按摘要寻址、可长期缓存);没有图标时缺省。 */\n iconUrl: z\n .string()\n .regex(/^\\/api\\/extensions\\/[^/]+\\/revisions\\/[^/]+\\/icon\\/[a-f0-9]{64}\\.(?:svg|png|webp)$/u)\n .optional(),\n createdAt: z.number().int().safe().nonnegative(),\n provides: z.array(ExtensionProvideSchema),\n /** Whether this Revision can be enabled for agents (agent-layer contributions or capabilities). */\n agentLayer: z.boolean(),\n contributions: z.array(z.string()),\n verification: z\n .object({\n verifiedAt: z.number().int().nonnegative(),\n dshVersion: z.string(),\n contractVersion: z.string(),\n hostBuilt: z.boolean(),\n clientBuilt: z.boolean(),\n buildKey: z.string(),\n toolInvocationCount: z.number().int().nonnegative(),\n rpcMethods: z.array(z.string()),\n renderedPanels: z.array(z.string()).default([]),\n renderedToolViews: z.array(z.string()).default([]),\n renderedMessageRenderers: z.array(z.string()).default([]),\n renderedPages: z.array(HostPageContributionSchema).max(8).optional(),\n usedUiComponents: z.array(HostUiKitComponentNameSchema).optional(),\n pageGeometry: z.array(HostUiPageGeometryEvidenceSchema).max(8).optional(),\n permissions: ExtensionPermissionsSchema.optional(),\n /** Installing this Revision on the machine, against the current host grant. */\n hostPermission: ExtensionPermissionRequirementSchema.optional(),\n /** Enabling this Revision for an agent that has no grant yet. */\n agentPermission: ExtensionPermissionRequirementSchema.optional(),\n adapter: z\n .object({\n apiVersion: z.literal(2),\n key: NonEmptyStringSchema,\n descriptorDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n registered: z.boolean(),\n started: z.boolean(),\n stopped: z.boolean(),\n inboundCommitted: z.boolean(),\n outboundReceipt: z.enum(['sent', 'failed', 'unknown']),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict(),\n ),\n activations: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n extensionRevisionId: ExtensionRevisionIdSchema,\n /** Secret fields are removed; `configuredSecrets` lists those the Host stores. */\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n activatedAt: z.number().int().safe().nonnegative(),\n runtime: z\n .object({\n status: z.enum(['active', 'restore-failed', 'dispose-failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .optional(),\n /** Latest connection attempt of each MCP server this Activation declares. */\n mcpServers: z\n .array(\n z\n .object({\n name: z.string(),\n state: z.enum(['connecting', 'connected', 'unavailable', 'missing-credentials']),\n toolCount: z.number().int().nonnegative().optional(),\n missing: z.array(z.string()).optional(),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n )\n .optional(),\n })\n .strict(),\n ),\n /** Present only while some agent's enable or disable request is waiting or has failed. */\n activationTransitions: z.array(ExtensionActivationTransitionSchema).optional(),\n installation: z\n .object({\n extensionRevisionId: ExtensionRevisionIdSchema,\n installedAt: z.number().int().safe().nonnegative(),\n /** Secret fields are removed; `configuredSecrets` lists those the Host stores. */\n config: JsonValueSchema.default({}),\n configuredSecrets: z.array(z.string()).optional(),\n runtime: z\n .object({\n status: z.enum(['active', 'restore-failed', 'dispose-failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .optional(),\n })\n .strict()\n .optional(),\n /** Installing the latest Revision on this machine, against the current host grant. */\n hostPermission: ExtensionPermissionRequirementSchema.optional(),\n hostClientDiagnostic: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n status: z.enum(['loaded', 'failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n clientDiagnostics: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n status: z.enum(['loaded', 'failed']),\n message: z.string().optional(),\n observedAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n hostUi: z\n .object({\n preferencesRevision: z.number().int().nonnegative(),\n pages: z.array(HostUiPageEntrySchema),\n })\n .strict()\n .default({ preferencesRevision: 0, pages: [] }),\n dynamic: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema.optional(),\n currentPackageId: DynamicIdSchema.optional(),\n nextPackageId: DynamicIdSchema.optional(),\n approvalRequestId: DynamicIdSchema.optional(),\n status: DynamicAttemptStatusSchema,\n activeRun: z.object({ pluginRunId: DynamicIdSchema, packageId: DynamicIdSchema }).strict().optional(),\n latestRun: DynamicLatestRunSchema.optional(),\n packages: z.array(\n z\n .object({\n packageId: DynamicIdSchema,\n name: z.string(),\n purpose: z.string(),\n hasHostHalf: z.boolean(),\n hasClientHalf: z.boolean(),\n })\n .strict(),\n ),\n policy: z\n .object({\n turn: z.number().int().nonnegative(),\n primaryPluginId: DynamicIdSchema.optional(),\n consecutiveFailures: z.number().int().nonnegative(),\n repeatedFingerprintCount: z.number().int().nonnegative(),\n lastErrorFingerprint: z.string().optional(),\n blockedReason: z.string().optional(),\n })\n .strict(),\n })\n .strict(),\n ),\n authoringTasks: z.array(AuthoringTaskSummarySchema).default([]),\n /** Open sub-conversations, and the most recently ended ones of each channel. */\n subConversations: z.array(SubConversationSchema).default([]),\n scheduledTasks: z.array(ScheduledTaskSchema).default([]),\n /** Extension requests waiting for an administrator. */\n extensionRequests: z.array(ExtensionRequestSchema).default([]),\n })\n .strict()\n\nexport const CHANNEL_COMPOSER_MAX_ATTACHMENTS = 20\nexport const CHANNEL_COMPOSER_MAX_BYTES = 64 * 1024 * 1024\n\nconst MessageInputPartSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), text: z.string().trim().min(1) }).strict(),\n z.object({ type: z.literal('mention'), memberId: ChannelMemberIdSchema }).strict(),\n z.object({ type: z.literal('image'), assetId: AssetIdSchema, alt: z.string().trim().max(500).optional() }).strict(),\n z.object({ type: z.literal('file'), assetId: AssetIdSchema, name: z.string().trim().max(255).optional() }).strict(),\n])\n\nconst SendChannelMessageRequestSchema = z\n .object({\n parts: z\n .array(MessageInputPartSchema)\n .min(1)\n .max(256)\n .refine(\n (parts) =>\n parts.filter((part) => part.type === 'image' || part.type === 'file').length <=\n CHANNEL_COMPOSER_MAX_ATTACHMENTS,\n '每条消息最多添加 20 个附件。',\n ),\n clientEventId: NonEmptyStringSchema.optional(),\n senderMemberId: ChannelMemberIdSchema.optional(),\n })\n .strict()\n .refine(\n (body) => body.parts.every((part) => part.type !== 'text' || [...part.text].length <= 64 * 1024),\n 'Message text must not exceed 64 KiB.',\n )\n\nconst DynamicErrorDetailsSchema = z.object({ message: z.string(), stack: z.string().optional() }).strict()\nconst DynamicRenderFailureSchema = z\n .object({\n slot: NonEmptyStringSchema,\n message: z.string(),\n stack: z.string().optional(),\n abdicated: z.boolean(),\n })\n .strict()\nconst DynamicRunResolutionSchema = z.discriminatedUnion('ok', [\n z.object({ ok: z.literal(true), pluginRunId: DynamicIdSchema, waitingFor: z.array(z.string()).optional() }).strict(),\n z\n .object({\n ok: z.literal(false),\n reason: z.enum(['rejected', 'host-half-failed', 'client-half-failed']),\n pluginRunId: DynamicIdSchema.optional(),\n startedHere: z.boolean().optional(),\n message: z.string().optional(),\n stack: z.string().optional(),\n })\n .strict(),\n])\n\nconst DynamicRunResponseSchema = z.discriminatedUnion('ok', [\n z\n .object({\n ok: z.literal(true),\n status: z.enum(['awaiting-approval', 'starting', 'running']),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n waitingFor: z.array(z.string()),\n clientWaitingFor: z.array(z.string()).optional(),\n currentPackageId: DynamicIdSchema.optional(),\n nextPackageId: DynamicIdSchema.optional(),\n mode: z.enum(['run', 'update']),\n })\n .strict(),\n z\n .object({\n ok: z.literal(false),\n reason: z.enum([\n 'plugin-missing',\n 'package-missing',\n 'invalid-mode',\n 'transition-in-flight',\n 'host-half-failed',\n 'client-half-failed',\n 'rejected',\n 'cancelled',\n 'not-running',\n ]),\n message: z.string(),\n stack: z.string().optional(),\n })\n .strict(),\n])\n\nconst DynamicInventoryRowSchema = z\n .object({\n pluginId: DynamicIdSchema,\n agentId: NonEmptyStringSchema,\n packages: z.array(\n z\n .object({\n packageId: DynamicIdSchema,\n name: z.string(),\n purpose: z.string(),\n hasHostHalf: z.boolean(),\n hasClientHalf: z.boolean(),\n })\n .strict(),\n ),\n currentPackageId: DynamicIdSchema.optional(),\n nextPackageId: DynamicIdSchema.optional(),\n activeRun: z.object({ pluginRunId: DynamicIdSchema, packageId: DynamicIdSchema }).strict().optional(),\n latestRun: DynamicLatestRunSchema.optional(),\n })\n .strict()\n\nexport const DshPluginCatalogEntrySchema = z\n .object({\n packageName: NonEmptyStringSchema,\n packageVersion: NonEmptyStringSchema,\n origin: z.enum(['builtin', 'profile', 'dynamic', 'installed']),\n settingsNamespaces: z.array(NonEmptyStringSchema),\n loadError: z.object({ code: NonEmptyStringSchema, message: NonEmptyStringSchema }).strict().optional(),\n packageId: DshPluginPackageIdSchema.optional(),\n installSource: z.enum(['registry', 'tarball', 'imported']).optional(),\n installedAt: z.number().int().safe().nonnegative().optional(),\n clientUiDetected: z.boolean().optional(),\n hostUi: DshNxtHostUiSchema.optional(),\n approvedBuilds: z.array(NonEmptyStringSchema).optional(),\n entries: z\n .array(\n z\n .object({\n id: DshPluginEntryIdSchema,\n entryKey: NonEmptyStringSchema,\n moduleName: NonEmptyStringSchema,\n suggestedScope: z.enum(['host', 'agent']),\n selectedScope: z.enum(['host', 'agent']).optional(),\n config: JsonValueSchema,\n activations: z.array(\n z\n .object({\n targetKey: NonEmptyStringSchema,\n target: z.enum(['host', 'agent']),\n agentId: AgentIdSchema.optional(),\n activatedAt: z.number().int().safe().nonnegative(),\n diagnostic: z\n .object({\n status: z.enum(['active', 'load-failed', 'restore-failed', 'dispose-failed']),\n phase: z.enum(['import', 'apply', 'update', 'dispose', 'restore']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .optional(),\n })\n .strict(),\n ),\n })\n .strict(),\n )\n .optional(),\n })\n .strict()\n\nexport const DshSettingsNamespaceSchema = z\n .object({\n ns: NonEmptyStringSchema,\n schema: JsonValueSchema,\n resolved: JsonValueSchema,\n base: JsonValueSchema.optional(),\n user: JsonValueSchema.optional(),\n applies: z.enum(['live', 'restart']),\n secrets: z.array(z.object({ path: z.array(z.string()), set: z.boolean() }).strict()),\n revision: z.number().int().nonnegative(),\n writable: z.boolean(),\n owner: z.object({ packageName: NonEmptyStringSchema, packageVersion: NonEmptyStringSchema }).strict().optional(),\n })\n .strict()\n\nexport const DshSettingsPathSchema = z.array(z.string().min(1).max(200)).min(1).max(32)\n\nexport const DshSettingsPathOperationSchema = z.discriminatedUnion('op', [\n z.object({ op: z.literal('set'), path: DshSettingsPathSchema, value: JsonValueSchema }).strict(),\n z.object({ op: z.literal('unset'), path: DshSettingsPathSchema }).strict(),\n])\n\nexport const DshSettingsMutationRequestSchema = z\n .object({\n expectedRevision: z.number().int().nonnegative(),\n ops: z.array(DshSettingsPathOperationSchema).min(1).max(128),\n })\n .strict()\n\nexport const DshCredentialRefSchema = z\n .string()\n .regex(/^[A-Za-z_][A-Za-z0-9_]*$/u)\n .max(200)\n\nexport const DshCredentialViewSchema = z\n .object({ configured: z.boolean(), source: z.string().optional(), writable: z.boolean() })\n .strict()\n\nexport const DshSettingsChangedSseDataSchema = z\n .object({ namespace: NonEmptyStringSchema, revision: z.number().int().nonnegative() })\n .strict()\n\nexport const DshCredentialsChangedSseDataSchema = z.object({ ref: DshCredentialRefSchema }).strict()\n\nexport const DynamicChangedSseDataSchema = z.object({ agentId: AgentIdSchema }).strict()\n\nexport const HostSseStatusDataSchema = z\n .object({\n ok: z.boolean(),\n message: z.string(),\n replay: z.enum(['none', 'complete', 'expired']).optional(),\n })\n .strict()\n\nexport const DshPluginOperationSseDataSchema = z\n .object({\n operationId: z.string().uuid(),\n kind: z.enum(['inspect', 'install']),\n phase: z.enum(['download', 'dependencies', 'build-scripts', 'validation', 'publish']),\n status: z.enum(['running', 'done', 'failed']),\n message: z.string(),\n })\n .strict()\n\nexport const HostSseEventSchema = z.discriminatedUnion('event', [\n z.object({ event: z.literal('snapshot-changed'), data: z.object({ changed: z.literal(true) }).strict() }).strict(),\n z.object({ event: z.literal('channel-fact'), data: ChannelFactSseDataSchema }).strict(),\n z.object({ event: z.literal('connection-fact'), data: HostConnectionEventSchema }).strict(),\n z.object({ event: z.literal('runtime'), data: ChannelRuntimeSseDataSchema }).strict(),\n z.object({ event: z.literal('extensions-changed'), data: z.object({ changed: z.literal(true) }).strict() }).strict(),\n z.object({ event: z.literal('dsh-plugins-changed'), data: z.object({ changed: z.literal(true) }).strict() }).strict(),\n z.object({ event: z.literal('dsh-plugin-operation'), data: DshPluginOperationSseDataSchema }).strict(),\n z.object({ event: z.literal('dynamic-changed'), data: DynamicChangedSseDataSchema }).strict(),\n z.object({ event: z.literal('dsh-settings-changed'), data: DshSettingsChangedSseDataSchema }).strict(),\n z.object({ event: z.literal('dsh-credentials-changed'), data: DshCredentialsChangedSseDataSchema }).strict(),\n z.object({ event: z.literal('status'), data: HostSseStatusDataSchema }).strict(),\n z\n .object({ event: z.literal('attention-changed'), data: z.object({ revision: z.string().min(1) }).strict() })\n .strict(),\n z\n .object({\n event: z.literal('binding-change'),\n data: z\n .object({\n operationId: NonEmptyStringSchema,\n channelId: ChannelIdSchema,\n kind: z.enum(['bind', 'replace', 'clear']),\n step: NonEmptyStringSchema,\n status: z.enum(['running', 'skipped', 'done', 'failed']),\n message: z.string(),\n })\n .strict(),\n })\n .strict(),\n])\n\nexport type HostSseEvent = z.output<typeof HostSseEventSchema>\n\n/** Request content a model accepts; `image` enables native vision for agents using the model. */\nexport const LlmModelInputModalitiesSchema = z.array(z.enum(['text', 'image'])).min(1)\n\nexport const LlmProviderModelSchema = z\n .object({\n id: NonEmptyStringSchema,\n name: NonEmptyStringSchema,\n contextWindow: z.number().int().positive().optional(),\n maxTokens: z.number().int().positive().optional(),\n inputModalities: LlmModelInputModalitiesSchema.optional(),\n })\n .strict()\n\nexport const LlmDiscoveredModelSchema = z\n .object({\n id: NonEmptyStringSchema,\n name: NonEmptyStringSchema.optional(),\n contextWindow: z.number().int().positive().optional(),\n maxTokens: z.number().int().positive().optional(),\n inputModalities: LlmModelInputModalitiesSchema.optional(),\n })\n .strict()\n\nexport const LlmProviderCredentialSchema = z\n .object({ configured: z.boolean(), source: z.string().optional(), writable: z.boolean() })\n .strict()\n\n/**\n * The latest connection test that still describes the provider's saved address, protocol and API key. Tests made\n * before one of those changed are dropped. Never carries a key, request or response body.\n */\nexport const LlmProviderTestResultSchema = z\n .object({\n /** Epoch milliseconds when the test finished. */\n at: z.number().int().nonnegative(),\n ok: z.boolean(),\n /** Short failure reason shown to the user; absent when the test passed. */\n message: z.string().max(240).optional(),\n /** The model the test asked. */\n model: NonEmptyStringSchema.optional(),\n })\n .strict()\n\nexport const LlmProviderViewSchema = z\n .object({\n provider: NonEmptyStringSchema,\n displayName: z.string(),\n settingsNs: NonEmptyStringSchema,\n settingsPath: z.array(NonEmptyStringSchema),\n settingsRevision: z.number().int().nonnegative(),\n declared: z.boolean(),\n active: z.boolean(),\n configured: z.boolean(),\n baseURL: z.string().optional(),\n api: NonEmptyStringSchema.optional(),\n credential: LlmProviderCredentialSchema.optional(),\n models: z.array(LlmProviderModelSchema),\n /** The model list was edited on this host; built-in providers can restore their own catalog. */\n modelsCustomized: z.boolean(),\n /** The provider's adapter can list the models its endpoint offers. */\n discoverable: z.boolean(),\n /** `null` when the current configuration was never tested; absent from hosts that do not record tests. */\n lastTest: LlmProviderTestResultSchema.nullable().optional(),\n })\n .strict()\n\nexport const LlmProviderSettingsSchema = z\n .object({\n writable: z.boolean(),\n protocols: z.array(NonEmptyStringSchema),\n providers: z.array(LlmProviderViewSchema),\n })\n .strict()\n\nexport const ConnectionTestResultSchema = z.discriminatedUnion('status', [\n z\n .object({\n status: z.literal('received'),\n channelId: ChannelIdSchema,\n platformMessageId: NonEmptyStringSchema,\n })\n .strict(),\n z\n .object({\n status: z.literal('sent'),\n channelId: ChannelIdSchema,\n platformMessageId: NonEmptyStringSchema.optional(),\n })\n .strict(),\n z\n .object({\n status: z.enum(['waiting-for-message', 'needs-channel', 'needs-target', 'not-connected']),\n message: z.string(),\n })\n .strict(),\n z\n .object({\n status: z.literal('failed'),\n kind: NonEmptyStringSchema,\n message: z.string(),\n retryAfterMs: z.number().int().nonnegative().optional(),\n })\n .strict(),\n])\n\ntype HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'\ntype AnySchema = z.ZodType\n\nexport interface HostApiContract<\n Method extends HttpMethod = HttpMethod,\n Params extends AnySchema = AnySchema,\n Request extends AnySchema = AnySchema,\n Response extends AnySchema = AnySchema,\n ErrorSchema extends AnySchema = AnySchema,\n> {\n readonly method: Method\n readonly timeoutMs?: number\n readonly responseFormat?: 'json' | 'bytes'\n readonly invalidatesSnapshot?: boolean\n encodeRequest?(input: z.output<Request>): {\n readonly body: string | Uint8Array\n readonly headers: Readonly<Record<string, string>>\n }\n readonly path: string\n readonly params: Params\n readonly request: Request\n readonly response: Response\n readonly error: ErrorSchema\n readonly parseParams: (input: unknown) => z.output<Params>\n readonly parseRequest: (input: unknown) => z.output<Request>\n readonly parseResponse: (input: unknown) => z.output<Response>\n readonly parseError: (input: unknown) => z.output<ErrorSchema>\n}\n\n/** 扩展包导入检查的结果:本地文件与社区下载共用同一确认步骤。 */\nexport const ExtensionImportInspectionSchema = z\n .object({\n token: NonEmptyStringSchema,\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n slug: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n provides: z.array(ExtensionProvideSchema),\n idempotent: z.boolean(),\n slugConflict: z.boolean(),\n })\n .strict()\n\nconst defineContract = <\n const Method extends HttpMethod,\n Params extends AnySchema,\n Request extends AnySchema,\n Response extends AnySchema,\n>(\n contract: Omit<\n HostApiContract<Method, Params, Request, Response, typeof HostApiErrorSchema>,\n 'parseParams' | 'parseRequest' | 'parseResponse' | 'parseError'\n >,\n): HostApiContract<Method, Params, Request, Response, typeof HostApiErrorSchema> => ({\n ...contract,\n parseParams: (input) => contract.params.parse(input),\n parseRequest: (input) => contract.request.parse(input),\n parseResponse: (input) => contract.response.parse(input),\n parseError: (input) => contract.error.parse(input),\n})\n\nconst agentParam = z.object({ agentId: AgentIdSchema }).strict()\nconst agentRevisionParam = z.object({ agentId: AgentIdSchema, revisionId: AgentRevisionIdSchema }).strict()\n\nexport const AgentRevisionChangedFieldSchema = z.enum([\n 'name',\n 'persona',\n 'model',\n 'capabilities',\n 'imagePolicy',\n 'approvalPolicy',\n])\n\nexport const AgentRevisionHistorySchema = z\n .object({\n agentId: AgentIdSchema,\n currentRevisionId: AgentRevisionIdSchema,\n /** Newest first. `changedFields` compares each Revision with the one numbered just before it. */\n revisions: z.array(\n z\n .object({\n id: AgentRevisionIdSchema,\n revision: z.number().int().positive(),\n createdAt: z.number().int().nonnegative(),\n displayName: z.string(),\n model: z.object({ provider: z.string(), model: z.string() }).strict(),\n changedFields: z.array(AgentRevisionChangedFieldSchema),\n current: z.boolean(),\n })\n .strict(),\n ),\n })\n .strict()\nexport type AgentRevisionHistory = z.output<typeof AgentRevisionHistorySchema>\nconst channelParam = z.object({ channelId: ChannelIdSchema }).strict()\nconst connectionParam = z.object({ connectionId: ConnectionIdSchema }).strict()\nconst agentExtensionParam = z.object({ agentId: AgentIdSchema, extensionId: ExtensionIdSchema }).strict()\n\nconst PermissionApprovalSchema = z.object({ permissionDigest: z.string().regex(/^[a-f0-9]{64}$/u) }).strict()\n\n/** One version of one line in the lineage view of an extension family. */\nexport const ExtensionLineageNodeSchema = z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n extensionId: ExtensionIdSchema,\n label: z.string(),\n parentRevisionId: ExtensionRevisionIdSchema.optional(),\n origin: z.enum(['authored', 'file', 'community', 'branch']),\n createdAt: z.number().int().nonnegative(),\n current: z.boolean(),\n releaseNumbers: z.array(z.number().int().positive()),\n })\n .strict()\n\n/** Every line of the family an extension belongs to: the original and every branch of a branch on this machine. */\nexport const ExtensionLineageSchema = z\n .object({\n lines: z.array(\n z\n .object({\n extensionId: ExtensionIdSchema,\n displayName: z.string(),\n branchOf: z\n .object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema })\n .strict()\n .optional(),\n nodes: z.array(ExtensionLineageNodeSchema),\n })\n .strict(),\n ),\n })\n .strict()\n\nconst DataChangeCountSchema = z\n .object({\n added: z.number().int().nonnegative(),\n overwritten: z.number().int().nonnegative(),\n removed: z.number().int().nonnegative(),\n unchanged: z.number().int().nonnegative(),\n })\n .strict()\n\n/** Where a data migration takes data from. */\nexport const ExtensionDataSourceSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('extension'), extensionId: ExtensionIdSchema }).strict(),\n z.object({ kind: z.literal('snapshot'), snapshotId: z.string().min(1).max(80) }).strict(),\n z.object({ kind: z.literal('package'), token: z.string().min(1).max(80) }).strict(),\n])\n\nexport const ExtensionDataMigrationInputSchema = z\n .object({\n source: ExtensionDataSourceSchema,\n mode: z.enum(['overwrite', 'replace']),\n /** Storage of a source agent goes to the mapped agent here; unmapped agents are skipped. */\n agentMap: z.record(z.string(), AgentIdSchema).optional(),\n /** Also move the host and agent configuration (never credentials) the same way. */\n includeConfig: z.boolean().optional(),\n })\n .strict()\n\nexport const ExtensionDataPreviewSchema = z\n .object({\n diff: z\n .object({ storage: DataChangeCountSchema, index: DataChangeCountSchema, library: DataChangeCountSchema })\n .strict(),\n destructive: z.boolean(),\n sourceDataVersion: z.number().int().positive(),\n targetDataVersion: z.number().int().positive(),\n needsMigration: z.boolean(),\n /** Configuration fields that would change, when configuration moves too. */\n config: z\n .object({\n hostFields: z.array(z.string()),\n agents: z.array(z.object({ agentId: AgentIdSchema, fields: z.array(z.string()) }).strict()),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const ExtensionDataStateSchema = z\n .object({\n dataVersion: z.number().int().positive(),\n counts: z\n .object({\n storage: z.number().int().nonnegative(),\n index: z.number().int().nonnegative(),\n library: z.number().int().nonnegative(),\n })\n .strict(),\n snapshots: z.array(\n z\n .object({\n id: z.string(),\n reason: z.enum(['switch', 'migration', 'manual']),\n label: z.string(),\n dataVersion: z.number().int().positive(),\n byteSize: z.number().int().nonnegative(),\n createdAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport const ExtensionDataPackageInspectionSchema = z\n .object({\n token: z.string(),\n extensionId: z.string(),\n displayName: z.string(),\n dataVersion: z.number().int().positive(),\n exportedAt: z.number().int().nonnegative(),\n agents: z.array(z.object({ id: z.string(), name: z.string() }).strict()),\n counts: z\n .object({\n storage: z.number().int().nonnegative(),\n index: z.number().int().nonnegative(),\n library: z.number().int().nonnegative(),\n })\n .strict(),\n })\n .strict()\n\nexport const AdministratorSchema = z\n .object({\n connectionId: ConnectionIdSchema,\n connectionName: z.string(),\n platformUserId: z.string(),\n identityId: PlatformIdentityIdSchema.optional(),\n displayName: z.string(),\n addedVia: z.enum(['console', 'claim']),\n addedAt: z.number().int().nonnegative(),\n })\n .strict()\n\nconst extensionParam = z.object({ extensionId: ExtensionIdSchema }).strict()\nconst dshPluginPackageParam = z.object({ packageId: DshPluginPackageIdSchema }).strict()\nconst dshPluginEntryParam = z.object({ entryId: DshPluginEntryIdSchema }).strict()\nconst extensionRevisionParam = z\n .object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema })\n .strict()\nconst dshSettingsParam = z.object({ namespace: NonEmptyStringSchema }).strict()\nconst dshCredentialParam = z.object({ ref: DshCredentialRefSchema }).strict()\nconst llmProviderParam = z.object({ provider: NonEmptyStringSchema }).strict()\nconst authoringTaskParam = z.object({ taskId: AuthoringTaskIdSchema }).strict()\nconst subConversationParam = z.object({ conversationId: SubConversationIdSchema }).strict()\nconst scheduledTaskParam = z.object({ taskId: ScheduledTaskIdSchema }).strict()\nconst authoringAttemptParam = z.object({ taskId: AuthoringTaskIdSchema, attemptId: AuthoringAttemptIdSchema }).strict()\n\nconst DshPluginInstallInspectionSchema = z\n .object({\n token: NonEmptyStringSchema,\n operationId: z.string().uuid().optional(),\n packageName: NonEmptyStringSchema,\n packageVersion: NonEmptyStringSchema,\n packageDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n lockfileDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n blockedBuilds: z.array(NonEmptyStringSchema),\n clientUiDetected: z.boolean(),\n hostUi: DshNxtHostUiSchema.optional(),\n entries: z.array(\n z\n .object({\n entryKey: NonEmptyStringSchema,\n moduleName: NonEmptyStringSchema,\n suggestedScope: z.enum(['host', 'agent']),\n })\n .strict(),\n ),\n })\n .strict()\n\nconst BinaryUploadRequestSchema = z\n .object({\n bytes: z.instanceof(Uint8Array),\n fileName: z.string().max(255).optional(),\n operationId: z.string().uuid().optional(),\n })\n .strict()\nconst encodeBinaryUpload = (input: z.output<typeof BinaryUploadRequestSchema>) => ({\n body: input.bytes,\n headers: {\n 'content-type': 'application/octet-stream',\n ...(input.fileName === undefined ? {} : { 'x-file-name': input.fileName }),\n ...(input.operationId === undefined ? {} : { 'x-operation-id': input.operationId }),\n },\n})\n\nexport const HostApiContracts = {\n listCommands: defineContract({\n method: 'GET',\n path: '/api/commands',\n params: z.object({ channelId: ChannelIdSchema.optional() }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n commands: z.array(CommandCatalogEntrySchema),\n problems: z.array(z.string()),\n /** Host-wide behavior: whether platform members without a grant are told so. */\n settings: z.object({ unauthorizedFeedback: z.boolean() }).strict(),\n /** Present when a channel was requested. */\n channel: z\n .object({\n kind: z.enum(['internal', 'direct', 'group']),\n /** The channel is an external group where commands must address the account. */\n requiresMention: z.boolean(),\n bareCommands: z.boolean(),\n })\n .strict()\n .optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n executeCommand: defineContract({\n method: 'POST',\n path: '/api/commands/execute',\n params: EmptyParamsSchema,\n request: z\n .object({ channelId: ChannelIdSchema, text: z.string().min(1).max(16000), requestId: z.string().min(1).max(200) })\n .strict(),\n response: CommandExecutionRecordSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n getCommandExecution: defineContract({\n method: 'GET',\n path: '/api/commands/executions/:executionId',\n params: z.object({ executionId: z.string().min(1) }).strict(),\n request: NoRequestBodySchema,\n response: CommandExecutionRecordSchema,\n error: HostApiErrorSchema,\n }),\n setCommandPolicy: defineContract({\n method: 'PUT',\n path: '/api/commands/policy',\n params: EmptyParamsSchema,\n request: z\n .object({\n scope: z.union([z.literal('global'), ChannelIdSchema]),\n name: z.string().min(1),\n policy: CommandPolicySchema,\n })\n .strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n listCommandMembers: defineContract({\n method: 'GET',\n path: '/api/commands/members/:channelId',\n params: z.object({ channelId: ChannelIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n members: z.array(\n z\n .object({\n identityId: PlatformIdentityIdSchema,\n displayName: z.string(),\n platformUserId: z.string(),\n authorized: z.boolean(),\n })\n .strict(),\n ),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n setCommandSettings: defineContract({\n method: 'PUT',\n path: '/api/commands/settings',\n params: EmptyParamsSchema,\n request: z.object({ unauthorizedFeedback: z.boolean() }).strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n setCommandChannelSettings: defineContract({\n method: 'PUT',\n path: '/api/commands/channel-settings',\n params: EmptyParamsSchema,\n request: z.object({ channelId: ChannelIdSchema, bareCommands: z.boolean() }).strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n setCommandGrant: defineContract({\n method: 'PUT',\n path: '/api/commands/grants',\n params: EmptyParamsSchema,\n request: z\n .object({ channelId: ChannelIdSchema, identityId: PlatformIdentityIdSchema, enabled: z.boolean() })\n .strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n queryLogs: defineContract({\n method: 'GET',\n path: '/api/logs',\n params: z.object({ query: z.string().max(32_768).optional() }).strict(),\n request: NoRequestBodySchema,\n response: hostLogPageSchema,\n error: HostApiErrorSchema,\n }),\n getLog: defineContract({\n method: 'GET',\n path: '/api/logs/:id',\n params: z.object({ id: z.string().min(1).max(256) }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ entry: hostLogEntrySchema }).strict(),\n error: HostApiErrorSchema,\n }),\n logSources: defineContract({\n method: 'GET',\n path: '/api/logs/sources',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ sources: z.array(hostLogSourceSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n logStatus: defineContract({\n method: 'GET',\n path: '/api/logs/status',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: hostLogStatusSchema,\n error: HostApiErrorSchema,\n }),\n logSettings: defineContract({\n method: 'GET',\n path: '/api/logs/settings',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: hostLogSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateLogSettings: defineContract({\n method: 'PUT',\n path: '/api/logs/settings',\n params: EmptyParamsSchema,\n request: hostLogSettingsSchema,\n response: hostLogSettingsSchema,\n error: HostApiErrorSchema,\n }),\n startLogDebug: defineContract({\n method: 'POST',\n path: '/api/logs/debug',\n params: EmptyParamsSchema,\n request: hostLogDebugRequestSchema,\n response: z.object({ lease: hostLogDebugLeaseSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n stopLogDebug: defineContract({\n method: 'DELETE',\n path: '/api/logs/debug/:id',\n params: z.object({ id: z.string().min(1).max(256) }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ stopped: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n retryRuntimeCompatibility: defineContract({\n method: 'POST',\n path: '/api/runtime/compatibility/retry',\n params: EmptyParamsSchema,\n request: z\n .object({ objectKind: RuntimeCompatibilityDiagnosticSchema.shape.objectKind, objectId: z.string().min(1) })\n .strict(),\n response: z.object({ diagnostics: z.array(RuntimeCompatibilityDiagnosticSchema) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n snapshot: defineContract({\n method: 'GET',\n path: '/api/snapshot',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: HostSnapshotSchema,\n error: HostApiErrorSchema,\n }),\n getAuthoringTask: defineContract({\n method: 'GET',\n path: '/api/authoring/tasks/:taskId',\n params: authoringTaskParam,\n request: NoRequestBodySchema,\n response: z\n .object({\n task: AuthoringTaskSummarySchema,\n attempts: z.array(AuthoringAttemptSummarySchema),\n /** Secret fields of the latest candidate and which have a test value for this task's dynamic runs. */\n testSecrets: z\n .object({\n fields: z.array(z.object({ key: z.string(), title: z.string() }).strict()),\n configured: z.array(z.string()),\n })\n .strict()\n .optional(),\n events: z.array(\n z\n .object({\n sequence: z.number().int().positive(),\n kind: z.string(),\n attemptId: AuthoringAttemptIdSchema.optional(),\n payload: JsonValueSchema,\n createdAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n decideAuthoringAttempt: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/attempts/:attemptId/decision',\n params: authoringAttemptParam,\n request: z\n .object({ expectedRevision: z.number().int().positive(), approved: z.boolean(), approveRiskStable: z.boolean() })\n .strict(),\n response: z\n .object({ accepted: z.boolean(), taskRevision: z.number().int().positive(), executionRequired: z.boolean() })\n .strict(),\n error: HostApiErrorSchema,\n }),\n restoreAuthoringAttempt: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/attempts/:attemptId/restore',\n params: authoringAttemptParam,\n request: z.object({ expectedRevision: z.number().int().positive() }).strict(),\n response: AuthoringTaskSummarySchema,\n error: HostApiErrorSchema,\n }),\n stopAuthoringTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/stop',\n params: authoringTaskParam,\n request: z.object({ expectedRevision: z.number().int().positive() }).strict(),\n response: AuthoringTaskSummarySchema,\n error: HostApiErrorSchema,\n }),\n setAuthoringTestSecrets: defineContract({\n method: 'PUT',\n path: '/api/authoring/tasks/:taskId/test-secrets',\n params: authoringTaskParam,\n request: z.object({ secrets: z.record(z.string(), z.string().max(8192)) }).strict(),\n response: z.object({ configured: z.array(z.string()) }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteAuthoringTask: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/authoring/tasks/:taskId',\n params: authoringTaskParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n pauseScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/scheduled-tasks/:taskId/pause',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n response: ScheduledTaskSchema,\n error: HostApiErrorSchema,\n }),\n resumeScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/scheduled-tasks/:taskId/resume',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n response: ScheduledTaskSchema,\n error: HostApiErrorSchema,\n }),\n runScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/scheduled-tasks/:taskId/run',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n /** `woke: false` when the owning extension's due-job handler let this run pass without waking the agent. */\n response: z.object({ task: ScheduledTaskSchema, woke: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/scheduled-tasks/:taskId',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n listClientNotifications: defineContract({\n method: 'GET',\n path: '/api/client-notifications',\n params: z.object({ cursor: z.number().int().nonnegative().optional() }).strict(),\n request: NoRequestBodySchema,\n response: ClientNotificationFeedResponseSchema,\n error: HostApiErrorSchema,\n }),\n updateNotificationSettings: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/notifications',\n params: EmptyParamsSchema,\n request: UpdateNotificationSettingsRequestSchema,\n response: NotificationSettingsViewSchema,\n error: HostApiErrorSchema,\n }),\n testBarkNotification: defineContract({\n method: 'POST',\n path: '/api/settings/notifications/test',\n params: EmptyParamsSchema,\n request: TestBarkNotificationRequestSchema,\n response: z.object({ sent: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n testSystemNotification: defineContract({\n method: 'POST',\n path: '/api/settings/notifications/test-system',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ published: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n listPlatformUsers: defineContract({\n method: 'GET',\n path: '/api/platform-users',\n params: z\n .object({\n query: z.string().trim().max(80).optional(),\n adapterKey: z.string().trim().min(1).max(120).optional(),\n connectionId: ConnectionIdSchema.optional(),\n cursor: PlatformIdentityIdSchema.optional(),\n limit: z.number().int().min(1).max(100).default(50),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: PlatformUserListResponseSchema,\n error: HostApiErrorSchema,\n }),\n listConnectionEvents: defineContract({\n method: 'GET',\n path: '/api/connections/:connectionId/events',\n params: z\n .object({\n connectionId: ConnectionIdSchema,\n beforeReceivedAt: z.number().int().safe().nonnegative().optional(),\n beforeId: ConnectionEventIdSchema.optional(),\n limit: z.number().int().min(1).max(100).default(50),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: z.object({ events: z.array(HostConnectionEventSchema), hasMore: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n createAgent: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents',\n params: EmptyParamsSchema,\n request: CreateAgentRequestSchema,\n response: z\n .object({ agentId: AgentIdSchema, channelId: ChannelIdSchema, connectionId: ConnectionIdSchema })\n .strict(),\n error: HostApiErrorSchema,\n }),\n reviseAgent: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/revision',\n params: agentParam,\n request: ReviseAgentRequestSchema,\n response: z.object({ currentRevisionId: AgentRevisionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n updateAgentCapabilities: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/capabilities',\n params: agentParam,\n request: UpdateAgentCapabilitiesRequestSchema,\n response: z.object({ currentRevisionId: AgentRevisionIdSchema, capabilities: AgentCapabilitiesSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteAgent: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/agents/:agentId',\n params: agentParam,\n request: z\n .object({\n expectedCurrentRevisionId: AgentRevisionIdSchema,\n confirmationName: z.string().min(1).max(80),\n deleteAutoCreatedBuiltInChannels: z.boolean().default(true),\n /** Also remove `workspaces/<agentId>/` (files, development shell output, creation candidates). */\n deleteWorkspace: z.boolean().default(false),\n })\n .strict(),\n response: z\n .object({\n agentId: AgentIdSchema,\n deleted: z.literal(true),\n unboundChannelIds: z.array(ChannelIdSchema),\n deletedChannelIds: z.array(ChannelIdSchema),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n createInternalChannel: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/channels',\n params: EmptyParamsSchema,\n request: z.object({ displayName: z.string().trim().min(1).max(120) }).strict(),\n response: z.object({ channelId: ChannelIdSchema, connectionId: ConnectionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteChannel: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/channels/:channelId',\n params: channelParam,\n request: z.object({ expectedBoundAgentId: AgentIdSchema.nullable() }).strict(),\n response: z.object({ channelId: ChannelIdSchema, deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n createBinding: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/bindings',\n params: EmptyParamsSchema,\n request: z\n .object({\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema,\n triggerPolicy: TriggerPolicySchema,\n processingFeedback: z.enum(['auto', 'off']).optional(),\n /** Messages from another local agent's account: `observe` keeps them as context unless they @ this agent. */\n localAgentMessages: z.enum(['observe', 'trigger']).optional(),\n activityTriggerOverrides: ActivityTriggerOverridesSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n channelId: ChannelIdSchema,\n agentId: AgentIdSchema,\n triggerPolicy: TriggerPolicySchema,\n paused: z.boolean().default(false),\n processingFeedback: z.enum(['auto', 'off']).default('auto'),\n localAgentMessages: z.enum(['observe', 'trigger']).optional(),\n activityTriggerOverrides: ActivityTriggerOverridesSchema.default({}),\n boundAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n clearBinding: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/bindings/:channelId',\n params: channelParam,\n request: NoRequestBodySchema,\n response: z.object({ channelId: ChannelIdSchema, cleared: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n putWorkTreeOrder: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/work-tree-order',\n params: EmptyParamsSchema,\n request: WorkTreeOrderSchema,\n response: WorkTreeOrderSchema,\n error: HostApiErrorSchema,\n }),\n listChannelMessages: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/messages',\n params: z\n .object({\n channelId: ChannelIdSchema,\n limit: z.number().int().min(1).max(100),\n beforeOccurredAt: z.number().int().safe().nonnegative().optional(),\n beforeSourceId: NonEmptyStringSchema.optional(),\n })\n .strict()\n .refine(\n (value) => (value.beforeOccurredAt === undefined) === (value.beforeSourceId === undefined),\n '频道历史游标必须完整提供。',\n ),\n request: NoRequestBodySchema,\n response: z\n .object({ messages: z.array(HostSnapshotMessageSchema), hasMore: z.boolean(), cursor: HostSyncCursorSchema })\n .strict(),\n error: HostApiErrorSchema,\n }),\n sendChannelMessage: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/messages',\n params: channelParam,\n request: SendChannelMessageRequestSchema,\n response: z\n .object({\n inserted: z.boolean(),\n channelEventId: ChannelEventIdSchema.optional(),\n outboundIntentId: OutboundIntentIdSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n uploadChannelAsset: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/assets',\n params: channelParam,\n request: BinaryUploadRequestSchema,\n encodeRequest: (input) => ({\n body: input.bytes,\n headers: {\n 'content-type': 'application/octet-stream',\n 'x-file-name': encodeURIComponent(input.fileName ?? '附件'),\n },\n }),\n response: z\n .object({\n assetId: AssetIdSchema,\n mediaType: z.string().min(1),\n byteSize: z.number().int().nonnegative(),\n fileName: z.string().min(1).max(255),\n partType: z.enum(['image', 'file']),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n deleteChannelAsset: defineContract({\n method: 'DELETE',\n path: '/api/channels/:channelId/assets/:assetId',\n params: z.object({ channelId: ChannelIdSchema, assetId: AssetIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ assetId: AssetIdSchema, revoked: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n renameChannel: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/channels/:channelId/display-name',\n params: channelParam,\n /** Empty selects the known platform name for an external channel. */\n request: z.object({ displayName: z.string().trim().max(120) }).strict(),\n response: z.object({ channelId: ChannelIdSchema, displayName: z.string().trim().min(1).max(120) }).strict(),\n error: HostApiErrorSchema,\n }),\n getChannelRuntime: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelRuntimeProjectionSchema.extend({ cursor: HostSyncCursorSchema }),\n error: HostApiErrorSchema,\n }),\n getChannelToolCall: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime/tools/:callId',\n params: z.object({ channelId: ChannelIdSchema, callId: z.string().trim().min(1).max(200) }).strict(),\n request: NoRequestBodySchema,\n // The full arguments and result of one tool call in the live session; the runtime projection only carries previews.\n // `available: false` when the session has left memory: the step keeps its preview, which is not an error.\n response: z\n .object({\n callId: z.string(),\n available: z.boolean(),\n name: z.string().optional(),\n input: z.string().optional(),\n result: z.string().optional(),\n inputTruncated: z.boolean(),\n resultTruncated: z.boolean(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getChannelRuntimeContext: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime/context',\n params: channelParam,\n request: NoRequestBodySchema,\n // What the live session sends the model: route, rendered instructions and tool schemas. Read on demand; the runtime\n // projection pushed over SSE never carries it. `available: false` when no session of the channel is in memory.\n response: ChannelRuntimeContextSchema,\n error: HostApiErrorSchema,\n }),\n listSubConversations: defineContract({\n method: 'GET',\n path: '/api/sub-conversations/channels/:channelId',\n params: channelParam,\n request: NoRequestBodySchema,\n response: z.object({ items: z.array(SubConversationSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n getSubConversationRuntime: defineContract({\n method: 'GET',\n path: '/api/sub-conversations/:conversationId/runtime',\n params: subConversationParam,\n request: NoRequestBodySchema,\n // Read from memory while it runs and from its stored log after it ended.\n response: z.object({ conversation: SubConversationSchema, runtime: ChannelRuntimeProjectionSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n closeSubConversation: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/sub-conversations/:conversationId/close',\n params: subConversationParam,\n request: z.object({}).strict(),\n response: SubConversationSchema,\n error: HostApiErrorSchema,\n }),\n deleteSubConversation: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/sub-conversations/:conversationId',\n params: subConversationParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n getSubConversationSettings: defineContract({\n method: 'GET',\n path: '/api/settings/sub-conversations',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: SubConversationSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateSubConversationSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/sub-conversations',\n params: EmptyParamsSchema,\n request: SubConversationSettingsSchema,\n response: SubConversationSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getChannelRuntimeInput: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime/inputs/:messageId',\n params: z.object({ channelId: ChannelIdSchema, messageId: z.string().trim().min(1).max(200) }).strict(),\n request: NoRequestBodySchema,\n // The full text of one input message as the model received it; the runtime projection only carries a preview.\n // `available: false` when the session has left memory.\n response: z\n .object({\n messageId: z.string(),\n available: z.boolean(),\n source: z.string().optional(),\n text: z.string().optional(),\n truncated: z.boolean(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getChannelPrompt: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/prompt',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelPromptViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelPrompt: defineContract({\n method: 'PUT',\n path: '/api/channels/:channelId/prompt',\n params: channelParam,\n request: z\n .object({\n kind: z.enum(['instructions', 'notes']),\n document: PromptDocumentV1Schema,\n /** Notes only; ignored for instructions. */\n locked: z.boolean(),\n /** The revision the edit started from; a newer stored revision rejects the save. */\n expectedRevision: z.number().int().nonnegative(),\n })\n .strict(),\n response: ChannelPromptViewSchema,\n error: HostApiErrorSchema,\n }),\n getProductUpdates: defineContract({\n method: 'GET',\n path: '/api/product/updates',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: ProductUpdateStatusSchema,\n error: HostApiErrorSchema,\n }),\n checkProductUpdates: defineContract({\n method: 'POST',\n path: '/api/product/updates/check',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: ProductUpdateStatusSchema,\n error: HostApiErrorSchema,\n }),\n updateProductUpdateSettings: defineContract({\n method: 'PUT',\n path: '/api/product/updates/settings',\n params: EmptyParamsSchema,\n request: z.object({ autoCheck: z.boolean() }).strict(),\n response: ProductUpdateStatusSchema,\n error: HostApiErrorSchema,\n }),\n getMessagePacingSettings: defineContract({\n method: 'GET',\n path: '/api/settings/message-pacing',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: MessagePacingSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateMessagePacingSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/message-pacing',\n params: EmptyParamsSchema,\n request: MessagePacingSettingsSchema,\n response: MessagePacingSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getUpgradeBackupSettings: defineContract({\n method: 'GET',\n path: '/api/settings/upgrade-backup',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: UpgradeBackupSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateUpgradeBackupSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/upgrade-backup',\n params: EmptyParamsSchema,\n request: z\n .object({ mode: UpgradeBackupModeSchema, directory: z.string().trim().min(1).max(1024).optional() })\n .strict(),\n response: UpgradeBackupSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getRetrievalStatus: defineContract({\n method: 'GET',\n path: '/api/settings/retrieval',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: RetrievalStatusSchema,\n error: HostApiErrorSchema,\n }),\n updateRetrievalMode: defineContract({\n method: 'PUT',\n path: '/api/settings/retrieval',\n params: EmptyParamsSchema,\n request: z.object({ mode: RetrievalModeSchema }).strict(),\n response: RetrievalStatusSchema,\n error: HostApiErrorSchema,\n }),\n downloadRetrievalModel: defineContract({\n method: 'POST',\n path: '/api/settings/retrieval/model/download',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: RetrievalStatusSchema,\n error: HostApiErrorSchema,\n }),\n removeRetrievalModel: defineContract({\n method: 'DELETE',\n path: '/api/settings/retrieval/model',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: RetrievalStatusSchema,\n error: HostApiErrorSchema,\n }),\n downloadCodeRunNode: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/runtimes/code-run-node/download',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CodeRunAvailabilitySchema,\n error: HostApiErrorSchema,\n }),\n removeCodeRunNode: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/runtimes/code-run-node',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CodeRunAvailabilitySchema,\n error: HostApiErrorSchema,\n }),\n downloadGithubCli: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/runtimes/github-cli/download',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: GithubCliAvailabilitySchema,\n error: HostApiErrorSchema,\n }),\n removeGithubCli: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/runtimes/github-cli',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: GithubCliAvailabilitySchema,\n error: HostApiErrorSchema,\n }),\n downloadVerificationBrowser: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/runtimes/verification-browser/download',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: VerificationBrowserAvailabilitySchema,\n error: HostApiErrorSchema,\n }),\n removeVerificationBrowser: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/runtimes/verification-browser',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: VerificationBrowserAvailabilitySchema,\n error: HostApiErrorSchema,\n }),\n getCommandAccounts: defineContract({\n method: 'GET',\n path: '/api/settings/command-accounts',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommandAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n addCommandAccount: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/settings/command-accounts',\n params: EmptyParamsSchema,\n request: AddCommandAccountRequestSchema,\n response: CommandAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n replaceCommandAccountToken: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/command-accounts/:accountId',\n params: z.object({ accountId: NonEmptyStringSchema.max(64) }).strict(),\n request: AddCommandAccountRequestSchema,\n response: CommandAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n removeCommandAccount: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/settings/command-accounts/:accountId',\n params: z.object({ accountId: NonEmptyStringSchema.max(64) }).strict(),\n request: NoRequestBodySchema,\n response: CommandAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n getChannelMemberNotes: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/member-notes',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelMemberNotesViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelMemberNote: defineContract({\n method: 'PUT',\n path: '/api/channels/:channelId/member-notes/:memberId',\n params: z.object({ channelId: ChannelIdSchema, memberId: ChannelMemberIdSchema }).strict(),\n /** An empty text forgets the member. */\n request: z.object({ text: z.string().max(2000) }).strict(),\n response: ChannelMemberNotesViewSchema,\n error: HostApiErrorSchema,\n }),\n getChannelContextPolicy: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/context-policy',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelContextPolicyViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelContextPolicy: defineContract({\n method: 'PUT',\n path: '/api/channels/:channelId/context-policy',\n params: channelParam,\n /** `null` returns the channel to the defaults. */\n request: z.object({ policy: ChannelContextPolicySchema.nullable() }).strict(),\n response: ChannelContextPolicyViewSchema,\n error: HostApiErrorSchema,\n }),\n resetChannelContext: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/channels/:channelId/context-reset',\n params: channelParam,\n request: z\n .object({\n mode: z.enum(['clear', 'compact']),\n expectedEpisodeId: EpisodeIdSchema,\n })\n .strict(),\n response: z\n .object({\n mode: z.enum(['clear', 'compact']),\n closedEpisodeId: EpisodeIdSchema,\n nextEpisodeId: EpisodeIdSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n createConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections',\n params: EmptyParamsSchema,\n request: z\n .object({\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasInputSchema.optional(),\n configuration: z.record(z.string(), JsonValueSchema).default({}),\n credentials: z.record(z.string(), z.string().max(16 * 1024)).default({}),\n })\n .strict(),\n response: z.object({ connectionId: ConnectionIdSchema, adapterKey: NonEmptyStringSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n startConnectionLogin: defineContract({\n method: 'POST',\n path: '/api/connection-logins',\n params: EmptyParamsSchema,\n request: z\n .object({\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasInputSchema.optional(),\n connectionId: ConnectionIdSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n loginId: NonEmptyStringSchema,\n adapterKey: NonEmptyStringSchema,\n status: z.enum(['pending', 'scanned', 'confirmed', 'expired', 'failed', 'cancelled']),\n qrCodeUrl: NonEmptyStringSchema,\n message: z.string().optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getConnectionLogin: defineContract({\n method: 'GET',\n path: '/api/connection-logins/:loginId',\n params: z.object({ loginId: NonEmptyStringSchema }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n loginId: NonEmptyStringSchema,\n status: z.enum(['pending', 'scanned', 'confirmed', 'expired', 'failed', 'cancelled']),\n qrCodeUrl: NonEmptyStringSchema.optional(),\n connectionId: ConnectionIdSchema.optional(),\n adapterKey: NonEmptyStringSchema,\n message: z.string().optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n cancelConnectionLogin: defineContract({\n method: 'DELETE',\n path: '/api/connection-logins/:loginId',\n params: z.object({ loginId: NonEmptyStringSchema }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n loginId: NonEmptyStringSchema,\n status: z.literal('cancelled'),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n updateConnectionAlias: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/alias',\n params: connectionParam,\n request: z.object({ alias: z.string().trim().max(80) }).strict(),\n response: z\n .object({\n connectionId: ConnectionIdSchema,\n alias: ConnectionAliasOutputSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n updateConnectionActivityTriggerDefaults: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/activity-trigger-defaults',\n params: connectionParam,\n request: z.object({ activityKeys: z.array(AdapterActivityKeySchema) }).strict(),\n response: z.object({ connectionId: ConnectionIdSchema, activityKeys: z.array(AdapterActivityKeySchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateConnectionConfiguration: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/configuration',\n params: connectionParam,\n request: z\n .object({\n configuration: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])),\n /** Omitted keys keep their value; null explicitly clears an optional credential. */\n credentials: z.record(z.string().min(1), z.string().min(1).max(16_384).nullable()).optional(),\n })\n .strict(),\n response: z\n .object({\n connectionId: ConnectionIdSchema,\n configuration: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n deleteConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/connections/:connectionId',\n params: connectionParam,\n request: z.object({ deleteChannelData: z.boolean() }).strict(),\n response: z.object({ connectionId: ConnectionIdSchema, archived: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n restoreConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/restore',\n params: connectionParam,\n request: NoRequestBodySchema,\n response: z.object({ connectionId: ConnectionIdSchema, restored: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n dshPlugins: defineContract({\n method: 'GET',\n path: '/api/dsh/plugins',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ plugins: z.array(DshPluginCatalogEntrySchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectDshPluginTarball: defineContract({\n method: 'POST',\n timeoutMs: 300_000,\n path: '/api/dsh/plugin-installs/inspect-tarball',\n params: EmptyParamsSchema,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: DshPluginInstallInspectionSchema,\n error: HostApiErrorSchema,\n }),\n exportExtensionRevision: defineContract({\n method: 'GET',\n timeoutMs: 300_000,\n path: '/api/extensions/:extensionId/revisions/:revisionId/export',\n params: extensionRevisionParam,\n request: NoRequestBodySchema,\n responseFormat: 'bytes',\n response: z.instanceof(Uint8Array),\n error: HostApiErrorSchema,\n }),\n inspectDshPluginInstall: defineContract({\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/dsh/plugin-installs/inspect',\n params: EmptyParamsSchema,\n request: z.object({ spec: NonEmptyStringSchema.max(500), operationId: z.string().uuid().optional() }).strict(),\n response: DshPluginInstallInspectionSchema,\n error: HostApiErrorSchema,\n }),\n commitDshPluginInstall: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/dsh/plugin-installs',\n params: EmptyParamsSchema,\n request: z\n .object({\n token: NonEmptyStringSchema,\n approvedBuilds: z.array(NonEmptyStringSchema).default([]),\n operationId: z.string().uuid().optional(),\n })\n .strict(),\n response: z.object({ packageId: DshPluginPackageIdSchema, operationId: z.string().uuid().optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectDshPluginEntryConfig: defineContract({\n method: 'POST',\n path: '/api/dsh/plugin-entries/:entryId/config/inspect',\n params: dshPluginEntryParam,\n request: NoRequestBodySchema,\n response: z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('schema'), schema: JsonValueSchema }).strict(),\n z.object({ mode: z.literal('json') }).strict(),\n z.object({ mode: z.literal('incompatible'), reason: NonEmptyStringSchema }).strict(),\n ]),\n error: HostApiErrorSchema,\n }),\n activateDshPluginEntry: defineContract({\n method: 'PUT',\n path: '/api/dsh/plugin-entries/:entryId/activation',\n params: dshPluginEntryParam,\n request: z\n .object({\n target: z.enum(['host', 'agent']),\n agentId: AgentIdSchema.optional(),\n config: JsonValueSchema,\n permissionApproval: z\n .object({ permissionDigest: z.string().regex(/^[a-f0-9]{64}$/u) })\n .strict()\n .optional(),\n })\n .strict(),\n response: z.object({ targetKey: NonEmptyStringSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deactivateDshPluginEntry: defineContract({\n method: 'DELETE',\n path: '/api/dsh/plugin-entries/:entryId/activation',\n params: dshPluginEntryParam,\n request: z.object({ targetKey: NonEmptyStringSchema }).strict(),\n response: z.object({ disabled: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n removeDshPluginPackage: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/dsh/plugin-installs/:packageId',\n params: dshPluginPackageParam,\n request: NoRequestBodySchema,\n response: z.object({ removed: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectExtensionImport: defineContract({\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/imports/inspect',\n params: EmptyParamsSchema,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: ExtensionImportInspectionSchema,\n error: HostApiErrorSchema,\n }),\n /**\n * Management-edge endpoints: they exist only when the Server is reached through its management edge (a management\n * key is set); clients tell that from the edge's CSRF cookie.\n */\n listManagementDevices: defineContract({\n method: 'GET',\n path: '/api/management/devices',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ devices: z.array(ManagementDeviceViewSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n revokeManagementDevice: defineContract({\n method: 'DELETE',\n path: '/api/management/devices/:deviceId',\n params: z.object({ deviceId: ManagementDeviceIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ revoked: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n managementLogout: defineContract({\n method: 'DELETE',\n path: '/api/management/session',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ authenticated: z.literal(false) }).strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityStatus: defineContract({\n method: 'GET',\n path: '/api/community/status',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityStatusSchema,\n error: HostApiErrorSchema,\n }),\n getCommunityFeedbackSettings: defineContract({\n method: 'GET',\n path: '/api/community/feedback/settings',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityFeedbackSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateCommunityFeedbackSettings: defineContract({\n method: 'PUT',\n path: '/api/community/feedback/settings',\n params: EmptyParamsSchema,\n request: CommunityFeedbackSettingsUpdateSchema,\n response: CommunityFeedbackSettingsSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n listCommunityFeedback: defineContract({\n timeoutMs: 60_000,\n method: 'GET',\n path: '/api/community/feedback',\n params: z.object({ refresh: z.literal('1').optional() }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackLocalListSchema,\n error: HostApiErrorSchema,\n }),\n getCommunityFeedback: defineContract({\n timeoutMs: 60_000,\n method: 'GET',\n path: '/api/community/feedback/items/:ref',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n }),\n createCommunityFeedbackDraft: defineContract({\n method: 'POST',\n path: '/api/community/feedback/drafts',\n params: EmptyParamsSchema,\n request: CommunityFeedbackDraftInputSchema,\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n updateCommunityFeedbackDraft: defineContract({\n method: 'PUT',\n path: '/api/community/feedback/drafts/:draftId',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: CommunityFeedbackDraftUpdateSchema,\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n sendCommunityFeedbackDraft: defineContract({\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/community/feedback/drafts/:draftId/send',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: z.object({ consent: z.boolean().default(false) }).strict(),\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n discardCommunityFeedbackDraft: defineContract({\n method: 'DELETE',\n path: '/api/community/feedback/drafts/:draftId',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n previewCommunityFeedbackPayload: defineContract({\n method: 'GET',\n path: '/api/community/feedback/drafts/:draftId/preview',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackPayloadSchema,\n error: HostApiErrorSchema,\n }),\n getLastSentCommunityFeedbackPayload: defineContract({\n method: 'GET',\n path: '/api/community/feedback/last-sent',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityFeedbackLastPayloadSchema,\n error: HostApiErrorSchema,\n }),\n replyCommunityFeedback: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/messages',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: z.object({ body: z.string().trim().min(1).max(4000) }).strict(),\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n withdrawCommunityFeedback: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/withdraw',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: CommunityFeedbackWithdrawSchema,\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n reopenCommunityFeedback: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/reopen',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: CommunityFeedbackReopenSchema,\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n markCommunityFeedbackAffected: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/affected',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: z.object({ affected: z.boolean().default(true), consent: z.boolean().default(false) }).strict(),\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n confirmCommunityFeedbackFixed: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/confirm-fixed',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: z.object({}).strict(),\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n startCommunityLogin: defineContract({\n method: 'POST',\n path: '/api/community/login',\n params: EmptyParamsSchema,\n /** 浏览器当前访问本实例使用的来源;社区授权完成后回到 `<returnOrigin>/community/callback`。 */\n request: z.object({ returnOrigin: z.string().url().max(300) }).strict(),\n response: z.object({ authorizeUrl: z.string().url() }).strict(),\n error: HostApiErrorSchema,\n }),\n communityLogout: defineContract({\n method: 'DELETE',\n path: '/api/community/login',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityStatusSchema,\n error: HostApiErrorSchema,\n }),\n listCommunityExtensions: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/extensions',\n params: z\n .object({\n query: z.string().trim().max(80).optional(),\n provides: ExtensionProvideSchema.optional(),\n /** 只列社区后台认定的官方扩展。 */\n official: z.enum(['1']).optional(),\n /** 排序方式,默认最近更新;游标只在同一种排序下有效。 */\n sort: CommunityExtensionSortSchema.optional(),\n cursor: z.string().max(200).optional(),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: z.object({ items: z.array(CommunityExtensionSummarySchema), nextCursor: z.string().nullable() }).strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityExtension: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/extensions/:extensionId',\n params: z.object({ extensionId: ExtensionIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityExtensionDetailSchema,\n error: HostApiErrorSchema,\n }),\n /** 下载社区发布并按包摘要校验,结果与本地文件导入的检查相同,再经 `commitExtensionImport` 确认。 */\n getCommunityEndpoint: defineContract({\n method: 'GET',\n path: '/api/community/endpoint',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityEndpointSchema,\n error: HostApiErrorSchema,\n }),\n /** 修改社区地址;`url: null` 恢复为环境变量或默认地址。非加密的局域网地址需要确认风险。 */\n updateCommunityEndpoint: defineContract({\n method: 'PUT',\n path: '/api/community/endpoint',\n params: EmptyParamsSchema,\n request: z.object({ url: z.string().max(300).nullable(), acknowledgeInsecure: z.boolean() }).strict(),\n response: CommunityEndpointSchema,\n error: HostApiErrorSchema,\n }),\n testCommunityEndpoint: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/community/endpoint/test',\n params: EmptyParamsSchema,\n request: z.object({ url: z.string().max(300), acknowledgeInsecure: z.boolean() }).strict(),\n response: z\n .object({\n ok: z.boolean(),\n message: z.string(),\n name: z.string().optional(),\n environment: z.enum(['production', 'staging', 'development']).optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n listCommunitySync: defineContract({\n timeoutMs: 60_000,\n method: 'GET',\n path: '/api/community/sync',\n params: z.object({ refresh: z.enum(['1']).optional() }).strict(),\n request: NoRequestBodySchema,\n response: CommunitySyncSchema,\n error: HostApiErrorSchema,\n }),\n listCommunityMine: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/mine',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ items: z.array(CommunityMyExtensionSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityReleaseReview: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/releases/:releaseId/review',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityReviewReportSchema,\n error: HostApiErrorSchema,\n }),\n requestCommunityReview: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/community/releases/:releaseId/review',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n withdrawCommunityRelease: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/community/releases/:releaseId/withdraw',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n importCommunityRelease: defineContract({\n timeoutMs: 120_000,\n method: 'POST',\n path: '/api/community/releases/:releaseId/import',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: ExtensionImportInspectionSchema,\n error: HostApiErrorSchema,\n }),\n publishToCommunity: defineContract({\n timeoutMs: 120_000,\n method: 'POST',\n path: '/api/community/publish',\n params: EmptyParamsSchema,\n request: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n notes: z.string().max(2000),\n /** 作者填写的条目信息;省略的字段不改动社区上已有的内容。 */\n listing: CommunityListingInputSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n releaseId: CommunityReleaseIdSchema,\n releaseNumber: z.number().int().positive(),\n reviewStatus: CommunityReviewStatusSchema,\n pageUrl: z.string().url(),\n reportUrl: z.string().url(),\n findings: z.array(z.object({ severity: z.string(), title: z.string() }).strict()),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n listCommunityPersonas: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/personas',\n params: z\n .object({\n query: z.string().trim().min(1).max(200).optional(),\n tag: z.string().trim().min(1).max(40).optional(),\n official: z.literal('1').optional(),\n cursor: z.string().min(1).max(500).optional(),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: z.object({ items: z.array(CommunityPersonaSummarySchema), nextCursor: z.string().nullable() }).strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityPersona: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/personas/:personaId',\n params: z.object({ personaId: CommunityPersonaIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityPersonaDetailSchema,\n error: HostApiErrorSchema,\n }),\n /**\n * 把社区人设装进本机:新建一个智能体,或为现有智能体保存一次只换设定(及可选名称)的新配置。头像下载后作为\n * 智能体头像;下载失败不影响安装。`expectedRevisionId` 是用户看过的修订,社区已更新时拒绝,避免装入未看过的内容。\n */\n installCommunityPersona: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/community/personas/:personaId/install',\n params: z.object({ personaId: CommunityPersonaIdSchema }).strict(),\n request: z.discriminatedUnion('target', [\n z\n .object({\n target: z.literal('new'),\n expectedRevisionId: CommunityPersonaRevisionIdSchema,\n displayName: z.string().trim().min(1).max(80),\n model: AgentModelSchema,\n useAvatar: z.boolean(),\n })\n .strict(),\n z\n .object({\n target: z.literal('replace'),\n expectedRevisionId: CommunityPersonaRevisionIdSchema,\n agentId: AgentIdSchema,\n expectedCurrentRevisionId: AgentRevisionIdSchema,\n /** 同时改名;省略时保留原名称。 */\n displayName: z.string().trim().min(1).max(80).optional(),\n useAvatar: z.boolean(),\n })\n .strict(),\n ]),\n response: z\n .object({\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema.nullable(),\n currentRevisionId: AgentRevisionIdSchema,\n avatar: z.enum(['applied', 'none', 'failed']),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n listCommunityMyPersonas: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/mine/personas',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityMyPersonasSchema,\n error: HostApiErrorSchema,\n }),\n /** 把智能体的设定分享到社区;带 `personaId` 时更新自己已发布的人设(生成新修订并重新审查)。 */\n publishCommunityPersona: defineContract({\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/community/personas/publish',\n params: EmptyParamsSchema,\n request: z\n .object({\n agentId: AgentIdSchema,\n personaId: CommunityPersonaIdSchema.optional(),\n name: z.string().trim().min(1).max(80),\n summary: z.string().trim().min(1).max(200),\n description: z.string().max(20_000),\n tags: z.array(z.string().trim().min(1).max(40)).max(16),\n persona: z.string().trim().min(1).max(COMMUNITY_PERSONA_MAX_LENGTH),\n notes: z.string().max(2000).optional(),\n /** 页面缩放后的头像(Base64);省略时不上传头像,更新时保留社区上的原头像。 */\n avatar: z\n .object({\n mediaType: z.enum(COMMUNITY_PERSONA_AVATAR_TYPES),\n base64: z\n .string()\n .min(1)\n .max(Math.ceil((512 * 1024 * 4) / 3) + 4),\n })\n .strict()\n .optional(),\n })\n .strict(),\n response: CommunityMyPersonaSchema,\n error: HostApiErrorSchema,\n }),\n testMcpServer: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/mcp-servers/test',\n params: EmptyParamsSchema,\n request: z.object({ server: McpServerFormSchema }).strict(),\n response: z\n .object({\n ok: z.boolean(),\n message: z.string(),\n serverName: z.string().optional(),\n tools: z.array(z.object({ name: z.string(), description: z.string().optional() }).strict()),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n createMcpExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 120_000,\n method: 'POST',\n path: '/api/mcp-servers',\n params: EmptyParamsSchema,\n request: z\n .object({\n displayName: z.string().trim().min(1).max(80),\n description: z.string().trim().max(500).default(''),\n server: McpServerFormSchema,\n })\n .strict(),\n response: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n /** Credential config fields created for the form's secret rows, by row name. */\n secretFields: z.array(z.object({ key: z.string(), name: z.string() }).strict()),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n commitExtensionImport: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/imports/:token/commit',\n params: z.object({ token: NonEmptyStringSchema }).strict(),\n request: z.object({ localSlug: z.string().trim().min(3).max(64).optional() }).strict(),\n response: z\n .object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema, idempotent: z.boolean() })\n .strict(),\n error: HostApiErrorSchema,\n }),\n dshSettings: defineContract({\n method: 'GET',\n path: '/api/dsh/settings',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ namespaces: z.array(DshSettingsNamespaceSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n dshSettingsMutate: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/dsh/settings/:namespace/mutate',\n params: dshSettingsParam,\n request: DshSettingsMutationRequestSchema,\n response: DshSettingsNamespaceSchema,\n error: HostApiErrorSchema,\n }),\n dshCredentialsDescribe: defineContract({\n method: 'POST',\n path: '/api/dsh/credentials/describe',\n params: EmptyParamsSchema,\n request: z.object({ refs: z.array(DshCredentialRefSchema).max(64) }).strict(),\n response: z.object({ credentials: z.record(z.string(), DshCredentialViewSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n dshCredentialSet: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/dsh/credentials/:ref',\n params: dshCredentialParam,\n request: z\n .object({\n value: z\n .string()\n .min(1)\n .max(64 * 1024),\n })\n .strict(),\n response: DshCredentialViewSchema,\n error: HostApiErrorSchema,\n }),\n dshCredentialUnset: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/dsh/credentials/:ref',\n params: dshCredentialParam,\n request: NoRequestBodySchema,\n response: DshCredentialViewSchema,\n error: HostApiErrorSchema,\n }),\n llmProviders: defineContract({\n method: 'GET',\n path: '/api/llm/providers',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n llmDiscoverModels: defineContract({\n method: 'POST',\n path: '/api/llm/discover-models',\n params: EmptyParamsSchema,\n request: z\n .object({\n provider: NonEmptyStringSchema.optional(),\n settingsNs: NonEmptyStringSchema.optional(),\n baseURL: z.url().optional(),\n api: NonEmptyStringSchema.optional(),\n apiKey: z\n .string()\n .min(1)\n .max(64 * 1024)\n .optional(),\n })\n .strict(),\n response: z.object({ models: z.array(LlmDiscoveredModelSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n llmTestProvider: defineContract({\n method: 'POST',\n path: '/api/llm/test-provider',\n params: EmptyParamsSchema,\n request: z\n .object({\n provider: NonEmptyStringSchema,\n model: NonEmptyStringSchema,\n settingsNs: NonEmptyStringSchema.optional(),\n apiKey: z\n .string()\n .min(1)\n .max(64 * 1024)\n .optional(),\n baseURL: z.url().optional(),\n api: NonEmptyStringSchema.optional(),\n models: z.array(LlmDiscoveredModelSchema).optional(),\n })\n .strict(),\n response: z.object({ provider: NonEmptyStringSchema, model: NonEmptyStringSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n llmProviderRemovalImpact: defineContract({\n method: 'GET',\n path: '/api/llm/providers/:provider/removal-impact',\n params: llmProviderParam,\n request: NoRequestBodySchema,\n response: z\n .object({\n provider: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n declared: z.boolean(),\n expectedRevision: z.number().int().nonnegative(),\n models: z.array(NonEmptyStringSchema),\n blockedReason: z.string(),\n references: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n displayName: NonEmptyStringSchema,\n model: NonEmptyStringSchema,\n role: z.enum(['primary', 'vision']),\n scope: z.enum(['configuration', 'context']),\n channelId: ChannelIdSchema.optional(),\n channelName: z.string().optional(),\n episodeStatus: z.enum(['opening', 'active']).optional(),\n })\n .strict(),\n ),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n llmRemoveProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/llm/providers/:provider',\n params: llmProviderParam,\n request: z.object({ expectedRevision: z.number().int().nonnegative() }).strict(),\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n llmRestoreProviderModels: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/llm/providers/:provider/restore-models',\n params: llmProviderParam,\n request: z.object({ expectedRevision: z.number().int().nonnegative() }).strict(),\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n llmSaveProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/llm/providers/:provider',\n params: llmProviderParam,\n request: z\n .object({\n expectedRevision: z.number().int().nonnegative(),\n apiKey: z\n .string()\n .min(1)\n .max(64 * 1024)\n .optional(),\n displayName: z.string().trim().min(1).max(120).optional(),\n baseURL: z.url().optional(),\n api: NonEmptyStringSchema.optional(),\n models: z.array(LlmDiscoveredModelSchema).optional(),\n })\n .strict(),\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n testConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/test',\n params: connectionParam,\n request: z.object({ direction: z.enum(['send', 'receive']), channelId: ChannelIdSchema.optional() }).strict(),\n response: ConnectionTestResultSchema,\n error: HostApiErrorSchema,\n }),\n dynamicInventory: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/inventory',\n params: agentParam,\n request: z.object({ episodeId: EpisodeIdSchema }).strict(),\n response: z.object({ rows: z.array(DynamicInventoryRowSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicApprove: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/dynamic/:agentId/approve',\n params: agentParam,\n request: z\n .object({ episodeId: EpisodeIdSchema, requestId: DynamicIdSchema, pluginRunId: DynamicIdSchema.optional() })\n .strict(),\n response: z.object({ accepted: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicDecline: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/dynamic/:agentId/decline',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n requestId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema.optional(),\n /**\n * Why the run did not go ahead: the user declined it, or the page could not start one of its halves. A failed\n * half is settled as a failed attempt (its Host is retracted and the agent hears about it), not as a decline.\n */\n reason: z.enum(['rejected', 'host-half-failed', 'client-half-failed']).optional(),\n startedHere: z.boolean().optional(),\n message: z.string().max(4000).optional(),\n stack: z.string().max(16000).optional(),\n })\n .strict(),\n response: z.object({ accepted: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicInvoke: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/invoke',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n method: NonEmptyStringSchema,\n args: JsonValueSchema.optional(),\n })\n .strict(),\n response: z.discriminatedUnion('ok', [\n z.object({ ok: z.literal(true), value: JsonValueSchema }).strict(),\n z.object({ ok: z.literal(false), message: z.string() }).strict(),\n ]),\n error: HostApiErrorSchema,\n }),\n dynamicRunHostHalf: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/run-host-half',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n mode: z.enum(['run', 'update']),\n requestId: DynamicIdSchema.nullable().optional(),\n approveFutureVersions: z.boolean().default(false),\n })\n .strict(),\n response: z.discriminatedUnion('ok', [\n z\n .object({\n ok: z.literal(true),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n waitingFor: z.array(z.string()),\n startedHere: z.boolean(),\n })\n .strict(),\n DynamicErrorDetailsSchema.extend({ ok: z.literal(false) }),\n ]),\n error: HostApiErrorSchema,\n }),\n dynamicSettleUserRun: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/settle-user-run',\n params: agentParam,\n request: z\n .object({ episodeId: EpisodeIdSchema, pluginId: DynamicIdSchema, resolution: DynamicRunResolutionSchema })\n .strict(),\n response: DynamicRunResponseSchema,\n error: HostApiErrorSchema,\n }),\n dynamicGetClientCode: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/get-client-code',\n params: agentParam,\n request: z.object({ episodeId: EpisodeIdSchema, pluginId: DynamicIdSchema, pluginRunId: DynamicIdSchema }).strict(),\n response: z\n .object({\n code: z.string(),\n name: z.string(),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n /** What the candidate declared; preview data hooks enforce exactly what the saved Revision will. */\n permissions: HostUiPermissionDeclarationSchema.default({ permissions: [], networkOrigins: [] }),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n dynamicReportRenderFailure: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/report-render-failure',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n failure: DynamicRenderFailureSchema,\n })\n .strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicReportGuardFailure: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/report-guard-failure',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n message: z.string().min(1).max(4096),\n stack: z\n .string()\n .max(16 * 1024)\n .optional(),\n })\n .strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicReportClientVerification: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/report-client-verification',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n renderedPanels: z.array(PanelContributionSchema).max(16).default([]),\n renderedToolViews: z.array(z.string().trim().min(1).max(64)).max(32).default([]),\n renderedMessageRenderers: z.array(RichKindSchema).max(32).default([]),\n renderedPages: z.array(HostPageContributionSchema).max(8).default([]),\n usedUiComponents: z\n .array(HostUiKitComponentNameSchema)\n .max(HostUiKitComponentNameSchema.options.length)\n .default([]),\n pageGeometry: z.array(HostUiPageGeometryEvidenceSchema).max(8).default([]),\n navigationEntries: z.array(z.string().trim().min(1).max(64)).max(8).default([]),\n })\n .strict()\n .refine(\n (value) =>\n value.renderedPanels.length > 0 ||\n value.renderedToolViews.length > 0 ||\n value.renderedMessageRenderers.length > 0 ||\n value.renderedPages.length > 0,\n {\n message: '动态 Client 必须真实渲染至少一个面板、工具视图、富消息渲染器或页面。',\n },\n ),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n saveExtensionFromDynamic: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/save-from-dynamic',\n params: EmptyParamsSchema,\n request: z\n .object({\n taskId: AuthoringTaskIdSchema,\n /** The candidate the user saw; saving refuses when a newer one appeared since. */\n attemptId: AuthoringAttemptIdSchema,\n displayName: z.string().trim().min(1).max(80),\n slug: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$/u),\n description: z.string().max(500).default(''),\n targetExtensionId: ExtensionIdSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n activation: z.literal('inactive'),\n installation: z.literal('uninstalled').optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n extensionClientCall: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/call',\n params: extensionRevisionParam,\n /**\n * A panel's call to its extension's host instance. The Host checks the anchor (the agent has the extension\n * enabled; the channel or connection exists) and hands the extension the resolved caller.\n */\n request: z\n .object({\n /** Absent: the call comes from the extension itself, like a page call. */\n anchor: z.object({ kind: ExtensionPanelAnchorSchema, id: NonEmptyStringSchema }).strict().optional(),\n /** The agent the panel is shown for; must be the responding agent of an anchored channel. */\n agentId: AgentIdSchema.optional(),\n method: NonEmptyStringSchema,\n input: JsonValueSchema.optional(),\n })\n .strict(),\n response: z.object({ value: JsonValueSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n extensionClientDiagnostic: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/client-diagnostic',\n params: extensionRevisionParam,\n request: z\n .object({\n agentId: AgentIdSchema,\n status: z.enum(['loaded', 'failed']),\n message: z.string().max(4096).optional(),\n })\n .strict(),\n response: z.object({ accepted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n hostExtensionClientDiagnostic: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/host-client-diagnostic',\n params: extensionRevisionParam,\n request: z.object({ status: z.enum(['loaded', 'failed']), message: z.string().max(4096).optional() }).strict(),\n response: z.object({ accepted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n activateExtension: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/extensions/:extensionId/activation',\n params: agentExtensionParam,\n request: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n /** Approval of the agent-layer capabilities. */\n permissionApproval: PermissionApprovalSchema.optional(),\n /** Approval of the host layer when enabling also installs or switches the extension on this machine. */\n hostPermissionApproval: PermissionApprovalSchema.optional(),\n })\n .strict(),\n /**\n * The committed Activation, or — while the agent is still replying — `pending` with the accepted request; it then\n * takes effect at the agent's next safe gap and its progress appears in the snapshot's `activationTransitions`.\n */\n response: z\n .object({\n activation: z\n .object({\n agentId: AgentIdSchema,\n extensionId: ExtensionIdSchema,\n extensionRevisionId: ExtensionRevisionIdSchema,\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n activatedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n pending: ExtensionActivationTransitionSchema.optional(),\n })\n .strict()\n .refine((value) => (value.activation === undefined) !== (value.pending === undefined), '启用结果必须二选一。'),\n error: HostApiErrorSchema,\n }),\n deactivateExtension: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/agents/:agentId/extensions/:extensionId/activation',\n params: agentExtensionParam,\n request: NoRequestBodySchema,\n /** `pending` is present when the agent is still replying; the Activation is removed at its next safe gap. */\n response: z.object({ disabled: z.literal(true), pending: ExtensionActivationTransitionSchema.optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n updateExtensionActivationConfig: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/agents/:agentId/extensions/:extensionId/activation/config',\n params: agentExtensionParam,\n request: z\n .object({\n config: JsonValueSchema,\n /** Write-only credential drafts keyed by secret field; an absent or empty draft keeps the stored one. */\n secrets: z.record(z.string(), z.string().max(8192)).optional(),\n })\n .strict(),\n response: z.object({ config: JsonValueSchema, configuredSecrets: z.array(z.string()).optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n updateHostExtensionConfig: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'PUT',\n path: '/api/extensions/:extensionId/installation/config',\n params: extensionParam,\n request: z\n .object({\n config: JsonValueSchema,\n /** Write-only credential drafts keyed by secret field; an absent or empty draft keeps the stored one. */\n secrets: z.record(z.string(), z.string().max(8192)).optional(),\n })\n .strict(),\n response: z.object({ config: JsonValueSchema, configuredSecrets: z.array(z.string()).optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n installHostExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'PUT',\n path: '/api/extensions/:extensionId/installation',\n params: extensionParam,\n request: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n /** Approval of the host layer (browser permissions and `permissions.host`). */\n permissionApproval: PermissionApprovalSchema.optional(),\n /** Approval of expanded agent-layer capabilities for the agents that move to this Revision. */\n agentPermissionApproval: PermissionApprovalSchema.optional(),\n /** Data copy to put back first, when the target Revision only reads an older data version. */\n restoreDataSnapshotId: z.string().min(1).max(80).optional(),\n })\n .strict(),\n response: z\n .object({\n installation: z\n .object({\n extensionId: ExtensionIdSchema,\n extensionRevisionId: ExtensionRevisionIdSchema,\n installedAt: z.number().int().safe().nonnegative(),\n config: JsonValueSchema,\n })\n .strict(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n uninstallHostExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'DELETE',\n path: '/api/extensions/:extensionId/installation',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ uninstalled: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateHostUiPagePreferences: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/host-ui/page-preferences',\n params: EmptyParamsSchema,\n request: z\n .object({\n expectedRevision: z.number().int().nonnegative(),\n entries: z.array(z.object({ pageInstanceId: HostUiPageInstanceIdSchema, visible: z.boolean() }).strict()),\n })\n .strict(),\n response: z.object({ revision: z.number().int().positive() }).strict(),\n error: HostApiErrorSchema,\n }),\n callHostUiPage: defineContract({\n method: 'POST',\n path: '/api/host-ui/pages/:pageInstanceId/call',\n params: z.object({ pageInstanceId: HostUiPageInstanceIdSchema }).strict(),\n request: z.object({ method: NonEmptyStringSchema, input: JsonValueSchema.default({}) }).strict(),\n response: z.object({ value: JsonValueSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n reportHostUiPageDiagnostic: defineContract({\n method: 'POST',\n path: '/api/host-ui/pages/:pageInstanceId/diagnostic',\n params: z.object({ pageInstanceId: HostUiPageInstanceIdSchema }).strict(),\n request: z\n .object({\n status: z.enum(['ready', 'load-failed', 'navigation-failed', 'rpc-failed']),\n message: z.string().max(2000).optional(),\n })\n .strict(),\n response: z.object({ recorded: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n markChannelRead: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/read',\n params: channelParam,\n request: z\n .object({\n /** Defaults to the newest inbound fact visible now. */\n upTo: z\n .object({ occurredAt: z.number().int().safe().nonnegative(), sourceId: ChannelEventIdSchema })\n .strict()\n .optional(),\n })\n .strict(),\n response: z.object({ channelId: ChannelIdSchema, activity: ChannelActivitySummarySchema }).strict(),\n error: HostApiErrorSchema,\n }),\n listAttention: defineContract({\n method: 'GET',\n path: '/api/attention',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: AttentionListSchema,\n error: HostApiErrorSchema,\n }),\n dismissAttention: defineContract({\n method: 'POST',\n path: '/api/attention/:attentionId/dismiss',\n params: z.object({ attentionId: z.string().min(1).max(200) }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ dismissed: z.literal(true), revision: z.string().min(1) }).strict(),\n error: HostApiErrorSchema,\n }),\n getChannelPending: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/pending',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelPendingContextSchema,\n error: HostApiErrorSchema,\n }),\n stopChannelTask: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/stop',\n params: channelParam,\n request: z.object({ expectedEpisodeId: EpisodeIdSchema.optional() }).strict(),\n response: z\n .object({\n result: z.enum(['stopped', 'idle']),\n episodeId: EpisodeIdSchema.optional(),\n /** Admitted messages that were not yet consumed and remain queued for the next turn. */\n retainedPending: z.number().int().nonnegative(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n setChannelPaused: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/pause',\n params: channelParam,\n request: z.object({ paused: z.boolean() }).strict(),\n response: z.object({ paused: z.boolean(), changed: z.boolean(), stopped: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n resolveOutbound: defineContract({\n method: 'POST',\n path: '/api/outbound/:outboundId/resolve',\n params: z.object({ outboundId: OutboundIntentIdSchema }).strict(),\n request: z.object({ action: z.enum(['retry', 'confirm-delivered']) }).strict(),\n response: z\n .object({\n outboundId: OutboundIntentIdSchema,\n action: z.enum(['retry', 'confirm-delivered']),\n deliveryState: z.enum(['planned', 'sending', 'sent', 'partially-sent', 'failed', 'unknown']),\n resolvedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getChannelActivity: defineContract({\n method: 'GET',\n path: '/api/activity',\n params: ActivityQuerySchema,\n request: NoRequestBodySchema,\n response: ChannelActivitySeriesSchema,\n error: HostApiErrorSchema,\n }),\n listAgentRevisions: defineContract({\n method: 'GET',\n path: '/api/agents/:agentId/revisions',\n params: agentParam,\n request: NoRequestBodySchema,\n response: AgentRevisionHistorySchema,\n error: HostApiErrorSchema,\n }),\n restoreAgentRevision: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/revisions/:revisionId/restore',\n params: agentRevisionParam,\n request: z.object({ expectedCurrentRevisionId: AgentRevisionIdSchema }).strict(),\n response: z.object({ currentRevisionId: AgentRevisionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n updateAgentAppearance: defineContract({\n invalidatesSnapshot: true,\n method: 'PATCH',\n path: '/api/agents/:agentId/appearance',\n params: agentParam,\n request: z\n .object({\n hue: z.number().int().min(0).max(359).nullable().optional(),\n /** `null` removes the avatar; uploading uses `uploadAgentAvatar`. */\n avatarAssetId: z.null().optional(),\n })\n .strict(),\n response: z.object({ agentId: AgentIdSchema, appearance: AgentAppearanceSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n uploadAgentAvatar: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/avatar',\n params: agentParam,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: z.object({ agentId: AgentIdSchema, appearance: AgentAppearanceSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteLocalExtension: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/extensions/:extensionId',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n getExtensionLineage: defineContract({\n method: 'GET',\n path: '/api/extensions/:extensionId/lineage',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: ExtensionLineageSchema,\n error: HostApiErrorSchema,\n }),\n branchExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/branch',\n params: extensionParam,\n request: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n name: z.string().trim().min(1).max(80),\n slug: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$/u)\n .optional(),\n copyData: z.boolean(),\n })\n .strict(),\n response: z.object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n rollbackExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/revert',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ message: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n getExtensionData: defineContract({\n method: 'GET',\n path: '/api/extensions/:extensionId/data',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: ExtensionDataStateSchema,\n error: HostApiErrorSchema,\n }),\n previewExtensionDataMigration: defineContract({\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/data/preview',\n params: extensionParam,\n request: ExtensionDataMigrationInputSchema,\n response: ExtensionDataPreviewSchema,\n error: HostApiErrorSchema,\n }),\n migrateExtensionData: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/data/migrate',\n params: extensionParam,\n request: ExtensionDataMigrationInputSchema,\n response: z.object({ snapshotId: z.string(), preview: ExtensionDataPreviewSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n exportExtensionData: defineContract({\n method: 'GET',\n timeoutMs: 300_000,\n path: '/api/extensions/:extensionId/data/export',\n params: extensionParam,\n request: NoRequestBodySchema,\n responseFormat: 'bytes',\n response: z.instanceof(Uint8Array),\n error: HostApiErrorSchema,\n }),\n /** The same package with the host and agent configuration; secrets are left out. */\n exportExtensionDataWithConfig: defineContract({\n method: 'GET',\n timeoutMs: 300_000,\n path: '/api/extensions/:extensionId/data/export-config',\n params: extensionParam,\n request: NoRequestBodySchema,\n responseFormat: 'bytes',\n response: z.instanceof(Uint8Array),\n error: HostApiErrorSchema,\n }),\n createExtensionDataSnapshot: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/data/snapshots',\n params: extensionParam,\n request: z.object({ label: z.string().trim().min(1).max(80) }).strict(),\n response: z.object({ snapshotId: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectExtensionDataPackage: defineContract({\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/data/inspect',\n params: EmptyParamsSchema,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: ExtensionDataPackageInspectionSchema,\n error: HostApiErrorSchema,\n }),\n listExtensionRequests: defineContract({\n method: 'GET',\n path: '/api/extension-requests',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ requests: z.array(ExtensionRequestSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n approveExtensionRequest: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extension-requests/:number/approve',\n params: z.object({ number: z.coerce.number().int().positive() }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ message: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n rejectExtensionRequest: defineContract({\n method: 'POST',\n path: '/api/extension-requests/:number/reject',\n params: z.object({ number: z.coerce.number().int().positive() }).strict(),\n request: z.object({ reason: z.string().trim().max(500).optional() }).strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n listAdministrators: defineContract({\n method: 'GET',\n path: '/api/administrators',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ administrators: z.array(AdministratorSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n addAdministrator: defineContract({\n method: 'POST',\n path: '/api/administrators',\n params: EmptyParamsSchema,\n request: z.object({ identityId: PlatformIdentityIdSchema }).strict(),\n response: AdministratorSchema,\n error: HostApiErrorSchema,\n }),\n removeAdministrator: defineContract({\n method: 'POST',\n path: '/api/administrators/remove',\n params: EmptyParamsSchema,\n request: z.object({ connectionId: ConnectionIdSchema, platformUserId: z.string().min(1) }).strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n createAdministratorClaimCode: defineContract({\n method: 'POST',\n path: '/api/administrators/claim-code',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ code: z.string(), expiresAt: z.number().int().nonnegative() }).strict(),\n error: HostApiErrorSchema,\n }),\n dismissCommunityRelease: defineContract({\n method: 'POST',\n path: '/api/community/sync/:extensionId/dismiss',\n params: extensionParam,\n request: z.object({ releaseId: CommunityReleaseIdSchema.nullable() }).strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateFromCommunity: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/community/sync/:extensionId/update',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ message: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n archiveAuthoringTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/archive',\n params: z.object({ taskId: AuthoringTaskIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n} as const\n\nexport type HostApiContractName = keyof typeof HostApiContracts\nexport type HostApiParams<Name extends HostApiContractName> = z.input<(typeof HostApiContracts)[Name]['params']>\nexport type HostApiRequest<Name extends HostApiContractName> = z.input<(typeof HostApiContracts)[Name]['request']>\nexport type HostApiResponse<Name extends HostApiContractName> = z.output<(typeof HostApiContracts)[Name]['response']>\nexport type HostApiContractParams<Contract> = Contract extends {\n readonly params: z.ZodType<unknown, infer Input>\n}\n ? Input\n : never\nexport type HostApiContractRequest<Contract> = Contract extends {\n readonly request: z.ZodType<unknown, infer Input>\n}\n ? Input\n : never\nexport type HostApiContractResponse<Contract> = Contract extends {\n readonly response: z.ZodType<infer Output, unknown>\n}\n ? Output\n : never\n\nconst pathParameterPattern = /:([A-Za-z][A-Za-z0-9]*)/gu\n\n/** Build the transport URL only after all path/query parameters pass the shared schema. */\nconst buildValidatedHostApiPath = (\n contract: { readonly path: string; readonly params: AnySchema },\n input: unknown,\n): string => {\n const params = z.record(z.string(), z.unknown()).parse(contract.params.parse(input))\n const consumed = new Set<string>()\n const pathname = contract.path.replace(pathParameterPattern, (_placeholder, key: string) => {\n const value = params[key]\n if (typeof value !== 'string') throw new TypeError(`Host API path parameter ${key} must be a string.`)\n consumed.add(key)\n return encodeURIComponent(value)\n })\n const query = new URLSearchParams()\n for (const [key, value] of Object.entries(params)) {\n if (consumed.has(key) || value === undefined) continue\n if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {\n throw new TypeError(`Host API query parameter ${key} must be a string, number, or boolean.`)\n }\n query.set(key, String(value))\n }\n const suffix = query.toString()\n return suffix ? `${pathname}?${suffix}` : pathname\n}\n\nexport function buildHostApiContractPath<Params extends AnySchema>(\n contract: { readonly path: string; readonly params: Params },\n input: unknown,\n): string {\n return buildValidatedHostApiPath(contract, input)\n}\n\nexport function buildHostApiPath<Name extends HostApiContractName>(name: Name, input: HostApiParams<Name>): string {\n return buildValidatedHostApiPath(HostApiContracts[name], input)\n}\nimport {\n CommunityFeedbackDraftIdSchema,\n CommunityFeedbackDraftInputSchema,\n CommunityFeedbackDraftSchema,\n CommunityFeedbackDraftUpdateSchema,\n CommunityFeedbackLastPayloadSchema,\n CommunityFeedbackLocalListSchema,\n CommunityFeedbackPayloadSchema,\n CommunityFeedbackSettingsSchema,\n CommunityFeedbackSettingsUpdateSchema,\n CommunityFeedbackSnapshotSchema,\n} from './community-feedback-host.js'\nimport {\n CommunityFeedbackRefSchema,\n CommunityFeedbackSchema,\n CommunityFeedbackWithdrawSchema,\n CommunityFeedbackReopenSchema,\n} from './community-feedback.js'\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["NonEmptyStringSchema"],"sources":["../src/domain.ts","../src/config-schema.ts","../src/extension-capabilities.ts","../src/extension-ui.ts","../src/commands.ts","../src/logs.ts","../src/credentials.ts","../src/linked-accounts.ts","../src/runtime-compatibility.ts","../src/response-timing.ts","../src/management-api.ts","../src/community.ts","../src/community-personas.ts","../src/community-feedback.ts","../src/community-feedback-host.ts","../src/host-api.ts"],"sourcesContent":["import { z } from 'zod'\n\n/** Rendered send-tool result consumed by both the agent and the product detail view. */\nexport const MessageDeliverySummarySchema = z\n .object({\n status: z.enum(['sent', 'partially-sent', 'failed', 'unknown']),\n issues: z\n .array(\n z\n .object({\n status: z.enum(['failed', 'unknown']),\n message: z.string().max(1000),\n kind: z.enum(['transient', 'permanent', 'rate-limited', 'authentication', 'invalid']).optional(),\n action: z.string().max(120).optional(),\n retcode: z.number().int().safe().optional(),\n })\n .strict(),\n )\n .max(20),\n omittedIssues: z.number().int().nonnegative().optional(),\n /** Extensions that changed the message before it was sent, the content they produced and what they appended. */\n processing: z\n .object({\n processedBy: z.array(z.string()),\n parts: z.array(z.unknown()).optional(),\n followUps: z.array(z.string()).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nconst brandedId = <Prefix extends string, Brand extends string>(prefix: Prefix, brand: Brand) =>\n z\n .string()\n .regex(new RegExp(`^${prefix}_[0-9A-Za-z]+$`), `${brand} has an invalid format.`)\n .brand(brand)\n\nexport const AgentIdSchema = brandedId('agt', 'AgentId')\nexport const AgentRevisionIdSchema = brandedId('arev', 'AgentRevisionId')\nexport const ConnectionIdSchema = brandedId('con', 'ConnectionId')\nexport const ConnectionEventIdSchema = brandedId('cev', 'ConnectionEventId')\nexport const ChannelIdSchema = brandedId('chn', 'ChannelId')\nexport const ChannelEventIdSchema = brandedId('evt', 'ChannelEventId')\nexport const PlatformIdentityIdSchema = brandedId('pid', 'PlatformIdentityId')\nexport const ChannelMemberIdSchema = brandedId('mbr', 'ChannelMemberId')\nexport const AdmissionIdSchema = brandedId('adm', 'AdmissionId')\nexport const OutboundIntentIdSchema = brandedId('out', 'OutboundIntentId')\nexport const LogicalMessageIdSchema = brandedId('msg', 'LogicalMessageId')\nexport const PhysicalDeliveryIdSchema = brandedId('phy', 'PhysicalDeliveryId')\nexport const AssetIdSchema = brandedId('ast', 'AssetId')\nexport const EpisodeIdSchema = brandedId('eps', 'EpisodeId')\nexport const EpisodeHandoffIdSchema = brandedId('hof', 'EpisodeHandoffId')\nexport const ExtensionIdSchema = brandedId('ext', 'ExtensionId')\nexport const ExtensionRevisionIdSchema = brandedId('xrv', 'ExtensionRevisionId')\nexport const DshPluginPackageIdSchema = brandedId('dsp', 'DshPluginPackageId')\nexport const DshPluginEntryIdSchema = brandedId('dse', 'DshPluginEntryId')\nexport const HostUiPageInstanceIdSchema = brandedId('hup', 'HostUiPageInstanceId')\nexport const AuthoringTaskIdSchema = brandedId('aut', 'AuthoringTaskId')\nexport const AuthoringAttemptIdSchema = brandedId('aua', 'AuthoringAttemptId')\nexport const SubConversationIdSchema = brandedId('cnv', 'SubConversationId')\nexport const CredentialIdSchema = brandedId('crd', 'CredentialId')\nexport const LinkedAccountIdSchema = brandedId('acc', 'LinkedAccountId')\n\nexport type AgentId = z.infer<typeof AgentIdSchema>\nexport type SubConversationId = z.infer<typeof SubConversationIdSchema>\nexport type CredentialId = z.infer<typeof CredentialIdSchema>\nexport type LinkedAccountId = z.infer<typeof LinkedAccountIdSchema>\nexport type AgentRevisionId = z.infer<typeof AgentRevisionIdSchema>\nexport type ConnectionId = z.infer<typeof ConnectionIdSchema>\nexport type ConnectionEventId = z.infer<typeof ConnectionEventIdSchema>\nexport type ChannelId = z.infer<typeof ChannelIdSchema>\nexport type ChannelEventId = z.infer<typeof ChannelEventIdSchema>\nexport type PlatformIdentityId = z.infer<typeof PlatformIdentityIdSchema>\nexport type ChannelMemberId = z.infer<typeof ChannelMemberIdSchema>\nexport type AdmissionId = z.infer<typeof AdmissionIdSchema>\nexport type OutboundIntentId = z.infer<typeof OutboundIntentIdSchema>\nexport type LogicalMessageId = z.infer<typeof LogicalMessageIdSchema>\nexport type PhysicalDeliveryId = z.infer<typeof PhysicalDeliveryIdSchema>\nexport type AssetId = z.infer<typeof AssetIdSchema>\nexport type EpisodeId = z.infer<typeof EpisodeIdSchema>\nexport type EpisodeHandoffId = z.infer<typeof EpisodeHandoffIdSchema>\nexport type ExtensionId = z.infer<typeof ExtensionIdSchema>\nexport type ExtensionRevisionId = z.infer<typeof ExtensionRevisionIdSchema>\nexport type DshPluginPackageId = z.infer<typeof DshPluginPackageIdSchema>\nexport type DshPluginEntryId = z.infer<typeof DshPluginEntryIdSchema>\nexport type HostUiPageInstanceId = z.infer<typeof HostUiPageInstanceIdSchema>\nexport type AuthoringTaskId = z.infer<typeof AuthoringTaskIdSchema>\nexport type AuthoringAttemptId = z.infer<typeof AuthoringAttemptIdSchema>\n\nexport const AdapterActivityKeySchema = z\n .string()\n .trim()\n .min(1)\n .max(128)\n .regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/u, 'Adapter activity key has an invalid format.')\n\nexport type AdapterActivityKey = z.infer<typeof AdapterActivityKeySchema>\n\nconst PromptTextSegmentSchema = z.object({ type: z.literal('text'), text: z.string() }).strict()\n\nconst PromptReferenceLabelSchema = z.string().trim().min(1).max(120)\n\nconst PromptReferenceSegmentSchema = z.discriminatedUnion('kind', [\n z\n .object({\n type: z.literal('reference'),\n kind: z.literal('platform-user'),\n targetId: PlatformIdentityIdSchema,\n labelSnapshot: PromptReferenceLabelSchema,\n })\n .strict(),\n z\n .object({\n type: z.literal('reference'),\n kind: z.literal('channel'),\n targetId: ChannelIdSchema,\n labelSnapshot: PromptReferenceLabelSchema,\n })\n .strict(),\n z\n .object({\n type: z.literal('reference'),\n kind: z.literal('extension'),\n targetId: ExtensionIdSchema,\n labelSnapshot: PromptReferenceLabelSchema,\n })\n .strict(),\n])\n\nexport const PromptSegmentSchema = z.union([PromptTextSegmentSchema, PromptReferenceSegmentSchema])\n\nexport const PROMPT_DOCUMENT_MAX_REFERENCES = 128\nexport const PROMPT_DOCUMENT_MAX_PLAIN_TEXT_LENGTH = 64 * 1024\n\nexport const PromptDocumentV1Schema = z\n .object({ version: z.literal(1), segments: z.array(PromptSegmentSchema) })\n .strict()\n .superRefine((document, context) => {\n const referenceCount = document.segments.filter((segment) => segment.type === 'reference').length\n if (referenceCount > PROMPT_DOCUMENT_MAX_REFERENCES) {\n context.addIssue({\n code: 'custom',\n message: `Prompt document must not contain more than ${PROMPT_DOCUMENT_MAX_REFERENCES} references.`,\n path: ['segments'],\n })\n }\n const plainTextLength = document.segments.reduce(\n (length, segment) => length + (segment.type === 'text' ? segment.text.length : segment.labelSnapshot.length + 1),\n 0,\n )\n if (plainTextLength > PROMPT_DOCUMENT_MAX_PLAIN_TEXT_LENGTH) {\n context.addIssue({\n code: 'custom',\n message: `Prompt document plain-text projection must not exceed ${PROMPT_DOCUMENT_MAX_PLAIN_TEXT_LENGTH} characters.`,\n path: ['segments'],\n })\n }\n })\n\nexport type PromptSegment = z.output<typeof PromptSegmentSchema>\nexport type PromptDocumentV1 = z.output<typeof PromptDocumentV1Schema>\n\nexport const promptDocumentFromText = (text: string): PromptDocumentV1 =>\n normalizePromptDocument({ version: 1, segments: text.length === 0 ? [] : [{ type: 'text', text }] })\n\nexport const promptDocumentPlainText = (document: PromptDocumentV1): string =>\n document.segments.map((segment) => (segment.type === 'text' ? segment.text : `@${segment.labelSnapshot}`)).join('')\n\nexport const normalizePromptDocument = (input: unknown): PromptDocumentV1 => {\n const parsed = PromptDocumentV1Schema.parse(input)\n const segments: PromptSegment[] = []\n for (const segment of parsed.segments) {\n if (segment.type === 'text') {\n if (segment.text.length === 0) continue\n const previous = segments.at(-1)\n if (previous?.type === 'text') {\n segments[segments.length - 1] = { type: 'text', text: `${previous.text}${segment.text}` }\n } else {\n segments.push(segment)\n }\n continue\n }\n segments.push(segment)\n }\n return PromptDocumentV1Schema.parse({ version: 1, segments })\n}\n\nexport type JsonValue = null | boolean | number | string | JsonValue[] | { readonly [key: string]: JsonValue }\n\nexport const JsonValueSchema = z.json()\n\nexport function parseJsonValue(input: unknown): JsonValue {\n return JsonValueSchema.parse(input)\n}\n\n/** Package identity and source for one DSH extension visible in the current Host. */\nexport interface DshPluginCatalogEntry {\n readonly packageName: string\n readonly packageVersion: string\n readonly origin: 'builtin' | 'profile' | 'dynamic' | 'installed'\n readonly settingsNamespaces: readonly string[]\n readonly loadError?: { readonly code: string; readonly message: string }\n}\n\nexport type DshPluginInstallSource = 'registry' | 'tarball' | 'imported'\nexport type DshPluginActivationScope = 'host' | 'agent'\n\nexport interface DshPluginPackageRecord {\n readonly id: DshPluginPackageId\n readonly packageName: string\n readonly packageVersion: string\n readonly source: DshPluginInstallSource\n readonly packageDigest: string\n readonly integrity?: string\n readonly lockfileDigest: string\n readonly manifest: JsonValue\n readonly approvedBuilds: readonly string[]\n readonly installedAt: number\n}\n\nexport interface DshPluginEntryRecord {\n readonly id: DshPluginEntryId\n readonly packageId: DshPluginPackageId\n readonly entryKey: string\n readonly moduleName: string\n readonly suggestedScope: DshPluginActivationScope\n readonly selectedScope?: DshPluginActivationScope\n readonly config: JsonValue\n readonly createdAt: number\n}\n\nexport interface DshPluginActivationRecord {\n readonly entryId: DshPluginEntryId\n readonly targetKey: string\n readonly target: DshPluginActivationScope\n readonly agentId?: AgentId\n readonly activatedAt: number\n}\n\nexport interface DshPluginDiagnosticRecord {\n readonly entryId: DshPluginEntryId\n readonly targetKey: string\n readonly status: 'active' | 'pending' | 'load-failed' | 'restore-failed' | 'dispose-failed'\n readonly phase: 'import' | 'dependency' | 'apply' | 'update' | 'dispose' | 'restore'\n readonly message?: string\n readonly observedAt: number\n}\n\nexport interface DshSettingsNamespaceView {\n readonly ns: string\n readonly schema: unknown\n readonly resolved: unknown\n readonly base?: unknown\n readonly user?: unknown\n readonly applies: 'live' | 'restart'\n readonly secrets: readonly { readonly path: readonly string[]; readonly set: boolean }[]\n readonly revision: number\n readonly writable: boolean\n readonly owner?: { readonly packageName: string; readonly packageVersion: string }\n}\n\nexport type DshSettingsPathOperation =\n | { readonly op: 'set'; readonly path: readonly string[]; readonly value: unknown }\n | { readonly op: 'unset'; readonly path: readonly string[] }\n\nexport interface DshSettingsMutationRequest {\n readonly expectedRevision: number\n readonly ops: readonly DshSettingsPathOperation[]\n}\n\nexport interface DshCredentialView {\n readonly configured: boolean\n readonly source?: string\n readonly writable: boolean\n}\n\nconst utf8ByteLength = (value: string): number => new TextEncoder().encode(value).byteLength\n\nexport const RICH_EXTENSION_MAX_BYTES = 64 * 1024\n\nexport const RichExtensionSchema = JsonValueSchema.refine(\n (value) => utf8ByteLength(JSON.stringify(value)) <= RICH_EXTENSION_MAX_BYTES,\n `rich extension must not exceed ${RICH_EXTENSION_MAX_BYTES} bytes.`,\n)\n\nexport const RichTargetUrlSchema = z\n .url()\n .max(2048)\n .refine((value) => {\n const protocol = new URL(value).protocol\n return protocol === 'http:' || protocol === 'https:'\n }, 'rich target URL must use HTTP or HTTPS.')\n\nexport const MessagePartSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), text: z.string() }).strict(),\n z.object({ type: z.literal('mention'), memberId: ChannelMemberIdSchema }).strict(),\n z\n .object({\n type: z.literal('image'),\n assetId: AssetIdSchema,\n alt: z.string().optional(),\n /**\n * The platform reported the picture as a sticker. A hint only: a sticker dragged in from a desktop client and\n * pictures from platforms without this signal arrive unmarked.\n */\n sticker: z.literal(true).optional(),\n })\n .strict(),\n z.object({ type: z.literal('file'), assetId: AssetIdSchema, name: z.string().optional() }).strict(),\n z.object({ type: z.literal('audio'), assetId: AssetIdSchema }).strict(),\n z.object({ type: z.literal('quote'), messageId: LogicalMessageIdSchema }).strict(),\n z\n .object({\n type: z.literal('rich'),\n adapterKey: z.string().trim().min(1).max(64),\n kind: z.string().trim().min(1).max(64),\n summary: z.string().trim().min(1).max(500),\n title: z.string().trim().min(1).max(200).optional(),\n source: z.string().trim().min(1).max(80).optional(),\n targetUrl: RichTargetUrlSchema.optional(),\n previewAssetId: AssetIdSchema.optional(),\n extension: RichExtensionSchema.optional(),\n })\n .strict(),\n])\n\nexport type MessagePart = z.infer<typeof MessagePartSchema>\n\nexport const MessagePartsSchema = z.array(MessagePartSchema)\nexport const NonEmptyMessagePartsSchema = MessagePartsSchema.min(1)\n\nexport function parseMessageParts(input: unknown): MessagePart[] {\n return MessagePartsSchema.parse(input)\n}\n\nconst collectRichAssetIds = (value: JsonValue | undefined, into: AssetId[], imagesOnly = false): void => {\n if (value === null || value === undefined || typeof value === 'boolean' || typeof value === 'number') return\n if (typeof value === 'string') return\n if (Array.isArray(value)) {\n for (const item of value) collectRichAssetIds(item, into, imagesOnly)\n return\n }\n for (const [key, child] of Object.entries(value)) {\n if (\n (key === 'imageAssetId' ||\n key === 'previewAssetId' ||\n (!imagesOnly && (key === 'audioAssetId' || key === 'fileAssetId'))) &&\n typeof child === 'string'\n ) {\n const parsed = AssetIdSchema.safeParse(child)\n if (parsed.success) into.push(parsed.data)\n } else {\n collectRichAssetIds(child, into, imagesOnly)\n }\n }\n}\n\nexport const messagePartAssetIds = (part: MessagePart): readonly AssetId[] => {\n if (part.type === 'image' || part.type === 'file' || part.type === 'audio') return [part.assetId]\n if (part.type !== 'rich') return []\n const ids: AssetId[] = []\n if (part.previewAssetId) ids.push(part.previewAssetId)\n collectRichAssetIds(part.extension, ids)\n return ids\n}\n\nexport const messagePartAssetId = (part: MessagePart): AssetId | undefined => messagePartAssetIds(part)[0]\n\n/** Only actual pictures enter visual context; forwarded files and recordings retain their own media kind. */\nexport const messagePartImageAssetIds = (part: MessagePart): readonly AssetId[] => {\n if (part.type === 'image') return [part.assetId]\n if (part.type !== 'rich') return []\n const ids: AssetId[] = part.previewAssetId ? [part.previewAssetId] : []\n collectRichAssetIds(part.extension, ids, true)\n return ids\n}\n\nconst asJsonRecord = (value: JsonValue | undefined): Readonly<Record<string, JsonValue>> | undefined =>\n value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined\n\nconst richItemLine = (value: JsonValue): string | undefined => {\n const item = asJsonRecord(value)\n if (!item) return undefined\n const sender = typeof item['sender'] === 'string' ? item['sender'] : undefined\n const text = typeof item['text'] === 'string' ? item['text'] : undefined\n const card = asJsonRecord(item['card'])\n const cardSummary =\n typeof card?.['summary'] === 'string'\n ? card['summary']\n : typeof card?.['title'] === 'string'\n ? card['title']\n : undefined\n const imageName = typeof item['imageName'] === 'string' ? item['imageName'] : undefined\n const imageText = typeof item['imageAssetId'] === 'string' ? `[图片${imageName ? ` ${imageName}` : ''}]` : undefined\n const audioText = typeof item['audioAssetId'] === 'string' ? `[语音 ${item['audioAssetId']}]` : undefined\n const fileText =\n typeof item['fileAssetId'] === 'string'\n ? `[${typeof item['fileMediaType'] === 'string' && item['fileMediaType'].startsWith('video/') ? '视频' : '文件'} ${item['fileAssetId']}${typeof item['fileName'] === 'string' ? `:${item['fileName']}` : ''}]`\n : undefined\n const body = [text, cardSummary ? `[卡片] ${cardSummary}` : undefined, imageText, audioText, fileText]\n .filter((part): part is string => Boolean(part && part.length > 0))\n .join(' ')\n if (!sender && !body) return undefined\n return sender ? `${sender}:${body}` : body\n}\n\n/** Flatten a rich part for search and model context. */\nexport const richPartContextText = (part: Extract<MessagePart, { type: 'rich' }>): string => {\n const header = [part.summary, part.title, part.source].filter(\n (value, index, all): value is string =>\n typeof value === 'string' && value.length > 0 && all.indexOf(value) === index,\n )\n const items = asJsonRecord(part.extension)?.['items']\n const itemLines = Array.isArray(items)\n ? items.flatMap((item) => {\n const line = richItemLine(item)\n return line === undefined ? [] : [line]\n })\n : []\n return [...header, ...itemLines].join('\\n')\n}\n\nexport const messagePartsSearchText = (parts: readonly MessagePart[]): string =>\n parts\n .flatMap((part) => {\n if (part.type === 'text') return [part.text]\n if (part.type === 'rich') return [richPartContextText(part)]\n return []\n })\n .join('\\n')\n","import { z } from 'zod'\nimport { JsonValueSchema, type JsonValue } from './domain.js'\n\n/**\n * The single configuration format: serialized Schemastery (`Schema.toJSON()`), restricted to the subset the\n * product form can render and the Host can validate without executing Schema callbacks.\n *\n * Supported nodes: object (dict), string, number, natural, percent, boolean, const, union of consts (enum) and\n * array of primitives. `meta.role: 'secret'` marks a write-only credential. NekroNXT reads four extra meta keys:\n * `hint` (help text), `advanced` (collapsed by default), `visibleWhen` (show only when a sibling equals a value) and\n * `agentWritable: false` (only an administrator may change the field, in the console).\n */\nexport const CONFIG_SCHEMA_MAX_BYTES = 64 * 1024\n\nconst DescriptionSchema = z.union([z.string(), z.record(z.string(), z.string())])\n\nexport const ConfigSchemaMetaSchema = z\n .object({\n description: DescriptionSchema.optional(),\n hint: z.string().max(500).optional(),\n required: z.boolean().optional(),\n default: JsonValueSchema.optional(),\n role: z.string().max(32).optional(),\n hidden: z.boolean().optional(),\n min: z.number().finite().optional(),\n max: z.number().finite().optional(),\n step: z.number().finite().positive().optional(),\n pattern: z.object({ source: z.string().max(500), flags: z.string().max(8).optional() }).optional(),\n advanced: z.boolean().optional(),\n group: z.string().max(40).optional(),\n /** `false` keeps the field out of the agent's reach: only an administrator changes it, in the console. */\n agentWritable: z.boolean().optional(),\n visibleWhen: z\n .object({ key: z.string().min(1).max(64), equals: JsonValueSchema })\n .strict()\n .optional(),\n })\n .loose()\n\nexport type ConfigSchemaMeta = z.output<typeof ConfigSchemaMetaSchema>\n\nexport type ConfigSchemaNode =\n | {\n readonly type: 'object'\n readonly dict: Readonly<Record<string, ConfigSchemaNode>>\n readonly meta?: ConfigSchemaMeta | undefined\n }\n | {\n readonly type: 'string' | 'number' | 'natural' | 'percent' | 'boolean'\n readonly meta?: ConfigSchemaMeta | undefined\n }\n | { readonly type: 'const'; readonly value: JsonValue; readonly meta?: ConfigSchemaMeta | undefined }\n | { readonly type: 'union'; readonly list: readonly ConfigSchemaNode[]; readonly meta?: ConfigSchemaMeta | undefined }\n | { readonly type: 'array'; readonly inner: ConfigSchemaNode; readonly meta?: ConfigSchemaMeta | undefined }\n\nconst SAFE_KEY = /^(?!__proto__$|prototype$|constructor$)[A-Za-z_$][\\w$-]{0,63}$/u\n\nexport const ConfigSchemaNodeSchema: z.ZodType<ConfigSchemaNode> = z.lazy(() =>\n z.union([\n z\n .object({\n type: z.literal('object'),\n dict: z.record(z.string().regex(SAFE_KEY), ConfigSchemaNodeSchema),\n meta: ConfigSchemaMetaSchema.optional(),\n })\n .loose(),\n z\n .object({\n type: z.enum(['string', 'number', 'natural', 'percent', 'boolean']),\n meta: ConfigSchemaMetaSchema.optional(),\n })\n .loose(),\n z.object({ type: z.literal('const'), value: JsonValueSchema, meta: ConfigSchemaMetaSchema.optional() }).loose(),\n z\n .object({\n type: z.literal('union'),\n list: z.array(ConfigSchemaNodeSchema).min(1).max(64),\n meta: ConfigSchemaMetaSchema.optional(),\n })\n .loose(),\n z\n .object({ type: z.literal('array'), inner: ConfigSchemaNodeSchema, meta: ConfigSchemaMetaSchema.optional() })\n .loose(),\n ]),\n)\n\n/** A whole configuration document: always an object at the root. */\nexport const ConfigSchemaDocumentSchema = ConfigSchemaNodeSchema.refine(\n (node) => node.type === 'object',\n '配置 Schema 的根节点必须是 object。',\n).refine((node) => new TextEncoder().encode(JSON.stringify(node)).length <= CONFIG_SCHEMA_MAX_BYTES, {\n message: `配置 Schema 不能超过 ${CONFIG_SCHEMA_MAX_BYTES} 字节。`,\n})\n\nexport type ConfigSchemaDocument = Extract<ConfigSchemaNode, { readonly type: 'object' }>\n\nexport const EMPTY_CONFIG_SCHEMA: ConfigSchemaDocument = { type: 'object', dict: {} }\n\nexport type ConfigFieldKind = 'string' | 'number' | 'boolean' | 'enum' | 'secret' | 'array' | 'object'\n\nexport interface ConfigField {\n readonly key: string\n readonly kind: ConfigFieldKind\n readonly title: string\n readonly hint?: string\n readonly required: boolean\n readonly default?: JsonValue\n readonly advanced: boolean\n readonly group?: string\n readonly options?: readonly { readonly value: JsonValue; readonly label: string }[]\n /** Declared `meta.agentWritable: false`: only an administrator changes it. */\n readonly adminOnly: boolean\n readonly node: ConfigSchemaNode\n}\n\n/**\n * How much a change to one field matters when an agent makes it: `admin` fields are changed in the console only,\n * `secret` fields hold credentials, `network` fields decide where the extension may connect, the rest are `normal`.\n */\nexport type ConfigFieldLevel = 'normal' | 'network' | 'secret' | 'admin'\n\nexport const configFieldLevel = (\n field: Pick<ConfigField, 'key' | 'kind' | 'adminOnly'>,\n networkFields: ReadonlySet<string> | readonly string[],\n): ConfigFieldLevel => {\n if (field.adminOnly) return 'admin'\n if (field.kind === 'secret') return 'secret'\n const network = networkFields instanceof Set ? networkFields : new Set(networkFields)\n return network.has(field.key) ? 'network' : 'normal'\n}\n\nexport const configDescription = (meta: ConfigSchemaMeta | undefined): string | undefined => {\n const description = meta?.description\n if (typeof description === 'string') return description\n if (description) return description['zh-CN'] ?? description['zh'] ?? Object.values(description)[0]\n return undefined\n}\n\nconst isEnumUnion = (node: ConfigSchemaNode): node is Extract<ConfigSchemaNode, { readonly type: 'union' }> =>\n node.type === 'union' && node.list.every((option) => option.type === 'const')\n\nexport const configFieldKind = (node: ConfigSchemaNode): ConfigFieldKind => {\n if (node.meta?.role === 'secret') return 'secret'\n if (node.type === 'string') return 'string'\n if (node.type === 'number' || node.type === 'natural' || node.type === 'percent') return 'number'\n if (node.type === 'boolean') return 'boolean'\n if (node.type === 'array') return 'array'\n if (node.type === 'object') return 'object'\n if (node.type === 'const' || isEnumUnion(node)) return 'enum'\n throw new TypeError('配置 Schema 只支持常量组成的 union。')\n}\n\n/** Flattens the top level of a document into product form fields (order preserved). */\nconst jsonLabel = (value: JsonValue): string => (typeof value === 'string' ? value : JSON.stringify(value))\n\nexport const configFields = (document: ConfigSchemaDocument): readonly ConfigField[] =>\n Object.entries(document.dict).map(([key, node]) => {\n const kind = configFieldKind(node)\n const title = configDescription(node.meta) ?? key\n const options =\n node.type === 'union' && isEnumUnion(node)\n ? node.list.map((option) => ({\n value: option.type === 'const' ? option.value : null,\n label: configDescription(option.meta) ?? (option.type === 'const' ? jsonLabel(option.value) : ''),\n }))\n : node.type === 'const'\n ? [{ value: node.value, label: configDescription(node.meta) ?? jsonLabel(node.value) }]\n : undefined\n return {\n key,\n kind,\n title,\n ...(node.meta?.hint === undefined ? {} : { hint: node.meta.hint }),\n required: node.meta?.required === true,\n ...(node.meta?.default === undefined ? {} : { default: node.meta.default }),\n advanced: node.meta?.advanced === true,\n ...(node.meta?.group === undefined ? {} : { group: node.meta.group }),\n ...(options === undefined ? {} : { options }),\n adminOnly: node.meta?.agentWritable === false,\n node,\n }\n })\n\n/** Fields declared `meta.agentWritable: false`. */\nexport const adminOnlyConfigKeys = (document: ConfigSchemaDocument): readonly string[] =>\n configFields(document)\n .filter((field) => field.adminOnly)\n .map((field) => field.key)\n\nexport const configSecretKeys = (document: ConfigSchemaDocument): readonly string[] =>\n configFields(document)\n .filter((field) => field.kind === 'secret')\n .map((field) => field.key)\n\nexport interface ConfigValidationIssue {\n readonly path: string\n readonly message: string\n}\n\nconst isRecord = (value: unknown): value is Readonly<Record<string, JsonValue>> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst sameJson = (left: JsonValue, right: JsonValue): boolean => JSON.stringify(left) === JSON.stringify(right)\n\nconst validateNode = (\n node: ConfigSchemaNode,\n value: JsonValue | undefined,\n path: string,\n label: string,\n issues: ConfigValidationIssue[],\n): JsonValue | undefined => {\n const resolved = value ?? node.meta?.default\n if (resolved === undefined || resolved === null) {\n if (node.meta?.required === true) issues.push({ path, message: `请填写${label}。` })\n if (node.type === 'object') return validateNode(node, {}, path, label, issues)\n return undefined\n }\n switch (node.type) {\n case 'object': {\n if (!isRecord(resolved)) {\n issues.push({ path, message: `${label}必须是对象。` })\n return undefined\n }\n const output: Record<string, JsonValue> = {}\n for (const key of Object.keys(resolved)) {\n if (!Object.hasOwn(node.dict, key))\n issues.push({ path: path ? `${path}.${key}` : key, message: `未知配置项:${key}` })\n }\n for (const [key, child] of Object.entries(node.dict)) {\n const childPath = path ? `${path}.${key}` : key\n const next = validateNode(child, resolved[key], childPath, configDescription(child.meta) ?? key, issues)\n if (next !== undefined) output[key] = next\n }\n return output\n }\n case 'string': {\n if (typeof resolved !== 'string') {\n issues.push({ path, message: `${label}必须是文本。` })\n return undefined\n }\n if (node.meta?.required === true && resolved.trim().length === 0)\n issues.push({ path, message: `请填写${label}。` })\n const pattern = node.meta?.pattern\n if (pattern && resolved.length > 0 && !new RegExp(pattern.source, pattern.flags ?? '').test(resolved)) {\n issues.push({ path, message: `${label}的格式不正确。` })\n }\n return resolved\n }\n case 'number':\n case 'natural':\n case 'percent': {\n if (typeof resolved !== 'number' || !Number.isFinite(resolved)) {\n issues.push({ path, message: `${label}必须是数字。` })\n return undefined\n }\n if (node.type === 'natural' && (!Number.isInteger(resolved) || resolved < 0)) {\n issues.push({ path, message: `${label}必须是非负整数。` })\n }\n if (node.type === 'percent' && (resolved < 0 || resolved > 1))\n issues.push({ path, message: `${label}必须在 0 到 1 之间。` })\n if (node.meta?.min !== undefined && resolved < node.meta.min)\n issues.push({ path, message: `${label}不能小于 ${node.meta.min}。` })\n if (node.meta?.max !== undefined && resolved > node.meta.max)\n issues.push({ path, message: `${label}不能大于 ${node.meta.max}。` })\n return resolved\n }\n case 'boolean':\n if (typeof resolved !== 'boolean') {\n issues.push({ path, message: `${label}必须是开关值。` })\n return undefined\n }\n return resolved\n case 'const':\n if (!sameJson(resolved, node.value)) issues.push({ path, message: `${label}的取值无效。` })\n return resolved\n case 'union':\n if (!node.list.some((option) => option.type === 'const' && sameJson(option.value, resolved))) {\n issues.push({ path, message: `${label}的取值无效。` })\n }\n return resolved\n case 'array': {\n if (!Array.isArray(resolved)) {\n issues.push({ path, message: `${label}必须是列表。` })\n return undefined\n }\n return resolved.flatMap((item, index) => {\n const next = validateNode(node.inner, item, `${path}[${index}]`, `${label}第 ${index + 1} 项`, issues)\n return next === undefined ? [] : [next]\n })\n }\n }\n}\n\n/**\n * Validates a configuration value against a document and fills declared defaults. Secret fields are not part of the\n * stored value; callers pass them through the credential store instead.\n */\nexport const validateConfigValue = (\n document: ConfigSchemaDocument,\n value: JsonValue | undefined,\n options: { readonly skipKeys?: readonly string[] } = {},\n): { readonly value: Readonly<Record<string, JsonValue>>; readonly issues: readonly ConfigValidationIssue[] } => {\n const skip = new Set(options.skipKeys ?? [])\n const issues: ConfigValidationIssue[] = []\n const input = isRecord(value) ? value : value === undefined || value === null ? {} : undefined\n if (input === undefined) return { value: {}, issues: [{ path: '', message: '配置必须是对象。' }] }\n const filtered: ConfigSchemaDocument = {\n ...document,\n dict: Object.fromEntries(Object.entries(document.dict).filter(([key]) => !skip.has(key))),\n }\n const output = validateNode(filtered, input, '', '配置', issues)\n return { value: isRecord(output) ? output : {}, issues }\n}\n\n/** Throws the first validation issue as a user-readable error. */\nexport const parseConfigValue = (\n document: ConfigSchemaDocument,\n value: JsonValue | undefined,\n options: { readonly skipKeys?: readonly string[] } = {},\n): Readonly<Record<string, JsonValue>> => {\n const result = validateConfigValue(document, value, options)\n const first = result.issues[0]\n if (first) throw new TypeError(first.message)\n return result.value\n}\n\ninterface FieldOptions<Value extends JsonValue> {\n readonly hint?: string\n readonly default?: Value\n readonly required?: boolean\n readonly advanced?: boolean\n readonly group?: string\n /** `false` for billing or moderation switches only an administrator should change. */\n readonly agentWritable?: boolean\n}\n\nconst fieldMeta = <Value extends JsonValue>(title: string, options: FieldOptions<Value> = {}): ConfigSchemaMeta => ({\n description: title,\n ...(options.hint === undefined ? {} : { hint: options.hint }),\n ...(options.default === undefined ? {} : { default: options.default }),\n ...(options.required === undefined ? {} : { required: options.required }),\n ...(options.advanced === undefined ? {} : { advanced: options.advanced }),\n ...(options.group === undefined ? {} : { group: options.group }),\n ...(options.agentWritable === undefined ? {} : { agentWritable: options.agentWritable }),\n})\n\n/** Builds serialized Schemastery documents without depending on the Schemastery runtime. */\nexport const configSchema = {\n object: (dict: Readonly<Record<string, ConfigSchemaNode>>): ConfigSchemaDocument => ({ type: 'object', dict }),\n string: (title: string, options: FieldOptions<string> & { readonly multiline?: boolean } = {}): ConfigSchemaNode => ({\n type: 'string',\n meta: { ...fieldMeta(title, options), ...(options.multiline ? { role: 'textarea' } : {}) },\n }),\n secret: (title: string, options: Omit<FieldOptions<string>, 'default'> = {}): ConfigSchemaNode => ({\n type: 'string',\n meta: { ...fieldMeta(title, options), role: 'secret' },\n }),\n number: (\n title: string,\n options: FieldOptions<number> & { readonly min?: number; readonly max?: number; readonly integer?: boolean } = {},\n ): ConfigSchemaNode => ({\n type: options.integer ? 'natural' : 'number',\n meta: {\n ...fieldMeta(title, options),\n ...(options.min === undefined ? {} : { min: options.min }),\n ...(options.max === undefined ? {} : { max: options.max }),\n },\n }),\n boolean: (title: string, options: FieldOptions<boolean> = {}): ConfigSchemaNode => ({\n type: 'boolean',\n meta: fieldMeta(title, options),\n }),\n enum: (\n title: string,\n choices: readonly { readonly value: string | number; readonly label: string }[],\n options: FieldOptions<string | number> = {},\n ): ConfigSchemaNode => ({\n type: 'union',\n list: choices.map((choice) => ({ type: 'const', value: choice.value, meta: { description: choice.label } })),\n meta: fieldMeta(title, options),\n }),\n} as const\n","import { z } from 'zod'\n\n/**\n * Host capability level this build implements. A Revision that declares `requires.sdk` above it is rejected at\n * import with an \"upgrade NekroNXT\" message instead of an opaque schema error. Bump when a Manifest capability\n * ships; never reuse a level for a different meaning. Level 7 is Manifest V7 (host instance + agent attachments); level 8 adds the asset library, image info, tool result\n * images, the search index and host-layer model calls. Level 9 adds the structured logger and explicit chat commands. Level 10 adds version lineage, the data version with its\n * migration hook and administrator-only commands. Level 11 lists the pictures of an inbound message to inbound hooks.\n * Level 12 adds credential placeholders (`secrets.placeholder`) that `http.fetch` fills for the credential's domains.\n * Level 13 adds outbound processing (`harness.onOutbound`, `permissions.agent.outbound`).\n * Level 14 adds work files (`files`), reading Asset bytes (`assets.read`), high-detail tool images (`toolImages`),\n * long-running tools (`timeoutSeconds`, `execute(args, { signal, progress })`), media processing (`media`), command\n * profiles (`commands`) and speech to text (`speech`).\n */\nexport const EXTENSION_SDK_LEVEL = 14\n\n/** Work files, Asset reads, high-detail tool images, tool time limits, media, commands and speech need this level. */\nexport const EXTENSION_FILES_SDK_LEVEL = 14\n\n/** Outbound processing needs this level; packages that declare `permissions.agent.outbound` declare it. */\nexport const EXTENSION_OUTBOUND_SDK_LEVEL = 13\n\n/** Lineage, `dataVersion` and administrator-only commands need this level; packages that carry them declare it. */\nexport const EXTENSION_GOVERNANCE_SDK_LEVEL = 10\n\n/**\n * The first NekroNXT version of each capability level, so users read \"needs NekroNXT 0.5.0\" rather than a level\n * number. Add the row for a new level in the change that raises EXTENSION_SDK_LEVEL; a test keeps the two in step.\n */\nexport const EXTENSION_SDK_RELEASES: readonly { readonly level: number; readonly version: string }[] = [\n { level: 6, version: '0.3.0' },\n { level: 7, version: '0.4.0' },\n { level: 8, version: '0.5.0' },\n { level: 9, version: '0.6.0' },\n { level: 10, version: '0.6.0' },\n { level: 11, version: '0.6.0' },\n { level: 12, version: '0.7.0' },\n { level: 13, version: '0.7.0' },\n { level: 14, version: '0.8.0' },\n]\n\n/** The oldest NekroNXT version that supports `level`; undefined for a level no release supports yet. */\nexport const extensionSdkVersion = (level: number): string | undefined =>\n EXTENSION_SDK_RELEASES.find((release) => release.level >= level)?.version\n\n/** Manifest V7 itself; extensions that use nothing newer need this level. */\nexport const EXTENSION_SDK_BASE_LEVEL = 7\n\nexport const ExtensionRequiresSchema = z.object({ sdk: z.number().int().min(1).max(1000) }).strict()\nexport type ExtensionRequires = z.output<typeof ExtensionRequiresSchema>\n\n/** `api.example.com` or `*.example.com` (subdomains only); lower-case DNS labels, no scheme, port or path. */\nexport const ExtensionNetworkDomainSchema = z\n .string()\n .trim()\n .toLowerCase()\n .max(253)\n .regex(/^(\\*\\.)?(?=.{1,253}$)([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+$/u, {\n message: '网络域名必须是 api.example.com 或 *.example.com 形式,不含协议、端口和路径。',\n })\n\nexport const ExtensionNetworkCapabilitySchema = z.discriminatedUnion('mode', [\n z\n .object({\n mode: z.literal('domains'),\n domains: z.array(ExtensionNetworkDomainSchema).min(1).max(32),\n })\n .strict(),\n z\n .object({\n mode: z.literal('config'),\n /** Top-level config fields whose current value is a URL or host the user typed. */\n fields: z.array(z.string().trim().min(1).max(64)).min(1).max(8),\n })\n .strict(),\n z\n .object({\n mode: z.literal('unrestricted'),\n /** Shown to the user next to the risk acknowledgement. */\n purpose: z.string().trim().min(4).max(200),\n })\n .strict(),\n])\nexport type ExtensionNetworkCapability = z.output<typeof ExtensionNetworkCapabilitySchema>\n\nexport const EXTENSION_STORAGE_SCOPES = ['agent', 'channel', 'member', 'shared'] as const\nexport const ExtensionStorageScopeSchema = z.enum(EXTENSION_STORAGE_SCOPES)\nexport type ExtensionStorageScope = z.output<typeof ExtensionStorageScopeSchema>\n\nexport const EXTENSION_STORAGE_DEFAULT_QUOTA_BYTES = 8 * 1024 * 1024\nexport const EXTENSION_STORAGE_MAX_QUOTA_BYTES = 64 * 1024 * 1024\n\nexport const ExtensionStorageCapabilitySchema = z\n .object({\n scopes: z.array(ExtensionStorageScopeSchema).min(1).max(EXTENSION_STORAGE_SCOPES.length),\n quotaBytes: z.number().int().min(1024).max(EXTENSION_STORAGE_MAX_QUOTA_BYTES).optional(),\n })\n .strict()\n .refine((value) => new Set(value.scopes).size === value.scopes.length, '存储作用域不能重复。')\nexport type ExtensionStorageCapability = z.output<typeof ExtensionStorageCapabilitySchema>\n\nexport const EXTENSION_CONTEXT_STATIC_MAX_CHARS = 4000\nexport const EXTENSION_CONTEXT_DYNAMIC_MAX_CHARS = 2000\n\nexport const ExtensionContextContributionSchema = z\n .object({\n name: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{0,39}$/u, '上下文名称只能使用小写字母、数字和连字符。'),\n kind: z.enum(['static', 'dynamic']),\n maxChars: z.number().int().min(1).max(EXTENSION_CONTEXT_STATIC_MAX_CHARS),\n })\n .strict()\n .refine(\n (value) => value.kind === 'static' || value.maxChars <= EXTENSION_CONTEXT_DYNAMIC_MAX_CHARS,\n `动态上下文最多 ${EXTENSION_CONTEXT_DYNAMIC_MAX_CHARS} 字。`,\n )\nexport type ExtensionContextContribution = z.output<typeof ExtensionContextContributionSchema>\n\nexport const EXTENSION_LLM_MAX_CALLS_PER_TURN = 20\nexport const EXTENSION_LLM_MAX_OUTPUT_TOKENS = 8192\n\nexport const ExtensionLlmCapabilitySchema = z\n .object({\n maxCallsPerTurn: z.number().int().min(1).max(EXTENSION_LLM_MAX_CALLS_PER_TURN),\n maxOutputTokens: z.number().int().min(64).max(EXTENSION_LLM_MAX_OUTPUT_TOKENS),\n })\n .strict()\nexport type ExtensionLlmCapability = z.output<typeof ExtensionLlmCapabilitySchema>\n\nexport const EXTENSION_INBOUND_HOOK_MAX_TIMEOUT_MS = 15_000\n\nexport const ExtensionInboundHookCapabilitySchema = z\n .object({\n /** `triggered`: only messages that would wake the agent anyway; `all`: every message in bound channels. */\n reads: z.enum(['triggered', 'all']),\n mayHide: z.boolean(),\n mayForceTrigger: z.boolean(),\n timeoutMs: z.number().int().min(100).max(EXTENSION_INBOUND_HOOK_MAX_TIMEOUT_MS),\n })\n .strict()\nexport type ExtensionInboundHookCapability = z.output<typeof ExtensionInboundHookCapabilitySchema>\n\nexport const EXTENSION_OUTBOUND_MAX_TIMEOUT_MS = 15_000\n\n/**\n * Outbound processing of the agent's own messages. `read` sees each message after it was delivered; `transform` may\n * replace its content or append messages before it is sent; `cancel` may stop it. `onTimeout` decides what happens\n * when the handler times out or throws before sending: `send` (default) sends the message as it is.\n */\nexport const ExtensionOutboundCapabilitySchema = z\n .object({\n read: z.literal(true).optional(),\n transform: z.literal(true).optional(),\n cancel: z.literal(true).optional(),\n timeoutMs: z.number().int().min(100).max(EXTENSION_OUTBOUND_MAX_TIMEOUT_MS),\n onTimeout: z.enum(['send', 'cancel']).optional(),\n })\n .strict()\n .refine(\n (value) => value.read === true || value.transform === true || value.cancel === true,\n 'outbound 至少声明 read、transform 或 cancel 中的一项。',\n )\nexport type ExtensionOutboundCapability = z.output<typeof ExtensionOutboundCapabilitySchema>\n\n/** Whether the extension takes part before sending (and so in the agent's processing order). */\nexport const outboundProcessesBeforeSend = (outbound: ExtensionOutboundCapability | undefined): boolean =>\n outbound?.transform === true || outbound?.cancel === true\n\nexport const EXTENSION_JOB_MAX_RUNTIME = 50\n\nexport const ExtensionDeclaredJobSchema = z\n .object({\n id: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{0,39}$/u, '定时任务 id 只能使用小写字母、数字和连字符。'),\n label: z.string().trim().min(1).max(200),\n cron: z.string().trim().min(9).max(120),\n timezone: z.string().trim().min(1).max(64).optional(),\n })\n .strict()\nexport type ExtensionDeclaredJob = z.output<typeof ExtensionDeclaredJobSchema>\n\nexport const ExtensionJobsCapabilitySchema = z\n .object({\n /** Fixed schedules; each fires in every channel bound to the agent that enables the extension. */\n declared: z\n .array(ExtensionDeclaredJobSchema)\n .max(8)\n .refine((jobs) => new Set(jobs.map(({ id }) => id)).size === jobs.length, '定时任务 id 不能重复。')\n .optional(),\n /** Jobs the extension creates at runtime (`ctx.nxt.jobs.schedule`), at most this many active per agent. */\n runtime: z\n .object({ maxActive: z.number().int().min(1).max(EXTENSION_JOB_MAX_RUNTIME) })\n .strict()\n .optional(),\n })\n .strict()\nexport type ExtensionJobsCapability = z.output<typeof ExtensionJobsCapabilitySchema>\n\nconst AdapterKeySchema = z.string().trim().min(1).max(64)\n\nexport const ExtensionPlatformCapabilitySchema = z\n .object({\n /** Typed actions an Adapter declares, as `{ adapter, action }`. */\n actions: z\n .array(z.object({ adapter: AdapterKeySchema, action: z.string().regex(/^[a-z0-9_]{1,64}$/u) }).strict())\n .max(32)\n .default([]),\n /** Adapters whose raw API passthrough the extension may call. */\n raw: z.array(AdapterKeySchema).max(8).default([]),\n })\n .strict()\nexport type ExtensionPlatformCapability = z.output<typeof ExtensionPlatformCapabilitySchema>\n\nexport const EXTENSION_ASSET_LIBRARY_DEFAULT_QUOTA_BYTES = 2 * 1024 * 1024 * 1024\nexport const EXTENSION_ASSET_LIBRARY_MAX_QUOTA_BYTES = 32 * 1024 * 1024 * 1024\n\nexport const ExtensionAssetLibraryCapabilitySchema = z\n .object({\n quotaBytes: z\n .number()\n .int()\n .min(1024 * 1024)\n .max(EXTENSION_ASSET_LIBRARY_MAX_QUOTA_BYTES)\n .optional(),\n })\n .strict()\nexport type ExtensionAssetLibraryCapability = z.output<typeof ExtensionAssetLibraryCapabilitySchema>\n\n/**\n * `write` creates Assets in the current channel; `library` keeps Assets in the extension's own library so they can be\n * used in any channel later; `read` reads the bytes of Assets the current channel can see or the library holds.\n */\nexport const ExtensionAssetsCapabilitySchema = z\n .object({\n write: z.literal(true).optional(),\n library: ExtensionAssetLibraryCapabilitySchema.optional(),\n read: z.literal(true).optional(),\n })\n .strict()\n .refine(\n (value) => value.write !== undefined || value.library !== undefined || value.read !== undefined,\n 'assets 至少声明 write、library 或 read。',\n )\nexport type ExtensionAssetsCapability = z.output<typeof ExtensionAssetsCapabilitySchema>\n\nexport const EXTENSION_FILES_DEFAULT_TEMP_QUOTA_BYTES = 1024 * 1024 * 1024\nexport const EXTENSION_FILES_DEFAULT_CACHE_QUOTA_BYTES = 1024 * 1024 * 1024\nexport const EXTENSION_FILES_MAX_QUOTA_BYTES = 16 * 1024 * 1024 * 1024\n\nconst FilesQuotaSchema = z\n .number()\n .int()\n .min(1024 * 1024)\n .max(EXTENSION_FILES_MAX_QUOTA_BYTES)\n\n/**\n * Work files passed between services by `fileId`. Temporary files expire a day after they are written; cache entries\n * stay until the cache quota is full, then the least recently used go first.\n */\nexport const ExtensionFilesCapabilitySchema = z\n .object({ tempQuotaBytes: FilesQuotaSchema.optional(), cacheQuotaBytes: FilesQuotaSchema.optional() })\n .strict()\nexport type ExtensionFilesCapability = z.output<typeof ExtensionFilesCapabilitySchema>\n\n/** Tool result pictures with `detail: 'high'` reach the model at up to 2048 px on the long side. */\nexport const ExtensionToolImagesCapabilitySchema = z.object({ highDetail: z.literal(true) }).strict()\nexport type ExtensionToolImagesCapability = z.output<typeof ExtensionToolImagesCapabilitySchema>\n\n/**\n * Add-ons (附加功能) whose capability an extension can use. The ids match `AddonIdSchema` in host-api; they are\n * repeated here so manifests validate without it.\n */\nexport type ExtensionAddonId = 'media' | 'speech'\n\n/**\n * Command profiles extensions may run (`nxt.commands`, 附加功能 F7), and the add-on that provides each program. A new\n * program needs a profile on the server and a row here.\n */\nexport const ExtensionCommandProfileIdSchema = z.enum(['ffmpeg', 'ffprobe'], {\n message: '命令档案只能是 ffmpeg、ffprobe。',\n})\nexport type ExtensionCommandProfileId = z.output<typeof ExtensionCommandProfileIdSchema>\n\nexport const EXTENSION_COMMAND_PROFILES: Readonly<Record<ExtensionCommandProfileId, ExtensionAddonId>> = {\n ffmpeg: 'media',\n ffprobe: 'media',\n}\n\n/** Programs run through their command profiles: confined to the call's own files, without network. */\nexport const ExtensionCommandsCapabilitySchema = z\n .object({\n profiles: z\n .array(ExtensionCommandProfileIdSchema)\n .min(1)\n .max(ExtensionCommandProfileIdSchema.options.length)\n .refine((value) => new Set(value).size === value.length, '命令档案不能重复。'),\n })\n .strict()\nexport type ExtensionCommandsCapability = z.output<typeof ExtensionCommandsCapabilitySchema>\n\nexport const EXTENSION_SPEECH_MAX_CALLS_PER_MINUTE = 60\nexport const EXTENSION_SPEECH_DEFAULT_CALLS_PER_MINUTE = 10\n\n/** Speech to text with the provider chosen in 设置 → 附加功能, which may be a cloud service. */\nexport const ExtensionSpeechCapabilitySchema = z\n .object({\n maxCallsPerMinute: z\n .number()\n .int()\n .min(1)\n .max(EXTENSION_SPEECH_MAX_CALLS_PER_MINUTE)\n .default(EXTENSION_SPEECH_DEFAULT_CALLS_PER_MINUTE),\n })\n .strict()\nexport type ExtensionSpeechCapability = z.output<typeof ExtensionSpeechCapabilitySchema>\n\nconst IndexNameSchema = z\n .string()\n .trim()\n .regex(/^[a-z][a-z0-9_]{0,31}$/u, '索引、字段和过滤项名称只能使用小写字母、数字和下划线,以字母开头。')\n\nexport const EXTENSION_INDEX_MAX_TEXT_FIELDS = 4\nexport const EXTENSION_INDEX_MAX_FILTERS = 4\n\n/**\n * One searchable collection. Text fields are matched by keywords (and vectors when the Host has them enabled); weights\n * rank keyword matches. Filter fields hold short keyword values, possibly several per document.\n */\nexport const ExtensionIndexCollectionSchema = z\n .object({\n name: IndexNameSchema,\n fields: z\n .array(z.object({ name: IndexNameSchema, weight: z.number().min(0.1).max(10).default(1) }).strict())\n .min(1)\n .max(EXTENSION_INDEX_MAX_TEXT_FIELDS),\n filters: z.array(IndexNameSchema).max(EXTENSION_INDEX_MAX_FILTERS).default([]),\n })\n .strict()\n .superRefine((value, context) => {\n const names = [...value.fields.map(({ name }) => name), ...value.filters]\n if (new Set(names).size !== names.length) {\n context.addIssue({ code: 'custom', message: '同一索引里的字段与过滤项不能重名。' })\n }\n })\nexport type ExtensionIndexCollection = z.output<typeof ExtensionIndexCollectionSchema>\n\nexport const ExtensionIndexCapabilitySchema = z\n .object({\n collections: z\n .array(ExtensionIndexCollectionSchema)\n .min(1)\n .max(4)\n .refine((value) => new Set(value.map(({ name }) => name)).size === value.length, '索引名称不能重复。'),\n })\n .strict()\nexport type ExtensionIndexCapability = z.output<typeof ExtensionIndexCapabilitySchema>\n\nexport const EXTENSION_MODEL_MAX_CALLS_PER_MINUTE = 120\n\n/** Calls to a model the user picks from the Host's configured models, with images allowed; host layer only. */\nexport const ExtensionModelsCapabilitySchema = z\n .object({\n maxCallsPerMinute: z.number().int().min(1).max(EXTENSION_MODEL_MAX_CALLS_PER_MINUTE),\n maxOutputTokens: z.number().int().min(64).max(EXTENSION_LLM_MAX_OUTPUT_TOKENS),\n })\n .strict()\nexport type ExtensionModelsCapability = z.output<typeof ExtensionModelsCapabilitySchema>\n\n/**\n * A header or environment value: literal text, the current value of a `meta.role: 'secret'` config field, or a named\n * credential (by id or name) that the agent may use.\n */\nexport const ExtensionMcpValueSchema = z.union([\n z.string().max(4096),\n z.object({ secret: z.string().trim().min(1).max(64) }).strict(),\n z.object({ credential: z.string().trim().min(1).max(64) }).strict(),\n])\nexport type ExtensionMcpValue = z.output<typeof ExtensionMcpValueSchema>\n\n/** Becomes the model-facing tool prefix `mcp__<name>__`. */\nexport const ExtensionMcpServerNameSchema = z.string().regex(/^[A-Za-z0-9_-]{1,32}$/u)\n\nconst McpValueMapSchema = z\n .record(z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]{0,127}$/u), ExtensionMcpValueSchema)\n .refine((value) => Object.keys(value).length <= 32, '最多 32 项。')\n .default({})\n\nexport const ExtensionMcpServerSchema = z.discriminatedUnion('transport', [\n z\n .object({\n transport: z.literal('streamable-http'),\n name: ExtensionMcpServerNameSchema,\n url: z\n .string()\n .url()\n .refine((value) => /^https?:\\/\\//iu.test(value), 'MCP 地址必须是 http 或 https。'),\n headers: McpValueMapSchema,\n })\n .strict(),\n z\n .object({\n transport: z.literal('stdio'),\n name: ExtensionMcpServerNameSchema,\n command: z.string().trim().min(1).max(512),\n args: z.array(z.string().max(4096)).max(64).default([]),\n env: McpValueMapSchema,\n })\n .strict(),\n])\nexport type ExtensionMcpServer = z.output<typeof ExtensionMcpServerSchema>\n\n/**\n * MCP servers the Host connects for the agent while the extension is enabled; their tools appear as\n * `mcp__<name>__<tool>`. `stdio` runs a program on the Host and is only created from the administrator's form.\n */\nexport const ExtensionMcpCapabilitySchema = z\n .object({\n servers: z\n .array(ExtensionMcpServerSchema)\n .min(1)\n .max(8)\n .refine((value) => new Set(value.map(({ name }) => name)).size === value.length, 'MCP 服务名称不能重复。'),\n })\n .strict()\nexport type ExtensionMcpCapability = z.output<typeof ExtensionMcpCapabilitySchema>\n\n/** One header or environment row of the administrator's form; secret rows become credential config fields. */\nconst McpFormValueSchema = z\n .object({\n name: z.string().regex(/^[A-Za-z_][A-Za-z0-9_-]{0,127}$/u, '名称只能包含字母、数字、下划线和连字符。'),\n value: z.string().max(4096),\n secret: z.boolean().default(false),\n /** Takes the value from this named credential instead; `value` and `secret` are then ignored. */\n credential: z.string().trim().min(1).max(64).optional(),\n })\n .strict()\n\nexport const McpServerFormSchema = z.discriminatedUnion('transport', [\n z\n .object({\n transport: z.literal('streamable-http'),\n name: ExtensionMcpServerNameSchema,\n url: z.string().url(),\n headers: z.array(McpFormValueSchema).max(32).default([]),\n })\n .strict(),\n z\n .object({\n transport: z.literal('stdio'),\n name: ExtensionMcpServerNameSchema,\n command: z.string().trim().min(1).max(512),\n args: z.array(z.string().max(4096)).max(64).default([]),\n env: z.array(McpFormValueSchema).max(32).default([]),\n })\n .strict(),\n])\nexport type McpServerForm = z.output<typeof McpServerFormSchema>\n\n/** Secret config fields an MCP declaration reads. */\nexport const mcpSecretFields = (mcp: ExtensionMcpCapability | undefined): readonly string[] => [\n ...new Set(\n (mcp?.servers ?? []).flatMap((server) =>\n Object.values(server.transport === 'stdio' ? server.env : server.headers).flatMap((value) =>\n typeof value === 'string' || !('secret' in value) ? [] : [value.secret],\n ),\n ),\n ),\n]\n\n/** What a server connects to; changing it needs a new approval, unlike its credentials. */\nconst mcpTarget = (server: ExtensionMcpServer): string =>\n server.transport === 'stdio'\n ? JSON.stringify(['stdio', server.name, server.command, server.args])\n : JSON.stringify(['streamable-http', server.name, server.url])\n\n/**\n * Agent-layer capabilities (`permissions.agent`): what the extension may do inside the agents it is enabled for. An\n * absent field means the extension cannot use that capability.\n */\nexport const ExtensionCapabilitiesSchema = z\n .object({\n network: ExtensionNetworkCapabilitySchema.optional(),\n storage: ExtensionStorageCapabilitySchema.optional(),\n assets: ExtensionAssetsCapabilitySchema.optional(),\n files: ExtensionFilesCapabilitySchema.optional(),\n toolImages: ExtensionToolImagesCapabilitySchema.optional(),\n /** `nxt.media`: probe, frames, audio and convert on the media add-on. */\n media: z.literal(true).optional(),\n commands: ExtensionCommandsCapabilitySchema.optional(),\n speech: ExtensionSpeechCapabilitySchema.optional(),\n index: ExtensionIndexCapabilitySchema.optional(),\n /** Host layer only; the agent layer uses `llm`, which runs on the agent's own model. */\n models: ExtensionModelsCapabilitySchema.optional(),\n history: z\n .object({ read: z.literal(true) })\n .strict()\n .optional(),\n inboundHook: ExtensionInboundHookCapabilitySchema.optional(),\n outbound: ExtensionOutboundCapabilitySchema.optional(),\n jobs: ExtensionJobsCapabilitySchema.optional(),\n platform: ExtensionPlatformCapabilitySchema.optional(),\n llm: ExtensionLlmCapabilitySchema.optional(),\n mcp: ExtensionMcpCapabilitySchema.optional(),\n context: z\n .array(ExtensionContextContributionSchema)\n .max(8)\n .refine((value) => new Set(value.map(({ name }) => name)).size === value.length, '上下文名称不能重复。')\n .optional(),\n })\n .strict()\nexport type ExtensionCapabilities = z.output<typeof ExtensionCapabilitiesSchema>\n\n/**\n * Host-layer capabilities (`permissions.host`): what the extension's single host instance may do through the `nxt`\n * service its factory receives. Host storage is the extension's `shared` partition.\n */\nexport const HostLayerCapabilitiesSchema = z\n .object({\n network: ExtensionNetworkCapabilitySchema.optional(),\n storage: z\n .object({ quotaBytes: z.number().int().min(1024).max(EXTENSION_STORAGE_MAX_QUOTA_BYTES).optional() })\n .strict()\n .optional(),\n /**\n * The same library agent attachments use; the host instance lists and imports into it. `read` reads the bytes of\n * library Assets.\n */\n assets: z\n .object({ library: ExtensionAssetLibraryCapabilitySchema.optional(), read: z.literal(true).optional() })\n .strict()\n .refine((value) => value.library !== undefined || value.read !== undefined, 'assets 至少声明 library 或 read。')\n .optional(),\n files: ExtensionFilesCapabilitySchema.optional(),\n media: z.literal(true).optional(),\n commands: ExtensionCommandsCapabilitySchema.optional(),\n speech: ExtensionSpeechCapabilitySchema.optional(),\n /** The same collections agent attachments declare; pages search and maintain them. */\n index: ExtensionIndexCapabilitySchema.optional(),\n models: ExtensionModelsCapabilitySchema.optional(),\n })\n .strict()\nexport type HostLayerCapabilities = z.output<typeof HostLayerCapabilitiesSchema>\n\n/** Host-layer capabilities in the agent-capability shape, so digests, expansion and summaries share one implementation. */\nexport const hostLayerAsCapabilities = (host: HostLayerCapabilities | undefined): ExtensionCapabilities | undefined =>\n host === undefined || Object.keys(host).length === 0\n ? undefined\n : {\n ...(host.network === undefined ? {} : { network: host.network }),\n ...(host.storage === undefined\n ? {}\n : {\n storage: {\n scopes: ['shared'],\n ...(host.storage.quotaBytes === undefined ? {} : { quotaBytes: host.storage.quotaBytes }),\n },\n }),\n ...(host.assets === undefined\n ? {}\n : {\n assets: {\n ...(host.assets.library === undefined ? {} : { library: host.assets.library }),\n ...(host.assets.read === undefined ? {} : { read: host.assets.read }),\n },\n }),\n ...(host.files === undefined ? {} : { files: host.files }),\n ...(host.media === undefined ? {} : { media: host.media }),\n ...(host.commands === undefined ? {} : { commands: host.commands }),\n ...(host.speech === undefined ? {} : { speech: host.speech }),\n ...(host.index === undefined ? {} : { index: host.index }),\n ...(host.models === undefined ? {} : { models: host.models }),\n }\n\nconst NETWORK_MODE_RANK = { domains: 0, config: 1, unrestricted: 2 } as const\n\nconst networkExpands = (\n previous: ExtensionNetworkCapability | undefined,\n next: ExtensionNetworkCapability | undefined,\n): boolean => {\n if (next === undefined) return false\n if (previous === undefined) return true\n if (NETWORK_MODE_RANK[next.mode] !== NETWORK_MODE_RANK[previous.mode]) {\n return NETWORK_MODE_RANK[next.mode] > NETWORK_MODE_RANK[previous.mode]\n }\n if (next.mode === 'domains' && previous.mode === 'domains') {\n return next.domains.some((domain) => !previous.domains.includes(domain))\n }\n if (next.mode === 'config' && previous.mode === 'config') {\n return next.fields.some((field) => !previous.fields.includes(field))\n }\n return false\n}\n\n/**\n * Whether `next` asks for something an approval of `previous` did not cover. Narrowing never needs approval;\n * storage quota is bounded by the Host maximum and is not an expansion. Context contributions are capped text\n * shown in the trace, so adding one is not an expansion either.\n */\nexport const extensionCapabilitiesExpand = (\n previous: ExtensionCapabilities | undefined,\n next: ExtensionCapabilities | undefined,\n): boolean => {\n if (next === undefined) return false\n if (networkExpands(previous?.network, next.network)) return true\n if (next.storage?.scopes.some((scope) => !(previous?.storage?.scopes ?? []).includes(scope))) return true\n if (next.assets?.write !== undefined && previous?.assets?.write === undefined) return true\n if (next.assets?.library !== undefined && previous?.assets?.library === undefined) return true\n if (next.assets?.read !== undefined && previous?.assets?.read === undefined) return true\n if (next.files !== undefined && previous?.files === undefined) return true\n if (next.toolImages !== undefined && previous?.toolImages === undefined) return true\n if (next.media !== undefined && previous?.media === undefined) return true\n if ((next.commands?.profiles ?? []).some((profile) => !(previous?.commands?.profiles ?? []).includes(profile))) {\n return true\n }\n if (\n next.speech !== undefined &&\n (previous?.speech === undefined || next.speech.maxCallsPerMinute > previous.speech.maxCallsPerMinute)\n ) {\n return true\n }\n if (\n next.models !== undefined &&\n (previous?.models === undefined ||\n next.models.maxCallsPerMinute > previous.models.maxCallsPerMinute ||\n next.models.maxOutputTokens > previous.models.maxOutputTokens)\n ) {\n return true\n }\n if (next.history !== undefined && previous?.history === undefined) return true\n const platformKey = ({ adapter, action }: { readonly adapter: string; readonly action: string }) =>\n `${adapter}:${action}`\n const previousActions = new Set((previous?.platform?.actions ?? []).map(platformKey))\n if ((next.platform?.actions ?? []).some((entry) => !previousActions.has(platformKey(entry)))) return true\n if ((next.platform?.raw ?? []).some((adapter) => !(previous?.platform?.raw ?? []).includes(adapter))) return true\n const hook = next.inboundHook\n const previousHook = previous?.inboundHook\n if (\n hook !== undefined &&\n (previousHook === undefined ||\n (hook.reads === 'all' && previousHook.reads === 'triggered') ||\n (hook.mayHide && !previousHook.mayHide) ||\n (hook.mayForceTrigger && !previousHook.mayForceTrigger))\n ) {\n return true\n }\n const outbound = next.outbound\n const previousOutbound = previous?.outbound\n if (\n outbound !== undefined &&\n (previousOutbound === undefined ||\n (outbound.read === true && previousOutbound.read !== true) ||\n (outbound.transform === true && previousOutbound.transform !== true) ||\n (outbound.cancel === true && previousOutbound.cancel !== true) ||\n (outbound.onTimeout === 'cancel' && previousOutbound.onTimeout !== 'cancel'))\n ) {\n return true\n }\n if (\n next.jobs?.runtime !== undefined &&\n (previous?.jobs?.runtime === undefined || next.jobs.runtime.maxActive > previous.jobs.runtime.maxActive)\n ) {\n return true\n }\n const previousMcp = new Set((previous?.mcp?.servers ?? []).map(mcpTarget))\n if ((next.mcp?.servers ?? []).some((server) => !previousMcp.has(mcpTarget(server)))) return true\n if (\n next.llm !== undefined &&\n (previous?.llm === undefined ||\n next.llm.maxCallsPerTurn > previous.llm.maxCallsPerTurn ||\n next.llm.maxOutputTokens > previous.llm.maxOutputTokens)\n ) {\n return true\n }\n return false\n}\n\nconst formatLibraryQuota = (bytes: number): string =>\n bytes >= 1024 * 1024 * 1024\n ? `${+(bytes / 1024 / 1024 / 1024).toFixed(1)} GB`\n : `${Math.round(bytes / 1024 / 1024)} MB`\n\n/** Capability risk tiers shown on the approval page (§7 of the capability decision). */\nexport type ExtensionCapabilityRisk = 'normal' | 'sensitive' | 'high'\n\nexport interface ExtensionCapabilitySummaryItem {\n readonly key: string\n readonly risk: ExtensionCapabilityRisk\n readonly label: string\n readonly detail?: string\n /** For a high-risk capability with limits: what it stays within, shown where the user accepts the risk. */\n readonly scope?: string\n}\n\n/**\n * Add-ons the declared capabilities need (附加功能 F13), in a stable order: `media` needs 媒体处理, `speech` needs\n * 语音识别, and each command profile needs the add-on that provides its program. Pass both layers, host-layer ones\n * through {@link hostLayerAsCapabilities}.\n */\nexport const requiredExtensionAddons = (\n ...layers: readonly (ExtensionCapabilities | undefined)[]\n): readonly ExtensionAddonId[] => {\n const needed = new Set<ExtensionAddonId>()\n for (const capabilities of layers) {\n if (capabilities?.media !== undefined) needed.add('media')\n if (capabilities?.speech !== undefined) needed.add('speech')\n for (const profile of capabilities?.commands?.profiles ?? []) needed.add(EXTENSION_COMMAND_PROFILES[profile])\n }\n return (['media', 'speech'] as const).filter((id) => needed.has(id))\n}\n\n/**\n * User-facing summary of declared capabilities, in a stable order, for approval and inspection pages. `layer: 'host'`\n * phrases host-layer capabilities (passed through {@link hostLayerAsCapabilities}) for the host instance.\n */\nexport const summarizeExtensionCapabilities = (\n capabilities: ExtensionCapabilities | undefined,\n options: {\n readonly layer?: 'host' | 'agent'\n /** Display name of a config field, so `network.mode: 'config'` names the fields as the user knows them. */\n readonly fieldTitle?: (key: string) => string\n } = {},\n): readonly ExtensionCapabilitySummaryItem[] => {\n if (capabilities === undefined) return []\n const items: ExtensionCapabilitySummaryItem[] = []\n const network = capabilities.network\n if (network?.mode === 'domains') {\n items.push({ key: 'network', risk: 'normal', label: '访问指定网站', detail: network.domains.join('、') })\n } else if (network?.mode === 'config') {\n items.push({\n key: 'network',\n risk: 'normal',\n label: '访问你在配置中填写的地址',\n detail: network.fields.map((field) => options.fieldTitle?.(field) ?? field).join('、'),\n })\n } else if (network?.mode === 'unrestricted') {\n items.push({ key: 'network', risk: 'high', label: '访问任意公网地址', detail: network.purpose })\n }\n if (capabilities.storage !== undefined && options.layer === 'host') {\n items.push({ key: 'storage', risk: 'normal', label: '在本机保存扩展数据,页面与启用它的智能体共用' })\n } else if (capabilities.storage !== undefined) {\n const shared = capabilities.storage.scopes.includes('shared')\n items.push({\n key: 'storage',\n risk: shared ? 'sensitive' : 'normal',\n label: shared ? '保存数据,并在启用它的智能体之间共享' : '为这个智能体保存数据',\n })\n }\n if (capabilities.assets?.write !== undefined)\n items.push({ key: 'assets', risk: 'normal', label: '在当前频道生成图片或文件' })\n if (capabilities.assets?.library !== undefined) {\n items.push({\n key: 'assets.library',\n risk: 'sensitive',\n label: '把频道里的图片收进扩展资源库,之后可以在其他频道使用',\n detail: `最多 ${formatLibraryQuota(capabilities.assets.library.quotaBytes ?? EXTENSION_ASSET_LIBRARY_DEFAULT_QUOTA_BYTES)}`,\n })\n }\n if (capabilities.assets?.read !== undefined) {\n items.push(\n options.layer === 'host'\n ? { key: 'assets.read', risk: 'normal', label: '读取扩展资源库里的文件' }\n : { key: 'assets.read', risk: 'sensitive', label: '读取当前频道里的图片和文件' },\n )\n }\n if (capabilities.files !== undefined) {\n items.push({\n key: 'files',\n risk: 'normal',\n label: '在本机存放临时文件和缓存',\n detail: `临时文件最多 ${formatLibraryQuota(capabilities.files.tempQuotaBytes ?? EXTENSION_FILES_DEFAULT_TEMP_QUOTA_BYTES)},缓存最多 ${formatLibraryQuota(capabilities.files.cacheQuotaBytes ?? EXTENSION_FILES_DEFAULT_CACHE_QUOTA_BYTES)}`,\n })\n }\n if (capabilities.toolImages !== undefined) {\n items.push({\n key: 'toolImages',\n risk: 'normal',\n label: '以高细节向智能体展示图片',\n detail: '计入智能体用量',\n })\n }\n if (capabilities.media !== undefined) {\n items.push({ key: 'media', risk: 'normal', label: '处理音频、视频和图片' })\n }\n if (capabilities.commands !== undefined) {\n items.push({\n key: 'commands',\n risk: 'high',\n label: '在本机运行程序',\n detail: capabilities.commands.profiles.join('、'),\n scope: '只能读写交给它的文件,不能联网',\n })\n }\n if (capabilities.speech !== undefined) {\n items.push({\n key: 'speech',\n risk: 'sensitive',\n label: '把音频转成文字',\n detail: `音频可能发给「设置 → 附加功能」里选择的语音识别服务,每分钟最多 ${capabilities.speech.maxCallsPerMinute} 次`,\n })\n }\n if (capabilities.index !== undefined) {\n items.push({\n key: 'index',\n risk: 'normal',\n label: '建立可搜索的索引',\n detail: capabilities.index.collections.map(({ name }) => name).join('、'),\n })\n }\n if (capabilities.models !== undefined) {\n items.push({\n key: 'models',\n risk: 'sensitive',\n label: '使用本机已配置的模型,可以发送图片',\n detail: `每分钟最多 ${capabilities.models.maxCallsPerMinute} 次,计入所选模型的用量`,\n })\n }\n if (capabilities.history !== undefined)\n items.push({ key: 'history', risk: 'normal', label: '读取当前频道的聊天记录' })\n const hook = capabilities.inboundHook\n if (hook !== undefined) {\n const effects = [\n hook.mayHide ? '对智能体隐藏消息' : '',\n hook.mayForceTrigger ? '让智能体回应原本不会回应的消息' : '',\n ]\n .filter((effect) => effect !== '')\n .join('、')\n items.push({\n key: 'inboundHook',\n risk: hook.reads === 'all' ? 'high' : 'sensitive',\n label: hook.reads === 'all' ? '查看频道里的全部消息' : '在智能体回应前查看要回应的消息',\n ...(effects === '' ? {} : { detail: `可以${effects}` }),\n })\n }\n const outbound = capabilities.outbound\n if (outbound !== undefined) {\n if (outbound.transform === true) {\n items.push({ key: 'outbound.transform', risk: 'high', label: '在智能体的消息发出前修改内容或追加消息' })\n }\n if (outbound.cancel === true) {\n items.push({ key: 'outbound.cancel', risk: 'high', label: '取消智能体要发出的消息' })\n }\n if (outbound.read === true) {\n items.push({ key: 'outbound.read', risk: 'sensitive', label: '查看智能体发出的每条消息' })\n }\n if (outbound.onTimeout === 'cancel' && (outbound.transform === true || outbound.cancel === true)) {\n items.push({ key: 'outbound.onTimeout', risk: 'high', label: '这个扩展出错时,智能体的消息会发不出去' })\n }\n }\n const jobs = capabilities.jobs\n if (jobs?.declared !== undefined && jobs.declared.length > 0) {\n items.push({\n key: 'jobs.declared',\n risk: 'normal',\n label: '按固定计划唤醒智能体',\n detail: jobs.declared.map(({ label }) => label).join('、'),\n })\n }\n if (jobs?.runtime !== undefined) {\n items.push({\n key: 'jobs.runtime',\n risk: 'sensitive',\n label: '创建定时任务唤醒智能体',\n detail: `同时最多 ${jobs.runtime.maxActive} 个`,\n })\n }\n const platform = capabilities.platform\n if (platform !== undefined && platform.actions.length > 0) {\n items.push({\n key: 'platform.actions',\n // Actions such as muting or removing members affect other people, so every typed action is confirmed.\n risk: 'high',\n label: '在平台上执行操作',\n detail: platform.actions.map(({ adapter, action }) => `${adapter} · ${action}`).join('、'),\n })\n }\n if (platform !== undefined && platform.raw.length > 0) {\n items.push({\n key: 'platform.raw',\n risk: 'high',\n label: '直接调用平台原始接口',\n detail: platform.raw.join('、'),\n })\n }\n if (capabilities.llm !== undefined) {\n items.push({\n key: 'llm',\n risk: 'sensitive',\n label: '使用这个智能体的模型',\n detail: `每轮最多 ${capabilities.llm.maxCallsPerTurn} 次,计入智能体用量`,\n })\n }\n for (const server of capabilities.mcp?.servers ?? []) {\n items.push(\n server.transport === 'stdio'\n ? {\n key: `mcp.${server.name}`,\n risk: 'high',\n label: `在本机运行 MCP 程序 ${server.name}`,\n detail: [server.command, ...server.args].join(' '),\n }\n : {\n key: `mcp.${server.name}`,\n risk: 'sensitive',\n label: `连接 MCP 服务 ${server.name}`,\n detail: new URL(server.url).host,\n },\n )\n }\n if (capabilities.context !== undefined && capabilities.context.length > 0) {\n items.push({\n key: 'context',\n risk: 'normal',\n label: '向智能体提供补充说明',\n detail: capabilities.context.map(({ name }) => name).join('、'),\n })\n }\n return items\n}\n","import { z } from 'zod'\nimport {\n ExtensionCapabilitiesSchema,\n HostLayerCapabilitiesSchema,\n hostLayerAsCapabilities,\n EXTENSION_SDK_BASE_LEVEL,\n EXTENSION_FILES_SDK_LEVEL,\n EXTENSION_OUTBOUND_SDK_LEVEL,\n} from './extension-capabilities.js'\nimport { ExtensionIdSchema, ExtensionRevisionIdSchema, HostUiPageInstanceIdSchema } from './domain.js'\nimport { ConfigSchemaDocumentSchema } from './config-schema.js'\n\nexport const HostUiPermissionSchema = z.enum([\n 'agents.read',\n 'channels.read',\n 'connections.read',\n 'extensions.read',\n 'dsh-plugins.read',\n 'runtime.read',\n 'messages.read',\n 'assets.read',\n 'agents.manage',\n 'channels.manage',\n 'connections.manage',\n 'credentials.write',\n 'messages.send',\n 'notifications.publish',\n 'network.request',\n])\n\nexport type HostUiPermission = z.output<typeof HostUiPermissionSchema>\n\nexport const HOST_UI_KIT_COMPONENT_NAMES = [\n 'Button',\n 'IconButton',\n 'Input',\n 'Textarea',\n 'Select',\n 'Switch',\n 'Tabs',\n 'Dialog',\n 'Popover',\n 'Tooltip',\n 'Field',\n 'StatusBadge',\n 'InlineFeedback',\n 'EmptyState',\n 'Spinner',\n 'PageHeader',\n 'MetricStrip',\n 'Metric',\n 'Section',\n 'Stack',\n 'Grid',\n 'DataTable',\n 'PropertyList',\n 'PropertyRow',\n] as const\n\nexport const HostUiKitComponentNameSchema = z.enum(HOST_UI_KIT_COMPONENT_NAMES)\n\nexport type HostUiKitComponentName = z.output<typeof HostUiKitComponentNameSchema>\n\nexport const HostUiPageGeometryEvidenceSchema = z\n .object({\n entryId: z\n .string()\n .trim()\n .regex(/^[a-z](?:[a-z0-9-]{0,62}[a-z0-9])?$/u),\n objectPane: z.enum(['navigation', 'hidden']),\n viewport: z\n .object({\n width: z.number().finite().positive().max(16_384),\n height: z.number().finite().positive().max(16_384),\n })\n .strict(),\n insets: z\n .object({\n top: z.number().finite().nonnegative().max(512),\n right: z.number().finite().nonnegative().max(512),\n bottom: z.number().finite().nonnegative().max(512),\n left: z.number().finite().nonnegative().max(512),\n })\n .strict(),\n contentAxesAligned: z.boolean(),\n horizontalOverflow: z.boolean(),\n titleDistinct: z.boolean(),\n })\n .strict()\n\nexport type HostUiPageGeometryEvidence = z.output<typeof HostUiPageGeometryEvidenceSchema>\n\nexport const HostIconNameSchema = z.enum([\n 'app-window',\n 'bar-chart',\n 'book-open',\n 'boxes',\n 'database',\n 'file-text',\n 'folder',\n 'globe',\n 'layout-dashboard',\n 'puzzle',\n 'terminal',\n 'workflow',\n 'wrench',\n])\n\nexport type HostIconName = z.output<typeof HostIconNameSchema>\n\nexport const HostPageIconSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('host-icon'), name: HostIconNameSchema }).strict(),\n z\n .object({\n kind: z.literal('svg'),\n path: z\n .string()\n .trim()\n .regex(/^assets\\/[a-z0-9][a-z0-9/_-]*\\.svg$/u),\n sha256: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n])\n\nexport type HostPageIcon = z.output<typeof HostPageIconSchema>\n\nexport const HostPageContributionSchema = z\n .object({\n kind: z.literal('host-page'),\n entryId: z\n .string()\n .trim()\n .regex(/^[a-z](?:[a-z0-9-]{0,62}[a-z0-9])?$/u),\n title: z.string().trim().min(1).max(40),\n description: z.string().trim().max(120).optional(),\n icon: HostPageIconSchema,\n objectPane: z.enum(['navigation', 'hidden']),\n startPath: z\n .string()\n .trim()\n .regex(/^(?:[a-z0-9][a-z0-9/_-]*)?$/u),\n /** Registers a navigation rail entry for this page; at most one page of an extension may declare it. */\n rail: z\n .object({ order: z.number().int().min(0).max(999).optional() })\n .strict()\n .optional(),\n })\n .strict()\n\nexport type HostPageContribution = z.output<typeof HostPageContributionSchema>\n\n/** Rail position of a page that registers a rail entry without an explicit order. */\nexport const HOST_PAGE_DEFAULT_RAIL_ORDER = 100\n\n/** The stored rail position of a page; `null` when the page has no rail entry. */\nexport const hostPageRailOrder = (page: Pick<HostPageContribution, 'rail'>): number | null =>\n page.rail === undefined ? null : (page.rail.order ?? HOST_PAGE_DEFAULT_RAIL_ORDER)\n\nexport const HostUiNavigationItemSchema = z\n .object({\n id: z.string().trim().min(1).max(80),\n label: z.string().trim().min(1).max(80),\n description: z.string().trim().max(120).optional(),\n icon: HostPageIconSchema.optional(),\n badge: z.string().trim().max(24).optional(),\n status: z.enum(['neutral', 'info', 'success', 'warning', 'error']).optional(),\n disabledReason: z.string().trim().max(160).optional(),\n path: z\n .string()\n .trim()\n .regex(/^(?:[a-z0-9][a-z0-9/_-]*)?$/u),\n })\n .strict()\n\nexport const HostUiNavigationGroupSchema = z\n .object({\n id: z.string().trim().min(1).max(80),\n label: z.string().trim().max(80).optional(),\n items: z.array(HostUiNavigationItemSchema).max(256),\n })\n .strict()\n\nexport const HostUiNavigationModelSchema = z\n .object({\n revision: z.number().int().nonnegative(),\n groups: z.array(HostUiNavigationGroupSchema).max(16),\n })\n .strict()\n .refine((model) => model.groups.reduce((total, group) => total + group.items.length, 0) <= 256, {\n message: 'Host UI navigation cannot contain more than 256 items.',\n })\n\nexport type HostUiNavigationModel = z.output<typeof HostUiNavigationModelSchema>\n\nexport const HostUiNetworkOriginSchema = z\n .string()\n .url()\n .transform((value, context) => {\n const url = new URL(value)\n if (url.protocol !== 'http:' && url.protocol !== 'https:') {\n context.addIssue({ code: 'custom', message: 'Host UI network origins must use HTTP(S).' })\n return z.NEVER\n }\n if (url.pathname !== '/' || url.search || url.hash || url.username || url.password) {\n context.addIssue({ code: 'custom', message: 'Host UI network origins cannot contain paths or credentials.' })\n return z.NEVER\n }\n return url.origin\n })\n\nconst checkBrowserPermissions = (\n value: { readonly permissions: readonly HostUiPermission[]; readonly networkOrigins: readonly string[] },\n context: z.RefinementCtx,\n): void => {\n if (new Set(value.permissions).size !== value.permissions.length) {\n context.addIssue({ code: 'custom', path: ['permissions'], message: 'Host UI permissions must be unique.' })\n }\n if (new Set(value.networkOrigins).size !== value.networkOrigins.length) {\n context.addIssue({ code: 'custom', path: ['networkOrigins'], message: 'Host UI network origins must be unique.' })\n }\n if (value.networkOrigins.length > 0 && !value.permissions.includes('network.request')) {\n context.addIssue({\n code: 'custom',\n path: ['networkOrigins'],\n message: 'Host UI network origins require network.request.',\n })\n }\n}\n\n/**\n * One approval: browser-side permissions plus the capabilities of one layer. Grants, digests and the approval page\n * use this shape for both the host approval and each agent approval.\n */\nexport const HostUiPermissionDeclarationSchema = z\n .object({\n permissions: z.array(HostUiPermissionSchema).max(HostUiPermissionSchema.options.length),\n networkOrigins: z.array(HostUiNetworkOriginSchema).max(32).default([]),\n capabilities: ExtensionCapabilitiesSchema.optional(),\n })\n .strict()\n .superRefine(checkBrowserPermissions)\n\nexport type HostUiPermissionDeclaration = z.output<typeof HostUiPermissionDeclarationSchema>\n\n/**\n * Manifest V7 `permissions`: browser-side permissions of pages and panels (`host.call`), host-layer capabilities used\n * by the single host instance, and agent-layer capabilities used inside each enabled agent.\n */\nexport const ExtensionPermissionsSchema = z\n .object({\n permissions: z.array(HostUiPermissionSchema).max(HostUiPermissionSchema.options.length).default([]),\n networkOrigins: z.array(HostUiNetworkOriginSchema).max(32).default([]),\n host: HostLayerCapabilitiesSchema.optional(),\n agent: ExtensionCapabilitiesSchema.optional(),\n })\n .strict()\n .superRefine(checkBrowserPermissions)\n .superRefine((value, context) => {\n if (value.agent?.models !== undefined) {\n context.addIssue({\n code: 'custom',\n path: ['agent', 'models'],\n message: 'models 只能在 permissions.host 中声明;智能体层使用 llm 调用智能体自己的模型。',\n })\n }\n // Both layers read and write the same collections, so a name must mean one definition.\n for (const collection of value.agent?.index?.collections ?? []) {\n const host = value.host?.index?.collections.find(({ name }) => name === collection.name)\n if (host !== undefined && JSON.stringify(host) !== JSON.stringify(collection)) {\n context.addIssue({\n code: 'custom',\n path: ['agent', 'index'],\n message: `索引 ${collection.name} 在 permissions.host 与 permissions.agent 中的定义不一致。`,\n })\n }\n }\n })\n\nexport type ExtensionPermissions = z.output<typeof ExtensionPermissionsSchema>\n\nexport const EMPTY_EXTENSION_PERMISSIONS: ExtensionPermissions = { permissions: [], networkOrigins: [] }\n\n/** What installing the extension on this machine asks the user to approve. */\nexport const hostPermissionDeclaration = (permissions: ExtensionPermissions): HostUiPermissionDeclaration => {\n const capabilities = hostLayerAsCapabilities(permissions.host)\n return {\n permissions: [...permissions.permissions],\n networkOrigins: [...permissions.networkOrigins],\n ...(capabilities === undefined ? {} : { capabilities }),\n }\n}\n\n/** What enabling the extension for one agent asks the user to approve. */\nexport const agentPermissionDeclaration = (permissions: ExtensionPermissions): HostUiPermissionDeclaration => ({\n permissions: [],\n networkOrigins: [],\n ...(permissions.agent === undefined || Object.keys(permissions.agent).length === 0\n ? {}\n : { capabilities: permissions.agent }),\n})\n\nexport const HostUiOwnerSchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('extension'),\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n })\n .strict(),\n z\n .object({\n kind: z.literal('dsh-plugin'),\n entryId: z.string().trim().min(1),\n artifactDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n])\n\nexport type HostUiOwner = z.output<typeof HostUiOwnerSchema>\n\nexport const HostUiPageEntrySchema = z\n .object({\n pageInstanceId: HostUiPageInstanceIdSchema,\n owner: HostUiOwnerSchema,\n entryId: z.string().trim().min(1).max(64),\n title: z.string().trim().min(1).max(40),\n description: z.string().trim().max(120).optional(),\n icon: HostPageIconSchema,\n objectPane: z.enum(['navigation', 'hidden']),\n startPath: z.string(),\n visible: z.boolean(),\n sortOrder: z.number().int().nonnegative(),\n /** Present when the page registered a navigation rail entry; lower orders come first. */\n rail: z\n .object({ order: z.number().int().min(0).max(999) })\n .strict()\n .optional(),\n routeBase: z.string().regex(/^\\/apps\\/hup_[0-9A-Za-z]+$/u),\n client: z\n .object({\n moduleUrl: z.string().startsWith('/'),\n buildKey: z.string().regex(/^[a-f0-9]{64}$/u),\n })\n .strict(),\n diagnostic: z\n .object({\n status: z.enum(['ready', 'load-failed', 'navigation-failed', 'rpc-failed', 'restore-failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n createdAt: z.number().int().safe().nonnegative(),\n updatedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport type HostUiPageEntry = z.output<typeof HostUiPageEntrySchema>\n\nexport const HostUiPagePreferencesSchema = z\n .object({\n revision: z.number().int().nonnegative(),\n entries: z.array(\n z\n .object({\n pageInstanceId: HostUiPageInstanceIdSchema,\n visible: z.boolean(),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport type HostUiPagePreferences = z.output<typeof HostUiPagePreferencesSchema>\n\nexport const DshNxtHostUiSchema = z\n .object({\n schemaVersion: z.literal(1),\n entryKey: z.string().trim().min(1).max(120),\n client: z\n .string()\n .trim()\n .regex(/^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[a-zA-Z0-9._/-]+\\.m?js$/u),\n css: z\n .string()\n .trim()\n .regex(/^(?!\\/)(?!.*(?:^|\\/)\\.\\.(?:\\/|$))[a-zA-Z0-9._/-]+\\.css$/u)\n .optional(),\n pages: z.array(HostPageContributionSchema).min(1).max(8),\n permissions: HostUiPermissionDeclarationSchema.default({ permissions: [], networkOrigins: [] }),\n })\n .strict()\n\nexport type DshNxtHostUi = z.output<typeof DshNxtHostUiSchema>\n\n/** Where the product shell may place an extension panel. The Host decides the concrete page and position. */\nexport const ExtensionPanelAnchorSchema = z.enum(['agent', 'channel', 'extension', 'connection'])\nexport type ExtensionPanelAnchor = z.output<typeof ExtensionPanelAnchorSchema>\n\n/**\n * Which layer a panel belongs to. Agent and channel panels follow the agents the extension is enabled for (a channel\n * panel also shows on channels of the extension's own adapter); extension and connection panels belong to the host\n * instance.\n */\nexport const PANEL_ANCHOR_LAYER = {\n agent: 'agent',\n channel: 'agent',\n extension: 'host',\n connection: 'host',\n} as const satisfies Readonly<Record<ExtensionPanelAnchor, 'agent' | 'host'>>\n\nexport const PanelDensitySchema = z.enum(['compact', 'full'])\nexport type PanelDensity = z.output<typeof PanelDensitySchema>\n\nexport const ConnectionPanelRoleSchema = z.enum(['setup', 'status', 'diagnostics'])\nexport type ConnectionPanelRole = z.output<typeof ConnectionPanelRoleSchema>\n\nexport const ToolViewDensitySchema = z.enum(['chip', 'card'])\nexport type ToolViewDensity = z.output<typeof ToolViewDensitySchema>\n\nconst ContributionIdSchema = z\n .string()\n .trim()\n .regex(/^[a-z](?:[a-z0-9-]{0,62}[a-z0-9])?$/u)\n\nconst panelFields = {\n id: ContributionIdSchema,\n anchor: ExtensionPanelAnchorSchema,\n title: z.string().trim().min(1).max(24),\n icon: HostIconNameSchema.optional(),\n densities: z.array(PanelDensitySchema).min(1).max(2),\n role: ConnectionPanelRoleSchema.optional(),\n when: z\n .object({\n channelKinds: z\n .array(z.enum(['internal', 'direct', 'group']))\n .min(1)\n .max(3)\n .optional(),\n })\n .strict()\n .optional(),\n}\n\nconst checkPanel = (\n value: {\n readonly anchor: ExtensionPanelAnchor\n readonly densities: readonly PanelDensity[]\n readonly role?: ConnectionPanelRole | undefined\n readonly when?: { readonly channelKinds?: readonly string[] | undefined } | undefined\n },\n context: z.RefinementCtx,\n): void => {\n if (new Set(value.densities).size !== value.densities.length) {\n context.addIssue({ code: 'custom', path: ['densities'], message: '面板密度不能重复。' })\n }\n if (value.anchor === 'connection' && value.role === undefined) {\n context.addIssue({\n code: 'custom',\n path: ['role'],\n message: '连接面板必须声明 setup、status 或 diagnostics 角色。',\n })\n }\n if (value.anchor !== 'connection' && value.role !== undefined) {\n context.addIssue({ code: 'custom', path: ['role'], message: '只有连接面板可以声明角色。' })\n }\n if (value.when?.channelKinds !== undefined && value.anchor !== 'channel') {\n context.addIssue({ code: 'custom', path: ['when'], message: '只有频道面板可以按频道类型限定。' })\n }\n if (\n value.when?.channelKinds !== undefined &&\n new Set(value.when.channelKinds).size !== value.when.channelKinds.length\n ) {\n context.addIssue({ code: 'custom', path: ['when', 'channelKinds'], message: '频道类型不能重复。' })\n }\n}\n\n/** Client-side registration options for one panel; identical to the Manifest contribution without `kind`. */\nexport const ExtensionPanelDeclarationSchema = z.object(panelFields).strict().superRefine(checkPanel)\nexport type ExtensionPanelDeclaration = z.output<typeof ExtensionPanelDeclarationSchema>\n\nexport const PanelContributionSchema = z\n .object({ kind: z.literal('panel'), ...panelFields })\n .strict()\n .superRefine(checkPanel)\nexport type PanelContribution = z.output<typeof PanelContributionSchema>\n\nexport const ToolViewContributionSchema = z\n .object({ kind: z.literal('tool-view'), tool: z.string().trim().min(1).max(64) })\n .strict()\nexport type ToolViewContribution = z.output<typeof ToolViewContributionSchema>\n\nexport const RichKindSchema = z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9._-]{0,62}$/u)\n\nexport const MessageRendererContributionSchema = z\n .object({ kind: z.literal('message-renderer'), richKind: RichKindSchema })\n .strict()\nexport type MessageRendererContribution = z.output<typeof MessageRendererContributionSchema>\n\n/** What an extension provides, derived from its Manifest; for listing and filtering, never a lifecycle switch. */\nexport const EXTENSION_PROVIDES = ['agent', 'page', 'adapter', 'mcp'] as const\nexport const ExtensionProvideSchema = z.enum(EXTENSION_PROVIDES)\nexport type ExtensionProvide = z.output<typeof ExtensionProvideSchema>\n\n/** One configuration form: a serialized Schemastery document. */\nexport const ExtensionConfigDeclarationSchema = z.object({ schema: ConfigSchemaDocumentSchema }).strict()\nexport type ExtensionConfigDeclaration = z.output<typeof ExtensionConfigDeclarationSchema>\n\n/** Manifest V7 `config`: the host instance's configuration and each enabled agent's configuration. */\nexport const ExtensionLayeredConfigSchema = z\n .object({ host: ExtensionConfigDeclarationSchema.optional(), agent: ExtensionConfigDeclarationSchema.optional() })\n .strict()\nexport type ExtensionLayeredConfig = z.output<typeof ExtensionLayeredConfigSchema>\nexport type ExtensionConfigLayer = 'host' | 'agent'\n\n/** Product projection of what one Revision contributes to the shell. */\nexport const ExtensionUiContributionsSchema = z\n .object({\n panels: z.array(PanelContributionSchema).max(16),\n toolViews: z.array(z.string().trim().min(1).max(64)).max(32),\n messageRenderers: z.array(RichKindSchema).max(32),\n })\n .strict()\nexport type ExtensionUiContributions = z.output<typeof ExtensionUiContributionsSchema>\n\nexport const EMPTY_EXTENSION_UI_CONTRIBUTIONS: ExtensionUiContributions = {\n panels: [],\n toolViews: [],\n messageRenderers: [],\n}\n\n/** Read permission each Client data hook requires; the host enforces it in every runtime that renders a Client. */\nexport const EXTENSION_DATA_HOOK_PERMISSIONS = {\n useAgent: 'agents.read',\n useChannel: 'channels.read',\n useConnection: 'connections.read',\n useChannelRuntime: 'runtime.read',\n} as const satisfies Readonly<Record<string, HostUiPermission>>\n\nexport type ExtensionDataHookName = keyof typeof EXTENSION_DATA_HOOK_PERMISSIONS\n\n/**\n * The capability level a set of permissions needs: Manifest V7 itself, or the level that introduced the newest\n * capability it declares. Packaging and import compare it with `requires.sdk`, so an extension cannot claim a level\n * too old for what it uses.\n */\nexport const requiredExtensionSdkLevel = (\n permissions: ExtensionPermissions | undefined,\n): { readonly level: number; readonly capabilities: readonly string[] } => {\n const level14 = [\n permissions?.host?.files === undefined && permissions?.agent?.files === undefined ? undefined : '工作文件',\n permissions?.host?.assets?.read === undefined && permissions?.agent?.assets?.read === undefined\n ? undefined\n : '读取频道文件',\n permissions?.agent?.toolImages === undefined ? undefined : '高细节图片',\n permissions?.host?.media === undefined && permissions?.agent?.media === undefined ? undefined : '媒体处理',\n permissions?.host?.commands === undefined && permissions?.agent?.commands === undefined ? undefined : '运行程序',\n permissions?.host?.speech === undefined && permissions?.agent?.speech === undefined ? undefined : '语音识别',\n ].filter((name): name is string => name !== undefined)\n if (level14.length > 0) return { level: EXTENSION_FILES_SDK_LEVEL, capabilities: level14 }\n const level8 = [\n permissions?.host?.assets?.library === undefined ? undefined : '扩展资源库',\n permissions?.agent?.assets?.library === undefined ? undefined : '扩展资源库',\n permissions?.host?.index === undefined && permissions?.agent?.index === undefined ? undefined : '检索索引',\n permissions?.host?.models === undefined ? undefined : '本机层模型调用',\n ].filter((name): name is string => name !== undefined)\n if (permissions?.agent?.outbound !== undefined)\n return { level: EXTENSION_OUTBOUND_SDK_LEVEL, capabilities: ['出站处理'] }\n return level8.length > 0\n ? { level: 8, capabilities: [...new Set(level8)] }\n : { level: EXTENSION_SDK_BASE_LEVEL, capabilities: [] }\n}\n","import { z } from 'zod'\nimport {\n AgentIdSchema,\n AgentRevisionIdSchema,\n ChannelEventIdSchema,\n ChannelIdSchema,\n ConnectionIdSchema,\n ExtensionRevisionIdSchema,\n MessagePartSchema,\n OutboundIntentIdSchema,\n type AgentId,\n type ChannelId,\n type ChannelMemberId,\n type MessagePart,\n} from './domain.js'\n\nexport const COMMAND_DEFAULT_TIMEOUT_SECONDS = 60\nexport const COMMAND_MAX_TIMEOUT_SECONDS = 600\n/**\n * Who may run a command. `channel-admin` is granted per channel; `admin` is an instance administrator (the signed-in\n * console or a platform account listed in Settings → Administrators) and also holds every channel's `channel-admin`.\n */\nexport const CommandPermissionSchema = z.enum(['public', 'channel-admin', 'admin'])\nexport type CommandPermission = z.output<typeof CommandPermissionSchema>\nconst nameSchema = z\n .string()\n .min(1)\n .max(64)\n .regex(/^[\\p{L}\\p{N}_-]+$/u)\nconst scalarSchema = z.union([z.string(), z.number().finite(), z.boolean()])\nexport const CommandParameterSchema = z\n .object({\n name: nameSchema,\n description: z.string().max(500).optional(),\n kind: z.enum(['positional', 'option']),\n type: z.enum(['string', 'number', 'integer', 'boolean']),\n required: z.boolean().optional(),\n default: scalarSchema.optional(),\n choices: z.array(scalarSchema).min(1).max(100).optional(),\n min: z.number().finite().optional(),\n max: z.number().finite().optional(),\n })\n .strict()\nexport const CommandDefinitionSchema = z\n .object({\n name: nameSchema,\n aliases: z.array(nameSchema).max(16).default([]),\n description: z.string().min(1).max(1000),\n parameters: z.array(CommandParameterSchema).max(32).default([]),\n examples: z.array(z.string().max(2000)).max(16).default([]),\n minimumPermission: CommandPermissionSchema.default('public'),\n enabledByDefault: z.boolean().default(true),\n /**\n * Where the result goes when an administrator runs the command from the console (Web or Desktop) in an external\n * channel. `local` (default) shows it in the console only; `channel` also sends it through the bot account, and\n * the console labels the command accordingly. Platform-originated commands always reply in their conversation.\n */\n consoleReply: z.enum(['local', 'channel']).default('local'),\n /**\n * How long an extension handler may run before it is cancelled and recorded as timed out, so a stuck handler\n * cannot hold the channel's command queue. Built-in commands ignore it.\n */\n timeoutSeconds: z.number().int().min(1).max(COMMAND_MAX_TIMEOUT_SECONDS).default(COMMAND_DEFAULT_TIMEOUT_SECONDS),\n })\n .strict()\n .superRefine((definition, ctx) => {\n const names = [definition.name, ...definition.aliases]\n if (new Set(names).size !== names.length) ctx.addIssue({ code: 'custom', message: '命令名称和别名不能重复。' })\n if (new Set(definition.parameters.map((p) => p.name)).size !== definition.parameters.length)\n ctx.addIssue({ code: 'custom', message: '参数名称不能重复。' })\n let optional = false\n for (const p of definition.parameters) {\n if (p.min !== undefined && p.max !== undefined && p.min > p.max)\n ctx.addIssue({ code: 'custom', message: `参数 ${p.name} 的范围无效。` })\n if (p.kind === 'positional') {\n if (optional && p.required) ctx.addIssue({ code: 'custom', message: '必填位置参数必须在可选参数之前。' })\n if (!p.required || p.default !== undefined) optional = true\n }\n if (p.default !== undefined) {\n try {\n if (validateValue(p, String(p.default)) !== p.default) throw new Error('默认值类型不匹配。')\n } catch {\n ctx.addIssue({ code: 'custom', message: `参数 ${p.name} 的默认值无效。` })\n }\n }\n }\n })\nexport type CommandDefinition = z.output<typeof CommandDefinitionSchema>\n/** What an extension author writes: defaults are optional. */\nexport type CommandDefinitionInput = z.input<typeof CommandDefinitionSchema>\nexport const CommandPolicySchema = z\n .object({ enabled: z.boolean().optional(), permission: CommandPermissionSchema.optional() })\n .strict()\nexport type CommandPolicy = z.output<typeof CommandPolicySchema>\nexport const CommandExecutionIdentitySchema = z\n .object({\n source: z.enum(['web', 'platform']),\n connectionId: ConnectionIdSchema.optional(),\n platformUserId: z.string().optional(),\n displayName: z.string(),\n viewerId: z.string().optional(),\n })\n .strict()\nexport type CommandExecutionIdentity = z.output<typeof CommandExecutionIdentitySchema>\nexport const CommandResultSchema = z\n .object({\n parts: z\n .array(MessagePartSchema)\n .min(1)\n .max(32)\n .refine(\n (parts) => parts.every((p) => ['text', 'image', 'file'].includes(p.type)),\n '命令结果仅支持文本、图片和文件。',\n ),\n summary: z.string().max(2000).optional(),\n })\n .strict()\nexport type CommandResult = z.output<typeof CommandResultSchema>\n/** An execution may send a few progress replies before its final result. */\nexport const COMMAND_MAX_PROGRESS_REPLIES = 5\nexport const CommandReplySchema = z\n .object({\n /** Position within the execution; the final result always has the highest ordinal. */\n ordinal: z.number().int().nonnegative(),\n kind: z.enum(['progress', 'final']),\n parts: CommandResultSchema.shape.parts,\n /** Set once the reply has an Outbound; absent with `error` means planning failed. */\n intentId: OutboundIntentIdSchema.optional(),\n error: z.string().optional(),\n })\n .strict()\nexport type CommandReply = z.output<typeof CommandReplySchema>\nexport const CommandExecutionRecordSchema = z\n .object({\n id: z.string().min(1),\n channelId: ChannelIdSchema,\n source: z.enum(['web', 'platform']),\n requestId: z.string().min(1).max(200),\n eventId: ChannelEventIdSchema.optional(),\n rawText: z.string(),\n identity: CommandExecutionIdentitySchema,\n commandName: z.string().optional(),\n commandVersion: z.string().optional(),\n extensionRevisionId: ExtensionRevisionIdSchema.optional(),\n agentId: AgentIdSchema.optional(),\n agentRevisionId: AgentRevisionIdSchema.optional(),\n status: z.enum(['pending', 'running', 'succeeded', 'failed', 'uncertain']),\n result: CommandResultSchema.optional(),\n error: z.string().optional(),\n /** Replies in send order. A platform command's replies go to its conversation; see `replyLocal`. */\n replies: z\n .array(CommandReplySchema)\n .max(COMMAND_MAX_PROGRESS_REPLIES + 1)\n .default([]),\n /** No reply is sent on purpose (unauthorized or unknown platform command, or console-local result). */\n replySuppressed: z.boolean().optional(),\n /** The result was kept in the console on purpose and never sent to the platform. */\n replyLocal: z.boolean().optional(),\n createdAt: z.number().int().nonnegative(),\n completedAt: z.number().int().nonnegative().optional(),\n })\n .strict()\nexport type CommandExecutionRecord = z.output<typeof CommandExecutionRecordSchema>\n/** Replies that still need an Outbound or a recorded failure. */\nexport const undeliveredCommandReplies = (record: CommandExecutionRecord): readonly CommandReply[] =>\n record.replySuppressed === true\n ? []\n : record.replies.filter((reply) => reply.intentId === undefined && reply.error === undefined)\nexport interface CommandExecutionContext {\n readonly channelId: ChannelId\n readonly agentId?: AgentId\n readonly identity: CommandExecutionIdentity\n readonly arguments: Readonly<Record<string, string | number | boolean>>\n readonly signal: AbortSignal\n /**\n * Sends a progress reply now; the handler's return value is the final result. At most\n * COMMAND_MAX_PROGRESS_REPLIES per execution, delivered in order without making the handler wait for receipts.\n */\n readonly reply: (result: CommandResult) => void\n readonly host: {\n status(): {\n readonly bound: boolean\n readonly responseMode?: string\n readonly paused?: boolean\n readonly running: boolean\n }\n /** Resolves with `stopped: false` when nothing was running. */\n stop(): Promise<{ readonly stopped: boolean }>\n reset(mode: 'clear' | 'compact'): Promise<void>\n }\n}\nexport type CommandHandler = (context: CommandExecutionContext) => CommandResult | Promise<CommandResult>\nexport const CommandCatalogEntrySchema = z\n .object({\n definition: CommandDefinitionSchema,\n fullName: z.string(),\n source: z.string(),\n extensionRevisionId: ExtensionRevisionIdSchema.optional(),\n enabled: z.boolean(),\n permission: CommandPermissionSchema,\n usage: z.string(),\n available: z.boolean(),\n unavailableReason: z.string().optional(),\n globalPolicy: CommandPolicySchema.optional(),\n channelPolicy: CommandPolicySchema.optional(),\n })\n .strict()\nexport type CommandCatalogEntry = z.output<typeof CommandCatalogEntrySchema>\n\n/** Shell-like quoting without evaluation or interpolation. */\nexport function tokenizeCommand(text: string): string[] {\n const tokens: string[] = []\n let value = '',\n quote = '',\n escaped = false,\n started = false\n for (const char of text) {\n if (escaped) {\n value += char\n escaped = false\n started = true\n continue\n }\n if (char === '\\\\') {\n escaped = true\n started = true\n continue\n }\n if (quote) {\n if (char === quote) quote = ''\n else value += char\n continue\n }\n if (char === '\"' || char === \"'\") {\n quote = char\n started = true\n continue\n }\n if (/\\s/u.test(char)) {\n if (started) tokens.push(value)\n value = ''\n started = false\n continue\n }\n value += char\n started = true\n }\n if (escaped || quote) throw new Error('引号或转义未闭合。')\n if (started) tokens.push(value)\n return tokens\n}\nfunction validateValue(p: z.output<typeof CommandParameterSchema>, raw: string): string | number | boolean {\n let value: string | number | boolean = raw\n if (p.type === 'boolean') {\n if (!['true', 'false'].includes(raw)) throw new Error(`参数 ${p.name} 必须为 true 或 false。`)\n value = raw === 'true'\n } else if (p.type !== 'string') {\n value = Number(raw)\n if (raw.trim() === '' || !Number.isFinite(value) || (p.type === 'integer' && !Number.isSafeInteger(value)))\n throw new Error(`参数 ${p.name} 必须为${p.type === 'integer' ? '整数' : '数字'}。`)\n }\n const size = typeof value === 'string' ? [...value].length : typeof value === 'number' ? value : undefined\n if (size !== undefined && ((p.min !== undefined && size < p.min) || (p.max !== undefined && size > p.max)))\n throw new Error(`参数 ${p.name} 超出允许范围。`)\n if (p.choices !== undefined && !p.choices.includes(value))\n throw new Error(`参数 ${p.name} 必须为:${p.choices.join('、')}。`)\n return value\n}\nexport function parseCommandArguments(\n definition: CommandDefinition,\n tokens: readonly string[],\n): Readonly<Record<string, string | number | boolean>> {\n const args = new Map<string, string | number | boolean>()\n const positions = definition.parameters.filter((p) => p.kind === 'positional')\n let index = 0,\n options = true\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]!\n if (options && token === '--') {\n options = false\n continue\n }\n let p: CommandDefinition['parameters'][number] | undefined,\n raw = token\n if (options && token.startsWith('--')) {\n const equal = token.indexOf('=')\n const key = token.slice(2, equal < 0 ? undefined : equal)\n p = definition.parameters.find((p) => p.kind === 'option' && p.name === key)\n if (!p) throw new Error(`未知选项:--${key}`)\n if (equal >= 0) raw = token.slice(equal + 1)\n else if (p.type === 'boolean' && (tokens[i + 1] === undefined || !['true', 'false'].includes(tokens[i + 1]!)))\n raw = 'true'\n else {\n const next = tokens[++i]\n if (next === undefined || next.startsWith('--')) throw new Error(`选项 --${key} 缺少值。`)\n raw = next\n }\n } else {\n p = positions[index++]\n if (!p) throw new Error(`多余参数:${token}`)\n }\n if (args.has(p.name)) throw new Error(`重复参数:${p.name}`)\n args.set(p.name, validateValue(p, raw))\n }\n for (const p of definition.parameters) {\n if (args.has(p.name)) continue\n if (p.default !== undefined) args.set(p.name, p.default)\n else if (p.required) throw new Error(`缺少参数:${p.kind === 'option' ? '--' : ''}${p.name}`)\n }\n return Object.fromEntries(args)\n}\nexport function commandUsage(definition: CommandDefinition, name = definition.name): string {\n return (\n '/' +\n name +\n definition.parameters\n .map((p) => {\n const value =\n p.kind === 'option' ? `--${p.name} ${p.type === 'boolean' ? '[true|false]' : `<${p.name}>`}` : `<${p.name}>`\n return ' ' + (p.required ? value : `[${value}]`)\n })\n .join('')\n )\n}\nexport type CommandRecognition =\n | { readonly kind: 'command'; readonly text: string }\n | { readonly kind: 'escaped'; readonly parts: readonly MessagePart[] }\n | { readonly kind: 'chat' }\nexport interface CommandRecognitionOptions {\n /** External groups: only text addressed to this account is a command. */\n readonly requireMention?: boolean\n /**\n * The platform itself says this message mentions the account (QQ's @ events, WeCom group callbacks), even when the\n * mention is not a leading mention part. Such adapters may also leave a leading `@name` as plain text.\n */\n readonly addressed?: boolean\n}\nexport function recognizeCommand(\n parts: readonly MessagePart[],\n botMemberId?: ChannelMemberId,\n options: CommandRecognitionOptions = {},\n): CommandRecognition {\n let input = parts\n while (input.length > 1 && input[0]?.type === 'text' && input[0].text.trim() === '') input = input.slice(1)\n let addressed = options.addressed === true\n let mentionPart = false\n if (input[0]?.type === 'mention') {\n // A leading mention of someone else addresses them, never this account.\n if (botMemberId === undefined || input[0].memberId !== botMemberId) return { kind: 'chat' }\n input = input.slice(1)\n addressed = true\n mentionPart = true\n }\n if (options.requireMention === true && !addressed) return { kind: 'chat' }\n if (input.length === 0 || input.some((p) => p.type !== 'text')) return { kind: 'chat' }\n let text = input\n .map((p) => (p.type === 'text' ? p.text : ''))\n .join('')\n .trimStart()\n if (options.addressed === true && !mentionPart) text = text.replace(/^@\\S+\\s+/u, '')\n if (text.startsWith('//')) return { kind: 'escaped', parts: [{ type: 'text', text: text.slice(1) }] }\n if (!text.startsWith('/')) return { kind: 'chat' }\n return { kind: 'command', text }\n}\n/** The command name a recognized text invokes (`/name args` → `name`). */\nexport const commandNameOf = (text: string): string => /^\\/(\\S*)/u.exec(text.trimStart())?.[1] ?? ''\n","import { z } from 'zod'\n\n/** Log summaries are labels; leave structured diagnostics and stacks untouched. */\nexport function formatLogMessage(message: string): string {\n return message.trimEnd().replace(/[。.]$/u, '')\n}\n\nexport const hostLogLevelSchema = z.enum(['debug', 'info', 'warn', 'error'])\nexport type HostLogLevel = z.infer<typeof hostLogLevelSchema>\n/** Write-only, owner-bound SDK capability. No caller-supplied identity fields. */\nexport interface NxtLogger {\n debug(message: string, details?: unknown): void\n info(message: string, details?: unknown): void\n warn(message: string, details?: unknown): void\n error(message: string, details?: unknown): void\n}\nexport const hostLogSourceKindSchema = z.enum(['system', 'dsh-plugin', 'extension', 'connection', 'unknown'])\nexport type HostLogSourceKind = z.infer<typeof hostLogSourceKindSchema>\nexport const hostLogSourceSchema = z\n .object({\n kind: hostLogSourceKindSchema,\n id: z.string().min(1).max(512),\n name: z.string().min(1).max(512),\n version: z.string().max(512).optional(),\n component: z.string().max(512).optional(),\n })\n .strict()\nexport type HostLogSource = z.infer<typeof hostLogSourceSchema>\nexport const hostLogScopeSchema = z\n .object({\n extensionId: z.string().max(512).optional(),\n revisionId: z.string().max(512).optional(),\n connectionId: z.string().max(512).optional(),\n agentId: z.string().max(512).optional(),\n channelId: z.string().max(512).optional(),\n sessionId: z.string().max(512).optional(),\n episodeId: z.string().max(512).optional(),\n operationId: z.string().max(512).optional(),\n })\n .strict()\nexport type HostLogScope = z.infer<typeof hostLogScopeSchema>\nexport const hostLogEntrySchema = z\n .object({\n id: z.string(),\n sequence: z.number().int().nonnegative(),\n timestamp: z.iso.datetime(),\n runId: z.string(),\n level: hostLogLevelSchema,\n message: z.string(),\n source: hostLogSourceSchema,\n scope: hostLogScopeSchema.optional(),\n details: z.json().optional(),\n code: z.string().optional(),\n redacted: z.boolean(),\n truncated: z.boolean(),\n })\n .strict()\nexport type HostLogEntry = z.infer<typeof hostLogEntrySchema>\nexport interface HostLogInput {\n formatArgs?: readonly unknown[]\n level: HostLogLevel\n message: string\n source: HostLogSource\n scope?: HostLogScope\n details?: unknown\n code?: string\n}\nexport const hostLogQuerySchema = z\n .object({\n levels: z.array(hostLogLevelSchema).max(4).optional(),\n sourceKinds: z.array(hostLogSourceKindSchema).max(5).optional(),\n sourceIds: z.array(z.string().max(512)).max(100).optional(),\n sources: z\n .array(hostLogSourceSchema.pick({ kind: true, id: true }))\n .max(100)\n .optional(),\n scope: hostLogScopeSchema.optional(),\n keyword: z.string().max(1000).optional(),\n from: z.iso.datetime().optional(),\n to: z.iso.datetime().optional(),\n olderCursor: z.string().max(128).optional(),\n afterCursor: z.string().max(128).optional(),\n headCursor: z.string().max(128).optional(),\n limit: z.number().int().min(1).max(500).optional(),\n })\n .strict()\nexport type HostLogQuery = z.infer<typeof hostLogQuerySchema>\nexport const hostLogPageSchema = z\n .object({\n entries: z.array(hostLogEntrySchema),\n olderCursor: z.string().nullable(),\n headCursor: z.string(),\n hasMore: z.boolean(),\n gap: z.enum(['expired', 'reset']).optional(),\n })\n .strict()\nexport type HostLogPage = z.infer<typeof hostLogPageSchema>\nexport const hostLogSettingsSchema = z\n .object({\n retentionDays: z.number().int().min(1).max(30),\n maxSizeMiB: z.number().int().min(64).max(2048),\n revision: z.number().int().nonnegative(),\n })\n .strict()\nexport type HostLogSettings = z.infer<typeof hostLogSettingsSchema>\nexport const hostLogSettingsUpdateSchema = hostLogSettingsSchema\nexport const hostLogDebugRequestSchema = z\n .object({\n source: hostLogSourceSchema.pick({ kind: true, id: true }).optional(),\n durationMinutes: z.union([z.literal(5), z.literal(15), z.literal(30)]).default(15),\n })\n .strict()\nexport type HostLogDebugRequest = z.infer<typeof hostLogDebugRequestSchema>\nexport const hostLogDebugLeaseSchema = hostLogDebugRequestSchema.extend({ id: z.string(), expiresAt: z.iso.datetime() })\nexport type HostLogDebugLease = z.infer<typeof hostLogDebugLeaseSchema>\nexport const hostLogStatusSchema = z\n .object({\n state: z.enum(['ready', 'degraded', 'closed']),\n runId: z.string(),\n headCursor: z.string(),\n bytes: z.number().nonnegative(),\n count: z.number().int().nonnegative(),\n oldestTimestamp: z.iso.datetime().nullable(),\n newestTimestamp: z.iso.datetime().nullable(),\n queuedBytes: z.number().nonnegative(),\n droppedCount: z.number().int().nonnegative(),\n debugLeases: z.array(hostLogDebugLeaseSchema),\n error: z.string().optional(),\n })\n .strict()\nexport type HostLogStatus = z.infer<typeof hostLogStatusSchema>\nexport const hostLogStreamEventSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('entries'), entries: z.array(hostLogEntrySchema), cursor: z.string() }),\n z.object({ type: z.literal('gap'), reason: z.enum(['expired', 'reset', 'overflow']), cursor: z.string() }),\n z.object({ type: z.literal('status'), status: hostLogStatusSchema }),\n])\nexport type HostLogStreamEvent = z.infer<typeof hostLogStreamEventSchema>\nexport type HostLogExportFormat = 'text' | 'jsonl'\n","import { z } from 'zod'\nimport { AgentIdSchema, ChannelIdSchema, CredentialIdSchema, ExtensionIdSchema } from './domain.js'\nimport { ExtensionNetworkDomainSchema } from './extension-capabilities.js'\n\n/**\n * Named credentials (智能体扩展配置与凭据 C1–C5): one entry is added once and reused by extensions, MCP servers and\n * commands. The value is write-only; every view below carries metadata only. Accounts on platforms such as GitHub are\n * linked accounts (`linked-accounts.ts`), granted per agent, not credentials.\n */\n\nexport const CREDENTIAL_NAME_MAX_CHARS = 64\nexport const CREDENTIAL_DESCRIPTION_MAX_CHARS = 500\nexport const CREDENTIAL_VALUE_MAX_CHARS = 16_384\n/** Values shorter than this are not hidden from tool results; the form warns when one is saved. */\nexport const CREDENTIAL_REDACTABLE_MIN_CHARS = 8\n\n/** How a credential reaches code: `request` only as a placeholder filled by `nxt.http.fetch`; `program` as the value. */\nexport const CredentialUsageSchema = z.enum(['request', 'program'])\nexport type CredentialUsage = z.output<typeof CredentialUsageSchema>\n\n/** Agents that may use a credential: every agent, or the listed ones. */\nexport const CredentialAgentScopeSchema = z.union([\n z.object({ all: z.literal(true) }).strict(),\n z.object({ agentIds: z.array(AgentIdSchema).max(256) }).strict(),\n])\nexport type CredentialAgentScope = z.output<typeof CredentialAgentScopeSchema>\n\n/** Shown in redaction markers (`[凭据:名称]`), so brackets and control characters are not allowed. */\nexport const CredentialNameSchema = z\n .string()\n .trim()\n .min(1, '名称不能为空。')\n .max(CREDENTIAL_NAME_MAX_CHARS, `名称最多 ${CREDENTIAL_NAME_MAX_CHARS} 个字符。`)\n // eslint-disable-next-line no-control-regex -- Control characters are exactly what the name must not contain.\n .regex(/^[^\\u0000-\\u001f\\u007f[\\]]+$/u, '名称不能包含方括号或控制字符。')\n\nexport const CredentialDescriptionSchema = z\n .string()\n .trim()\n .max(CREDENTIAL_DESCRIPTION_MAX_CHARS, `说明最多 ${CREDENTIAL_DESCRIPTION_MAX_CHARS} 个字符。`)\n\nexport const CredentialDomainsSchema = z.array(ExtensionNetworkDomainSchema).max(32)\n\n/**\n * Names a credential's environment variable cannot take: the shell, the tools' own configuration, and the variables\n * linked accounts give commands (`GH_TOKEN` and the `gh` settings).\n */\nconst RESERVED_COMMAND_ENV = new Set([\n 'PATH',\n 'HOME',\n 'USER',\n 'LOGNAME',\n 'SHELL',\n 'PWD',\n 'OLDPWD',\n 'TMPDIR',\n 'TEMP',\n 'TMP',\n 'LANG',\n 'TERM',\n 'NODE_OPTIONS',\n 'NODE_PATH',\n 'GH_TOKEN',\n 'GH_CONFIG_DIR',\n 'GH_PROMPT_DISABLED',\n 'GH_NO_UPDATE_NOTIFIER',\n 'GH_NO_EXTENSION_UPDATE_NOTIFIER',\n 'GIT_TERMINAL_PROMPT',\n 'GIT_CONFIG_COUNT',\n])\nconst RESERVED_COMMAND_ENV_PREFIXES = ['LC_', 'LD_', 'DYLD_', 'GIT_CONFIG_', 'NEKRO_', 'DSH_']\n\n/** The environment variable a program credential reaches commands under. */\nexport const CredentialEnvNameSchema = z\n .string()\n .trim()\n .max(64)\n .regex(/^[A-Z_][A-Z0-9_]*$/u, '环境变量名只能使用大写字母、数字和下划线,且不能以数字开头。')\n .refine(\n (name) =>\n !RESERVED_COMMAND_ENV.has(name) && !RESERVED_COMMAND_ENV_PREFIXES.some((prefix) => name.startsWith(prefix)),\n '这个环境变量名由系统使用,请换一个。',\n )\n\nexport const CredentialValueSchema = z.string().min(1).max(CREDENTIAL_VALUE_MAX_CHARS)\n\n/** What uses one credential right now: extension secret fields bound to it and agents whose commands receive it. */\nexport const CredentialUsersSchema = z\n .object({\n extensions: z.array(\n z\n .object({\n extensionId: ExtensionIdSchema,\n name: z.string(),\n /** Agents whose own configuration binds it; empty when only the host configuration does. */\n agentIds: z.array(AgentIdSchema),\n host: z.boolean(),\n })\n .strict(),\n ),\n /** Agents with commands enabled whose commands receive it. */\n commandAgents: z.array(AgentIdSchema),\n })\n .strict()\nexport type CredentialUsers = z.output<typeof CredentialUsersSchema>\n\nexport const CredentialViewSchema = z\n .object({\n id: CredentialIdSchema,\n name: CredentialNameSchema,\n description: z.string(),\n usage: CredentialUsageSchema,\n domains: z.array(z.string()),\n agentScope: CredentialAgentScopeSchema,\n autoUse: z.boolean(),\n /** Program credentials: the environment variable agents' commands receive it under, or `null` when they do not. */\n envName: z.string().nullable(),\n /** Agents an administrator let use it while automatic use is off. */\n approvedAgentIds: z.array(AgentIdSchema),\n /** False when the stored value is too short to hide from tool results, or cannot be read. */\n redactable: z.boolean(),\n /** False when the stored value cannot be read any more; the entry stays so it can be replaced. */\n available: z.boolean(),\n usedBy: CredentialUsersSchema,\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n lastUsedAt: z.number().int().nonnegative().nullable(),\n })\n .strict()\nexport type CredentialView = z.output<typeof CredentialViewSchema>\n\n/** A model provider listed with the credentials; `open` lets agents and extensions call it through the host. */\nexport const ModelProviderAccessSchema = z\n .object({\n provider: z.string().min(1),\n name: z.string(),\n open: z.boolean(),\n })\n .strict()\nexport type ModelProviderAccess = z.output<typeof ModelProviderAccessSchema>\n\n/**\n * An agent asked for a credential that does not exist yet. The settings link pre-fills the add form; saving a\n * credential with this name wakes the agent in the channel it asked from.\n */\nexport const CredentialRequestViewSchema = z\n .object({\n id: z.string().min(1).max(64),\n name: CredentialNameSchema,\n purpose: z.string(),\n domains: z.array(z.string()),\n usage: CredentialUsageSchema,\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema.nullable(),\n createdAt: z.number().int().nonnegative(),\n /** Settings route that opens the add form pre-filled, see {@link credentialRequestRoute}. */\n route: z.string(),\n })\n .strict()\nexport type CredentialRequestView = z.output<typeof CredentialRequestViewSchema>\n\nexport const CredentialsViewSchema = z\n .object({\n credentials: z.array(CredentialViewSchema),\n modelProviders: z.array(ModelProviderAccessSchema),\n requests: z.array(CredentialRequestViewSchema),\n })\n .strict()\nexport type CredentialsView = z.output<typeof CredentialsViewSchema>\n\nexport const CreateCredentialRequestSchema = z\n .object({\n name: CredentialNameSchema,\n description: CredentialDescriptionSchema.default(''),\n agentScope: CredentialAgentScopeSchema.default({ all: true }),\n autoUse: z.boolean().default(true),\n usage: CredentialUsageSchema.default('request'),\n domains: CredentialDomainsSchema.default([]),\n /** Program credentials only. */\n envName: CredentialEnvNameSchema.optional(),\n value: CredentialValueSchema,\n /** The agent request this form was opened from, if any. */\n requestId: z.string().min(1).max(64).optional(),\n })\n .strict()\nexport type CreateCredentialRequest = z.input<typeof CreateCredentialRequestSchema>\n\n/** Metadata changes; omitted fields keep their value. */\nexport const UpdateCredentialRequestSchema = z\n .object({\n name: CredentialNameSchema.optional(),\n description: CredentialDescriptionSchema.optional(),\n usage: CredentialUsageSchema.optional(),\n domains: CredentialDomainsSchema.optional(),\n agentScope: CredentialAgentScopeSchema.optional(),\n autoUse: z.boolean().optional(),\n /** `null` stops giving it to commands; only program credentials take one. */\n envName: CredentialEnvNameSchema.nullable().optional(),\n /** Replaces the agents allowed to use it while automatic use is off, for example to withdraw an approval. */\n approvedAgentIds: z.array(AgentIdSchema).max(256).optional(),\n })\n .strict()\nexport type UpdateCredentialRequest = z.output<typeof UpdateCredentialRequestSchema>\n\nexport const ReplaceCredentialValueRequestSchema = z.object({ value: CredentialValueSchema }).strict()\nexport type ReplaceCredentialValueRequest = z.output<typeof ReplaceCredentialValueRequestSchema>\n\n/** Removing a credential that is in use needs `confirm`; without it the result lists who uses it. */\nexport const RemoveCredentialRequestSchema = z.object({ confirm: z.boolean().default(false) }).strict()\n\nexport const RemoveCredentialResultSchema = z.discriminatedUnion('removed', [\n z.object({ removed: z.literal(true), view: CredentialsViewSchema }).strict(),\n z.object({ removed: z.literal(false), usedBy: CredentialUsersSchema }).strict(),\n])\nexport type RemoveCredentialResult = z.output<typeof RemoveCredentialResultSchema>\n\nexport const CredentialConsumerKindSchema = z.enum(['extension', 'command', 'mcp', 'model'])\n\n/** One recorded use. The newest 500 per credential are kept, none older than 90 days. */\nexport const CredentialUseSchema = z\n .object({\n at: z.number().int().nonnegative(),\n agentId: AgentIdSchema.nullable(),\n channelId: ChannelIdSchema.nullable(),\n requesterMemberId: z.string().nullable(),\n consumerKind: CredentialConsumerKindSchema,\n consumerId: z.string(),\n /** Extension display name or MCP server name, when it is still known. */\n consumerName: z.string().nullable(),\n targetHost: z.string().nullable(),\n })\n .strict()\nexport type CredentialUse = z.output<typeof CredentialUseSchema>\n\nexport const CredentialUsesViewSchema = z.object({ uses: z.array(CredentialUseSchema) }).strict()\n\nexport const SetModelProviderAccessRequestSchema = z.object({ open: z.boolean() }).strict()\n\n/**\n * The settings route that opens the add form pre-filled from an agent's request: the credential section with `add=1`\n * plus `name`, `purpose`, `domains` (comma separated), `usage` and `request` (the request id) as query parameters.\n */\nexport const credentialRequestRoute = (request: {\n readonly id: string\n readonly name: string\n readonly purpose: string\n readonly domains: readonly string[]\n readonly usage: CredentialUsage\n}): string => {\n const query = new URLSearchParams({ add: '1', name: request.name, request: request.id, usage: request.usage })\n if (request.purpose !== '') query.set('purpose', request.purpose)\n if (request.domains.length > 0) query.set('domains', request.domains.join(','))\n return `/settings/credentials?${query.toString()}`\n}\n\n/** Secret fields of an extension configuration layer bound to a named credential, by field. */\nexport const BoundCredentialsSchema = z.record(z.string(), CredentialIdSchema)\n\n/** Binds secret fields to named credentials; `null` removes the binding and leaves the field unset. */\nexport const CredentialBindingsRequestSchema = z.record(z.string(), CredentialIdSchema.nullable())\n","import { z } from 'zod'\nimport { AgentIdSchema, ChannelIdSchema, LinkedAccountIdSchema } from './domain.js'\n\n/**\n * Linked accounts (设置 → 关联账号): third-party accounts that agents' commands act as. The library only keeps them;\n * an agent's commands receive an account only through its `commandAccounts` grant (命令账号授权 A1、A2). Tokens are\n * write-only; every view below carries metadata only.\n */\n\n/** Platforms the host can link accounts of; each grant names one account per platform. */\nexport const LinkedAccountPlatformIdSchema = z.enum(['github'])\nexport type LinkedAccountPlatformId = z.output<typeof LinkedAccountPlatformIdSchema>\n\n/** How an account is added: a typed token, or the token of a login the platform's local CLI holds (read once). */\nexport const LinkedAccountMethodSchema = z.enum(['token', 'gh-login'])\nexport type LinkedAccountMethod = z.output<typeof LinkedAccountMethodSchema>\n\n/** A login the local `gh` holds, offered as a quick way to link a GitHub account. */\nexport const LocalGithubLoginSchema = z.object({ login: z.string().trim().min(1), active: z.boolean() }).strict()\n\nconst tokenFields = { method: z.literal('token'), token: z.string().trim().min(1).max(512) }\nconst ghLoginFields = { method: z.literal('gh-login'), login: z.string().trim().min(1).max(128) }\n\n/** Where a token comes from: typed, or read once from a login of the platform's local CLI. */\nexport const LinkedAccountTokenSourceSchema = z.discriminatedUnion('method', [\n z.object(tokenFields).strict(),\n z.object(ghLoginFields).strict(),\n])\nexport type LinkedAccountTokenSource = z.output<typeof LinkedAccountTokenSourceSchema>\n\nexport const LinkedAccountViewSchema = z\n .object({\n id: LinkedAccountIdSchema,\n platform: LinkedAccountPlatformIdSchema,\n /** The account name on the platform, as the platform reported it when the token was verified. */\n login: z.string(),\n /** Token scopes where the platform reports them (GitHub classic tokens); `null` otherwise. */\n scopes: z.array(z.string()).nullable(),\n source: LinkedAccountMethodSchema,\n /** False when the stored token cannot be read any more; the account stays so it can be replaced or removed. */\n available: z.boolean(),\n /** Agents whose capabilities grant this account. */\n grantedAgentIds: z.array(AgentIdSchema),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n lastUsedAt: z.number().int().nonnegative().nullable(),\n })\n .strict()\nexport type LinkedAccountView = z.output<typeof LinkedAccountViewSchema>\n\n/** Links an account: the platform plus how its token is given. */\nexport const AddLinkedAccountRequestSchema = z.discriminatedUnion('method', [\n z.object({ platform: LinkedAccountPlatformIdSchema, ...tokenFields }).strict(),\n z.object({ platform: LinkedAccountPlatformIdSchema, ...ghLoginFields }).strict(),\n])\nexport type AddLinkedAccountRequest = z.output<typeof AddLinkedAccountRequestSchema>\n\n/** A new token for an account; it must belong to the same account on the platform. */\nexport const ReplaceLinkedAccountTokenRequestSchema = LinkedAccountTokenSourceSchema\nexport type ReplaceLinkedAccountTokenRequest = z.output<typeof ReplaceLinkedAccountTokenRequestSchema>\n\n/** Removing a granted account needs `confirm`; without it the result lists the agents it is granted to. */\nexport const RemoveLinkedAccountRequestSchema = z.object({ confirm: z.boolean().default(false) }).strict()\n\n/** One recorded use: an agent's command environment carried the account. Newest 500 per account, none over 90 days. */\nexport const LinkedAccountUseSchema = z\n .object({\n at: z.number().int().nonnegative(),\n agentId: AgentIdSchema.nullable(),\n channelId: ChannelIdSchema.nullable(),\n consumerKind: z.enum(['command']),\n consumerId: z.string(),\n })\n .strict()\nexport type LinkedAccountUse = z.output<typeof LinkedAccountUseSchema>\n\nexport const LinkedAccountUsesViewSchema = z.object({ uses: z.array(LinkedAccountUseSchema) }).strict()\n","import { z } from 'zod'\n\nexport const RuntimeCompatibilityDiagnosticSchema = z\n .object({\n objectKind: z.enum(['agent', 'model-provider', 'extension', 'dsh-plugin', 'adapter', 'client-page']),\n objectId: z.string().min(1),\n objectVersion: z.string().min(1),\n configurationRevision: z.string(),\n runtimeFingerprint: z.string().min(1),\n status: z.enum(['checking', 'compatible', 'isolated']),\n phase: z.enum(['configuration', 'dependency', 'build', 'load', 'render', 'restore', 'dispose']),\n reason: z.string().max(2048).optional(),\n retryable: z.boolean(),\n checkedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type RuntimeCompatibilityDiagnostic = z.infer<typeof RuntimeCompatibilityDiagnosticSchema>\n\nexport const HostUpgradeSummarySchema = z\n .object({\n runtimeVersion: z.string().min(1),\n sessionCompatibilityId: z.string().min(1),\n backupId: z.string().optional(),\n resetContexts: z.boolean(),\n diagnostics: z.array(RuntimeCompatibilityDiagnosticSchema),\n })\n .strict()\nexport type HostUpgradeSummary = z.infer<typeof HostUpgradeSummarySchema>\n","import { z } from 'zod'\n\n/** Bounds of the numeric response timing settings; the host rejects values outside them. */\nexport const RESPONSE_TIMING_LIMITS = {\n waitMaxQuietSeconds: { min: 5, max: 300 },\n waitMaxTotalSeconds: { min: 10, max: 900 },\n debounceSeconds: { min: 0, max: 30 },\n debounceMaxSeconds: { min: 1, max: 120 },\n debounceMaxMessages: { min: 1, max: 20 },\n attentionSeconds: { min: 5, max: 600 },\n midWakesPerMinute: { min: 1, max: 30 },\n} as const\n\nconst bounded = (key: keyof typeof RESPONSE_TIMING_LIMITS) =>\n z.number().int().min(RESPONSE_TIMING_LIMITS[key].min).max(RESPONSE_TIMING_LIMITS[key].max).optional()\n\n/**\n * Per-binding timing of when the agent speaks (Decision 2026-10-31 响应时机与智能响应). Every field is optional: an\n * omitted one uses {@link RESPONSE_TIMING_DEFAULTS}. Waiting applies to every policy that answers messages; the rest\n * only to `smart`.\n */\nexport const ResponseTimingSettingsSchema = z\n .object({\n /** The agent may end a turn with `waiting-for-more` and be woken when the speaker goes quiet. */\n waitEnabled: z.boolean().optional(),\n /** Longest quiet period one wait may ask for. */\n waitMaxQuietSeconds: bounded('waitMaxQuietSeconds'),\n /** Longest the agent may keep waiting for one person, counted from the first wait. */\n waitMaxTotalSeconds: bounded('waitMaxTotalSeconds'),\n /** Smart: wait for the speaker to stay quiet this long before a turn starts; 0 starts at once. */\n debounceSeconds: bounded('debounceSeconds'),\n /** Smart: start anyway once this long has passed since the first message. */\n debounceMaxSeconds: bounded('debounceMaxSeconds'),\n /** Smart: start anyway once this many messages from the speaker are collected. */\n debounceMaxMessages: bounded('debounceMaxMessages'),\n /** Smart: a message that contains the agent's name or an alias wakes it. */\n nameWake: z.boolean().optional(),\n /** Smart: after someone talks with the agent, their next messages wake it for a while. */\n attentionWake: z.boolean().optional(),\n attentionSeconds: bounded('attentionSeconds'),\n /** Smart: name and attention wakes per channel per minute; strong signals are never limited. */\n midWakesPerMinute: bounded('midWakesPerMinute'),\n })\n .strict()\n\nexport type ResponseTimingSettings = z.infer<typeof ResponseTimingSettingsSchema>\n\nexport type ResolvedResponseTiming = {\n readonly [K in keyof ResponseTimingSettings]-?: NonNullable<ResponseTimingSettings[K]>\n}\n\nexport const RESPONSE_TIMING_DEFAULTS: ResolvedResponseTiming = {\n waitEnabled: true,\n waitMaxQuietSeconds: 60,\n waitMaxTotalSeconds: 120,\n debounceSeconds: 3,\n debounceMaxSeconds: 30,\n debounceMaxMessages: 5,\n nameWake: true,\n attentionWake: true,\n attentionSeconds: 60,\n midWakesPerMinute: 3,\n}\n\n/** Shortest quiet period a wait may ask for, whatever the channel allows. */\nexport const RESPONSE_WAIT_MIN_QUIET_SECONDS = 5\n\nexport const resolveResponseTiming = (settings: ResponseTimingSettings | undefined): ResolvedResponseTiming => ({\n ...RESPONSE_TIMING_DEFAULTS,\n ...Object.fromEntries(Object.entries(settings ?? {}).filter(([, value]) => value !== undefined)),\n})\n\n/** Extra names that wake the agent in smart mode; the display name always counts too. */\nexport const AgentAliasesSchema = z\n .array(z.string().trim().min(1).max(32))\n .max(16)\n .transform((aliases) => [...new Set(aliases)])\n","import { z } from 'zod'\n\nconst NonEmptyStringSchema = z.string().trim().min(1)\nconst Base64UrlSchema = z.string().regex(/^[A-Za-z0-9_-]+$/u)\n\nexport const ServerInstanceIdSchema = z\n .string()\n .regex(/^nxt_instance_[0-9A-HJKMNP-TV-Z]{26}$/u)\n .brand<'ServerInstanceId'>()\nexport type ServerInstanceId = z.output<typeof ServerInstanceIdSchema>\n\nexport const ManagementDeviceIdSchema = z\n .string()\n .regex(/^nxt_device_[0-9A-HJKMNP-TV-Z]{26}$/u)\n .brand<'ManagementDeviceId'>()\nexport type ManagementDeviceId = z.output<typeof ManagementDeviceIdSchema>\n\nexport const InstanceDescriptorWireSchema = z\n .object({\n format: z.literal('nxt.instance-descriptor'),\n descriptorVersion: z.number().int().positive(),\n instanceId: ServerInstanceIdSchema,\n releaseId: NonEmptyStringSchema.max(256),\n productVersion: NonEmptyStringSchema.max(64),\n managementProtocol: z.number().int().positive(),\n desktopChromeProtocol: z.number().int().positive(),\n transport: NonEmptyStringSchema.max(80),\n })\n .passthrough()\nexport type InstanceDescriptorWire = z.output<typeof InstanceDescriptorWireSchema>\n\nexport const InstanceDescriptorSchema = z\n .object({\n format: z.literal('nxt.instance-descriptor'),\n descriptorVersion: z.literal(1),\n instanceId: ServerInstanceIdSchema,\n releaseId: NonEmptyStringSchema.max(256),\n productVersion: NonEmptyStringSchema.max(64),\n managementProtocol: z.union([z.literal(1), z.literal(2)]),\n desktopChromeProtocol: z.literal(1),\n transport: z.enum(['loopback-http', 'auto-tls-pinned-v1', 'explicit-http-v1']),\n })\n .strict()\n .superRefine((value, context) => {\n const valid =\n (value.managementProtocol === 1 &&\n (value.transport === 'loopback-http' || value.transport === 'auto-tls-pinned-v1')) ||\n (value.managementProtocol === 2 && value.transport === 'explicit-http-v1')\n if (!valid) context.addIssue({ code: 'custom', message: 'management protocol 与 transport 不匹配。' })\n })\nexport type InstanceDescriptor = z.output<typeof InstanceDescriptorSchema>\n\nexport const ManagementChallengeResponseSchema = z\n .object({\n challengeId: Base64UrlSchema,\n serverNonce: Base64UrlSchema,\n instanceId: ServerInstanceIdSchema,\n spkiSha256: Base64UrlSchema,\n expiresAt: z.number().int().positive(),\n })\n .strict()\nexport type ManagementChallengeResponse = z.output<typeof ManagementChallengeResponseSchema>\n\nexport const InsecureHttpManagementChallengeResponseSchema = z\n .object({\n challengeId: Base64UrlSchema,\n serverNonce: Base64UrlSchema,\n instanceId: ServerInstanceIdSchema,\n transportBinding: Base64UrlSchema,\n expiresAt: z.number().int().positive(),\n })\n .strict()\nexport type InsecureHttpManagementChallengeResponse = z.output<typeof InsecureHttpManagementChallengeResponseSchema>\n\nexport const ManagementDeviceEnrollmentRequestSchema = z\n .object({\n challengeId: Base64UrlSchema,\n clientNonce: Base64UrlSchema,\n proof: Base64UrlSchema,\n label: z.string().trim().min(1).max(80),\n clientReleaseId: NonEmptyStringSchema.max(256),\n })\n .strict()\nexport type ManagementDeviceEnrollmentRequest = z.input<typeof ManagementDeviceEnrollmentRequestSchema>\n\nexport const ManagementDeviceEnrollmentResponseSchema = z\n .object({\n deviceId: ManagementDeviceIdSchema,\n deviceSecret: Base64UrlSchema,\n })\n .strict()\nexport type ManagementDeviceEnrollmentResponse = z.output<typeof ManagementDeviceEnrollmentResponseSchema>\n\nexport const ManagementSessionRequestSchema = z\n .object({ deviceId: ManagementDeviceIdSchema, deviceSecret: Base64UrlSchema })\n .strict()\nexport type ManagementSessionRequest = z.input<typeof ManagementSessionRequestSchema>\n\nexport const ManagementSessionResponseSchema = z\n .object({ authenticated: z.literal(true), deviceId: ManagementDeviceIdSchema, csrfToken: Base64UrlSchema })\n .strict()\nexport type ManagementSessionResponse = z.output<typeof ManagementSessionResponseSchema>\n\nexport const ManagementDeviceViewSchema = z\n .object({\n id: ManagementDeviceIdSchema,\n label: z.string().trim().min(1).max(80),\n createdAt: z.number().int().nonnegative(),\n lastUsedAt: z.number().int().nonnegative().optional(),\n revokedAt: z.number().int().nonnegative().optional(),\n /** The device this request is signed in with. */\n current: z.boolean().optional(),\n })\n .strict()\nexport type ManagementDeviceView = z.output<typeof ManagementDeviceViewSchema>\n\nexport const ClientNotificationSchema = z\n .object({\n id: z.string().trim().min(1).max(160),\n kind: z.enum(['action-required']),\n title: z.string().trim().min(1).max(80),\n body: z.string().trim().min(1).max(240),\n occurredAt: z.number().int().nonnegative(),\n route: z\n .string()\n .regex(\n /^\\/(?:(?:live|channels|agents|workshop|wiring|settings|community|apps|work|connections|users|extensions)(?:\\/[^?#]*)?)?(?:\\?[^#]*)?$/u,\n )\n .optional(),\n })\n .strict()\nexport type ClientNotification = z.output<typeof ClientNotificationSchema>\n\nexport const MANAGEMENT_PAIR_PROOF_PREFIX = 'nxt-management-pair-v1' as const\n\nexport const managementPairProofMessage = (input: {\n readonly challengeId: string\n readonly serverNonce: string\n readonly clientNonce: string\n readonly instanceId: ServerInstanceId\n readonly spkiSha256: string\n}): string =>\n [\n MANAGEMENT_PAIR_PROOF_PREFIX,\n input.challengeId,\n input.serverNonce,\n input.clientNonce,\n input.instanceId,\n input.spkiSha256,\n ].join('\\n')\n\nexport const INSECURE_HTTP_MANAGEMENT_PAIR_PROOF_PREFIX = 'nxt-management-pair-insecure-http-v1' as const\n\nexport const insecureHttpManagementPairProofMessage = (input: {\n readonly challengeId: string\n readonly serverNonce: string\n readonly clientNonce: string\n readonly instanceId: ServerInstanceId\n readonly transportBinding: string\n}): string =>\n [\n INSECURE_HTTP_MANAGEMENT_PAIR_PROOF_PREFIX,\n input.challengeId,\n input.serverNonce,\n input.clientNonce,\n input.instanceId,\n input.transportBinding,\n ].join('\\n')\n","import { z } from 'zod'\nimport { ExtensionIdSchema, ExtensionRevisionIdSchema } from './domain.js'\n\n/**\n * NekroNXT 社区在本机的投影。Host 代理社区开放接口并把结果归一到这些结构;社区新增的字段在 Host 处丢弃,\n * 不直接透传给页面。审查状态与社区 `ReviewStatus` 一致。\n */\nexport const COMMUNITY_REVIEW_STATUSES = [\n 'pending',\n 'reviewing',\n 'passed',\n 'passed_with_notes',\n 'flagged',\n 'held',\n 'risk_confirmed',\n 'rejected',\n 'incomplete',\n] as const\nexport const CommunityReviewStatusSchema = z.enum(COMMUNITY_REVIEW_STATUSES)\nexport type CommunityReviewStatus = z.output<typeof CommunityReviewStatusSchema>\n\n/** 社区评级的六个维度(审查标准 v1),从正上方顺时针排列成六边形。 */\nexport const COMMUNITY_RATING_DIMENSIONS = [\n 'security',\n 'openness',\n 'reliability',\n 'lightweight',\n 'usability',\n 'craft',\n] as const\nexport type CommunityRatingDimension = (typeof COMMUNITY_RATING_DIMENSIONS)[number]\n\nexport const COMMUNITY_RATING_DIMENSION_LABELS: Readonly<Record<CommunityRatingDimension, string>> = {\n security: '安全',\n openness: '开放',\n reliability: '稳定',\n lightweight: '轻量',\n usability: '易用',\n craft: '工艺',\n}\n\n/** 社区的审查员,评级与审查记录以她署名。 */\nexport const COMMUNITY_REVIEWER_NAME = '小澄'\n\n/** 社区判定的达成标签;不认识的标签不显示。扩展页面最多显示 {@link COMMUNITY_RATING_BADGE_LIMIT} 个。 */\nexport const COMMUNITY_RATING_BADGES: Readonly<\n Record<string, { readonly label: string; readonly description: string }>\n> = {\n 'zero-permission': { label: '零权限', description: '没有申请任何权限。' },\n 'least-privilege': { label: '最小权限', description: '声明的每项能力都用得上,安全满星。' },\n 'no-network': { label: '不联网', description: '不访问任何网络。' },\n 'scoped-network': { label: '限定地址联网', description: '只访问指定域名或用户在配置中填写的地址。' },\n 'managed-secrets': { label: '凭据托管', description: '凭据都是配置中的凭据字段,经宿主读取,没有写进源码。' },\n 'readable-source': { label: '源码可读', description: '没有混淆、压缩或内嵌大段编码内容。' },\n 'open-source': { label: '开源', description: '填写了公开的源码仓库。' },\n 'readable-errors': { label: '错误可读', description: '失败时都返回给用户看的说明,稳定满星。' },\n 'stable-context': { label: '上下文稳定', description: '不占上下文,或注入的上下文稳定、不破坏提示缓存。' },\n 'complete-docs': { label: '说明完整', description: '有图标和介绍,易用至少四星。' },\n}\nexport const COMMUNITY_RATING_BADGE_LIMIT = 4\n\n/** 一次发布的评级:六维星级、综合评分(各维度平均,保留一位小数)与达成标签。 */\nexport const CommunityRatingSchema = z.object({\n standard: z.string().max(20),\n score: z.number().min(1).max(5),\n dimensions: z\n .array(\n z.object({\n key: z.string().max(40),\n stars: z.number().int().min(1).max(5),\n headline: z.string().max(200),\n cap: z.string().max(200).optional(),\n }),\n )\n .max(16),\n badges: z.array(z.string().max(40)).max(32),\n})\nexport type CommunityRating = z.output<typeof CommunityRatingSchema>\n\n/** 市场的排序方式。 */\nexport const COMMUNITY_EXTENSION_SORTS = [\n { key: 'updated', label: '最近更新' },\n { key: 'score', label: '综合评分' },\n { key: 'downloads', label: '下载最多' },\n { key: 'newest', label: '最新上架' },\n] as const\nexport type CommunityExtensionSort = (typeof COMMUNITY_EXTENSION_SORTS)[number]['key']\nexport const CommunityExtensionSortSchema = z.enum(['updated', 'score', 'downloads', 'newest'])\n\nexport const CommunityReleaseIdSchema = z.string().regex(/^rel_[0-9A-Za-z]+$/u)\n\nexport const CommunityAccountSchema = z.object({\n /** Immutable community identity; absent when connected to a community predating feedback support. */\n id: z.string().min(1).max(100).optional(),\n handle: z.string().min(1).max(80),\n displayName: z.string().max(200),\n avatarUrl: z.string().url().nullable(),\n})\nexport type CommunityAccount = z.output<typeof CommunityAccountSchema>\n\nexport const CommunityEnvironmentSchema = z.enum(['production', 'staging', 'development'])\nexport type CommunityEnvironment = z.output<typeof CommunityEnvironmentSchema>\n\nexport const CommunityStatusSchema = z.object({\n features: z.array(z.string()).optional(),\n communityUrl: z.string().url(),\n /** 社区自我声明的环境;连不上或旧版社区时为 null。 */\n environment: CommunityEnvironmentSchema.nullable(),\n account: CommunityAccountSchema.nullable(),\n signedInAt: z.number().int().nullable(),\n /** 最近一次更新检查发现的可更新扩展数量(只读缓存,不发起网络请求)。 */\n updatesAvailable: z.number().int().nonnegative(),\n})\nexport type CommunityStatus = z.output<typeof CommunityStatusSchema>\n\nexport const CommunityPermissionItemSchema = z.object({\n key: z.string().max(120),\n level: z.enum(['normal', 'elevated', 'high']),\n label: z.string().max(200),\n detail: z.string().max(2000).optional(),\n /** `host`: approved when installed on this machine; `agent`: approved when enabled for an agent. */\n layer: z.enum(['host', 'agent']).optional(),\n})\n\nexport type CommunityPermissionItem = z.output<typeof CommunityPermissionItemSchema>\n\nexport const CommunityReleaseSchema = z.object({\n id: CommunityReleaseIdSchema,\n reviewStatus: CommunityReviewStatusSchema,\n /** 审查完成后的评级;尚未审查、审查未完成或旧版社区时为 null。 */\n rating: CommunityRatingSchema.nullable(),\n permissions: z.array(CommunityPermissionItemSchema).max(64),\n packageSize: z.number().int().nonnegative(),\n requiresSdk: z.number().int().positive().nullable(),\n notes: z.string().max(2000),\n createdAt: z.number().int(),\n /** Release number on the community line; absent from older communities. */\n number: z.number().int().positive().optional(),\n /** Revision the release contains and its lineage, so NekroNXT can tell fast-forward from divergence. */\n revisionId: ExtensionRevisionIdSchema.optional(),\n parentRevisionId: ExtensionRevisionIdSchema.nullable().optional(),\n ancestry: z.array(ExtensionRevisionIdSchema).max(256).optional(),\n})\nexport type CommunityRelease = z.output<typeof CommunityReleaseSchema>\n\n/** 社区为官方扩展保留的发布者标识:官方扩展由多位官方成员维护,对外不显示个人账号。 */\nexport const COMMUNITY_OFFICIAL_HANDLE = 'nekro-nxt'\n\n/** 发布者的展示文字:官方扩展显示「NekroNXT 官方」,其余显示 @账号。 */\nexport const communityPublisherLabel = (handle: string): string =>\n handle === COMMUNITY_OFFICIAL_HANDLE ? 'NekroNXT 官方' : `@${handle}`\n\nexport const CommunityExtensionSummarySchema = z.object({\n id: ExtensionIdSchema,\n /** What the extension provides, derived from its Manifest; unknown future labels are dropped. */\n provides: z.array(z.string().max(32)).max(8),\n displayName: z.string().max(200),\n summary: z.string().max(1000),\n tags: z.array(z.string().max(40)).max(16),\n /** 最新公开发布包内的扩展图标(社区的绝对地址);没有图标或旧版社区时为 null。 */\n iconUrl: z.string().url().nullable(),\n /** 由社区后台认定的官方扩展;此时发布者是社区保留的官方主页(`COMMUNITY_OFFICIAL_HANDLE`)。 */\n official: z.boolean(),\n publisher: CommunityAccountSchema,\n latest: CommunityReleaseSchema.nullable(),\n downloads: z.number().int().nonnegative(),\n updatedAt: z.number().int(),\n pageUrl: z.string().url(),\n /**\n * The extension and version this one is a branch of; null for an original line or an older community. Without a\n * displayName the origin is not public on the community.\n */\n branchOf: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema.nullable(),\n displayName: z.string().max(200).nullable(),\n })\n .nullable()\n .optional(),\n /** Public branches made from this extension. */\n branchCount: z.number().int().nonnegative().optional(),\n})\nexport type CommunityExtensionSummary = z.output<typeof CommunityExtensionSummarySchema>\n\nexport const CommunityExtensionDetailSchema = CommunityExtensionSummarySchema.extend({\n description: z.string().max(20_000),\n sourceUrl: z.string().url().nullable(),\n /** 公开的审查记录:评级、总评、各维度说明,以及发现与自动检查的标题。 */\n review: z\n .object({\n status: CommunityReviewStatusSchema,\n rating: CommunityRatingSchema.nullable(),\n summary: z.string().max(2000).nullable(),\n dimensions: z.array(z.object({ key: z.string().max(40), notes: z.string().max(2000) })).max(16),\n findings: z\n .array(z.object({ dimension: z.string().max(40), severity: z.string().max(20), title: z.string().max(200) }))\n .max(64),\n checks: z.array(z.object({ severity: z.string().max(20), title: z.string().max(200) })).max(64),\n reviewedAt: z.number().int().nullable(),\n })\n .nullable(),\n})\nexport type CommunityExtensionDetail = z.output<typeof CommunityExtensionDetailSchema>\n\n/**\n * 本机缓存的社区目录读取附带的时间:`fetchedAt` 是这份内容从社区取回的时间;`stale` 表示社区这次没能读取,\n * 返回的是较早的一份。\n */\nexport const CommunityFreshnessSchema = z.object({ fetchedAt: z.number().int().nonnegative(), stale: z.boolean() })\nexport type CommunityFreshness = z.output<typeof CommunityFreshnessSchema>\n\n/**\n * 发布时随包提交的条目信息(作者自己写的介绍)。首次发布用于建条目;之后提供了哪项就覆盖哪项,未提供的保持不变。\n */\nexport const COMMUNITY_LISTING_LIMITS = { summary: 160, description: 20_000, tags: 8, tag: 40 } as const\n\nexport const CommunityListingInputSchema = z.object({\n summary: z.string().trim().max(COMMUNITY_LISTING_LIMITS.summary).optional(),\n description: z.string().max(COMMUNITY_LISTING_LIMITS.description).optional(),\n tags: z\n .array(z.string().trim().min(1).max(COMMUNITY_LISTING_LIMITS.tag))\n .max(COMMUNITY_LISTING_LIMITS.tags)\n .optional(),\n sourceUrl: z\n .string()\n .trim()\n .url()\n .refine((value) => /^https?:\\/\\//iu.test(value), '源码地址必须是 http(s) 链接。')\n .optional(),\n})\nexport type CommunityListingInput = z.output<typeof CommunityListingInputSchema>\n\nexport const CommunityEndpointSchema = z.object({\n url: z.string().url(),\n source: z.enum(['setting', 'environment', 'default']),\n defaultUrl: z.string().url(),\n environmentUrl: z.string().url().nullable(),\n /** 当前地址是未加密的非本机地址。 */\n insecure: z.boolean(),\n})\nexport type CommunityEndpoint = z.output<typeof CommunityEndpointSchema>\n\nexport const CommunitySourceSchema = z.object({\n kind: z.literal('community'),\n communityUrl: z.string().url(),\n releaseId: CommunityReleaseIdSchema,\n publisherHandle: z.string().min(1).max(80),\n installedAt: z.number().int().nonnegative(),\n})\nexport type CommunitySource = z.output<typeof CommunitySourceSchema>\n\n/**\n * How this machine's current version of one extension relates to the community's newest public release, with the\n * action that relation calls for. `role` says whether this machine may publish the line or only follows it.\n */\nexport const CommunitySyncItemSchema = z.object({\n extensionId: ExtensionIdSchema,\n displayName: z.string(),\n communityUrl: z.string().url(),\n role: z.enum(['owner', 'subscriber']),\n currentRevisionId: ExtensionRevisionIdSchema,\n currentVersionLabel: z.string(),\n /** Release the current version is, when it is one. */\n currentRelease: z.object({ id: CommunityReleaseIdSchema, number: z.number().int().positive().nullable() }).nullable(),\n /** `remote-ahead`: update; `local-ahead`: publish (owner) or local changes (subscriber); `diverged`: merge first. */\n status: z.enum(['same', 'remote-ahead', 'local-ahead', 'diverged', 'unrelated', 'unknown']),\n found: z.boolean(),\n delisted: z.boolean(),\n delistedReason: z.string().nullable(),\n /** The release the current version came from was withdrawn by its author. */\n releaseWithdrawn: z.boolean(),\n latest: CommunityReleaseSchema.nullable(),\n /** The user chose to keep local changes over `latest`; it is not offered again. */\n dismissed: z.boolean(),\n addedPermissions: z.array(CommunityPermissionItemSchema),\n})\nexport type CommunitySyncItem = z.output<typeof CommunitySyncItemSchema>\n\nexport const CommunitySyncSchema = z.object({\n checkedAt: z.number().int().nullable(),\n items: z.array(CommunitySyncItemSchema),\n})\n\nexport const CommunityInstalledItemSchema = z.object({\n extensionId: ExtensionIdSchema,\n displayName: z.string(),\n revisionId: z.string(),\n source: CommunitySourceSchema,\n /** 来源与当前社区地址一致时才能检查更新。 */\n sameCommunity: z.boolean(),\n /** 社区仍有这个条目。 */\n found: z.boolean(),\n delisted: z.boolean(),\n delistedReason: z.string().nullable(),\n releaseWithdrawn: z.boolean(),\n latest: CommunityReleaseSchema.nullable(),\n updateAvailable: z.boolean(),\n addedPermissions: z.array(CommunityPermissionItemSchema),\n})\nexport type CommunityInstalledItem = z.output<typeof CommunityInstalledItemSchema>\n\nexport const CommunityInstalledSchema = z.object({\n checkedAt: z.number().int().nullable(),\n items: z.array(CommunityInstalledItemSchema),\n})\n\nexport const CommunityMyExtensionSchema = CommunityExtensionSummarySchema.extend({\n releases: z.array(CommunityReleaseSchema.extend({ withdrawn: z.boolean() })),\n delisted: z.boolean(),\n delistedReason: z.string().nullable(),\n})\nexport type CommunityMyExtension = z.output<typeof CommunityMyExtensionSchema>\n\n/** 审查发现可归属的维度:六个评级维度加合规。 */\nexport const COMMUNITY_REVIEW_DIMENSION_LABELS: Readonly<Record<string, string>> = {\n ...COMMUNITY_RATING_DIMENSION_LABELS,\n compliance: '合规',\n}\n\n/** 作者看到的完整审查报告。 */\nexport const CommunityReviewReportSchema = z.object({\n releaseId: CommunityReleaseIdSchema,\n status: CommunityReviewStatusSchema,\n rating: CommunityRatingSchema.nullable(),\n deterministic: z.array(\n z.object({\n severity: z.enum(['info', 'warning', 'risk', 'block']),\n title: z.string(),\n detail: z.string(),\n file: z.string().optional(),\n line: z.number().int().optional(),\n }),\n ),\n ai: z\n .object({\n summary: z.string(),\n verdict: z.string(),\n compliance: z.object({ ok: z.boolean(), notes: z.string() }).nullable(),\n dimensions: z.array(\n z.object({\n key: z.string(),\n stars: z.number().int().min(1).max(5),\n headline: z.string(),\n notes: z.string(),\n /** 不满五星时拿下一颗星的修改建议。 */\n nextStar: z.string().optional(),\n }),\n ),\n findings: z.array(\n z.object({\n dimension: z.string(),\n severity: z.enum(['info', 'suggestion', 'warning', 'risk', 'critical']),\n title: z.string(),\n detail: z.string(),\n file: z.string().optional(),\n line: z.number().int().optional(),\n suggestion: z.string().optional(),\n }),\n ),\n exploitability: z.string().optional(),\n })\n .nullable(),\n model: z.string().nullable(),\n error: z.string().nullable(),\n decisions: z.array(z.object({ decision: z.string(), note: z.string(), by: z.string(), createdAt: z.number().int() })),\n finishedAt: z.number().int().nullable(),\n reportUrl: z.string().url(),\n})\nexport type CommunityReviewReport = z.output<typeof CommunityReviewReportSchema>\n\n/** 安装者看到的审查标签:只描述审查发现,不做「安全」担保。 */\nexport const communityReviewLabel = (\n status: CommunityReviewStatus,\n): { readonly tone: 'neutral' | 'ok' | 'accent' | 'warn' | 'bad'; readonly label: string } => {\n switch (status) {\n case 'passed':\n return { tone: 'ok', label: '审查通过' }\n case 'passed_with_notes':\n return { tone: 'accent', label: '审查通过,有建议' }\n case 'flagged':\n return { tone: 'warn', label: '有风险,待复审' }\n case 'risk_confirmed':\n return { tone: 'warn', label: '有风险' }\n case 'held':\n return { tone: 'bad', label: '暂停公开,待复审' }\n case 'rejected':\n return { tone: 'bad', label: '未通过' }\n case 'pending':\n case 'reviewing':\n case 'incomplete':\n return { tone: 'neutral', label: '风险未知' }\n }\n}\n","import { z } from 'zod'\nimport { CommunityAccountSchema } from './community.js'\nimport { AgentIdSchema } from './domain.js'\n\n/**\n * 社区人设在本机的投影:名称、头像、简介、作者介绍、标签与人设正文(对应智能体的 `persona`)。不含模型与扩展。\n * Host 宽松读取社区响应并归一到这些结构;头像改写为本机代理地址,页面不直接跨域读取社区图片。\n */\nexport const CommunityPersonaIdSchema = z.string().regex(/^psn_[0-9A-Za-z]+$/u)\nexport const CommunityPersonaRevisionIdSchema = z.string().regex(/^prv_[0-9A-Za-z]+$/u)\n\n/** 人设正文上限,与智能体设定一致。 */\nexport const COMMUNITY_PERSONA_MAX_LENGTH = 64 * 1024\n/** 发布头像上限(社区约定 ≤512 KiB 的 PNG、JPEG 或 WebP)。 */\nexport const COMMUNITY_PERSONA_AVATAR_MAX_BYTES = 512 * 1024\nexport const COMMUNITY_PERSONA_AVATAR_TYPES = ['image/png', 'image/jpeg', 'image/webp'] as const\n\nconst TagsSchema = z.array(z.string().min(1).max(40)).max(16)\n\nexport const CommunityPersonaSummarySchema = z.object({\n id: CommunityPersonaIdSchema,\n name: z.string().min(1).max(200),\n summary: z.string().max(1000),\n tags: TagsSchema,\n /** 本机代理地址 `/api/community/personas/<id>/avatar?v=…`;没有头像时为 null。 */\n avatarUrl: z.string().startsWith('/api/community/personas/').nullable(),\n official: z.boolean(),\n publisher: CommunityAccountSchema,\n installs: z.number().int().nonnegative(),\n updatedAt: z.number().int(),\n pageUrl: z.string().url(),\n})\nexport type CommunityPersonaSummary = z.output<typeof CommunityPersonaSummarySchema>\n\nexport const CommunityPersonaDetailSchema = CommunityPersonaSummarySchema.extend({\n description: z.string().max(20_000),\n persona: z.string().max(COMMUNITY_PERSONA_MAX_LENGTH),\n revision: z.object({\n id: CommunityPersonaRevisionIdSchema,\n notes: z.string().max(2000),\n createdAt: z.number().int(),\n }),\n review: z.object({ status: z.enum(['approved', 'flagged']), summary: z.string().max(2000).nullable() }).nullable(),\n})\nexport type CommunityPersonaDetail = z.output<typeof CommunityPersonaDetailSchema>\n\nexport const CommunityPersonaReviewStatusSchema = z.enum(['pending', 'approved', 'flagged', 'rejected'])\nexport type CommunityPersonaReviewStatus = z.output<typeof CommunityPersonaReviewStatusSchema>\n\nexport const CommunityMyPersonaSchema = CommunityPersonaSummarySchema.extend({\n status: z.enum(['listed', 'delisted']),\n latestRevision: z.object({\n id: CommunityPersonaRevisionIdSchema,\n createdAt: z.number().int(),\n reviewStatus: CommunityPersonaReviewStatusSchema,\n reviewSummary: z.string().max(2000).nullable(),\n }),\n})\nexport type CommunityMyPersona = z.output<typeof CommunityMyPersonaSchema>\n\nexport const CommunityMyPersonasSchema = z.object({\n items: z.array(CommunityMyPersonaSchema),\n /** 本机智能体最近一次发布到当前社区的人设,用于「更新已发布的人设」。 */\n agentLinks: z.record(AgentIdSchema, CommunityPersonaIdSchema),\n})\n\n/** 作者看到的审查状态文字。 */\nexport const communityPersonaReviewLabel = (\n status: CommunityPersonaReviewStatus,\n): { readonly tone: 'neutral' | 'ok' | 'warn' | 'bad'; readonly label: string } => {\n switch (status) {\n case 'approved':\n return { tone: 'ok', label: '已公开' }\n case 'pending':\n return { tone: 'neutral', label: '审查中' }\n case 'flagged':\n return { tone: 'warn', label: '待人工复核' }\n case 'rejected':\n return { tone: 'bad', label: '未通过' }\n }\n}\n","import { z } from 'zod'\n\nexport const COMMUNITY_FEEDBACK_STATUSES = [\n 'new',\n 'needs_info',\n 'triaged',\n 'planned',\n 'fixed',\n 'duplicate',\n 'wontfix',\n 'withdrawn',\n] as const\nexport const CommunityFeedbackStatusSchema = z.enum(COMMUNITY_FEEDBACK_STATUSES)\nexport type CommunityFeedbackStatus = z.output<typeof CommunityFeedbackStatusSchema>\nexport const COMMUNITY_FEEDBACK_STATUS_LABELS: Readonly<Record<CommunityFeedbackStatus, string>> = {\n new: '新反馈',\n needs_info: '需要补充',\n triaged: '已确认',\n planned: '已计划',\n fixed: '已修复',\n duplicate: '重复',\n wontfix: '不处理',\n withdrawn: '已撤回',\n}\nexport const CommunityFeedbackKindSchema = z.enum(['bug', 'suggestion', 'question'])\nexport const CommunityFeedbackIdSchema = z\n .string()\n .regex(/^fbk_[0-9a-z]{26}$/u)\n .brand<'CommunityFeedbackId'>()\nexport const CommunityFeedbackRefSchema = z.string().regex(/^FB-[1-9][0-9]*$/u)\nexport const CommunityFeedbackTargetSchema = z.union([\n z.literal('nxt'),\n z.object({ extensionId: z.string().regex(/^ext_[0-9A-Za-z]+$/u), version: z.string().max(120).optional() }).strict(),\n])\nconst version = z.string().trim().min(1).max(120)\nconst timestamp = z.number().int().nonnegative()\n\nexport const CommunityFeedbackExtensionDiagnosticSchema = z\n .object({\n extensionId: z.string().max(100),\n version,\n accessLevel: z.string().max(80).optional(),\n activation: z.enum(['host', 'agent']).optional(),\n })\n .strict()\nexport const CommunityFeedbackDiagnosticEntrySchema = z\n .object({\n kind: z.enum(['compatibility', 'extension', 'connection']),\n summary: z.string().max(2000),\n extensionId: z.string().max(100).optional(),\n })\n .strict()\n\n/** An explicit allowlist: credentials, account grants and arbitrary host configuration never cross this boundary. */\nexport const CommunityFeedbackDiagnosticsSchema = z\n .object({\n nxtVersion: version.optional(),\n releaseChannel: z.enum(['stable', 'preview', 'development']).optional(),\n hostKind: z.enum(['desktop', 'server']).optional(),\n platform: z.string().max(80).optional(),\n arch: z.string().max(40).optional(),\n dshVersion: version.optional(),\n adapters: z.array(z.string().max(100)).max(64).optional(),\n agent: z\n .object({\n accessLevel: z.string().max(80),\n subagents: z.boolean(),\n fileTools: z.boolean(),\n webSearch: z.boolean(),\n dynamicCreation: z.boolean(),\n developmentShell: z.boolean(),\n unrestrictedFileAccess: z.boolean(),\n scheduledTasks: z.boolean(),\n codeRun: z.boolean(),\n commandNetwork: z.boolean(),\n communityFeedbackAuto: z.boolean(),\n })\n .strict()\n .optional(),\n extensions: z.array(CommunityFeedbackExtensionDiagnosticSchema).max(256).optional(),\n entries: z.array(CommunityFeedbackDiagnosticEntrySchema).max(32).optional(),\n instanceId: z.string().min(1).max(100).optional(),\n })\n .strict()\nexport type CommunityFeedbackDiagnostics = z.output<typeof CommunityFeedbackDiagnosticsSchema>\n\nexport const CommunityFeedbackExcerptSchema = z\n .array(\n z\n .object({\n speaker: z.string().max(80),\n text: z.string().max(6000),\n })\n .strict(),\n )\n .max(8)\nexport type CommunityFeedbackExcerpt = z.output<typeof CommunityFeedbackExcerptSchema>\n\nexport const CommunityFeedbackCreateSchema = z\n .object({\n clientRequestId: z.string().min(1).max(160),\n kind: CommunityFeedbackKindSchema,\n target: CommunityFeedbackTargetSchema,\n title: z.string().trim().min(1).max(120),\n body: z.string().trim().min(1).max(8000),\n diagnostics: CommunityFeedbackDiagnosticsSchema.default({}),\n excerpt: CommunityFeedbackExcerptSchema.optional(),\n excerptSharedWithAuthor: z.boolean().default(false),\n source: z.enum(['assistant', 'assistant_auto', 'form', 'web']),\n instanceId: z.string().min(1).max(100).optional(),\n })\n .strict()\nexport type CommunityFeedbackCreate = z.output<typeof CommunityFeedbackCreateSchema>\nexport const CommunityFeedbackMessageInputSchema = z\n .object({\n body: z.string().trim().min(1).max(4000),\n audience: z.enum(['everyone', 'staff']).default('everyone'),\n })\n .strict()\nexport const CommunityFeedbackSupplementSchema = z\n .object({\n diagnostics: CommunityFeedbackDiagnosticsSchema.optional(),\n excerpt: CommunityFeedbackExcerptSchema.optional(),\n excerptSharedWithAuthor: z.boolean().optional(),\n })\n .strict()\nexport const CommunityFeedbackWithdrawSchema = z.object({ deleteText: z.boolean().default(false) }).strict()\nexport const CommunityFeedbackConfirmSchema = z.object({ clientVersion: version }).strict()\nexport const CommunityFeedbackReopenSchema = z.object({ note: z.string().trim().min(1).max(2000) }).strict()\nexport const CommunityFeedbackAffectedSchema = z\n .object({\n diagnostics: CommunityFeedbackDiagnosticsSchema.optional(),\n nxtVersion: version.optional(),\n })\n .strict()\nexport const CommunityFeedbackTransitionSchema = z\n .object({\n status: CommunityFeedbackStatusSchema,\n fixedIn: version.optional(),\n duplicateOf: CommunityFeedbackRefSchema.optional(),\n note: z.string().trim().max(2000).optional(),\n })\n .strict()\nexport type CommunityFeedbackTransition = z.output<typeof CommunityFeedbackTransitionSchema>\nexport const CommunityFeedbackLabelsSchema = z\n .object({\n labels: z.array(z.string().trim().min(1).max(40)).max(20),\n priority: z.enum(['low', 'normal', 'high']).nullable(),\n })\n .strict()\nexport const CommunityFeedbackLinkSchema = z\n .object({\n githubUrl: z\n .string()\n .url()\n .max(1000)\n .refine((value) => /^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/issues\\/[1-9][0-9]*$/u.test(value))\n .nullable(),\n })\n .strict()\nexport const CommunityFeedbackVisibilitySchema = z.object({ visibility: z.enum(['private', 'public']) }).strict()\n\nexport const CommunityFeedbackEventDataSchema = z\n .object({\n from: CommunityFeedbackStatusSchema.optional(),\n to: CommunityFeedbackStatusSchema.optional(),\n fixedIn: version.nullable().optional(),\n duplicateOf: CommunityFeedbackRefSchema.nullable().optional(),\n note: z.string().max(2000).optional(),\n labels: z.array(z.string()).optional(),\n priority: z.enum(['low', 'normal', 'high']).nullable().optional(),\n visibility: z.enum(['private', 'public']).optional(),\n clientVersion: version.optional(),\n messageId: z.string().optional(),\n audience: z.enum(['everyone', 'staff']).optional(),\n deleteText: z.boolean().optional(),\n affected: z.boolean().optional(),\n })\n .strict()\nexport const CommunityFeedbackEventSchema = z.object({\n seq: z.number().int().positive(),\n ref: CommunityFeedbackRefSchema,\n type: z.enum([\n 'created',\n 'message',\n 'status_changed',\n 'labeled',\n 'priority_changed',\n 'linked_issue',\n 'duplicate_marked',\n 'fixed_in_set',\n 'visibility_changed',\n 'affected_added',\n 'withdrawn',\n 'reopened',\n 'supplemented',\n 'fix_confirmed',\n ]),\n actorKind: z.enum(['user', 'admin', 'author', 'token', 'system']).optional(),\n actor: z.string().optional(),\n tokenId: z.string().optional(),\n data: CommunityFeedbackEventDataSchema,\n createdAt: timestamp,\n title: z.string().optional(),\n status: CommunityFeedbackStatusSchema.optional(),\n})\nexport type CommunityFeedbackEvent = z.output<typeof CommunityFeedbackEventSchema>\nexport const CommunityFeedbackMessageSchema = z.object({\n id: z.string(),\n authorKind: z.enum(['user', 'admin', 'author', 'system']),\n author: z.string().nullable(),\n audience: z.enum(['everyone', 'staff']),\n body: z.string(),\n createdAt: timestamp,\n})\n\nexport const CommunityFeedbackSummarySchema = z.object({\n id: CommunityFeedbackIdSchema,\n ref: CommunityFeedbackRefSchema,\n title: z.string(),\n kind: CommunityFeedbackKindSchema.optional(),\n target: CommunityFeedbackTargetSchema.optional(),\n status: CommunityFeedbackStatusSchema,\n fixedIn: version.nullable(),\n affectedCount: z.number().int().nonnegative(),\n source: CommunityFeedbackCreateSchema.shape.source.optional(),\n confirmedCount: z.number().int().nonnegative().optional(),\n createdAt: timestamp.optional(),\n updatedAt: timestamp.optional(),\n})\nexport type CommunityFeedbackSummary = z.output<typeof CommunityFeedbackSummarySchema>\n\n/** Optional private fields are emitted only by the server's role-specific projection. */\nexport const CommunityFeedbackSchema = CommunityFeedbackSummarySchema.extend({\n access: z.enum(['owner', 'admin', 'author', 'subscriber', 'public']),\n body: z.string().optional(),\n diagnostics: CommunityFeedbackDiagnosticsSchema.optional(),\n excerpt: CommunityFeedbackExcerptSchema.nullable().optional(),\n excerptSharedWithAuthor: z.boolean().optional(),\n messages: z.array(CommunityFeedbackMessageSchema).optional(),\n events: z.array(CommunityFeedbackEventSchema).optional(),\n submitter: z.string().optional(),\n instanceId: z.string().nullable().optional(),\n priority: z.enum(['low', 'normal', 'high']).nullable().optional(),\n labels: z.array(z.string()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n duplicateOf: CommunityFeedbackRefSchema.nullable().optional(),\n githubUrl: z.string().nullable().optional(),\n closedAt: timestamp.nullable().optional(),\n purgedAt: timestamp.nullable().optional(),\n confirmed: z.boolean().default(false),\n affected: z.boolean().default(false),\n affectedDiagnostics: z\n .array(\n z.object({\n user: z.string(),\n diagnostics: CommunityFeedbackDiagnosticsSchema.nullable(),\n nxtVersion: version.nullable(),\n createdAt: timestamp,\n }),\n )\n .optional(),\n})\nexport type CommunityFeedback = z.output<typeof CommunityFeedbackSchema>\nexport const CommunityFeedbackListSchema = z.object({\n items: z.array(CommunityFeedbackSummarySchema),\n cursor: z.string().nullable(),\n})\nexport const CommunityFeedbackChangesSchema = z.object({\n events: z.array(CommunityFeedbackEventSchema),\n cursor: z.number().int().nonnegative(),\n hasMore: z.boolean(),\n})\nexport type CommunityFeedbackChanges = z.output<typeof CommunityFeedbackChangesSchema>\nexport const CommunityFeedbackDigestSchema = z.object({\n since: timestamp,\n counts: z.object({\n status: z.record(CommunityFeedbackStatusSchema, z.number().int().nonnegative()),\n kind: z.record(CommunityFeedbackKindSchema, z.number().int().nonnegative()),\n target: z.record(z.enum(['nxt', 'extension']), z.number().int().nonnegative()),\n extensions: z.record(z.string(), z.number().int().nonnegative()),\n }),\n newItems: z.array(CommunityFeedbackSummarySchema),\n awaitingReply: z.array(CommunityFeedbackSummarySchema),\n mostAffected: z.array(CommunityFeedbackSummarySchema),\n unconfirmedFixes: z.array(CommunityFeedbackSummarySchema),\n fixedCount: z.number().int().nonnegative(),\n})\nexport type CommunityFeedbackDigest = z.output<typeof CommunityFeedbackDigestSchema>\n","import { z } from 'zod'\nimport { AgentIdSchema, ChannelIdSchema, LogicalMessageIdSchema } from './domain.js'\nimport {\n CommunityFeedbackCreateSchema,\n CommunityFeedbackDiagnosticsSchema,\n CommunityFeedbackExcerptSchema,\n CommunityFeedbackKindSchema,\n CommunityFeedbackRefSchema,\n CommunityFeedbackStatusSchema,\n CommunityFeedbackTargetSchema,\n} from './community-feedback.js'\n\nexport const CommunityFeedbackDraftIdSchema = z\n .string()\n .regex(/^fbd_[0-9A-Za-z]+$/u)\n .brand<'CommunityFeedbackDraftId'>()\nexport type CommunityFeedbackDraftId = z.output<typeof CommunityFeedbackDraftIdSchema>\nexport const CommunityFeedbackDraftStateSchema = z.enum(['awaiting', 'sending', 'sent', 'failed', 'discarded'])\nexport const CommunityFeedbackDraftSchema = z\n .object({\n id: CommunityFeedbackDraftIdSchema,\n communityUrl: z.string().url(),\n communityUserId: z.string().min(1).nullable(),\n agentId: AgentIdSchema.nullable(),\n channelId: ChannelIdSchema.nullable(),\n kind: CommunityFeedbackKindSchema,\n target: CommunityFeedbackTargetSchema,\n title: z.string().max(120),\n body: z.string().max(8000),\n excerpt: CommunityFeedbackExcerptSchema.nullable(),\n excerptSharedWithAuthor: z.boolean(),\n diagnostics: CommunityFeedbackDiagnosticsSchema,\n state: CommunityFeedbackDraftStateSchema,\n requestedBy: z.string(),\n auto: z.boolean(),\n error: z.string().nullable(),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type CommunityFeedbackDraft = z.output<typeof CommunityFeedbackDraftSchema>\n\nexport const CommunityFeedbackItemSchema = z\n .object({\n ref: CommunityFeedbackRefSchema,\n communityUrl: z.string().url(),\n communityUserId: z.string().min(1),\n channelId: ChannelIdSchema.nullable(),\n draftId: CommunityFeedbackDraftIdSchema.nullable(),\n title: z.string(),\n kind: CommunityFeedbackKindSchema.nullable(),\n target: CommunityFeedbackTargetSchema.nullable(),\n status: CommunityFeedbackStatusSchema,\n fixedIn: z.string().nullable(),\n unread: z.boolean(),\n lastEventSeq: z.number().int().nonnegative(),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type CommunityFeedbackItem = z.output<typeof CommunityFeedbackItemSchema>\n\nexport const CommunityFeedbackDraftInputSchema = z\n .object({\n kind: CommunityFeedbackKindSchema,\n target: CommunityFeedbackTargetSchema,\n title: z.string().trim().min(1).max(120),\n body: z.string().trim().min(1).max(8000),\n conversationRefs: z.array(LogicalMessageIdSchema).max(8).optional(),\n })\n .strict()\nexport type CommunityFeedbackDraftInput = z.output<typeof CommunityFeedbackDraftInputSchema>\nexport const CommunityFeedbackDraftUpdateSchema = z\n .object({\n title: z.string().trim().min(1).max(120),\n body: z.string().trim().min(1).max(8000),\n includeExcerpt: z.boolean(),\n excerptSharedWithAuthor: z.boolean().default(false),\n expectedUpdatedAt: z.number().int().nonnegative(),\n })\n .strict()\nexport const CommunityFeedbackSettingsSchema = z\n .object({\n enabled: z.boolean(),\n supported: z.boolean(),\n signedIn: z.boolean(),\n communityUrl: z.string().url(),\n communityUserId: z.string().nullable(),\n consentedAt: z.number().int().nonnegative().nullable(),\n })\n .strict()\nexport type CommunityFeedbackSettings = z.output<typeof CommunityFeedbackSettingsSchema>\nexport const CommunityFeedbackSettingsUpdateSchema = z\n .object({ enabled: z.boolean(), consent: z.boolean().default(false) })\n .strict()\nexport const CommunityFeedbackSnapshotSchema = z\n .object({\n enabled: z.boolean(),\n signedIn: z.boolean(),\n pendingDrafts: z.number().int().nonnegative(),\n unread: z.number().int().nonnegative(),\n })\n .strict()\nexport const CommunityFeedbackLocalListSchema = z\n .object({\n drafts: z.array(CommunityFeedbackDraftSchema),\n items: z.array(CommunityFeedbackItemSchema),\n syncError: z.string().optional(),\n })\n .strict()\nexport const CommunityFeedbackPayloadSchema = z\n .object({ payload: CommunityFeedbackCreateSchema, redactions: z.array(z.string()) })\n .strict()\nexport const CommunityFeedbackLastPayloadSchema = z\n .object({\n ref: CommunityFeedbackRefSchema,\n sentAt: z.number().int().nonnegative(),\n payload: CommunityFeedbackCreateSchema,\n })\n .strict()\n .nullable()\n","import { CommandCatalogEntrySchema, CommandExecutionRecordSchema, CommandPolicySchema } from './commands.js'\nimport { z } from 'zod'\nimport {\n hostLogDebugLeaseSchema,\n hostLogDebugRequestSchema,\n hostLogEntrySchema,\n hostLogPageSchema,\n hostLogSettingsSchema,\n hostLogSourceSchema,\n hostLogStatusSchema,\n} from './logs.js'\nimport { McpServerFormSchema } from './extension-capabilities.js'\nimport {\n BoundCredentialsSchema,\n CredentialBindingsRequestSchema,\n CreateCredentialRequestSchema,\n CredentialsViewSchema,\n CredentialUsesViewSchema,\n RemoveCredentialRequestSchema,\n RemoveCredentialResultSchema,\n ReplaceCredentialValueRequestSchema,\n SetModelProviderAccessRequestSchema,\n UpdateCredentialRequestSchema,\n} from './credentials.js'\nimport {\n AddLinkedAccountRequestSchema,\n LinkedAccountMethodSchema,\n LinkedAccountPlatformIdSchema,\n LinkedAccountUsesViewSchema,\n LinkedAccountViewSchema,\n LocalGithubLoginSchema,\n RemoveLinkedAccountRequestSchema,\n ReplaceLinkedAccountTokenRequestSchema,\n} from './linked-accounts.js'\nimport { HostUpgradeSummarySchema, RuntimeCompatibilityDiagnosticSchema } from './runtime-compatibility.js'\nimport { AgentAliasesSchema, ResponseTimingSettingsSchema } from './response-timing.js'\nimport {\n AgentIdSchema,\n AgentRevisionIdSchema,\n AuthoringAttemptIdSchema,\n SubConversationIdSchema,\n AuthoringTaskIdSchema,\n AssetIdSchema,\n ChannelEventIdSchema,\n AdapterActivityKeySchema,\n ChannelIdSchema,\n ChannelMemberIdSchema,\n ConnectionIdSchema,\n CredentialIdSchema,\n LinkedAccountIdSchema,\n ConnectionEventIdSchema,\n DshPluginEntryIdSchema,\n DshPluginPackageIdSchema,\n ExtensionIdSchema,\n ExtensionRevisionIdSchema,\n HostUiPageInstanceIdSchema,\n EpisodeIdSchema,\n JsonValueSchema,\n LogicalMessageIdSchema,\n RichExtensionSchema,\n RichTargetUrlSchema,\n OutboundIntentIdSchema,\n PlatformIdentityIdSchema,\n PromptDocumentV1Schema,\n promptDocumentPlainText,\n} from './domain.js'\nimport { ClientNotificationSchema, ManagementDeviceIdSchema, ManagementDeviceViewSchema } from './management-api.js'\nimport { ConfigSchemaDocumentSchema } from './config-schema.js'\nimport {\n CommunityExtensionDetailSchema,\n CommunityExtensionSummarySchema,\n CommunityExtensionSortSchema,\n CommunityFreshnessSchema,\n CommunityListingInputSchema,\n CommunityReleaseIdSchema,\n CommunityReviewStatusSchema,\n CommunityStatusSchema,\n CommunityEndpointSchema,\n CommunitySyncSchema,\n CommunityMyExtensionSchema,\n CommunityReviewReportSchema,\n} from './community.js'\nimport {\n COMMUNITY_PERSONA_AVATAR_TYPES,\n COMMUNITY_PERSONA_MAX_LENGTH,\n CommunityMyPersonaSchema,\n CommunityMyPersonasSchema,\n CommunityPersonaDetailSchema,\n CommunityPersonaIdSchema,\n CommunityPersonaRevisionIdSchema,\n CommunityPersonaSummarySchema,\n} from './community-personas.js'\nimport {\n DshNxtHostUiSchema,\n EMPTY_EXTENSION_UI_CONTRIBUTIONS,\n ExtensionUiContributionsSchema,\n PanelContributionSchema,\n RichKindSchema,\n HostPageContributionSchema,\n HostIconNameSchema,\n HostUiKitComponentNameSchema,\n HostUiPageGeometryEvidenceSchema,\n HostUiPageEntrySchema,\n HostUiPermissionDeclarationSchema,\n ExtensionPanelAnchorSchema,\n ExtensionPermissionsSchema,\n ExtensionProvideSchema,\n} from './extension-ui.js'\n\nconst EmptyParamsSchema = z.object({}).strict()\nconst NoRequestBodySchema = z.undefined()\nconst NonEmptyStringSchema = z.string().trim().min(1)\nconst DynamicIdSchema = NonEmptyStringSchema\n\nconst DynamicAttemptStatusSchema = z.enum([\n 'awaiting-approval',\n 'starting-host',\n 'client-pending',\n 'running',\n 'waiting',\n 'rejected',\n 'failed',\n 'cancelled',\n 'stopped',\n])\n\nconst DynamicHalfStateSchema = z\n .object({\n status: z.enum(['absent', 'pending', 'stopped', 'running', 'waiting', 'failed']),\n waitingFor: z.array(z.string()),\n error: z.string().optional(),\n })\n .strict()\n\nconst DynamicAttemptErrorSchema = z\n .object({\n phase: z.enum(['approval', 'host-load', 'host-apply', 'client-load', 'client-apply', 'client-render']),\n message: z.string(),\n stack: z.string().optional(),\n /** A render failure also names the contribution slot that failed and whether its frame gave up. */\n slot: NonEmptyStringSchema.optional(),\n abdicated: z.boolean().optional(),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n })\n .strict()\n\nconst DynamicLatestRunSchema = z\n .object({\n pluginRunId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n mode: z.enum(['run', 'update']),\n status: DynamicAttemptStatusSchema,\n approvalRequestId: DynamicIdSchema.optional(),\n requiresApproval: z.boolean().optional(),\n host: DynamicHalfStateSchema,\n client: DynamicHalfStateSchema,\n error: DynamicAttemptErrorSchema.optional(),\n })\n .strict()\n\nconst AuthoringTaskStatusSchema = z.enum([\n 'working',\n 'awaiting-approval',\n 'running',\n 'ready',\n 'repairing',\n 'failed',\n 'interrupted',\n 'stopped',\n 'completed',\n 'paused',\n])\n\nconst AuthoringAttemptStateSchema = z.enum([\n 'drafting',\n 'preflight-failed',\n 'awaiting-approval',\n 'starting-host',\n 'loading-client',\n 'verifying',\n 'active',\n 'failed',\n 'rejected',\n 'stopped',\n])\n\nconst AuthoringAttemptSummarySchema = z\n .object({\n id: AuthoringAttemptIdSchema,\n ordinal: z.number().int().positive(),\n name: z.string(),\n purpose: z.string(),\n state: AuthoringAttemptStateSchema,\n riskDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n host: DynamicHalfStateSchema,\n client: DynamicHalfStateSchema,\n error: z\n .object({\n phase: z.enum([\n 'preflight',\n 'approval',\n 'host-load',\n 'host-apply',\n 'client-load',\n 'client-apply',\n 'client-render',\n 'verification',\n 'settlement',\n 'restore',\n ]),\n message: z.string(),\n repairable: z.boolean(),\n })\n .strict()\n .optional(),\n /** Verified without loading its interface, because no browser was available; the interface itself is unchecked. */\n uiUnverified: z.boolean().optional(),\n createdAt: z.number().int().nonnegative(),\n settledAt: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nconst AuthoringTaskSummarySchema = z\n .object({\n id: AuthoringTaskIdSchema,\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema,\n episodeId: EpisodeIdSchema,\n title: z.string(),\n requirementSummary: z.string(),\n status: AuthoringTaskStatusSchema,\n /** `create` builds a new extension; `revise` changes `targetExtensionId` starting from `baseRevisionId`. */\n kind: z.enum(['create', 'revise']).default('create'),\n targetExtensionId: ExtensionIdSchema.optional(),\n baseRevisionId: ExtensionRevisionIdSchema.optional(),\n referenceRevisionId: ExtensionRevisionIdSchema.optional(),\n /** Why the task is paused; it continues when the agent picks it up in a later conversation. */\n pausedReason: z.string().optional(),\n /** The conversation the task runs in is live, so its candidate can be previewed directly. */\n live: z.boolean().default(false),\n approvalPolicy: z.enum(['risk-stable', 'fully-automatic']),\n approvedRiskDigest: z\n .string()\n .regex(/^[a-f0-9]{64}$/u)\n .optional(),\n revision: z.number().int().positive(),\n activeAttempt: AuthoringAttemptSummarySchema.optional(),\n candidateAttempt: AuthoringAttemptSummarySchema.optional(),\n /** Latest attempt that still carries product verification evidence; it can be restored as the candidate. */\n verifiedAttempt: AuthoringAttemptSummarySchema.optional(),\n createdAt: z.number().int().nonnegative(),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict()\nconst ConnectionAliasInputSchema = z\n .string()\n .trim()\n .max(80)\n .transform((value) => value || undefined)\nconst ConnectionAliasOutputSchema = z.string().trim().min(1).max(80)\n\nexport const HostApiErrorSchema = z\n .object({\n error: z\n .object({\n code: NonEmptyStringSchema,\n message: z.string(),\n })\n .strict(),\n })\n .strict()\n\nconst AgentModelSchema = z\n .object({\n provider: NonEmptyStringSchema,\n model: NonEmptyStringSchema,\n reasoningEffort: NonEmptyStringSchema.optional(),\n })\n .strict()\n\n/**\n * An enable or disable request of one agent extension that has not settled: `waiting` until the agent reaches a safe\n * gap (its current reply ends), or `failed` with the reason until the next request replaces it.\n */\n/** What one approval asks the user to grant and whether the current grant already covers it. */\nexport const ExtensionPermissionRequirementSchema = z\n .object({\n declaration: HostUiPermissionDeclarationSchema,\n permissionDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n approvalRequired: z.boolean(),\n })\n .strict()\n\nexport type ExtensionPermissionRequirement = z.output<typeof ExtensionPermissionRequirementSchema>\n\nexport const ExtensionActivationTransitionSchema = z\n .object({\n agentId: AgentIdSchema,\n target: z.enum(['enabled', 'disabled']),\n extensionRevisionId: ExtensionRevisionIdSchema.optional(),\n state: z.enum(['waiting', 'failed']),\n message: z.string().optional(),\n since: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport const ImageUnderstandingPolicyApiSchema = z\n .object({\n history: z\n .object({\n mode: z.literal('persistent-distinct'),\n detail: z.enum(['low', 'auto', 'high']),\n restoreAfterCompaction: z\n .object({\n recentMessages: z.number().int().min(1).max(100),\n maxImages: z.number().int().min(0).max(50),\n })\n .strict(),\n })\n .strict(),\n textModel: z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('disabled') }).strict(),\n z\n .object({\n mode: z.literal('auxiliary'),\n model: AgentModelSchema,\n maxTokens: z.number().int().min(256).max(8192),\n })\n .strict(),\n ]),\n })\n .strict()\n\nexport const CommandAccountUsageSchema = z.enum(['read', 'issues', 'pull-requests', 'push'])\n/** What the user wants a granted account used for; told to the agent only. */\nexport type CommandAccountUsage = z.output<typeof CommandAccountUsageSchema>\n\n/**\n * One linked account the agent's commands act as, at most one per platform (`service`). Grants saved before linked\n * accounts name the account without its `acc_` prefix; both forms resolve to the same account.\n */\nconst CommandAccountGrantSchema = z\n .object({\n service: LinkedAccountPlatformIdSchema,\n accountId: NonEmptyStringSchema.max(72),\n /** Told to the agent as guidance, not enforced; empty gives no hint. */\n usage: z.array(CommandAccountUsageSchema).max(4).default([]),\n })\n .strict()\n\nconst AgentCapabilitiesSchema = z\n .object({\n subagents: z.boolean(),\n fileTools: z.boolean(),\n webSearch: z.boolean(),\n dynamicCreation: z.boolean(),\n developmentShell: z.boolean(),\n unrestrictedFileAccess: z.boolean(),\n /** Absent in older clients means on. */\n scheduledTasks: z.boolean().default(true),\n /** Tools are called from one TypeScript program (`run_code`); takes effect only with `developmentShell`. */\n codeRun: z.boolean().default(false),\n /** Network for commands; absent in older clients means on. */\n commandNetwork: z.boolean().default(true),\n communityFeedbackAuto: z.boolean().default(false),\n /** Voice messages reach the agent with a transcript (附加功能 F10). */\n voiceTranscription: z.boolean().default(false),\n /** Linked accounts this agent's commands act as, one per platform; absent in older clients means none. */\n commandAccounts: z.array(CommandAccountGrantSchema).max(8).default([]),\n /**\n * What the agent may do with extensions without the console: `manual` only develops and test-runs, `confirm` asks\n * an administrator in the channel for every step, `autonomous` takes ordinary steps that only affect itself.\n */\n extensionAutonomy: z.enum(['manual', 'confirm', 'autonomous']).default('manual'),\n /** Whose requests make the agent develop or change extensions: anyone in the channel, or administrators only. */\n extensionRequesters: z.enum(['everyone', 'admins']).default('everyone'),\n /**\n * Whose requests make the agent change extension configuration. With `everyone`, members may only have it change\n * ordinary fields of its own configuration; network fields, the host layer and credentials still need an\n * administrator.\n */\n extensionConfigRequesters: z.enum(['everyone', 'admins']).default('admins'),\n })\n .strict()\n\nexport const DynamicClientApprovalPolicySchema = z.enum(['manual', 'automatic'])\n\nexport const NotificationEventKeySchema = z.enum([\n 'dynamic-client-approval-requested',\n 'community-feedback-update',\n 'credential-requested',\n 'extension-notification',\n])\nexport type NotificationEventKey = z.output<typeof NotificationEventKeySchema>\n\nexport const NotificationSettingsViewSchema = z\n .object({\n revision: z.number().int().positive().optional(),\n system: z.object({ enabled: z.boolean() }).strict(),\n bark: z\n .object({\n enabled: z.boolean(),\n serverUrl: z.url(),\n deviceKeyConfigured: z.boolean(),\n })\n .strict(),\n events: z\n .object({\n 'dynamic-client-approval-requested': z.boolean(),\n 'community-feedback-update': z.boolean().default(true),\n 'credential-requested': z.boolean().default(true),\n 'extension-notification': z.boolean().default(true),\n })\n .strict(),\n })\n .strict()\n\nexport const UpdateNotificationSettingsRequestSchema = z\n .object({\n expectedRevision: z.number().int().positive().optional(),\n system: z.object({ enabled: z.boolean() }).strict(),\n bark: z\n .object({\n enabled: z.boolean(),\n serverUrl: z.url(),\n deviceKey: z.string().trim().min(1).max(2048).optional(),\n clearDeviceKey: z.boolean().optional(),\n })\n .strict(),\n events: z\n .object({\n 'dynamic-client-approval-requested': z.boolean(),\n 'community-feedback-update': z.boolean().optional(),\n 'credential-requested': z.boolean().optional(),\n 'extension-notification': z.boolean().optional(),\n })\n .strict(),\n })\n .strict()\n .refine((value) => !(value.bark.deviceKey !== undefined && value.bark.clearDeviceKey === true), {\n message: '不能同时更新并清除 Bark Device Key。',\n path: ['bark'],\n })\n\nexport const TestBarkNotificationRequestSchema = z\n .object({ serverUrl: z.url(), deviceKey: z.string().trim().min(1).max(2048).optional() })\n .strict()\n\nexport const ClientNotificationFeedResponseSchema = z\n .object({\n cursor: z.number().int().nonnegative(),\n notifications: z.array(ClientNotificationSchema),\n })\n .strict()\n\n/** Which model writes one kind of compaction summary: that kind's default, or a model chosen for this agent. */\nexport const AgentCompactionModelChoiceSchema = z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('follow') }).strict(),\n z.object({ mode: z.literal('custom'), model: AgentModelSchema }).strict(),\n])\n\n/**\n * In-session compaction follows the main model by default, so the replayed conversation hits the provider's cache;\n * compaction into a new session follows the host's compaction model.\n */\nexport const AgentCompactionPolicySchema = z\n .object({ inSession: AgentCompactionModelChoiceSchema, newSession: AgentCompactionModelChoiceSchema })\n .strict()\n\n/** The host's idle compaction threshold, summary model and wait limit. */\nexport const CompactionSettingsSchema = z\n .object({\n /** Minimum context occupancy for idle rollover; older settings inherit 50%. */\n idleThresholdPercent: z.number().int().min(1).max(100).default(50),\n newSessionModel: z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('main') }).strict(),\n z.object({ mode: z.literal('custom'), model: AgentModelSchema }).strict(),\n ]),\n /** Past this the new session starts with a fallback note instead of a summary. */\n timeoutSeconds: z.number().int().min(30).max(900),\n })\n .strict()\n\nexport type CompactionSettings = z.output<typeof CompactionSettingsSchema>\n\nexport const DEFAULT_COMPACTION_SETTINGS: CompactionSettings = {\n idleThresholdPercent: 50,\n newSessionModel: { mode: 'main' },\n timeoutSeconds: 180,\n}\n\nexport const FALLBACK_MODEL_LIMIT = 3\n\n/**\n * Models an agent switches to, in order, when its main model has used up its quota or stays unavailable after the\n * usual retries. Empty leaves the main model alone, as before fallback models existed.\n */\nexport const AgentFallbackModelsSchema = z\n .array(AgentModelSchema)\n .max(FALLBACK_MODEL_LIMIT)\n .refine(\n (models) => new Set(models.map((model) => `${model.provider}\\0${model.model}`)).size === models.length,\n '备用模型不能重复。',\n )\n\n/** Why a channel conversation left its main model. */\nexport const ModelFallbackReasonSchema = z.enum(['quota', 'rate-limit', 'unavailable'])\nexport type ModelFallbackReason = z.output<typeof ModelFallbackReasonSchema>\n\n/** How long a model that failed is passed over before conversations try it again. */\nexport const ModelFallbackSettingsSchema = z\n .object({\n /** After rate limits, server errors, timeouts or empty replies that outlasted the usual retries. */\n unavailableCooldownMinutes: z.number().int().min(1).max(240),\n /** After the quota or balance ran out. */\n quotaCooldownMinutes: z.number().int().min(5).max(1440),\n })\n .strict()\n\nexport type ModelFallbackSettings = z.output<typeof ModelFallbackSettingsSchema>\n\nexport const DEFAULT_MODEL_FALLBACK_SETTINGS: ModelFallbackSettings = {\n unavailableCooldownMinutes: 10,\n quotaCooldownMinutes: 60,\n}\n\n/** The name an agent passes to open a sub-conversation on its main model; no candidate may take it. */\nexport const SUB_CONVERSATION_MAIN_MODEL = '主模型'\n\nexport const SUB_CONVERSATION_MODEL_LIMITS = { candidates: 8, name: 20, guidance: 200 } as const\n\n/**\n * Models an agent may open sub-conversations with, each named so the agent can pick it and described so it knows\n * when to. Without a `default`, a sub-conversation opened without naming a model follows the main model.\n */\nexport const AgentSubConversationModelsSchema = z\n .object({\n candidates: z\n .array(\n z\n .object({\n // Names are listed to the agent separated by commas, so they carry none and no line breaks.\n name: z\n .string()\n .trim()\n .min(1, '请填写子对话模型的名称。')\n .max(SUB_CONVERSATION_MODEL_LIMITS.name)\n .regex(/^[^\\s,,、]+(?: [^\\s,,、]+)*$/u, '子对话模型的名称不能含换行、逗号或顿号。')\n .refine((name) => name !== SUB_CONVERSATION_MAIN_MODEL, `「${SUB_CONVERSATION_MAIN_MODEL}」是保留名称。`),\n model: AgentModelSchema,\n guidance: z.string().trim().max(SUB_CONVERSATION_MODEL_LIMITS.guidance),\n })\n .strict(),\n )\n .max(SUB_CONVERSATION_MODEL_LIMITS.candidates),\n default: z.string().trim().min(1).optional(),\n })\n .strict()\n .superRefine((policy, context) => {\n const names = policy.candidates.map((candidate) => candidate.name)\n if (new Set(names).size !== names.length)\n context.addIssue({ code: 'custom', message: '子对话模型的名称不能重复。' })\n if (policy.default !== undefined && !names.includes(policy.default)) {\n context.addIssue({ code: 'custom', message: '默认的子对话模型不在候选里。' })\n }\n })\n\nexport type AgentSubConversationModels = z.output<typeof AgentSubConversationModelsSchema>\n\nexport const NO_SUB_CONVERSATION_MODELS: AgentSubConversationModels = { candidates: [] }\n\nconst AgentRevisionRequestContentSchema = z\n .object({\n displayName: z.string().trim().min(1).max(80),\n persona: z\n .string()\n .max(64 * 1024)\n .default(''),\n personaDocument: PromptDocumentV1Schema.optional(),\n model: AgentModelSchema,\n imagePolicy: ImageUnderstandingPolicyApiSchema.optional(),\n dynamicClientApprovalPolicy: DynamicClientApprovalPolicySchema.optional(),\n compaction: AgentCompactionPolicySchema.optional(),\n subConversationModels: AgentSubConversationModelsSchema.optional(),\n fallbackModels: AgentFallbackModelsSchema.optional(),\n aliases: AgentAliasesSchema.optional(),\n })\n .strict()\n\nconst validatePersonaDocumentProjection = (\n value: z.output<typeof AgentRevisionRequestContentSchema>,\n context: z.core.$RefinementCtx<z.output<typeof AgentRevisionRequestContentSchema>>,\n): void => {\n if (value.personaDocument !== undefined && promptDocumentPlainText(value.personaDocument) !== value.persona) {\n context.addIssue({\n code: 'custom',\n message: '人设文本必须与结构化人设文档一致。',\n path: ['personaDocument'],\n input: value,\n })\n }\n}\n\nconst CreateAgentRequestSchema = AgentRevisionRequestContentSchema.extend({\n capabilities: AgentCapabilitiesSchema.optional(),\n}).superRefine((value, context) => {\n validatePersonaDocumentProjection(value, context)\n})\n\nconst ReviseAgentRequestSchema = AgentRevisionRequestContentSchema.extend({\n expectedCurrentRevisionId: AgentRevisionIdSchema,\n}).superRefine((value, context) => {\n validatePersonaDocumentProjection(value, context)\n})\n\n// Defaults that fill capabilities for older clients must not\n// reset them in a partial update.\nconst UpdateAgentCapabilitiesRequestSchema = AgentCapabilitiesSchema.partial()\n .extend({\n scheduledTasks: z.boolean().optional(),\n codeRun: z.boolean().optional(),\n commandNetwork: z.boolean().optional(),\n communityFeedbackAuto: z.boolean().optional(),\n voiceTranscription: z.boolean().optional(),\n commandAccounts: z.array(CommandAccountGrantSchema).max(8).optional(),\n extensionAutonomy: z.enum(['manual', 'confirm', 'autonomous']).optional(),\n extensionRequesters: z.enum(['everyone', 'admins']).optional(),\n extensionConfigRequesters: z.enum(['everyone', 'admins']).optional(),\n })\n .strict()\n .refine((value) => Object.values(value).some((entry) => entry !== undefined), '至少提供一个能力。')\n\nconst TriggerPolicySchema = z.enum(['always', 'mentioned-or-replied', 'smart', 'command', 'observe-only'])\n\nexport const WorkTreeOrderSchema = z\n .object({\n agentIds: z.array(AgentIdSchema),\n channelIdsByAgent: z.record(AgentIdSchema, z.array(ChannelIdSchema)),\n unboundChannelIds: z.array(ChannelIdSchema),\n })\n .strict()\n\nexport type WorkTreeOrder = z.output<typeof WorkTreeOrderSchema>\n\n/** The group key of 「未接线」 in `collapsedGroupIds`; agent groups use the agent id. */\nexport const UNBOUND_CHANNEL_GROUP_ID = 'unbound'\n\n/**\n * How the console arranges its channel list: pinned channels in their order and the groups it has collapsed. Shared\n * by every device signed in to the console; it never changes bindings.\n */\nexport const ChannelListViewSchema = z\n .object({\n pinnedChannelIds: z.array(ChannelIdSchema).max(200),\n collapsedGroupIds: z.array(z.union([AgentIdSchema, z.literal(UNBOUND_CHANNEL_GROUP_ID)])).max(500),\n })\n .strict()\n\nexport type ChannelListView = z.output<typeof ChannelListViewSchema>\n\nconst SnapshotMessagePartSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), text: z.string() }).strict(),\n z\n .object({ type: z.literal('mention'), memberId: ChannelMemberIdSchema, displayName: z.string().optional() })\n .strict(),\n z\n .object({\n type: z.literal('image'),\n assetId: AssetIdSchema,\n alt: z.string().optional(),\n sticker: z.literal(true).optional(),\n })\n .strict(),\n z.object({ type: z.literal('file'), assetId: AssetIdSchema, name: z.string().optional() }).strict(),\n z.object({ type: z.literal('audio'), assetId: AssetIdSchema }).strict(),\n z.object({ type: z.literal('quote'), messageId: LogicalMessageIdSchema }).strict(),\n z\n .object({\n type: z.literal('rich'),\n adapterKey: z.string().trim().min(1).max(64),\n kind: z.string().trim().min(1).max(64),\n summary: z.string().trim().min(1).max(500),\n title: z.string().trim().min(1).max(200).optional(),\n source: z.string().trim().min(1).max(80).optional(),\n targetUrl: RichTargetUrlSchema.optional(),\n previewAssetId: AssetIdSchema.optional(),\n extension: RichExtensionSchema.optional(),\n })\n .strict(),\n])\n\nexport const HostSnapshotMessageSchema = z\n .object({\n id: z.union([ChannelEventIdSchema, OutboundIntentIdSchema]),\n channelId: ChannelIdSchema,\n role: z.enum(['member', 'agent', 'system']),\n parts: z.array(SnapshotMessagePartSchema),\n sender: z\n .object({\n memberId: ChannelMemberIdSchema,\n displayName: z.string().optional(),\n /** The sender is the account of this agent on this host, answering the channel through another connection. */\n localAgentId: AgentIdSchema.optional(),\n })\n .strict()\n .optional(),\n mentionedConnectionAccount: z.boolean().optional(),\n activityKey: AdapterActivityKeySchema.optional(),\n targetLogicalMessageId: LogicalMessageIdSchema.optional(),\n occurredAt: z.number().finite(),\n deliveryState: z.enum(['planned', 'sending', 'sent', 'partially-sent', 'failed', 'unknown']).optional(),\n /** Latest administrator resolution of an unsettled delivery; history keeps the original receipt state. */\n deliveryResolution: z\n .object({\n action: z.enum(['retry', 'confirm-delivered']),\n resolvedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n origin: z.enum(['admin-console', 'command', 'extension-notice']).optional(),\n command: CommandExecutionRecordSchema.optional(),\n /** A host notice about extension work: a request an administrator must confirm, or what an action did. */\n extensionNotice: z.object({ requestNumber: z.number().int().positive().optional() }).strict().optional(),\n /** What the agent's inbound hooks decided for this message, when anything differs from the default. */\n inboundHook: z\n .object({\n trigger: z.enum(['default', 'suppress', 'force']),\n hidden: z.boolean(),\n annotation: z.string().optional(),\n /** What NekroNXT itself added for the agent, such as the transcript of a voice message. */\n hostAnnotations: z.array(z.object({ label: z.string(), text: z.string() }).strict()).optional(),\n extensions: z.array(z.string()),\n problems: z.array(z.string()).optional(),\n })\n .strict()\n .optional(),\n /** Extensions that processed the agent's message before it was sent; `followUp` marks a message one appended. */\n outboundProcessing: z\n .object({\n extensions: z.array(z.string()),\n rewritten: z.boolean(),\n followUp: z.literal(true).optional(),\n })\n .strict()\n .optional(),\n /** A scheduled task came due: a Host fact shown as a notice, not a member message. */\n scheduledTask: z\n .object({ label: z.string(), extensionName: z.string().optional(), note: z.string().optional() })\n .strict()\n .optional(),\n /** The agent finished waiting for someone to finish speaking: a Host fact shown as a notice. */\n responseWait: z\n .object({\n displayName: z.string().optional(),\n cause: z.enum(['quiet', 'limit']),\n waitedSeconds: z.number().int().nonnegative(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport type HostSnapshotMessage = z.output<typeof HostSnapshotMessageSchema>\n\nexport const HostConnectionEventSchema = z\n .object({\n id: ConnectionEventIdSchema,\n connectionId: ConnectionIdSchema,\n activityKey: AdapterActivityKeySchema,\n summary: z.string(),\n actor: z.object({ identityId: PlatformIdentityIdSchema, displayName: z.string().optional() }).strict().optional(),\n subject: z.object({ identityId: PlatformIdentityIdSchema, displayName: z.string().optional() }).strict().optional(),\n occurredAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport type HostConnectionEvent = z.output<typeof HostConnectionEventSchema>\n\nconst PlatformUserChannelPreviewSchema = z\n .object({\n id: ChannelIdSchema,\n displayName: z.string().trim().min(1).max(120).optional(),\n kind: z.enum(['internal', 'direct', 'group']),\n })\n .strict()\n\nconst PlatformUserFacetAdapterSchema = z\n .object({ key: NonEmptyStringSchema, displayName: NonEmptyStringSchema, userCount: z.number().int().nonnegative() })\n .strict()\n\nconst PlatformUserFacetConnectionSchema = z\n .object({\n id: ConnectionIdSchema,\n adapterKey: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n userCount: z.number().int().nonnegative(),\n })\n .strict()\n\nexport const PlatformUserListResponseSchema = z\n .object({\n total: z.number().int().nonnegative(),\n items: z.array(\n z\n .object({\n identityId: PlatformIdentityIdSchema,\n displayName: z.string().trim().min(1).max(120).optional(),\n adapter: z.object({ key: NonEmptyStringSchema, displayName: NonEmptyStringSchema }).strict(),\n connection: z.object({ id: ConnectionIdSchema, displayName: NonEmptyStringSchema }).strict(),\n activeChannelCount: z.number().int().nonnegative(),\n channelPreview: z.array(PlatformUserChannelPreviewSchema).max(3),\n historicalOnly: z.boolean(),\n /** Listed in Settings → Administrators. */\n administrator: z.boolean().default(false),\n })\n .strict(),\n ),\n facets: z\n .object({\n adapters: z.array(PlatformUserFacetAdapterSchema),\n connections: z.array(PlatformUserFacetConnectionSchema),\n })\n .strict(),\n nextCursor: PlatformIdentityIdSchema.optional(),\n })\n .strict()\n\nexport type PlatformUserListResponse = z.output<typeof PlatformUserListResponseSchema>\n\nexport const ChannelFactSseItemSchema = z\n .object({\n kind: z.enum(['inbound', 'outbound']),\n sourceId: z.union([ChannelEventIdSchema, OutboundIntentIdSchema]),\n message: HostSnapshotMessageSchema,\n })\n .strict()\n\nexport const ChannelFactSseDataSchema = z\n .object({\n channelId: ChannelIdSchema,\n revision: z.number().int().positive(),\n items: z.array(ChannelFactSseItemSchema).min(1),\n })\n .strict()\n\nexport const ChannelRuntimePhaseSchema = z.enum([\n 'idle',\n 'thinking',\n 'using-tool',\n 'compacting',\n 'waiting-input',\n 'unavailable',\n])\n\nexport const ChannelRuntimeUsageSchema = z\n .object({\n inputTokens: z.number().int().nonnegative(),\n outputTokens: z.number().int().nonnegative(),\n totalTokens: z.number().int().nonnegative().optional(),\n cacheReadTokens: z.number().int().nonnegative().optional(),\n cacheWriteTokens: z.number().int().nonnegative().optional(),\n reasoningTokens: z.number().int().nonnegative().optional(),\n })\n .strict()\n\n/** The latest progress a running extension tool reported. */\nexport const ChannelRuntimeToolProgressSchema = z\n .object({ text: z.string().min(1).max(200), fraction: z.number().min(0).max(1).optional() })\n .strict()\nexport type ChannelRuntimeToolProgress = z.output<typeof ChannelRuntimeToolProgressSchema>\n\nconst channelRuntimeToolFields = {\n callId: NonEmptyStringSchema,\n name: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n state: z.enum(['running', 'succeeded', 'failed']),\n inputPreview: z.string().optional(),\n resultPreview: z.string().optional(),\n wroteToChannel: z.boolean().optional(),\n /** `cancelled`: an extension stopped the message before it was sent. */\n deliveryState: z.enum(['sent', 'partially-sent', 'failed', 'unknown', 'cancelled']).optional(),\n durationMs: z.number().int().nonnegative().optional(),\n /** Set while the tool runs and has reported progress. */\n progress: ChannelRuntimeToolProgressSchema.optional(),\n}\n\nexport const ChannelRuntimeToolSchema = z\n .object({\n ...channelRuntimeToolFields,\n /** Source of a `run_code` program. */\n code: z.string().optional(),\n /** Tools a `run_code` program called, in the order they started. */\n children: z.array(z.object(channelRuntimeToolFields).strict()).optional(),\n })\n .strict()\n\nexport const ChannelRuntimeStepSchema = z\n .object({\n step: z.number().int().nonnegative(),\n tools: z.array(ChannelRuntimeToolSchema),\n internalOutput: z\n .object({\n kind: z.literal('internal-output'),\n text: z.string().optional(),\n reasoning: z.string().optional(),\n })\n .strict()\n .optional(),\n durationMs: z.number().int().nonnegative().optional(),\n firstTokenMs: z.number().int().nonnegative().optional(),\n usage: ChannelRuntimeUsageSchema.optional(),\n })\n .strict()\n\n/** One message that entered the model's input during a turn: channel admissions and host or DSH injections. */\nexport const ChannelRuntimeInputSchema = z\n .object({\n messageId: z.string().min(1),\n /** DSH `user/message` source kind, e.g. `nekro-nxt-channel` or `nekro-nxt-handoff`. */\n source: z.string().min(1),\n /** Channel Events carried by a channel admission. */\n eventCount: z.number().int().positive().optional(),\n preview: z.string().optional(),\n at: z.number().int().safe().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimeTurnSchema = z\n .object({\n turn: z.number().int().nonnegative(),\n state: z.enum(['in-progress', 'completed', 'unreplied', 'aborted', 'error', 'max-tokens', 'interrupted']),\n producedReply: z.boolean(),\n responseState: z.enum(['not-required', 'pending', 'sent', 'finished', 'protocol-failed', 'interrupted']),\n error: z.object({ code: NonEmptyStringSchema, message: z.string() }).strict().optional(),\n steps: z.array(ChannelRuntimeStepSchema),\n durationMs: z.number().int().nonnegative().optional(),\n /** Session log time the turn opened. */\n startedAt: z.number().int().safe().nonnegative().optional(),\n /** Session log time the turn closed; absent while it is still running. */\n endedAt: z.number().int().safe().nonnegative().optional(),\n /** Newest Channel Event of the admission that opened this turn; absent for non-channel turns. */\n triggerEventId: ChannelEventIdSchema.optional(),\n /** Messages that entered the model's input during the turn, in log order; absent when there were none. */\n inputs: z.array(ChannelRuntimeInputSchema).optional(),\n })\n .strict()\n\nexport const ChannelRuntimeOccupancySchema = z\n .object({\n projectedTokens: z.number().int().nonnegative(),\n contextWindow: z.number().int().positive(),\n breakdown: z\n .object({\n systemTokens: z.number().int().nonnegative(),\n toolsTokens: z.number().int().nonnegative(),\n messageTokens: z.number().int().nonnegative(),\n })\n .strict()\n .optional(),\n /** Pictures in the conversation; their tokens are not in the breakdown, so they make up most of the rest. */\n imageCount: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimeCacheSampleSchema = z\n .object({\n turn: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n at: z.number().nonnegative().optional(),\n uncachedInputTokens: z.number().int().nonnegative(),\n cacheReadTokens: z.number().int().nonnegative().optional(),\n cacheWriteTokens: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimeCacheSchema = z\n .object({\n scope: z.literal('episode'),\n aggregate: z\n .object({\n usageRequestCount: z.number().int().nonnegative(),\n observedRequestCount: z.number().int().nonnegative(),\n shareRequestCount: z.number().int().nonnegative(),\n hitRequestCount: z.number().int().nonnegative(),\n uncachedInputTokens: z.number().int().nonnegative(),\n cacheReadTokens: z.number().int().nonnegative(),\n cacheWriteTokens: z.number().int().nonnegative(),\n averageRequestReadShare: z.number().min(0).max(1).optional(),\n })\n .strict(),\n recent: z\n .object({\n windowSize: z.number().int().positive(),\n samples: z.array(ChannelRuntimeCacheSampleSchema),\n })\n .strict(),\n })\n .strict()\n\nexport const ChannelRuntimePerformanceSampleSchema = z\n .object({\n turn: z.number().int().nonnegative(),\n step: z.number().int().nonnegative(),\n at: z.number().nonnegative().optional(),\n firstTokenMs: z.number().int().nonnegative().optional(),\n decodeMs: z.number().int().nonnegative().optional(),\n outputTokens: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport const ChannelRuntimePerformanceSchema = z\n .object({\n scope: z.literal('episode'),\n aggregate: z\n .object({\n steps: z.number().int().nonnegative(),\n llmMs: z.number().nonnegative(),\n toolMs: z.number().nonnegative(),\n ttftMs: z.number().nonnegative(),\n ttftSteps: z.number().int().nonnegative(),\n decodeMs: z.number().nonnegative(),\n decodeTokens: z.number().int().nonnegative(),\n decodeSteps: z.number().int().nonnegative(),\n retryCount: z.number().int().nonnegative(),\n retryDelayMs: z.number().nonnegative(),\n })\n .strict(),\n recent: z\n .object({\n windowSize: z.number().int().positive(),\n samples: z.array(ChannelRuntimePerformanceSampleSchema),\n })\n .strict(),\n })\n .strict()\n\n/** What the agent remembered or looked up, newest first; the admin sees it, the model does not. */\nexport const ChannelMemoryActivitySchema = z.discriminatedUnion('kind', [\n z\n .object({\n kind: z.literal('backlog-folded'),\n at: z.number().nonnegative().optional(),\n foldedCount: z.number().int().nonnegative(),\n shownCount: z.number().int().nonnegative(),\n foldedImageCount: z.number().int().nonnegative(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('history-search'),\n at: z.number().nonnegative().optional(),\n query: z.string(),\n hits: z.number().int().nonnegative(),\n sender: z.string().optional(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('notes-updated'),\n at: z.number().nonnegative().optional(),\n revision: z.number().int().nonnegative(),\n chars: z.number().int().nonnegative(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('member-notes-updated'),\n at: z.number().nonnegative().optional(),\n memberId: z.string(),\n name: z.string().optional(),\n chars: z.number().int().nonnegative(),\n })\n .strict(),\n z\n .object({\n kind: z.literal('idle-review'),\n at: z.number().nonnegative().optional(),\n quietMinutes: z.number().int().nonnegative(),\n })\n .strict(),\n])\n\nexport type ChannelMemoryActivity = z.output<typeof ChannelMemoryActivitySchema>\n\nexport const ChannelRuntimeProjectionSchema = z\n .object({\n channelId: ChannelIdSchema,\n agentId: AgentIdSchema.optional(),\n episodeId: EpisodeIdSchema.optional(),\n phase: ChannelRuntimePhaseSchema,\n summary: z.string(),\n /** A compaction under way: inside the current session, or before a new session opens. */\n compaction: z\n .object({ kind: z.enum(['in-session', 'new-session']), startedAt: z.number().int().nonnegative() })\n .strict()\n .optional(),\n /** The conversation runs on a fallback model; it tries the main model again at a new message after `retryMainAt`. */\n modelFallback: z\n .object({\n model: AgentModelSchema,\n reason: ModelFallbackReasonSchema,\n since: z.number().int().nonnegative(),\n retryMainAt: z.number().int().nonnegative(),\n })\n .strict()\n .optional(),\n pendingInjectCount: z.number().int().nonnegative(),\n occupancy: ChannelRuntimeOccupancySchema.optional(),\n cache: ChannelRuntimeCacheSchema.optional(),\n performance: ChannelRuntimePerformanceSchema.optional(),\n memory: z.array(ChannelMemoryActivitySchema).optional(),\n turns: z.array(ChannelRuntimeTurnSchema),\n })\n .strict()\n\nexport const ChannelRuntimeSseDataSchema = ChannelRuntimeProjectionSchema.extend({\n revision: z.number().int().positive(),\n truncated: z.boolean().optional(),\n}).strict()\n\nexport const ChannelRuntimeContextSchema = z\n .object({\n available: z.boolean(),\n route: z\n .object({\n provider: z.string(),\n model: z.string(),\n contextWindow: z.number().int().positive().optional(),\n reasoningEffort: z.string().optional(),\n temperature: z.number().optional(),\n maxTokens: z.number().int().positive().optional(),\n })\n .strict()\n .optional(),\n instructions: z.array(\n z.object({ role: z.enum(['system', 'developer']), text: z.string(), truncated: z.boolean() }).strict(),\n ),\n tools: z.array(\n z.object({ name: z.string(), description: z.string().optional(), parameters: z.string().optional() }).strict(),\n ),\n changes: z.array(\n z\n .object({\n at: z.number().nonnegative().optional(),\n reason: z.enum(['initial', 'resume', 'change', 'series']),\n toolCount: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\nconst ChannelPromptPartSchema = z\n .object({\n document: PromptDocumentV1Schema,\n /** Notes only: the agent may not rewrite them. */\n locked: z.boolean(),\n /** 0 before the first save; send it back as `expectedRevision`. */\n revision: z.number().int().nonnegative(),\n maxChars: z.number().int().positive(),\n updatedBy: z.enum(['admin', 'agent']).optional(),\n updatedAt: z.number().int().nonnegative().optional(),\n revisions: z.array(\n z\n .object({\n revision: z.number().int().positive(),\n document: PromptDocumentV1Schema,\n updatedBy: z.enum(['admin', 'agent']),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\n/**\n * What the agent answering a channel reads about it, each part with recent earlier versions to restore: the admin's\n * instructions (system prompt) and the agent's own notes (runtime context).\n */\nexport const ChannelPromptViewSchema = z\n .object({ instructions: ChannelPromptPartSchema, notes: ChannelPromptPartSchema })\n .strict()\n\n/**\n * How much of a channel's unread backlog reaches the agent at once, and when it looks back on its own. Uncertain\n * trade-offs stay per channel: a busy meme group and a long tabletop session want different budgets.\n */\nexport const ChannelContextPolicySchema = z\n .object({\n /** Text characters of a backlog read message by message; older messages collapse into one line. 0: no limit. */\n backlogTextChars: z.number().int().nonnegative().max(1_000_000),\n /** Backlog images shown as pictures, newest first; the rest stay references the agent can open. */\n backlogImages: z.number().int().nonnegative().max(20),\n /** Quiet minutes after which the agent reviews the conversation and updates its notes. 0: off. */\n idleReviewMinutes: z\n .number()\n .int()\n .nonnegative()\n .max(24 * 60),\n })\n .strict()\n\nexport type ChannelContextPolicy = z.output<typeof ChannelContextPolicySchema>\n\nexport const DEFAULT_CHANNEL_CONTEXT_POLICY: ChannelContextPolicy = Object.freeze({\n backlogTextChars: 40_000,\n backlogImages: 6,\n idleReviewMinutes: 45,\n})\n\nexport const ChannelContextPolicyViewSchema = z\n .object({\n policy: ChannelContextPolicySchema,\n defaults: ChannelContextPolicySchema,\n /** False while the channel follows the defaults. */\n custom: z.boolean(),\n })\n .strict()\n\nexport type ChannelContextPolicyView = z.output<typeof ChannelContextPolicyViewSchema>\n\n/** One desktop installer of a release; `urls` lists the sources to try in order. */\nexport const ProductDownloadSchema = z\n .object({\n platform: z.enum(['mac', 'win', 'linux']),\n arch: z.enum(['arm64', 'x64']),\n name: z.string().min(1),\n size: z.number().int().positive(),\n sha256: z.string().regex(/^[a-f0-9]{64}$/u),\n urls: z.array(z.string().url()).min(1),\n })\n .strict()\n\nexport type ProductDownload = z.output<typeof ProductDownloadSchema>\n\n/** Whether a newer release exists on the build's own channel; development builds are never compared. */\nexport const ProductUpdateStatusSchema = z\n .object({\n channel: z.enum(['stable', 'preview', 'development']),\n currentVersion: z.string(),\n /** Short commit of a release build. */\n currentCommit: z.string().optional(),\n state: z.enum(['unknown', 'up-to-date', 'available', 'failed', 'unsupported']),\n latest: z\n .object({\n version: z.string(),\n commit: z.string().optional(),\n url: z.string().url(),\n publishedAt: z.number().int().nonnegative().optional(),\n /** Desktop installers of this release; the desktop app downloads its own and checks size and digest. */\n downloads: z.array(ProductDownloadSchema).optional(),\n })\n .strict()\n .optional(),\n checkedAt: z.number().int().nonnegative().optional(),\n error: z.string().optional(),\n autoCheck: z.boolean(),\n })\n .strict()\n\nexport type ProductUpdateStatus = z.output<typeof ProductUpdateStatusSchema>\n\n/** Pause between consecutive messages an agent sends to one channel; longer messages wait a little longer. */\nexport const MessagePacingSchema = z.enum(['off', 'fast', 'normal', 'slow'])\n\nexport type MessagePacing = z.output<typeof MessagePacingSchema>\n\nexport const DEFAULT_MESSAGE_PACING: MessagePacing = 'normal'\n\nexport const MessagePacingSettingsSchema = z.object({ pacing: MessagePacingSchema }).strict()\n\n/**\n * A conversation of its own under a channel's conversation (docs/NekroNxt界面交互模型.md §5.6): the agent opens one\n * for a separate piece of work, and the host opens scripted ones to check creation candidates. It has its own log\n * and context, and is shown under its channel.\n */\nexport const SubConversationSchema = z\n .object({\n id: SubConversationIdSchema,\n channelId: ChannelIdSchema,\n episodeId: EpisodeIdSchema,\n agentId: AgentIdSchema,\n title: z.string().min(1).max(200),\n /** `agent`: the agent opened it with a tool; `host`: NekroNXT opened it, such as to check a candidate. */\n openedBy: z.enum(['agent', 'host']),\n /** `model`: the agent's model talks in it; `script`: the host plays fixed tool calls. */\n driver: z.enum(['model', 'script']),\n status: z.enum(['open', 'closed']),\n closeReason: z.enum(['completed', 'closed-by-agent', 'closed-by-admin', 'failed', 'conversation-ended']).optional(),\n /** What it handed back to the channel's conversation when it ended. */\n summary: z.string().max(4000).optional(),\n authoringTaskId: AuthoringTaskIdSchema.optional(),\n /** The model a model-driven sub-conversation talks in; absent for scripts and ones opened before it was kept. */\n model: AgentModelSchema.optional(),\n createdAt: z.number().int().nonnegative(),\n closedAt: z.number().int().nonnegative().optional(),\n })\n .strict()\n\nexport type SubConversation = z.output<typeof SubConversationSchema>\n\n/** How long ended sub-conversations are kept before they are cleaned up. */\nexport const SubConversationRetentionSchema = z.enum(['1d', '3d', '7d', '30d', 'never'])\nexport type SubConversationRetention = z.output<typeof SubConversationRetentionSchema>\nexport const DEFAULT_SUB_CONVERSATION_RETENTION: SubConversationRetention = '7d'\nexport const SubConversationSettingsSchema = z.object({ retention: SubConversationRetentionSchema }).strict()\n\n/** `keyword`: SQLite keyword search only; `builtin`: keywords fused with the built-in semantic model. */\nexport const RetrievalModeSchema = z.enum(['keyword', 'builtin'])\nexport type RetrievalMode = z.output<typeof RetrievalModeSchema>\n\n/** Search used by extension indexes (表情包与扩展素材能力 §6.4); the model itself is the `retrieval` add-on. */\nexport const RetrievalStatusSchema = z\n .object({\n mode: RetrievalModeSchema,\n vectors: z\n .object({\n documents: z.number().int().nonnegative(),\n embedded: z.number().int().nonnegative(),\n state: z.enum(['idle', 'running', 'ready']),\n error: z.string().optional(),\n })\n .strict(),\n })\n .strict()\nexport type RetrievalStatus = z.output<typeof RetrievalStatusSchema>\n\n/** Where the Host keeps restore points it takes before an upgrade, or none. */\nexport const UpgradeBackupModeSchema = z.enum(['data', 'directory', 'off'])\nexport const UpgradeBackupSettingsSchema = z\n .object({\n mode: UpgradeBackupModeSchema,\n /** The chosen directory when `mode` is `directory`. */\n directory: z.string().nullable(),\n /** Set through the server's environment; the settings page cannot change it. */\n locked: z.boolean(),\n /** Restore points kept; older ones are removed after an upgrade succeeds. */\n keep: z.number().int().positive(),\n /** Restore points currently in the chosen place. */\n usage: z.object({ count: z.number().int().nonnegative(), bytes: z.number().int().nonnegative() }).strict(),\n })\n .strict()\nexport type UpgradeBackupSettings = z.output<typeof UpgradeBackupSettingsSchema>\n\n/** What the agent keeps about individual members of one channel; each note comes with that member's messages. */\nexport const ChannelMemberNotesViewSchema = z\n .object({\n notes: z.array(\n z\n .object({\n memberId: ChannelMemberIdSchema,\n displayName: z.string().optional(),\n text: z.string(),\n updatedBy: z.enum(['admin', 'agent']),\n updatedAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n maxChars: z.number().int().positive(),\n })\n .strict()\n\nexport type ChannelMemberNotesView = z.output<typeof ChannelMemberNotesViewSchema>\n\nexport type ChannelRuntimePhase = z.output<typeof ChannelRuntimePhaseSchema>\nexport type ChannelRuntimeUsage = z.output<typeof ChannelRuntimeUsageSchema>\nexport type ChannelRuntimeOccupancy = z.output<typeof ChannelRuntimeOccupancySchema>\nexport type ChannelRuntimeCacheSample = z.output<typeof ChannelRuntimeCacheSampleSchema>\nexport type ChannelRuntimeCache = z.output<typeof ChannelRuntimeCacheSchema>\nexport type ChannelRuntimePerformanceSample = z.output<typeof ChannelRuntimePerformanceSampleSchema>\nexport type ChannelRuntimePerformance = z.output<typeof ChannelRuntimePerformanceSchema>\nexport type ChannelRuntimeProjection = z.output<typeof ChannelRuntimeProjectionSchema>\nexport type ChannelRuntimeContext = z.output<typeof ChannelRuntimeContextSchema>\nexport type ChannelRuntimeInput = z.output<typeof ChannelRuntimeInputSchema>\nexport type ChannelPromptView = z.output<typeof ChannelPromptViewSchema>\nexport type ChannelRuntimeSseData = z.output<typeof ChannelRuntimeSseDataSchema>\nexport type ChannelFactSseData = z.output<typeof ChannelFactSseDataSchema>\n\nconst AdapterConnectionCreationSchema = z\n .object({\n mode: z.enum(['schema-form', 'qr-login']),\n actionLabel: z.string().trim().min(1).optional(),\n pendingLabel: z.string().trim().min(1).optional(),\n })\n .strict()\n\nconst AdapterConnectionDescriptorSchema = z\n .object({\n key: NonEmptyStringSchema,\n displayName: z.string(),\n description: z.string(),\n provisioning: z.enum(['user-created', 'system-singleton']),\n aliasEditable: z.boolean(),\n channelDiscovery: z.enum(['host-created', 'adapter-observed']),\n channelKinds: z.array(z.enum(['internal', 'direct', 'group'])).min(1),\n activities: z.array(\n z\n .object({\n key: AdapterActivityKeySchema,\n scope: z.enum(['channel', 'connection']),\n displayName: z.string().trim().min(1),\n description: z.string().trim().min(1),\n icon: HostIconNameSchema.optional(),\n triggerable: z.boolean(),\n channelKinds: z.array(z.enum(['internal', 'direct', 'group'])).optional(),\n directedAt: z.enum(['member', 'message']).optional(),\n })\n .strict(),\n ),\n features: z\n .object({\n processingFeedback: z\n .object({ channelKinds: z.array(z.enum(['direct', 'group'])).min(1) })\n .strict()\n .optional(),\n })\n .strict(),\n diagnostics: z.object({ receive: z.boolean(), send: z.boolean() }).strict(),\n creation: AdapterConnectionCreationSchema.optional(),\n /** Typed platform actions the Adapter offers to agent extensions (`ctx.nxt.platform`). */\n platformActions: z\n .array(\n z\n .object({\n name: z.string().regex(/^[a-z0-9_]{1,64}$/u),\n title: z.string(),\n description: z.string(),\n risk: z.enum(['low', 'admin']),\n channelKinds: z.array(z.enum(['direct', 'group'])).min(1),\n parameters: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), JsonValueSchema),\n required: z.array(z.string()).optional(),\n })\n .strict(),\n })\n .strict(),\n )\n .optional(),\n rawApi: z.object({ description: z.string() }).strict().optional(),\n configSchema: ConfigSchemaDocumentSchema,\n })\n .strict()\n\nconst AdapterCapabilityStateSchema = z\n .object({\n state: z.enum(['available', 'disabled', 'unsupported', 'degraded', 'unknown']),\n reason: z.string().optional(),\n })\n .strict()\n\nconst ActivityTriggerOverridesSchema = z.record(AdapterActivityKeySchema, z.boolean())\n\nexport const HostSyncCursorSchema = z\n .object({\n epoch: z.string().regex(/^[a-zA-Z0-9_-]{1,100}$/u),\n sequence: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),\n })\n .strict()\n\nexport const AgentAppearanceSchema = z\n .object({\n hue: z.number().int().min(0).max(359).optional(),\n avatarAssetId: AssetIdSchema.optional(),\n })\n .strict()\n\nexport type AgentAppearance = z.output<typeof AgentAppearanceSchema>\n\n/** Upper bound of a reported unread count; `unreadCapped` marks that more exist. */\nexport const CHANNEL_UNREAD_COUNT_CAP = 99\n\nexport const ChannelActivitySummarySchema = z\n .object({\n lastActivityAt: z.number().int().safe().nonnegative().optional(),\n lastMessage: z\n .object({\n role: z.enum(['member', 'agent', 'admin', 'system']),\n author: z.string().max(120),\n preview: z.string().max(160),\n occurredAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n unreadCount: z.number().int().nonnegative().max(CHANNEL_UNREAD_COUNT_CAP),\n unreadCapped: z.boolean(),\n })\n .strict()\n\nexport type ChannelActivitySummary = z.output<typeof ChannelActivitySummarySchema>\n\nexport const AttentionItemSchema = z\n .object({\n /** Stable fingerprint; a recurrence of the same condition gets a new fingerprint. */\n id: z.string().min(1).max(200),\n kind: z.enum([\n 'delivery-unconfirmed',\n 'delivery-failed',\n 'turn-failed',\n 'authoring-approval',\n 'connection-unhealthy',\n 'agent-model-unavailable',\n 'agent-vision-unavailable',\n 'logs-unavailable',\n 'community-feedback',\n 'extension-update',\n ]),\n severity: z.enum(['critical', 'warning', 'info']),\n subject: z\n .object({\n kind: z.enum([\n 'outbound',\n 'channel',\n 'authoring-task',\n 'connection',\n 'agent',\n 'logs',\n 'community-feedback',\n 'extension-update',\n ]),\n id: NonEmptyStringSchema,\n })\n .strict(),\n related: z\n .object({\n channelId: ChannelIdSchema.optional(),\n agentId: AgentIdSchema.optional(),\n connectionId: ConnectionIdSchema.optional(),\n taskId: AuthoringTaskIdSchema.optional(),\n outboundId: OutboundIntentIdSchema.optional(),\n })\n .strict(),\n title: z.string().min(1).max(120),\n detail: z.string().max(400),\n action: z\n .object({\n kind: z.enum([\n 'open-channel',\n 'resolve-delivery',\n 'open-authoring-task',\n 'open-connection',\n 'open-agent',\n 'open-logs',\n 'open-community-feedback',\n 'open-extension-updates',\n ]),\n label: z.string().min(1).max(40),\n })\n .strict(),\n /**\n * The shared cause several items come from: a connection (its outage and the deliveries it failed) or an agent\n * (its failed turns and unusable models). Dismissing by cause keeps it quiet until the cause recovers.\n */\n cause: z\n .object({ key: z.string().min(1).max(200), label: z.string().min(1).max(120) })\n .strict()\n .optional(),\n occurredAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n\nexport type AttentionItem = z.output<typeof AttentionItemSchema>\n\nexport const AttentionListSchema = z\n .object({\n revision: z.string().min(1),\n items: z.array(AttentionItemSchema).max(200),\n })\n .strict()\n\nexport const ChannelPendingContextSchema = z\n .object({\n channelId: ChannelIdSchema,\n episodeId: EpisodeIdSchema.optional(),\n items: z.array(\n z\n .object({\n admissionId: NonEmptyStringSchema,\n /** `next-step`: injected at the next safe step boundary; `next-turn`: waits for a later turn. */\n target: z.enum(['next-step', 'next-turn']),\n events: z.array(\n z\n .object({\n eventId: ChannelEventIdSchema,\n author: z.string().max(120),\n preview: z.string().max(160),\n receivedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport type ChannelPendingContext = z.output<typeof ChannelPendingContextSchema>\n\nexport const ACTIVITY_MAX_WINDOW_MS = 24 * 60 * 60 * 1000\nexport const ACTIVITY_MIN_BUCKET_MS = 60 * 1000\nexport const ACTIVITY_MAX_BUCKETS = 288\n\nconst ActivityDurationSchema = z.string().regex(/^[1-9][0-9]{0,4}[mh]$/u)\n\nexport const activityDurationMs = (value: string): number => {\n const amount = Number(value.slice(0, -1))\n return value.endsWith('h') ? amount * 60 * 60 * 1000 : amount * 60 * 1000\n}\n\nexport const ActivityQuerySchema = z\n .object({\n window: ActivityDurationSchema.default('2h'),\n bucket: ActivityDurationSchema.default('5m'),\n })\n .strict()\n .superRefine((value, context) => {\n const window = activityDurationMs(value.window)\n const bucket = activityDurationMs(value.bucket)\n if (window > ACTIVITY_MAX_WINDOW_MS)\n context.addIssue({ code: 'custom', path: ['window'], message: '统计窗口不能超过 24 小时。' })\n if (bucket < ACTIVITY_MIN_BUCKET_MS)\n context.addIssue({ code: 'custom', path: ['bucket'], message: '统计间隔不能小于 1 分钟。' })\n if (bucket > window) context.addIssue({ code: 'custom', path: ['bucket'], message: '统计间隔不能大于统计窗口。' })\n if (window / bucket > ACTIVITY_MAX_BUCKETS) {\n context.addIssue({ code: 'custom', path: ['bucket'], message: `统计桶不能超过 ${ACTIVITY_MAX_BUCKETS} 个。` })\n }\n })\n\nexport const ChannelActivitySeriesSchema = z\n .object({\n from: z.number().int().safe().nonnegative(),\n to: z.number().int().safe().nonnegative(),\n bucketMs: z.number().int().positive(),\n channels: z.array(\n z\n .object({\n channelId: ChannelIdSchema,\n counts: z.array(z.number().int().nonnegative()).max(ACTIVITY_MAX_BUCKETS),\n total: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport type ChannelActivitySeries = z.output<typeof ChannelActivitySeriesSchema>\n\nexport const ScheduledTaskIdSchema = z.string().regex(/^job_[0-9A-Za-z]+$/u)\n\n/**\n * One scheduled task of an agent in one channel. `chat` tasks come from the agent's scheduling tools; `declared` and\n * `runtime` tasks belong to an extension (Manifest plan or `ctx.nxt.jobs`).\n */\nexport const ScheduledTaskSchema = z\n .object({\n id: ScheduledTaskIdSchema,\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema,\n source: z.enum(['chat', 'declared', 'runtime']),\n extensionId: ExtensionIdSchema.optional(),\n extensionName: z.string().optional(),\n label: z.string(),\n note: z.string().optional(),\n schedule: z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('once'), at: z.number().int().safe() }).strict(),\n z.object({ kind: z.literal('cron'), cron: z.string(), timezone: z.string() }).strict(),\n ]),\n /** `inactive`: the owning extension is disabled for this agent, so the task stays silent. */\n state: z.enum(['scheduled', 'paused', 'finished', 'inactive']),\n nextRunAt: z.number().int().safe().optional(),\n lastFiredAt: z.number().int().safe().optional(),\n createdAt: z.number().int().safe(),\n })\n .strict()\n\nexport type ScheduledTask = z.output<typeof ScheduledTaskSchema>\n\n/** Programs and models NekroNXT installs on request (附加功能); `<data root>/runtimes`, left out of backups. */\nexport const AddonIdSchema = z.enum(['media', 'speech', 'retrieval', 'node', 'github-cli', 'browser'])\nexport type AddonId = z.output<typeof AddonIdSchema>\n\n/** `extension`: used by extensions; `agent`: used by agents' commands; `host`: used by NekroNXT itself. */\nexport const AddonGroupSchema = z.enum(['extension', 'agent', 'host'])\nexport type AddonGroup = z.output<typeof AddonGroupSchema>\n\n/**\n * `installed`: downloaded and ready; `available`: usable without installing (bundled, found on this device, cloud);\n * `needs-config`: usable once configured (cloud).\n */\nexport const AddonStateSchema = z.enum([\n 'not-installed',\n 'installing',\n 'installed',\n 'failed',\n 'unsupported',\n 'available',\n 'needs-config',\n])\nexport type AddonState = z.output<typeof AddonStateSchema>\n\nconst AddonProgressSchema = z\n .object({\n receivedBytes: z.number().int().nonnegative(),\n totalBytes: z.number().int().nonnegative().optional(),\n })\n .strict()\n\n/** One way an add-on can be provided, such as a program found on this device or one NekroNXT downloads. */\nexport const AddonProviderStatusSchema = z\n .object({\n id: NonEmptyStringSchema,\n title: NonEmptyStringSchema,\n summary: z.string(),\n state: AddonStateSchema,\n /** `bundled`: installed with NekroNXT; `system`: found on this device; `downloaded`: fetched by NekroNXT. */\n source: z.enum(['bundled', 'system', 'downloaded', 'cloud']).optional(),\n /** The installed version, or the one an install fetches. */\n version: z.string().optional(),\n resources: z\n .object({\n /** Approximate for this system and processor. */\n downloadBytes: z.number().int().nonnegative().optional(),\n /** Measured from its own folder after install. */\n installedBytes: z.number().int().nonnegative().optional(),\n memoryBytes: z.number().int().nonnegative().optional(),\n /** Short differences worth comparing, such as languages or speed. */\n notes: z.array(z.string()).default([]),\n })\n .strict(),\n /** One entry per component that carries its own license. */\n licenses: z\n .array(z.object({ component: z.string().optional(), name: NonEmptyStringSchema, url: z.url() }).strict())\n .default([]),\n /** Where downloads come from, for display. */\n sources: z.array(z.string()).default([]),\n progress: AddonProgressSchema.optional(),\n error: z.string().optional(),\n /** Other add-ons it needs to work. */\n dependsOn: z.array(AddonIdSchema).default([]),\n installable: z.boolean(),\n removable: z.boolean(),\n })\n .strict()\nexport type AddonProviderStatus = z.output<typeof AddonProviderStatusSchema>\n\n/** One add-on (a capability) as 设置 → 附加功能 shows it; the registry on the server is its only source. */\nexport const AddonStatusSchema = z\n .object({\n id: AddonIdSchema,\n group: AddonGroupSchema,\n title: NonEmptyStringSchema,\n summary: z.string(),\n /** Who relies on it, as labels people recognise. */\n usedBy: z.array(z.string()),\n /** The selected provider's state, or, while none can be used, the one closest to usable. */\n state: AddonStateSchema,\n progress: AddonProgressSchema.optional(),\n /** The provider in use; absent while none can be used. */\n selected: NonEmptyStringSchema.optional(),\n /** In declared order; providers that do not exist on this device are left out. */\n providers: z.array(AddonProviderStatusSchema),\n })\n .strict()\nexport type AddonStatus = z.output<typeof AddonStatusSchema>\n\n/** Languages speech recognition can be asked for; `auto` lets the provider tell. */\nexport const SpeechLanguageSchema = z.enum(['auto', 'zh', 'en', 'ja', 'ko', 'yue'])\nexport type SpeechLanguage = z.output<typeof SpeechLanguageSchema>\n\n/** The cloud provider of the `speech` add-on: a provider from 设置 → 模型 and the transcription model it serves. */\nexport const SpeechCloudSettingsSchema = z\n .object({\n provider: NonEmptyStringSchema,\n model: z.string().trim().min(1).max(200),\n /** Used when a caller does not name a language. */\n language: SpeechLanguageSchema.optional(),\n })\n .strict()\nexport type SpeechCloudSettings = z.output<typeof SpeechCloudSettingsSchema>\n\nexport const SpeechSettingsSchema = z\n .object({\n cloud: SpeechCloudSettingsSchema.nullable(),\n /** Configured providers with an OpenAI-compatible address, the ones cloud transcription can use. */\n providers: z.array(z.object({ provider: NonEmptyStringSchema, displayName: z.string() }).strict()),\n })\n .strict()\nexport type SpeechSettings = z.output<typeof SpeechSettingsSchema>\n\n/** Whether a capability that needs an add-on can run now; details live in `addons`. */\nexport const AddonAvailabilitySchema = z.object({ available: z.boolean() }).strict()\nexport type AddonAvailability = z.output<typeof AddonAvailabilitySchema>\n\n/** A platform's own program that linked accounts work through, such as the GitHub CLI. */\nexport const LinkedAccountPlatformToolSchema = z\n .object({\n /** The add-on it is installed as (`AddonStatus.id`). */\n id: z.enum(['github-cli']),\n name: z.string(),\n })\n .strict()\n\n/** 设置 → 关联账号: every platform the host supports, with its accounts and tools. */\nexport const LinkedAccountsViewSchema = z\n .object({\n platforms: z.array(\n z\n .object({\n id: LinkedAccountPlatformIdSchema,\n name: z.string(),\n addMethods: z.array(LinkedAccountMethodSchema),\n tool: LinkedAccountPlatformToolSchema.optional(),\n accounts: z.array(LinkedAccountViewSchema),\n })\n .strict(),\n ),\n /** Logins found in the local GitHub CLI; empty when it is missing or not logged in. */\n localGithubLogins: z.array(LocalGithubLoginSchema),\n })\n .strict()\nexport type LinkedAccountsView = z.output<typeof LinkedAccountsViewSchema>\n\nexport const RemoveLinkedAccountResultSchema = z.discriminatedUnion('removed', [\n z.object({ removed: z.literal(true), view: LinkedAccountsViewSchema }).strict(),\n z.object({ removed: z.literal(false), grantedAgentIds: z.array(AgentIdSchema) }).strict(),\n])\nexport type RemoveLinkedAccountResult = z.output<typeof RemoveLinkedAccountResultSchema>\n\n/** An extension action an agent asked an administrator to confirm, or one it took on its own. */\nexport const ExtensionRequestSchema = z\n .object({\n number: z.number().int().positive(),\n kind: z.string(),\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema.nullable(),\n extensionId: ExtensionIdSchema.nullable(),\n summary: z.string(),\n status: z.enum(['pending', 'approved', 'rejected', 'expired', 'completed', 'failed', 'superseded', 'withdrawn']),\n autonomous: z.boolean(),\n resultMessage: z.string().nullable(),\n decidedBy: z.string().nullable(),\n createdAt: z.number().int().nonnegative(),\n expiresAt: z.number().int().nonnegative(),\n decidedAt: z.number().int().nonnegative().nullable(),\n })\n .strict()\nexport type ExtensionRequestView = z.output<typeof ExtensionRequestSchema>\n\nexport const HostSnapshotSchema = z\n .object({\n communityFeedback: CommunityFeedbackSnapshotSchema.optional(),\n upgrade: HostUpgradeSummarySchema.optional(),\n cursor: HostSyncCursorSchema,\n diagnosticsSampledAt: z.number().int().nonnegative(),\n productMetadata: z\n .object({\n displayName: NonEmptyStringSchema,\n organizationName: NonEmptyStringSchema,\n version: NonEmptyStringSchema,\n releaseId: NonEmptyStringSchema,\n repositoryUrl: z.url(),\n licenseSpdx: NonEmptyStringSchema.nullable(),\n dshVersion: NonEmptyStringSchema.optional(),\n })\n .strict()\n .optional(),\n models: z.array(\n z\n .object({\n provider: NonEmptyStringSchema,\n providerName: NonEmptyStringSchema,\n id: NonEmptyStringSchema,\n name: z.string(),\n description: z.string().optional(),\n inputModalities: z.array(z.string()).optional(),\n /** Selectable thinking levels, least to most; absent when the model offers no choice. */\n reasoning: z\n .object({\n efforts: z.array(z.object({ id: NonEmptyStringSchema, name: z.string() }).strict()).min(1),\n defaultEffort: NonEmptyStringSchema.optional(),\n })\n .strict()\n .optional(),\n })\n .strict(),\n ),\n capabilityAvailability: z\n .object({\n subagents: z.object({ available: z.boolean() }).strict(),\n /** The `node` add-on that `run_code` needs. */\n codeRun: AddonAvailabilitySchema.optional(),\n /** The `github-cli` add-on that commands use with a GitHub account. */\n githubCli: AddonAvailabilitySchema.optional(),\n /** The `browser` add-on that checks candidates when no page is open. */\n verificationBrowser: AddonAvailabilitySchema.optional(),\n /** The `speech` add-on that voice message transcription needs. */\n speechRecognition: AddonAvailabilitySchema.optional(),\n /** What this host can confine for commands beyond file writes; optional in older hosts. */\n commandConfinement: z.object({ readScope: z.boolean(), networkControl: z.boolean() }).strict().optional(),\n webSearch: z\n .object({\n unavailableReason: z.string().optional(),\n provider: z.literal('deepseek-official'),\n available: z.boolean(),\n credentialConfigured: z.boolean(),\n credentialReference: NonEmptyStringSchema,\n maxUsesPerCall: z.number().int().nonnegative(),\n maxResultsPerCall: z.number().int().nonnegative(),\n timeoutMs: z.number().int().nonnegative(),\n })\n .strict(),\n })\n .strict(),\n connectionAdapters: z.array(AdapterConnectionDescriptorSchema),\n notificationSettings: NotificationSettingsViewSchema,\n agents: z.array(\n z\n .object({\n id: AgentIdSchema,\n displayName: z.string(),\n persona: z.string(),\n personaDocument: PromptDocumentV1Schema,\n model: AgentModelSchema,\n capabilities: AgentCapabilitiesSchema,\n imagePolicy: ImageUnderstandingPolicyApiSchema,\n dynamicClientApprovalPolicy: DynamicClientApprovalPolicySchema,\n /** Optional for older hosts, whose agents always follow both defaults. */\n compaction: AgentCompactionPolicySchema.optional(),\n /** Optional for older hosts, whose agents offer no candidates. */\n subConversationModels: AgentSubConversationModelsSchema.optional(),\n /** Optional for older hosts, whose agents have no fallback models. */\n fallbackModels: AgentFallbackModelsSchema.optional(),\n /** Optional for older hosts, whose agents have no aliases. */\n aliases: AgentAliasesSchema.optional(),\n /**\n * Enabled extensions that process the agent's messages before they are sent, in the order they run. Absent\n * when none does.\n */\n outboundOrder: z.array(ExtensionIdSchema).optional(),\n imageDiagnostics: z\n .object({\n route: z\n .object({\n mode: z.enum(['direct', 'delegated', 'unavailable']),\n provider: z.string().optional(),\n model: z.string().optional(),\n })\n .strict(),\n activeSessions: z.number().int().nonnegative(),\n residentImages: z.number().int().nonnegative(),\n duplicateImagesSkipped: z.number().int().nonnegative(),\n lastInspection: z\n .object({\n mode: z.enum(['direct', 'delegated']),\n imageCount: z.number().int().nonnegative(),\n provider: z.string().optional(),\n model: z.string().optional(),\n cacheHit: z.boolean(),\n usage: ChannelRuntimeUsageSchema.optional(),\n errorCode: z.string().optional(),\n })\n .strict()\n .optional(),\n lastRestoration: z\n .object({\n compactionId: z.string(),\n candidateCount: z.number().int().nonnegative(),\n restoredCount: z.number().int().nonnegative(),\n skippedCount: z.number().int().nonnegative(),\n error: z.string().optional(),\n })\n .strict()\n .optional(),\n blockers: z.array(z.string()),\n })\n .strict(),\n currentRevisionId: AgentRevisionIdSchema,\n runtimeStatus: z.enum(['idle', 'running']),\n runtimePhase: ChannelRuntimePhaseSchema.default('idle'),\n createdAt: z.number().finite(),\n channels: z.array(ChannelIdSchema),\n appearance: AgentAppearanceSchema.default({}),\n })\n .strict(),\n ),\n channels: z.array(\n z\n .object({\n id: ChannelIdSchema,\n connectionId: ConnectionIdSchema,\n platformChannelId: NonEmptyStringSchema,\n kind: z.enum(['internal', 'group', 'direct']),\n displayName: z.string().optional(),\n localDisplayName: z.string().optional(),\n platformDisplayName: z.string().optional(),\n boundAgentId: AgentIdSchema.optional(),\n runtimePhase: ChannelRuntimePhaseSchema.default('idle'),\n activity: ChannelActivitySummarySchema.default({ unreadCount: 0, unreadCapped: false }),\n /** Other agents on this host that answer the same platform channel through another connection; absent when none. */\n localAgentIds: z.array(AgentIdSchema).min(1).optional(),\n bindings: z.array(\n z\n .object({\n channelId: ChannelIdSchema,\n agentId: AgentIdSchema,\n triggerPolicy: TriggerPolicySchema,\n /** Channel pause, independent of the response rule. */\n paused: z.boolean().default(false),\n processingFeedback: z.enum(['auto', 'off']).default('auto'),\n /** Absent means `observe`. */\n localAgentMessages: z.enum(['observe', 'trigger']).optional(),\n activityTriggerOverrides: ActivityTriggerOverridesSchema.default({}),\n /** Absent on older hosts; missing keys use the defaults. */\n responseTiming: ResponseTimingSettingsSchema.optional(),\n boundAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n workTreeOrder: WorkTreeOrderSchema.default({\n agentIds: [],\n channelIdsByAgent: {},\n unboundChannelIds: [],\n }),\n channelListView: ChannelListViewSchema.default({ pinnedChannelIds: [], collapsedGroupIds: [] }),\n messages: z.array(HostSnapshotMessageSchema),\n connections: z.array(\n z\n .object({\n id: ConnectionIdSchema,\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasOutputSchema.optional(),\n activityTriggerDefaults: z.array(AdapterActivityKeySchema).default([]),\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: BoundCredentialsSchema.optional(),\n status: z\n .object({\n state: z.enum(['stopped', 'connecting', 'connected', 'reconnecting', 'failed']),\n message: z.string().optional(),\n credentialConfigured: z.boolean(),\n proactiveSend: z.boolean(),\n accountReference: z.string().optional(),\n implementation: z\n .object({\n name: z.string().optional(),\n version: z.string().optional(),\n protocolVersion: z.string().optional(),\n })\n .strict()\n .optional(),\n optionalCapabilities: z\n .record(z.string(), z.enum(['unknown', 'available', 'unsupported', 'degraded']))\n .optional(),\n activities: z.record(z.string(), AdapterCapabilityStateSchema).default({}),\n processingFeedback: AdapterCapabilityStateSchema.optional(),\n })\n .strict()\n .default({ state: 'stopped', credentialConfigured: false, proactiveSend: false, activities: {} }),\n channelCount: z.number().int().nonnegative(),\n knownChannels: z.array(\n z.object({ id: ChannelIdSchema, name: z.string(), kind: z.enum(['internal', 'group', 'direct']) }).strict(),\n ),\n lastInbound: z\n .object({\n channelId: ChannelIdSchema,\n platformMessageId: NonEmptyStringSchema,\n receivedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n receiveTest: z.lazy(() => ConnectionTestResultSchema).optional(),\n sendTest: z.lazy(() => ConnectionTestResultSchema).optional(),\n configuration: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).default({}),\n })\n .strict(),\n ),\n archivedConnections: z\n .array(\n z\n .object({\n id: ConnectionIdSchema,\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasOutputSchema.optional(),\n channelCount: z.number().int().nonnegative(),\n archivedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n )\n .default([]),\n extensions: z.array(\n z\n .object({\n id: ExtensionIdSchema,\n /** What the latest Revision provides; listing and filtering only. */\n provides: z.array(ExtensionProvideSchema),\n slug: NonEmptyStringSchema,\n displayName: z.string(),\n description: z.string(),\n createdByAgentId: AgentIdSchema.optional(),\n /** The Revision of another extension this one was branched from. */\n branchOf: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n /** Present while the original is on this machine. */\n displayName: z.string().optional(),\n })\n .strict()\n .optional(),\n /** Shape version of the data stored on this machine. */\n dataVersion: z.number().int().positive().default(1),\n /** The unfinished revise task of this extension, if any. */\n openRevisionTaskId: AuthoringTaskIdSchema.optional(),\n /** Whether this machine publishes (`owner`) or follows the line on each community. */\n communityLinks: z\n .array(z.object({ communityUrl: z.string(), role: z.enum(['owner', 'subscriber']) }).strict())\n .default([]),\n revisions: z.array(\n z\n .object({\n id: ExtensionRevisionIdSchema,\n revisionNumber: z.number().int().positive(),\n /** Version number from the lineage, `v3` (or `v3·2` for a second Revision of the same generation). */\n versionLabel: z.string(),\n parentRevisionId: ExtensionRevisionIdSchema.optional(),\n origin: z.enum(['authored', 'file', 'community', 'branch']),\n authoringTaskId: AuthoringTaskIdSchema.optional(),\n dataVersion: z.number().int().positive(),\n /** Community releases this Revision is; installs and publishes from here both record one. */\n releases: z\n .array(\n z\n .object({\n communityUrl: z.string(),\n releaseId: CommunityReleaseIdSchema,\n number: z.number().int().positive().nullable(),\n publisherHandle: z.string(),\n via: z.enum(['install', 'publish']),\n recordedAt: z.number().int().nonnegative(),\n })\n .strict(),\n )\n .default([]),\n format: z.enum(['current', 'unavailable']).optional(),\n ui: ExtensionUiContributionsSchema.default(EMPTY_EXTENSION_UI_CONTRIBUTIONS),\n /** The host instance's configuration form (`config.host`). */\n hostConfigSchema: ConfigSchemaDocumentSchema.optional(),\n /** Each enabled agent's configuration form (`config.agent`). */\n agentConfigSchema: ConfigSchemaDocumentSchema.optional(),\n /** 扩展包自带图标的读取路径(同源、按摘要寻址、可长期缓存);没有图标时缺省。 */\n iconUrl: z\n .string()\n .regex(/^\\/api\\/extensions\\/[^/]+\\/revisions\\/[^/]+\\/icon\\/[a-f0-9]{64}\\.(?:svg|png|webp)$/u)\n .optional(),\n createdAt: z.number().int().safe().nonnegative(),\n provides: z.array(ExtensionProvideSchema),\n /** Whether this Revision can be enabled for agents (agent-layer contributions or capabilities). */\n agentLayer: z.boolean(),\n contributions: z.array(z.string()),\n verification: z\n .object({\n verifiedAt: z.number().int().nonnegative(),\n dshVersion: z.string(),\n contractVersion: z.string(),\n hostBuilt: z.boolean(),\n clientBuilt: z.boolean(),\n buildKey: z.string(),\n toolInvocationCount: z.number().int().nonnegative(),\n rpcMethods: z.array(z.string()),\n renderedPanels: z.array(z.string()).default([]),\n renderedToolViews: z.array(z.string()).default([]),\n renderedMessageRenderers: z.array(z.string()).default([]),\n renderedPages: z.array(HostPageContributionSchema).max(8).optional(),\n usedUiComponents: z.array(HostUiKitComponentNameSchema).optional(),\n pageGeometry: z.array(HostUiPageGeometryEvidenceSchema).max(8).optional(),\n permissions: ExtensionPermissionsSchema.optional(),\n /** Installing this Revision on the machine, against the current host grant. */\n hostPermission: ExtensionPermissionRequirementSchema.optional(),\n /** Enabling this Revision for an agent that has no grant yet. */\n agentPermission: ExtensionPermissionRequirementSchema.optional(),\n adapter: z\n .object({\n apiVersion: z.literal(2),\n key: NonEmptyStringSchema,\n descriptorDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n registered: z.boolean(),\n started: z.boolean(),\n stopped: z.boolean(),\n inboundCommitted: z.boolean(),\n outboundReceipt: z.enum(['sent', 'failed', 'unknown']),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict(),\n ),\n activations: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n extensionRevisionId: ExtensionRevisionIdSchema,\n /** Secret fields are removed; `configuredSecrets` lists those the Host stores. */\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: BoundCredentialsSchema.optional(),\n activatedAt: z.number().int().safe().nonnegative(),\n runtime: z\n .object({\n status: z.enum(['active', 'restore-failed', 'dispose-failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .optional(),\n /** Latest connection attempt of each MCP server this Activation declares. */\n mcpServers: z\n .array(\n z\n .object({\n name: z.string(),\n state: z.enum(['connecting', 'connected', 'unavailable', 'missing-credentials']),\n toolCount: z.number().int().nonnegative().optional(),\n missing: z.array(z.string()).optional(),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n )\n .optional(),\n })\n .strict(),\n ),\n /** Present only while some agent's enable or disable request is waiting or has failed. */\n activationTransitions: z.array(ExtensionActivationTransitionSchema).optional(),\n installation: z\n .object({\n extensionRevisionId: ExtensionRevisionIdSchema,\n installedAt: z.number().int().safe().nonnegative(),\n /** Secret fields are removed; `configuredSecrets` lists those the Host stores. */\n config: JsonValueSchema.default({}),\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: BoundCredentialsSchema.optional(),\n runtime: z\n .object({\n status: z.enum(['active', 'restore-failed', 'dispose-failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .optional(),\n })\n .strict()\n .optional(),\n /** Installing the latest Revision on this machine, against the current host grant. */\n hostPermission: ExtensionPermissionRequirementSchema.optional(),\n hostClientDiagnostic: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n status: z.enum(['loaded', 'failed']),\n message: z.string().optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n clientDiagnostics: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n status: z.enum(['loaded', 'failed']),\n message: z.string().optional(),\n observedAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n ),\n hostUi: z\n .object({\n preferencesRevision: z.number().int().nonnegative(),\n pages: z.array(HostUiPageEntrySchema),\n })\n .strict()\n .default({ preferencesRevision: 0, pages: [] }),\n dynamic: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema.optional(),\n currentPackageId: DynamicIdSchema.optional(),\n nextPackageId: DynamicIdSchema.optional(),\n approvalRequestId: DynamicIdSchema.optional(),\n status: DynamicAttemptStatusSchema,\n activeRun: z.object({ pluginRunId: DynamicIdSchema, packageId: DynamicIdSchema }).strict().optional(),\n latestRun: DynamicLatestRunSchema.optional(),\n packages: z.array(\n z\n .object({\n packageId: DynamicIdSchema,\n name: z.string(),\n purpose: z.string(),\n hasHostHalf: z.boolean(),\n hasClientHalf: z.boolean(),\n })\n .strict(),\n ),\n policy: z\n .object({\n turn: z.number().int().nonnegative(),\n primaryPluginId: DynamicIdSchema.optional(),\n consecutiveFailures: z.number().int().nonnegative(),\n repeatedFingerprintCount: z.number().int().nonnegative(),\n lastErrorFingerprint: z.string().optional(),\n blockedReason: z.string().optional(),\n })\n .strict(),\n })\n .strict(),\n ),\n authoringTasks: z.array(AuthoringTaskSummarySchema).default([]),\n /** Open sub-conversations, and the most recently ended ones of each channel. */\n subConversations: z.array(SubConversationSchema).default([]),\n addons: z.array(AddonStatusSchema).default([]),\n scheduledTasks: z.array(ScheduledTaskSchema).default([]),\n /** Extension requests waiting for an administrator. */\n extensionRequests: z.array(ExtensionRequestSchema).default([]),\n })\n .strict()\n\nexport const CHANNEL_COMPOSER_MAX_ATTACHMENTS = 20\nexport const CHANNEL_COMPOSER_MAX_BYTES = 64 * 1024 * 1024\n\nconst MessageInputPartSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), text: z.string().trim().min(1) }).strict(),\n z.object({ type: z.literal('mention'), memberId: ChannelMemberIdSchema }).strict(),\n z.object({ type: z.literal('image'), assetId: AssetIdSchema, alt: z.string().trim().max(500).optional() }).strict(),\n z.object({ type: z.literal('file'), assetId: AssetIdSchema, name: z.string().trim().max(255).optional() }).strict(),\n])\n\nconst SendChannelMessageRequestSchema = z\n .object({\n parts: z\n .array(MessageInputPartSchema)\n .min(1)\n .max(256)\n .refine(\n (parts) =>\n parts.filter((part) => part.type === 'image' || part.type === 'file').length <=\n CHANNEL_COMPOSER_MAX_ATTACHMENTS,\n '每条消息最多添加 20 个附件。',\n ),\n clientEventId: NonEmptyStringSchema.optional(),\n senderMemberId: ChannelMemberIdSchema.optional(),\n })\n .strict()\n .refine(\n (body) => body.parts.every((part) => part.type !== 'text' || [...part.text].length <= 64 * 1024),\n 'Message text must not exceed 64 KiB.',\n )\n\nconst DynamicErrorDetailsSchema = z.object({ message: z.string(), stack: z.string().optional() }).strict()\nconst DynamicRenderFailureSchema = z\n .object({\n slot: NonEmptyStringSchema,\n message: z.string(),\n stack: z.string().optional(),\n abdicated: z.boolean(),\n })\n .strict()\nconst DynamicRunResolutionSchema = z.discriminatedUnion('ok', [\n z.object({ ok: z.literal(true), pluginRunId: DynamicIdSchema, waitingFor: z.array(z.string()).optional() }).strict(),\n z\n .object({\n ok: z.literal(false),\n reason: z.enum(['rejected', 'host-half-failed', 'client-half-failed']),\n pluginRunId: DynamicIdSchema.optional(),\n startedHere: z.boolean().optional(),\n message: z.string().optional(),\n stack: z.string().optional(),\n })\n .strict(),\n])\n\nconst DynamicRunResponseSchema = z.discriminatedUnion('ok', [\n z\n .object({\n ok: z.literal(true),\n status: z.enum(['awaiting-approval', 'starting', 'running']),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n waitingFor: z.array(z.string()),\n clientWaitingFor: z.array(z.string()).optional(),\n currentPackageId: DynamicIdSchema.optional(),\n nextPackageId: DynamicIdSchema.optional(),\n mode: z.enum(['run', 'update']),\n })\n .strict(),\n z\n .object({\n ok: z.literal(false),\n reason: z.enum([\n 'plugin-missing',\n 'package-missing',\n 'invalid-mode',\n 'transition-in-flight',\n 'host-half-failed',\n 'client-half-failed',\n 'rejected',\n 'cancelled',\n 'not-running',\n ]),\n message: z.string(),\n stack: z.string().optional(),\n })\n .strict(),\n])\n\nconst DynamicInventoryRowSchema = z\n .object({\n pluginId: DynamicIdSchema,\n agentId: NonEmptyStringSchema,\n packages: z.array(\n z\n .object({\n packageId: DynamicIdSchema,\n name: z.string(),\n purpose: z.string(),\n hasHostHalf: z.boolean(),\n hasClientHalf: z.boolean(),\n })\n .strict(),\n ),\n currentPackageId: DynamicIdSchema.optional(),\n nextPackageId: DynamicIdSchema.optional(),\n activeRun: z.object({ pluginRunId: DynamicIdSchema, packageId: DynamicIdSchema }).strict().optional(),\n latestRun: DynamicLatestRunSchema.optional(),\n })\n .strict()\n\nexport const DshPluginCatalogEntrySchema = z\n .object({\n packageName: NonEmptyStringSchema,\n packageVersion: NonEmptyStringSchema,\n origin: z.enum(['builtin', 'profile', 'dynamic', 'installed']),\n settingsNamespaces: z.array(NonEmptyStringSchema),\n loadError: z.object({ code: NonEmptyStringSchema, message: NonEmptyStringSchema }).strict().optional(),\n packageId: DshPluginPackageIdSchema.optional(),\n installSource: z.enum(['registry', 'tarball', 'imported']).optional(),\n /** Published by the DSH maintainers on npm for the DSH release this build runs. */\n official: z.boolean().optional(),\n /** Third-party installed plugins: whether an administrator allowed them to submit images to the model. */\n imageSubmission: z.boolean().optional(),\n installedAt: z.number().int().safe().nonnegative().optional(),\n clientUiDetected: z.boolean().optional(),\n hostUi: DshNxtHostUiSchema.optional(),\n approvedBuilds: z.array(NonEmptyStringSchema).optional(),\n entries: z\n .array(\n z\n .object({\n id: DshPluginEntryIdSchema,\n entryKey: NonEmptyStringSchema,\n moduleName: NonEmptyStringSchema,\n suggestedScope: z.enum(['host', 'agent']),\n selectedScope: z.enum(['host', 'agent']).optional(),\n config: JsonValueSchema,\n /** Host services this official entry declared and received; known once it has loaded. */\n grantedServices: z.array(NonEmptyStringSchema).optional(),\n activations: z.array(\n z\n .object({\n targetKey: NonEmptyStringSchema,\n target: z.enum(['host', 'agent']),\n agentId: AgentIdSchema.optional(),\n activatedAt: z.number().int().safe().nonnegative(),\n diagnostic: z\n .object({\n status: z.enum(['active', 'pending', 'load-failed', 'restore-failed', 'dispose-failed']),\n phase: z.enum(['import', 'dependency', 'apply', 'update', 'dispose', 'restore']),\n message: z.string().optional(),\n /** Services a pending entry still waits for. */\n waitingFor: z.array(NonEmptyStringSchema).optional(),\n /** The waited-for services this entry can never receive, since only official plugins get them. */\n restrictedServices: z.array(NonEmptyStringSchema).optional(),\n observedAt: z.number().int().safe().nonnegative(),\n })\n .optional(),\n })\n .strict(),\n ),\n })\n .strict(),\n )\n .optional(),\n })\n .strict()\n\nexport const DshSettingsNamespaceSchema = z\n .object({\n ns: NonEmptyStringSchema,\n schema: JsonValueSchema,\n resolved: JsonValueSchema,\n base: JsonValueSchema.optional(),\n user: JsonValueSchema.optional(),\n applies: z.enum(['live', 'restart']),\n secrets: z.array(z.object({ path: z.array(z.string()), set: z.boolean() }).strict()),\n revision: z.number().int().nonnegative(),\n writable: z.boolean(),\n owner: z.object({ packageName: NonEmptyStringSchema, packageVersion: NonEmptyStringSchema }).strict().optional(),\n })\n .strict()\n\nexport const DshSettingsPathSchema = z.array(z.string().min(1).max(200)).min(1).max(32)\n\nexport const DshSettingsPathOperationSchema = z.discriminatedUnion('op', [\n z.object({ op: z.literal('set'), path: DshSettingsPathSchema, value: JsonValueSchema }).strict(),\n z.object({ op: z.literal('unset'), path: DshSettingsPathSchema }).strict(),\n])\n\nexport const DshSettingsMutationRequestSchema = z\n .object({\n expectedRevision: z.number().int().nonnegative(),\n ops: z.array(DshSettingsPathOperationSchema).min(1).max(128),\n })\n .strict()\n\nexport const DshCredentialRefSchema = z\n .string()\n .regex(/^[A-Za-z_][A-Za-z0-9_]*$/u)\n .max(200)\n\nexport const DshCredentialViewSchema = z\n .object({ configured: z.boolean(), source: z.string().optional(), writable: z.boolean() })\n .strict()\n\nexport const DshSettingsChangedSseDataSchema = z\n .object({ namespace: NonEmptyStringSchema, revision: z.number().int().nonnegative() })\n .strict()\n\nexport const DshCredentialsChangedSseDataSchema = z.object({ ref: DshCredentialRefSchema }).strict()\n\nexport const DynamicChangedSseDataSchema = z.object({ agentId: AgentIdSchema }).strict()\n\nexport const HostSseStatusDataSchema = z\n .object({\n ok: z.boolean(),\n message: z.string(),\n replay: z.enum(['none', 'complete', 'expired']).optional(),\n })\n .strict()\n\nexport const DshPluginOperationSseDataSchema = z\n .object({\n operationId: z.string().uuid(),\n kind: z.enum(['inspect', 'install']),\n phase: z.enum(['download', 'dependencies', 'build-scripts', 'validation', 'publish']),\n status: z.enum(['running', 'done', 'failed']),\n message: z.string(),\n })\n .strict()\n\nexport const HostSseEventSchema = z.discriminatedUnion('event', [\n z.object({ event: z.literal('snapshot-changed'), data: z.object({ changed: z.literal(true) }).strict() }).strict(),\n z.object({ event: z.literal('channel-fact'), data: ChannelFactSseDataSchema }).strict(),\n z.object({ event: z.literal('connection-fact'), data: HostConnectionEventSchema }).strict(),\n z.object({ event: z.literal('runtime'), data: ChannelRuntimeSseDataSchema }).strict(),\n z.object({ event: z.literal('extensions-changed'), data: z.object({ changed: z.literal(true) }).strict() }).strict(),\n z.object({ event: z.literal('dsh-plugins-changed'), data: z.object({ changed: z.literal(true) }).strict() }).strict(),\n z.object({ event: z.literal('dsh-plugin-operation'), data: DshPluginOperationSseDataSchema }).strict(),\n z.object({ event: z.literal('dynamic-changed'), data: DynamicChangedSseDataSchema }).strict(),\n z.object({ event: z.literal('dsh-settings-changed'), data: DshSettingsChangedSseDataSchema }).strict(),\n z.object({ event: z.literal('dsh-credentials-changed'), data: DshCredentialsChangedSseDataSchema }).strict(),\n z.object({ event: z.literal('status'), data: HostSseStatusDataSchema }).strict(),\n z\n .object({ event: z.literal('attention-changed'), data: z.object({ revision: z.string().min(1) }).strict() })\n .strict(),\n z\n .object({\n event: z.literal('binding-change'),\n data: z\n .object({\n operationId: NonEmptyStringSchema,\n channelId: ChannelIdSchema,\n kind: z.enum(['bind', 'replace', 'clear']),\n step: NonEmptyStringSchema,\n status: z.enum(['running', 'skipped', 'done', 'failed']),\n message: z.string(),\n })\n .strict(),\n })\n .strict(),\n])\n\nexport type HostSseEvent = z.output<typeof HostSseEventSchema>\n\n/** Request content a model accepts; `image` enables native vision for agents using the model. */\nexport const LlmModelInputModalitiesSchema = z.array(z.enum(['text', 'image'])).min(1)\n\n/** Thinking levels a model offers, least to most; the ids are the adapter's own. */\nexport const LlmModelReasoningEffortsSchema = z.array(NonEmptyStringSchema).min(1)\n\nexport const LlmProviderModelSchema = z\n .object({\n id: NonEmptyStringSchema,\n name: NonEmptyStringSchema,\n contextWindow: z.number().int().positive().optional(),\n maxTokens: z.number().int().positive().optional(),\n inputModalities: LlmModelInputModalitiesSchema.optional(),\n reasoningEfforts: LlmModelReasoningEffortsSchema.optional(),\n })\n .strict()\n\nexport const LlmDiscoveredModelSchema = z\n .object({\n id: NonEmptyStringSchema,\n name: NonEmptyStringSchema.optional(),\n contextWindow: z.number().int().positive().optional(),\n maxTokens: z.number().int().positive().optional(),\n inputModalities: LlmModelInputModalitiesSchema.optional(),\n reasoningEfforts: LlmModelReasoningEffortsSchema.optional(),\n })\n .strict()\n\nexport const LlmProviderCredentialSchema = z\n .object({ configured: z.boolean(), source: z.string().optional(), writable: z.boolean() })\n .strict()\n\n/**\n * The latest connection test that still describes the provider's saved address, protocol and API key. Tests made\n * before one of those changed are dropped. Never carries a key, request or response body.\n */\nexport const LlmProviderTestResultSchema = z\n .object({\n /** Epoch milliseconds when the test finished. */\n at: z.number().int().nonnegative(),\n ok: z.boolean(),\n /** Short failure reason shown to the user; absent when the test passed. */\n message: z.string().max(240).optional(),\n /** The model the test asked. */\n model: NonEmptyStringSchema.optional(),\n })\n .strict()\n\nexport const LlmProviderViewSchema = z\n .object({\n provider: NonEmptyStringSchema,\n displayName: z.string(),\n settingsNs: NonEmptyStringSchema,\n settingsPath: z.array(NonEmptyStringSchema),\n settingsRevision: z.number().int().nonnegative(),\n declared: z.boolean(),\n active: z.boolean(),\n configured: z.boolean(),\n baseURL: z.string().optional(),\n api: NonEmptyStringSchema.optional(),\n credential: LlmProviderCredentialSchema.optional(),\n models: z.array(LlmProviderModelSchema),\n /** The model list was edited on this host; built-in providers can restore their own catalog. */\n modelsCustomized: z.boolean(),\n /** The provider's adapter can list the models its endpoint offers. */\n discoverable: z.boolean(),\n /** `null` when the current configuration was never tested; absent from hosts that do not record tests. */\n lastTest: LlmProviderTestResultSchema.nullable().optional(),\n /** Present when the provider can sign in with a subscription account instead of an API key. */\n subscription: z\n .object({\n label: NonEmptyStringSchema,\n /** The route uses the signed-in account rather than an API key. */\n active: z.boolean(),\n accountLabel: z.string().nullable(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const SubscriptionStatusSchema = z\n .object({\n provider: NonEmptyStringSchema,\n label: NonEmptyStringSchema,\n usageUrl: z.url(),\n available: z.boolean(),\n mode: z.enum(['unconfigured', 'api-key', 'subscription']),\n activeAccountId: z.string().nullable(),\n accounts: z.array(\n z\n .object({\n id: NonEmptyStringSchema,\n label: NonEmptyStringSchema,\n email: z.string().nullable(),\n createdAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n login: z\n .object({\n id: NonEmptyStringSchema,\n status: z.enum(['running', 'authorized', 'cancelled', 'failed']),\n notices: z.array(\n z.object({ message: z.string(), url: z.string().optional(), code: z.string().optional() }).strict(),\n ),\n prompt: z\n .object({\n id: NonEmptyStringSchema,\n kind: z.enum(['text', 'secret', 'select']),\n message: z.string(),\n placeholder: z.string().optional(),\n options: z\n .array(z.object({ id: z.string(), label: z.string(), description: z.string().optional() }).strict())\n .optional(),\n })\n .strict()\n .nullable(),\n error: z.string().nullable(),\n })\n .strict()\n .nullable(),\n })\n .strict()\n\nexport const LlmProviderSettingsSchema = z\n .object({\n writable: z.boolean(),\n protocols: z.array(NonEmptyStringSchema),\n providers: z.array(LlmProviderViewSchema),\n })\n .strict()\n\nexport const ConnectionTestResultSchema = z.discriminatedUnion('status', [\n z\n .object({\n status: z.literal('received'),\n channelId: ChannelIdSchema,\n platformMessageId: NonEmptyStringSchema,\n })\n .strict(),\n z\n .object({\n status: z.literal('sent'),\n channelId: ChannelIdSchema,\n platformMessageId: NonEmptyStringSchema.optional(),\n })\n .strict(),\n z\n .object({\n status: z.enum(['waiting-for-message', 'needs-channel', 'needs-target', 'not-connected']),\n message: z.string(),\n })\n .strict(),\n z\n .object({\n status: z.literal('failed'),\n kind: NonEmptyStringSchema,\n message: z.string(),\n retryAfterMs: z.number().int().nonnegative().optional(),\n })\n .strict(),\n])\n\ntype HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'\ntype AnySchema = z.ZodType\n\nexport interface HostApiContract<\n Method extends HttpMethod = HttpMethod,\n Params extends AnySchema = AnySchema,\n Request extends AnySchema = AnySchema,\n Response extends AnySchema = AnySchema,\n ErrorSchema extends AnySchema = AnySchema,\n> {\n readonly method: Method\n readonly timeoutMs?: number\n readonly responseFormat?: 'json' | 'bytes'\n readonly invalidatesSnapshot?: boolean\n encodeRequest?(input: z.output<Request>): {\n readonly body: string | Uint8Array\n readonly headers: Readonly<Record<string, string>>\n }\n readonly path: string\n readonly params: Params\n readonly request: Request\n readonly response: Response\n readonly error: ErrorSchema\n readonly parseParams: (input: unknown) => z.output<Params>\n readonly parseRequest: (input: unknown) => z.output<Request>\n readonly parseResponse: (input: unknown) => z.output<Response>\n readonly parseError: (input: unknown) => z.output<ErrorSchema>\n}\n\n/** 扩展包导入检查的结果:本地文件与社区下载共用同一确认步骤。 */\nexport const ExtensionImportInspectionSchema = z\n .object({\n token: NonEmptyStringSchema,\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n slug: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n provides: z.array(ExtensionProvideSchema),\n idempotent: z.boolean(),\n slugConflict: z.boolean(),\n })\n .strict()\n\nconst defineContract = <\n const Method extends HttpMethod,\n Params extends AnySchema,\n Request extends AnySchema,\n Response extends AnySchema,\n>(\n contract: Omit<\n HostApiContract<Method, Params, Request, Response, typeof HostApiErrorSchema>,\n 'parseParams' | 'parseRequest' | 'parseResponse' | 'parseError'\n >,\n): HostApiContract<Method, Params, Request, Response, typeof HostApiErrorSchema> => ({\n ...contract,\n parseParams: (input) => contract.params.parse(input),\n parseRequest: (input) => contract.request.parse(input),\n parseResponse: (input) => contract.response.parse(input),\n parseError: (input) => contract.error.parse(input),\n})\n\nconst agentParam = z.object({ agentId: AgentIdSchema }).strict()\nconst credentialParam = z.object({ credentialId: CredentialIdSchema }).strict()\nconst linkedAccountParam = z.object({ accountId: LinkedAccountIdSchema }).strict()\nconst agentRevisionParam = z.object({ agentId: AgentIdSchema, revisionId: AgentRevisionIdSchema }).strict()\n\nexport const AgentRevisionChangedFieldSchema = z.enum([\n 'name',\n 'persona',\n 'model',\n 'capabilities',\n 'imagePolicy',\n 'approvalPolicy',\n 'compaction',\n 'subConversationModels',\n 'fallbackModels',\n 'aliases',\n])\n\nexport const AgentRevisionHistorySchema = z\n .object({\n agentId: AgentIdSchema,\n currentRevisionId: AgentRevisionIdSchema,\n /** Newest first. `changedFields` compares each Revision with the one numbered just before it. */\n revisions: z.array(\n z\n .object({\n id: AgentRevisionIdSchema,\n revision: z.number().int().positive(),\n createdAt: z.number().int().nonnegative(),\n displayName: z.string(),\n model: z.object({ provider: z.string(), model: z.string() }).strict(),\n changedFields: z.array(AgentRevisionChangedFieldSchema),\n current: z.boolean(),\n })\n .strict(),\n ),\n })\n .strict()\nexport type AgentRevisionHistory = z.output<typeof AgentRevisionHistorySchema>\nconst channelParam = z.object({ channelId: ChannelIdSchema }).strict()\nconst connectionParam = z.object({ connectionId: ConnectionIdSchema }).strict()\nconst agentExtensionParam = z.object({ agentId: AgentIdSchema, extensionId: ExtensionIdSchema }).strict()\n\nconst PermissionApprovalSchema = z.object({ permissionDigest: z.string().regex(/^[a-f0-9]{64}$/u) }).strict()\n\n/**\n * What keeps a version from being cleaned up: in use, enabled for an agent, released to a community, kept by hand,\n * the start of a branch, the base of an open revision, needed by 回到上一个版本, or named by a pending request.\n */\nexport const ExtensionRevisionProtectionSchema = z.enum([\n 'installed',\n 'active',\n 'released',\n 'kept',\n 'branch',\n 'revising',\n 'undo',\n 'request',\n])\nexport type ExtensionRevisionProtection = z.output<typeof ExtensionRevisionProtectionSchema>\n\n/** One version of one line in the lineage view of an extension family. */\nexport const ExtensionLineageNodeSchema = z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n extensionId: ExtensionIdSchema,\n label: z.string(),\n parentRevisionId: ExtensionRevisionIdSchema.optional(),\n origin: z.enum(['authored', 'file', 'community', 'branch']),\n createdAt: z.number().int().nonnegative(),\n current: z.boolean(),\n releaseNumbers: z.array(z.number().int().positive()),\n /** Marked by an administrator to keep. */\n kept: z.boolean(),\n /** Why the version cannot be cleaned up; absent when it can. */\n protectedBy: ExtensionRevisionProtectionSchema.optional(),\n })\n .strict()\n\n/** Every line of the family an extension belongs to: the original and every branch of a branch on this machine. */\nexport const ExtensionLineageSchema = z\n .object({\n lines: z.array(\n z\n .object({\n extensionId: ExtensionIdSchema,\n displayName: z.string(),\n branchOf: z\n .object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema })\n .strict()\n .optional(),\n nodes: z.array(ExtensionLineageNodeSchema),\n })\n .strict(),\n ),\n })\n .strict()\n\nconst DataChangeCountSchema = z\n .object({\n added: z.number().int().nonnegative(),\n overwritten: z.number().int().nonnegative(),\n removed: z.number().int().nonnegative(),\n unchanged: z.number().int().nonnegative(),\n })\n .strict()\n\n/** Where a data migration takes data from. */\nexport const ExtensionDataSourceSchema = z.discriminatedUnion('kind', [\n z.object({ kind: z.literal('extension'), extensionId: ExtensionIdSchema }).strict(),\n z.object({ kind: z.literal('snapshot'), snapshotId: z.string().min(1).max(80) }).strict(),\n z.object({ kind: z.literal('package'), token: z.string().min(1).max(80) }).strict(),\n])\n\nexport const ExtensionDataMigrationInputSchema = z\n .object({\n source: ExtensionDataSourceSchema,\n mode: z.enum(['overwrite', 'replace']),\n /** Storage of a source agent goes to the mapped agent here; unmapped agents are skipped. */\n agentMap: z.record(z.string(), AgentIdSchema).optional(),\n /** Also move the host and agent configuration (never credentials) the same way. */\n includeConfig: z.boolean().optional(),\n })\n .strict()\n\nexport const ExtensionDataPreviewSchema = z\n .object({\n diff: z\n .object({ storage: DataChangeCountSchema, index: DataChangeCountSchema, library: DataChangeCountSchema })\n .strict(),\n destructive: z.boolean(),\n sourceDataVersion: z.number().int().positive(),\n targetDataVersion: z.number().int().positive(),\n needsMigration: z.boolean(),\n /** Configuration fields that would change, when configuration moves too. */\n config: z\n .object({\n hostFields: z.array(z.string()),\n agents: z.array(z.object({ agentId: AgentIdSchema, fields: z.array(z.string()) }).strict()),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const ExtensionDataStateSchema = z\n .object({\n dataVersion: z.number().int().positive(),\n counts: z\n .object({\n storage: z.number().int().nonnegative(),\n index: z.number().int().nonnegative(),\n library: z.number().int().nonnegative(),\n })\n .strict(),\n snapshots: z.array(\n z\n .object({\n id: z.string(),\n reason: z.enum(['switch', 'migration', 'manual']),\n label: z.string(),\n dataVersion: z.number().int().positive(),\n byteSize: z.number().int().nonnegative(),\n createdAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict()\n\nexport const ExtensionDataPackageInspectionSchema = z\n .object({\n token: z.string(),\n extensionId: z.string(),\n displayName: z.string(),\n dataVersion: z.number().int().positive(),\n exportedAt: z.number().int().nonnegative(),\n agents: z.array(z.object({ id: z.string(), name: z.string() }).strict()),\n counts: z\n .object({\n storage: z.number().int().nonnegative(),\n index: z.number().int().nonnegative(),\n library: z.number().int().nonnegative(),\n })\n .strict(),\n })\n .strict()\n\nexport const AdministratorSchema = z\n .object({\n connectionId: ConnectionIdSchema,\n connectionName: z.string(),\n platformUserId: z.string(),\n identityId: PlatformIdentityIdSchema.optional(),\n displayName: z.string(),\n addedVia: z.enum(['console', 'claim']),\n addedAt: z.number().int().nonnegative(),\n })\n .strict()\n\nconst extensionParam = z.object({ extensionId: ExtensionIdSchema }).strict()\n\nexport const ExtensionConfigVersionSourceSchema = z.enum(['console', 'agent', 'chat-admin', 'revert', 'auto-revert'])\nexport type ExtensionConfigVersionSource = z.output<typeof ExtensionConfigVersionSourceSchema>\n\n/**\n * One saved state of an extension's host configuration or of one agent's configuration. Versions are numbered per\n * extension, layer and agent; reverting writes an old one again as a new version. Secret fields only show whether\n * they were set and which named credential they were bound to.\n */\nexport const ExtensionConfigVersionSchema = z\n .object({\n id: z.number().int().positive(),\n extensionId: ExtensionIdSchema,\n layer: z.enum(['host', 'agent']),\n agentId: AgentIdSchema.nullable(),\n version: z.number().int().positive(),\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: z.record(z.string(), CredentialIdSchema).optional(),\n source: ExtensionConfigVersionSourceSchema,\n actorAgentId: AgentIdSchema.nullable(),\n requesterMemberId: z.string().nullable(),\n reason: z.string().nullable(),\n createdAt: z.number().int().nonnegative(),\n })\n .strict()\nexport type ExtensionConfigVersion = z.output<typeof ExtensionConfigVersionSchema>\n\nconst extensionConfigVersionParam = z\n .object({\n extensionId: ExtensionIdSchema,\n /** Decimal text of the version id; the path builder only takes strings. */\n versionId: z.string().regex(/^[1-9]\\d{0,15}$/u),\n })\n .strict()\nconst dshPluginPackageParam = z.object({ packageId: DshPluginPackageIdSchema }).strict()\nconst dshPluginEntryParam = z.object({ entryId: DshPluginEntryIdSchema }).strict()\nconst extensionRevisionParam = z\n .object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema })\n .strict()\nconst dshSettingsParam = z.object({ namespace: NonEmptyStringSchema }).strict()\nconst dshCredentialParam = z.object({ ref: DshCredentialRefSchema }).strict()\nconst llmProviderParam = z.object({ provider: NonEmptyStringSchema }).strict()\nconst authoringTaskParam = z.object({ taskId: AuthoringTaskIdSchema }).strict()\nconst subConversationParam = z.object({ conversationId: SubConversationIdSchema }).strict()\nconst scheduledTaskParam = z.object({ taskId: ScheduledTaskIdSchema }).strict()\nconst authoringAttemptParam = z.object({ taskId: AuthoringTaskIdSchema, attemptId: AuthoringAttemptIdSchema }).strict()\n\nconst DshPluginInstallInspectionSchema = z\n .object({\n token: NonEmptyStringSchema,\n operationId: z.string().uuid().optional(),\n packageName: NonEmptyStringSchema,\n packageVersion: NonEmptyStringSchema,\n packageDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n lockfileDigest: z.string().regex(/^[a-f0-9]{64}$/u),\n blockedBuilds: z.array(NonEmptyStringSchema),\n clientUiDetected: z.boolean(),\n hostUi: DshNxtHostUiSchema.optional(),\n entries: z.array(\n z\n .object({\n entryKey: NonEmptyStringSchema,\n moduleName: NonEmptyStringSchema,\n suggestedScope: z.enum(['host', 'agent']),\n })\n .strict(),\n ),\n })\n .strict()\n\nconst BinaryUploadRequestSchema = z\n .object({\n bytes: z.instanceof(Uint8Array),\n fileName: z.string().max(255).optional(),\n operationId: z.string().uuid().optional(),\n })\n .strict()\nconst encodeBinaryUpload = (input: z.output<typeof BinaryUploadRequestSchema>) => ({\n body: input.bytes,\n headers: {\n 'content-type': 'application/octet-stream',\n ...(input.fileName === undefined ? {} : { 'x-file-name': input.fileName }),\n ...(input.operationId === undefined ? {} : { 'x-operation-id': input.operationId }),\n },\n})\n\nexport const HostApiContracts = {\n listCommands: defineContract({\n method: 'GET',\n path: '/api/commands',\n params: z.object({ channelId: ChannelIdSchema.optional() }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n commands: z.array(CommandCatalogEntrySchema),\n problems: z.array(z.string()),\n /** Host-wide behavior: whether platform members without a grant are told so. */\n settings: z.object({ unauthorizedFeedback: z.boolean() }).strict(),\n /** Present when a channel was requested. */\n channel: z\n .object({\n kind: z.enum(['internal', 'direct', 'group']),\n /** The channel is an external group where commands must address the account. */\n requiresMention: z.boolean(),\n bareCommands: z.boolean(),\n })\n .strict()\n .optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n executeCommand: defineContract({\n method: 'POST',\n path: '/api/commands/execute',\n params: EmptyParamsSchema,\n request: z\n .object({ channelId: ChannelIdSchema, text: z.string().min(1).max(16000), requestId: z.string().min(1).max(200) })\n .strict(),\n response: CommandExecutionRecordSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n getCommandExecution: defineContract({\n method: 'GET',\n path: '/api/commands/executions/:executionId',\n params: z.object({ executionId: z.string().min(1) }).strict(),\n request: NoRequestBodySchema,\n response: CommandExecutionRecordSchema,\n error: HostApiErrorSchema,\n }),\n setCommandPolicy: defineContract({\n method: 'PUT',\n path: '/api/commands/policy',\n params: EmptyParamsSchema,\n request: z\n .object({\n scope: z.union([z.literal('global'), ChannelIdSchema]),\n name: z.string().min(1),\n policy: CommandPolicySchema,\n })\n .strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n listCommandMembers: defineContract({\n method: 'GET',\n path: '/api/commands/members/:channelId',\n params: z.object({ channelId: ChannelIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n members: z.array(\n z\n .object({\n identityId: PlatformIdentityIdSchema,\n displayName: z.string(),\n platformUserId: z.string(),\n authorized: z.boolean(),\n })\n .strict(),\n ),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n setCommandSettings: defineContract({\n method: 'PUT',\n path: '/api/commands/settings',\n params: EmptyParamsSchema,\n request: z.object({ unauthorizedFeedback: z.boolean() }).strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n setCommandChannelSettings: defineContract({\n method: 'PUT',\n path: '/api/commands/channel-settings',\n params: EmptyParamsSchema,\n request: z.object({ channelId: ChannelIdSchema, bareCommands: z.boolean() }).strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n setCommandGrant: defineContract({\n method: 'PUT',\n path: '/api/commands/grants',\n params: EmptyParamsSchema,\n request: z\n .object({ channelId: ChannelIdSchema, identityId: PlatformIdentityIdSchema, enabled: z.boolean() })\n .strict(),\n response: z.object({ saved: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n queryLogs: defineContract({\n method: 'GET',\n path: '/api/logs',\n params: z.object({ query: z.string().max(32_768).optional() }).strict(),\n request: NoRequestBodySchema,\n response: hostLogPageSchema,\n error: HostApiErrorSchema,\n }),\n getLog: defineContract({\n method: 'GET',\n path: '/api/logs/:id',\n params: z.object({ id: z.string().min(1).max(256) }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ entry: hostLogEntrySchema }).strict(),\n error: HostApiErrorSchema,\n }),\n logSources: defineContract({\n method: 'GET',\n path: '/api/logs/sources',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ sources: z.array(hostLogSourceSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n logStatus: defineContract({\n method: 'GET',\n path: '/api/logs/status',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: hostLogStatusSchema,\n error: HostApiErrorSchema,\n }),\n logSettings: defineContract({\n method: 'GET',\n path: '/api/logs/settings',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: hostLogSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateLogSettings: defineContract({\n method: 'PUT',\n path: '/api/logs/settings',\n params: EmptyParamsSchema,\n request: hostLogSettingsSchema,\n response: hostLogSettingsSchema,\n error: HostApiErrorSchema,\n }),\n startLogDebug: defineContract({\n method: 'POST',\n path: '/api/logs/debug',\n params: EmptyParamsSchema,\n request: hostLogDebugRequestSchema,\n response: z.object({ lease: hostLogDebugLeaseSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n stopLogDebug: defineContract({\n method: 'DELETE',\n path: '/api/logs/debug/:id',\n params: z.object({ id: z.string().min(1).max(256) }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ stopped: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n retryRuntimeCompatibility: defineContract({\n method: 'POST',\n path: '/api/runtime/compatibility/retry',\n params: EmptyParamsSchema,\n request: z\n .object({ objectKind: RuntimeCompatibilityDiagnosticSchema.shape.objectKind, objectId: z.string().min(1) })\n .strict(),\n response: z.object({ diagnostics: z.array(RuntimeCompatibilityDiagnosticSchema) }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n snapshot: defineContract({\n method: 'GET',\n path: '/api/snapshot',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: HostSnapshotSchema,\n error: HostApiErrorSchema,\n }),\n getAuthoringTask: defineContract({\n method: 'GET',\n path: '/api/authoring/tasks/:taskId',\n params: authoringTaskParam,\n request: NoRequestBodySchema,\n response: z\n .object({\n task: AuthoringTaskSummarySchema,\n attempts: z.array(AuthoringAttemptSummarySchema),\n /**\n * Test configuration of this task's dynamic runs: fields of the latest candidate the user can type, which\n * credentials are set, the user's values and the values the agent provided.\n */\n testConfig: z\n .object({\n fields: z.array(\n z.object({ key: z.string(), title: z.string(), kind: z.enum(['secret', 'string', 'number']) }).strict(),\n ),\n configured: z.array(z.string()),\n values: z.record(z.string(), z.union([z.string(), z.number()])),\n agentValues: z.record(z.string(), JsonValueSchema),\n /** Secret fields bound to a named credential, by the user or else by the agent. */\n boundCredentials: BoundCredentialsSchema.optional(),\n })\n .strict()\n .optional(),\n events: z.array(\n z\n .object({\n sequence: z.number().int().positive(),\n kind: z.string(),\n attemptId: AuthoringAttemptIdSchema.optional(),\n payload: JsonValueSchema,\n createdAt: z.number().int().nonnegative(),\n })\n .strict(),\n ),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n decideAuthoringAttempt: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/attempts/:attemptId/decision',\n params: authoringAttemptParam,\n request: z\n .object({ expectedRevision: z.number().int().positive(), approved: z.boolean(), approveRiskStable: z.boolean() })\n .strict(),\n response: z\n .object({ accepted: z.boolean(), taskRevision: z.number().int().positive(), executionRequired: z.boolean() })\n .strict(),\n error: HostApiErrorSchema,\n }),\n restoreAuthoringAttempt: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/attempts/:attemptId/restore',\n params: authoringAttemptParam,\n request: z.object({ expectedRevision: z.number().int().positive() }).strict(),\n response: AuthoringTaskSummarySchema,\n error: HostApiErrorSchema,\n }),\n stopAuthoringTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/stop',\n params: authoringTaskParam,\n request: z.object({ expectedRevision: z.number().int().positive() }).strict(),\n response: AuthoringTaskSummarySchema,\n error: HostApiErrorSchema,\n }),\n setAuthoringTestConfig: defineContract({\n method: 'PUT',\n path: '/api/authoring/tasks/:taskId/test-secrets',\n params: authoringTaskParam,\n request: z\n .object({\n secrets: z.record(z.string(), z.string().max(8192)),\n /** Text and number values; an empty string goes back to the agent's value or the default. */\n values: z.record(z.string(), z.union([z.string().max(8192), z.number()])).optional(),\n /** Secret fields to bind to named credentials instead of a typed value; `null` leaves the field unset. */\n credentialBindings: CredentialBindingsRequestSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n configured: z.array(z.string()),\n values: z.record(z.string(), z.union([z.string(), z.number()])),\n boundCredentials: BoundCredentialsSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n deleteAuthoringTask: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/authoring/tasks/:taskId',\n params: authoringTaskParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n pauseScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/scheduled-tasks/:taskId/pause',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n response: ScheduledTaskSchema,\n error: HostApiErrorSchema,\n }),\n resumeScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/scheduled-tasks/:taskId/resume',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n response: ScheduledTaskSchema,\n error: HostApiErrorSchema,\n }),\n runScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/scheduled-tasks/:taskId/run',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n /** `woke: false` when the owning extension's due-job handler let this run pass without waking the agent. */\n response: z.object({ task: ScheduledTaskSchema, woke: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteScheduledTask: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/scheduled-tasks/:taskId',\n params: scheduledTaskParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n listClientNotifications: defineContract({\n method: 'GET',\n path: '/api/client-notifications',\n params: z.object({ cursor: z.number().int().nonnegative().optional() }).strict(),\n request: NoRequestBodySchema,\n response: ClientNotificationFeedResponseSchema,\n error: HostApiErrorSchema,\n }),\n updateNotificationSettings: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/notifications',\n params: EmptyParamsSchema,\n request: UpdateNotificationSettingsRequestSchema,\n response: NotificationSettingsViewSchema,\n error: HostApiErrorSchema,\n }),\n testBarkNotification: defineContract({\n method: 'POST',\n path: '/api/settings/notifications/test',\n params: EmptyParamsSchema,\n request: TestBarkNotificationRequestSchema,\n response: z.object({ sent: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n testSystemNotification: defineContract({\n method: 'POST',\n path: '/api/settings/notifications/test-system',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ published: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n listPlatformUsers: defineContract({\n method: 'GET',\n path: '/api/platform-users',\n params: z\n .object({\n query: z.string().trim().max(80).optional(),\n adapterKey: z.string().trim().min(1).max(120).optional(),\n connectionId: ConnectionIdSchema.optional(),\n cursor: PlatformIdentityIdSchema.optional(),\n limit: z.number().int().min(1).max(100).default(50),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: PlatformUserListResponseSchema,\n error: HostApiErrorSchema,\n }),\n listConnectionEvents: defineContract({\n method: 'GET',\n path: '/api/connections/:connectionId/events',\n params: z\n .object({\n connectionId: ConnectionIdSchema,\n beforeReceivedAt: z.number().int().safe().nonnegative().optional(),\n beforeId: ConnectionEventIdSchema.optional(),\n limit: z.number().int().min(1).max(100).default(50),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: z.object({ events: z.array(HostConnectionEventSchema), hasMore: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n createAgent: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents',\n params: EmptyParamsSchema,\n request: CreateAgentRequestSchema,\n response: z\n .object({ agentId: AgentIdSchema, channelId: ChannelIdSchema, connectionId: ConnectionIdSchema })\n .strict(),\n error: HostApiErrorSchema,\n }),\n reviseAgent: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/revision',\n params: agentParam,\n request: ReviseAgentRequestSchema,\n response: z.object({ currentRevisionId: AgentRevisionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n updateAgentCapabilities: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/capabilities',\n params: agentParam,\n request: UpdateAgentCapabilitiesRequestSchema,\n response: z.object({ currentRevisionId: AgentRevisionIdSchema, capabilities: AgentCapabilitiesSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteAgent: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/agents/:agentId',\n params: agentParam,\n request: z\n .object({\n expectedCurrentRevisionId: AgentRevisionIdSchema,\n confirmationName: z.string().min(1).max(80),\n deleteAutoCreatedBuiltInChannels: z.boolean().default(true),\n /** Also remove `workspaces/<agentId>/` (files, development shell output, creation candidates). */\n deleteWorkspace: z.boolean().default(false),\n })\n .strict(),\n response: z\n .object({\n agentId: AgentIdSchema,\n deleted: z.literal(true),\n unboundChannelIds: z.array(ChannelIdSchema),\n deletedChannelIds: z.array(ChannelIdSchema),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n createInternalChannel: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/channels',\n params: EmptyParamsSchema,\n request: z.object({ displayName: z.string().trim().min(1).max(120) }).strict(),\n response: z.object({ channelId: ChannelIdSchema, connectionId: ConnectionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteChannel: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/channels/:channelId',\n params: channelParam,\n request: z.object({ expectedBoundAgentId: AgentIdSchema.nullable() }).strict(),\n response: z.object({ channelId: ChannelIdSchema, deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n createBinding: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/bindings',\n params: EmptyParamsSchema,\n request: z\n .object({\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema,\n triggerPolicy: TriggerPolicySchema,\n processingFeedback: z.enum(['auto', 'off']).optional(),\n /** Messages from another local agent's account: `observe` keeps them as context unless they @ this agent. */\n localAgentMessages: z.enum(['observe', 'trigger']).optional(),\n activityTriggerOverrides: ActivityTriggerOverridesSchema.optional(),\n /** Omitted keeps the binding's current timing; `{}` resets every field to its default. */\n responseTiming: ResponseTimingSettingsSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n channelId: ChannelIdSchema,\n agentId: AgentIdSchema,\n triggerPolicy: TriggerPolicySchema,\n paused: z.boolean().default(false),\n processingFeedback: z.enum(['auto', 'off']).default('auto'),\n localAgentMessages: z.enum(['observe', 'trigger']).optional(),\n activityTriggerOverrides: ActivityTriggerOverridesSchema.default({}),\n responseTiming: ResponseTimingSettingsSchema.optional(),\n boundAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n clearBinding: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/bindings/:channelId',\n params: channelParam,\n request: NoRequestBodySchema,\n response: z.object({ channelId: ChannelIdSchema, cleared: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n putWorkTreeOrder: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/work-tree-order',\n params: EmptyParamsSchema,\n request: WorkTreeOrderSchema,\n response: WorkTreeOrderSchema,\n error: HostApiErrorSchema,\n }),\n getChannelListView: defineContract({\n method: 'GET',\n path: '/api/channel-list-view',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: ChannelListViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelListView: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/channel-list-view',\n params: EmptyParamsSchema,\n request: ChannelListViewSchema,\n response: ChannelListViewSchema,\n error: HostApiErrorSchema,\n }),\n listChannelMessages: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/messages',\n params: z\n .object({\n channelId: ChannelIdSchema,\n limit: z.number().int().min(1).max(100),\n beforeOccurredAt: z.number().int().safe().nonnegative().optional(),\n beforeSourceId: NonEmptyStringSchema.optional(),\n })\n .strict()\n .refine(\n (value) => (value.beforeOccurredAt === undefined) === (value.beforeSourceId === undefined),\n '频道历史游标必须完整提供。',\n ),\n request: NoRequestBodySchema,\n response: z\n .object({ messages: z.array(HostSnapshotMessageSchema), hasMore: z.boolean(), cursor: HostSyncCursorSchema })\n .strict(),\n error: HostApiErrorSchema,\n }),\n sendChannelMessage: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/messages',\n params: channelParam,\n request: SendChannelMessageRequestSchema,\n response: z\n .object({\n inserted: z.boolean(),\n channelEventId: ChannelEventIdSchema.optional(),\n outboundIntentId: OutboundIntentIdSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n uploadChannelAsset: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/assets',\n params: channelParam,\n request: BinaryUploadRequestSchema,\n encodeRequest: (input) => ({\n body: input.bytes,\n headers: {\n 'content-type': 'application/octet-stream',\n 'x-file-name': encodeURIComponent(input.fileName ?? '附件'),\n },\n }),\n response: z\n .object({\n assetId: AssetIdSchema,\n mediaType: z.string().min(1),\n byteSize: z.number().int().nonnegative(),\n fileName: z.string().min(1).max(255),\n partType: z.enum(['image', 'file']),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n deleteChannelAsset: defineContract({\n method: 'DELETE',\n path: '/api/channels/:channelId/assets/:assetId',\n params: z.object({ channelId: ChannelIdSchema, assetId: AssetIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ assetId: AssetIdSchema, revoked: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n renameChannel: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/channels/:channelId/display-name',\n params: channelParam,\n /** Empty selects the known platform name for an external channel. */\n request: z.object({ displayName: z.string().trim().max(120) }).strict(),\n response: z.object({ channelId: ChannelIdSchema, displayName: z.string().trim().min(1).max(120) }).strict(),\n error: HostApiErrorSchema,\n }),\n getChannelRuntime: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelRuntimeProjectionSchema.extend({ cursor: HostSyncCursorSchema }),\n error: HostApiErrorSchema,\n }),\n getChannelToolCall: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime/tools/:callId',\n params: z.object({ channelId: ChannelIdSchema, callId: z.string().trim().min(1).max(200) }).strict(),\n request: NoRequestBodySchema,\n // The full arguments and result of one tool call in the live session; the runtime projection only carries previews.\n // `available: false` when the session has left memory: the step keeps its preview, which is not an error.\n response: z\n .object({\n callId: z.string(),\n available: z.boolean(),\n name: z.string().optional(),\n input: z.string().optional(),\n result: z.string().optional(),\n inputTruncated: z.boolean(),\n resultTruncated: z.boolean(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getChannelRuntimeContext: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime/context',\n params: channelParam,\n request: NoRequestBodySchema,\n // What the live session sends the model: route, rendered instructions and tool schemas. Read on demand; the runtime\n // projection pushed over SSE never carries it. `available: false` when no session of the channel is in memory.\n response: ChannelRuntimeContextSchema,\n error: HostApiErrorSchema,\n }),\n listSubConversations: defineContract({\n method: 'GET',\n path: '/api/sub-conversations/channels/:channelId',\n params: channelParam,\n request: NoRequestBodySchema,\n response: z.object({ items: z.array(SubConversationSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n getSubConversationRuntime: defineContract({\n method: 'GET',\n path: '/api/sub-conversations/:conversationId/runtime',\n params: subConversationParam,\n request: NoRequestBodySchema,\n // Read from memory while it runs and from its stored log after it ended.\n response: z.object({ conversation: SubConversationSchema, runtime: ChannelRuntimeProjectionSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n closeSubConversation: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/sub-conversations/:conversationId/close',\n params: subConversationParam,\n request: z.object({}).strict(),\n response: SubConversationSchema,\n error: HostApiErrorSchema,\n }),\n deleteSubConversation: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/sub-conversations/:conversationId',\n params: subConversationParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n getSubConversationSettings: defineContract({\n method: 'GET',\n path: '/api/settings/sub-conversations',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: SubConversationSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateSubConversationSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/sub-conversations',\n params: EmptyParamsSchema,\n request: SubConversationSettingsSchema,\n response: SubConversationSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getChannelRuntimeInput: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/runtime/inputs/:messageId',\n params: z.object({ channelId: ChannelIdSchema, messageId: z.string().trim().min(1).max(200) }).strict(),\n request: NoRequestBodySchema,\n // The full text of one input message as the model received it; the runtime projection only carries a preview.\n // `available: false` when the session has left memory.\n response: z\n .object({\n messageId: z.string(),\n available: z.boolean(),\n source: z.string().optional(),\n text: z.string().optional(),\n truncated: z.boolean(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getChannelPrompt: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/prompt',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelPromptViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelPrompt: defineContract({\n method: 'PUT',\n path: '/api/channels/:channelId/prompt',\n params: channelParam,\n request: z\n .object({\n kind: z.enum(['instructions', 'notes']),\n document: PromptDocumentV1Schema,\n /** Notes only; ignored for instructions. */\n locked: z.boolean(),\n /** The revision the edit started from; a newer stored revision rejects the save. */\n expectedRevision: z.number().int().nonnegative(),\n })\n .strict(),\n response: ChannelPromptViewSchema,\n error: HostApiErrorSchema,\n }),\n getProductUpdates: defineContract({\n method: 'GET',\n path: '/api/product/updates',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: ProductUpdateStatusSchema,\n error: HostApiErrorSchema,\n }),\n checkProductUpdates: defineContract({\n method: 'POST',\n path: '/api/product/updates/check',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: ProductUpdateStatusSchema,\n error: HostApiErrorSchema,\n }),\n updateProductUpdateSettings: defineContract({\n method: 'PUT',\n path: '/api/product/updates/settings',\n params: EmptyParamsSchema,\n request: z.object({ autoCheck: z.boolean() }).strict(),\n response: ProductUpdateStatusSchema,\n error: HostApiErrorSchema,\n }),\n getMessagePacingSettings: defineContract({\n method: 'GET',\n path: '/api/settings/message-pacing',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: MessagePacingSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateMessagePacingSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/message-pacing',\n params: EmptyParamsSchema,\n request: MessagePacingSettingsSchema,\n response: MessagePacingSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getCompactionSettings: defineContract({\n method: 'GET',\n path: '/api/settings/compaction',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CompactionSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateCompactionSettings: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/compaction',\n params: EmptyParamsSchema,\n request: CompactionSettingsSchema,\n response: CompactionSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getModelFallbackSettings: defineContract({\n method: 'GET',\n path: '/api/settings/model-fallback',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: ModelFallbackSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateModelFallbackSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/model-fallback',\n params: EmptyParamsSchema,\n request: ModelFallbackSettingsSchema,\n response: ModelFallbackSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getUpgradeBackupSettings: defineContract({\n method: 'GET',\n path: '/api/settings/upgrade-backup',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: UpgradeBackupSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateUpgradeBackupSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/upgrade-backup',\n params: EmptyParamsSchema,\n request: z\n .object({ mode: UpgradeBackupModeSchema, directory: z.string().trim().min(1).max(1024).optional() })\n .strict(),\n response: UpgradeBackupSettingsSchema,\n error: HostApiErrorSchema,\n }),\n getRetrievalStatus: defineContract({\n method: 'GET',\n path: '/api/settings/retrieval',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: RetrievalStatusSchema,\n error: HostApiErrorSchema,\n }),\n updateRetrievalMode: defineContract({\n method: 'PUT',\n path: '/api/settings/retrieval',\n params: EmptyParamsSchema,\n request: z.object({ mode: RetrievalModeSchema }).strict(),\n response: RetrievalStatusSchema,\n error: HostApiErrorSchema,\n }),\n getSpeechSettings: defineContract({\n method: 'GET',\n path: '/api/settings/speech',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: SpeechSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateSpeechSettings: defineContract({\n method: 'PUT',\n path: '/api/settings/speech',\n params: EmptyParamsSchema,\n request: z.object({ cloud: SpeechCloudSettingsSchema.nullable() }).strict(),\n response: SpeechSettingsSchema,\n error: HostApiErrorSchema,\n }),\n listAddons: defineContract({\n method: 'GET',\n path: '/api/addons',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ addons: z.array(AddonStatusSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n installAddonProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/addons/:id/providers/:provider/install',\n params: z.object({ id: AddonIdSchema, provider: NonEmptyStringSchema }).strict(),\n request: NoRequestBodySchema,\n response: AddonStatusSchema,\n error: HostApiErrorSchema,\n }),\n removeAddonProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/addons/:id/providers/:provider',\n params: z.object({ id: AddonIdSchema, provider: NonEmptyStringSchema }).strict(),\n request: NoRequestBodySchema,\n response: AddonStatusSchema,\n error: HostApiErrorSchema,\n }),\n selectAddonProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/addons/:id/selection',\n params: z.object({ id: AddonIdSchema }).strict(),\n request: z.object({ provider: NonEmptyStringSchema }).strict(),\n response: AddonStatusSchema,\n error: HostApiErrorSchema,\n }),\n getLinkedAccounts: defineContract({\n method: 'GET',\n path: '/api/settings/linked-accounts',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: LinkedAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n addLinkedAccount: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/settings/linked-accounts',\n params: EmptyParamsSchema,\n request: AddLinkedAccountRequestSchema,\n response: LinkedAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n replaceLinkedAccountToken: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/linked-accounts/:accountId/token',\n params: linkedAccountParam,\n request: ReplaceLinkedAccountTokenRequestSchema,\n response: LinkedAccountsViewSchema,\n error: HostApiErrorSchema,\n }),\n removeLinkedAccount: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/settings/linked-accounts/:accountId/remove',\n params: linkedAccountParam,\n request: RemoveLinkedAccountRequestSchema,\n response: RemoveLinkedAccountResultSchema,\n error: HostApiErrorSchema,\n }),\n getLinkedAccountUses: defineContract({\n method: 'GET',\n path: '/api/settings/linked-accounts/:accountId/uses',\n params: linkedAccountParam,\n request: NoRequestBodySchema,\n response: LinkedAccountUsesViewSchema,\n error: HostApiErrorSchema,\n }),\n getCredentials: defineContract({\n method: 'GET',\n path: '/api/settings/credentials',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CredentialsViewSchema,\n error: HostApiErrorSchema,\n }),\n createCredential: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/settings/credentials',\n params: EmptyParamsSchema,\n request: CreateCredentialRequestSchema,\n response: CredentialsViewSchema,\n error: HostApiErrorSchema,\n }),\n updateCredential: defineContract({\n invalidatesSnapshot: true,\n method: 'PATCH',\n path: '/api/settings/credentials/:credentialId',\n params: credentialParam,\n request: UpdateCredentialRequestSchema,\n response: CredentialsViewSchema,\n error: HostApiErrorSchema,\n }),\n replaceCredentialValue: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/credentials/:credentialId/value',\n params: credentialParam,\n request: ReplaceCredentialValueRequestSchema,\n response: CredentialsViewSchema,\n error: HostApiErrorSchema,\n }),\n removeCredential: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/settings/credentials/:credentialId/remove',\n params: credentialParam,\n request: RemoveCredentialRequestSchema,\n response: RemoveCredentialResultSchema,\n error: HostApiErrorSchema,\n }),\n getCredentialUses: defineContract({\n method: 'GET',\n path: '/api/settings/credentials/:credentialId/uses',\n params: credentialParam,\n request: NoRequestBodySchema,\n response: CredentialUsesViewSchema,\n error: HostApiErrorSchema,\n }),\n dismissCredentialRequest: defineContract({\n method: 'DELETE',\n path: '/api/settings/credentials/requests/:requestId',\n params: z.object({ requestId: NonEmptyStringSchema.max(64) }).strict(),\n request: NoRequestBodySchema,\n response: CredentialsViewSchema,\n error: HostApiErrorSchema,\n }),\n setModelProviderAccess: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/settings/credentials/model-providers/:provider',\n params: z.object({ provider: NonEmptyStringSchema.max(128) }).strict(),\n request: SetModelProviderAccessRequestSchema,\n response: CredentialsViewSchema,\n error: HostApiErrorSchema,\n }),\n getChannelMemberNotes: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/member-notes',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelMemberNotesViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelMemberNote: defineContract({\n method: 'PUT',\n path: '/api/channels/:channelId/member-notes/:memberId',\n params: z.object({ channelId: ChannelIdSchema, memberId: ChannelMemberIdSchema }).strict(),\n /** An empty text forgets the member. */\n request: z.object({ text: z.string().max(2000) }).strict(),\n response: ChannelMemberNotesViewSchema,\n error: HostApiErrorSchema,\n }),\n getChannelContextPolicy: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/context-policy',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelContextPolicyViewSchema,\n error: HostApiErrorSchema,\n }),\n updateChannelContextPolicy: defineContract({\n method: 'PUT',\n path: '/api/channels/:channelId/context-policy',\n params: channelParam,\n /** `null` returns the channel to the defaults. */\n request: z.object({ policy: ChannelContextPolicySchema.nullable() }).strict(),\n response: ChannelContextPolicyViewSchema,\n error: HostApiErrorSchema,\n }),\n resetChannelContext: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/channels/:channelId/context-reset',\n params: channelParam,\n request: z\n .object({\n mode: z.enum(['clear', 'compact']),\n expectedEpisodeId: EpisodeIdSchema,\n })\n .strict(),\n response: z\n .object({\n mode: z.enum(['clear', 'compact']),\n closedEpisodeId: EpisodeIdSchema,\n nextEpisodeId: EpisodeIdSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n createConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections',\n params: EmptyParamsSchema,\n request: z\n .object({\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasInputSchema.optional(),\n configuration: z.record(z.string(), JsonValueSchema).default({}),\n credentials: z.record(z.string(), z.string().max(16 * 1024)).default({}),\n })\n .strict(),\n response: z.object({ connectionId: ConnectionIdSchema, adapterKey: NonEmptyStringSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n startConnectionLogin: defineContract({\n method: 'POST',\n path: '/api/connection-logins',\n params: EmptyParamsSchema,\n request: z\n .object({\n adapterKey: NonEmptyStringSchema,\n alias: ConnectionAliasInputSchema.optional(),\n connectionId: ConnectionIdSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n loginId: NonEmptyStringSchema,\n adapterKey: NonEmptyStringSchema,\n status: z.enum(['pending', 'scanned', 'confirmed', 'expired', 'failed', 'cancelled']),\n qrCodeUrl: NonEmptyStringSchema,\n message: z.string().optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getConnectionLogin: defineContract({\n method: 'GET',\n path: '/api/connection-logins/:loginId',\n params: z.object({ loginId: NonEmptyStringSchema }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n loginId: NonEmptyStringSchema,\n status: z.enum(['pending', 'scanned', 'confirmed', 'expired', 'failed', 'cancelled']),\n qrCodeUrl: NonEmptyStringSchema.optional(),\n connectionId: ConnectionIdSchema.optional(),\n adapterKey: NonEmptyStringSchema,\n message: z.string().optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n cancelConnectionLogin: defineContract({\n method: 'DELETE',\n path: '/api/connection-logins/:loginId',\n params: z.object({ loginId: NonEmptyStringSchema }).strict(),\n request: NoRequestBodySchema,\n response: z\n .object({\n loginId: NonEmptyStringSchema,\n status: z.literal('cancelled'),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n updateConnectionAlias: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/alias',\n params: connectionParam,\n request: z.object({ alias: z.string().trim().max(80) }).strict(),\n response: z\n .object({\n connectionId: ConnectionIdSchema,\n alias: ConnectionAliasOutputSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n updateConnectionActivityTriggerDefaults: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/activity-trigger-defaults',\n params: connectionParam,\n request: z.object({ activityKeys: z.array(AdapterActivityKeySchema) }).strict(),\n response: z.object({ connectionId: ConnectionIdSchema, activityKeys: z.array(AdapterActivityKeySchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateConnectionConfiguration: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/configuration',\n params: connectionParam,\n request: z\n .object({\n configuration: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])),\n /** Omitted keys keep their value; null explicitly clears an optional credential. */\n credentials: z.record(z.string().min(1), z.string().min(1).max(16_384).nullable()).optional(),\n })\n .strict(),\n response: z\n .object({\n connectionId: ConnectionIdSchema,\n configuration: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n deleteConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/connections/:connectionId',\n params: connectionParam,\n request: z.object({ deleteChannelData: z.boolean() }).strict(),\n response: z.object({ connectionId: ConnectionIdSchema, archived: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n restoreConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/restore',\n params: connectionParam,\n request: NoRequestBodySchema,\n response: z.object({ connectionId: ConnectionIdSchema, restored: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n dshPlugins: defineContract({\n method: 'GET',\n path: '/api/dsh/plugins',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ plugins: z.array(DshPluginCatalogEntrySchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectDshPluginTarball: defineContract({\n method: 'POST',\n timeoutMs: 300_000,\n path: '/api/dsh/plugin-installs/inspect-tarball',\n params: EmptyParamsSchema,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: DshPluginInstallInspectionSchema,\n error: HostApiErrorSchema,\n }),\n exportExtensionRevision: defineContract({\n method: 'GET',\n timeoutMs: 300_000,\n path: '/api/extensions/:extensionId/revisions/:revisionId/export',\n params: extensionRevisionParam,\n request: NoRequestBodySchema,\n responseFormat: 'bytes',\n response: z.instanceof(Uint8Array),\n error: HostApiErrorSchema,\n }),\n inspectDshPluginInstall: defineContract({\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/dsh/plugin-installs/inspect',\n params: EmptyParamsSchema,\n request: z.object({ spec: NonEmptyStringSchema.max(500), operationId: z.string().uuid().optional() }).strict(),\n response: DshPluginInstallInspectionSchema,\n error: HostApiErrorSchema,\n }),\n commitDshPluginInstall: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/dsh/plugin-installs',\n params: EmptyParamsSchema,\n request: z\n .object({\n token: NonEmptyStringSchema,\n approvedBuilds: z.array(NonEmptyStringSchema).default([]),\n operationId: z.string().uuid().optional(),\n })\n .strict(),\n response: z.object({ packageId: DshPluginPackageIdSchema, operationId: z.string().uuid().optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectDshPluginEntryConfig: defineContract({\n method: 'POST',\n path: '/api/dsh/plugin-entries/:entryId/config/inspect',\n params: dshPluginEntryParam,\n request: NoRequestBodySchema,\n response: z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('schema'), schema: JsonValueSchema }).strict(),\n z.object({ mode: z.literal('json') }).strict(),\n z.object({ mode: z.literal('incompatible'), reason: NonEmptyStringSchema }).strict(),\n ]),\n error: HostApiErrorSchema,\n }),\n activateDshPluginEntry: defineContract({\n method: 'PUT',\n path: '/api/dsh/plugin-entries/:entryId/activation',\n params: dshPluginEntryParam,\n request: z\n .object({\n target: z.enum(['host', 'agent']),\n agentId: AgentIdSchema.optional(),\n config: JsonValueSchema,\n permissionApproval: z\n .object({ permissionDigest: z.string().regex(/^[a-f0-9]{64}$/u) })\n .strict()\n .optional(),\n })\n .strict(),\n response: z.object({ targetKey: NonEmptyStringSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deactivateDshPluginEntry: defineContract({\n method: 'DELETE',\n path: '/api/dsh/plugin-entries/:entryId/activation',\n params: dshPluginEntryParam,\n request: z.object({ targetKey: NonEmptyStringSchema }).strict(),\n response: z.object({ disabled: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n setDshPluginImageSubmission: defineContract({\n method: 'PUT',\n path: '/api/dsh/plugin-installs/:packageId/image-submission',\n params: dshPluginPackageParam,\n request: z.object({ allowed: z.boolean() }).strict(),\n response: z.object({ allowed: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n removeDshPluginPackage: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/dsh/plugin-installs/:packageId',\n params: dshPluginPackageParam,\n request: NoRequestBodySchema,\n response: z.object({ removed: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectExtensionImport: defineContract({\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/imports/inspect',\n params: EmptyParamsSchema,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: ExtensionImportInspectionSchema,\n error: HostApiErrorSchema,\n }),\n /**\n * Management-edge endpoints: they exist only when the Server is reached through its management edge (a management\n * key is set); clients tell that from the edge's CSRF cookie.\n */\n listManagementDevices: defineContract({\n method: 'GET',\n path: '/api/management/devices',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ devices: z.array(ManagementDeviceViewSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n revokeManagementDevice: defineContract({\n method: 'DELETE',\n path: '/api/management/devices/:deviceId',\n params: z.object({ deviceId: ManagementDeviceIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ revoked: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n managementLogout: defineContract({\n method: 'DELETE',\n path: '/api/management/session',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ authenticated: z.literal(false) }).strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityStatus: defineContract({\n method: 'GET',\n path: '/api/community/status',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityStatusSchema,\n error: HostApiErrorSchema,\n }),\n getCommunityFeedbackSettings: defineContract({\n method: 'GET',\n path: '/api/community/feedback/settings',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityFeedbackSettingsSchema,\n error: HostApiErrorSchema,\n }),\n updateCommunityFeedbackSettings: defineContract({\n method: 'PUT',\n path: '/api/community/feedback/settings',\n params: EmptyParamsSchema,\n request: CommunityFeedbackSettingsUpdateSchema,\n response: CommunityFeedbackSettingsSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n listCommunityFeedback: defineContract({\n timeoutMs: 60_000,\n method: 'GET',\n path: '/api/community/feedback',\n params: z.object({ refresh: z.literal('1').optional() }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackLocalListSchema,\n error: HostApiErrorSchema,\n }),\n getCommunityFeedback: defineContract({\n timeoutMs: 60_000,\n method: 'GET',\n path: '/api/community/feedback/items/:ref',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n }),\n createCommunityFeedbackDraft: defineContract({\n method: 'POST',\n path: '/api/community/feedback/drafts',\n params: EmptyParamsSchema,\n request: CommunityFeedbackDraftInputSchema,\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n updateCommunityFeedbackDraft: defineContract({\n method: 'PUT',\n path: '/api/community/feedback/drafts/:draftId',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: CommunityFeedbackDraftUpdateSchema,\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n sendCommunityFeedbackDraft: defineContract({\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/community/feedback/drafts/:draftId/send',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: z.object({ consent: z.boolean().default(false) }).strict(),\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n discardCommunityFeedbackDraft: defineContract({\n method: 'DELETE',\n path: '/api/community/feedback/drafts/:draftId',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackDraftSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n previewCommunityFeedbackPayload: defineContract({\n method: 'GET',\n path: '/api/community/feedback/drafts/:draftId/preview',\n params: z.object({ draftId: CommunityFeedbackDraftIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityFeedbackPayloadSchema,\n error: HostApiErrorSchema,\n }),\n getLastSentCommunityFeedbackPayload: defineContract({\n method: 'GET',\n path: '/api/community/feedback/last-sent',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityFeedbackLastPayloadSchema,\n error: HostApiErrorSchema,\n }),\n replyCommunityFeedback: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/messages',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: z.object({ body: z.string().trim().min(1).max(4000) }).strict(),\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n withdrawCommunityFeedback: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/withdraw',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: CommunityFeedbackWithdrawSchema,\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n reopenCommunityFeedback: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/reopen',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: CommunityFeedbackReopenSchema,\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n markCommunityFeedbackAffected: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/affected',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: z.object({ affected: z.boolean().default(true), consent: z.boolean().default(false) }).strict(),\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n confirmCommunityFeedbackFixed: defineContract({\n method: 'POST',\n path: '/api/community/feedback/items/:ref/confirm-fixed',\n params: z.object({ ref: CommunityFeedbackRefSchema }).strict(),\n request: z.object({}).strict(),\n response: CommunityFeedbackSchema,\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n startCommunityLogin: defineContract({\n method: 'POST',\n path: '/api/community/login',\n params: EmptyParamsSchema,\n /** 浏览器当前访问本实例使用的来源;社区授权完成后回到 `<returnOrigin>/community/callback`。 */\n request: z.object({ returnOrigin: z.string().url().max(300) }).strict(),\n response: z.object({ authorizeUrl: z.string().url() }).strict(),\n error: HostApiErrorSchema,\n }),\n communityLogout: defineContract({\n method: 'DELETE',\n path: '/api/community/login',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityStatusSchema,\n error: HostApiErrorSchema,\n }),\n listCommunityExtensions: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/extensions',\n params: z\n .object({\n query: z.string().trim().max(80).optional(),\n provides: ExtensionProvideSchema.optional(),\n /** 只列社区后台认定的官方扩展。 */\n official: z.enum(['1']).optional(),\n /** 排序方式,默认最近更新;游标只在同一种排序下有效。 */\n sort: CommunityExtensionSortSchema.optional(),\n cursor: z.string().max(200).optional(),\n /** 跳过本机缓存,重新向社区读取。 */\n refresh: z.enum(['1']).optional(),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: z\n .object({ items: z.array(CommunityExtensionSummarySchema), nextCursor: z.string().nullable() })\n .extend(CommunityFreshnessSchema.shape)\n .strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityExtension: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/extensions/:extensionId',\n params: z.object({ extensionId: ExtensionIdSchema, refresh: z.enum(['1']).optional() }).strict(),\n request: NoRequestBodySchema,\n response: CommunityExtensionDetailSchema.extend(CommunityFreshnessSchema.shape),\n error: HostApiErrorSchema,\n }),\n /** 下载社区发布并按包摘要校验,结果与本地文件导入的检查相同,再经 `commitExtensionImport` 确认。 */\n getCommunityEndpoint: defineContract({\n method: 'GET',\n path: '/api/community/endpoint',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityEndpointSchema,\n error: HostApiErrorSchema,\n }),\n /** 修改社区地址;`url: null` 恢复为环境变量或默认地址。非加密的局域网地址需要确认风险。 */\n updateCommunityEndpoint: defineContract({\n method: 'PUT',\n path: '/api/community/endpoint',\n params: EmptyParamsSchema,\n request: z.object({ url: z.string().max(300).nullable(), acknowledgeInsecure: z.boolean() }).strict(),\n response: CommunityEndpointSchema,\n error: HostApiErrorSchema,\n }),\n testCommunityEndpoint: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/community/endpoint/test',\n params: EmptyParamsSchema,\n request: z.object({ url: z.string().max(300), acknowledgeInsecure: z.boolean() }).strict(),\n response: z\n .object({\n ok: z.boolean(),\n message: z.string(),\n name: z.string().optional(),\n environment: z.enum(['production', 'staging', 'development']).optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n listCommunitySync: defineContract({\n timeoutMs: 60_000,\n method: 'GET',\n path: '/api/community/sync',\n params: z.object({ refresh: z.enum(['1']).optional() }).strict(),\n request: NoRequestBodySchema,\n response: CommunitySyncSchema,\n error: HostApiErrorSchema,\n }),\n listCommunityMine: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/mine',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ items: z.array(CommunityMyExtensionSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityReleaseReview: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/releases/:releaseId/review',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: CommunityReviewReportSchema,\n error: HostApiErrorSchema,\n }),\n requestCommunityReview: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/community/releases/:releaseId/review',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n withdrawCommunityRelease: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/community/releases/:releaseId/withdraw',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n importCommunityRelease: defineContract({\n timeoutMs: 120_000,\n method: 'POST',\n path: '/api/community/releases/:releaseId/import',\n params: z.object({ releaseId: CommunityReleaseIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: ExtensionImportInspectionSchema,\n error: HostApiErrorSchema,\n }),\n publishToCommunity: defineContract({\n timeoutMs: 120_000,\n method: 'POST',\n path: '/api/community/publish',\n params: EmptyParamsSchema,\n request: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n notes: z.string().max(2000),\n /** 作者填写的条目信息;省略的字段不改动社区上已有的内容。 */\n listing: CommunityListingInputSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n releaseId: CommunityReleaseIdSchema,\n releaseNumber: z.number().int().positive(),\n reviewStatus: CommunityReviewStatusSchema,\n pageUrl: z.string().url(),\n reportUrl: z.string().url(),\n findings: z.array(z.object({ severity: z.string(), title: z.string() }).strict()),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n listCommunityPersonas: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/personas',\n params: z\n .object({\n query: z.string().trim().min(1).max(200).optional(),\n tag: z.string().trim().min(1).max(40).optional(),\n official: z.literal('1').optional(),\n cursor: z.string().min(1).max(500).optional(),\n /** 跳过本机缓存,重新向社区读取。 */\n refresh: z.enum(['1']).optional(),\n })\n .strict(),\n request: NoRequestBodySchema,\n response: z\n .object({ items: z.array(CommunityPersonaSummarySchema), nextCursor: z.string().nullable() })\n .extend(CommunityFreshnessSchema.shape)\n .strict(),\n error: HostApiErrorSchema,\n }),\n getCommunityPersona: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/personas/:personaId',\n params: z.object({ personaId: CommunityPersonaIdSchema, refresh: z.enum(['1']).optional() }).strict(),\n request: NoRequestBodySchema,\n response: CommunityPersonaDetailSchema.extend(CommunityFreshnessSchema.shape),\n error: HostApiErrorSchema,\n }),\n /**\n * 把社区人设装进本机:新建一个智能体,或为现有智能体保存一次只换设定(及可选名称)的新配置。头像下载后作为\n * 智能体头像;下载失败不影响安装。`expectedRevisionId` 是用户看过的修订,社区已更新时拒绝,避免装入未看过的内容。\n */\n installCommunityPersona: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/community/personas/:personaId/install',\n params: z.object({ personaId: CommunityPersonaIdSchema }).strict(),\n request: z.discriminatedUnion('target', [\n z\n .object({\n target: z.literal('new'),\n expectedRevisionId: CommunityPersonaRevisionIdSchema,\n displayName: z.string().trim().min(1).max(80),\n model: AgentModelSchema,\n useAvatar: z.boolean(),\n })\n .strict(),\n z\n .object({\n target: z.literal('replace'),\n expectedRevisionId: CommunityPersonaRevisionIdSchema,\n agentId: AgentIdSchema,\n expectedCurrentRevisionId: AgentRevisionIdSchema,\n /** 同时改名;省略时保留原名称。 */\n displayName: z.string().trim().min(1).max(80).optional(),\n useAvatar: z.boolean(),\n })\n .strict(),\n ]),\n response: z\n .object({\n agentId: AgentIdSchema,\n channelId: ChannelIdSchema.nullable(),\n currentRevisionId: AgentRevisionIdSchema,\n avatar: z.enum(['applied', 'none', 'failed']),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n listCommunityMyPersonas: defineContract({\n timeoutMs: 30_000,\n method: 'GET',\n path: '/api/community/mine/personas',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: CommunityMyPersonasSchema,\n error: HostApiErrorSchema,\n }),\n /** 把智能体的设定分享到社区;带 `personaId` 时更新自己已发布的人设(生成新修订并重新审查)。 */\n publishCommunityPersona: defineContract({\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/community/personas/publish',\n params: EmptyParamsSchema,\n request: z\n .object({\n agentId: AgentIdSchema,\n personaId: CommunityPersonaIdSchema.optional(),\n name: z.string().trim().min(1).max(80),\n summary: z.string().trim().min(1).max(200),\n description: z.string().max(20_000),\n tags: z.array(z.string().trim().min(1).max(40)).max(16),\n persona: z.string().trim().min(1).max(COMMUNITY_PERSONA_MAX_LENGTH),\n notes: z.string().max(2000).optional(),\n /** 页面缩放后的头像(Base64);省略时不上传头像,更新时保留社区上的原头像。 */\n avatar: z\n .object({\n mediaType: z.enum(COMMUNITY_PERSONA_AVATAR_TYPES),\n base64: z\n .string()\n .min(1)\n .max(Math.ceil((512 * 1024 * 4) / 3) + 4),\n })\n .strict()\n .optional(),\n })\n .strict(),\n response: CommunityMyPersonaSchema,\n error: HostApiErrorSchema,\n }),\n testMcpServer: defineContract({\n timeoutMs: 30_000,\n method: 'POST',\n path: '/api/mcp-servers/test',\n params: EmptyParamsSchema,\n request: z.object({ server: McpServerFormSchema }).strict(),\n response: z\n .object({\n ok: z.boolean(),\n message: z.string(),\n serverName: z.string().optional(),\n tools: z.array(z.object({ name: z.string(), description: z.string().optional() }).strict()),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n createMcpExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 120_000,\n method: 'POST',\n path: '/api/mcp-servers',\n params: EmptyParamsSchema,\n request: z\n .object({\n displayName: z.string().trim().min(1).max(80),\n description: z.string().trim().max(500).default(''),\n server: McpServerFormSchema,\n })\n .strict(),\n response: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n /** Credential config fields created for the form's secret rows, by row name. */\n secretFields: z.array(z.object({ key: z.string(), name: z.string() }).strict()),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n commitExtensionImport: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/imports/:token/commit',\n params: z.object({ token: NonEmptyStringSchema }).strict(),\n request: z.object({ localSlug: z.string().trim().min(3).max(64).optional() }).strict(),\n response: z\n .object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema, idempotent: z.boolean() })\n .strict(),\n error: HostApiErrorSchema,\n }),\n dshSettings: defineContract({\n method: 'GET',\n path: '/api/dsh/settings',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ namespaces: z.array(DshSettingsNamespaceSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n dshSettingsMutate: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/dsh/settings/:namespace/mutate',\n params: dshSettingsParam,\n request: DshSettingsMutationRequestSchema,\n response: DshSettingsNamespaceSchema,\n error: HostApiErrorSchema,\n }),\n dshCredentialsDescribe: defineContract({\n method: 'POST',\n path: '/api/dsh/credentials/describe',\n params: EmptyParamsSchema,\n request: z.object({ refs: z.array(DshCredentialRefSchema).max(64) }).strict(),\n response: z.object({ credentials: z.record(z.string(), DshCredentialViewSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n dshCredentialSet: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/dsh/credentials/:ref',\n params: dshCredentialParam,\n request: z\n .object({\n value: z\n .string()\n .min(1)\n .max(64 * 1024),\n })\n .strict(),\n response: DshCredentialViewSchema,\n error: HostApiErrorSchema,\n }),\n dshCredentialUnset: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/dsh/credentials/:ref',\n params: dshCredentialParam,\n request: NoRequestBodySchema,\n response: DshCredentialViewSchema,\n error: HostApiErrorSchema,\n }),\n llmProviders: defineContract({\n method: 'GET',\n path: '/api/llm/providers',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n llmSubscriptionStatus: defineContract({\n method: 'GET',\n path: '/api/llm/subscriptions/:provider',\n params: llmProviderParam,\n request: NoRequestBodySchema,\n response: SubscriptionStatusSchema,\n error: HostApiErrorSchema,\n }),\n llmSubscriptionAction: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/llm/subscriptions/:provider',\n params: llmProviderParam,\n request: z.discriminatedUnion('action', [\n z.object({ action: z.literal('use-subscription'), expectedRevision: z.number().int().nonnegative() }).strict(),\n z.object({ action: z.enum(['login', 'cancel']) }).strict(),\n z.object({ action: z.literal('answer'), promptId: NonEmptyStringSchema, value: z.string().max(4096) }).strict(),\n z.object({ action: z.enum(['activate', 'remove']), accountId: NonEmptyStringSchema }).strict(),\n z\n .object({ action: z.literal('rename'), accountId: NonEmptyStringSchema, label: z.string().min(1).max(80) })\n .strict(),\n ]),\n response: z.object({ status: SubscriptionStatusSchema, revocationConfirmed: z.boolean().optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n llmDiscoverModels: defineContract({\n method: 'POST',\n path: '/api/llm/discover-models',\n params: EmptyParamsSchema,\n request: z\n .object({\n provider: NonEmptyStringSchema.optional(),\n settingsNs: NonEmptyStringSchema.optional(),\n baseURL: z.url().optional(),\n api: NonEmptyStringSchema.optional(),\n apiKey: z\n .string()\n .min(1)\n .max(64 * 1024)\n .optional(),\n })\n .strict(),\n response: z.object({ models: z.array(LlmDiscoveredModelSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n llmTestProvider: defineContract({\n method: 'POST',\n path: '/api/llm/test-provider',\n params: EmptyParamsSchema,\n request: z\n .object({\n provider: NonEmptyStringSchema,\n model: NonEmptyStringSchema,\n settingsNs: NonEmptyStringSchema.optional(),\n apiKey: z\n .string()\n .min(1)\n .max(64 * 1024)\n .optional(),\n baseURL: z.url().optional(),\n api: NonEmptyStringSchema.optional(),\n models: z.array(LlmDiscoveredModelSchema).optional(),\n })\n .strict(),\n response: z.object({ provider: NonEmptyStringSchema, model: NonEmptyStringSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n llmProviderRemovalImpact: defineContract({\n method: 'GET',\n path: '/api/llm/providers/:provider/removal-impact',\n params: llmProviderParam,\n request: NoRequestBodySchema,\n response: z\n .object({\n provider: NonEmptyStringSchema,\n displayName: NonEmptyStringSchema,\n declared: z.boolean(),\n expectedRevision: z.number().int().nonnegative(),\n models: z.array(NonEmptyStringSchema),\n blockedReason: z.string(),\n references: z.array(\n z\n .object({\n agentId: AgentIdSchema,\n displayName: NonEmptyStringSchema,\n model: NonEmptyStringSchema,\n role: z.enum(['primary', 'vision']),\n scope: z.enum(['configuration', 'context']),\n channelId: ChannelIdSchema.optional(),\n channelName: z.string().optional(),\n episodeStatus: z.enum(['opening', 'active']).optional(),\n })\n .strict(),\n ),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n llmRemoveProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/llm/providers/:provider',\n params: llmProviderParam,\n request: z.object({ expectedRevision: z.number().int().nonnegative() }).strict(),\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n llmRestoreProviderModels: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/llm/providers/:provider/restore-models',\n params: llmProviderParam,\n request: z.object({ expectedRevision: z.number().int().nonnegative() }).strict(),\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n llmSaveProvider: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/llm/providers/:provider',\n params: llmProviderParam,\n request: z\n .object({\n expectedRevision: z.number().int().nonnegative(),\n apiKey: z\n .string()\n .min(1)\n .max(64 * 1024)\n .optional(),\n displayName: z.string().trim().min(1).max(120).optional(),\n baseURL: z.url().optional(),\n api: NonEmptyStringSchema.optional(),\n models: z.array(LlmDiscoveredModelSchema).optional(),\n })\n .strict(),\n response: LlmProviderSettingsSchema,\n error: HostApiErrorSchema,\n }),\n testConnection: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/connections/:connectionId/test',\n params: connectionParam,\n request: z.object({ direction: z.enum(['send', 'receive']), channelId: ChannelIdSchema.optional() }).strict(),\n response: ConnectionTestResultSchema,\n error: HostApiErrorSchema,\n }),\n dynamicInventory: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/inventory',\n params: agentParam,\n request: z.object({ episodeId: EpisodeIdSchema }).strict(),\n response: z.object({ rows: z.array(DynamicInventoryRowSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicApprove: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/dynamic/:agentId/approve',\n params: agentParam,\n request: z\n .object({ episodeId: EpisodeIdSchema, requestId: DynamicIdSchema, pluginRunId: DynamicIdSchema.optional() })\n .strict(),\n response: z.object({ accepted: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicDecline: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/dynamic/:agentId/decline',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n requestId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema.optional(),\n /**\n * Why the run did not go ahead: the user declined it, or the page could not start one of its halves. A failed\n * half is settled as a failed attempt (its Host is retracted and the agent hears about it), not as a decline.\n */\n reason: z.enum(['rejected', 'host-half-failed', 'client-half-failed']).optional(),\n startedHere: z.boolean().optional(),\n message: z.string().max(4000).optional(),\n stack: z.string().max(16000).optional(),\n })\n .strict(),\n response: z.object({ accepted: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicInvoke: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/invoke',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n method: NonEmptyStringSchema,\n args: JsonValueSchema.optional(),\n })\n .strict(),\n response: z.discriminatedUnion('ok', [\n z.object({ ok: z.literal(true), value: JsonValueSchema }).strict(),\n z.object({ ok: z.literal(false), message: z.string() }).strict(),\n ]),\n error: HostApiErrorSchema,\n }),\n dynamicRunHostHalf: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/run-host-half',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n mode: z.enum(['run', 'update']),\n requestId: DynamicIdSchema.nullable().optional(),\n approveFutureVersions: z.boolean().default(false),\n })\n .strict(),\n response: z.discriminatedUnion('ok', [\n z\n .object({\n ok: z.literal(true),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n waitingFor: z.array(z.string()),\n startedHere: z.boolean(),\n })\n .strict(),\n DynamicErrorDetailsSchema.extend({ ok: z.literal(false) }),\n ]),\n error: HostApiErrorSchema,\n }),\n dynamicSettleUserRun: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/settle-user-run',\n params: agentParam,\n request: z\n .object({ episodeId: EpisodeIdSchema, pluginId: DynamicIdSchema, resolution: DynamicRunResolutionSchema })\n .strict(),\n response: DynamicRunResponseSchema,\n error: HostApiErrorSchema,\n }),\n dynamicGetClientCode: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/get-client-code',\n params: agentParam,\n request: z.object({ episodeId: EpisodeIdSchema, pluginId: DynamicIdSchema, pluginRunId: DynamicIdSchema }).strict(),\n response: z\n .object({\n code: z.string(),\n name: z.string(),\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n /** What the candidate declared; preview data hooks enforce exactly what the saved Revision will. */\n permissions: HostUiPermissionDeclarationSchema.default({ permissions: [], networkOrigins: [] }),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n dynamicReportRenderFailure: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/report-render-failure',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n failure: DynamicRenderFailureSchema,\n })\n .strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicReportGuardFailure: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/report-guard-failure',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n message: z.string().min(1).max(4096),\n stack: z\n .string()\n .max(16 * 1024)\n .optional(),\n })\n .strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n dynamicReportClientVerification: defineContract({\n method: 'POST',\n path: '/api/dynamic/:agentId/report-client-verification',\n params: agentParam,\n request: z\n .object({\n episodeId: EpisodeIdSchema,\n pluginId: DynamicIdSchema,\n packageId: DynamicIdSchema,\n pluginRunId: DynamicIdSchema,\n renderedPanels: z.array(PanelContributionSchema).max(16).default([]),\n renderedToolViews: z.array(z.string().trim().min(1).max(64)).max(32).default([]),\n renderedMessageRenderers: z.array(RichKindSchema).max(32).default([]),\n renderedPages: z.array(HostPageContributionSchema).max(8).default([]),\n usedUiComponents: z\n .array(HostUiKitComponentNameSchema)\n .max(HostUiKitComponentNameSchema.options.length)\n .default([]),\n pageGeometry: z.array(HostUiPageGeometryEvidenceSchema).max(8).default([]),\n navigationEntries: z.array(z.string().trim().min(1).max(64)).max(8).default([]),\n })\n .strict()\n .refine(\n (value) =>\n value.renderedPanels.length > 0 ||\n value.renderedToolViews.length > 0 ||\n value.renderedMessageRenderers.length > 0 ||\n value.renderedPages.length > 0,\n {\n message: '动态 Client 必须真实渲染至少一个面板、工具视图、富消息渲染器或页面。',\n },\n ),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n saveExtensionFromDynamic: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/save-from-dynamic',\n params: EmptyParamsSchema,\n request: z\n .object({\n taskId: AuthoringTaskIdSchema,\n /** The candidate the user saw; saving refuses when a newer one appeared since. */\n attemptId: AuthoringAttemptIdSchema,\n displayName: z.string().trim().min(1).max(80),\n slug: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$/u),\n description: z.string().max(500).default(''),\n targetExtensionId: ExtensionIdSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n extensionId: ExtensionIdSchema,\n revisionId: ExtensionRevisionIdSchema,\n activation: z.literal('inactive'),\n installation: z.literal('uninstalled').optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n extensionClientCall: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/call',\n params: extensionRevisionParam,\n /**\n * A panel's call to its extension's host instance. The Host checks the anchor (the agent has the extension\n * enabled; the channel or connection exists) and hands the extension the resolved caller.\n */\n request: z\n .object({\n /** Absent: the call comes from the extension itself, like a page call. */\n anchor: z.object({ kind: ExtensionPanelAnchorSchema, id: NonEmptyStringSchema }).strict().optional(),\n /** The agent the panel is shown for; must be the responding agent of an anchored channel. */\n agentId: AgentIdSchema.optional(),\n method: NonEmptyStringSchema,\n input: JsonValueSchema.optional(),\n })\n .strict(),\n response: z.object({ value: JsonValueSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n extensionClientDiagnostic: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/client-diagnostic',\n params: extensionRevisionParam,\n request: z\n .object({\n agentId: AgentIdSchema,\n status: z.enum(['loaded', 'failed']),\n message: z.string().max(4096).optional(),\n })\n .strict(),\n response: z.object({ accepted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n hostExtensionClientDiagnostic: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/host-client-diagnostic',\n params: extensionRevisionParam,\n request: z.object({ status: z.enum(['loaded', 'failed']), message: z.string().max(4096).optional() }).strict(),\n response: z.object({ accepted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n activateExtension: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/extensions/:extensionId/activation',\n params: agentExtensionParam,\n request: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n /** Approval of the agent-layer capabilities. */\n permissionApproval: PermissionApprovalSchema.optional(),\n /** Approval of the host layer when enabling also installs or switches the extension on this machine. */\n hostPermissionApproval: PermissionApprovalSchema.optional(),\n })\n .strict(),\n /**\n * The committed Activation, or — while the agent is still replying — `pending` with the accepted request; it then\n * takes effect at the agent's next safe gap and its progress appears in the snapshot's `activationTransitions`.\n */\n response: z\n .object({\n activation: z\n .object({\n agentId: AgentIdSchema,\n extensionId: ExtensionIdSchema,\n extensionRevisionId: ExtensionRevisionIdSchema,\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: BoundCredentialsSchema.optional(),\n activatedAt: z.number().int().safe().nonnegative(),\n })\n .strict()\n .optional(),\n pending: ExtensionActivationTransitionSchema.optional(),\n })\n .strict()\n .refine((value) => (value.activation === undefined) !== (value.pending === undefined), '启用结果必须二选一。'),\n error: HostApiErrorSchema,\n }),\n deactivateExtension: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/agents/:agentId/extensions/:extensionId/activation',\n params: agentExtensionParam,\n request: NoRequestBodySchema,\n /** `pending` is present when the agent is still replying; the Activation is removed at its next safe gap. */\n response: z.object({ disabled: z.literal(true), pending: ExtensionActivationTransitionSchema.optional() }).strict(),\n error: HostApiErrorSchema,\n }),\n putAgentOutboundOrder: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/agents/:agentId/outbound-order',\n params: agentParam,\n /** Every enabled extension that processes the agent's messages before sending, in the new order. */\n request: z.object({ extensionIds: z.array(ExtensionIdSchema).max(64) }).strict(),\n response: z.object({ extensionIds: z.array(ExtensionIdSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateExtensionActivationConfig: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/agents/:agentId/extensions/:extensionId/activation/config',\n params: agentExtensionParam,\n request: z\n .object({\n config: JsonValueSchema,\n /** Write-only credential drafts keyed by secret field; an absent or empty draft keeps the stored one. */\n secrets: z.record(z.string(), z.string().max(8192)).optional(),\n /** Secret fields to bind to named credentials instead of a typed value; a field takes one or the other. */\n credentialBindings: CredentialBindingsRequestSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: BoundCredentialsSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n updateHostExtensionConfig: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'PUT',\n path: '/api/extensions/:extensionId/installation/config',\n params: extensionParam,\n request: z\n .object({\n config: JsonValueSchema,\n /** Write-only credential drafts keyed by secret field; an absent or empty draft keeps the stored one. */\n secrets: z.record(z.string(), z.string().max(8192)).optional(),\n /** Secret fields to bind to named credentials instead of a typed value; a field takes one or the other. */\n credentialBindings: CredentialBindingsRequestSchema.optional(),\n })\n .strict(),\n response: z\n .object({\n config: JsonValueSchema,\n configuredSecrets: z.array(z.string()).optional(),\n boundCredentials: BoundCredentialsSchema.optional(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n /** Configuration history of one extension, newest first: the host layer and every agent's configuration. */\n getExtensionConfigVersions: defineContract({\n method: 'GET',\n path: '/api/extensions/:extensionId/config-versions',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ versions: z.array(ExtensionConfigVersionSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n /** Writes an earlier configuration again as a new version of the same layer (and agent). */\n revertExtensionConfig: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/config-versions/:versionId/revert',\n params: extensionConfigVersionParam,\n request: z.object({ reason: z.string().trim().max(500).optional() }).strict(),\n response: z.object({ version: ExtensionConfigVersionSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n installHostExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'PUT',\n path: '/api/extensions/:extensionId/installation',\n params: extensionParam,\n request: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n /** Approval of the host layer (browser permissions and `permissions.host`). */\n permissionApproval: PermissionApprovalSchema.optional(),\n /** Approval of expanded agent-layer capabilities for the agents that move to this Revision. */\n agentPermissionApproval: PermissionApprovalSchema.optional(),\n /** Data copy to put back first, when the target Revision only reads an older data version. */\n restoreDataSnapshotId: z.string().min(1).max(80).optional(),\n })\n .strict(),\n response: z\n .object({\n installation: z\n .object({\n extensionId: ExtensionIdSchema,\n extensionRevisionId: ExtensionRevisionIdSchema,\n installedAt: z.number().int().safe().nonnegative(),\n config: JsonValueSchema,\n })\n .strict(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n uninstallHostExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'DELETE',\n path: '/api/extensions/:extensionId/installation',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ uninstalled: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateHostUiPagePreferences: defineContract({\n invalidatesSnapshot: true,\n method: 'PUT',\n path: '/api/host-ui/page-preferences',\n params: EmptyParamsSchema,\n request: z\n .object({\n expectedRevision: z.number().int().nonnegative(),\n entries: z.array(z.object({ pageInstanceId: HostUiPageInstanceIdSchema, visible: z.boolean() }).strict()),\n })\n .strict(),\n response: z.object({ revision: z.number().int().positive() }).strict(),\n error: HostApiErrorSchema,\n }),\n callHostUiPage: defineContract({\n method: 'POST',\n path: '/api/host-ui/pages/:pageInstanceId/call',\n params: z.object({ pageInstanceId: HostUiPageInstanceIdSchema }).strict(),\n request: z.object({ method: NonEmptyStringSchema, input: JsonValueSchema.default({}) }).strict(),\n response: z.object({ value: JsonValueSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n reportHostUiPageDiagnostic: defineContract({\n method: 'POST',\n path: '/api/host-ui/pages/:pageInstanceId/diagnostic',\n params: z.object({ pageInstanceId: HostUiPageInstanceIdSchema }).strict(),\n request: z\n .object({\n status: z.enum(['ready', 'load-failed', 'navigation-failed', 'rpc-failed']),\n message: z.string().max(2000).optional(),\n })\n .strict(),\n response: z.object({ recorded: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n markChannelRead: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/read',\n params: channelParam,\n request: z\n .object({\n /** Defaults to the newest inbound fact visible now. */\n upTo: z\n .object({ occurredAt: z.number().int().safe().nonnegative(), sourceId: ChannelEventIdSchema })\n .strict()\n .optional(),\n })\n .strict(),\n response: z.object({ channelId: ChannelIdSchema, activity: ChannelActivitySummarySchema }).strict(),\n error: HostApiErrorSchema,\n }),\n listAttention: defineContract({\n method: 'GET',\n path: '/api/attention',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: AttentionListSchema,\n error: HostApiErrorSchema,\n }),\n dismissAttention: defineContract({\n method: 'POST',\n path: '/api/attention/:attentionId/dismiss',\n params: z.object({ attentionId: z.string().min(1).max(200) }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ dismissed: z.literal(true), revision: z.string().min(1) }).strict(),\n error: HostApiErrorSchema,\n }),\n dismissAttentionBatch: defineContract({\n method: 'POST',\n path: '/api/attention/dismiss',\n params: EmptyParamsSchema,\n request: z\n .object({\n ids: z.array(z.string().min(1).max(200)).max(200),\n /** Causes to keep quiet until they recover; new items of these causes are not shown meanwhile. */\n causes: z.array(z.string().min(1).max(200)).max(200),\n })\n .strict(),\n response: z.object({ dismissed: z.literal(true), revision: z.string().min(1) }).strict(),\n error: HostApiErrorSchema,\n }),\n getChannelPending: defineContract({\n method: 'GET',\n path: '/api/channels/:channelId/pending',\n params: channelParam,\n request: NoRequestBodySchema,\n response: ChannelPendingContextSchema,\n error: HostApiErrorSchema,\n }),\n stopChannelTask: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/stop',\n params: channelParam,\n request: z.object({ expectedEpisodeId: EpisodeIdSchema.optional() }).strict(),\n response: z\n .object({\n result: z.enum(['stopped', 'idle']),\n episodeId: EpisodeIdSchema.optional(),\n /** Admitted messages that were not yet consumed and remain queued for the next turn. */\n retainedPending: z.number().int().nonnegative(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n setChannelPaused: defineContract({\n method: 'POST',\n path: '/api/channels/:channelId/pause',\n params: channelParam,\n request: z.object({ paused: z.boolean() }).strict(),\n response: z.object({ paused: z.boolean(), changed: z.boolean(), stopped: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n invalidatesSnapshot: true,\n }),\n resolveOutbound: defineContract({\n method: 'POST',\n path: '/api/outbound/:outboundId/resolve',\n params: z.object({ outboundId: OutboundIntentIdSchema }).strict(),\n request: z.object({ action: z.enum(['retry', 'confirm-delivered']) }).strict(),\n response: z\n .object({\n outboundId: OutboundIntentIdSchema,\n action: z.enum(['retry', 'confirm-delivered']),\n deliveryState: z.enum(['planned', 'sending', 'sent', 'partially-sent', 'failed', 'unknown']),\n resolvedAt: z.number().int().safe().nonnegative(),\n })\n .strict(),\n error: HostApiErrorSchema,\n }),\n getChannelActivity: defineContract({\n method: 'GET',\n path: '/api/activity',\n params: ActivityQuerySchema,\n request: NoRequestBodySchema,\n response: ChannelActivitySeriesSchema,\n error: HostApiErrorSchema,\n }),\n listAgentRevisions: defineContract({\n method: 'GET',\n path: '/api/agents/:agentId/revisions',\n params: agentParam,\n request: NoRequestBodySchema,\n response: AgentRevisionHistorySchema,\n error: HostApiErrorSchema,\n }),\n restoreAgentRevision: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/revisions/:revisionId/restore',\n params: agentRevisionParam,\n request: z.object({ expectedCurrentRevisionId: AgentRevisionIdSchema }).strict(),\n response: z.object({ currentRevisionId: AgentRevisionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n updateAgentAppearance: defineContract({\n invalidatesSnapshot: true,\n method: 'PATCH',\n path: '/api/agents/:agentId/appearance',\n params: agentParam,\n request: z\n .object({\n hue: z.number().int().min(0).max(359).nullable().optional(),\n /** `null` removes the avatar; uploading uses `uploadAgentAvatar`. */\n avatarAssetId: z.null().optional(),\n })\n .strict(),\n response: z.object({ agentId: AgentIdSchema, appearance: AgentAppearanceSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n uploadAgentAvatar: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/agents/:agentId/avatar',\n params: agentParam,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: z.object({ agentId: AgentIdSchema, appearance: AgentAppearanceSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteLocalExtension: defineContract({\n invalidatesSnapshot: true,\n method: 'DELETE',\n path: '/api/extensions/:extensionId',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ deleted: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n getExtensionLineage: defineContract({\n method: 'GET',\n path: '/api/extensions/:extensionId/lineage',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: ExtensionLineageSchema,\n error: HostApiErrorSchema,\n }),\n setExtensionRevisionKept: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/:revisionId/keep',\n params: z.object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema }).strict(),\n request: z.object({ kept: z.boolean() }).strict(),\n response: z.object({ kept: z.boolean() }).strict(),\n error: HostApiErrorSchema,\n }),\n deleteExtensionRevisions: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/extensions/:extensionId/revisions/delete',\n params: extensionParam,\n request: z.object({ revisionIds: z.array(ExtensionRevisionIdSchema).min(1).max(200) }).strict(),\n response: z.object({ deleted: z.number().int().nonnegative() }).strict(),\n error: HostApiErrorSchema,\n }),\n branchExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/branch',\n params: extensionParam,\n request: z\n .object({\n revisionId: ExtensionRevisionIdSchema,\n name: z.string().trim().min(1).max(80),\n slug: z\n .string()\n .trim()\n .regex(/^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$/u)\n .optional(),\n copyData: z.boolean(),\n })\n .strict(),\n response: z.object({ extensionId: ExtensionIdSchema, revisionId: ExtensionRevisionIdSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n rollbackExtension: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/revert',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ message: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n getExtensionData: defineContract({\n method: 'GET',\n path: '/api/extensions/:extensionId/data',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: ExtensionDataStateSchema,\n error: HostApiErrorSchema,\n }),\n previewExtensionDataMigration: defineContract({\n timeoutMs: 60_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/data/preview',\n params: extensionParam,\n request: ExtensionDataMigrationInputSchema,\n response: ExtensionDataPreviewSchema,\n error: HostApiErrorSchema,\n }),\n migrateExtensionData: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/:extensionId/data/migrate',\n params: extensionParam,\n request: ExtensionDataMigrationInputSchema,\n response: z.object({ snapshotId: z.string(), preview: ExtensionDataPreviewSchema }).strict(),\n error: HostApiErrorSchema,\n }),\n exportExtensionData: defineContract({\n method: 'GET',\n timeoutMs: 300_000,\n path: '/api/extensions/:extensionId/data/export',\n params: extensionParam,\n request: NoRequestBodySchema,\n responseFormat: 'bytes',\n response: z.instanceof(Uint8Array),\n error: HostApiErrorSchema,\n }),\n /** The same package with the host and agent configuration; secrets are left out. */\n exportExtensionDataWithConfig: defineContract({\n method: 'GET',\n timeoutMs: 300_000,\n path: '/api/extensions/:extensionId/data/export-config',\n params: extensionParam,\n request: NoRequestBodySchema,\n responseFormat: 'bytes',\n response: z.instanceof(Uint8Array),\n error: HostApiErrorSchema,\n }),\n createExtensionDataSnapshot: defineContract({\n method: 'POST',\n path: '/api/extensions/:extensionId/data/snapshots',\n params: extensionParam,\n request: z.object({ label: z.string().trim().min(1).max(80) }).strict(),\n response: z.object({ snapshotId: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n inspectExtensionDataPackage: defineContract({\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extensions/data/inspect',\n params: EmptyParamsSchema,\n request: BinaryUploadRequestSchema,\n encodeRequest: encodeBinaryUpload,\n response: ExtensionDataPackageInspectionSchema,\n error: HostApiErrorSchema,\n }),\n listExtensionRequests: defineContract({\n method: 'GET',\n path: '/api/extension-requests',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ requests: z.array(ExtensionRequestSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n approveExtensionRequest: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/extension-requests/:number/approve',\n params: z.object({ number: z.coerce.number().int().positive() }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ message: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n rejectExtensionRequest: defineContract({\n method: 'POST',\n path: '/api/extension-requests/:number/reject',\n params: z.object({ number: z.coerce.number().int().positive() }).strict(),\n request: z.object({ reason: z.string().trim().max(500).optional() }).strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n listAdministrators: defineContract({\n method: 'GET',\n path: '/api/administrators',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ administrators: z.array(AdministratorSchema) }).strict(),\n error: HostApiErrorSchema,\n }),\n addAdministrator: defineContract({\n method: 'POST',\n path: '/api/administrators',\n params: EmptyParamsSchema,\n request: z.object({ identityId: PlatformIdentityIdSchema }).strict(),\n response: AdministratorSchema,\n error: HostApiErrorSchema,\n }),\n removeAdministrator: defineContract({\n method: 'POST',\n path: '/api/administrators/remove',\n params: EmptyParamsSchema,\n request: z.object({ connectionId: ConnectionIdSchema, platformUserId: z.string().min(1) }).strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n createAdministratorClaimCode: defineContract({\n method: 'POST',\n path: '/api/administrators/claim-code',\n params: EmptyParamsSchema,\n request: NoRequestBodySchema,\n response: z.object({ code: z.string(), expiresAt: z.number().int().nonnegative() }).strict(),\n error: HostApiErrorSchema,\n }),\n dismissCommunityRelease: defineContract({\n method: 'POST',\n path: '/api/community/sync/:extensionId/dismiss',\n params: extensionParam,\n request: z.object({ releaseId: CommunityReleaseIdSchema.nullable() }).strict(),\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n updateFromCommunity: defineContract({\n invalidatesSnapshot: true,\n timeoutMs: 300_000,\n method: 'POST',\n path: '/api/community/sync/:extensionId/update',\n params: extensionParam,\n request: NoRequestBodySchema,\n response: z.object({ message: z.string() }).strict(),\n error: HostApiErrorSchema,\n }),\n archiveAuthoringTask: defineContract({\n invalidatesSnapshot: true,\n method: 'POST',\n path: '/api/authoring/tasks/:taskId/archive',\n params: z.object({ taskId: AuthoringTaskIdSchema }).strict(),\n request: NoRequestBodySchema,\n response: z.object({ ok: z.literal(true) }).strict(),\n error: HostApiErrorSchema,\n }),\n} as const\n\nexport type HostApiContractName = keyof typeof HostApiContracts\nexport type HostApiParams<Name extends HostApiContractName> = z.input<(typeof HostApiContracts)[Name]['params']>\nexport type HostApiRequest<Name extends HostApiContractName> = z.input<(typeof HostApiContracts)[Name]['request']>\nexport type HostApiResponse<Name extends HostApiContractName> = z.output<(typeof HostApiContracts)[Name]['response']>\nexport type HostApiContractParams<Contract> = Contract extends {\n readonly params: z.ZodType<unknown, infer Input>\n}\n ? Input\n : never\nexport type HostApiContractRequest<Contract> = Contract extends {\n readonly request: z.ZodType<unknown, infer Input>\n}\n ? Input\n : never\nexport type HostApiContractResponse<Contract> = Contract extends {\n readonly response: z.ZodType<infer Output, unknown>\n}\n ? Output\n : never\n\nconst pathParameterPattern = /:([A-Za-z][A-Za-z0-9]*)/gu\n\n/** Build the transport URL only after all path/query parameters pass the shared schema. */\nconst buildValidatedHostApiPath = (\n contract: { readonly path: string; readonly params: AnySchema },\n input: unknown,\n): string => {\n const params = z.record(z.string(), z.unknown()).parse(contract.params.parse(input))\n const consumed = new Set<string>()\n const pathname = contract.path.replace(pathParameterPattern, (_placeholder, key: string) => {\n const value = params[key]\n if (typeof value !== 'string' && typeof value !== 'number') {\n throw new TypeError(`Host API path parameter ${key} must be a string or number.`)\n }\n consumed.add(key)\n return encodeURIComponent(String(value))\n })\n const query = new URLSearchParams()\n for (const [key, value] of Object.entries(params)) {\n if (consumed.has(key) || value === undefined) continue\n if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {\n throw new TypeError(`Host API query parameter ${key} must be a string, number, or boolean.`)\n }\n query.set(key, String(value))\n }\n const suffix = query.toString()\n return suffix ? `${pathname}?${suffix}` : pathname\n}\n\nexport function buildHostApiContractPath<Params extends AnySchema>(\n contract: { readonly path: string; readonly params: Params },\n input: unknown,\n): string {\n return buildValidatedHostApiPath(contract, input)\n}\n\nexport function buildHostApiPath<Name extends HostApiContractName>(name: Name, input: HostApiParams<Name>): string {\n return buildValidatedHostApiPath(HostApiContracts[name], input)\n}\nimport {\n CommunityFeedbackDraftIdSchema,\n CommunityFeedbackDraftInputSchema,\n CommunityFeedbackDraftSchema,\n CommunityFeedbackDraftUpdateSchema,\n CommunityFeedbackLastPayloadSchema,\n CommunityFeedbackLocalListSchema,\n CommunityFeedbackPayloadSchema,\n CommunityFeedbackSettingsSchema,\n CommunityFeedbackSettingsUpdateSchema,\n CommunityFeedbackSnapshotSchema,\n} from './community-feedback-host.js'\nimport {\n CommunityFeedbackRefSchema,\n CommunityFeedbackSchema,\n CommunityFeedbackWithdrawSchema,\n CommunityFeedbackReopenSchema,\n} from './community-feedback.js'\n"],"mappings":"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"}
|