@tutti-os/agent-gui 0.0.218 → 0.0.220
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/agent-conversation/index.js +1 -1
- package/dist/agent-gui.js +2 -2
- package/dist/app/renderer/agentactivity.css +28 -5
- package/dist/{chunk-PZWBLTYH.js → chunk-6SYYX63E.js} +55 -30
- package/dist/chunk-6SYYX63E.js.map +1 -0
- package/dist/{chunk-OB7GGK6S.js → chunk-DBM4HFIU.js} +18 -20
- package/dist/{chunk-OB7GGK6S.js.map → chunk-DBM4HFIU.js.map} +1 -1
- package/dist/index.js +2 -2
- package/package.json +14 -14
- package/dist/chunk-PZWBLTYH.js.map +0 -1
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
reconcileProjectedAgentConversationVM,
|
|
8
8
|
serializeAgentConversationForClipboard,
|
|
9
9
|
useProjectedAgentConversation
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-6SYYX63E.js";
|
|
11
11
|
import "../chunk-F6J3LJXK.js";
|
|
12
12
|
import "../chunk-Z35E22WS.js";
|
|
13
13
|
import "../chunk-LQMIEH4C.js";
|
package/dist/agent-gui.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentGUI
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DBM4HFIU.js";
|
|
4
4
|
import "./chunk-LB4AGT7B.js";
|
|
5
5
|
import "./chunk-A4WCTHWS.js";
|
|
6
6
|
import "./chunk-7V5XYXKB.js";
|
|
@@ -11,7 +11,7 @@ import "./chunk-MGSRWYRN.js";
|
|
|
11
11
|
import "./chunk-CBMWHQ7P.js";
|
|
12
12
|
import "./chunk-KZIW5CCW.js";
|
|
13
13
|
import "./chunk-EVQ4JY3N.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-6SYYX63E.js";
|
|
15
15
|
import "./chunk-F6J3LJXK.js";
|
|
16
16
|
import "./chunk-Z35E22WS.js";
|
|
17
17
|
import "./chunk-LQMIEH4C.js";
|
|
@@ -3165,6 +3165,12 @@ aside.workspace-agents-status-panel
|
|
|
3165
3165
|
color: var(--tutti-purple);
|
|
3166
3166
|
}
|
|
3167
3167
|
|
|
3168
|
+
/* The Tutti intensity chip is a non-button-like indicator: keep it flat on
|
|
3169
|
+
hover instead of picking up the goal-actions button hover background. */
|
|
3170
|
+
.agent-gui-chrome__goal-actions button[data-agent-tutti-tier]:hover {
|
|
3171
|
+
background: transparent;
|
|
3172
|
+
}
|
|
3173
|
+
|
|
3168
3174
|
.agent-gui-chrome__composer-disclosure {
|
|
3169
3175
|
display: grid;
|
|
3170
3176
|
min-width: 0;
|
|
@@ -9141,16 +9147,25 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
9141
9147
|
min-width: 0;
|
|
9142
9148
|
}
|
|
9143
9149
|
|
|
9144
|
-
.agent-gui-node__composer-menu-trigger[data-agent-plan-mode-badge="true"]
|
|
9150
|
+
.agent-gui-node__composer-menu-trigger[data-agent-plan-mode-badge="true"],
|
|
9151
|
+
.agent-gui-node__composer-menu-trigger[data-agent-plan-mode-badge="true"]:hover:not(
|
|
9152
|
+
:disabled
|
|
9153
|
+
) {
|
|
9145
9154
|
color: var(--state-warning);
|
|
9146
9155
|
}
|
|
9147
9156
|
|
|
9148
|
-
.agent-gui-node__composer-menu-trigger[data-agent-goal-badge="true"]
|
|
9157
|
+
.agent-gui-node__composer-menu-trigger[data-agent-goal-badge="true"],
|
|
9158
|
+
.agent-gui-node__composer-menu-trigger[data-agent-goal-badge="true"]:hover:not(
|
|
9159
|
+
:disabled
|
|
9160
|
+
) {
|
|
9149
9161
|
color: var(--tutti-purple);
|
|
9150
9162
|
}
|
|
9151
9163
|
|
|
9152
9164
|
/* Active Tutti Mode chip: icon (bg-current) and label both go tutti-purple. */
|
|
9153
|
-
.agent-gui-node__composer-menu-trigger[data-agent-tutti-mode-active="true"]
|
|
9165
|
+
.agent-gui-node__composer-menu-trigger[data-agent-tutti-mode-active="true"],
|
|
9166
|
+
.agent-gui-node__composer-menu-trigger[data-agent-tutti-mode-active="true"]:hover:not(
|
|
9167
|
+
:disabled
|
|
9168
|
+
) {
|
|
9154
9169
|
color: var(--tutti-purple);
|
|
9155
9170
|
}
|
|
9156
9171
|
.agent-gui-node__composer-menu-trigger:hover:not(:disabled) {
|
|
@@ -10865,8 +10880,16 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
10865
10880
|
top: 50%;
|
|
10866
10881
|
left: 0;
|
|
10867
10882
|
width: max(0px, var(--agent-gui-star-stream-width, 0px));
|
|
10868
|
-
|
|
10869
|
-
|
|
10883
|
+
/* Match the slider track box (h-5 = 1.25rem). The Radix thumb is
|
|
10884
|
+
absolutely positioned, so the slider root -- and therefore this
|
|
10885
|
+
overlay's positioning parent -- is exactly the track height;
|
|
10886
|
+
centering on it keeps stars and their glow clipped to the track
|
|
10887
|
+
instead of spilling above and below it. */
|
|
10888
|
+
height: 1.25rem;
|
|
10889
|
+
transform: translateY(-50%);
|
|
10890
|
+
/* Mirror the slider track's rounded-full so the clipped star layer
|
|
10891
|
+
shares the same capsule silhouette as the gradient track beneath it. */
|
|
10892
|
+
border-radius: 9999px;
|
|
10870
10893
|
overflow: hidden;
|
|
10871
10894
|
pointer-events: none;
|
|
10872
10895
|
}
|
|
@@ -13965,33 +13965,48 @@ import { Button as Button2 } from "@tutti-os/ui-system/components";
|
|
|
13965
13965
|
import { ChevronDownIcon } from "@tutti-os/ui-system/icons";
|
|
13966
13966
|
|
|
13967
13967
|
// shared/agentConversation/components/agentTurnWorkSectionModel.ts
|
|
13968
|
-
function findParticipantHeaderRenderKeys(groups, rowKeys, modelByGroupKey) {
|
|
13969
|
-
const
|
|
13968
|
+
function findParticipantHeaderRenderKeys(groups, rowKeys, modelByGroupKey, participantTurnIndexByRowIndex) {
|
|
13969
|
+
const headerCandidateByTurn = /* @__PURE__ */ new Map();
|
|
13970
13970
|
for (const group of groups) {
|
|
13971
13971
|
const model = modelByGroupKey.get(group.key);
|
|
13972
|
-
const renderedRows = model ?
|
|
13973
|
-
...model.leadingRows
|
|
13974
|
-
|
|
13975
|
-
|
|
13976
|
-
),
|
|
13972
|
+
const renderedRows = model ? [
|
|
13973
|
+
...model.leadingRows.map((entry) => ({
|
|
13974
|
+
entry,
|
|
13975
|
+
visibilityPriority: 0
|
|
13976
|
+
})),
|
|
13977
13977
|
...model.sections.flatMap(
|
|
13978
|
-
(section) => section.
|
|
13978
|
+
(section) => section.rows.map((entry) => ({
|
|
13979
|
+
entry,
|
|
13980
|
+
visibilityPriority: model.collapseEligible && section.kind === "work" ? 1 : 0
|
|
13981
|
+
}))
|
|
13979
13982
|
)
|
|
13980
|
-
] :
|
|
13981
|
-
|
|
13982
|
-
...model.sections.flatMap((section) => section.rows)
|
|
13983
|
-
] : group.rows;
|
|
13984
|
-
const seenSpeakers = /* @__PURE__ */ new Set();
|
|
13985
|
-
for (const entry of renderedRows) {
|
|
13983
|
+
] : group.rows.map((entry) => ({ entry, visibilityPriority: 0 }));
|
|
13984
|
+
for (const { entry, visibilityPriority } of renderedRows) {
|
|
13986
13985
|
const row = entry.row;
|
|
13987
|
-
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) {
|
|
13988
13997
|
continue;
|
|
13989
13998
|
}
|
|
13990
|
-
|
|
13991
|
-
|
|
13999
|
+
candidateBySpeaker.set(row.speaker, {
|
|
14000
|
+
renderKey: entry.renderKey ?? rowKeys[entry.rowIndex] ?? row.id,
|
|
14001
|
+
visibilityPriority
|
|
14002
|
+
});
|
|
13992
14003
|
}
|
|
13993
14004
|
}
|
|
13994
|
-
return
|
|
14005
|
+
return new Set(
|
|
14006
|
+
[...headerCandidateByTurn.values()].flatMap(
|
|
14007
|
+
(candidateBySpeaker) => [...candidateBySpeaker.values()].map((candidate) => candidate.renderKey)
|
|
14008
|
+
)
|
|
14009
|
+
);
|
|
13995
14010
|
}
|
|
13996
14011
|
function resolveAgentTurnTiming(turn, isActiveTurn, submittedAtUnixMs) {
|
|
13997
14012
|
if (!turn || !Number.isFinite(turn.startedAtUnixMs)) {
|
|
@@ -14675,14 +14690,21 @@ function findTurnDividerRowIndexes(turnIndexById, rows) {
|
|
|
14675
14690
|
});
|
|
14676
14691
|
return dividerRowIndexes;
|
|
14677
14692
|
}
|
|
14678
|
-
function
|
|
14693
|
+
function buildAgentParticipantTurnProjection(rows) {
|
|
14679
14694
|
const dividerRowIndexes = /* @__PURE__ */ new Set();
|
|
14695
|
+
const turnIndexByRowIndex = /* @__PURE__ */ new Map();
|
|
14696
|
+
let turnIndex = 0;
|
|
14680
14697
|
rows.forEach((row, rowIndex) => {
|
|
14681
14698
|
if (rowIndex > 0 && row.kind === "message" && row.speaker === "user") {
|
|
14699
|
+
turnIndex += 1;
|
|
14682
14700
|
dividerRowIndexes.add(rowIndex);
|
|
14683
14701
|
}
|
|
14702
|
+
turnIndexByRowIndex.set(rowIndex, turnIndex);
|
|
14684
14703
|
});
|
|
14685
|
-
return
|
|
14704
|
+
return {
|
|
14705
|
+
dividerRowIndexes,
|
|
14706
|
+
turnIndexByRowIndex
|
|
14707
|
+
};
|
|
14686
14708
|
}
|
|
14687
14709
|
function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
14688
14710
|
const result = [];
|
|
@@ -14696,10 +14718,7 @@ function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
|
14696
14718
|
if (pendingToolRows.length > 0) {
|
|
14697
14719
|
result.push({
|
|
14698
14720
|
...row,
|
|
14699
|
-
leadingToolRows: [
|
|
14700
|
-
...row.leadingToolRows ?? [],
|
|
14701
|
-
...pendingToolRows
|
|
14702
|
-
]
|
|
14721
|
+
leadingToolRows: [...row.leadingToolRows ?? [], ...pendingToolRows]
|
|
14703
14722
|
});
|
|
14704
14723
|
pendingToolRows = [];
|
|
14705
14724
|
continue;
|
|
@@ -14719,7 +14738,11 @@ function attachLeadingToolRowsToFollowingMessages(rows) {
|
|
|
14719
14738
|
function useAgentTranscriptDisplayRows(rows, participantHeadersEnabled) {
|
|
14720
14739
|
return useMemo7(() => {
|
|
14721
14740
|
const displayRows = participantHeadersEnabled ? attachLeadingToolRowsToFollowingMessages(rows) : rows;
|
|
14722
|
-
return {
|
|
14741
|
+
return {
|
|
14742
|
+
rows: displayRows,
|
|
14743
|
+
rowKeys: displayRows.map(transcriptRowKey),
|
|
14744
|
+
participantTurnProjection: participantHeadersEnabled ? buildAgentParticipantTurnProjection(displayRows) : null
|
|
14745
|
+
};
|
|
14723
14746
|
}, [rows, participantHeadersEnabled]);
|
|
14724
14747
|
}
|
|
14725
14748
|
|
|
@@ -15542,6 +15565,7 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15542
15565
|
);
|
|
15543
15566
|
const displayRows = transcriptRowSet.rows;
|
|
15544
15567
|
const rowKeys = transcriptRowSet.rowKeys;
|
|
15568
|
+
const participantTurnProjection = transcriptRowSet.participantTurnProjection;
|
|
15545
15569
|
const turnGroups = useMemo9(
|
|
15546
15570
|
() => buildAgentTranscriptTurnGroups(displayRows, rowKeys),
|
|
15547
15571
|
[displayRows, rowKeys]
|
|
@@ -15580,8 +15604,8 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15580
15604
|
[conversation.sourceDetail.turns]
|
|
15581
15605
|
);
|
|
15582
15606
|
const dividerRowIndexes = useMemo9(
|
|
15583
|
-
() =>
|
|
15584
|
-
[displayRows, turnIndexById,
|
|
15607
|
+
() => participantTurnProjection ? participantTurnProjection.dividerRowIndexes : findTurnDividerRowIndexes(turnIndexById, displayRows),
|
|
15608
|
+
[displayRows, turnIndexById, participantTurnProjection]
|
|
15585
15609
|
);
|
|
15586
15610
|
const canonicalTurnById = new Map(
|
|
15587
15611
|
(conversation.sourceDetail.sessionTurns ?? []).map((turn) => [
|
|
@@ -15605,10 +15629,11 @@ var AgentTranscriptView = memo4(function AgentTranscriptView2({
|
|
|
15605
15629
|
];
|
|
15606
15630
|
})
|
|
15607
15631
|
);
|
|
15608
|
-
const participantHeaderRenderKeys =
|
|
15632
|
+
const participantHeaderRenderKeys = participantTurnProjection ? findParticipantHeaderRenderKeys(
|
|
15609
15633
|
turnGroups,
|
|
15610
15634
|
rowKeys,
|
|
15611
|
-
turnWorkSectionModelByKey
|
|
15635
|
+
turnWorkSectionModelByKey,
|
|
15636
|
+
participantTurnProjection.turnIndexByRowIndex
|
|
15612
15637
|
) : null;
|
|
15613
15638
|
const basePath = conversation.sourceDetail.cwd;
|
|
15614
15639
|
const workspaceRoot = conversation.workspaceRoot;
|
|
@@ -15942,4 +15967,4 @@ export {
|
|
|
15942
15967
|
AgentConversationFlow,
|
|
15943
15968
|
useProjectedAgentConversation
|
|
15944
15969
|
};
|
|
15945
|
-
//# sourceMappingURL=chunk-
|
|
15970
|
+
//# sourceMappingURL=chunk-6SYYX63E.js.map
|