@tienne/gestalt 0.88.0 → 0.89.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/CLAUDE.md +6 -2
- package/README.ko.md +2 -1
- package/README.md +3 -1
- package/dist/package.json +2 -1
- package/dist/plugin/skills/_shared/proactive-routing.md +1 -0
- package/dist/plugin/skills/architecture/SKILL.md +913 -0
- package/dist/schemas/architecture-ir.schema.json +596 -0
- package/dist/src/architecture/canvas-geometry.d.ts +40 -0
- package/dist/src/architecture/canvas-geometry.d.ts.map +1 -0
- package/dist/src/architecture/canvas-geometry.js +212 -0
- package/dist/src/architecture/canvas-geometry.js.map +1 -0
- package/dist/src/architecture/codeowners.d.ts +16 -0
- package/dist/src/architecture/codeowners.d.ts.map +1 -0
- package/dist/src/architecture/codeowners.js +58 -0
- package/dist/src/architecture/codeowners.js.map +1 -0
- package/dist/src/architecture/compare-layout.d.ts +27 -0
- package/dist/src/architecture/compare-layout.d.ts.map +1 -0
- package/dist/src/architecture/compare-layout.js +72 -0
- package/dist/src/architecture/compare-layout.js.map +1 -0
- package/dist/src/architecture/dataflow-layout.d.ts +29 -0
- package/dist/src/architecture/dataflow-layout.d.ts.map +1 -0
- package/dist/src/architecture/dataflow-layout.js +229 -0
- package/dist/src/architecture/dataflow-layout.js.map +1 -0
- package/dist/src/architecture/doc-fresh.d.ts +31 -0
- package/dist/src/architecture/doc-fresh.d.ts.map +1 -0
- package/dist/src/architecture/doc-fresh.js +84 -0
- package/dist/src/architecture/doc-fresh.js.map +1 -0
- package/dist/src/architecture/doc-link.d.ts +84 -0
- package/dist/src/architecture/doc-link.d.ts.map +1 -0
- package/dist/src/architecture/doc-link.js +396 -0
- package/dist/src/architecture/doc-link.js.map +1 -0
- package/dist/src/architecture/doc-routes.d.ts +39 -0
- package/dist/src/architecture/doc-routes.d.ts.map +1 -0
- package/dist/src/architecture/doc-routes.js +123 -0
- package/dist/src/architecture/doc-routes.js.map +1 -0
- package/dist/src/architecture/doc-scan.d.ts +107 -0
- package/dist/src/architecture/doc-scan.d.ts.map +1 -0
- package/dist/src/architecture/doc-scan.js +617 -0
- package/dist/src/architecture/doc-scan.js.map +1 -0
- package/dist/src/architecture/doc-stale.d.ts +32 -0
- package/dist/src/architecture/doc-stale.d.ts.map +1 -0
- package/dist/src/architecture/doc-stale.js +60 -0
- package/dist/src/architecture/doc-stale.js.map +1 -0
- package/dist/src/architecture/drilldown.d.ts +51 -0
- package/dist/src/architecture/drilldown.d.ts.map +1 -0
- package/dist/src/architecture/drilldown.js +1160 -0
- package/dist/src/architecture/drilldown.js.map +1 -0
- package/dist/src/architecture/endpoint-match.d.ts +43 -0
- package/dist/src/architecture/endpoint-match.d.ts.map +1 -0
- package/dist/src/architecture/endpoint-match.js +133 -0
- package/dist/src/architecture/endpoint-match.js.map +1 -0
- package/dist/src/architecture/flow-layout.d.ts +79 -0
- package/dist/src/architecture/flow-layout.d.ts.map +1 -0
- package/dist/src/architecture/flow-layout.js +519 -0
- package/dist/src/architecture/flow-layout.js.map +1 -0
- package/dist/src/architecture/focus.d.ts +14 -0
- package/dist/src/architecture/focus.d.ts.map +1 -0
- package/dist/src/architecture/focus.js +107 -0
- package/dist/src/architecture/focus.js.map +1 -0
- package/dist/src/architecture/global-context.d.ts +23 -0
- package/dist/src/architecture/global-context.d.ts.map +1 -0
- package/dist/src/architecture/global-context.js +67 -0
- package/dist/src/architecture/global-context.js.map +1 -0
- package/dist/src/architecture/html-client.d.ts +35 -0
- package/dist/src/architecture/html-client.d.ts.map +1 -0
- package/dist/src/architecture/html-client.js +1852 -0
- package/dist/src/architecture/html-client.js.map +1 -0
- package/dist/src/architecture/html-renderer.d.ts +22 -0
- package/dist/src/architecture/html-renderer.d.ts.map +1 -0
- package/dist/src/architecture/html-renderer.js +1290 -0
- package/dist/src/architecture/html-renderer.js.map +1 -0
- package/dist/src/architecture/html-theme.d.ts +25 -0
- package/dist/src/architecture/html-theme.d.ts.map +1 -0
- package/dist/src/architecture/html-theme.js +681 -0
- package/dist/src/architecture/html-theme.js.map +1 -0
- package/dist/src/architecture/index.d.ts +9 -0
- package/dist/src/architecture/index.d.ts.map +1 -0
- package/dist/src/architecture/index.js +9 -0
- package/dist/src/architecture/index.js.map +1 -0
- package/dist/src/architecture/ir-schema.d.ts +1832 -0
- package/dist/src/architecture/ir-schema.d.ts.map +1 -0
- package/dist/src/architecture/ir-schema.js +343 -0
- package/dist/src/architecture/ir-schema.js.map +1 -0
- package/dist/src/architecture/kind-text.d.ts +21 -0
- package/dist/src/architecture/kind-text.d.ts.map +1 -0
- package/dist/src/architecture/kind-text.js +42 -0
- package/dist/src/architecture/kind-text.js.map +1 -0
- package/dist/src/architecture/layout.d.ts +227 -0
- package/dist/src/architecture/layout.d.ts.map +1 -0
- package/dist/src/architecture/layout.js +627 -0
- package/dist/src/architecture/layout.js.map +1 -0
- package/dist/src/architecture/mcp-tool-match.d.ts +49 -0
- package/dist/src/architecture/mcp-tool-match.d.ts.map +1 -0
- package/dist/src/architecture/mcp-tool-match.js +53 -0
- package/dist/src/architecture/mcp-tool-match.js.map +1 -0
- package/dist/src/architecture/merge.d.ts +54 -0
- package/dist/src/architecture/merge.d.ts.map +1 -0
- package/dist/src/architecture/merge.js +681 -0
- package/dist/src/architecture/merge.js.map +1 -0
- package/dist/src/architecture/micro-app.d.ts +20 -0
- package/dist/src/architecture/micro-app.d.ts.map +1 -0
- package/dist/src/architecture/micro-app.js +41 -0
- package/dist/src/architecture/micro-app.js.map +1 -0
- package/dist/src/architecture/name-ref-match.d.ts +43 -0
- package/dist/src/architecture/name-ref-match.d.ts.map +1 -0
- package/dist/src/architecture/name-ref-match.js +127 -0
- package/dist/src/architecture/name-ref-match.js.map +1 -0
- package/dist/src/architecture/packs/data.d.ts +109 -0
- package/dist/src/architecture/packs/data.d.ts.map +1 -0
- package/dist/src/architecture/packs/data.js +64 -0
- package/dist/src/architecture/packs/data.js.map +1 -0
- package/dist/src/architecture/packs/generic.d.ts +47 -0
- package/dist/src/architecture/packs/generic.d.ts.map +1 -0
- package/dist/src/architecture/packs/generic.js +35 -0
- package/dist/src/architecture/packs/generic.js.map +1 -0
- package/dist/src/architecture/packs/harness.d.ts +96 -0
- package/dist/src/architecture/packs/harness.d.ts.map +1 -0
- package/dist/src/architecture/packs/harness.js +66 -0
- package/dist/src/architecture/packs/harness.js.map +1 -0
- package/dist/src/architecture/packs/index.d.ts +840 -0
- package/dist/src/architecture/packs/index.d.ts.map +1 -0
- package/dist/src/architecture/packs/index.js +87 -0
- package/dist/src/architecture/packs/index.js.map +1 -0
- package/dist/src/architecture/packs/infra.d.ts +91 -0
- package/dist/src/architecture/packs/infra.d.ts.map +1 -0
- package/dist/src/architecture/packs/infra.js +57 -0
- package/dist/src/architecture/packs/infra.js.map +1 -0
- package/dist/src/architecture/packs/knowledge.d.ts +72 -0
- package/dist/src/architecture/packs/knowledge.d.ts.map +1 -0
- package/dist/src/architecture/packs/knowledge.js +58 -0
- package/dist/src/architecture/packs/knowledge.js.map +1 -0
- package/dist/src/architecture/packs/process.d.ts +87 -0
- package/dist/src/architecture/packs/process.d.ts.map +1 -0
- package/dist/src/architecture/packs/process.js +52 -0
- package/dist/src/architecture/packs/process.js.map +1 -0
- package/dist/src/architecture/packs/render-classes.d.ts +11 -0
- package/dist/src/architecture/packs/render-classes.d.ts.map +1 -0
- package/dist/src/architecture/packs/render-classes.js +92 -0
- package/dist/src/architecture/packs/render-classes.js.map +1 -0
- package/dist/src/architecture/packs/types.d.ts +66 -0
- package/dist/src/architecture/packs/types.d.ts.map +1 -0
- package/dist/src/architecture/packs/types.js +18 -0
- package/dist/src/architecture/packs/types.js.map +1 -0
- package/dist/src/architecture/packs/web-product.d.ts +348 -0
- package/dist/src/architecture/packs/web-product.d.ts.map +1 -0
- package/dist/src/architecture/packs/web-product.js +226 -0
- package/dist/src/architecture/packs/web-product.js.map +1 -0
- package/dist/src/architecture/sequence-layout.d.ts +50 -0
- package/dist/src/architecture/sequence-layout.d.ts.map +1 -0
- package/dist/src/architecture/sequence-layout.js +140 -0
- package/dist/src/architecture/sequence-layout.js.map +1 -0
- package/dist/src/architecture/service-facts.d.ts +30 -0
- package/dist/src/architecture/service-facts.d.ts.map +1 -0
- package/dist/src/architecture/service-facts.js +88 -0
- package/dist/src/architecture/service-facts.js.map +1 -0
- package/dist/src/architecture/store.d.ts +50 -0
- package/dist/src/architecture/store.d.ts.map +1 -0
- package/dist/src/architecture/store.js +320 -0
- package/dist/src/architecture/store.js.map +1 -0
- package/dist/src/architecture/types.d.ts +400 -0
- package/dist/src/architecture/types.d.ts.map +1 -0
- package/dist/src/architecture/types.js +75 -0
- package/dist/src/architecture/types.js.map +1 -0
- package/dist/src/architecture/validator.d.ts +65 -0
- package/dist/src/architecture/validator.d.ts.map +1 -0
- package/dist/src/architecture/validator.js +1249 -0
- package/dist/src/architecture/validator.js.map +1 -0
- package/dist/src/core/errors.d.ts +4 -0
- package/dist/src/core/errors.d.ts.map +1 -1
- package/dist/src/core/errors.js +8 -0
- package/dist/src/core/errors.js.map +1 -1
- package/dist/src/mcp/schemas.d.ts +317 -0
- package/dist/src/mcp/schemas.d.ts.map +1 -1
- package/dist/src/mcp/schemas.js +151 -0
- package/dist/src/mcp/schemas.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +7 -1
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/architecture-passthrough.d.ts +9 -0
- package/dist/src/mcp/tools/architecture-passthrough.d.ts.map +1 -0
- package/dist/src/mcp/tools/architecture-passthrough.js +587 -0
- package/dist/src/mcp/tools/architecture-passthrough.js.map +1 -0
- package/dist/src/utils/claude-projects.d.ts +19 -0
- package/dist/src/utils/claude-projects.d.ts.map +1 -0
- package/dist/src/utils/claude-projects.js +157 -0
- package/dist/src/utils/claude-projects.js.map +1 -0
- package/dist/src/utils/read-only-tools.d.ts +19 -0
- package/dist/src/utils/read-only-tools.d.ts.map +1 -0
- package/dist/src/utils/read-only-tools.js +132 -0
- package/dist/src/utils/read-only-tools.js.map +1 -0
- package/package.json +2 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.mcp.json +1 -1
- package/plugin/mcp.json +1 -1
- package/plugin/skills/_shared/proactive-routing.md +1 -0
- package/plugin/skills/architecture/SKILL.md +913 -0
- package/schemas/architecture-ir.schema.json +596 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 하네스와 MCP 레포. AI 클라이언트가 스킬을 읽고 스킬이 에이전트를 띄운 뒤 MCP 도구를 부른다.
|
|
3
|
+
* 스킬은 화면 열, 에이전트는 게이트웨이 열에 선다. 웹과 하네스가 한 그림에 같이 서는 일은 드물어 같은 열을 나눠 쓴다.
|
|
4
|
+
* 클라이언트는 서비스보다 왼쪽이라 열 순위가 음수다
|
|
5
|
+
*/
|
|
6
|
+
export declare const HARNESS_PACK: {
|
|
7
|
+
readonly id: "harness";
|
|
8
|
+
readonly title: "하네스와 MCP";
|
|
9
|
+
readonly description: "AI 클라이언트, 스킬, 에이전트, MCP 도구";
|
|
10
|
+
readonly requires: readonly ["web-product"];
|
|
11
|
+
readonly drilldown: "web-product";
|
|
12
|
+
readonly matchers: readonly ["mcp-tool"];
|
|
13
|
+
readonly nodeKinds: {
|
|
14
|
+
readonly client: {
|
|
15
|
+
readonly renderClass: "client";
|
|
16
|
+
readonly short: "AI 클라이언트";
|
|
17
|
+
readonly text: "AI 클라이언트";
|
|
18
|
+
readonly color: {
|
|
19
|
+
readonly light: "#a16207";
|
|
20
|
+
readonly dark: "#facc15";
|
|
21
|
+
};
|
|
22
|
+
readonly icon: "<rect x=\"3\" y=\"4.5\" width=\"18\" height=\"15\" rx=\"2.5\"/><path d=\"M7 10l3 2.5L7 15M12.5 15h4.5\"/>";
|
|
23
|
+
readonly lane: "client";
|
|
24
|
+
readonly rank: -1;
|
|
25
|
+
};
|
|
26
|
+
readonly skill: {
|
|
27
|
+
readonly renderClass: "document";
|
|
28
|
+
readonly short: "스킬";
|
|
29
|
+
readonly text: "스킬";
|
|
30
|
+
readonly color: {
|
|
31
|
+
readonly light: "#c026d3";
|
|
32
|
+
readonly dark: "#e879f9";
|
|
33
|
+
};
|
|
34
|
+
readonly icon: "<path d=\"M6 3.5h9.5l3 3v14H6z\"/><path d=\"M15.5 3.5v3h3M9 11h6M9 14.5h6M9 18h3.5\"/>";
|
|
35
|
+
readonly lane: "skill";
|
|
36
|
+
readonly rank: 0;
|
|
37
|
+
readonly parents: readonly ["feature", "service"];
|
|
38
|
+
};
|
|
39
|
+
readonly agent: {
|
|
40
|
+
readonly renderClass: "actor";
|
|
41
|
+
readonly short: "에이전트";
|
|
42
|
+
readonly text: "에이전트";
|
|
43
|
+
readonly color: {
|
|
44
|
+
readonly light: "#65a30d";
|
|
45
|
+
readonly dark: "#a3e635";
|
|
46
|
+
};
|
|
47
|
+
readonly icon: "<rect x=\"4.5\" y=\"7.5\" width=\"15\" height=\"12\" rx=\"3\"/><path d=\"M12 4v3.5M9 12.5h.01M15 12.5h.01M9.5 16h5\"/>";
|
|
48
|
+
readonly lane: "agent";
|
|
49
|
+
readonly rank: 1;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
readonly displayKinds: {
|
|
53
|
+
readonly mcp_tool: {
|
|
54
|
+
readonly renderClass: "service";
|
|
55
|
+
readonly short: "MCP 도구";
|
|
56
|
+
readonly text: "MCP 도구";
|
|
57
|
+
readonly color: {
|
|
58
|
+
readonly light: "#047857";
|
|
59
|
+
readonly dark: "#6ee7b7";
|
|
60
|
+
};
|
|
61
|
+
readonly icon: "<rect x=\"3.5\" y=\"8\" width=\"17\" height=\"11.5\" rx=\"2\"/><path d=\"M9 8V5.5h6V8M3.5 13h17M11 12v2.5h2V12\"/>";
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
readonly lanes: {
|
|
65
|
+
readonly client: {
|
|
66
|
+
readonly title: "AI 클라이언트";
|
|
67
|
+
};
|
|
68
|
+
readonly skill: {
|
|
69
|
+
readonly title: "스킬";
|
|
70
|
+
readonly stacked: true;
|
|
71
|
+
};
|
|
72
|
+
readonly agent: {
|
|
73
|
+
readonly title: "에이전트";
|
|
74
|
+
};
|
|
75
|
+
readonly tool: {
|
|
76
|
+
readonly title: "MCP 도구";
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
readonly edgeKinds: {
|
|
80
|
+
readonly spawns: {
|
|
81
|
+
readonly text: "에이전트 실행";
|
|
82
|
+
readonly ends: {
|
|
83
|
+
readonly from: readonly ["skill", "agent"];
|
|
84
|
+
readonly to: readonly ["agent"];
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
readonly invokes: {
|
|
88
|
+
readonly text: "스킬 호출";
|
|
89
|
+
readonly ends: {
|
|
90
|
+
readonly from: readonly ["skill"];
|
|
91
|
+
readonly to: readonly ["skill"];
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=harness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/architecture/packs/harness.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DU,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 하네스와 MCP 레포. AI 클라이언트가 스킬을 읽고 스킬이 에이전트를 띄운 뒤 MCP 도구를 부른다.
|
|
3
|
+
* 스킬은 화면 열, 에이전트는 게이트웨이 열에 선다. 웹과 하네스가 한 그림에 같이 서는 일은 드물어 같은 열을 나눠 쓴다.
|
|
4
|
+
* 클라이언트는 서비스보다 왼쪽이라 열 순위가 음수다
|
|
5
|
+
*/
|
|
6
|
+
export const HARNESS_PACK = {
|
|
7
|
+
id: 'harness',
|
|
8
|
+
title: '하네스와 MCP',
|
|
9
|
+
description: 'AI 클라이언트, 스킬, 에이전트, MCP 도구',
|
|
10
|
+
requires: ['web-product'],
|
|
11
|
+
drilldown: 'web-product',
|
|
12
|
+
matchers: ['mcp-tool'],
|
|
13
|
+
nodeKinds: {
|
|
14
|
+
client: {
|
|
15
|
+
renderClass: 'client',
|
|
16
|
+
// HTTP 호출 클라이언트(external_service)와 칩이 겹치지 않게 AI를 붙인다
|
|
17
|
+
short: 'AI 클라이언트',
|
|
18
|
+
text: 'AI 클라이언트',
|
|
19
|
+
color: { light: '#a16207', dark: '#facc15' },
|
|
20
|
+
icon: '<rect x="3" y="4.5" width="18" height="15" rx="2.5"/><path d="M7 10l3 2.5L7 15M12.5 15h4.5"/>',
|
|
21
|
+
lane: 'client',
|
|
22
|
+
rank: -1,
|
|
23
|
+
},
|
|
24
|
+
skill: {
|
|
25
|
+
renderClass: 'document',
|
|
26
|
+
short: '스킬',
|
|
27
|
+
text: '스킬',
|
|
28
|
+
color: { light: '#c026d3', dark: '#e879f9' },
|
|
29
|
+
icon: '<path d="M6 3.5h9.5l3 3v14H6z"/><path d="M15.5 3.5v3h3M9 11h6M9 14.5h6M9 18h3.5"/>',
|
|
30
|
+
lane: 'skill',
|
|
31
|
+
rank: 0,
|
|
32
|
+
// 플러그인이 서비스이고 스킬 묶음이 기능 영역이다
|
|
33
|
+
parents: ['feature', 'service'],
|
|
34
|
+
},
|
|
35
|
+
agent: {
|
|
36
|
+
renderClass: 'actor',
|
|
37
|
+
short: '에이전트',
|
|
38
|
+
text: '에이전트',
|
|
39
|
+
color: { light: '#65a30d', dark: '#a3e635' },
|
|
40
|
+
icon: '<rect x="4.5" y="7.5" width="15" height="12" rx="3"/><path d="M12 4v3.5M9 12.5h.01M15 12.5h.01M9.5 16h5"/>',
|
|
41
|
+
lane: 'agent',
|
|
42
|
+
rank: 1,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
displayKinds: {
|
|
46
|
+
// 도구는 API와 같은 자리라 같은 초록 계열에서 한 톤 진하게 간다
|
|
47
|
+
mcp_tool: {
|
|
48
|
+
renderClass: 'service',
|
|
49
|
+
short: 'MCP 도구',
|
|
50
|
+
text: 'MCP 도구',
|
|
51
|
+
color: { light: '#047857', dark: '#6ee7b7' },
|
|
52
|
+
icon: '<rect x="3.5" y="8" width="17" height="11.5" rx="2"/><path d="M9 8V5.5h6V8M3.5 13h17M11 12v2.5h2V12"/>',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
lanes: {
|
|
56
|
+
client: { title: 'AI 클라이언트' },
|
|
57
|
+
skill: { title: '스킬', stacked: true },
|
|
58
|
+
agent: { title: '에이전트' },
|
|
59
|
+
tool: { title: 'MCP 도구' },
|
|
60
|
+
},
|
|
61
|
+
edgeKinds: {
|
|
62
|
+
spawns: { text: '에이전트 실행', ends: { from: ['skill', 'agent'], to: ['agent'] } },
|
|
63
|
+
invokes: { text: '스킬 호출', ends: { from: ['skill'], to: ['skill'] } },
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/architecture/packs/harness.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,4BAA4B;IACzC,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,SAAS,EAAE;QACT,MAAM,EAAE;YACN,WAAW,EAAE,QAAQ;YACrB,qDAAqD;YACrD,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5C,IAAI,EAAE,+FAA+F;YACrG,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,CAAC;SACT;QACD,KAAK,EAAE;YACL,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5C,IAAI,EAAE,oFAAoF;YAC1F,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,CAAC;YACP,6BAA6B;YAC7B,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SAChC;QACD,KAAK,EAAE;YACL,WAAW,EAAE,OAAO;YACpB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5C,IAAI,EAAE,4GAA4G;YAClH,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,CAAC;SACR;KACF;IACD,YAAY,EAAE;QACZ,wCAAwC;QACxC,QAAQ,EAAE;YACR,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5C,IAAI,EAAE,wGAAwG;SAC/G;KACF;IACD,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QACrC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;KAC1B;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;QAC9E,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;KACrE;CACgC,CAAC"}
|