@tutti-os/agent-gui 0.0.216 → 0.0.218
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 +6 -0
- package/dist/{agentFileMentionContracts-BeBex-Sf.d.ts → AgentMentionSearchContracts-y1_u9cPi.d.ts} +73 -1
- package/dist/{AgentRichTextReadonly-IPPNAAWG.js → AgentRichTextReadonly-NBYQHR6U.js} +9 -9
- package/dist/agent-conversation/index.js +11 -11
- package/dist/agent-gui.d.ts +16 -3
- package/dist/agent-gui.js +26 -25
- package/dist/agent-message-center/index.js +8 -8
- package/dist/app/renderer/agentactivity.css +93 -69
- package/dist/app/renderer/assets/icons/agent-vinyl-player-chassis.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyl-tonearm.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/claude-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/codex-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/cursor-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/openclaw-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/opencode-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agents/agent-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/claude-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/codex-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/gemini-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-tutti.png +0 -0
- package/dist/app/renderer/assets/icons/agents/openclaw-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/opencode-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-claude-code-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-codex-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-opencode-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-tutti.png +0 -0
- package/dist/app/renderer/assets/icons/user-avatar-placeholder.png +0 -0
- package/dist/{chunk-VMPPZO5C.js → chunk-2QF3RBR4.js} +4 -4
- package/dist/{chunk-M6HTOCQK.js → chunk-3X5VDG6T.js} +2 -2
- package/dist/chunk-6GX57XB5.js +135 -0
- package/dist/chunk-6GX57XB5.js.map +1 -0
- package/dist/{chunk-MOCBHFJ2.js → chunk-7V5XYXKB.js} +44 -120
- package/dist/chunk-7V5XYXKB.js.map +1 -0
- package/dist/chunk-BCBB4HOV.js +56 -0
- package/dist/{chunk-DLN33TPF.js → chunk-F6J3LJXK.js} +8 -8
- package/dist/{chunk-UERICUWM.js → chunk-GLVENTN6.js} +2 -2
- package/dist/{chunk-DTP2OMCE.js → chunk-KRITI65C.js} +10 -12
- package/dist/chunk-KRITI65C.js.map +1 -0
- package/dist/{chunk-EZRQMJTX.js → chunk-KZIW5CCW.js} +4 -4
- package/dist/{chunk-QFYOJMEQ.js → chunk-M6WEFXPL.js} +2 -2
- package/dist/chunk-OB7GGK6S.js +44534 -0
- package/dist/chunk-OB7GGK6S.js.map +1 -0
- package/dist/{chunk-G7DS23D4.js → chunk-PPA2OB2H.js} +2 -2
- package/dist/{chunk-YY5WM3OE.js → chunk-PZWBLTYH.js} +242 -81
- package/dist/chunk-PZWBLTYH.js.map +1 -0
- package/dist/chunk-SEHJINGH.js +150 -0
- package/dist/{chunk-4CHBM3G3.js → chunk-SUVMLCED.js} +5 -5
- package/dist/{chunk-B4TM2HYJ.js → chunk-SWO67UWQ.js} +6 -6
- package/dist/{chunk-6A6OVD66.js → chunk-UC2QN7FK.js} +44 -18
- package/dist/chunk-UC2QN7FK.js.map +1 -0
- package/dist/{chunk-Z5UJC4Q3.js → chunk-Z35E22WS.js} +4 -4
- package/dist/{chunk-P2RIZAK5.js → chunk-ZXEICU6J.js} +3 -1
- package/dist/chunk-ZXEICU6J.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +3 -3
- package/dist/context-mention-palette/index.js +14 -14
- package/dist/dock-icons.js +2 -2
- package/dist/headerLayout-CP4ujEbo.d.ts +14 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +77 -46
- package/dist/index.js +49 -42
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +7 -0
- package/dist/layout.js +9 -0
- package/dist/layout.js.map +1 -0
- package/dist/mention-search.d.ts +6 -73
- package/dist/mention-search.js +10 -10
- package/dist/provider-icons.js +1 -1
- package/dist/workbench/browser-element-context/index.js +2 -2
- package/dist/workbench/contribution.js +9 -8
- package/dist/workbench/index.d.ts +3 -1
- package/dist/workbench/index.js +12 -11
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/sessionTitle.js +2 -2
- package/dist/workbench/tool-sidebar/index.d.ts +14 -13
- package/dist/workbench/tool-sidebar/index.js +66 -55
- package/dist/workbench/tool-sidebar/index.js.map +1 -1
- package/package.json +22 -15
- package/dist/chunk-6A6OVD66.js.map +0 -1
- package/dist/chunk-AOK22J62.js +0 -56
- package/dist/chunk-DTP2OMCE.js.map +0 -1
- package/dist/chunk-KJA3HHUJ.js +0 -44291
- package/dist/chunk-KJA3HHUJ.js.map +0 -1
- package/dist/chunk-MOCBHFJ2.js.map +0 -1
- package/dist/chunk-P2RIZAK5.js.map +0 -1
- package/dist/chunk-QNE2ZPPV.js +0 -150
- package/dist/chunk-YY5WM3OE.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-IPPNAAWG.js.map → AgentRichTextReadonly-NBYQHR6U.js.map} +0 -0
- /package/dist/{chunk-VMPPZO5C.js.map → chunk-2QF3RBR4.js.map} +0 -0
- /package/dist/{chunk-M6HTOCQK.js.map → chunk-3X5VDG6T.js.map} +0 -0
- /package/dist/{chunk-AOK22J62.js.map → chunk-BCBB4HOV.js.map} +0 -0
- /package/dist/{chunk-DLN33TPF.js.map → chunk-F6J3LJXK.js.map} +0 -0
- /package/dist/{chunk-UERICUWM.js.map → chunk-GLVENTN6.js.map} +0 -0
- /package/dist/{chunk-EZRQMJTX.js.map → chunk-KZIW5CCW.js.map} +0 -0
- /package/dist/{chunk-QFYOJMEQ.js.map → chunk-M6WEFXPL.js.map} +0 -0
- /package/dist/{chunk-G7DS23D4.js.map → chunk-PPA2OB2H.js.map} +0 -0
- /package/dist/{chunk-QNE2ZPPV.js.map → chunk-SEHJINGH.js.map} +0 -0
- /package/dist/{chunk-4CHBM3G3.js.map → chunk-SUVMLCED.js.map} +0 -0
- /package/dist/{chunk-B4TM2HYJ.js.map → chunk-SWO67UWQ.js.map} +0 -0
- /package/dist/{chunk-Z5UJC4Q3.js.map → chunk-Z35E22WS.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createProviderIconUrlMap
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SEHJINGH.js";
|
|
4
4
|
import {
|
|
5
5
|
migratedAgentGUIProviderIdentityCatalog
|
|
6
6
|
} from "./chunk-O433KXLK.js";
|
|
@@ -20,4 +20,4 @@ export {
|
|
|
20
20
|
agentGuiDockIconUrls,
|
|
21
21
|
agentGuiDockIconUrl
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-PPA2OB2H.js.map
|
|
@@ -2,7 +2,26 @@ import {
|
|
|
2
2
|
AgentRichTextReadonly,
|
|
3
3
|
promptForProviderSkills,
|
|
4
4
|
skillTriggerForPrefix
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-F6J3LJXK.js";
|
|
6
|
+
import {
|
|
7
|
+
AgentGUIConversation_styles_default,
|
|
8
|
+
AgentMessageMarkdown,
|
|
9
|
+
CustomScrollArea,
|
|
10
|
+
MessageSquareMoreIcon,
|
|
11
|
+
ZoomableImage,
|
|
12
|
+
extractAgentMcpToolTarget,
|
|
13
|
+
extractExitPlanKeepPlanningOptionId,
|
|
14
|
+
extractExitPlanModeOptions,
|
|
15
|
+
isExitPlanSwitchModeInput,
|
|
16
|
+
normalizeAgentApprovalPurpose,
|
|
17
|
+
normalizeAskUserQuestions,
|
|
18
|
+
resolveWorkspaceFileLinkAction,
|
|
19
|
+
resolveWorkspaceFilePathCandidate,
|
|
20
|
+
resolveWorkspaceLinkAction
|
|
21
|
+
} from "./chunk-Z35E22WS.js";
|
|
22
|
+
import {
|
|
23
|
+
cn
|
|
24
|
+
} from "./chunk-LQMIEH4C.js";
|
|
6
25
|
import {
|
|
7
26
|
classifyRecoverableAgentMessage,
|
|
8
27
|
resolveAgentErrorPresentation,
|
|
@@ -18,7 +37,7 @@ import {
|
|
|
18
37
|
agentPromptFileBlocks,
|
|
19
38
|
agentPromptPastedTextBlocks,
|
|
20
39
|
materializeAgentComposerFileMentions
|
|
21
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-SWO67UWQ.js";
|
|
22
41
|
import {
|
|
23
42
|
extractImageGenerationPreview,
|
|
24
43
|
isImageGenerationToolCall,
|
|
@@ -27,34 +46,11 @@ import {
|
|
|
27
46
|
resolveImageGenerationPreviewSrc,
|
|
28
47
|
stripImagePayloadData
|
|
29
48
|
} from "./chunk-JDVP33S5.js";
|
|
30
|
-
import {
|
|
31
|
-
AGENT_PASTED_TEXT_BLOCK_KIND,
|
|
32
|
-
AGENT_PASTED_TEXT_MENTION_KIND
|
|
33
|
-
} from "./chunk-FGLQZ6I4.js";
|
|
34
|
-
import {
|
|
35
|
-
AgentGUIConversation_styles_default,
|
|
36
|
-
AgentMessageMarkdown,
|
|
37
|
-
CustomScrollArea,
|
|
38
|
-
MessageSquareMoreIcon,
|
|
39
|
-
ZoomableImage,
|
|
40
|
-
extractAgentMcpToolTarget,
|
|
41
|
-
extractExitPlanKeepPlanningOptionId,
|
|
42
|
-
extractExitPlanModeOptions,
|
|
43
|
-
isExitPlanSwitchModeInput,
|
|
44
|
-
normalizeAgentApprovalPurpose,
|
|
45
|
-
normalizeAskUserQuestions,
|
|
46
|
-
resolveWorkspaceFileLinkAction,
|
|
47
|
-
resolveWorkspaceFilePathCandidate,
|
|
48
|
-
resolveWorkspaceLinkAction
|
|
49
|
-
} from "./chunk-Z5UJC4Q3.js";
|
|
50
|
-
import {
|
|
51
|
-
cn
|
|
52
|
-
} from "./chunk-LQMIEH4C.js";
|
|
53
49
|
import {
|
|
54
50
|
useOptionalAgentActivityRuntime,
|
|
55
51
|
useOptionalAgentHostApi,
|
|
56
52
|
workspaceAgentProviderLabel
|
|
57
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-M6WEFXPL.js";
|
|
58
54
|
import {
|
|
59
55
|
fileChangeCountFromChanges,
|
|
60
56
|
fileChangeEntriesFromChanges,
|
|
@@ -64,10 +60,14 @@ import {
|
|
|
64
60
|
getActiveUiLanguage,
|
|
65
61
|
translate,
|
|
66
62
|
useTranslation
|
|
67
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-GLVENTN6.js";
|
|
68
64
|
import {
|
|
69
65
|
normalizeAgentTitleText
|
|
70
66
|
} from "./chunk-MIJXEELH.js";
|
|
67
|
+
import {
|
|
68
|
+
AGENT_PASTED_TEXT_BLOCK_KIND,
|
|
69
|
+
AGENT_PASTED_TEXT_MENTION_KIND
|
|
70
|
+
} from "./chunk-FGLQZ6I4.js";
|
|
71
71
|
|
|
72
72
|
// shared/workspaceAgentSystemNoticeSemantics.ts
|
|
73
73
|
function resolveWorkspaceAgentNoticeCommandSemantics(input) {
|
|
@@ -5605,7 +5605,7 @@ import {
|
|
|
5605
5605
|
memo as memo4,
|
|
5606
5606
|
useCallback as useCallback15,
|
|
5607
5607
|
useLayoutEffect as useLayoutEffect4,
|
|
5608
|
-
useMemo as
|
|
5608
|
+
useMemo as useMemo9,
|
|
5609
5609
|
useRef as useRef13,
|
|
5610
5610
|
useState as useState25
|
|
5611
5611
|
} from "react";
|
|
@@ -8971,7 +8971,7 @@ function fileNameFromPath(path) {
|
|
|
8971
8971
|
}
|
|
8972
8972
|
|
|
8973
8973
|
// shared/agentConversation/components/tool-renderers/file-diff/AgentMonacoDiffViewer.tsx
|
|
8974
|
-
import {
|
|
8974
|
+
import { Component, createRef } from "react";
|
|
8975
8975
|
|
|
8976
8976
|
// app/renderer/components/icons/AtomIcon.tsx
|
|
8977
8977
|
import {
|
|
@@ -9136,12 +9136,13 @@ var AtomIcon = forwardRef4(
|
|
|
9136
9136
|
);
|
|
9137
9137
|
AtomIcon.displayName = "AtomIcon";
|
|
9138
9138
|
|
|
9139
|
+
// shared/agentConversation/components/tool-renderers/file-diff/loadMonaco.ts
|
|
9140
|
+
function loadMonaco() {
|
|
9141
|
+
return import("monaco-editor");
|
|
9142
|
+
}
|
|
9143
|
+
|
|
9139
9144
|
// shared/agentConversation/components/tool-renderers/file-diff/AgentMonacoDiffViewer.tsx
|
|
9140
9145
|
import { jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
9141
|
-
var MonacoDiffEditor = lazy(async () => {
|
|
9142
|
-
const module = await import("@monaco-editor/react");
|
|
9143
|
-
return { default: module.DiffEditor };
|
|
9144
|
-
});
|
|
9145
9146
|
function AgentMonacoDiffViewer({
|
|
9146
9147
|
path,
|
|
9147
9148
|
oldValue,
|
|
@@ -9171,42 +9172,159 @@ function AgentMonacoDiffViewer({
|
|
|
9171
9172
|
}
|
|
9172
9173
|
) : null,
|
|
9173
9174
|
/* @__PURE__ */ jsx20("div", { className: "h-[220px] bg-[var(--background-panel)]", children: /* @__PURE__ */ jsx20(
|
|
9174
|
-
|
|
9175
|
+
MonacoDiffEditorSurface,
|
|
9175
9176
|
{
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
{
|
|
9180
|
-
size: 14,
|
|
9181
|
-
active: true,
|
|
9182
|
-
"aria-hidden": "true",
|
|
9183
|
-
className: "shrink-0"
|
|
9184
|
-
}
|
|
9185
|
-
),
|
|
9186
|
-
/* @__PURE__ */ jsx20("span", { children: translate("agentHost.agentTool.details.loadingDiff") })
|
|
9187
|
-
] }),
|
|
9188
|
-
children: /* @__PURE__ */ jsx20(
|
|
9189
|
-
MonacoDiffEditor,
|
|
9190
|
-
{
|
|
9191
|
-
original: oldValue,
|
|
9192
|
-
modified: newValue,
|
|
9193
|
-
language: languageForPath2(path),
|
|
9194
|
-
options: {
|
|
9195
|
-
readOnly: true,
|
|
9196
|
-
renderSideBySide: true,
|
|
9197
|
-
minimap: { enabled: false },
|
|
9198
|
-
scrollBeyondLastLine: false,
|
|
9199
|
-
wordWrap: "on",
|
|
9200
|
-
automaticLayout: true
|
|
9201
|
-
}
|
|
9202
|
-
}
|
|
9203
|
-
)
|
|
9177
|
+
oldValue,
|
|
9178
|
+
newValue,
|
|
9179
|
+
language: languageForPath2(path)
|
|
9204
9180
|
}
|
|
9205
9181
|
) })
|
|
9206
9182
|
]
|
|
9207
9183
|
}
|
|
9208
9184
|
);
|
|
9209
9185
|
}
|
|
9186
|
+
var MonacoDiffEditorSurface = class extends Component {
|
|
9187
|
+
containerRef = createRef();
|
|
9188
|
+
resources = null;
|
|
9189
|
+
loadGeneration = 0;
|
|
9190
|
+
state = {
|
|
9191
|
+
loadError: null,
|
|
9192
|
+
loading: true
|
|
9193
|
+
};
|
|
9194
|
+
componentDidMount() {
|
|
9195
|
+
const loadGeneration = ++this.loadGeneration;
|
|
9196
|
+
void loadMonaco().then((monaco) => {
|
|
9197
|
+
const container = this.containerRef.current;
|
|
9198
|
+
if (loadGeneration !== this.loadGeneration || !container) {
|
|
9199
|
+
return;
|
|
9200
|
+
}
|
|
9201
|
+
this.resources = createMonacoDiffResources(
|
|
9202
|
+
monaco,
|
|
9203
|
+
container,
|
|
9204
|
+
this.props
|
|
9205
|
+
);
|
|
9206
|
+
this.setState({ loading: false });
|
|
9207
|
+
}).catch((error) => {
|
|
9208
|
+
if (loadGeneration === this.loadGeneration) {
|
|
9209
|
+
this.setState({
|
|
9210
|
+
loadError: error instanceof Error ? error : new Error(String(error))
|
|
9211
|
+
});
|
|
9212
|
+
}
|
|
9213
|
+
});
|
|
9214
|
+
}
|
|
9215
|
+
componentDidUpdate() {
|
|
9216
|
+
if (this.resources) {
|
|
9217
|
+
updateMonacoDiffResources(this.resources, this.props);
|
|
9218
|
+
}
|
|
9219
|
+
}
|
|
9220
|
+
componentWillUnmount() {
|
|
9221
|
+
this.loadGeneration += 1;
|
|
9222
|
+
const resources = this.resources;
|
|
9223
|
+
this.resources = null;
|
|
9224
|
+
if (resources) {
|
|
9225
|
+
disposeMonacoDiffResources(resources);
|
|
9226
|
+
}
|
|
9227
|
+
}
|
|
9228
|
+
render() {
|
|
9229
|
+
if (this.state.loadError) {
|
|
9230
|
+
throw this.state.loadError;
|
|
9231
|
+
}
|
|
9232
|
+
return /* @__PURE__ */ jsxs12("div", { className: "relative h-full w-full", children: [
|
|
9233
|
+
/* @__PURE__ */ jsx20("div", { ref: this.containerRef, className: "h-full w-full" }),
|
|
9234
|
+
this.state.loading ? /* @__PURE__ */ jsxs12("div", { className: "absolute inset-0 flex items-start gap-1.5 px-3 py-2.5 text-[11px] text-[var(--text-secondary)]", children: [
|
|
9235
|
+
/* @__PURE__ */ jsx20(
|
|
9236
|
+
AtomIcon,
|
|
9237
|
+
{
|
|
9238
|
+
size: 14,
|
|
9239
|
+
active: true,
|
|
9240
|
+
"aria-hidden": "true",
|
|
9241
|
+
className: "shrink-0"
|
|
9242
|
+
}
|
|
9243
|
+
),
|
|
9244
|
+
/* @__PURE__ */ jsx20("span", { children: translate("agentHost.agentTool.details.loadingDiff") })
|
|
9245
|
+
] }) : null
|
|
9246
|
+
] });
|
|
9247
|
+
}
|
|
9248
|
+
};
|
|
9249
|
+
function createMonacoDiffResources(monaco, container, content) {
|
|
9250
|
+
const originalModel = monaco.editor.createModel(
|
|
9251
|
+
content.oldValue,
|
|
9252
|
+
content.language
|
|
9253
|
+
);
|
|
9254
|
+
const modifiedModel = monaco.editor.createModel(
|
|
9255
|
+
content.newValue,
|
|
9256
|
+
content.language
|
|
9257
|
+
);
|
|
9258
|
+
let editor = null;
|
|
9259
|
+
try {
|
|
9260
|
+
monaco.editor.setTheme("light");
|
|
9261
|
+
editor = monaco.editor.createDiffEditor(container, {
|
|
9262
|
+
readOnly: true,
|
|
9263
|
+
renderSideBySide: true,
|
|
9264
|
+
minimap: { enabled: false },
|
|
9265
|
+
scrollBeyondLastLine: false,
|
|
9266
|
+
wordWrap: "on",
|
|
9267
|
+
automaticLayout: true
|
|
9268
|
+
});
|
|
9269
|
+
editor.setModel({
|
|
9270
|
+
original: originalModel,
|
|
9271
|
+
modified: modifiedModel
|
|
9272
|
+
});
|
|
9273
|
+
return { monaco, editor, originalModel, modifiedModel };
|
|
9274
|
+
} catch (error) {
|
|
9275
|
+
if (editor) {
|
|
9276
|
+
try {
|
|
9277
|
+
editor.setModel(null);
|
|
9278
|
+
} finally {
|
|
9279
|
+
try {
|
|
9280
|
+
editor.dispose();
|
|
9281
|
+
} finally {
|
|
9282
|
+
disposeMonacoModels(originalModel, modifiedModel);
|
|
9283
|
+
}
|
|
9284
|
+
}
|
|
9285
|
+
} else {
|
|
9286
|
+
disposeMonacoModels(originalModel, modifiedModel);
|
|
9287
|
+
}
|
|
9288
|
+
throw error;
|
|
9289
|
+
}
|
|
9290
|
+
}
|
|
9291
|
+
function updateMonacoDiffResources(resources, content) {
|
|
9292
|
+
if (resources.originalModel.getValue() !== content.oldValue) {
|
|
9293
|
+
resources.originalModel.setValue(content.oldValue);
|
|
9294
|
+
}
|
|
9295
|
+
if (resources.modifiedModel.getValue() !== content.newValue) {
|
|
9296
|
+
resources.modifiedModel.setValue(content.newValue);
|
|
9297
|
+
}
|
|
9298
|
+
const currentLanguage = resources.originalModel.getLanguageId();
|
|
9299
|
+
if (currentLanguage !== content.language) {
|
|
9300
|
+
resources.monaco.editor.setModelLanguage(
|
|
9301
|
+
resources.originalModel,
|
|
9302
|
+
content.language
|
|
9303
|
+
);
|
|
9304
|
+
resources.monaco.editor.setModelLanguage(
|
|
9305
|
+
resources.modifiedModel,
|
|
9306
|
+
content.language
|
|
9307
|
+
);
|
|
9308
|
+
}
|
|
9309
|
+
}
|
|
9310
|
+
function disposeMonacoDiffResources(resources) {
|
|
9311
|
+
try {
|
|
9312
|
+
resources.editor.setModel(null);
|
|
9313
|
+
} finally {
|
|
9314
|
+
try {
|
|
9315
|
+
resources.editor.dispose();
|
|
9316
|
+
} finally {
|
|
9317
|
+
disposeMonacoModels(resources.originalModel, resources.modifiedModel);
|
|
9318
|
+
}
|
|
9319
|
+
}
|
|
9320
|
+
}
|
|
9321
|
+
function disposeMonacoModels(originalModel, modifiedModel) {
|
|
9322
|
+
try {
|
|
9323
|
+
originalModel.dispose();
|
|
9324
|
+
} finally {
|
|
9325
|
+
modifiedModel.dispose();
|
|
9326
|
+
}
|
|
9327
|
+
}
|
|
9210
9328
|
function languageForPath2(path) {
|
|
9211
9329
|
const extension = path?.split(".").pop()?.toLowerCase();
|
|
9212
9330
|
switch (extension) {
|
|
@@ -12406,7 +12524,8 @@ function AgentMessageBlock({
|
|
|
12406
12524
|
workspaceAppIcons,
|
|
12407
12525
|
showRawTimelineJson = false,
|
|
12408
12526
|
rawTimelineJsonLabel = "",
|
|
12409
|
-
participantPresentation
|
|
12527
|
+
participantPresentation,
|
|
12528
|
+
showParticipantHeader = true
|
|
12410
12529
|
}) {
|
|
12411
12530
|
"use memo";
|
|
12412
12531
|
const agentHostApi = useOptionalAgentHostApi();
|
|
@@ -12572,7 +12691,7 @@ function AgentMessageBlock({
|
|
|
12572
12691
|
return /* @__PURE__ */ jsx61(Fragment6, { children: content }, message.id);
|
|
12573
12692
|
});
|
|
12574
12693
|
const enabledParticipantPresentation = participantPresentation?.enabled === true ? participantPresentation : null;
|
|
12575
|
-
const showParticipant = enabledParticipantPresentation !== null && row.messages.length > 0;
|
|
12694
|
+
const showParticipant = enabledParticipantPresentation !== null && showParticipantHeader && row.messages.length > 0;
|
|
12576
12695
|
return /* @__PURE__ */ jsxs43(
|
|
12577
12696
|
"div",
|
|
12578
12697
|
{
|
|
@@ -13723,6 +13842,7 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
|
|
|
13723
13842
|
workspaceAppIcons,
|
|
13724
13843
|
showRawTimelineJson = false,
|
|
13725
13844
|
participantPresentation,
|
|
13845
|
+
showParticipantHeader,
|
|
13726
13846
|
toolGroupExpanded,
|
|
13727
13847
|
toolGroupExpansionKey,
|
|
13728
13848
|
onToolGroupExpandedChange
|
|
@@ -13770,7 +13890,8 @@ var AgentTranscriptItemView = memo3(function AgentTranscriptItemView2({
|
|
|
13770
13890
|
toolCallsLabel: labels.toolCallsLabel,
|
|
13771
13891
|
showRawTimelineJson,
|
|
13772
13892
|
rawTimelineJsonLabel: labels.rawTimelineJson,
|
|
13773
|
-
participantPresentation
|
|
13893
|
+
participantPresentation,
|
|
13894
|
+
showParticipantHeader
|
|
13774
13895
|
}
|
|
13775
13896
|
);
|
|
13776
13897
|
case "tool-group":
|
|
@@ -13844,6 +13965,34 @@ import { Button as Button2 } from "@tutti-os/ui-system/components";
|
|
|
13844
13965
|
import { ChevronDownIcon } from "@tutti-os/ui-system/icons";
|
|
13845
13966
|
|
|
13846
13967
|
// shared/agentConversation/components/agentTurnWorkSectionModel.ts
|
|
13968
|
+
function findParticipantHeaderRenderKeys(groups, rowKeys, modelByGroupKey) {
|
|
13969
|
+
const headerKeys = /* @__PURE__ */ new Set();
|
|
13970
|
+
for (const group of groups) {
|
|
13971
|
+
const model = modelByGroupKey.get(group.key);
|
|
13972
|
+
const renderedRows = model ? model.collapseEligible ? [
|
|
13973
|
+
...model.leadingRows,
|
|
13974
|
+
...model.sections.flatMap(
|
|
13975
|
+
(section) => section.kind === "visible" ? section.rows : []
|
|
13976
|
+
),
|
|
13977
|
+
...model.sections.flatMap(
|
|
13978
|
+
(section) => section.kind === "work" ? section.rows : []
|
|
13979
|
+
)
|
|
13980
|
+
] : [
|
|
13981
|
+
...model.leadingRows,
|
|
13982
|
+
...model.sections.flatMap((section) => section.rows)
|
|
13983
|
+
] : group.rows;
|
|
13984
|
+
const seenSpeakers = /* @__PURE__ */ new Set();
|
|
13985
|
+
for (const entry of renderedRows) {
|
|
13986
|
+
const row = entry.row;
|
|
13987
|
+
if (row.kind !== "message" || row.messages.length === 0 || seenSpeakers.has(row.speaker)) {
|
|
13988
|
+
continue;
|
|
13989
|
+
}
|
|
13990
|
+
seenSpeakers.add(row.speaker);
|
|
13991
|
+
headerKeys.add(entry.renderKey ?? rowKeys[entry.rowIndex] ?? row.id);
|
|
13992
|
+
}
|
|
13993
|
+
}
|
|
13994
|
+
return headerKeys;
|
|
13995
|
+
}
|
|
13847
13996
|
function resolveAgentTurnTiming(turn, isActiveTurn, submittedAtUnixMs) {
|
|
13848
13997
|
if (!turn || !Number.isFinite(turn.startedAtUnixMs)) {
|
|
13849
13998
|
return null;
|
|
@@ -14387,7 +14536,7 @@ import {
|
|
|
14387
14536
|
} from "react";
|
|
14388
14537
|
|
|
14389
14538
|
// shared/agentConversation/components/agentTranscriptModel.ts
|
|
14390
|
-
import { useLayoutEffect as useLayoutEffect2, useRef as useRef9 } from "react";
|
|
14539
|
+
import { useLayoutEffect as useLayoutEffect2, useMemo as useMemo7, useRef as useRef9 } from "react";
|
|
14391
14540
|
function useEnteringTranscriptRows(rowKeys) {
|
|
14392
14541
|
const previousKeysRef = useRef9(null);
|
|
14393
14542
|
const previousKeys = previousKeysRef.current;
|
|
@@ -14567,6 +14716,12 @@ function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
|
14567
14716
|
result.push(...pendingToolRows);
|
|
14568
14717
|
return result;
|
|
14569
14718
|
}
|
|
14719
|
+
function useAgentTranscriptDisplayRows(rows, participantHeadersEnabled) {
|
|
14720
|
+
return useMemo7(() => {
|
|
14721
|
+
const displayRows = participantHeadersEnabled ? attachLeadingToolRowsToFollowingMessages(rows) : rows;
|
|
14722
|
+
return { rows: displayRows, rowKeys: displayRows.map(transcriptRowKey) };
|
|
14723
|
+
}, [rows, participantHeadersEnabled]);
|
|
14724
|
+
}
|
|
14570
14725
|
|
|
14571
14726
|
// shared/agentConversation/components/AgentMessageLocatorRail.tsx
|
|
14572
14727
|
import { jsx as jsx68, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
@@ -15184,12 +15339,12 @@ function useTurnDisclosureMotion() {
|
|
|
15184
15339
|
import {
|
|
15185
15340
|
useCallback as useCallback14,
|
|
15186
15341
|
useImperativeHandle as useImperativeHandle6,
|
|
15187
|
-
useMemo as
|
|
15342
|
+
useMemo as useMemo8,
|
|
15188
15343
|
useRef as useRef12
|
|
15189
15344
|
} from "react";
|
|
15190
15345
|
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
15191
15346
|
function useAgentTranscriptTurnAttachments(input) {
|
|
15192
|
-
const projection =
|
|
15347
|
+
const projection = useMemo8(() => {
|
|
15193
15348
|
const lastGroupIndexByTurnId = /* @__PURE__ */ new Map();
|
|
15194
15349
|
input.turnGroups.forEach((group, groupIndex) => {
|
|
15195
15350
|
if (group.turnId) lastGroupIndexByTurnId.set(group.turnId, groupIndex);
|
|
@@ -15381,21 +15536,21 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15381
15536
|
const virtualizerHostRef = useRef13(null);
|
|
15382
15537
|
const [virtualScrollElement, setVirtualScrollElement] = useState25(null);
|
|
15383
15538
|
const participantHeadersEnabled = participantPresentation?.enabled === true;
|
|
15384
|
-
const transcriptRowSet =
|
|
15385
|
-
|
|
15386
|
-
|
|
15387
|
-
|
|
15539
|
+
const transcriptRowSet = useAgentTranscriptDisplayRows(
|
|
15540
|
+
conversation.rows,
|
|
15541
|
+
participantHeadersEnabled
|
|
15542
|
+
);
|
|
15388
15543
|
const displayRows = transcriptRowSet.rows;
|
|
15389
15544
|
const rowKeys = transcriptRowSet.rowKeys;
|
|
15390
|
-
const turnGroups =
|
|
15545
|
+
const turnGroups = useMemo9(
|
|
15391
15546
|
() => buildAgentTranscriptTurnGroups(displayRows, rowKeys),
|
|
15392
15547
|
[displayRows, rowKeys]
|
|
15393
15548
|
);
|
|
15394
|
-
const turnGroupIndexByRowIndex =
|
|
15549
|
+
const turnGroupIndexByRowIndex = useMemo9(
|
|
15395
15550
|
() => buildTurnGroupIndexByRowIndex(turnGroups),
|
|
15396
15551
|
[turnGroups]
|
|
15397
15552
|
);
|
|
15398
|
-
const userMessageLocatorItems =
|
|
15553
|
+
const userMessageLocatorItems = useMemo9(
|
|
15399
15554
|
() => buildUserMessageLocatorItems(
|
|
15400
15555
|
displayRows,
|
|
15401
15556
|
rowKeys,
|
|
@@ -15418,13 +15573,13 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15418
15573
|
},
|
|
15419
15574
|
[]
|
|
15420
15575
|
);
|
|
15421
|
-
const turnIndexById =
|
|
15576
|
+
const turnIndexById = useMemo9(
|
|
15422
15577
|
() => new Map(
|
|
15423
15578
|
conversation.sourceDetail.turns.map((turn, index) => [turn.id, index])
|
|
15424
15579
|
),
|
|
15425
15580
|
[conversation.sourceDetail.turns]
|
|
15426
15581
|
);
|
|
15427
|
-
const dividerRowIndexes =
|
|
15582
|
+
const dividerRowIndexes = useMemo9(
|
|
15428
15583
|
() => participantHeadersEnabled ? findParticipantTurnDividerRowIndexes(displayRows) : findTurnDividerRowIndexes(turnIndexById, displayRows),
|
|
15429
15584
|
[displayRows, turnIndexById, participantHeadersEnabled]
|
|
15430
15585
|
);
|
|
@@ -15450,10 +15605,15 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15450
15605
|
];
|
|
15451
15606
|
})
|
|
15452
15607
|
);
|
|
15608
|
+
const participantHeaderRenderKeys = participantHeadersEnabled ? findParticipantHeaderRenderKeys(
|
|
15609
|
+
turnGroups,
|
|
15610
|
+
rowKeys,
|
|
15611
|
+
turnWorkSectionModelByKey
|
|
15612
|
+
) : null;
|
|
15453
15613
|
const basePath = conversation.sourceDetail.cwd;
|
|
15454
15614
|
const workspaceRoot = conversation.workspaceRoot;
|
|
15455
15615
|
const provider = conversation.activity.agentProvider;
|
|
15456
|
-
const shouldVirtualize =
|
|
15616
|
+
const shouldVirtualize = useMemo9(
|
|
15457
15617
|
() => assessAgentTranscriptComplexity(turnGroups).shouldVirtualize,
|
|
15458
15618
|
[turnGroups]
|
|
15459
15619
|
);
|
|
@@ -15540,6 +15700,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15540
15700
|
workspaceAppIcons,
|
|
15541
15701
|
showRawTimelineJson,
|
|
15542
15702
|
participantPresentation,
|
|
15703
|
+
showParticipantHeader: participantHeaderRenderKeys?.has(rowKey) ?? false,
|
|
15543
15704
|
toolGroupExpanded: row.kind === "tool-group" ? expandedToolRows[rowKey] === true : void 0,
|
|
15544
15705
|
toolGroupExpansionKey: row.kind === "tool-group" ? rowKey : void 0,
|
|
15545
15706
|
onToolGroupExpandedChange: handleToolGroupExpandedChange
|
|
@@ -15715,14 +15876,14 @@ var AgentConversationFlow = memo5(function AgentConversationFlow2({
|
|
|
15715
15876
|
});
|
|
15716
15877
|
|
|
15717
15878
|
// shared/agentConversation/projection/useProjectedAgentConversation.ts
|
|
15718
|
-
import { useMemo as
|
|
15879
|
+
import { useMemo as useMemo10, useRef as useRef14 } from "react";
|
|
15719
15880
|
function useProjectedAgentConversation({
|
|
15720
15881
|
conversation,
|
|
15721
15882
|
detail,
|
|
15722
15883
|
avoidGroupingEdits = false
|
|
15723
15884
|
}) {
|
|
15724
15885
|
const previousConversationRef = useRef14(null);
|
|
15725
|
-
return
|
|
15886
|
+
return useMemo10(() => {
|
|
15726
15887
|
if (!conversation && !detail) {
|
|
15727
15888
|
previousConversationRef.current = null;
|
|
15728
15889
|
return null;
|
|
@@ -15781,4 +15942,4 @@ export {
|
|
|
15781
15942
|
AgentConversationFlow,
|
|
15782
15943
|
useProjectedAgentConversation
|
|
15783
15944
|
};
|
|
15784
|
-
//# sourceMappingURL=chunk-
|
|
15945
|
+
//# sourceMappingURL=chunk-PZWBLTYH.js.map
|