@warmio/contracts 2.0.0 → 3.0.2
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 +3 -3
- package/dist/api/endpoints.d.ts +34 -48
- package/dist/api/endpoints.d.ts.map +1 -1
- package/dist/api/endpoints.js +36 -56
- package/dist/api/endpoints.js.map +1 -1
- package/dist/examples/financial-context.d.ts.map +1 -1
- package/dist/examples/financial-context.js +2 -1
- package/dist/examples/financial-context.js.map +1 -1
- package/dist/generated/base-openapi.d.ts +1 -1
- package/dist/generated/base-openapi.d.ts.map +1 -1
- package/dist/generated/base-openapi.js +1 -1
- package/dist/generated/base-openapi.js.map +1 -1
- package/dist/generated/mcp-package-release-metadata.d.ts +7 -0
- package/dist/generated/mcp-package-release-metadata.d.ts.map +1 -0
- package/dist/generated/mcp-package-release-metadata.js +7 -0
- package/dist/generated/mcp-package-release-metadata.js.map +1 -0
- package/dist/generated/private-mcp-tool-descriptors.d.ts +28 -43
- package/dist/generated/private-mcp-tool-descriptors.d.ts.map +1 -1
- package/dist/generated/private-mcp-tool-descriptors.js +38 -52
- package/dist/generated/private-mcp-tool-descriptors.js.map +1 -1
- package/dist/generated/protected-crawler-paths.d.ts +1 -1
- package/dist/generated/protected-crawler-paths.d.ts.map +1 -1
- package/dist/generated/protected-crawler-paths.js +3 -0
- package/dist/generated/protected-crawler-paths.js.map +1 -1
- package/dist/generated/warm-app-api-manifest.d.ts +1264 -0
- package/dist/generated/warm-app-api-manifest.d.ts.map +1 -0
- package/dist/generated/warm-app-api-manifest.js +1884 -0
- package/dist/generated/warm-app-api-manifest.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +600 -1176
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +31 -35
- package/dist/manifest.js.map +1 -1
- package/dist/mcp/distribution.d.ts +241 -71
- package/dist/mcp/distribution.d.ts.map +1 -1
- package/dist/mcp/distribution.js +137 -56
- package/dist/mcp/distribution.js.map +1 -1
- package/dist/mcp/tools.d.ts +1030 -29
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +11 -30
- package/dist/mcp/tools.js.map +1 -1
- package/dist/openapi/base.yaml +44 -67
- package/dist/openapi/build-openapi.d.ts +8 -2
- package/dist/openapi/build-openapi.d.ts.map +1 -1
- package/dist/openapi/build-openapi.js +93 -21
- package/dist/openapi/build-openapi.js.map +1 -1
- package/dist/product.d.ts.map +1 -1
- package/dist/product.js +9 -1
- package/dist/product.js.map +1 -1
- package/dist/schemas/financial-context.d.ts +33 -0
- package/dist/schemas/financial-context.d.ts.map +1 -1
- package/dist/schemas/financial-context.js +21 -6
- package/dist/schemas/financial-context.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/public-api.d.ts +1368 -0
- package/dist/schemas/public-api.d.ts.map +1 -0
- package/dist/schemas/public-api.js +181 -0
- package/dist/schemas/public-api.js.map +1 -0
- package/dist/types.d.ts +8 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -8
- package/dist/public-discovery.d.ts +0 -116
- package/dist/public-discovery.d.ts.map +0 -1
- package/dist/public-discovery.js +0 -91
- package/dist/public-discovery.js.map +0 -1
package/dist/mcp/distribution.js
CHANGED
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
* Separate package module: installer and client configuration facts are shared
|
|
3
3
|
* by the app and docs but are not part of the API endpoint registry.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
export const
|
|
7
|
-
export const
|
|
8
|
-
export const WARM_MCP_MINIMUM_NODE_VERSION = '>=18';
|
|
9
|
-
import { apiAudienceRegistry } from '../api/endpoints.js';
|
|
10
|
-
export const WARM_MCP_MODES = Object.values(apiAudienceRegistry).map(({ mcp_mode }) => mcp_mode);
|
|
5
|
+
import { warmMcpPackageReleaseMetadata } from '../generated/mcp-package-release-metadata.js';
|
|
6
|
+
export const WARM_MCP_REQUIRE_REGISTRY_INTEGRITY = 'WARM_MCP_REQUIRE_REGISTRY_INTEGRITY';
|
|
7
|
+
export const WARM_MCP_REGISTRY_INTEGRITY = 'WARM_MCP_REGISTRY_INTEGRITY';
|
|
11
8
|
export const WARM_MCP_CLIENTS = [
|
|
12
9
|
{
|
|
13
10
|
id: 'claude-code',
|
|
14
11
|
name: 'Claude Code',
|
|
15
12
|
format: 'json',
|
|
13
|
+
configDialect: 'mcpServers',
|
|
16
14
|
alwaysInclude: true,
|
|
17
15
|
configPaths: {
|
|
18
16
|
darwin: { root: 'home', segments: ['.claude.json'] },
|
|
@@ -24,6 +22,7 @@ export const WARM_MCP_CLIENTS = [
|
|
|
24
22
|
id: 'claude-desktop',
|
|
25
23
|
name: 'Claude Desktop',
|
|
26
24
|
format: 'json',
|
|
25
|
+
configDialect: 'mcpServers',
|
|
27
26
|
configPaths: {
|
|
28
27
|
darwin: {
|
|
29
28
|
root: 'home',
|
|
@@ -43,6 +42,7 @@ export const WARM_MCP_CLIENTS = [
|
|
|
43
42
|
id: 'cursor',
|
|
44
43
|
name: 'Cursor',
|
|
45
44
|
format: 'json',
|
|
45
|
+
configDialect: 'mcpServers',
|
|
46
46
|
configPaths: {
|
|
47
47
|
darwin: { root: 'home', segments: ['.cursor', 'mcp.json'] },
|
|
48
48
|
linux: { root: 'home', segments: ['.cursor', 'mcp.json'] },
|
|
@@ -53,26 +53,47 @@ export const WARM_MCP_CLIENTS = [
|
|
|
53
53
|
id: 'windsurf',
|
|
54
54
|
name: 'Windsurf',
|
|
55
55
|
format: 'json',
|
|
56
|
+
configDialect: 'mcpServers',
|
|
56
57
|
configPaths: {
|
|
57
|
-
darwin: {
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
darwin: {
|
|
59
|
+
root: 'home',
|
|
60
|
+
segments: ['.codeium', 'windsurf', 'mcp_config.json'],
|
|
61
|
+
},
|
|
62
|
+
linux: {
|
|
63
|
+
root: 'home',
|
|
64
|
+
segments: ['.codeium', 'windsurf', 'mcp_config.json'],
|
|
65
|
+
},
|
|
66
|
+
win32: {
|
|
67
|
+
root: 'home',
|
|
68
|
+
segments: ['.codeium', 'windsurf', 'mcp_config.json'],
|
|
69
|
+
},
|
|
60
70
|
},
|
|
61
71
|
},
|
|
62
72
|
{
|
|
63
73
|
id: 'opencode',
|
|
64
74
|
name: 'OpenCode',
|
|
65
75
|
format: 'json',
|
|
76
|
+
configDialect: 'openCode',
|
|
66
77
|
configPaths: {
|
|
67
|
-
darwin: {
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
darwin: {
|
|
79
|
+
root: 'home',
|
|
80
|
+
segments: ['.config', 'opencode', 'opencode.json'],
|
|
81
|
+
},
|
|
82
|
+
linux: {
|
|
83
|
+
root: 'home',
|
|
84
|
+
segments: ['.config', 'opencode', 'opencode.json'],
|
|
85
|
+
},
|
|
86
|
+
win32: {
|
|
87
|
+
root: 'home',
|
|
88
|
+
segments: ['.config', 'opencode', 'opencode.json'],
|
|
89
|
+
},
|
|
70
90
|
},
|
|
71
91
|
},
|
|
72
92
|
{
|
|
73
93
|
id: 'codex-cli',
|
|
74
94
|
name: 'Codex CLI',
|
|
75
95
|
format: 'toml',
|
|
96
|
+
configDialect: 'mcpServers',
|
|
76
97
|
configPaths: {
|
|
77
98
|
darwin: { root: 'home', segments: ['.codex', 'config.toml'] },
|
|
78
99
|
linux: { root: 'home', segments: ['.codex', 'config.toml'] },
|
|
@@ -83,16 +104,27 @@ export const WARM_MCP_CLIENTS = [
|
|
|
83
104
|
id: 'antigravity',
|
|
84
105
|
name: 'Antigravity',
|
|
85
106
|
format: 'json',
|
|
107
|
+
configDialect: 'mcpServers',
|
|
86
108
|
configPaths: {
|
|
87
|
-
darwin: {
|
|
88
|
-
|
|
89
|
-
|
|
109
|
+
darwin: {
|
|
110
|
+
root: 'home',
|
|
111
|
+
segments: ['.gemini', 'antigravity', 'mcp_config.json'],
|
|
112
|
+
},
|
|
113
|
+
linux: {
|
|
114
|
+
root: 'home',
|
|
115
|
+
segments: ['.gemini', 'antigravity', 'mcp_config.json'],
|
|
116
|
+
},
|
|
117
|
+
win32: {
|
|
118
|
+
root: 'home',
|
|
119
|
+
segments: ['.gemini', 'antigravity', 'mcp_config.json'],
|
|
120
|
+
},
|
|
90
121
|
},
|
|
91
122
|
},
|
|
92
123
|
{
|
|
93
124
|
id: 'gemini-cli',
|
|
94
125
|
name: 'Gemini CLI',
|
|
95
126
|
format: 'json',
|
|
127
|
+
configDialect: 'mcpServers',
|
|
96
128
|
configPaths: {
|
|
97
129
|
darwin: { root: 'home', segments: ['.gemini', 'settings.json'] },
|
|
98
130
|
linux: { root: 'home', segments: ['.gemini', 'settings.json'] },
|
|
@@ -106,48 +138,97 @@ export const WARM_MCP_PROJECT_CONFIGS = [
|
|
|
106
138
|
'.vscode/mcp.json',
|
|
107
139
|
];
|
|
108
140
|
export const WARM_MCP_CREDENTIALS = {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
defaultFileName: 'automation_api_key',
|
|
113
|
-
},
|
|
114
|
-
context: {
|
|
115
|
-
apiKeyEnv: 'WARM_CONTEXT_API_KEY',
|
|
116
|
-
apiKeyFileEnv: 'WARM_CONTEXT_API_KEY_FILE',
|
|
117
|
-
defaultFileName: 'context_api_key',
|
|
118
|
-
},
|
|
141
|
+
apiKeyEnv: 'WARM_API_KEY',
|
|
142
|
+
apiKeyFileEnv: 'WARM_API_KEY_FILE',
|
|
143
|
+
defaultFileName: 'api_key',
|
|
119
144
|
};
|
|
120
|
-
export
|
|
121
|
-
|
|
122
|
-
|
|
145
|
+
export function createWarmMcpManifest(metadata) {
|
|
146
|
+
const packageSpec = `${metadata.name}@${metadata.version}`;
|
|
147
|
+
const installCommand = `npx -y ${packageSpec}`;
|
|
148
|
+
const serverConfig = {
|
|
149
|
+
args: ['-y', packageSpec, 'mcp'],
|
|
123
150
|
command: 'npx',
|
|
124
|
-
args: ['-y', WARM_MCP_PACKAGE_SPEC, 'mcp', '--mode', 'automation'],
|
|
125
|
-
},
|
|
126
|
-
context: {
|
|
127
151
|
serverName: 'warm',
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
};
|
|
153
|
+
const packageIntegrity = {
|
|
154
|
+
algorithm: 'sha512',
|
|
155
|
+
registryIntegrity: null,
|
|
156
|
+
trustedPublishReadbackGate: {
|
|
157
|
+
package: metadata.name,
|
|
158
|
+
registryField: 'dist.integrity',
|
|
159
|
+
requiredBeforeTrust: true,
|
|
160
|
+
version: metadata.version,
|
|
161
|
+
workflow: '.github/workflows/publish-mcp.yml',
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
const manifest = {
|
|
165
|
+
clients: WARM_MCP_CLIENTS,
|
|
166
|
+
credentials: WARM_MCP_CREDENTIALS,
|
|
167
|
+
installCommand,
|
|
168
|
+
installerCommand: `${installCommand} install`,
|
|
169
|
+
minimumNodeVersion: metadata.nodeEngine,
|
|
170
|
+
packageIntegrity,
|
|
171
|
+
packageName: metadata.name,
|
|
172
|
+
packageSpec,
|
|
173
|
+
packageVersion: metadata.version,
|
|
174
|
+
projectConfigs: WARM_MCP_PROJECT_CONFIGS,
|
|
175
|
+
serverCommand: `${installCommand} mcp`,
|
|
176
|
+
serverConfig,
|
|
177
|
+
};
|
|
178
|
+
assertWarmMcpLauncherContract(manifest);
|
|
179
|
+
return manifest;
|
|
180
|
+
}
|
|
181
|
+
export function assertWarmMcpLauncherContract(manifest) {
|
|
182
|
+
const expectedSpec = `${manifest.packageName}@${manifest.packageVersion}`;
|
|
183
|
+
validateWarmMcpPackageSpec(manifest.packageSpec, expectedSpec);
|
|
184
|
+
const gate = manifest.packageIntegrity.trustedPublishReadbackGate;
|
|
185
|
+
if (!gate.requiredBeforeTrust ||
|
|
186
|
+
gate.version !== manifest.packageVersion ||
|
|
187
|
+
gate.package !== manifest.packageName ||
|
|
188
|
+
gate.registryField !== 'dist.integrity') {
|
|
189
|
+
throw new Error('Warm MCP package integrity gate must reference the pinned release metadata.');
|
|
190
|
+
}
|
|
191
|
+
if (manifest.packageIntegrity.algorithm !== 'sha512') {
|
|
192
|
+
throw new Error('Warm MCP package integrity contract must use sha512.');
|
|
193
|
+
}
|
|
194
|
+
if (manifest.serverConfig.args.length !== 3 ||
|
|
195
|
+
manifest.serverConfig.command !== 'npx' ||
|
|
196
|
+
manifest.serverConfig.args[0] !== '-y' ||
|
|
197
|
+
manifest.serverConfig.args[1] !== manifest.packageSpec ||
|
|
198
|
+
manifest.serverConfig.args[2] !== 'mcp') {
|
|
199
|
+
throw new Error('Warm MCP server launcher config must pin the exact package spec.');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
export function validateWarmMcpPackageSpec(packageSpec, expectedSpec = WARM_MCP_PACKAGE_SPEC) {
|
|
203
|
+
if (packageSpec.endsWith('@latest')) {
|
|
204
|
+
throw new Error('Warm MCP launcher package spec must not use a floating @latest tag.');
|
|
205
|
+
}
|
|
206
|
+
if (packageSpec !== expectedSpec) {
|
|
207
|
+
throw new Error(`Warm MCP launcher package spec must exactly match ${expectedSpec}.`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
const WARM_MCP_REGISTRY_INTEGRITY_PATTERN = /^sha512-[A-Za-z0-9+/]{86}==$/;
|
|
211
|
+
export function requireWarmMcpRegistryIntegrity(integrity) {
|
|
212
|
+
if (integrity === null || integrity === undefined || integrity.length === 0) {
|
|
213
|
+
throw new Error(`Warm MCP package integrity is unavailable until ${WARM_MCP_MANIFEST.packageIntegrity.trustedPublishReadbackGate.workflow} completes registry readback for ${WARM_MCP_PACKAGE_SPEC}.`);
|
|
214
|
+
}
|
|
215
|
+
if (!WARM_MCP_REGISTRY_INTEGRITY_PATTERN.test(integrity)) {
|
|
216
|
+
throw new Error('Warm MCP package integrity is malformed; expected a sha512-<base64> registry value.');
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
export function maybeRequireWarmMcpRegistryIntegrity(integrity) {
|
|
220
|
+
const environment = Reflect.get(globalThis, 'process')?.env;
|
|
221
|
+
if (environment?.[WARM_MCP_REQUIRE_REGISTRY_INTEGRITY]?.trim() !== '1')
|
|
222
|
+
return;
|
|
223
|
+
requireWarmMcpRegistryIntegrity(integrity ?? environment?.[WARM_MCP_REGISTRY_INTEGRITY]?.trim());
|
|
224
|
+
}
|
|
225
|
+
export const WARM_MCP_MANIFEST = createWarmMcpManifest(warmMcpPackageReleaseMetadata);
|
|
226
|
+
export const WARM_MCP_PACKAGE_NAME = WARM_MCP_MANIFEST.packageName;
|
|
227
|
+
export const WARM_MCP_PACKAGE_VERSION = WARM_MCP_MANIFEST.packageVersion;
|
|
228
|
+
export const WARM_MCP_PACKAGE_SPEC = WARM_MCP_MANIFEST.packageSpec;
|
|
229
|
+
export const WARM_MCP_INSTALL_COMMAND = WARM_MCP_MANIFEST.installCommand;
|
|
230
|
+
export const WARM_MCP_MINIMUM_NODE_VERSION = WARM_MCP_MANIFEST.minimumNodeVersion;
|
|
231
|
+
export const WARM_MCP_SERVER_CONFIG = WARM_MCP_MANIFEST.serverConfig;
|
|
232
|
+
export const WARM_MCP_INSTALLER_COMMAND = WARM_MCP_MANIFEST.installerCommand;
|
|
233
|
+
export const WARM_MCP_SERVER_COMMAND = WARM_MCP_MANIFEST.serverCommand;
|
|
153
234
|
//# sourceMappingURL=distribution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/mcp/distribution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/mcp/distribution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAoB7F,MAAM,CAAC,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AACzF,MAAM,CAAC,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AASzE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE;YACpD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE;YACnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE;SACpD;KACF;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC;aACrF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC;aAC9D;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,4BAA4B,CAAC;aACnD;SACF;KACF;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;YAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;YAC1D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;SAC3D;KACF;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;aACtD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;aACtD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;aACtD;SACF;KACF;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,UAAU;QACzB,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;aACnD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;aACnD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;aACnD;SACF;KACF;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;SAC7D;KACF;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC;aACxD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC;aACxD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC;aACxD;SACF;KACF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE;YAChE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE;YAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE;SAChE;KACF;CACO,CAAC;AAIX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,kBAAkB;IAClB,kBAAkB;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,SAAS,EAAE,cAAc;IACzB,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,SAAS;CAClB,CAAC;AAEX,MAAM,UAAU,qBAAqB,CAAC,QAAuC;IAC3E,MAAM,WAAW,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,cAAc,GAAG,UAAU,WAAW,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;QAChC,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,MAAM;KACV,CAAC;IACX,MAAM,gBAAgB,GAAoC;QACxD,SAAS,EAAE,QAAQ;QACnB,iBAAiB,EAAE,IAAI;QACvB,0BAA0B,EAAE;YAC1B,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,aAAa,EAAE,gBAAgB;YAC/B,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,mCAAmC;SAC9C;KACF,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,oBAAoB;QACjC,cAAc;QACd,gBAAgB,EAAE,GAAG,cAAc,UAAU;QAC7C,kBAAkB,EAAE,QAAQ,CAAC,UAAU;QACvC,gBAAgB;QAChB,WAAW,EAAE,QAAQ,CAAC,IAAI;QAC1B,WAAW;QACX,cAAc,EAAE,QAAQ,CAAC,OAAO;QAChC,cAAc,EAAE,wBAAwB;QACxC,aAAa,EAAE,GAAG,cAAc,MAAM;QACtC,YAAY;KACJ,CAAC;IACX,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAID,MAAM,UAAU,6BAA6B,CAAC,QAAyB;IACrE,MAAM,YAAY,GAAG,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC1E,0BAA0B,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,0BAA0B,CAAC;IAClE,IACE,CAAC,IAAI,CAAC,mBAAmB;QACzB,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,cAAc;QACxC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,WAAW;QACrC,IAAI,CAAC,aAAa,KAAK,gBAAgB,EACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IACE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACvC,QAAQ,CAAC,YAAY,CAAC,OAAO,KAAK,KAAK;QACvC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;QACtC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,WAAW;QACtD,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,YAAY,GAAW,qBAAqB;IAE5C,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qDAAqD,YAAY,GAAG,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,MAAM,mCAAmC,GAAG,8BAA8B,CAAC;AAE3E,MAAM,UAAU,+BAA+B,CAC7C,SAAoC;IAEpC,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,mDAAmD,iBAAiB,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,QAAQ,oCAAoC,qBAAqB,GAAG,CACtL,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,SAAoC;IACvF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC;IAC5D,IAAI,WAAW,EAAE,CAAC,mCAAmC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO;IAC/E,+BAA+B,CAAC,SAAS,IAAI,WAAW,EAAE,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,WAAW,CAAC;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,WAAW,CAAC;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AACzE,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;AAClF,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,YAAY,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,gBAAgB,CAAC;AAC7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,aAAa,CAAC"}
|