@h-ai/ai 1.0.0-beta.6 → 1.0.0-beta.7

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/browser.d.ts CHANGED
@@ -1,12 +1,13 @@
1
- export { A as A2AAgentCardConfig, a as A2AApiKeySecurity, b as A2AAuthenticator, c as A2ACallOptions, d as A2ACallResult, e as A2ACallerIdentity, f as A2AConfig, g as A2AConfigSchema, h as A2AContextInfo, i as A2AHandleResult, j as A2AMessageRecord, k as A2AOperations, l as A2ASecurityConfig, m as A2ASkillConfigSchema, n as A2ATaskFilter, o as AIConfig, p as AIConfigInput, q as AIConfigSchema, r as AIFunctions, s as AIInitOptions, t as AIRelStore, u as AIRelStoreCompareAndSwap, v as AIRelStoreOptions, w as AIStoreProvider, x as AIVectorBackend, y as AIVectorStore, z as AIVersionedRecord, B as AUDIO_WS_PATH, C as ApiType, D as ApiTypeSchema, E as AskOptions, F as AssistantMessage, G as AudioConfig, H as AudioConfigSchema, I as AudioFormatSchema, J as AudioModelEntry, K as AudioModelEntrySchema, L as AudioOperation, M as AudioOperationSchema, N as AudioOperationsSchema, O as AudioProviderName, P as AudioProviderSchema, Q as AudioWsClientMessage, R as AudioWsClientMessageSchema, S as AudioWsDoneMessage, T as AudioWsDoneMessageSchema, U as AudioWsEndMessage, V as AudioWsErrorMessage, W as AudioWsSegmentDoneMessage, X as AudioWsSegmentStartedMessage, Y as AudioWsServerMessage, Z as AudioWsSpeechMessage, _ as AudioWsStartMessage, $ as AudioWsStartMessageSchema, a0 as AudioWsTextMessage, a1 as AudioWsTextMessageSchema, a2 as AudioWsTranscriptMessage, a3 as ChatCompletionChoice, a4 as ChatCompletionChunk, a5 as ChatCompletionDelta, a6 as ChatCompletionRequest, a7 as ChatCompletionResponse, a8 as ChatHistoryOptions, a9 as ChatMessage, aa as ChatRecord, ab as Citation, ac as CommitTurnInput, ad as CompressConfig, ae as CompressConfigSchema, af as CompressOperations, ag as CompressOptions, ah as CompressResult, ai as CompressionStrategy, aj as CompressionStrategySchema, ak as ConsolidateOptions, al as ConsolidateResult, am as ContextChatOptions, an as ContextChatResult, ao as ContextManager, ap as ContextManagerOptions, aq as ContextOperations, ar as ContextResetOptions, as as ContextStreamEvent, at as ConversationTurn, au as ConversationTurnStatus, av as DefineToolOptions, aw as DeveloperMessage, ax as EmbeddingConfig, ay as EmbeddingConfigSchema, az as EmbeddingItem, aA as EmbeddingOperations, aB as EmbeddingRequest, aC as EmbeddingResponse, aD as EntityDocumentRelation, aE as EntityDocumentResult, aF as EntityListOptions, aG as EntityQueryOptions, aH as EntityType, aI as EntityTypeSchema, aJ as FileConfig, aK as FileConfigSchema, aL as FileOperations, aM as FileParseMethod, aN as FileParseOptions, aO as FileParseRequest, aP as FileParseResult, aQ as GenerateImageRequest, aR as GenerateImageResult, aS as GenerateObjectRequest, aT as GeneratedImage, aU as HaiAIError, aV as ImageConfig, aW as ImageConfigSchema, aX as ImageContent, aY as ImageModelEntry, aZ as ImageModelEntrySchema, a_ as ImageOperations, a$ as ImageProviderName, b0 as ImageProviderSchema, b1 as ImageSize, b2 as InteractionScope, b3 as KnowledgeAskOptions, b4 as KnowledgeAskResult, b5 as KnowledgeConfig, b6 as KnowledgeConfigSchema, b7 as KnowledgeDocumentInfo, b8 as KnowledgeDocumentListOptions, b9 as KnowledgeDocumentMetadata, ba as KnowledgeDocumentRemoveOptions, bb as KnowledgeDocumentRevision, bc as KnowledgeEntity, bd as KnowledgeIngestBatchProgress, be as KnowledgeIngestBatchResult, bf as KnowledgeIngestFileInput, bg as KnowledgeIngestInput, bh as KnowledgeIngestResult, bi as KnowledgeOperations, bj as KnowledgeRepairOptions, bk as KnowledgeRepairProgress, bl as KnowledgeRepairResult, bm as KnowledgeRetrieveItem, bn as KnowledgeRetrieveOptions, bo as KnowledgeRetrieveResult, bp as KnowledgeSetupOptions, bq as KnowledgeStore, br as LLMConfig, bs as LLMConfigSchema, bt as LLMOperations, bu as MCPConfig, bv as MCPConfigSchema, bw as MCPContext, bx as MCPOperations, by as MCPPrompt, bz as MCPPromptArgument, bA as MCPPromptContent, bB as MCPPromptMessage, bC as MCPResource, bD as MCPResourceContent, bE as MCPServerCapabilities, bF as MCPServerCapabilitiesSchema, bG as MCPServerConfig, bH as MCPServerConfigSchema, bI as MCPToolDefinition, bJ as MCPToolHandler, bK as McpServerOptions, bL as MemoryAccessScope, bM as MemoryAdminOperations, bN as MemoryClearAllOptions, bO as MemoryClearOptions, bP as MemoryConfig, bQ as MemoryConfigSchema, bR as MemoryCoreOperations, bS as MemoryEntry, bT as MemoryEntryInput, bU as MemoryExtractOptions, bV as MemoryInjectionOptions, bW as MemoryListOptions, bX as MemoryListPageOptions, bY as MemoryOperations, bZ as MemoryRecallOptions, b_ as MemoryType, b$ as MemoryTypeSchema, c0 as MemoryUpdateInput, c1 as MessageContent, c2 as MessageRole, c3 as ModelEntry, c4 as ModelEntrySchema, c5 as ModelScenario, c6 as ModelScenarioSchema, c7 as ObjectRef, c8 as OptionalSecretSchema, c9 as OutputFormat, ca as PersonaOperations, cb as PersonaProfile, cc as PersonaProfileInput, cd as PersonaProfileUpdate, ce as PersonaScopeOptions, cf as RagContextItem, cg as RagOperations, ch as RagOptions, ci as RagResult, cj as RagStreamEvent, ck as ReasoningOperations, cl as ReasoningOptions, cm as ReasoningResult, cn as ReasoningStep, co as ReasoningStepType, cp as ReasoningStrategy, cq as ReasoningStreamEvent, cr as ReferenceImage, cs as RerankDocument, ct as RerankItem, cu as RerankOperations, cv as RerankRequest, cw as RerankResponse, cx as ResolveRequiredModelEntryOptions, cy as ResolvedAudioModel, cz as ResolvedImageModel, cA as ResolvedModelConfig, cB as RetrievalConfig, cC as RetrievalConfigSchema, cD as RetrievalOperations, cE as RetrievalRequest, cF as RetrievalResult, cG as RetrievalResultItem, cH as RetrievalSource, cI as RetrievalSourceConfig, cJ as RetrievalSourceSchema, cK as SSEDecoder, cL as SSEEvent, cM as ScopedMemoryBinding, cN as ScopedMemoryOperations, cO as SessionInfo, cP as StoreFilter, cQ as StorePage, cR as StoreScope, cS as StreamOperations, cT as StreamProcessor, cU as StreamResult, cV as SummaryConfig, cW as SummaryConfigSchema, cX as SummaryOperations, cY as SummaryOptions, cZ as SummaryResult, c_ as SystemMessage, c$ as TempModelConfig, d0 as TextContent, d1 as TokenConfig, d2 as TokenConfigSchema, d3 as TokenOperations, d4 as TokenUsage, d5 as Tool, d6 as ToolAuthorizationRequest, d7 as ToolAuthorizer, d8 as ToolCall, d9 as ToolDefinition, da as ToolErrorType, db as ToolExecutionContext, dc as ToolExecutionOptions, dd as ToolMessage, de as ToolRegistryOperations, df as ToolRegistryOptions, dg as ToolsOperations, dh as UserMessage, di as WhereClause, dj as WhereOperator, dk as WhereValue, dl as ensureAudioCredential, dm as resolveAudioModel, dn as resolveImageModel, dp as resolveModelApi, dq as resolveModelEntry, dr as serializePlayableAudio } from './ai-audio-ws-protocol-1VhScfis.js';
1
+ export { A as A2AAgentCardConfig, a as A2AApiKeySecurity, b as A2AAuthenticator, c as A2ACallOptions, d as A2ACallResult, e as A2ACallerIdentity, f as A2AConfig, g as A2AConfigSchema, h as A2AContextInfo, i as A2AHandleResult, j as A2AMessageRecord, k as A2AOperations, l as A2ASecurityConfig, m as A2ASkillConfigSchema, n as A2ATaskFilter, o as ACPAgentAdapter, p as ACPAgentAdapterInput, q as ACPAgentLaunch, r as ACPAgentSchema, s as ACPClientOptions, t as ACPConfig, u as ACPConfigInput, v as ACPConfigSchema, w as ACPCreateSessionOptions, x as ACPGitReport, y as ACPOperations, z as ACPPublishSchema, B as ACPRepositorySchema, C as ACPSessionInfo, D as ACPTransport, E as ACPWorkspaceSchema, F as AIConfig, G as AIConfigInput, H as AIConfigSchema, I as AIFunctions, J as AIInitOptions, K as AIRelStore, L as AIRelStoreCompareAndSwap, M as AIRelStoreOptions, N as AIResourceEntry, O as AIResourceRegistry, P as AIStoreProvider, Q as AIVectorBackend, R as AIVectorStore, S as AIVersionedRecord, T as AUDIO_WS_PATH, U as ApiType, V as ApiTypeSchema, W as AskOptions, X as AssistantMessage, Y as AudioConfig, Z as AudioConfigSchema, _ as AudioFormatSchema, $ as AudioModelEntry, a0 as AudioModelEntrySchema, a1 as AudioOperation, a2 as AudioOperationSchema, a3 as AudioOperationsSchema, a4 as AudioProviderName, a5 as AudioProviderSchema, a6 as AudioWsClientMessage, a7 as AudioWsClientMessageSchema, a8 as AudioWsDoneMessage, a9 as AudioWsDoneMessageSchema, aa as AudioWsEndMessage, ab as AudioWsErrorMessage, ac as AudioWsSegmentDoneMessage, ad as AudioWsSegmentStartedMessage, ae as AudioWsServerMessage, af as AudioWsSpeechMessage, ag as AudioWsStartMessage, ah as AudioWsStartMessageSchema, ai as AudioWsTextMessage, aj as AudioWsTextMessageSchema, ak as AudioWsTranscriptMessage, al as ChatCompletionChoice, am as ChatCompletionChunk, an as ChatCompletionDelta, ao as ChatCompletionRequest, ap as ChatCompletionResponse, aq as ChatHistoryOptions, ar as ChatMessage, as as ChatRecord, at as Citation, au as CommitTurnInput, av as CompressConfig, aw as CompressConfigSchema, ax as CompressOperations, ay as CompressOptions, az as CompressResult, aA as CompressionStrategy, aB as CompressionStrategySchema, aC as ConsolidateOptions, aD as ConsolidateResult, aE as ContextChatOptions, aF as ContextChatResult, aG as ContextManager, aH as ContextManagerOptions, aI as ContextOperations, aJ as ContextResetOptions, aK as ContextStreamEvent, aL as ConversationTurn, aM as ConversationTurnStatus, aN as DefineToolOptions, aO as DeveloperMessage, aP as EmbeddingConfig, aQ as EmbeddingConfigSchema, aR as EmbeddingItem, aS as EmbeddingOperations, aT as EmbeddingRequest, aU as EmbeddingResponse, aV as EntityDocumentRelation, aW as EntityDocumentResult, aX as EntityListOptions, aY as EntityQueryOptions, aZ as EntityType, a_ as EntityTypeSchema, a$ as FileConfig, b0 as FileConfigSchema, b1 as FileOperations, b2 as FileParseMethod, b3 as FileParseOptions, b4 as FileParseRequest, b5 as FileParseResult, b6 as GenerateImageRequest, b7 as GenerateImageResult, b8 as GenerateObjectRequest, b9 as GeneratedImage, ba as HaiAIError, bb as ImageConfig, bc as ImageConfigSchema, bd as ImageContent, be as ImageModelEntry, bf as ImageModelEntrySchema, bg as ImageOperations, bh as ImageProviderName, bi as ImageProviderSchema, bj as ImageSize, bk as InteractionScope, bl as KnowledgeAskOptions, bm as KnowledgeAskResult, bn as KnowledgeConfig, bo as KnowledgeConfigSchema, bp as KnowledgeDocumentInfo, bq as KnowledgeDocumentListOptions, br as KnowledgeDocumentMetadata, bs as KnowledgeDocumentRemoveOptions, bt as KnowledgeDocumentRevision, bu as KnowledgeEntity, bv as KnowledgeIngestBatchProgress, bw as KnowledgeIngestBatchResult, bx as KnowledgeIngestFileInput, by as KnowledgeIngestInput, bz as KnowledgeIngestResult, bA as KnowledgeOperations, bB as KnowledgeRepairOptions, bC as KnowledgeRepairProgress, bD as KnowledgeRepairResult, bE as KnowledgeRetrieveItem, bF as KnowledgeRetrieveOptions, bG as KnowledgeRetrieveResult, bH as KnowledgeSetupOptions, bI as KnowledgeStore, bJ as LLMConfig, bK as LLMConfigSchema, bL as LLMOperations, bM as MCPConfig, bN as MCPConfigSchema, bO as MCPContext, bP as MCPExternalServer, bQ as MCPExternalServerSchema, bR as MCPOperations, bS as MCPPrompt, bT as MCPPromptArgument, bU as MCPPromptContent, bV as MCPPromptMessage, bW as MCPResource, bX as MCPResourceContent, bY as MCPServerCapabilities, bZ as MCPServerCapabilitiesSchema, b_ as MCPServerConfig, b$ as MCPServerConfigSchema, c0 as MCPToolDefinition, c1 as MCPToolHandler, c2 as ManagedAudioOperations, c3 as ManagedImageOperations, c4 as ManagedLLMOperations, c5 as ManagedMCPOperations, c6 as ManagedRetrievalOperations, c7 as McpServerOptions, c8 as MemoryAccessScope, c9 as MemoryAdminOperations, ca as MemoryClearAllOptions, cb as MemoryClearOptions, cc as MemoryConfig, cd as MemoryConfigSchema, ce as MemoryCoreOperations, cf as MemoryEntry, cg as MemoryEntryInput, ch as MemoryExtractOptions, ci as MemoryInjectionOptions, cj as MemoryListOptions, ck as MemoryListPageOptions, cl as MemoryOperations, cm as MemoryRecallOptions, cn as MemoryType, co as MemoryTypeSchema, cp as MemoryUpdateInput, cq as MessageContent, cr as MessageRole, cs as ModelCapabilitiesSchema, ct as ModelEntry, cu as ModelEntrySchema, cv as ModelScenario, cw as ModelScenarioSchema, cx as ObjectRef, cy as OptionalSecretSchema, cz as OutputFormat, cA as PersonaOperations, cB as PersonaProfile, cC as PersonaProfileInput, cD as PersonaProfileUpdate, cE as PersonaScopeOptions, cF as RagContextItem, cG as RagOperations, cH as RagOptions, cI as RagResult, cJ as RagStreamEvent, cK as ReasoningOperations, cL as ReasoningOptions, cM as ReasoningResult, cN as ReasoningStep, cO as ReasoningStepType, cP as ReasoningStrategy, cQ as ReasoningStreamEvent, cR as ReferenceImage, cS as RerankDocument, cT as RerankItem, cU as RerankOperations, cV as RerankRequest, cW as RerankResponse, cX as ResolveRequiredModelEntryOptions, cY as ResolvedAudioModel, cZ as ResolvedImageModel, c_ as ResolvedModelConfig, c$ as RetrievalConfig, d0 as RetrievalConfigSchema, d1 as RetrievalOperations, d2 as RetrievalRequest, d3 as RetrievalResult, d4 as RetrievalResultItem, d5 as RetrievalSource, d6 as RetrievalSourceConfig, d7 as RetrievalSourceSchema, d8 as SSEDecoder, d9 as SSEEvent, da as ScopedMemoryBinding, db as ScopedMemoryOperations, dc as SessionInfo, dd as StoreFilter, de as StorePage, df as StoreScope, dg as StreamOperations, dh as StreamProcessor, di as StreamResult, dj as SummaryConfig, dk as SummaryConfigSchema, dl as SummaryOperations, dm as SummaryOptions, dn as SummaryResult, dp as SystemMessage, dq as TempModelConfig, dr as TextContent, ds as TokenConfig, dt as TokenConfigSchema, du as TokenOperations, dv as TokenUsage, dw as Tool, dx as ToolAuthorizationRequest, dy as ToolAuthorizer, dz as ToolCall, dA as ToolDefinition, dB as ToolErrorType, dC as ToolExecutionContext, dD as ToolExecutionOptions, dE as ToolMessage, dF as ToolRegistryOperations, dG as ToolRegistryOptions, dH as ToolsOperations, dI as UserMessage, dJ as WhereClause, dK as WhereOperator, dL as WhereValue, dM as ensureAudioCredential, dN as resolveAudioModel, dO as resolveImageModel, dP as resolveModelApi, dQ as resolveModelEntry, dR as serializePlayableAudio } from './ai-acp-types-DQ8jO9Ie.js';
2
2
  export { A as AudioCapabilitiesRequest, a as AudioContent, b as AudioFormat, c as AudioInputStream, d as AudioModelCapabilities, e as AudioOperations, f as AudioReference, P as PlayableAudio, S as SynthesisEvent, g as SynthesisOptions, h as SynthesisRequest, i as SynthesisResult, j as SynthesisStreamRequest, k as SynthesisTextSegment, T as TranscriptionEvent, l as TranscriptionOptions, m as TranscriptionRequest, n as TranscriptionResult, o as TranscriptionSegment, p as TranscriptionStreamRequest, q as TranscriptionTimestampGranularity, r as TranscriptionWord } from './ai-audio-types-4R5yUAVl.js';
3
3
  export { AudioClientConfig, AudioClientOperations, AudioTicketRequest, createAudioClient } from './client/index.js';
4
4
  export { AgentCapabilities, AgentCard, AgentProvider, AgentSkill, Artifact, DataPart, FilePart, FileWithBytes, FileWithUri, Message, MessageSendParams, Part, PushNotificationConfig, Task, TaskArtifactUpdateEvent, TaskIdParams, TaskQueryParams, TaskState, TaskStatus, TaskStatusUpdateEvent, TextPart } from '@a2a-js/sdk';
5
5
  export { AgentExecutor, ExecutionEventBus } from '@a2a-js/sdk/server';
6
6
  import '@h-ai/core';
7
7
  import 'zod';
8
- import 'openai';
9
8
  import 'node:buffer';
10
9
  import '@h-ai/datapipe';
11
- import '@modelcontextprotocol/sdk/types.js';
12
10
  import 'zod/v4/core';
11
+ import '@agentclientprotocol/sdk';
12
+ import 'openai';
13
+ import '@modelcontextprotocol/sdk/types.js';
package/dist/browser.js CHANGED
@@ -1,5 +1,5 @@
1
- export { A2AConfigSchema, A2ASkillConfigSchema, AIConfigSchema, AUDIO_WS_PATH, ApiTypeSchema, AudioConfigSchema, AudioFormatSchema, AudioModelEntrySchema, AudioOperationSchema, AudioOperationsSchema, AudioProviderSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, CompressConfigSchema, CompressionStrategySchema, EmbeddingConfigSchema, EntityTypeSchema, FileConfigSchema, ImageConfigSchema, ImageModelEntrySchema, ImageProviderSchema, KnowledgeConfigSchema, LLMConfigSchema, MCPConfigSchema, MCPServerCapabilitiesSchema, MCPServerConfigSchema, MemoryConfigSchema, MemoryTypeSchema, ModelEntrySchema, ModelScenarioSchema, OptionalSecretSchema, RetrievalConfigSchema, RetrievalSourceSchema, SummaryConfigSchema, TokenConfigSchema, ensureAudioCredential, resolveAudioModel, resolveImageModel, resolveModelApi, resolveModelEntry, serializePlayableAudio } from './chunk-GAC5RLAG.js';
2
- export { createAudioClient } from './chunk-GMQFIWND.js';
3
- export { HaiAIError } from './chunk-HYMP57AC.js';
1
+ export { A2AConfigSchema, A2ASkillConfigSchema, ACPAgentSchema, ACPConfigSchema, ACPPublishSchema, ACPRepositorySchema, ACPWorkspaceSchema, AIConfigSchema, AUDIO_WS_PATH, ApiTypeSchema, AudioConfigSchema, AudioFormatSchema, AudioModelEntrySchema, AudioOperationSchema, AudioOperationsSchema, AudioProviderSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, CompressConfigSchema, CompressionStrategySchema, EmbeddingConfigSchema, EntityTypeSchema, FileConfigSchema, ImageConfigSchema, ImageModelEntrySchema, ImageProviderSchema, KnowledgeConfigSchema, LLMConfigSchema, MCPConfigSchema, MCPExternalServerSchema, MCPServerCapabilitiesSchema, MCPServerConfigSchema, MemoryConfigSchema, MemoryTypeSchema, ModelCapabilitiesSchema, ModelEntrySchema, ModelScenarioSchema, OptionalSecretSchema, RetrievalConfigSchema, RetrievalSourceSchema, SummaryConfigSchema, TokenConfigSchema, ensureAudioCredential, resolveAudioModel, resolveImageModel, resolveModelApi, resolveModelEntry, serializePlayableAudio } from './chunk-HEYVFQC6.js';
2
+ export { createAudioClient } from './chunk-O6P4P5PC.js';
3
+ export { HaiAIError } from './chunk-M77C3VAP.js';
4
4
  //# sourceMappingURL=browser.js.map
5
5
  //# sourceMappingURL=browser.js.map
@@ -1,10 +1,167 @@
1
- import { HaiAIError } from './chunk-HYMP57AC.js';
1
+ import { HaiAIError } from './chunk-M77C3VAP.js';
2
2
  import { z } from 'zod';
3
3
  import process from 'process';
4
4
  import { core, err, ok } from '@h-ai/core';
5
5
  import { ChunkOptionsSchema, CleanOptionsSchema } from '@h-ai/datapipe';
6
6
  import { AUDIO_WS_PATH as AUDIO_WS_PATH$1, AudioFormatSchema as AudioFormatSchema$1, AudioWsClientMessageSchema as AudioWsClientMessageSchema$1, AudioWsDoneMessageSchema as AudioWsDoneMessageSchema$1, AudioWsStartMessageSchema as AudioWsStartMessageSchema$1, AudioWsTextMessageSchema as AudioWsTextMessageSchema$1 } from '@h-ai/api-contract';
7
7
 
8
+ var acpIdSchema = z.string().regex(/^[a-z0-9][\w-]{0,95}$/i);
9
+ var branch = z.string().min(1).max(240).refine(
10
+ (value) => !value.startsWith("-") && !/[\s~^:?*\\[]/.test(value) && !Array.from(value).some((character) => character.charCodeAt(0) < 32) && !value.includes("..") && !value.includes("@{") && !value.endsWith(".lock") && !value.endsWith("/") && !value.startsWith("/")
11
+ );
12
+ var environment = z.record(z.string().regex(/^[A-Z_]\w*$/i), z.string().regex(/^[A-Z_]\w*$/i)).default({});
13
+ var ACPRepositorySchema = z.strictObject({
14
+ /** 清单中的唯一 ID;同时用于受管理目录名。 */
15
+ id: acpIdSchema.refine((value) => !["files", ".state"].includes(value)),
16
+ /** 远程地址,不允许命令选项和换行。 */
17
+ url: z.string().min(1).refine((value) => !value.startsWith("-") && !/[\r\n\0]/.test(value)),
18
+ /** 该工程明确指定的主分支,更新和 merge-main 发布均使用此值。 */
19
+ mainBranch: branch,
20
+ /** Git remote 名,默认 origin。 */
21
+ remote: acpIdSchema.default("origin")
22
+ });
23
+ var ACPWorkspaceSchema = z.strictObject({
24
+ /** 清单中的唯一 ID;同时用于受管理目录名。 */
25
+ id: acpIdSchema,
26
+ /** 持久存储位置;directory 供本机,volume 供托管容器。 */
27
+ storage: z.discriminatedUnion("type", [
28
+ z.strictObject({
29
+ /** 本机目录存储。 */
30
+ type: z.literal("directory"),
31
+ /** 本机绝对或相对目录,运行时归一化为真实绝对路径。 */
32
+ path: z.string().min(1)
33
+ }),
34
+ z.strictObject({
35
+ /** 存储类型判别字段。 */
36
+ type: z.literal("volume"),
37
+ /** 可读名称;volume 时表示持久卷名。 */
38
+ name: acpIdSchema,
39
+ /** auto 优先可用 Podman,再选 Docker;显式选择不自动降级。 */
40
+ engine: z.enum(["auto", "podman", "docker"]).default("auto"),
41
+ /** 已部署的 Agent 镜像,工作区和智能体需使用同一镜像。 */
42
+ image: z.string().min(1).refine((value) => !value.startsWith("-"))
43
+ })
44
+ ]),
45
+ /** 多个 Git 工程;默认空数组,不使用 Git 时仅创建文件目录。 */
46
+ repositories: z.array(ACPRepositorySchema).default([]),
47
+ /** 目标环境变量名到宿主环境变量名的映射;保存引用而非明文凭据。 */
48
+ environmentRefs: environment
49
+ }).refine(
50
+ (value) => new Set(value.repositories.map((repo) => repo.id)).size === value.repositories.length
51
+ );
52
+ var common = {
53
+ /** 清单中的唯一 ID;同时用于受管理目录名。 */
54
+ id: acpIdSchema,
55
+ /** 智能体的可读名称。 */
56
+ name: z.string().min(1),
57
+ /** 默认启用,禁用后禁止新建和恢复会话。 */
58
+ enabled: z.boolean().default(true),
59
+ /** 原生配置适配器名称,默认 generic。 */
60
+ adapter: z.string().min(1).default("generic"),
61
+ /** 绑定 Hai LLM 模型 ID;默认空数组。 */
62
+ modelIds: z.array(z.string().min(1)).default([]),
63
+ /** 默认选择的模型 ID,必须存在于 modelIds。 */
64
+ defaultModelId: z.string().min(1).optional(),
65
+ /** 目标环境变量名到宿主环境变量名的映射;保存引用而非明文凭据。 */
66
+ environmentRefs: environment
67
+ };
68
+ var launch = {
69
+ /** 可选原生程序覆盖,使用参数数组执行,不经过 shell。 */
70
+ command: z.string().min(1).optional(),
71
+ /** 原生启动参数,省略时由适配器提供默认值。 */
72
+ args: z.array(z.string()).optional()
73
+ };
74
+ var ACPAgentSchema = z.discriminatedUnion("mode", [
75
+ z.strictObject({
76
+ ...common,
77
+ /** 接入模式:自定义远程服务、本机内嵌进程或托管容器。 */
78
+ mode: z.literal("custom-service"),
79
+ /** 智能体原生支持的传输;不自动转换 stdio 和 HTTP/WS。 */
80
+ transport: z.enum(["http", "ws"]),
81
+ /** 远程地址,不允许命令选项和换行。 */
82
+ url: z.url(),
83
+ /** 远程认证 Header 名到宿主变量名的映射。 */
84
+ headerEnv: z.record(z.string(), z.string()).default({}),
85
+ /** 自定义服务显式声明的原生 HTTP/WS 能力。 */
86
+ supportedTransports: z.array(z.enum(["http", "ws"])).min(1)
87
+ }),
88
+ z.strictObject({
89
+ ...common,
90
+ ...launch,
91
+ /** 接入模式:自定义远程服务、本机内嵌进程或托管容器。 */
92
+ mode: z.literal("embedded"),
93
+ /** 智能体原生支持的传输;不自动转换 stdio 和 HTTP/WS。 */
94
+ transport: z.literal("stdio").default("stdio")
95
+ }),
96
+ z.strictObject({
97
+ ...common,
98
+ ...launch,
99
+ /** 接入模式:自定义远程服务、本机内嵌进程或托管容器。 */
100
+ mode: z.literal("builtin-service"),
101
+ /** 智能体原生支持的传输;不自动转换 stdio 和 HTTP/WS。 */
102
+ transport: z.literal("stdio").default("stdio"),
103
+ /** 已部署的 Agent 镜像,工作区和智能体需使用同一镜像。 */
104
+ image: z.string().min(1).refine((value) => !value.startsWith("-")),
105
+ /** auto 优先可用 Podman,再选 Docker;显式选择不自动降级。 */
106
+ engine: z.enum(["auto", "podman", "docker"]).default("auto")
107
+ })
108
+ ]).superRefine((value, ctx) => {
109
+ if (value.defaultModelId && !value.modelIds.includes(value.defaultModelId)) {
110
+ ctx.addIssue({
111
+ code: "custom",
112
+ path: ["defaultModelId"],
113
+ message: "Model binding mismatch"
114
+ });
115
+ }
116
+ if (value.mode === "custom-service") {
117
+ const protocol = new URL(value.url).protocol;
118
+ if (!(value.transport === "http" ? ["http:", "https:"] : ["ws:", "wss:"]).includes(protocol) || !value.supportedTransports.includes(value.transport)) {
119
+ ctx.addIssue({
120
+ code: "custom",
121
+ path: ["transport"],
122
+ message: "Transport mismatch"
123
+ });
124
+ }
125
+ if (value.modelIds.length || value.defaultModelId) {
126
+ ctx.addIssue({
127
+ code: "custom",
128
+ path: ["modelIds"],
129
+ message: "External service owns its model configuration"
130
+ });
131
+ }
132
+ }
133
+ });
134
+ var ACPPublishSchema = z.strictObject({
135
+ /** 发布到登记的主分支,或以同名会话分支推送到各工程。 */
136
+ mode: z.enum(["merge-main", "push-branch"]),
137
+ /** 非空 Git 提交说明。 */
138
+ message: z.string().min(1).max(1e4),
139
+ /** Git 提交身份,由调用方明确提供。 */
140
+ author: z.strictObject({
141
+ /** Git 提交者名称,不允许换行或尖括号。 */
142
+ name: z.string().min(1).refine((value) => !/[\r\n<>]/.test(value)),
143
+ /** Git 提交者邮箱。 */
144
+ email: z.email()
145
+ })
146
+ });
147
+ var sessionIdentitySchema = acpIdSchema;
148
+ var branchNameSchema = branch;
149
+ var ACPConfigSchema = z.strictObject({
150
+ /** 配置文件定义的只读智能体,与数据库记录按 ID 合并。 */
151
+ agents: z.array(ACPAgentSchema).default([]),
152
+ /** 配置文件定义的只读工作区,与数据库记录按 ID 合并。 */
153
+ workspaces: z.array(ACPWorkspaceSchema).default([]),
154
+ /** 握手和控制请求超时,毫秒。 */
155
+ requestTimeout: z.number().int().positive().default(3e4),
156
+ /** 单轮任务超时,毫秒。 */
157
+ promptTimeout: z.number().int().positive().default(6e5),
158
+ /** 取消后等待终态的上限,毫秒。 */
159
+ cancelTimeout: z.number().int().positive().default(5e3),
160
+ /** 单轮输入和累计输出的字节上限。 */
161
+ maxContentBytes: z.number().int().positive().default(8 * 1024 * 1024),
162
+ /** 未消费事件数量上限。 */
163
+ maxPendingEvents: z.number().int().positive().default(1024)
164
+ });
8
165
  var CompressionStrategySchema = z.enum(["summary", "sliding-window", "hybrid"]);
9
166
  var EntityTypeSchema = z.enum(["person", "project", "concept", "organization", "location", "event", "other"]);
10
167
  var MemoryTypeSchema = z.enum(["fact", "preference", "event", "entity", "instruction"]);
@@ -145,7 +302,28 @@ var en_US_default = {
145
302
  ai_a2aExecutionInterrupted: "A2A execution interrupted",
146
303
  ai_a2aSubscriptionAdvanced: "A later message advanced the subscription",
147
304
  ai_a2aExecutorAlreadyRegistered: "A2A executor is already registered; close AI before replacing it",
148
- ai_llmProtocolRenamed: "LLM api was renamed to protocol. Update llm.protocol, models[].protocol, tempModel.protocol and HAI_AI_LLM_PROTOCOL / HAI_AI_LLM_MODELS_<index>_PROTOCOL environment variables."
305
+ ai_llmProtocolRenamed: "LLM api was renamed to protocol. Update llm.protocol, models[].protocol, tempModel.protocol and HAI_AI_LLM_PROTOCOL / HAI_AI_LLM_MODELS_<index>_PROTOCOL environment variables.",
306
+ ai_modelCapabilitiesInvalid: "Invalid model capabilities: output capacity exceeds context capacity, or reasoning efforts are declared without reasoning support.",
307
+ ai_acpGitNotFound: "Git is not installed in the execution environment.",
308
+ ai_acpOperationFailed: "ACP operation failed. Check the connection, workspace and runtime.",
309
+ ai_acpInvalid: "Invalid ACP request.",
310
+ ai_acpNotFound: "ACP resource not found.",
311
+ ai_acpBusy: "ACP resource is busy.",
312
+ ai_acpUnsupported: "The agent or runtime does not support this operation.",
313
+ ai_acpCancelled: "ACP operation cancelled.",
314
+ ai_acpTimeout: "ACP operation timed out.",
315
+ ai_acpOutput: "ACP output is invalid, ambiguous or exceeds limits.",
316
+ ai_acpConflict: "ACP state conflict. Check working directories and branches.",
317
+ ai_acpPartial: "Some repository operations failed. Inspect individual results.",
318
+ ai_acpClosed: "ACP session or module is closed.",
319
+ ai_acpRuntime: "Runtime unavailable. Check Podman/Docker or local executables.",
320
+ ai_acpModel: "Model configuration is incompatible or missing required capabilities.",
321
+ ai_acpCleanup: "Runtime cleanup is incomplete; the working directory remains occupied.",
322
+ ai_resourceReadOnly: "Configuration-defined resources are read-only.",
323
+ ai_resourceNotFound: "Resource not found.",
324
+ ai_resourceConflict: "Resource exists or its version changed.",
325
+ ai_resourceInvalid: "Invalid resource configuration.",
326
+ ai_resourceOperationFailed: "Resource registry operation failed."
149
327
  };
150
328
 
151
329
  // messages/ja-JP.json
@@ -284,7 +462,28 @@ var ja_JP_default = {
284
462
  ai_a2aExecutionInterrupted: "A2A \u5B9F\u884C\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F\u3002\u5916\u90E8\u3078\u306E\u5F71\u97FF\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044",
285
463
  ai_a2aSubscriptionAdvanced: "\u5F8C\u7D9A\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u30BF\u30B9\u30AF\u3092\u9032\u3081\u3066\u3044\u307E\u3059\u3002\u518D\u5EA6\u8CFC\u8AAD\u3057\u3066\u304F\u3060\u3055\u3044",
286
464
  ai_a2aExecutorAlreadyRegistered: "A2A \u5B9F\u884C\u5668\u306F\u65E2\u306B\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u7F6E\u304D\u63DB\u3048\u308B\u524D\u306B AI \u3092\u7D42\u4E86\u3057\u3066\u304F\u3060\u3055\u3044",
287
- ai_llmProtocolRenamed: "LLM \u306E api \u306F protocol \u306B\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002llm.protocol\u3001models[].protocol\u3001tempModel.protocol \u3068\u74B0\u5883\u5909\u6570 HAI_AI_LLM_PROTOCOL / HAI_AI_LLM_MODELS_<\u756A\u53F7>_PROTOCOL \u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
465
+ ai_llmProtocolRenamed: "LLM \u306E api \u306F protocol \u306B\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002llm.protocol\u3001models[].protocol\u3001tempModel.protocol \u3068\u74B0\u5883\u5909\u6570 HAI_AI_LLM_PROTOCOL / HAI_AI_LLM_MODELS_<\u756A\u53F7>_PROTOCOL \u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
466
+ ai_modelCapabilitiesInvalid: "\u30E2\u30C7\u30EB\u80FD\u529B\u304C\u7121\u52B9\u3067\u3059\u3002\u51FA\u529B\u4E0A\u9650\u306F\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5BB9\u91CF\u4EE5\u4E0B\u306B\u3057\u3001\u63A8\u8AD6\u975E\u5BFE\u5FDC\u6642\u306F\u63A8\u8AD6\u30EC\u30D9\u30EB\u3092\u6307\u5B9A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002",
467
+ ai_acpGitNotFound: "\u5B9F\u884C\u74B0\u5883\u306B Git \u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",
468
+ ai_acpOperationFailed: "ACP \u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u63A5\u7D9A\u3001\u4F5C\u696D\u9818\u57DF\u3001\u5B9F\u884C\u74B0\u5883\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
469
+ ai_acpInvalid: "ACP \u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u7121\u52B9\u3067\u3059\u3002",
470
+ ai_acpNotFound: "ACP \u30EA\u30BD\u30FC\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",
471
+ ai_acpBusy: "ACP \u30EA\u30BD\u30FC\u30B9\u306F\u4F7F\u7528\u4E2D\u3067\u3059\u3002",
472
+ ai_acpUnsupported: "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u307E\u305F\u306F\u5B9F\u884C\u74B0\u5883\u306F\u3053\u306E\u64CD\u4F5C\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002",
473
+ ai_acpCancelled: "ACP \u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002",
474
+ ai_acpTimeout: "ACP \u64CD\u4F5C\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\u3002",
475
+ ai_acpOutput: "ACP \u51FA\u529B\u304C\u7121\u52B9\u3001\u4E0D\u660E\u78BA\u3001\u307E\u305F\u306F\u4E0A\u9650\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002",
476
+ ai_acpConflict: "ACP \u72B6\u614B\u304C\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059\u3002\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3068\u30D6\u30E9\u30F3\u30C1\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
477
+ ai_acpPartial: "\u4E00\u90E8\u306E\u30EA\u30DD\u30B8\u30C8\u30EA\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u500B\u5225\u306E\u7D50\u679C\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
478
+ ai_acpClosed: "ACP \u30BB\u30C3\u30B7\u30E7\u30F3\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u7D42\u4E86\u3057\u3066\u3044\u307E\u3059\u3002",
479
+ ai_acpRuntime: "\u5B9F\u884C\u74B0\u5883\u3092\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002Podman/Docker \u307E\u305F\u306F\u5B9F\u884C\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
480
+ ai_acpModel: "\u30E2\u30C7\u30EB\u8A2D\u5B9A\u306B\u4E92\u63DB\u6027\u304C\u306A\u3044\u304B\u3001\u5FC5\u8981\u306A\u80FD\u529B\u60C5\u5831\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002",
481
+ ai_acpCleanup: "\u5B9F\u884C\u30EA\u30BD\u30FC\u30B9\u306E\u505C\u6B62\u304C\u5B8C\u4E86\u3057\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u4F5C\u696D\u9818\u57DF\u306F\u4F7F\u7528\u4E2D\u306E\u307E\u307E\u3067\u3059\u3002",
482
+ ai_resourceReadOnly: "\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u306E\u30EA\u30BD\u30FC\u30B9\u306F\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002",
483
+ ai_resourceNotFound: "\u30EA\u30BD\u30FC\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",
484
+ ai_resourceConflict: "\u30EA\u30BD\u30FC\u30B9\u304C\u5B58\u5728\u3059\u308B\u304B\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002",
485
+ ai_resourceInvalid: "\u30EA\u30BD\u30FC\u30B9\u8A2D\u5B9A\u304C\u7121\u52B9\u3067\u3059\u3002",
486
+ ai_resourceOperationFailed: "\u30EA\u30BD\u30FC\u30B9\u4E00\u89A7\u306E\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002"
288
487
  };
289
488
 
290
489
  // messages/zh-CN.json
@@ -423,7 +622,28 @@ var zh_CN_default = {
423
622
  ai_a2aExecutionInterrupted: "A2A \u6267\u884C\u5DF2\u4E2D\u65AD\uFF0C\u987B\u6838\u5BF9\u5916\u90E8\u6548\u679C",
424
623
  ai_a2aSubscriptionAdvanced: "\u540E\u7EED\u6D88\u606F\u5DF2\u63A8\u8FDB\u4EFB\u52A1\uFF0C\u8BF7\u91CD\u65B0\u8BA2\u9605",
425
624
  ai_a2aExecutorAlreadyRegistered: "A2A \u6267\u884C\u5668\u5DF2\u6CE8\u518C\uFF0C\u66F4\u6362\u524D\u8BF7\u5173\u95ED AI",
426
- ai_llmProtocolRenamed: "LLM \u7684 api \u5DF2\u6539\u540D\u4E3A protocol\u3002\u8BF7\u66F4\u65B0 llm.protocol\u3001models[].protocol\u3001tempModel.protocol \u53CA HAI_AI_LLM_PROTOCOL / HAI_AI_LLM_MODELS_<\u7D22\u5F15>_PROTOCOL \u73AF\u5883\u53D8\u91CF\u3002"
625
+ ai_llmProtocolRenamed: "LLM \u7684 api \u5DF2\u6539\u540D\u4E3A protocol\u3002\u8BF7\u66F4\u65B0 llm.protocol\u3001models[].protocol\u3001tempModel.protocol \u53CA HAI_AI_LLM_PROTOCOL / HAI_AI_LLM_MODELS_<\u7D22\u5F15>_PROTOCOL \u73AF\u5883\u53D8\u91CF\u3002",
626
+ ai_modelCapabilitiesInvalid: "\u6A21\u578B\u80FD\u529B\u914D\u7F6E\u65E0\u6548\uFF1A\u8F93\u51FA\u5BB9\u91CF\u4E0D\u80FD\u8D85\u8FC7\u4E0A\u4E0B\u6587\u5BB9\u91CF\uFF0C\u4E0D\u652F\u6301\u63A8\u7406\u65F6\u4E0D\u80FD\u58F0\u660E\u63A8\u7406\u7EA7\u522B\u3002",
627
+ ai_acpGitNotFound: "\u5F53\u524D\u6267\u884C\u73AF\u5883\u672A\u5B89\u88C5 Git\uFF0C\u65E0\u6CD5\u6267\u884C\u5DE5\u4F5C\u533A\u64CD\u4F5C\u3002",
628
+ ai_acpOperationFailed: "ACP \u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u3001\u5DE5\u4F5C\u533A\u72B6\u6001\u548C\u8FD0\u884C\u73AF\u5883\u3002",
629
+ ai_acpInvalid: "ACP \u8BF7\u6C42\u53C2\u6570\u65E0\u6548\u3002",
630
+ ai_acpNotFound: "ACP \u8D44\u6E90\u4E0D\u5B58\u5728\u3002",
631
+ ai_acpBusy: "ACP \u8D44\u6E90\u6B63\u5728\u4F7F\u7528\u4E2D\u3002",
632
+ ai_acpUnsupported: "\u5F53\u524D\u667A\u80FD\u4F53\u6216\u6267\u884C\u73AF\u5883\u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u3002",
633
+ ai_acpCancelled: "ACP \u64CD\u4F5C\u5DF2\u53D6\u6D88\u3002",
634
+ ai_acpTimeout: "ACP \u64CD\u4F5C\u8D85\u65F6\u3002",
635
+ ai_acpOutput: "ACP \u8F93\u51FA\u65E0\u6548\u3001\u5B58\u5728\u6B67\u4E49\u6216\u8D85\u8FC7\u9650\u5236\u3002",
636
+ ai_acpConflict: "ACP \u72B6\u6001\u51B2\u7A81\uFF0C\u8BF7\u68C0\u67E5\u5DE5\u4F5C\u76EE\u5F55\u548C\u5206\u652F\u3002",
637
+ ai_acpPartial: "\u90E8\u5206\u4ED3\u5E93\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u9010\u4ED3\u5E93\u7ED3\u679C\u3002",
638
+ ai_acpClosed: "ACP \u4F1A\u8BDD\u6216\u6A21\u5757\u5DF2\u5173\u95ED\u3002",
639
+ ai_acpRuntime: "\u6CA1\u6709\u53EF\u7528\u7684\u6267\u884C\u73AF\u5883\uFF0C\u8BF7\u68C0\u67E5 Podman/Docker \u6216\u672C\u673A\u7A0B\u5E8F\u3002",
640
+ ai_acpModel: "\u6A21\u578B\u914D\u7F6E\u4E0E\u667A\u80FD\u4F53\u4E0D\u517C\u5BB9\uFF0C\u6216\u7F3A\u5C11\u5FC5\u8981\u80FD\u529B\u4FE1\u606F\u3002",
641
+ ai_acpCleanup: "\u8FD0\u884C\u8D44\u6E90\u672A\u5B8C\u5168\u505C\u6B62\uFF0C\u5DE5\u4F5C\u76EE\u5F55\u4ECD\u4FDD\u6301\u5360\u7528\u3002",
642
+ ai_resourceReadOnly: "\u914D\u7F6E\u6587\u4EF6\u5B9A\u4E49\u7684\u8D44\u6E90\u4E0D\u53EF\u4FEE\u6539\u3002",
643
+ ai_resourceNotFound: "\u8D44\u6E90\u4E0D\u5B58\u5728\u3002",
644
+ ai_resourceConflict: "\u8D44\u6E90\u5DF2\u5B58\u5728\u6216\u7248\u672C\u53D1\u751F\u53D8\u5316\u3002",
645
+ ai_resourceInvalid: "\u8D44\u6E90\u914D\u7F6E\u65E0\u6548\u3002",
646
+ ai_resourceOperationFailed: "\u8D44\u6E90\u6E05\u5355\u64CD\u4F5C\u5931\u8D25\u3002"
427
647
  };
428
648
 
429
649
  // src/ai-i18n.ts
@@ -439,9 +659,30 @@ var OptionalSecretSchema = z.string().nullable().transform(
439
659
  ).optional();
440
660
  var ModelScenarioSchema = z.enum(["default", "chat", "reasoning", "plan", "execute", "extraction", "summary", "embedding", "rerank", "ocr", "fast"]);
441
661
  var ApiTypeSchema = z.enum(["chat", "responses", "anthropic"]);
662
+ var ModelCapabilitiesSchema = z.strictObject({
663
+ /** 可用上下文总容量(Token);未知时省略,不由输出预算推断。 */
664
+ contextWindow: z.number().int().positive().optional(),
665
+ /** 模型单次输出能力上限(Token);与默认 maxTokens 预算不同。 */
666
+ maxOutputTokens: z.number().int().positive().optional(),
667
+ /** 已确认支持的输入模态;未知时省略。 */
668
+ inputModalities: z.array(z.enum(["text", "image", "audio", "video"])).min(1).optional(),
669
+ /** 已确认支持的输出模态;仍需调用接口支持。 */
670
+ outputModalities: z.array(z.enum(["text", "image", "audio", "video"])).min(1).optional(),
671
+ /** 模型是否支持函数工具调用;未知时省略。 */
672
+ toolCalling: z.boolean().optional(),
673
+ /** 推理能力元数据,不自动启用推理请求参数。 */
674
+ reasoning: z.strictObject({
675
+ /** 是否支持推理能力。 */
676
+ supported: z.boolean(),
677
+ /** 已确认可选择的推理级别。 */
678
+ efforts: z.array(z.string().min(1)).min(1).optional()
679
+ }).refine((value) => value.supported || !value.efforts, { message: aiM("ai_modelCapabilitiesInvalid") }).optional()
680
+ }).refine((value) => !value.contextWindow || !value.maxOutputTokens || value.maxOutputTokens <= value.contextWindow, { message: aiM("ai_modelCapabilitiesInvalid") });
442
681
  var ModelEntrySchema = z.strictObject({
443
682
  /** 模型唯一标识(用于 ModelResolver 解析) */
444
683
  id: z.string(),
684
+ /** 已确认的模型能力,缺省表示未知 */
685
+ capabilities: ModelCapabilitiesSchema.optional(),
445
686
  /** 模型名称(传给 API 的实际模型名) */
446
687
  model: z.string(),
447
688
  /** API 协议(可选,未指定时回退全局 `protocol`,再回退 `chat`;决定走 Chat Completions / Responses / Anthropic) */
@@ -496,6 +737,7 @@ function resolveModelEntry(llmConfig, scenario, explicit, options) {
496
737
  }
497
738
  const resolved = {
498
739
  model: modelName,
740
+ capabilities: entry?.capabilities,
499
741
  protocol: entry?.protocol ?? llmConfig.protocol ?? "chat",
500
742
  apiKey: entry?.apiKey ?? llmConfig.apiKey ?? (process.env.HAI_AI_LLM_APIKEY?.trim() || process.env.OPENAI_API_KEY),
501
743
  baseUrl: entry?.baseUrl ?? llmConfig.baseUrl ?? (process.env.HAI_AI_LLM_BASEURL?.trim() || process.env.OPENAI_BASE_URL) ?? "https://api.openai.com/v1",
@@ -530,7 +772,27 @@ var MCPServerConfigSchema = z.object({
530
772
  /** 服务器能力声明 */
531
773
  capabilities: MCPServerCapabilitiesSchema.optional()
532
774
  });
775
+ var MCPExternalServerSchema = z.strictObject({
776
+ /** 服务唯一标识。 */
777
+ id: z.string().min(1),
778
+ /** 传给原生 MCP 客户端的服务名。 */
779
+ name: z.string().min(1),
780
+ /** 原生 MCP 传输类型。 */
781
+ transport: z.enum(["stdio", "http", "sse"]),
782
+ /** stdio 程序路径;仅可信服务端配置。 */
783
+ command: z.string().min(1).optional(),
784
+ /** stdio 参数,不使用 shell 拼接。 */
785
+ args: z.array(z.string()).default([]),
786
+ /** HTTP/SSE 地址。 */
787
+ url: z.url().optional(),
788
+ /** stdio 变量名到宿主凭据变量名的映射。 */
789
+ environmentRefs: z.record(z.string(), z.string()).default({}),
790
+ /** 认证 Header 名到宿主凭据变量名的映射。 */
791
+ headerEnv: z.record(z.string(), z.string()).default({})
792
+ }).refine((value) => value.transport === "stdio" ? Boolean(value.command) : Boolean(value.url && /^https?:/.test(value.url)));
533
793
  var MCPConfigSchema = z.object({
794
+ /** 外部 MCP 服务只读清单;与数据库记录合并供受管 Agent 使用。 */
795
+ servers: z.array(MCPExternalServerSchema).optional(),
534
796
  /** 服务器配置 */
535
797
  server: MCPServerConfigSchema.optional()
536
798
  });
@@ -882,6 +1144,8 @@ function resolveImageModel(imageConfig, explicit) {
882
1144
  });
883
1145
  }
884
1146
  var AIConfigSchema = z.object({
1147
+ /** ACP 会话与执行限制(仅 Node 服务端)。 */
1148
+ acp: ACPConfigSchema.optional(),
885
1149
  /** LLM 配置(可选,所有字段有默认值) */
886
1150
  llm: LLMConfigSchema.default({
887
1151
  model: "gpt-4o-mini",
@@ -963,6 +1227,6 @@ var AudioWsTextMessageSchema = AudioWsTextMessageSchema$1;
963
1227
  var AudioWsDoneMessageSchema = AudioWsDoneMessageSchema$1;
964
1228
  var AudioWsClientMessageSchema = AudioWsClientMessageSchema$1;
965
1229
 
966
- export { A2AConfigSchema, A2ASkillConfigSchema, AIConfigSchema, AUDIO_WS_PATH, ApiTypeSchema, AudioConfigSchema, AudioFormatSchema, AudioModelEntrySchema, AudioOperationSchema, AudioOperationsSchema, AudioProviderSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, CompressConfigSchema, CompressionStrategySchema, EmbeddingConfigSchema, EntityTypeSchema, FileConfigSchema, ImageConfigSchema, ImageModelEntrySchema, ImageProviderSchema, KnowledgeConfigSchema, LLMConfigSchema, MCPConfigSchema, MCPServerCapabilitiesSchema, MCPServerConfigSchema, MemoryConfigSchema, MemoryTypeSchema, ModelEntrySchema, ModelScenarioSchema, OptionalSecretSchema, RetrievalConfigSchema, RetrievalSourceSchema, SummaryConfigSchema, TokenConfigSchema, aiM, ensureAudioCredential, resolveAudioModel, resolveImageModel, resolveModelApi, resolveModelEntry, serializePlayableAudio };
967
- //# sourceMappingURL=chunk-GAC5RLAG.js.map
968
- //# sourceMappingURL=chunk-GAC5RLAG.js.map
1230
+ export { A2AConfigSchema, A2ASkillConfigSchema, ACPAgentSchema, ACPConfigSchema, ACPPublishSchema, ACPRepositorySchema, ACPWorkspaceSchema, AIConfigSchema, AUDIO_WS_PATH, ApiTypeSchema, AudioConfigSchema, AudioFormatSchema, AudioModelEntrySchema, AudioOperationSchema, AudioOperationsSchema, AudioProviderSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, CompressConfigSchema, CompressionStrategySchema, EmbeddingConfigSchema, EntityTypeSchema, FileConfigSchema, ImageConfigSchema, ImageModelEntrySchema, ImageProviderSchema, KnowledgeConfigSchema, LLMConfigSchema, MCPConfigSchema, MCPExternalServerSchema, MCPServerCapabilitiesSchema, MCPServerConfigSchema, MemoryConfigSchema, MemoryTypeSchema, ModelCapabilitiesSchema, ModelEntrySchema, ModelScenarioSchema, OptionalSecretSchema, RetrievalConfigSchema, RetrievalSourceSchema, SummaryConfigSchema, TokenConfigSchema, aiM, branchNameSchema, ensureAudioCredential, resolveAudioModel, resolveImageModel, resolveModelApi, resolveModelEntry, serializePlayableAudio, sessionIdentitySchema };
1231
+ //# sourceMappingURL=chunk-HEYVFQC6.js.map
1232
+ //# sourceMappingURL=chunk-HEYVFQC6.js.map