@huyooo/ai-chat-core 0.3.6 → 0.3.8
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/adapter/index.d.ts +0 -1
- package/dist/adapter/model-adapter.d.ts +0 -1
- package/dist/adapter/model-options.d.ts +0 -1
- package/dist/adapter/types.d.ts +0 -1
- package/dist/chat-runtime.d.ts +0 -1
- package/dist/constants.d.ts +0 -1
- package/dist/events.d.ts +0 -1
- package/dist/extension/index.d.ts +0 -1
- package/dist/extension/types.d.ts +0 -1
- package/dist/families/index.d.ts +0 -1
- package/dist/families/presets.d.ts +0 -1
- package/dist/families/resolver.d.ts +0 -1
- package/dist/families/types.d.ts +0 -1
- package/dist/governance/command-safety.d.ts +0 -1
- package/dist/governance/governance.d.ts +0 -1
- package/dist/governance/index.d.ts +0 -1
- package/dist/governance/types.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/internal/management-args.d.ts +0 -1
- package/dist/internal/management-results.d.ts +0 -1
- package/dist/llm-config.d.ts +0 -1
- package/dist/logger/core.d.ts +0 -1
- package/dist/logger/index.d.ts +0 -1
- package/dist/orchestrator/compression-handler.d.ts +0 -1
- package/dist/orchestrator/context-compressor.d.ts +0 -1
- package/dist/orchestrator/context-summarizer.d.ts +0 -1
- package/dist/orchestrator/index.d.ts +0 -1
- package/dist/orchestrator/orchestrator.d.ts +0 -1
- package/dist/orchestrator/types.d.ts +0 -1
- package/dist/parts/index.d.ts +0 -1
- package/dist/parts/registry.d.ts +0 -1
- package/dist/parts/summaries.d.ts +0 -1
- package/dist/parts/types.d.ts +0 -1
- package/dist/platform.d.ts +0 -1
- package/dist/protocols/anthropic.d.ts +0 -1
- package/dist/protocols/ark.d.ts +0 -1
- package/dist/protocols/deepseek.d.ts +0 -1
- package/dist/protocols/error-utils.d.ts +0 -1
- package/dist/protocols/gemini.d.ts +0 -1
- package/dist/protocols/glm.d.ts +0 -1
- package/dist/protocols/grok.d.ts +0 -1
- package/dist/protocols/index.d.ts +0 -1
- package/dist/protocols/minimax.d.ts +0 -1
- package/dist/protocols/moonshot.d.ts +0 -1
- package/dist/protocols/openai-sse.d.ts +0 -1
- package/dist/protocols/openai.d.ts +0 -1
- package/dist/protocols/qwen.d.ts +0 -1
- package/dist/protocols/responses-sse.d.ts +0 -1
- package/dist/protocols/sse-reader.d.ts +0 -1
- package/dist/protocols/tool-arguments.d.ts +0 -1
- package/dist/protocols/types.d.ts +0 -1
- package/dist/protocols/vercel-gateway.d.ts +0 -1
- package/dist/runtime.d.ts +0 -1
- package/dist/skills/index.d.ts +0 -1
- package/dist/skills/management/admin.d.ts +0 -1
- package/dist/skills/management/index.d.ts +0 -1
- package/dist/skills/management/inputs.d.ts +0 -1
- package/dist/skills/management/operations.d.ts +0 -1
- package/dist/skills/management/types.d.ts +0 -1
- package/dist/skills/registry.d.ts +0 -1
- package/dist/skills/summaries.d.ts +0 -1
- package/dist/skills/types.d.ts +0 -1
- package/dist/test-utils/mock-sse.d.ts +0 -1
- package/dist/tool-manager/define-tool.d.ts +0 -1
- package/dist/tool-manager/formats.d.ts +0 -1
- package/dist/tool-manager/identity.d.ts +0 -1
- package/dist/tool-manager/in-process-provider.d.ts +0 -1
- package/dist/tool-manager/index.d.ts +0 -1
- package/dist/tool-manager/manager.d.ts +0 -1
- package/dist/tool-manager/mcp-provider.d.ts +0 -1
- package/dist/tool-manager/summaries.d.ts +0 -1
- package/dist/tool-manager/types.d.ts +0 -1
- package/dist/types.d.ts +0 -1
- package/package.json +2 -3
- package/dist/adapter/index.d.ts.map +0 -1
- package/dist/adapter/model-adapter.d.ts.map +0 -1
- package/dist/adapter/model-options.d.ts.map +0 -1
- package/dist/adapter/types.d.ts.map +0 -1
- package/dist/chat-runtime.d.ts.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/events.d.ts.map +0 -1
- package/dist/extension/index.d.ts.map +0 -1
- package/dist/extension/types.d.ts.map +0 -1
- package/dist/families/index.d.ts.map +0 -1
- package/dist/families/presets.d.ts.map +0 -1
- package/dist/families/resolver.d.ts.map +0 -1
- package/dist/families/types.d.ts.map +0 -1
- package/dist/governance/command-safety.d.ts.map +0 -1
- package/dist/governance/governance.d.ts.map +0 -1
- package/dist/governance/index.d.ts.map +0 -1
- package/dist/governance/types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/internal/management-args.d.ts.map +0 -1
- package/dist/internal/management-results.d.ts.map +0 -1
- package/dist/llm-config.d.ts.map +0 -1
- package/dist/logger/core.d.ts.map +0 -1
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/orchestrator/compression-handler.d.ts.map +0 -1
- package/dist/orchestrator/context-compressor.d.ts.map +0 -1
- package/dist/orchestrator/context-summarizer.d.ts.map +0 -1
- package/dist/orchestrator/index.d.ts.map +0 -1
- package/dist/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator/types.d.ts.map +0 -1
- package/dist/parts/index.d.ts.map +0 -1
- package/dist/parts/registry.d.ts.map +0 -1
- package/dist/parts/summaries.d.ts.map +0 -1
- package/dist/parts/types.d.ts.map +0 -1
- package/dist/platform.d.ts.map +0 -1
- package/dist/protocols/anthropic.d.ts.map +0 -1
- package/dist/protocols/ark.d.ts.map +0 -1
- package/dist/protocols/deepseek.d.ts.map +0 -1
- package/dist/protocols/error-utils.d.ts.map +0 -1
- package/dist/protocols/gemini.d.ts.map +0 -1
- package/dist/protocols/glm.d.ts.map +0 -1
- package/dist/protocols/grok.d.ts.map +0 -1
- package/dist/protocols/index.d.ts.map +0 -1
- package/dist/protocols/minimax.d.ts.map +0 -1
- package/dist/protocols/moonshot.d.ts.map +0 -1
- package/dist/protocols/openai-sse.d.ts.map +0 -1
- package/dist/protocols/openai.d.ts.map +0 -1
- package/dist/protocols/qwen.d.ts.map +0 -1
- package/dist/protocols/responses-sse.d.ts.map +0 -1
- package/dist/protocols/sse-reader.d.ts.map +0 -1
- package/dist/protocols/tool-arguments.d.ts.map +0 -1
- package/dist/protocols/types.d.ts.map +0 -1
- package/dist/protocols/vercel-gateway.d.ts.map +0 -1
- package/dist/runtime.d.ts.map +0 -1
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/management/admin.d.ts.map +0 -1
- package/dist/skills/management/index.d.ts.map +0 -1
- package/dist/skills/management/inputs.d.ts.map +0 -1
- package/dist/skills/management/operations.d.ts.map +0 -1
- package/dist/skills/management/types.d.ts.map +0 -1
- package/dist/skills/registry.d.ts.map +0 -1
- package/dist/skills/summaries.d.ts.map +0 -1
- package/dist/skills/types.d.ts.map +0 -1
- package/dist/test-utils/mock-sse.d.ts.map +0 -1
- package/dist/tool-manager/define-tool.d.ts.map +0 -1
- package/dist/tool-manager/formats.d.ts.map +0 -1
- package/dist/tool-manager/identity.d.ts.map +0 -1
- package/dist/tool-manager/in-process-provider.d.ts.map +0 -1
- package/dist/tool-manager/index.d.ts.map +0 -1
- package/dist/tool-manager/manager.d.ts.map +0 -1
- package/dist/tool-manager/mcp-provider.d.ts.map +0 -1
- package/dist/tool-manager/summaries.d.ts.map +0 -1
- package/dist/tool-manager/types.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/src/adapter/index.ts +0 -25
- package/src/adapter/model-adapter.ts +0 -196
- package/src/adapter/model-options.ts +0 -143
- package/src/adapter/types.ts +0 -41
- package/src/chat-runtime.ts +0 -515
- package/src/constants.ts +0 -32
- package/src/events.ts +0 -1084
- package/src/extension/index.ts +0 -24
- package/src/extension/types.ts +0 -49
- package/src/families/index.ts +0 -28
- package/src/families/presets.ts +0 -124
- package/src/families/resolver.ts +0 -22
- package/src/families/types.ts +0 -55
- package/src/governance/command-safety.ts +0 -224
- package/src/governance/governance.ts +0 -125
- package/src/governance/index.ts +0 -38
- package/src/governance/types.ts +0 -44
- package/src/index.ts +0 -426
- package/src/internal/management-args.ts +0 -39
- package/src/internal/management-results.ts +0 -60
- package/src/llm-config.ts +0 -137
- package/src/logger/core.ts +0 -96
- package/src/logger/index.ts +0 -8
- package/src/orchestrator/compression-handler.ts +0 -137
- package/src/orchestrator/context-compressor.ts +0 -249
- package/src/orchestrator/context-summarizer.ts +0 -123
- package/src/orchestrator/index.ts +0 -20
- package/src/orchestrator/orchestrator.ts +0 -1002
- package/src/orchestrator/types.ts +0 -70
- package/src/parts/index.ts +0 -20
- package/src/parts/registry.ts +0 -95
- package/src/parts/summaries.ts +0 -40
- package/src/parts/types.ts +0 -63
- package/src/platform.ts +0 -73
- package/src/protocols/anthropic.ts +0 -377
- package/src/protocols/ark.ts +0 -300
- package/src/protocols/deepseek.ts +0 -192
- package/src/protocols/error-utils.ts +0 -71
- package/src/protocols/gemini.ts +0 -352
- package/src/protocols/glm.ts +0 -212
- package/src/protocols/grok.ts +0 -98
- package/src/protocols/index.ts +0 -48
- package/src/protocols/minimax.ts +0 -308
- package/src/protocols/moonshot.ts +0 -186
- package/src/protocols/openai-sse.ts +0 -156
- package/src/protocols/openai.ts +0 -97
- package/src/protocols/qwen.ts +0 -358
- package/src/protocols/responses-sse.ts +0 -224
- package/src/protocols/sse-reader.ts +0 -54
- package/src/protocols/tool-arguments.ts +0 -32
- package/src/protocols/types.ts +0 -198
- package/src/protocols/vercel-gateway.ts +0 -391
- package/src/runtime.ts +0 -167
- package/src/skills/index.ts +0 -29
- package/src/skills/management/admin.ts +0 -170
- package/src/skills/management/index.ts +0 -27
- package/src/skills/management/inputs.ts +0 -79
- package/src/skills/management/operations.ts +0 -256
- package/src/skills/management/types.ts +0 -57
- package/src/skills/registry.ts +0 -120
- package/src/skills/summaries.ts +0 -48
- package/src/skills/types.ts +0 -65
- package/src/test-utils/mock-sse.ts +0 -32
- package/src/tool-manager/define-tool.ts +0 -201
- package/src/tool-manager/formats.ts +0 -146
- package/src/tool-manager/identity.ts +0 -80
- package/src/tool-manager/in-process-provider.ts +0 -164
- package/src/tool-manager/index.ts +0 -63
- package/src/tool-manager/manager.ts +0 -562
- package/src/tool-manager/mcp-provider.ts +0 -509
- package/src/tool-manager/summaries.ts +0 -136
- package/src/tool-manager/types.ts +0 -389
- package/src/types.ts +0 -1142
|
@@ -1,389 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 工具运行时类型定义
|
|
3
|
-
*
|
|
4
|
-
* - ToolDescriptor / Provider / Manager:注册、搜索、会话级启用
|
|
5
|
-
* - MCP 连接信息、中间件与执行统计
|
|
6
|
-
* - 与治理类型组合描述工具元数据与安全策略
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import type {
|
|
10
|
-
AssetApprovalPolicy,
|
|
11
|
-
AssetHostDependency,
|
|
12
|
-
AssetSideEffectLevel,
|
|
13
|
-
AssetSource,
|
|
14
|
-
ManagedAssetSummaryBase,
|
|
15
|
-
} from '../governance/types';
|
|
16
|
-
import type { Tool, JsonSchemaObject, ToolUI } from '../types';
|
|
17
|
-
|
|
18
|
-
// ══════════════════════ Tool Descriptor ══════════════════════
|
|
19
|
-
|
|
20
|
-
/** 工具描述符(纯元数据,不含 execute 实现) */
|
|
21
|
-
export interface ToolDescriptor {
|
|
22
|
-
/** 全局唯一标识:scoped 工具 = source:assetId:name,独立工具 = source:name */
|
|
23
|
-
id: string;
|
|
24
|
-
/** 工具集 ID(scope 命名空间) */
|
|
25
|
-
assetId: string;
|
|
26
|
-
/** scope 内的工具名 */
|
|
27
|
-
name: string;
|
|
28
|
-
/** 对模型/用户暴露的稳定别名 */
|
|
29
|
-
alias: string;
|
|
30
|
-
/** UI 展示名称 */
|
|
31
|
-
displayName: string;
|
|
32
|
-
description: string;
|
|
33
|
-
parameters: JsonSchemaObject;
|
|
34
|
-
/** 成功时 data 内的业务结构(JSON Schema,可选) */
|
|
35
|
-
outputSchema?: JsonSchemaObject;
|
|
36
|
-
/** 成功返回标准信封结构(JSON Schema,可选) */
|
|
37
|
-
resolvedOutputSchema?: JsonSchemaObject;
|
|
38
|
-
/** 失败返回结构(JSON Schema,默认平台标准错误结构) */
|
|
39
|
-
errorSchema?: JsonSchemaObject;
|
|
40
|
-
category: string;
|
|
41
|
-
tags: string[];
|
|
42
|
-
source: AssetSource;
|
|
43
|
-
/** 所属 provider id,用于追溯来源 */
|
|
44
|
-
provider: string;
|
|
45
|
-
ui?: ToolUI;
|
|
46
|
-
requiresApproval?: boolean;
|
|
47
|
-
approvalPolicy?: AssetApprovalPolicy;
|
|
48
|
-
sideEffectLevel?: AssetSideEffectLevel;
|
|
49
|
-
hostDependency?: AssetHostDependency;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// ══════════════════════ Management Summaries ══════════════════════
|
|
53
|
-
|
|
54
|
-
/** 面向管理 API 的统一工具摘要 */
|
|
55
|
-
export interface ManagedToolSummary extends ManagedAssetSummaryBase {
|
|
56
|
-
ref: string;
|
|
57
|
-
id: string;
|
|
58
|
-
assetId: string;
|
|
59
|
-
alias: string;
|
|
60
|
-
name: string;
|
|
61
|
-
displayName: string;
|
|
62
|
-
description: string;
|
|
63
|
-
/** 输入参数结构。tool_search 可带出,便于模型直接形成正确调用。 */
|
|
64
|
-
parameters?: JsonSchemaObject;
|
|
65
|
-
/** 成功返回结构。 */
|
|
66
|
-
outputSchema?: JsonSchemaObject;
|
|
67
|
-
/** 成功返回标准信封结构。 */
|
|
68
|
-
resolvedOutputSchema?: JsonSchemaObject;
|
|
69
|
-
/** 标准错误返回结构。 */
|
|
70
|
-
errorSchema?: JsonSchemaObject;
|
|
71
|
-
category: string;
|
|
72
|
-
tags: string[];
|
|
73
|
-
source: AssetSource;
|
|
74
|
-
provider: string;
|
|
75
|
-
active?: boolean;
|
|
76
|
-
chatEnabled?: boolean;
|
|
77
|
-
/** Whether this tool is callable in the current chat turn. */
|
|
78
|
-
callable?: boolean;
|
|
79
|
-
/** Machine-readable next action before the model may call this tool. */
|
|
80
|
-
requiredAction?: 'call_tool' | 'tool_enable';
|
|
81
|
-
/** Stable ref to pass to tool_enable when requiredAction is tool_enable. */
|
|
82
|
-
enableRef?: string;
|
|
83
|
-
/** Short instruction for agents consuming search/list results. */
|
|
84
|
-
usageHint?: string;
|
|
85
|
-
extension?: {
|
|
86
|
-
id: string;
|
|
87
|
-
name: string;
|
|
88
|
-
description: string;
|
|
89
|
-
source: string;
|
|
90
|
-
enabled: boolean;
|
|
91
|
-
features: string[];
|
|
92
|
-
category: string;
|
|
93
|
-
version?: string;
|
|
94
|
-
featureDetails?: Record<string, unknown>;
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export interface ManagedToolDetail extends ManagedToolSummary {
|
|
99
|
-
parameters: JsonSchemaObject;
|
|
100
|
-
outputSchema?: JsonSchemaObject;
|
|
101
|
-
resolvedOutputSchema?: JsonSchemaObject;
|
|
102
|
-
errorSchema?: JsonSchemaObject;
|
|
103
|
-
hasProject: boolean;
|
|
104
|
-
sourceCode?: string;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/** 面向管理 API 的统一 MCP Server 摘要 */
|
|
108
|
-
export interface ManagedMcpServerSummary extends ManagedAssetSummaryBase {
|
|
109
|
-
ref: string;
|
|
110
|
-
name: string;
|
|
111
|
-
description?: string;
|
|
112
|
-
category?: string;
|
|
113
|
-
tags: string[];
|
|
114
|
-
enabled: boolean;
|
|
115
|
-
status: McpConnectionStatus | 'disabled';
|
|
116
|
-
toolCount: number;
|
|
117
|
-
error?: string;
|
|
118
|
-
hasDistBundle: boolean;
|
|
119
|
-
projectDir: string;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export interface ManagedMcpServerDetail extends ManagedMcpServerSummary {
|
|
123
|
-
meta?: Record<string, unknown>;
|
|
124
|
-
code?: string;
|
|
125
|
-
dependencies?: Record<string, string>;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// ══════════════════════ Change Events ══════════════════════
|
|
129
|
-
|
|
130
|
-
/** 工具变更事件 */
|
|
131
|
-
export interface ToolChangeEvent {
|
|
132
|
-
type: 'added' | 'removed' | 'updated';
|
|
133
|
-
tools: ToolDescriptor[];
|
|
134
|
-
provider: string;
|
|
135
|
-
/** 重连导致的临时移除,工具将很快重新添加 */
|
|
136
|
-
reconnecting?: boolean;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
export type ToolChangeListener = (event: ToolChangeEvent) => void;
|
|
140
|
-
|
|
141
|
-
/** 会话工具变更事件 */
|
|
142
|
-
export interface SessionToolsChangeEvent {
|
|
143
|
-
reason: 'enabled' | 'disabled' | 'provider_changed' | 'reloaded' | 'middleware_updated' | 'destroyed';
|
|
144
|
-
toolNames: string[];
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export type SessionToolsChangeListener = (event: SessionToolsChangeEvent) => void | Promise<void>;
|
|
148
|
-
|
|
149
|
-
// ══════════════════════ Connection Status ══════════════════════
|
|
150
|
-
|
|
151
|
-
export type McpConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'error';
|
|
152
|
-
|
|
153
|
-
/** 连接状态变更事件 */
|
|
154
|
-
export interface ConnectionStatusEvent {
|
|
155
|
-
provider: string;
|
|
156
|
-
status: McpConnectionStatus;
|
|
157
|
-
error?: string;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export type ConnectionStatusListener = (event: ConnectionStatusEvent) => void;
|
|
161
|
-
|
|
162
|
-
// ══════════════════════ Middleware ══════════════════════
|
|
163
|
-
|
|
164
|
-
/** 工具执行中间件(日志/限流/重试/监控等) */
|
|
165
|
-
export interface ToolMiddleware {
|
|
166
|
-
beforeExecute?: (name: string, args: Record<string, unknown>) => Promise<Record<string, unknown> | void>;
|
|
167
|
-
afterExecute?: (
|
|
168
|
-
name: string,
|
|
169
|
-
args: Record<string, unknown>,
|
|
170
|
-
result: import('../types').ToolResult,
|
|
171
|
-
durationMs: number,
|
|
172
|
-
) => Promise<import('../types').ToolResult | void>;
|
|
173
|
-
onError?: (name: string, args: Record<string, unknown>, error: unknown) => Promise<void>;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// ══════════════════════ Execution Stats ══════════════════════
|
|
177
|
-
|
|
178
|
-
/** 单个工具的执行统计 */
|
|
179
|
-
export interface ToolExecutionStats {
|
|
180
|
-
totalCalls: number;
|
|
181
|
-
successCount: number;
|
|
182
|
-
errorCount: number;
|
|
183
|
-
totalDurationMs: number;
|
|
184
|
-
lastCallAt?: number;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// ══════════════════════ ToolProvider ══════════════════════
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* 工具提供者——任何工具来源的统一抽象
|
|
191
|
-
*
|
|
192
|
-
* InProcessProvider / McpProvider / 未来的 RemoteProvider 均实现此接口。
|
|
193
|
-
*/
|
|
194
|
-
export interface ToolProvider {
|
|
195
|
-
readonly id: string;
|
|
196
|
-
readonly source: AssetSource;
|
|
197
|
-
|
|
198
|
-
/** 初始化(连接 MCP / 扫描磁盘 / 注册内置工具) */
|
|
199
|
-
init(): Promise<void>;
|
|
200
|
-
/** 销毁(断开连接 / 清理资源) */
|
|
201
|
-
destroy(): Promise<void>;
|
|
202
|
-
|
|
203
|
-
/** 当前所有工具的描述符 */
|
|
204
|
-
getDescriptors(): ToolDescriptor[];
|
|
205
|
-
/** 加载工具实例(返回可调用的 Tool) */
|
|
206
|
-
loadTool(name: string): Promise<Tool | null>;
|
|
207
|
-
|
|
208
|
-
addChangeListener(listener: ToolChangeListener): void;
|
|
209
|
-
removeChangeListener(listener: ToolChangeListener): void;
|
|
210
|
-
|
|
211
|
-
/** 远程 Provider 的连接信息(可选) */
|
|
212
|
-
getConnectionInfo?(): McpConnectionInfo;
|
|
213
|
-
/** 重新连接(可选) */
|
|
214
|
-
reconnect?(): Promise<void>;
|
|
215
|
-
addConnectionStatusListener?(listener: ConnectionStatusListener): void;
|
|
216
|
-
removeConnectionStatusListener?(listener: ConnectionStatusListener): void;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// ══════════════════════ InProcessProvider 扩展 ══════════════════════
|
|
220
|
-
|
|
221
|
-
/** InProcessProvider 在 ToolProvider 基础上提供的额外方法 */
|
|
222
|
-
export interface InProcessProvider extends ToolProvider {
|
|
223
|
-
register(tool: Tool, meta?: { category?: string; tags?: string[]; source?: AssetSource }): void;
|
|
224
|
-
registerAll(toolList: Tool[], meta?: { category?: string; tags?: string[]; source?: AssetSource }): void;
|
|
225
|
-
unregister(name: string): void;
|
|
226
|
-
/** 热替换(更新后自动通知) */
|
|
227
|
-
replace(tool: Tool, meta?: { category?: string; tags?: string[]; source?: AssetSource }): void;
|
|
228
|
-
has(name: string): boolean;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// ══════════════════════ McpProvider 扩展 ══════════════════════
|
|
232
|
-
|
|
233
|
-
export interface McpReconnectConfig {
|
|
234
|
-
enabled?: boolean;
|
|
235
|
-
maxRetries?: number;
|
|
236
|
-
/** 首次重连延迟(ms),默认 1000 */
|
|
237
|
-
initialDelayMs?: number;
|
|
238
|
-
/** 最大重连延迟(ms),默认 30000 */
|
|
239
|
-
maxDelayMs?: number;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
export interface StreamableHttpReconnectionOptions {
|
|
243
|
-
/** 首次重连延迟(ms),默认 1000 */
|
|
244
|
-
initialReconnectionDelay?: number;
|
|
245
|
-
/** 最大重连延迟(ms),默认 30000 */
|
|
246
|
-
maxReconnectionDelay?: number;
|
|
247
|
-
/** 退避增长因子,默认 1.5 */
|
|
248
|
-
reconnectionDelayGrowFactor?: number;
|
|
249
|
-
/** 最大重试次数,默认 2 */
|
|
250
|
-
maxRetries?: number;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export interface StdioMcpServerConfig {
|
|
254
|
-
name: string;
|
|
255
|
-
transport: 'stdio';
|
|
256
|
-
command: string;
|
|
257
|
-
args?: string[];
|
|
258
|
-
env?: Record<string, string>;
|
|
259
|
-
cwd?: string;
|
|
260
|
-
reconnect?: McpReconnectConfig;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
export interface StreamableHttpMcpServerConfig {
|
|
264
|
-
name: string;
|
|
265
|
-
transport: 'streamableHttp';
|
|
266
|
-
url: string;
|
|
267
|
-
headers?: Record<string, string>;
|
|
268
|
-
/** SDK 内置重连配置(仅 streamableHttp 生效) */
|
|
269
|
-
reconnectionOptions?: StreamableHttpReconnectionOptions;
|
|
270
|
-
/** 恢复已有会话(仅 streamableHttp 生效) */
|
|
271
|
-
sessionId?: string;
|
|
272
|
-
/** 应用层会话级重连配置 */
|
|
273
|
-
reconnect?: McpReconnectConfig;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
export interface SseMcpServerConfig {
|
|
277
|
-
name: string;
|
|
278
|
-
transport: 'sse';
|
|
279
|
-
url: string;
|
|
280
|
-
headers?: Record<string, string>;
|
|
281
|
-
/** 旧版 SSE 仅支持应用层重连 */
|
|
282
|
-
reconnect?: McpReconnectConfig;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* MCP Server 配置(判别联合)
|
|
287
|
-
*
|
|
288
|
-
* - stdio: 本地子进程,stdin/stdout 通信
|
|
289
|
-
* - streamableHttp: 推荐的 HTTP 传输(SDK 内置重连 + 流恢复 + 会话管理)
|
|
290
|
-
* - sse: 旧版 SSE 传输(已被 SDK 标记 deprecated,仅用于兼容旧 MCP Server)
|
|
291
|
-
*/
|
|
292
|
-
export type McpServerConfig =
|
|
293
|
-
| StdioMcpServerConfig
|
|
294
|
-
| StreamableHttpMcpServerConfig
|
|
295
|
-
| SseMcpServerConfig;
|
|
296
|
-
|
|
297
|
-
/** MCP 连接信息(只读快照) */
|
|
298
|
-
export interface McpConnectionInfo {
|
|
299
|
-
name: string;
|
|
300
|
-
status: McpConnectionStatus;
|
|
301
|
-
toolCount: number;
|
|
302
|
-
error?: string;
|
|
303
|
-
lastConnectedAt?: number;
|
|
304
|
-
reconnectAttempts?: number;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/** McpProvider 在 ToolProvider 基础上提供的额外方法 */
|
|
308
|
-
export interface McpProviderExtended extends ToolProvider {
|
|
309
|
-
getStatus(): McpConnectionStatus;
|
|
310
|
-
getError(): string | undefined;
|
|
311
|
-
getConfig(): McpServerConfig;
|
|
312
|
-
getConnectionInfo(): McpConnectionInfo;
|
|
313
|
-
reconnect(): Promise<void>;
|
|
314
|
-
addConnectionStatusListener(listener: ConnectionStatusListener): void;
|
|
315
|
-
removeConnectionStatusListener(listener: ConnectionStatusListener): void;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// ══════════════════════ Search ══════════════════════
|
|
319
|
-
|
|
320
|
-
/** 搜索条件 */
|
|
321
|
-
export interface ToolSearchQuery {
|
|
322
|
-
keyword?: string;
|
|
323
|
-
category?: string;
|
|
324
|
-
tags?: string[];
|
|
325
|
-
source?: AssetSource;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/** 分类汇总 */
|
|
329
|
-
export interface CategorySummary {
|
|
330
|
-
category: string;
|
|
331
|
-
count: number;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
// ══════════════════════ Provider Info ══════════════════════
|
|
335
|
-
|
|
336
|
-
/** Provider 摘要信息 */
|
|
337
|
-
export interface ProviderInfo {
|
|
338
|
-
id: string;
|
|
339
|
-
source: AssetSource;
|
|
340
|
-
toolCount: number;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
// ══════════════════════ ToolRuntimeManager ══════════════════════
|
|
344
|
-
|
|
345
|
-
/** 工具运行时管理器接口 */
|
|
346
|
-
export interface ToolRuntimeManager {
|
|
347
|
-
// Provider 管理
|
|
348
|
-
addProvider(provider: ToolProvider): Promise<void>;
|
|
349
|
-
removeProvider(id: string): Promise<void>;
|
|
350
|
-
getProviders(): ProviderInfo[];
|
|
351
|
-
getProvider(id: string): ToolProvider | undefined;
|
|
352
|
-
|
|
353
|
-
// 精确查找
|
|
354
|
-
getDescriptor(name: string): ToolDescriptor | undefined;
|
|
355
|
-
hasDescriptor(name: string): boolean;
|
|
356
|
-
|
|
357
|
-
// 统一搜索
|
|
358
|
-
search(query?: ToolSearchQuery): ToolDescriptor[];
|
|
359
|
-
getAllDescriptors(): ToolDescriptor[];
|
|
360
|
-
|
|
361
|
-
// 会话级启用/禁用
|
|
362
|
-
enable(names: string[]): Promise<Tool[]>;
|
|
363
|
-
disable(names: string[]): void;
|
|
364
|
-
enableAll(): Promise<Tool[]>;
|
|
365
|
-
getSessionTools(): Map<string, Tool>;
|
|
366
|
-
getSessionToolNames(): string[];
|
|
367
|
-
|
|
368
|
-
// 中间件
|
|
369
|
-
use(middleware: ToolMiddleware): void;
|
|
370
|
-
|
|
371
|
-
// 变更订阅
|
|
372
|
-
addChangeListener(listener: ToolChangeListener): void;
|
|
373
|
-
removeChangeListener(listener: ToolChangeListener): void;
|
|
374
|
-
addConnectionStatusListener(listener: ConnectionStatusListener): void;
|
|
375
|
-
removeConnectionStatusListener(listener: ConnectionStatusListener): void;
|
|
376
|
-
addSessionToolsChangeListener(listener: SessionToolsChangeListener): void;
|
|
377
|
-
removeSessionToolsChangeListener(listener: SessionToolsChangeListener): void;
|
|
378
|
-
|
|
379
|
-
// 统计
|
|
380
|
-
categories(): CategorySummary[];
|
|
381
|
-
getStats(): Map<string, ToolExecutionStats>;
|
|
382
|
-
getToolStats(name: string): ToolExecutionStats | undefined;
|
|
383
|
-
|
|
384
|
-
// MCP 连接聚合
|
|
385
|
-
getMcpConnectionInfos(): McpConnectionInfo[];
|
|
386
|
-
|
|
387
|
-
// 生命周期
|
|
388
|
-
destroy(): Promise<void>;
|
|
389
|
-
}
|