@tutti-os/agent-gui 0.0.14 → 0.0.15
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 +1 -1
- package/dist/agent-conversation/index.js +4 -4
- package/dist/agent-message-center/index.d.ts +1 -1
- package/dist/agent-message-center/index.js +4 -4
- package/dist/agentFileMentionExtension-CM1c9bqk.d.ts +86 -0
- package/dist/app/renderer/agentactivity.css +33 -9
- package/dist/{chunk-WME2V26J.js → chunk-2CA4NPP3.js} +15 -33
- package/dist/chunk-2CA4NPP3.js.map +1 -0
- package/dist/{chunk-ZO3SZCIX.js → chunk-7CBJJNX6.js} +5 -2
- package/dist/chunk-7CBJJNX6.js.map +1 -0
- package/dist/{chunk-ASAZDEQE.js → chunk-EK5RDKG7.js} +54 -14
- package/dist/chunk-EK5RDKG7.js.map +1 -0
- package/dist/{chunk-GZHQPPK2.js → chunk-H4HT3FE6.js} +113 -36
- package/dist/chunk-H4HT3FE6.js.map +1 -0
- package/dist/{chunk-YXSO4ITT.js → chunk-HIREVEZM.js} +1 -1
- package/dist/chunk-HIREVEZM.js.map +1 -0
- package/dist/{chunk-VDNMTW2E.js → chunk-IXIGWLQY.js} +1 -1
- package/dist/chunk-IXIGWLQY.js.map +1 -0
- package/dist/{chunk-FSTZDNRM.js → chunk-KJPMZ7G5.js} +243 -167
- package/dist/chunk-KJPMZ7G5.js.map +1 -0
- package/dist/{chunk-GEXHKJK5.js → chunk-MUZMBEFO.js} +35 -17
- package/dist/chunk-MUZMBEFO.js.map +1 -0
- package/dist/{chunk-HSXDSFKB.js → chunk-OFGXNXYT.js} +2 -2
- package/dist/{chunk-3YZX5EUC.js → chunk-SVOGXWFJ.js} +53 -17
- package/dist/{chunk-3YZX5EUC.js.map → chunk-SVOGXWFJ.js.map} +1 -1
- package/dist/{chunk-MU2LODEV.js → chunk-U4F3COKL.js} +160 -10
- package/dist/chunk-U4F3COKL.js.map +1 -0
- package/dist/{chunk-KEKPOVQD.js → chunk-XHQGCP7A.js} +2 -2
- package/dist/{chunk-RLPVFX7V.js → chunk-YKDFQADM.js} +36 -7
- package/dist/chunk-YKDFQADM.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +8 -68
- package/dist/context-mention-palette/index.js +6 -6
- package/dist/context-mention-provider.d.ts +6 -1
- package/dist/context-mention-provider.js +1 -1
- package/dist/i18n/index.d.ts +239 -163
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +35 -2
- package/dist/index.js +1481 -997
- package/dist/index.js.map +1 -1
- package/dist/workbench/contribution.d.ts +7 -1
- package/dist/workbench/contribution.js +6 -4
- package/dist/workbench/index.d.ts +4 -2
- package/dist/workbench/index.js +6 -4
- package/dist/workbench/launch.d.ts +2 -0
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/state.d.ts +3 -2
- package/dist/workbench/state.js +1 -1
- package/dist/workbench/types.d.ts +3 -0
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.js +2 -2
- package/dist/{workspaceLinkActions-BlLN8Pvz.d.ts → workspaceLinkActions-Mjktl_Be.d.ts} +3 -0
- package/package.json +15 -13
- package/dist/chunk-ASAZDEQE.js.map +0 -1
- package/dist/chunk-FSTZDNRM.js.map +0 -1
- package/dist/chunk-GEXHKJK5.js.map +0 -1
- package/dist/chunk-GZHQPPK2.js.map +0 -1
- package/dist/chunk-MU2LODEV.js.map +0 -1
- package/dist/chunk-RLPVFX7V.js.map +0 -1
- package/dist/chunk-VDNMTW2E.js.map +0 -1
- package/dist/chunk-WME2V26J.js.map +0 -1
- package/dist/chunk-YXSO4ITT.js.map +0 -1
- package/dist/chunk-ZO3SZCIX.js.map +0 -1
- /package/dist/{chunk-HSXDSFKB.js.map → chunk-OFGXNXYT.js.map} +0 -0
- /package/dist/{chunk-KEKPOVQD.js.map → chunk-XHQGCP7A.js.map} +0 -0
|
@@ -6,14 +6,19 @@ declare const agentGuiWorkbenchDefaultNodeFrame: WorkbenchFrame;
|
|
|
6
6
|
declare const agentGuiWorkbenchDefaultUsableHeightRatio = 0.7;
|
|
7
7
|
declare const agentGuiWorkbenchCompactVisibleAreaRatio = 0.9;
|
|
8
8
|
declare const AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT = "tutti:agent-gui-workbench-conversation-rail-toggle";
|
|
9
|
+
declare const AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT = "tutti:agent-gui-workbench-new-conversation";
|
|
9
10
|
interface AgentGuiWorkbenchConversationRailToggleDetail {
|
|
10
11
|
conversationRailCollapsed: boolean;
|
|
11
12
|
instanceId: string;
|
|
12
13
|
}
|
|
14
|
+
interface AgentGuiWorkbenchNewConversationDetail {
|
|
15
|
+
instanceId: string;
|
|
16
|
+
}
|
|
13
17
|
interface AgentGuiWorkbenchContributionCopy {
|
|
14
18
|
collapseConversationRail: string;
|
|
15
19
|
expandConversationRail: string;
|
|
16
20
|
fallbackAgentLabel: string;
|
|
21
|
+
newConversation: string;
|
|
17
22
|
nodeTitle: string;
|
|
18
23
|
}
|
|
19
24
|
type AgentGuiWorkbenchContributionCopyOverrides = Partial<AgentGuiWorkbenchContributionCopy>;
|
|
@@ -31,6 +36,7 @@ interface CreateAgentGuiWorkbenchContributionInput {
|
|
|
31
36
|
id?: string;
|
|
32
37
|
renderBody(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
|
|
33
38
|
renderPreview?(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
|
|
39
|
+
resolveDockPopupTitle?: (state: AgentGuiWorkbenchState | null) => string | null;
|
|
34
40
|
resolveDockEntryVisibility?: (provider: AgentGuiWorkbenchProvider) => WorkbenchHostDockEntry["visibility"];
|
|
35
41
|
workspaceId: string;
|
|
36
42
|
}
|
|
@@ -41,4 +47,4 @@ declare function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {
|
|
|
41
47
|
}): WorkbenchFrame;
|
|
42
48
|
declare function resolveAgentGuiWorkbenchContributionCopy(copy?: AgentGuiWorkbenchContributionCopyOverrides): AgentGuiWorkbenchContributionCopy;
|
|
43
49
|
|
|
44
|
-
export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchRenderBodyHelpers, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchCompactVisibleAreaRatio, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, createAgentGuiWorkbenchContribution, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
|
|
50
|
+
export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchNewConversationDetail, type AgentGuiWorkbenchRenderBodyHelpers, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchCompactVisibleAreaRatio, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, createAgentGuiWorkbenchContribution, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
|
|
3
|
+
AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT,
|
|
3
4
|
agentGuiWorkbenchCompactVisibleAreaRatio,
|
|
4
5
|
agentGuiWorkbenchDefaultCopy,
|
|
5
6
|
agentGuiWorkbenchDefaultNodeFrame,
|
|
@@ -7,15 +8,16 @@ import {
|
|
|
7
8
|
createAgentGuiWorkbenchContribution,
|
|
8
9
|
resolveAgentGuiWorkbenchContributionCopy,
|
|
9
10
|
resolveAgentGuiWorkbenchDefaultLaunchFrame
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-EK5RDKG7.js";
|
|
12
|
+
import "../chunk-7CBJJNX6.js";
|
|
13
|
+
import "../chunk-MUZMBEFO.js";
|
|
13
14
|
import "../chunk-22L4VWUR.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-IXIGWLQY.js";
|
|
15
16
|
import "../chunk-Q75AK47T.js";
|
|
16
17
|
import "../chunk-MTFSQWZ6.js";
|
|
17
18
|
export {
|
|
18
19
|
AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
|
|
20
|
+
AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT,
|
|
19
21
|
agentGuiWorkbenchCompactVisibleAreaRatio,
|
|
20
22
|
agentGuiWorkbenchDefaultCopy,
|
|
21
23
|
agentGuiWorkbenchDefaultNodeFrame,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, AgentGuiWorkbenchContributionCopy, AgentGuiWorkbenchContributionCopyOverrides, AgentGuiWorkbenchConversationRailToggleDetail, AgentGuiWorkbenchRenderBodyHelpers, CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, createAgentGuiWorkbenchContribution, resolveAgentGuiWorkbenchContributionCopy } from './contribution.js';
|
|
1
|
+
export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT, AgentGuiWorkbenchContributionCopy, AgentGuiWorkbenchContributionCopyOverrides, AgentGuiWorkbenchConversationRailToggleDetail, AgentGuiWorkbenchNewConversationDetail, AgentGuiWorkbenchRenderBodyHelpers, CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, createAgentGuiWorkbenchContribution, resolveAgentGuiWorkbenchContributionCopy } from './contribution.js';
|
|
2
2
|
export { agentGuiWorkbenchComingSoonProviders, agentGuiWorkbenchDefaultDockProviders, agentGuiWorkbenchDockSuppressedProviders, agentGuiWorkbenchProviderLabels, agentGuiWorkbenchProviders, isAgentGuiWorkbenchComingSoonProvider, isAgentGuiWorkbenchDefaultDockProvider, isAgentGuiWorkbenchDockSuppressedProvider, isAgentGuiWorkbenchProvider, normalizeAgentGuiWorkbenchProvider, resolveAgentGuiWorkbenchProviderLabel } from './providerCatalog.js';
|
|
3
3
|
export { AgentGuiWorkbenchLaunchDescriptor, agentGuiWorkbenchDockEntryId, agentGuiWorkbenchInstanceId, agentGuiWorkbenchProviderFromIdentifier, agentGuiWorkbenchProviderFromLaunchRequest, agentGuiWorkbenchTypeId, createAgentGuiWorkbenchDraftLaunchRequest, createAgentGuiWorkbenchInstanceId, createAgentGuiWorkbenchLaunchDescriptor, createAgentGuiWorkbenchSessionLaunchRequest } from './launch.js';
|
|
4
4
|
export { agentGuiWorkbenchProviderFromInstanceId, areAgentGuiWorkbenchNodeStatesEqual, areAgentGuiWorkbenchStatesEqual, createAgentGuiWorkbenchNodeStateSource, createDefaultAgentGuiWorkbenchNodeState, normalizeAgentGuiWorkbenchNodeState, normalizeAgentGuiWorkbenchState, projectAgentGuiWorkbenchState } from './state.js';
|
|
@@ -10,15 +10,17 @@ interface AgentGuiWorkbenchHeaderCopy {
|
|
|
10
10
|
collapseConversationRail: string;
|
|
11
11
|
expandConversationRail: string;
|
|
12
12
|
fallbackAgentLabel: string;
|
|
13
|
+
newConversation: string;
|
|
13
14
|
}
|
|
14
15
|
interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {
|
|
15
16
|
copy: AgentGuiWorkbenchHeaderCopy;
|
|
16
17
|
defaultActions?: ReactNode;
|
|
17
18
|
isConversationRailAutoCollapsed: boolean;
|
|
18
19
|
isConversationRailCollapsed: boolean;
|
|
20
|
+
onCreateConversation?: () => void;
|
|
19
21
|
onToggleConversationRail: (nextCollapsed: boolean) => void;
|
|
20
22
|
title?: string;
|
|
21
23
|
}
|
|
22
|
-
declare function AgentGuiWorkbenchHeader({ className, copy, defaultActions, isConversationRailAutoCollapsed, isConversationRailCollapsed, onToggleConversationRail, title, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
|
|
24
|
+
declare function AgentGuiWorkbenchHeader({ className, copy, defaultActions, isConversationRailAutoCollapsed, isConversationRailCollapsed, onCreateConversation, onToggleConversationRail, title, ...headerProps }: AgentGuiWorkbenchHeaderProps): ReactNode;
|
|
23
25
|
|
|
24
26
|
export { AgentGuiWorkbenchHeader, type AgentGuiWorkbenchHeaderCopy, type AgentGuiWorkbenchHeaderProps };
|
package/dist/workbench/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
|
|
3
|
+
AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT,
|
|
3
4
|
AgentGuiWorkbenchHeader,
|
|
4
5
|
agentGuiWorkbenchDefaultCopy,
|
|
5
6
|
agentGuiWorkbenchDefaultNodeFrame,
|
|
6
7
|
createAgentGuiWorkbenchContribution,
|
|
7
8
|
resolveAgentGuiWorkbenchContributionCopy
|
|
8
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-EK5RDKG7.js";
|
|
9
10
|
import {
|
|
10
11
|
agentGuiWorkbenchDockEntryId,
|
|
11
12
|
agentGuiWorkbenchInstanceId,
|
|
@@ -16,7 +17,7 @@ import {
|
|
|
16
17
|
createAgentGuiWorkbenchInstanceId,
|
|
17
18
|
createAgentGuiWorkbenchLaunchDescriptor,
|
|
18
19
|
createAgentGuiWorkbenchSessionLaunchRequest
|
|
19
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-7CBJJNX6.js";
|
|
20
21
|
import {
|
|
21
22
|
agentGuiWorkbenchProviderFromInstanceId,
|
|
22
23
|
areAgentGuiWorkbenchNodeStatesEqual,
|
|
@@ -26,7 +27,7 @@ import {
|
|
|
26
27
|
normalizeAgentGuiWorkbenchNodeState,
|
|
27
28
|
normalizeAgentGuiWorkbenchState,
|
|
28
29
|
projectAgentGuiWorkbenchState
|
|
29
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-MUZMBEFO.js";
|
|
30
31
|
import {
|
|
31
32
|
agentGuiWorkbenchComingSoonProviders,
|
|
32
33
|
agentGuiWorkbenchDefaultDockProviders,
|
|
@@ -43,11 +44,12 @@ import {
|
|
|
43
44
|
import {
|
|
44
45
|
agentGuiWorkbenchOpenSessionActivationType,
|
|
45
46
|
agentGuiWorkbenchPrefillPromptActivationType
|
|
46
|
-
} from "../chunk-
|
|
47
|
+
} from "../chunk-IXIGWLQY.js";
|
|
47
48
|
import "../chunk-Q75AK47T.js";
|
|
48
49
|
import "../chunk-MTFSQWZ6.js";
|
|
49
50
|
export {
|
|
50
51
|
AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
|
|
52
|
+
AGENT_GUI_WORKBENCH_NEW_CONVERSATION_EVENT,
|
|
51
53
|
AgentGuiWorkbenchHeader,
|
|
52
54
|
agentGuiWorkbenchComingSoonProviders,
|
|
53
55
|
agentGuiWorkbenchDefaultCopy,
|
|
@@ -26,6 +26,7 @@ declare function createAgentGuiWorkbenchSessionLaunchRequest(input: {
|
|
|
26
26
|
typeId: string;
|
|
27
27
|
};
|
|
28
28
|
declare function createAgentGuiWorkbenchDraftLaunchRequest(input: {
|
|
29
|
+
autoSubmit?: boolean;
|
|
29
30
|
draftPrompt: string;
|
|
30
31
|
provider: unknown;
|
|
31
32
|
userProjectPath?: string | null;
|
|
@@ -33,6 +34,7 @@ declare function createAgentGuiWorkbenchDraftLaunchRequest(input: {
|
|
|
33
34
|
dockEntryId: string;
|
|
34
35
|
payload: {
|
|
35
36
|
userProjectPath?: string | undefined;
|
|
37
|
+
autoSubmit?: boolean | undefined;
|
|
36
38
|
draftPrompt: string;
|
|
37
39
|
provider: AgentGuiWorkbenchProvider;
|
|
38
40
|
};
|
package/dist/workbench/launch.js
CHANGED
|
@@ -8,11 +8,11 @@ import {
|
|
|
8
8
|
createAgentGuiWorkbenchInstanceId,
|
|
9
9
|
createAgentGuiWorkbenchLaunchDescriptor,
|
|
10
10
|
createAgentGuiWorkbenchSessionLaunchRequest
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-7CBJJNX6.js";
|
|
12
12
|
import "../chunk-22L4VWUR.js";
|
|
13
13
|
import {
|
|
14
14
|
agentGuiWorkbenchPrefillPromptActivationType
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-IXIGWLQY.js";
|
|
16
16
|
export {
|
|
17
17
|
agentGuiWorkbenchDockEntryId,
|
|
18
18
|
agentGuiWorkbenchInstanceId,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { WorkbenchHostExternalStateSource, WorkbenchHostExternalStateLookupInput } from '@tutti-os/workbench-surface';
|
|
2
2
|
import { AgentGuiWorkbenchProvider, AgentGuiWorkbenchNodeState, AgentGuiWorkbenchState, AgentGuiWorkbenchWorkspaceState } from './types.js';
|
|
3
3
|
|
|
4
|
+
type AgentGuiWorkbenchStateLookupRequest = Pick<WorkbenchHostExternalStateLookupInput, "instanceId" | "typeId"> & Partial<Pick<WorkbenchHostExternalStateLookupInput, "nodeId">>;
|
|
4
5
|
declare function createDefaultAgentGuiWorkbenchNodeState(provider?: AgentGuiWorkbenchProvider): AgentGuiWorkbenchNodeState;
|
|
5
6
|
declare function normalizeAgentGuiWorkbenchState(state: unknown): AgentGuiWorkbenchState;
|
|
6
7
|
declare function projectAgentGuiWorkbenchState(state: AgentGuiWorkbenchNodeState): AgentGuiWorkbenchState;
|
|
@@ -13,8 +14,8 @@ declare function createAgentGuiWorkbenchNodeStateSource(input: {
|
|
|
13
14
|
workspaceId: string;
|
|
14
15
|
}): {
|
|
15
16
|
externalStateSource: WorkbenchHostExternalStateSource<AgentGuiWorkbenchState | null, AgentGuiWorkbenchWorkspaceState>;
|
|
16
|
-
readNodeState: (request:
|
|
17
|
-
writeNodeState: (request:
|
|
17
|
+
readNodeState: (request: AgentGuiWorkbenchStateLookupRequest) => AgentGuiWorkbenchState | null;
|
|
18
|
+
writeNodeState: (request: AgentGuiWorkbenchStateLookupRequest & {
|
|
18
19
|
state: AgentGuiWorkbenchState;
|
|
19
20
|
}) => void;
|
|
20
21
|
};
|
package/dist/workbench/state.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
normalizeAgentGuiWorkbenchNodeState,
|
|
8
8
|
normalizeAgentGuiWorkbenchState,
|
|
9
9
|
projectAgentGuiWorkbenchState
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-MUZMBEFO.js";
|
|
11
11
|
import "../chunk-22L4VWUR.js";
|
|
12
12
|
export {
|
|
13
13
|
agentGuiWorkbenchProviderFromInstanceId,
|
|
@@ -2,6 +2,7 @@ type AgentGuiWorkbenchProvider = "claude-code" | "codex" | "nexight" | "gemini"
|
|
|
2
2
|
declare const agentGuiWorkbenchOpenSessionActivationType = "agent-gui:open-session";
|
|
3
3
|
declare const agentGuiWorkbenchPrefillPromptActivationType = "agent-gui:prefill-prompt";
|
|
4
4
|
interface AgentGuiWorkbenchPrefillPromptPayload {
|
|
5
|
+
autoSubmit?: boolean;
|
|
5
6
|
draftPrompt: string;
|
|
6
7
|
userProjectPath?: string | null;
|
|
7
8
|
}
|
|
@@ -19,6 +20,7 @@ interface AgentGuiWorkbenchNodeState {
|
|
|
19
20
|
conversationRailCollapsed?: boolean | null;
|
|
20
21
|
conversationRailWidthPx?: number | null;
|
|
21
22
|
lastActiveAgentSessionId: string | null;
|
|
23
|
+
/** @deprecated Conversation titles are derived from the active session id. */
|
|
22
24
|
lastActiveConversationTitle?: string | null;
|
|
23
25
|
provider: AgentGuiWorkbenchProvider;
|
|
24
26
|
}
|
|
@@ -28,6 +30,7 @@ interface AgentGuiWorkbenchState {
|
|
|
28
30
|
conversationRailCollapsed?: boolean | null;
|
|
29
31
|
conversationRailWidthPx?: number | null;
|
|
30
32
|
lastActiveAgentSessionId: string | null;
|
|
33
|
+
/** @deprecated Conversation titles are derived from the active session id. */
|
|
31
34
|
lastActiveConversationTitle?: string | null;
|
|
32
35
|
}
|
|
33
36
|
interface AgentGuiWorkbenchWorkspaceState {
|
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-IXIGWLQY.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-XHQGCP7A.js";
|
|
8
8
|
import "./chunk-IBIMGLCD.js";
|
|
9
9
|
import "./chunk-XJ34OIEQ.js";
|
|
10
10
|
import {
|
|
11
11
|
workspaceAgentProviderLabel
|
|
12
12
|
} from "./chunk-TYGL25EL.js";
|
|
13
13
|
import "./chunk-GCBDIQDX.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-KJPMZ7G5.js";
|
|
15
15
|
export {
|
|
16
16
|
buildWorkspaceAgentActivityListViewModel,
|
|
17
17
|
collectWorkspaceAgentGeneratedFiles,
|
|
@@ -50,6 +50,9 @@ interface OpenWorkspaceAppLinkAction {
|
|
|
50
50
|
type: "open-workspace-app";
|
|
51
51
|
workspaceId: string;
|
|
52
52
|
appId: string;
|
|
53
|
+
conversationId?: string | null;
|
|
54
|
+
messageId?: string | null;
|
|
55
|
+
summaryTaskId?: string | null;
|
|
53
56
|
source: WorkspaceLinkActionSource;
|
|
54
57
|
}
|
|
55
58
|
type WorkspaceLinkAction = OpenWorkspaceFileLinkAction | OpenWorkspaceUrlLinkAction | OpenAgentSessionLinkAction | OpenWorkspaceIssueLinkAction | OpenWorkspaceAppLinkAction;
|
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.15",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -82,17 +82,17 @@
|
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
84
|
"@monaco-editor/react": "^4.7.0",
|
|
85
|
-
"@tutti-os/agent-activity-core": "0.0.
|
|
86
|
-
"@tutti-os/ui-i18n-runtime": "0.0.
|
|
87
|
-
"@tutti-os/ui-rich-text": "0.0.
|
|
88
|
-
"@tutti-os/ui-react-hooks": "0.0.
|
|
89
|
-
"@tutti-os/ui-system": "0.0.
|
|
90
|
-
"@tutti-os/workbench-surface": "0.0.
|
|
91
|
-
"@tutti-os/workspace-external-core": "0.0.
|
|
92
|
-
"@tutti-os/workspace-file-manager": "0.0.
|
|
93
|
-
"@tutti-os/workspace-file-reference": "0.0.
|
|
94
|
-
"@tutti-os/workspace-issue-manager": "0.0.
|
|
95
|
-
"@tutti-os/workspace-user-project": "0.0.
|
|
85
|
+
"@tutti-os/agent-activity-core": "0.0.15",
|
|
86
|
+
"@tutti-os/ui-i18n-runtime": "0.0.15",
|
|
87
|
+
"@tutti-os/ui-rich-text": "0.0.15",
|
|
88
|
+
"@tutti-os/ui-react-hooks": "0.0.15",
|
|
89
|
+
"@tutti-os/ui-system": "0.0.15",
|
|
90
|
+
"@tutti-os/workbench-surface": "0.0.15",
|
|
91
|
+
"@tutti-os/workspace-external-core": "0.0.15",
|
|
92
|
+
"@tutti-os/workspace-file-manager": "0.0.15",
|
|
93
|
+
"@tutti-os/workspace-file-reference": "0.0.15",
|
|
94
|
+
"@tutti-os/workspace-issue-manager": "0.0.15",
|
|
95
|
+
"@tutti-os/workspace-user-project": "0.0.15",
|
|
96
96
|
"@tanstack/react-virtual": "^3.13.12",
|
|
97
97
|
"@tiptap/core": "^3.11.1",
|
|
98
98
|
"@tiptap/pm": "^3.23.6",
|
|
@@ -100,6 +100,7 @@
|
|
|
100
100
|
"@tiptap/starter-kit": "^3.11.1",
|
|
101
101
|
"@tiptap/suggestion": "^3.11.1",
|
|
102
102
|
"clsx": "^2.1.1",
|
|
103
|
+
"lodash": "^4.17.21",
|
|
103
104
|
"framer-motion": "^12.40.0",
|
|
104
105
|
"lucide-react": "^0.511.0",
|
|
105
106
|
"react-markdown": "^10.1.0",
|
|
@@ -113,6 +114,7 @@
|
|
|
113
114
|
"devDependencies": {
|
|
114
115
|
"@testing-library/jest-dom": "^6.9.1",
|
|
115
116
|
"@testing-library/react": "^16.3.0",
|
|
117
|
+
"@types/lodash": "^4.17.24",
|
|
116
118
|
"@types/node": "^24.0.1",
|
|
117
119
|
"@types/react": "^19.1.6",
|
|
118
120
|
"@types/react-dom": "^19.1.5",
|
|
@@ -136,7 +138,7 @@
|
|
|
136
138
|
"scripts": {
|
|
137
139
|
"build": "tsup --config tsup.config.ts && node ../../../tools/scripts/copy-package-assets.mjs app/renderer/agentactivity.css dist/app/renderer/agentactivity.css app/renderer/assets/icons dist/app/renderer/assets/icons",
|
|
138
140
|
"test": "vitest run --environment jsdom",
|
|
139
|
-
"typecheck": "
|
|
141
|
+
"typecheck": "node ../../../tools/scripts/run-tsgo-typecheck.mjs"
|
|
140
142
|
},
|
|
141
143
|
"typesVersions": {
|
|
142
144
|
"*": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../workbench/contribution.ts","../workbench/header.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport {\n getWorkbenchLayoutFrame,\n type WorkbenchContribution,\n type WorkbenchFrame,\n type WorkbenchHostDockEntry,\n type WorkbenchHostDockPopupItemInput,\n type WorkbenchHostLaunchRequest,\n type WorkbenchHostNodeBodyContext\n} from \"@tutti-os/workbench-surface\";\nimport {\n resolveAgentGUIExpandedWindowFrame,\n shouldAutoCollapseAgentGUIConversationRail\n} from \"../agent-gui/agentGuiNode/model/agentGuiRailLayout.ts\";\nimport { agentGuiDockIconUrls } from \"../dockIcons.ts\";\nimport { AgentGuiWorkbenchHeader } from \"./header.ts\";\nimport {\n agentGuiWorkbenchDockEntryId,\n agentGuiWorkbenchProviderFromIdentifier,\n agentGuiWorkbenchTypeId,\n createAgentGuiWorkbenchLaunchDescriptor\n} from \"./launch.ts\";\nimport {\n agentGuiWorkbenchProviderFromInstanceId,\n createAgentGuiWorkbenchNodeStateSource,\n normalizeAgentGuiWorkbenchNodeState,\n normalizeAgentGuiWorkbenchState\n} from \"./state.ts\";\nimport {\n agentGuiWorkbenchProviderLabels,\n agentGuiWorkbenchProviders,\n isAgentGuiWorkbenchDefaultDockProvider,\n resolveAgentGuiWorkbenchProviderLabel\n} from \"./providerCatalog.ts\";\nimport type {\n AgentGuiWorkbenchProvider,\n AgentGuiWorkbenchState\n} from \"./types.ts\";\n\nexport const agentGuiWorkbenchDefaultNodeFrame: WorkbenchFrame = {\n height: 560,\n width: 1040,\n x: 140,\n y: 48\n};\n\nexport const agentGuiWorkbenchDefaultUsableHeightRatio = 0.7;\nexport const agentGuiWorkbenchCompactVisibleAreaRatio = 0.9;\n\nexport const AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT =\n \"tutti:agent-gui-workbench-conversation-rail-toggle\";\n\nexport interface AgentGuiWorkbenchConversationRailToggleDetail {\n conversationRailCollapsed: boolean;\n instanceId: string;\n}\n\nexport interface AgentGuiWorkbenchContributionCopy {\n collapseConversationRail: string;\n expandConversationRail: string;\n fallbackAgentLabel: string;\n nodeTitle: string;\n}\n\nexport type AgentGuiWorkbenchContributionCopyOverrides =\n Partial<AgentGuiWorkbenchContributionCopy>;\n\nexport const agentGuiWorkbenchDefaultCopy: AgentGuiWorkbenchContributionCopy = {\n collapseConversationRail: \"Collapse conversation rail\",\n expandConversationRail: \"Expand conversation rail\",\n fallbackAgentLabel: \"Agent\",\n nodeTitle: \"Agent\"\n};\n\nexport interface AgentGuiWorkbenchRenderBodyHelpers {\n nodeTypeId: string;\n onStateChange(state: AgentGuiWorkbenchState): void;\n provider: AgentGuiWorkbenchProvider;\n}\n\nexport interface CreateAgentGuiWorkbenchContributionInput {\n copy?: AgentGuiWorkbenchContributionCopyOverrides;\n dockIconUrls?: Partial<Record<AgentGuiWorkbenchProvider, string>>;\n dockSectionId?: string;\n frame?: WorkbenchFrame;\n id?: string;\n renderBody(\n context: WorkbenchHostNodeBodyContext<\n AgentGuiWorkbenchState | null,\n unknown\n >,\n helpers: AgentGuiWorkbenchRenderBodyHelpers\n ): ReactNode;\n renderPreview?(\n context: WorkbenchHostNodeBodyContext<\n AgentGuiWorkbenchState | null,\n unknown\n >,\n helpers: AgentGuiWorkbenchRenderBodyHelpers\n ): ReactNode;\n resolveDockEntryVisibility?: (\n provider: AgentGuiWorkbenchProvider\n ) => WorkbenchHostDockEntry[\"visibility\"];\n workspaceId: string;\n}\n\nexport function createAgentGuiWorkbenchContribution(\n input: CreateAgentGuiWorkbenchContributionInput\n): WorkbenchContribution {\n const nodeStateSource = createAgentGuiWorkbenchNodeStateSource({\n workspaceId: input.workspaceId\n });\n const frame = input.frame ?? agentGuiWorkbenchDefaultNodeFrame;\n const copy = resolveAgentGuiWorkbenchContributionCopy(input.copy);\n\n return {\n dockEntries: agentGuiWorkbenchProviders.map((provider, index) =>\n createAgentGuiWorkbenchDockEntry({\n label: agentGuiWorkbenchProviderLabels[provider],\n iconUrl:\n input.dockIconUrls?.[provider] ?? agentGuiDockIconUrls[provider],\n order: index,\n provider,\n renderPreview: input.renderPreview,\n sectionId: input.dockSectionId ?? \"agents\",\n visibility:\n input.resolveDockEntryVisibility?.(provider) ??\n (isAgentGuiWorkbenchDefaultDockProvider(provider)\n ? \"always\"\n : \"never\")\n })\n ),\n externalStateSource: nodeStateSource.externalStateSource,\n id: input.id ?? \"workspace-agent-gui\",\n nodes: [\n {\n frame,\n instance: { mode: \"multi\" },\n renderBody: (context) =>\n input.renderBody(\n context as WorkbenchHostNodeBodyContext<\n AgentGuiWorkbenchState | null,\n unknown\n >,\n {\n nodeTypeId: agentGuiWorkbenchTypeId,\n onStateChange: (state) => {\n nodeStateSource.writeNodeState({\n instanceId: context.instanceId,\n state,\n typeId: agentGuiWorkbenchTypeId\n });\n },\n provider: agentGuiWorkbenchProviderFromInstanceId(\n context.instanceId\n )\n }\n ),\n renderHeader: ({\n defaultActions,\n dragHandleProps,\n externalNodeState,\n instanceId,\n isFocused,\n node,\n surfaceSize,\n windowActions\n }) => {\n const provider = agentGuiWorkbenchProviderFromInstanceId(instanceId);\n const title = resolveAgentGuiWorkbenchProviderLabel(provider);\n const workbenchState = normalizeAgentGuiWorkbenchState(\n externalNodeState ?? node.data.runtimeNodeState\n );\n const nodeState = normalizeAgentGuiWorkbenchNodeState(\n workbenchState,\n provider\n );\n const isConversationRailAutoCollapsed =\n shouldAutoCollapseAgentGUIConversationRail(node.frame.width);\n const isConversationRailCollapsed =\n nodeState.conversationRailCollapsed === true ||\n isConversationRailAutoCollapsed;\n const persistConversationRailCollapsed = (collapsed: boolean) => {\n nodeStateSource.writeNodeState({\n instanceId,\n state: {\n ...workbenchState,\n conversationRailCollapsed: collapsed\n },\n typeId: agentGuiWorkbenchTypeId\n });\n };\n const announceConversationRailCollapsed = (collapsed: boolean) => {\n window.dispatchEvent(\n new CustomEvent<AgentGuiWorkbenchConversationRailToggleDetail>(\n AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,\n {\n detail: {\n conversationRailCollapsed: collapsed,\n instanceId\n }\n }\n )\n );\n };\n\n return createElement(AgentGuiWorkbenchHeader, {\n copy,\n defaultActions,\n isConversationRailAutoCollapsed,\n isConversationRailCollapsed,\n title,\n ...dragHandleProps,\n onPointerDown: (event) => {\n dragHandleProps.onPointerDown?.(event);\n if (!isFocused) {\n windowActions.focus();\n }\n },\n onToggleConversationRail: (nextCollapsed) => {\n announceConversationRailCollapsed(nextCollapsed);\n if (\n isConversationRailCollapsed &&\n nextCollapsed === false &&\n node.displayMode !== \"fullscreen\"\n ) {\n const expandedFrame = resolveAgentGUIExpandedWindowFrame({\n conversationRailWidthPx: nodeState.conversationRailWidthPx,\n desktopSize: surfaceSize,\n height: node.frame.height,\n position: {\n x: node.frame.x,\n y: node.frame.y\n },\n width: node.frame.width\n });\n\n windowActions.resize({\n ...node.frame,\n height: expandedFrame.size.height,\n width: expandedFrame.size.width,\n x: expandedFrame.position.x,\n y: expandedFrame.position.y\n });\n }\n\n persistConversationRailCollapsed(nextCollapsed);\n }\n });\n },\n title: copy.nodeTitle,\n typeId: agentGuiWorkbenchTypeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizedDock: {\n kind: \"snapshot\"\n },\n minimizable: true\n }\n }\n ],\n onLaunchRequest: (request) => {\n if (request.typeId !== agentGuiWorkbenchTypeId) {\n return null;\n }\n\n const {\n activation,\n dockEntryId,\n instanceId,\n provider,\n reuseDockEntryNode,\n targetAgentSessionId\n } = createAgentGuiWorkbenchLaunchDescriptor(request);\n const title = resolveAgentGuiWorkbenchProviderLabel(provider);\n if (targetAgentSessionId) {\n const previousState = nodeStateSource.readNodeState({\n instanceId,\n typeId: agentGuiWorkbenchTypeId\n });\n nodeStateSource.writeNodeState({\n instanceId,\n state: {\n ...(previousState ?? normalizeAgentGuiWorkbenchState(null)),\n ...(targetAgentSessionId\n ? { lastActiveAgentSessionId: targetAgentSessionId }\n : {})\n },\n typeId: agentGuiWorkbenchTypeId\n });\n }\n const defaultFrame = resolveAgentGuiWorkbenchDefaultLaunchFrame({\n frame,\n request\n });\n return {\n activation,\n defaultFrame,\n dockEntryId,\n framePolicy: isAgentGuiWorkbenchCompactVisibleFrame(defaultFrame, frame)\n ? \"absolute\"\n : \"cascade-same-type-centered\",\n instanceId,\n reuseDockEntryNode,\n title,\n typeId: agentGuiWorkbenchTypeId\n };\n }\n };\n}\n\nexport function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {\n frame: WorkbenchFrame;\n request: Pick<\n WorkbenchHostLaunchRequest,\n \"layoutConstraints\" | \"surfaceSize\"\n >;\n}): WorkbenchFrame {\n const layoutFrame = getWorkbenchLayoutFrame(\n input.request.surfaceSize,\n input.request.layoutConstraints\n );\n const defaultHeight = Math.round(\n layoutFrame.height * agentGuiWorkbenchDefaultUsableHeightRatio\n );\n const shouldUseCompactWidth = layoutFrame.width < input.frame.width;\n const shouldUseCompactHeight =\n layoutFrame.height <\n input.frame.height / agentGuiWorkbenchCompactVisibleAreaRatio;\n\n if (shouldUseCompactWidth || shouldUseCompactHeight) {\n const width = shouldUseCompactWidth\n ? Math.round(layoutFrame.width * agentGuiWorkbenchCompactVisibleAreaRatio)\n : input.frame.width;\n const height = Math.round(\n layoutFrame.height * agentGuiWorkbenchCompactVisibleAreaRatio\n );\n\n return {\n height,\n width,\n x: Math.round(layoutFrame.x + (layoutFrame.width - width) / 2),\n y: Math.round(layoutFrame.y + (layoutFrame.height - height) / 2)\n };\n }\n\n return {\n ...input.frame,\n height: defaultHeight\n };\n}\n\nfunction isAgentGuiWorkbenchCompactVisibleFrame(\n frame: WorkbenchFrame,\n defaultFrame: WorkbenchFrame\n): boolean {\n return frame.width !== defaultFrame.width || frame.x !== defaultFrame.x;\n}\n\nexport function resolveAgentGuiWorkbenchContributionCopy(\n copy?: AgentGuiWorkbenchContributionCopyOverrides\n): AgentGuiWorkbenchContributionCopy {\n return {\n ...agentGuiWorkbenchDefaultCopy,\n ...copy\n };\n}\n\nfunction createAgentGuiWorkbenchDockEntry(input: {\n iconUrl?: string;\n label: string;\n order: number;\n provider: AgentGuiWorkbenchProvider;\n renderPreview?: CreateAgentGuiWorkbenchContributionInput[\"renderPreview\"];\n sectionId: string;\n visibility: WorkbenchHostDockEntry[\"visibility\"];\n}): WorkbenchHostDockEntry {\n return {\n icon: createElement(\"img\", {\n alt: \"\",\n draggable: false,\n src: input.iconUrl\n }),\n iconSize: \"large\",\n id: agentGuiWorkbenchDockEntryId(input.provider),\n label: input.label,\n launchBehavior: \"enabled\",\n launchPayload: { provider: input.provider },\n matchNode: (node) =>\n node.data.typeId === agentGuiWorkbenchTypeId &&\n agentGuiWorkbenchProviderFromIdentifier(node.data.instanceId) ===\n input.provider,\n order: input.order,\n providePopupItemPreview: (item) => {\n if (!input.renderPreview) {\n return null;\n }\n const { externalNodeState, node } = item;\n const state =\n (externalNodeState as\n | Partial<\n AgentGuiWorkbenchState & { conversationCount?: number | null }\n >\n | null\n | undefined) ?? {};\n const title =\n resolveAgentGuiWorkbenchDockPopupTitle(externalNodeState) ?? node.title;\n const lines = [input.label, state.lastActiveAgentSessionId].filter(\n (line): line is string => Boolean(line?.trim())\n );\n const revision = `${input.provider}\\n${title}\\n${lines.join(\"\\n\")}`;\n return {\n element: input.renderPreview(\n createAgentGuiWorkbenchPreviewBodyContext(item),\n {\n nodeTypeId: agentGuiWorkbenchTypeId,\n onStateChange: () => undefined,\n provider: input.provider\n }\n ),\n kind: \"component\",\n revision\n };\n },\n resolvePopupItem: ({ externalNodeState }) => {\n const title = resolveAgentGuiWorkbenchDockPopupTitle(externalNodeState);\n return {\n revision: `${input.provider}\\n${title ?? \"\"}`,\n title\n };\n },\n sectionId: input.sectionId,\n typeId: agentGuiWorkbenchTypeId,\n visibility: input.visibility\n };\n}\n\nfunction resolveAgentGuiWorkbenchDockPopupTitle(state: unknown): string | null {\n const title = (state as Partial<AgentGuiWorkbenchState> | null)\n ?.lastActiveConversationTitle;\n return typeof title === \"string\" && title.trim() ? title.trim() : null;\n}\n\nfunction createAgentGuiWorkbenchPreviewBodyContext(\n input: WorkbenchHostDockPopupItemInput\n): WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown> {\n return {\n activation: null,\n displayMode: input.node.displayMode,\n externalNodeState: input.externalNodeState as AgentGuiWorkbenchState | null,\n externalWorkspaceState: input.externalWorkspaceState,\n focus: () => undefined,\n host: input.host,\n instanceId: input.node.data.instanceId,\n instanceKey: input.node.data.instanceKey ?? null,\n isFocused: false,\n node: input.node,\n setNodeRuntimeState: () => undefined,\n setSnapshotNodeState: () => undefined\n };\n}\n","import { createElement, type HTMLAttributes, type ReactNode } from \"react\";\nimport { Button, PanelIcon, cn } from \"@tutti-os/ui-system\";\n\nexport interface AgentGuiWorkbenchHeaderCopy {\n collapseConversationRail: string;\n expandConversationRail: string;\n fallbackAgentLabel: string;\n}\n\nexport interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {\n copy: AgentGuiWorkbenchHeaderCopy;\n defaultActions?: ReactNode;\n isConversationRailAutoCollapsed: boolean;\n isConversationRailCollapsed: boolean;\n onToggleConversationRail: (nextCollapsed: boolean) => void;\n title?: string;\n}\n\nexport function AgentGuiWorkbenchHeader({\n className,\n copy,\n defaultActions,\n isConversationRailAutoCollapsed,\n isConversationRailCollapsed,\n onToggleConversationRail,\n title,\n ...headerProps\n}: AgentGuiWorkbenchHeaderProps): ReactNode {\n const toggleLabel = isConversationRailCollapsed\n ? copy.expandConversationRail\n : copy.collapseConversationRail;\n\n return createElement(\n \"header\",\n {\n ...headerProps,\n className: cn(\n \"flex h-full min-h-0 items-center justify-between gap-3 bg-[var(--background-panel)] px-2 pl-3\",\n className\n )\n },\n createElement(\n \"div\",\n { className: \"flex min-w-0 items-center gap-2\" },\n createElement(\n \"span\",\n {\n className:\n \"min-w-0 truncate text-[13px] font-semibold leading-5 text-[var(--text-primary)]\"\n },\n title?.trim() || copy.fallbackAgentLabel\n ),\n createElement(\n Button as never,\n {\n \"aria-label\": toggleLabel,\n className: \"cursor-pointer rounded-md\",\n \"data-agent-gui-conversation-rail-auto-collapsed\":\n isConversationRailAutoCollapsed ? \"true\" : undefined,\n \"data-agent-gui-conversation-rail-collapsed\":\n isConversationRailCollapsed ? \"true\" : undefined,\n \"data-testid\": \"agent-gui-toggle-conversation-rail\",\n size: \"icon-sm\",\n title: toggleLabel,\n type: \"button\",\n variant: \"ghost\",\n onClick: (event) => {\n event.stopPropagation();\n onToggleConversationRail(!isConversationRailCollapsed);\n },\n onDoubleClick: (event) => event.stopPropagation(),\n onPointerDown: (event) => event.stopPropagation()\n },\n createElement(PanelIcon, { className: \"size-[18px]\" })\n )\n ),\n createElement(\n \"div\",\n {\n className: \"flex flex-none items-center gap-1\",\n onDoubleClick: (event) => event.stopPropagation(),\n onPointerDown: (event) => event.stopPropagation()\n },\n defaultActions\n )\n );\n}\n"],"mappings":"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","names":["createElement","createElement"]}
|