@tutti-os/agent-gui 0.0.117 → 0.0.118
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 +5 -0
- package/dist/{AgentGUI-Be6O5di1.d.ts → AgentGUI-B_K2lEDE.d.ts} +9 -1
- package/dist/agent-gui.d.ts +1 -1
- package/dist/agent-gui.js +1 -1
- package/dist/{chunk-7Y3OBABX.js → chunk-AD7EVK67.js} +39 -8
- package/dist/chunk-AD7EVK67.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +12 -12
- package/dist/chunk-7Y3OBABX.js.map +0 -1
package/README.md
CHANGED
|
@@ -227,6 +227,11 @@ use `renderAgentsEmpty` for a host-specific loaded-empty state. Use
|
|
|
227
227
|
`renderAgentReadinessState` for host-specific availability presentation, and
|
|
228
228
|
handle install/login/refresh requests through `onAgentAvailabilityAction`.
|
|
229
229
|
|
|
230
|
+
Hosts that launch handoffs across session-runtime boundaries may also pass
|
|
231
|
+
`handoffAgentDirectory`. Its ready entries populate only the active-conversation
|
|
232
|
+
Handoff menu; the conversation rail, session queries, and empty composer remain
|
|
233
|
+
owned by `agentDirectory`. When omitted, Handoff uses `agentDirectory`.
|
|
234
|
+
|
|
230
235
|
The old public `providerTargets`, `providerRailMode`, provider-target renderers,
|
|
231
236
|
and `defaultProviderTargetId` contract is intentionally unsupported. Workbench
|
|
232
237
|
state hydration performs a one-time read of legacy `providerTargetId` into
|
|
@@ -1006,6 +1006,9 @@ interface AgentGUINodeHostCapabilities {
|
|
|
1006
1006
|
accountMenuState?: AgentGUIAccountMenuState | null;
|
|
1007
1007
|
agentTargets?: readonly AgentGUIAgentTarget[];
|
|
1008
1008
|
agentTargetsLoading?: boolean;
|
|
1009
|
+
/** Launch-only targets for active-conversation handoff. */
|
|
1010
|
+
handoffAgentTargets?: readonly AgentGUIAgentTarget[];
|
|
1011
|
+
handoffAgentTargetsLoading?: boolean;
|
|
1009
1012
|
providerRailAllPresentation?: AgentGUIProviderRailAllPresentation | null;
|
|
1010
1013
|
providerRailMode?: AgentGUIProviderRailMode;
|
|
1011
1014
|
comingSoonProviders?: readonly AgentGUIProvider[];
|
|
@@ -1053,10 +1056,15 @@ interface AgentGUINodeProps {
|
|
|
1053
1056
|
renderSlots: AgentGUINodeRenderSlots;
|
|
1054
1057
|
}
|
|
1055
1058
|
|
|
1056
|
-
type AgentGUIPublicHostCapabilities = Omit<AgentGUINodeProps["hostCapabilities"], "agentTargets" | "agentTargetsLoading" | "providerRailAllPresentation" | "providerRailMode" | "disabledHomeSuggestions">;
|
|
1059
|
+
type AgentGUIPublicHostCapabilities = Omit<AgentGUINodeProps["hostCapabilities"], "agentTargets" | "agentTargetsLoading" | "handoffAgentTargets" | "handoffAgentTargetsLoading" | "providerRailAllPresentation" | "providerRailMode" | "disabledHomeSuggestions">;
|
|
1057
1060
|
type AgentGUIPublicRenderSlots = Omit<AgentGUINodeProps["renderSlots"], "providerRailEmpty">;
|
|
1058
1061
|
interface AgentGUIProps extends Omit<AgentGUINodeProps, "hostCapabilities" | "renderSlots"> {
|
|
1059
1062
|
agentDirectory: AgentGUIAgentDirectorySnapshot;
|
|
1063
|
+
/**
|
|
1064
|
+
* Host-owned launch catalog for conversation handoff. When omitted, handoff
|
|
1065
|
+
* uses `agentDirectory`, preserving the single-runtime host contract.
|
|
1066
|
+
*/
|
|
1067
|
+
handoffAgentDirectory?: AgentGUIAgentDirectorySnapshot;
|
|
1060
1068
|
allAgentsPresentation?: AgentGUIAllAgentsPresentation | null;
|
|
1061
1069
|
renderAgentsEmpty?: AgentGUIAgentsEmptyRenderer;
|
|
1062
1070
|
agentActivityRuntime: AgentActivityRuntime;
|
package/dist/agent-gui.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'react';
|
|
2
2
|
import '@tutti-os/ui-i18n-runtime';
|
|
3
|
-
export { n as AgentGUI, w as AgentGUIProps } from './AgentGUI-
|
|
3
|
+
export { n as AgentGUI, w as AgentGUIProps } from './AgentGUI-B_K2lEDE.js';
|
|
4
4
|
import './agentGuiNodeTypes-C_H3DbXt.js';
|
|
5
5
|
export { l as AgentGUIHomeSuggestionId } from './types-COIp0SYP.js';
|
|
6
6
|
import './runtime-BBNdWgDU.js';
|
package/dist/agent-gui.js
CHANGED
|
@@ -11859,7 +11859,9 @@ function useAgentGUIProviderCatalogSelection(input) {
|
|
|
11859
11859
|
providerRailMode,
|
|
11860
11860
|
providerReadinessGates,
|
|
11861
11861
|
agentTargets,
|
|
11862
|
-
agentTargetsLoading
|
|
11862
|
+
agentTargetsLoading,
|
|
11863
|
+
handoffAgentTargets,
|
|
11864
|
+
handoffAgentTargetsLoading
|
|
11863
11865
|
} = input;
|
|
11864
11866
|
const normalizedComingSoonProviders = useMemo15(
|
|
11865
11867
|
() => comingSoonProviders && comingSoonProviders.length > 0 ? [...comingSoonProviders] : emptyComingSoonProviders,
|
|
@@ -11895,11 +11897,23 @@ function useAgentGUIProviderCatalogSelection(input) {
|
|
|
11895
11897
|
agentTargetsLoading
|
|
11896
11898
|
]);
|
|
11897
11899
|
const shouldUseStaticProviderTargets = !isExactProviderRailMode && !agentTargetsLoading && (agentTargets === void 0 || normalizedExplicitProviderTargets.length === 0);
|
|
11898
|
-
const
|
|
11899
|
-
() =>
|
|
11900
|
+
const normalizedHandoffAgentTargets = useMemo15(
|
|
11901
|
+
() => handoffAgentTargets === void 0 ? normalizedExplicitProviderTargets : normalizeAgentGUIAgentTargets(handoffAgentTargets, {
|
|
11902
|
+
includeDisabledPlaceholders: false,
|
|
11903
|
+
useStaticCatalog: false
|
|
11904
|
+
}),
|
|
11905
|
+
[handoffAgentTargets, normalizedExplicitProviderTargets]
|
|
11906
|
+
);
|
|
11907
|
+
const enabledHandoffAgentTargets = useMemo15(
|
|
11908
|
+
() => (handoffAgentTargets === void 0 ? agentTargetsLoading : handoffAgentTargetsLoading) ? [] : normalizedHandoffAgentTargets.filter(
|
|
11900
11909
|
(target) => target.disabled !== true
|
|
11901
11910
|
),
|
|
11902
|
-
[
|
|
11911
|
+
[
|
|
11912
|
+
agentTargetsLoading,
|
|
11913
|
+
handoffAgentTargets,
|
|
11914
|
+
handoffAgentTargetsLoading,
|
|
11915
|
+
normalizedHandoffAgentTargets
|
|
11916
|
+
]
|
|
11903
11917
|
);
|
|
11904
11918
|
const selectedAgentTarget = useMemo15(
|
|
11905
11919
|
() => resolveAgentGUIAgentTarget({
|
|
@@ -11981,7 +11995,7 @@ function useAgentGUIProviderCatalogSelection(input) {
|
|
|
11981
11995
|
return {
|
|
11982
11996
|
effectiveSelectedProviderTarget,
|
|
11983
11997
|
firstReadyHomeComposerProviderTarget,
|
|
11984
|
-
handoffAgentTargets,
|
|
11998
|
+
handoffAgentTargets: enabledHandoffAgentTargets,
|
|
11985
11999
|
homeComposerTargetOverride,
|
|
11986
12000
|
homeComposerTargetOverrideIsExplicit,
|
|
11987
12001
|
normalizedComingSoonProviders,
|
|
@@ -12643,6 +12657,8 @@ function useAgentGUINodeController({
|
|
|
12643
12657
|
data,
|
|
12644
12658
|
agentTargets,
|
|
12645
12659
|
agentTargetsLoading = false,
|
|
12660
|
+
handoffAgentTargets,
|
|
12661
|
+
handoffAgentTargetsLoading = false,
|
|
12646
12662
|
providerRailMode = "catalog",
|
|
12647
12663
|
comingSoonProviders,
|
|
12648
12664
|
providerReadinessGates = null,
|
|
@@ -12675,7 +12691,9 @@ function useAgentGUINodeController({
|
|
|
12675
12691
|
providerRailMode,
|
|
12676
12692
|
providerReadinessGates,
|
|
12677
12693
|
agentTargets,
|
|
12678
|
-
agentTargetsLoading
|
|
12694
|
+
agentTargetsLoading,
|
|
12695
|
+
handoffAgentTargets,
|
|
12696
|
+
handoffAgentTargetsLoading
|
|
12679
12697
|
});
|
|
12680
12698
|
const {
|
|
12681
12699
|
effectiveSelectedProviderTarget,
|
|
@@ -35397,7 +35415,7 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
35397
35415
|
const pc = previous.hostCapabilities, nc = next.hostCapabilities;
|
|
35398
35416
|
const pa = previous.hostActions, na = next.hostActions;
|
|
35399
35417
|
const ps = previous.renderSlots, ns = next.renderSlots;
|
|
35400
|
-
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveDroppedFileReferences === nw.resolveDroppedFileReferences && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentProbes === nr.agentProbes && pr.onProbeDemandChange === nr.onProbeDemandChange && pr.onProbeRefreshRequest === nr.onProbeRefreshRequest && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.contextMentionProviders === nc.contextMentionProviders && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
35418
|
+
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveDroppedFileReferences === nw.resolveDroppedFileReferences && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentProbes === nr.agentProbes && pr.onProbeDemandChange === nr.onProbeDemandChange && pr.onProbeRefreshRequest === nr.onProbeRefreshRequest && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.contextMentionProviders === nc.contextMentionProviders && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
35401
35419
|
}
|
|
35402
35420
|
|
|
35403
35421
|
// agent-gui/agentGuiNode/AgentGUINode.labels.ts
|
|
@@ -36304,6 +36322,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
36304
36322
|
accountMenuState = null,
|
|
36305
36323
|
agentTargets,
|
|
36306
36324
|
agentTargetsLoading = false,
|
|
36325
|
+
handoffAgentTargets,
|
|
36326
|
+
handoffAgentTargetsLoading = false,
|
|
36307
36327
|
providerRailAllPresentation = null,
|
|
36308
36328
|
providerRailMode = "catalog",
|
|
36309
36329
|
comingSoonProviders,
|
|
@@ -36479,6 +36499,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
36479
36499
|
prefillPromptRequest,
|
|
36480
36500
|
agentTargets,
|
|
36481
36501
|
agentTargetsLoading,
|
|
36502
|
+
handoffAgentTargets,
|
|
36503
|
+
handoffAgentTargetsLoading,
|
|
36482
36504
|
providerRailMode,
|
|
36483
36505
|
comingSoonProviders,
|
|
36484
36506
|
providerReadinessGates,
|
|
@@ -36785,6 +36807,7 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
36785
36807
|
agentActivityRuntime,
|
|
36786
36808
|
agentHostApi,
|
|
36787
36809
|
agentDirectory,
|
|
36810
|
+
handoffAgentDirectory,
|
|
36788
36811
|
allAgentsPresentation = null,
|
|
36789
36812
|
renderAgentsEmpty,
|
|
36790
36813
|
disabled,
|
|
@@ -36793,6 +36816,10 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
36793
36816
|
...props
|
|
36794
36817
|
}) {
|
|
36795
36818
|
const normalizedAgents = normalizeAgentGUIAgents(agentDirectory.agents);
|
|
36819
|
+
const effectiveHandoffAgentDirectory = handoffAgentDirectory ?? agentDirectory;
|
|
36820
|
+
const normalizedHandoffAgents = normalizeAgentGUIAgents(
|
|
36821
|
+
effectiveHandoffAgentDirectory.agents
|
|
36822
|
+
);
|
|
36796
36823
|
const hostCapabilities = props.hostCapabilities;
|
|
36797
36824
|
const renderSlots = props.renderSlots;
|
|
36798
36825
|
const nodeProps = {
|
|
@@ -36801,6 +36828,10 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
36801
36828
|
...hostCapabilities,
|
|
36802
36829
|
agentTargets: projectAgentGUIAgentsToInternalTargets(normalizedAgents),
|
|
36803
36830
|
agentTargetsLoading: agentDirectory.agents.length === 0 && (agentDirectory.status === "idle" || agentDirectory.status === "loading"),
|
|
36831
|
+
handoffAgentTargets: projectAgentGUIAgentsToInternalTargets(
|
|
36832
|
+
normalizedHandoffAgents
|
|
36833
|
+
),
|
|
36834
|
+
handoffAgentTargetsLoading: effectiveHandoffAgentDirectory.agents.length === 0 && (effectiveHandoffAgentDirectory.status === "idle" || effectiveHandoffAgentDirectory.status === "loading"),
|
|
36804
36835
|
disabledHomeSuggestions: disabled,
|
|
36805
36836
|
providerRailAllPresentation: allAgentsPresentation ?? null,
|
|
36806
36837
|
providerRailMode: "exact"
|
|
@@ -36831,4 +36862,4 @@ export {
|
|
|
36831
36862
|
resolveAgentGUIAgentTarget,
|
|
36832
36863
|
AgentGUI
|
|
36833
36864
|
};
|
|
36834
|
-
//# sourceMappingURL=chunk-
|
|
36865
|
+
//# sourceMappingURL=chunk-AD7EVK67.js.map
|