@tutti-os/agent-gui 0.0.217 → 0.0.219
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/{AgentRichTextReadonly-WZHUIARR.js → AgentRichTextReadonly-NBYQHR6U.js} +5 -5
- package/dist/agent-conversation/index.js +6 -6
- package/dist/agent-gui.js +13 -13
- package/dist/agent-message-center/index.js +5 -5
- package/dist/app/renderer/agentactivity.css +28 -5
- 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-M6HTOCQK.js → chunk-3X5VDG6T.js} +2 -2
- package/dist/{chunk-GDLM6FLK.js → chunk-6SYYX63E.js} +210 -67
- package/dist/chunk-6SYYX63E.js.map +1 -0
- package/dist/{chunk-O4QFGCLU.js → chunk-7V5XYXKB.js} +4 -4
- package/dist/chunk-BCBB4HOV.js +56 -0
- package/dist/chunk-DBM4HFIU.js +44532 -0
- package/dist/{chunk-TKECUCUW.js.map → chunk-DBM4HFIU.js.map} +1 -1
- package/dist/{chunk-NXQGAXIE.js → chunk-F6J3LJXK.js} +2 -2
- package/dist/{chunk-44OCOBJS.js → chunk-KRITI65C.js} +4 -4
- package/dist/{chunk-FS7EMOVD.js → chunk-KZIW5CCW.js} +2 -2
- package/dist/{chunk-G7DS23D4.js → chunk-PPA2OB2H.js} +2 -2
- package/dist/chunk-SEHJINGH.js +150 -0
- package/dist/{chunk-JQOQETPN.js → chunk-SWO67UWQ.js} +2 -2
- package/dist/{chunk-G2KRK7Z5.js → chunk-UC2QN7FK.js} +2 -2
- package/dist/{chunk-PPAV2TB4.js → chunk-Z35E22WS.js} +2 -2
- package/dist/context-mention-palette/index.js +6 -6
- package/dist/dock-icons.js +2 -2
- package/dist/index.js +13 -13
- package/dist/mention-search.js +4 -4
- package/dist/provider-icons.js +1 -1
- package/dist/workbench/contribution.js +3 -3
- package/dist/workbench/index.js +3 -3
- package/package.json +17 -17
- package/dist/chunk-GDLM6FLK.js.map +0 -1
- package/dist/chunk-N2M4B3G3.js +0 -56
- package/dist/chunk-QNE2ZPPV.js +0 -150
- package/dist/chunk-TKECUCUW.js +0 -44529
- /package/dist/{AgentRichTextReadonly-WZHUIARR.js.map → AgentRichTextReadonly-NBYQHR6U.js.map} +0 -0
- /package/dist/{chunk-M6HTOCQK.js.map → chunk-3X5VDG6T.js.map} +0 -0
- /package/dist/{chunk-O4QFGCLU.js.map → chunk-7V5XYXKB.js.map} +0 -0
- /package/dist/{chunk-N2M4B3G3.js.map → chunk-BCBB4HOV.js.map} +0 -0
- /package/dist/{chunk-NXQGAXIE.js.map → chunk-F6J3LJXK.js.map} +0 -0
- /package/dist/{chunk-44OCOBJS.js.map → chunk-KRITI65C.js.map} +0 -0
- /package/dist/{chunk-FS7EMOVD.js.map → chunk-KZIW5CCW.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-JQOQETPN.js.map → chunk-SWO67UWQ.js.map} +0 -0
- /package/dist/{chunk-G2KRK7Z5.js.map → chunk-UC2QN7FK.js.map} +0 -0
- /package/dist/{chunk-PPAV2TB4.js.map → chunk-Z35E22WS.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
AgentRichTextReadonly,
|
|
3
3
|
promptForProviderSkills,
|
|
4
4
|
skillTriggerForPrefix
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-F6J3LJXK.js";
|
|
6
6
|
import {
|
|
7
7
|
AgentGUIConversation_styles_default,
|
|
8
8
|
AgentMessageMarkdown,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolveWorkspaceFileLinkAction,
|
|
19
19
|
resolveWorkspaceFilePathCandidate,
|
|
20
20
|
resolveWorkspaceLinkAction
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-Z35E22WS.js";
|
|
22
22
|
import {
|
|
23
23
|
cn
|
|
24
24
|
} from "./chunk-LQMIEH4C.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
agentPromptFileBlocks,
|
|
38
38
|
agentPromptPastedTextBlocks,
|
|
39
39
|
materializeAgentComposerFileMentions
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-SWO67UWQ.js";
|
|
41
41
|
import {
|
|
42
42
|
extractImageGenerationPreview,
|
|
43
43
|
isImageGenerationToolCall,
|
|
@@ -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) {
|
|
@@ -13847,33 +13965,48 @@ import { Button as Button2 } from "@tutti-os/ui-system/components";
|
|
|
13847
13965
|
import { ChevronDownIcon } from "@tutti-os/ui-system/icons";
|
|
13848
13966
|
|
|
13849
13967
|
// shared/agentConversation/components/agentTurnWorkSectionModel.ts
|
|
13850
|
-
function findParticipantHeaderRenderKeys(groups, rowKeys, modelByGroupKey) {
|
|
13851
|
-
const
|
|
13968
|
+
function findParticipantHeaderRenderKeys(groups, rowKeys, modelByGroupKey, participantTurnIndexByRowIndex) {
|
|
13969
|
+
const headerCandidateByTurn = /* @__PURE__ */ new Map();
|
|
13852
13970
|
for (const group of groups) {
|
|
13853
13971
|
const model = modelByGroupKey.get(group.key);
|
|
13854
|
-
const renderedRows = model ?
|
|
13855
|
-
...model.leadingRows
|
|
13856
|
-
|
|
13857
|
-
|
|
13858
|
-
),
|
|
13972
|
+
const renderedRows = model ? [
|
|
13973
|
+
...model.leadingRows.map((entry) => ({
|
|
13974
|
+
entry,
|
|
13975
|
+
visibilityPriority: 0
|
|
13976
|
+
})),
|
|
13859
13977
|
...model.sections.flatMap(
|
|
13860
|
-
(section) => section.
|
|
13978
|
+
(section) => section.rows.map((entry) => ({
|
|
13979
|
+
entry,
|
|
13980
|
+
visibilityPriority: model.collapseEligible && section.kind === "work" ? 1 : 0
|
|
13981
|
+
}))
|
|
13861
13982
|
)
|
|
13862
|
-
] :
|
|
13863
|
-
|
|
13864
|
-
...model.sections.flatMap((section) => section.rows)
|
|
13865
|
-
] : group.rows;
|
|
13866
|
-
const seenSpeakers = /* @__PURE__ */ new Set();
|
|
13867
|
-
for (const entry of renderedRows) {
|
|
13983
|
+
] : group.rows.map((entry) => ({ entry, visibilityPriority: 0 }));
|
|
13984
|
+
for (const { entry, visibilityPriority } of renderedRows) {
|
|
13868
13985
|
const row = entry.row;
|
|
13869
|
-
if (row.kind !== "message" || row.messages.length === 0
|
|
13986
|
+
if (row.kind !== "message" || row.messages.length === 0) {
|
|
13987
|
+
continue;
|
|
13988
|
+
}
|
|
13989
|
+
const participantTurnIndex = participantTurnIndexByRowIndex.get(entry.rowIndex) ?? entry.rowIndex;
|
|
13990
|
+
let candidateBySpeaker = headerCandidateByTurn.get(participantTurnIndex);
|
|
13991
|
+
if (!candidateBySpeaker) {
|
|
13992
|
+
candidateBySpeaker = /* @__PURE__ */ new Map();
|
|
13993
|
+
headerCandidateByTurn.set(participantTurnIndex, candidateBySpeaker);
|
|
13994
|
+
}
|
|
13995
|
+
const currentCandidate = candidateBySpeaker.get(row.speaker);
|
|
13996
|
+
if (currentCandidate && currentCandidate.visibilityPriority <= visibilityPriority) {
|
|
13870
13997
|
continue;
|
|
13871
13998
|
}
|
|
13872
|
-
|
|
13873
|
-
|
|
13999
|
+
candidateBySpeaker.set(row.speaker, {
|
|
14000
|
+
renderKey: entry.renderKey ?? rowKeys[entry.rowIndex] ?? row.id,
|
|
14001
|
+
visibilityPriority
|
|
14002
|
+
});
|
|
13874
14003
|
}
|
|
13875
14004
|
}
|
|
13876
|
-
return
|
|
14005
|
+
return new Set(
|
|
14006
|
+
[...headerCandidateByTurn.values()].flatMap(
|
|
14007
|
+
(candidateBySpeaker) => [...candidateBySpeaker.values()].map((candidate) => candidate.renderKey)
|
|
14008
|
+
)
|
|
14009
|
+
);
|
|
13877
14010
|
}
|
|
13878
14011
|
function resolveAgentTurnTiming(turn, isActiveTurn, submittedAtUnixMs) {
|
|
13879
14012
|
if (!turn || !Number.isFinite(turn.startedAtUnixMs)) {
|
|
@@ -14557,14 +14690,21 @@ function findTurnDividerRowIndexes(turnIndexById, rows) {
|
|
|
14557
14690
|
});
|
|
14558
14691
|
return dividerRowIndexes;
|
|
14559
14692
|
}
|
|
14560
|
-
function
|
|
14693
|
+
function buildAgentParticipantTurnProjection(rows) {
|
|
14561
14694
|
const dividerRowIndexes = /* @__PURE__ */ new Set();
|
|
14695
|
+
const turnIndexByRowIndex = /* @__PURE__ */ new Map();
|
|
14696
|
+
let turnIndex = 0;
|
|
14562
14697
|
rows.forEach((row, rowIndex) => {
|
|
14563
14698
|
if (rowIndex > 0 && row.kind === "message" && row.speaker === "user") {
|
|
14699
|
+
turnIndex += 1;
|
|
14564
14700
|
dividerRowIndexes.add(rowIndex);
|
|
14565
14701
|
}
|
|
14702
|
+
turnIndexByRowIndex.set(rowIndex, turnIndex);
|
|
14566
14703
|
});
|
|
14567
|
-
return
|
|
14704
|
+
return {
|
|
14705
|
+
dividerRowIndexes,
|
|
14706
|
+
turnIndexByRowIndex
|
|
14707
|
+
};
|
|
14568
14708
|
}
|
|
14569
14709
|
function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
14570
14710
|
const result = [];
|
|
@@ -14578,10 +14718,7 @@ function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
|
14578
14718
|
if (pendingToolRows.length > 0) {
|
|
14579
14719
|
result.push({
|
|
14580
14720
|
...row,
|
|
14581
|
-
leadingToolRows: [
|
|
14582
|
-
...row.leadingToolRows ?? [],
|
|
14583
|
-
...pendingToolRows
|
|
14584
|
-
]
|
|
14721
|
+
leadingToolRows: [...row.leadingToolRows ?? [], ...pendingToolRows]
|
|
14585
14722
|
});
|
|
14586
14723
|
pendingToolRows = [];
|
|
14587
14724
|
continue;
|
|
@@ -14601,7 +14738,11 @@ function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
|
14601
14738
|
function useAgentTranscriptDisplayRows(rows, participantHeadersEnabled) {
|
|
14602
14739
|
return useMemo7(() => {
|
|
14603
14740
|
const displayRows = participantHeadersEnabled ? attachLeadingToolRowsToFollowingMessages(rows) : rows;
|
|
14604
|
-
return {
|
|
14741
|
+
return {
|
|
14742
|
+
rows: displayRows,
|
|
14743
|
+
rowKeys: displayRows.map(transcriptRowKey),
|
|
14744
|
+
participantTurnProjection: participantHeadersEnabled ? buildAgentParticipantTurnProjection(displayRows) : null
|
|
14745
|
+
};
|
|
14605
14746
|
}, [rows, participantHeadersEnabled]);
|
|
14606
14747
|
}
|
|
14607
14748
|
|
|
@@ -15424,6 +15565,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15424
15565
|
);
|
|
15425
15566
|
const displayRows = transcriptRowSet.rows;
|
|
15426
15567
|
const rowKeys = transcriptRowSet.rowKeys;
|
|
15568
|
+
const participantTurnProjection = transcriptRowSet.participantTurnProjection;
|
|
15427
15569
|
const turnGroups = useMemo9(
|
|
15428
15570
|
() => buildAgentTranscriptTurnGroups(displayRows, rowKeys),
|
|
15429
15571
|
[displayRows, rowKeys]
|
|
@@ -15462,8 +15604,8 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15462
15604
|
[conversation.sourceDetail.turns]
|
|
15463
15605
|
);
|
|
15464
15606
|
const dividerRowIndexes = useMemo9(
|
|
15465
|
-
() =>
|
|
15466
|
-
[displayRows, turnIndexById,
|
|
15607
|
+
() => participantTurnProjection ? participantTurnProjection.dividerRowIndexes : findTurnDividerRowIndexes(turnIndexById, displayRows),
|
|
15608
|
+
[displayRows, turnIndexById, participantTurnProjection]
|
|
15467
15609
|
);
|
|
15468
15610
|
const canonicalTurnById = new Map(
|
|
15469
15611
|
(conversation.sourceDetail.sessionTurns ?? []).map((turn) => [
|
|
@@ -15487,10 +15629,11 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15487
15629
|
];
|
|
15488
15630
|
})
|
|
15489
15631
|
);
|
|
15490
|
-
const participantHeaderRenderKeys =
|
|
15632
|
+
const participantHeaderRenderKeys = participantTurnProjection ? findParticipantHeaderRenderKeys(
|
|
15491
15633
|
turnGroups,
|
|
15492
15634
|
rowKeys,
|
|
15493
|
-
turnWorkSectionModelByKey
|
|
15635
|
+
turnWorkSectionModelByKey,
|
|
15636
|
+
participantTurnProjection.turnIndexByRowIndex
|
|
15494
15637
|
) : null;
|
|
15495
15638
|
const basePath = conversation.sourceDetail.cwd;
|
|
15496
15639
|
const workspaceRoot = conversation.workspaceRoot;
|
|
@@ -15824,4 +15967,4 @@ export {
|
|
|
15824
15967
|
AgentConversationFlow,
|
|
15825
15968
|
useProjectedAgentConversation
|
|
15826
15969
|
};
|
|
15827
|
-
//# sourceMappingURL=chunk-
|
|
15970
|
+
//# sourceMappingURL=chunk-6SYYX63E.js.map
|