@tutti-os/agent-gui 0.0.208 → 0.0.210

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 CHANGED
@@ -102,6 +102,15 @@ accepted for host capabilities that are not agent activity data:
102
102
  AgentGUI has no host-API activity fallback. A host must inject the runtime and
103
103
  the grouped `AgentGUINodeProps` responsibility objects.
104
104
 
105
+ ## Reference Picker Error Recovery
106
+
107
+ Hosts may provide `workspace.resolveReferenceContentErrorAction` to map a
108
+ reference-source content error to a labeled recovery action. AgentGUI passes
109
+ the resolver to the shared `ReferenceSourcePicker`; the picker renders the
110
+ action in its centered error state and retries the failed browse or search when
111
+ the user activates it. Hosts should return an action only for errors they can
112
+ recover interactively, such as requesting filesystem authorization again.
113
+
105
114
  ## Standalone Conversation Participant Presentation
106
115
 
107
116
  The `@tutti-os/agent-gui/agent-conversation` entrypoint exposes one optional,
@@ -10,6 +10,7 @@ import { A as AgentContextMentionItem } from './agentFileMentionContracts-B0yQiz
10
10
  import { A as AgentGuiI18nLocale } from './runtime-Dwf44VKc.js';
11
11
  import { WorkspaceFileEntry } from '@tutti-os/workspace-file-manager/services';
12
12
  import { ReferenceSourceAggregator } from '@tutti-os/workspace-file-reference/core';
13
+ import { ReferenceSourcePickerProps } from '@tutti-os/workspace-file-reference/ui';
13
14
  import { b as AgentConversationPromptVM, g as WorkspaceLinkAction } from './workspaceLinkActions-COfr61YO.js';
14
15
  import { WorkspaceUserProjectI18nRuntime } from '@tutti-os/workspace-user-project/i18n';
15
16
  import { WorkspaceUserProjectSelectChangeAction } from '@tutti-os/workspace-user-project/ui';
@@ -1458,6 +1459,7 @@ interface AgentGUINodeWorkspace {
1458
1459
  promptAssetLimit?: number | null;
1459
1460
  projectDirectorySourceAggregator?: ReferenceSourceAggregator | null;
1460
1461
  referenceSourceAggregator?: ReferenceSourceAggregator | null;
1462
+ resolveReferenceContentErrorAction?: ReferenceSourcePickerProps["resolveContentErrorAction"];
1461
1463
  resolveReferenceEntryIconUrl?: (entry: WorkspaceFileEntry) => Promise<string | null | undefined>;
1462
1464
  resolveMentionReferenceTarget?: AgentMentionReferenceTargetResolver | null;
1463
1465
  resolveReferenceInitialTarget?: AgentWorkspaceReferenceInitialTargetResolver | null;
package/dist/agent-gui.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AgentGUI
3
- } from "./chunk-RTKIOE4R.js";
3
+ } from "./chunk-Y6M27YYS.js";
4
4
  import "./chunk-LB4AGT7B.js";
5
5
  import "./chunk-A4WCTHWS.js";
6
6
  import "./chunk-DKRX5IZS.js";
@@ -41596,6 +41596,7 @@ function AgentGUIReferencePickerSurface({
41596
41596
  isNodeSelectable,
41597
41597
  open,
41598
41598
  purpose,
41599
+ resolveContentErrorAction,
41599
41600
  resolveEntryIconUrl,
41600
41601
  workspaceId,
41601
41602
  onClose,
@@ -41612,6 +41613,7 @@ function AgentGUIReferencePickerSurface({
41612
41613
  fileManagerCopy: fileManagerCopy ?? void 0,
41613
41614
  open,
41614
41615
  purpose,
41616
+ resolveContentErrorAction,
41615
41617
  resolveEntryIconUrl,
41616
41618
  workspaceId,
41617
41619
  onClose,
@@ -42308,6 +42310,7 @@ function AgentGUINodeView({
42308
42310
  onRequestGitBranches = null,
42309
42311
  projectDirectorySourceAggregator = null,
42310
42312
  referenceSourceAggregator = null,
42313
+ resolveReferenceContentErrorAction,
42311
42314
  resolveWorkspaceReferenceEntryIconUrl,
42312
42315
  resolveMentionReferenceTarget = null,
42313
42316
  resolveWorkspaceReferenceInitialTarget = null,
@@ -42876,6 +42879,7 @@ function AgentGUINodeView({
42876
42879
  isNodeSelectable: isWorkspaceReferencePickerNodeSelectable,
42877
42880
  open: workspaceReferencePickerOpen,
42878
42881
  purpose: workspaceReferencePickerPurpose,
42882
+ resolveContentErrorAction: resolveReferenceContentErrorAction,
42879
42883
  resolveEntryIconUrl: resolveWorkspaceReferenceEntryIconUrl,
42880
42884
  workspaceId: viewModel.shell.workspaceId,
42881
42885
  onClose: closeWorkspaceReferencePicker,
@@ -43164,7 +43168,7 @@ function areAgentGUINodePropsEqual(previous, next) {
43164
43168
  const pc = previous.hostCapabilities, nc = next.hostCapabilities;
43165
43169
  const pa = previous.hostActions, na = next.hostActions;
43166
43170
  const ps = previous.renderSlots, ns = next.renderSlots;
43167
- 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.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && 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.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && 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.targetConnectionSource === nc.targetConnectionSource && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && 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.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && 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 && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
43171
+ 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.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceContentErrorAction === nw.resolveReferenceContentErrorAction && 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.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && 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.targetConnectionSource === nc.targetConnectionSource && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && 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.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && 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 && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
43168
43172
  }
43169
43173
 
43170
43174
  // agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
@@ -44415,6 +44419,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
44415
44419
  promptAssetLimit = null,
44416
44420
  projectDirectorySourceAggregator = null,
44417
44421
  referenceSourceAggregator = null,
44422
+ resolveReferenceContentErrorAction: resolveWorkspaceReferenceContentErrorAction,
44418
44423
  resolveReferenceEntryIconUrl: resolveWorkspaceReferenceEntryIconUrl,
44419
44424
  resolveMentionReferenceTarget = null,
44420
44425
  resolveReferenceInitialTarget: resolveWorkspaceReferenceInitialTarget = null,
@@ -44832,6 +44837,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
44832
44837
  selectProjectDirectory,
44833
44838
  projectDirectorySourceAggregator,
44834
44839
  referenceSourceAggregator,
44840
+ resolveReferenceContentErrorAction: resolveWorkspaceReferenceContentErrorAction,
44835
44841
  resolveWorkspaceReferenceEntryIconUrl,
44836
44842
  resolveMentionReferenceTarget,
44837
44843
  resolveWorkspaceReferenceInitialTarget,
@@ -44952,4 +44958,4 @@ export {
44952
44958
  AgentHandoffMenu,
44953
44959
  AgentGUI
44954
44960
  };
44955
- //# sourceMappingURL=chunk-RTKIOE4R.js.map
44961
+ //# sourceMappingURL=chunk-Y6M27YYS.js.map