@tutti-os/agent-gui 0.0.107 → 0.0.108
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/{AgentGUI-Do6py-T_.d.ts → AgentGUI-CkxdEB8F.d.ts} +6 -3
- package/dist/AgentRichTextReadonly-42TUVYX5.js +18 -0
- package/dist/agent-conversation/index.d.ts +4 -4
- package/dist/agent-conversation/index.js +13 -12
- package/dist/agent-conversation/index.js.map +1 -1
- package/dist/agent-env/index.js +1 -1
- package/dist/agent-gui.d.ts +5 -4
- package/dist/agent-gui.js +27 -25
- package/dist/agent-message-center/index.d.ts +3 -1
- package/dist/agent-message-center/index.js +22 -10
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{agentConversationVM-Bf3Zv3iI.d.ts → agentConversationVM-D3Dn2LqN.d.ts} +18 -2
- package/dist/{agentGuiNodeTypes-DbgQBiYz.d.ts → agentGuiNodeTypes-B3N_hJZp.d.ts} +5 -3
- package/dist/agents.d.ts +1 -1
- package/dist/agents.js +1 -1
- package/dist/app/renderer/agentactivity.css +64 -2
- package/dist/app/renderer/assets/icons/agent-vinyl-beta-tag.svg +5 -0
- package/dist/{chunk-OWW7CU4U.js → chunk-25BPR75P.js} +2 -2
- package/dist/{chunk-N4WVVCNI.js → chunk-2QHKXI5N.js} +2 -2
- package/dist/{chunk-KJQERFKX.js → chunk-6CUELYIF.js} +3 -3
- package/dist/chunk-6CUELYIF.js.map +1 -0
- package/dist/{chunk-TKBEVCHG.js → chunk-7BN2WQ2M.js} +32 -2
- package/dist/chunk-7BN2WQ2M.js.map +1 -0
- package/dist/chunk-7KVZPJ3O.js +25 -0
- package/dist/chunk-7KVZPJ3O.js.map +1 -0
- package/dist/{chunk-C35SNDVZ.js → chunk-7OYHDOGG.js} +2 -1
- package/dist/chunk-7OYHDOGG.js.map +1 -0
- package/dist/{chunk-4ZWV57MF.js → chunk-AIZJHA4Q.js} +14 -9
- package/dist/chunk-AIZJHA4Q.js.map +1 -0
- package/dist/{chunk-QY22OBJS.js → chunk-AY5AFMT2.js} +8 -84
- package/dist/chunk-AY5AFMT2.js.map +1 -0
- package/dist/{chunk-V5ROOS2O.js → chunk-BM3CSFWU.js} +22 -6
- package/dist/chunk-BM3CSFWU.js.map +1 -0
- package/dist/{chunk-F7Q7QK42.js → chunk-BRLKORQI.js} +1432 -1902
- package/dist/chunk-BRLKORQI.js.map +1 -0
- package/dist/{chunk-LDZ6C3YV.js → chunk-E74BMFHI.js} +3 -3
- package/dist/chunk-E74BMFHI.js.map +1 -0
- package/dist/{chunk-ZSJBCZUH.js → chunk-EBXOSQ5G.js} +102 -73
- package/dist/chunk-EBXOSQ5G.js.map +1 -0
- package/dist/chunk-J4K7KIFZ.js +75 -0
- package/dist/chunk-J4K7KIFZ.js.map +1 -0
- package/dist/{chunk-UFIEUC3Y.js → chunk-JBX3JPTC.js} +9 -8
- package/dist/chunk-JBX3JPTC.js.map +1 -0
- package/dist/{chunk-4YVKAPKW.js → chunk-JLRPIEIE.js} +2 -17
- package/dist/chunk-JLRPIEIE.js.map +1 -0
- package/dist/{chunk-ZWY32ZKZ.js → chunk-KXZMIZ5H.js} +1269 -728
- package/dist/chunk-KXZMIZ5H.js.map +1 -0
- package/dist/{chunk-4YG7YK7S.js → chunk-L2GENUG3.js} +3 -3
- package/dist/{chunk-J2HG7UCP.js → chunk-OEYXSD3O.js} +3 -3
- package/dist/{chunk-P3CVAWGJ.js → chunk-QTW5CH62.js} +5 -5
- package/dist/{chunk-L3GMMGRS.js → chunk-R2ZADXRB.js} +2 -2
- package/dist/chunk-R7AXDQCA.js +146 -0
- package/dist/chunk-R7AXDQCA.js.map +1 -0
- package/dist/{chunk-7MPN2JGL.js → chunk-U4CVBCHD.js} +37 -119
- package/dist/chunk-U4CVBCHD.js.map +1 -0
- package/dist/{chunk-BXOKBZH4.js → chunk-UFD2QKGC.js} +9 -6
- package/dist/chunk-UFD2QKGC.js.map +1 -0
- package/dist/{chunk-4YCCATI4.js → chunk-USIFGHT3.js} +17 -4
- package/dist/chunk-USIFGHT3.js.map +1 -0
- package/dist/{chunk-7BXWPI4F.js → chunk-VMQNG2KI.js} +13 -1
- package/dist/{chunk-7BXWPI4F.js.map → chunk-VMQNG2KI.js.map} +1 -1
- package/dist/{chunk-SN6UYX54.js → chunk-W6TO6K2X.js} +4 -4
- package/dist/{chunk-UGVI47X6.js → chunk-YNSXUEIR.js} +6 -6
- package/dist/context-mention-palette/index.js +13 -12
- package/dist/{contribution-C6K5YfJ7.d.ts → contribution-C2LDwLA7.d.ts} +3 -2
- package/dist/dock-icons.js +3 -3
- package/dist/i18n/index.d.ts +31 -1
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +8 -7
- package/dist/index.js +27 -25
- package/dist/index.js.map +1 -1
- package/dist/mention-search.js +11 -10
- package/dist/provider-icons.js +1 -1
- package/dist/provider-identity.js +1 -1
- package/dist/{types-CnT8rNUI.d.ts → types-yF_0mrNS.d.ts} +1 -0
- package/dist/workbench/contribution.d.ts +2 -2
- package/dist/workbench/contribution.js +11 -11
- package/dist/workbench/index.d.ts +4 -4
- package/dist/workbench/index.js +22 -28
- package/dist/workbench/launch.d.ts +11 -14
- package/dist/workbench/launch.js +5 -11
- package/dist/workbench/providerCatalog.js +2 -2
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +2 -12
- package/dist/workbench/state.js +3 -9
- package/dist/workspace-agent-generated-files.js +2 -1
- package/dist/workspace-query-cache.d.ts +19 -0
- package/dist/workspace-query-cache.js +7 -0
- package/dist/workspace-query-cache.js.map +1 -0
- package/package.json +21 -14
- package/dist/@-bold-lined-BLLFKBFI.svg +0 -10
- package/dist/AgentRichTextReadonly-F6PHC5SX.js +0 -18
- package/dist/add-lined-bold-5QPUDZCU.svg +0 -3
- package/dist/chunk-4YCCATI4.js.map +0 -1
- package/dist/chunk-4YVKAPKW.js.map +0 -1
- package/dist/chunk-4ZWV57MF.js.map +0 -1
- package/dist/chunk-7MPN2JGL.js.map +0 -1
- package/dist/chunk-BXOKBZH4.js.map +0 -1
- package/dist/chunk-C35SNDVZ.js.map +0 -1
- package/dist/chunk-F7Q7QK42.js.map +0 -1
- package/dist/chunk-H6IQ63DQ.js +0 -14
- package/dist/chunk-H6IQ63DQ.js.map +0 -1
- package/dist/chunk-KJQERFKX.js.map +0 -1
- package/dist/chunk-LDZ6C3YV.js.map +0 -1
- package/dist/chunk-QY22OBJS.js.map +0 -1
- package/dist/chunk-TKBEVCHG.js.map +0 -1
- package/dist/chunk-UFIEUC3Y.js.map +0 -1
- package/dist/chunk-V5ROOS2O.js.map +0 -1
- package/dist/chunk-ZSJBCZUH.js.map +0 -1
- package/dist/chunk-ZWY32ZKZ.js.map +0 -1
- package/dist/claudecode-flat-filled-NHO4JCVK.svg +0 -10
- package/dist/codex-flat-filled-WYHCF5VR.svg +0 -10
- package/dist/cursor-flat-filled-CL7N3BTZ.svg +0 -3
- package/dist/handoff-lined-4WQUBVG3.svg +0 -11
- package/dist/open-link-lined-JWEKUKME.svg +0 -4
- package/dist/opencode-flat-filled-CYAJPX45.svg +0 -4
- package/dist/tutti-flat-filled-K32QBTZE.svg +0 -12
- /package/dist/{AgentRichTextReadonly-F6PHC5SX.js.map → AgentRichTextReadonly-42TUVYX5.js.map} +0 -0
- /package/dist/{chunk-OWW7CU4U.js.map → chunk-25BPR75P.js.map} +0 -0
- /package/dist/{chunk-N4WVVCNI.js.map → chunk-2QHKXI5N.js.map} +0 -0
- /package/dist/{chunk-4YG7YK7S.js.map → chunk-L2GENUG3.js.map} +0 -0
- /package/dist/{chunk-J2HG7UCP.js.map → chunk-OEYXSD3O.js.map} +0 -0
- /package/dist/{chunk-P3CVAWGJ.js.map → chunk-QTW5CH62.js.map} +0 -0
- /package/dist/{chunk-L3GMMGRS.js.map → chunk-R2ZADXRB.js.map} +0 -0
- /package/dist/{chunk-SN6UYX54.js.map → chunk-W6TO6K2X.js.map} +0 -0
- /package/dist/{chunk-UGVI47X6.js.map → chunk-YNSXUEIR.js.map} +0 -0
package/dist/chunk-H6IQ63DQ.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveAgentGUIProviderCatalogIdentity
|
|
3
|
-
} from "./chunk-KJQERFKX.js";
|
|
4
|
-
|
|
5
|
-
// shared/managedAgentProviders.ts
|
|
6
|
-
function normalizeManagedAgentProvider(provider) {
|
|
7
|
-
const normalized = provider?.trim().toLowerCase().replace(/[_\s]+/gu, "-") ?? "";
|
|
8
|
-
return resolveAgentGUIProviderCatalogIdentity(normalized)?.iconKey ?? (normalized === "tutti-doc" ? "tutti" : normalized);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export {
|
|
12
|
-
normalizeManagedAgentProvider
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=chunk-H6IQ63DQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../shared/managedAgentProviders.ts"],"sourcesContent":["import { resolveAgentGUIProviderCatalogIdentity } from \"../providerIdentityCatalog.ts\";\n\nexport function normalizeManagedAgentProvider(\n provider: string | undefined\n): string {\n const normalized =\n provider\n ?.trim()\n .toLowerCase()\n .replace(/[_\\s]+/gu, \"-\") ?? \"\";\n return (\n resolveAgentGUIProviderCatalogIdentity(normalized)?.iconKey ??\n (normalized === \"tutti-doc\" ? \"tutti\" : normalized)\n );\n}\n"],"mappings":";;;;;AAEO,SAAS,8BACd,UACQ;AACR,QAAM,aACJ,UACI,KAAK,EACN,YAAY,EACZ,QAAQ,YAAY,GAAG,KAAK;AACjC,SACE,uCAAuC,UAAU,GAAG,YACnD,eAAe,cAAc,UAAU;AAE5C;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../generated/providerIdentityCatalog.ts","../providerIdentityCatalog.ts"],"sourcesContent":["// Code generated by tools/scripts/generate-agent-gui-provider-catalog.mjs. DO NOT EDIT.\n\nexport const generatedProviderIdentityCatalog = [\n {\n providerId: \"codex\",\n displayName: \"Codex\",\n iconKey: \"codex\",\n localeKey: \"agentHost.agentGui.conversationFilterCodex\",\n aliases: [],\n target: {\n id: \"local:codex\",\n launchRefType: \"local_cli\",\n enabled: true,\n sortOrder: 10\n },\n desktop: {\n managed: true,\n managedOrder: 2,\n statusProbePriority: 1,\n usageProbeKind: \"codex\",\n visibilityGate: \"\",\n runtimeProbeFallback: \"\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 0,\n developerLogs: true,\n defaultProviderEligible: true,\n defaultProviderPriority: 1\n }\n },\n {\n providerId: \"claude-code\",\n displayName: \"Claude Code\",\n iconKey: \"claude-code\",\n localeKey: \"agentHost.agentGui.conversationFilterClaudeCode\",\n aliases: [\"claude\", \"claude code\"],\n target: {\n id: \"local:claude-code\",\n launchRefType: \"local_cli\",\n enabled: true,\n sortOrder: 20\n },\n desktop: {\n managed: true,\n managedOrder: 1,\n statusProbePriority: 2,\n usageProbeKind: \"claude_code\",\n visibilityGate: \"\",\n runtimeProbeFallback: \"\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 0,\n developerLogs: true,\n defaultProviderEligible: true,\n defaultProviderPriority: 2\n }\n },\n {\n providerId: \"cursor\",\n displayName: \"Cursor\",\n iconKey: \"cursor\",\n localeKey: \"agentHost.agentGui.conversationFilterCursor\",\n aliases: [\"cursor-agent\", \"cursor agent\", \"cursor-cli\"],\n target: {\n id: \"local:cursor\",\n launchRefType: \"local_cli\",\n enabled: true,\n sortOrder: 30\n },\n desktop: {\n managed: true,\n managedOrder: 3,\n statusProbePriority: 3,\n usageProbeKind: \"\",\n visibilityGate: \"cursor_preview\",\n runtimeProbeFallback: \"direct\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 0,\n developerLogs: true,\n defaultProviderEligible: true,\n defaultProviderPriority: 3\n }\n },\n {\n providerId: \"tutti-agent\",\n displayName: \"Tutti Agent\",\n iconKey: \"tutti\",\n localeKey: \"agentHost.agentGui.conversationFilterTutti\",\n aliases: [\"tutti agent\"],\n target: {\n id: \"local:tutti-agent\",\n launchRefType: \"local_cli\",\n enabled: false,\n sortOrder: 40\n },\n desktop: {\n managed: true,\n managedOrder: 4,\n statusProbePriority: 4,\n usageProbeKind: \"\",\n visibilityGate: \"tutti_agent\",\n runtimeProbeFallback: \"\",\n installBootstrap: true,\n refreshOnAccountChange: true,\n unavailableDockOrderOffset: 0,\n developerLogs: false,\n defaultProviderEligible: false,\n defaultProviderPriority: 0\n }\n },\n {\n providerId: \"opencode\",\n displayName: \"OpenCode\",\n iconKey: \"opencode\",\n localeKey: \"agentHost.agentGui.conversationFilterOpenCode\",\n aliases: [\"open-code\", \"open code\", \"opencode-ai\", \"opencode_ai\"],\n target: {\n id: \"local:opencode\",\n launchRefType: \"local_cli\",\n enabled: true,\n sortOrder: 50\n },\n desktop: {\n managed: true,\n managedOrder: 5,\n statusProbePriority: 5,\n usageProbeKind: \"\",\n visibilityGate: \"opencode_preview\",\n runtimeProbeFallback: \"\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 0,\n developerLogs: false,\n defaultProviderEligible: true,\n defaultProviderPriority: 4\n }\n },\n {\n providerId: \"nexight\",\n displayName: \"Nexight\",\n iconKey: \"tutti\",\n localeKey: \"agentHost.agentGui.conversationFilterNexight\",\n aliases: [\"tutti\"],\n target: {\n id: \"local:nexight\",\n launchRefType: \"local_cli\",\n enabled: false,\n sortOrder: 60\n },\n desktop: {\n managed: false,\n managedOrder: 0,\n statusProbePriority: 0,\n usageProbeKind: \"\",\n visibilityGate: \"\",\n runtimeProbeFallback: \"\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 0,\n developerLogs: false,\n defaultProviderEligible: false,\n defaultProviderPriority: 0\n }\n },\n {\n providerId: \"hermes\",\n displayName: \"Hermes Agent\",\n iconKey: \"hermes\",\n localeKey: \"agentHost.agentGui.conversationFilterHermes\",\n aliases: [\"hermes-agent\", \"hermes agent\"],\n target: {\n id: \"local:hermes\",\n launchRefType: \"local_cli\",\n enabled: false,\n sortOrder: 70\n },\n desktop: {\n managed: true,\n managedOrder: 6,\n statusProbePriority: 6,\n usageProbeKind: \"\",\n visibilityGate: \"\",\n runtimeProbeFallback: \"\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 0,\n developerLogs: false,\n defaultProviderEligible: false,\n defaultProviderPriority: 0\n }\n },\n {\n providerId: \"openclaw\",\n displayName: \"OpenClaw\",\n iconKey: \"openclaw\",\n localeKey: \"agentHost.agentGui.conversationFilterOpenClaw\",\n aliases: [\"open-claw\"],\n target: {\n id: \"local:openclaw\",\n launchRefType: \"local_cli\",\n enabled: false,\n sortOrder: 80\n },\n desktop: {\n managed: true,\n managedOrder: 7,\n statusProbePriority: 7,\n usageProbeKind: \"\",\n visibilityGate: \"\",\n runtimeProbeFallback: \"\",\n installBootstrap: false,\n refreshOnAccountChange: false,\n unavailableDockOrderOffset: 200,\n developerLogs: false,\n defaultProviderEligible: false,\n defaultProviderPriority: 0\n }\n }\n] as const;\n","import { generatedProviderIdentityCatalog } from \"./generated/providerIdentityCatalog.ts\";\nimport type { TranslateFn } from \"./i18n/index.ts\";\n\nexport interface AgentGUIProviderIdentityCatalogEntry {\n providerId: string;\n displayName: string;\n iconKey: string;\n localeKey: string;\n aliases: readonly string[];\n target: {\n id: string;\n launchRefType: string;\n enabled: boolean;\n sortOrder: number;\n };\n desktop: {\n managed: boolean;\n managedOrder: number;\n statusProbePriority: number;\n usageProbeKind: string;\n visibilityGate: string;\n runtimeProbeFallback: \"\" | \"direct\";\n installBootstrap: boolean;\n refreshOnAccountChange: boolean;\n unavailableDockOrderOffset: number;\n developerLogs: boolean;\n defaultProviderEligible: boolean;\n defaultProviderPriority: number;\n };\n source: \"generated\";\n}\n\nexport const migratedAgentGUIProviderIdentityCatalog: readonly AgentGUIProviderIdentityCatalogEntry[] =\n generatedProviderIdentityCatalog.map((entry) => ({\n ...entry,\n source: \"generated\" as const\n }));\n\nconst migratedIdentityByKey = indexIdentities(\n migratedAgentGUIProviderIdentityCatalog\n);\n\nexport function resolveMigratedAgentGUIProviderIdentity(\n value: string | null | undefined\n): AgentGUIProviderIdentityCatalogEntry | null {\n return migratedIdentityByKey.get(normalizeIdentityKey(value)) ?? null;\n}\n\nexport function resolveAgentGUIProviderCatalogIdentity(\n value: string | null | undefined\n): AgentGUIProviderIdentityCatalogEntry | null {\n return resolveMigratedAgentGUIProviderIdentity(value);\n}\n\nexport function agentGUIProviderIdentityDisplayName(\n identity: AgentGUIProviderIdentityCatalogEntry,\n t: TranslateFn\n): string {\n const localeKey = identity.localeKey;\n const localized = t(localeKey);\n return localized === localeKey ? identity.displayName : localized;\n}\n\nfunction indexIdentities(\n entries: readonly AgentGUIProviderIdentityCatalogEntry[]\n): ReadonlyMap<string, AgentGUIProviderIdentityCatalogEntry> {\n const result = new Map<string, AgentGUIProviderIdentityCatalogEntry>();\n for (const entry of entries) {\n for (const key of [entry.providerId, ...entry.aliases]) {\n result.set(normalizeIdentityKey(key), entry);\n }\n }\n return result;\n}\n\nfunction normalizeIdentityKey(value: string | null | undefined): string {\n return value?.trim().toLowerCase() ?? \"\";\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../agentActivityRuntime.tsx","../agentActivityHost.tsx","../host/agentHostApi.ts","../shared/workspaceAgentProviderLabel.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n useSyncExternalStore,\n type JSX,\n type PropsWithChildren\n} from \"react\";\nimport type {\n AgentActivityActivateSessionResult,\n AgentActivityGoalControlInput,\n AgentActivityGoalControlResult,\n AgentActivityCreateSessionInput,\n AgentActivityDeleteSessionInput,\n AgentActivityDeleteSessionResult,\n AgentActivityMessageOrder,\n AgentActivityMessagePage,\n AgentActivityRenameSessionInput,\n AgentActivitySendInput,\n AgentActivitySendInputResult,\n AgentActivitySession,\n AgentActivitySessionSettings,\n AgentActivitySnapshot,\n AgentActivitySnapshotListener,\n AgentActivitySubmitInteractiveInput,\n AgentActivitySubmitInteractiveResult,\n AgentSessionEngine\n} from \"@tutti-os/agent-activity-core\";\nimport type {\n AgentHostAgentSessionComposerSettings,\n AgentHostUnactivateAgentSessionResult\n} from \"./shared/contracts/dto\";\n\nexport interface AgentActivityRuntimeUpdateSessionSettingsResult {\n agentSessionId: string;\n settings: AgentHostAgentSessionComposerSettings;\n session: AgentActivitySession;\n}\n\nexport interface AgentActivityRuntimeListSessionMessagesInput {\n afterVersion?: number;\n beforeVersion?: number;\n cache?: boolean;\n agentSessionId: string;\n limit?: number;\n order?: AgentActivityMessageOrder;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListGeneratedFilesInput {\n agentTargetIds?: readonly string[];\n limit?: number;\n query?: string;\n sessionCwd?: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListSessionsPageInput {\n agentTargetId?: string | null;\n cursor?: string;\n limit?: number;\n searchQuery?: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeSessionPageResult {\n hasMore: boolean;\n nextCursor?: string;\n sessions: AgentActivitySession[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListSessionSectionsInput {\n agentTargetId?: string | null;\n limitPerSection?: number;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListSessionSectionPageInput {\n agentTargetId?: string | null;\n cursor?: string;\n limit?: number;\n sectionKey: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListPinnedSessionsPageInput {\n agentTargetId?: string | null;\n cursor?: string;\n limit?: number;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeUserProject {\n createdAtUnixMs: number;\n id: string;\n label: string;\n lastUsedAtUnixMs?: number;\n path: string;\n sectionKey: string;\n updatedAtUnixMs: number;\n}\n\nexport interface AgentActivityRuntimeSessionSection {\n kind: \"conversations\" | \"project\";\n sectionKey: string;\n userProject?: AgentActivityRuntimeUserProject;\n sessions: AgentActivitySession[];\n hasMore: boolean;\n totalCount: number;\n nextCursor?: string;\n}\n\nexport interface AgentActivityRuntimeSessionPage {\n sessions: AgentActivitySession[];\n hasMore: boolean;\n totalCount: number;\n nextCursor?: string;\n}\n\nexport interface AgentActivityRuntimeSessionSectionsResult {\n pinned?: AgentActivityRuntimeSessionPage;\n sections: AgentActivityRuntimeSessionSection[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeGeneratedFile {\n label: string;\n path: string;\n}\n\nexport interface AgentActivityRuntimeGeneratedFileList {\n entries: AgentActivityRuntimeGeneratedFile[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeEnsureSessionSynchronizedInput {\n afterVersion?: number;\n agentSessionId: string;\n onError?: (error: unknown) => void;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeSetSessionPinnedInput {\n agentSessionId: string;\n pinned: boolean;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeTrackSettingsProjectChangeInput {\n action: \"clear\" | \"create_new\" | \"select_existing\";\n agentSessionId: string;\n provider?: string | null;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeGetComposerOptionsInput {\n agentTargetId: string;\n cwd?: string | null;\n force?: boolean;\n provider?: string;\n settings?: AgentHostAgentSessionComposerSettings | null;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeUpdateSessionSettingsInput {\n agentSessionId: string;\n settings: AgentHostAgentSessionComposerSettings;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeTrackDraftComposerSettingsChangeInput {\n nextSettings: AgentHostAgentSessionComposerSettings;\n previousSettings: AgentHostAgentSessionComposerSettings;\n provider: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeDiagnosticInput {\n details?: Record<string, unknown>;\n event: string;\n level?: \"debug\" | \"info\" | \"warn\" | \"error\";\n source?: string;\n workspaceId?: string | null;\n}\n\ninterface AgentActivityRuntimeActivateSessionInputBase {\n agentSessionId: string;\n cwd?: string;\n initialContent?: AgentActivitySendInput[\"content\"];\n /** 仅展示用首轮文本(bundle 折叠成一个 chip);initialContent 仍带展开后的文件。 */\n initialDisplayPrompt?: string | null;\n submitDiagnostics?: AgentActivitySendInput[\"submitDiagnostics\"];\n settings?: AgentActivitySessionSettings;\n title?: string;\n visible?: boolean;\n workspaceId: string;\n signal?: AbortSignal;\n}\n\nexport type AgentActivityRuntimeActivateSessionInput =\n | (AgentActivityRuntimeActivateSessionInputBase & {\n agentTargetId: string;\n clientSubmitId: string;\n mode: \"new\";\n })\n | (AgentActivityRuntimeActivateSessionInputBase & {\n agentTargetId?: string | null;\n clientSubmitId?: never;\n mode: \"existing\";\n });\n\nexport interface AgentActivityRuntimeUnactivateSessionInput {\n agentSessionId: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeReadSessionAttachmentInput {\n agentSessionId: string;\n attachmentId: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeReadPromptAssetInput {\n agentSessionId?: string | null;\n assetId?: string | null;\n hostPath?: string | null;\n kind?: string | null;\n mimeType: string;\n name?: string | null;\n path?: string | null;\n sha256?: string | null;\n uploadStatus?: string | null;\n uri?: string | null;\n workspaceId: string;\n}\n\nexport type AgentActivityRuntimePromptContentBlock =\n AgentActivitySendInput[\"content\"][number] & {\n assetId?: string;\n hostPath?: string;\n kind?: string;\n path?: string;\n sizeBytes?: number;\n uploadStatus?: string;\n uri?: string;\n };\n\nexport interface AgentActivityRuntimeUploadPromptContentInput {\n content: AgentActivityRuntimePromptContentBlock[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeUploadPromptContentResult {\n content: AgentActivityRuntimePromptContentBlock[];\n}\n\n/**\n * Dedicated host boundary for turning an in-memory text paste into a local\n * prompt asset. The runtime owns persistence and returns a sendable host path;\n * AgentGUI must not infer this capability from generic file-upload support.\n */\nexport interface AgentActivityRuntimeStagePastedTextInput {\n name: string;\n text: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeStagePastedTextResult {\n name: string;\n path: string;\n sizeBytes: number;\n}\n\nexport interface AgentActivityRuntimeSessionSectionScopeInput {\n agentTargetId?: string | null;\n excludePinned?: boolean;\n sectionKey: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeSessionSectionDeletionCandidates {\n agentTargetId?: string | null;\n excludePinned: boolean;\n sectionKey: string;\n sessionIds: string[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeDeleteSessionsBatchInput {\n sessionIds: string[];\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeDeleteSessionsBatchResult {\n removedMessages: number;\n removedSessionIds: string[];\n removedSessions: number;\n}\n\nexport interface AgentActivityRuntimeSessionAttachment {\n attachmentId: string;\n mimeType: string;\n name?: string;\n data: string;\n}\n\nexport interface AgentActivityRuntimePromptAsset {\n assetId?: string;\n hostPath?: string;\n kind?: string;\n mimeType: string;\n name?: string;\n path: string;\n uploadStatus?: string;\n uri?: string;\n data: string;\n}\n\nexport interface AgentActivityRuntime {\n /**\n * Stable identity of this runtime instance (e.g. a local origin vs a\n * shared/room origin). The runtime owns one session engine per workspace and\n * that engine verifies this origin as part of its injected identity. Runtime\n * consumers resolve only through the nearest React provider; module-global\n * runtime lookup and last-mounted fallback are forbidden. An absent origin\n * means the canonical local origin.\n */\n origin?: string;\n /**\n * The session cwd is not resolvable on the local filesystem (e.g. a\n * shared/cloud sandbox not mounted locally), so AgentGUI must not run its\n * local stat-based \"working directory missing\" existence check — it would\n * always false-positive. Absent/false (default) => local, legacy behaviour.\n * Only that one guard is gated; project selection/listing is unaffected.\n */\n projectPathIsRemote?: boolean;\n promptContentUploadSupport?: {\n file?: boolean;\n image?: boolean;\n };\n /** Set false to suppress AgentGUI diagnostics in development consoles. */\n devDiagnosticConsoleSink?: boolean;\n goalControl(\n input: AgentActivityGoalControlInput\n ): Promise<AgentActivityGoalControlResult>;\n createSession(\n input: AgentActivityCreateSessionInput\n ): Promise<AgentActivitySession>;\n deleteSession(\n input: AgentActivityDeleteSessionInput\n ): Promise<AgentActivityDeleteSessionResult>;\n activateSession(\n input: AgentActivityRuntimeActivateSessionInput\n ): Promise<AgentActivityActivateSessionResult>;\n getSession(\n workspaceId: string,\n agentSessionId: string\n ): Promise<AgentActivitySession>;\n getComposerOptions(\n input: AgentActivityRuntimeGetComposerOptionsInput\n ): Promise<unknown>;\n updateSessionSettings(\n input: AgentActivityRuntimeUpdateSessionSettingsInput\n ): Promise<AgentActivityRuntimeUpdateSessionSettingsResult>;\n getSnapshot(workspaceId: string): AgentActivitySnapshot;\n getSessionEngine(workspaceId: string): AgentSessionEngine;\n listSessionMessages(\n input: AgentActivityRuntimeListSessionMessagesInput\n ): Promise<AgentActivityMessagePage>;\n listAgentGeneratedFiles?(\n input: AgentActivityRuntimeListGeneratedFilesInput\n ): Promise<AgentActivityRuntimeGeneratedFileList>;\n listSessionsPage?(\n input: AgentActivityRuntimeListSessionsPageInput\n ): Promise<AgentActivityRuntimeSessionPageResult>;\n listSessionSections?(\n input: AgentActivityRuntimeListSessionSectionsInput\n ): Promise<AgentActivityRuntimeSessionSectionsResult>;\n listSessionSectionPage?(\n input: AgentActivityRuntimeListSessionSectionPageInput\n ): Promise<AgentActivityRuntimeSessionSection>;\n listSessionSectionDeletionCandidates?(\n input: AgentActivityRuntimeSessionSectionScopeInput\n ): Promise<AgentActivityRuntimeSessionSectionDeletionCandidates>;\n deleteSessionsBatch?(\n input: AgentActivityRuntimeDeleteSessionsBatchInput\n ): Promise<AgentActivityRuntimeDeleteSessionsBatchResult>;\n listPinnedSessionsPage?(\n input: AgentActivityRuntimeListPinnedSessionsPageInput\n ): Promise<AgentActivityRuntimeSessionPage>;\n load(\n workspaceId: string,\n signal?: AbortSignal\n ): Promise<AgentActivitySnapshot>;\n ensureSessionSynchronized?(\n input: AgentActivityRuntimeEnsureSessionSynchronizedInput\n ): () => void;\n sendInput(\n input: AgentActivitySendInput\n ): Promise<AgentActivitySendInputResult>;\n uploadPromptContent?(\n input: AgentActivityRuntimeUploadPromptContentInput\n ): Promise<AgentActivityRuntimeUploadPromptContentResult>;\n stagePastedText?(\n input: AgentActivityRuntimeStagePastedTextInput\n ): Promise<AgentActivityRuntimeStagePastedTextResult>;\n readSessionAttachment?(\n input: AgentActivityRuntimeReadSessionAttachmentInput\n ): Promise<AgentActivityRuntimeSessionAttachment>;\n readPromptAsset?(\n input: AgentActivityRuntimeReadPromptAssetInput\n ): Promise<AgentActivityRuntimePromptAsset>;\n renameSession(\n input: AgentActivityRenameSessionInput\n ): Promise<AgentActivitySession>;\n setSessionPinned(\n input: AgentActivityRuntimeSetSessionPinnedInput\n ): Promise<AgentActivitySession>;\n trackSettingsProjectChange?(\n input: AgentActivityRuntimeTrackSettingsProjectChangeInput\n ): Promise<void>;\n trackDraftComposerSettingsChange?(\n input: AgentActivityRuntimeTrackDraftComposerSettingsChangeInput\n ): Promise<void>;\n reportDiagnostic?(\n input: AgentActivityRuntimeDiagnosticInput\n ): Promise<void> | void;\n unactivateSession(\n input: AgentActivityRuntimeUnactivateSessionInput\n ): Promise<AgentHostUnactivateAgentSessionResult>;\n submitInteractive(\n input: AgentActivitySubmitInteractiveInput\n ): Promise<AgentActivitySubmitInteractiveResult>;\n subscribeSessionEvents(\n workspaceId: string,\n listener: (event: unknown) => void\n ): () => void;\n subscribe(\n workspaceId: string,\n listener: AgentActivitySnapshotListener\n ): () => void;\n}\n\nconst AgentActivityRuntimeContext = createContext<AgentActivityRuntime | null>(\n null\n);\n\nfunction createTestAgentActivityRuntimeHolder(): {\n get: () => AgentActivityRuntime | null;\n set: (runtime: AgentActivityRuntime | null) => void;\n} {\n let runtime: AgentActivityRuntime | null = null;\n return {\n get: () => runtime,\n set: (nextRuntime) => {\n runtime = nextRuntime;\n }\n };\n}\n\nconst testAgentActivityRuntimeHolder = createTestAgentActivityRuntimeHolder();\n\nexport interface AgentActivityRuntimeProviderProps extends PropsWithChildren {\n runtime?: AgentActivityRuntime | null;\n}\n\nexport function AgentActivityRuntimeProvider({\n children,\n runtime\n}: AgentActivityRuntimeProviderProps): JSX.Element {\n return (\n <AgentActivityRuntimeContext.Provider value={runtime ?? null}>\n {children}\n </AgentActivityRuntimeContext.Provider>\n );\n}\n\nexport function useAgentActivityRuntime(): AgentActivityRuntime {\n const runtime =\n useContext(AgentActivityRuntimeContext) ?? getTestAgentActivityRuntime();\n if (!runtime) {\n throw new Error(\n \"AgentActivityRuntimeProvider is missing an AgentActivityRuntime instance.\"\n );\n }\n return runtime;\n}\n\nexport function useOptionalAgentActivityRuntime(): AgentActivityRuntime | null {\n return (\n useContext(AgentActivityRuntimeContext) ?? getTestAgentActivityRuntime()\n );\n}\n\nexport function useAgentActivitySnapshot(\n workspaceId: string\n): AgentActivitySnapshot {\n const runtime = useAgentActivityRuntime();\n const normalizedWorkspaceId = workspaceId.trim();\n return useSyncExternalStore(\n (listener) => runtime.subscribe(normalizedWorkspaceId, listener),\n () => runtime.getSnapshot(normalizedWorkspaceId),\n () => runtime.getSnapshot(normalizedWorkspaceId)\n );\n}\n\nexport function resetAgentActivityRuntimeForTests(): void {\n if (process.env.NODE_ENV === \"test\") {\n testAgentActivityRuntimeHolder.set(null);\n }\n}\n\nexport function setAgentActivityRuntimeForTests(\n runtime: AgentActivityRuntime | null\n): void {\n if (process.env.NODE_ENV === \"test\") {\n testAgentActivityRuntimeHolder.set(runtime);\n }\n}\n\nfunction getTestAgentActivityRuntime(): AgentActivityRuntime | null {\n if (process.env.NODE_ENV !== \"test\") {\n return null;\n }\n if (typeof window === \"undefined\") {\n return null;\n }\n const explicitRuntime = getExplicitWindowTestAgentActivityRuntime();\n if (explicitRuntime) {\n return explicitRuntime;\n }\n const testRuntimeOverride = testAgentActivityRuntimeHolder.get();\n if (testRuntimeOverride) {\n return testRuntimeOverride;\n }\n const testRuntime = (\n window as unknown as Window & {\n agentActivityRuntime?: AgentActivityRuntime;\n }\n ).agentActivityRuntime;\n return testRuntime ?? null;\n}\n\nfunction getExplicitWindowTestAgentActivityRuntime(): AgentActivityRuntime | null {\n if (process.env.NODE_ENV !== \"test\" || typeof window === \"undefined\") {\n return null;\n }\n const testDescriptor = Object.getOwnPropertyDescriptor(\n window,\n \"agentActivityRuntime\"\n );\n if (!testDescriptor || !(\"value\" in testDescriptor)) {\n return null;\n }\n return (testDescriptor.value as AgentActivityRuntime | undefined) ?? null;\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type JSX,\n type PropsWithChildren\n} from \"react\";\nimport {\n toAgentHostRuntimeApi,\n type AgentHostInputApi,\n type AgentHostRuntimeApi\n} from \"./host/agentHostApi\";\nimport {\n AgentActivityRuntimeProvider,\n type AgentActivityRuntime\n} from \"./agentActivityRuntime\";\n\nconst AgentActivityHostContext = createContext<AgentHostRuntimeApi | null>(\n null\n);\n\nlet currentAgentHostApi: AgentHostRuntimeApi | null = null;\n\nexport interface AgentActivityHostProviderProps extends PropsWithChildren {\n agentActivityRuntime?: AgentActivityRuntime | null;\n agentHostApi?: AgentHostInputApi | null;\n}\n\nexport function AgentActivityHostProvider({\n agentActivityRuntime,\n agentHostApi,\n children\n}: AgentActivityHostProviderProps): JSX.Element {\n const resolvedAgentHostApi = useMemo(\n () => (agentHostApi ? toAgentHostRuntimeApi(agentHostApi) : null),\n [agentHostApi]\n );\n currentAgentHostApi = resolvedAgentHostApi;\n return (\n <AgentActivityRuntimeProvider runtime={agentActivityRuntime}>\n <AgentActivityHostContext.Provider value={resolvedAgentHostApi}>\n {children}\n </AgentActivityHostContext.Provider>\n </AgentActivityRuntimeProvider>\n );\n}\n\nexport function useAgentHostApi(): AgentHostRuntimeApi {\n const agentHostApi =\n useContext(AgentActivityHostContext) ?? getTestAgentHostApi();\n if (!agentHostApi) {\n throw new Error(\n \"AgentActivityHostProvider is missing an agentHostApi instance.\"\n );\n }\n return agentHostApi;\n}\n\nexport function useOptionalAgentHostApi(): AgentHostRuntimeApi | null {\n return useContext(AgentActivityHostContext) ?? getTestAgentHostApi();\n}\n\nexport function getOptionalAgentHostApi(): AgentHostRuntimeApi | null {\n return (\n getExplicitWindowTestAgentHostApi() ??\n currentAgentHostApi ??\n getTestAgentHostApi()\n );\n}\n\nexport function resetAgentHostApiForTests(): void {\n if (process.env.NODE_ENV === \"test\") {\n currentAgentHostApi = null;\n }\n}\n\nexport function setAgentHostApiForTests(\n agentHostApi: AgentHostInputApi | AgentHostRuntimeApi | null\n): void {\n if (process.env.NODE_ENV === \"test\") {\n currentAgentHostApi = agentHostApi\n ? toAgentHostRuntimeApi(agentHostApi)\n : null;\n }\n}\n\nfunction getTestAgentHostApi(): AgentHostRuntimeApi | null {\n if (process.env.NODE_ENV !== \"test\") {\n return null;\n }\n if (typeof window === \"undefined\") {\n return null;\n }\n const explicitAgentHostApi = getExplicitWindowTestAgentHostApi();\n if (explicitAgentHostApi) {\n return explicitAgentHostApi;\n }\n if (currentAgentHostApi) {\n return currentAgentHostApi;\n }\n const testAgentHostApi = (\n window as unknown as Window & {\n agentHostApi?: AgentHostInputApi | AgentHostRuntimeApi;\n }\n ).agentHostApi;\n return testAgentHostApi ? toAgentHostRuntimeApi(testAgentHostApi) : null;\n}\n\nfunction getExplicitWindowTestAgentHostApi(): AgentHostRuntimeApi | null {\n if (process.env.NODE_ENV !== \"test\" || typeof window === \"undefined\") {\n return null;\n }\n const testDescriptor = Object.getOwnPropertyDescriptor(\n window,\n \"agentHostApi\"\n );\n if (!testDescriptor || !(\"value\" in testDescriptor)) {\n return null;\n }\n const testAgentHostApi = testDescriptor.value as\n | AgentHostInputApi\n | AgentHostRuntimeApi\n | undefined;\n return testAgentHostApi ? toAgentHostRuntimeApi(testAgentHostApi) : null;\n}\n","import type {\n AgentHostBatchUserInfoInput,\n AgentHostBatchUserInfoResult,\n AgentHostListWorkspaceAgentProbesInput,\n AgentHostWorkspaceAgentProbesResult,\n PersistWriteResult,\n ReadWorkspaceAgentReadStateInput,\n ReadWorkspaceFileResult as AgentHostReadWorkspaceFileResult,\n WorkspaceAgentReadStateSnapshot,\n WriteWorkspaceAgentReadStateInput\n} from \"../shared/contracts/dto\";\nimport type { WorkspaceUserProjectService } from \"@tutti-os/workspace-user-project/contracts\";\n\ntype AgentHostAsyncResult<T = any> = Promise<T>;\ntype AgentHostRecord = Record<string, unknown>;\ntype AgentHostUnsubscribe = () => void;\n\nexport type AgentHostClipboardApi = {\n writeImage?: (input: {\n data: string;\n mimeType: \"image/png\";\n }) => AgentHostAsyncResult<void>;\n writeText: (text: string) => AgentHostAsyncResult<void>;\n};\n\nexport type AgentHostDebugApi = {\n logRuntimeDiagnostics: (\n payload: unknown\n ) => AgentHostAsyncResult<void> | void;\n logTerminalDiagnostics?: (\n payload: unknown\n ) => AgentHostAsyncResult<void> | void;\n};\n\nexport type AgentHostFilesystemApi = AgentHostRecord & {\n readFileText: (payload: {\n path?: string;\n uri?: string;\n }) => AgentHostAsyncResult<{\n content: string;\n name?: string;\n path?: string;\n }>;\n};\n\nexport type AgentHostMetaApi = AgentHostRecord & {\n appVersion?: string | null;\n isPackaged?: boolean;\n isTest?: boolean;\n mainPid?: number | null;\n platform?: string;\n workspaceId?: string;\n};\n\nexport type AgentHostEnvironmentApi = AgentHostRecord & {\n getBaseUrl?: () => AgentHostAsyncResult<string>;\n};\n\nexport type AgentHostPersistenceApi = AgentHostRecord & {\n readWorkspaceAgentReadState: (\n input: ReadWorkspaceAgentReadStateInput\n ) => AgentHostAsyncResult<WorkspaceAgentReadStateSnapshot>;\n writeWorkspaceAgentReadState: (\n input: WriteWorkspaceAgentReadStateInput\n ) => AgentHostAsyncResult<PersistWriteResult>;\n};\n\nexport type AgentHostToastApi = AgentHostRecord & {\n error: (title: string, description?: string) => void;\n info?: (title: string, description?: string) => void;\n success?: (title: string, description?: string) => void;\n};\n\nexport interface AgentHostSelectedFile {\n name?: string;\n path: string;\n}\n\nexport interface AgentHostSelectFilesInput {\n allowDirectories?: boolean;\n}\n\nexport interface AgentHostApplyWorkspaceGitPatchInput {\n allowBinary?: boolean;\n atomic?: boolean;\n cwd: string;\n diff: string;\n revert?: boolean;\n target?: \"unstaged\" | \"staged\" | \"staged-and-unstaged\";\n}\n\nexport interface AgentHostApplyWorkspaceGitPatchResult {\n status: \"success\" | \"partial-success\" | \"error\";\n appliedPaths: string[];\n skippedPaths: string[];\n conflictedPaths: string[];\n errorCode?: \"not-git-repo\" | string;\n execOutput?: {\n command: string;\n stdout: string;\n stderr: string;\n };\n}\n\nexport interface AgentHostResolveWorkspaceGitPatchSupportInput {\n cwd: string;\n}\n\nexport interface AgentHostResolveWorkspaceGitPatchSupportResult {\n supported: boolean;\n root?: string;\n errorCode?: \"not-git-repo\" | string;\n}\n\nexport type AgentHostWorkspaceApi = AgentHostRecord & {\n applyGitPatch?: (\n input: AgentHostApplyWorkspaceGitPatchInput\n ) => AgentHostAsyncResult<AgentHostApplyWorkspaceGitPatchResult>;\n resolveGitPatchSupport?: (\n input: AgentHostResolveWorkspaceGitPatchSupportInput\n ) => AgentHostAsyncResult<AgentHostResolveWorkspaceGitPatchSupportResult>;\n copyPath?: (input: { path: string }) => AgentHostAsyncResult<void>;\n ensureDirectory: (input: { path: string }) => AgentHostAsyncResult<void>;\n getReferenceForFile?: (file: File) => {\n kind: \"file\" | \"folder\";\n path: string;\n };\n readFile: (input: {\n path: string;\n }) => AgentHostAsyncResult<AgentHostReadWorkspaceFileResult>;\n selectContextEntries?: () => AgentHostAsyncResult<{ entries: unknown[] }>;\n selectDirectory: () => AgentHostAsyncResult<{ path: string } | null>;\n selectFiles: (\n input?: AgentHostSelectFilesInput\n ) => AgentHostAsyncResult<AgentHostSelectedFile[]>;\n writeFileText: (input: {\n content: string;\n path: string;\n }) => AgentHostAsyncResult<unknown>;\n};\n\nexport interface AgentHostInputApi {\n account?: AgentHostAccountApi;\n agentSessions?: AgentHostAgentSessionsApi;\n clipboard: AgentHostClipboardApi;\n debug?: AgentHostDebugApi;\n filesystem: AgentHostFilesystemApi;\n meta?: AgentHostMetaApi;\n onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n persistence?: AgentHostPersistenceApi;\n runtime?: AgentHostEnvironmentApi;\n toast?: AgentHostToastApi;\n userProjects?: AgentHostUserProjectsApi;\n workspace: AgentHostWorkspaceApi;\n workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;\n}\n\nexport type AgentHostApi = AgentHostInputApi;\n\nexport type AgentHostAccountApi = AgentHostRecord & {\n batchGetUserInfo: (\n input: AgentHostBatchUserInfoInput\n ) => AgentHostAsyncResult<AgentHostBatchUserInfoResult>;\n ensureProfiles?: (input: any) => AgentHostAsyncResult<any>;\n};\n\nexport type AgentHostWorkspaceAgentProbesApi = AgentHostRecord & {\n list: (\n input: AgentHostListWorkspaceAgentProbesInput\n ) => AgentHostAsyncResult<AgentHostWorkspaceAgentProbesResult>;\n};\n\nexport type AgentProviderProbeListInput =\n AgentHostListWorkspaceAgentProbesInput;\nexport type AgentProviderProbeListResult = AgentHostWorkspaceAgentProbesResult;\n\nexport interface AgentHostUserProject {\n id: string;\n path: string;\n label: string;\n sectionKey?: string;\n createdAtUnixMs?: number;\n updatedAtUnixMs?: number;\n lastUsedAtUnixMs?: number;\n}\n\nexport type AgentHostUserProjectsApi = AgentHostRecord & {\n service?: WorkspaceUserProjectService;\n checkPath?: (input: { path: string }) => AgentHostAsyncResult<{\n exists: boolean;\n isDirectory: boolean;\n path: string;\n }>;\n create?: (input: {\n name: string;\n }) => AgentHostAsyncResult<AgentHostUserProject>;\n getDefaultSelection?: () => AgentHostAsyncResult<{\n path: string | null;\n } | null>;\n list: () => AgentHostAsyncResult<{\n projects: AgentHostUserProject[];\n }>;\n subscribe?: (listener: () => void) => AgentHostUnsubscribe;\n prepareSelection?: (input: {\n projectLocked: boolean;\n selectedPath: string | null;\n }) => AgentHostAsyncResult<{\n isSelectedPathMissing: boolean;\n projects: AgentHostUserProject[];\n selection:\n | {\n kind: \"clear\";\n suppressedPath: string;\n }\n | {\n kind: \"none\";\n }\n | {\n kind: \"select\";\n path: string;\n };\n }>;\n remove?: (input: { path: string }) => AgentHostAsyncResult<void>;\n isNoProjectPath?: (input: { path: string }) => boolean;\n rememberDefaultSelection?: (input: {\n path: string | null;\n }) => AgentHostAsyncResult<void>;\n use: (input: { path: string }) => AgentHostAsyncResult<AgentHostUserProject>;\n};\n\nexport type AgentHostAgentSessionsApi = AgentHostRecord & {\n activate: (input: any) => AgentHostAsyncResult<any>;\n getComposerOptions?: (input: any) => AgentHostAsyncResult<any>;\n getState: (input: any) => AgentHostAsyncResult<any>;\n onEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n subscribeEvents: (\n input: any,\n listener: (event: any) => void\n ) => AgentHostUnsubscribe;\n unactivate: (input: any) => AgentHostAsyncResult<any>;\n updateSettings: (input: any) => AgentHostAsyncResult<any>;\n};\n\nexport interface AgentHostRuntimeApi {\n account?: AgentHostAccountApi;\n clipboard: AgentHostClipboardApi;\n debug?: AgentHostDebugApi;\n filesystem: AgentHostFilesystemApi;\n meta?: AgentHostMetaApi;\n onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n persistence?: AgentHostPersistenceApi;\n runtime?: AgentHostEnvironmentApi;\n toast?: AgentHostToastApi;\n userProjects?: AgentHostUserProjectsApi;\n workspace: AgentHostWorkspaceApi;\n workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;\n}\n\nexport function toAgentHostRuntimeApi(\n hostApi: AgentHostInputApi | AgentHostRuntimeApi\n): AgentHostRuntimeApi {\n return {\n account: hostApi.account,\n clipboard: hostApi.clipboard,\n debug: hostApi.debug,\n filesystem: hostApi.filesystem,\n meta: hostApi.meta,\n onHostEvent: hostApi.onHostEvent,\n persistence: hostApi.persistence,\n runtime: hostApi.runtime,\n toast: hostApi.toast,\n userProjects: hostApi.userProjects,\n workspace: hostApi.workspace,\n workspaceAgentProbes: hostApi.workspaceAgentProbes\n };\n}\n","import {\n agentGUIProviderIdentityDisplayName,\n resolveMigratedAgentGUIProviderIdentity\n} from \"../providerIdentityCatalog.ts\";\nimport { translate } from \"../i18n/index.ts\";\n\nexport function workspaceAgentProviderLabel(provider: string): string {\n const normalized = provider.trim().toLowerCase();\n const migratedIdentity = resolveMigratedAgentGUIProviderIdentity(normalized);\n if (migratedIdentity) {\n return agentGUIProviderIdentityDisplayName(migratedIdentity, translate);\n }\n return titleCase(provider);\n}\n\nfunction titleCase(value: string): string {\n return value\n .split(/[-_\\s]+/)\n .filter(Boolean)\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(\" \");\n}\n"],"mappings":"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","names":["createContext","useContext","jsx","createContext","useContext"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../workbench/launch.ts"],"sourcesContent":["import type { WorkbenchHostLaunchRequest } from \"@tutti-os/workbench-surface\";\nimport {\n isAgentGuiWorkbenchProvider,\n normalizeAgentGuiWorkbenchProvider\n} from \"./providerCatalog.ts\";\nimport {\n agentGuiWorkbenchOpenSessionActivationType,\n agentGuiWorkbenchPrefillPromptActivationType,\n type AgentGuiWorkbenchPrefillPromptPayload,\n type AgentGuiWorkbenchProvider\n} from \"./types.ts\";\n\nexport { agentGuiWorkbenchPrefillPromptActivationType } from \"./types.ts\";\n\ntype AgentGuiWorkbenchLaunchRequestInput = Pick<\n WorkbenchHostLaunchRequest,\n \"launchSource\" | \"payload\" | \"typeId\"\n> & {\n dockEntryId?: string | null;\n};\n\nexport const agentGuiWorkbenchTypeId = \"agent-gui\";\n\nconst agentGuiWorkbenchDockEntryPrefix = \"agent-gui:\";\nconst agentGuiWorkbenchUnifiedDockEntryIdValue = \"agent-gui:unified\";\nconst agentGuiWorkbenchDockPopupNewWindowLaunchSource = \"dock-popup-new-window\";\nlet agentGuiWorkbenchInstanceSequence = 0;\n\nexport interface AgentGuiWorkbenchDockIdentity {\n kind: \"unifiedAggregate\";\n}\n\n/**\n * @deprecated AgentGUI has one canonical Dock entry. Use\n * {@link agentGuiWorkbenchUnifiedDockEntryId} instead.\n */\nexport function agentGuiWorkbenchDockEntryId(\n _provider: AgentGuiWorkbenchProvider\n): string {\n return agentGuiWorkbenchUnifiedDockEntryId();\n}\n\nexport function agentGuiWorkbenchUnifiedDockEntryId(): string {\n return agentGuiWorkbenchUnifiedDockEntryIdValue;\n}\n\nexport function agentGuiWorkbenchInstanceId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return `${agentGuiWorkbenchDockEntryPrefix}${encodeAgentGuiWorkbenchInstanceSegment(\n provider\n )}`;\n}\n\nexport function createAgentGuiWorkbenchInstanceId(input: {\n agentSessionId?: string | null;\n agentTargetId?: string | null;\n provider: AgentGuiWorkbenchProvider;\n}): string {\n const prefix = agentGuiWorkbenchInstanceId(input.provider);\n const agentSessionId = input.agentSessionId?.trim();\n if (agentSessionId) {\n return `${prefix}:session:${encodeAgentGuiWorkbenchInstanceSegment(\n agentSessionId\n )}`;\n }\n const agentTargetId = input.agentTargetId?.trim();\n if (agentTargetId) {\n return `${prefix}:target:${encodeAgentGuiWorkbenchInstanceSegment(\n agentTargetId\n )}`;\n }\n\n agentGuiWorkbenchInstanceSequence += 1;\n return [\n prefix,\n \"panel\",\n `${Date.now().toString(36)}-${agentGuiWorkbenchInstanceSequence.toString(36)}`\n ].join(\":\");\n}\n\nexport function agentGuiWorkbenchProviderFromIdentifier(\n value: string | null | undefined\n): AgentGuiWorkbenchProvider | null {\n if (agentGuiWorkbenchDockIdentityFromIdentifier(value)) {\n return null;\n }\n const normalized = value?.trim();\n if (!normalized?.startsWith(agentGuiWorkbenchDockEntryPrefix)) {\n return null;\n }\n const identifier = normalized.slice(agentGuiWorkbenchDockEntryPrefix.length);\n const structuredSuffix = identifier.match(\n /:(?:panel|session|target):[^:]*$/u\n );\n const encodedProvider = structuredSuffix\n ? identifier.slice(0, structuredSuffix.index)\n : identifier;\n const provider = decodeAgentGuiWorkbenchInstanceSegment(encodedProvider);\n return isAgentGuiWorkbenchProvider(provider) ? provider : null;\n}\n\nexport function agentGuiWorkbenchDockIdentityFromIdentifier(\n value: string | null | undefined\n): AgentGuiWorkbenchDockIdentity | null {\n const normalized = value?.trim();\n if (!normalized) {\n return null;\n }\n if (normalized === agentGuiWorkbenchUnifiedDockEntryId()) {\n return { kind: \"unifiedAggregate\" };\n }\n return null;\n}\n\nexport function agentGuiWorkbenchProviderFromLaunchRequest(\n request: AgentGuiWorkbenchLaunchRequestInput\n): AgentGuiWorkbenchProvider {\n const payloadProvider =\n request.payload &&\n typeof request.payload === \"object\" &&\n !Array.isArray(request.payload)\n ? (request.payload as { provider?: unknown }).provider\n : null;\n if (isAgentGuiWorkbenchProvider(payloadProvider)) {\n return payloadProvider;\n }\n throw new Error(\"agent_gui_workbench.launch_provider_required\");\n}\n\nexport function createAgentGuiWorkbenchSessionLaunchRequest(input: {\n agentTargetId?: string | null;\n agentSessionId?: string;\n openInNewWindow?: boolean;\n provider: unknown;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n return {\n dockEntryId: agentGuiWorkbenchUnifiedDockEntryId(),\n payload: {\n ...(input.agentTargetId?.trim()\n ? { agentTargetId: input.agentTargetId.trim() }\n : {}),\n ...(input.agentSessionId ? { agentSessionId: input.agentSessionId } : {}),\n ...(input.openInNewWindow ? { openInNewWindow: true } : {}),\n provider\n },\n reason: \"host\" as const,\n typeId: agentGuiWorkbenchTypeId\n };\n}\n\nexport function createAgentGuiWorkbenchDraftLaunchRequest(input: {\n agentTargetId?: string | null;\n autoSubmit?: boolean;\n draftPrompt: string;\n openInNewWindow?: boolean;\n provider: unknown;\n userProjectPath?: string | null;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n const userProjectPath = normalizeAgentGuiWorkbenchUserProjectPath(\n input.userProjectPath\n );\n return {\n dockEntryId: agentGuiWorkbenchUnifiedDockEntryId(),\n payload: {\n draftPrompt: input.draftPrompt,\n provider,\n ...(input.agentTargetId?.trim()\n ? { agentTargetId: input.agentTargetId.trim() }\n : {}),\n ...(input.autoSubmit ? { autoSubmit: true } : {}),\n ...(input.openInNewWindow ? { openInNewWindow: true } : {}),\n ...(userProjectPath ? { userProjectPath } : {})\n },\n reason: \"host\" as const,\n typeId: agentGuiWorkbenchTypeId\n };\n}\n\nexport interface AgentGuiWorkbenchLaunchDescriptor {\n activation:\n | {\n payload: {\n agentSessionId: string;\n };\n type: typeof agentGuiWorkbenchOpenSessionActivationType;\n }\n | {\n payload: AgentGuiWorkbenchPrefillPromptPayload;\n type: typeof agentGuiWorkbenchPrefillPromptActivationType;\n }\n | null;\n dockEntryId: string;\n instanceId: string;\n openInNewWindow: boolean;\n provider: AgentGuiWorkbenchProvider;\n reuseDockEntryNode: boolean;\n reuseExistingSessionNode: boolean;\n targetAgentSessionId: string | null;\n}\n\nexport function createAgentGuiWorkbenchLaunchDescriptor(\n request: AgentGuiWorkbenchLaunchRequestInput\n): AgentGuiWorkbenchLaunchDescriptor {\n const provider = agentGuiWorkbenchProviderFromLaunchRequest(request);\n const dockEntryId = agentGuiWorkbenchUnifiedDockEntryId();\n const prefillPrompt = prefillPromptFromLaunchPayload(request.payload);\n if (prefillPrompt) {\n const openInNewWindow = openInNewWindowFromLaunchPayload(request.payload);\n return {\n activation: {\n payload: prefillPrompt,\n type: agentGuiWorkbenchPrefillPromptActivationType\n },\n dockEntryId,\n instanceId: createAgentGuiWorkbenchInstanceId({\n agentTargetId: openInNewWindow\n ? null\n : agentTargetIdFromLaunchPayload(request.payload),\n provider\n }),\n openInNewWindow,\n provider,\n reuseDockEntryNode:\n !openInNewWindow &&\n shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: \"prefill\"\n }),\n reuseExistingSessionNode: !openInNewWindow,\n targetAgentSessionId: null\n };\n }\n\n const targetAgentSessionId = agentSessionIdFromLaunchPayload(request.payload);\n const openInNewWindow = openInNewWindowFromLaunchRequest(request);\n const instanceId = createAgentGuiWorkbenchInstanceId({\n agentSessionId: null,\n agentTargetId: openInNewWindow\n ? null\n : agentTargetIdFromLaunchPayload(request.payload),\n provider\n });\n\n return {\n activation: targetAgentSessionId\n ? {\n payload: {\n agentSessionId: targetAgentSessionId\n },\n type: agentGuiWorkbenchOpenSessionActivationType\n }\n : null,\n dockEntryId,\n instanceId,\n openInNewWindow,\n provider,\n reuseDockEntryNode:\n !openInNewWindow &&\n shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: targetAgentSessionId ? \"session\" : \"empty\"\n }),\n reuseExistingSessionNode: !openInNewWindow,\n targetAgentSessionId\n };\n}\n\nexport function shouldReuseAgentGuiWorkbenchDockEntryNode(input: {\n dockEntryId: string;\n launchKind: \"empty\" | \"prefill\" | \"session\";\n}): boolean {\n if (input.launchKind === \"empty\") {\n return true;\n }\n if (input.launchKind === \"session\") {\n return false;\n }\n return (\n agentGuiWorkbenchDockIdentityFromIdentifier(input.dockEntryId)?.kind !==\n \"unifiedAggregate\"\n );\n}\n\n/**\n * @deprecated AgentGUI launch results always use the unified Dock entry. Use\n * {@link agentGuiWorkbenchUnifiedDockEntryId} instead.\n */\nexport function resolveAgentGuiWorkbenchLaunchDockEntryId(_input: {\n provider: AgentGuiWorkbenchProvider;\n requestedDockEntryId?: string | null;\n}): string {\n return agentGuiWorkbenchUnifiedDockEntryId();\n}\n\nfunction encodeAgentGuiWorkbenchInstanceSegment(value: string): string {\n return encodeURIComponent(value.trim());\n}\n\nfunction decodeAgentGuiWorkbenchInstanceSegment(value: string): string | null {\n try {\n return decodeURIComponent(value).trim();\n } catch {\n return null;\n }\n}\n\nfunction prefillPromptFromLaunchPayload(\n payload: unknown\n): AgentGuiWorkbenchPrefillPromptPayload | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const draftPrompt = (payload as { draftPrompt?: unknown }).draftPrompt;\n if (typeof draftPrompt !== \"string\" || !draftPrompt.trim()) {\n return null;\n }\n const autoSubmit = (payload as { autoSubmit?: unknown }).autoSubmit === true;\n const provider = (payload as { provider?: unknown }).provider;\n const agentTargetId = agentTargetIdFromLaunchPayload(payload);\n const userProjectPath = (payload as { userProjectPath?: unknown })\n .userProjectPath;\n const normalizedUserProjectPath =\n typeof userProjectPath === \"string\"\n ? normalizeAgentGuiWorkbenchUserProjectPath(userProjectPath)\n : null;\n return {\n draftPrompt,\n ...(agentTargetId ? { agentTargetId } : {}),\n ...(autoSubmit ? { autoSubmit: true } : {}),\n ...(isAgentGuiWorkbenchProvider(provider) ? { provider } : {}),\n ...(normalizedUserProjectPath\n ? { userProjectPath: normalizedUserProjectPath }\n : {})\n };\n}\n\nfunction normalizeAgentGuiWorkbenchUserProjectPath(\n value: string | null | undefined\n): string | null {\n const normalized = value?.trim().replaceAll(\"\\\\\", \"/\").replace(/\\/+$/, \"\");\n return normalized ? normalized : null;\n}\n\nfunction agentSessionIdFromLaunchPayload(payload: unknown): string | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const agentSessionId = (payload as { agentSessionId?: unknown })\n .agentSessionId;\n return typeof agentSessionId === \"string\" && agentSessionId.trim()\n ? agentSessionId.trim()\n : null;\n}\n\nfunction agentTargetIdFromLaunchPayload(payload: unknown): string | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const agentTargetId = (payload as { agentTargetId?: unknown }).agentTargetId;\n return typeof agentTargetId === \"string\" && agentTargetId.trim()\n ? agentTargetId.trim()\n : null;\n}\n\nfunction openInNewWindowFromLaunchPayload(payload: unknown): boolean {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return false;\n }\n return (payload as { openInNewWindow?: unknown }).openInNewWindow === true;\n}\n\nfunction openInNewWindowFromLaunchRequest(\n request: AgentGuiWorkbenchLaunchRequestInput\n): boolean {\n return (\n openInNewWindowFromLaunchPayload(request.payload) ||\n request.launchSource === agentGuiWorkbenchDockPopupNewWindowLaunchSource\n );\n}\n"],"mappings":";;;;;;;;;;AAqBO,IAAM,0BAA0B;AAEvC,IAAM,mCAAmC;AACzC,IAAM,2CAA2C;AACjD,IAAM,kDAAkD;AACxD,IAAI,oCAAoC;AAUjC,SAAS,6BACd,WACQ;AACR,SAAO,oCAAoC;AAC7C;AAEO,SAAS,sCAA8C;AAC5D,SAAO;AACT;AAEO,SAAS,4BACd,UACQ;AACR,SAAO,GAAG,gCAAgC,GAAG;AAAA,IAC3C;AAAA,EACF,CAAC;AACH;AAEO,SAAS,kCAAkC,OAIvC;AACT,QAAM,SAAS,4BAA4B,MAAM,QAAQ;AACzD,QAAM,iBAAiB,MAAM,gBAAgB,KAAK;AAClD,MAAI,gBAAgB;AAClB,WAAO,GAAG,MAAM,YAAY;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,gBAAgB,MAAM,eAAe,KAAK;AAChD,MAAI,eAAe;AACjB,WAAO,GAAG,MAAM,WAAW;AAAA,MACzB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,uCAAqC;AACrC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,kCAAkC,SAAS,EAAE,CAAC;AAAA,EAC9E,EAAE,KAAK,GAAG;AACZ;AAEO,SAAS,wCACd,OACkC;AAClC,MAAI,4CAA4C,KAAK,GAAG;AACtD,WAAO;AAAA,EACT;AACA,QAAM,aAAa,OAAO,KAAK;AAC/B,MAAI,CAAC,YAAY,WAAW,gCAAgC,GAAG;AAC7D,WAAO;AAAA,EACT;AACA,QAAM,aAAa,WAAW,MAAM,iCAAiC,MAAM;AAC3E,QAAM,mBAAmB,WAAW;AAAA,IAClC;AAAA,EACF;AACA,QAAM,kBAAkB,mBACpB,WAAW,MAAM,GAAG,iBAAiB,KAAK,IAC1C;AACJ,QAAM,WAAW,uCAAuC,eAAe;AACvE,SAAO,4BAA4B,QAAQ,IAAI,WAAW;AAC5D;AAEO,SAAS,4CACd,OACsC;AACtC,QAAM,aAAa,OAAO,KAAK;AAC/B,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,MAAI,eAAe,oCAAoC,GAAG;AACxD,WAAO,EAAE,MAAM,mBAAmB;AAAA,EACpC;AACA,SAAO;AACT;AAEO,SAAS,2CACd,SAC2B;AAC3B,QAAM,kBACJ,QAAQ,WACR,OAAO,QAAQ,YAAY,YAC3B,CAAC,MAAM,QAAQ,QAAQ,OAAO,IACzB,QAAQ,QAAmC,WAC5C;AACN,MAAI,4BAA4B,eAAe,GAAG;AAChD,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,8CAA8C;AAChE;AAEO,SAAS,4CAA4C,OAKzD;AACD,QAAM,WAAW,mCAAmC,MAAM,QAAQ;AAClE,SAAO;AAAA,IACL,aAAa,oCAAoC;AAAA,IACjD,SAAS;AAAA,MACP,GAAI,MAAM,eAAe,KAAK,IAC1B,EAAE,eAAe,MAAM,cAAc,KAAK,EAAE,IAC5C,CAAC;AAAA,MACL,GAAI,MAAM,iBAAiB,EAAE,gBAAgB,MAAM,eAAe,IAAI,CAAC;AAAA,MACvE,GAAI,MAAM,kBAAkB,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEO,SAAS,0CAA0C,OAOvD;AACD,QAAM,WAAW,mCAAmC,MAAM,QAAQ;AAClE,QAAM,kBAAkB;AAAA,IACtB,MAAM;AAAA,EACR;AACA,SAAO;AAAA,IACL,aAAa,oCAAoC;AAAA,IACjD,SAAS;AAAA,MACP,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,GAAI,MAAM,eAAe,KAAK,IAC1B,EAAE,eAAe,MAAM,cAAc,KAAK,EAAE,IAC5C,CAAC;AAAA,MACL,GAAI,MAAM,aAAa,EAAE,YAAY,KAAK,IAAI,CAAC;AAAA,MAC/C,GAAI,MAAM,kBAAkB,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAAA,MACzD,GAAI,kBAAkB,EAAE,gBAAgB,IAAI,CAAC;AAAA,IAC/C;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAwBO,SAAS,wCACd,SACmC;AACnC,QAAM,WAAW,2CAA2C,OAAO;AACnE,QAAM,cAAc,oCAAoC;AACxD,QAAM,gBAAgB,+BAA+B,QAAQ,OAAO;AACpE,MAAI,eAAe;AACjB,UAAMA,mBAAkB,iCAAiC,QAAQ,OAAO;AACxE,WAAO;AAAA,MACL,YAAY;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,MACA,YAAY,kCAAkC;AAAA,QAC5C,eAAeA,mBACX,OACA,+BAA+B,QAAQ,OAAO;AAAA,QAClD;AAAA,MACF,CAAC;AAAA,MACD,iBAAAA;AAAA,MACA;AAAA,MACA,oBACE,CAACA,oBACD,0CAA0C;AAAA,QACxC;AAAA,QACA,YAAY;AAAA,MACd,CAAC;AAAA,MACH,0BAA0B,CAACA;AAAA,MAC3B,sBAAsB;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,uBAAuB,gCAAgC,QAAQ,OAAO;AAC5E,QAAM,kBAAkB,iCAAiC,OAAO;AAChE,QAAM,aAAa,kCAAkC;AAAA,IACnD,gBAAgB;AAAA,IAChB,eAAe,kBACX,OACA,+BAA+B,QAAQ,OAAO;AAAA,IAClD;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,YAAY,uBACR;AAAA,MACE,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,IACR,IACA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBACE,CAAC,mBACD,0CAA0C;AAAA,MACxC;AAAA,MACA,YAAY,uBAAuB,YAAY;AAAA,IACjD,CAAC;AAAA,IACH,0BAA0B,CAAC;AAAA,IAC3B;AAAA,EACF;AACF;AAEO,SAAS,0CAA0C,OAG9C;AACV,MAAI,MAAM,eAAe,SAAS;AAChC,WAAO;AAAA,EACT;AACA,MAAI,MAAM,eAAe,WAAW;AAClC,WAAO;AAAA,EACT;AACA,SACE,4CAA4C,MAAM,WAAW,GAAG,SAChE;AAEJ;AAMO,SAAS,0CAA0C,QAG/C;AACT,SAAO,oCAAoC;AAC7C;AAEA,SAAS,uCAAuC,OAAuB;AACrE,SAAO,mBAAmB,MAAM,KAAK,CAAC;AACxC;AAEA,SAAS,uCAAuC,OAA8B;AAC5E,MAAI;AACF,WAAO,mBAAmB,KAAK,EAAE,KAAK;AAAA,EACxC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,+BACP,SAC8C;AAC9C,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,QAAM,cAAe,QAAsC;AAC3D,MAAI,OAAO,gBAAgB,YAAY,CAAC,YAAY,KAAK,GAAG;AAC1D,WAAO;AAAA,EACT;AACA,QAAM,aAAc,QAAqC,eAAe;AACxE,QAAM,WAAY,QAAmC;AACrD,QAAM,gBAAgB,+BAA+B,OAAO;AAC5D,QAAM,kBAAmB,QACtB;AACH,QAAM,4BACJ,OAAO,oBAAoB,WACvB,0CAA0C,eAAe,IACzD;AACN,SAAO;AAAA,IACL;AAAA,IACA,GAAI,gBAAgB,EAAE,cAAc,IAAI,CAAC;AAAA,IACzC,GAAI,aAAa,EAAE,YAAY,KAAK,IAAI,CAAC;AAAA,IACzC,GAAI,4BAA4B,QAAQ,IAAI,EAAE,SAAS,IAAI,CAAC;AAAA,IAC5D,GAAI,4BACA,EAAE,iBAAiB,0BAA0B,IAC7C,CAAC;AAAA,EACP;AACF;AAEA,SAAS,0CACP,OACe;AACf,QAAM,aAAa,OAAO,KAAK,EAAE,WAAW,MAAM,GAAG,EAAE,QAAQ,QAAQ,EAAE;AACzE,SAAO,aAAa,aAAa;AACnC;AAEA,SAAS,gCAAgC,SAAiC;AACxE,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,QAAM,iBAAkB,QACrB;AACH,SAAO,OAAO,mBAAmB,YAAY,eAAe,KAAK,IAC7D,eAAe,KAAK,IACpB;AACN;AAEA,SAAS,+BAA+B,SAAiC;AACvE,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,QAAM,gBAAiB,QAAwC;AAC/D,SAAO,OAAO,kBAAkB,YAAY,cAAc,KAAK,IAC3D,cAAc,KAAK,IACnB;AACN;AAEA,SAAS,iCAAiC,SAA2B;AACnE,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,SAAQ,QAA0C,oBAAoB;AACxE;AAEA,SAAS,iCACP,SACS;AACT,SACE,iCAAiC,QAAQ,OAAO,KAChD,QAAQ,iBAAiB;AAE7B;","names":["openInNewWindow"]}
|