@tutti-os/agent-gui 0.0.63 → 0.0.65
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/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +7 -7
- package/dist/agent-env/index.js +2 -1
- package/dist/agent-env/index.js.map +1 -1
- package/dist/agent-message-center/index.js +9 -9
- package/dist/{agentGuiNodeTypes-CC52zXAV.d.ts → agentGuiNodeTypes-CCjzXdTe.d.ts} +4 -1
- package/dist/app/renderer/agentactivity.css +41 -7
- package/dist/app/renderer/assets/icons/agents/agent-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-flat-filled.svg +3 -0
- package/dist/app/renderer/assets/icons/agents/cursor-rounded.png +0 -0
- package/dist/{chunk-IIVHPXAB.js → chunk-2IMBPRKV.js} +1 -1
- package/dist/chunk-2IMBPRKV.js.map +1 -0
- package/dist/{chunk-6MUKWI6Z.js → chunk-6OYLLPPN.js} +167 -113
- package/dist/chunk-6OYLLPPN.js.map +1 -0
- package/dist/{chunk-22L4VWUR.js → chunk-CKCUEHBW.js} +3 -1
- package/dist/chunk-CKCUEHBW.js.map +1 -0
- package/dist/{chunk-NZN43XT5.js → chunk-DL6BMEHI.js} +8 -6
- package/dist/chunk-DL6BMEHI.js.map +1 -0
- package/dist/{chunk-G6UO6JVM.js → chunk-EIPQGFAE.js} +2 -2
- package/dist/{chunk-SGXYVGQT.js → chunk-HKKC2U6J.js} +5 -5
- package/dist/{chunk-SW6JCJCO.js → chunk-IDTB6OID.js} +3 -3
- package/dist/{chunk-5WB3NGIN.js → chunk-LJE2W4EM.js} +27 -2
- package/dist/chunk-LJE2W4EM.js.map +1 -0
- package/dist/{chunk-K4UUEG7X.js → chunk-LQHYHF36.js} +115 -36
- package/dist/chunk-LQHYHF36.js.map +1 -0
- package/dist/{chunk-FRCIPTUD.js → chunk-N4I3TD4G.js} +8 -18
- package/dist/chunk-N4I3TD4G.js.map +1 -0
- package/dist/{chunk-QC642RAG.js → chunk-N7BGNAA2.js} +15 -8
- package/dist/chunk-N7BGNAA2.js.map +1 -0
- package/dist/{chunk-3KS22CG2.js → chunk-P5C3ED3V.js} +5 -4
- package/dist/chunk-P5C3ED3V.js.map +1 -0
- package/dist/{chunk-7P6CUYQT.js → chunk-QULZNKPA.js} +2 -2
- package/dist/{chunk-V4JGVBUN.js → chunk-R2NGSPQS.js} +32 -1
- package/dist/chunk-R2NGSPQS.js.map +1 -0
- package/dist/{chunk-ZUVEBW5T.js → chunk-R7PSPKBD.js} +2 -2
- package/dist/{chunk-4UTWOSHP.js → chunk-UI3YDJTC.js} +43 -5
- package/dist/chunk-UI3YDJTC.js.map +1 -0
- package/dist/{chunk-RO6KQD3J.js → chunk-UWBX3DZK.js} +2 -2
- package/dist/{chunk-CVSCZ3CK.js → chunk-W3Q7B3DV.js} +7 -2
- package/dist/chunk-W3Q7B3DV.js.map +1 -0
- package/dist/{chunk-CA25GD5Q.js → chunk-XLBJHHDX.js} +38 -6
- package/dist/chunk-XLBJHHDX.js.map +1 -0
- package/dist/{chunk-FQQDBBNI.js → chunk-XZPAU7FC.js} +3 -3
- package/dist/context-mention-palette/index.js +8 -8
- package/dist/i18n/index.d.ts +37 -5
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +25 -6
- package/dist/index.js +1093 -425
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +2 -2
- package/dist/{types-DSc2ta3s.d.ts → types-BAPEle8b.d.ts} +3 -3
- package/dist/workbench/contribution.d.ts +10 -3
- package/dist/workbench/contribution.js +10 -8
- package/dist/workbench/index.d.ts +4 -2
- package/dist/workbench/index.js +11 -11
- package/dist/workbench/launch.d.ts +3 -1
- package/dist/workbench/launch.js +3 -3
- package/dist/workbench/providerCatalog.d.ts +2 -2
- package/dist/workbench/providerCatalog.js +1 -1
- package/dist/workbench/sessionTitle.d.ts +1 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +3 -3
- package/dist/workbench/types.d.ts +3 -2
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/chunk-22L4VWUR.js.map +0 -1
- package/dist/chunk-3KS22CG2.js.map +0 -1
- package/dist/chunk-4UTWOSHP.js.map +0 -1
- package/dist/chunk-5WB3NGIN.js.map +0 -1
- package/dist/chunk-6MUKWI6Z.js.map +0 -1
- package/dist/chunk-CA25GD5Q.js.map +0 -1
- package/dist/chunk-CVSCZ3CK.js.map +0 -1
- package/dist/chunk-FRCIPTUD.js.map +0 -1
- package/dist/chunk-IIVHPXAB.js.map +0 -1
- package/dist/chunk-K4UUEG7X.js.map +0 -1
- package/dist/chunk-NZN43XT5.js.map +0 -1
- package/dist/chunk-QC642RAG.js.map +0 -1
- package/dist/chunk-V4JGVBUN.js.map +0 -1
- /package/dist/{chunk-G6UO6JVM.js.map → chunk-EIPQGFAE.js.map} +0 -0
- /package/dist/{chunk-SGXYVGQT.js.map → chunk-HKKC2U6J.js.map} +0 -0
- /package/dist/{chunk-SW6JCJCO.js.map → chunk-IDTB6OID.js.map} +0 -0
- /package/dist/{chunk-7P6CUYQT.js.map → chunk-QULZNKPA.js.map} +0 -0
- /package/dist/{chunk-ZUVEBW5T.js.map → chunk-R7PSPKBD.js.map} +0 -0
- /package/dist/{chunk-RO6KQD3J.js.map → chunk-UWBX3DZK.js.map} +0 -0
- /package/dist/{chunk-FQQDBBNI.js.map → chunk-XZPAU7FC.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as AgentGUIQueuedPromptVM } from './agentGuiNodeTypes-
|
|
1
|
+
import { d as AgentGUIQueuedPromptVM } from './agentGuiNodeTypes-CCjzXdTe.js';
|
|
2
2
|
import '@tutti-os/agent-activity-core';
|
|
3
|
-
import './types-
|
|
3
|
+
import './types-BAPEle8b.js';
|
|
4
4
|
import './workspaceAgentActivityListViewModel-DJvAqZso.js';
|
|
5
5
|
import './agentConversationVM-DPAgUJlR.js';
|
|
6
6
|
import '@tutti-os/workspace-user-project/contracts';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type AgentHostAgentSessionProvider = "claude-code" | "codex" | "nexight" | "gemini" | "hermes" | "openclaw";
|
|
1
|
+
type AgentHostAgentSessionProvider = "claude-code" | "codex" | "cursor" | "nexight" | "gemini" | "hermes" | "openclaw";
|
|
2
2
|
type AgentHostAgentSessionPermissionModeSemantic = "ask-before-write" | "accept-edits" | "locked-down" | "auto" | "full-access" | "unconfigurable";
|
|
3
3
|
type AgentHostAgentSessionReasoningEffort = "minimal" | "low" | "medium" | "high" | "xhigh" | string;
|
|
4
4
|
type AgentHostAgentSessionSpeed = "standard" | "fast" | string;
|
|
@@ -128,7 +128,7 @@ interface AgentHostAgentSessionCommand {
|
|
|
128
128
|
inputHint?: string;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
declare const AGENT_PROVIDERS: readonly ["claude-code", "codex", "nexight", "opencode", "gemini", "openclaw", "hermes"];
|
|
131
|
+
declare const AGENT_PROVIDERS: readonly ["claude-code", "codex", "cursor", "nexight", "opencode", "gemini", "openclaw", "hermes"];
|
|
132
132
|
type AgentProvider = (typeof AGENT_PROVIDERS)[number];
|
|
133
133
|
|
|
134
134
|
interface AgentGUINodeData {
|
|
@@ -147,7 +147,7 @@ interface AgentGUINodeData {
|
|
|
147
147
|
composerOverridesByAgentTargetId?: Record<string, AgentHostAgentSessionComposerSettings | null> | null;
|
|
148
148
|
composerOverridesByProvider?: Partial<Record<AgentGUIProvider, AgentHostAgentSessionComposerSettings | null>> | null;
|
|
149
149
|
}
|
|
150
|
-
type AgentGUIProvider = Extract<AgentProvider, "claude-code" | "codex" | "nexight" | "gemini" | "hermes" | "openclaw">;
|
|
150
|
+
type AgentGUIProvider = Extract<AgentProvider, "claude-code" | "codex" | "cursor" | "nexight" | "gemini" | "hermes" | "openclaw">;
|
|
151
151
|
interface AgentGUIProviderTargetRef {
|
|
152
152
|
kind: string;
|
|
153
153
|
provider: AgentGUIProvider;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { WorkbenchFrame, WorkbenchHostNodeBodyContext, WorkbenchHostLaunchRequest, WorkbenchHostDockEntry, WorkbenchContribution } from '@tutti-os/workbench-surface';
|
|
3
3
|
import { AgentGuiWorkbenchProvider, AgentGuiWorkbenchState } from './types.js';
|
|
4
|
-
import { e as AgentGUIProviderTarget, f as AgentGUIProviderTargetRef } from '../types-
|
|
4
|
+
import { e as AgentGUIProviderTarget, f as AgentGUIProviderTargetRef } from '../types-BAPEle8b.js';
|
|
5
5
|
|
|
6
6
|
declare const agentGuiWorkbenchDefaultNodeFrame: WorkbenchFrame;
|
|
7
|
-
declare const
|
|
7
|
+
declare const agentGuiWorkbenchDefaultUsableWidthRatio = 0.8;
|
|
8
|
+
declare const agentGuiWorkbenchDefaultUsableHeightRatio = 0.9;
|
|
8
9
|
declare const agentGuiWorkbenchCompactVisibleAreaRatio = 0.9;
|
|
9
10
|
declare const agentGuiWorkbenchNewWindowCascadeOffset: {
|
|
10
11
|
x: number;
|
|
@@ -20,6 +21,10 @@ interface AgentGuiWorkbenchConversationRailToggleDetail {
|
|
|
20
21
|
interface AgentGuiWorkbenchNewConversationDetail {
|
|
21
22
|
instanceId: string;
|
|
22
23
|
}
|
|
24
|
+
interface AgentGuiWorkbenchConversationIdentity {
|
|
25
|
+
iconUrl?: string | null;
|
|
26
|
+
title: string | null;
|
|
27
|
+
}
|
|
23
28
|
interface AgentGuiWorkbenchContributionCopy {
|
|
24
29
|
collapseConversationRail: string;
|
|
25
30
|
close: string;
|
|
@@ -53,6 +58,7 @@ interface CreateAgentGuiWorkbenchContributionInput {
|
|
|
53
58
|
renderPreview?(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
|
|
54
59
|
renderMinimizedPreview(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
|
|
55
60
|
resolveDockPopupTitle?: (state: AgentGuiWorkbenchState | null) => string | null;
|
|
61
|
+
resolveDockPopupIdentity?: (state: AgentGuiWorkbenchState | null) => AgentGuiWorkbenchConversationIdentity | null;
|
|
56
62
|
resolveDockLaunchPayload?: (input: {
|
|
57
63
|
dockEntryId?: string | null;
|
|
58
64
|
payload: unknown;
|
|
@@ -74,6 +80,7 @@ interface BuildAgentGuiDockEntriesInput {
|
|
|
74
80
|
providerAvailability?: AgentGuiWorkbenchProviderAvailability;
|
|
75
81
|
providerTargetsLoading?: boolean;
|
|
76
82
|
renderPreview?: CreateAgentGuiWorkbenchContributionInput["renderPreview"];
|
|
83
|
+
resolveDockPopupIdentity?: CreateAgentGuiWorkbenchContributionInput["resolveDockPopupIdentity"];
|
|
77
84
|
resolveDockPopupTitle?: CreateAgentGuiWorkbenchContributionInput["resolveDockPopupTitle"];
|
|
78
85
|
sectionId?: string;
|
|
79
86
|
targets?: readonly AgentGUIProviderTarget[] | null;
|
|
@@ -92,4 +99,4 @@ declare function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {
|
|
|
92
99
|
}): WorkbenchFrame;
|
|
93
100
|
declare function resolveAgentGuiWorkbenchContributionCopy(copy?: AgentGuiWorkbenchContributionCopyOverrides): AgentGuiWorkbenchContributionCopy;
|
|
94
101
|
|
|
95
|
-
export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchNewConversationDetail, type AgentGuiWorkbenchProviderAvailability, type AgentGuiWorkbenchRenderBodyHelpers, type BuildAgentGuiDockEntriesInput, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchCompactVisibleAreaRatio, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, agentGuiWorkbenchNewWindowCascadeOffset, agentGuiWorkbenchProviderRailWidthPx, buildAgentGuiDockEntries, createAgentGuiWorkbenchContribution, resolveAgentGuiUnifiedDockLaunchPayload, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
|
|
102
|
+
export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationIdentity, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchNewConversationDetail, type AgentGuiWorkbenchProviderAvailability, type AgentGuiWorkbenchRenderBodyHelpers, type BuildAgentGuiDockEntriesInput, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchCompactVisibleAreaRatio, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, agentGuiWorkbenchDefaultUsableWidthRatio, agentGuiWorkbenchNewWindowCascadeOffset, agentGuiWorkbenchProviderRailWidthPx, buildAgentGuiDockEntries, createAgentGuiWorkbenchContribution, resolveAgentGuiUnifiedDockLaunchPayload, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
agentGuiWorkbenchDefaultCopy,
|
|
6
6
|
agentGuiWorkbenchDefaultNodeFrame,
|
|
7
7
|
agentGuiWorkbenchDefaultUsableHeightRatio,
|
|
8
|
+
agentGuiWorkbenchDefaultUsableWidthRatio,
|
|
8
9
|
agentGuiWorkbenchNewWindowCascadeOffset,
|
|
9
10
|
agentGuiWorkbenchProviderRailWidthPx,
|
|
10
11
|
buildAgentGuiDockEntries,
|
|
@@ -12,14 +13,14 @@ import {
|
|
|
12
13
|
resolveAgentGuiUnifiedDockLaunchPayload,
|
|
13
14
|
resolveAgentGuiWorkbenchContributionCopy,
|
|
14
15
|
resolveAgentGuiWorkbenchDefaultLaunchFrame
|
|
15
|
-
} from "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-LQHYHF36.js";
|
|
17
|
+
import "../chunk-DL6BMEHI.js";
|
|
18
|
+
import "../chunk-P5C3ED3V.js";
|
|
19
|
+
import "../chunk-2IMBPRKV.js";
|
|
20
|
+
import "../chunk-CKCUEHBW.js";
|
|
21
|
+
import "../chunk-LJE2W4EM.js";
|
|
22
|
+
import "../chunk-UI3YDJTC.js";
|
|
23
|
+
import "../chunk-R2NGSPQS.js";
|
|
23
24
|
export {
|
|
24
25
|
AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
|
|
25
26
|
AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT,
|
|
@@ -27,6 +28,7 @@ export {
|
|
|
27
28
|
agentGuiWorkbenchDefaultCopy,
|
|
28
29
|
agentGuiWorkbenchDefaultNodeFrame,
|
|
29
30
|
agentGuiWorkbenchDefaultUsableHeightRatio,
|
|
31
|
+
agentGuiWorkbenchDefaultUsableWidthRatio,
|
|
30
32
|
agentGuiWorkbenchNewWindowCascadeOffset,
|
|
31
33
|
agentGuiWorkbenchProviderRailWidthPx,
|
|
32
34
|
buildAgentGuiDockEntries,
|
|
@@ -6,7 +6,7 @@ import { HTMLAttributes, ReactNode } from 'react';
|
|
|
6
6
|
import { WorkbenchDisplayMode, WorkbenchHostNodeHeaderWindowActions } from '@tutti-os/workbench-surface';
|
|
7
7
|
export { AgentGuiSessionTitleFormatOptions, AgentGuiWorkbenchSessionTitleResult, ResolveAgentGuiWorkbenchSessionTitleInput, formatAgentGuiConversationPlainTitle, formatAgentGuiSessionPlainTitle, resolveAgentGuiWorkbenchSessionTitle } from './sessionTitle.js';
|
|
8
8
|
export { AgentGuiWorkbenchComposerOverrides, AgentGuiWorkbenchNodeState, AgentGuiWorkbenchPrefillPromptPayload, AgentGuiWorkbenchProvider, AgentGuiWorkbenchState, AgentGuiWorkbenchWorkspaceState, agentGuiWorkbenchOpenSessionActivationType, agentGuiWorkbenchPrefillPromptActivationType } from './types.js';
|
|
9
|
-
import '../types-
|
|
9
|
+
import '../types-BAPEle8b.js';
|
|
10
10
|
import '@tutti-os/agent-activity-core';
|
|
11
11
|
import '../uiSettings-BQS9r2eo.js';
|
|
12
12
|
|
|
@@ -27,13 +27,15 @@ interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {
|
|
|
27
27
|
isConversationRailAutoCollapsed: boolean;
|
|
28
28
|
isConversationRailCollapsed: boolean;
|
|
29
29
|
conversationRailWidthPx?: number | null;
|
|
30
|
+
conversationIconUrl?: string | null;
|
|
30
31
|
providerRailWidthPx?: number | null;
|
|
31
32
|
conversationTitle?: string | null;
|
|
33
|
+
nodeId: string;
|
|
32
34
|
onCreateConversation?: () => void;
|
|
33
35
|
onToggleConversationRail: (nextCollapsed: boolean) => void;
|
|
34
36
|
title?: string;
|
|
35
37
|
windowActions?: Pick<WorkbenchHostNodeHeaderWindowActions, "close" | "minimize" | "toggleDisplayMode">;
|
|
36
38
|
}
|
|
37
|
-
declare function AgentGuiWorkbenchHeader({ className, copy, defaultActions: _defaultActions, displayMode, isConversationRailAutoCollapsed, isConversationRailCollapsed, conversationRailWidthPx, providerRailWidthPx, conversationTitle, onCreateConversation, onToggleConversationRail, title, windowActions, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
|
|
39
|
+
declare function AgentGuiWorkbenchHeader({ className, copy, defaultActions: _defaultActions, displayMode, isConversationRailAutoCollapsed, isConversationRailCollapsed, conversationRailWidthPx, conversationIconUrl, providerRailWidthPx, conversationTitle, nodeId, onCreateConversation, onToggleConversationRail, title: _title, windowActions, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
|
|
38
40
|
|
|
39
41
|
export { AgentGuiWorkbenchHeader, type AgentGuiWorkbenchHeaderCopy, type AgentGuiWorkbenchHeaderProps };
|
package/dist/workbench/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
createAgentGuiWorkbenchContribution,
|
|
9
9
|
resolveAgentGuiUnifiedDockLaunchPayload,
|
|
10
10
|
resolveAgentGuiWorkbenchContributionCopy
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-LQHYHF36.js";
|
|
12
12
|
import {
|
|
13
13
|
agentGuiWorkbenchProviderFromInstanceId,
|
|
14
14
|
areAgentGuiWorkbenchNodeStatesEqual,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
normalizeAgentGuiWorkbenchNodeState,
|
|
19
19
|
normalizeAgentGuiWorkbenchState,
|
|
20
20
|
projectAgentGuiWorkbenchState
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-DL6BMEHI.js";
|
|
22
22
|
import {
|
|
23
23
|
agentGuiWorkbenchDockEntryId,
|
|
24
24
|
agentGuiWorkbenchDockIdentityFromIdentifier,
|
|
@@ -31,11 +31,11 @@ import {
|
|
|
31
31
|
createAgentGuiWorkbenchInstanceId,
|
|
32
32
|
createAgentGuiWorkbenchLaunchDescriptor,
|
|
33
33
|
createAgentGuiWorkbenchSessionLaunchRequest
|
|
34
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-P5C3ED3V.js";
|
|
35
35
|
import {
|
|
36
36
|
agentGuiWorkbenchOpenSessionActivationType,
|
|
37
37
|
agentGuiWorkbenchPrefillPromptActivationType
|
|
38
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-2IMBPRKV.js";
|
|
39
39
|
import {
|
|
40
40
|
agentGuiWorkbenchComingSoonProviders,
|
|
41
41
|
agentGuiWorkbenchDefaultDockProviders,
|
|
@@ -48,17 +48,17 @@ import {
|
|
|
48
48
|
isAgentGuiWorkbenchProvider,
|
|
49
49
|
normalizeAgentGuiWorkbenchProvider,
|
|
50
50
|
resolveAgentGuiWorkbenchProviderLabel
|
|
51
|
-
} from "../chunk-
|
|
52
|
-
import "../chunk-
|
|
53
|
-
import "../chunk-
|
|
51
|
+
} from "../chunk-CKCUEHBW.js";
|
|
52
|
+
import "../chunk-LJE2W4EM.js";
|
|
53
|
+
import "../chunk-UI3YDJTC.js";
|
|
54
54
|
import {
|
|
55
55
|
formatAgentGuiConversationPlainTitle,
|
|
56
56
|
formatAgentGuiSessionPlainTitle,
|
|
57
57
|
resolveAgentGuiWorkbenchSessionTitle
|
|
58
|
-
} from "../chunk-
|
|
59
|
-
import "../chunk-
|
|
60
|
-
import "../chunk-
|
|
61
|
-
import "../chunk-
|
|
58
|
+
} from "../chunk-EIPQGFAE.js";
|
|
59
|
+
import "../chunk-W3Q7B3DV.js";
|
|
60
|
+
import "../chunk-R2NGSPQS.js";
|
|
61
|
+
import "../chunk-XLBJHHDX.js";
|
|
62
62
|
import "../chunk-GCBDIQDX.js";
|
|
63
63
|
export {
|
|
64
64
|
AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WorkbenchHostLaunchRequest } from '@tutti-os/workbench-surface';
|
|
2
2
|
import { agentGuiWorkbenchOpenSessionActivationType, AgentGuiWorkbenchPrefillPromptPayload, agentGuiWorkbenchPrefillPromptActivationType, AgentGuiWorkbenchProvider } from './types.js';
|
|
3
|
-
import '../types-
|
|
3
|
+
import '../types-BAPEle8b.js';
|
|
4
4
|
|
|
5
5
|
type AgentGuiWorkbenchLaunchRequestInput = Pick<WorkbenchHostLaunchRequest, "payload" | "typeId"> & {
|
|
6
6
|
dockEntryId?: string | null;
|
|
@@ -24,6 +24,7 @@ declare function agentGuiWorkbenchProviderFromIdentifier(value: string | null |
|
|
|
24
24
|
declare function agentGuiWorkbenchDockIdentityFromIdentifier(value: string | null | undefined): AgentGuiWorkbenchDockIdentity | null;
|
|
25
25
|
declare function agentGuiWorkbenchProviderFromLaunchRequest(request: AgentGuiWorkbenchLaunchRequestInput): AgentGuiWorkbenchProvider;
|
|
26
26
|
declare function createAgentGuiWorkbenchSessionLaunchRequest(input: {
|
|
27
|
+
agentTargetId?: string | null;
|
|
27
28
|
agentSessionId?: string;
|
|
28
29
|
openInNewWindow?: boolean;
|
|
29
30
|
provider: unknown;
|
|
@@ -33,6 +34,7 @@ declare function createAgentGuiWorkbenchSessionLaunchRequest(input: {
|
|
|
33
34
|
provider: AgentGuiWorkbenchProvider;
|
|
34
35
|
openInNewWindow?: boolean | undefined;
|
|
35
36
|
agentSessionId?: string | undefined;
|
|
37
|
+
agentTargetId?: string | undefined;
|
|
36
38
|
};
|
|
37
39
|
reason: "host";
|
|
38
40
|
typeId: string;
|
package/dist/workbench/launch.js
CHANGED
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
createAgentGuiWorkbenchSessionLaunchRequest,
|
|
13
13
|
resolveAgentGuiWorkbenchLaunchDockEntryId,
|
|
14
14
|
shouldReuseAgentGuiWorkbenchDockEntryNode
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-P5C3ED3V.js";
|
|
16
16
|
import {
|
|
17
17
|
agentGuiWorkbenchPrefillPromptActivationType
|
|
18
|
-
} from "../chunk-
|
|
19
|
-
import "../chunk-
|
|
18
|
+
} from "../chunk-2IMBPRKV.js";
|
|
19
|
+
import "../chunk-CKCUEHBW.js";
|
|
20
20
|
export {
|
|
21
21
|
agentGuiWorkbenchDockEntryId,
|
|
22
22
|
agentGuiWorkbenchDockIdentityFromIdentifier,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentGuiWorkbenchProvider } from './types.js';
|
|
2
|
-
import '../types-
|
|
2
|
+
import '../types-BAPEle8b.js';
|
|
3
3
|
|
|
4
|
-
declare const agentGuiWorkbenchProviders: readonly ["claude-code", "codex", "nexight", "hermes", "gemini", "openclaw"];
|
|
4
|
+
declare const agentGuiWorkbenchProviders: readonly ["claude-code", "codex", "cursor", "nexight", "hermes", "gemini", "openclaw"];
|
|
5
5
|
declare const agentGuiWorkbenchDefaultDockProviders: readonly ["codex", "claude-code"];
|
|
6
6
|
declare const agentGuiWorkbenchDockSuppressedProviders: readonly ["hermes", "gemini"];
|
|
7
7
|
declare const agentGuiWorkbenchComingSoonProviders: readonly ["nexight"];
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
isAgentGuiWorkbenchProvider,
|
|
11
11
|
normalizeAgentGuiWorkbenchProvider,
|
|
12
12
|
resolveAgentGuiWorkbenchProviderLabel
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-CKCUEHBW.js";
|
|
14
14
|
export {
|
|
15
15
|
agentGuiWorkbenchComingSoonProviders,
|
|
16
16
|
agentGuiWorkbenchDefaultDockProviders,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentActivitySnapshot } from '@tutti-os/agent-activity-core';
|
|
2
2
|
import { U as UiLanguage } from '../uiSettings-BQS9r2eo.js';
|
|
3
3
|
import { AgentGuiWorkbenchProvider } from './types.js';
|
|
4
|
-
import '../types-
|
|
4
|
+
import '../types-BAPEle8b.js';
|
|
5
5
|
|
|
6
6
|
interface AgentGuiSessionTitleFormatOptions {
|
|
7
7
|
fallbackAgentLabel?: string;
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
formatAgentGuiConversationPlainTitle,
|
|
3
3
|
formatAgentGuiSessionPlainTitle,
|
|
4
4
|
resolveAgentGuiWorkbenchSessionTitle
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-EIPQGFAE.js";
|
|
6
|
+
import "../chunk-W3Q7B3DV.js";
|
|
7
|
+
import "../chunk-XLBJHHDX.js";
|
|
8
8
|
import "../chunk-GCBDIQDX.js";
|
|
9
9
|
export {
|
|
10
10
|
formatAgentGuiConversationPlainTitle,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WorkbenchHostExternalStateSource, WorkbenchHostExternalStateLookupInput } from '@tutti-os/workbench-surface';
|
|
2
2
|
import { AgentGuiWorkbenchProvider, AgentGuiWorkbenchNodeState, AgentGuiWorkbenchState, AgentGuiWorkbenchWorkspaceState } from './types.js';
|
|
3
|
-
import '../types-
|
|
3
|
+
import '../types-BAPEle8b.js';
|
|
4
4
|
|
|
5
5
|
type AgentGuiWorkbenchStateLookupRequest = Pick<WorkbenchHostExternalStateLookupInput, "instanceId" | "typeId"> & Partial<Pick<WorkbenchHostExternalStateLookupInput, "nodeId">>;
|
|
6
6
|
declare function createDefaultAgentGuiWorkbenchNodeState(provider?: AgentGuiWorkbenchProvider): AgentGuiWorkbenchNodeState;
|
package/dist/workbench/state.js
CHANGED
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
normalizeAgentGuiWorkbenchNodeState,
|
|
8
8
|
normalizeAgentGuiWorkbenchState,
|
|
9
9
|
projectAgentGuiWorkbenchState
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-DL6BMEHI.js";
|
|
11
|
+
import "../chunk-CKCUEHBW.js";
|
|
12
|
+
import "../chunk-UI3YDJTC.js";
|
|
13
13
|
export {
|
|
14
14
|
agentGuiWorkbenchProviderFromInstanceId,
|
|
15
15
|
areAgentGuiWorkbenchNodeStatesEqual,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { f as AgentGUIProviderTargetRef } from '../types-
|
|
1
|
+
import { f as AgentGUIProviderTargetRef } from '../types-BAPEle8b.js';
|
|
2
2
|
|
|
3
|
-
type AgentGuiWorkbenchProvider = "claude-code" | "codex" | "nexight" | "gemini" | "hermes" | "openclaw";
|
|
3
|
+
type AgentGuiWorkbenchProvider = "claude-code" | "codex" | "cursor" | "nexight" | "gemini" | "hermes" | "openclaw";
|
|
4
4
|
declare const agentGuiWorkbenchOpenSessionActivationType = "agent-gui:open-session";
|
|
5
5
|
declare const agentGuiWorkbenchPrefillPromptActivationType = "agent-gui:prefill-prompt";
|
|
6
6
|
interface AgentGuiWorkbenchPrefillPromptPayload {
|
|
@@ -41,6 +41,7 @@ interface AgentGuiWorkbenchState {
|
|
|
41
41
|
conversationRailCollapsed?: boolean | null;
|
|
42
42
|
conversationRailWidthPx?: number | null;
|
|
43
43
|
lastActiveAgentSessionId: string | null;
|
|
44
|
+
lastActiveConversationTitle?: string | null;
|
|
44
45
|
}
|
|
45
46
|
interface AgentGuiWorkbenchWorkspaceState {
|
|
46
47
|
workspaceId: string;
|
package/dist/workbench/types.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
agentGuiWorkbenchOpenSessionActivationType,
|
|
3
3
|
agentGuiWorkbenchPrefillPromptActivationType
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-2IMBPRKV.js";
|
|
5
5
|
export {
|
|
6
6
|
agentGuiWorkbenchOpenSessionActivationType,
|
|
7
7
|
agentGuiWorkbenchPrefillPromptActivationType
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
resolveWorkspaceAgentActivityStatus,
|
|
5
5
|
resolveWorkspaceAgentActivityTitle,
|
|
6
6
|
reuseWorkspaceAgentActivityListViewModelIfUnchanged
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QULZNKPA.js";
|
|
8
8
|
import "./chunk-IBIMGLCD.js";
|
|
9
9
|
import "./chunk-Y35GDLP2.js";
|
|
10
10
|
import {
|
|
11
11
|
workspaceAgentProviderLabel
|
|
12
12
|
} from "./chunk-TYGL25EL.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-UWBX3DZK.js";
|
|
14
|
+
import "./chunk-XLBJHHDX.js";
|
|
15
15
|
import "./chunk-GCBDIQDX.js";
|
|
16
16
|
export {
|
|
17
17
|
buildWorkspaceAgentActivityListViewModel,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tutti-os/agent-gui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.65",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -94,17 +94,17 @@
|
|
|
94
94
|
},
|
|
95
95
|
"dependencies": {
|
|
96
96
|
"@monaco-editor/react": "^4.7.0",
|
|
97
|
-
"@tutti-os/agent-activity-core": "0.0.
|
|
98
|
-
"@tutti-os/ui-i18n-runtime": "0.0.
|
|
99
|
-
"@tutti-os/ui-rich-text": "0.0.
|
|
100
|
-
"@tutti-os/ui-react-hooks": "0.0.
|
|
101
|
-
"@tutti-os/ui-system": "0.0.
|
|
102
|
-
"@tutti-os/workbench-surface": "0.0.
|
|
103
|
-
"@tutti-os/workspace-external-core": "0.0.
|
|
104
|
-
"@tutti-os/workspace-file-manager": "0.0.
|
|
105
|
-
"@tutti-os/workspace-file-reference": "0.0.
|
|
106
|
-
"@tutti-os/workspace-issue-manager": "0.0.
|
|
107
|
-
"@tutti-os/workspace-user-project": "0.0.
|
|
97
|
+
"@tutti-os/agent-activity-core": "0.0.65",
|
|
98
|
+
"@tutti-os/ui-i18n-runtime": "0.0.65",
|
|
99
|
+
"@tutti-os/ui-rich-text": "0.0.65",
|
|
100
|
+
"@tutti-os/ui-react-hooks": "0.0.65",
|
|
101
|
+
"@tutti-os/ui-system": "0.0.65",
|
|
102
|
+
"@tutti-os/workbench-surface": "0.0.65",
|
|
103
|
+
"@tutti-os/workspace-external-core": "0.0.65",
|
|
104
|
+
"@tutti-os/workspace-file-manager": "0.0.65",
|
|
105
|
+
"@tutti-os/workspace-file-reference": "0.0.65",
|
|
106
|
+
"@tutti-os/workspace-issue-manager": "0.0.65",
|
|
107
|
+
"@tutti-os/workspace-user-project": "0.0.65",
|
|
108
108
|
"@tanstack/react-virtual": "^3.13.12",
|
|
109
109
|
"@tiptap/core": "^3.11.1",
|
|
110
110
|
"@tiptap/pm": "^3.23.6",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../workbench/providerCatalog.ts"],"sourcesContent":["import type { AgentGuiWorkbenchProvider } from \"./types.ts\";\n\nexport const agentGuiWorkbenchProviders = [\n \"claude-code\",\n \"codex\",\n \"nexight\",\n \"hermes\",\n \"gemini\",\n \"openclaw\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nexport const agentGuiWorkbenchDefaultDockProviders = [\n \"codex\",\n \"claude-code\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nexport const agentGuiWorkbenchDockSuppressedProviders = [\n \"hermes\",\n \"gemini\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nexport const agentGuiWorkbenchComingSoonProviders = [\n \"nexight\"\n] as const satisfies readonly AgentGuiWorkbenchProvider[];\n\nconst defaultDockProviderSet = new Set<AgentGuiWorkbenchProvider>(\n agentGuiWorkbenchDefaultDockProviders\n);\nconst dockSuppressedProviderSet = new Set<AgentGuiWorkbenchProvider>(\n agentGuiWorkbenchDockSuppressedProviders\n);\nconst comingSoonProviderSet = new Set<AgentGuiWorkbenchProvider>(\n agentGuiWorkbenchComingSoonProviders\n);\n\n// i18n-check-ignore: provider brand names.\nexport const agentGuiWorkbenchProviderLabels: Record<\n AgentGuiWorkbenchProvider,\n string\n> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n gemini: \"Gemini CLI\",\n hermes: \"Hermes Agent\",\n nexight: \"Nexight\",\n openclaw: \"OpenClaw\"\n};\n\nexport function resolveAgentGuiWorkbenchProviderLabel(\n provider: AgentGuiWorkbenchProvider\n): string {\n return agentGuiWorkbenchProviderLabels[provider];\n}\n\nexport function isAgentGuiWorkbenchDefaultDockProvider(\n provider: AgentGuiWorkbenchProvider\n): boolean {\n return defaultDockProviderSet.has(provider);\n}\n\nexport function isAgentGuiWorkbenchDockSuppressedProvider(\n provider: AgentGuiWorkbenchProvider\n): boolean {\n return dockSuppressedProviderSet.has(provider);\n}\n\nexport function isAgentGuiWorkbenchComingSoonProvider(\n provider: AgentGuiWorkbenchProvider\n): boolean {\n return comingSoonProviderSet.has(provider);\n}\n\nexport function isAgentGuiWorkbenchProvider(\n value: unknown\n): value is AgentGuiWorkbenchProvider {\n return (\n typeof value === \"string\" &&\n agentGuiWorkbenchProviders.includes(value as AgentGuiWorkbenchProvider)\n );\n}\n\nexport function normalizeAgentGuiWorkbenchProvider(\n value: unknown,\n fallbackProvider: AgentGuiWorkbenchProvider = \"codex\"\n): AgentGuiWorkbenchProvider {\n return isAgentGuiWorkbenchProvider(value) ? value : fallbackProvider;\n}\n"],"mappings":";AAEO,IAAM,6BAA6B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,wCAAwC;AAAA,EACnD;AAAA,EACA;AACF;AAEO,IAAM,2CAA2C;AAAA,EACtD;AAAA,EACA;AACF;AAEO,IAAM,uCAAuC;AAAA,EAClD;AACF;AAEA,IAAM,yBAAyB,IAAI;AAAA,EACjC;AACF;AACA,IAAM,4BAA4B,IAAI;AAAA,EACpC;AACF;AACA,IAAM,wBAAwB,IAAI;AAAA,EAChC;AACF;AAGO,IAAM,kCAGT;AAAA,EACF,eAAe;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AACZ;AAEO,SAAS,sCACd,UACQ;AACR,SAAO,gCAAgC,QAAQ;AACjD;AAEO,SAAS,uCACd,UACS;AACT,SAAO,uBAAuB,IAAI,QAAQ;AAC5C;AAEO,SAAS,0CACd,UACS;AACT,SAAO,0BAA0B,IAAI,QAAQ;AAC/C;AAEO,SAAS,sCACd,UACS;AACT,SAAO,sBAAsB,IAAI,QAAQ;AAC3C;AAEO,SAAS,4BACd,OACoC;AACpC,SACE,OAAO,UAAU,YACjB,2BAA2B,SAAS,KAAkC;AAE1E;AAEO,SAAS,mCACd,OACA,mBAA8C,SACnB;AAC3B,SAAO,4BAA4B,KAAK,IAAI,QAAQ;AACtD;","names":[]}
|
|
@@ -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 \"payload\" | \"typeId\"\n> & {\n dockEntryId?: string | null;\n};\n\nexport const agentGuiWorkbenchTypeId = \"agent-gui\";\n\nconst agentGuiWorkbenchDockEntryPrefix = \"agent-gui:\";\nconst agentGuiWorkbenchUnifiedDockEntryIdValue = \"agent-gui:unified\";\nlet agentGuiWorkbenchInstanceSequence = 0;\n\nexport type AgentGuiWorkbenchDockIdentity =\n | {\n kind: \"legacyProvider\";\n provider: AgentGuiWorkbenchProvider;\n }\n | {\n kind: \"unifiedAggregate\";\n };\n\nexport function agentGuiWorkbenchDockEntryId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return provider === \"codex\"\n ? agentGuiWorkbenchTypeId\n : `${agentGuiWorkbenchDockEntryPrefix}${provider}`;\n}\n\nexport function agentGuiWorkbenchUnifiedDockEntryId(): string {\n return agentGuiWorkbenchUnifiedDockEntryIdValue;\n}\n\nexport function agentGuiWorkbenchInstanceId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return `${agentGuiWorkbenchDockEntryPrefix}${provider}`;\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 const identity = agentGuiWorkbenchDockIdentityFromIdentifier(value);\n return identity?.kind === \"legacyProvider\" ? identity.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 if (normalized === agentGuiWorkbenchTypeId) {\n return { kind: \"legacyProvider\", provider: \"codex\" };\n }\n if (!normalized.startsWith(agentGuiWorkbenchDockEntryPrefix)) {\n return null;\n }\n const provider = normalized\n .slice(agentGuiWorkbenchDockEntryPrefix.length)\n .split(\":\", 1)[0];\n return isAgentGuiWorkbenchProvider(provider)\n ? { kind: \"legacyProvider\", provider }\n : 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 return (\n agentGuiWorkbenchProviderFromIdentifier(request.dockEntryId) ??\n agentGuiWorkbenchProviderFromIdentifier(request.typeId) ??\n \"codex\"\n );\n}\n\nexport function createAgentGuiWorkbenchSessionLaunchRequest(input: {\n agentSessionId?: string;\n openInNewWindow?: boolean;\n provider: unknown;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n return {\n dockEntryId: agentGuiWorkbenchDockEntryId(provider),\n payload: {\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: agentGuiWorkbenchDockEntryId(provider),\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 = resolveAgentGuiWorkbenchLaunchDockEntryId({\n provider,\n requestedDockEntryId: request.dockEntryId\n });\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: 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 = openInNewWindowFromLaunchPayload(request.payload);\n const instanceId = createAgentGuiWorkbenchInstanceId({\n agentSessionId: openInNewWindow ? null : targetAgentSessionId,\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: shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: targetAgentSessionId ? \"session\" : \"empty\"\n }),\n reuseExistingSessionNode: !openInNewWindow,\n targetAgentSessionId\n };\n}\n\nexport function resolveAgentGuiWorkbenchLaunchDockEntryId(input: {\n provider: AgentGuiWorkbenchProvider;\n requestedDockEntryId?: string | null;\n}): string {\n const requestedIdentity = agentGuiWorkbenchDockIdentityFromIdentifier(\n input.requestedDockEntryId\n );\n if (requestedIdentity?.kind === \"unifiedAggregate\") {\n return agentGuiWorkbenchUnifiedDockEntryId();\n }\n return agentGuiWorkbenchDockEntryId(input.provider);\n}\n\nexport function shouldReuseAgentGuiWorkbenchDockEntryNode(input: {\n dockEntryId: string;\n launchKind: \"empty\" | \"prefill\" | \"session\";\n}): boolean {\n if (input.launchKind !== \"prefill\") {\n return false;\n }\n return (\n agentGuiWorkbenchDockIdentityFromIdentifier(input.dockEntryId)?.kind !==\n \"unifiedAggregate\"\n );\n}\n\nfunction encodeAgentGuiWorkbenchInstanceSegment(value: string): string {\n return encodeURIComponent(value.trim());\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"],"mappings":"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","names":["openInNewWindow"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../providerTargets.ts"],"sourcesContent":["import type {\n AgentGUIProvider,\n AgentGUIProviderTarget,\n AgentGUIProviderTargetRef\n} from \"./types.ts\";\n\nconst agentGUIProviderTargetStaticLabels: Record<AgentGUIProvider, string> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n hermes: \"Hermes\",\n nexight: \"Tutti Agent\",\n openclaw: \"OpenClaw\"\n};\n\nexport const agentGUIDefaultTargetProviders = [\n \"codex\",\n \"claude-code\",\n \"nexight\",\n \"hermes\",\n \"openclaw\"\n] as const satisfies readonly AgentGUIProvider[];\n\nconst agentGUIDisabledPlaceholderProviders = [\n \"nexight\",\n \"hermes\",\n \"openclaw\"\n] as const satisfies readonly AgentGUIProvider[];\n\nexport function createLocalAgentGUIProviderTarget(\n provider: AgentGUIProvider\n): AgentGUIProviderTarget {\n const targetId = localAgentGUIProviderTargetId(provider);\n const agentTargetId = localAgentGUIAgentTargetId(provider);\n return {\n targetId,\n ...(agentTargetId ? { agentTargetId } : {}),\n provider,\n ref: {\n kind: \"local\",\n provider\n },\n label: agentGUIProviderTargetStaticLabels[provider] ?? provider\n };\n}\n\nexport function createDisabledPlaceholderAgentGUIProviderTarget(\n provider: AgentGUIProvider\n): AgentGUIProviderTarget {\n return {\n ...createLocalAgentGUIProviderTarget(provider),\n disabled: true\n };\n}\n\nexport function createLocalAgentGUIProviderTargets(\n providers: readonly AgentGUIProvider[] = agentGUIDefaultTargetProviders\n): AgentGUIProviderTarget[] {\n return providers.map((provider) =>\n createLocalAgentGUIProviderTarget(provider)\n );\n}\n\nfunction createStaticAgentGUIProviderTargets(\n providers: readonly AgentGUIProvider[] = agentGUIDefaultTargetProviders,\n options?: { includeDisabledPlaceholders?: boolean }\n): AgentGUIProviderTarget[] {\n const disabledProviders = new Set<AgentGUIProvider>(\n options?.includeDisabledPlaceholders === true\n ? agentGUIDisabledPlaceholderProviders\n : []\n );\n return providers.map((provider) =>\n disabledProviders.has(provider)\n ? createDisabledPlaceholderAgentGUIProviderTarget(provider)\n : createLocalAgentGUIProviderTarget(provider)\n );\n}\n\nexport function localAgentGUIProviderTargetId(\n provider: AgentGUIProvider\n): string {\n return `local:${provider}`;\n}\n\nexport function localAgentGUIAgentTargetId(\n provider: AgentGUIProvider\n): string | null {\n switch (provider) {\n case \"codex\":\n return \"local:codex\";\n case \"claude-code\":\n return \"local:claude-code\";\n case \"hermes\":\n return \"local:hermes\";\n case \"nexight\":\n return \"local:nexight\";\n case \"openclaw\":\n return \"local:openclaw\";\n default:\n return null;\n }\n}\n\nexport function normalizeAgentGUIProviderTargets(\n targets: readonly AgentGUIProviderTarget[] | null | undefined,\n options?: {\n includeDisabledPlaceholders?: boolean;\n useStaticCatalog?: boolean;\n }\n): AgentGUIProviderTarget[] {\n const includeDisabledPlaceholders =\n options?.includeDisabledPlaceholders === true;\n const useStaticCatalog = options?.useStaticCatalog !== false;\n const source = targets && targets.length > 0 ? targets : [];\n const normalizedTargets: AgentGUIProviderTarget[] = [];\n const seenTargetKeys = new Set<string>();\n const seenProviders = new Set<AgentGUIProvider>();\n for (const target of source) {\n const normalized = normalizeAgentGUIProviderTarget(target);\n if (!normalized) {\n continue;\n }\n const dedupeKey = `${normalized.provider}\\u0000${normalized.targetId}`;\n if (seenTargetKeys.has(dedupeKey)) {\n continue;\n }\n seenTargetKeys.add(dedupeKey);\n seenProviders.add(normalized.provider);\n normalizedTargets.push(normalized);\n }\n if (includeDisabledPlaceholders && normalizedTargets.length > 0) {\n for (const provider of agentGUIDisabledPlaceholderProviders) {\n if (seenProviders.has(provider)) {\n continue;\n }\n normalizedTargets.push(\n createDisabledPlaceholderAgentGUIProviderTarget(provider)\n );\n }\n }\n return normalizedTargets.length > 0 || !useStaticCatalog\n ? normalizedTargets\n : createStaticAgentGUIProviderTargets(undefined, {\n includeDisabledPlaceholders\n });\n}\n\nexport function resolveAgentGUIProviderTarget(input: {\n agentTargetId?: string | null;\n defaultProviderTargetId?: string | null;\n provider: AgentGUIProvider;\n providerTargetId?: string | null;\n providerTargets: readonly AgentGUIProviderTarget[];\n useStaticCatalog?: boolean;\n}): AgentGUIProviderTarget | null {\n const targetByAgentTargetId = new Map(\n input.providerTargets.flatMap((target) =>\n target.agentTargetId ? [[target.agentTargetId, target] as const] : []\n )\n );\n const agentTarget = targetByAgentTargetId.get(\n input.agentTargetId?.trim() ?? \"\"\n );\n if (agentTarget) {\n return agentTarget;\n }\n const providerTargets = input.providerTargets.filter(\n (target) => target.provider === input.provider\n );\n const targetById = new Map(\n providerTargets.map((target) => [target.targetId, target])\n );\n return (\n targetById.get(input.providerTargetId?.trim() ?? \"\") ??\n targetById.get(input.defaultProviderTargetId?.trim() ?? \"\") ??\n targetById.get(localAgentGUIProviderTargetId(input.provider)) ??\n providerTargets.find((target) => target.disabled !== true) ??\n providerTargets[0] ??\n (input.useStaticCatalog === false\n ? null\n : createLocalAgentGUIProviderTarget(input.provider))\n );\n}\n\nexport function agentGUIProviderTargetRefsEqual(\n left: AgentGUIProviderTargetRef | null | undefined,\n right: AgentGUIProviderTargetRef | null | undefined\n): boolean {\n if (left === right) {\n return true;\n }\n if (!left && !right) {\n return true;\n }\n if (!left || !right) {\n return false;\n }\n return stableProviderTargetRefKey(left) === stableProviderTargetRefKey(right);\n}\n\nfunction normalizeAgentGUIProviderTarget(\n target: AgentGUIProviderTarget\n): AgentGUIProviderTarget | null {\n const targetId = target.targetId.trim();\n const agentTargetId = target.agentTargetId?.trim();\n const label = target.label.trim();\n const kind =\n typeof target.ref.kind === \"string\" ? target.ref.kind.trim() : \"\";\n if (!targetId || !label || !kind || target.ref.provider !== target.provider) {\n return null;\n }\n return {\n ...target,\n targetId,\n ...(agentTargetId ? { agentTargetId } : {}),\n provider: target.provider,\n ref: {\n ...target.ref,\n kind,\n provider: target.provider\n },\n label,\n ...(target.description?.trim()\n ? { description: target.description.trim() }\n : {}),\n ...(target.ownerLabel?.trim()\n ? { ownerLabel: target.ownerLabel.trim() }\n : {}),\n ...(target.unavailableReason?.trim()\n ? { unavailableReason: target.unavailableReason.trim() }\n : {})\n };\n}\n\nfunction stableProviderTargetRefKey(ref: AgentGUIProviderTargetRef): string {\n return JSON.stringify(sortProviderTargetRefValue(ref));\n}\n\nfunction sortProviderTargetRefValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortProviderTargetRefValue);\n }\n if (!value || typeof value !== \"object\") {\n return value;\n }\n return Object.fromEntries(\n Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entryValue]) => [key, sortProviderTargetRefValue(entryValue)])\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../agent-gui/agentGuiNode/model/agentGuiRailLayout.ts","../dockIcons.ts"],"sourcesContent":["function clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\n// Keep aligned with the issue manager task-list rail dimensions.\nexport const AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX = 280;\nexport const AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX = 248;\nexport const AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX = 520;\nexport const AGENT_GUI_DETAIL_MIN_WIDTH_PX = 220;\nexport const AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX = 10;\nexport const AGENT_GUI_COLLAPSED_MIN_WIDTH_PX = 460;\nexport const AGENT_GUI_EXPANDED_MIN_WIDTH_PX =\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\nexport const AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX = 610;\nexport const AGENT_GUI_EXPANDED_TARGET_WIDTH_PX = 800;\n\nexport interface AgentGUIExpandedWindowFrameInput {\n position: { x: number; y: number };\n width: number;\n height: number;\n desktopSize: { width: number; height: number };\n conversationRailWidthPx: number | null | undefined;\n}\n\nexport function shouldAutoCollapseAgentGUIConversationRail(\n containerWidthPx: number\n): boolean {\n return (\n Number.isFinite(containerWidthPx) &&\n containerWidthPx > 0 &&\n containerWidthPx <= AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX\n );\n}\n\nexport function resolveAgentGUIConversationRailMaxWidthPx(\n containerWidthPx: number\n): number {\n const safeContainerWidth =\n Number.isFinite(containerWidthPx) && containerWidthPx > 0\n ? containerWidthPx\n : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\n\n return Math.max(\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n Math.min(\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX,\n safeContainerWidth -\n AGENT_GUI_DETAIL_MIN_WIDTH_PX -\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n )\n );\n}\n\nexport function clampAgentGUIConversationRailWidthPx(\n widthPx: number | null | undefined,\n containerWidthPx: number\n): number {\n const preferredWidthPx =\n typeof widthPx === \"number\" && Number.isFinite(widthPx)\n ? Math.round(widthPx)\n : null;\n\n return clamp(\n preferredWidthPx ?? AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX,\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n resolveAgentGUIConversationRailMaxWidthPx(containerWidthPx)\n );\n}\n\nexport function resolveNextAgentGUIConversationRailWidthPx(input: {\n currentWidthPx: number | null | undefined;\n requestedWidthPx: number;\n containerWidthPx: number;\n}): number | null {\n const nextWidthPx = clampAgentGUIConversationRailWidthPx(\n input.requestedWidthPx,\n input.containerWidthPx\n );\n if (input.currentWidthPx === nextWidthPx) {\n return input.currentWidthPx;\n }\n\n if (input.currentWidthPx === null || input.currentWidthPx === undefined) {\n const defaultWidthPx = clampAgentGUIConversationRailWidthPx(\n null,\n input.containerWidthPx\n );\n if (nextWidthPx === defaultWidthPx) {\n return null;\n }\n }\n\n return nextWidthPx;\n}\n\nexport function resolveAgentGUIExpandedWindowFrame(\n input: AgentGUIExpandedWindowFrameInput\n): {\n position: { x: number; y: number };\n size: { width: number; height: number };\n} {\n const desiredRailWidthPx = clampAgentGUIConversationRailWidthPx(\n input.conversationRailWidthPx,\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n );\n const desiredWidthPx = Math.max(\n Math.round(input.width),\n desiredRailWidthPx +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX,\n AGENT_GUI_EXPANDED_MIN_WIDTH_PX,\n AGENT_GUI_EXPANDED_TARGET_WIDTH_PX\n );\n const desktopWidthPx =\n Number.isFinite(input.desktopSize.width) && input.desktopSize.width > 0\n ? Math.round(input.desktopSize.width)\n : desiredWidthPx;\n const nextWidthPx = Math.min(desiredWidthPx, desktopWidthPx);\n const maxX = Math.max(0, desktopWidthPx - nextWidthPx);\n const nextX = clamp(Math.round(input.position.x), 0, maxX);\n\n return {\n position: {\n x: nextX,\n y: input.position.y\n },\n size: {\n width: nextWidthPx,\n height: input.height\n }\n };\n}\n","import {\n codexRoundedUrl,\n geminiRoundedUrl,\n hermesRoundedUrl,\n manageAgentClaudeCodeUrl,\n manageAgentTuttiUrl,\n openclawRoundedUrl\n} from \"./managedAgentIconAssets.ts\";\n\nexport const agentGuiDockIconUrl = codexRoundedUrl;\n\nexport const agentGuiDockIconUrls = {\n \"claude-code\": manageAgentClaudeCodeUrl,\n codex: codexRoundedUrl,\n gemini: geminiRoundedUrl,\n hermes: hermesRoundedUrl,\n nexight: manageAgentTuttiUrl,\n openclaw: openclawRoundedUrl\n} as const;\n"],"mappings":";;;;;;;;;;AAAA,SAAS,MAAM,OAAe,KAAa,KAAqB;AAC9D,SAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAC3C;AAGO,IAAM,+CAA+C;AACrD,IAAM,2CAA2C;AACjD,IAAM,2CAA2C;AACjD,IAAM,gCAAgC;AACtC,IAAM,wCAAwC;AAC9C,IAAM,mCAAmC;AACzC,IAAM,kCACX,2CACA,gCACA;AACK,IAAM,mCAAmC;AACzC,IAAM,qCAAqC;AAU3C,SAAS,2CACd,kBACS;AACT,SACE,OAAO,SAAS,gBAAgB,KAChC,mBAAmB,KACnB,oBAAoB;AAExB;AAEO,SAAS,0CACd,kBACQ;AACR,QAAM,qBACJ,OAAO,SAAS,gBAAgB,KAAK,mBAAmB,IACpD,mBACA,+CACA,gCACA;AAEN,SAAO,KAAK;AAAA,IACV;AAAA,IACA,KAAK;AAAA,MACH;AAAA,MACA,qBACE,gCACA;AAAA,IACJ;AAAA,EACF;AACF;AAEO,SAAS,qCACd,SACA,kBACQ;AACR,QAAM,mBACJ,OAAO,YAAY,YAAY,OAAO,SAAS,OAAO,IAClD,KAAK,MAAM,OAAO,IAClB;AAEN,SAAO;AAAA,IACL,oBAAoB;AAAA,IACpB;AAAA,IACA,0CAA0C,gBAAgB;AAAA,EAC5D;AACF;AAEO,SAAS,2CAA2C,OAIzC;AAChB,QAAM,cAAc;AAAA,IAClB,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AACA,MAAI,MAAM,mBAAmB,aAAa;AACxC,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,MAAM,mBAAmB,QAAQ,MAAM,mBAAmB,QAAW;AACvE,UAAM,iBAAiB;AAAA,MACrB;AAAA,MACA,MAAM;AAAA,IACR;AACA,QAAI,gBAAgB,gBAAgB;AAClC,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,mCACd,OAIA;AACA,QAAM,qBAAqB;AAAA,IACzB,MAAM;AAAA,IACN,2CACE,gCACA;AAAA,EACJ;AACA,QAAM,iBAAiB,KAAK;AAAA,IAC1B,KAAK,MAAM,MAAM,KAAK;AAAA,IACtB,qBACE,gCACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,iBACJ,OAAO,SAAS,MAAM,YAAY,KAAK,KAAK,MAAM,YAAY,QAAQ,IAClE,KAAK,MAAM,MAAM,YAAY,KAAK,IAClC;AACN,QAAM,cAAc,KAAK,IAAI,gBAAgB,cAAc;AAC3D,QAAM,OAAO,KAAK,IAAI,GAAG,iBAAiB,WAAW;AACrD,QAAM,QAAQ,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC,GAAG,GAAG,IAAI;AAEzD,SAAO;AAAA,IACL,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG,MAAM,SAAS;AAAA,IACpB;AAAA,IACA,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,QAAQ,MAAM;AAAA,IAChB;AAAA,EACF;AACF;;;AChIO,IAAM,sBAAsB;AAE5B,IAAM,uBAAuB;AAAA,EAClC,eAAe;AAAA,EACf,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AACZ;","names":[]}
|