@tutti-os/agent-gui 0.0.40 → 0.0.41
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/{AgentMessageMarkdown-GDgLA-im.d.ts → AgentMessageMarkdown-Cts0dAIm.d.ts} +1 -0
- package/dist/agent-conversation/index.d.ts +1 -1
- package/dist/agent-conversation/index.js +4 -4
- package/dist/agent-message-center/index.js +6 -6
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/app/renderer/agentactivity.css +298 -21
- package/dist/{chunk-UUM2GZXH.js → chunk-3PVSIL3H.js} +4 -4
- package/dist/{chunk-RE3AHBX6.js → chunk-3WZWZHAJ.js} +2 -2
- package/dist/{chunk-Y2DQJPTL.js → chunk-42WP3P5C.js} +2 -2
- package/dist/{chunk-Y5SE2XMU.js → chunk-5LVFYNIP.js} +5 -2
- package/dist/{chunk-Y5SE2XMU.js.map → chunk-5LVFYNIP.js.map} +1 -1
- package/dist/{chunk-EQ4RSPQE.js → chunk-5U4SXENC.js} +4 -4
- package/dist/{chunk-WJPEKD3F.js → chunk-LKOPLDPM.js} +5 -1
- package/dist/chunk-LKOPLDPM.js.map +1 -0
- package/dist/{chunk-DO7D7OOL.js → chunk-MUJYJDZH.js} +11 -10
- package/dist/chunk-MUJYJDZH.js.map +1 -0
- package/dist/{chunk-WC34LVH6.js → chunk-OLZP2EFK.js} +230 -45
- package/dist/chunk-OLZP2EFK.js.map +1 -0
- package/dist/{chunk-R7XH3C4Y.js → chunk-QIPMH6XO.js} +135 -35
- package/dist/chunk-QIPMH6XO.js.map +1 -0
- package/dist/context-mention-palette/index.js +5 -5
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.js +136 -102
- package/dist/index.js.map +1 -1
- package/dist/workbench/contribution.d.ts +4 -0
- package/dist/workbench/contribution.js +1 -1
- package/dist/workbench/index.d.ts +10 -3
- package/dist/workbench/index.js +1 -1
- package/dist/workspace-agent-generated-files.js +2 -2
- package/package.json +12 -12
- package/dist/chunk-DO7D7OOL.js.map +0 -1
- package/dist/chunk-R7XH3C4Y.js.map +0 -1
- package/dist/chunk-WC34LVH6.js.map +0 -1
- package/dist/chunk-WJPEKD3F.js.map +0 -1
- /package/dist/{chunk-UUM2GZXH.js.map → chunk-3PVSIL3H.js.map} +0 -0
- /package/dist/{chunk-RE3AHBX6.js.map → chunk-3WZWZHAJ.js.map} +0 -0
- /package/dist/{chunk-Y2DQJPTL.js.map → chunk-42WP3P5C.js.map} +0 -0
- /package/dist/{chunk-EQ4RSPQE.js.map → chunk-5U4SXENC.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
AgentInteractivePromptSurface,
|
|
24
24
|
approvalOptionDisplayLabel,
|
|
25
25
|
formatAgentSessionMentionText
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-3PVSIL3H.js";
|
|
27
27
|
import {
|
|
28
28
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
29
29
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
@@ -47,14 +47,13 @@ import {
|
|
|
47
47
|
skillDescriptionForDisplay,
|
|
48
48
|
skillTriggerForPrefix,
|
|
49
49
|
useProjectedAgentConversation
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-MUJYJDZH.js";
|
|
51
51
|
import {
|
|
52
52
|
AgentMessageMarkdown,
|
|
53
|
-
ConversationImageContextMenu,
|
|
54
53
|
ZoomableImage,
|
|
55
54
|
cn,
|
|
56
55
|
resolveWorkspaceLinkAction
|
|
57
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-OLZP2EFK.js";
|
|
58
57
|
import {
|
|
59
58
|
AGENT_MENTION_FILTER_TAB_ORDER,
|
|
60
59
|
AgentFileMentionPalette,
|
|
@@ -62,7 +61,7 @@ import {
|
|
|
62
61
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
63
62
|
agentMentionItemKey,
|
|
64
63
|
preloadAgentMentionBrowse
|
|
65
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-5U4SXENC.js";
|
|
66
65
|
import {
|
|
67
66
|
WORKSPACE_AGENT_ACTIVITY_RUNTIME_SESSION_ORIGIN,
|
|
68
67
|
buildWorkspaceAgentActivityListViewModel,
|
|
@@ -72,13 +71,13 @@ import {
|
|
|
72
71
|
isWorkspaceAgentUntitledTask,
|
|
73
72
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
74
73
|
selectWorkspaceAgentActivityOverlayMessages
|
|
75
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-5LVFYNIP.js";
|
|
76
75
|
import {
|
|
77
76
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
78
77
|
MANAGED_AGENT_ICON_URLS,
|
|
79
78
|
Spinner,
|
|
80
79
|
normalizeManagedAgentProvider
|
|
81
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-42WP3P5C.js";
|
|
82
81
|
import "./chunk-MTFSQWZ6.js";
|
|
83
82
|
import {
|
|
84
83
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
@@ -89,7 +88,7 @@ import {
|
|
|
89
88
|
mentionItemToAttrs,
|
|
90
89
|
normalizeAgentSessionMentionTitle,
|
|
91
90
|
parseMentionItemFromHref
|
|
92
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-3WZWZHAJ.js";
|
|
93
92
|
import "./chunk-Y35GDLP2.js";
|
|
94
93
|
import {
|
|
95
94
|
AgentActivityHostProvider,
|
|
@@ -118,7 +117,7 @@ import {
|
|
|
118
117
|
getActiveUiLanguage,
|
|
119
118
|
translate,
|
|
120
119
|
useTranslation
|
|
121
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-LKOPLDPM.js";
|
|
122
121
|
import "./chunk-LUGELG5V.js";
|
|
123
122
|
import "./chunk-PJP5BUU6.js";
|
|
124
123
|
|
|
@@ -2075,6 +2074,7 @@ function WorkspaceNodeWindow({
|
|
|
2075
2074
|
const resolvedStyle = sizeStyle ?? style;
|
|
2076
2075
|
const renderedChildren = typeof children === "function" ? children(renderedFrame) : children;
|
|
2077
2076
|
const rootStyle = appearance === "embedded" ? {
|
|
2077
|
+
"--node-header-padding-x": "16px",
|
|
2078
2078
|
...resolvedStyle,
|
|
2079
2079
|
width: "100%",
|
|
2080
2080
|
height: "100%",
|
|
@@ -2085,6 +2085,7 @@ function WorkspaceNodeWindow({
|
|
|
2085
2085
|
backdropFilter: "none",
|
|
2086
2086
|
WebkitBackdropFilter: "none"
|
|
2087
2087
|
} : {
|
|
2088
|
+
"--node-header-padding-x": "16px",
|
|
2088
2089
|
...resolvedStyle,
|
|
2089
2090
|
background: "transparent",
|
|
2090
2091
|
border: "1px solid var(--node-window-border)",
|
|
@@ -2140,7 +2141,7 @@ function WorkspaceNodeWindow({
|
|
|
2140
2141
|
/* @__PURE__ */ jsxs3(
|
|
2141
2142
|
"div",
|
|
2142
2143
|
{
|
|
2143
|
-
className: "workspace-node-window__title flex min-w-0 flex-1 items-center gap-
|
|
2144
|
+
className: "workspace-node-window__title flex min-w-0 max-w-[280px] flex-1 items-center gap-2 text-[13px] leading-[18px] font-semibold text-foreground",
|
|
2144
2145
|
"data-workspace-node-window-title": "true",
|
|
2145
2146
|
title,
|
|
2146
2147
|
children: [
|
|
@@ -2152,7 +2153,7 @@ function WorkspaceNodeWindow({
|
|
|
2152
2153
|
children: titleIcon
|
|
2153
2154
|
}
|
|
2154
2155
|
) : null,
|
|
2155
|
-
/* @__PURE__ */ jsx11("span", { className: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap", children: title }),
|
|
2156
|
+
/* @__PURE__ */ jsx11("span", { className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap", children: title }),
|
|
2156
2157
|
titleAccessory ? /* @__PURE__ */ jsx11(
|
|
2157
2158
|
"span",
|
|
2158
2159
|
{
|
|
@@ -2843,6 +2844,7 @@ function conversationSummaryFromActivity(activity, session, options) {
|
|
|
2843
2844
|
pinnedAtUnixMs: session?.pinnedAtUnixMs ?? null,
|
|
2844
2845
|
sortTimeUnixMs: activity.sortTimeUnixMs,
|
|
2845
2846
|
updatedAtUnixMs: session?.updatedAtUnixMs || activity.sortTimeUnixMs || 0,
|
|
2847
|
+
...isImportedWorkspaceAgentSession(session) ? { isImported: true } : {},
|
|
2846
2848
|
syncState: session?.syncState
|
|
2847
2849
|
};
|
|
2848
2850
|
}
|
|
@@ -2856,6 +2858,9 @@ function isExternalImportNoProjectSession(session) {
|
|
|
2856
2858
|
const runtimeContext = session && "runtimeContext" in session ? session.runtimeContext : void 0;
|
|
2857
2859
|
return runtimeContext?.externalImportNoProject === true;
|
|
2858
2860
|
}
|
|
2861
|
+
function isImportedWorkspaceAgentSession(session) {
|
|
2862
|
+
return session?.runtimeContext?.imported === true;
|
|
2863
|
+
}
|
|
2859
2864
|
function isSameAgentGUIConversationProject(left, right) {
|
|
2860
2865
|
if (!left && !right) {
|
|
2861
2866
|
return true;
|
|
@@ -3517,7 +3522,7 @@ function projectWorkspaceAgentMessagesToTimelineItems(messages) {
|
|
|
3517
3522
|
const seq = index + 1;
|
|
3518
3523
|
const eventId = message.messageId.trim() || `message:${id}`;
|
|
3519
3524
|
const turnId = message.turnId?.trim() || void 0;
|
|
3520
|
-
const occurredAtUnixMs = message
|
|
3525
|
+
const occurredAtUnixMs = messageDisplayOrderTime(message);
|
|
3521
3526
|
if (kind === "tool_call") {
|
|
3522
3527
|
const callId = firstNonEmptyString(
|
|
3523
3528
|
messagePayloadString(message, "callId"),
|
|
@@ -3691,7 +3696,7 @@ function workspaceTimelineFields(workspaceId) {
|
|
|
3691
3696
|
};
|
|
3692
3697
|
}
|
|
3693
3698
|
function compareMessagesByDisplayOrder(left, right) {
|
|
3694
|
-
return
|
|
3699
|
+
return messageDisplayOrderTime(left) - messageDisplayOrderTime(right) || normalizedPositiveNumber(left.version) - normalizedPositiveNumber(right.version) || normalizedPositiveNumber(left.id) - normalizedPositiveNumber(right.id) || (left.version ?? 0) - (right.version ?? 0) || left.messageId.localeCompare(right.messageId);
|
|
3695
3700
|
}
|
|
3696
3701
|
function normalizedMessageId(id, index) {
|
|
3697
3702
|
const normalizedId = typeof id === "number" ? id : 0;
|
|
@@ -3700,8 +3705,8 @@ function normalizedMessageId(id, index) {
|
|
|
3700
3705
|
function normalizedPositiveNumber(value) {
|
|
3701
3706
|
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : 0;
|
|
3702
3707
|
}
|
|
3703
|
-
function
|
|
3704
|
-
return normalizedPositiveNumber(message.
|
|
3708
|
+
function messageDisplayOrderTime(message) {
|
|
3709
|
+
return normalizedPositiveNumber(message.startedAtUnixMs) || normalizedPositiveNumber(message.occurredAtUnixMs) || normalizedPositiveNumber(message.completedAtUnixMs);
|
|
3705
3710
|
}
|
|
3706
3711
|
function toolCallItemType(status) {
|
|
3707
3712
|
switch (normalizeToken(status)) {
|
|
@@ -3832,7 +3837,30 @@ import {
|
|
|
3832
3837
|
mergeAgentActivityMessages
|
|
3833
3838
|
} from "@tutti-os/agent-activity-core";
|
|
3834
3839
|
function mergeWorkspaceAgentMessages(previous, incoming) {
|
|
3835
|
-
|
|
3840
|
+
const previousDurableMessages = previous.filter(
|
|
3841
|
+
(message) => !isWorkspaceAgentActivityOptimisticMessage(message)
|
|
3842
|
+
);
|
|
3843
|
+
const incomingDurableMessages = incoming.filter(
|
|
3844
|
+
(message) => !isWorkspaceAgentActivityOptimisticMessage(message)
|
|
3845
|
+
);
|
|
3846
|
+
const durableMessages = mergeAgentActivityMessages(
|
|
3847
|
+
previousDurableMessages,
|
|
3848
|
+
incomingDurableMessages
|
|
3849
|
+
);
|
|
3850
|
+
const previousOptimisticMessages = previous.filter(
|
|
3851
|
+
isWorkspaceAgentActivityOptimisticMessage
|
|
3852
|
+
);
|
|
3853
|
+
const incomingOptimisticMessages = incoming.filter(
|
|
3854
|
+
isWorkspaceAgentActivityOptimisticMessage
|
|
3855
|
+
);
|
|
3856
|
+
const localMessages = mergeAgentActivityMessages(
|
|
3857
|
+
previousOptimisticMessages,
|
|
3858
|
+
incomingOptimisticMessages
|
|
3859
|
+
);
|
|
3860
|
+
return mergeWorkspaceAgentActivityDurableAndOverlayMessages({
|
|
3861
|
+
durableMessages,
|
|
3862
|
+
localMessages
|
|
3863
|
+
});
|
|
3836
3864
|
}
|
|
3837
3865
|
|
|
3838
3866
|
// host/agentHostAccountStore.ts
|
|
@@ -4115,7 +4143,6 @@ function subscribeCoalesced(type, options, callback) {
|
|
|
4115
4143
|
|
|
4116
4144
|
// contexts/workspace/presentation/renderer/agentSessions/agentSessionViewStore.ts
|
|
4117
4145
|
import { useSyncExternalStore } from "react";
|
|
4118
|
-
import { mergeAgentActivityMessages as mergeAgentActivityMessages2 } from "@tutti-os/agent-activity-core";
|
|
4119
4146
|
var STREAM_LINGER_MS = 15e3;
|
|
4120
4147
|
var EMPTY_AGENT_SESSION_VIEW_STORE_SNAPSHOT = {
|
|
4121
4148
|
sessionViewsBySessionKey: {}
|
|
@@ -4710,7 +4737,7 @@ function createEmptySessionView(ref) {
|
|
|
4710
4737
|
};
|
|
4711
4738
|
}
|
|
4712
4739
|
function mergeMessages(left, right) {
|
|
4713
|
-
return
|
|
4740
|
+
return mergeWorkspaceAgentMessages(left, right);
|
|
4714
4741
|
}
|
|
4715
4742
|
function sameMessages(left, right) {
|
|
4716
4743
|
if (left.length !== right.length) {
|
|
@@ -4840,7 +4867,7 @@ function useWatchAgentSessions(input) {
|
|
|
4840
4867
|
}
|
|
4841
4868
|
|
|
4842
4869
|
// contexts/workspace/presentation/renderer/agentGuiConversationList/agentGuiConversationListStore.ts
|
|
4843
|
-
import { mergeAgentActivityMessages as
|
|
4870
|
+
import { mergeAgentActivityMessages as mergeAgentActivityMessages2 } from "@tutti-os/agent-activity-core";
|
|
4844
4871
|
|
|
4845
4872
|
// contexts/workspace/presentation/renderer/agentGuiConversationList/agentGuiConversationListPendingState.ts
|
|
4846
4873
|
var pendingCreateConversationIdsByQueryKey = /* @__PURE__ */ new Map();
|
|
@@ -5244,6 +5271,7 @@ function mergeLoadedConversation(current, incoming) {
|
|
|
5244
5271
|
const merged = {
|
|
5245
5272
|
...incoming,
|
|
5246
5273
|
...mergeLoadedConversationTitleFields(current, incoming, preferCurrent),
|
|
5274
|
+
...incoming.isImported === true || current?.isImported === true ? { isImported: true } : {},
|
|
5247
5275
|
hasUnreadCompletion: incoming.hasUnreadCompletion || (preferCurrent ? current?.hasUnreadCompletion : false),
|
|
5248
5276
|
unreadCompletionKey: incoming.unreadCompletionKey ?? (preferCurrent ? current?.unreadCompletionKey : null),
|
|
5249
5277
|
pinnedAtUnixMs,
|
|
@@ -5282,7 +5310,7 @@ function areConversationProjectsEqual(left, right) {
|
|
|
5282
5310
|
return left.id === right.id && left.path === right.path && left.label === right.label && left.createdAtUnixMs === right.createdAtUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.lastUsedAtUnixMs === right.lastUsedAtUnixMs;
|
|
5283
5311
|
}
|
|
5284
5312
|
function areConversationsEqual(left, right) {
|
|
5285
|
-
return left.id === right.id && left.userId === right.userId && left.provider === right.provider && left.title === right.title && left.status === right.status && left.cwd === right.cwd && areConversationProjectsEqual(left.project, right.project) && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && (left.pinnedAtUnixMs ?? 0) === (right.pinnedAtUnixMs ?? 0) && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && areConversationTitleFallbacksEqual(
|
|
5313
|
+
return left.id === right.id && left.userId === right.userId && left.provider === right.provider && left.title === right.title && left.status === right.status && left.cwd === right.cwd && areConversationProjectsEqual(left.project, right.project) && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && (left.pinnedAtUnixMs ?? 0) === (right.pinnedAtUnixMs ?? 0) && left.isImported === right.isImported && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && areConversationTitleFallbacksEqual(
|
|
5286
5314
|
left.titleFallback,
|
|
5287
5315
|
right.titleFallback
|
|
5288
5316
|
) && areConversationSyncStatesEqual(left.syncState, right.syncState);
|
|
@@ -5365,6 +5393,9 @@ function describeConversationListChange(previous, next) {
|
|
|
5365
5393
|
"pinnedAtUnixMs"
|
|
5366
5394
|
);
|
|
5367
5395
|
}
|
|
5396
|
+
if (left.isImported !== right.isImported) {
|
|
5397
|
+
addChangedConversationField(fields, changedIds, right.id, "isImported");
|
|
5398
|
+
}
|
|
5368
5399
|
if (left.hasUnreadCompletion !== right.hasUnreadCompletion) {
|
|
5369
5400
|
addChangedConversationField(
|
|
5370
5401
|
fields,
|
|
@@ -5558,7 +5589,7 @@ function nonEmptySessionMessagesById(durableMessagesBySessionId, sessionViewData
|
|
|
5558
5589
|
function mergeSessionMessagesById(left, right) {
|
|
5559
5590
|
const next = { ...left };
|
|
5560
5591
|
for (const [agentSessionId, messages] of Object.entries(right)) {
|
|
5561
|
-
next[agentSessionId] =
|
|
5592
|
+
next[agentSessionId] = mergeAgentActivityMessages2(
|
|
5562
5593
|
next[agentSessionId] ?? [],
|
|
5563
5594
|
messages
|
|
5564
5595
|
);
|
|
@@ -5637,7 +5668,7 @@ function decorateConversationForRefresh(input) {
|
|
|
5637
5668
|
messages: input.mergedMessages
|
|
5638
5669
|
});
|
|
5639
5670
|
const hasUnreadCompletion = Boolean(
|
|
5640
|
-
completionKey && !isCompletedRead(input.readState, completionKey) && !hasActiveConversationOwner(input.queryKey, input.conversation.id)
|
|
5671
|
+
completionKey && input.conversation.isImported !== true && !isCompletedRead(input.readState, completionKey) && !hasActiveConversationOwner(input.queryKey, input.conversation.id)
|
|
5641
5672
|
);
|
|
5642
5673
|
const nextConversation = {
|
|
5643
5674
|
...input.conversation,
|
|
@@ -6047,7 +6078,7 @@ function markAgentGUIConversationCompletionObserved(input) {
|
|
|
6047
6078
|
updateCompletedReadState(queryState, completionKey);
|
|
6048
6079
|
}
|
|
6049
6080
|
const canShowCompletion = conversation.status === "completed" || input.allowReadyStatus === true;
|
|
6050
|
-
const hasUnreadCompletion = canShowCompletion && shouldMarkUnread && !isCompletedRead(
|
|
6081
|
+
const hasUnreadCompletion = canShowCompletion && conversation.isImported !== true && shouldMarkUnread && !isCompletedRead(
|
|
6051
6082
|
readStateByQueryKey.get(queryState.queryKey) ?? emptyWorkspaceAgentReadState(),
|
|
6052
6083
|
completionKey
|
|
6053
6084
|
);
|
|
@@ -6655,6 +6686,22 @@ var AGENT_PROVIDER_SESSION_NOT_FOUND_FALLBACK_MESSAGE = "The previous agent sess
|
|
|
6655
6686
|
var AGENT_RESUME_SESSION_NOT_LOCAL_FALLBACK_MESSAGE = "The previous agent session is not available on this machine.";
|
|
6656
6687
|
var AGENT_GUI_CAUGHT_ERROR_STACK_LIMIT = 4e3;
|
|
6657
6688
|
var SELECTED_SESSION_NOT_FOUND_RETRY_DELAY_MS = 150;
|
|
6689
|
+
function composerDefaultsFromSettings(settings) {
|
|
6690
|
+
const defaults = {};
|
|
6691
|
+
const model = normalizeOptionalText2(settings.model);
|
|
6692
|
+
const permissionModeId = normalizeOptionalText2(settings.permissionModeId);
|
|
6693
|
+
const reasoningEffort = normalizeOptionalText2(settings.reasoningEffort);
|
|
6694
|
+
if (model) {
|
|
6695
|
+
defaults.model = model;
|
|
6696
|
+
}
|
|
6697
|
+
if (permissionModeId) {
|
|
6698
|
+
defaults.permissionModeId = permissionModeId;
|
|
6699
|
+
}
|
|
6700
|
+
if (reasoningEffort) {
|
|
6701
|
+
defaults.reasoningEffort = reasoningEffort;
|
|
6702
|
+
}
|
|
6703
|
+
return Object.keys(defaults).length > 0 ? defaults : null;
|
|
6704
|
+
}
|
|
6658
6705
|
function reportAgentGUIRuntimeError(input) {
|
|
6659
6706
|
const reportDiagnostic = input.runtime.reportDiagnostic;
|
|
6660
6707
|
if (!reportDiagnostic) {
|
|
@@ -7329,7 +7376,7 @@ function conversationSummariesRenderEqual(left, right) {
|
|
|
7329
7376
|
return left.id === right.id && left.userId === right.userId && left.provider === right.provider && left.title === right.title && conversationTitleFallbacksRenderEqual(
|
|
7330
7377
|
left.titleFallback,
|
|
7331
7378
|
right.titleFallback
|
|
7332
|
-
) && left.status === right.status && left.cwd === right.cwd && left.pinnedAtUnixMs === right.pinnedAtUnixMs && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && conversationProjectsRenderEqual(left.project, right.project) && conversationSyncStatesEqual(left.syncState, right.syncState);
|
|
7379
|
+
) && left.status === right.status && left.cwd === right.cwd && left.pinnedAtUnixMs === right.pinnedAtUnixMs && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.isImported === right.isImported && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && conversationProjectsRenderEqual(left.project, right.project) && conversationSyncStatesEqual(left.syncState, right.syncState);
|
|
7333
7380
|
}
|
|
7334
7381
|
function conversationTitleFallbacksRenderEqual(left, right) {
|
|
7335
7382
|
return left === right || JSON.stringify(left ?? null) === JSON.stringify(right ?? null);
|
|
@@ -8488,6 +8535,7 @@ function useAgentGUINodeController({
|
|
|
8488
8535
|
prefillPromptRequest = null,
|
|
8489
8536
|
previewMode = false,
|
|
8490
8537
|
onDataChange,
|
|
8538
|
+
onRememberComposerDefaults,
|
|
8491
8539
|
onShowMessage
|
|
8492
8540
|
}) {
|
|
8493
8541
|
const agentActivityRuntime = useAgentActivityRuntime();
|
|
@@ -8879,6 +8927,7 @@ function useAgentGUINodeController({
|
|
|
8879
8927
|
selectedProviderTargetIsExplicitRef.current = selectedProviderTargetIsExplicit;
|
|
8880
8928
|
const draftSettingsBySessionIdRef = useRef4(draftSettingsBySessionId);
|
|
8881
8929
|
const onDataChangeRef = useRef4(onDataChange);
|
|
8930
|
+
const onRememberComposerDefaultsRef = useRef4(onRememberComposerDefaults);
|
|
8882
8931
|
const onShowMessageRef = useRef4(onShowMessage);
|
|
8883
8932
|
const handledPrefillPromptSequenceRef = useRef4(null);
|
|
8884
8933
|
const pendingAutoSubmitPromptRef = useRef4(null);
|
|
@@ -9151,6 +9200,9 @@ function useAgentGUINodeController({
|
|
|
9151
9200
|
useEffect4(() => {
|
|
9152
9201
|
onDataChangeRef.current = onDataChange;
|
|
9153
9202
|
}, [onDataChange]);
|
|
9203
|
+
useEffect4(() => {
|
|
9204
|
+
onRememberComposerDefaultsRef.current = onRememberComposerDefaults;
|
|
9205
|
+
}, [onRememberComposerDefaults]);
|
|
9154
9206
|
useEffect4(() => {
|
|
9155
9207
|
onShowMessageRef.current = onShowMessage;
|
|
9156
9208
|
}, [onShowMessage]);
|
|
@@ -10591,20 +10643,30 @@ function useAgentGUINodeController({
|
|
|
10591
10643
|
}
|
|
10592
10644
|
const currentMessages = getAgentSessionView(sessionViewRef(agentSessionId))?.overlayMessages ?? [];
|
|
10593
10645
|
const currentDetailMessages = getAgentSessionView(sessionViewRef(agentSessionId))?.detailMessages ?? [];
|
|
10646
|
+
const currentDurableDetailMessages = currentDetailMessages.filter(
|
|
10647
|
+
(message) => !isWorkspaceAgentActivityOptimisticMessage(message)
|
|
10648
|
+
);
|
|
10649
|
+
const detailWindowScopeMessages = currentMessages.length > 0 ? mergeWorkspaceAgentMessages(
|
|
10650
|
+
currentDurableDetailMessages,
|
|
10651
|
+
currentMessages
|
|
10652
|
+
) : currentDurableDetailMessages;
|
|
10594
10653
|
const durableSnapshotMessages = agentActivitySnapshot.sessionMessagesById[agentSessionId] ?? [];
|
|
10595
10654
|
const detailWindowMessages = filterMessagesForDetailWindowOverlay({
|
|
10596
|
-
detailMessages:
|
|
10655
|
+
detailMessages: detailWindowScopeMessages,
|
|
10597
10656
|
durableMessages: durableSnapshotMessages,
|
|
10598
10657
|
localMessages: nextMessages
|
|
10599
10658
|
});
|
|
10600
|
-
const
|
|
10601
|
-
|
|
10602
|
-
|
|
10603
|
-
|
|
10604
|
-
|
|
10659
|
+
const durableDetailWindowMessages = detailWindowMessages.filter(
|
|
10660
|
+
(message) => !isWorkspaceAgentActivityOptimisticMessage(message)
|
|
10661
|
+
);
|
|
10662
|
+
const nextDetailMessages = durableDetailWindowMessages.length > 0 ? mergeWorkspaceAgentMessages(
|
|
10663
|
+
currentDurableDetailMessages,
|
|
10664
|
+
durableDetailWindowMessages
|
|
10665
|
+
) : currentDurableDetailMessages;
|
|
10666
|
+
if (durableDetailWindowMessages.length > 0) {
|
|
10605
10667
|
mergeAgentSessionViewDetailMessages(
|
|
10606
10668
|
sessionViewRef(agentSessionId),
|
|
10607
|
-
|
|
10669
|
+
durableDetailWindowMessages
|
|
10608
10670
|
);
|
|
10609
10671
|
}
|
|
10610
10672
|
const durableMessages = nextDetailMessages.length > 0 ? nextDetailMessages : durableSnapshotMessages;
|
|
@@ -11132,9 +11194,6 @@ function useAgentGUINodeController({
|
|
|
11132
11194
|
content: [...normalizedInitialContent],
|
|
11133
11195
|
occurredAtUnixMs: createdAtUnixMs
|
|
11134
11196
|
});
|
|
11135
|
-
mergeAgentSessionViewDetailMessages(sessionViewRef(agentSessionId), [
|
|
11136
|
-
optimisticPromptMessage
|
|
11137
|
-
]);
|
|
11138
11197
|
mergeAgentSessionViewOverlayMessages(sessionViewRef(agentSessionId), [
|
|
11139
11198
|
optimisticPromptMessage
|
|
11140
11199
|
]);
|
|
@@ -12370,17 +12429,7 @@ function useAgentGUINodeController({
|
|
|
12370
12429
|
}, []);
|
|
12371
12430
|
const flushQueuedComposerSettingsUpdate = useCallback4(
|
|
12372
12431
|
(input) => {
|
|
12373
|
-
const { agentSessionId,
|
|
12374
|
-
const persistNodeDefaults = () => {
|
|
12375
|
-
const defaultDraftKey = nodeDefaultDraftKey(dataRef.current.provider);
|
|
12376
|
-
setDraftSettingsBySessionId((current) => ({
|
|
12377
|
-
...current,
|
|
12378
|
-
[defaultDraftKey]: nextNodeDefaults
|
|
12379
|
-
}));
|
|
12380
|
-
onDataChangeRef.current(
|
|
12381
|
-
(current) => nodeDataFromComposerSettings(current, nextNodeDefaults)
|
|
12382
|
-
);
|
|
12383
|
-
};
|
|
12432
|
+
const { agentSessionId, sessionSettingsPatch } = input;
|
|
12384
12433
|
void agentActivityRuntime.updateSessionSettings({
|
|
12385
12434
|
workspaceId,
|
|
12386
12435
|
agentSessionId,
|
|
@@ -12409,7 +12458,6 @@ function useAgentGUINodeController({
|
|
|
12409
12458
|
} : existing
|
|
12410
12459
|
);
|
|
12411
12460
|
if (queuedUpdate === null) {
|
|
12412
|
-
persistNodeDefaults();
|
|
12413
12461
|
if (sessionSettingsPatch.model !== void 0 && dataRef.current.provider === "claude-code") {
|
|
12414
12462
|
void loadSessionState(agentSessionId, {
|
|
12415
12463
|
source: "settings-update",
|
|
@@ -12444,8 +12492,7 @@ function useAgentGUINodeController({
|
|
|
12444
12492
|
delete queuedComposerSettingsUpdatesRef.current[agentSessionId];
|
|
12445
12493
|
flushQueuedComposerSettingsUpdate({
|
|
12446
12494
|
agentSessionId,
|
|
12447
|
-
sessionSettingsPatch: queuedUpdate.sessionSettingsPatch
|
|
12448
|
-
nextNodeDefaults: queuedUpdate.nextNodeDefaults
|
|
12495
|
+
sessionSettingsPatch: queuedUpdate.sessionSettingsPatch
|
|
12449
12496
|
});
|
|
12450
12497
|
return;
|
|
12451
12498
|
}
|
|
@@ -12495,6 +12542,10 @@ function useAgentGUINodeController({
|
|
|
12495
12542
|
onDataChangeRef.current(
|
|
12496
12543
|
(current) => nodeDataFromComposerSettings(current, merged)
|
|
12497
12544
|
);
|
|
12545
|
+
void onRememberComposerDefaultsRef.current?.({
|
|
12546
|
+
provider: dataRef.current.provider,
|
|
12547
|
+
defaults: composerDefaultsFromSettings(merged)
|
|
12548
|
+
});
|
|
12498
12549
|
void agentActivityRuntime.trackDraftComposerSettingsChange?.({
|
|
12499
12550
|
workspaceId,
|
|
12500
12551
|
provider: dataRef.current.provider,
|
|
@@ -12510,43 +12561,7 @@ function useAgentGUINodeController({
|
|
|
12510
12561
|
const sessionSettings2 = cloneComposerSettings(
|
|
12511
12562
|
activeSessionState2?.settings ?? null
|
|
12512
12563
|
);
|
|
12513
|
-
const
|
|
12514
|
-
data: dataRef.current,
|
|
12515
|
-
defaultReasoningEffort,
|
|
12516
|
-
drafts: draftSettingsBySessionIdRef.current
|
|
12517
|
-
});
|
|
12518
|
-
const baseDefaultsFromSession = {
|
|
12519
|
-
...currentDefaults,
|
|
12520
|
-
model: sessionSettings2?.model ?? currentDefaults.model,
|
|
12521
|
-
reasoningEffort: sessionSettings2?.reasoningEffort ?? currentDefaults.reasoningEffort,
|
|
12522
|
-
speed: sessionSettings2?.speed ?? currentDefaults.speed,
|
|
12523
|
-
planMode: sessionSettings2?.planMode ?? currentDefaults.planMode,
|
|
12524
|
-
browserUse: sessionSettings2?.browserUse ?? currentDefaults.browserUse,
|
|
12525
|
-
computerUse: sessionSettings2?.computerUse ?? currentDefaults.computerUse,
|
|
12526
|
-
permissionModeId: sessionSettings2?.permissionModeId ?? currentDefaults.permissionModeId
|
|
12527
|
-
};
|
|
12528
|
-
const nextNodeDefaults = {
|
|
12529
|
-
...baseDefaultsFromSession,
|
|
12530
|
-
model: supportedNextSettings.model !== void 0 ? supportedNextSettings.model : baseDefaultsFromSession.model,
|
|
12531
|
-
reasoningEffort: supportedNextSettings.reasoningEffort !== void 0 ? supportedNextSettings.reasoningEffort : baseDefaultsFromSession.reasoningEffort,
|
|
12532
|
-
speed: supportedNextSettings.speed !== void 0 ? supportedNextSettings.speed : baseDefaultsFromSession.speed,
|
|
12533
|
-
planMode: supportedNextSettings.planMode ?? baseDefaultsFromSession.planMode,
|
|
12534
|
-
browserUse: supportedNextSettings.browserUse ?? baseDefaultsFromSession.browserUse,
|
|
12535
|
-
permissionModeId: supportedNextSettings.permissionModeId !== void 0 ? supportedNextSettings.permissionModeId : baseDefaultsFromSession.permissionModeId
|
|
12536
|
-
};
|
|
12537
|
-
const persistNodeDefaults = () => {
|
|
12538
|
-
const defaultDraftKey = nodeDefaultDraftKey(dataRef.current.provider);
|
|
12539
|
-
setDraftSettingsBySessionId((current) => ({
|
|
12540
|
-
...current,
|
|
12541
|
-
[defaultDraftKey]: nextNodeDefaults
|
|
12542
|
-
}));
|
|
12543
|
-
onDataChangeRef.current(
|
|
12544
|
-
(current) => nodeDataFromComposerSettings(current, nextNodeDefaults)
|
|
12545
|
-
);
|
|
12546
|
-
};
|
|
12547
|
-
const nextPermission = normalizeOptionalText2(
|
|
12548
|
-
nextSettings.permissionModeId ?? sessionSettings2?.permissionModeId ?? currentDefaults.permissionModeId
|
|
12549
|
-
);
|
|
12564
|
+
const nextPermission = supportedNextSettings.permissionModeId !== void 0 ? normalizeOptionalText2(supportedNextSettings.permissionModeId) : void 0;
|
|
12550
12565
|
const currentPermission = normalizeOptionalText2(
|
|
12551
12566
|
sessionSettings2?.permissionModeId
|
|
12552
12567
|
);
|
|
@@ -12581,11 +12596,10 @@ function useAgentGUINodeController({
|
|
|
12581
12596
|
if (nextComputerUse !== void 0 && nextComputerUse !== currentComputerUse) {
|
|
12582
12597
|
sessionSettingsPatch.computerUse = nextComputerUse;
|
|
12583
12598
|
}
|
|
12584
|
-
if (nextPermission && nextPermission !== currentPermission && activeSessionState2 !== null) {
|
|
12599
|
+
if (nextPermission !== void 0 && nextPermission && nextPermission !== currentPermission && activeSessionState2 !== null) {
|
|
12585
12600
|
sessionSettingsPatch.permissionModeId = normalizePermissionModeId(nextPermission);
|
|
12586
12601
|
}
|
|
12587
12602
|
if (Object.keys(sessionSettingsPatch).length > 0 && activeSessionState2 !== null) {
|
|
12588
|
-
persistNodeDefaults();
|
|
12589
12603
|
updateAgentSessionViewControlState(
|
|
12590
12604
|
sessionViewRef(agentSessionId),
|
|
12591
12605
|
(existing) => existing ? {
|
|
@@ -12608,20 +12622,17 @@ function useAgentGUINodeController({
|
|
|
12608
12622
|
sessionSettingsPatch: {
|
|
12609
12623
|
...queuedUpdate?.sessionSettingsPatch ?? {},
|
|
12610
12624
|
...sessionSettingsPatch
|
|
12611
|
-
}
|
|
12612
|
-
nextNodeDefaults
|
|
12625
|
+
}
|
|
12613
12626
|
};
|
|
12614
12627
|
} else {
|
|
12615
12628
|
markSessionSettingsRequestState(agentSessionId, true);
|
|
12616
12629
|
flushQueuedComposerSettingsUpdate({
|
|
12617
12630
|
agentSessionId,
|
|
12618
|
-
sessionSettingsPatch
|
|
12619
|
-
nextNodeDefaults
|
|
12631
|
+
sessionSettingsPatch
|
|
12620
12632
|
});
|
|
12621
12633
|
}
|
|
12622
12634
|
return;
|
|
12623
12635
|
}
|
|
12624
|
-
persistNodeDefaults();
|
|
12625
12636
|
},
|
|
12626
12637
|
[
|
|
12627
12638
|
defaultReasoningEffort,
|
|
@@ -16438,9 +16449,7 @@ function AgentQueuedPromptPanel({
|
|
|
16438
16449
|
}
|
|
16439
16450
|
const measure = () => {
|
|
16440
16451
|
const viewportCap = typeof window === "undefined" ? 280 : Math.round(window.innerHeight * 0.38);
|
|
16441
|
-
setExpandedListMaxHeightPx(
|
|
16442
|
-
Math.max(32, Math.min(280, viewportCap, element.scrollHeight))
|
|
16443
|
-
);
|
|
16452
|
+
setExpandedListMaxHeightPx(Math.max(32, Math.min(280, viewportCap)));
|
|
16444
16453
|
};
|
|
16445
16454
|
measure();
|
|
16446
16455
|
const resizeObserver = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
@@ -21192,7 +21201,7 @@ function AgentComposer({
|
|
|
21192
21201
|
className: cn(
|
|
21193
21202
|
AgentGUINode_styles_default.composerMenuTrigger,
|
|
21194
21203
|
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
21195
|
-
"w-auto justify-center
|
|
21204
|
+
"w-auto justify-center text-[var(--agent-gui-text-secondary)] [&_svg]:shrink-0"
|
|
21196
21205
|
),
|
|
21197
21206
|
children: /* @__PURE__ */ jsx27(
|
|
21198
21207
|
AddIcon,
|
|
@@ -21228,7 +21237,7 @@ function AgentComposer({
|
|
|
21228
21237
|
className: cn(
|
|
21229
21238
|
AgentGUINode_styles_default.composerMenuTrigger,
|
|
21230
21239
|
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
21231
|
-
"w-auto justify-center
|
|
21240
|
+
"w-auto justify-center text-[var(--agent-gui-text-secondary)] [&>svg:last-child]:hidden [&_svg]:shrink-0"
|
|
21232
21241
|
),
|
|
21233
21242
|
children: /* @__PURE__ */ jsx27(
|
|
21234
21243
|
AddIcon,
|
|
@@ -21470,13 +21479,14 @@ function AgentComposerDraftImagePreview({
|
|
|
21470
21479
|
"data-upload-error": image.uploadError ? "true" : void 0,
|
|
21471
21480
|
style: previewStyle,
|
|
21472
21481
|
children: [
|
|
21473
|
-
/* @__PURE__ */ jsx27(
|
|
21482
|
+
/* @__PURE__ */ jsx27(
|
|
21474
21483
|
ZoomableImage,
|
|
21475
21484
|
{
|
|
21476
21485
|
src: image.previewUrl,
|
|
21477
21486
|
alt: image.name,
|
|
21478
21487
|
className: "size-full object-contain",
|
|
21479
21488
|
draggable: false,
|
|
21489
|
+
downloadName: image.name || "image.png",
|
|
21480
21490
|
onLoad: (event) => {
|
|
21481
21491
|
const element = event.currentTarget;
|
|
21482
21492
|
const width = element.naturalWidth;
|
|
@@ -21491,7 +21501,7 @@ function AgentComposerDraftImagePreview({
|
|
|
21491
21501
|
setAspectRatio(nextRatio);
|
|
21492
21502
|
}
|
|
21493
21503
|
}
|
|
21494
|
-
)
|
|
21504
|
+
),
|
|
21495
21505
|
image.uploading ? /* @__PURE__ */ jsx27(
|
|
21496
21506
|
"div",
|
|
21497
21507
|
{
|
|
@@ -23911,7 +23921,7 @@ function stabilizeConversationSectionItems(previous, next) {
|
|
|
23911
23921
|
return changed ? stable : previous;
|
|
23912
23922
|
}
|
|
23913
23923
|
function conversationSummariesRenderEqual2(left, right) {
|
|
23914
|
-
return left.id === right.id && left.provider === right.provider && left.title === right.title && left.titleFallback === right.titleFallback && left.status === right.status && left.cwd === right.cwd && left.pinnedAtUnixMs === right.pinnedAtUnixMs && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && conversationProjectsRenderEqual2(left.project, right.project) && conversationSyncStatesRenderEqual(left.syncState, right.syncState);
|
|
23924
|
+
return left.id === right.id && left.provider === right.provider && left.title === right.title && left.titleFallback === right.titleFallback && left.status === right.status && left.cwd === right.cwd && left.pinnedAtUnixMs === right.pinnedAtUnixMs && left.sortTimeUnixMs === right.sortTimeUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.isImported === right.isImported && left.hasUnreadCompletion === right.hasUnreadCompletion && left.unreadCompletionKey === right.unreadCompletionKey && conversationProjectsRenderEqual2(left.project, right.project) && conversationSyncStatesRenderEqual(left.syncState, right.syncState);
|
|
23915
23925
|
}
|
|
23916
23926
|
function conversationSyncStatesRenderEqual(left, right) {
|
|
23917
23927
|
return left === right || (!left || !right ? (left ?? null) === (right ?? null) : left.workspaceId === right.workspaceId && left.agentSessionId === right.agentSessionId && left.status === right.status && left.pendingTimelineItemCount === right.pendingTimelineItemCount && left.pendingStatePatchCount === right.pendingStatePatchCount && left.attemptCount === right.attemptCount && left.failedReportCount === right.failedReportCount && left.lastError === right.lastError && left.lastAttemptAtUnixMs === right.lastAttemptAtUnixMs && left.lastSyncedAtUnixMs === right.lastSyncedAtUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs);
|
|
@@ -25517,7 +25527,7 @@ function composerOverridesByProviderEqual(left, right) {
|
|
|
25517
25527
|
return true;
|
|
25518
25528
|
}
|
|
25519
25529
|
function areAgentGUINodePropsEqual(previous, next) {
|
|
25520
|
-
return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.providerTargets === next.providerTargets && previous.defaultProviderTargetId === next.defaultProviderTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && workspaceAgentProbeRenderStateEqualsForProvider(
|
|
25530
|
+
return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.providerTargets === next.providerTargets && previous.defaultProviderTargetId === next.defaultProviderTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onRememberComposerDefaults === next.onRememberComposerDefaults && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && workspaceAgentProbeRenderStateEqualsForProvider(
|
|
25521
25531
|
previous.workspaceAgentProbes,
|
|
25522
25532
|
next.workspaceAgentProbes,
|
|
25523
25533
|
previous.state.provider
|
|
@@ -25552,6 +25562,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
25552
25562
|
onClose,
|
|
25553
25563
|
onResize,
|
|
25554
25564
|
onUpdateNode,
|
|
25565
|
+
onRememberComposerDefaults,
|
|
25555
25566
|
isMaximized = false,
|
|
25556
25567
|
isActive,
|
|
25557
25568
|
composerFocusRequestSequence = null,
|
|
@@ -25707,8 +25718,31 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
25707
25718
|
defaultProviderTargetId,
|
|
25708
25719
|
previewMode,
|
|
25709
25720
|
onDataChange: handleDataChange,
|
|
25721
|
+
onRememberComposerDefaults,
|
|
25710
25722
|
onShowMessage
|
|
25711
25723
|
});
|
|
25724
|
+
const handleCreateConversation = useCallback13(
|
|
25725
|
+
(...args) => {
|
|
25726
|
+
if (!previewMode) {
|
|
25727
|
+
onUpdateNode(
|
|
25728
|
+
(current) => current.lastActiveAgentSessionId === null && (current.lastActiveConversationTitle ?? null) === null ? current : {
|
|
25729
|
+
...current,
|
|
25730
|
+
lastActiveAgentSessionId: null,
|
|
25731
|
+
lastActiveConversationTitle: null
|
|
25732
|
+
}
|
|
25733
|
+
);
|
|
25734
|
+
}
|
|
25735
|
+
actions.createConversation(...args);
|
|
25736
|
+
},
|
|
25737
|
+
[actions, onUpdateNode, previewMode]
|
|
25738
|
+
);
|
|
25739
|
+
const viewActions = useMemo11(
|
|
25740
|
+
() => ({
|
|
25741
|
+
...actions,
|
|
25742
|
+
createConversation: handleCreateConversation
|
|
25743
|
+
}),
|
|
25744
|
+
[actions, handleCreateConversation]
|
|
25745
|
+
);
|
|
25712
25746
|
const fallbackAgentTitle = t("sidebar.fallbackAgentLabel");
|
|
25713
25747
|
const activeProvider = viewModel.activeConversation?.provider ?? state.provider;
|
|
25714
25748
|
const selectedProviderTargetLabel = viewModel.selectedProviderTarget?.label ?? resolveAgentGUIProviderDisplayLabel(state.provider, fallbackAgentTitle);
|
|
@@ -26289,7 +26323,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26289
26323
|
AgentGUINodeView,
|
|
26290
26324
|
{
|
|
26291
26325
|
viewModel,
|
|
26292
|
-
actions,
|
|
26326
|
+
actions: viewActions,
|
|
26293
26327
|
isActive,
|
|
26294
26328
|
composerFocusRequestSequence,
|
|
26295
26329
|
newConversationRequestSequence,
|