@trilogy-data/trilogy-studio-components 0.1.10 → 0.1.12
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/{ChatCreatorModal-kqIGFHPN.js → ChatCreatorModal-kIXgcJQp.js} +1 -1
- package/dist/{Dashboard-BhcB9-ov.js → Dashboard-B-YfrO5u.js} +3 -3
- package/dist/{DashboardCreatorInline-Cp8fI1iG.js → DashboardCreatorInline-C6fr4jNo.js} +1 -1
- package/dist/{DashboardMobile-nSuC_ygH.js → DashboardMobile-D911XYkl.js} +20 -20
- package/dist/{LLMConnectionList-CwfSkiq_.js → LLMConnectionList-DZbu1kGq.js} +884 -856
- package/dist/LLMView-C4RQS1B8.js +656 -0
- package/dist/Manager-CoKiEZT-.js +4 -0
- package/dist/{ResultComponent-CDU0FkOQ.js → ResultComponent-fVgARLAb.js} +6 -6
- package/dist/{Sidebar-dZtwrs0v.js → Sidebar-esb9EqnY.js} +289 -268
- package/dist/{TutorialPage-kWCo9lD6.js → TutorialPage-DfA2845i.js} +4 -4
- package/dist/{WelcomePage-BjLQLYt8.js → WelcomePage-LRJvygaE.js} +1 -1
- package/dist/chats/chat.d.ts +11 -1
- package/dist/chats/chat.d.ts.map +1 -1
- package/dist/chats/publishArtifactsToDashboard.d.ts +21 -0
- package/dist/chats/publishArtifactsToDashboard.d.ts.map +1 -0
- package/dist/components/editor/Editor.vue.d.ts +1 -2
- package/dist/components/editor/Editor.vue.d.ts.map +1 -1
- package/dist/components/editor/ResultComponent.vue.d.ts +74 -15
- package/dist/components/editor/ResultComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/SidebarLayout.vue.d.ts +14 -2
- package/dist/components/layout/SidebarLayout.vue.d.ts.map +1 -1
- package/dist/components/llm/ArtifactsPane.vue.d.ts +885 -0
- package/dist/components/llm/ArtifactsPane.vue.d.ts.map +1 -0
- package/dist/components/llm/ChatArtifact.vue.d.ts +37 -1
- package/dist/components/llm/ChatArtifact.vue.d.ts.map +1 -1
- package/dist/components/llm/LLMChat.vue.d.ts +18 -3
- package/dist/components/llm/LLMChat.vue.d.ts.map +1 -1
- package/dist/components/llm/LLMChatSplitView.vue.d.ts +858 -702
- package/dist/components/llm/LLMChatSplitView.vue.d.ts.map +1 -1
- package/dist/components/llm/LLMEditorRefinement.vue.d.ts +74 -15
- package/dist/components/llm/LLMEditorRefinement.vue.d.ts.map +1 -1
- package/dist/components/model/ModelCard.vue.d.ts +1 -2
- package/dist/components/model/ModelCard.vue.d.ts.map +1 -1
- package/dist/components/sidebar/ConnectionList.vue.d.ts.map +1 -1
- package/dist/components/sidebar/EditorList.vue.d.ts.map +1 -1
- package/dist/components/sidebar/LLMConnectionCreator.vue.d.ts.map +1 -1
- package/dist/components/sidebar/LLMConnectionList.vue.d.ts +2 -2
- package/dist/components/sidebar/LLMConnectionList.vue.d.ts.map +1 -1
- package/dist/components/sidebar/LLMConnectionListItem.vue.d.ts.map +1 -1
- package/dist/components/sidebar/LLMProviderIcon.vue.d.ts.map +1 -1
- package/dist/components/tutorial/TutorialPrompt.vue.d.ts +75 -17
- package/dist/components/tutorial/TutorialPrompt.vue.d.ts.map +1 -1
- package/dist/composables/useChatWithTools.d.ts.map +1 -1
- package/dist/composables/useEditorRefinement.d.ts.map +1 -1
- package/dist/composables/useToolLoop.d.ts +0 -2
- package/dist/composables/useToolLoop.d.ts.map +1 -1
- package/dist/{cssMode-BgTpWprH.js → cssMode-DCSjJlZ5.js} +1 -1
- package/dist/dashboards/helpers.d.ts.map +1 -1
- package/dist/data/githubStorage.d.ts.map +1 -1
- package/dist/data/localStorage.d.ts.map +1 -1
- package/dist/editors/results.d.ts.map +1 -1
- package/dist/{freemarker2-BCVHBEgI.js → freemarker2-BKjHRYvq.js} +1 -1
- package/dist/{handlebars-CvE5drDj.js → handlebars-D_px6u7k.js} +1 -1
- package/dist/{html-CZGBnyei.js → html-Bm-h8fTq.js} +1 -1
- package/dist/{htmlMode-CzN0D6_N.js → htmlMode-YODzRvjv.js} +1 -1
- package/dist/{javascript-D9vXE5ET.js → javascript-DZrwO1Xq.js} +1 -1
- package/dist/{jsonMode-CY69B03N.js → jsonMode-_ThxxZQx.js} +1 -1
- package/dist/{liquid-D2Izcg9H.js → liquid-I2p3UrJy.js} +1 -1
- package/dist/llm/chatAgentPrompt.d.ts +257 -0
- package/dist/llm/chatAgentPrompt.d.ts.map +1 -1
- package/dist/llm/chatHelpers.d.ts +0 -11
- package/dist/llm/chatHelpers.d.ts.map +1 -1
- package/dist/llm/chatToolExecutor.d.ts +10 -0
- package/dist/llm/chatToolExecutor.d.ts.map +1 -1
- package/dist/llm/consts.d.ts +19 -0
- package/dist/llm/consts.d.ts.map +1 -1
- package/dist/llm/demo.d.ts +37 -0
- package/dist/llm/demo.d.ts.map +1 -0
- package/dist/llm/editorRefinementToolExecutor.d.ts +4 -0
- package/dist/llm/editorRefinementToolExecutor.d.ts.map +1 -1
- package/dist/llm/editorRefinementTools.d.ts +40 -0
- package/dist/llm/editorRefinementTools.d.ts.map +1 -1
- package/dist/llm/index.d.ts +5 -2
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/openrouter.d.ts +5 -0
- package/dist/llm/openrouter.d.ts.map +1 -1
- package/dist/llm/toolLoopCore.d.ts +36 -7
- package/dist/llm/toolLoopCore.d.ts.map +1 -1
- package/dist/llm/utils.d.ts +4 -1
- package/dist/llm/utils.d.ts.map +1 -1
- package/dist/{main-YvioU1lW.js → main-Bjg9NFbT.js} +38078 -37191
- package/dist/main.css +1 -1
- package/dist/main.d.ts +5 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +27 -22
- package/dist/main.umd.cjs +605 -560
- package/dist/{mdx-DfvKDyTa.js → mdx-e5VczKhJ.js} +1 -1
- package/dist/{python-CmewBYeN.js → python-CUAfebEu.js} +1 -1
- package/dist/{razor-C-YsC2u-.js → razor-B95YKGrm.js} +1 -1
- package/dist/stores/chatStore.d.ts.map +1 -1
- package/dist/stores/editorStore.d.ts.map +1 -1
- package/dist/stores/llmStore.d.ts +1 -10
- package/dist/stores/llmStore.d.ts.map +1 -1
- package/dist/stores/queryExecutionService.d.ts +1 -0
- package/dist/stores/queryExecutionService.d.ts.map +1 -1
- package/dist/stores/resolver.d.ts +1 -0
- package/dist/stores/resolver.d.ts.map +1 -1
- package/dist/stores/useScreenNavigation.d.ts.map +1 -1
- package/dist/{tsMode-LfgRVGbQ.js → tsMode-BcjYt2WB.js} +1 -1
- package/dist/{typescript-ChhJ4j27.js → typescript-Ck_cSGyE.js} +1 -1
- package/dist/{useDashboard-vvK-sCbo.js → useDashboard-BnXAbWPO.js} +1 -1
- package/dist/utility/markdownRenderer.d.ts.map +1 -1
- package/dist/views/LLMView.vue.d.ts +2713 -2140
- package/dist/views/LLMView.vue.d.ts.map +1 -1
- package/dist/views/ModelView.vue.d.ts +2 -4
- package/dist/views/ModelView.vue.d.ts.map +1 -1
- package/dist/views/TutorialPage.vue.d.ts +154 -40
- package/dist/views/TutorialPage.vue.d.ts.map +1 -1
- package/dist/{xml-DM40RTTn.js → xml-Do52fQeS.js} +1 -1
- package/dist/{yaml-0wmwSdSU.js → yaml-C8U7HH0M.js} +1 -1
- package/package.json +1 -1
- package/dist/LLMView-e38fpjum.js +0 -558
- package/dist/Manager-CtK5dHJ8.js +0 -4
|
@@ -4,7 +4,6 @@ import { ToolCallResult } from './editorRefinementToolExecutor';
|
|
|
4
4
|
/** Interface for LLM operations needed by the tool loop */
|
|
5
5
|
export interface LLMAdapter {
|
|
6
6
|
generateCompletion(connectionName: string, options: LLMRequestOptions, messages: LLMMessage[]): Promise<LLMResponse>;
|
|
7
|
-
shouldAutoContinue(connectionName: string, responseText: string): Promise<boolean>;
|
|
8
7
|
}
|
|
9
8
|
/** Interface for persisting messages during tool loop execution */
|
|
10
9
|
export interface MessagePersistence {
|
|
@@ -33,14 +32,20 @@ export interface ToolLoopConfig {
|
|
|
33
32
|
tools: any[];
|
|
34
33
|
/** Maximum iterations before stopping (safety limit) */
|
|
35
34
|
maxIterations?: number;
|
|
36
|
-
/** Maximum auto-continue attempts when LLM doesn't call tools */
|
|
37
|
-
maxAutoContinue?: number;
|
|
38
35
|
/** Build system prompt - called each iteration to allow dynamic prompts */
|
|
39
36
|
buildSystemPrompt: () => string;
|
|
40
37
|
/** Optional callback invoked after each tool execution */
|
|
41
38
|
onToolResult?: (toolName: string, result: ToolCallResult) => void;
|
|
42
39
|
/** Optional callback when a tool returns awaitsUserInput */
|
|
43
40
|
onAwaitsUserInput?: (result: ToolCallResult, executedToolCalls: ChatToolCall[]) => void;
|
|
41
|
+
/** Message sent to agent when it responds with text but no tool call. Defaults to a generic reminder. */
|
|
42
|
+
noToolCallReminder?: string;
|
|
43
|
+
/**
|
|
44
|
+
* If true, terminate the loop when the LLM responds with text but no tool calls,
|
|
45
|
+
* instead of re-prompting. Use this for standalone/embedded chat modes where the
|
|
46
|
+
* LLM's plain text response is the final answer.
|
|
47
|
+
*/
|
|
48
|
+
terminateOnNoToolCall?: boolean;
|
|
44
49
|
}
|
|
45
50
|
/** Result from running the tool loop */
|
|
46
51
|
export interface ToolLoopResult {
|
|
@@ -48,20 +53,44 @@ export interface ToolLoopResult {
|
|
|
48
53
|
finalMessage?: string;
|
|
49
54
|
stopped?: boolean;
|
|
50
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Maximum number of data rows to include in a tool result sent to the LLM.
|
|
58
|
+
* When results exceed this limit, the first and last (MAX_TOOL_RESULT_ROWS / 2) rows
|
|
59
|
+
* are shown with a truncation notice in between.
|
|
60
|
+
*/
|
|
61
|
+
export declare const MAX_TOOL_RESULT_ROWS = 100;
|
|
62
|
+
/**
|
|
63
|
+
* Truncate a deserialized query result object if it has more rows than MAX_TOOL_RESULT_ROWS.
|
|
64
|
+
* Returns the (possibly truncated) data array and the number of rows cut.
|
|
65
|
+
*
|
|
66
|
+
* The caller is responsible for rendering the cut notice between the two halves.
|
|
67
|
+
*/
|
|
68
|
+
export declare function truncateResultRows(jsonData: any): {
|
|
69
|
+
head: any[];
|
|
70
|
+
tail: any[];
|
|
71
|
+
totalRows: number;
|
|
72
|
+
cutCount: number;
|
|
73
|
+
};
|
|
51
74
|
/**
|
|
52
75
|
* Format a tool result for sending to the LLM.
|
|
53
76
|
* Handles artifacts, messages, and errors consistently.
|
|
77
|
+
* Includes artifact IDs so the LLM can reference them in follow-up tool calls.
|
|
78
|
+
* Large result sets are truncated to MAX_TOOL_RESULT_ROWS rows (head + tail)
|
|
79
|
+
* with a cut notice; the agent can use get_artifact_rows to fetch any range.
|
|
54
80
|
*/
|
|
55
81
|
export declare function formatToolResultText(result: ToolCallResult): string;
|
|
56
82
|
/**
|
|
57
83
|
* Core tool loop execution.
|
|
58
84
|
* Runs the LLM conversation with tool calls until:
|
|
59
|
-
* -
|
|
60
|
-
* - A tool returns
|
|
61
|
-
* -
|
|
62
|
-
* - Max iterations reached
|
|
85
|
+
* - A tool returns terminatesLoop: true (agent explicitly signals done)
|
|
86
|
+
* - A tool returns awaitsUserInput: true (agent pauses for user input)
|
|
87
|
+
* - Max iterations reached (safety limit)
|
|
63
88
|
* - Abort signal triggered
|
|
64
89
|
* - An error occurs
|
|
90
|
+
*
|
|
91
|
+
* If the LLM responds with text and no tool calls, it is re-prompted with a
|
|
92
|
+
* reminder to call a tool. The agent must explicitly call a termination tool
|
|
93
|
+
* (e.g. return_to_user, request_close) to return control to the user.
|
|
65
94
|
*/
|
|
66
95
|
export declare function runToolLoop(userMessage: string, llmConnectionName: string, llmAdapter: LLMAdapter, messagePersistence: MessagePersistence, toolExecutorFactory: ToolExecutorFactory, stateUpdater: ExecutionStateUpdater, config: ToolLoopConfig): Promise<ToolLoopResult>;
|
|
67
96
|
//# sourceMappingURL=toolLoopCore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolLoopCore.d.ts","sourceRoot":"","sources":["../../llm/toolLoopCore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAA8B,MAAM,QAAQ,CAAA;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"toolLoopCore.d.ts","sourceRoot":"","sources":["../../llm/toolLoopCore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAA8B,MAAM,QAAQ,CAAA;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAKpE,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,kBAAkB,CAChB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,UAAU,EAAE,GACrB,OAAO,CAAC,WAAW,CAAC,CAAA;CACxB;AAED,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACtC,yCAAyC;IACzC,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IACzC,oDAAoD;IACpD,WAAW,IAAI,WAAW,EAAE,CAAA;CAC7B;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,eAAe,IAAI;QACjB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;KAC3F,CAAA;CACF;AAED,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,YAAY,IAAI,OAAO,CAAA;CACxB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,KAAK,EAAE,GAAG,EAAE,CAAA;IACZ,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,MAAM,CAAA;IAC/B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACjE,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;IACvF,yGAAyG;IACzG,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,GAAG;IACjD,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAYA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAoCnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,kBAAkB,EACtC,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,qBAAqB,EACnC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,CAAC,CAsQzB"}
|
package/dist/llm/utils.d.ts
CHANGED
|
@@ -18,12 +18,15 @@ export interface RetryOptions {
|
|
|
18
18
|
onRetry?: (attempt: number, delayMs: number, error: Error) => void;
|
|
19
19
|
/** Optional AbortSignal for cancellation */
|
|
20
20
|
signal?: AbortSignal;
|
|
21
|
+
/** Optional function to extract a richer error message from a non-ok response body */
|
|
22
|
+
errorBodyExtractor?: (response: Response) => Promise<string>;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* Default retry configuration
|
|
24
26
|
*/
|
|
25
|
-
export declare const DEFAULT_RETRY_OPTIONS: Omit<Required<RetryOptions>, 'signal'> & {
|
|
27
|
+
export declare const DEFAULT_RETRY_OPTIONS: Omit<Required<RetryOptions>, 'signal' | 'errorBodyExtractor'> & {
|
|
26
28
|
signal?: AbortSignal;
|
|
29
|
+
errorBodyExtractor?: RetryOptions['errorBodyExtractor'];
|
|
27
30
|
};
|
|
28
31
|
/**
|
|
29
32
|
* Type definition for errors that might contain response information
|
package/dist/llm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../llm/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAClE,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../llm/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAClE,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7D;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,IAAI,CACtC,QAAQ,CAAC,YAAY,CAAC,EACtB,QAAQ,GAAG,oBAAoB,CAChC,GAAG;IACF,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,kBAAkB,CAAC,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAA;CAUxD,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CAuEZ;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAChC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAyBnB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAQnF"}
|