@tutti-os/agent-gui 0.0.46 → 0.0.47
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/{AgentMentionSearchController-D5ks45fN.d.ts → AgentMentionSearchController-CExFPobz.d.ts} +1 -1
- package/dist/AgentMessageMarkdown-DeYPURtF.d.ts +7 -0
- package/dist/agent-conversation/index.d.ts +4 -3
- package/dist/agent-conversation/index.js +8 -8
- package/dist/agent-message-center/index.d.ts +1 -1
- package/dist/agent-message-center/index.js +9 -9
- package/dist/{agentConversationVM-1QgRwvwZ.d.ts → agentConversationVM-BTMtRteS.d.ts} +14 -0
- package/dist/{AgentMessageMarkdown-Cts0dAIm.d.ts → agentGuiNodeTypes-B5Y6yDKy.d.ts} +43 -9
- package/dist/app/renderer/agentactivity.css +92 -9
- package/dist/{chunk-FRG36S6N.js → chunk-2FOBSURO.js} +5 -5
- package/dist/chunk-2FOBSURO.js.map +1 -0
- package/dist/{chunk-AMNXH4DJ.js → chunk-2RYZ4EBF.js} +2 -2
- package/dist/{chunk-EIC7XS3C.js → chunk-5QTC2L52.js} +2 -2
- package/dist/{chunk-ZJ7OSY4T.js → chunk-7NCWSH7U.js} +9 -9
- package/dist/{chunk-ZJ7OSY4T.js.map → chunk-7NCWSH7U.js.map} +1 -1
- package/dist/{chunk-62QOR3TC.js → chunk-HCS3HUUX.js} +5 -5
- package/dist/{chunk-OL54R6OL.js → chunk-J3SJZMI5.js} +2 -2
- package/dist/{chunk-VFQR7AZI.js → chunk-KACBTC7Y.js} +25 -3
- package/dist/chunk-KACBTC7Y.js.map +1 -0
- package/dist/{chunk-FJG2EH4V.js → chunk-KUCWRSXU.js} +2 -2
- package/dist/{chunk-D6IYEVDT.js → chunk-MCH35MAX.js} +2 -2
- package/dist/{chunk-NZ2BGOJU.js → chunk-Q4X6Q4E6.js} +2 -2
- package/dist/{chunk-EU7RWKHE.js → chunk-R6GOICRO.js} +5 -5
- package/dist/chunk-SD56WDSC.js +359 -0
- package/dist/chunk-SD56WDSC.js.map +1 -0
- package/dist/{chunk-TXXWUG2J.js → chunk-VE6JY2TH.js} +2 -1
- package/dist/{chunk-TXXWUG2J.js.map → chunk-VE6JY2TH.js.map} +1 -1
- package/dist/{chunk-QT45WUPQ.js → chunk-XJXSR5XI.js} +244 -21
- package/dist/chunk-XJXSR5XI.js.map +1 -0
- package/dist/{chunk-BAQTM6VS.js → chunk-ZAF4IVUT.js} +848 -102
- package/dist/chunk-ZAF4IVUT.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +3 -3
- package/dist/context-mention-palette/index.js +9 -9
- package/dist/i18n/index.d.ts +24 -2
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +22 -6
- package/dist/index.js +847 -812
- package/dist/index.js.map +1 -1
- package/dist/plan-decision-ops.d.ts +1 -1
- package/dist/queued-prompt-runtime.d.ts +97 -0
- package/dist/queued-prompt-runtime.js +9 -0
- package/dist/queued-prompt-runtime.js.map +1 -0
- package/dist/workbench/contribution.js +3 -3
- package/dist/workbench/index.js +9 -9
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +21 -14
- package/dist/chunk-BAQTM6VS.js.map +0 -1
- package/dist/chunk-FRG36S6N.js.map +0 -1
- package/dist/chunk-QT45WUPQ.js.map +0 -1
- package/dist/chunk-VFQR7AZI.js.map +0 -1
- /package/dist/{chunk-AMNXH4DJ.js.map → chunk-2RYZ4EBF.js.map} +0 -0
- /package/dist/{chunk-EIC7XS3C.js.map → chunk-5QTC2L52.js.map} +0 -0
- /package/dist/{chunk-62QOR3TC.js.map → chunk-HCS3HUUX.js.map} +0 -0
- /package/dist/{chunk-OL54R6OL.js.map → chunk-J3SJZMI5.js.map} +0 -0
- /package/dist/{chunk-FJG2EH4V.js.map → chunk-KUCWRSXU.js.map} +0 -0
- /package/dist/{chunk-D6IYEVDT.js.map → chunk-MCH35MAX.js.map} +0 -0
- /package/dist/{chunk-NZ2BGOJU.js.map → chunk-Q4X6Q4E6.js.map} +0 -0
- /package/dist/{chunk-EU7RWKHE.js.map → chunk-R6GOICRO.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
import {
|
|
23
23
|
AgentInteractivePromptSurface,
|
|
24
24
|
approvalOptionDisplayLabel
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-HCS3HUUX.js";
|
|
26
26
|
import {
|
|
27
27
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
28
28
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
resolveAgentGUIExplicitConversationTitle,
|
|
42
42
|
resolveAgentGUIProviderDisplayLabel,
|
|
43
43
|
resolveAgentGUIProviderIdentity
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-KUCWRSXU.js";
|
|
45
45
|
import {
|
|
46
46
|
AgentConversationFlow,
|
|
47
47
|
Button,
|
|
@@ -49,6 +49,7 @@ import {
|
|
|
49
49
|
buildWorkspaceAgentSessionDetailViewModel,
|
|
50
50
|
createAgentRichTextInputExtensions,
|
|
51
51
|
editorToPromptText,
|
|
52
|
+
getAppErrorCode,
|
|
52
53
|
labelForProviderSkill,
|
|
53
54
|
openAgentEnvPanel,
|
|
54
55
|
plainTextToAgentRichTextDoc,
|
|
@@ -57,14 +58,15 @@ import {
|
|
|
57
58
|
promptForProviderSkills,
|
|
58
59
|
skillDescriptionForDisplay,
|
|
59
60
|
skillTriggerForPrefix,
|
|
61
|
+
toLocalShortDateTime,
|
|
60
62
|
useProjectedAgentConversation
|
|
61
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-ZAF4IVUT.js";
|
|
62
64
|
import {
|
|
63
65
|
AgentMessageMarkdown,
|
|
64
66
|
ZoomableImage,
|
|
65
67
|
cn,
|
|
66
68
|
resolveWorkspaceLinkAction
|
|
67
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-XJXSR5XI.js";
|
|
68
70
|
import {
|
|
69
71
|
AGENT_MENTION_FILTER_TAB_ORDER,
|
|
70
72
|
AgentFileMentionPalette,
|
|
@@ -72,7 +74,7 @@ import {
|
|
|
72
74
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
73
75
|
agentMentionItemKey,
|
|
74
76
|
preloadAgentMentionBrowse
|
|
75
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-7NCWSH7U.js";
|
|
76
78
|
import {
|
|
77
79
|
WORKSPACE_AGENT_ACTIVITY_RUNTIME_SESSION_ORIGIN,
|
|
78
80
|
buildWorkspaceAgentActivityListViewModel,
|
|
@@ -82,13 +84,13 @@ import {
|
|
|
82
84
|
isWorkspaceAgentUntitledTask,
|
|
83
85
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
84
86
|
selectWorkspaceAgentActivityOverlayMessages
|
|
85
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-MCH35MAX.js";
|
|
86
88
|
import {
|
|
87
89
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
88
90
|
MANAGED_AGENT_ICON_URLS,
|
|
89
91
|
Spinner,
|
|
90
92
|
normalizeManagedAgentProvider
|
|
91
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-Q4X6Q4E6.js";
|
|
92
94
|
import {
|
|
93
95
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
94
96
|
} from "./chunk-IBIMGLCD.js";
|
|
@@ -100,8 +102,9 @@ import {
|
|
|
100
102
|
mentionItemToAttrs,
|
|
101
103
|
normalizeAgentSessionMentionTitle,
|
|
102
104
|
parseMentionItemFromHref
|
|
103
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-2FOBSURO.js";
|
|
104
106
|
import "./chunk-Y35GDLP2.js";
|
|
107
|
+
import "./chunk-LUGELG5V.js";
|
|
105
108
|
import {
|
|
106
109
|
AgentActivityHostProvider,
|
|
107
110
|
AgentActivityRuntimeProvider,
|
|
@@ -113,24 +116,26 @@ import {
|
|
|
113
116
|
useAgentActivityRuntime,
|
|
114
117
|
useAgentActivitySnapshot,
|
|
115
118
|
useAgentHostApi,
|
|
116
|
-
useOptionalAgentActivityRuntime
|
|
117
|
-
|
|
119
|
+
useOptionalAgentActivityRuntime,
|
|
120
|
+
useOptionalAgentHostApi
|
|
121
|
+
} from "./chunk-VE6JY2TH.js";
|
|
118
122
|
import "./chunk-TYGL25EL.js";
|
|
123
|
+
import "./chunk-PJP5BUU6.js";
|
|
119
124
|
import {
|
|
120
125
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
121
126
|
} from "./chunk-JM24HADP.js";
|
|
122
127
|
import "./chunk-GCBDIQDX.js";
|
|
128
|
+
import {
|
|
129
|
+
createAgentQueuedPromptRuntime
|
|
130
|
+
} from "./chunk-SD56WDSC.js";
|
|
123
131
|
import {
|
|
124
132
|
AgentGuiI18nProvider,
|
|
125
133
|
agentGuiI18nModule,
|
|
126
134
|
agentGuiI18nResources,
|
|
127
|
-
getActiveUiLanguage,
|
|
128
135
|
translate,
|
|
129
136
|
useTranslation
|
|
130
|
-
} from "./chunk-
|
|
131
|
-
import "./chunk-
|
|
132
|
-
import "./chunk-LUGELG5V.js";
|
|
133
|
-
import "./chunk-PJP5BUU6.js";
|
|
137
|
+
} from "./chunk-5QTC2L52.js";
|
|
138
|
+
import "./chunk-KACBTC7Y.js";
|
|
134
139
|
|
|
135
140
|
// shared/agentActivitySnapshotProjection.ts
|
|
136
141
|
import {
|
|
@@ -300,145 +305,6 @@ import { memo as memo2, useCallback as useCallback13, useEffect as useEffect14,
|
|
|
300
305
|
import { createWorkspaceUserProjectI18nRuntime } from "@tutti-os/workspace-user-project/i18n";
|
|
301
306
|
import { createWorkspaceFileManagerI18nRuntime } from "@tutti-os/workspace-file-manager";
|
|
302
307
|
|
|
303
|
-
// shared/errors/appError.ts
|
|
304
|
-
function createMessageMap() {
|
|
305
|
-
return {
|
|
306
|
-
"common.invalid_input": "The request was invalid.",
|
|
307
|
-
"common.approved_path_required": "The selected path is outside approved workspaces.",
|
|
308
|
-
"common.unavailable": "This feature is unavailable.",
|
|
309
|
-
"common.unexpected": "Something went wrong. Please try again.",
|
|
310
|
-
"session.not_found": "Session not found.",
|
|
311
|
-
"control_surface.unauthorized": "Unauthorized request.",
|
|
312
|
-
"workspace.select_directory_failed": "Unable to open the directory picker.",
|
|
313
|
-
"workspace.select_files_failed": "Unable to open the file picker.",
|
|
314
|
-
"workspace.ensure_directory_failed": "Unable to create the directory.",
|
|
315
|
-
"workspace.import_files_failed": "Unable to import the selected files.",
|
|
316
|
-
"workspace.read_file_failed": "Unable to load the selected file.",
|
|
317
|
-
"workspace.write_file_failed": "Unable to save the selected file.",
|
|
318
|
-
"workspace.export_file_failed": "Unable to export the selected file.",
|
|
319
|
-
"workspace.copy_path_failed": "Unable to copy the path.",
|
|
320
|
-
"workspace.host_unsupported": "This Mac cannot run the workspace environment required by tsh. Please use macOS 13 or later on Apple Silicon (or an Intel Mac that supports Apple Virtualization), and ensure virtualization is not blocked by MDM.",
|
|
321
|
-
"workspace.runtime_artifact_unavailable": "Unable to prepare the workspace environment required by tsh. Check your network connection and try again.",
|
|
322
|
-
"runtime.guest_agent_lane_unavailable": "The workspace environment connection is unavailable. Refresh and try again.",
|
|
323
|
-
"workspace.room_full": "Room is full.",
|
|
324
|
-
"workspace.room_delete_forbidden": "Only the space owner can delete this space.",
|
|
325
|
-
"workspace.room_delete_not_found": "This space no longer exists.",
|
|
326
|
-
"filesystem.create_directory_failed": "Unable to create the directory.",
|
|
327
|
-
"filesystem.read_file_bytes_failed": "Unable to read the file.",
|
|
328
|
-
"filesystem.read_file_text_failed": "Unable to read the file.",
|
|
329
|
-
"filesystem.write_file_text_failed": "Unable to save the file.",
|
|
330
|
-
"filesystem.copy_entry_failed": "Unable to copy the file or folder.",
|
|
331
|
-
"filesystem.move_entry_failed": "Unable to move the file or folder.",
|
|
332
|
-
"filesystem.rename_entry_failed": "Unable to rename the file or folder.",
|
|
333
|
-
"filesystem.delete_entry_failed": "Unable to delete the file or folder.",
|
|
334
|
-
"filesystem.read_directory_failed": "Unable to load the directory.",
|
|
335
|
-
"filesystem.stat_failed": "Unable to read file details.",
|
|
336
|
-
"terminal.spawn_failed": "Unable to start the terminal.",
|
|
337
|
-
"terminal.write_failed": "Unable to write to the terminal.",
|
|
338
|
-
"terminal.resize_failed": "Unable to resize the terminal.",
|
|
339
|
-
"terminal.close_failed": "Unable to close the terminal.",
|
|
340
|
-
"terminal.attach_failed": "Unable to attach the terminal session.",
|
|
341
|
-
"terminal.detach_failed": "Unable to detach the terminal session.",
|
|
342
|
-
"terminal.snapshot_failed": "Unable to read terminal output.",
|
|
343
|
-
"agent.list_models_failed": "Unable to load models for this provider.",
|
|
344
|
-
"agent.launch_failed": "Unable to start the agent.",
|
|
345
|
-
"agent.read_last_message_failed": "Unable to read the last agent message.",
|
|
346
|
-
"agent.provider_session_not_found": "The previous agent session can no longer be restored.",
|
|
347
|
-
"agent.resume_session_not_local": "The previous agent session is not available on this machine.",
|
|
348
|
-
"agent.resume_session_resolve_failed": "Unable to resolve the previous agent session.",
|
|
349
|
-
"agent.settings_require_new_session": "This model can only be used in a new session to preserve context.",
|
|
350
|
-
"task.suggest_title_failed": "Unable to generate task details.",
|
|
351
|
-
"persistence.unavailable": "Storage is unavailable; changes will not be saved.",
|
|
352
|
-
"persistence.quota_exceeded": "Storage quota was exceeded.",
|
|
353
|
-
"persistence.payload_too_large": "Workspace state is too large to save.",
|
|
354
|
-
"persistence.io_failed": "Unable to save data to storage.",
|
|
355
|
-
"persistence.invalid_state": "The workspace state could not be saved.",
|
|
356
|
-
"persistence.invalid_node_id": "The terminal history could not be saved.",
|
|
357
|
-
"update.get_state_failed": "Unable to read the update status.",
|
|
358
|
-
"update.configure_failed": "Unable to apply update settings.",
|
|
359
|
-
"update.check_failed": "Unable to check for updates.",
|
|
360
|
-
"update.download_failed": "Unable to download the update.",
|
|
361
|
-
"update.install_failed": "Unable to install the update.",
|
|
362
|
-
PACKAGE_DOWNLOAD_INTERRUPTED: "The agent package download was interrupted. Check your network connection and retry.",
|
|
363
|
-
PACKAGE_DOWNLOAD_HTTP_STATUS: "The agent package server rejected the download. Retry later or contact support.",
|
|
364
|
-
PACKAGE_DOWNLOAD_INVALID: "The downloaded agent package failed integrity checks. Retry the download.",
|
|
365
|
-
PACKAGE_DOWNLOAD_DISK_ERROR: "Unable to write the agent package cache. Check disk permissions and free space."
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
var APP_ERROR_MESSAGES = createMessageMap();
|
|
369
|
-
function createAppErrorDescriptor(code, options = {}) {
|
|
370
|
-
return {
|
|
371
|
-
code,
|
|
372
|
-
...options.params ? { params: options.params } : {},
|
|
373
|
-
...options.debugMessage ? { debugMessage: options.debugMessage } : {}
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
function isAppErrorDescriptor(value) {
|
|
377
|
-
if (!value || typeof value !== "object") {
|
|
378
|
-
return false;
|
|
379
|
-
}
|
|
380
|
-
const record = value;
|
|
381
|
-
return typeof record.code === "string" && record.code in APP_ERROR_MESSAGES;
|
|
382
|
-
}
|
|
383
|
-
function getAppErrorCode(error) {
|
|
384
|
-
if (error instanceof TshAppError) {
|
|
385
|
-
return error.code;
|
|
386
|
-
}
|
|
387
|
-
if (isAppErrorDescriptor(error)) {
|
|
388
|
-
return error.code;
|
|
389
|
-
}
|
|
390
|
-
if (error && typeof error === "object") {
|
|
391
|
-
const code = error.code;
|
|
392
|
-
if (typeof code === "string" && code in APP_ERROR_MESSAGES) {
|
|
393
|
-
return code;
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
return null;
|
|
397
|
-
}
|
|
398
|
-
var TshAppError = class extends Error {
|
|
399
|
-
code;
|
|
400
|
-
params;
|
|
401
|
-
debugMessage;
|
|
402
|
-
constructor(descriptor) {
|
|
403
|
-
super(formatAppErrorMessage(descriptor));
|
|
404
|
-
this.name = "TshAppError";
|
|
405
|
-
this.code = descriptor.code;
|
|
406
|
-
this.params = descriptor.params;
|
|
407
|
-
this.debugMessage = descriptor.debugMessage;
|
|
408
|
-
}
|
|
409
|
-
toDescriptor() {
|
|
410
|
-
return createAppErrorDescriptor(this.code, {
|
|
411
|
-
params: this.params,
|
|
412
|
-
debugMessage: this.debugMessage
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
};
|
|
416
|
-
function formatAppErrorMessage(error) {
|
|
417
|
-
const descriptor = error instanceof TshAppError ? error.toDescriptor() : error;
|
|
418
|
-
return APP_ERROR_MESSAGES[descriptor.code] ?? APP_ERROR_MESSAGES["common.unexpected"];
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
// app/renderer/shell/utils/format.ts
|
|
422
|
-
var shortDateTimeFormatterByLanguage = /* @__PURE__ */ new Map();
|
|
423
|
-
function getShortDateTimeFormatter(language) {
|
|
424
|
-
const cached = shortDateTimeFormatterByLanguage.get(language);
|
|
425
|
-
if (cached) {
|
|
426
|
-
return cached;
|
|
427
|
-
}
|
|
428
|
-
const formatter = new Intl.DateTimeFormat(language, {
|
|
429
|
-
month: language === "en" ? "short" : "numeric",
|
|
430
|
-
day: "numeric",
|
|
431
|
-
hour: "2-digit",
|
|
432
|
-
minute: "2-digit",
|
|
433
|
-
hourCycle: "h23"
|
|
434
|
-
});
|
|
435
|
-
shortDateTimeFormatterByLanguage.set(language, formatter);
|
|
436
|
-
return formatter;
|
|
437
|
-
}
|
|
438
|
-
function toLocalShortDateTime(value, language = getActiveUiLanguage()) {
|
|
439
|
-
return getShortDateTimeFormatter(language).format(value);
|
|
440
|
-
}
|
|
441
|
-
|
|
442
308
|
// utils/workspaceNodeSizing.ts
|
|
443
309
|
var MIN_SIZE_BY_KIND = {
|
|
444
310
|
terminal: { width: 400, height: 160 },
|
|
@@ -2307,6 +2173,67 @@ import {
|
|
|
2307
2173
|
} from "react";
|
|
2308
2174
|
import { debounce } from "lodash";
|
|
2309
2175
|
import { toast } from "@tutti-os/ui-system";
|
|
2176
|
+
|
|
2177
|
+
// agentQueuedPromptRuntime.tsx
|
|
2178
|
+
import {
|
|
2179
|
+
createContext,
|
|
2180
|
+
useContext,
|
|
2181
|
+
useSyncExternalStore
|
|
2182
|
+
} from "react";
|
|
2183
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
2184
|
+
var AgentQueuedPromptRuntimeContext = createContext(null);
|
|
2185
|
+
var currentAgentQueuedPromptRuntime = null;
|
|
2186
|
+
function AgentQueuedPromptRuntimeProvider({
|
|
2187
|
+
children,
|
|
2188
|
+
runtime
|
|
2189
|
+
}) {
|
|
2190
|
+
currentAgentQueuedPromptRuntime = runtime ?? null;
|
|
2191
|
+
return /* @__PURE__ */ jsx11(AgentQueuedPromptRuntimeContext.Provider, { value: runtime ?? null, children });
|
|
2192
|
+
}
|
|
2193
|
+
function useAgentQueuedPromptRuntime() {
|
|
2194
|
+
const runtime = useContext(AgentQueuedPromptRuntimeContext) ?? getTestAgentQueuedPromptRuntime();
|
|
2195
|
+
if (!runtime) {
|
|
2196
|
+
throw new Error(
|
|
2197
|
+
"AgentQueuedPromptRuntimeProvider is missing an AgentQueuedPromptRuntime instance."
|
|
2198
|
+
);
|
|
2199
|
+
}
|
|
2200
|
+
return runtime;
|
|
2201
|
+
}
|
|
2202
|
+
function useAgentQueuedPromptSessionSnapshot(input) {
|
|
2203
|
+
const runtime = useAgentQueuedPromptRuntime();
|
|
2204
|
+
const workspaceId = input.workspaceId.trim();
|
|
2205
|
+
const agentSessionId = input.agentSessionId?.trim() ?? "";
|
|
2206
|
+
return useSyncExternalStore(
|
|
2207
|
+
runtime.subscribe,
|
|
2208
|
+
() => agentSessionId ? runtime.getSessionSnapshot({ workspaceId, agentSessionId }) : null,
|
|
2209
|
+
() => agentSessionId ? runtime.getSessionSnapshot({ workspaceId, agentSessionId }) : null
|
|
2210
|
+
);
|
|
2211
|
+
}
|
|
2212
|
+
function resetAgentQueuedPromptRuntimeForTests() {
|
|
2213
|
+
if (process.env.NODE_ENV === "test") {
|
|
2214
|
+
currentAgentQueuedPromptRuntime = null;
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2217
|
+
function setAgentQueuedPromptRuntimeForTests(runtime) {
|
|
2218
|
+
if (process.env.NODE_ENV === "test") {
|
|
2219
|
+
currentAgentQueuedPromptRuntime = runtime;
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2222
|
+
function getTestAgentQueuedPromptRuntime() {
|
|
2223
|
+
if (process.env.NODE_ENV !== "test") {
|
|
2224
|
+
return null;
|
|
2225
|
+
}
|
|
2226
|
+
if (currentAgentQueuedPromptRuntime) {
|
|
2227
|
+
return currentAgentQueuedPromptRuntime;
|
|
2228
|
+
}
|
|
2229
|
+
if (typeof window === "undefined") {
|
|
2230
|
+
return null;
|
|
2231
|
+
}
|
|
2232
|
+
const testRuntime = window.agentQueuedPromptRuntime;
|
|
2233
|
+
return testRuntime ?? null;
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
// agent-gui/agentGuiNode/controller/useAgentGUINodeController.ts
|
|
2310
2237
|
import {
|
|
2311
2238
|
resolveAgentActivityCapability as resolveAgentActivityCapability2,
|
|
2312
2239
|
resolveAgentActivityUsage,
|
|
@@ -4022,7 +3949,7 @@ function subscribeCoalesced(type, options, callback) {
|
|
|
4022
3949
|
}
|
|
4023
3950
|
|
|
4024
3951
|
// contexts/workspace/presentation/renderer/agentSessions/agentSessionViewStore.ts
|
|
4025
|
-
import { useSyncExternalStore } from "react";
|
|
3952
|
+
import { useSyncExternalStore as useSyncExternalStore2 } from "react";
|
|
4026
3953
|
var STREAM_LINGER_MS = 15e3;
|
|
4027
3954
|
var EMPTY_AGENT_SESSION_VIEW_STORE_SNAPSHOT = {
|
|
4028
3955
|
sessionViewsBySessionKey: {}
|
|
@@ -4048,7 +3975,7 @@ function getAgentSessionView(ref) {
|
|
|
4048
3975
|
}
|
|
4049
3976
|
function useAgentSessionView(ref) {
|
|
4050
3977
|
const sessionKey = createAgentSessionViewKey(ref);
|
|
4051
|
-
return
|
|
3978
|
+
return useSyncExternalStore2(
|
|
4052
3979
|
subscribeAgentSessionViewStore,
|
|
4053
3980
|
() => sessionKey ? snapshot.sessionViewsBySessionKey[sessionKey] ?? null : null,
|
|
4054
3981
|
() => sessionKey ? snapshot.sessionViewsBySessionKey[sessionKey] ?? null : null
|
|
@@ -6129,13 +6056,13 @@ function markLocalDeletedAgentGUIConversation(input) {
|
|
|
6129
6056
|
}
|
|
6130
6057
|
|
|
6131
6058
|
// contexts/workspace/presentation/renderer/agentGuiConversationList/useAgentGuiConversationList.ts
|
|
6132
|
-
import { useCallback as useCallback2, useSyncExternalStore as
|
|
6059
|
+
import { useCallback as useCallback2, useSyncExternalStore as useSyncExternalStore3 } from "react";
|
|
6133
6060
|
function useAgentGuiConversationList(query) {
|
|
6134
6061
|
const getSnapshot = useCallback2(
|
|
6135
6062
|
() => getOrCreateAgentGUIConversationListQuerySnapshot(query),
|
|
6136
6063
|
[query]
|
|
6137
6064
|
);
|
|
6138
|
-
return
|
|
6065
|
+
return useSyncExternalStore3(
|
|
6139
6066
|
subscribeAgentGUIConversationListStore,
|
|
6140
6067
|
getSnapshot,
|
|
6141
6068
|
getSnapshot
|
|
@@ -7411,6 +7338,23 @@ function retargetOptimisticPromptMessages(messages, input) {
|
|
|
7411
7338
|
});
|
|
7412
7339
|
return { changed, messages: retargeted };
|
|
7413
7340
|
}
|
|
7341
|
+
function removeOptimisticPromptMessagesByClientSubmitId(messages, clientSubmitId) {
|
|
7342
|
+
const normalizedClientSubmitId = clientSubmitId.trim();
|
|
7343
|
+
if (!normalizedClientSubmitId || messages.length === 0) {
|
|
7344
|
+
return { changed: false, messages: [...messages] };
|
|
7345
|
+
}
|
|
7346
|
+
const filtered = messages.filter((message) => {
|
|
7347
|
+
if (!isWorkspaceAgentActivityOptimisticMessage(message)) {
|
|
7348
|
+
return true;
|
|
7349
|
+
}
|
|
7350
|
+
const messageClientSubmitId = message.payload?.clientSubmitId;
|
|
7351
|
+
return typeof messageClientSubmitId !== "string" || messageClientSubmitId.trim() !== normalizedClientSubmitId;
|
|
7352
|
+
});
|
|
7353
|
+
return {
|
|
7354
|
+
changed: filtered.length !== messages.length,
|
|
7355
|
+
messages: filtered
|
|
7356
|
+
};
|
|
7357
|
+
}
|
|
7414
7358
|
function shouldRetargetOptimisticPromptFromMessage(message, trace) {
|
|
7415
7359
|
const turnId = message.turnId?.trim() ?? "";
|
|
7416
7360
|
if (!turnId || trace.turnId) {
|
|
@@ -8124,11 +8068,11 @@ function permissionModeDescription(provider, option) {
|
|
|
8124
8068
|
}
|
|
8125
8069
|
return void 0;
|
|
8126
8070
|
}
|
|
8127
|
-
function removeQueuedPromptById(queue, queuedPromptId) {
|
|
8128
|
-
return queue.filter((queuedPrompt) => queuedPrompt.id !== queuedPromptId);
|
|
8129
|
-
}
|
|
8130
8071
|
var NODE_DEFAULT_DRAFT_KEY = "__agent_gui_node_defaults__";
|
|
8131
8072
|
var EMPTY_AGENT_COMPOSER_DRAFT = emptyAgentComposerDraft();
|
|
8073
|
+
var EMPTY_QUEUED_PROMPTS = Object.freeze(
|
|
8074
|
+
[]
|
|
8075
|
+
);
|
|
8132
8076
|
function areAgentComposerDraftsEqual(left, right) {
|
|
8133
8077
|
const leftFiles = left.files ?? [];
|
|
8134
8078
|
const rightFiles = right.files ?? [];
|
|
@@ -8442,6 +8386,7 @@ function useAgentGUINodeController({
|
|
|
8442
8386
|
onShowMessage
|
|
8443
8387
|
}) {
|
|
8444
8388
|
const agentActivityRuntime = useAgentActivityRuntime();
|
|
8389
|
+
const agentQueuedPromptRuntime = useAgentQueuedPromptRuntime();
|
|
8445
8390
|
const agentHostApi = useAgentHostApi();
|
|
8446
8391
|
const agentActivitySnapshot = useAgentActivitySnapshot(workspaceId);
|
|
8447
8392
|
const normalizedExplicitProviderTargets = useMemo4(
|
|
@@ -8506,6 +8451,15 @@ function useAgentGUINodeController({
|
|
|
8506
8451
|
);
|
|
8507
8452
|
const pendingCreateOwnerKey = nodeId?.trim() ?? "";
|
|
8508
8453
|
const conversationListActiveOwnerKey = pendingCreateOwnerKey || generatedControllerOwnerKey;
|
|
8454
|
+
const queuedPromptOwnerId = conversationListActiveOwnerKey;
|
|
8455
|
+
useEffect4(() => {
|
|
8456
|
+
if (previewMode) {
|
|
8457
|
+
return;
|
|
8458
|
+
}
|
|
8459
|
+
return () => {
|
|
8460
|
+
agentQueuedPromptRuntime.releaseOwner(queuedPromptOwnerId);
|
|
8461
|
+
};
|
|
8462
|
+
}, [agentQueuedPromptRuntime, previewMode, queuedPromptOwnerId]);
|
|
8509
8463
|
const resolvePendingCreateConversationId = useCallback4(
|
|
8510
8464
|
() => conversationListQuery && pendingCreateOwnerKey ? getAgentGUIConversationCreatePending({
|
|
8511
8465
|
query: conversationListQuery,
|
|
@@ -8532,7 +8486,6 @@ function useAgentGUINodeController({
|
|
|
8532
8486
|
const [draftBySessionId, setDraftBySessionId] = useState4({});
|
|
8533
8487
|
const draftBySessionIdRef = useRef4(draftBySessionId);
|
|
8534
8488
|
const [draftSettingsBySessionId, setDraftSettingsBySessionId] = useState4({});
|
|
8535
|
-
const [queuedPromptsBySessionId, setQueuedPromptsBySessionId] = useState4({});
|
|
8536
8489
|
const hasLoadedConversations = conversationListState?.initialized ?? false;
|
|
8537
8490
|
const isLoadingConversations = conversationListState?.isLoading ?? false;
|
|
8538
8491
|
const [isLoadingMessages, setIsLoadingMessages] = useState4(false);
|
|
@@ -8549,16 +8502,15 @@ function useAgentGUINodeController({
|
|
|
8549
8502
|
const [isPendingSubmit, setIsPendingSubmit] = useState4(resolvePendingSubmit);
|
|
8550
8503
|
const [localIsSubmitting, setLocalIsSubmitting] = useState4(false);
|
|
8551
8504
|
const isSubmitting = localIsSubmitting || isPendingSubmit;
|
|
8552
|
-
const
|
|
8553
|
-
|
|
8554
|
-
|
|
8555
|
-
|
|
8556
|
-
|
|
8557
|
-
const
|
|
8558
|
-
const
|
|
8559
|
-
|
|
8560
|
-
|
|
8561
|
-
] = useState4({});
|
|
8505
|
+
const activeQueuedPromptSnapshot = useAgentQueuedPromptSessionSnapshot({
|
|
8506
|
+
workspaceId,
|
|
8507
|
+
agentSessionId: activeConversationId
|
|
8508
|
+
});
|
|
8509
|
+
const activeQueuedPrompts = activeQueuedPromptSnapshot?.prompts ?? EMPTY_QUEUED_PROMPTS;
|
|
8510
|
+
const activeQueuedPromptClaim = activeQueuedPromptSnapshot?.claim ?? null;
|
|
8511
|
+
const activeFailedQueuedPromptId = activeQueuedPromptSnapshot?.failedPromptId ?? null;
|
|
8512
|
+
const activeQueuedPromptRetryBlock = activeQueuedPromptSnapshot?.retryBlock ?? null;
|
|
8513
|
+
const activeSendNextQueuedPromptId = activeQueuedPromptSnapshot?.sendNextPromptId ?? null;
|
|
8562
8514
|
const [interruptingSessionIds, setInterruptingSessionIds] = useState4({});
|
|
8563
8515
|
const [pendingInterruptSessionIds, setPendingInterruptSessionIds] = useState4({});
|
|
8564
8516
|
const [
|
|
@@ -9428,6 +9380,7 @@ function useAgentGUINodeController({
|
|
|
9428
9380
|
},
|
|
9429
9381
|
[
|
|
9430
9382
|
activation,
|
|
9383
|
+
agentQueuedPromptRuntime,
|
|
9431
9384
|
agentActivityRuntime,
|
|
9432
9385
|
conversationListQuery,
|
|
9433
9386
|
currentUserId,
|
|
@@ -9900,6 +9853,10 @@ function useAgentGUINodeController({
|
|
|
9900
9853
|
"local-delete"
|
|
9901
9854
|
);
|
|
9902
9855
|
}
|
|
9856
|
+
agentQueuedPromptRuntime.cleanupSession({
|
|
9857
|
+
workspaceId,
|
|
9858
|
+
agentSessionId
|
|
9859
|
+
});
|
|
9903
9860
|
deleteAgentSessionView(sessionViewRef(agentSessionId));
|
|
9904
9861
|
reportAgentGUIActiveConversationCleared({
|
|
9905
9862
|
details: {
|
|
@@ -9934,6 +9891,7 @@ function useAgentGUINodeController({
|
|
|
9934
9891
|
}
|
|
9935
9892
|
},
|
|
9936
9893
|
[
|
|
9894
|
+
agentQueuedPromptRuntime,
|
|
9937
9895
|
agentActivityRuntime,
|
|
9938
9896
|
applySessionStateSnapshot,
|
|
9939
9897
|
clearFailedLiveState,
|
|
@@ -10666,6 +10624,41 @@ function useAgentGUINodeController({
|
|
|
10666
10624
|
},
|
|
10667
10625
|
[sessionViewRef]
|
|
10668
10626
|
);
|
|
10627
|
+
const removeOptimisticPrompt = useCallback4(
|
|
10628
|
+
(agentSessionId, clientSubmitId) => {
|
|
10629
|
+
const normalizedAgentSessionId = agentSessionId.trim();
|
|
10630
|
+
if (!normalizedAgentSessionId || !clientSubmitId.trim()) {
|
|
10631
|
+
return;
|
|
10632
|
+
}
|
|
10633
|
+
const sessionView = getAgentSessionView(
|
|
10634
|
+
sessionViewRef(normalizedAgentSessionId)
|
|
10635
|
+
);
|
|
10636
|
+
if (!sessionView) {
|
|
10637
|
+
return;
|
|
10638
|
+
}
|
|
10639
|
+
const detail = removeOptimisticPromptMessagesByClientSubmitId(
|
|
10640
|
+
sessionView.detailMessages,
|
|
10641
|
+
clientSubmitId
|
|
10642
|
+
);
|
|
10643
|
+
if (detail.changed) {
|
|
10644
|
+
setAgentSessionViewDetailMessages(
|
|
10645
|
+
sessionViewRef(normalizedAgentSessionId),
|
|
10646
|
+
detail.messages
|
|
10647
|
+
);
|
|
10648
|
+
}
|
|
10649
|
+
const overlay = removeOptimisticPromptMessagesByClientSubmitId(
|
|
10650
|
+
sessionView.overlayMessages,
|
|
10651
|
+
clientSubmitId
|
|
10652
|
+
);
|
|
10653
|
+
if (overlay.changed) {
|
|
10654
|
+
setAgentSessionViewOverlayMessages(
|
|
10655
|
+
sessionViewRef(normalizedAgentSessionId),
|
|
10656
|
+
overlay.messages
|
|
10657
|
+
);
|
|
10658
|
+
}
|
|
10659
|
+
},
|
|
10660
|
+
[sessionViewRef]
|
|
10661
|
+
);
|
|
10669
10662
|
const applyStatePatch = useCallback4(
|
|
10670
10663
|
(patch) => {
|
|
10671
10664
|
const agentSessionId = patch.agentSessionId.trim();
|
|
@@ -11614,7 +11607,7 @@ function useAgentGUINodeController({
|
|
|
11614
11607
|
workspaceId
|
|
11615
11608
|
]);
|
|
11616
11609
|
const executePrompt = useCallback4(
|
|
11617
|
-
(agentSessionId, content, queuedPromptId, displayPrompt) => {
|
|
11610
|
+
(agentSessionId, content, queuedPromptId, displayPrompt, queuedPromptClaim) => {
|
|
11618
11611
|
const normalizedContent = normalizeAgentPromptContentBlocks(content);
|
|
11619
11612
|
if (!agentSessionId || normalizedContent.length === 0) {
|
|
11620
11613
|
return;
|
|
@@ -11685,6 +11678,13 @@ function useAgentGUINodeController({
|
|
|
11685
11678
|
)
|
|
11686
11679
|
} : current
|
|
11687
11680
|
);
|
|
11681
|
+
const pendingOptimisticTurnId = createPendingOptimisticTurnId(
|
|
11682
|
+
submitTrace.clientSubmitId
|
|
11683
|
+
);
|
|
11684
|
+
pendingTurnIdBySessionIdRef.current = {
|
|
11685
|
+
...pendingTurnIdBySessionIdRef.current,
|
|
11686
|
+
[agentSessionId]: pendingOptimisticTurnId
|
|
11687
|
+
};
|
|
11688
11688
|
applyStatePatch({
|
|
11689
11689
|
agentSessionId,
|
|
11690
11690
|
currentPhase: "working",
|
|
@@ -11696,10 +11696,29 @@ function useAgentGUINodeController({
|
|
|
11696
11696
|
trace: submitTrace,
|
|
11697
11697
|
workspaceId
|
|
11698
11698
|
});
|
|
11699
|
+
let queuedPromptClaimCompleted = false;
|
|
11700
|
+
const shouldRecordPendingOptimisticPrompt = queuedPromptId === void 0;
|
|
11701
|
+
if (shouldRecordPendingOptimisticPrompt) {
|
|
11702
|
+
recordLocalMessages(agentSessionId, [
|
|
11703
|
+
createOptimisticPromptMessage({
|
|
11704
|
+
workspaceId,
|
|
11705
|
+
agentSessionId,
|
|
11706
|
+
turnId: pendingOptimisticTurnId,
|
|
11707
|
+
clientSubmitId: submitTrace.clientSubmitId,
|
|
11708
|
+
userId: currentUserId?.trim() || "user",
|
|
11709
|
+
prompt: submittedPromptText,
|
|
11710
|
+
content: normalizedContent,
|
|
11711
|
+
occurredAtUnixMs: submittedAtUnixMs
|
|
11712
|
+
})
|
|
11713
|
+
]);
|
|
11714
|
+
reportAgentSubmitTraceDiagnostic({
|
|
11715
|
+
event: "optimistic_user_message_recorded",
|
|
11716
|
+
runtime: agentActivityRuntime,
|
|
11717
|
+
trace: submitTrace,
|
|
11718
|
+
workspaceId
|
|
11719
|
+
});
|
|
11720
|
+
}
|
|
11699
11721
|
void Promise.resolve().then(() => {
|
|
11700
|
-
if (!isCurrentConversation(agentSessionId)) {
|
|
11701
|
-
return null;
|
|
11702
|
-
}
|
|
11703
11722
|
reportAgentSubmitTraceDiagnostic({
|
|
11704
11723
|
event: "send_input.requested",
|
|
11705
11724
|
runtime: agentActivityRuntime,
|
|
@@ -11714,7 +11733,7 @@ function useAgentGUINodeController({
|
|
|
11714
11733
|
metadata: agentSubmitTraceMetadata(submitTrace)
|
|
11715
11734
|
});
|
|
11716
11735
|
}).then((result) => {
|
|
11717
|
-
if (!result
|
|
11736
|
+
if (!result) {
|
|
11718
11737
|
return;
|
|
11719
11738
|
}
|
|
11720
11739
|
submitTrace.turnId = result.turnId.trim() || null;
|
|
@@ -11774,34 +11793,14 @@ function useAgentGUINodeController({
|
|
|
11774
11793
|
});
|
|
11775
11794
|
}
|
|
11776
11795
|
if (queuedPromptId) {
|
|
11777
|
-
|
|
11778
|
-
|
|
11779
|
-
|
|
11780
|
-
|
|
11781
|
-
|
|
11782
|
-
|
|
11783
|
-
|
|
11784
|
-
|
|
11785
|
-
};
|
|
11786
|
-
});
|
|
11787
|
-
setSendNextQueuedPromptIdBySessionId((current) => {
|
|
11788
|
-
if (current[agentSessionId] !== queuedPromptId) {
|
|
11789
|
-
return current;
|
|
11790
|
-
}
|
|
11791
|
-
return { ...current, [agentSessionId]: null };
|
|
11792
|
-
});
|
|
11793
|
-
setFailedQueuedPromptIdBySessionId((current) => {
|
|
11794
|
-
if (current[agentSessionId] !== queuedPromptId) {
|
|
11795
|
-
return current;
|
|
11796
|
-
}
|
|
11797
|
-
return { ...current, [agentSessionId]: null };
|
|
11798
|
-
});
|
|
11799
|
-
setQueuedPromptRetryBlockBySessionId((current) => {
|
|
11800
|
-
if (current[agentSessionId]?.queuedPromptId !== queuedPromptId) {
|
|
11801
|
-
return current;
|
|
11802
|
-
}
|
|
11803
|
-
return { ...current, [agentSessionId]: null };
|
|
11804
|
-
});
|
|
11796
|
+
if (queuedPromptClaim) {
|
|
11797
|
+
queuedPromptClaimCompleted = agentQueuedPromptRuntime.completeClaim({
|
|
11798
|
+
workspaceId,
|
|
11799
|
+
agentSessionId,
|
|
11800
|
+
ownerId: queuedPromptClaim.ownerId,
|
|
11801
|
+
claimId: queuedPromptClaim.claimId
|
|
11802
|
+
});
|
|
11803
|
+
}
|
|
11805
11804
|
}
|
|
11806
11805
|
const submittedTurnId = result.turnId.trim();
|
|
11807
11806
|
if (submittedTurnId) {
|
|
@@ -11809,24 +11808,32 @@ function useAgentGUINodeController({
|
|
|
11809
11808
|
...pendingTurnIdBySessionIdRef.current,
|
|
11810
11809
|
[agentSessionId]: submittedTurnId
|
|
11811
11810
|
};
|
|
11812
|
-
|
|
11813
|
-
|
|
11814
|
-
workspaceId,
|
|
11811
|
+
if (shouldRecordPendingOptimisticPrompt) {
|
|
11812
|
+
retargetOptimisticPromptTurn(
|
|
11815
11813
|
agentSessionId,
|
|
11816
|
-
|
|
11817
|
-
|
|
11818
|
-
|
|
11819
|
-
|
|
11820
|
-
|
|
11821
|
-
|
|
11822
|
-
|
|
11823
|
-
|
|
11824
|
-
|
|
11825
|
-
|
|
11826
|
-
|
|
11827
|
-
|
|
11828
|
-
|
|
11829
|
-
|
|
11814
|
+
submitTrace.clientSubmitId,
|
|
11815
|
+
submittedTurnId
|
|
11816
|
+
);
|
|
11817
|
+
} else {
|
|
11818
|
+
recordLocalMessages(agentSessionId, [
|
|
11819
|
+
createOptimisticPromptMessage({
|
|
11820
|
+
workspaceId,
|
|
11821
|
+
agentSessionId,
|
|
11822
|
+
turnId: submittedTurnId,
|
|
11823
|
+
clientSubmitId: submitTrace.clientSubmitId,
|
|
11824
|
+
userId: currentUserId?.trim() || "user",
|
|
11825
|
+
prompt: submittedPromptText,
|
|
11826
|
+
content: normalizedContent,
|
|
11827
|
+
occurredAtUnixMs: Date.now()
|
|
11828
|
+
})
|
|
11829
|
+
]);
|
|
11830
|
+
reportAgentSubmitTraceDiagnostic({
|
|
11831
|
+
event: "optimistic_user_message_recorded",
|
|
11832
|
+
runtime: agentActivityRuntime,
|
|
11833
|
+
trace: submitTrace,
|
|
11834
|
+
workspaceId
|
|
11835
|
+
});
|
|
11836
|
+
}
|
|
11830
11837
|
scheduleAgentSubmitTracePaint({
|
|
11831
11838
|
runtime: agentActivityRuntime,
|
|
11832
11839
|
trace: submitTrace,
|
|
@@ -11844,6 +11851,12 @@ function useAgentGUINodeController({
|
|
|
11844
11851
|
const nextTraces = { ...submitTraceBySessionIdRef.current };
|
|
11845
11852
|
delete nextTraces[agentSessionId];
|
|
11846
11853
|
submitTraceBySessionIdRef.current = nextTraces;
|
|
11854
|
+
if (shouldRecordPendingOptimisticPrompt) {
|
|
11855
|
+
removeOptimisticPrompt(agentSessionId, submitTrace.clientSubmitId);
|
|
11856
|
+
}
|
|
11857
|
+
const nextPendingTurns = { ...pendingTurnIdBySessionIdRef.current };
|
|
11858
|
+
delete nextPendingTurns[agentSessionId];
|
|
11859
|
+
pendingTurnIdBySessionIdRef.current = nextPendingTurns;
|
|
11847
11860
|
reportAgentSubmitTraceDiagnostic({
|
|
11848
11861
|
event: "submit.failed",
|
|
11849
11862
|
runtime: agentActivityRuntime,
|
|
@@ -11894,19 +11907,21 @@ function useAgentGUINodeController({
|
|
|
11894
11907
|
}
|
|
11895
11908
|
if (queuedPromptId) {
|
|
11896
11909
|
if (shouldRetryQueuedPromptOnNextActivity) {
|
|
11897
|
-
|
|
11898
|
-
|
|
11899
|
-
|
|
11910
|
+
agentQueuedPromptRuntime.setRetryBlock({
|
|
11911
|
+
workspaceId,
|
|
11912
|
+
agentSessionId,
|
|
11913
|
+
retryBlock: {
|
|
11900
11914
|
queuedPromptId,
|
|
11901
11915
|
sessionStateUpdatedAtUnixMs: currentSessionState?.updatedAtUnixMs ?? null,
|
|
11902
11916
|
conversationUpdatedAtUnixMs: currentConversationSummary?.updatedAtUnixMs ?? null
|
|
11903
11917
|
}
|
|
11904
|
-
})
|
|
11918
|
+
});
|
|
11905
11919
|
} else {
|
|
11906
|
-
|
|
11907
|
-
|
|
11908
|
-
|
|
11909
|
-
|
|
11920
|
+
agentQueuedPromptRuntime.markPromptFailed({
|
|
11921
|
+
workspaceId,
|
|
11922
|
+
agentSessionId,
|
|
11923
|
+
promptId: queuedPromptId
|
|
11924
|
+
});
|
|
11910
11925
|
}
|
|
11911
11926
|
}
|
|
11912
11927
|
}).finally(() => {
|
|
@@ -11917,12 +11932,18 @@ function useAgentGUINodeController({
|
|
|
11917
11932
|
});
|
|
11918
11933
|
}
|
|
11919
11934
|
setLocalIsSubmitting(false);
|
|
11920
|
-
|
|
11921
|
-
(
|
|
11922
|
-
|
|
11935
|
+
if (queuedPromptClaim && !queuedPromptClaimCompleted) {
|
|
11936
|
+
agentQueuedPromptRuntime.releaseClaim({
|
|
11937
|
+
workspaceId,
|
|
11938
|
+
agentSessionId,
|
|
11939
|
+
ownerId: queuedPromptClaim.ownerId,
|
|
11940
|
+
claimId: queuedPromptClaim.claimId
|
|
11941
|
+
});
|
|
11942
|
+
}
|
|
11923
11943
|
});
|
|
11924
11944
|
},
|
|
11925
11945
|
[
|
|
11946
|
+
agentQueuedPromptRuntime,
|
|
11926
11947
|
currentUserId,
|
|
11927
11948
|
isCurrentConversation,
|
|
11928
11949
|
applyStatePatch,
|
|
@@ -11932,6 +11953,8 @@ function useAgentGUINodeController({
|
|
|
11932
11953
|
loadSessionState,
|
|
11933
11954
|
refreshMessagesFromSnapshot,
|
|
11934
11955
|
recordLocalMessages,
|
|
11956
|
+
removeOptimisticPrompt,
|
|
11957
|
+
retargetOptimisticPromptTurn,
|
|
11935
11958
|
sessionViewRef,
|
|
11936
11959
|
setTransientConversation,
|
|
11937
11960
|
patchConversation,
|
|
@@ -11954,17 +11977,18 @@ function useAgentGUINodeController({
|
|
|
11954
11977
|
...displayPrompt && displayPrompt.trim() ? { displayPrompt } : {},
|
|
11955
11978
|
createdAtUnixMs: Date.now()
|
|
11956
11979
|
};
|
|
11957
|
-
|
|
11958
|
-
|
|
11959
|
-
|
|
11960
|
-
|
|
11980
|
+
agentQueuedPromptRuntime.enqueue({
|
|
11981
|
+
workspaceId,
|
|
11982
|
+
agentSessionId,
|
|
11983
|
+
prompt: queuedPrompt
|
|
11984
|
+
});
|
|
11961
11985
|
setDraftBySessionId((current) => ({
|
|
11962
11986
|
...current,
|
|
11963
11987
|
[agentSessionId]: emptyAgentComposerDraft()
|
|
11964
11988
|
}));
|
|
11965
11989
|
setDetailError(null);
|
|
11966
11990
|
},
|
|
11967
|
-
[]
|
|
11991
|
+
[agentQueuedPromptRuntime, workspaceId]
|
|
11968
11992
|
);
|
|
11969
11993
|
const shouldQueuePromptLocally = useCallback4(
|
|
11970
11994
|
(agentSessionId) => {
|
|
@@ -11978,11 +12002,20 @@ function useAgentGUINodeController({
|
|
|
11978
12002
|
if (pendingTurnIdBySessionIdRef.current[normalizedAgentSessionId]) {
|
|
11979
12003
|
return true;
|
|
11980
12004
|
}
|
|
12005
|
+
const sessionState = getAgentSessionView(sessionViewRef(normalizedAgentSessionId))?.controlState ?? null;
|
|
12006
|
+
if (sessionState?.pendingInteractive) {
|
|
12007
|
+
return true;
|
|
12008
|
+
}
|
|
11981
12009
|
return agentActivityDisplayStatusBusy(
|
|
11982
12010
|
agentActivityDisplayStatuses.get(normalizedAgentSessionId)
|
|
11983
12011
|
);
|
|
11984
12012
|
},
|
|
11985
|
-
[
|
|
12013
|
+
[
|
|
12014
|
+
agentActivityDisplayStatuses,
|
|
12015
|
+
isRespondingApproval,
|
|
12016
|
+
isSubmitting,
|
|
12017
|
+
sessionViewRef
|
|
12018
|
+
]
|
|
11986
12019
|
);
|
|
11987
12020
|
const submitExistingPrompt = useCallback4(
|
|
11988
12021
|
(agentSessionId, normalizedContent, displayPromptText, options) => {
|
|
@@ -12029,6 +12062,9 @@ function useAgentGUINodeController({
|
|
|
12029
12062
|
);
|
|
12030
12063
|
const submitPrompt = useCallback4(
|
|
12031
12064
|
(content, displayPrompt) => {
|
|
12065
|
+
if (previewMode) {
|
|
12066
|
+
return;
|
|
12067
|
+
}
|
|
12032
12068
|
const agentSessionId = activeConversationIdRef.current;
|
|
12033
12069
|
const normalizedContent = normalizeAgentPromptContentBlocks(content);
|
|
12034
12070
|
if (normalizedContent.length === 0) {
|
|
@@ -12089,6 +12125,7 @@ function useAgentGUINodeController({
|
|
|
12089
12125
|
[
|
|
12090
12126
|
agentActivityRuntime,
|
|
12091
12127
|
conversationListQuery,
|
|
12128
|
+
previewMode,
|
|
12092
12129
|
resolvedPromptImagesSupported,
|
|
12093
12130
|
persistActiveConversation,
|
|
12094
12131
|
startConversation,
|
|
@@ -12674,41 +12711,50 @@ function useAgentGUINodeController({
|
|
|
12674
12711
|
if (!activeConversationId) {
|
|
12675
12712
|
return;
|
|
12676
12713
|
}
|
|
12677
|
-
const queuedPrompt =
|
|
12678
|
-
const failedQueuedPromptId = failedQueuedPromptIdBySessionId[activeConversationId] ?? null;
|
|
12679
|
-
const queuedPromptRetryBlock = queuedPromptRetryBlockBySessionId[activeConversationId] ?? null;
|
|
12714
|
+
const queuedPrompt = activeQueuedPrompts[0] ?? null;
|
|
12680
12715
|
const activeSessionState2 = getAgentSessionView(sessionViewRef(activeConversationId))?.controlState ?? null;
|
|
12681
12716
|
const activeConversationSummary = resolveConversationSummaryById(
|
|
12682
12717
|
conversations,
|
|
12683
12718
|
activeConversationId,
|
|
12684
12719
|
transientConversationRef.current
|
|
12685
12720
|
);
|
|
12686
|
-
const blockedByStaleActiveTurnConflict = queuedPrompt !== null &&
|
|
12687
|
-
const canDrainQueuedPrompt = queuedPrompt !== null && queuedPrompt.id !==
|
|
12721
|
+
const blockedByStaleActiveTurnConflict = queuedPrompt !== null && activeQueuedPromptRetryBlock?.queuedPromptId === queuedPrompt.id && activeQueuedPromptRetryBlock.sessionStateUpdatedAtUnixMs === (activeSessionState2?.updatedAtUnixMs ?? null) && activeQueuedPromptRetryBlock.conversationUpdatedAtUnixMs === (activeConversationSummary?.updatedAtUnixMs ?? null);
|
|
12722
|
+
const canDrainQueuedPrompt = queuedPrompt !== null && queuedPrompt.id !== activeFailedQueuedPromptId && !blockedByStaleActiveTurnConflict && activeQueuedPromptClaim === null && !isSubmitting && !isRespondingApproval && !activeSessionState2?.pendingInteractive && !agentActivityDisplayStatusBusy(
|
|
12688
12723
|
agentActivityDisplayStatuses.get(activeConversationId)
|
|
12689
12724
|
);
|
|
12690
12725
|
if (!canDrainQueuedPrompt) {
|
|
12691
12726
|
return;
|
|
12692
12727
|
}
|
|
12693
|
-
|
|
12728
|
+
const claimResult = agentQueuedPromptRuntime.claimNextToDrain({
|
|
12729
|
+
workspaceId,
|
|
12730
|
+
agentSessionId: activeConversationId,
|
|
12731
|
+
ownerId: queuedPromptOwnerId
|
|
12732
|
+
});
|
|
12733
|
+
if (!claimResult) {
|
|
12734
|
+
return;
|
|
12735
|
+
}
|
|
12694
12736
|
executePrompt(
|
|
12695
12737
|
activeConversationId,
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
|
|
12738
|
+
claimResult.prompt.content,
|
|
12739
|
+
claimResult.prompt.id,
|
|
12740
|
+
claimResult.prompt.displayPrompt,
|
|
12741
|
+
claimResult.claim
|
|
12699
12742
|
);
|
|
12700
12743
|
}, [
|
|
12701
12744
|
activeConversationId,
|
|
12745
|
+
activeFailedQueuedPromptId,
|
|
12746
|
+
activeQueuedPromptClaim,
|
|
12747
|
+
activeQueuedPromptRetryBlock,
|
|
12748
|
+
activeQueuedPrompts,
|
|
12749
|
+
agentQueuedPromptRuntime,
|
|
12702
12750
|
agentActivityDisplayStatuses,
|
|
12703
12751
|
conversations,
|
|
12704
|
-
drainingQueuedPromptSessionId,
|
|
12705
12752
|
executePrompt,
|
|
12706
12753
|
isRespondingApproval,
|
|
12707
12754
|
isSubmitting,
|
|
12708
|
-
failedQueuedPromptIdBySessionId,
|
|
12709
12755
|
previewMode,
|
|
12710
|
-
|
|
12711
|
-
|
|
12756
|
+
queuedPromptOwnerId,
|
|
12757
|
+
workspaceId
|
|
12712
12758
|
]);
|
|
12713
12759
|
useEffect4(() => {
|
|
12714
12760
|
if (previewMode) {
|
|
@@ -12717,9 +12763,7 @@ function useAgentGUINodeController({
|
|
|
12717
12763
|
if (!activeConversationId) {
|
|
12718
12764
|
return;
|
|
12719
12765
|
}
|
|
12720
|
-
|
|
12721
|
-
const queuedPrompts2 = queuedPromptsBySessionId[activeConversationId] ?? [];
|
|
12722
|
-
if (!sendNextQueuedPromptId || queuedPrompts2[0]?.id !== sendNextQueuedPromptId) {
|
|
12766
|
+
if (!activeSendNextQueuedPromptId || activeQueuedPrompts[0]?.id !== activeSendNextQueuedPromptId) {
|
|
12723
12767
|
return;
|
|
12724
12768
|
}
|
|
12725
12769
|
const activeSessionState2 = getAgentSessionView(sessionViewRef(activeConversationId))?.controlState ?? null;
|
|
@@ -12729,7 +12773,7 @@ function useAgentGUINodeController({
|
|
|
12729
12773
|
transientConversationRef.current
|
|
12730
12774
|
);
|
|
12731
12775
|
const activeActivityDisplayStatus2 = agentActivityDisplayStatuses.get(activeConversationId) ?? null;
|
|
12732
|
-
const shouldInterrupt =
|
|
12776
|
+
const shouldInterrupt = activeQueuedPromptClaim === null && !isSubmitting && activeActivityDisplayStatus2 === "working";
|
|
12733
12777
|
if (!shouldInterrupt || interruptingSessionIds[activeConversationId]) {
|
|
12734
12778
|
return;
|
|
12735
12779
|
}
|
|
@@ -12792,9 +12836,11 @@ function useAgentGUINodeController({
|
|
|
12792
12836
|
});
|
|
12793
12837
|
}, [
|
|
12794
12838
|
activeConversationId,
|
|
12839
|
+
activeQueuedPromptClaim,
|
|
12840
|
+
activeQueuedPrompts,
|
|
12841
|
+
activeSendNextQueuedPromptId,
|
|
12795
12842
|
agentActivityDisplayStatuses,
|
|
12796
12843
|
conversations,
|
|
12797
|
-
drainingQueuedPromptSessionId,
|
|
12798
12844
|
interruptingSessionIds,
|
|
12799
12845
|
isCurrentConversation,
|
|
12800
12846
|
isSubmitting,
|
|
@@ -12802,11 +12848,9 @@ function useAgentGUINodeController({
|
|
|
12802
12848
|
loadSessionState,
|
|
12803
12849
|
refreshMessagesFromSnapshot,
|
|
12804
12850
|
previewMode,
|
|
12805
|
-
queuedPromptsBySessionId,
|
|
12806
12851
|
runtimeSessionsBySessionId,
|
|
12807
12852
|
workspaceId,
|
|
12808
12853
|
sessionViewRef,
|
|
12809
|
-
sendNextQueuedPromptIdBySessionId,
|
|
12810
12854
|
agentActivityRuntime
|
|
12811
12855
|
]);
|
|
12812
12856
|
const requestDeleteConversation = useCallback4(
|
|
@@ -12832,64 +12876,39 @@ function useAgentGUINodeController({
|
|
|
12832
12876
|
}
|
|
12833
12877
|
setPendingDeleteConversation(null);
|
|
12834
12878
|
}, [isDeletingConversation]);
|
|
12835
|
-
const removeQueuedPrompt = useCallback4(
|
|
12836
|
-
|
|
12837
|
-
|
|
12838
|
-
|
|
12839
|
-
return;
|
|
12840
|
-
}
|
|
12841
|
-
setQueuedPromptsBySessionId((current) => {
|
|
12842
|
-
const queue = current[agentSessionId] ?? [];
|
|
12843
|
-
const queuedPrompt = queue.find((item) => item.id === normalizedQueuedPromptId) ?? null;
|
|
12844
|
-
if (!queuedPrompt) {
|
|
12845
|
-
return current;
|
|
12846
|
-
}
|
|
12847
|
-
return {
|
|
12848
|
-
...current,
|
|
12849
|
-
[agentSessionId]: removeQueuedPromptById(
|
|
12850
|
-
queue,
|
|
12851
|
-
normalizedQueuedPromptId
|
|
12852
|
-
)
|
|
12853
|
-
};
|
|
12854
|
-
});
|
|
12855
|
-
setSendNextQueuedPromptIdBySessionId((current) => {
|
|
12856
|
-
if (current[agentSessionId] !== normalizedQueuedPromptId) {
|
|
12857
|
-
return current;
|
|
12858
|
-
}
|
|
12859
|
-
return { ...current, [agentSessionId]: null };
|
|
12860
|
-
});
|
|
12861
|
-
setFailedQueuedPromptIdBySessionId((current) => {
|
|
12862
|
-
if (current[agentSessionId] !== normalizedQueuedPromptId) {
|
|
12863
|
-
return current;
|
|
12879
|
+
const removeQueuedPrompt = useCallback4(
|
|
12880
|
+
(queuedPromptId) => {
|
|
12881
|
+
if (previewMode) {
|
|
12882
|
+
return;
|
|
12864
12883
|
}
|
|
12865
|
-
|
|
12866
|
-
|
|
12867
|
-
|
|
12868
|
-
|
|
12869
|
-
return current;
|
|
12884
|
+
const agentSessionId = activeConversationIdRef.current;
|
|
12885
|
+
const normalizedQueuedPromptId = queuedPromptId.trim();
|
|
12886
|
+
if (!agentSessionId || !normalizedQueuedPromptId) {
|
|
12887
|
+
return;
|
|
12870
12888
|
}
|
|
12871
|
-
|
|
12872
|
-
|
|
12873
|
-
|
|
12889
|
+
agentQueuedPromptRuntime.removePrompt({
|
|
12890
|
+
workspaceId,
|
|
12891
|
+
agentSessionId,
|
|
12892
|
+
promptId: normalizedQueuedPromptId
|
|
12893
|
+
});
|
|
12894
|
+
},
|
|
12895
|
+
[agentQueuedPromptRuntime, previewMode, workspaceId]
|
|
12896
|
+
);
|
|
12874
12897
|
const editQueuedPrompt = useCallback4(
|
|
12875
12898
|
(queuedPromptId) => {
|
|
12876
12899
|
const agentSessionId = activeConversationIdRef.current;
|
|
12877
12900
|
const normalizedQueuedPromptId = queuedPromptId.trim();
|
|
12878
|
-
if (!agentSessionId || !normalizedQueuedPromptId) {
|
|
12901
|
+
if (previewMode || !agentSessionId || !normalizedQueuedPromptId) {
|
|
12879
12902
|
return;
|
|
12880
12903
|
}
|
|
12881
|
-
const
|
|
12882
|
-
|
|
12904
|
+
const queuedPrompt = agentQueuedPromptRuntime.removePrompt({
|
|
12905
|
+
workspaceId,
|
|
12906
|
+
agentSessionId,
|
|
12907
|
+
promptId: normalizedQueuedPromptId
|
|
12908
|
+
});
|
|
12883
12909
|
if (!queuedPrompt) {
|
|
12884
12910
|
return;
|
|
12885
12911
|
}
|
|
12886
|
-
setQueuedPromptsBySessionId((current) => ({
|
|
12887
|
-
...current,
|
|
12888
|
-
[agentSessionId]: removeQueuedPromptById(
|
|
12889
|
-
current[agentSessionId] ?? [],
|
|
12890
|
-
normalizedQueuedPromptId
|
|
12891
|
-
)
|
|
12892
|
-
}));
|
|
12893
12912
|
setDraftBySessionId((current) => ({
|
|
12894
12913
|
...current,
|
|
12895
12914
|
[agentSessionId]: agentPromptContentToComposerDraft(
|
|
@@ -12897,67 +12916,23 @@ function useAgentGUINodeController({
|
|
|
12897
12916
|
`restore-${queuedPrompt.id}`
|
|
12898
12917
|
)
|
|
12899
12918
|
}));
|
|
12900
|
-
setSendNextQueuedPromptIdBySessionId((current) => {
|
|
12901
|
-
if (current[agentSessionId] !== normalizedQueuedPromptId) {
|
|
12902
|
-
return current;
|
|
12903
|
-
}
|
|
12904
|
-
return { ...current, [agentSessionId]: null };
|
|
12905
|
-
});
|
|
12906
|
-
setFailedQueuedPromptIdBySessionId((current) => {
|
|
12907
|
-
if (current[agentSessionId] !== normalizedQueuedPromptId) {
|
|
12908
|
-
return current;
|
|
12909
|
-
}
|
|
12910
|
-
return { ...current, [agentSessionId]: null };
|
|
12911
|
-
});
|
|
12912
|
-
setQueuedPromptRetryBlockBySessionId((current) => {
|
|
12913
|
-
if (current[agentSessionId]?.queuedPromptId !== normalizedQueuedPromptId) {
|
|
12914
|
-
return current;
|
|
12915
|
-
}
|
|
12916
|
-
return { ...current, [agentSessionId]: null };
|
|
12917
|
-
});
|
|
12918
12919
|
},
|
|
12919
|
-
[
|
|
12920
|
+
[agentQueuedPromptRuntime, previewMode, workspaceId]
|
|
12920
12921
|
);
|
|
12921
12922
|
const sendQueuedPromptNext = useCallback4(
|
|
12922
12923
|
(queuedPromptId) => {
|
|
12923
12924
|
const agentSessionId = activeConversationIdRef.current;
|
|
12924
12925
|
const normalizedQueuedPromptId = queuedPromptId.trim();
|
|
12925
|
-
if (!agentSessionId || !normalizedQueuedPromptId) {
|
|
12926
|
-
return;
|
|
12927
|
-
}
|
|
12928
|
-
const queue = [...queuedPromptsBySessionId[agentSessionId] ?? []];
|
|
12929
|
-
const queueIndex = queue.findIndex(
|
|
12930
|
-
(item) => item.id === normalizedQueuedPromptId
|
|
12931
|
-
);
|
|
12932
|
-
if (queueIndex < 0) {
|
|
12926
|
+
if (previewMode || !agentSessionId || !normalizedQueuedPromptId) {
|
|
12933
12927
|
return;
|
|
12934
12928
|
}
|
|
12935
|
-
|
|
12936
|
-
|
|
12937
|
-
|
|
12938
|
-
|
|
12939
|
-
setQueuedPromptsBySessionId((current) => ({
|
|
12940
|
-
...current,
|
|
12941
|
-
[agentSessionId]: queue
|
|
12942
|
-
}));
|
|
12943
|
-
setSendNextQueuedPromptIdBySessionId((current) => ({
|
|
12944
|
-
...current,
|
|
12945
|
-
[agentSessionId]: normalizedQueuedPromptId
|
|
12946
|
-
}));
|
|
12947
|
-
setFailedQueuedPromptIdBySessionId((current) => {
|
|
12948
|
-
if (current[agentSessionId] !== normalizedQueuedPromptId) {
|
|
12949
|
-
return current;
|
|
12950
|
-
}
|
|
12951
|
-
return { ...current, [agentSessionId]: null };
|
|
12952
|
-
});
|
|
12953
|
-
setQueuedPromptRetryBlockBySessionId((current) => {
|
|
12954
|
-
if (current[agentSessionId]?.queuedPromptId !== normalizedQueuedPromptId) {
|
|
12955
|
-
return current;
|
|
12956
|
-
}
|
|
12957
|
-
return { ...current, [agentSessionId]: null };
|
|
12929
|
+
agentQueuedPromptRuntime.promotePrompt({
|
|
12930
|
+
workspaceId,
|
|
12931
|
+
agentSessionId,
|
|
12932
|
+
promptId: normalizedQueuedPromptId
|
|
12958
12933
|
});
|
|
12959
12934
|
},
|
|
12960
|
-
[
|
|
12935
|
+
[agentQueuedPromptRuntime, previewMode, workspaceId]
|
|
12961
12936
|
);
|
|
12962
12937
|
const removeProject = useCallback4(
|
|
12963
12938
|
(path) => {
|
|
@@ -13061,37 +13036,9 @@ function useAgentGUINodeController({
|
|
|
13061
13036
|
delete next[target.id];
|
|
13062
13037
|
return next;
|
|
13063
13038
|
});
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
}
|
|
13068
|
-
const next = { ...current };
|
|
13069
|
-
delete next[target.id];
|
|
13070
|
-
return next;
|
|
13071
|
-
});
|
|
13072
|
-
setSendNextQueuedPromptIdBySessionId((current) => {
|
|
13073
|
-
if (!(target.id in current)) {
|
|
13074
|
-
return current;
|
|
13075
|
-
}
|
|
13076
|
-
const next = { ...current };
|
|
13077
|
-
delete next[target.id];
|
|
13078
|
-
return next;
|
|
13079
|
-
});
|
|
13080
|
-
setFailedQueuedPromptIdBySessionId((current) => {
|
|
13081
|
-
if (!(target.id in current)) {
|
|
13082
|
-
return current;
|
|
13083
|
-
}
|
|
13084
|
-
const next = { ...current };
|
|
13085
|
-
delete next[target.id];
|
|
13086
|
-
return next;
|
|
13087
|
-
});
|
|
13088
|
-
setQueuedPromptRetryBlockBySessionId((current) => {
|
|
13089
|
-
if (!(target.id in current)) {
|
|
13090
|
-
return current;
|
|
13091
|
-
}
|
|
13092
|
-
const next = { ...current };
|
|
13093
|
-
delete next[target.id];
|
|
13094
|
-
return next;
|
|
13039
|
+
agentQueuedPromptRuntime.cleanupSession({
|
|
13040
|
+
workspaceId,
|
|
13041
|
+
agentSessionId: target.id
|
|
13095
13042
|
});
|
|
13096
13043
|
deleteAgentSessionView(sessionViewRef(target.id));
|
|
13097
13044
|
const currentConversations = conversationsRef.current;
|
|
@@ -13147,6 +13094,7 @@ function useAgentGUINodeController({
|
|
|
13147
13094
|
workspaceId,
|
|
13148
13095
|
sessionViewRef,
|
|
13149
13096
|
agentActivityRuntime,
|
|
13097
|
+
agentQueuedPromptRuntime,
|
|
13150
13098
|
removeConversations
|
|
13151
13099
|
]);
|
|
13152
13100
|
const finalizeConversationBatchDeletion = useCallback4(
|
|
@@ -13173,18 +13121,12 @@ function useAgentGUINodeController({
|
|
|
13173
13121
|
setDraftBySessionId(
|
|
13174
13122
|
(current) => omitConversationLocalState(current, targetIds)
|
|
13175
13123
|
);
|
|
13176
|
-
|
|
13177
|
-
(
|
|
13178
|
-
|
|
13179
|
-
|
|
13180
|
-
|
|
13181
|
-
|
|
13182
|
-
setFailedQueuedPromptIdBySessionId(
|
|
13183
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13184
|
-
);
|
|
13185
|
-
setQueuedPromptRetryBlockBySessionId(
|
|
13186
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13187
|
-
);
|
|
13124
|
+
for (const id of targetIds) {
|
|
13125
|
+
agentQueuedPromptRuntime.cleanupSession({
|
|
13126
|
+
workspaceId,
|
|
13127
|
+
agentSessionId: id
|
|
13128
|
+
});
|
|
13129
|
+
}
|
|
13188
13130
|
const nextConversations = conversationsRef.current.filter(
|
|
13189
13131
|
(conversation2) => !targetIds.has(conversation2.id)
|
|
13190
13132
|
);
|
|
@@ -13210,8 +13152,10 @@ function useAgentGUINodeController({
|
|
|
13210
13152
|
clearSelectedConversationNotFoundRetry,
|
|
13211
13153
|
markSelectedConversationDetailPending,
|
|
13212
13154
|
persistActiveConversation,
|
|
13155
|
+
agentQueuedPromptRuntime,
|
|
13213
13156
|
sessionViewRef,
|
|
13214
13157
|
setTransientConversation,
|
|
13158
|
+
workspaceId,
|
|
13215
13159
|
removeConversations
|
|
13216
13160
|
]
|
|
13217
13161
|
);
|
|
@@ -13743,11 +13687,8 @@ function useAgentGUINodeController({
|
|
|
13743
13687
|
const serverInteractivePrompt = hasProviderSessionNotFoundError || isActivePromptSuppressed ? null : rawPendingInteractivePrompt;
|
|
13744
13688
|
const isInterrupting = activeConversationId !== null && Boolean(interruptingSessionIds[activeConversationId]);
|
|
13745
13689
|
const isCancelPending = activeConversationId !== null && Boolean(pendingInterruptSessionIds[activeConversationId]);
|
|
13746
|
-
const queuedPrompts =
|
|
13747
|
-
|
|
13748
|
-
[activeConversationId, queuedPromptsBySessionId]
|
|
13749
|
-
);
|
|
13750
|
-
const drainingQueuedPromptId = drainingQueuedPromptSessionId === activeConversationId ? queuedPrompts[0]?.id ?? null : null;
|
|
13690
|
+
const queuedPrompts = activeConversationId ? [...activeQueuedPrompts] : [];
|
|
13691
|
+
const drainingQueuedPromptId = activeQueuedPromptClaim?.promptId ?? null;
|
|
13751
13692
|
const sessionSettings = useStableComposerSettings(
|
|
13752
13693
|
cloneComposerSettings(activeSessionState?.settings ?? null)
|
|
13753
13694
|
);
|
|
@@ -13854,7 +13795,7 @@ function useAgentGUINodeController({
|
|
|
13854
13795
|
pendingApproval
|
|
13855
13796
|
]);
|
|
13856
13797
|
const canSubmit = activeLiveState !== "activating" && activeLiveState !== "failed" && !activeConversationResumeUnavailable && (activeConversationId !== null || selectedProviderTarget.disabled !== true) && (data.provider !== "openclaw" || openclawGateway?.status === "ready") && pendingApproval === null && pendingInteractivePrompt === null && sessionChrome.auth === null && !isCreatingConversation && !isSubmitting && !isInterrupting;
|
|
13857
|
-
const canQueueWhileBusy = Boolean(activeConversationId) && (activeConversationBusy || isSubmitting);
|
|
13798
|
+
const canQueueWhileBusy = Boolean(activeConversationId) && (activeConversationBusy || isSubmitting || Boolean(activeSessionState?.pendingInteractive));
|
|
13858
13799
|
useEffect4(() => {
|
|
13859
13800
|
const firstVersion = minFiniteMessageVersion(activeMessages);
|
|
13860
13801
|
const lastVersion = maxFiniteMessageVersion(activeMessages);
|
|
@@ -14469,7 +14410,7 @@ var USAGE_WARN_PERCENT = 80;
|
|
|
14469
14410
|
var USAGE_CRITICAL_PERCENT = 95;
|
|
14470
14411
|
|
|
14471
14412
|
// agent-gui/agentGuiNode/AgentUsageMeter.tsx
|
|
14472
|
-
import { jsx as
|
|
14413
|
+
import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
14473
14414
|
function agentUsageBarColor(percentUsed) {
|
|
14474
14415
|
if (percentUsed >= USAGE_CRITICAL_PERCENT) {
|
|
14475
14416
|
return "var(--state-danger)";
|
|
@@ -14489,15 +14430,15 @@ function AgentUsageMeter({
|
|
|
14489
14430
|
const clampedPercent = typeof percent === "number" && Number.isFinite(percent) ? Math.max(0, Math.min(100, percent)) : null;
|
|
14490
14431
|
return /* @__PURE__ */ jsxs4("div", { className: "grid min-w-0 gap-1", "data-testid": testId, children: [
|
|
14491
14432
|
/* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-center justify-between gap-3", children: [
|
|
14492
|
-
/* @__PURE__ */
|
|
14493
|
-
/* @__PURE__ */
|
|
14433
|
+
/* @__PURE__ */ jsx12("span", { className: "min-w-0 truncate text-[var(--text-secondary)]", children: label }),
|
|
14434
|
+
/* @__PURE__ */ jsx12("span", { className: "shrink-0 whitespace-nowrap text-[var(--text-secondary)]", children: value })
|
|
14494
14435
|
] }),
|
|
14495
|
-
clampedPercent !== null ? /* @__PURE__ */
|
|
14436
|
+
clampedPercent !== null ? /* @__PURE__ */ jsx12(
|
|
14496
14437
|
"span",
|
|
14497
14438
|
{
|
|
14498
14439
|
"aria-hidden": "true",
|
|
14499
14440
|
className: "relative h-1.5 overflow-hidden rounded-full bg-[color-mix(in_srgb,var(--text-primary)_10%,transparent)]",
|
|
14500
|
-
children: /* @__PURE__ */
|
|
14441
|
+
children: /* @__PURE__ */ jsx12(
|
|
14501
14442
|
"span",
|
|
14502
14443
|
{
|
|
14503
14444
|
className: "absolute inset-y-0 left-0 min-w-0.5 rounded-full",
|
|
@@ -14536,10 +14477,10 @@ import {
|
|
|
14536
14477
|
} from "@tutti-os/ui-system/icons";
|
|
14537
14478
|
|
|
14538
14479
|
// app/renderer/components/icons/PinFilledIcon.tsx
|
|
14539
|
-
import { jsx as
|
|
14480
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
14540
14481
|
function PinFilledIcon(props) {
|
|
14541
14482
|
"use memo";
|
|
14542
|
-
return /* @__PURE__ */
|
|
14483
|
+
return /* @__PURE__ */ jsx13(
|
|
14543
14484
|
"svg",
|
|
14544
14485
|
{
|
|
14545
14486
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -14547,16 +14488,16 @@ function PinFilledIcon(props) {
|
|
|
14547
14488
|
fill: "currentColor",
|
|
14548
14489
|
"aria-hidden": true,
|
|
14549
14490
|
...props,
|
|
14550
|
-
children: /* @__PURE__ */
|
|
14491
|
+
children: /* @__PURE__ */ jsx13("path", { d: "M21.6066 8.05025C22.1692 8.61286 22.4849 9.37592 22.4849 10.1716C22.4849 10.9672 22.1692 11.7303 21.6066 12.2929C21.044 12.8555 20.2809 13.1713 19.4853 13.1713C18.6896 13.1713 17.9266 12.8555 17.3639 12.2929L14.7054 14.9514L14.6142 15.0564C14.531 15.1669 14.4714 15.2943 14.4395 15.43C14.3972 15.6109 14.406 15.8 14.4651 15.9762L14.4678 15.9831L15.0873 17.8717L15.1466 18.072C15.2691 18.5425 15.2761 19.037 15.1646 19.5124C15.0372 20.0557 14.7607 20.5526 14.3663 20.9474L13.8284 21.4853C13.4533 21.8604 12.9446 22.0709 12.4142 22.0709C11.8838 22.0709 11.3751 21.8604 11 21.4853L7.46445 17.9497L4.63603 20.7782C4.2455 21.1687 3.61234 21.1687 3.22181 20.7782C2.83129 20.3877 2.83129 19.7545 3.22181 19.364L6.05024 16.5355L2.51471 13C2.13963 12.6249 1.92913 12.1162 1.92913 11.5858C1.92913 11.0554 2.13963 10.5466 2.51471 10.1716L3.05263 9.63365L3.20524 9.49209C3.57235 9.17309 4.01205 8.94693 4.48756 8.83539C5.03093 8.70798 5.59924 8.73494 6.12827 8.91273L8.01688 9.53214L8.02379 9.5349C8.19995 9.59404 8.38907 9.60282 8.57 9.56045C8.7057 9.52863 8.83304 9.46898 8.94358 9.38575L9.04854 9.2946L11.7071 6.63604C11.1445 6.07343 10.8287 5.31037 10.8287 4.51472C10.8287 3.71907 11.1445 2.95601 11.7071 2.3934C12.2697 1.83079 13.0328 1.51504 13.8284 1.51504C14.6241 1.51504 15.3871 1.83079 15.9497 2.3934L21.6066 8.05025Z" })
|
|
14551
14492
|
}
|
|
14552
14493
|
);
|
|
14553
14494
|
}
|
|
14554
14495
|
|
|
14555
14496
|
// app/renderer/components/icons/PinLinedIcon.tsx
|
|
14556
|
-
import { jsx as
|
|
14497
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
14557
14498
|
function PinLinedIcon(props) {
|
|
14558
14499
|
"use memo";
|
|
14559
|
-
return /* @__PURE__ */
|
|
14500
|
+
return /* @__PURE__ */ jsx14(
|
|
14560
14501
|
"svg",
|
|
14561
14502
|
{
|
|
14562
14503
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -14564,16 +14505,16 @@ function PinLinedIcon(props) {
|
|
|
14564
14505
|
fill: "currentColor",
|
|
14565
14506
|
"aria-hidden": true,
|
|
14566
14507
|
...props,
|
|
14567
|
-
children: /* @__PURE__ */
|
|
14508
|
+
children: /* @__PURE__ */ jsx14("path", { d: "M21.6066 8.05025C22.1692 8.61286 22.4849 9.37592 22.4849 10.1716C22.4849 10.9672 22.1692 11.7303 21.6066 12.2929C21.044 12.8555 20.2809 13.1713 19.4853 13.1713C18.6896 13.1713 17.9266 12.8555 17.3639 12.2929L14.7054 14.9514L14.6142 15.0564C14.531 15.1669 14.4714 15.2943 14.4395 15.43C14.3972 15.6109 14.406 15.8 14.4651 15.9762L14.4678 15.9831L15.0873 17.8717L15.1466 18.072C15.2691 18.5425 15.2761 19.037 15.1646 19.5124C15.0372 20.0557 14.7607 20.5526 14.3663 20.9474L13.8284 21.4853C13.4533 21.8604 12.9446 22.0709 12.4142 22.0709C11.8838 22.0709 11.3751 21.8604 11 21.4853L7.46445 17.9497L4.63603 20.7782C4.2455 21.1687 3.61234 21.1687 3.22181 20.7782C2.83129 20.3877 2.83129 19.7545 3.22181 19.364L6.05024 16.5355L2.51471 13C2.13963 12.6249 1.92913 12.1162 1.92913 11.5858C1.92913 11.0554 2.13963 10.5466 2.51471 10.1716L3.05263 9.63365L3.20524 9.49209C3.57235 9.17309 4.01205 8.94693 4.48756 8.83539C5.03093 8.70798 5.59924 8.73494 6.12827 8.91273L8.01688 9.53214L8.02379 9.5349C8.19995 9.59404 8.38907 9.60282 8.57 9.56045C8.7057 9.52863 8.83304 9.46898 8.94358 9.38575L9.04854 9.2946L11.7071 6.63604C11.1445 6.07343 10.8287 5.31037 10.8287 4.51472C10.8287 3.71907 11.1445 2.95601 11.7071 2.3934C12.2697 1.83079 13.0328 1.51504 13.8284 1.51504C14.6241 1.51504 15.3871 1.83079 15.9497 2.3934L21.6066 8.05025ZM14.5355 3.80761C14.348 3.62008 14.0936 3.51483 13.8284 3.51483C13.5632 3.51483 13.3088 3.62008 13.1213 3.80761C12.9338 3.99515 12.8285 4.2495 12.8285 4.51472C12.8285 4.74685 12.9091 4.97066 13.055 5.14863L13.2539 5.36822C13.5457 5.72416 13.7069 6.17177 13.7069 6.63604C13.7069 7.16647 13.4964 7.67518 13.1213 8.05025L10.4621 10.7095C10.0673 11.1038 9.57037 11.3803 9.02713 11.5078C8.48575 11.6347 7.92002 11.6071 7.39264 11.4311V11.4325L5.49781 10.811L5.49091 10.8082C5.31475 10.7491 5.12562 10.7403 4.94469 10.7827C4.76366 10.8251 4.59774 10.9172 4.46615 11.0486L3.92892 11.5858L12.4142 20.0711L12.9514 19.5338C13.0828 19.4022 13.1748 19.2363 13.2173 19.0553C13.2597 18.8744 13.2509 18.6852 13.1917 18.5091L13.189 18.5022L12.5675 16.6073L12.5682 16.6067C12.3924 16.0795 12.3654 15.514 12.4922 14.9729C12.6197 14.4296 12.8962 13.9327 13.2905 13.5379L15.9497 10.8787C16.3248 10.5036 16.8335 10.2931 17.3639 10.2931C17.8282 10.2931 18.2758 10.4543 18.6318 10.7461L18.8514 10.945C19.0293 11.0909 19.2531 11.1715 19.4853 11.1715C19.7505 11.1715 20.0048 11.0662 20.1924 10.8787C20.3799 10.6911 20.4852 10.4368 20.4852 10.1716C20.4852 9.90636 20.3799 9.652 20.1924 9.46447L14.5355 3.80761Z" })
|
|
14568
14509
|
}
|
|
14569
14510
|
);
|
|
14570
14511
|
}
|
|
14571
14512
|
|
|
14572
14513
|
// app/renderer/components/icons/UnavailableChatIcon.tsx
|
|
14573
|
-
import { jsx as
|
|
14514
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
14574
14515
|
function UnavailableChatIcon(props) {
|
|
14575
14516
|
"use memo";
|
|
14576
|
-
return /* @__PURE__ */
|
|
14517
|
+
return /* @__PURE__ */ jsx15(
|
|
14577
14518
|
"svg",
|
|
14578
14519
|
{
|
|
14579
14520
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -14581,16 +14522,16 @@ function UnavailableChatIcon(props) {
|
|
|
14581
14522
|
fill: "currentColor",
|
|
14582
14523
|
"aria-hidden": true,
|
|
14583
14524
|
...props,
|
|
14584
|
-
children: /* @__PURE__ */
|
|
14525
|
+
children: /* @__PURE__ */ jsx15("path", { d: "M20.833 2.125C21.6507 2.125 22.4355 2.45019 23.0137 3.02832C23.5916 3.60645 23.9159 4.39053 23.916 5.20801V17.708C23.916 18.5257 23.5918 19.3104 23.0137 19.8887C22.4355 20.4668 21.6507 20.792 20.833 20.792H7.1123C6.82516 20.7922 6.5497 20.9063 6.34668 21.1094L4.05273 23.4033C3.80954 23.6464 3.49934 23.8118 3.16211 23.8789C2.82492 23.9459 2.47487 23.9118 2.15723 23.7803C1.83953 23.6486 1.56707 23.4256 1.37598 23.1396C1.18489 22.8536 1.08305 22.5168 1.08301 22.1729V5.20801C1.08309 4.39045 1.40827 3.60647 1.98633 3.02832C2.56441 2.45024 3.3485 2.12517 4.16602 2.125H20.833ZM16.1533 7.80566C15.7628 7.41518 15.1298 7.41527 14.7393 7.80566L12.5 10.0439L10.2607 7.80469C9.87031 7.41464 9.23712 7.41465 8.84668 7.80469C8.45627 8.19509 8.45651 8.8282 8.84668 9.21875L11.0859 11.458L8.84668 13.6982C8.45651 14.0888 8.45627 14.7219 8.84668 15.1123C9.2371 15.5026 9.87024 15.5024 10.2607 15.1123L12.5 12.873L14.7393 15.1113C15.1298 15.5017 15.7628 15.5018 16.1533 15.1113C16.5434 14.7208 16.5436 14.0877 16.1533 13.6973L13.9141 11.458L16.1533 9.21973C16.5437 8.82924 16.5437 8.19616 16.1533 7.80566Z" })
|
|
14585
14526
|
}
|
|
14586
14527
|
);
|
|
14587
14528
|
}
|
|
14588
14529
|
|
|
14589
14530
|
// app/renderer/components/icons/EnvironmentLinedIcon.tsx
|
|
14590
|
-
import { jsx as
|
|
14531
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
14591
14532
|
function EnvironmentLinedIcon(props) {
|
|
14592
14533
|
"use memo";
|
|
14593
|
-
return /* @__PURE__ */
|
|
14534
|
+
return /* @__PURE__ */ jsx16(
|
|
14594
14535
|
"svg",
|
|
14595
14536
|
{
|
|
14596
14537
|
width: "24",
|
|
@@ -14599,7 +14540,7 @@ function EnvironmentLinedIcon(props) {
|
|
|
14599
14540
|
fill: "none",
|
|
14600
14541
|
xmlns: "http://www.w3.org/2000/svg",
|
|
14601
14542
|
...props,
|
|
14602
|
-
children: /* @__PURE__ */
|
|
14543
|
+
children: /* @__PURE__ */ jsx16(
|
|
14603
14544
|
"path",
|
|
14604
14545
|
{
|
|
14605
14546
|
d: "M2.0094 19.0001C2.56169 19.0001 3.0094 19.4478 3.0094 20.0001C3.0094 20.5523 2.56169 21.0001 2.0094 21.0001H1.99964C1.44752 20.9999 0.999635 20.5522 0.999635 20.0001C0.999635 19.4479 1.44752 19.0002 1.99964 19.0001H2.0094ZM1.01624 15.8174C1.1173 15.2748 1.63961 14.9161 2.18225 15.0166C3.37336 15.2385 4.47004 15.8162 5.32679 16.6729C6.18355 17.5297 6.76118 18.6263 6.98304 19.8174C7.08384 20.3602 6.72504 20.8824 6.18226 20.9835C5.63962 21.084 5.11731 20.7253 5.01624 20.1827C4.86826 19.3888 4.48377 18.658 3.91272 18.087C3.34169 17.516 2.61086 17.1314 1.81702 16.9834C1.27446 16.8822 0.915501 16.3601 1.01624 15.8174ZM2.1051 11.0059C4.37989 11.2473 6.50315 12.2614 8.12074 13.8789C9.73833 15.4965 10.7524 17.6197 10.9938 19.8946C11.052 20.4438 10.6543 20.9359 10.1051 20.9942C9.55607 21.0523 9.06377 20.6546 9.0055 20.1055C8.81236 18.2857 8.00074 16.5871 6.70667 15.293C5.41262 13.999 3.71397 13.1873 1.89417 12.9942C1.34517 12.9357 0.947265 12.4436 1.00549 11.8946C1.06376 11.3455 1.55606 10.9478 2.1051 11.0059ZM19.9997 3C20.7952 3 21.5582 3.31641 22.1208 3.87891C22.6834 4.44152 22.9997 5.20436 22.9997 6.00001V18.0001C22.9997 18.7957 22.6834 19.5585 22.1208 20.1212C21.5582 20.6837 20.7952 21.0001 19.9997 21.0001H13.9996C13.4475 20.9999 12.9996 20.5522 12.9996 20.0001C12.9996 19.4479 13.4475 19.0002 13.9996 19.0001H19.9997C20.2648 19.0001 20.5192 18.8945 20.7067 18.7071C20.8942 18.5195 20.9997 18.2653 20.9997 18.0001V6.00001C20.9997 5.73479 20.8942 5.48051 20.7067 5.29298C20.5192 5.10555 20.2648 5.00001 19.9997 5.00001H3.99964C3.73455 5.0001 3.48006 5.10552 3.29261 5.29298C3.10518 5.4805 2.99964 5.73488 2.99964 6.00001V8.00002C2.99964 8.5523 2.55192 9.00002 1.99964 9.00002C1.44752 8.99983 0.999635 8.55218 0.999635 8.00002V6.00001C0.999635 5.20444 1.31605 4.4415 1.87854 3.87891C2.44107 3.31638 3.20412 3.0001 3.99964 3H19.9997Z",
|
|
@@ -14959,7 +14900,7 @@ var styles = {
|
|
|
14959
14900
|
var RoomIssueNode_styles_default = styles;
|
|
14960
14901
|
|
|
14961
14902
|
// agent-gui/RoomIssueNode/TaskSearchField.tsx
|
|
14962
|
-
import { jsx as
|
|
14903
|
+
import { jsx as jsx17, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
14963
14904
|
function TaskSearchField({
|
|
14964
14905
|
ariaLabel,
|
|
14965
14906
|
className,
|
|
@@ -14979,7 +14920,7 @@ function TaskSearchField({
|
|
|
14979
14920
|
className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
|
|
14980
14921
|
"data-has-value": searchInput.value ? "true" : "false",
|
|
14981
14922
|
children: [
|
|
14982
|
-
/* @__PURE__ */
|
|
14923
|
+
/* @__PURE__ */ jsx17(
|
|
14983
14924
|
Input,
|
|
14984
14925
|
{
|
|
14985
14926
|
type: "search",
|
|
@@ -15002,7 +14943,7 @@ function TaskSearchField({
|
|
|
15002
14943
|
"data-testid": dataTestId
|
|
15003
14944
|
}
|
|
15004
14945
|
),
|
|
15005
|
-
searchInput.value ? /* @__PURE__ */
|
|
14946
|
+
searchInput.value ? /* @__PURE__ */ jsx17(
|
|
15006
14947
|
"button",
|
|
15007
14948
|
{
|
|
15008
14949
|
type: "button",
|
|
@@ -15010,7 +14951,7 @@ function TaskSearchField({
|
|
|
15010
14951
|
"aria-label": clearAriaLabel ?? t("common.clear"),
|
|
15011
14952
|
onMouseDown: (event) => event.preventDefault(),
|
|
15012
14953
|
onClick: searchInput.clearValue,
|
|
15013
|
-
children: /* @__PURE__ */
|
|
14954
|
+
children: /* @__PURE__ */ jsx17(CloseLinedIcon, { "aria-hidden": "true" })
|
|
15014
14955
|
}
|
|
15015
14956
|
) : null
|
|
15016
14957
|
]
|
|
@@ -15049,7 +14990,7 @@ import {
|
|
|
15049
14990
|
useAnimation,
|
|
15050
14991
|
useReducedMotion
|
|
15051
14992
|
} from "framer-motion";
|
|
15052
|
-
import { jsx as
|
|
14993
|
+
import { jsx as jsx18, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
15053
14994
|
var CAST_VARIANTS = {
|
|
15054
14995
|
normal: { opacity: 1 },
|
|
15055
14996
|
animate: (custom) => ({
|
|
@@ -15117,7 +15058,7 @@ var CastIcon = forwardRef2(
|
|
|
15117
15058
|
},
|
|
15118
15059
|
[onMouseLeave, stopAnimation]
|
|
15119
15060
|
);
|
|
15120
|
-
return /* @__PURE__ */
|
|
15061
|
+
return /* @__PURE__ */ jsx18(
|
|
15121
15062
|
"div",
|
|
15122
15063
|
{
|
|
15123
15064
|
className: cn("inline-flex items-center justify-center", className),
|
|
@@ -15137,8 +15078,8 @@ var CastIcon = forwardRef2(
|
|
|
15137
15078
|
width: size,
|
|
15138
15079
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15139
15080
|
children: [
|
|
15140
|
-
/* @__PURE__ */
|
|
15141
|
-
/* @__PURE__ */
|
|
15081
|
+
/* @__PURE__ */ jsx18("path", { d: "M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6" }),
|
|
15082
|
+
/* @__PURE__ */ jsx18(
|
|
15142
15083
|
motion.path,
|
|
15143
15084
|
{
|
|
15144
15085
|
animate: controls,
|
|
@@ -15147,7 +15088,7 @@ var CastIcon = forwardRef2(
|
|
|
15147
15088
|
variants: CAST_VARIANTS
|
|
15148
15089
|
}
|
|
15149
15090
|
),
|
|
15150
|
-
/* @__PURE__ */
|
|
15091
|
+
/* @__PURE__ */ jsx18(
|
|
15151
15092
|
motion.path,
|
|
15152
15093
|
{
|
|
15153
15094
|
animate: controls,
|
|
@@ -15156,7 +15097,7 @@ var CastIcon = forwardRef2(
|
|
|
15156
15097
|
variants: CAST_VARIANTS
|
|
15157
15098
|
}
|
|
15158
15099
|
),
|
|
15159
|
-
/* @__PURE__ */
|
|
15100
|
+
/* @__PURE__ */ jsx18(
|
|
15160
15101
|
motion.line,
|
|
15161
15102
|
{
|
|
15162
15103
|
animate: controls,
|
|
@@ -15206,7 +15147,7 @@ var styles2 = {
|
|
|
15206
15147
|
var AgentGUIChrome_styles_default = styles2;
|
|
15207
15148
|
|
|
15208
15149
|
// agent-gui/agentGuiNode/AgentSessionChrome.tsx
|
|
15209
|
-
import { Fragment as Fragment2, jsx as
|
|
15150
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
15210
15151
|
function splitTrailingEllipsis(message) {
|
|
15211
15152
|
const match = message.match(/^(.*?)(\.{3}|…)\s*$/);
|
|
15212
15153
|
if (!match) {
|
|
@@ -15220,9 +15161,9 @@ function splitTrailingEllipsis(message) {
|
|
|
15220
15161
|
function LoadingEllipsis() {
|
|
15221
15162
|
"use memo";
|
|
15222
15163
|
return /* @__PURE__ */ jsxs7("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
|
|
15223
|
-
/* @__PURE__ */
|
|
15224
|
-
/* @__PURE__ */
|
|
15225
|
-
/* @__PURE__ */
|
|
15164
|
+
/* @__PURE__ */ jsx19("span", {}),
|
|
15165
|
+
/* @__PURE__ */ jsx19("span", {}),
|
|
15166
|
+
/* @__PURE__ */ jsx19("span", {})
|
|
15226
15167
|
] });
|
|
15227
15168
|
}
|
|
15228
15169
|
function AgentChromeNotice({
|
|
@@ -15235,7 +15176,7 @@ function AgentChromeNotice({
|
|
|
15235
15176
|
}) {
|
|
15236
15177
|
"use memo";
|
|
15237
15178
|
const fullMessage = description ? `${title} ${description}` : title;
|
|
15238
|
-
return /* @__PURE__ */
|
|
15179
|
+
return /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx19(
|
|
15239
15180
|
"section",
|
|
15240
15181
|
{
|
|
15241
15182
|
className: cn(
|
|
@@ -15246,16 +15187,16 @@ function AgentChromeNotice({
|
|
|
15246
15187
|
"data-expanded": "false",
|
|
15247
15188
|
role,
|
|
15248
15189
|
"data-testid": testId,
|
|
15249
|
-
children: /* @__PURE__ */
|
|
15250
|
-
icon ? /* @__PURE__ */
|
|
15190
|
+
children: /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15191
|
+
icon ? /* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: icon }) : null,
|
|
15251
15192
|
/* @__PURE__ */ jsxs7(
|
|
15252
15193
|
"p",
|
|
15253
15194
|
{
|
|
15254
15195
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
15255
15196
|
title: fullMessage,
|
|
15256
15197
|
children: [
|
|
15257
|
-
/* @__PURE__ */
|
|
15258
|
-
description ? /* @__PURE__ */
|
|
15198
|
+
/* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: title }),
|
|
15199
|
+
description ? /* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeNoticeDescription, children: description }) : null
|
|
15259
15200
|
]
|
|
15260
15201
|
}
|
|
15261
15202
|
)
|
|
@@ -15404,7 +15345,7 @@ function AgentSessionChrome({
|
|
|
15404
15345
|
event.stopPropagation();
|
|
15405
15346
|
};
|
|
15406
15347
|
return /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: [
|
|
15407
|
-
visibleAuth ? /* @__PURE__ */
|
|
15348
|
+
visibleAuth ? /* @__PURE__ */ jsx19(
|
|
15408
15349
|
"section",
|
|
15409
15350
|
{
|
|
15410
15351
|
ref: authCardRef,
|
|
@@ -15416,7 +15357,7 @@ function AgentSessionChrome({
|
|
|
15416
15357
|
onKeyDown: handleExpandableCardKeyDown("auth"),
|
|
15417
15358
|
children: /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
15418
15359
|
/* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15419
|
-
/* @__PURE__ */
|
|
15360
|
+
/* @__PURE__ */ jsx19(
|
|
15420
15361
|
"p",
|
|
15421
15362
|
{
|
|
15422
15363
|
ref: authMessageRef,
|
|
@@ -15425,7 +15366,7 @@ function AgentSessionChrome({
|
|
|
15425
15366
|
children: visibleAuth.message
|
|
15426
15367
|
}
|
|
15427
15368
|
),
|
|
15428
|
-
/* @__PURE__ */
|
|
15369
|
+
/* @__PURE__ */ jsx19(
|
|
15429
15370
|
ChevronDown,
|
|
15430
15371
|
{
|
|
15431
15372
|
"aria-hidden": "true",
|
|
@@ -15438,7 +15379,7 @@ function AgentSessionChrome({
|
|
|
15438
15379
|
)
|
|
15439
15380
|
] }),
|
|
15440
15381
|
/* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeInlineActions, children: [
|
|
15441
|
-
onAuthLogin ? /* @__PURE__ */
|
|
15382
|
+
onAuthLogin ? /* @__PURE__ */ jsx19(
|
|
15442
15383
|
Button2,
|
|
15443
15384
|
{
|
|
15444
15385
|
type: "button",
|
|
@@ -15451,7 +15392,7 @@ function AgentSessionChrome({
|
|
|
15451
15392
|
children: labels.authLogin ?? labels.retryActivation
|
|
15452
15393
|
}
|
|
15453
15394
|
) : null,
|
|
15454
|
-
/* @__PURE__ */
|
|
15395
|
+
/* @__PURE__ */ jsx19(
|
|
15455
15396
|
Button2,
|
|
15456
15397
|
{
|
|
15457
15398
|
type: "button",
|
|
@@ -15469,9 +15410,9 @@ function AgentSessionChrome({
|
|
|
15469
15410
|
}
|
|
15470
15411
|
) : null,
|
|
15471
15412
|
chrome.approval ? /* @__PURE__ */ jsxs7("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardAction), children: [
|
|
15472
|
-
/* @__PURE__ */
|
|
15473
|
-
/* @__PURE__ */
|
|
15474
|
-
/* @__PURE__ */
|
|
15413
|
+
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeTitle, children: labels.approvalRequired }),
|
|
15414
|
+
/* @__PURE__ */ jsx19("p", { className: AgentGUIChrome_styles_default.chromeMessage, children: chrome.approval.title }),
|
|
15415
|
+
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeActions, children: chrome.approval.options.map((option) => /* @__PURE__ */ jsx19(
|
|
15475
15416
|
"button",
|
|
15476
15417
|
{
|
|
15477
15418
|
type: "button",
|
|
@@ -15485,7 +15426,7 @@ function AgentSessionChrome({
|
|
|
15485
15426
|
option.id
|
|
15486
15427
|
)) })
|
|
15487
15428
|
] }) : null,
|
|
15488
|
-
visibleRecovery ? /* @__PURE__ */
|
|
15429
|
+
visibleRecovery ? /* @__PURE__ */ jsx19(
|
|
15489
15430
|
"section",
|
|
15490
15431
|
{
|
|
15491
15432
|
ref: recoveryCardRef,
|
|
@@ -15503,7 +15444,7 @@ function AgentSessionChrome({
|
|
|
15503
15444
|
onKeyDown: handleExpandableCardKeyDown("recovery"),
|
|
15504
15445
|
children: /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
15505
15446
|
/* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15506
|
-
visibleRecovery.kind === "activating" ? /* @__PURE__ */
|
|
15447
|
+
visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsx19(
|
|
15507
15448
|
CastIcon,
|
|
15508
15449
|
{
|
|
15509
15450
|
active: true,
|
|
@@ -15513,7 +15454,7 @@ function AgentSessionChrome({
|
|
|
15513
15454
|
size: 16
|
|
15514
15455
|
}
|
|
15515
15456
|
) : null,
|
|
15516
|
-
/* @__PURE__ */
|
|
15457
|
+
/* @__PURE__ */ jsx19(
|
|
15517
15458
|
"p",
|
|
15518
15459
|
{
|
|
15519
15460
|
ref: recoveryMessageRef,
|
|
@@ -15521,12 +15462,12 @@ function AgentSessionChrome({
|
|
|
15521
15462
|
"aria-label": visibleRecovery.kind === "activating" ? recoveryMessage : void 0,
|
|
15522
15463
|
title: recoveryMessage,
|
|
15523
15464
|
children: visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
15524
|
-
/* @__PURE__ */
|
|
15525
|
-
activatingMessage.ellipsis ? /* @__PURE__ */
|
|
15465
|
+
/* @__PURE__ */ jsx19("span", { className: "tsh-inline-loading-label", children: activatingMessage.label }),
|
|
15466
|
+
activatingMessage.ellipsis ? /* @__PURE__ */ jsx19(LoadingEllipsis, {}) : null
|
|
15526
15467
|
] }) : recoveryMessage
|
|
15527
15468
|
}
|
|
15528
15469
|
),
|
|
15529
|
-
/* @__PURE__ */
|
|
15470
|
+
/* @__PURE__ */ jsx19(
|
|
15530
15471
|
ChevronDown,
|
|
15531
15472
|
{
|
|
15532
15473
|
"aria-hidden": "true",
|
|
@@ -15538,7 +15479,7 @@ function AgentSessionChrome({
|
|
|
15538
15479
|
}
|
|
15539
15480
|
)
|
|
15540
15481
|
] }),
|
|
15541
|
-
/* @__PURE__ */
|
|
15482
|
+
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeInlineActions, children: visibleRecovery.kind === "failed" && visibleRecovery.followupAction === "continue-in-new-conversation" ? /* @__PURE__ */ jsx19(
|
|
15542
15483
|
Button2,
|
|
15543
15484
|
{
|
|
15544
15485
|
type: "button",
|
|
@@ -15551,7 +15492,7 @@ function AgentSessionChrome({
|
|
|
15551
15492
|
},
|
|
15552
15493
|
children: labels.continueInNewConversation
|
|
15553
15494
|
}
|
|
15554
|
-
) : visibleRecovery.kind === "failed" && visibleRecovery.canRetry !== false ? /* @__PURE__ */
|
|
15495
|
+
) : visibleRecovery.kind === "failed" && visibleRecovery.canRetry !== false ? /* @__PURE__ */ jsx19(
|
|
15555
15496
|
Button2,
|
|
15556
15497
|
{
|
|
15557
15498
|
type: "button",
|
|
@@ -15573,7 +15514,7 @@ function AgentSessionChrome({
|
|
|
15573
15514
|
|
|
15574
15515
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
15575
15516
|
import { Target } from "lucide-react";
|
|
15576
|
-
import { jsx as
|
|
15517
|
+
import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
15577
15518
|
var TERMINAL_GOAL_STATUSES = /* @__PURE__ */ new Set(["complete", "completed", "done"]);
|
|
15578
15519
|
function normalizeGoalStatus(status) {
|
|
15579
15520
|
return (status ?? "").trim().toLowerCase();
|
|
@@ -15627,7 +15568,7 @@ function AgentGoalBanner({
|
|
|
15627
15568
|
labels
|
|
15628
15569
|
});
|
|
15629
15570
|
const fullMessage = `${labels.goalLabel} ${description}`;
|
|
15630
|
-
return /* @__PURE__ */
|
|
15571
|
+
return /* @__PURE__ */ jsx20("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx20(
|
|
15631
15572
|
"section",
|
|
15632
15573
|
{
|
|
15633
15574
|
className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
|
|
@@ -15637,20 +15578,20 @@ function AgentGoalBanner({
|
|
|
15637
15578
|
"data-testid": "agent-gui-goal-banner",
|
|
15638
15579
|
children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
15639
15580
|
/* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15640
|
-
/* @__PURE__ */
|
|
15581
|
+
/* @__PURE__ */ jsx20("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx20(Target, { "aria-hidden": true, className: "size-3.5" }) }),
|
|
15641
15582
|
/* @__PURE__ */ jsxs8(
|
|
15642
15583
|
"p",
|
|
15643
15584
|
{
|
|
15644
15585
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
15645
15586
|
title: fullMessage,
|
|
15646
15587
|
children: [
|
|
15647
|
-
/* @__PURE__ */
|
|
15648
|
-
/* @__PURE__ */
|
|
15588
|
+
/* @__PURE__ */ jsx20("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: labels.goalLabel }),
|
|
15589
|
+
/* @__PURE__ */ jsx20("span", { className: AgentGUIChrome_styles_default.chromeNoticeDescription, children: description })
|
|
15649
15590
|
]
|
|
15650
15591
|
}
|
|
15651
15592
|
)
|
|
15652
15593
|
] }),
|
|
15653
|
-
/* @__PURE__ */
|
|
15594
|
+
/* @__PURE__ */ jsx20(
|
|
15654
15595
|
"span",
|
|
15655
15596
|
{
|
|
15656
15597
|
className: AgentGUIChrome_styles_default.chromeGoalHint,
|
|
@@ -16138,7 +16079,7 @@ import {
|
|
|
16138
16079
|
Target as Target2,
|
|
16139
16080
|
ZapIcon
|
|
16140
16081
|
} from "lucide-react";
|
|
16141
|
-
import { jsx as
|
|
16082
|
+
import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
16142
16083
|
var paletteStyles = {
|
|
16143
16084
|
palette: "nodrag agent-gui-node__mention-palette flex h-full min-h-0 flex-col gap-1 overflow-y-auto px-1 pb-1 pt-2 [-webkit-app-region:no-drag]",
|
|
16144
16085
|
option: "nodrag relative flex min-h-9 w-full min-w-0 cursor-pointer select-none items-center gap-2 overflow-hidden rounded-[6px] border-0 bg-transparent px-2.5 py-2 text-left text-[13px] text-[var(--text-primary)] outline-hidden transition-colors duration-200 [-webkit-app-region:no-drag] focus-visible:outline-none active:bg-[var(--transparency-active)] data-[highlighted]:bg-[var(--transparency-block)] data-[highlighted]:text-[var(--text-primary)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -16186,11 +16127,11 @@ function AgentSlashCommandPalette({
|
|
|
16186
16127
|
firstEntryIndexByType.set(groupType, index);
|
|
16187
16128
|
}
|
|
16188
16129
|
});
|
|
16189
|
-
return /* @__PURE__ */
|
|
16130
|
+
return /* @__PURE__ */ jsx21("div", { className: paletteStyles.palette, role: "listbox", "aria-label": label, children: entries.map((entry, index) => {
|
|
16190
16131
|
const isHighlighted = index === highlightedIndex;
|
|
16191
16132
|
const groupType = entryGroupType(entry);
|
|
16192
16133
|
const entryIcon = slashPaletteEntryIcon(entry);
|
|
16193
|
-
const groupHeader = showGroupHeaders && firstEntryIndexByType.get(groupType) === index ? /* @__PURE__ */
|
|
16134
|
+
const groupHeader = showGroupHeaders && firstEntryIndexByType.get(groupType) === index ? /* @__PURE__ */ jsx21(
|
|
16194
16135
|
"div",
|
|
16195
16136
|
{
|
|
16196
16137
|
"aria-hidden": "true",
|
|
@@ -16239,15 +16180,15 @@ function AgentSlashCommandPalette({
|
|
|
16239
16180
|
onSelectSkill(entry.skill);
|
|
16240
16181
|
},
|
|
16241
16182
|
children: [
|
|
16242
|
-
entryIcon ? /* @__PURE__ */
|
|
16183
|
+
entryIcon ? /* @__PURE__ */ jsx21("span", { "aria-hidden": "true", className: paletteStyles.icon, children: entryIcon }) : null,
|
|
16243
16184
|
/* @__PURE__ */ jsxs9("span", { className: paletteStyles.copy, children: [
|
|
16244
16185
|
/* @__PURE__ */ jsxs9("span", { className: paletteStyles.name, children: [
|
|
16245
|
-
/* @__PURE__ */
|
|
16246
|
-
entry.type === "command" && entry.secondaryLabel ? /* @__PURE__ */
|
|
16186
|
+
/* @__PURE__ */ jsx21("span", { className: paletteStyles.primaryName, children: entry.type === "command" ? entry.primaryLabel ?? entry.label : entry.label }),
|
|
16187
|
+
entry.type === "command" && entry.secondaryLabel ? /* @__PURE__ */ jsx21("span", { className: paletteStyles.secondaryName, children: entry.secondaryLabel }) : null
|
|
16247
16188
|
] }),
|
|
16248
|
-
entry.description ? /* @__PURE__ */
|
|
16189
|
+
entry.description ? /* @__PURE__ */ jsx21("span", { className: paletteStyles.descriptionText, children: entry.description }) : null
|
|
16249
16190
|
] }),
|
|
16250
|
-
entry.type === "capability" && entry.settingsLabel && onSelectCapabilitySettings ? /* @__PURE__ */
|
|
16191
|
+
entry.type === "capability" && entry.settingsLabel && onSelectCapabilitySettings ? /* @__PURE__ */ jsx21(
|
|
16251
16192
|
"button",
|
|
16252
16193
|
{
|
|
16253
16194
|
"aria-label": entry.settingsAriaLabel ?? entry.settingsLabel,
|
|
@@ -16302,24 +16243,24 @@ function labelForEntryGroupType(groupType, labels) {
|
|
|
16302
16243
|
var SLASH_PALETTE_ICON_CLASS = "size-3";
|
|
16303
16244
|
function slashPaletteEntryIcon(entry) {
|
|
16304
16245
|
if (entry.type === "capability") {
|
|
16305
|
-
return entry.capability.capability === "computerUse" ? /* @__PURE__ */
|
|
16246
|
+
return entry.capability.capability === "computerUse" ? /* @__PURE__ */ jsx21(Monitor, { className: SLASH_PALETTE_ICON_CLASS }) : /* @__PURE__ */ jsx21(Globe, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16306
16247
|
}
|
|
16307
16248
|
if (entry.type !== "command") {
|
|
16308
16249
|
return null;
|
|
16309
16250
|
}
|
|
16310
16251
|
switch (entry.command.name.trim().toLowerCase()) {
|
|
16311
16252
|
case "compact":
|
|
16312
|
-
return /* @__PURE__ */
|
|
16253
|
+
return /* @__PURE__ */ jsx21(Minimize2, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16313
16254
|
case "fast":
|
|
16314
|
-
return /* @__PURE__ */
|
|
16255
|
+
return /* @__PURE__ */ jsx21(ZapIcon, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16315
16256
|
case "goal":
|
|
16316
|
-
return /* @__PURE__ */
|
|
16257
|
+
return /* @__PURE__ */ jsx21(Target2, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16317
16258
|
case "plan":
|
|
16318
|
-
return /* @__PURE__ */
|
|
16259
|
+
return /* @__PURE__ */ jsx21(ListChecks, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16319
16260
|
case "review":
|
|
16320
|
-
return /* @__PURE__ */
|
|
16261
|
+
return /* @__PURE__ */ jsx21(Search, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16321
16262
|
case "status":
|
|
16322
|
-
return /* @__PURE__ */
|
|
16263
|
+
return /* @__PURE__ */ jsx21(Info, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16323
16264
|
default:
|
|
16324
16265
|
return null;
|
|
16325
16266
|
}
|
|
@@ -16470,7 +16411,7 @@ var styles3 = {
|
|
|
16470
16411
|
var AgentGUINode_styles_default = styles3;
|
|
16471
16412
|
|
|
16472
16413
|
// agent-gui/agentGuiNode/AgentQueuedPromptPanel.tsx
|
|
16473
|
-
import { jsx as
|
|
16414
|
+
import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
16474
16415
|
var EMPTY_WORKSPACE_APP_ICONS = [];
|
|
16475
16416
|
function queuedPromptImages(queuedPrompt) {
|
|
16476
16417
|
return agentPromptContentImageBlocks(
|
|
@@ -16597,9 +16538,9 @@ function AgentQueuedPromptPanel({
|
|
|
16597
16538
|
onKeyDown: handleKeyDown,
|
|
16598
16539
|
children: [
|
|
16599
16540
|
/* @__PURE__ */ jsxs10("div", { className: AgentGUINode_styles_default.composerQueuedPromptHeader, children: [
|
|
16600
|
-
/* @__PURE__ */
|
|
16601
|
-
/* @__PURE__ */
|
|
16602
|
-
canExpand ? /* @__PURE__ */
|
|
16541
|
+
/* @__PURE__ */ jsx22("span", { className: AgentGUINode_styles_default.composerQueuedPromptLabel, children: labels.queuedLabel }),
|
|
16542
|
+
/* @__PURE__ */ jsx22("span", { className: AgentGUINode_styles_default.composerQueuedPromptCount, children: queuedPrompts.length }),
|
|
16543
|
+
canExpand ? /* @__PURE__ */ jsx22(
|
|
16603
16544
|
ChevronRight,
|
|
16604
16545
|
{
|
|
16605
16546
|
"aria-hidden": "true",
|
|
@@ -16610,7 +16551,7 @@ function AgentQueuedPromptPanel({
|
|
|
16610
16551
|
}
|
|
16611
16552
|
) : null
|
|
16612
16553
|
] }),
|
|
16613
|
-
/* @__PURE__ */
|
|
16554
|
+
/* @__PURE__ */ jsx22(
|
|
16614
16555
|
"div",
|
|
16615
16556
|
{
|
|
16616
16557
|
ref: queuedPromptListRef,
|
|
@@ -16629,8 +16570,8 @@ function AgentQueuedPromptPanel({
|
|
|
16629
16570
|
"data-testid": `agent-gui-composer-queued-prompt-${queuedPrompt.id}`,
|
|
16630
16571
|
"data-draining": isDraining ? "true" : "false",
|
|
16631
16572
|
children: [
|
|
16632
|
-
/* @__PURE__ */
|
|
16633
|
-
displayText ? /* @__PURE__ */
|
|
16573
|
+
/* @__PURE__ */ jsx22("div", { className: AgentGUINode_styles_default.composerQueuedPromptMain, children: /* @__PURE__ */ jsxs10("div", { className: AgentGUINode_styles_default.composerQueuedPromptBody, title, children: [
|
|
16574
|
+
displayText ? /* @__PURE__ */ jsx22(
|
|
16634
16575
|
"div",
|
|
16635
16576
|
{
|
|
16636
16577
|
ref: queuedPrompts.length === 1 ? singlePromptTextRef : void 0,
|
|
@@ -16640,7 +16581,7 @@ function AgentQueuedPromptPanel({
|
|
|
16640
16581
|
event.stopPropagation();
|
|
16641
16582
|
}
|
|
16642
16583
|
},
|
|
16643
|
-
children: /* @__PURE__ */
|
|
16584
|
+
children: /* @__PURE__ */ jsx22(
|
|
16644
16585
|
AgentMessageMarkdown,
|
|
16645
16586
|
{
|
|
16646
16587
|
content: displayText,
|
|
@@ -16652,53 +16593,58 @@ function AgentQueuedPromptPanel({
|
|
|
16652
16593
|
)
|
|
16653
16594
|
}
|
|
16654
16595
|
) : null,
|
|
16655
|
-
images.length > 0 ? /* @__PURE__ */
|
|
16656
|
-
|
|
16657
|
-
|
|
16658
|
-
|
|
16659
|
-
|
|
16660
|
-
|
|
16661
|
-
|
|
16662
|
-
|
|
16663
|
-
|
|
16596
|
+
images.length > 0 ? /* @__PURE__ */ jsx22("div", { className: AgentGUINode_styles_default.composerQueuedPromptImages, children: images.slice(0, 3).map((image, index) => {
|
|
16597
|
+
const src = `data:${image.mimeType};base64,${image.data}`;
|
|
16598
|
+
return /* @__PURE__ */ jsx22(
|
|
16599
|
+
ZoomableImage,
|
|
16600
|
+
{
|
|
16601
|
+
alt: image.name?.trim() || "",
|
|
16602
|
+
className: AgentGUINode_styles_default.composerQueuedPromptImage,
|
|
16603
|
+
draggable: false,
|
|
16604
|
+
src,
|
|
16605
|
+
wrapElement: "span"
|
|
16606
|
+
},
|
|
16607
|
+
`${queuedPrompt.id}:image:${index}`
|
|
16608
|
+
);
|
|
16609
|
+
}) }) : null
|
|
16664
16610
|
] }) }),
|
|
16665
16611
|
/* @__PURE__ */ jsxs10("div", { className: AgentGUINode_styles_default.composerQueuedPromptActions, children: [
|
|
16666
|
-
/* @__PURE__ */
|
|
16612
|
+
/* @__PURE__ */ jsx22(
|
|
16667
16613
|
CanvasNodeGhostIconButton,
|
|
16668
16614
|
{
|
|
16669
16615
|
"aria-label": labels.sendQueuedPromptNext,
|
|
16670
16616
|
disabled: isDraining,
|
|
16671
16617
|
onClick: () => onSendQueuedPromptNext(queuedPrompt.id),
|
|
16672
|
-
children: /* @__PURE__ */
|
|
16618
|
+
children: /* @__PURE__ */ jsx22(CanvasNodeGuideLinedIcon, { "aria-hidden": "true" })
|
|
16673
16619
|
}
|
|
16674
16620
|
),
|
|
16675
|
-
/* @__PURE__ */
|
|
16621
|
+
/* @__PURE__ */ jsx22(
|
|
16676
16622
|
CanvasNodeGhostIconButton,
|
|
16677
16623
|
{
|
|
16678
16624
|
"aria-label": labels.deleteQueuedPrompt,
|
|
16679
16625
|
disabled: isDraining,
|
|
16680
16626
|
onClick: () => onRemoveQueuedPrompt(queuedPrompt.id),
|
|
16681
|
-
children: /* @__PURE__ */
|
|
16627
|
+
children: /* @__PURE__ */ jsx22(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
|
|
16682
16628
|
}
|
|
16683
16629
|
),
|
|
16684
16630
|
/* @__PURE__ */ jsxs10(DropdownMenu, { children: [
|
|
16685
|
-
/* @__PURE__ */
|
|
16631
|
+
/* @__PURE__ */ jsx22(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx22(
|
|
16686
16632
|
CanvasNodeGhostIconButton,
|
|
16687
16633
|
{
|
|
16688
16634
|
"aria-label": labels.queuedPromptMoreActions,
|
|
16689
16635
|
disabled: isDraining,
|
|
16690
16636
|
stopsEventPropagation: false,
|
|
16691
16637
|
onClick: (event) => event.stopPropagation(),
|
|
16692
|
-
children: /* @__PURE__ */
|
|
16638
|
+
children: /* @__PURE__ */ jsx22(CanvasNodeMoreLinedIcon, { "aria-hidden": "true" })
|
|
16693
16639
|
}
|
|
16694
16640
|
) }),
|
|
16695
|
-
/* @__PURE__ */
|
|
16641
|
+
/* @__PURE__ */ jsx22(
|
|
16696
16642
|
DropdownMenuContent,
|
|
16697
16643
|
{
|
|
16698
16644
|
align: "end",
|
|
16699
16645
|
className: AgentGUINode_styles_default.composerMenuContent,
|
|
16700
16646
|
sideOffset: 8,
|
|
16701
|
-
children: /* @__PURE__ */
|
|
16647
|
+
children: /* @__PURE__ */ jsx22(
|
|
16702
16648
|
DropdownMenuItem,
|
|
16703
16649
|
{
|
|
16704
16650
|
className: AgentGUINode_styles_default.composerMenuItem,
|
|
@@ -16712,7 +16658,7 @@ function AgentQueuedPromptPanel({
|
|
|
16712
16658
|
onSelect: () => {
|
|
16713
16659
|
handleEditQueuedPromptSelect(queuedPrompt.id);
|
|
16714
16660
|
},
|
|
16715
|
-
children: /* @__PURE__ */
|
|
16661
|
+
children: /* @__PURE__ */ jsx22("span", { children: labels.editQueuedPrompt })
|
|
16716
16662
|
}
|
|
16717
16663
|
)
|
|
16718
16664
|
}
|
|
@@ -17096,7 +17042,7 @@ function optionsWithSelectedValue(options, selectedValue) {
|
|
|
17096
17042
|
}
|
|
17097
17043
|
|
|
17098
17044
|
// agent-gui/agentGuiNode/AgentComposerSettingsMenus.tsx
|
|
17099
|
-
import { Fragment as Fragment4, jsx as
|
|
17045
|
+
import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
17100
17046
|
function basenameProjectPath(path) {
|
|
17101
17047
|
const normalized = path.trim().replaceAll("\\", "/").replace(/\/+$/, "");
|
|
17102
17048
|
return normalized.split("/").filter(Boolean).at(-1) ?? path;
|
|
@@ -17148,7 +17094,7 @@ function AgentProjectDropdown({
|
|
|
17148
17094
|
className: "workspace-user-project-trigger-label",
|
|
17149
17095
|
"data-workspace-user-project-trigger-label": "true",
|
|
17150
17096
|
children: [
|
|
17151
|
-
selectedPath ? /* @__PURE__ */
|
|
17097
|
+
selectedPath ? /* @__PURE__ */ jsx23(FolderIcon, { "aria-hidden": true, className: "shrink-0", size: 15 }) : /* @__PURE__ */ jsx23(
|
|
17152
17098
|
NoWorkspaceLinedIcon,
|
|
17153
17099
|
{
|
|
17154
17100
|
"aria-hidden": true,
|
|
@@ -17157,16 +17103,16 @@ function AgentProjectDropdown({
|
|
|
17157
17103
|
size: 15
|
|
17158
17104
|
}
|
|
17159
17105
|
),
|
|
17160
|
-
/* @__PURE__ */
|
|
17106
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: triggerLabel })
|
|
17161
17107
|
]
|
|
17162
17108
|
}
|
|
17163
17109
|
),
|
|
17164
|
-
/* @__PURE__ */
|
|
17110
|
+
/* @__PURE__ */ jsx23(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
17165
17111
|
]
|
|
17166
17112
|
}
|
|
17167
17113
|
);
|
|
17168
17114
|
}
|
|
17169
|
-
return /* @__PURE__ */
|
|
17115
|
+
return /* @__PURE__ */ jsx23(
|
|
17170
17116
|
WorkspaceUserProjectSelect,
|
|
17171
17117
|
{
|
|
17172
17118
|
api: userProjectApi,
|
|
@@ -17186,7 +17132,7 @@ function AgentProjectDropdown({
|
|
|
17186
17132
|
i18n,
|
|
17187
17133
|
labels,
|
|
17188
17134
|
projectLocked: Boolean(composerSettings.projectLocked),
|
|
17189
|
-
renderAddProjectIcon: () => /* @__PURE__ */
|
|
17135
|
+
renderAddProjectIcon: () => /* @__PURE__ */ jsx23(
|
|
17190
17136
|
NewWorkspaceLinedIcon,
|
|
17191
17137
|
{
|
|
17192
17138
|
"aria-hidden": true,
|
|
@@ -17250,15 +17196,15 @@ function AgentPermissionModeDropdown({
|
|
|
17250
17196
|
"aria-label": labels.permissionLabel,
|
|
17251
17197
|
"data-permission-tone": triggerTone,
|
|
17252
17198
|
children: [
|
|
17253
|
-
/* @__PURE__ */
|
|
17254
|
-
/* @__PURE__ */
|
|
17199
|
+
/* @__PURE__ */ jsx23("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx23("span", { className: "truncate", children: triggerLabel }) }),
|
|
17200
|
+
/* @__PURE__ */ jsx23(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
17255
17201
|
]
|
|
17256
17202
|
}
|
|
17257
17203
|
);
|
|
17258
17204
|
if (previewMode) {
|
|
17259
17205
|
return trigger;
|
|
17260
17206
|
}
|
|
17261
|
-
const selectTrigger = /* @__PURE__ */
|
|
17207
|
+
const selectTrigger = /* @__PURE__ */ jsx23(
|
|
17262
17208
|
SelectTrigger,
|
|
17263
17209
|
{
|
|
17264
17210
|
className: cn2(
|
|
@@ -17269,7 +17215,7 @@ function AgentPermissionModeDropdown({
|
|
|
17269
17215
|
),
|
|
17270
17216
|
"aria-label": labels.permissionLabel,
|
|
17271
17217
|
"data-permission-tone": triggerTone,
|
|
17272
|
-
children: /* @__PURE__ */
|
|
17218
|
+
children: /* @__PURE__ */ jsx23("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx23("span", { className: "truncate", children: triggerLabel }) })
|
|
17273
17219
|
}
|
|
17274
17220
|
);
|
|
17275
17221
|
return /* @__PURE__ */ jsxs11(
|
|
@@ -17286,11 +17232,11 @@ function AgentPermissionModeDropdown({
|
|
|
17286
17232
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
17287
17233
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
17288
17234
|
/* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17289
|
-
/* @__PURE__ */
|
|
17290
|
-
/* @__PURE__ */
|
|
17235
|
+
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: selectTrigger }) }),
|
|
17236
|
+
/* @__PURE__ */ jsx23(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
17291
17237
|
] })
|
|
17292
17238
|
) : selectTrigger,
|
|
17293
|
-
isSelectOpen ? /* @__PURE__ */
|
|
17239
|
+
isSelectOpen ? /* @__PURE__ */ jsx23(
|
|
17294
17240
|
SelectContent,
|
|
17295
17241
|
{
|
|
17296
17242
|
align: "end",
|
|
@@ -17301,7 +17247,7 @@ function AgentPermissionModeDropdown({
|
|
|
17301
17247
|
AgentGUINode_styles_default.composerMenuContent,
|
|
17302
17248
|
"w-max min-w-[220px] max-w-[calc(100vw-32px)] data-[side=top]:!translate-y-0"
|
|
17303
17249
|
),
|
|
17304
|
-
children: permissionOptions.map((option) => /* @__PURE__ */
|
|
17250
|
+
children: permissionOptions.map((option) => /* @__PURE__ */ jsx23(
|
|
17305
17251
|
SelectItem,
|
|
17306
17252
|
{
|
|
17307
17253
|
value: option.value,
|
|
@@ -17309,8 +17255,8 @@ function AgentPermissionModeDropdown({
|
|
|
17309
17255
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "group/composer-option"),
|
|
17310
17256
|
onPointerDown: (event) => handleSelectedItemPointerDown(event, option.value),
|
|
17311
17257
|
children: /* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
17312
|
-
/* @__PURE__ */
|
|
17313
|
-
option.description ? /* @__PURE__ */
|
|
17258
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: option.label }),
|
|
17259
|
+
option.description ? /* @__PURE__ */ jsx23(
|
|
17314
17260
|
ComposerOptionInfoTooltip,
|
|
17315
17261
|
{
|
|
17316
17262
|
description: option.description,
|
|
@@ -17391,22 +17337,22 @@ function ComposerOptionInfoTooltip({
|
|
|
17391
17337
|
event.preventDefault();
|
|
17392
17338
|
event.stopPropagation();
|
|
17393
17339
|
};
|
|
17394
|
-
const trigger = /* @__PURE__ */
|
|
17340
|
+
const trigger = /* @__PURE__ */ jsx23(
|
|
17395
17341
|
"span",
|
|
17396
17342
|
{
|
|
17397
17343
|
className: "pointer-events-none inline-flex shrink-0 cursor-help text-[var(--agent-gui-text-tertiary)] opacity-0 transition-opacity group-hover/composer-option:pointer-events-auto group-hover/composer-option:opacity-100 group-data-[highlighted]/composer-option:pointer-events-auto group-data-[highlighted]/composer-option:opacity-100",
|
|
17398
17344
|
"data-agent-composer-option-info-trigger": "true",
|
|
17399
17345
|
onClick: stopSelect,
|
|
17400
17346
|
onPointerDown: stopSelect,
|
|
17401
|
-
children: /* @__PURE__ */
|
|
17347
|
+
children: /* @__PURE__ */ jsx23(RoomsHintIcon, { "aria-hidden": true, className: "size-3" })
|
|
17402
17348
|
}
|
|
17403
17349
|
);
|
|
17404
17350
|
if (!tooltipsEnabled) {
|
|
17405
17351
|
return trigger;
|
|
17406
17352
|
}
|
|
17407
17353
|
return /* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17408
|
-
/* @__PURE__ */
|
|
17409
|
-
/* @__PURE__ */
|
|
17354
|
+
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: trigger }),
|
|
17355
|
+
/* @__PURE__ */ jsx23(TooltipContent2, { side: "right", className: "max-w-[240px] whitespace-normal", children: description })
|
|
17410
17356
|
] });
|
|
17411
17357
|
}
|
|
17412
17358
|
function resolvePermissionModeTriggerTone(value) {
|
|
@@ -17461,7 +17407,7 @@ function AgentModelReasoningDropdown({
|
|
|
17461
17407
|
"data-agent-model-reasoning-trigger": "true",
|
|
17462
17408
|
children: [
|
|
17463
17409
|
/* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
17464
|
-
menu.speed.show && menu.trigger.isFast ? /* @__PURE__ */
|
|
17410
|
+
menu.speed.show && menu.trigger.isFast ? /* @__PURE__ */ jsx23(
|
|
17465
17411
|
ZapIcon2,
|
|
17466
17412
|
{
|
|
17467
17413
|
"aria-hidden": true,
|
|
@@ -17470,12 +17416,12 @@ function AgentModelReasoningDropdown({
|
|
|
17470
17416
|
strokeWidth: 2.5
|
|
17471
17417
|
}
|
|
17472
17418
|
) : null,
|
|
17473
|
-
menu.trigger.showCombined ? /* @__PURE__ */
|
|
17474
|
-
/* @__PURE__ */
|
|
17475
|
-
/* @__PURE__ */
|
|
17419
|
+
menu.trigger.showCombined ? /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.combinedLabel }) : /* @__PURE__ */ jsxs11(Fragment4, { children: [
|
|
17420
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.modelLabel }),
|
|
17421
|
+
/* @__PURE__ */ jsx23("span", { className: "shrink-0", children: menu.trigger.reasoningLabel })
|
|
17476
17422
|
] })
|
|
17477
17423
|
] }),
|
|
17478
|
-
/* @__PURE__ */
|
|
17424
|
+
/* @__PURE__ */ jsx23(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
17479
17425
|
]
|
|
17480
17426
|
}
|
|
17481
17427
|
);
|
|
@@ -17488,10 +17434,10 @@ function AgentModelReasoningDropdown({
|
|
|
17488
17434
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
17489
17435
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
17490
17436
|
/* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17491
|
-
/* @__PURE__ */
|
|
17492
|
-
/* @__PURE__ */
|
|
17437
|
+
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: /* @__PURE__ */ jsx23(DropdownMenuTrigger2, { asChild: true, disabled: menuDisabled, children: trigger }) }) }),
|
|
17438
|
+
/* @__PURE__ */ jsx23(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
17493
17439
|
] })
|
|
17494
|
-
) : /* @__PURE__ */
|
|
17440
|
+
) : /* @__PURE__ */ jsx23(DropdownMenuTrigger2, { asChild: true, disabled: menuDisabled, children: trigger }),
|
|
17495
17441
|
/* @__PURE__ */ jsxs11(
|
|
17496
17442
|
DropdownMenuContent2,
|
|
17497
17443
|
{
|
|
@@ -17506,8 +17452,8 @@ function AgentModelReasoningDropdown({
|
|
|
17506
17452
|
"data-agent-composer-settings-layout": "model-primary",
|
|
17507
17453
|
children: [
|
|
17508
17454
|
menu.model.show ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
|
|
17509
|
-
/* @__PURE__ */
|
|
17510
|
-
/* @__PURE__ */
|
|
17455
|
+
/* @__PURE__ */ jsx23(DropdownMenuLabel2, { children: labels.modelSelectionLabel }),
|
|
17456
|
+
/* @__PURE__ */ jsx23(
|
|
17511
17457
|
ComposerMenuOptionItems,
|
|
17512
17458
|
{
|
|
17513
17459
|
options: menu.model.options,
|
|
@@ -17518,7 +17464,7 @@ function AgentModelReasoningDropdown({
|
|
|
17518
17464
|
}
|
|
17519
17465
|
)
|
|
17520
17466
|
] }) : null,
|
|
17521
|
-
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */
|
|
17467
|
+
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */ jsx23(DropdownMenuSeparator2, {}) : null,
|
|
17522
17468
|
menu.reasoning.show ? /* @__PURE__ */ jsxs11(DropdownMenuSub2, { children: [
|
|
17523
17469
|
/* @__PURE__ */ jsxs11(
|
|
17524
17470
|
DropdownMenuSubTrigger2,
|
|
@@ -17526,17 +17472,17 @@ function AgentModelReasoningDropdown({
|
|
|
17526
17472
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
17527
17473
|
"data-agent-reasoning-submenu-trigger": "true",
|
|
17528
17474
|
children: [
|
|
17529
|
-
/* @__PURE__ */
|
|
17530
|
-
/* @__PURE__ */
|
|
17475
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 flex-1 truncate", children: labels.reasoningLabel }),
|
|
17476
|
+
/* @__PURE__ */ jsx23("span", { className: "text-[var(--text-tertiary)]", children: menu.reasoning.selectedLabel })
|
|
17531
17477
|
]
|
|
17532
17478
|
}
|
|
17533
17479
|
),
|
|
17534
|
-
/* @__PURE__ */
|
|
17480
|
+
/* @__PURE__ */ jsx23(
|
|
17535
17481
|
DropdownMenuSubContent2,
|
|
17536
17482
|
{
|
|
17537
17483
|
className: cn2(AgentGUINode_styles_default.composerMenuContent, "min-w-[132px]"),
|
|
17538
17484
|
"data-agent-composer-settings-layout": "model-submenu",
|
|
17539
|
-
children: /* @__PURE__ */
|
|
17485
|
+
children: /* @__PURE__ */ jsx23(
|
|
17540
17486
|
ComposerMenuOptionItems,
|
|
17541
17487
|
{
|
|
17542
17488
|
options: menu.reasoning.options,
|
|
@@ -17555,17 +17501,17 @@ function AgentModelReasoningDropdown({
|
|
|
17555
17501
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
17556
17502
|
"data-agent-speed-submenu-trigger": "true",
|
|
17557
17503
|
children: [
|
|
17558
|
-
/* @__PURE__ */
|
|
17559
|
-
/* @__PURE__ */
|
|
17504
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 flex-1 truncate", children: labels.speedLabel }),
|
|
17505
|
+
/* @__PURE__ */ jsx23("span", { className: "text-[var(--text-tertiary)]", children: menu.speed.selectedLabel })
|
|
17560
17506
|
]
|
|
17561
17507
|
}
|
|
17562
17508
|
),
|
|
17563
|
-
/* @__PURE__ */
|
|
17509
|
+
/* @__PURE__ */ jsx23(
|
|
17564
17510
|
DropdownMenuSubContent2,
|
|
17565
17511
|
{
|
|
17566
17512
|
className: cn2(AgentGUINode_styles_default.composerMenuContent, "w-[200px]"),
|
|
17567
17513
|
"data-agent-composer-settings-layout": "model-submenu",
|
|
17568
|
-
children: /* @__PURE__ */
|
|
17514
|
+
children: /* @__PURE__ */ jsx23(
|
|
17569
17515
|
ComposerMenuOptionItems,
|
|
17570
17516
|
{
|
|
17571
17517
|
options: menu.speed.options,
|
|
@@ -17590,7 +17536,7 @@ function ComposerMenuOptionItems({
|
|
|
17590
17536
|
tooltipsEnabled = true,
|
|
17591
17537
|
onSelect
|
|
17592
17538
|
}) {
|
|
17593
|
-
return /* @__PURE__ */
|
|
17539
|
+
return /* @__PURE__ */ jsx23(Fragment4, { children: options.map((option) => {
|
|
17594
17540
|
const hasDescription = Boolean(option.description);
|
|
17595
17541
|
const showInlineDescription = descriptionPresentation === "inline" && hasDescription;
|
|
17596
17542
|
const showModelTooltip = descriptionPresentation === "model-tooltip";
|
|
@@ -17616,8 +17562,8 @@ function ComposerMenuOptionItems({
|
|
|
17616
17562
|
},
|
|
17617
17563
|
children: [
|
|
17618
17564
|
showModelTooltip ? /* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 flex-1 items-baseline gap-2 overflow-hidden", children: [
|
|
17619
|
-
/* @__PURE__ */
|
|
17620
|
-
option.summary && option.summary.length > 0 ? /* @__PURE__ */
|
|
17565
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
17566
|
+
option.summary && option.summary.length > 0 ? /* @__PURE__ */ jsx23("span", { className: "flex min-w-0 shrink-0 items-baseline gap-1.5 overflow-hidden text-[var(--agent-gui-text-tertiary)]", children: option.summary.map((summary) => /* @__PURE__ */ jsx23(
|
|
17621
17567
|
"span",
|
|
17622
17568
|
{
|
|
17623
17569
|
className: "max-w-[64px] truncate leading-[1.15]",
|
|
@@ -17634,8 +17580,8 @@ function ComposerMenuOptionItems({
|
|
|
17634
17580
|
),
|
|
17635
17581
|
children: [
|
|
17636
17582
|
/* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
17637
|
-
/* @__PURE__ */
|
|
17638
|
-
showTooltipDescription && option.description ? /* @__PURE__ */
|
|
17583
|
+
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
17584
|
+
showTooltipDescription && option.description ? /* @__PURE__ */ jsx23(
|
|
17639
17585
|
ComposerOptionInfoTooltip,
|
|
17640
17586
|
{
|
|
17641
17587
|
description: option.description,
|
|
@@ -17643,11 +17589,11 @@ function ComposerMenuOptionItems({
|
|
|
17643
17589
|
}
|
|
17644
17590
|
) : null
|
|
17645
17591
|
] }),
|
|
17646
|
-
showInlineDescription && option.description ? /* @__PURE__ */
|
|
17592
|
+
showInlineDescription && option.description ? /* @__PURE__ */ jsx23("span", { className: "whitespace-normal text-[11px] leading-[1.2] text-[var(--text-tertiary)]", children: option.description }) : null
|
|
17647
17593
|
]
|
|
17648
17594
|
}
|
|
17649
17595
|
),
|
|
17650
|
-
/* @__PURE__ */
|
|
17596
|
+
/* @__PURE__ */ jsx23(
|
|
17651
17597
|
CheckIcon,
|
|
17652
17598
|
{
|
|
17653
17599
|
"aria-hidden": true,
|
|
@@ -17661,7 +17607,7 @@ function ComposerMenuOptionItems({
|
|
|
17661
17607
|
},
|
|
17662
17608
|
option.value
|
|
17663
17609
|
);
|
|
17664
|
-
return showModelTooltip ? /* @__PURE__ */
|
|
17610
|
+
return showModelTooltip ? /* @__PURE__ */ jsx23(
|
|
17665
17611
|
ComposerModelOptionTooltip,
|
|
17666
17612
|
{
|
|
17667
17613
|
option,
|
|
@@ -17681,7 +17627,7 @@ function ComposerModelOptionTooltip({
|
|
|
17681
17627
|
return children;
|
|
17682
17628
|
}
|
|
17683
17629
|
return /* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17684
|
-
/* @__PURE__ */
|
|
17630
|
+
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: cloneElement(children, {
|
|
17685
17631
|
"data-agent-model-option-tooltip-trigger": "true"
|
|
17686
17632
|
}) }),
|
|
17687
17633
|
/* @__PURE__ */ jsxs11(
|
|
@@ -17693,10 +17639,10 @@ function ComposerModelOptionTooltip({
|
|
|
17693
17639
|
className: "flex w-[320px] max-w-[calc(100vw-32px)] flex-col items-start gap-0 whitespace-normal rounded-lg border border-[var(--line-2)] bg-[var(--background-fronted)] px-4 py-3 text-[13px] leading-[1.3] text-[var(--text-primary)] shadow-lg",
|
|
17694
17640
|
"data-agent-model-option-tooltip": "true",
|
|
17695
17641
|
children: [
|
|
17696
|
-
/* @__PURE__ */
|
|
17697
|
-
option.tooltip.description ? /* @__PURE__ */
|
|
17698
|
-
option.tooltip.contextWindow ? /* @__PURE__ */
|
|
17699
|
-
option.tooltip.version ? /* @__PURE__ */
|
|
17642
|
+
/* @__PURE__ */ jsx23("span", { className: "block text-[15px] font-semibold leading-[1.2]", children: option.tooltip.title }),
|
|
17643
|
+
option.tooltip.description ? /* @__PURE__ */ jsx23("span", { className: "mt-1.5 block text-[13px] leading-[1.35]", children: option.tooltip.description }) : null,
|
|
17644
|
+
option.tooltip.contextWindow ? /* @__PURE__ */ jsx23("span", { className: "mt-4 block", children: option.tooltip.contextWindow }) : null,
|
|
17645
|
+
option.tooltip.version ? /* @__PURE__ */ jsx23("span", { className: "mt-4 block italic", children: option.tooltip.version }) : null
|
|
17700
17646
|
]
|
|
17701
17647
|
}
|
|
17702
17648
|
)
|
|
@@ -17887,11 +17833,49 @@ function imageFilesFromDataTransfer(dataTransfer) {
|
|
|
17887
17833
|
files.push(file);
|
|
17888
17834
|
}
|
|
17889
17835
|
}
|
|
17836
|
+
if (files.length === 0) {
|
|
17837
|
+
return Array.from(dataTransfer.files ?? []).filter(
|
|
17838
|
+
(file) => supportedPromptImageMimeType(file.type)
|
|
17839
|
+
);
|
|
17840
|
+
}
|
|
17841
|
+
return files;
|
|
17842
|
+
}
|
|
17843
|
+
function nonImageFilesFromDataTransfer(dataTransfer) {
|
|
17844
|
+
if (!dataTransfer) {
|
|
17845
|
+
return [];
|
|
17846
|
+
}
|
|
17847
|
+
const files = [];
|
|
17848
|
+
const items = dataTransfer.items;
|
|
17849
|
+
if (!items) {
|
|
17850
|
+
return Array.from(dataTransfer.files ?? []).filter(
|
|
17851
|
+
(file) => !supportedPromptImageMimeType(file.type) && !supportedPromptImageFileName(file.name)
|
|
17852
|
+
);
|
|
17853
|
+
}
|
|
17854
|
+
for (const item of Array.from(items)) {
|
|
17855
|
+
if (item.kind !== "file" || supportedPromptImageMimeType(item.type)) {
|
|
17856
|
+
continue;
|
|
17857
|
+
}
|
|
17858
|
+
const file = item.getAsFile();
|
|
17859
|
+
if (file && supportedPromptImageFileName(file.name)) {
|
|
17860
|
+
continue;
|
|
17861
|
+
}
|
|
17862
|
+
if (file) {
|
|
17863
|
+
files.push(file);
|
|
17864
|
+
}
|
|
17865
|
+
}
|
|
17866
|
+
if (files.length === 0) {
|
|
17867
|
+
return Array.from(dataTransfer.files ?? []).filter(
|
|
17868
|
+
(file) => !supportedPromptImageMimeType(file.type) && !supportedPromptImageFileName(file.name)
|
|
17869
|
+
);
|
|
17870
|
+
}
|
|
17890
17871
|
return files;
|
|
17891
17872
|
}
|
|
17892
17873
|
function supportedPromptImageMimeType(value) {
|
|
17893
17874
|
return value === "image/png" || value === "image/jpeg" || value === "image/webp";
|
|
17894
17875
|
}
|
|
17876
|
+
function supportedPromptImageFileName(value) {
|
|
17877
|
+
return /\.(png|jpe?g|webp)$/i.test(value.trim());
|
|
17878
|
+
}
|
|
17895
17879
|
async function readAgentRichTextPromptImages(files) {
|
|
17896
17880
|
const images = await Promise.all(
|
|
17897
17881
|
files.map(async (file) => {
|
|
@@ -17923,7 +17907,7 @@ function fileToBase64(file) {
|
|
|
17923
17907
|
}
|
|
17924
17908
|
|
|
17925
17909
|
// agent-gui/agentGuiNode/agentRichText/AgentRichTextEditor.tsx
|
|
17926
|
-
import { jsx as
|
|
17910
|
+
import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
17927
17911
|
function buildWorkspaceFileMentionDropContent(entries, options = {}) {
|
|
17928
17912
|
return entries.flatMap((entry, index) => [
|
|
17929
17913
|
...index === 0 && options.prefixCaretAnchor ? [
|
|
@@ -18195,7 +18179,8 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18195
18179
|
onLinkClick,
|
|
18196
18180
|
promptImagesSupported = true,
|
|
18197
18181
|
onPromptImagesUnsupported,
|
|
18198
|
-
onPasteImages
|
|
18182
|
+
onPasteImages,
|
|
18183
|
+
getReferenceForFile
|
|
18199
18184
|
}, ref) {
|
|
18200
18185
|
"use memo";
|
|
18201
18186
|
const { t } = useTranslation();
|
|
@@ -18215,6 +18200,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18215
18200
|
const onPromptImagesUnsupportedRef = useRef9(onPromptImagesUnsupported);
|
|
18216
18201
|
const onPasteImagesRef = useRef9(onPasteImages);
|
|
18217
18202
|
const promptImagesSupportedRef = useRef9(promptImagesSupported);
|
|
18203
|
+
const getReferenceForFileRef = useRef9(getReferenceForFile);
|
|
18218
18204
|
const placeholderRef = useRef9(placeholder);
|
|
18219
18205
|
const removeMentionLabelRef = useRef9(removeMentionLabel);
|
|
18220
18206
|
const availableSkillsRef = useRef9(availableSkills);
|
|
@@ -18322,6 +18308,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18322
18308
|
onPromptImagesUnsupportedRef.current = onPromptImagesUnsupported;
|
|
18323
18309
|
onPasteImagesRef.current = onPasteImages;
|
|
18324
18310
|
promptImagesSupportedRef.current = promptImagesSupported;
|
|
18311
|
+
getReferenceForFileRef.current = getReferenceForFile;
|
|
18325
18312
|
placeholderRef.current = placeholder;
|
|
18326
18313
|
removeMentionLabelRef.current = removeMentionLabel;
|
|
18327
18314
|
availableSkillsRef.current = availableSkills;
|
|
@@ -18432,6 +18419,44 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18432
18419
|
});
|
|
18433
18420
|
return true;
|
|
18434
18421
|
}
|
|
18422
|
+
const getReferenceForFileFn = getReferenceForFileRef.current;
|
|
18423
|
+
if (getReferenceForFileFn) {
|
|
18424
|
+
const nonImageFiles = nonImageFilesFromDataTransfer(
|
|
18425
|
+
event.clipboardData
|
|
18426
|
+
);
|
|
18427
|
+
if (nonImageFiles.length > 0) {
|
|
18428
|
+
const references = nonImageFiles.map((file) => {
|
|
18429
|
+
try {
|
|
18430
|
+
return getReferenceForFileFn(file);
|
|
18431
|
+
} catch {
|
|
18432
|
+
return null;
|
|
18433
|
+
}
|
|
18434
|
+
}).filter(
|
|
18435
|
+
(reference) => Boolean(reference?.path)
|
|
18436
|
+
);
|
|
18437
|
+
if (references.length > 0) {
|
|
18438
|
+
event.preventDefault();
|
|
18439
|
+
const currentEditor2 = editorRef.current;
|
|
18440
|
+
if (!currentEditor2) {
|
|
18441
|
+
return true;
|
|
18442
|
+
}
|
|
18443
|
+
if (!currentEditor2.isFocused) {
|
|
18444
|
+
currentEditor2.commands.setTextSelection(
|
|
18445
|
+
currentEditor2.state.doc.content.size
|
|
18446
|
+
);
|
|
18447
|
+
}
|
|
18448
|
+
currentEditor2.commands.insertContent(
|
|
18449
|
+
createAgentFileMentionContent(references, {
|
|
18450
|
+
prefixCaretAnchor: isPromptVisualLineStart(
|
|
18451
|
+
currentEditor2,
|
|
18452
|
+
currentEditor2.state.selection.from
|
|
18453
|
+
)
|
|
18454
|
+
})
|
|
18455
|
+
);
|
|
18456
|
+
return true;
|
|
18457
|
+
}
|
|
18458
|
+
}
|
|
18459
|
+
}
|
|
18435
18460
|
const html = event.clipboardData?.getData("text/html") ?? "";
|
|
18436
18461
|
if (html.includes("data-agent-file-mention")) {
|
|
18437
18462
|
return false;
|
|
@@ -18758,7 +18783,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18758
18783
|
lastEmittedPromptRef.current = value;
|
|
18759
18784
|
}, [availableCapabilities, availableSkills, editor, value]);
|
|
18760
18785
|
return /* @__PURE__ */ jsxs12("div", { className: "relative min-w-0", onKeyDownCapture: handleKeyDownCapture, children: [
|
|
18761
|
-
editor ? /* @__PURE__ */
|
|
18786
|
+
editor ? /* @__PURE__ */ jsx24(EditorContent, { editor }) : /* @__PURE__ */ jsx24(
|
|
18762
18787
|
"div",
|
|
18763
18788
|
{
|
|
18764
18789
|
role: "textbox",
|
|
@@ -18786,7 +18811,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18786
18811
|
onContextMenu: (event) => event.preventDefault(),
|
|
18787
18812
|
onPointerDown: (event) => event.stopPropagation(),
|
|
18788
18813
|
children: [
|
|
18789
|
-
/* @__PURE__ */
|
|
18814
|
+
/* @__PURE__ */ jsx24(
|
|
18790
18815
|
AgentRichTextContextMenuButton,
|
|
18791
18816
|
{
|
|
18792
18817
|
disabled: !contextMenu.canEdit || !contextMenu.hasSelection,
|
|
@@ -18794,7 +18819,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18794
18819
|
onSelect: cutSelection
|
|
18795
18820
|
}
|
|
18796
18821
|
),
|
|
18797
|
-
/* @__PURE__ */
|
|
18822
|
+
/* @__PURE__ */ jsx24(
|
|
18798
18823
|
AgentRichTextContextMenuButton,
|
|
18799
18824
|
{
|
|
18800
18825
|
disabled: !contextMenu.hasSelection,
|
|
@@ -18802,7 +18827,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18802
18827
|
onSelect: copySelection
|
|
18803
18828
|
}
|
|
18804
18829
|
),
|
|
18805
|
-
/* @__PURE__ */
|
|
18830
|
+
/* @__PURE__ */ jsx24(
|
|
18806
18831
|
AgentRichTextContextMenuButton,
|
|
18807
18832
|
{
|
|
18808
18833
|
disabled: !contextMenu.canEdit,
|
|
@@ -18832,7 +18857,7 @@ function AgentRichTextContextMenuButton({
|
|
|
18832
18857
|
selectionStartedRef.current = false;
|
|
18833
18858
|
});
|
|
18834
18859
|
}, [disabled, onSelect]);
|
|
18835
|
-
return /* @__PURE__ */
|
|
18860
|
+
return /* @__PURE__ */ jsx24(
|
|
18836
18861
|
"button",
|
|
18837
18862
|
{
|
|
18838
18863
|
role: "menuitem",
|
|
@@ -18857,7 +18882,7 @@ function AgentRichTextContextMenuButton({
|
|
|
18857
18882
|
|
|
18858
18883
|
// agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
|
|
18859
18884
|
import { Fragment as Fragment5 } from "react";
|
|
18860
|
-
import { Fragment as Fragment6, jsx as
|
|
18885
|
+
import { Fragment as Fragment6, jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
18861
18886
|
function formatSlashStatusTokenCount(value) {
|
|
18862
18887
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
18863
18888
|
return "";
|
|
@@ -18899,8 +18924,8 @@ function AgentSlashStatusPanel({
|
|
|
18899
18924
|
role: "status",
|
|
18900
18925
|
children: [
|
|
18901
18926
|
/* @__PURE__ */ jsxs13("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
18902
|
-
/* @__PURE__ */
|
|
18903
|
-
/* @__PURE__ */
|
|
18927
|
+
/* @__PURE__ */ jsx25("h3", { className: "truncate text-[11px] font-semibold leading-4", children: labels.slashStatusTitle }),
|
|
18928
|
+
/* @__PURE__ */ jsx25(
|
|
18904
18929
|
"button",
|
|
18905
18930
|
{
|
|
18906
18931
|
className: "nodrag shrink-0 rounded-[5px] px-1.5 py-0.5 text-[11px] leading-4 text-muted-foreground transition-colors hover:bg-background-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [-webkit-app-region:no-drag]",
|
|
@@ -18916,32 +18941,32 @@ function AgentSlashStatusPanel({
|
|
|
18916
18941
|
labels.slashStatusSession,
|
|
18917
18942
|
":"
|
|
18918
18943
|
] }),
|
|
18919
|
-
/* @__PURE__ */
|
|
18944
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 truncate", children: agentSessionId }),
|
|
18920
18945
|
baseUrl ? /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
18921
18946
|
/* @__PURE__ */ jsxs13("dt", { className: "text-muted-foreground", children: [
|
|
18922
18947
|
labels.slashStatusBaseUrl,
|
|
18923
18948
|
":"
|
|
18924
18949
|
] }),
|
|
18925
|
-
/* @__PURE__ */
|
|
18950
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 truncate", children: baseUrl })
|
|
18926
18951
|
] }) : null,
|
|
18927
18952
|
/* @__PURE__ */ jsxs13("dt", { className: "text-muted-foreground", children: [
|
|
18928
18953
|
labels.slashStatusContext,
|
|
18929
18954
|
":"
|
|
18930
18955
|
] }),
|
|
18931
|
-
/* @__PURE__ */
|
|
18956
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: slashStatusContextText(status, labels) })
|
|
18932
18957
|
] }) : null,
|
|
18933
18958
|
limits.map((limit) => /* @__PURE__ */ jsxs13(Fragment5, { children: [
|
|
18934
18959
|
/* @__PURE__ */ jsxs13("dt", { className: "text-muted-foreground", children: [
|
|
18935
18960
|
limit.label,
|
|
18936
18961
|
":"
|
|
18937
18962
|
] }),
|
|
18938
|
-
/* @__PURE__ */
|
|
18939
|
-
typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? /* @__PURE__ */
|
|
18963
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: /* @__PURE__ */ jsxs13("span", { className: "agent-gui-node__slash-status-limit", children: [
|
|
18964
|
+
typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? /* @__PURE__ */ jsx25(
|
|
18940
18965
|
"span",
|
|
18941
18966
|
{
|
|
18942
18967
|
"aria-hidden": "true",
|
|
18943
18968
|
className: "agent-gui-node__slash-status-limit-meter",
|
|
18944
|
-
children: /* @__PURE__ */
|
|
18969
|
+
children: /* @__PURE__ */ jsx25(
|
|
18945
18970
|
"span",
|
|
18946
18971
|
{
|
|
18947
18972
|
className: "agent-gui-node__slash-status-limit-meter-fill",
|
|
@@ -18971,7 +18996,7 @@ function AgentSlashStatusPanel({
|
|
|
18971
18996
|
labels.slashStatusLimits,
|
|
18972
18997
|
":"
|
|
18973
18998
|
] }),
|
|
18974
|
-
/* @__PURE__ */
|
|
18999
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 text-muted-foreground", children: labels.slashStatusLimitsUnavailable })
|
|
18975
19000
|
] }) : null
|
|
18976
19001
|
] })
|
|
18977
19002
|
]
|
|
@@ -19075,7 +19100,7 @@ var AgentReviewBranchController = class {
|
|
|
19075
19100
|
};
|
|
19076
19101
|
|
|
19077
19102
|
// agent-gui/agentGuiNode/AgentReviewPickerPanel.tsx
|
|
19078
|
-
import { jsx as
|
|
19103
|
+
import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
19079
19104
|
var reviewMenuStyles = {
|
|
19080
19105
|
panel: "agent-gui-node__slash-status-panel nodrag flex max-h-[280px] flex-col gap-1 overflow-hidden [-webkit-app-region:no-drag]",
|
|
19081
19106
|
search: "nodrag h-8 w-full shrink-0 rounded-[6px] border-0 bg-transparent px-2.5 text-[11px] leading-4 text-[var(--text-primary)] placeholder:text-[var(--text-secondary)] focus-visible:outline-none [-webkit-app-region:no-drag]",
|
|
@@ -19279,7 +19304,7 @@ function AgentReviewPickerPanel({
|
|
|
19279
19304
|
role: "dialog",
|
|
19280
19305
|
"aria-label": labels.title,
|
|
19281
19306
|
children: [
|
|
19282
|
-
/* @__PURE__ */
|
|
19307
|
+
/* @__PURE__ */ jsx26(
|
|
19283
19308
|
"input",
|
|
19284
19309
|
{
|
|
19285
19310
|
ref: searchInputRef,
|
|
@@ -19295,15 +19320,15 @@ function AgentReviewPickerPanel({
|
|
|
19295
19320
|
onKeyDown: handleKeyDown
|
|
19296
19321
|
}
|
|
19297
19322
|
),
|
|
19298
|
-
/* @__PURE__ */
|
|
19323
|
+
/* @__PURE__ */ jsx26(
|
|
19299
19324
|
"div",
|
|
19300
19325
|
{
|
|
19301
19326
|
className: reviewMenuStyles.list,
|
|
19302
19327
|
role: "listbox",
|
|
19303
19328
|
"aria-label": labels.title,
|
|
19304
|
-
children: entries.length === 0 ? /* @__PURE__ */
|
|
19329
|
+
children: entries.length === 0 ? /* @__PURE__ */ jsx26("div", { className: reviewMenuStyles.message, children: emptyMessage }) : entries.map((entry, index) => {
|
|
19305
19330
|
const isHighlighted = index === safeHighlightedIndex;
|
|
19306
|
-
return /* @__PURE__ */
|
|
19331
|
+
return /* @__PURE__ */ jsx26(
|
|
19307
19332
|
"button",
|
|
19308
19333
|
{
|
|
19309
19334
|
ref: isHighlighted ? highlightedOptionRef : null,
|
|
@@ -19324,8 +19349,8 @@ function AgentReviewPickerPanel({
|
|
|
19324
19349
|
}
|
|
19325
19350
|
},
|
|
19326
19351
|
children: /* @__PURE__ */ jsxs14("span", { className: reviewMenuStyles.copy, children: [
|
|
19327
|
-
/* @__PURE__ */
|
|
19328
|
-
entry.description ? /* @__PURE__ */
|
|
19352
|
+
/* @__PURE__ */ jsx26("span", { className: reviewMenuStyles.name, children: entry.label }),
|
|
19353
|
+
entry.description ? /* @__PURE__ */ jsx26("span", { className: reviewMenuStyles.description, children: entry.description }) : null
|
|
19329
19354
|
] })
|
|
19330
19355
|
},
|
|
19331
19356
|
entry.key
|
|
@@ -19349,7 +19374,7 @@ import {
|
|
|
19349
19374
|
useState as useState10
|
|
19350
19375
|
} from "react";
|
|
19351
19376
|
import { createPortal as createPortal2 } from "react-dom";
|
|
19352
|
-
import { jsx as
|
|
19377
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
19353
19378
|
var COMPOSER_MENU_GAP_PX = 8;
|
|
19354
19379
|
var COMPOSER_MENU_VIEWPORT_PADDING_PX = 8;
|
|
19355
19380
|
var COMPOSER_MENU_MIN_HEIGHT_PX = 280;
|
|
@@ -19567,7 +19592,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
19567
19592
|
}
|
|
19568
19593
|
const portalTarget = frame?.portalTarget ?? (anchorRef.current ? resolveComposerMenuPortalTarget(anchorRef.current) : document.body);
|
|
19569
19594
|
return createPortal2(
|
|
19570
|
-
/* @__PURE__ */
|
|
19595
|
+
/* @__PURE__ */ jsx27(
|
|
19571
19596
|
"div",
|
|
19572
19597
|
{
|
|
19573
19598
|
"data-testid": testId,
|
|
@@ -19578,7 +19603,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
19578
19603
|
className
|
|
19579
19604
|
),
|
|
19580
19605
|
style,
|
|
19581
|
-
children: contentClassName ? /* @__PURE__ */
|
|
19606
|
+
children: contentClassName ? /* @__PURE__ */ jsx27("div", { className: contentClassName, children }) : children
|
|
19582
19607
|
}
|
|
19583
19608
|
),
|
|
19584
19609
|
portalTarget
|
|
@@ -19586,7 +19611,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
19586
19611
|
});
|
|
19587
19612
|
|
|
19588
19613
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
19589
|
-
import { jsx as
|
|
19614
|
+
import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
19590
19615
|
var USAGE_POPOVER_HOVER_DELAY_MS = 120;
|
|
19591
19616
|
var DOCK_COMPOSER_INPUT_MIN_HEIGHT = 56;
|
|
19592
19617
|
var DOCK_COMPOSER_TEXT_LINE_HEIGHT = 24;
|
|
@@ -19688,7 +19713,7 @@ function AgentUsageChip({
|
|
|
19688
19713
|
},
|
|
19689
19714
|
[clearUsagePopoverCloseTimer, clearUsagePopoverHoverTimer]
|
|
19690
19715
|
);
|
|
19691
|
-
const trigger = /* @__PURE__ */
|
|
19716
|
+
const trigger = /* @__PURE__ */ jsx28(
|
|
19692
19717
|
"button",
|
|
19693
19718
|
{
|
|
19694
19719
|
type: "button",
|
|
@@ -19712,7 +19737,7 @@ function AgentUsageChip({
|
|
|
19712
19737
|
style: {
|
|
19713
19738
|
background: `conic-gradient(${ringColor} ${clampedPercent}%, color-mix(in srgb, ${ringColor} 16%, transparent) 0)`
|
|
19714
19739
|
},
|
|
19715
|
-
children: /* @__PURE__ */
|
|
19740
|
+
children: /* @__PURE__ */ jsx28(
|
|
19716
19741
|
"span",
|
|
19717
19742
|
{
|
|
19718
19743
|
"aria-hidden": "true",
|
|
@@ -19730,8 +19755,8 @@ function AgentUsageChip({
|
|
|
19730
19755
|
open: usagePopoverOpen,
|
|
19731
19756
|
onOpenChange: handleUsagePopoverOpenChange,
|
|
19732
19757
|
children: [
|
|
19733
|
-
/* @__PURE__ */
|
|
19734
|
-
usagePopoverOpen ? /* @__PURE__ */
|
|
19758
|
+
/* @__PURE__ */ jsx28(PopoverTrigger, { asChild: true, children: trigger }),
|
|
19759
|
+
usagePopoverOpen ? /* @__PURE__ */ jsx28(
|
|
19735
19760
|
PopoverContent,
|
|
19736
19761
|
{
|
|
19737
19762
|
side: "bottom",
|
|
@@ -19742,8 +19767,8 @@ function AgentUsageChip({
|
|
|
19742
19767
|
onPointerEnter: openUsagePopover,
|
|
19743
19768
|
onPointerLeave: scheduleUsagePopoverClose,
|
|
19744
19769
|
children: /* @__PURE__ */ jsxs15("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
19745
|
-
/* @__PURE__ */
|
|
19746
|
-
showTokens ? /* @__PURE__ */
|
|
19770
|
+
/* @__PURE__ */ jsx28("span", { className: "text-[13px] font-semibold leading-4", children: labels.usagePopoverTitle }),
|
|
19771
|
+
showTokens ? /* @__PURE__ */ jsx28(
|
|
19747
19772
|
AgentUsageMeter,
|
|
19748
19773
|
{
|
|
19749
19774
|
label: labels.usageContextWindowLabel,
|
|
@@ -19753,7 +19778,7 @@ function AgentUsageChip({
|
|
|
19753
19778
|
testId: "agent-gui-usage-context-meter"
|
|
19754
19779
|
}
|
|
19755
19780
|
) : null,
|
|
19756
|
-
compactSupported && onCompact ? /* @__PURE__ */
|
|
19781
|
+
compactSupported && onCompact ? /* @__PURE__ */ jsx28(
|
|
19757
19782
|
Button3,
|
|
19758
19783
|
{
|
|
19759
19784
|
type: "button",
|
|
@@ -19896,6 +19921,8 @@ function AgentComposer({
|
|
|
19896
19921
|
const draftImages = draftContent.images;
|
|
19897
19922
|
const draftFiles = draftContent.files ?? [];
|
|
19898
19923
|
const agentActivityRuntime = useOptionalAgentActivityRuntime();
|
|
19924
|
+
const agentHostApi = useOptionalAgentHostApi();
|
|
19925
|
+
const getReferenceForFile = agentHostApi?.workspace.getReferenceForFile;
|
|
19899
19926
|
const [isPaletteOpen, setIsPaletteOpen] = useState11(true);
|
|
19900
19927
|
const [isReviewPickerOpen, setIsReviewPickerOpen] = useState11(false);
|
|
19901
19928
|
const [highlightedIndex, setHighlightedIndex] = useState11(0);
|
|
@@ -21418,7 +21445,7 @@ function AgentComposer({
|
|
|
21418
21445
|
title: isInterrupting ? labels.stopping : labels.stop,
|
|
21419
21446
|
onClick: onInterruptCurrentTurn,
|
|
21420
21447
|
children: [
|
|
21421
|
-
/* @__PURE__ */
|
|
21448
|
+
/* @__PURE__ */ jsx28(
|
|
21422
21449
|
Spinner,
|
|
21423
21450
|
{
|
|
21424
21451
|
className: "size-7 text-[var(--text-primary)]",
|
|
@@ -21428,7 +21455,7 @@ function AgentComposer({
|
|
|
21428
21455
|
testId: "agent-gui-composer-stop-spinner"
|
|
21429
21456
|
}
|
|
21430
21457
|
),
|
|
21431
|
-
/* @__PURE__ */
|
|
21458
|
+
/* @__PURE__ */ jsx28(
|
|
21432
21459
|
"span",
|
|
21433
21460
|
{
|
|
21434
21461
|
"aria-hidden": "true",
|
|
@@ -21438,7 +21465,7 @@ function AgentComposer({
|
|
|
21438
21465
|
)
|
|
21439
21466
|
]
|
|
21440
21467
|
}
|
|
21441
|
-
) : /* @__PURE__ */
|
|
21468
|
+
) : /* @__PURE__ */ jsx28(
|
|
21442
21469
|
"button",
|
|
21443
21470
|
{
|
|
21444
21471
|
type: "submit",
|
|
@@ -21448,7 +21475,7 @@ function AgentComposer({
|
|
|
21448
21475
|
"aria-label": labels.send,
|
|
21449
21476
|
title: labels.send,
|
|
21450
21477
|
"aria-busy": sendButtonBusy,
|
|
21451
|
-
children: sendButtonBusy ? /* @__PURE__ */
|
|
21478
|
+
children: sendButtonBusy ? /* @__PURE__ */ jsx28(
|
|
21452
21479
|
Spinner,
|
|
21453
21480
|
{
|
|
21454
21481
|
className: "text-[var(--text-primary)]",
|
|
@@ -21457,10 +21484,10 @@ function AgentComposer({
|
|
|
21457
21484
|
trackColor: "var(--transparency-hover)",
|
|
21458
21485
|
testId: "agent-gui-composer-send-spinner"
|
|
21459
21486
|
}
|
|
21460
|
-
) : /* @__PURE__ */
|
|
21487
|
+
) : /* @__PURE__ */ jsx28(SendFilledIcon, {})
|
|
21461
21488
|
}
|
|
21462
21489
|
);
|
|
21463
|
-
const promptTipNode = activePromptTip ? /* @__PURE__ */
|
|
21490
|
+
const promptTipNode = activePromptTip ? /* @__PURE__ */ jsx28(
|
|
21464
21491
|
"span",
|
|
21465
21492
|
{
|
|
21466
21493
|
ref: promptTipRef,
|
|
@@ -21468,14 +21495,14 @@ function AgentComposer({
|
|
|
21468
21495
|
"data-rotating": promptTips.length > 1 ? "true" : void 0,
|
|
21469
21496
|
"data-testid": "agent-gui-prompt-tip",
|
|
21470
21497
|
style: promptTipStyle,
|
|
21471
|
-
children: /* @__PURE__ */
|
|
21498
|
+
children: /* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipTrack, children: rotatingPromptTips.map((tip, index) => /* @__PURE__ */ jsxs15(
|
|
21472
21499
|
"span",
|
|
21473
21500
|
{
|
|
21474
21501
|
className: AgentGUINode_styles_default.composerPromptTipItem,
|
|
21475
21502
|
"aria-hidden": index >= promptTips.length ? true : void 0,
|
|
21476
21503
|
children: [
|
|
21477
|
-
/* @__PURE__ */
|
|
21478
|
-
/* @__PURE__ */
|
|
21504
|
+
/* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipPrefix, children: labels.promptTipsPrefix }),
|
|
21505
|
+
/* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipLabel, children: tip.label }),
|
|
21479
21506
|
/* @__PURE__ */ jsxs15("span", { className: AgentGUINode_styles_default.composerPromptTipText, children: [
|
|
21480
21507
|
" \xB7 ",
|
|
21481
21508
|
tip.prompt
|
|
@@ -21495,12 +21522,12 @@ function AgentComposer({
|
|
|
21495
21522
|
"data-layout": layoutMode,
|
|
21496
21523
|
onSubmit: submit,
|
|
21497
21524
|
children: [
|
|
21498
|
-
visibleActivePrompt ? /* @__PURE__ */
|
|
21525
|
+
visibleActivePrompt ? /* @__PURE__ */ jsx28(
|
|
21499
21526
|
"div",
|
|
21500
21527
|
{
|
|
21501
21528
|
className: AgentGUINode_styles_default.composerFloatingPrompt,
|
|
21502
21529
|
"data-testid": "agent-gui-composer-floating-prompt",
|
|
21503
|
-
children: /* @__PURE__ */
|
|
21530
|
+
children: /* @__PURE__ */ jsx28(
|
|
21504
21531
|
AgentInteractivePromptSurface,
|
|
21505
21532
|
{
|
|
21506
21533
|
prompt: visibleActivePrompt,
|
|
@@ -21532,7 +21559,7 @@ function AgentComposer({
|
|
|
21532
21559
|
)
|
|
21533
21560
|
}
|
|
21534
21561
|
) : null,
|
|
21535
|
-
queuedPrompts.length > 0 ? /* @__PURE__ */
|
|
21562
|
+
queuedPrompts.length > 0 ? /* @__PURE__ */ jsx28(
|
|
21536
21563
|
"div",
|
|
21537
21564
|
{
|
|
21538
21565
|
className: cn(
|
|
@@ -21540,7 +21567,7 @@ function AgentComposer({
|
|
|
21540
21567
|
AgentGUINode_styles_default.composerQueuedPromptFloating
|
|
21541
21568
|
),
|
|
21542
21569
|
"data-testid": "agent-gui-composer-queued-prompts",
|
|
21543
|
-
children: /* @__PURE__ */
|
|
21570
|
+
children: /* @__PURE__ */ jsx28(
|
|
21544
21571
|
AgentQueuedPromptPanel,
|
|
21545
21572
|
{
|
|
21546
21573
|
queuedPrompts,
|
|
@@ -21561,7 +21588,7 @@ function AgentComposer({
|
|
|
21561
21588
|
)
|
|
21562
21589
|
}
|
|
21563
21590
|
) : null,
|
|
21564
|
-
showProjectMissingProbe ? /* @__PURE__ */
|
|
21591
|
+
showProjectMissingProbe ? /* @__PURE__ */ jsx28(
|
|
21565
21592
|
AgentProjectMissingStatusProbe,
|
|
21566
21593
|
{
|
|
21567
21594
|
composerSettings,
|
|
@@ -21577,7 +21604,7 @@ function AgentComposer({
|
|
|
21577
21604
|
),
|
|
21578
21605
|
"data-edge-glow": showEdgeGlow ? "true" : void 0,
|
|
21579
21606
|
children: [
|
|
21580
|
-
isSelectedProjectMissing ? /* @__PURE__ */
|
|
21607
|
+
isSelectedProjectMissing ? /* @__PURE__ */ jsx28(
|
|
21581
21608
|
AgentChromeNotice,
|
|
21582
21609
|
{
|
|
21583
21610
|
tone: "danger",
|
|
@@ -21606,7 +21633,7 @@ function AgentComposer({
|
|
|
21606
21633
|
onOpenChange: setIsPaletteOpen,
|
|
21607
21634
|
modal: false,
|
|
21608
21635
|
children: [
|
|
21609
|
-
/* @__PURE__ */
|
|
21636
|
+
/* @__PURE__ */ jsx28(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs15(
|
|
21610
21637
|
"div",
|
|
21611
21638
|
{
|
|
21612
21639
|
ref: promptInputAreaRef,
|
|
@@ -21617,12 +21644,12 @@ function AgentComposer({
|
|
|
21617
21644
|
"data-has-draft-images": draftImages.length > 0 ? "true" : void 0,
|
|
21618
21645
|
style: promptInputAreaStyle,
|
|
21619
21646
|
children: [
|
|
21620
|
-
draftImages.length > 0 ? /* @__PURE__ */
|
|
21647
|
+
draftImages.length > 0 ? /* @__PURE__ */ jsx28(
|
|
21621
21648
|
"div",
|
|
21622
21649
|
{
|
|
21623
21650
|
className: "mb-2 flex w-full max-w-full flex-wrap items-start gap-2",
|
|
21624
21651
|
"data-testid": "agent-gui-composer-image-drafts",
|
|
21625
|
-
children: draftImages.map((image) => /* @__PURE__ */
|
|
21652
|
+
children: draftImages.map((image) => /* @__PURE__ */ jsx28(
|
|
21626
21653
|
AgentComposerDraftImagePreview,
|
|
21627
21654
|
{
|
|
21628
21655
|
image,
|
|
@@ -21633,7 +21660,7 @@ function AgentComposer({
|
|
|
21633
21660
|
))
|
|
21634
21661
|
}
|
|
21635
21662
|
) : null,
|
|
21636
|
-
visibleDraftFiles.length > 0 ? /* @__PURE__ */
|
|
21663
|
+
visibleDraftFiles.length > 0 ? /* @__PURE__ */ jsx28(
|
|
21637
21664
|
"div",
|
|
21638
21665
|
{
|
|
21639
21666
|
className: "mb-2 flex max-w-[520px] flex-wrap gap-2",
|
|
@@ -21649,7 +21676,7 @@ function AgentComposer({
|
|
|
21649
21676
|
"data-upload-error": file.uploadError ? "true" : void 0,
|
|
21650
21677
|
title: file.hostPath ?? file.path ?? file.name,
|
|
21651
21678
|
children: [
|
|
21652
|
-
file.uploading ? /* @__PURE__ */
|
|
21679
|
+
file.uploading ? /* @__PURE__ */ jsx28(
|
|
21653
21680
|
Spinner,
|
|
21654
21681
|
{
|
|
21655
21682
|
className: "shrink-0 text-[var(--text-primary)]",
|
|
@@ -21658,15 +21685,15 @@ function AgentComposer({
|
|
|
21658
21685
|
trackColor: "var(--transparency-hover)",
|
|
21659
21686
|
testId: "agent-gui-composer-file-upload-spinner"
|
|
21660
21687
|
}
|
|
21661
|
-
) : /* @__PURE__ */
|
|
21688
|
+
) : /* @__PURE__ */ jsx28(
|
|
21662
21689
|
"span",
|
|
21663
21690
|
{
|
|
21664
21691
|
className: "size-2 shrink-0 rounded-full bg-[var(--text-tertiary)]",
|
|
21665
21692
|
"aria-hidden": true
|
|
21666
21693
|
}
|
|
21667
21694
|
),
|
|
21668
|
-
/* @__PURE__ */
|
|
21669
|
-
/* @__PURE__ */
|
|
21695
|
+
/* @__PURE__ */ jsx28("span", { className: "min-w-0 max-w-[220px] truncate", children: file.name }),
|
|
21696
|
+
/* @__PURE__ */ jsx28(
|
|
21670
21697
|
"button",
|
|
21671
21698
|
{
|
|
21672
21699
|
type: "button",
|
|
@@ -21674,7 +21701,7 @@ function AgentComposer({
|
|
|
21674
21701
|
"aria-label": labels.removeMention,
|
|
21675
21702
|
title: labels.removeMention,
|
|
21676
21703
|
onClick: () => removeDraftFile(file.id),
|
|
21677
|
-
children: /* @__PURE__ */
|
|
21704
|
+
children: /* @__PURE__ */ jsx28(X, { size: 12, strokeWidth: 2.4, "aria-hidden": true })
|
|
21678
21705
|
}
|
|
21679
21706
|
)
|
|
21680
21707
|
]
|
|
@@ -21691,7 +21718,7 @@ function AgentComposer({
|
|
|
21691
21718
|
!isHeroLayout && "agent-gui-node__composer-prompt-input-line"
|
|
21692
21719
|
),
|
|
21693
21720
|
children: [
|
|
21694
|
-
/* @__PURE__ */
|
|
21721
|
+
/* @__PURE__ */ jsx28(
|
|
21695
21722
|
AgentRichTextEditor,
|
|
21696
21723
|
{
|
|
21697
21724
|
ref: editorHandleRef,
|
|
@@ -21711,7 +21738,8 @@ function AgentComposer({
|
|
|
21711
21738
|
onLinkClick: handleLinkClick,
|
|
21712
21739
|
promptImagesSupported,
|
|
21713
21740
|
onPromptImagesUnsupported,
|
|
21714
|
-
onPasteImages: handlePastedImages
|
|
21741
|
+
onPasteImages: handlePastedImages,
|
|
21742
|
+
getReferenceForFile
|
|
21715
21743
|
}
|
|
21716
21744
|
),
|
|
21717
21745
|
!isHeroLayout ? composerActionButton : null
|
|
@@ -21722,7 +21750,7 @@ function AgentComposer({
|
|
|
21722
21750
|
}
|
|
21723
21751
|
) }),
|
|
21724
21752
|
showFileMentionPalette && mentionPaletteFrame ? createPortal3(
|
|
21725
|
-
/* @__PURE__ */
|
|
21753
|
+
/* @__PURE__ */ jsx28(
|
|
21726
21754
|
"div",
|
|
21727
21755
|
{
|
|
21728
21756
|
"data-testid": "agent-gui-mention-palette-surface",
|
|
@@ -21732,7 +21760,7 @@ function AgentComposer({
|
|
|
21732
21760
|
"max-h-[320px] overflow-hidden border-[var(--line-1)] p-0"
|
|
21733
21761
|
),
|
|
21734
21762
|
style: mentionPaletteStyle,
|
|
21735
|
-
children: /* @__PURE__ */
|
|
21763
|
+
children: /* @__PURE__ */ jsx28(
|
|
21736
21764
|
AgentFileMentionPalette,
|
|
21737
21765
|
{
|
|
21738
21766
|
state: mentionSearchState,
|
|
@@ -21758,7 +21786,7 @@ function AgentComposer({
|
|
|
21758
21786
|
),
|
|
21759
21787
|
mentionPaletteFrame.portalTarget
|
|
21760
21788
|
) : null,
|
|
21761
|
-
/* @__PURE__ */
|
|
21789
|
+
/* @__PURE__ */ jsx28(
|
|
21762
21790
|
ComposerFloatingMenuSurface,
|
|
21763
21791
|
{
|
|
21764
21792
|
anchorRef: inputShellRef,
|
|
@@ -21771,7 +21799,7 @@ function AgentComposer({
|
|
|
21771
21799
|
placement: "fixed-height",
|
|
21772
21800
|
surfaceRef: paletteContentRef,
|
|
21773
21801
|
testId: "agent-gui-slash-palette-surface",
|
|
21774
|
-
children: /* @__PURE__ */
|
|
21802
|
+
children: /* @__PURE__ */ jsx28(
|
|
21775
21803
|
AgentSlashCommandPalette,
|
|
21776
21804
|
{
|
|
21777
21805
|
entries: slashPaletteEntries,
|
|
@@ -21792,7 +21820,7 @@ function AgentComposer({
|
|
|
21792
21820
|
)
|
|
21793
21821
|
}
|
|
21794
21822
|
),
|
|
21795
|
-
/* @__PURE__ */
|
|
21823
|
+
/* @__PURE__ */ jsx28(
|
|
21796
21824
|
ComposerFloatingMenuSurface,
|
|
21797
21825
|
{
|
|
21798
21826
|
anchorRef: inputShellRef,
|
|
@@ -21804,7 +21832,7 @@ function AgentComposer({
|
|
|
21804
21832
|
placement: "dynamic-above",
|
|
21805
21833
|
surfaceRef: paletteContentRef,
|
|
21806
21834
|
testId: "agent-gui-command-menu-surface",
|
|
21807
|
-
children: /* @__PURE__ */
|
|
21835
|
+
children: /* @__PURE__ */ jsx28(
|
|
21808
21836
|
AgentSlashStatusPanel,
|
|
21809
21837
|
{
|
|
21810
21838
|
status: slashStatus,
|
|
@@ -21824,7 +21852,7 @@ function AgentComposer({
|
|
|
21824
21852
|
)
|
|
21825
21853
|
}
|
|
21826
21854
|
),
|
|
21827
|
-
/* @__PURE__ */
|
|
21855
|
+
/* @__PURE__ */ jsx28(
|
|
21828
21856
|
ComposerFloatingMenuSurface,
|
|
21829
21857
|
{
|
|
21830
21858
|
anchorRef: inputShellRef,
|
|
@@ -21836,7 +21864,7 @@ function AgentComposer({
|
|
|
21836
21864
|
placement: "dynamic-above",
|
|
21837
21865
|
surfaceRef: paletteContentRef,
|
|
21838
21866
|
testId: "agent-gui-command-menu-surface",
|
|
21839
|
-
children: /* @__PURE__ */
|
|
21867
|
+
children: /* @__PURE__ */ jsx28(
|
|
21840
21868
|
AgentReviewPickerPanel,
|
|
21841
21869
|
{
|
|
21842
21870
|
labels: labels.reviewPicker,
|
|
@@ -21852,7 +21880,7 @@ function AgentComposer({
|
|
|
21852
21880
|
),
|
|
21853
21881
|
/* @__PURE__ */ jsxs15("div", { className: AgentGUINode_styles_default.composerFooter, children: [
|
|
21854
21882
|
/* @__PURE__ */ jsxs15("div", { className: composerStyles.footerGroup, children: [
|
|
21855
|
-
previewMode ? /* @__PURE__ */
|
|
21883
|
+
previewMode ? /* @__PURE__ */ jsx28(
|
|
21856
21884
|
"button",
|
|
21857
21885
|
{
|
|
21858
21886
|
type: "button",
|
|
@@ -21863,7 +21891,7 @@ function AgentComposer({
|
|
|
21863
21891
|
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
21864
21892
|
"w-auto justify-center text-[var(--agent-gui-text-secondary)] [&_svg]:shrink-0"
|
|
21865
21893
|
),
|
|
21866
|
-
children: /* @__PURE__ */
|
|
21894
|
+
children: /* @__PURE__ */ jsx28(
|
|
21867
21895
|
AddIcon,
|
|
21868
21896
|
{
|
|
21869
21897
|
"aria-hidden": true,
|
|
@@ -21872,7 +21900,7 @@ function AgentComposer({
|
|
|
21872
21900
|
}
|
|
21873
21901
|
)
|
|
21874
21902
|
}
|
|
21875
|
-
) : /* @__PURE__ */
|
|
21903
|
+
) : /* @__PURE__ */ jsx28(
|
|
21876
21904
|
Select2,
|
|
21877
21905
|
{
|
|
21878
21906
|
open: false,
|
|
@@ -21888,7 +21916,7 @@ function AgentComposer({
|
|
|
21888
21916
|
void handleWorkspaceReferencePicker();
|
|
21889
21917
|
}
|
|
21890
21918
|
},
|
|
21891
|
-
children: /* @__PURE__ */
|
|
21919
|
+
children: /* @__PURE__ */ jsx28(
|
|
21892
21920
|
SelectTrigger2,
|
|
21893
21921
|
{
|
|
21894
21922
|
size: "sm",
|
|
@@ -21899,7 +21927,7 @@ function AgentComposer({
|
|
|
21899
21927
|
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
21900
21928
|
"w-auto justify-center text-[var(--agent-gui-text-secondary)] [&>svg:last-child]:hidden [&_svg]:shrink-0"
|
|
21901
21929
|
),
|
|
21902
|
-
children: /* @__PURE__ */
|
|
21930
|
+
children: /* @__PURE__ */ jsx28(
|
|
21903
21931
|
AddIcon,
|
|
21904
21932
|
{
|
|
21905
21933
|
"aria-hidden": true,
|
|
@@ -21911,7 +21939,7 @@ function AgentComposer({
|
|
|
21911
21939
|
)
|
|
21912
21940
|
}
|
|
21913
21941
|
),
|
|
21914
|
-
composerSettings.supportsPlanMode && composerSettings.draftSettings.planMode ? /* @__PURE__ */
|
|
21942
|
+
composerSettings.supportsPlanMode && composerSettings.draftSettings.planMode ? /* @__PURE__ */ jsx28(
|
|
21915
21943
|
"button",
|
|
21916
21944
|
{
|
|
21917
21945
|
type: "button",
|
|
@@ -21927,19 +21955,19 @@ function AgentComposer({
|
|
|
21927
21955
|
onClick: () => onSettingsChange({ planMode: false }),
|
|
21928
21956
|
children: /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
21929
21957
|
/* @__PURE__ */ jsxs15("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
21930
|
-
/* @__PURE__ */
|
|
21958
|
+
/* @__PURE__ */ jsx28(
|
|
21931
21959
|
ListChecks2,
|
|
21932
21960
|
{
|
|
21933
21961
|
"aria-hidden": true,
|
|
21934
21962
|
className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
|
|
21935
21963
|
}
|
|
21936
21964
|
),
|
|
21937
|
-
/* @__PURE__ */
|
|
21965
|
+
/* @__PURE__ */ jsx28(
|
|
21938
21966
|
"span",
|
|
21939
21967
|
{
|
|
21940
21968
|
"aria-hidden": true,
|
|
21941
21969
|
className: "absolute inset-0 flex items-center justify-center rounded-full bg-[var(--text-secondary)] opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100 group-disabled:opacity-0",
|
|
21942
|
-
children: /* @__PURE__ */
|
|
21970
|
+
children: /* @__PURE__ */ jsx28(
|
|
21943
21971
|
X,
|
|
21944
21972
|
{
|
|
21945
21973
|
className: "size-2.5 text-[var(--background-fronted)]",
|
|
@@ -21949,11 +21977,11 @@ function AgentComposer({
|
|
|
21949
21977
|
}
|
|
21950
21978
|
)
|
|
21951
21979
|
] }),
|
|
21952
|
-
/* @__PURE__ */
|
|
21980
|
+
/* @__PURE__ */ jsx28("span", { className: "min-w-0 truncate", children: labels.planModeLabel })
|
|
21953
21981
|
] })
|
|
21954
21982
|
}
|
|
21955
21983
|
) : null,
|
|
21956
|
-
isGoalModeActive ? /* @__PURE__ */
|
|
21984
|
+
isGoalModeActive ? /* @__PURE__ */ jsx28(
|
|
21957
21985
|
"button",
|
|
21958
21986
|
{
|
|
21959
21987
|
type: "button",
|
|
@@ -21969,19 +21997,19 @@ function AgentComposer({
|
|
|
21969
21997
|
onClick: clearGoalModeBadge,
|
|
21970
21998
|
children: /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
21971
21999
|
/* @__PURE__ */ jsxs15("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
21972
|
-
/* @__PURE__ */
|
|
22000
|
+
/* @__PURE__ */ jsx28(
|
|
21973
22001
|
Target3,
|
|
21974
22002
|
{
|
|
21975
22003
|
"aria-hidden": true,
|
|
21976
22004
|
className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
|
|
21977
22005
|
}
|
|
21978
22006
|
),
|
|
21979
|
-
/* @__PURE__ */
|
|
22007
|
+
/* @__PURE__ */ jsx28(
|
|
21980
22008
|
"span",
|
|
21981
22009
|
{
|
|
21982
22010
|
"aria-hidden": true,
|
|
21983
22011
|
className: "absolute inset-0 flex items-center justify-center rounded-full bg-[var(--text-secondary)] opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100 group-disabled:opacity-0",
|
|
21984
|
-
children: /* @__PURE__ */
|
|
22012
|
+
children: /* @__PURE__ */ jsx28(
|
|
21985
22013
|
X,
|
|
21986
22014
|
{
|
|
21987
22015
|
className: "size-2.5 text-[var(--background-fronted)]",
|
|
@@ -21991,13 +22019,13 @@ function AgentComposer({
|
|
|
21991
22019
|
}
|
|
21992
22020
|
)
|
|
21993
22021
|
] }),
|
|
21994
|
-
/* @__PURE__ */
|
|
22022
|
+
/* @__PURE__ */ jsx28("span", { className: "min-w-0 truncate", children: labels.goalLabel })
|
|
21995
22023
|
] })
|
|
21996
22024
|
}
|
|
21997
22025
|
) : null
|
|
21998
22026
|
] }),
|
|
21999
22027
|
/* @__PURE__ */ jsxs15("div", { className: composerStyles.footerGroupRight, children: [
|
|
22000
|
-
usage && usage.percentUsed !== null ? /* @__PURE__ */
|
|
22028
|
+
usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx28(
|
|
22001
22029
|
AgentUsageChip,
|
|
22002
22030
|
{
|
|
22003
22031
|
percentUsed: usage.percentUsed,
|
|
@@ -22016,7 +22044,7 @@ function AgentComposer({
|
|
|
22016
22044
|
}
|
|
22017
22045
|
}
|
|
22018
22046
|
) : null,
|
|
22019
|
-
composerSettings.supportsPermissionMode ? /* @__PURE__ */
|
|
22047
|
+
composerSettings.supportsPermissionMode ? /* @__PURE__ */ jsx28(
|
|
22020
22048
|
AgentPermissionModeDropdown,
|
|
22021
22049
|
{
|
|
22022
22050
|
composerSettings,
|
|
@@ -22029,7 +22057,7 @@ function AgentComposer({
|
|
|
22029
22057
|
onSettingsChange: (patch) => onSettingsChange(patch)
|
|
22030
22058
|
}
|
|
22031
22059
|
) : null,
|
|
22032
|
-
composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */
|
|
22060
|
+
composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */ jsx28(
|
|
22033
22061
|
AgentModelReasoningDropdown,
|
|
22034
22062
|
{
|
|
22035
22063
|
composerSettings,
|
|
@@ -22077,7 +22105,7 @@ function AgentComposer({
|
|
|
22077
22105
|
className: AgentGUINode_styles_default.composerProjectRow,
|
|
22078
22106
|
"data-project-missing": isSelectedProjectMissing ? "true" : void 0,
|
|
22079
22107
|
children: [
|
|
22080
|
-
showHeroProjectSelector ? /* @__PURE__ */
|
|
22108
|
+
showHeroProjectSelector ? /* @__PURE__ */ jsx28(
|
|
22081
22109
|
AgentProjectDropdown,
|
|
22082
22110
|
{
|
|
22083
22111
|
composerSettings,
|
|
@@ -22092,14 +22120,14 @@ function AgentComposer({
|
|
|
22092
22120
|
onProjectPathChange
|
|
22093
22121
|
}
|
|
22094
22122
|
) : null,
|
|
22095
|
-
activePromptTip ? /* @__PURE__ */
|
|
22123
|
+
activePromptTip ? /* @__PURE__ */ jsx28(
|
|
22096
22124
|
"div",
|
|
22097
22125
|
{
|
|
22098
22126
|
className: AgentGUINode_styles_default.composerPromptTips,
|
|
22099
22127
|
"data-testid": "agent-gui-prompt-tips",
|
|
22100
|
-
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */
|
|
22101
|
-
/* @__PURE__ */
|
|
22102
|
-
/* @__PURE__ */
|
|
22128
|
+
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs15(Tooltip, { children: [
|
|
22129
|
+
/* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: promptTipNode }),
|
|
22130
|
+
/* @__PURE__ */ jsx28(
|
|
22103
22131
|
TooltipContent,
|
|
22104
22132
|
{
|
|
22105
22133
|
align: "end",
|
|
@@ -22154,7 +22182,7 @@ function AgentComposerDraftImagePreview({
|
|
|
22154
22182
|
"data-upload-error": image.uploadError ? "true" : void 0,
|
|
22155
22183
|
style: previewStyle,
|
|
22156
22184
|
children: [
|
|
22157
|
-
/* @__PURE__ */
|
|
22185
|
+
/* @__PURE__ */ jsx28(
|
|
22158
22186
|
ZoomableImage,
|
|
22159
22187
|
{
|
|
22160
22188
|
src: image.previewUrl,
|
|
@@ -22177,12 +22205,12 @@ function AgentComposerDraftImagePreview({
|
|
|
22177
22205
|
}
|
|
22178
22206
|
}
|
|
22179
22207
|
),
|
|
22180
|
-
image.uploading ? /* @__PURE__ */
|
|
22208
|
+
image.uploading ? /* @__PURE__ */ jsx28(
|
|
22181
22209
|
"div",
|
|
22182
22210
|
{
|
|
22183
22211
|
className: "absolute inset-0 grid place-items-center bg-[color-mix(in_srgb,var(--background-fronted)_62%,transparent)]",
|
|
22184
22212
|
"data-testid": "agent-gui-composer-image-uploading",
|
|
22185
|
-
children: /* @__PURE__ */
|
|
22213
|
+
children: /* @__PURE__ */ jsx28(
|
|
22186
22214
|
Spinner,
|
|
22187
22215
|
{
|
|
22188
22216
|
className: "text-[var(--text-primary)]",
|
|
@@ -22194,7 +22222,7 @@ function AgentComposerDraftImagePreview({
|
|
|
22194
22222
|
)
|
|
22195
22223
|
}
|
|
22196
22224
|
) : null,
|
|
22197
|
-
/* @__PURE__ */
|
|
22225
|
+
/* @__PURE__ */ jsx28(
|
|
22198
22226
|
"button",
|
|
22199
22227
|
{
|
|
22200
22228
|
type: "button",
|
|
@@ -22202,7 +22230,7 @@ function AgentComposerDraftImagePreview({
|
|
|
22202
22230
|
"aria-label": removeLabel,
|
|
22203
22231
|
title: removeLabel,
|
|
22204
22232
|
onClick: () => onRemove(image.id),
|
|
22205
|
-
children: /* @__PURE__ */
|
|
22233
|
+
children: /* @__PURE__ */ jsx28(X, { size: 12, strokeWidth: 2.4, "aria-hidden": true })
|
|
22206
22234
|
}
|
|
22207
22235
|
)
|
|
22208
22236
|
]
|
|
@@ -22282,7 +22310,7 @@ function useStableEventCallback(callback) {
|
|
|
22282
22310
|
}
|
|
22283
22311
|
function SendFilledIcon() {
|
|
22284
22312
|
"use memo";
|
|
22285
|
-
return /* @__PURE__ */
|
|
22313
|
+
return /* @__PURE__ */ jsx28(
|
|
22286
22314
|
"svg",
|
|
22287
22315
|
{
|
|
22288
22316
|
width: "24",
|
|
@@ -22290,7 +22318,7 @@ function SendFilledIcon() {
|
|
|
22290
22318
|
viewBox: "0 0 24 24",
|
|
22291
22319
|
fill: "none",
|
|
22292
22320
|
"aria-hidden": "true",
|
|
22293
|
-
children: /* @__PURE__ */
|
|
22321
|
+
children: /* @__PURE__ */ jsx28(
|
|
22294
22322
|
"path",
|
|
22295
22323
|
{
|
|
22296
22324
|
d: "M2.74311 8.80587C2.84592 8.40096 3.14571 8.08844 3.54551 7.97033L18.5197 3.51569C18.9336 3.39383 19.3809 3.5054 19.6881 3.81262C19.9951 4.11984 20.1076 4.56798 19.9857 4.9817L15.5311 19.9559C15.413 20.3557 15.1005 20.6555 14.6956 20.7583C14.2895 20.8597 13.869 20.7438 13.5721 20.4469L10.455 15.1823C10.8585 14.6483 12.1563 12.9094 14.3475 9.96528C14.6086 9.70419 14.6382 9.31168 14.4138 9.08692C14.1891 8.86221 13.796 8.8913 13.5348 9.15252L8.31088 13.0423L3.05316 9.92799C2.7562 9.63104 2.64049 9.21071 2.74311 8.80587Z",
|
|
@@ -22317,7 +22345,7 @@ function agentGUIBottomDockStoreSnapshotsEqual(current, next) {
|
|
|
22317
22345
|
}
|
|
22318
22346
|
|
|
22319
22347
|
// agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
|
|
22320
|
-
import { jsx as
|
|
22348
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
22321
22349
|
var SKELETON_ROWS = [
|
|
22322
22350
|
{ id: "first", size: "long" },
|
|
22323
22351
|
{ id: "second", size: "medium" },
|
|
@@ -22329,7 +22357,7 @@ function AgentConversationListSkeleton({
|
|
|
22329
22357
|
label
|
|
22330
22358
|
}) {
|
|
22331
22359
|
"use memo";
|
|
22332
|
-
return /* @__PURE__ */
|
|
22360
|
+
return /* @__PURE__ */ jsx29(
|
|
22333
22361
|
"div",
|
|
22334
22362
|
{
|
|
22335
22363
|
className: "agent-gui-node__conversation-list-skeleton",
|
|
@@ -22343,9 +22371,9 @@ function AgentConversationListSkeleton({
|
|
|
22343
22371
|
"data-size": row.size,
|
|
22344
22372
|
"aria-hidden": "true",
|
|
22345
22373
|
children: [
|
|
22346
|
-
/* @__PURE__ */
|
|
22347
|
-
/* @__PURE__ */
|
|
22348
|
-
/* @__PURE__ */
|
|
22374
|
+
/* @__PURE__ */ jsx29("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
|
|
22375
|
+
/* @__PURE__ */ jsx29("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
|
|
22376
|
+
/* @__PURE__ */ jsx29("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
|
|
22349
22377
|
]
|
|
22350
22378
|
},
|
|
22351
22379
|
row.id
|
|
@@ -22356,7 +22384,7 @@ function AgentConversationListSkeleton({
|
|
|
22356
22384
|
|
|
22357
22385
|
// agent-gui/agentGuiNode/agentGuiNodeViewConversation.tsx
|
|
22358
22386
|
import { AskLinedIcon } from "@tutti-os/ui-system/icons";
|
|
22359
|
-
import { jsx as
|
|
22387
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
22360
22388
|
function ConversationMeta({
|
|
22361
22389
|
item,
|
|
22362
22390
|
nowMs,
|
|
@@ -22365,24 +22393,24 @@ function ConversationMeta({
|
|
|
22365
22393
|
"use memo";
|
|
22366
22394
|
const kind = conversationMetaKind(item);
|
|
22367
22395
|
if (kind === "loading") {
|
|
22368
|
-
return /* @__PURE__ */
|
|
22396
|
+
return /* @__PURE__ */ jsx30(
|
|
22369
22397
|
"span",
|
|
22370
22398
|
{
|
|
22371
22399
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
22372
22400
|
"data-kind": kind,
|
|
22373
22401
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
22374
|
-
children: /* @__PURE__ */
|
|
22402
|
+
children: /* @__PURE__ */ jsx30(LoadingGlyph, {})
|
|
22375
22403
|
}
|
|
22376
22404
|
);
|
|
22377
22405
|
}
|
|
22378
22406
|
if (kind === "waiting") {
|
|
22379
|
-
return /* @__PURE__ */
|
|
22407
|
+
return /* @__PURE__ */ jsx30(
|
|
22380
22408
|
"span",
|
|
22381
22409
|
{
|
|
22382
22410
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
22383
22411
|
"data-kind": kind,
|
|
22384
22412
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
22385
|
-
children: /* @__PURE__ */
|
|
22413
|
+
children: /* @__PURE__ */ jsx30(
|
|
22386
22414
|
AskLinedIcon,
|
|
22387
22415
|
{
|
|
22388
22416
|
"aria-hidden": "true",
|
|
@@ -22393,34 +22421,34 @@ function ConversationMeta({
|
|
|
22393
22421
|
);
|
|
22394
22422
|
}
|
|
22395
22423
|
if (kind === "failed") {
|
|
22396
|
-
return /* @__PURE__ */
|
|
22424
|
+
return /* @__PURE__ */ jsx30(
|
|
22397
22425
|
"span",
|
|
22398
22426
|
{
|
|
22399
22427
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
22400
22428
|
"data-kind": kind,
|
|
22401
22429
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
22402
|
-
children: /* @__PURE__ */
|
|
22430
|
+
children: /* @__PURE__ */ jsx30(AttentionGlyph, {})
|
|
22403
22431
|
}
|
|
22404
22432
|
);
|
|
22405
22433
|
}
|
|
22406
22434
|
if (kind === "unread-complete") {
|
|
22407
|
-
return /* @__PURE__ */
|
|
22435
|
+
return /* @__PURE__ */ jsx30(
|
|
22408
22436
|
"span",
|
|
22409
22437
|
{
|
|
22410
22438
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
22411
22439
|
"data-kind": kind,
|
|
22412
22440
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
22413
|
-
children: /* @__PURE__ */
|
|
22441
|
+
children: /* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.conversationUnreadLamp, "aria-hidden": "true" })
|
|
22414
22442
|
}
|
|
22415
22443
|
);
|
|
22416
22444
|
}
|
|
22417
|
-
return /* @__PURE__ */
|
|
22445
|
+
return /* @__PURE__ */ jsx30(
|
|
22418
22446
|
"span",
|
|
22419
22447
|
{
|
|
22420
22448
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
22421
22449
|
"data-kind": kind,
|
|
22422
22450
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
22423
|
-
children: /* @__PURE__ */
|
|
22451
|
+
children: /* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.conversationTime, children: formatConversationRelativeTime(
|
|
22424
22452
|
resolveAgentGUIConversationSortTimeUnixMs(item),
|
|
22425
22453
|
nowMs,
|
|
22426
22454
|
labels
|
|
@@ -22588,7 +22616,7 @@ function formatConversationRelativeTime(updatedAtUnixMs, nowMs, labels) {
|
|
|
22588
22616
|
}
|
|
22589
22617
|
function LoadingGlyph() {
|
|
22590
22618
|
"use memo";
|
|
22591
|
-
return /* @__PURE__ */
|
|
22619
|
+
return /* @__PURE__ */ jsx30(
|
|
22592
22620
|
Spinner,
|
|
22593
22621
|
{
|
|
22594
22622
|
className: AgentGUINode_styles_default.conversationStatusGlyph,
|
|
@@ -22602,14 +22630,14 @@ function LoadingGlyph() {
|
|
|
22602
22630
|
}
|
|
22603
22631
|
function AttentionGlyph() {
|
|
22604
22632
|
"use memo";
|
|
22605
|
-
return /* @__PURE__ */
|
|
22633
|
+
return /* @__PURE__ */ jsx30(
|
|
22606
22634
|
"svg",
|
|
22607
22635
|
{
|
|
22608
22636
|
viewBox: "0 0 24 24",
|
|
22609
22637
|
fill: "none",
|
|
22610
22638
|
"aria-hidden": "true",
|
|
22611
22639
|
className: AgentGUINode_styles_default.conversationStatusGlyph,
|
|
22612
|
-
children: /* @__PURE__ */
|
|
22640
|
+
children: /* @__PURE__ */ jsx30(
|
|
22613
22641
|
"path",
|
|
22614
22642
|
{
|
|
22615
22643
|
d: "M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM12.5 15C12.7761 15 13 15.2239 13 15.5V16.5C13 16.7761 12.7761 17 12.5 17H11.5C11.2239 17 11 16.7761 11 16.5V15.5C11 15.2239 11.2239 15 11.5 15H12.5ZM12.5 7C12.7761 7 13 7.22386 13 7.5V13.5C13 13.7761 12.7761 14 12.5 14H11.5C11.2239 14 11 13.7761 11 13.5V7.5C11 7.22386 11.2239 7 11.5 7H12.5Z",
|
|
@@ -22622,7 +22650,7 @@ function AttentionGlyph() {
|
|
|
22622
22650
|
|
|
22623
22651
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
22624
22652
|
import { createRichTextMentionHref as createRichTextMentionHref2 } from "@tutti-os/ui-rich-text/core";
|
|
22625
|
-
import { Fragment as Fragment8, jsx as
|
|
22653
|
+
import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
22626
22654
|
var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
|
|
22627
22655
|
var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
|
|
22628
22656
|
var AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX = 1;
|
|
@@ -23261,14 +23289,14 @@ function AgentGUINodeView({
|
|
|
23261
23289
|
inert: previewMode ? true : void 0,
|
|
23262
23290
|
style: layoutStyle,
|
|
23263
23291
|
children: [
|
|
23264
|
-
/* @__PURE__ */
|
|
23292
|
+
/* @__PURE__ */ jsx31(
|
|
23265
23293
|
"aside",
|
|
23266
23294
|
{
|
|
23267
23295
|
id: "agent-gui-conversation-rail",
|
|
23268
23296
|
className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
|
|
23269
23297
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
23270
23298
|
inert: conversationRailCollapsed ? true : void 0,
|
|
23271
|
-
children: /* @__PURE__ */
|
|
23299
|
+
children: /* @__PURE__ */ jsx31(
|
|
23272
23300
|
AgentGUIConversationRailStorePane,
|
|
23273
23301
|
{
|
|
23274
23302
|
conversations: viewModel.conversations,
|
|
@@ -23279,7 +23307,7 @@ function AgentGUINodeView({
|
|
|
23279
23307
|
)
|
|
23280
23308
|
}
|
|
23281
23309
|
),
|
|
23282
|
-
/* @__PURE__ */
|
|
23310
|
+
/* @__PURE__ */ jsx31(
|
|
23283
23311
|
"div",
|
|
23284
23312
|
{
|
|
23285
23313
|
id: "agent-gui-conversation-rail-resize",
|
|
@@ -23303,7 +23331,7 @@ function AgentGUINodeView({
|
|
|
23303
23331
|
onPointerUp: endConversationRailResize
|
|
23304
23332
|
}
|
|
23305
23333
|
),
|
|
23306
|
-
/* @__PURE__ */
|
|
23334
|
+
/* @__PURE__ */ jsx31("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx31(
|
|
23307
23335
|
AgentGUIDetailPane,
|
|
23308
23336
|
{
|
|
23309
23337
|
viewModel,
|
|
@@ -23332,7 +23360,7 @@ function AgentGUINodeView({
|
|
|
23332
23360
|
]
|
|
23333
23361
|
}
|
|
23334
23362
|
),
|
|
23335
|
-
referenceSourceAggregator ? /* @__PURE__ */
|
|
23363
|
+
referenceSourceAggregator ? /* @__PURE__ */ jsx31(
|
|
23336
23364
|
ReferenceSourcePicker,
|
|
23337
23365
|
{
|
|
23338
23366
|
aggregator: referenceSourceAggregator,
|
|
@@ -23346,7 +23374,7 @@ function AgentGUINodeView({
|
|
|
23346
23374
|
onConfirm: confirmWorkspaceReferencePicker,
|
|
23347
23375
|
onConfirmBundles: confirmWorkspaceReferenceBundles
|
|
23348
23376
|
}
|
|
23349
|
-
) : /* @__PURE__ */
|
|
23377
|
+
) : /* @__PURE__ */ jsx31(
|
|
23350
23378
|
WorkspaceFileReferencePicker,
|
|
23351
23379
|
{
|
|
23352
23380
|
copy: workspaceFileReferenceCopy ?? fallbackWorkspaceFileReferenceCopy,
|
|
@@ -23360,7 +23388,7 @@ function AgentGUINodeView({
|
|
|
23360
23388
|
}
|
|
23361
23389
|
)
|
|
23362
23390
|
] });
|
|
23363
|
-
return previewMode ? content : /* @__PURE__ */
|
|
23391
|
+
return previewMode ? content : /* @__PURE__ */ jsx31(TooltipProvider2, { children: content });
|
|
23364
23392
|
}
|
|
23365
23393
|
function mergeWorkspaceAppIconsFromCommands(input) {
|
|
23366
23394
|
const seen = new Set(
|
|
@@ -23573,8 +23601,8 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23573
23601
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
23574
23602
|
"data-testid": "agent-gui-unavailable-chat-empty",
|
|
23575
23603
|
children: [
|
|
23576
|
-
/* @__PURE__ */
|
|
23577
|
-
/* @__PURE__ */
|
|
23604
|
+
/* @__PURE__ */ jsx31(UnavailableChatIcon, { className: AgentGUINode_styles_default.unavailableChatEmptyIcon }),
|
|
23605
|
+
/* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.unavailableChatEmptyText, children: labels.conversationUnavailable })
|
|
23578
23606
|
]
|
|
23579
23607
|
}
|
|
23580
23608
|
),
|
|
@@ -24273,7 +24301,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
24273
24301
|
viewModel.isLoadingOlderMessages
|
|
24274
24302
|
]);
|
|
24275
24303
|
return /* @__PURE__ */ jsxs17("main", { className: AgentGUINode_styles_default.detail, children: [
|
|
24276
|
-
/* @__PURE__ */
|
|
24304
|
+
/* @__PURE__ */ jsx31(
|
|
24277
24305
|
AgentGUIDetailHeader,
|
|
24278
24306
|
{
|
|
24279
24307
|
activeConversation: viewModel.activeConversation,
|
|
@@ -24298,8 +24326,8 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
24298
24326
|
"data-testid": "agent-gui-provider-setup-notice",
|
|
24299
24327
|
role: "status",
|
|
24300
24328
|
children: [
|
|
24301
|
-
/* @__PURE__ */
|
|
24302
|
-
/* @__PURE__ */
|
|
24329
|
+
/* @__PURE__ */ jsx31("span", { className: "inline-flex max-w-full items-center justify-center gap-[6px] text-center text-[13px] font-normal leading-normal", children: /* @__PURE__ */ jsx31("span", { className: "min-w-0 break-words", children: labels.installRequiredPlaceholder }) }),
|
|
24330
|
+
/* @__PURE__ */ jsx31(
|
|
24303
24331
|
"button",
|
|
24304
24332
|
{
|
|
24305
24333
|
type: "button",
|
|
@@ -24319,7 +24347,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
24319
24347
|
]
|
|
24320
24348
|
}
|
|
24321
24349
|
) : null,
|
|
24322
|
-
/* @__PURE__ */
|
|
24350
|
+
/* @__PURE__ */ jsx31(
|
|
24323
24351
|
ScrollArea,
|
|
24324
24352
|
{
|
|
24325
24353
|
scrollbarMode: "native",
|
|
@@ -24328,7 +24356,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
24328
24356
|
viewportTestId: "agent-gui-timeline",
|
|
24329
24357
|
viewportClassName: `${AgentGUINode_styles_default.timeline} ${hasActiveConversation ? AgentGUINode_styles_default.timelineWithComposer : AgentGUINode_styles_default.timelineCentered} ${!isTimelineScrolledToTop ? AgentGUINode_styles_default.timelineScrolledFromTop : ""} ${showUnavailableChatEmpty ? AgentGUINode_styles_default.timelineUnavailableChatEmpty : ""}`.trim(),
|
|
24330
24358
|
viewportContentStyle: AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE,
|
|
24331
|
-
children: !hasActiveConversation ? /* @__PURE__ */
|
|
24359
|
+
children: !hasActiveConversation ? /* @__PURE__ */ jsx31(
|
|
24332
24360
|
AgentGUIEmptyHeroPane,
|
|
24333
24361
|
{
|
|
24334
24362
|
provider: viewModel.data.provider,
|
|
@@ -24343,7 +24371,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
24343
24371
|
chromeLabels,
|
|
24344
24372
|
composerProps: emptyHeroComposerProps
|
|
24345
24373
|
}
|
|
24346
|
-
) : /* @__PURE__ */
|
|
24374
|
+
) : /* @__PURE__ */ jsx31(
|
|
24347
24375
|
AgentGUIConversationTimelinePane,
|
|
24348
24376
|
{
|
|
24349
24377
|
conversation,
|
|
@@ -24361,7 +24389,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
24361
24389
|
)
|
|
24362
24390
|
}
|
|
24363
24391
|
),
|
|
24364
|
-
hasActiveConversation ? /* @__PURE__ */
|
|
24392
|
+
hasActiveConversation ? /* @__PURE__ */ jsx31(
|
|
24365
24393
|
AgentGUIBottomDockPane,
|
|
24366
24394
|
{
|
|
24367
24395
|
bottomDockRef,
|
|
@@ -24401,8 +24429,8 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
24401
24429
|
const statusTitle = showSyncIndicator ? syncLabel : void 0;
|
|
24402
24430
|
return /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.detailHeader, children: [
|
|
24403
24431
|
/* @__PURE__ */ jsxs17("span", { className: AgentGUINode_styles_default.detailHeaderTitleGroup, children: [
|
|
24404
|
-
/* @__PURE__ */
|
|
24405
|
-
runPath ? /* @__PURE__ */
|
|
24432
|
+
/* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.detailHeaderTitle, children: conversationPlainTitle(activeConversation, labels, uiLanguage) }),
|
|
24433
|
+
runPath ? /* @__PURE__ */ jsx31(AgentRunPathInfo, { path: runPath, previewMode }) : null
|
|
24406
24434
|
] }),
|
|
24407
24435
|
/* @__PURE__ */ jsxs17(
|
|
24408
24436
|
"span",
|
|
@@ -24410,7 +24438,7 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
24410
24438
|
className: "inline-flex flex-none items-center gap-2 whitespace-nowrap",
|
|
24411
24439
|
title: statusTitle,
|
|
24412
24440
|
children: [
|
|
24413
|
-
showSyncIndicator ? /* @__PURE__ */
|
|
24441
|
+
showSyncIndicator ? /* @__PURE__ */ jsx31(
|
|
24414
24442
|
StatusDot,
|
|
24415
24443
|
{
|
|
24416
24444
|
tone: syncStateTone(syncStatus),
|
|
@@ -24420,7 +24448,7 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
24420
24448
|
title: syncLabel
|
|
24421
24449
|
}
|
|
24422
24450
|
) : null,
|
|
24423
|
-
showFailedSyncLabel ? /* @__PURE__ */
|
|
24451
|
+
showFailedSyncLabel ? /* @__PURE__ */ jsx31("span", { className: "text-[13px] font-semibold leading-[18px] text-shell-warning", children: syncLabel }) : null
|
|
24424
24452
|
]
|
|
24425
24453
|
}
|
|
24426
24454
|
)
|
|
@@ -24431,21 +24459,21 @@ function AgentRunPathInfo({
|
|
|
24431
24459
|
previewMode
|
|
24432
24460
|
}) {
|
|
24433
24461
|
"use memo";
|
|
24434
|
-
const trigger = /* @__PURE__ */
|
|
24462
|
+
const trigger = /* @__PURE__ */ jsx31(
|
|
24435
24463
|
"button",
|
|
24436
24464
|
{
|
|
24437
24465
|
type: "button",
|
|
24438
24466
|
className: AgentGUINode_styles_default.detailHeaderPathInfo,
|
|
24439
24467
|
"aria-label": path,
|
|
24440
|
-
children: /* @__PURE__ */
|
|
24468
|
+
children: /* @__PURE__ */ jsx31(Info2, { size: 14, strokeWidth: 2, "aria-hidden": "true" })
|
|
24441
24469
|
}
|
|
24442
24470
|
);
|
|
24443
24471
|
if (previewMode) {
|
|
24444
24472
|
return trigger;
|
|
24445
24473
|
}
|
|
24446
24474
|
return /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
24447
|
-
/* @__PURE__ */
|
|
24448
|
-
/* @__PURE__ */
|
|
24475
|
+
/* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: trigger }),
|
|
24476
|
+
/* @__PURE__ */ jsx31(
|
|
24449
24477
|
TooltipContent3,
|
|
24450
24478
|
{
|
|
24451
24479
|
side: "top",
|
|
@@ -24490,8 +24518,8 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
24490
24518
|
}) {
|
|
24491
24519
|
"use memo";
|
|
24492
24520
|
const heroIconUrl = resolveAgentGUIHeroIconUrl(provider);
|
|
24493
|
-
return /* @__PURE__ */
|
|
24494
|
-
/* @__PURE__ */
|
|
24521
|
+
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
|
|
24522
|
+
/* @__PURE__ */ jsx31(
|
|
24495
24523
|
"img",
|
|
24496
24524
|
{
|
|
24497
24525
|
"aria-hidden": "true",
|
|
@@ -24501,8 +24529,8 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
24501
24529
|
alt: ""
|
|
24502
24530
|
}
|
|
24503
24531
|
),
|
|
24504
|
-
/* @__PURE__ */
|
|
24505
|
-
inlineNoticeChrome ? /* @__PURE__ */
|
|
24532
|
+
/* @__PURE__ */ jsx31("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx31(EmptyHeroTitle, { label: emptyLabel, providerLabel: emptyProvider }) }),
|
|
24533
|
+
inlineNoticeChrome ? /* @__PURE__ */ jsx31(
|
|
24506
24534
|
AgentSessionChrome,
|
|
24507
24535
|
{
|
|
24508
24536
|
chrome: inlineNoticeChrome,
|
|
@@ -24514,7 +24542,7 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
24514
24542
|
labels: chromeLabels
|
|
24515
24543
|
}
|
|
24516
24544
|
) : null,
|
|
24517
|
-
/* @__PURE__ */
|
|
24545
|
+
/* @__PURE__ */ jsx31(AgentComposer, { ...composerProps })
|
|
24518
24546
|
] }) });
|
|
24519
24547
|
});
|
|
24520
24548
|
function EmptyHeroTitle({
|
|
@@ -24523,12 +24551,12 @@ function EmptyHeroTitle({
|
|
|
24523
24551
|
}) {
|
|
24524
24552
|
const providerStart = providerLabel ? label.indexOf(providerLabel) : -1;
|
|
24525
24553
|
if (!shouldEmphasizeEmptyHeroProvider(label) || providerStart < 0) {
|
|
24526
|
-
return /* @__PURE__ */
|
|
24554
|
+
return /* @__PURE__ */ jsx31(Fragment8, { children: label });
|
|
24527
24555
|
}
|
|
24528
24556
|
const providerEnd = providerStart + providerLabel.length;
|
|
24529
24557
|
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
24530
24558
|
label.slice(0, providerStart),
|
|
24531
|
-
/* @__PURE__ */
|
|
24559
|
+
/* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: label.slice(providerStart, providerEnd) }),
|
|
24532
24560
|
label.slice(providerEnd)
|
|
24533
24561
|
] });
|
|
24534
24562
|
}
|
|
@@ -24570,12 +24598,12 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24570
24598
|
className: AgentGUINode_styles_default.bottomDock,
|
|
24571
24599
|
"data-testid": "agent-gui-bottom-dock",
|
|
24572
24600
|
children: [
|
|
24573
|
-
bottomDockLiftedPrompt ? /* @__PURE__ */
|
|
24601
|
+
bottomDockLiftedPrompt ? /* @__PURE__ */ jsx31(
|
|
24574
24602
|
"div",
|
|
24575
24603
|
{
|
|
24576
24604
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
24577
24605
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
24578
|
-
children: /* @__PURE__ */
|
|
24606
|
+
children: /* @__PURE__ */ jsx31(
|
|
24579
24607
|
AgentInteractivePromptSurface,
|
|
24580
24608
|
{
|
|
24581
24609
|
prompt: bottomDockLiftedPrompt,
|
|
@@ -24590,7 +24618,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24590
24618
|
)
|
|
24591
24619
|
}
|
|
24592
24620
|
) : null,
|
|
24593
|
-
inlineNoticeChrome ? /* @__PURE__ */
|
|
24621
|
+
inlineNoticeChrome ? /* @__PURE__ */ jsx31(
|
|
24594
24622
|
AgentSessionChrome,
|
|
24595
24623
|
{
|
|
24596
24624
|
chrome: inlineNoticeChrome,
|
|
@@ -24602,7 +24630,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24602
24630
|
labels: chromeLabels
|
|
24603
24631
|
}
|
|
24604
24632
|
) : null,
|
|
24605
|
-
/* @__PURE__ */
|
|
24633
|
+
/* @__PURE__ */ jsx31(
|
|
24606
24634
|
AgentSessionChrome,
|
|
24607
24635
|
{
|
|
24608
24636
|
chrome: sessionChrome,
|
|
@@ -24614,7 +24642,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24614
24642
|
labels: chromeLabels
|
|
24615
24643
|
}
|
|
24616
24644
|
),
|
|
24617
|
-
showGoalBanner ? /* @__PURE__ */
|
|
24645
|
+
showGoalBanner ? /* @__PURE__ */ jsx31(
|
|
24618
24646
|
AgentGoalBanner,
|
|
24619
24647
|
{
|
|
24620
24648
|
objective: goalObjective,
|
|
@@ -24624,12 +24652,12 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24624
24652
|
labels: goalBannerLabels
|
|
24625
24653
|
}
|
|
24626
24654
|
) : null,
|
|
24627
|
-
bottomDockReplacementPrompt ? /* @__PURE__ */
|
|
24655
|
+
bottomDockReplacementPrompt ? /* @__PURE__ */ jsx31(
|
|
24628
24656
|
"div",
|
|
24629
24657
|
{
|
|
24630
24658
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
24631
24659
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
24632
|
-
children: /* @__PURE__ */
|
|
24660
|
+
children: /* @__PURE__ */ jsx31(
|
|
24633
24661
|
AgentInteractivePromptSurface,
|
|
24634
24662
|
{
|
|
24635
24663
|
prompt: bottomDockReplacementPrompt,
|
|
@@ -24643,7 +24671,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24643
24671
|
}
|
|
24644
24672
|
)
|
|
24645
24673
|
}
|
|
24646
|
-
) : /* @__PURE__ */
|
|
24674
|
+
) : /* @__PURE__ */ jsx31(AgentComposer, { ...composerProps })
|
|
24647
24675
|
]
|
|
24648
24676
|
}
|
|
24649
24677
|
);
|
|
@@ -24669,7 +24697,7 @@ var AgentGUIConversationRailStorePane = memo(
|
|
|
24669
24697
|
}) {
|
|
24670
24698
|
"use memo";
|
|
24671
24699
|
const state = useSnapshot(store);
|
|
24672
|
-
return /* @__PURE__ */
|
|
24700
|
+
return /* @__PURE__ */ jsx31(
|
|
24673
24701
|
AgentGUIConversationRailPane,
|
|
24674
24702
|
{
|
|
24675
24703
|
...state,
|
|
@@ -24891,7 +24919,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24891
24919
|
"aria-hidden": isCollapsed ? "true" : void 0,
|
|
24892
24920
|
children: [
|
|
24893
24921
|
/* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.railToolbar, children: [
|
|
24894
|
-
/* @__PURE__ */
|
|
24922
|
+
/* @__PURE__ */ jsx31(
|
|
24895
24923
|
TaskSearchField,
|
|
24896
24924
|
{
|
|
24897
24925
|
value: conversationQuery,
|
|
@@ -24910,14 +24938,14 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24910
24938
|
disabled: createConversationDisabled,
|
|
24911
24939
|
onClick: () => onCreateConversation(),
|
|
24912
24940
|
children: [
|
|
24913
|
-
/* @__PURE__ */
|
|
24914
|
-
/* @__PURE__ */
|
|
24941
|
+
/* @__PURE__ */ jsx31(CreateChatIcon, { "aria-hidden": "true" }),
|
|
24942
|
+
/* @__PURE__ */ jsx31("span", { children: labels.newConversation })
|
|
24915
24943
|
]
|
|
24916
24944
|
}
|
|
24917
24945
|
)
|
|
24918
24946
|
] }),
|
|
24919
24947
|
openclawGateway?.status === "starting" ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "starting", children: [
|
|
24920
|
-
/* @__PURE__ */
|
|
24948
|
+
/* @__PURE__ */ jsx31(
|
|
24921
24949
|
StatusDot,
|
|
24922
24950
|
{
|
|
24923
24951
|
tone: "blue",
|
|
@@ -24926,10 +24954,10 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24926
24954
|
ariaLabel: labels.openclawGatewayStarting
|
|
24927
24955
|
}
|
|
24928
24956
|
),
|
|
24929
|
-
/* @__PURE__ */
|
|
24957
|
+
/* @__PURE__ */ jsx31("span", { children: labels.openclawGatewayStarting })
|
|
24930
24958
|
] }) : openclawGateway?.status === "failed" ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "failed", children: [
|
|
24931
|
-
/* @__PURE__ */
|
|
24932
|
-
/* @__PURE__ */
|
|
24959
|
+
/* @__PURE__ */ jsx31("span", { children: openclawGateway.error || labels.openclawGatewayFailed }),
|
|
24960
|
+
/* @__PURE__ */ jsx31(
|
|
24933
24961
|
"button",
|
|
24934
24962
|
{
|
|
24935
24963
|
type: "button",
|
|
@@ -24939,19 +24967,19 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24939
24967
|
}
|
|
24940
24968
|
)
|
|
24941
24969
|
] }) : null,
|
|
24942
|
-
/* @__PURE__ */
|
|
24970
|
+
/* @__PURE__ */ jsx31(
|
|
24943
24971
|
ScrollArea,
|
|
24944
24972
|
{
|
|
24945
24973
|
scrollbarMode: "native",
|
|
24946
24974
|
className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100",
|
|
24947
24975
|
viewportRef: conversationListRef,
|
|
24948
24976
|
viewportClassName: AgentGUINode_styles_default.conversationList,
|
|
24949
|
-
children: isLoadingConversations && conversations.length === 0 ? /* @__PURE__ */
|
|
24977
|
+
children: isLoadingConversations && conversations.length === 0 ? /* @__PURE__ */ jsx31(
|
|
24950
24978
|
AgentConversationListSkeleton,
|
|
24951
24979
|
{
|
|
24952
24980
|
label: labels.loadingConversations
|
|
24953
24981
|
}
|
|
24954
|
-
) : groupedConversations.length === 0 ? /* @__PURE__ */
|
|
24982
|
+
) : groupedConversations.length === 0 ? /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx31("span", { children: conversations.length === 0 ? labels.noConversations : conversationQuery.trim() ? labels.searchNoConversations : labels.conversationUnavailable }) }) : groupedConversations.map((section, sectionIndex) => {
|
|
24955
24983
|
const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
|
|
24956
24984
|
const normalizedProjectPath = normalizeConversationRailProjectPath(projectPath);
|
|
24957
24985
|
const projectLabel = section.kind === "project" ? section.label : "";
|
|
@@ -24960,7 +24988,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24960
24988
|
const isSectionCollapsed = isProjectSection && collapsedProjectSectionIds.has(section.id);
|
|
24961
24989
|
const projectConversationCount = normalizedProjectPath ? projectConversationCountsByPath.get(normalizedProjectPath) ?? 0 : 0;
|
|
24962
24990
|
return /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
24963
|
-
showProjectRailHeader ? /* @__PURE__ */
|
|
24991
|
+
showProjectRailHeader ? /* @__PURE__ */ jsx31(
|
|
24964
24992
|
AgentGUIProjectRailHeader,
|
|
24965
24993
|
{
|
|
24966
24994
|
labels,
|
|
@@ -24968,7 +24996,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24968
24996
|
workspaceUserProjectI18n
|
|
24969
24997
|
}
|
|
24970
24998
|
) : null,
|
|
24971
|
-
/* @__PURE__ */
|
|
24999
|
+
/* @__PURE__ */ jsx31(
|
|
24972
25000
|
AgentGUIConversationRailSection,
|
|
24973
25001
|
{
|
|
24974
25002
|
activeConversationId,
|
|
@@ -25001,8 +25029,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25001
25029
|
})
|
|
25002
25030
|
}
|
|
25003
25031
|
),
|
|
25004
|
-
/* @__PURE__ */
|
|
25005
|
-
/* @__PURE__ */
|
|
25032
|
+
/* @__PURE__ */ jsx31("div", { className: "shrink-0 px-2 py-1.5", children: /* @__PURE__ */ jsxs17(Popover, { children: [
|
|
25033
|
+
/* @__PURE__ */ jsx31(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs17(
|
|
25006
25034
|
Button,
|
|
25007
25035
|
{
|
|
25008
25036
|
type: "button",
|
|
@@ -25011,7 +25039,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25011
25039
|
title: labels.agentConfig,
|
|
25012
25040
|
disabled: previewMode,
|
|
25013
25041
|
children: [
|
|
25014
|
-
/* @__PURE__ */
|
|
25042
|
+
/* @__PURE__ */ jsx31(
|
|
25015
25043
|
EnvironmentLinedIcon,
|
|
25016
25044
|
{
|
|
25017
25045
|
"aria-hidden": "true",
|
|
@@ -25019,11 +25047,11 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25019
25047
|
height: 16
|
|
25020
25048
|
}
|
|
25021
25049
|
),
|
|
25022
|
-
/* @__PURE__ */
|
|
25050
|
+
/* @__PURE__ */ jsx31("span", { children: labels.agentConfig })
|
|
25023
25051
|
]
|
|
25024
25052
|
}
|
|
25025
25053
|
) }),
|
|
25026
|
-
/* @__PURE__ */
|
|
25054
|
+
/* @__PURE__ */ jsx31(
|
|
25027
25055
|
PopoverContent,
|
|
25028
25056
|
{
|
|
25029
25057
|
side: "top",
|
|
@@ -25033,8 +25061,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25033
25061
|
children: /* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
25034
25062
|
slashStatusLimits.length > 0 ? /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
25035
25063
|
/* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-col gap-2", children: [
|
|
25036
|
-
/* @__PURE__ */
|
|
25037
|
-
slashStatusLimits.map((limit) => /* @__PURE__ */
|
|
25064
|
+
/* @__PURE__ */ jsx31("span", { className: "text-[13px] font-semibold leading-4", children: labels.slashStatusLimits }),
|
|
25065
|
+
slashStatusLimits.map((limit) => /* @__PURE__ */ jsx31(
|
|
25038
25066
|
AgentUsageMeter,
|
|
25039
25067
|
{
|
|
25040
25068
|
label: limit.label,
|
|
@@ -25044,7 +25072,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25044
25072
|
limit.id
|
|
25045
25073
|
))
|
|
25046
25074
|
] }),
|
|
25047
|
-
/* @__PURE__ */
|
|
25075
|
+
/* @__PURE__ */ jsx31("span", { className: "h-px bg-[var(--border-1)]" })
|
|
25048
25076
|
] }) : null,
|
|
25049
25077
|
/* @__PURE__ */ jsxs17(
|
|
25050
25078
|
"button",
|
|
@@ -25055,8 +25083,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25055
25083
|
disabled: previewMode,
|
|
25056
25084
|
onClick: () => onOpenAgentEnvSetup(),
|
|
25057
25085
|
children: [
|
|
25058
|
-
/* @__PURE__ */
|
|
25059
|
-
/* @__PURE__ */
|
|
25086
|
+
/* @__PURE__ */ jsx31(Wrench, { "aria-hidden": "true", size: 16, strokeWidth: 1.8 }),
|
|
25087
|
+
/* @__PURE__ */ jsx31("span", { children: labels.agentEnvSetup })
|
|
25060
25088
|
]
|
|
25061
25089
|
}
|
|
25062
25090
|
)
|
|
@@ -25064,7 +25092,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
25064
25092
|
}
|
|
25065
25093
|
)
|
|
25066
25094
|
] }) }),
|
|
25067
|
-
/* @__PURE__ */
|
|
25095
|
+
/* @__PURE__ */ jsx31(
|
|
25068
25096
|
ConfirmationDialog,
|
|
25069
25097
|
{
|
|
25070
25098
|
cancelLabel: labels.cancel,
|
|
@@ -25187,7 +25215,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25187
25215
|
"aria-expanded": !isSectionCollapsed,
|
|
25188
25216
|
onClick: () => onToggleProjectSectionCollapsed(section.id),
|
|
25189
25217
|
children: [
|
|
25190
|
-
/* @__PURE__ */
|
|
25218
|
+
/* @__PURE__ */ jsx31(
|
|
25191
25219
|
ChevronRight2,
|
|
25192
25220
|
{
|
|
25193
25221
|
"aria-hidden": "true",
|
|
@@ -25195,20 +25223,20 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25195
25223
|
}
|
|
25196
25224
|
),
|
|
25197
25225
|
/* @__PURE__ */ jsxs17("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
|
|
25198
|
-
/* @__PURE__ */
|
|
25226
|
+
/* @__PURE__ */ jsx31(
|
|
25199
25227
|
FolderIcon2,
|
|
25200
25228
|
{
|
|
25201
25229
|
"aria-hidden": "true",
|
|
25202
25230
|
className: AgentGUINode_styles_default.conversationSectionLabelIcon
|
|
25203
25231
|
}
|
|
25204
25232
|
),
|
|
25205
|
-
/* @__PURE__ */
|
|
25233
|
+
/* @__PURE__ */ jsx31("span", { children: section.label })
|
|
25206
25234
|
] })
|
|
25207
25235
|
]
|
|
25208
25236
|
}
|
|
25209
|
-
) : /* @__PURE__ */
|
|
25237
|
+
) : /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx31("span", { children: section.label }) }) }),
|
|
25210
25238
|
canCreateConversationFromSection ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.conversationSectionActions, children: [
|
|
25211
|
-
previewMode ? /* @__PURE__ */
|
|
25239
|
+
previewMode ? /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx31(
|
|
25212
25240
|
BareIconButton,
|
|
25213
25241
|
{
|
|
25214
25242
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
@@ -25216,14 +25244,14 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25216
25244
|
size: "sm",
|
|
25217
25245
|
disabled: createConversationDisabled,
|
|
25218
25246
|
onClick: handleCreateConversation,
|
|
25219
|
-
children: /* @__PURE__ */
|
|
25247
|
+
children: /* @__PURE__ */ jsx31(CreateChatIcon, { "aria-hidden": "true" })
|
|
25220
25248
|
}
|
|
25221
25249
|
) }) : /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
25222
|
-
/* @__PURE__ */
|
|
25250
|
+
/* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
25223
25251
|
"span",
|
|
25224
25252
|
{
|
|
25225
25253
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25226
|
-
children: /* @__PURE__ */
|
|
25254
|
+
children: /* @__PURE__ */ jsx31(
|
|
25227
25255
|
BareIconButton,
|
|
25228
25256
|
{
|
|
25229
25257
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
@@ -25231,12 +25259,12 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25231
25259
|
size: "sm",
|
|
25232
25260
|
disabled: createConversationDisabled,
|
|
25233
25261
|
onClick: handleCreateConversation,
|
|
25234
|
-
children: /* @__PURE__ */
|
|
25262
|
+
children: /* @__PURE__ */ jsx31(CreateChatIcon, { "aria-hidden": "true" })
|
|
25235
25263
|
}
|
|
25236
25264
|
)
|
|
25237
25265
|
}
|
|
25238
25266
|
) }),
|
|
25239
|
-
/* @__PURE__ */
|
|
25267
|
+
/* @__PURE__ */ jsx31(
|
|
25240
25268
|
TooltipContent3,
|
|
25241
25269
|
{
|
|
25242
25270
|
side: "top",
|
|
@@ -25247,37 +25275,37 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25247
25275
|
)
|
|
25248
25276
|
] }),
|
|
25249
25277
|
projectPath ? /* @__PURE__ */ jsxs17(DropdownMenu, { children: [
|
|
25250
|
-
previewMode ? /* @__PURE__ */
|
|
25278
|
+
previewMode ? /* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
25251
25279
|
"span",
|
|
25252
25280
|
{
|
|
25253
25281
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25254
|
-
children: /* @__PURE__ */
|
|
25282
|
+
children: /* @__PURE__ */ jsx31(
|
|
25255
25283
|
BareIconButton,
|
|
25256
25284
|
{
|
|
25257
25285
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
25258
25286
|
"aria-label": labels.projectSectionMoreActions,
|
|
25259
25287
|
size: "sm",
|
|
25260
|
-
children: /* @__PURE__ */
|
|
25288
|
+
children: /* @__PURE__ */ jsx31(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
25261
25289
|
}
|
|
25262
25290
|
)
|
|
25263
25291
|
}
|
|
25264
25292
|
) }) : /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
25265
|
-
/* @__PURE__ */
|
|
25293
|
+
/* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
25266
25294
|
"span",
|
|
25267
25295
|
{
|
|
25268
25296
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25269
|
-
children: /* @__PURE__ */
|
|
25297
|
+
children: /* @__PURE__ */ jsx31(
|
|
25270
25298
|
BareIconButton,
|
|
25271
25299
|
{
|
|
25272
25300
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
25273
25301
|
"aria-label": labels.projectSectionMoreActions,
|
|
25274
25302
|
size: "sm",
|
|
25275
|
-
children: /* @__PURE__ */
|
|
25303
|
+
children: /* @__PURE__ */ jsx31(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
25276
25304
|
}
|
|
25277
25305
|
)
|
|
25278
25306
|
}
|
|
25279
25307
|
) }) }),
|
|
25280
|
-
/* @__PURE__ */
|
|
25308
|
+
/* @__PURE__ */ jsx31(
|
|
25281
25309
|
TooltipContent3,
|
|
25282
25310
|
{
|
|
25283
25311
|
side: "right",
|
|
@@ -25294,7 +25322,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25294
25322
|
className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
|
|
25295
25323
|
sideOffset: 6,
|
|
25296
25324
|
children: [
|
|
25297
|
-
/* @__PURE__ */
|
|
25325
|
+
/* @__PURE__ */ jsx31(
|
|
25298
25326
|
DropdownMenuItem,
|
|
25299
25327
|
{
|
|
25300
25328
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -25309,10 +25337,10 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25309
25337
|
workspaceRoot: projectPath
|
|
25310
25338
|
});
|
|
25311
25339
|
},
|
|
25312
|
-
children: /* @__PURE__ */
|
|
25340
|
+
children: /* @__PURE__ */ jsx31("span", { children: labels.projectSectionViewFiles })
|
|
25313
25341
|
}
|
|
25314
25342
|
),
|
|
25315
|
-
projectConversationCount > 0 ? /* @__PURE__ */
|
|
25343
|
+
projectConversationCount > 0 ? /* @__PURE__ */ jsx31(
|
|
25316
25344
|
DropdownMenuItem,
|
|
25317
25345
|
{
|
|
25318
25346
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -25325,10 +25353,10 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25325
25353
|
path: projectPath
|
|
25326
25354
|
});
|
|
25327
25355
|
},
|
|
25328
|
-
children: /* @__PURE__ */
|
|
25356
|
+
children: /* @__PURE__ */ jsx31("span", { children: labels.batchDeleteProjectSessions })
|
|
25329
25357
|
}
|
|
25330
25358
|
) : null,
|
|
25331
|
-
/* @__PURE__ */
|
|
25359
|
+
/* @__PURE__ */ jsx31(
|
|
25332
25360
|
DropdownMenuItem,
|
|
25333
25361
|
{
|
|
25334
25362
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -25340,7 +25368,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25340
25368
|
path: projectPath
|
|
25341
25369
|
});
|
|
25342
25370
|
},
|
|
25343
|
-
children: /* @__PURE__ */
|
|
25371
|
+
children: /* @__PURE__ */ jsx31("span", { children: labels.removeProject })
|
|
25344
25372
|
}
|
|
25345
25373
|
)
|
|
25346
25374
|
]
|
|
@@ -25348,37 +25376,37 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25348
25376
|
)
|
|
25349
25377
|
] }) : null,
|
|
25350
25378
|
!projectPath && section.kind === "conversations" && section.items.length > 0 ? /* @__PURE__ */ jsxs17(DropdownMenu, { children: [
|
|
25351
|
-
previewMode ? /* @__PURE__ */
|
|
25379
|
+
previewMode ? /* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
25352
25380
|
"span",
|
|
25353
25381
|
{
|
|
25354
25382
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25355
|
-
children: /* @__PURE__ */
|
|
25383
|
+
children: /* @__PURE__ */ jsx31(
|
|
25356
25384
|
BareIconButton,
|
|
25357
25385
|
{
|
|
25358
25386
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
25359
25387
|
"aria-label": labels.conversationsSectionMoreActions,
|
|
25360
25388
|
size: "sm",
|
|
25361
|
-
children: /* @__PURE__ */
|
|
25389
|
+
children: /* @__PURE__ */ jsx31(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
25362
25390
|
}
|
|
25363
25391
|
)
|
|
25364
25392
|
}
|
|
25365
25393
|
) }) : /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
25366
|
-
/* @__PURE__ */
|
|
25394
|
+
/* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
25367
25395
|
"span",
|
|
25368
25396
|
{
|
|
25369
25397
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25370
|
-
children: /* @__PURE__ */
|
|
25398
|
+
children: /* @__PURE__ */ jsx31(
|
|
25371
25399
|
BareIconButton,
|
|
25372
25400
|
{
|
|
25373
25401
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
25374
25402
|
"aria-label": labels.conversationsSectionMoreActions,
|
|
25375
25403
|
size: "sm",
|
|
25376
|
-
children: /* @__PURE__ */
|
|
25404
|
+
children: /* @__PURE__ */ jsx31(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
25377
25405
|
}
|
|
25378
25406
|
)
|
|
25379
25407
|
}
|
|
25380
25408
|
) }) }),
|
|
25381
|
-
/* @__PURE__ */
|
|
25409
|
+
/* @__PURE__ */ jsx31(
|
|
25382
25410
|
TooltipContent3,
|
|
25383
25411
|
{
|
|
25384
25412
|
side: "right",
|
|
@@ -25388,13 +25416,13 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25388
25416
|
}
|
|
25389
25417
|
)
|
|
25390
25418
|
] }),
|
|
25391
|
-
/* @__PURE__ */
|
|
25419
|
+
/* @__PURE__ */ jsx31(
|
|
25392
25420
|
DropdownMenuContent,
|
|
25393
25421
|
{
|
|
25394
25422
|
align: "end",
|
|
25395
25423
|
className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
|
|
25396
25424
|
sideOffset: 6,
|
|
25397
|
-
children: /* @__PURE__ */
|
|
25425
|
+
children: /* @__PURE__ */ jsx31(
|
|
25398
25426
|
DropdownMenuItem,
|
|
25399
25427
|
{
|
|
25400
25428
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -25406,7 +25434,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25406
25434
|
sessionIds: section.items.map((item) => item.id)
|
|
25407
25435
|
});
|
|
25408
25436
|
},
|
|
25409
|
-
children: /* @__PURE__ */
|
|
25437
|
+
children: /* @__PURE__ */ jsx31("span", { children: labels.batchDeleteConversations })
|
|
25410
25438
|
}
|
|
25411
25439
|
)
|
|
25412
25440
|
}
|
|
@@ -25414,14 +25442,14 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25414
25442
|
] }) : null
|
|
25415
25443
|
] }) : null
|
|
25416
25444
|
] }),
|
|
25417
|
-
/* @__PURE__ */
|
|
25445
|
+
/* @__PURE__ */ jsx31(
|
|
25418
25446
|
"div",
|
|
25419
25447
|
{
|
|
25420
25448
|
className: AgentGUINode_styles_default.conversationSectionItems,
|
|
25421
25449
|
"aria-hidden": isSectionCollapsed ? "true" : void 0,
|
|
25422
25450
|
children: /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
|
|
25423
|
-
!isSectionCollapsed && section.items.length === 0 ? /* @__PURE__ */
|
|
25424
|
-
visibleItems.map((item) => /* @__PURE__ */
|
|
25451
|
+
!isSectionCollapsed && section.items.length === 0 ? /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
|
|
25452
|
+
visibleItems.map((item) => /* @__PURE__ */ jsx31(
|
|
25425
25453
|
AgentGUIConversationRailItem,
|
|
25426
25454
|
{
|
|
25427
25455
|
active: item.id === activeConversationId,
|
|
@@ -25443,7 +25471,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25443
25471
|
item.id
|
|
25444
25472
|
)),
|
|
25445
25473
|
canShowMore || canShowLess ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
|
|
25446
|
-
canShowMore ? /* @__PURE__ */
|
|
25474
|
+
canShowMore ? /* @__PURE__ */ jsx31(
|
|
25447
25475
|
"button",
|
|
25448
25476
|
{
|
|
25449
25477
|
type: "button",
|
|
@@ -25452,7 +25480,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
25452
25480
|
children: labels.showMoreConversations
|
|
25453
25481
|
}
|
|
25454
25482
|
) : null,
|
|
25455
|
-
canShowLess ? /* @__PURE__ */
|
|
25483
|
+
canShowLess ? /* @__PURE__ */ jsx31(
|
|
25456
25484
|
"button",
|
|
25457
25485
|
{
|
|
25458
25486
|
type: "button",
|
|
@@ -25531,12 +25559,12 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25531
25559
|
className: AgentGUINode_styles_default.conversationSelect,
|
|
25532
25560
|
onClick: handleSelect,
|
|
25533
25561
|
children: [
|
|
25534
|
-
/* @__PURE__ */
|
|
25535
|
-
/* @__PURE__ */
|
|
25562
|
+
/* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationTitle, children: conversationPlainTitle(item, labels, uiLanguage) }),
|
|
25563
|
+
/* @__PURE__ */ jsx31(ConversationMeta, { item, nowMs: currentTimeMs, labels })
|
|
25536
25564
|
]
|
|
25537
25565
|
}
|
|
25538
25566
|
),
|
|
25539
|
-
previewMode ? null : /* @__PURE__ */
|
|
25567
|
+
previewMode ? null : /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx31(
|
|
25540
25568
|
"button",
|
|
25541
25569
|
{
|
|
25542
25570
|
type: "button",
|
|
@@ -25548,10 +25576,10 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25548
25576
|
event.stopPropagation();
|
|
25549
25577
|
onConfirmDeleteConversation();
|
|
25550
25578
|
},
|
|
25551
|
-
children: /* @__PURE__ */
|
|
25579
|
+
children: /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
|
|
25552
25580
|
}
|
|
25553
25581
|
) : /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
25554
|
-
onOpenConversationWindow ? /* @__PURE__ */
|
|
25582
|
+
onOpenConversationWindow ? /* @__PURE__ */ jsx31(
|
|
25555
25583
|
BareIconButton,
|
|
25556
25584
|
{
|
|
25557
25585
|
className: AgentGUINode_styles_default.conversationOpenWindowButton,
|
|
@@ -25568,10 +25596,10 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25568
25596
|
event.stopPropagation();
|
|
25569
25597
|
handleOpenConversationWindow();
|
|
25570
25598
|
},
|
|
25571
|
-
children: /* @__PURE__ */
|
|
25599
|
+
children: /* @__PURE__ */ jsx31(ExternalLink, { "aria-hidden": "true" })
|
|
25572
25600
|
}
|
|
25573
25601
|
) : null,
|
|
25574
|
-
/* @__PURE__ */
|
|
25602
|
+
/* @__PURE__ */ jsx31(
|
|
25575
25603
|
BareIconButton,
|
|
25576
25604
|
{
|
|
25577
25605
|
className: AgentGUINode_styles_default.conversationPinButton,
|
|
@@ -25588,10 +25616,10 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25588
25616
|
event.stopPropagation();
|
|
25589
25617
|
handleTogglePinned();
|
|
25590
25618
|
},
|
|
25591
|
-
children: pinned ? /* @__PURE__ */
|
|
25619
|
+
children: pinned ? /* @__PURE__ */ jsx31(PinFilledIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx31(PinLinedIcon, { "aria-hidden": "true" })
|
|
25592
25620
|
}
|
|
25593
25621
|
),
|
|
25594
|
-
/* @__PURE__ */
|
|
25622
|
+
/* @__PURE__ */ jsx31(
|
|
25595
25623
|
BareIconButton,
|
|
25596
25624
|
{
|
|
25597
25625
|
className: AgentGUINode_styles_default.conversationDeleteButton,
|
|
@@ -25608,7 +25636,7 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25608
25636
|
event.stopPropagation();
|
|
25609
25637
|
handleRequestDelete();
|
|
25610
25638
|
},
|
|
25611
|
-
children: /* @__PURE__ */
|
|
25639
|
+
children: /* @__PURE__ */ jsx31(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
|
|
25612
25640
|
}
|
|
25613
25641
|
)
|
|
25614
25642
|
] }) })
|
|
@@ -25636,9 +25664,9 @@ function AgentGUIProjectRailHeader({
|
|
|
25636
25664
|
]
|
|
25637
25665
|
);
|
|
25638
25666
|
return /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
|
|
25639
|
-
/* @__PURE__ */
|
|
25667
|
+
/* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx31("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
|
|
25640
25668
|
/* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
|
|
25641
|
-
/* @__PURE__ */
|
|
25669
|
+
/* @__PURE__ */ jsx31(
|
|
25642
25670
|
WorkspaceUserProjectSelect2,
|
|
25643
25671
|
{
|
|
25644
25672
|
api: userProjectApi,
|
|
@@ -25668,7 +25696,7 @@ function AgentGUIProjectRailHeader({
|
|
|
25668
25696
|
"projectSelect.addProject"
|
|
25669
25697
|
])
|
|
25670
25698
|
},
|
|
25671
|
-
renderAddProjectIcon: () => /* @__PURE__ */
|
|
25699
|
+
renderAddProjectIcon: () => /* @__PURE__ */ jsx31(
|
|
25672
25700
|
NewWorkspaceLinedIcon2,
|
|
25673
25701
|
{
|
|
25674
25702
|
"aria-hidden": true,
|
|
@@ -25686,7 +25714,7 @@ function AgentGUIProjectRailHeader({
|
|
|
25686
25714
|
}
|
|
25687
25715
|
}
|
|
25688
25716
|
),
|
|
25689
|
-
/* @__PURE__ */
|
|
25717
|
+
/* @__PURE__ */ jsx31(
|
|
25690
25718
|
NewWorkspaceLinedIcon2,
|
|
25691
25719
|
{
|
|
25692
25720
|
"aria-hidden": true,
|
|
@@ -25712,16 +25740,16 @@ var AgentGUIConversationTimelinePane = memo(
|
|
|
25712
25740
|
}) {
|
|
25713
25741
|
"use memo";
|
|
25714
25742
|
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
25715
|
-
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */
|
|
25743
|
+
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx31(
|
|
25716
25744
|
"div",
|
|
25717
25745
|
{
|
|
25718
25746
|
className: "mx-auto flex h-8 items-center justify-center text-[12px] text-[var(--text-secondary)]",
|
|
25719
25747
|
"data-testid": "agent-gui-older-messages-loading",
|
|
25720
25748
|
role: "status",
|
|
25721
|
-
children: /* @__PURE__ */
|
|
25749
|
+
children: /* @__PURE__ */ jsx31("span", { className: "tsh-inline-loading-ellipsis", children: loadingLabel })
|
|
25722
25750
|
}
|
|
25723
25751
|
) : null,
|
|
25724
|
-
/* @__PURE__ */
|
|
25752
|
+
/* @__PURE__ */ jsx31(
|
|
25725
25753
|
AgentConversationFlow,
|
|
25726
25754
|
{
|
|
25727
25755
|
conversation,
|
|
@@ -25942,7 +25970,7 @@ import {
|
|
|
25942
25970
|
useState as useState13
|
|
25943
25971
|
} from "react";
|
|
25944
25972
|
import { createPortal as createPortal4 } from "react-dom";
|
|
25945
|
-
import { Fragment as Fragment9, jsx as
|
|
25973
|
+
import { Fragment as Fragment9, jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
25946
25974
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
25947
25975
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
25948
25976
|
function dockAgentProbeLineKey(line) {
|
|
@@ -25956,7 +25984,7 @@ function renderDockAgentProbeLine(line) {
|
|
|
25956
25984
|
line.primary,
|
|
25957
25985
|
line.secondary ? /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
25958
25986
|
" ",
|
|
25959
|
-
/* @__PURE__ */
|
|
25987
|
+
/* @__PURE__ */ jsx32("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
25960
25988
|
] }) : null
|
|
25961
25989
|
] });
|
|
25962
25990
|
}
|
|
@@ -26033,7 +26061,7 @@ function AgentProbeInfoPopover({
|
|
|
26033
26061
|
if (lines.length === 0) {
|
|
26034
26062
|
return null;
|
|
26035
26063
|
}
|
|
26036
|
-
const popover = /* @__PURE__ */
|
|
26064
|
+
const popover = /* @__PURE__ */ jsx32(
|
|
26037
26065
|
"div",
|
|
26038
26066
|
{
|
|
26039
26067
|
ref: popoverRef,
|
|
@@ -26042,7 +26070,7 @@ function AgentProbeInfoPopover({
|
|
|
26042
26070
|
style: popoverStyle ?? void 0,
|
|
26043
26071
|
onMouseEnter: () => setIsOpen(true),
|
|
26044
26072
|
onMouseLeave: closeIfPointerLeavesPopover,
|
|
26045
|
-
children: /* @__PURE__ */
|
|
26073
|
+
children: /* @__PURE__ */ jsx32("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
26046
26074
|
const label = getDockAgentProbeLineLabel(line);
|
|
26047
26075
|
const valueText = formatDockAgentProbeLineText(line);
|
|
26048
26076
|
return /* @__PURE__ */ jsxs18(
|
|
@@ -26051,8 +26079,8 @@ function AgentProbeInfoPopover({
|
|
|
26051
26079
|
className: "desktop-dock-popup__agent-info-item",
|
|
26052
26080
|
"data-has-label": label ? "true" : "false",
|
|
26053
26081
|
children: [
|
|
26054
|
-
label ? /* @__PURE__ */
|
|
26055
|
-
/* @__PURE__ */
|
|
26082
|
+
label ? /* @__PURE__ */ jsx32("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
|
|
26083
|
+
/* @__PURE__ */ jsx32(
|
|
26056
26084
|
"span",
|
|
26057
26085
|
{
|
|
26058
26086
|
className: "desktop-dock-popup__agent-info-value",
|
|
@@ -26087,7 +26115,7 @@ function AgentProbeInfoPopover({
|
|
|
26087
26115
|
},
|
|
26088
26116
|
onBlur: () => setIsOpen(false),
|
|
26089
26117
|
children: [
|
|
26090
|
-
/* @__PURE__ */
|
|
26118
|
+
/* @__PURE__ */ jsx32(Info3, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
|
|
26091
26119
|
isOpen ? createPortal4(popover, document.body) : null
|
|
26092
26120
|
]
|
|
26093
26121
|
}
|
|
@@ -26230,7 +26258,7 @@ function getAgentHostManagedToolchainAgentByName(name) {
|
|
|
26230
26258
|
}
|
|
26231
26259
|
|
|
26232
26260
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
26233
|
-
import { jsx as
|
|
26261
|
+
import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
26234
26262
|
var workspaceFileReferenceLocaleKeyByPickerKey = {
|
|
26235
26263
|
"actions.cancel": "common.cancel",
|
|
26236
26264
|
"referencePicker.confirm": "agentHost.agentGui.referencePicker.confirm",
|
|
@@ -27208,13 +27236,13 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
27208
27236
|
onAgentProbeDemandChange(null, probeSourceId);
|
|
27209
27237
|
};
|
|
27210
27238
|
}, [activeProbeProvider, nodeId, onAgentProbeDemandChange, previewMode]);
|
|
27211
|
-
return /* @__PURE__ */
|
|
27239
|
+
return /* @__PURE__ */ jsx33(
|
|
27212
27240
|
WorkspaceNodeWindow,
|
|
27213
27241
|
{
|
|
27214
27242
|
nodeId,
|
|
27215
27243
|
kind: "agentGui",
|
|
27216
27244
|
title: windowTitle,
|
|
27217
|
-
titleIcon: windowTitleIconUrl ? /* @__PURE__ */
|
|
27245
|
+
titleIcon: windowTitleIconUrl ? /* @__PURE__ */ jsx33(
|
|
27218
27246
|
"img",
|
|
27219
27247
|
{
|
|
27220
27248
|
src: windowTitleIconUrl,
|
|
@@ -27235,7 +27263,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
27235
27263
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
27236
27264
|
hideHeader: embedded,
|
|
27237
27265
|
titleAccessory: /* @__PURE__ */ jsxs19("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
27238
|
-
/* @__PURE__ */
|
|
27266
|
+
/* @__PURE__ */ jsx33(
|
|
27239
27267
|
AgentProbeInfoPopover,
|
|
27240
27268
|
{
|
|
27241
27269
|
lines: agentProbeLines,
|
|
@@ -27243,7 +27271,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
27243
27271
|
className: AgentGUINode_styles_default.windowAgentInfo
|
|
27244
27272
|
}
|
|
27245
27273
|
),
|
|
27246
|
-
/* @__PURE__ */
|
|
27274
|
+
/* @__PURE__ */ jsx33(
|
|
27247
27275
|
CanvasNodeGhostIconButton,
|
|
27248
27276
|
{
|
|
27249
27277
|
"aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
@@ -27255,7 +27283,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
27255
27283
|
event.stopPropagation();
|
|
27256
27284
|
handleConversationRailToggle();
|
|
27257
27285
|
},
|
|
27258
|
-
children: /* @__PURE__ */
|
|
27286
|
+
children: /* @__PURE__ */ jsx33(
|
|
27259
27287
|
CanvasNodePanelLinedIcon,
|
|
27260
27288
|
{
|
|
27261
27289
|
width: 18,
|
|
@@ -27276,7 +27304,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
27276
27304
|
children: (renderFrame) => {
|
|
27277
27305
|
const renderedWidth = renderFrame.size.width;
|
|
27278
27306
|
const isRenderedConversationRailCollapsed = isConversationRailCollapsed || shouldAutoCollapseAgentGUIConversationRail(renderedWidth);
|
|
27279
|
-
return /* @__PURE__ */
|
|
27307
|
+
return /* @__PURE__ */ jsx33(
|
|
27280
27308
|
AgentGUINodeView,
|
|
27281
27309
|
{
|
|
27282
27310
|
viewModel,
|
|
@@ -27326,23 +27354,24 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
27326
27354
|
}, areAgentGUINodePropsEqual);
|
|
27327
27355
|
|
|
27328
27356
|
// AgentGUI.tsx
|
|
27329
|
-
import { jsx as
|
|
27357
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
27330
27358
|
var AgentGUI = memo3(function AgentGUI2({
|
|
27331
27359
|
agentActivityRuntime,
|
|
27360
|
+
agentQueuedPromptRuntime,
|
|
27332
27361
|
agentHostApi,
|
|
27333
27362
|
i18n,
|
|
27334
27363
|
locale,
|
|
27335
27364
|
...props
|
|
27336
27365
|
}) {
|
|
27337
|
-
const content = /* @__PURE__ */
|
|
27366
|
+
const content = /* @__PURE__ */ jsx34(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx34(
|
|
27338
27367
|
AgentActivityHostProvider,
|
|
27339
27368
|
{
|
|
27340
27369
|
agentActivityRuntime,
|
|
27341
27370
|
agentHostApi,
|
|
27342
|
-
children: /* @__PURE__ */
|
|
27371
|
+
children: /* @__PURE__ */ jsx34(AgentQueuedPromptRuntimeProvider, { runtime: agentQueuedPromptRuntime, children: /* @__PURE__ */ jsx34(AgentGUINode, { ...props }) })
|
|
27343
27372
|
}
|
|
27344
27373
|
) });
|
|
27345
|
-
return props.previewMode ? content : /* @__PURE__ */
|
|
27374
|
+
return props.previewMode ? content : /* @__PURE__ */ jsx34(TooltipProvider3, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
27346
27375
|
});
|
|
27347
27376
|
|
|
27348
27377
|
// index.ts
|
|
@@ -27356,6 +27385,7 @@ export {
|
|
|
27356
27385
|
AgentActivityRuntimeProvider,
|
|
27357
27386
|
AgentGUI,
|
|
27358
27387
|
AgentGuiI18nProvider,
|
|
27388
|
+
AgentQueuedPromptRuntimeProvider,
|
|
27359
27389
|
agentGUIDefaultTargetProviders,
|
|
27360
27390
|
agentGuiDockIconUrl,
|
|
27361
27391
|
agentGuiDockIconUrls,
|
|
@@ -27363,6 +27393,7 @@ export {
|
|
|
27363
27393
|
agentGuiI18nResources,
|
|
27364
27394
|
agentHostSnapshotFromAgentActivitySnapshot,
|
|
27365
27395
|
buildAgentActivitySnapshotProjection,
|
|
27396
|
+
createAgentQueuedPromptRuntime,
|
|
27366
27397
|
createLocalAgentGUIProviderTarget,
|
|
27367
27398
|
createLocalAgentGUIProviderTargets,
|
|
27368
27399
|
getAgentActivityRuntime,
|
|
@@ -27372,14 +27403,18 @@ export {
|
|
|
27372
27403
|
preloadAgentMentionBrowse,
|
|
27373
27404
|
projectCoreSessionStatus,
|
|
27374
27405
|
resetAgentActivityRuntimeForTests,
|
|
27406
|
+
resetAgentQueuedPromptRuntimeForTests,
|
|
27375
27407
|
resolveAgentGUIExpandedWindowFrame,
|
|
27376
27408
|
resolveAgentGUIProviderTarget,
|
|
27377
27409
|
selectNeedsAttentionCount2 as selectNeedsAttentionCount,
|
|
27378
27410
|
selectNeedsAttentionItems2 as selectNeedsAttentionItems,
|
|
27379
27411
|
setAgentActivityRuntimeForTests,
|
|
27412
|
+
setAgentQueuedPromptRuntimeForTests,
|
|
27380
27413
|
shouldAutoCollapseAgentGUIConversationRail,
|
|
27381
27414
|
useAgentActivityRuntime,
|
|
27382
27415
|
useAgentActivitySnapshot,
|
|
27416
|
+
useAgentQueuedPromptRuntime,
|
|
27417
|
+
useAgentQueuedPromptSessionSnapshot,
|
|
27383
27418
|
useOptionalAgentActivityRuntime
|
|
27384
27419
|
};
|
|
27385
27420
|
//# sourceMappingURL=index.js.map
|