@tutti-os/agent-gui 0.0.64 → 0.0.66
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/LICENSE +1 -2
- package/README.md +1 -1
- package/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +6 -6
- package/dist/agent-message-center/index.js +8 -8
- package/dist/{agentGuiNodeTypes-CCjzXdTe.d.ts → agentGuiNodeTypes-B9Aq3UEU.d.ts} +3 -1
- package/dist/app/renderer/agentactivity.css +46 -3
- package/dist/{chunk-IIXCU2UU.js → chunk-6ULTMCKP.js} +2 -2
- package/dist/{chunk-52VZ54WH.js → chunk-CTJQTUQ3.js} +6 -6
- package/dist/{chunk-52VZ54WH.js.map → chunk-CTJQTUQ3.js.map} +1 -1
- package/dist/{chunk-PVVM7MZZ.js → chunk-DL6BMEHI.js} +2 -2
- package/dist/{chunk-TFPKI4XJ.js → chunk-DXVMRZHH.js} +2 -6
- package/dist/chunk-DXVMRZHH.js.map +1 -0
- package/dist/{chunk-76GTKO4Q.js → chunk-HNODQVG2.js} +2 -2
- package/dist/{chunk-RDRKIMAC.js → chunk-JTFWT6DK.js} +7 -9
- package/dist/chunk-JTFWT6DK.js.map +1 -0
- package/dist/{chunk-MQ6RKXXW.js → chunk-KRJF7WLJ.js} +15 -3
- package/dist/chunk-KRJF7WLJ.js.map +1 -0
- package/dist/{chunk-FUJ73PTH.js → chunk-LJE2W4EM.js} +3 -5
- package/dist/chunk-LJE2W4EM.js.map +1 -0
- package/dist/{chunk-YFTQK2G4.js → chunk-LQHYHF36.js} +7 -7
- package/dist/chunk-LQHYHF36.js.map +1 -0
- package/dist/{chunk-TG3ZXLPM.js → chunk-MYD37I32.js} +27 -3
- package/dist/chunk-MYD37I32.js.map +1 -0
- package/dist/{chunk-ERWDRI3F.js → chunk-N4I3TD4G.js} +2 -2
- package/dist/{chunk-ERWDRI3F.js.map → chunk-N4I3TD4G.js.map} +1 -1
- package/dist/{chunk-FLTLZGIN.js → chunk-NOTZW5WH.js} +3 -3
- package/dist/{chunk-YUMHFZ5A.js → chunk-P5C3ED3V.js} +3 -2
- package/dist/chunk-P5C3ED3V.js.map +1 -0
- package/dist/{chunk-TT2YJNEP.js → chunk-T3KGZV35.js} +50 -12
- package/dist/chunk-T3KGZV35.js.map +1 -0
- package/dist/{chunk-F6GDUU4X.js → chunk-UBBHWDMP.js} +13 -9
- package/dist/{chunk-F6GDUU4X.js.map → chunk-UBBHWDMP.js.map} +1 -1
- package/dist/{chunk-3NSUJ7OF.js → chunk-UI3YDJTC.js} +39 -5
- package/dist/chunk-UI3YDJTC.js.map +1 -0
- package/dist/{chunk-C465B7WK.js → chunk-VBTPXEFH.js} +2 -2
- package/dist/{chunk-ZTZ6STJZ.js → chunk-Z26P2QNT.js} +2 -2
- package/dist/context-mention-palette/index.js +7 -7
- package/dist/i18n/index.d.ts +14 -2
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +37 -5
- package/dist/index.js +750 -774
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +22 -3
- package/dist/queued-prompt-runtime.js +1 -1
- package/dist/{types-BAPEle8b.d.ts → types-Bxn8bLEp.d.ts} +14 -1
- package/dist/workbench/contribution.d.ts +1 -1
- package/dist/workbench/contribution.js +5 -5
- package/dist/workbench/index.d.ts +1 -1
- package/dist/workbench/index.js +8 -8
- package/dist/workbench/launch.d.ts +3 -1
- package/dist/workbench/launch.js +1 -1
- package/dist/workbench/providerCatalog.d.ts +1 -1
- package/dist/workbench/sessionTitle.d.ts +1 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +2 -2
- package/dist/workbench/types.d.ts +1 -1
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/app/renderer/assets/icons/@-lined-14px.svg +0 -3
- package/dist/app/renderer/assets/icons/agents/manage-agent-claude-code.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-codex.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-gemini.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-hermes.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-openclaw.png +0 -0
- package/dist/app/renderer/assets/icons/agents/tutti-doc-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-claude-code.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-codex.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-gemini.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-openclaw.png +0 -0
- package/dist/app/renderer/assets/icons/arrow-left-filled.svg +0 -1
- package/dist/chunk-3NSUJ7OF.js.map +0 -1
- package/dist/chunk-FUJ73PTH.js.map +0 -1
- package/dist/chunk-MQ6RKXXW.js.map +0 -1
- package/dist/chunk-RDRKIMAC.js.map +0 -1
- package/dist/chunk-TFPKI4XJ.js.map +0 -1
- package/dist/chunk-TG3ZXLPM.js.map +0 -1
- package/dist/chunk-TT2YJNEP.js.map +0 -1
- package/dist/chunk-YFTQK2G4.js.map +0 -1
- package/dist/chunk-YUMHFZ5A.js.map +0 -1
- package/dist/cursor-flat-filled-CL7N3BTZ.svg +0 -3
- /package/dist/{chunk-IIXCU2UU.js.map → chunk-6ULTMCKP.js.map} +0 -0
- /package/dist/{chunk-PVVM7MZZ.js.map → chunk-DL6BMEHI.js.map} +0 -0
- /package/dist/{chunk-76GTKO4Q.js.map → chunk-HNODQVG2.js.map} +0 -0
- /package/dist/{chunk-FLTLZGIN.js.map → chunk-NOTZW5WH.js.map} +0 -0
- /package/dist/{chunk-C465B7WK.js.map → chunk-VBTPXEFH.js.map} +0 -0
- /package/dist/{chunk-ZTZ6STJZ.js.map → chunk-Z26P2QNT.js.map} +0 -0
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
getAgentCustomMentionKind,
|
|
7
7
|
managedAgentRoundedIconUrl
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N4I3TD4G.js";
|
|
9
9
|
import {
|
|
10
10
|
translate,
|
|
11
11
|
useTranslation
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6ULTMCKP.js";
|
|
13
13
|
|
|
14
14
|
// agent-gui/agentGuiNode/agentRichText/agentFileMentionExtension.ts
|
|
15
15
|
import { mergeAttributes, Node } from "@tiptap/core";
|
|
@@ -1437,4 +1437,4 @@ export {
|
|
|
1437
1437
|
mentionItemToAttrs,
|
|
1438
1438
|
attrsToMentionItem
|
|
1439
1439
|
};
|
|
1440
|
-
//# sourceMappingURL=chunk-
|
|
1440
|
+
//# sourceMappingURL=chunk-NOTZW5WH.js.map
|
|
@@ -75,6 +75,7 @@ function createAgentGuiWorkbenchSessionLaunchRequest(input) {
|
|
|
75
75
|
return {
|
|
76
76
|
dockEntryId: agentGuiWorkbenchDockEntryId(provider),
|
|
77
77
|
payload: {
|
|
78
|
+
...input.agentTargetId?.trim() ? { agentTargetId: input.agentTargetId.trim() } : {},
|
|
78
79
|
...input.agentSessionId ? { agentSessionId: input.agentSessionId } : {},
|
|
79
80
|
...input.openInNewWindow ? { openInNewWindow: true } : {},
|
|
80
81
|
provider
|
|
@@ -134,7 +135,7 @@ function createAgentGuiWorkbenchLaunchDescriptor(request) {
|
|
|
134
135
|
const targetAgentSessionId = agentSessionIdFromLaunchPayload(request.payload);
|
|
135
136
|
const openInNewWindow = openInNewWindowFromLaunchPayload(request.payload);
|
|
136
137
|
const instanceId = createAgentGuiWorkbenchInstanceId({
|
|
137
|
-
agentSessionId:
|
|
138
|
+
agentSessionId: null,
|
|
138
139
|
agentTargetId: openInNewWindow ? null : agentTargetIdFromLaunchPayload(request.payload),
|
|
139
140
|
provider
|
|
140
141
|
});
|
|
@@ -236,4 +237,4 @@ export {
|
|
|
236
237
|
resolveAgentGuiWorkbenchLaunchDockEntryId,
|
|
237
238
|
shouldReuseAgentGuiWorkbenchDockEntryNode
|
|
238
239
|
};
|
|
239
|
-
//# sourceMappingURL=chunk-
|
|
240
|
+
//# sourceMappingURL=chunk-P5C3ED3V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../workbench/launch.ts"],"sourcesContent":["import type { WorkbenchHostLaunchRequest } from \"@tutti-os/workbench-surface\";\nimport {\n isAgentGuiWorkbenchProvider,\n normalizeAgentGuiWorkbenchProvider\n} from \"./providerCatalog.ts\";\nimport {\n agentGuiWorkbenchOpenSessionActivationType,\n agentGuiWorkbenchPrefillPromptActivationType,\n type AgentGuiWorkbenchPrefillPromptPayload,\n type AgentGuiWorkbenchProvider\n} from \"./types.ts\";\n\nexport { agentGuiWorkbenchPrefillPromptActivationType } from \"./types.ts\";\n\ntype AgentGuiWorkbenchLaunchRequestInput = Pick<\n WorkbenchHostLaunchRequest,\n \"payload\" | \"typeId\"\n> & {\n dockEntryId?: string | null;\n};\n\nexport const agentGuiWorkbenchTypeId = \"agent-gui\";\n\nconst agentGuiWorkbenchDockEntryPrefix = \"agent-gui:\";\nconst agentGuiWorkbenchUnifiedDockEntryIdValue = \"agent-gui:unified\";\nlet agentGuiWorkbenchInstanceSequence = 0;\n\nexport type AgentGuiWorkbenchDockIdentity =\n | {\n kind: \"legacyProvider\";\n provider: AgentGuiWorkbenchProvider;\n }\n | {\n kind: \"unifiedAggregate\";\n };\n\nexport function agentGuiWorkbenchDockEntryId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return provider === \"codex\"\n ? agentGuiWorkbenchTypeId\n : `${agentGuiWorkbenchDockEntryPrefix}${provider}`;\n}\n\nexport function agentGuiWorkbenchUnifiedDockEntryId(): string {\n return agentGuiWorkbenchUnifiedDockEntryIdValue;\n}\n\nexport function agentGuiWorkbenchInstanceId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return `${agentGuiWorkbenchDockEntryPrefix}${provider}`;\n}\n\nexport function createAgentGuiWorkbenchInstanceId(input: {\n agentSessionId?: string | null;\n agentTargetId?: string | null;\n provider: AgentGuiWorkbenchProvider;\n}): string {\n const prefix = agentGuiWorkbenchInstanceId(input.provider);\n const agentSessionId = input.agentSessionId?.trim();\n if (agentSessionId) {\n return `${prefix}:session:${encodeAgentGuiWorkbenchInstanceSegment(\n agentSessionId\n )}`;\n }\n const agentTargetId = input.agentTargetId?.trim();\n if (agentTargetId) {\n return `${prefix}:target:${encodeAgentGuiWorkbenchInstanceSegment(\n agentTargetId\n )}`;\n }\n\n agentGuiWorkbenchInstanceSequence += 1;\n return [\n prefix,\n \"panel\",\n `${Date.now().toString(36)}-${agentGuiWorkbenchInstanceSequence.toString(36)}`\n ].join(\":\");\n}\n\nexport function agentGuiWorkbenchProviderFromIdentifier(\n value: string | null | undefined\n): AgentGuiWorkbenchProvider | null {\n const identity = agentGuiWorkbenchDockIdentityFromIdentifier(value);\n return identity?.kind === \"legacyProvider\" ? identity.provider : null;\n}\n\nexport function agentGuiWorkbenchDockIdentityFromIdentifier(\n value: string | null | undefined\n): AgentGuiWorkbenchDockIdentity | null {\n const normalized = value?.trim();\n if (!normalized) {\n return null;\n }\n if (normalized === agentGuiWorkbenchUnifiedDockEntryId()) {\n return { kind: \"unifiedAggregate\" };\n }\n if (normalized === agentGuiWorkbenchTypeId) {\n return { kind: \"legacyProvider\", provider: \"codex\" };\n }\n if (!normalized.startsWith(agentGuiWorkbenchDockEntryPrefix)) {\n return null;\n }\n const provider = normalized\n .slice(agentGuiWorkbenchDockEntryPrefix.length)\n .split(\":\", 1)[0];\n return isAgentGuiWorkbenchProvider(provider)\n ? { kind: \"legacyProvider\", provider }\n : null;\n}\n\nexport function agentGuiWorkbenchProviderFromLaunchRequest(\n request: AgentGuiWorkbenchLaunchRequestInput\n): AgentGuiWorkbenchProvider {\n const payloadProvider =\n request.payload &&\n typeof request.payload === \"object\" &&\n !Array.isArray(request.payload)\n ? (request.payload as { provider?: unknown }).provider\n : null;\n if (isAgentGuiWorkbenchProvider(payloadProvider)) {\n return payloadProvider;\n }\n return (\n agentGuiWorkbenchProviderFromIdentifier(request.dockEntryId) ??\n agentGuiWorkbenchProviderFromIdentifier(request.typeId) ??\n \"codex\"\n );\n}\n\nexport function createAgentGuiWorkbenchSessionLaunchRequest(input: {\n agentTargetId?: string | null;\n agentSessionId?: string;\n openInNewWindow?: boolean;\n provider: unknown;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n return {\n dockEntryId: agentGuiWorkbenchDockEntryId(provider),\n payload: {\n ...(input.agentTargetId?.trim()\n ? { agentTargetId: input.agentTargetId.trim() }\n : {}),\n ...(input.agentSessionId ? { agentSessionId: input.agentSessionId } : {}),\n ...(input.openInNewWindow ? { openInNewWindow: true } : {}),\n provider\n },\n reason: \"host\" as const,\n typeId: agentGuiWorkbenchTypeId\n };\n}\n\nexport function createAgentGuiWorkbenchDraftLaunchRequest(input: {\n agentTargetId?: string | null;\n autoSubmit?: boolean;\n draftPrompt: string;\n openInNewWindow?: boolean;\n provider: unknown;\n userProjectPath?: string | null;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n const userProjectPath = normalizeAgentGuiWorkbenchUserProjectPath(\n input.userProjectPath\n );\n return {\n dockEntryId: agentGuiWorkbenchDockEntryId(provider),\n payload: {\n draftPrompt: input.draftPrompt,\n provider,\n ...(input.agentTargetId?.trim()\n ? { agentTargetId: input.agentTargetId.trim() }\n : {}),\n ...(input.autoSubmit ? { autoSubmit: true } : {}),\n ...(input.openInNewWindow ? { openInNewWindow: true } : {}),\n ...(userProjectPath ? { userProjectPath } : {})\n },\n reason: \"host\" as const,\n typeId: agentGuiWorkbenchTypeId\n };\n}\n\nexport interface AgentGuiWorkbenchLaunchDescriptor {\n activation:\n | {\n payload: {\n agentSessionId: string;\n };\n type: typeof agentGuiWorkbenchOpenSessionActivationType;\n }\n | {\n payload: AgentGuiWorkbenchPrefillPromptPayload;\n type: typeof agentGuiWorkbenchPrefillPromptActivationType;\n }\n | null;\n dockEntryId: string;\n instanceId: string;\n openInNewWindow: boolean;\n provider: AgentGuiWorkbenchProvider;\n reuseDockEntryNode: boolean;\n reuseExistingSessionNode: boolean;\n targetAgentSessionId: string | null;\n}\n\nexport function createAgentGuiWorkbenchLaunchDescriptor(\n request: AgentGuiWorkbenchLaunchRequestInput\n): AgentGuiWorkbenchLaunchDescriptor {\n const provider = agentGuiWorkbenchProviderFromLaunchRequest(request);\n const dockEntryId = resolveAgentGuiWorkbenchLaunchDockEntryId({\n provider,\n requestedDockEntryId: request.dockEntryId\n });\n const prefillPrompt = prefillPromptFromLaunchPayload(request.payload);\n if (prefillPrompt) {\n const openInNewWindow = openInNewWindowFromLaunchPayload(request.payload);\n return {\n activation: {\n payload: prefillPrompt,\n type: agentGuiWorkbenchPrefillPromptActivationType\n },\n dockEntryId,\n instanceId: createAgentGuiWorkbenchInstanceId({\n agentTargetId: openInNewWindow\n ? null\n : agentTargetIdFromLaunchPayload(request.payload),\n provider\n }),\n openInNewWindow,\n provider,\n reuseDockEntryNode: shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: \"prefill\"\n }),\n reuseExistingSessionNode: !openInNewWindow,\n targetAgentSessionId: null\n };\n }\n\n const targetAgentSessionId = agentSessionIdFromLaunchPayload(request.payload);\n const openInNewWindow = openInNewWindowFromLaunchPayload(request.payload);\n const instanceId = createAgentGuiWorkbenchInstanceId({\n agentSessionId: null,\n agentTargetId: openInNewWindow\n ? null\n : agentTargetIdFromLaunchPayload(request.payload),\n provider\n });\n\n return {\n activation: targetAgentSessionId\n ? {\n payload: {\n agentSessionId: targetAgentSessionId\n },\n type: agentGuiWorkbenchOpenSessionActivationType\n }\n : null,\n dockEntryId,\n instanceId,\n openInNewWindow,\n provider,\n reuseDockEntryNode: shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: targetAgentSessionId ? \"session\" : \"empty\"\n }),\n reuseExistingSessionNode: !openInNewWindow,\n targetAgentSessionId\n };\n}\n\nexport function resolveAgentGuiWorkbenchLaunchDockEntryId(input: {\n provider: AgentGuiWorkbenchProvider;\n requestedDockEntryId?: string | null;\n}): string {\n const requestedIdentity = agentGuiWorkbenchDockIdentityFromIdentifier(\n input.requestedDockEntryId\n );\n if (requestedIdentity?.kind === \"unifiedAggregate\") {\n return agentGuiWorkbenchUnifiedDockEntryId();\n }\n return agentGuiWorkbenchDockEntryId(input.provider);\n}\n\nexport function shouldReuseAgentGuiWorkbenchDockEntryNode(input: {\n dockEntryId: string;\n launchKind: \"empty\" | \"prefill\" | \"session\";\n}): boolean {\n if (input.launchKind !== \"prefill\") {\n return false;\n }\n return (\n agentGuiWorkbenchDockIdentityFromIdentifier(input.dockEntryId)?.kind !==\n \"unifiedAggregate\"\n );\n}\n\nfunction encodeAgentGuiWorkbenchInstanceSegment(value: string): string {\n return encodeURIComponent(value.trim());\n}\n\nfunction prefillPromptFromLaunchPayload(\n payload: unknown\n): AgentGuiWorkbenchPrefillPromptPayload | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const draftPrompt = (payload as { draftPrompt?: unknown }).draftPrompt;\n if (typeof draftPrompt !== \"string\" || !draftPrompt.trim()) {\n return null;\n }\n const autoSubmit = (payload as { autoSubmit?: unknown }).autoSubmit === true;\n const provider = (payload as { provider?: unknown }).provider;\n const agentTargetId = agentTargetIdFromLaunchPayload(payload);\n const userProjectPath = (payload as { userProjectPath?: unknown })\n .userProjectPath;\n const normalizedUserProjectPath =\n typeof userProjectPath === \"string\"\n ? normalizeAgentGuiWorkbenchUserProjectPath(userProjectPath)\n : null;\n return {\n draftPrompt,\n ...(agentTargetId ? { agentTargetId } : {}),\n ...(autoSubmit ? { autoSubmit: true } : {}),\n ...(isAgentGuiWorkbenchProvider(provider) ? { provider } : {}),\n ...(normalizedUserProjectPath\n ? { userProjectPath: normalizedUserProjectPath }\n : {})\n };\n}\n\nfunction normalizeAgentGuiWorkbenchUserProjectPath(\n value: string | null | undefined\n): string | null {\n const normalized = value?.trim().replaceAll(\"\\\\\", \"/\").replace(/\\/+$/, \"\");\n return normalized ? normalized : null;\n}\n\nfunction agentSessionIdFromLaunchPayload(payload: unknown): string | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const agentSessionId = (payload as { agentSessionId?: unknown })\n .agentSessionId;\n return typeof agentSessionId === \"string\" && agentSessionId.trim()\n ? agentSessionId.trim()\n : null;\n}\n\nfunction agentTargetIdFromLaunchPayload(payload: unknown): string | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const agentTargetId = (payload as { agentTargetId?: unknown }).agentTargetId;\n return typeof agentTargetId === \"string\" && agentTargetId.trim()\n ? agentTargetId.trim()\n : null;\n}\n\nfunction openInNewWindowFromLaunchPayload(payload: unknown): boolean {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return false;\n }\n return (payload as { openInNewWindow?: unknown }).openInNewWindow === true;\n}\n"],"mappings":"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","names":["openInNewWindow"]}
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
getOptionalAgentHostApi,
|
|
4
4
|
managedAgentRoundedIconUrl,
|
|
5
5
|
useOptionalAgentHostApi
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-N4I3TD4G.js";
|
|
7
7
|
import {
|
|
8
8
|
translate,
|
|
9
9
|
useTranslation
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6ULTMCKP.js";
|
|
11
11
|
import {
|
|
12
12
|
resolveAgentWorkspaceFileVisualKind
|
|
13
13
|
} from "./chunk-PJP5BUU6.js";
|
|
@@ -260,8 +260,10 @@ import {
|
|
|
260
260
|
useContext as useContext2,
|
|
261
261
|
memo,
|
|
262
262
|
useMemo,
|
|
263
|
+
useRef as useRef3,
|
|
263
264
|
useState as useState4
|
|
264
265
|
} from "react";
|
|
266
|
+
import { Check, Copy } from "lucide-react";
|
|
265
267
|
|
|
266
268
|
// app/renderer/components/ZoomableImage.tsx
|
|
267
269
|
import {
|
|
@@ -291,8 +293,6 @@ import {
|
|
|
291
293
|
useRef,
|
|
292
294
|
useState
|
|
293
295
|
} from "react";
|
|
294
|
-
|
|
295
|
-
// app/renderer/components/ui/context-menu.tsx
|
|
296
296
|
import {
|
|
297
297
|
ContextMenu,
|
|
298
298
|
ContextMenuContent,
|
|
@@ -1957,7 +1957,8 @@ function AgentMessageMarkdown({
|
|
|
1957
1957
|
p: (props) => /* @__PURE__ */ jsx4(MarkdownParagraph, { ...props, inline }),
|
|
1958
1958
|
ul: MarkdownUnorderedList,
|
|
1959
1959
|
ol: MarkdownOrderedList,
|
|
1960
|
-
li: MarkdownListItem
|
|
1960
|
+
li: MarkdownListItem,
|
|
1961
|
+
pre: MarkdownPre
|
|
1961
1962
|
}),
|
|
1962
1963
|
[
|
|
1963
1964
|
effectiveAgentTargets,
|
|
@@ -3188,6 +3189,43 @@ function textFromReactNode(node) {
|
|
|
3188
3189
|
}
|
|
3189
3190
|
return "";
|
|
3190
3191
|
}
|
|
3192
|
+
function MarkdownPre({
|
|
3193
|
+
children,
|
|
3194
|
+
...props
|
|
3195
|
+
}) {
|
|
3196
|
+
"use memo";
|
|
3197
|
+
const preRef = useRef3(null);
|
|
3198
|
+
const [copied, setCopied] = useState4(false);
|
|
3199
|
+
const copyResetRef = useRef3(null);
|
|
3200
|
+
const handleCopy = useCallback3(() => {
|
|
3201
|
+
const text = preRef.current?.textContent?.trim();
|
|
3202
|
+
if (!text) {
|
|
3203
|
+
return;
|
|
3204
|
+
}
|
|
3205
|
+
void navigator.clipboard?.writeText(text).then(() => {
|
|
3206
|
+
setCopied(true);
|
|
3207
|
+
if (copyResetRef.current) {
|
|
3208
|
+
clearTimeout(copyResetRef.current);
|
|
3209
|
+
}
|
|
3210
|
+
copyResetRef.current = setTimeout(() => setCopied(false), 1500);
|
|
3211
|
+
});
|
|
3212
|
+
}, []);
|
|
3213
|
+
return /* @__PURE__ */ jsxs3("div", { className: "group relative", children: [
|
|
3214
|
+
/* @__PURE__ */ jsx4(
|
|
3215
|
+
"button",
|
|
3216
|
+
{
|
|
3217
|
+
type: "button",
|
|
3218
|
+
"data-testid": "markdown-code-copy",
|
|
3219
|
+
className: "absolute right-1.5 top-1.5 z-10 inline-flex size-5 items-center justify-center rounded-[4px] text-[var(--text-tertiary)] opacity-0 transition-opacity hover:bg-[var(--transparency-hover)] hover:text-[var(--text-secondary)] group-hover:opacity-100",
|
|
3220
|
+
"aria-label": translate("agentHost.agentGui.copyCode"),
|
|
3221
|
+
title: translate("agentHost.agentGui.copyCode"),
|
|
3222
|
+
onClick: handleCopy,
|
|
3223
|
+
children: copied ? /* @__PURE__ */ jsx4(Check, { size: 13, strokeWidth: 2, "aria-hidden": "true" }) : /* @__PURE__ */ jsx4(Copy, { size: 13, strokeWidth: 2, "aria-hidden": "true" })
|
|
3224
|
+
}
|
|
3225
|
+
),
|
|
3226
|
+
/* @__PURE__ */ jsx4("pre", { ...props, ref: preRef, children })
|
|
3227
|
+
] });
|
|
3228
|
+
}
|
|
3191
3229
|
|
|
3192
3230
|
// agent-gui/agentGuiNode/AgentGUIConversation.styles.ts
|
|
3193
3231
|
var styles = {
|
|
@@ -3229,7 +3267,7 @@ import {
|
|
|
3229
3267
|
forwardRef,
|
|
3230
3268
|
useCallback as useCallback4,
|
|
3231
3269
|
useEffect as useEffect4,
|
|
3232
|
-
useRef as
|
|
3270
|
+
useRef as useRef4,
|
|
3233
3271
|
useState as useState5
|
|
3234
3272
|
} from "react";
|
|
3235
3273
|
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
@@ -3243,8 +3281,8 @@ function CustomScrollbar({
|
|
|
3243
3281
|
syncKey
|
|
3244
3282
|
}) {
|
|
3245
3283
|
"use memo";
|
|
3246
|
-
const trackRef =
|
|
3247
|
-
const dragStateRef =
|
|
3284
|
+
const trackRef = useRef4(null);
|
|
3285
|
+
const dragStateRef = useRef4(null);
|
|
3248
3286
|
const [scrollbarState, setScrollbarState] = useState5({
|
|
3249
3287
|
scrollable: false,
|
|
3250
3288
|
thumbHeight: 0,
|
|
@@ -3431,7 +3469,7 @@ var CustomScrollArea = forwardRef(function CustomScrollArea2({
|
|
|
3431
3469
|
...viewportProps
|
|
3432
3470
|
}, forwardedRef) {
|
|
3433
3471
|
"use memo";
|
|
3434
|
-
const viewportRef =
|
|
3472
|
+
const viewportRef = useRef4(null);
|
|
3435
3473
|
const getViewport = useCallback4(() => viewportRef.current, []);
|
|
3436
3474
|
return /* @__PURE__ */ jsxs4(
|
|
3437
3475
|
"div",
|
|
@@ -3488,7 +3526,7 @@ import {
|
|
|
3488
3526
|
useCallback as useCallback5,
|
|
3489
3527
|
useEffect as useEffect5,
|
|
3490
3528
|
useImperativeHandle,
|
|
3491
|
-
useRef as
|
|
3529
|
+
useRef as useRef5
|
|
3492
3530
|
} from "react";
|
|
3493
3531
|
import {
|
|
3494
3532
|
motion,
|
|
@@ -3539,7 +3577,7 @@ var MessageSquareMoreIcon = forwardRef2(
|
|
|
3539
3577
|
}, ref) => {
|
|
3540
3578
|
const controls = useAnimation();
|
|
3541
3579
|
const reduceMotion = useReducedMotion();
|
|
3542
|
-
const isControlledRef =
|
|
3580
|
+
const isControlledRef = useRef5(false);
|
|
3543
3581
|
const startAnimation = useCallback5(() => {
|
|
3544
3582
|
if (reduceMotion) {
|
|
3545
3583
|
return;
|
|
@@ -3659,4 +3697,4 @@ export {
|
|
|
3659
3697
|
CustomScrollArea,
|
|
3660
3698
|
MessageSquareMoreIcon
|
|
3661
3699
|
};
|
|
3662
|
-
//# sourceMappingURL=chunk-
|
|
3700
|
+
//# sourceMappingURL=chunk-T3KGZV35.js.map
|