@tutti-os/agent-gui 0.0.94 → 0.0.95
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 +48 -32
- package/dist/AgentGUI-CwBLYtv-.d.ts +992 -0
- package/dist/agent-conversation/index.d.ts +5 -7
- package/dist/agent-conversation/index.js +12 -8
- package/dist/agent-conversation/index.js.map +1 -1
- package/dist/agent-env/index.d.ts +10 -36
- package/dist/agent-env/index.js +1 -56
- package/dist/agent-env/index.js.map +1 -1
- package/dist/agent-gui.d.ts +21 -0
- package/dist/agent-gui.js +39 -0
- package/dist/agent-message-center/index.d.ts +145 -124
- package/dist/agent-message-center/index.js +1374 -1316
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{agentConversationVM-Cl4G0Lln.d.ts → agentConversationVM-C335TR6S.d.ts} +112 -7
- package/dist/agentFileMentionContracts-Czvz6YMI.d.ts +107 -0
- package/dist/{agentGuiNodeTypes-CAioPXK9.d.ts → agentGuiNodeTypes-DppADPHW.d.ts} +96 -148
- package/dist/agentPlanPromptDispatch-C7cCMjve.d.ts +37 -0
- package/dist/agents.d.ts +13 -0
- package/dist/agents.js +13 -0
- package/dist/app/renderer/agentactivity.css +126 -80
- package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/open-link-lined.svg +4 -0
- package/dist/{chunk-P72YLKC6.js → chunk-3R2D4E57.js} +3127 -3398
- package/dist/chunk-3R2D4E57.js.map +1 -0
- package/dist/chunk-4YG7YK7S.js +23 -0
- package/dist/chunk-4YG7YK7S.js.map +1 -0
- package/dist/chunk-5X7YDOC6.js +42 -0
- package/dist/chunk-5X7YDOC6.js.map +1 -0
- package/dist/{chunk-IBIMGLCD.js → chunk-7J4K6WKB.js} +1 -1
- package/dist/chunk-7J4K6WKB.js.map +1 -0
- package/dist/{chunk-BXVPOGYK.js → chunk-7PFDA2HQ.js} +505 -504
- package/dist/chunk-7PFDA2HQ.js.map +1 -0
- package/dist/{chunk-AWAIUYG4.js → chunk-7RDD3EWP.js} +513 -555
- package/dist/chunk-7RDD3EWP.js.map +1 -0
- package/dist/{chunk-UBDPV34P.js → chunk-AOS2VWU6.js} +1355 -1305
- package/dist/chunk-AOS2VWU6.js.map +1 -0
- package/dist/{chunk-E5FOXRUM.js → chunk-BFNJKTDV.js} +295 -255
- package/dist/chunk-BFNJKTDV.js.map +1 -0
- package/dist/{chunk-5FE7M42A.js → chunk-BIHBXWK5.js} +2 -2
- package/dist/{chunk-7BUYFVRI.js → chunk-C5FV4UGI.js} +2921 -2944
- package/dist/chunk-C5FV4UGI.js.map +1 -0
- package/dist/{chunk-SCLLP5DO.js → chunk-CRO2MV2Y.js} +36 -46
- package/dist/chunk-CRO2MV2Y.js.map +1 -0
- package/dist/chunk-FGLQZ6I4.js +9 -0
- package/dist/chunk-FGLQZ6I4.js.map +1 -0
- package/dist/chunk-H6IQ63DQ.js +14 -0
- package/dist/chunk-H6IQ63DQ.js.map +1 -0
- package/dist/{chunk-IGY4ASUF.js → chunk-JX2SIXNL.js} +1293 -1702
- package/dist/chunk-JX2SIXNL.js.map +1 -0
- package/dist/chunk-KAL4XZMA.js +231 -0
- package/dist/chunk-KAL4XZMA.js.map +1 -0
- package/dist/chunk-KJQERFKX.js +259 -0
- package/dist/chunk-KJQERFKX.js.map +1 -0
- package/dist/chunk-LQVXBT65.js +491 -0
- package/dist/chunk-LQVXBT65.js.map +1 -0
- package/dist/{chunk-554VG7ZW.js → chunk-NITOD7WF.js} +2 -2
- package/dist/{chunk-7LMJXF4R.js → chunk-NJAZ7LQM.js} +20 -16
- package/dist/chunk-NJAZ7LQM.js.map +1 -0
- package/dist/chunk-NX3CZJXW.js +25 -0
- package/dist/chunk-NX3CZJXW.js.map +1 -0
- package/dist/chunk-O6W72SEP.js +93 -0
- package/dist/chunk-O6W72SEP.js.map +1 -0
- package/dist/chunk-RY6GIO3K.js +31700 -0
- package/dist/chunk-RY6GIO3K.js.map +1 -0
- package/dist/{chunk-XDV4ZRVK.js → chunk-UGVI47X6.js} +98 -37
- package/dist/chunk-UGVI47X6.js.map +1 -0
- package/dist/{chunk-XW4CVBUH.js → chunk-UQJPV6HP.js} +18 -11
- package/dist/chunk-UQJPV6HP.js.map +1 -0
- package/dist/{chunk-GAPTLVII.js → chunk-VF22EG3F.js} +1 -1
- package/dist/{chunk-GAPTLVII.js.map → chunk-VF22EG3F.js.map} +1 -1
- package/dist/{chunk-45FF4DQU.js → chunk-WEDMAVX2.js} +22 -24
- package/dist/chunk-WEDMAVX2.js.map +1 -0
- package/dist/{chunk-MATIJPGF.js → chunk-XMO45GKA.js} +531 -401
- package/dist/chunk-XMO45GKA.js.map +1 -0
- package/dist/{chunk-ZUW4B5AT.js → chunk-YE25HN6T.js} +6 -9
- package/dist/chunk-YE25HN6T.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +3 -2
- package/dist/context-mention-palette/index.js +19 -14
- package/dist/custom-mention.d.ts +44 -0
- package/dist/custom-mention.js +17 -0
- package/dist/custom-mention.js.map +1 -0
- package/dist/dock-icons.d.ts +6 -0
- package/dist/dock-icons.js +11 -0
- package/dist/dock-icons.js.map +1 -0
- package/dist/i18n/index.d.ts +850 -841
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +52 -1061
- package/dist/index.js +72 -35530
- package/dist/index.js.map +1 -1
- package/dist/mention-search.d.ts +226 -0
- package/dist/mention-search.js +29 -0
- package/dist/mention-search.js.map +1 -0
- package/dist/open-link-lined-JWEKUKME.svg +4 -0
- package/dist/provider-icons.d.ts +6 -0
- package/dist/provider-icons.js +12 -0
- package/dist/provider-icons.js.map +1 -0
- package/dist/provider-identity.d.ts +9 -0
- package/dist/provider-identity.js +21 -0
- package/dist/provider-identity.js.map +1 -0
- package/dist/runtime-BBNdWgDU.d.ts +10 -0
- package/dist/{types-PLFZ8SBX.d.ts → types-DX2bxgB8.d.ts} +28 -83
- package/dist/workbench/contribution.d.ts +32 -40
- package/dist/workbench/contribution.js +10 -6
- package/dist/workbench/index.d.ts +3 -2
- package/dist/workbench/index.js +24 -20
- package/dist/workbench/launch.d.ts +2 -5
- package/dist/workbench/launch.js +4 -3
- package/dist/workbench/providerCatalog.js +2 -1
- package/dist/workbench/sessionTitle.d.ts +4 -3
- package/dist/workbench/sessionTitle.js +4 -3
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +3 -2
- package/dist/workbench/types.d.ts +0 -3
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.d.ts +20 -2
- package/dist/workspace-agent-generated-files.js +7 -6
- package/dist/workspaceAgentActivityListTypes-C7gPWYiA.d.ts +71 -0
- package/package.json +63 -26
- package/dist/AgentMentionSearchController-DD_WOred.d.ts +0 -241
- package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +0 -7
- package/dist/chunk-45FF4DQU.js.map +0 -1
- package/dist/chunk-4HP6V2YA.js +0 -207
- package/dist/chunk-4HP6V2YA.js.map +0 -1
- package/dist/chunk-7BUYFVRI.js.map +0 -1
- package/dist/chunk-7LMJXF4R.js.map +0 -1
- package/dist/chunk-AWAIUYG4.js.map +0 -1
- package/dist/chunk-BXVPOGYK.js.map +0 -1
- package/dist/chunk-E5FOXRUM.js.map +0 -1
- package/dist/chunk-IBIMGLCD.js.map +0 -1
- package/dist/chunk-IGY4ASUF.js.map +0 -1
- package/dist/chunk-LR4FA5X6.js +0 -368
- package/dist/chunk-LR4FA5X6.js.map +0 -1
- package/dist/chunk-MATIJPGF.js.map +0 -1
- package/dist/chunk-MKHDRIGN.js +0 -71
- package/dist/chunk-MKHDRIGN.js.map +0 -1
- package/dist/chunk-P72YLKC6.js.map +0 -1
- package/dist/chunk-SCLLP5DO.js.map +0 -1
- package/dist/chunk-UBDPV34P.js.map +0 -1
- package/dist/chunk-VAKFNNKT.js +0 -410
- package/dist/chunk-VAKFNNKT.js.map +0 -1
- package/dist/chunk-XDV4ZRVK.js.map +0 -1
- package/dist/chunk-XW4CVBUH.js.map +0 -1
- package/dist/chunk-ZUW4B5AT.js.map +0 -1
- package/dist/plan-decision-ops.d.ts +0 -70
- package/dist/plan-decision-ops.js +0 -19
- package/dist/queued-prompt-runtime.d.ts +0 -115
- package/dist/queued-prompt-runtime.js +0 -9
- package/dist/workspaceAgentActivityListViewModel-BzV-cf0D.d.ts +0 -340
- package/dist/workspaceLinkActions-DS9LWqzI.d.ts +0 -74
- /package/dist/{plan-decision-ops.js.map → agent-gui.js.map} +0 -0
- /package/dist/{queued-prompt-runtime.js.map → agents.js.map} +0 -0
- /package/dist/{chunk-5FE7M42A.js.map → chunk-BIHBXWK5.js.map} +0 -0
- /package/dist/{chunk-554VG7ZW.js.map → chunk-NITOD7WF.js.map} +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
migratedAgentGUIProviderIdentityCatalog
|
|
3
|
+
} from "./chunk-KJQERFKX.js";
|
|
4
|
+
import {
|
|
5
|
+
createProviderIconUrlMap
|
|
6
|
+
} from "./chunk-UGVI47X6.js";
|
|
7
|
+
|
|
8
|
+
// dockIcons.ts
|
|
9
|
+
var agentGuiDockIconUrls = createDockIconUrls();
|
|
10
|
+
var agentGuiDockIconUrl = agentGuiDockIconUrls.codex;
|
|
11
|
+
function createDockIconUrls() {
|
|
12
|
+
return createProviderIconUrlMap(
|
|
13
|
+
"dock",
|
|
14
|
+
{},
|
|
15
|
+
migratedAgentGUIProviderIdentityCatalog
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
agentGuiDockIconUrls,
|
|
21
|
+
agentGuiDockIconUrl
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=chunk-4YG7YK7S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../dockIcons.ts"],"sourcesContent":["import type { AgentGUIProvider } from \"./types.ts\";\nimport { migratedAgentGUIProviderIdentityCatalog } from \"./providerIdentityCatalog.ts\";\nimport { createProviderIconUrlMap } from \"./providerIconAssets.ts\";\n\nexport const agentGuiDockIconUrls = createDockIconUrls();\n\nexport const agentGuiDockIconUrl = agentGuiDockIconUrls.codex;\n\nfunction createDockIconUrls(): Record<AgentGUIProvider, string> {\n return createProviderIconUrlMap(\n \"dock\",\n {},\n migratedAgentGUIProviderIdentityCatalog\n ) as Record<AgentGUIProvider, string>;\n}\n"],"mappings":";;;;;;;;AAIO,IAAM,uBAAuB,mBAAmB;AAEhD,IAAM,sBAAsB,qBAAqB;AAExD,SAAS,qBAAuD;AAC9D,SAAO;AAAA,IACL;AAAA,IACA,CAAC;AAAA,IACD;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// shared/agentCustomMentionKinds.ts
|
|
2
|
+
var registry = /* @__PURE__ */ new Map();
|
|
3
|
+
var RESERVED_AGENT_MENTION_PROVIDER_IDS = /* @__PURE__ */ new Set([
|
|
4
|
+
"agent-session",
|
|
5
|
+
"agent-target",
|
|
6
|
+
"custom",
|
|
7
|
+
"file",
|
|
8
|
+
"issue",
|
|
9
|
+
"session",
|
|
10
|
+
"task",
|
|
11
|
+
"workspace-app",
|
|
12
|
+
"workspace-app-factory",
|
|
13
|
+
"workspace-issue",
|
|
14
|
+
"workspace-reference"
|
|
15
|
+
]);
|
|
16
|
+
function registerAgentCustomMentionKind(definition) {
|
|
17
|
+
const kind = definition.kind.trim().toLowerCase();
|
|
18
|
+
if (!kind) {
|
|
19
|
+
throw new Error(
|
|
20
|
+
"[agent-gui] custom mention kind must be a non-empty provider id"
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
if (RESERVED_AGENT_MENTION_PROVIDER_IDS.has(kind)) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
`[agent-gui] custom mention kind "${kind}" collides with a built-in provider id`
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
registry.set(kind, definition);
|
|
29
|
+
}
|
|
30
|
+
function getAgentCustomMentionKind(kind) {
|
|
31
|
+
return registry.get(kind.trim().toLowerCase());
|
|
32
|
+
}
|
|
33
|
+
function resetAgentCustomMentionKindsForTests() {
|
|
34
|
+
registry.clear();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
registerAgentCustomMentionKind,
|
|
39
|
+
getAgentCustomMentionKind,
|
|
40
|
+
resetAgentCustomMentionKindsForTests
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=chunk-5X7YDOC6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../shared/agentCustomMentionKinds.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\n\n// 自定义 mention kind 注册表:让宿主(如 tsh)从外部注册 mention://<kind>/... 链接的\n// 解析与 composer 内 chip 渲染,包内不内置任何具体业务 kind。\n//\n// 管线接点:\n// - 解析:agentFileMentionExtension.parseMentionItemFromHref 命中注册 kind 时产出\n// AgentMentionCustomItem(展示字段由 present() 提取;href 是完整信息源,round-trip 无损)\n// - 渲染:AgentMentionNodeView 对 kind===\"custom\" 调 renderChip(),缺省用包内通用双行卡\n// - 点击:clickable 的 kind 经 resolveWorkspaceMentionLinkAction 上抛\n// open-custom-mention 链接动作(携带原始 href,宿主自行二次解析)\n//\n// 注册时机:宿主渲染进程 bootstrap(早于首个 composer 挂载);模块级单例,重复注册以\n// 后者为准(HMR 友好)。\n\nexport interface AgentCustomMentionIdentity {\n entityId: string;\n label: string;\n scope?: Readonly<Record<string, string>>;\n}\n\nexport interface AgentCustomMentionPresentation {\n /** chip 第一行(缺省用链接 label)。 */\n name: string;\n /** chip 第二行(可选,通用双行卡的次要文案)。 */\n summary?: string;\n /** 所属 workspace(可选;custom kind 的 scope 键由注册方约定)。 */\n workspaceId?: string;\n}\n\nexport interface AgentCustomMentionChipContext {\n href: string;\n name: string;\n summary?: string;\n isEditable: boolean;\n /** 可编辑态的移除按钮,由 NodeView 注入;自定义渲染需自行摆放。 */\n removeAction?: ReactNode;\n}\n\nexport interface AgentCustomMentionKindDefinition {\n /** mention://<kind>/... 的 providerId(URL hostname,小写)。 */\n kind: string;\n /**\n * 从 canonical mention 链接提取展示字段;返回 null 表示链接无效,\n * 退化为普通链接/字面文本。\n */\n present(\n mention: AgentCustomMentionIdentity,\n href: string\n ): AgentCustomMentionPresentation | null;\n /** 自定义 chip 渲染;缺省用包内通用双行卡(name + summary)。 */\n renderChip?(context: AgentCustomMentionChipContext): ReactNode;\n /** 点击是否上抛 open-custom-mention 链接动作;缺省 false(chip 只展示)。 */\n clickable?: boolean;\n}\n\nconst registry = new Map<string, AgentCustomMentionKindDefinition>();\n\n// 包内管线已内置处理的 providerId(agentFileMentionExtension /\n// resolveWorkspaceMentionLinkAction),以及宿主侧沿用的 legacy 短名与内部 kind。\n// 注册表查找在部分链路先于内置分支执行,若放行同名注册会静默劫持内置 mention\n// 的解析——注册发生在宿主 bootstrap,直接抛错 fail-fast。\nconst RESERVED_AGENT_MENTION_PROVIDER_IDS = new Set([\n \"agent-session\",\n \"agent-target\",\n \"custom\",\n \"file\",\n \"issue\",\n \"session\",\n \"task\",\n \"workspace-app\",\n \"workspace-app-factory\",\n \"workspace-issue\",\n \"workspace-reference\"\n]);\n\nexport function registerAgentCustomMentionKind(\n definition: AgentCustomMentionKindDefinition\n): void {\n const kind = definition.kind.trim().toLowerCase();\n if (!kind) {\n throw new Error(\n \"[agent-gui] custom mention kind must be a non-empty provider id\"\n );\n }\n if (RESERVED_AGENT_MENTION_PROVIDER_IDS.has(kind)) {\n throw new Error(\n `[agent-gui] custom mention kind \"${kind}\" collides with a built-in provider id`\n );\n }\n registry.set(kind, definition);\n}\n\nexport function getAgentCustomMentionKind(\n kind: string\n): AgentCustomMentionKindDefinition | undefined {\n return registry.get(kind.trim().toLowerCase());\n}\n\nexport function resetAgentCustomMentionKindsForTests(): void {\n registry.clear();\n}\n"],"mappings":";AAwDA,IAAM,WAAW,oBAAI,IAA8C;AAMnE,IAAM,sCAAsC,oBAAI,IAAI;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,SAAS,+BACd,YACM;AACN,QAAM,OAAO,WAAW,KAAK,KAAK,EAAE,YAAY;AAChD,MAAI,CAAC,MAAM;AACT,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,oCAAoC,IAAI,IAAI,GAAG;AACjD,UAAM,IAAI;AAAA,MACR,oCAAoC,IAAI;AAAA,IAC1C;AAAA,EACF;AACA,WAAS,IAAI,MAAM,UAAU;AAC/B;AAEO,SAAS,0BACd,MAC8C;AAC9C,SAAO,SAAS,IAAI,KAAK,KAAK,EAAE,YAAY,CAAC;AAC/C;AAEO,SAAS,uCAA6C;AAC3D,WAAS,MAAM;AACjB;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../shared/workspaceAgentSessionSortTime.ts"],"sourcesContent":["export interface WorkspaceAgentSessionSortTimeSession {\n createdAtUnixMs?: number;\n endedAtUnixMs?: number | null;\n id?: number;\n agentSessionId?: string;\n providerSessionId?: string | null;\n startedAtUnixMs?: number;\n updatedAtUnixMs?: number;\n}\n\nexport interface WorkspaceAgentSessionSortTimeMessage {\n agentSessionId?: string;\n occurredAtUnixMs?: number;\n role?: string;\n turnId?: string | null;\n}\n\nexport interface WorkspaceAgentSessionSortTimeContext {\n messages?: readonly WorkspaceAgentSessionSortTimeMessage[];\n}\n\nexport function resolveWorkspaceAgentSessionSortTimeUnixMs(\n session: WorkspaceAgentSessionSortTimeSession,\n context: WorkspaceAgentSessionSortTimeContext = {}\n): number {\n const hasSortContext = hasWorkspaceAgentSessionSortContext(context);\n const fallbackUpdatedAtUnixMs = hasSortContext\n ? null\n : positiveNumber(session.updatedAtUnixMs);\n return (\n latestUserTurnStartTimeUnixMs(session, context) ??\n positiveNumber(session.endedAtUnixMs) ??\n fallbackUpdatedAtUnixMs ??\n positiveNumber(session.startedAtUnixMs) ??\n positiveNumber(session.createdAtUnixMs) ??\n positiveNumber(session.id) ??\n 0\n );\n}\n\nfunction hasWorkspaceAgentSessionSortContext(\n context: WorkspaceAgentSessionSortTimeContext\n): boolean {\n return Boolean(context.messages?.length);\n}\n\nfunction latestUserTurnStartTimeUnixMs(\n session: WorkspaceAgentSessionSortTimeSession,\n context: WorkspaceAgentSessionSortTimeContext\n): number | null {\n const sessionIds = new Set(\n [session.agentSessionId, session.providerSessionId]\n .map((value) => value?.trim())\n .filter((value): value is string => Boolean(value))\n );\n const startsByTurnId = new Map<string, number>();\n for (const message of context.messages ?? []) {\n if (!matchesSession(message.agentSessionId, sessionIds)) {\n continue;\n }\n const turnId = message.turnId?.trim();\n if (!turnId) {\n continue;\n }\n const role = normalizeToken(message.role);\n if (role === \"user\") {\n const startedAtUnixMs = positiveNumber(message.occurredAtUnixMs);\n if (startedAtUnixMs !== null) {\n startsByTurnId.set(\n turnId,\n minNullable(startsByTurnId.get(turnId) ?? null, startedAtUnixMs)!\n );\n }\n }\n }\n let latest: number | null = null;\n for (const startedAtUnixMs of startsByTurnId.values()) {\n latest =\n latest === null ? startedAtUnixMs : Math.max(latest, startedAtUnixMs);\n }\n return latest;\n}\n\nfunction matchesSession(\n agentSessionId: string | undefined,\n sessionIds: ReadonlySet<string>\n): boolean {\n if (sessionIds.size === 0) {\n return true;\n }\n const normalized = agentSessionId?.trim();\n return Boolean(normalized && sessionIds.has(normalized));\n}\n\nfunction minNullable(left: number | null, right: number | null): number | null {\n if (left === null) {\n return right;\n }\n if (right === null) {\n return left;\n }\n return Math.min(left, right);\n}\n\nfunction normalizeToken(value: string | undefined): string {\n return value?.trim().toLowerCase() ?? \"\";\n}\n\nfunction positiveNumber(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) && value > 0\n ? value\n : null;\n}\n"],"mappings":";AAqBO,SAAS,2CACd,SACA,UAAgD,CAAC,GACzC;AACR,QAAM,iBAAiB,oCAAoC,OAAO;AAClE,QAAM,0BAA0B,iBAC5B,OACA,eAAe,QAAQ,eAAe;AAC1C,SACE,8BAA8B,SAAS,OAAO,KAC9C,eAAe,QAAQ,aAAa,KACpC,2BACA,eAAe,QAAQ,eAAe,KACtC,eAAe,QAAQ,eAAe,KACtC,eAAe,QAAQ,EAAE,KACzB;AAEJ;AAEA,SAAS,oCACP,SACS;AACT,SAAO,QAAQ,QAAQ,UAAU,MAAM;AACzC;AAEA,SAAS,8BACP,SACA,SACe;AACf,QAAM,aAAa,IAAI;AAAA,IACrB,CAAC,QAAQ,gBAAgB,QAAQ,iBAAiB,EAC/C,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC,EAC5B,OAAO,CAAC,UAA2B,QAAQ,KAAK,CAAC;AAAA,EACtD;AACA,QAAM,iBAAiB,oBAAI,IAAoB;AAC/C,aAAW,WAAW,QAAQ,YAAY,CAAC,GAAG;AAC5C,QAAI,CAAC,eAAe,QAAQ,gBAAgB,UAAU,GAAG;AACvD;AAAA,IACF;AACA,UAAM,SAAS,QAAQ,QAAQ,KAAK;AACpC,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,UAAM,OAAO,eAAe,QAAQ,IAAI;AACxC,QAAI,SAAS,QAAQ;AACnB,YAAM,kBAAkB,eAAe,QAAQ,gBAAgB;AAC/D,UAAI,oBAAoB,MAAM;AAC5B,uBAAe;AAAA,UACb;AAAA,UACA,YAAY,eAAe,IAAI,MAAM,KAAK,MAAM,eAAe;AAAA,QACjE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAwB;AAC5B,aAAW,mBAAmB,eAAe,OAAO,GAAG;AACrD,aACE,WAAW,OAAO,kBAAkB,KAAK,IAAI,QAAQ,eAAe;AAAA,EACxE;AACA,SAAO;AACT;AAEA,SAAS,eACP,gBACA,YACS;AACT,MAAI,WAAW,SAAS,GAAG;AACzB,WAAO;AAAA,EACT;AACA,QAAM,aAAa,gBAAgB,KAAK;AACxC,SAAO,QAAQ,cAAc,WAAW,IAAI,UAAU,CAAC;AACzD;AAEA,SAAS,YAAY,MAAqB,OAAqC;AAC7E,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AACA,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AACA,SAAO,KAAK,IAAI,MAAM,KAAK;AAC7B;AAEA,SAAS,eAAe,OAAmC;AACzD,SAAO,OAAO,KAAK,EAAE,YAAY,KAAK;AACxC;AAEA,SAAS,eAAe,OAA+B;AACrD,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,KAAK,QAAQ,IAClE,QACA;AACN;","names":[]}
|