@tutti-os/agent-gui 0.0.38 → 0.0.40
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/README.md +40 -0
- package/dist/{AgentMessageMarkdown-Cq-7DSV2.d.ts → AgentMessageMarkdown-GDgLA-im.d.ts} +7 -156
- package/dist/agent-conversation/index.d.ts +2 -1
- package/dist/agent-conversation/index.js +5 -5
- package/dist/agent-message-center/index.js +223 -14
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/app/renderer/agentactivity.css +67 -0
- package/dist/chunk-4K22O34C.js +123 -0
- package/dist/chunk-4K22O34C.js.map +1 -0
- package/dist/{chunk-7F4M55U3.js → chunk-DO7D7OOL.js} +24 -7
- package/dist/chunk-DO7D7OOL.js.map +1 -0
- package/dist/{chunk-MUZMBEFO.js → chunk-EFDGMXTB.js} +82 -8
- package/dist/chunk-EFDGMXTB.js.map +1 -0
- package/dist/{chunk-MKSRP5XS.js → chunk-EQ4RSPQE.js} +5 -5
- package/dist/{chunk-JNGYJ7GM.js → chunk-EU7RWKHE.js} +2 -2
- package/dist/{chunk-IXIGWLQY.js → chunk-F5DYXCY3.js} +1 -1
- package/dist/{chunk-IXIGWLQY.js.map → chunk-F5DYXCY3.js.map} +1 -1
- package/dist/{chunk-NCS7X3XY.js → chunk-R7XH3C4Y.js} +16 -4
- package/dist/chunk-R7XH3C4Y.js.map +1 -0
- package/dist/{chunk-XROBPALT.js → chunk-RE3AHBX6.js} +2 -2
- package/dist/{chunk-2ADVHCST.js → chunk-TXXWUG2J.js} +1 -1
- package/dist/chunk-TXXWUG2J.js.map +1 -0
- package/dist/{chunk-L7FBT3VR.js → chunk-UUM2GZXH.js} +98 -5
- package/dist/chunk-UUM2GZXH.js.map +1 -0
- package/dist/{chunk-44YASHVW.js → chunk-WC34LVH6.js} +433 -143
- package/dist/chunk-WC34LVH6.js.map +1 -0
- package/dist/{chunk-JL2WNRYC.js → chunk-WJPEKD3F.js} +17 -1
- package/dist/chunk-WJPEKD3F.js.map +1 -0
- package/dist/{chunk-WHWZZYBV.js → chunk-Y2DQJPTL.js} +2 -2
- package/dist/{chunk-SS5YEVAI.js → chunk-Y5SE2XMU.js} +2 -2
- package/dist/context-mention-palette/index.js +6 -6
- package/dist/i18n/index.d.ts +16 -0
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +124 -102
- package/dist/index.js +2298 -996
- package/dist/index.js.map +1 -1
- package/dist/types-xMz0lJWt.d.ts +173 -0
- package/dist/workbench/contribution.d.ts +1 -0
- package/dist/workbench/contribution.js +5 -4
- package/dist/workbench/index.d.ts +3 -1
- package/dist/workbench/index.js +5 -4
- package/dist/workbench/launch.d.ts +1 -0
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/providerCatalog.d.ts +1 -0
- package/dist/workbench/state.d.ts +7 -0
- package/dist/workbench/state.js +2 -1
- package/dist/workbench/types.d.ts +6 -0
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.js +2 -2
- package/package.json +13 -12
- package/dist/chunk-2ADVHCST.js.map +0 -1
- package/dist/chunk-44YASHVW.js.map +0 -1
- package/dist/chunk-7F4M55U3.js.map +0 -1
- package/dist/chunk-JL2WNRYC.js.map +0 -1
- package/dist/chunk-L7FBT3VR.js.map +0 -1
- package/dist/chunk-MUZMBEFO.js.map +0 -1
- package/dist/chunk-NCS7X3XY.js.map +0 -1
- /package/dist/{chunk-MKSRP5XS.js.map → chunk-EQ4RSPQE.js.map} +0 -0
- /package/dist/{chunk-JNGYJ7GM.js.map → chunk-EU7RWKHE.js.map} +0 -0
- /package/dist/{chunk-XROBPALT.js.map → chunk-RE3AHBX6.js.map} +0 -0
- /package/dist/{chunk-WHWZZYBV.js.map → chunk-Y2DQJPTL.js.map} +0 -0
- /package/dist/{chunk-SS5YEVAI.js.map → chunk-Y5SE2XMU.js.map} +0 -0
|
@@ -108,6 +108,73 @@
|
|
|
108
108
|
color: var(--text-primary);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
.tsh-zoom-dialog__image-actions {
|
|
112
|
+
position: fixed;
|
|
113
|
+
top: max(20px, calc(var(--cove-titlebar-reserve, 0px) + 10px));
|
|
114
|
+
right: 72px;
|
|
115
|
+
z-index: 100301;
|
|
116
|
+
display: flex;
|
|
117
|
+
gap: 8px;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.tsh-image-context-menu {
|
|
121
|
+
position: fixed;
|
|
122
|
+
z-index: 100302;
|
|
123
|
+
min-width: 148px;
|
|
124
|
+
overflow: hidden;
|
|
125
|
+
border: 1px solid var(--line-2);
|
|
126
|
+
border-radius: 8px;
|
|
127
|
+
background: var(--background-panel);
|
|
128
|
+
box-shadow: 0 18px 40px color-mix(in srgb, black 26%, transparent);
|
|
129
|
+
color: var(--text-primary);
|
|
130
|
+
padding: 4px;
|
|
131
|
+
-webkit-app-region: no-drag;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.tsh-zoom-dialog__image-actions button,
|
|
135
|
+
.tsh-image-context-menu button {
|
|
136
|
+
display: flex;
|
|
137
|
+
align-items: center;
|
|
138
|
+
gap: 8px;
|
|
139
|
+
border: 0;
|
|
140
|
+
border-radius: 6px;
|
|
141
|
+
background: transparent;
|
|
142
|
+
color: inherit;
|
|
143
|
+
cursor: pointer;
|
|
144
|
+
font: inherit;
|
|
145
|
+
font-size: 13px;
|
|
146
|
+
line-height: 20px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.tsh-zoom-dialog__image-actions button {
|
|
150
|
+
justify-content: center;
|
|
151
|
+
width: 40px;
|
|
152
|
+
height: 40px;
|
|
153
|
+
background: color-mix(in srgb, var(--background-panel) 78%, black 22%);
|
|
154
|
+
box-shadow:
|
|
155
|
+
0 18px 40px color-mix(in srgb, black 26%, transparent),
|
|
156
|
+
0 0 0 1px color-mix(in srgb, white 12%, transparent);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.tsh-zoom-dialog__image-actions button span {
|
|
160
|
+
position: absolute;
|
|
161
|
+
width: 1px;
|
|
162
|
+
height: 1px;
|
|
163
|
+
overflow: hidden;
|
|
164
|
+
clip: rect(0 0 0 0);
|
|
165
|
+
white-space: nowrap;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.tsh-image-context-menu button {
|
|
169
|
+
width: 100%;
|
|
170
|
+
padding: 7px 10px;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.tsh-zoom-dialog__image-actions button:hover,
|
|
174
|
+
.tsh-image-context-menu button:hover {
|
|
175
|
+
background: color-mix(in srgb, var(--background-panel) 82%, white 12%);
|
|
176
|
+
}
|
|
177
|
+
|
|
111
178
|
.workspace-agents-status-panel {
|
|
112
179
|
--workspace-agents-status-panel-chrome-gap: 8px;
|
|
113
180
|
--workspace-room-top-bar-safe-area: 52px;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// providerTargets.ts
|
|
2
|
+
var agentGUIProviderTargetFallbackLabels = {
|
|
3
|
+
"claude-code": "Claude Code",
|
|
4
|
+
codex: "Codex",
|
|
5
|
+
gemini: "Gemini",
|
|
6
|
+
hermes: "Hermes",
|
|
7
|
+
nexight: "Nexight",
|
|
8
|
+
openclaw: "OpenClaw"
|
|
9
|
+
};
|
|
10
|
+
var agentGUIDefaultTargetProviders = [
|
|
11
|
+
"codex",
|
|
12
|
+
"claude-code",
|
|
13
|
+
"nexight",
|
|
14
|
+
"hermes",
|
|
15
|
+
"gemini",
|
|
16
|
+
"openclaw"
|
|
17
|
+
];
|
|
18
|
+
function createLocalAgentGUIProviderTarget(provider) {
|
|
19
|
+
return {
|
|
20
|
+
targetId: localAgentGUIProviderTargetId(provider),
|
|
21
|
+
provider,
|
|
22
|
+
ref: {
|
|
23
|
+
kind: "local",
|
|
24
|
+
provider
|
|
25
|
+
},
|
|
26
|
+
label: agentGUIProviderTargetFallbackLabels[provider] ?? provider
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function createLocalAgentGUIProviderTargets(providers = agentGUIDefaultTargetProviders) {
|
|
30
|
+
return providers.map(
|
|
31
|
+
(provider) => createLocalAgentGUIProviderTarget(provider)
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
function localAgentGUIProviderTargetId(provider) {
|
|
35
|
+
return `local:${provider}`;
|
|
36
|
+
}
|
|
37
|
+
function normalizeAgentGUIProviderTargets(targets, options) {
|
|
38
|
+
const fallbackToLocal = options?.fallbackToLocal !== false;
|
|
39
|
+
const source = targets && targets.length > 0 ? targets : [];
|
|
40
|
+
const normalizedTargets = [];
|
|
41
|
+
const seenTargetKeys = /* @__PURE__ */ new Set();
|
|
42
|
+
for (const target of source) {
|
|
43
|
+
const normalized = normalizeAgentGUIProviderTarget(target);
|
|
44
|
+
if (!normalized) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const dedupeKey = `${normalized.provider}\0${normalized.targetId}`;
|
|
48
|
+
if (seenTargetKeys.has(dedupeKey)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
seenTargetKeys.add(dedupeKey);
|
|
52
|
+
normalizedTargets.push(normalized);
|
|
53
|
+
}
|
|
54
|
+
return normalizedTargets.length > 0 || !fallbackToLocal ? normalizedTargets : createLocalAgentGUIProviderTargets();
|
|
55
|
+
}
|
|
56
|
+
function resolveAgentGUIProviderTarget(input) {
|
|
57
|
+
const providerTargets = input.providerTargets.filter(
|
|
58
|
+
(target) => target.provider === input.provider
|
|
59
|
+
);
|
|
60
|
+
const targetById = new Map(
|
|
61
|
+
providerTargets.map((target) => [target.targetId, target])
|
|
62
|
+
);
|
|
63
|
+
return targetById.get(input.providerTargetId?.trim() ?? "") ?? targetById.get(input.defaultProviderTargetId?.trim() ?? "") ?? targetById.get(localAgentGUIProviderTargetId(input.provider)) ?? providerTargets.find((target) => target.disabled !== true) ?? providerTargets[0] ?? createLocalAgentGUIProviderTarget(input.provider);
|
|
64
|
+
}
|
|
65
|
+
function agentGUIProviderTargetRefsEqual(left, right) {
|
|
66
|
+
if (left === right) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
if (!left && !right) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if (!left || !right) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
return stableProviderTargetRefKey(left) === stableProviderTargetRefKey(right);
|
|
76
|
+
}
|
|
77
|
+
function normalizeAgentGUIProviderTarget(target) {
|
|
78
|
+
const targetId = target.targetId.trim();
|
|
79
|
+
const label = target.label.trim();
|
|
80
|
+
const kind = typeof target.ref.kind === "string" ? target.ref.kind.trim() : "";
|
|
81
|
+
if (!targetId || !label || !kind || target.ref.provider !== target.provider) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
...target,
|
|
86
|
+
targetId,
|
|
87
|
+
provider: target.provider,
|
|
88
|
+
ref: {
|
|
89
|
+
...target.ref,
|
|
90
|
+
kind,
|
|
91
|
+
provider: target.provider
|
|
92
|
+
},
|
|
93
|
+
label,
|
|
94
|
+
...target.description?.trim() ? { description: target.description.trim() } : {},
|
|
95
|
+
...target.ownerLabel?.trim() ? { ownerLabel: target.ownerLabel.trim() } : {},
|
|
96
|
+
...target.unavailableReason?.trim() ? { unavailableReason: target.unavailableReason.trim() } : {}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function stableProviderTargetRefKey(ref) {
|
|
100
|
+
return JSON.stringify(sortProviderTargetRefValue(ref));
|
|
101
|
+
}
|
|
102
|
+
function sortProviderTargetRefValue(value) {
|
|
103
|
+
if (Array.isArray(value)) {
|
|
104
|
+
return value.map(sortProviderTargetRefValue);
|
|
105
|
+
}
|
|
106
|
+
if (!value || typeof value !== "object") {
|
|
107
|
+
return value;
|
|
108
|
+
}
|
|
109
|
+
return Object.fromEntries(
|
|
110
|
+
Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entryValue]) => [key, sortProviderTargetRefValue(entryValue)])
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export {
|
|
115
|
+
agentGUIDefaultTargetProviders,
|
|
116
|
+
createLocalAgentGUIProviderTarget,
|
|
117
|
+
createLocalAgentGUIProviderTargets,
|
|
118
|
+
localAgentGUIProviderTargetId,
|
|
119
|
+
normalizeAgentGUIProviderTargets,
|
|
120
|
+
resolveAgentGUIProviderTarget,
|
|
121
|
+
agentGUIProviderTargetRefsEqual
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=chunk-4K22O34C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../providerTargets.ts"],"sourcesContent":["import type {\n AgentGUIProvider,\n AgentGUIProviderTarget,\n AgentGUIProviderTargetRef\n} from \"./types.ts\";\n\nconst agentGUIProviderTargetFallbackLabels: Record<AgentGUIProvider, string> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n hermes: \"Hermes\",\n nexight: \"Nexight\",\n openclaw: \"OpenClaw\"\n};\n\nexport const agentGUIDefaultTargetProviders = [\n \"codex\",\n \"claude-code\",\n \"nexight\",\n \"hermes\",\n \"gemini\",\n \"openclaw\"\n] as const satisfies readonly AgentGUIProvider[];\n\nexport function createLocalAgentGUIProviderTarget(\n provider: AgentGUIProvider\n): AgentGUIProviderTarget {\n return {\n targetId: localAgentGUIProviderTargetId(provider),\n provider,\n ref: {\n kind: \"local\",\n provider\n },\n label: agentGUIProviderTargetFallbackLabels[provider] ?? provider\n };\n}\n\nexport function createLocalAgentGUIProviderTargets(\n providers: readonly AgentGUIProvider[] = agentGUIDefaultTargetProviders\n): AgentGUIProviderTarget[] {\n return providers.map((provider) =>\n createLocalAgentGUIProviderTarget(provider)\n );\n}\n\nexport function localAgentGUIProviderTargetId(\n provider: AgentGUIProvider\n): string {\n return `local:${provider}`;\n}\n\nexport function normalizeAgentGUIProviderTargets(\n targets: readonly AgentGUIProviderTarget[] | null | undefined,\n options?: { fallbackToLocal?: boolean }\n): AgentGUIProviderTarget[] {\n const fallbackToLocal = options?.fallbackToLocal !== false;\n const source = targets && targets.length > 0 ? targets : [];\n const normalizedTargets: AgentGUIProviderTarget[] = [];\n const seenTargetKeys = new Set<string>();\n for (const target of source) {\n const normalized = normalizeAgentGUIProviderTarget(target);\n if (!normalized) {\n continue;\n }\n const dedupeKey = `${normalized.provider}\\u0000${normalized.targetId}`;\n if (seenTargetKeys.has(dedupeKey)) {\n continue;\n }\n seenTargetKeys.add(dedupeKey);\n normalizedTargets.push(normalized);\n }\n return normalizedTargets.length > 0 || !fallbackToLocal\n ? normalizedTargets\n : createLocalAgentGUIProviderTargets();\n}\n\nexport function resolveAgentGUIProviderTarget(input: {\n defaultProviderTargetId?: string | null;\n provider: AgentGUIProvider;\n providerTargetId?: string | null;\n providerTargets: readonly AgentGUIProviderTarget[];\n}): AgentGUIProviderTarget {\n const providerTargets = input.providerTargets.filter(\n (target) => target.provider === input.provider\n );\n const targetById = new Map(\n providerTargets.map((target) => [target.targetId, target])\n );\n return (\n targetById.get(input.providerTargetId?.trim() ?? \"\") ??\n targetById.get(input.defaultProviderTargetId?.trim() ?? \"\") ??\n targetById.get(localAgentGUIProviderTargetId(input.provider)) ??\n providerTargets.find((target) => target.disabled !== true) ??\n providerTargets[0] ??\n createLocalAgentGUIProviderTarget(input.provider)\n );\n}\n\nexport function agentGUIProviderTargetRefsEqual(\n left: AgentGUIProviderTargetRef | null | undefined,\n right: AgentGUIProviderTargetRef | null | undefined\n): boolean {\n if (left === right) {\n return true;\n }\n if (!left && !right) {\n return true;\n }\n if (!left || !right) {\n return false;\n }\n return stableProviderTargetRefKey(left) === stableProviderTargetRefKey(right);\n}\n\nfunction normalizeAgentGUIProviderTarget(\n target: AgentGUIProviderTarget\n): AgentGUIProviderTarget | null {\n const targetId = target.targetId.trim();\n const label = target.label.trim();\n const kind =\n typeof target.ref.kind === \"string\" ? target.ref.kind.trim() : \"\";\n if (!targetId || !label || !kind || target.ref.provider !== target.provider) {\n return null;\n }\n return {\n ...target,\n targetId,\n provider: target.provider,\n ref: {\n ...target.ref,\n kind,\n provider: target.provider\n },\n label,\n ...(target.description?.trim()\n ? { description: target.description.trim() }\n : {}),\n ...(target.ownerLabel?.trim()\n ? { ownerLabel: target.ownerLabel.trim() }\n : {}),\n ...(target.unavailableReason?.trim()\n ? { unavailableReason: target.unavailableReason.trim() }\n : {})\n };\n}\n\nfunction stableProviderTargetRefKey(ref: AgentGUIProviderTargetRef): string {\n return JSON.stringify(sortProviderTargetRefValue(ref));\n}\n\nfunction sortProviderTargetRefValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortProviderTargetRefValue);\n }\n if (!value || typeof value !== \"object\") {\n return value;\n }\n return Object.fromEntries(\n Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entryValue]) => [key, sortProviderTargetRefValue(entryValue)])\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentGUIConversation_styles_default,
|
|
3
3
|
AgentMessageMarkdown,
|
|
4
|
+
ConversationImageContextMenu,
|
|
4
5
|
CustomScrollArea,
|
|
5
6
|
MessageSquareMoreIcon,
|
|
6
7
|
ZoomableImage,
|
|
@@ -10,14 +11,14 @@ import {
|
|
|
10
11
|
resolveWorkspaceFileLinkAction,
|
|
11
12
|
resolveWorkspaceFilePathCandidate,
|
|
12
13
|
resolveWorkspaceLinkAction
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WC34LVH6.js";
|
|
14
15
|
import {
|
|
15
16
|
attrsToMentionItem,
|
|
16
17
|
createAgentFileMentionExtension,
|
|
17
18
|
formatAgentMentionMarkdown,
|
|
18
19
|
mentionItemToAttrs,
|
|
19
20
|
parseAgentMentionMarkdown
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-RE3AHBX6.js";
|
|
21
22
|
import {
|
|
22
23
|
fileChangeCountFromChanges,
|
|
23
24
|
fileChangeEntriesFromChanges,
|
|
@@ -27,13 +28,13 @@ import {
|
|
|
27
28
|
import {
|
|
28
29
|
getOptionalAgentActivityRuntime,
|
|
29
30
|
useOptionalAgentHostApi
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-TXXWUG2J.js";
|
|
31
32
|
import {
|
|
32
33
|
workspaceAgentProviderLabel
|
|
33
34
|
} from "./chunk-TYGL25EL.js";
|
|
34
35
|
import {
|
|
35
36
|
translate
|
|
36
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-WJPEKD3F.js";
|
|
37
38
|
|
|
38
39
|
// shared/imageGenerationTool.ts
|
|
39
40
|
var KNOWN_IMAGE_GENERATION_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
@@ -3904,6 +3905,21 @@ function dedupeFiles(files) {
|
|
|
3904
3905
|
byPath.set(file.path, file);
|
|
3905
3906
|
return;
|
|
3906
3907
|
}
|
|
3908
|
+
if (existing.changeType === "deleted" && file.changeType === "created") {
|
|
3909
|
+
byPath.set(file.path, {
|
|
3910
|
+
...file,
|
|
3911
|
+
changeType: "modified",
|
|
3912
|
+
unifiedDiff: null,
|
|
3913
|
+
oldString: existing.oldString ?? existing.content ?? existing.unifiedDiff ?? null,
|
|
3914
|
+
newString: file.newString ?? file.content ?? file.unifiedDiff ?? null,
|
|
3915
|
+
content: null
|
|
3916
|
+
});
|
|
3917
|
+
return;
|
|
3918
|
+
}
|
|
3919
|
+
if (file.changeType === "deleted" || existing.changeType === "deleted") {
|
|
3920
|
+
byPath.set(file.path, file);
|
|
3921
|
+
return;
|
|
3922
|
+
}
|
|
3907
3923
|
if (existing.changeType === "modified" && file.changeType === "created") {
|
|
3908
3924
|
byPath.set(file.path, file);
|
|
3909
3925
|
return;
|
|
@@ -6876,7 +6892,7 @@ function AgentUserImageGrid({
|
|
|
6876
6892
|
"div",
|
|
6877
6893
|
{
|
|
6878
6894
|
className: "max-h-20 min-w-0 overflow-hidden rounded-[6px]",
|
|
6879
|
-
children: src ? /* @__PURE__ */ jsx12(
|
|
6895
|
+
children: src ? /* @__PURE__ */ jsx12(ConversationImageContextMenu, { src, children: /* @__PURE__ */ jsx12(
|
|
6880
6896
|
ZoomableImage,
|
|
6881
6897
|
{
|
|
6882
6898
|
src,
|
|
@@ -6884,7 +6900,7 @@ function AgentUserImageGrid({
|
|
|
6884
6900
|
className: "block max-h-20 w-full rounded-[6px] object-contain",
|
|
6885
6901
|
draggable: false
|
|
6886
6902
|
}
|
|
6887
|
-
) : loading ? /* @__PURE__ */ jsx12(
|
|
6903
|
+
) }) : loading ? /* @__PURE__ */ jsx12(
|
|
6888
6904
|
"div",
|
|
6889
6905
|
{
|
|
6890
6906
|
className: "flex h-20 w-full items-center justify-center bg-[color-mix(in_srgb,var(--text-primary)_6%,transparent)]",
|
|
@@ -10592,6 +10608,7 @@ function ImageGenerationPreview({
|
|
|
10592
10608
|
className: cn(
|
|
10593
10609
|
"block max-h-[360px] max-w-full rounded-[8px] border border-[var(--line-2)] bg-[var(--background-panel)] object-contain"
|
|
10594
10610
|
),
|
|
10611
|
+
downloadName: localPath ? localPath.split(/[\\/]/).pop() : "image.png",
|
|
10595
10612
|
src,
|
|
10596
10613
|
wrapElement: "span"
|
|
10597
10614
|
}
|
|
@@ -12715,4 +12732,4 @@ export {
|
|
|
12715
12732
|
AgentConversationFlow,
|
|
12716
12733
|
useProjectedAgentConversation
|
|
12717
12734
|
};
|
|
12718
|
-
//# sourceMappingURL=chunk-
|
|
12735
|
+
//# sourceMappingURL=chunk-DO7D7OOL.js.map
|