sema-core 2.0.15 → 2.1.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/README.md +1 -31
- package/dist/core/Conversation.d.ts.map +1 -1
- package/dist/core/Conversation.js +10 -7
- package/dist/core/Conversation.js.map +1 -1
- package/dist/core/RunTools.d.ts.map +1 -1
- package/dist/core/RunTools.js +43 -8
- package/dist/core/RunTools.js.map +1 -1
- package/dist/core/SemaCore.d.ts +6 -2
- package/dist/core/SemaCore.d.ts.map +1 -1
- package/dist/core/SemaCore.js +5 -2
- package/dist/core/SemaCore.js.map +1 -1
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +45 -13
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/core/SemaSession.d.ts +3 -11
- package/dist/core/SemaSession.d.ts.map +1 -1
- package/dist/core/SemaSession.js +2 -10
- package/dist/core/SemaSession.js.map +1 -1
- package/dist/core/SessionPool.d.ts.map +1 -1
- package/dist/core/SessionPool.js +3 -2
- package/dist/core/SessionPool.js.map +1 -1
- package/dist/events/types.d.ts +11 -0
- package/dist/events/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/ConfManager.d.ts +9 -1
- package/dist/manager/ConfManager.d.ts.map +1 -1
- package/dist/manager/ConfManager.js +25 -22
- package/dist/manager/ConfManager.js.map +1 -1
- package/dist/manager/ModelManager.d.ts +30 -2
- package/dist/manager/ModelManager.d.ts.map +1 -1
- package/dist/manager/ModelManager.js +103 -32
- package/dist/manager/ModelManager.js.map +1 -1
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +105 -41
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/prompt/compact.d.ts +30 -1
- package/dist/prompt/compact.d.ts.map +1 -1
- package/dist/prompt/compact.js +75 -18
- package/dist/prompt/compact.js.map +1 -1
- package/dist/prompt/inputPredict.d.ts +2 -0
- package/dist/prompt/inputPredict.d.ts.map +1 -0
- package/dist/prompt/inputPredict.js +43 -0
- package/dist/prompt/inputPredict.js.map +1 -0
- package/dist/prompt/permission.d.ts +1 -1
- package/dist/prompt/permission.d.ts.map +1 -1
- package/dist/prompt/permission.js +49 -6
- package/dist/prompt/permission.js.map +1 -1
- package/dist/prompt/tools/fetchUrl.d.ts +1 -1
- package/dist/prompt/tools/fetchUrl.d.ts.map +1 -1
- package/dist/prompt/tools/fetchUrl.js +3 -0
- package/dist/prompt/tools/fetchUrl.js.map +1 -1
- package/dist/services/agents/agentsManager.d.ts.map +1 -1
- package/dist/services/agents/agentsManager.js +3 -2
- package/dist/services/agents/agentsManager.js.map +1 -1
- package/dist/services/agents/genSystemReminder.d.ts +10 -1
- package/dist/services/agents/genSystemReminder.d.ts.map +1 -1
- package/dist/services/agents/genSystemReminder.js +48 -2
- package/dist/services/agents/genSystemReminder.js.map +1 -1
- package/dist/services/api/adapt/openai.d.ts.map +1 -1
- package/dist/services/api/adapt/openai.js +25 -4
- package/dist/services/api/adapt/openai.js.map +1 -1
- package/dist/services/api/adapt/util.d.ts +15 -0
- package/dist/services/api/adapt/util.d.ts.map +1 -1
- package/dist/services/api/adapt/util.js +54 -2
- package/dist/services/api/adapt/util.js.map +1 -1
- package/dist/services/api/apiUtil.d.ts.map +1 -1
- package/dist/services/api/apiUtil.js +8 -7
- package/dist/services/api/apiUtil.js.map +1 -1
- package/dist/services/api/queryLLM.d.ts.map +1 -1
- package/dist/services/api/queryLLM.js +22 -16
- package/dist/services/api/queryLLM.js.map +1 -1
- package/dist/services/commands/commandsManager.d.ts.map +1 -1
- package/dist/services/commands/commandsManager.js +3 -2
- package/dist/services/commands/commandsManager.js.map +1 -1
- package/dist/services/commands/runCommand.d.ts.map +1 -1
- package/dist/services/commands/runCommand.js +17 -6
- package/dist/services/commands/runCommand.js.map +1 -1
- package/dist/services/hooks/hookTriggers.d.ts.map +1 -1
- package/dist/services/hooks/hookTriggers.js +3 -2
- package/dist/services/hooks/hookTriggers.js.map +1 -1
- package/dist/services/mcp/MCPClient.d.ts.map +1 -1
- package/dist/services/mcp/MCPClient.js +18 -8
- package/dist/services/mcp/MCPClient.js.map +1 -1
- package/dist/services/mcp/MCPManager.d.ts +27 -12
- package/dist/services/mcp/MCPManager.d.ts.map +1 -1
- package/dist/services/mcp/MCPManager.js +189 -75
- package/dist/services/mcp/MCPManager.js.map +1 -1
- package/dist/services/mcp/MCPToolAdapter.d.ts.map +1 -1
- package/dist/services/mcp/MCPToolAdapter.js +128 -22
- package/dist/services/mcp/MCPToolAdapter.js.map +1 -1
- package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
- package/dist/services/plugins/pluginsManager.js +24 -11
- package/dist/services/plugins/pluginsManager.js.map +1 -1
- package/dist/services/skills/skillsManager.d.ts +18 -3
- package/dist/services/skills/skillsManager.d.ts.map +1 -1
- package/dist/services/skills/skillsManager.js +49 -4
- package/dist/services/skills/skillsManager.js.map +1 -1
- package/dist/tools/FetchUrl.d.ts.map +1 -1
- package/dist/tools/FetchUrl.js +10 -3
- package/dist/tools/FetchUrl.js.map +1 -1
- package/dist/tools/ListCrons.d.ts +1 -0
- package/dist/tools/ListCrons.d.ts.map +1 -1
- package/dist/tools/ListCrons.js +1 -0
- package/dist/tools/ListCrons.js.map +1 -1
- package/dist/tools/LoadTools.js +1 -1
- package/dist/tools/PeekBgJob.d.ts +2 -2
- package/dist/tools/PlanToAgent.d.ts.map +1 -1
- package/dist/tools/PlanToAgent.js +7 -4
- package/dist/tools/PlanToAgent.js.map +1 -1
- package/dist/tools/RunShell.d.ts.map +1 -1
- package/dist/tools/RunShell.js +4 -16
- package/dist/tools/RunShell.js.map +1 -1
- package/dist/tools/Skill.d.ts.map +1 -1
- package/dist/tools/Skill.js +3 -2
- package/dist/tools/Skill.js.map +1 -1
- package/dist/tools/base/Tool.d.ts +1 -0
- package/dist/tools/base/Tool.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/mcp.d.ts +7 -0
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/model.d.ts +3 -0
- package/dist/types/model.d.ts.map +1 -1
- package/dist/types/session.d.ts +6 -2
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/settings.d.ts +3 -1
- package/dist/types/settings.d.ts.map +1 -1
- package/dist/types/skill.d.ts +2 -0
- package/dist/types/skill.d.ts.map +1 -1
- package/dist/util/autoRunContext.d.ts +2 -0
- package/dist/util/autoRunContext.d.ts.map +1 -1
- package/dist/util/autoRunContext.js +2 -0
- package/dist/util/autoRunContext.js.map +1 -1
- package/dist/util/compact.d.ts +27 -10
- package/dist/util/compact.d.ts.map +1 -1
- package/dist/util/compact.js +403 -61
- package/dist/util/compact.js.map +1 -1
- package/dist/util/fetchUrl.d.ts +1 -0
- package/dist/util/fetchUrl.d.ts.map +1 -1
- package/dist/util/fetchUrl.js +34 -4
- package/dist/util/fetchUrl.js.map +1 -1
- package/dist/util/history.d.ts +1 -1
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +21 -5
- package/dist/util/history.js.map +1 -1
- package/dist/util/i18n/de.d.ts +92 -0
- package/dist/util/i18n/de.d.ts.map +1 -0
- package/dist/util/i18n/de.js +104 -0
- package/dist/util/i18n/de.js.map +1 -0
- package/dist/util/i18n/en.d.ts +92 -0
- package/dist/util/i18n/en.d.ts.map +1 -0
- package/dist/util/i18n/en.js +104 -0
- package/dist/util/i18n/en.js.map +1 -0
- package/dist/util/i18n/fr.d.ts +92 -0
- package/dist/util/i18n/fr.d.ts.map +1 -0
- package/dist/util/i18n/fr.js +104 -0
- package/dist/util/i18n/fr.js.map +1 -0
- package/dist/util/i18n/index.d.ts +7 -0
- package/dist/util/i18n/index.d.ts.map +1 -0
- package/dist/util/i18n/index.js +36 -0
- package/dist/util/i18n/index.js.map +1 -0
- package/dist/util/i18n/it.d.ts +92 -0
- package/dist/util/i18n/it.d.ts.map +1 -0
- package/dist/util/i18n/it.js +104 -0
- package/dist/util/i18n/it.js.map +1 -0
- package/dist/util/i18n/zh.d.ts +96 -0
- package/dist/util/i18n/zh.d.ts.map +1 -0
- package/dist/util/i18n/zh.js +107 -0
- package/dist/util/i18n/zh.js.map +1 -0
- package/dist/util/i18n.d.ts +98 -0
- package/dist/util/i18n.d.ts.map +1 -0
- package/dist/util/i18n.js +228 -0
- package/dist/util/i18n.js.map +1 -0
- package/dist/util/inputPredict.d.ts +15 -0
- package/dist/util/inputPredict.d.ts.map +1 -0
- package/dist/util/inputPredict.js +135 -0
- package/dist/util/inputPredict.js.map +1 -0
- package/dist/util/message.d.ts +1 -1
- package/dist/util/message.d.ts.map +1 -1
- package/dist/util/message.js +5 -2
- package/dist/util/message.js.map +1 -1
- package/dist/util/model.d.ts.map +1 -1
- package/dist/util/model.js +9 -3
- package/dist/util/model.js.map +1 -1
- package/dist/util/shell.d.ts.map +1 -1
- package/dist/util/shell.js +6 -1
- package/dist/util/shell.js.map +1 -1
- package/dist/util/shellSafety.d.ts +40 -4
- package/dist/util/shellSafety.d.ts.map +1 -1
- package/dist/util/shellSafety.js +545 -8
- package/dist/util/shellSafety.js.map +1 -1
- package/dist/util/tokens.d.ts +10 -2
- package/dist/util/tokens.d.ts.map +1 -1
- package/dist/util/tokens.js +19 -15
- package/dist/util/tokens.js.map +1 -1
- package/package.json +3 -1
|
@@ -9,6 +9,7 @@ const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
|
9
9
|
const sse_js_1 = require("@modelcontextprotocol/sdk/client/sse.js");
|
|
10
10
|
const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
11
11
|
const log_1 = require("../../util/log");
|
|
12
|
+
const i18n_1 = require("../../util/i18n");
|
|
12
13
|
class MCPClient {
|
|
13
14
|
constructor(config) {
|
|
14
15
|
this.config = config;
|
|
@@ -37,9 +38,9 @@ class MCPClient {
|
|
|
37
38
|
// 根据传输类型创建 transport
|
|
38
39
|
this.transport = this.createTransport();
|
|
39
40
|
// 带超时的连接
|
|
40
|
-
await this.withTimeout(this.client.connect(this.transport), MCPClient.CONNECT_TIMEOUT,
|
|
41
|
+
await this.withTimeout(this.client.connect(this.transport), MCPClient.CONNECT_TIMEOUT, (0, i18n_1.t)('mcp.connectTimeout', { seconds: MCPClient.CONNECT_TIMEOUT / 1000 }));
|
|
41
42
|
// 获取能力(也需要超时保护)
|
|
42
|
-
await this.withTimeout(this.fetchCapabilities(), MCPClient.CONNECT_TIMEOUT,
|
|
43
|
+
await this.withTimeout(this.fetchCapabilities(), MCPClient.CONNECT_TIMEOUT, (0, i18n_1.t)('mcp.capabilitiesTimeout', { seconds: MCPClient.CONNECT_TIMEOUT / 1000 }));
|
|
43
44
|
this._status = 'connected';
|
|
44
45
|
(0, log_1.logDebug)(`MCP Server [${this.config.name}] 连接成功`);
|
|
45
46
|
}
|
|
@@ -47,6 +48,14 @@ class MCPClient {
|
|
|
47
48
|
this._status = 'error';
|
|
48
49
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
49
50
|
(0, log_1.logError)(`MCP Server [${this.config.name}] 连接失败: ${errorMsg}`);
|
|
51
|
+
// 超时或失败时关掉 transport:stdio 方式已 spawn 的子进程否则会一直活着
|
|
52
|
+
try {
|
|
53
|
+
await this.transport?.close();
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// 忽略清理错误
|
|
57
|
+
}
|
|
58
|
+
this.transport = null;
|
|
50
59
|
throw error;
|
|
51
60
|
}
|
|
52
61
|
}
|
|
@@ -78,7 +87,7 @@ class MCPClient {
|
|
|
78
87
|
// 先尝试优雅关闭客户端
|
|
79
88
|
if (this.client) {
|
|
80
89
|
await this.withTimeout(this.client.close(), 5000, // 5秒超时
|
|
81
|
-
'
|
|
90
|
+
(0, i18n_1.t)('mcp.closeTimeout'));
|
|
82
91
|
}
|
|
83
92
|
(0, log_1.logDebug)(`MCP Server [${this.config.name}] 已断开`);
|
|
84
93
|
}
|
|
@@ -109,7 +118,7 @@ class MCPClient {
|
|
|
109
118
|
*/
|
|
110
119
|
async callTool(toolName, args) {
|
|
111
120
|
if (this._status !== 'connected') {
|
|
112
|
-
throw new Error(
|
|
121
|
+
throw new Error((0, i18n_1.t)('mcp.notConnected', { name: this.config.name }));
|
|
113
122
|
}
|
|
114
123
|
const result = await this.client.callTool({
|
|
115
124
|
name: toolName,
|
|
@@ -124,7 +133,7 @@ class MCPClient {
|
|
|
124
133
|
switch (this.config.transport) {
|
|
125
134
|
case 'stdio':
|
|
126
135
|
if (!this.config.command) {
|
|
127
|
-
throw new Error(
|
|
136
|
+
throw new Error((0, i18n_1.t)('mcp.stdioNeedsCommand'));
|
|
128
137
|
}
|
|
129
138
|
return new stdio_js_1.StdioClientTransport({
|
|
130
139
|
command: this.config.command,
|
|
@@ -134,18 +143,18 @@ class MCPClient {
|
|
|
134
143
|
});
|
|
135
144
|
case 'sse':
|
|
136
145
|
if (!this.config.url) {
|
|
137
|
-
throw new Error(
|
|
146
|
+
throw new Error((0, i18n_1.t)('mcp.sseNeedsUrl'));
|
|
138
147
|
}
|
|
139
148
|
return new sse_js_1.SSEClientTransport(new URL(this.config.url));
|
|
140
149
|
case 'http':
|
|
141
150
|
if (!this.config.url) {
|
|
142
|
-
throw new Error(
|
|
151
|
+
throw new Error((0, i18n_1.t)('mcp.httpNeedsUrl'));
|
|
143
152
|
}
|
|
144
153
|
return new streamableHttp_js_1.StreamableHTTPClientTransport(new URL(this.config.url), {
|
|
145
154
|
requestInit: this.config.headers ? { headers: this.config.headers } : undefined
|
|
146
155
|
});
|
|
147
156
|
default:
|
|
148
|
-
throw new Error(
|
|
157
|
+
throw new Error((0, i18n_1.t)('mcp.unsupportedTransport', { transport: String(this.config.transport) }));
|
|
149
158
|
}
|
|
150
159
|
}
|
|
151
160
|
async fetchCapabilities() {
|
|
@@ -160,6 +169,7 @@ class MCPClient {
|
|
|
160
169
|
properties: tool.inputSchema.properties,
|
|
161
170
|
required: tool.inputSchema.required,
|
|
162
171
|
},
|
|
172
|
+
annotations: tool.annotations,
|
|
163
173
|
}))
|
|
164
174
|
};
|
|
165
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../../src/services/mcp/MCPClient.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,wEAAkE;AAClE,wEAAgF;AAChF,oEAA4E;AAC5E,0FAAkG;AAQlG,wCAAmD;
|
|
1
|
+
{"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../../src/services/mcp/MCPClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,12 @@
|
|
|
5
5
|
* 实现优先级:插件 < 用户级 < 项目级
|
|
6
6
|
*
|
|
7
7
|
* 状态管理:
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
8
|
+
* - 服务启用/禁用:settings.json -> disabledMcpServers(用户级 ~/.sema + 项目级 .sema 取并集生效)
|
|
9
|
+
* - 可用工具列表:settings.json -> enabledMcpServerUseTools(用户级打底、项目级同名覆盖)
|
|
10
|
+
*
|
|
11
|
+
* 变量展开:.mcp.json 条目的 command / args / env / url / headers 支持
|
|
12
|
+
* - ${SEMA_PLUGIN_ROOT}:该 .mcp.json 所属根目录(插件目录;<project>/.sema/.mcp.json 为 <project>)
|
|
13
|
+
* - ${VAR}、${VAR:-默认值}:进程环境变量,未定义且无默认值时原样保留
|
|
10
14
|
*/
|
|
11
15
|
import { Tool } from '../../tools/base/Tool';
|
|
12
16
|
import { MCPServerConfig, MCPServerInfo } from '../../types/mcp';
|
|
@@ -17,13 +21,9 @@ declare class MCPManager {
|
|
|
17
21
|
private semaUserConfigPath;
|
|
18
22
|
private semaProjectConfigPath;
|
|
19
23
|
private serverInfoCache;
|
|
20
|
-
private
|
|
24
|
+
private refreshChain;
|
|
21
25
|
private clients;
|
|
22
26
|
constructor();
|
|
23
|
-
/**
|
|
24
|
-
* 清空缓存
|
|
25
|
-
*/
|
|
26
|
-
private invalidateCache;
|
|
27
27
|
/**
|
|
28
28
|
* 读取 JSON 文件,失败返回 null
|
|
29
29
|
*/
|
|
@@ -41,6 +41,14 @@ declare class MCPManager {
|
|
|
41
41
|
* 写入 Sema 项目级 settings.json(合并写入,保留其他字段)
|
|
42
42
|
*/
|
|
43
43
|
private writeSemaSettings;
|
|
44
|
+
/**
|
|
45
|
+
* 禁用的 MCP Server 集合:用户级 + 项目级并集(任一层禁用即禁用)
|
|
46
|
+
*/
|
|
47
|
+
private readDisabledUnion;
|
|
48
|
+
/**
|
|
49
|
+
* MCP Server 可用工具映射:用户级打底、项目级同名覆盖(与 disabled 同样的分层思路)
|
|
50
|
+
*/
|
|
51
|
+
private readUseToolsMerged;
|
|
44
52
|
/**
|
|
45
53
|
* 解析 Sema 来源的 MCP Server 配置条目
|
|
46
54
|
*/
|
|
@@ -99,14 +107,15 @@ declare class MCPManager {
|
|
|
99
107
|
*/
|
|
100
108
|
init(): Promise<void>;
|
|
101
109
|
/**
|
|
102
|
-
* 获取所有 MCP Server
|
|
110
|
+
* 获取所有 MCP Server 信息(有缓存则直接返回,否则等待正在进行的刷新或重新加载)
|
|
103
111
|
*/
|
|
104
112
|
getMCPServerConfigs(): Promise<MCPServerInfo[]>;
|
|
105
113
|
/**
|
|
106
|
-
* 刷新 MCP Server
|
|
114
|
+
* 刷新 MCP Server 信息(串行排队,见 refreshChain)
|
|
107
115
|
* 对比配置变化,仅重连配置有变动或新增的服务器,配置未变且已连接的保留现有连接
|
|
108
116
|
*/
|
|
109
117
|
refreshMCPServerConfigs(): Promise<MCPServerInfo[]>;
|
|
118
|
+
private doRefresh;
|
|
110
119
|
/**
|
|
111
120
|
* 获取所有 MCP 工具(同步,基于当前已连接的客户端)
|
|
112
121
|
*/
|
|
@@ -123,19 +132,25 @@ declare class MCPManager {
|
|
|
123
132
|
* 重新连接指定 MCP Server
|
|
124
133
|
*/
|
|
125
134
|
reconnectMCPServer(name: string): Promise<MCPServerInfo[]>;
|
|
135
|
+
/**
|
|
136
|
+
* 启停写入哪层 settings:跟随 server 所在层
|
|
137
|
+
* (项目级/local 写项目级,用户级/插件写用户级,即全局生效)
|
|
138
|
+
*/
|
|
139
|
+
private toggleScope;
|
|
126
140
|
/**
|
|
127
141
|
* 禁用指定 MCP Server
|
|
128
|
-
* 修改
|
|
142
|
+
* 修改 settings.json 的 disabledMcpServers 字段(写入层见 toggleScope)
|
|
129
143
|
*/
|
|
130
144
|
disableMCPServer(name: string): Promise<MCPServerInfo[]>;
|
|
131
145
|
/**
|
|
132
146
|
* 启用指定 MCP Server
|
|
133
|
-
*
|
|
147
|
+
* 只从目标层(见 toggleScope)的 disabledMcpServers 移除;若另一层仍禁用,最终仍为禁用
|
|
134
148
|
*/
|
|
135
149
|
enableMCPServer(name: string): Promise<MCPServerInfo[]>;
|
|
136
150
|
/**
|
|
137
151
|
* 更新指定 MCP Server 的工具使用列表
|
|
138
|
-
* 修改
|
|
152
|
+
* 修改 settings.json 的 enabledMcpServerUseTools 字段(写入层跟随 server 所在层,见 toggleScope;
|
|
153
|
+
* 生效值为用户级打底、项目级同名覆盖,toolNames 为 null 时删除该层记录=全部可用)
|
|
139
154
|
*/
|
|
140
155
|
updateMCPUseTools(name: string, toolNames: string[] | null): Promise<MCPServerInfo[]>;
|
|
141
156
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPManager.d.ts","sourceRoot":"","sources":["../../../src/services/mcp/MCPManager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MCPManager.d.ts","sourceRoot":"","sources":["../../../src/services/mcp/MCPManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAgB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA2D9E;;GAEG;AACH,cAAM,UAAU;IACd,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,qBAAqB,CAAQ;IAGrC,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,YAAY,CAAgD;IAGpE,OAAO,CAAC,OAAO,CAAoC;;IAiBnD;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;;OAGG;YACW,mBAAmB;IAkDjC;;;;OAIG;YACW,WAAW;IAgDzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;YACW,aAAa;IA0C3B;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;YACW,aAAa;IAM3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAMrD;;;OAGG;IACH,uBAAuB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAOrC,SAAS;IAuDvB;;OAEG;IACH,WAAW,IAAI,IAAI,EAAE;IAsBrB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAWrE;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA4B7D;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAehE;;;OAGG;IACH,OAAO,CAAC,WAAW;IAKnB;;;OAGG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqB9D;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAuB7D;;;;OAIG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAsB3F;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B;AAMD;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpD;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|