@mcpc-tech/core 0.3.1 → 0.3.3
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/index.mjs +1471 -1496
- package/package.json +1 -1
- package/types/mod.d.ts +1 -0
- package/types/mod.d.ts.map +1 -1
- package/types/src/compose.d.ts +3 -0
- package/types/src/compose.d.ts.map +1 -1
- package/types/src/plugin-types.d.ts +36 -5
- package/types/src/plugin-types.d.ts.map +1 -1
- package/types/src/prompts/types.d.ts +4 -0
- package/types/src/prompts/types.d.ts.map +1 -0
- package/types/src/set-up-mcp-compose.d.ts +8 -6
- package/types/src/set-up-mcp-compose.d.ts.map +1 -1
- package/types/src/types.d.ts.map +1 -1
package/package.json
CHANGED
package/types/mod.d.ts
CHANGED
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
*
|
|
48
48
|
* @module
|
|
49
49
|
*/ export * from "./src/compose.js";
|
|
50
|
+
export type { AgentToolRegistrationContext, ComposedTool, ComposeEndContext, ComposeStartContext, FinalizeContext, ToolConfig, ToolPlugin, TransformContext } from "./src/plugin-types.js";
|
|
50
51
|
export * from "./src/utils/common/env.js";
|
|
51
52
|
export * from "./src/utils/common/json.js";
|
|
52
53
|
export * from "./src/utils/common/mcp.js";
|
package/types/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sources":["../mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDC,GAED,iCAAiC;
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sources":["../mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDC,GAED,iCAAiC;AAGjC,cACE,4BAA4B,EAC5B,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,gCACa;AAE/B,0CAA0C;AAC1C,2CAA2C;AAC3C,0CAA0C;AAE1C,4CAA4C;AAG5C,SACE,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,KAAK,MAAM,gCACkB;AAG/B,SACE,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,UAAU,kCACgB"}
|
package/types/src/compose.d.ts
CHANGED
|
@@ -72,6 +72,9 @@ export declare class ComposableMCPServer extends Server {
|
|
|
72
72
|
/**
|
|
73
73
|
* Dispose all plugins and cleanup resources
|
|
74
74
|
*/ disposePlugins(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Close the server and ensure all plugins are disposed
|
|
77
|
+
*/ override close(): Promise<void>;
|
|
75
78
|
compose(name: string | null, description: string, depsConfig?: z.infer<typeof McpSettingsSchema>, options?: ComposeDefinition["options"]): Promise<void>;
|
|
76
79
|
}
|
|
77
80
|
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,SAGE,KAAK,cAAc,EAGnB,KAAK,IAAI,6CAC6C;AACxD,SAAwC,KAAK,MAAM,4BAA4B;AAC/E,cAAc,iBAAiB,6BAA6B;AAC5D,SACE,MAAM,EACN,KAAK,aAAa,oDAC2C;AAC/D,YAAY,aAAyB;AAGrC,cAAc,iBAAiB,kCAAkC;AACjE,cAAc,UAAU,EAAE,YAAY,qBAAqB;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,SAGE,KAAK,cAAc,EAGnB,KAAK,IAAI,6CAC6C;AACxD,SAAwC,KAAK,MAAM,4BAA4B;AAC/E,cAAc,iBAAiB,6BAA6B;AAC5D,SACE,MAAM,EACN,KAAK,aAAa,oDAC2C;AAC/D,YAAY,aAAyB;AAGrC,cAAc,iBAAiB,kCAAkC;AACjE,cAAc,UAAU,EAAE,YAAY,qBAAqB;AAM3D,cAA4B,UAAU,EAAE,UAAU,4BAA4B;AAe9E,OAAO,cAAM,4BAA4B;EACvC,QAAQ,mBAA6B;EACrC,QAAQ,iBAAyB;EACjC,QAAQ,YAAsC;EAG9C,IAAI,mBAAmB,IAAI,MAAM,EAAE,MAAM;EAIzC,YAAY,aAAa,cAAc,EAAE,SAAS,aAAa;EAiB/D;;GAEC,GACD,AAAM,sBAAsB,QAAQ,IAAI;UAqB1B;UAsDN;EAIR,KAAK,GACH,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,cAAc,OAAO,KAAK,UAAU,EACpC,KAAK,MAAM,GAAG,QAAQ,OAAO,KAAK,OAAO,EACzC;IAAW,WAAW,OAAO;IAAE,UAAU;GAAmB;EA+D9D;;GAEC,GACD,gBAAgB,MAAM,MAAM,GAAG,eAAe,SAAS;EAIvD;;GAEC,GACD,eAAe,QAAQ,MAAM,GAAG,aAAa,SAAS;EAItD;;GAEC,GACD,AAAM,SAAS,MAAM,MAAM,EAAE,MAAM,OAAO,GAAG,QAAQ,OAAO;EAyB5D;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,kBAAkB;EAIlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,wBAAwB,MAAM;EAM9B;;GAEC,GACD,oBACE,MAAM,MAAM;IACT,aAAa,MAAM;IAAE,QAAQ;MAAe,SAAS;EAI1D;;GAEC,GACD,aAAa,MAAM,MAAM,GAAG,OAAO;EAInC;;GAEC,GACD,WAAW,UAAU,MAAM,EAAE,QAAQ,UAAU,GAAG,IAAI;EAItD;;GAEC,GACD,cAAc,UAAU,MAAM,GAAG,aAAa,SAAS;EAIvD;;GAEC,GACD,iBAAiB,UAAU,MAAM,GAAG,OAAO;EAI3C;;GAEC,GACD,AAAM,UAAU,QAAQ,UAAU,GAAG,QAAQ,IAAI;EAIjD;;GAEC,GACD,AAAM,mBACJ,YAAY,MAAM,EAClB;IAAW,QAAQ,OAAO;GAAoB,GAC7C,QAAQ,IAAI;UAOD;EAOd;;GAEC,GACD,AAAM,kBAAkB,QAAQ,IAAI;EAIpC;;GAEC,GACD,SAAe,SAAS,QAAQ,IAAI;EAK9B,QACJ,MAAM,MAAM,GAAG,IAAI,EACnB,aAAa,MAAM,EACnB,aAAY,EAAE,aAAa,kBAAuC,EAClE,UAAS,kBAAkB,UAAgC;AAkQ/D"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import type { ToolCallback } from "./types.js";
|
|
6
6
|
import type { ComposableMCPServer } from "./compose.js";
|
|
7
|
+
import type { ExecutionMode } from "./prompts/types.js";
|
|
7
8
|
export interface ComposedTool extends Tool {
|
|
8
9
|
execute: ToolCallback;
|
|
9
10
|
}
|
|
@@ -11,12 +12,17 @@ export interface ToolPlugin {
|
|
|
11
12
|
/** Plugin name for identification (must be unique) */ name: string;
|
|
12
13
|
/** Plugin version for debugging and compatibility checks */ version?: string;
|
|
13
14
|
/** Plugin execution order - 'pre' (before core), 'post' (after core), or default */ enforce?: "pre" | "post";
|
|
14
|
-
/** Apply plugin conditionally based on mode */ apply?:
|
|
15
|
+
/** Apply plugin conditionally based on mode */ apply?: ExecutionMode | ((mode: string) => boolean);
|
|
15
16
|
/** Plugin dependencies - names of plugins that must be loaded first */ dependencies?: string[];
|
|
16
17
|
/** Called when plugin is added to server - for initial setup */ configureServer?: (server: ComposableMCPServer) => void | Promise<void>;
|
|
17
18
|
/** Called before composition starts - for validation and config */ composeStart?: (context: ComposeStartContext) => void | Promise<void>;
|
|
18
19
|
/** Called for each tool during composition - main transformation hook */ transformTool?: (tool: ComposedTool, context: TransformContext) => ComposedTool | void | Promise<ComposedTool | void>;
|
|
19
20
|
/** Called after all tools are composed but before registration */ finalizeComposition?: (tools: Record<string, ComposedTool>, context: FinalizeContext) => void | Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Called to register the final agent tool (execution mode).
|
|
23
|
+
* If multiple plugins implement this, the last one wins.
|
|
24
|
+
* Use this to implement custom execution modes.
|
|
25
|
+
*/ registerAgentTool?: (context: AgentToolRegistrationContext) => void | Promise<void>;
|
|
20
26
|
/** Called after composition is complete - for logging and cleanup */ composeEnd?: (result: ComposeEndContext) => void | Promise<void>;
|
|
21
27
|
/** Called before tool execution - transform input arguments */ transformInput?: (args: unknown, context: RuntimeTransformContext) => unknown | Promise<unknown>;
|
|
22
28
|
/** Called after tool execution - transform output result */ transformOutput?: (result: unknown, context: RuntimeTransformContext) => unknown | Promise<unknown>;
|
|
@@ -25,27 +31,52 @@ export interface ToolPlugin {
|
|
|
25
31
|
/** Context for composeStart hook */ export interface ComposeStartContext {
|
|
26
32
|
serverName: string;
|
|
27
33
|
description: string;
|
|
28
|
-
mode:
|
|
34
|
+
mode: ExecutionMode;
|
|
29
35
|
server: ComposableMCPServer;
|
|
30
36
|
/** All available tool names before composition */ availableTools: string[];
|
|
31
37
|
}
|
|
32
38
|
/** Context for transformTool hook */ export interface TransformContext {
|
|
33
39
|
toolName: string;
|
|
34
40
|
server: ComposableMCPServer;
|
|
35
|
-
mode:
|
|
41
|
+
mode: ExecutionMode;
|
|
36
42
|
/** Original tool definition before any transformations */ originalTool: ComposedTool;
|
|
37
43
|
/** Index of current transformation (how many plugins have processed this tool) */ transformationIndex: number;
|
|
38
44
|
}
|
|
39
45
|
/** Context for finalizeComposition hook */ export interface FinalizeContext {
|
|
40
46
|
serverName: string;
|
|
41
|
-
mode:
|
|
47
|
+
mode: ExecutionMode;
|
|
42
48
|
server: ComposableMCPServer;
|
|
43
49
|
/** Names of all composed tools */ toolNames: string[];
|
|
44
50
|
}
|
|
51
|
+
/** Context for registerAgentTool hook - implements custom execution modes */ export interface AgentToolRegistrationContext {
|
|
52
|
+
server: ComposableMCPServer;
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
mode: ExecutionMode | string;
|
|
56
|
+
allToolNames: string[];
|
|
57
|
+
toolNameToDetailList: [string, ComposedTool][];
|
|
58
|
+
depGroups: Record<string, unknown>;
|
|
59
|
+
toolNameToIdMapping?: Map<string, string>;
|
|
60
|
+
publicToolNames: string[];
|
|
61
|
+
hiddenToolNames: string[];
|
|
62
|
+
options: {
|
|
63
|
+
mode?: string;
|
|
64
|
+
samplingConfig?: {
|
|
65
|
+
maxIterations?: number;
|
|
66
|
+
summarize?: boolean;
|
|
67
|
+
};
|
|
68
|
+
steps?: Array<{
|
|
69
|
+
description: string;
|
|
70
|
+
actions: string[];
|
|
71
|
+
}>;
|
|
72
|
+
ensureStepActions?: string[];
|
|
73
|
+
[key: string]: unknown;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
45
76
|
/** Context for composeEnd hook */ export interface ComposeEndContext {
|
|
46
77
|
toolName: string | null;
|
|
47
78
|
pluginNames: string[];
|
|
48
|
-
mode:
|
|
79
|
+
mode: ExecutionMode;
|
|
49
80
|
server: ComposableMCPServer;
|
|
50
81
|
/** Composition statistics - simplified */ stats: {
|
|
51
82
|
totalTools: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-types.d.ts","sources":["../../src/plugin-types.ts"],"names":[],"mappings":"AAAA;;;CAGC,GAED,cAAc,IAAI,6CAAyD;AAC3E,cAAc,YAAY,qBAAqB;AAC/C,cAAc,mBAAmB,uBAAuB;AAExD,iBAAiB,qBAAqB;EACpC,SAAS;;AAKX,iBAAiB;EACf,oDAAoD,GACpD,MAAM,MAAM;EAEZ,0DAA0D,GAC1D,UAAU,MAAM;EAEhB,kFAAkF,GAClF,UAAU,QAAQ;EAElB,6CAA6C,GAC7C,QAAQ,
|
|
1
|
+
{"version":3,"file":"plugin-types.d.ts","sources":["../../src/plugin-types.ts"],"names":[],"mappings":"AAAA;;;CAGC,GAED,cAAc,IAAI,6CAAyD;AAC3E,cAAc,YAAY,qBAAqB;AAC/C,cAAc,mBAAmB,uBAAuB;AACxD,cAAc,aAAa,6BAA6B;AAExD,iBAAiB,qBAAqB;EACpC,SAAS;;AAKX,iBAAiB;EACf,oDAAoD,GACpD,MAAM,MAAM;EAEZ,0DAA0D,GAC1D,UAAU,MAAM;EAEhB,kFAAkF,GAClF,UAAU,QAAQ;EAElB,6CAA6C,GAC7C,QAAQ,kBAAkB,MAAM,MAAM,KAAK,OAAO;EAElD,qEAAqE,GACrE,eAAe,MAAM;EAIrB,8DAA8D,GAC9D,mBAAmB,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI;EAEtE,iEAAiE,GACjE,gBAAgB,SAAS,wBAAwB,IAAI,GAAG,QAAQ,IAAI;EAEpE,uEAAuE,GACvE,iBACE,MAAM,cACN,SAAS,qBACN,eAAe,IAAI,GAAG,QAAQ,eAAe,IAAI;EAEtD,gEAAgE,GAChE,uBACE,OAAO,OAAO,MAAM,EAAE,eACtB,SAAS,oBACN,IAAI,GAAG,QAAQ,IAAI;EAExB;;;;GAIC,GACD,qBACE,SAAS,iCACN,IAAI,GAAG,QAAQ,IAAI;EAExB,mEAAmE,GACnE,cAAc,QAAQ,sBAAsB,IAAI,GAAG,QAAQ,IAAI;EAI/D,6DAA6D,GAC7D,kBACE,MAAM,OAAO,EACb,SAAS,4BACN,OAAO,GAAG,QAAQ,OAAO;EAE9B,0DAA0D,GAC1D,mBACE,QAAQ,OAAO,EACf,SAAS,4BACN,OAAO,GAAG,QAAQ,OAAO;EAE9B,sEAAsE,GACtE,gBAAgB,IAAI,GAAG,QAAQ,IAAI;;AAarC,kCAAkC,GAClC,iBAAiB;EACf,YAAY,MAAM;EAClB,aAAa,MAAM;EACnB,MAAM;EACN,QAAQ;EACR,gDAAgD,GAChD,gBAAgB,MAAM;;AAGxB,mCAAmC,GACnC,iBAAiB;EACf,UAAU,MAAM;EAChB,QAAQ;EACR,MAAM;EACN,wDAAwD,GACxD,cAAc;EACd,gFAAgF,GAChF,qBAAqB,MAAM;;AAG7B,yCAAyC,GACzC,iBAAiB;EACf,YAAY,MAAM;EAClB,MAAM;EACN,QAAQ;EACR,gCAAgC,GAChC,WAAW,MAAM;;AAGnB,2EAA2E,GAC3E,iBAAiB;EACf,QAAQ;EACR,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,MAAM,gBAAgB,MAAM;EAC5B,cAAc,MAAM;EACpB,uBAAuB,MAAM,EAAE;EAC/B,WAAW,OAAO,MAAM,EAAE,OAAO;EACjC,sBAAsB,IAAI,MAAM,EAAE,MAAM;EACxC,iBAAiB,MAAM;EACvB,iBAAiB,MAAM;EACvB;IACE,OAAO,MAAM;IACb;MAAmB,gBAAgB,MAAM;MAAE,YAAY,OAAO;;IAC9D,QAAQ;MAAQ,aAAa,MAAM;MAAE,SAAS,MAAM;;IACpD,oBAAoB,MAAM;KACzB,KAAK,MAAM,GAAG,OAAO;;;AAI1B,gCAAgC,GAChC,iBAAiB;EACf,UAAU,MAAM,GAAG,IAAI;EACvB,aAAa,MAAM;EACnB,MAAM;EACN,QAAQ;EACR,wCAAwC,GACxC;IACE,YAAY,MAAM;IAClB,gDAAgD,GAChD,aAAa,MAAM;IACnB,mDAAmD,GACnD,aAAa,MAAM;;;AAIvB,8EAA8E,GAC9E,iBAAiB;EACf,UAAU,MAAM;EAChB,QAAQ;EACR,4DAA4D,GAC5D,eAAe,OAAO;EACtB,6BAA6B,GAC7B,WAAW,UAAU;;AAevB,iBAAiB;EACf,oCAAoC,GACpC,cAAc,MAAM;EACpB,mEAAmE,GACnE;IACE;;;;KAIC,GACD,SAAS,OAAO;IAChB;;;;KAIC,GACD,SAAS,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sources":["../../../src/prompts/types.ts"],"names":[],"mappings":"AA4BA;;CAEC,GACD,YAAY,gBACR,YACA,qBACA,qBACA,8BACA"}
|
|
@@ -4,6 +4,7 @@ import type { MCPSetting } from "./service/tools.js";
|
|
|
4
4
|
import type { SamplingConfig } from "./types.js";
|
|
5
5
|
import type { ToolPlugin } from "./plugin-types.js";
|
|
6
6
|
import type { ToolRefXml } from "./types.js";
|
|
7
|
+
import type { ExecutionMode } from "./prompts/types.js";
|
|
7
8
|
export interface ComposeDefinition {
|
|
8
9
|
/**
|
|
9
10
|
* Name of the composed agentic tool
|
|
@@ -30,13 +31,14 @@ export interface ComposeDefinition {
|
|
|
30
31
|
* Execution mode for the agent
|
|
31
32
|
* - "agentic": Fully autonomous agent mode without any workflow structure
|
|
32
33
|
* - "agentic_workflow": Agent workflow mode that can either generate steps at runtime or use predefined steps
|
|
34
|
+
* - "agentic_sampling": Autonomous sampling mode for agentic execution
|
|
35
|
+
* - "agentic_workflow_sampling": Autonomous sampling mode for workflow execution
|
|
33
36
|
* @default "agentic"
|
|
34
|
-
*/ mode?:
|
|
37
|
+
*/ mode?: ExecutionMode;
|
|
35
38
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
|
|
39
|
-
*/ sampling?: boolean | SamplingConfig;
|
|
39
|
+
* Configuration for sampling mode execution
|
|
40
|
+
* Only applies when mode is "agentic_sampling" or "agentic_workflow_sampling"
|
|
41
|
+
*/ samplingConfig?: SamplingConfig;
|
|
40
42
|
/**
|
|
41
43
|
* Optional predefined workflow steps for agentic_workflow mode
|
|
42
44
|
* - If provided: Uses these predefined steps in agentic_workflow mode
|
|
@@ -101,7 +103,7 @@ export declare function parseMcpcConfigs(conf?: ComposeDefinition[]): ComposeDef
|
|
|
101
103
|
* }
|
|
102
104
|
* },
|
|
103
105
|
* plugins: [createLargeResultPlugin({ maxSize: 8000 })],
|
|
104
|
-
* options: { mode: "
|
|
106
|
+
* options: { mode: "agentic_sampling" }
|
|
105
107
|
* }]
|
|
106
108
|
* );
|
|
107
109
|
* await server.connect(new StdioServerTransport());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-up-mcp-compose.d.ts","sources":["../../src/set-up-mcp-compose.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,oBAAoB;AAEhD,cAAc,QAAQ,2BAA2B;AACjD,cAAc,UAAU,6BAA6B;AACrD,cAAc,cAAc,qBAAqB;AACjD,cAAc,UAAU,4BAA4B;AACpD,cAAc,UAAU,qBAAqB;
|
|
1
|
+
{"version":3,"file":"set-up-mcp-compose.d.ts","sources":["../../src/set-up-mcp-compose.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,oBAAoB;AAEhD,cAAc,QAAQ,2BAA2B;AACjD,cAAc,UAAU,6BAA6B;AACrD,cAAc,cAAc,qBAAqB;AACjD,cAAc,UAAU,4BAA4B;AACpD,cAAc,UAAU,qBAAqB;AAC7C,cAAc,aAAa,6BAA6B;AAExD,iBAAiB;EACf;;;GAGC,GACD,MAAM,MAAM,GAAG,IAAI;EACnB;;GAEC,GACD,cAAc,MAAM;EACpB,OAAO;EAEP;;;;;;;;;;;GAWC,GACD,WAAW,aAAa,MAAM;EAE9B;IACE;;;;;;;KAOC,GACD,OAAO;IAEP;;;KAGC,GACD,iBAAiB;IAEjB;;;;;KAKC,GACD,QAAQ;IAER;;;;;KAKC,GACD,oBAAoB,MAAM;IAE1B;;;;;KAKC,GACD;;;KAGC,GACD,OAAO,MAAM;;;AAMjB,iBAAiB;GACd,KAAK,MAAM,GAAG;;AAGjB,OAAO,iBAAS,iBACd,OAAO,mBAAmB,GACzB;AAuBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DC,GACD,OAAO,iBAAe,KACpB,YAAY,6BAA6B,oBAAoB,EAC7D,cAAc,mBAAmB,EACjC,iBAAiB,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI,CAAC,GACpE,QAAQ,oBAAoB"}
|
package/types/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,YAAY,aAAa,OAAO,MAAM,EAAE,OAAO;AAE/C,YAAY,gBAAgB,MAAM,OAAO,EAAE,QAAQ,OAAO,KAAK,OAAO;AAEtE,iBAAiB;EACf,gBAAgB,MAAM;EACtB;;;GAGC,GACD,YAAY,OAAO;;AAgDrB;;;;;;;;CAQC,GACD,YAAY,WAAW,MAAM,cAAc,EAAE,MAAM,CAAC,CAAC;AACrD,YAAY,YACR,KACA,UACA,YACA,iBACA;AACJ,YAAY,UAAU,OAAO;AAE7B,YAAY,cACP,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,YAAY,aAC/C,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,WAAW"}
|