@tutti-os/agent-gui 0.0.90 → 0.0.92
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 +12 -0
- package/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +1 -1
- package/dist/{agentGuiNodeTypes-D4mk1Nr3.d.ts → agentGuiNodeTypes-rGaDqxVR.d.ts} +5 -5
- package/dist/app/renderer/agentactivity.css +63 -21
- package/dist/{chunk-KTXWPKGP.js → chunk-7QHBFRG5.js} +1 -1
- package/dist/chunk-7QHBFRG5.js.map +1 -0
- package/dist/{chunk-P7RX2NSY.js → chunk-M2LWH54R.js} +1 -1
- package/dist/{chunk-P7RX2NSY.js.map → chunk-M2LWH54R.js.map} +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +1002 -562
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +2 -2
- package/dist/{types-BvztUbHf.d.ts → types-PLFZ8SBX.d.ts} +6 -6
- package/dist/workbench/contribution.d.ts +1 -1
- package/dist/workbench/contribution.js +1 -1
- package/dist/workbench/index.d.ts +1 -1
- package/dist/workbench/index.js +1 -1
- package/package.json +12 -12
- package/dist/chunk-KTXWPKGP.js.map +0 -1
package/README.md
CHANGED
|
@@ -131,6 +131,18 @@ directly. With multiple agents, it shows `All` plus the host-ordered agent rail
|
|
|
131
131
|
and empty-home carousel. Hosts may customize the aggregate icon with
|
|
132
132
|
`allAgentsPresentation.iconUrl`.
|
|
133
133
|
|
|
134
|
+
Inside AgentGUI, normalized directory entries use the canonical
|
|
135
|
+
`AgentGUIAgentTarget` / `agentTargets` vocabulary. `provider` is execution
|
|
136
|
+
metadata, not target identity. Rail tiles, the single-agent empty state, and
|
|
137
|
+
the WebGL empty-home carousel all project the same agent-target avatar
|
|
138
|
+
presentation, including the owner badge; renderer-specific DOM and WebGL code
|
|
139
|
+
must not rebuild partial icon-only models.
|
|
140
|
+
|
|
141
|
+
Hosts serving `owner.avatarUrl` from another origin must enable anonymous CORS
|
|
142
|
+
for that asset. The WebGL carousel keeps a local programmatic owner marker when
|
|
143
|
+
the remote image cannot be decoded or uploaded safely, while DOM avatar
|
|
144
|
+
surfaces continue using the same shared presentation.
|
|
145
|
+
|
|
134
146
|
Use `agentsLoading` for directory hydration and `renderAgentsEmpty` for a
|
|
135
147
|
host-specific loaded-empty state. Use `renderAgentUnavailableState` or
|
|
136
148
|
`renderAgentReadinessState` for host-specific availability presentation, and
|
|
@@ -4,11 +4,11 @@ import { W as WorkspaceLinkAction } from '../workspaceLinkActions-DS9LWqzI.js';
|
|
|
4
4
|
import { A as AgentMessageMarkdownWorkspaceAppIcon } from '../AgentMessageMarkdown-DeYPURtF.js';
|
|
5
5
|
import { c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-CfXN_TQ2.js';
|
|
6
6
|
export { B as BuildWorkspaceAgentSessionDetailInput, d as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-CfXN_TQ2.js';
|
|
7
|
-
import { e as AgentGUIProviderSkillOption } from '../agentGuiNodeTypes-
|
|
7
|
+
import { e as AgentGUIProviderSkillOption } from '../agentGuiNodeTypes-rGaDqxVR.js';
|
|
8
8
|
export { W as WorkspaceAgentActivityCard, n as WorkspaceAgentActivitySession, q as WorkspaceAgentActivityTimelineItem } from '../workspaceAgentActivityListViewModel-TXH1VXrk.js';
|
|
9
9
|
import '@tutti-os/workspace-issue-manager/core';
|
|
10
10
|
import '@tutti-os/agent-activity-core';
|
|
11
|
-
import '../types-
|
|
11
|
+
import '../types-PLFZ8SBX.js';
|
|
12
12
|
import '@tutti-os/workspace-user-project/contracts';
|
|
13
13
|
|
|
14
14
|
interface AgentConversationFlowProps {
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
projectAgentConversationVM,
|
|
7
7
|
reconcileProjectedAgentConversationVM,
|
|
8
8
|
useProjectedAgentConversation
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-7QHBFRG5.js";
|
|
10
10
|
import "../chunk-XQUUELKF.js";
|
|
11
11
|
import "../chunk-PSLAWU25.js";
|
|
12
12
|
import "../chunk-KQE5KV2V.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentActivityUsage } from '@tutti-os/agent-activity-core';
|
|
2
|
-
import { k as AgentHostAgentSessionCommand, l as AgentHostAgentSessionComposerSettings, n as AgentHostAgentSessionReasoningEffort, o as AgentHostAgentSessionSpeed, m as AgentHostAgentSessionPermissionConfig, p as AgentHostAgentSessionState,
|
|
2
|
+
import { k as AgentHostAgentSessionCommand, l as AgentHostAgentSessionComposerSettings, n as AgentHostAgentSessionReasoningEffort, o as AgentHostAgentSessionSpeed, m as AgentHostAgentSessionPermissionConfig, p as AgentHostAgentSessionState, h as AgentGUIProvider, s as AgentPromptContentBlock, g as AgentGUINodeData, e as AgentGUIAgentTarget, i as AgentGUIProviderReadinessGate } from './types-PLFZ8SBX.js';
|
|
3
3
|
import { A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult, b as AgentHostDeleteWorkspaceAgentSessionInput, k as AgentHostWorkspaceAgentSessionSummaryInput, j as AgentHostWorkspaceAgentSessionSummary, e as AgentHostWorkspaceAgentListInput, l as AgentHostWorkspaceAgentSnapshot, i as AgentHostWorkspaceAgentSessionMessagesInput, h as AgentHostWorkspaceAgentSessionMessages, p as WorkspaceAgentActivitySyncState } from './workspaceAgentActivityListViewModel-TXH1VXrk.js';
|
|
4
4
|
import { A as AgentApprovalItemVM, a as AgentAskUserQuestionVM, b as AgentConversationPromptVM, c as AgentConversationVM, W as WorkspaceAgentSessionDetailViewModel } from './agentConversationVM-CfXN_TQ2.js';
|
|
5
5
|
import { WorkspaceUserProjectService } from '@tutti-os/workspace-user-project/contracts';
|
|
@@ -604,10 +604,10 @@ interface AgentGUINodeViewModel {
|
|
|
604
604
|
workspacePath?: string | null;
|
|
605
605
|
currentUserId?: string | null;
|
|
606
606
|
data: AgentGUINodeData;
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
607
|
+
selectedAgentTarget: AgentGUIAgentTarget;
|
|
608
|
+
agentTargets: readonly AgentGUIAgentTarget[];
|
|
609
|
+
handoffAgentTargets: readonly AgentGUIAgentTarget[];
|
|
610
|
+
agentTargetsLoading: boolean;
|
|
611
611
|
conversationFilter: AgentGUIConversationFilter;
|
|
612
612
|
conversations: AgentGUIConversationSummary[];
|
|
613
613
|
userProjects: AgentGUIConversationUserProject[];
|
|
@@ -6644,7 +6644,7 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
6644
6644
|
|
|
6645
6645
|
.agent-gui-node__timeline-centered {
|
|
6646
6646
|
display: flex;
|
|
6647
|
-
align-items:
|
|
6647
|
+
align-items: stretch;
|
|
6648
6648
|
justify-content: center;
|
|
6649
6649
|
}
|
|
6650
6650
|
|
|
@@ -8852,6 +8852,9 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
8852
8852
|
}
|
|
8853
8853
|
|
|
8854
8854
|
.agent-gui-node__provider-rail-avatar {
|
|
8855
|
+
--agent-gui-avatar-badge-offset: -4px;
|
|
8856
|
+
--agent-gui-avatar-badge-size: 16px;
|
|
8857
|
+
|
|
8855
8858
|
position: relative;
|
|
8856
8859
|
box-sizing: border-box;
|
|
8857
8860
|
display: grid;
|
|
@@ -8905,23 +8908,34 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
8905
8908
|
object-fit: contain;
|
|
8906
8909
|
}
|
|
8907
8910
|
|
|
8908
|
-
.agent-gui-
|
|
8911
|
+
.agent-gui-node__agent-avatar {
|
|
8912
|
+
position: relative;
|
|
8913
|
+
}
|
|
8914
|
+
|
|
8915
|
+
.agent-gui-node__agent-avatar-image {
|
|
8916
|
+
display: block;
|
|
8917
|
+
width: 100%;
|
|
8918
|
+
height: 100%;
|
|
8919
|
+
object-fit: contain;
|
|
8920
|
+
}
|
|
8921
|
+
|
|
8922
|
+
.agent-gui-node__agent-avatar-badge {
|
|
8909
8923
|
position: absolute;
|
|
8910
|
-
right: -4px;
|
|
8911
|
-
bottom: -4px;
|
|
8924
|
+
right: var(--agent-gui-avatar-badge-offset, -4px);
|
|
8925
|
+
bottom: var(--agent-gui-avatar-badge-offset, -4px);
|
|
8912
8926
|
box-sizing: border-box;
|
|
8913
8927
|
display: grid;
|
|
8914
|
-
width: 16px;
|
|
8915
|
-
height: 16px;
|
|
8928
|
+
width: var(--agent-gui-avatar-badge-size, 16px);
|
|
8929
|
+
height: var(--agent-gui-avatar-badge-size, 16px);
|
|
8916
8930
|
place-items: center;
|
|
8917
8931
|
overflow: hidden;
|
|
8918
|
-
border: 1px solid
|
|
8932
|
+
border: 1px solid var(--background-fronted);
|
|
8919
8933
|
border-radius: 999px;
|
|
8920
|
-
background:
|
|
8934
|
+
background: var(--background-fronted);
|
|
8921
8935
|
pointer-events: none;
|
|
8922
8936
|
}
|
|
8923
8937
|
|
|
8924
|
-
.agent-gui-
|
|
8938
|
+
.agent-gui-node__agent-avatar-badge-image {
|
|
8925
8939
|
width: 100%;
|
|
8926
8940
|
height: 100%;
|
|
8927
8941
|
object-fit: cover;
|
|
@@ -8953,7 +8967,7 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
8953
8967
|
display: flex;
|
|
8954
8968
|
width: 100%;
|
|
8955
8969
|
min-height: 100%;
|
|
8956
|
-
align-items:
|
|
8970
|
+
align-items: flex-start;
|
|
8957
8971
|
justify-content: center;
|
|
8958
8972
|
padding: 24px clamp(32px, 4vw, 48px) 40px;
|
|
8959
8973
|
}
|
|
@@ -8978,12 +8992,44 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
8978
8992
|
slot; keep it centered in the hero column. */
|
|
8979
8993
|
.agent-gui-node__empty-hero-icon-slot:has(
|
|
8980
8994
|
> .agent-gui-node__empty-hero-carousel
|
|
8981
|
-
)
|
|
8995
|
+
),
|
|
8996
|
+
.agent-gui-node__empty-hero-icon-slot[data-carousel-placeholder="true"] {
|
|
8982
8997
|
width: min(400px, 100%);
|
|
8983
|
-
height:
|
|
8998
|
+
height: 112px;
|
|
8999
|
+
}
|
|
9000
|
+
|
|
9001
|
+
.agent-gui-node__empty-hero-carousel-stage {
|
|
9002
|
+
position: relative;
|
|
9003
|
+
width: 100%;
|
|
9004
|
+
min-height: 100%;
|
|
9005
|
+
}
|
|
9006
|
+
|
|
9007
|
+
.agent-gui-node__empty-hero-carousel-layer {
|
|
9008
|
+
position: absolute;
|
|
9009
|
+
z-index: 1;
|
|
9010
|
+
top: 24px;
|
|
9011
|
+
left: 50%;
|
|
9012
|
+
width: min(400px, calc(100% - 64px));
|
|
9013
|
+
transform: translateX(-50%);
|
|
9014
|
+
}
|
|
9015
|
+
|
|
9016
|
+
.agent-gui-node__empty-hero-carousel-placeholder {
|
|
9017
|
+
width: min(400px, 100%);
|
|
9018
|
+
height: 112px;
|
|
9019
|
+
flex: 0 0 auto;
|
|
9020
|
+
}
|
|
9021
|
+
|
|
9022
|
+
/* Keep the overlayed carousel interactive while the ready/gated body below it
|
|
9023
|
+
changes independently. */
|
|
9024
|
+
.agent-gui-node__empty-hero-carousel-layer
|
|
9025
|
+
> .agent-gui-node__empty-hero-carousel {
|
|
9026
|
+
pointer-events: auto;
|
|
8984
9027
|
}
|
|
8985
9028
|
|
|
8986
9029
|
.agent-gui-node__empty-hero-icon-effect {
|
|
9030
|
+
--agent-gui-avatar-badge-offset: -5px;
|
|
9031
|
+
--agent-gui-avatar-badge-size: 18px;
|
|
9032
|
+
|
|
8987
9033
|
display: block;
|
|
8988
9034
|
width: 48px;
|
|
8989
9035
|
height: 48px;
|
|
@@ -9050,7 +9096,7 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
9050
9096
|
}
|
|
9051
9097
|
|
|
9052
9098
|
/* Empty-hero agent carousel ("All" tab): a three.js ring of same-sized agent
|
|
9053
|
-
|
|
9099
|
+
records (see agentGuiHeroCarouselScene.ts). Records farther around the ring
|
|
9054
9100
|
genuinely shrink and fade with perspective; visuals live on the canvas,
|
|
9055
9101
|
while visually-hidden buttons keep the switcher reachable by keyboard,
|
|
9056
9102
|
screen readers, and DOM tests. */
|
|
@@ -9081,13 +9127,7 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
9081
9127
|
the canvas edges), intersected with a vertical band so tiles sinking
|
|
9082
9128
|
down the wheel melt away instead of being cut by the canvas bottom. */
|
|
9083
9129
|
mask-image:
|
|
9084
|
-
linear-gradient(
|
|
9085
|
-
90deg,
|
|
9086
|
-
transparent 12%,
|
|
9087
|
-
#000 36%,
|
|
9088
|
-
#000 64%,
|
|
9089
|
-
transparent 88%
|
|
9090
|
-
),
|
|
9130
|
+
linear-gradient(90deg, transparent 4%, #000 30%, #000 70%, transparent 96%),
|
|
9091
9131
|
linear-gradient(180deg, #000 0%, #000 70%, transparent 96%);
|
|
9092
9132
|
mask-composite: intersect;
|
|
9093
9133
|
}
|
|
@@ -9133,7 +9173,9 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
9133
9173
|
|
|
9134
9174
|
/* Gate gap is 8px; add 16px so the icon-to-title spacing is 24px. */
|
|
9135
9175
|
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-icon-effect,
|
|
9136
|
-
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-carousel
|
|
9176
|
+
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-carousel,
|
|
9177
|
+
.agent-gui-node__empty-provider-gate
|
|
9178
|
+
> .agent-gui-node__empty-hero-carousel-placeholder {
|
|
9137
9179
|
margin-bottom: 16px;
|
|
9138
9180
|
}
|
|
9139
9181
|
|
|
@@ -15505,4 +15505,4 @@ export {
|
|
|
15505
15505
|
AgentConversationFlow,
|
|
15506
15506
|
useProjectedAgentConversation
|
|
15507
15507
|
};
|
|
15508
|
-
//# sourceMappingURL=chunk-
|
|
15508
|
+
//# sourceMappingURL=chunk-7QHBFRG5.js.map
|