@tutti-os/agent-gui 0.0.4 → 0.0.5

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.
Files changed (50) hide show
  1. package/dist/agent-message-center/index.js +3 -2
  2. package/dist/agent-message-center/index.js.map +1 -1
  3. package/dist/app/renderer/agentactivity.css +7 -0
  4. package/dist/app/renderer/assets/icons/arrow-left-filled.svg +1 -0
  5. package/dist/{chunk-RORLLV27.js → chunk-3735XYFZ.js} +2 -40
  6. package/dist/chunk-3735XYFZ.js.map +1 -0
  7. package/dist/{chunk-IVPB4MLI.js → chunk-6AZ2KF6R.js} +1 -1
  8. package/dist/chunk-6AZ2KF6R.js.map +1 -0
  9. package/dist/{chunk-UKQIGNN3.js → chunk-7ICAFTA2.js} +2 -2
  10. package/dist/{chunk-HSR5DI6O.js → chunk-BHCCGKOP.js} +3 -1
  11. package/dist/chunk-BHCCGKOP.js.map +1 -0
  12. package/dist/{chunk-ZX5PDYAS.js → chunk-C63Z2JWT.js} +8 -10
  13. package/dist/chunk-C63Z2JWT.js.map +1 -0
  14. package/dist/chunk-F55LU7IJ.js +3470 -0
  15. package/dist/chunk-F55LU7IJ.js.map +1 -0
  16. package/dist/{chunk-ZP7P7DYO.js → chunk-GEXHKJK5.js} +6 -47
  17. package/dist/chunk-GEXHKJK5.js.map +1 -0
  18. package/dist/{chunk-UJWUGMWC.js → chunk-GYG57VTA.js} +17 -32
  19. package/dist/{chunk-UJWUGMWC.js.map → chunk-GYG57VTA.js.map} +1 -1
  20. package/dist/{chunk-BABBC24I.js → chunk-LUGELG5V.js} +4 -1
  21. package/dist/chunk-LUGELG5V.js.map +1 -0
  22. package/dist/chunk-ZU3FKYMG.js +47 -0
  23. package/dist/chunk-ZU3FKYMG.js.map +1 -0
  24. package/dist/i18n/index.d.ts +2 -0
  25. package/dist/i18n/index.js +1 -1
  26. package/dist/index.d.ts +2 -11
  27. package/dist/index.js +120 -28
  28. package/dist/index.js.map +1 -1
  29. package/dist/mention-file-presentation.d.ts +2 -1
  30. package/dist/mention-file-presentation.js +1 -1
  31. package/dist/workbench/contribution.js +6 -5
  32. package/dist/workbench/index.d.ts +1 -1
  33. package/dist/workbench/index.js +6 -5
  34. package/dist/workbench/launch.d.ts +1 -7
  35. package/dist/workbench/launch.js +2 -2
  36. package/dist/workbench/state.js +1 -1
  37. package/dist/workbench/types.d.ts +1 -12
  38. package/dist/workbench/types.js +1 -1
  39. package/dist/workspace-agent-generated-files.js +2 -2
  40. package/package.json +10 -10
  41. package/dist/chunk-5Q36BEUM.js +0 -3478
  42. package/dist/chunk-5Q36BEUM.js.map +0 -1
  43. package/dist/chunk-BABBC24I.js.map +0 -1
  44. package/dist/chunk-HSR5DI6O.js.map +0 -1
  45. package/dist/chunk-IVPB4MLI.js.map +0 -1
  46. package/dist/chunk-RORLLV27.js.map +0 -1
  47. package/dist/chunk-ZP7P7DYO.js.map +0 -1
  48. package/dist/chunk-ZX5PDYAS.js.map +0 -1
  49. package/dist/user-avatar-placeholder-WP2373TS.png +0 -0
  50. /package/dist/{chunk-UKQIGNN3.js.map → chunk-7ICAFTA2.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../managedAgentIconAssets.ts"],"sourcesContent":["import claudeRoundedAssetUrl from \"./app/renderer/assets/icons/agents/claude-rounded.png\";\nimport codexRoundedAssetUrl from \"./app/renderer/assets/icons/agents/codex-rounded.png\";\nimport geminiRoundedAssetUrl from \"./app/renderer/assets/icons/agents/gemini-rounded.png\";\nimport hermesRoundedAssetUrl from \"./app/renderer/assets/icons/agents/hermes-rounded.png\";\nimport manageAgentNextopAssetUrl from \"./app/renderer/assets/icons/agents/manage-agent-nextop.png\";\nimport openclawRoundedAssetUrl from \"./app/renderer/assets/icons/agents/openclaw-rounded.png\";\n\nexport const manageAgentClaudeCodeUrl = claudeRoundedAssetUrl;\nexport const manageAgentCodexUrl = codexRoundedAssetUrl;\nexport const manageAgentGeminiUrl = geminiRoundedAssetUrl;\nexport const manageAgentHermesUrl = hermesRoundedAssetUrl;\nexport const manageAgentNextopUrl = manageAgentNextopAssetUrl;\nexport const manageAgentOpenclawUrl = openclawRoundedAssetUrl;\nexport const claudeRoundedUrl = claudeRoundedAssetUrl;\nexport const codexRoundedUrl = codexRoundedAssetUrl;\nexport const geminiRoundedUrl = geminiRoundedAssetUrl;\nexport const hermesRoundedUrl = hermesRoundedAssetUrl;\nexport const nextopDocRoundedUrl = manageAgentNextopAssetUrl;\nexport const openclawRoundedUrl = openclawRoundedAssetUrl;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAOO,IAAM,2BAA2B;AACjC,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAC7B,IAAM,yBAAyB;AAC/B,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AACxB,IAAM,mBAAmB;AACzB,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;","names":[]}
@@ -1454,6 +1454,7 @@ declare const agentGuiI18nResources: {
1454
1454
  readonly taskCompletedCount: "{{count}} completed";
1455
1455
  readonly issueStatusNotStarted: "To run";
1456
1456
  readonly issueStatusRunning: "Running";
1457
+ readonly issueStatusInProgress: "Progress started";
1457
1458
  readonly issueStatusPendingAcceptance: "Pending acceptance";
1458
1459
  readonly issueStatusCompleted: "Completed";
1459
1460
  readonly issueStatusFailed: "Failed";
@@ -3729,6 +3730,7 @@ declare const agentGuiI18nResources: {
3729
3730
  readonly taskCompletedCount: "{{count}} 个已完成";
3730
3731
  readonly issueStatusNotStarted: "未启动";
3731
3732
  readonly issueStatusRunning: "执行中";
3733
+ readonly issueStatusInProgress: "已推进";
3732
3734
  readonly issueStatusPendingAcceptance: "待验收";
3733
3735
  readonly issueStatusCompleted: "已完成";
3734
3736
  readonly issueStatusFailed: "失败";
@@ -6,7 +6,7 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-HSR5DI6O.js";
9
+ } from "../chunk-BHCCGKOP.js";
10
10
  export {
11
11
  AgentGuiI18nProvider,
12
12
  agentGuiI18nModule,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot, AgentActivityCancelSessionInput, AgentActivitySession, AgentActivityCreateSessionInput, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySubmitInteractiveInput, AgentActivitySnapshotListener } from '@tutti-os/agent-activity-core';
1
+ import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot, AgentActivityCancelSessionInput, AgentActivityCancelSessionResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySubmitInteractiveInput, AgentActivitySnapshotListener } from '@tutti-os/agent-activity-core';
2
2
  export { AgentActivityAdapter, AgentActivityController, AgentActivityMessage, AgentActivityNeedsAttentionItem, AgentActivitySnapshot, selectNeedsAttentionCount, selectNeedsAttentionItems } from '@tutti-os/agent-activity-core';
3
3
  import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentSession, f as AgentHostWorkspaceAgentMessage, l as AgentHostWorkspaceAgentSnapshot, B as BuildWorkspaceAgentActivityListOptions, d as AgentHostRuntimeOpenclawGatewayWarmupResult, A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult, b as AgentHostDeleteWorkspaceAgentSessionInput, k as AgentHostWorkspaceAgentSessionSummaryInput, j as AgentHostWorkspaceAgentSessionSummary, e as AgentHostWorkspaceAgentListInput, i as AgentHostWorkspaceAgentSessionMessagesInput, h as AgentHostWorkspaceAgentSessionMessages, c as AgentHostManagedAgentsState } from './workspaceAgentActivityListViewModel-PvLQDj60.js';
4
4
  import { PropsWithChildren, JSX } from 'react';
@@ -264,7 +264,7 @@ interface AgentActivityRuntimeSessionAttachment {
264
264
  data: string;
265
265
  }
266
266
  interface AgentActivityRuntime {
267
- cancelSession(input: AgentActivityCancelSessionInput): Promise<AgentActivitySession>;
267
+ cancelSession(input: AgentActivityCancelSessionInput): Promise<AgentActivityCancelSessionResult>;
268
268
  createSession(input: AgentActivityCreateSessionInput): Promise<AgentActivitySession>;
269
269
  deleteSession(input: AgentActivityDeleteSessionInput): Promise<AgentActivityDeleteSessionResult>;
270
270
  activateSession(input: AgentActivityRuntimeActivateSessionInput): Promise<AgentHostActivateAgentSessionResult>;
@@ -635,15 +635,6 @@ interface AgentSettings {
635
635
  interface AgentGUINodeData {
636
636
  provider: AgentGUIProvider;
637
637
  lastActiveAgentSessionId: string | null;
638
- pendingHandoff?: {
639
- requestId: string;
640
- title: string;
641
- prompt: string;
642
- taskId?: string | null;
643
- issueId?: string | null;
644
- taskTitle: string;
645
- issueTitle?: string | null;
646
- } | null;
647
638
  lastActiveConversationTitle?: string | null;
648
639
  conversationCount?: number | null;
649
640
  conversationRailWidthPx?: number | null;
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  mergeWorkspaceAgentActivityDurableAndOverlayMessages,
8
8
  normalizeOptionalWorkspaceAgentStatus,
9
9
  selectWorkspaceAgentActivityOverlayMessages
10
- } from "./chunk-UKQIGNN3.js";
10
+ } from "./chunk-7ICAFTA2.js";
11
11
  import {
12
12
  AgentActivityHostProvider,
13
13
  AgentActivityRuntimeProvider,
@@ -39,7 +39,7 @@ import {
39
39
  useOptionalAgentHostApi,
40
40
  user_avatar_placeholder_default,
41
41
  workspaceAgentActivityStatusLabel
42
- } from "./chunk-5Q36BEUM.js";
42
+ } from "./chunk-F55LU7IJ.js";
43
43
  import {
44
44
  resolveWorkspaceAgentSessionSortTimeUnixMs,
45
45
  workspaceAgentProviderLabel
@@ -57,11 +57,11 @@ import {
57
57
  getActiveUiLanguage,
58
58
  translate,
59
59
  useTranslation
60
- } from "./chunk-HSR5DI6O.js";
60
+ } from "./chunk-BHCCGKOP.js";
61
61
  import {
62
62
  resolveAgentMentionFileThumbnailUrl,
63
63
  resolveAgentMentionFileVisualKind
64
- } from "./chunk-BABBC24I.js";
64
+ } from "./chunk-LUGELG5V.js";
65
65
  import "./chunk-PJP5BUU6.js";
66
66
  import {
67
67
  AGENT_GUI_COLLAPSED_MIN_WIDTH_PX,
@@ -74,7 +74,8 @@ import {
74
74
  resolveAgentGUIExpandedWindowFrame,
75
75
  resolveNextAgentGUIConversationRailWidthPx,
76
76
  shouldAutoCollapseAgentGUIConversationRail
77
- } from "./chunk-UJWUGMWC.js";
77
+ } from "./chunk-GYG57VTA.js";
78
+ import "./chunk-ZU3FKYMG.js";
78
79
 
79
80
  // shared/agentActivitySnapshotProjection.ts
80
81
  import {
@@ -237,7 +238,7 @@ function agentHostTurnPhaseFromCore(status) {
237
238
  import { TooltipProvider as TooltipProvider3 } from "@tutti-os/ui-system";
238
239
 
239
240
  // agent-gui/agentGuiNode/AgentGUINode.tsx
240
- import { memo as memo6, useCallback as useCallback20, useEffect as useEffect23, useMemo as useMemo16, useRef as useRef22 } from "react";
241
+ import { memo as memo6, useCallback as useCallback20, useEffect as useEffect23, useMemo as useMemo16 } from "react";
241
242
  import { createWorkspaceUserProjectI18nRuntime } from "@tutti-os/workspace-user-project/i18n";
242
243
 
243
244
  // shared/errors/appError.ts
@@ -11263,6 +11264,68 @@ function reportAgentGUIRuntimeError(input) {
11263
11264
  } catch {
11264
11265
  }
11265
11266
  }
11267
+ function reportAgentGUICancelDiagnostic(input) {
11268
+ if (input.result.canceled) {
11269
+ return;
11270
+ }
11271
+ const reportDiagnostic = input.runtime.reportDiagnostic;
11272
+ if (!reportDiagnostic) {
11273
+ return;
11274
+ }
11275
+ try {
11276
+ void Promise.resolve(
11277
+ reportDiagnostic.call(input.runtime, {
11278
+ details: {
11279
+ agentSessionId: input.agentSessionId,
11280
+ busySource: input.busySource ?? "unknown",
11281
+ canceled: input.result.canceled,
11282
+ cancelReason: input.result.reason,
11283
+ currentSessionStatus: input.currentSessionStatus ?? null,
11284
+ phase: input.phase,
11285
+ provider: input.provider ?? null,
11286
+ returnedSessionNonBusy: cancelResultSessionStatusIsNonBusy(
11287
+ input.result
11288
+ ),
11289
+ returnedSessionStatus: input.result.session.status
11290
+ },
11291
+ event: "agent.gui.cancel.noop",
11292
+ level: "info",
11293
+ source: "agent-gui",
11294
+ workspaceId: input.workspaceId
11295
+ })
11296
+ ).catch(() => {
11297
+ });
11298
+ } catch {
11299
+ }
11300
+ }
11301
+ function cancelResultSessionStatusIsNonBusy(result) {
11302
+ const status = normalizeOptionalWorkspaceAgentStatus({
11303
+ currentPhase: result.session.currentPhase,
11304
+ status: result.session.status
11305
+ });
11306
+ return status !== null && status.kind !== "working" && status.kind !== "waiting";
11307
+ }
11308
+ function cancelBusySource(input) {
11309
+ if (input.hasActivePrompt) {
11310
+ return "interactive_prompt";
11311
+ }
11312
+ if (agentSessionStatusBusy({
11313
+ status: input.conversationStatus ?? void 0
11314
+ })) {
11315
+ return "conversation_status";
11316
+ }
11317
+ if (agentSessionStatusBusy({
11318
+ status: input.runtimeSessionStatus ?? void 0
11319
+ })) {
11320
+ return "runtime_session";
11321
+ }
11322
+ if (agentSessionStatusBusy({
11323
+ status: input.sessionStateStatus ?? void 0
11324
+ })) {
11325
+ return "session_state";
11326
+ }
11327
+ return "unknown";
11328
+ }
11266
11329
  function normalizeAgentGUIDiagnosticError(error) {
11267
11330
  const record = error && typeof error === "object" ? error : null;
11268
11331
  const appErrorCode = getAgentGUIErrorCode(error);
@@ -14803,6 +14866,27 @@ function useAgentGUINodeController({
14803
14866
  if (!result || !isCurrentConversation(agentSessionId)) {
14804
14867
  return;
14805
14868
  }
14869
+ const conversationStatus = resolveConversationSummaryById(
14870
+ conversations,
14871
+ agentSessionId,
14872
+ transientConversationRef.current
14873
+ )?.status ?? null;
14874
+ const runtimeSessionStatus = runtimeSessionsBySessionId.get(agentSessionId)?.status ?? null;
14875
+ reportAgentGUICancelDiagnostic({
14876
+ agentSessionId,
14877
+ busySource: cancelBusySource({
14878
+ conversationStatus,
14879
+ hasActivePrompt: activePendingPrompt?.sessionId === agentSessionId,
14880
+ runtimeSessionStatus,
14881
+ sessionStateStatus: activeSessionState?.status ?? null
14882
+ }),
14883
+ currentSessionStatus: activeSessionState?.status ?? runtimeSessionStatus,
14884
+ phase: "interrupt_current_turn",
14885
+ provider: dataRef.current.provider,
14886
+ result,
14887
+ runtime: agentActivityRuntime,
14888
+ workspaceId
14889
+ });
14806
14890
  void refreshMessagesFromSnapshot(agentSessionId);
14807
14891
  void loadSessionState(agentSessionId);
14808
14892
  void syncConversationListProjection(agentSessionId);
@@ -14843,6 +14927,9 @@ function useAgentGUINodeController({
14843
14927
  syncConversationListProjection,
14844
14928
  loadSessionState,
14845
14929
  refreshMessagesFromSnapshot,
14930
+ conversations,
14931
+ runtimeSessionsBySessionId,
14932
+ activeSessionState,
14846
14933
  workspaceId,
14847
14934
  agentActivityRuntime
14848
14935
  ]
@@ -15177,6 +15264,21 @@ function useAgentGUINodeController({
15177
15264
  if (!result || !isCurrentConversation(activeConversationId)) {
15178
15265
  return;
15179
15266
  }
15267
+ reportAgentGUICancelDiagnostic({
15268
+ agentSessionId: activeConversationId,
15269
+ busySource: cancelBusySource({
15270
+ conversationStatus: activeConversationSummary?.status ?? null,
15271
+ hasActivePrompt: false,
15272
+ runtimeSessionStatus: runtimeSessionsBySessionId.get(activeConversationId)?.status ?? null,
15273
+ sessionStateStatus: activeSessionState2?.status ?? null
15274
+ }),
15275
+ currentSessionStatus: activeSessionState2?.status ?? null,
15276
+ phase: "drain_queued_prompt_interrupt",
15277
+ provider: dataRef.current.provider,
15278
+ result,
15279
+ runtime: agentActivityRuntime,
15280
+ workspaceId
15281
+ });
15180
15282
  void refreshMessagesFromSnapshot(activeConversationId);
15181
15283
  void loadSessionState(activeConversationId);
15182
15284
  void syncConversationListProjection(activeConversationId);
@@ -15213,6 +15315,7 @@ function useAgentGUINodeController({
15213
15315
  loadSessionState,
15214
15316
  refreshMessagesFromSnapshot,
15215
15317
  queuedPromptsBySessionId,
15318
+ runtimeSessionsBySessionId,
15216
15319
  workspaceId,
15217
15320
  sessionViewRef,
15218
15321
  sendNextQueuedPromptIdBySessionId,
@@ -27798,6 +27901,8 @@ function roomIssueStatusLabel(status, t) {
27798
27901
  return translateFn("agentHost.roomIssueNode.issueStatusNotStarted");
27799
27902
  case "running":
27800
27903
  return translateFn("agentHost.roomIssueNode.issueStatusRunning");
27904
+ case "in_progress":
27905
+ return translateFn("agentHost.roomIssueNode.issueStatusInProgress");
27801
27906
  case "pending_acceptance":
27802
27907
  return translateFn(
27803
27908
  "agentHost.roomIssueNode.issueStatusPendingAcceptance"
@@ -28514,7 +28619,13 @@ function shouldRenderMentionGroupLabel(input) {
28514
28619
  }
28515
28620
  function renderMentionRow(item) {
28516
28621
  if (item.kind === "file") {
28517
- const visualKind = resolveAgentMentionFileVisualKind(item);
28622
+ const visualKind = resolveAgentMentionFileVisualKind({
28623
+ entryKind: item.entryKind,
28624
+ href: item.href,
28625
+ mentionNavigation: item.mentionNavigation,
28626
+ name: item.name,
28627
+ path: item.path
28628
+ });
28518
28629
  const childCountLabel = item.mentionNavigation === "agent-generated-folder" && typeof item.childCount === "number" && item.childCount > 0 ? translate("agentHost.agentGui.mentionAgentGeneratedFolderFileCount", {
28519
28630
  count: item.childCount
28520
28631
  }) : null;
@@ -28526,6 +28637,7 @@ function renderMentionRow(item) {
28526
28637
  "data-agent-mention-kind": "file",
28527
28638
  "data-agent-file-entry-kind": item.entryKind,
28528
28639
  "data-agent-file-visual-kind": visualKind,
28640
+ ...item.mentionNavigation ? { "data-agent-mention-navigation": item.mentionNavigation } : {},
28529
28641
  children: [
28530
28642
  /* @__PURE__ */ jsx82(MentionFileIcon, { item, visualKind }),
28531
28643
  /* @__PURE__ */ jsxs53("span", { className: "flex min-w-0 items-baseline gap-1 overflow-hidden", children: [
@@ -33573,7 +33685,7 @@ function normalizeSlashStatusModelName(value) {
33573
33685
  return value?.trim().toLowerCase().replace(/[^a-z0-9]+/gu, "-").replace(/^-+|-+$/gu, "") ?? "";
33574
33686
  }
33575
33687
  function agentGuiStateEquals(left, right) {
33576
- return left === right || left.provider === right.provider && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && (left.pendingHandoff?.requestId ?? null) === (right.pendingHandoff?.requestId ?? null) && (left.pendingHandoff?.prompt ?? null) === (right.pendingHandoff?.prompt ?? null) && (left.pendingHandoff?.title ?? null) === (right.pendingHandoff?.title ?? null) && left.lastActiveConversationTitle === right.lastActiveConversationTitle && left.conversationRailWidthPx === right.conversationRailWidthPx && left.conversationRailCollapsed === right.conversationRailCollapsed && (left.composerOverrides?.model ?? null) === (right.composerOverrides?.model ?? null) && (left.composerOverrides?.reasoningEffort ?? null) === (right.composerOverrides?.reasoningEffort ?? null) && (left.composerOverrides?.planMode ?? null) === (right.composerOverrides?.planMode ?? null) && (left.composerOverrides?.permissionModeId ?? null) === (right.composerOverrides?.permissionModeId ?? null) && composerOverridesByProviderEqual(
33688
+ return left === right || left.provider === right.provider && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && left.lastActiveConversationTitle === right.lastActiveConversationTitle && left.conversationRailWidthPx === right.conversationRailWidthPx && left.conversationRailCollapsed === right.conversationRailCollapsed && (left.composerOverrides?.model ?? null) === (right.composerOverrides?.model ?? null) && (left.composerOverrides?.reasoningEffort ?? null) === (right.composerOverrides?.reasoningEffort ?? null) && (left.composerOverrides?.planMode ?? null) === (right.composerOverrides?.planMode ?? null) && (left.composerOverrides?.permissionModeId ?? null) === (right.composerOverrides?.permissionModeId ?? null) && composerOverridesByProviderEqual(
33577
33689
  left.composerOverridesByProvider,
33578
33690
  right.composerOverridesByProvider
33579
33691
  );
@@ -33640,7 +33752,6 @@ var AgentGUINode = memo6(function AgentGUINode2({
33640
33752
  () => createWorkspaceUserProjectI18nRuntime(i18n),
33641
33753
  [i18n]
33642
33754
  );
33643
- const handledHandoffRequestIdRef = useRef22(null);
33644
33755
  const handleLinkAction = useCallback20(
33645
33756
  (action) => {
33646
33757
  onLinkAction?.(
@@ -33752,25 +33863,6 @@ var AgentGUINode = memo6(function AgentGUINode2({
33752
33863
  onDataChange: handleDataChange,
33753
33864
  onShowMessage
33754
33865
  });
33755
- useEffect23(() => {
33756
- const pendingHandoff = state.pendingHandoff;
33757
- const requestId = pendingHandoff?.requestId?.trim() ?? "";
33758
- const prompt = pendingHandoff?.prompt?.trim() ?? "";
33759
- if (!requestId || !prompt || handledHandoffRequestIdRef.current === requestId) {
33760
- return;
33761
- }
33762
- handledHandoffRequestIdRef.current = requestId;
33763
- actions.createConversation();
33764
- actions.updateDraftPrompt(prompt);
33765
- onUpdateNode(
33766
- (current) => current.pendingHandoff?.requestId === requestId ? { ...current, pendingHandoff: null } : current
33767
- );
33768
- }, [
33769
- actions.createConversation,
33770
- actions.updateDraftPrompt,
33771
- onUpdateNode,
33772
- state.pendingHandoff
33773
- ]);
33774
33866
  const fallbackAgentTitle = t("sidebar.fallbackAgentLabel");
33775
33867
  const activeProvider = viewModel.activeConversation?.provider ?? state.provider;
33776
33868
  const displayProviderLabel = resolveAgentGUIProviderDisplayLabel(