@tutti-os/agent-gui 0.0.227 → 0.0.229

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.
@@ -38,7 +38,7 @@ import {
38
38
  normalizePlanIssueBudgetPreset,
39
39
  planImplementationPromptFromPlanTurn,
40
40
  planIssueBudgetPresetsEqual
41
- } from "./chunk-KZIW5CCW.js";
41
+ } from "./chunk-CQFT3MI5.js";
42
42
  import {
43
43
  useEngineSelector
44
44
  } from "./chunk-EVQ4JY3N.js";
@@ -77,7 +77,7 @@ import {
77
77
  toLocalShortDateTime,
78
78
  updateAgentComposerDraft,
79
79
  useProjectedAgentConversation
80
- } from "./chunk-C7XGPXRW.js";
80
+ } from "./chunk-Y5OBJINU.js";
81
81
  import {
82
82
  agentRichTextContentToPromptText,
83
83
  createAgentRichTextInputExtensions,
@@ -94,7 +94,7 @@ import {
94
94
  blobToBase64,
95
95
  normalizeAgentApprovalPurpose,
96
96
  resolveWorkspaceLinkAction
97
- } from "./chunk-Z35E22WS.js";
97
+ } from "./chunk-WGCDSA7P.js";
98
98
  import {
99
99
  AgentTargetPresentationProvider,
100
100
  cn,
@@ -196,7 +196,7 @@ import { memo as memo15, useMemo as useMemo52 } from "react";
196
196
  import { TooltipProvider as TooltipProvider8 } from "@tutti-os/ui-system";
197
197
 
198
198
  // agent-gui/agentGuiNode/AgentGUINode.tsx
199
- import { memo as memo14, useCallback as useCallback68, useMemo as useMemo51, useRef as useRef61 } from "react";
199
+ import { memo as memo14, useCallback as useCallback68, useMemo as useMemo51, useRef as useRef62 } from "react";
200
200
  import { createWorkspaceUserProjectI18nRuntime } from "@tutti-os/workspace-user-project/i18n";
201
201
  import { createWorkspaceFileManagerI18nRuntime } from "@tutti-os/workspace-file-manager";
202
202
 
@@ -2040,7 +2040,7 @@ import {
2040
2040
  selectEngineSessionIsRespondingToInteraction as selectEngineSessionIsRespondingToInteraction2,
2041
2041
  selectWorkspaceAgentConsumerSessions as selectWorkspaceAgentConsumerSessions2
2042
2042
  } from "@tutti-os/agent-activity-core";
2043
- import { useCallback as useCallback28, useEffect as useEffect13, useMemo as useMemo20, useRef as useRef21 } from "react";
2043
+ import { useCallback as useCallback28, useEffect as useEffect13, useMemo as useMemo20, useRef as useRef22 } from "react";
2044
2044
 
2045
2045
  // host/agentHostAccountStore.ts
2046
2046
  import { create as create2 } from "zustand";
@@ -7006,7 +7006,7 @@ import {
7006
7006
  resolveAgentActivityCapability as resolveAgentActivityCapability2,
7007
7007
  resolveAgentActivityUsage
7008
7008
  } from "@tutti-os/agent-activity-core";
7009
- import { useMemo as useMemo7 } from "react";
7009
+ import { useMemo as useMemo7, useRef as useRef9 } from "react";
7010
7010
 
7011
7011
  // agent-gui/agentGuiNode/model/composerSettingsSupport.ts
7012
7012
  import {
@@ -7204,6 +7204,9 @@ function resolveComposerSettingsPresentation(input) {
7204
7204
 
7205
7205
  // agent-gui/agentGuiNode/controller/useAgentGUIComposerCapabilities.ts
7206
7206
  function useAgentGUIComposerCapabilities(input) {
7207
+ const retainedUsageBySessionIdRef = useRef9(
7208
+ /* @__PURE__ */ new Map()
7209
+ );
7207
7210
  const composerTargetData = composerTargetDataForConversation({
7208
7211
  activeConversationId: input.activeConversationId,
7209
7212
  data: input.data,
@@ -7260,10 +7263,20 @@ function useAgentGUIComposerCapabilities(input) {
7260
7263
  };
7261
7264
  }, [providerComposerOptions, sessionCapabilities]);
7262
7265
  const usageSource = input.activeEngineSession?.usage ?? null;
7263
- const usage = useMemo7(
7264
- () => resolveAgentActivityUsage({ sessionUsage: usageSource }),
7265
- [usageSource]
7266
- );
7266
+ const usage = useMemo7(() => {
7267
+ const agentSessionId = input.activeEngineSession?.agentSessionId.trim() ?? "";
7268
+ if (!agentSessionId) {
7269
+ return null;
7270
+ }
7271
+ const resolved = resolveAgentActivityUsage({
7272
+ sessionUsage: usageSource
7273
+ });
7274
+ if (resolved) {
7275
+ retainedUsageBySessionIdRef.current.set(agentSessionId, resolved);
7276
+ return resolved;
7277
+ }
7278
+ return retainedUsageBySessionIdRef.current.get(agentSessionId) ?? null;
7279
+ }, [input.activeEngineSession?.agentSessionId, usageSource]);
7267
7280
  return {
7268
7281
  compactSupported: sessionCapabilities?.compact ?? resolveAgentActivityCapability2("compact", {
7269
7282
  composerOptions: providerComposerOptions,
@@ -7284,7 +7297,7 @@ function useAgentGUIComposerCapabilities(input) {
7284
7297
  }
7285
7298
 
7286
7299
  // agent-gui/agentGuiNode/controller/useAgentGUIComposerOptionsSync.ts
7287
- import { useCallback as useCallback8, useEffect as useEffect5, useRef as useRef9 } from "react";
7300
+ import { useCallback as useCallback8, useEffect as useEffect5, useRef as useRef10 } from "react";
7288
7301
 
7289
7302
  // host/agentHostEventBus.ts
7290
7303
  var LOG_PREFIX = "[agent-host-event-bus]";
@@ -7446,7 +7459,7 @@ function subscribeCoalesced(type, options, callback) {
7446
7459
 
7447
7460
  // agent-gui/agentGuiNode/controller/useAgentGUIComposerOptionsSync.ts
7448
7461
  function useAgentGUIComposerOptionsSync(input) {
7449
- const previousIsCreatingConversationRef = useRef9(
7462
+ const previousIsCreatingConversationRef = useRef10(
7450
7463
  input.isCreatingConversation
7451
7464
  );
7452
7465
  const loadComposerOptionsForTarget = useCallback8(
@@ -7627,37 +7640,37 @@ function useAgentGUIComposerOptionsSync(input) {
7627
7640
  }
7628
7641
 
7629
7642
  // agent-gui/agentGuiNode/controller/useAgentGUIControllerRefs.ts
7630
- import { useRef as useRef10 } from "react";
7643
+ import { useRef as useRef11 } from "react";
7631
7644
  function useAgentGUIControllerRefs(input) {
7632
- const activeConversationIdRef = useRef10(input.activeConversationId);
7633
- const selectedProjectPathRef = useRef10(input.selectedProjectPath);
7634
- const userProjectsRef = useRef10(input.userProjects);
7635
- const isNoProjectPathRef = useRef10(input.isNoProjectPath);
7636
- const userProjectsLoadSeqRef = useRef10(0);
7637
- const conversationsRef = useRef10(input.conversations);
7638
- const isMountedRef = useRef10(true);
7639
- const agentActivitySnapshotRef = useRef10(input.agentActivitySnapshot);
7640
- const dataRef = useRef10(input.data);
7641
- const selectedAgentTargetRef = useRef10(input.effectiveSelectedProviderTarget);
7642
- const selectedAgentTargetIsExplicitRef = useRef10(
7645
+ const activeConversationIdRef = useRef11(input.activeConversationId);
7646
+ const selectedProjectPathRef = useRef11(input.selectedProjectPath);
7647
+ const userProjectsRef = useRef11(input.userProjects);
7648
+ const isNoProjectPathRef = useRef11(input.isNoProjectPath);
7649
+ const userProjectsLoadSeqRef = useRef11(0);
7650
+ const conversationsRef = useRef11(input.conversations);
7651
+ const isMountedRef = useRef11(true);
7652
+ const agentActivitySnapshotRef = useRef11(input.agentActivitySnapshot);
7653
+ const dataRef = useRef11(input.data);
7654
+ const selectedAgentTargetRef = useRef11(input.effectiveSelectedProviderTarget);
7655
+ const selectedAgentTargetIsExplicitRef = useRef11(
7643
7656
  input.homeComposerTargetOverride ? true : input.selectedAgentTargetIsExplicit
7644
7657
  );
7645
- const agentTargetsProvidedRef = useRef10(input.agentTargetsProvided);
7646
- const selectedComposerTargetDataRef = useRef10(
7658
+ const agentTargetsProvidedRef = useRef11(input.agentTargetsProvided);
7659
+ const selectedComposerTargetDataRef = useRef11(
7647
7660
  input.selectedComposerTargetData
7648
7661
  );
7649
- const draftByScopeKeyRef = useRef10(input.draftByScopeKey);
7650
- const draftSettingsBySessionIdRef = useRef10(input.draftSettingsBySessionId);
7651
- const onDataChangeRef = useRef10(input.onDataChange);
7652
- const onRememberComposerDefaultsRef = useRef10(
7662
+ const draftByScopeKeyRef = useRef11(input.draftByScopeKey);
7663
+ const draftSettingsBySessionIdRef = useRef11(input.draftSettingsBySessionId);
7664
+ const onDataChangeRef = useRef11(input.onDataChange);
7665
+ const onRememberComposerDefaultsRef = useRef11(
7653
7666
  input.onRememberComposerDefaults
7654
7667
  );
7655
- const onShowMessageRef = useRef10(input.onShowMessage);
7656
- const handledPrefillPromptSequenceRef = useRef10(null);
7657
- const handledComposerAppendSequenceRef = useRef10(null);
7658
- const loadDraftComposerOptionsRef = useRef10(() => {
7668
+ const onShowMessageRef = useRef11(input.onShowMessage);
7669
+ const handledPrefillPromptSequenceRef = useRef11(null);
7670
+ const handledComposerAppendSequenceRef = useRef11(null);
7671
+ const loadDraftComposerOptionsRef = useRef11(() => {
7659
7672
  });
7660
- const onComposerDefaultsAuthorityReloadedRef = useRef10({
7673
+ const onComposerDefaultsAuthorityReloadedRef = useRef11({
7661
7674
  prepareRead: (_target, settings) => ({
7662
7675
  force: false,
7663
7676
  receipt: null,
@@ -7668,22 +7681,22 @@ function useAgentGUIControllerRefs(input) {
7668
7681
  reloaded: () => {
7669
7682
  }
7670
7683
  });
7671
- const conversationIdsRef = useRef10(
7684
+ const conversationIdsRef = useRef11(
7672
7685
  new Set(input.conversations.map((conversation) => conversation.id))
7673
7686
  );
7674
- const lastRenderStateDiagnosticKeyRef = useRef10(null);
7675
- const handledOpenSessionSequenceRef = useRef10(null);
7676
- const pendingOpenSessionRequestRef = useRef10(null);
7677
- const executePromptRef = useRef10(() => {
7687
+ const lastRenderStateDiagnosticKeyRef = useRef11(null);
7688
+ const handledOpenSessionSequenceRef = useRef11(null);
7689
+ const pendingOpenSessionRequestRef = useRef11(null);
7690
+ const executePromptRef = useRef11(() => {
7678
7691
  });
7679
- const submitPromptRef = useRef10(() => {
7692
+ const submitPromptRef = useRef11(() => {
7680
7693
  });
7681
- const reloadSelectedConversationRef = useRef10(() => {
7694
+ const reloadSelectedConversationRef = useRef11(() => {
7682
7695
  });
7683
- const syncConversationListProjectionRef = useRef10(async () => {
7696
+ const syncConversationListProjectionRef = useRef11(async () => {
7684
7697
  });
7685
- const isComposerHomeRef = useRef10(input.isComposerHome);
7686
- const isCreatingConversationRef = useRef10(input.isCreatingConversation);
7698
+ const isComposerHomeRef = useRef11(input.isComposerHome);
7699
+ const isCreatingConversationRef = useRef11(input.isCreatingConversation);
7687
7700
  activeConversationIdRef.current = input.activeConversationId;
7688
7701
  selectedProjectPathRef.current = input.selectedProjectPath;
7689
7702
  userProjectsRef.current = input.userProjects;
@@ -7797,7 +7810,7 @@ import {
7797
7810
  selectEngineSession as selectEngineSession2,
7798
7811
  selectEngineSessionSettingsUpdate
7799
7812
  } from "@tutti-os/agent-activity-core";
7800
- import { useCallback as useCallback9, useRef as useRef11 } from "react";
7813
+ import { useCallback as useCallback9, useRef as useRef12 } from "react";
7801
7814
 
7802
7815
  // agent-gui/agentGuiNode/model/composerModeSelection.ts
7803
7816
  function normalizePermissionModeSelection(permissionModeId) {
@@ -7936,7 +7949,7 @@ function useAgentGUIComposerSettingsActions(input) {
7936
7949
  const composerSupport = {
7937
7950
  permissionModeChangeDeferred: input.composerSupportPermissionModeChangeDeferred
7938
7951
  };
7939
- const composerDefaultsLedgerRef = useRef11(
7952
+ const composerDefaultsLedgerRef = useRef12(
7940
7953
  createAgentGUIComposerDefaultsLedger()
7941
7954
  );
7942
7955
  const retireAcknowledgedDefaultsForRead = useCallback9(
@@ -8282,12 +8295,12 @@ function reconcileRetiredDraftMap(current, draftKey, retired) {
8282
8295
  }
8283
8296
 
8284
8297
  // agent-gui/agentGuiNode/controller/useAgentGUIContinueConversation.ts
8285
- import { useCallback as useCallback10, useRef as useRef12 } from "react";
8298
+ import { useCallback as useCallback10, useRef as useRef13 } from "react";
8286
8299
  function buildContinueInNewConversationDraft(input) {
8287
8300
  return updateAgentComposerDraft(input.sourceDraft, { prompt: input.prompt });
8288
8301
  }
8289
8302
  function useAgentGUIContinueConversation(input) {
8290
- const inputRef = useRef12(input);
8303
+ const inputRef = useRef13(input);
8291
8304
  inputRef.current = input;
8292
8305
  return useCallback10(() => {
8293
8306
  const current = inputRef.current;
@@ -9851,7 +9864,7 @@ function resolveAgentGUIInteractionTarget(interactions, requestId) {
9851
9864
  import {
9852
9865
  selectEngineSession as selectEngineSession3
9853
9866
  } from "@tutti-os/agent-activity-core";
9854
- import { useCallback as useCallback18, useRef as useRef13 } from "react";
9867
+ import { useCallback as useCallback18, useRef as useRef14 } from "react";
9855
9868
 
9856
9869
  // agent-gui/agentGuiNode/controller/agentGuiOptimisticGoal.ts
9857
9870
  function projectOptimisticGoalControl(currentGoal, action, objective) {
@@ -9890,7 +9903,7 @@ function unresolvedOptimisticGoalControl(optimisticGoalControl, agentSessionId,
9890
9903
 
9891
9904
  // agent-gui/agentGuiNode/controller/useAgentGUIGoalControlActions.ts
9892
9905
  function useAgentGUIGoalControlActions(input) {
9893
- const requestSequenceRef = useRef13(0);
9906
+ const requestSequenceRef = useRef14(0);
9894
9907
  const beginOptimisticGoalControl = useCallback18(
9895
9908
  (agentSessionId, action, objective, requestId, reconcileOnObjectiveMatch = false) => {
9896
9909
  const canonicalSession = selectEngineSession3(
@@ -11607,9 +11620,9 @@ import {
11607
11620
  selectEngineAvailableCommands,
11608
11621
  selectEngineTurnsForSession
11609
11622
  } from "@tutti-os/agent-activity-core";
11610
- import { useEffect as useEffect8, useMemo as useMemo11, useRef as useRef14 } from "react";
11623
+ import { useEffect as useEffect8, useMemo as useMemo11, useRef as useRef15 } from "react";
11611
11624
  function useAgentGUIConversationDetail(input) {
11612
- const projectionConversationRef = useRef14(null);
11625
+ const projectionConversationRef = useRef15(null);
11613
11626
  const activeCanonicalLiveTurn = Boolean(
11614
11627
  input.activeTurn && input.activeTurn.phase !== "settled"
11615
11628
  );
@@ -11700,7 +11713,7 @@ function useAgentGUIConversationDetail(input) {
11700
11713
  }
11701
11714
  return conversationModels.conversation;
11702
11715
  }, [conversationDetail, conversationModels.conversation]);
11703
- const diagnosticKeyRef = useRef14(null);
11716
+ const diagnosticKeyRef = useRef15(null);
11704
11717
  useEffect8(() => {
11705
11718
  if (!input.activeConversationId || !conversation) {
11706
11719
  diagnosticKeyRef.current = null;
@@ -11792,9 +11805,9 @@ function referenceArrayEqual(left, right) {
11792
11805
  }
11793
11806
 
11794
11807
  // agent-gui/agentGuiNode/controller/useAgentGUIConversationPresentation.ts
11795
- import { useEffect as useEffect9, useMemo as useMemo12, useRef as useRef15 } from "react";
11808
+ import { useEffect as useEffect9, useMemo as useMemo12, useRef as useRef16 } from "react";
11796
11809
  function useAgentGUIConversationPresentation(input) {
11797
- const visibleConversationsRef = useRef15(
11810
+ const visibleConversationsRef = useRef16(
11798
11811
  null
11799
11812
  );
11800
11813
  const conversationProjection = useMemo12(() => {
@@ -11825,7 +11838,7 @@ function useAgentGUIConversationPresentation(input) {
11825
11838
  input.userProjects
11826
11839
  ]);
11827
11840
  const visibleConversations = conversationProjection.visibleConversations;
11828
- const activeConversationRef = useRef15(
11841
+ const activeConversationRef = useRef16(
11829
11842
  null
11830
11843
  );
11831
11844
  const activeConversation = useMemo12(() => {
@@ -11975,14 +11988,14 @@ function useAgentGUIConversationPresentation(input) {
11975
11988
  import {
11976
11989
  useCallback as useCallback21,
11977
11990
  useEffect as useEffect10,
11978
- useRef as useRef16
11991
+ useRef as useRef17
11979
11992
  } from "react";
11980
11993
  import {
11981
11994
  selectEngineSession as selectEngineSession5,
11982
11995
  selectEngineSessionDeleted
11983
11996
  } from "@tutti-os/agent-activity-core";
11984
11997
  function useAgentGUIProviderHome(input) {
11985
- const inputRef = useRef16(input);
11998
+ const inputRef = useRef17(input);
11986
11999
  inputRef.current = input;
11987
12000
  const resolveDefaultHomeComposerTarget = useCallback21(() => {
11988
12001
  const current = inputRef.current;
@@ -12120,6 +12133,13 @@ function useAgentGUIProviderHome(input) {
12120
12133
  []
12121
12134
  );
12122
12135
  useEffect10(() => {
12136
+ const effectiveAgentTargetId = input.effectiveSelectedProviderTarget.agentTargetId?.trim() ?? "";
12137
+ if (input.activeConversationId === null && input.conversationFilter.kind === "agentTarget" && effectiveAgentTargetId && effectiveAgentTargetId !== input.conversationFilter.agentTargetId.trim()) {
12138
+ input.setConversationFilter({
12139
+ kind: "agentTarget",
12140
+ agentTargetId: effectiveAgentTargetId
12141
+ });
12142
+ }
12123
12143
  if (input.activeConversationId !== null || input.conversationFilter.kind !== "all" || input.homeComposerTargetOverride !== null || agentGUINodeDataHasComposerTarget(input.data) || !input.providerReadinessGates || !input.firstReadyHomeComposerProviderTarget) {
12124
12144
  return;
12125
12145
  }
@@ -12142,12 +12162,13 @@ function useAgentGUIProviderHome(input) {
12142
12162
  });
12143
12163
  }, [
12144
12164
  input.activeConversationId,
12145
- input.conversationFilter.kind,
12165
+ input.conversationFilter,
12146
12166
  input.data,
12147
12167
  input.effectiveSelectedProviderTarget,
12148
12168
  input.firstReadyHomeComposerProviderTarget,
12149
12169
  input.homeComposerTargetOverride,
12150
12170
  input.providerReadinessGates,
12171
+ input.setConversationFilter,
12151
12172
  selectHomeComposerAgentTarget
12152
12173
  ]);
12153
12174
  const selectConversationFilterTarget = useCallback21(
@@ -13216,7 +13237,7 @@ import { useCallback as useCallback25, useMemo as useMemo18 } from "react";
13216
13237
  import { useCallback as useCallback24 } from "react";
13217
13238
 
13218
13239
  // contexts/workspace/presentation/renderer/agentSessions/useAgentSessionPagingState.ts
13219
- import { useCallback as useCallback22, useRef as useRef17, useState as useState5 } from "react";
13240
+ import { useCallback as useCallback22, useRef as useRef18, useState as useState5 } from "react";
13220
13241
  var EMPTY_ENTRY = {
13221
13242
  error: null,
13222
13243
  isLoadingMessages: false,
@@ -13224,7 +13245,7 @@ var EMPTY_ENTRY = {
13224
13245
  };
13225
13246
  function useAgentSessionPagingState() {
13226
13247
  const [entries, setEntries] = useState5({});
13227
- const entriesRef = useRef17(entries);
13248
+ const entriesRef = useRef18(entries);
13228
13249
  entriesRef.current = entries;
13229
13250
  const update = useCallback22(
13230
13251
  (ref, updater) => {
@@ -13270,7 +13291,7 @@ function sessionKey(ref) {
13270
13291
  }
13271
13292
 
13272
13293
  // contexts/workspace/presentation/renderer/agentSessions/useAgentSessionTransport.ts
13273
- import { useCallback as useCallback23, useRef as useRef18, useState as useState6 } from "react";
13294
+ import { useCallback as useCallback23, useRef as useRef19, useState as useState6 } from "react";
13274
13295
  var EMPTY_ENTRY2 = {
13275
13296
  olderMessages: [],
13276
13297
  hasOlderMessages: false,
@@ -13278,7 +13299,7 @@ var EMPTY_ENTRY2 = {
13278
13299
  };
13279
13300
  function useAgentSessionTransport() {
13280
13301
  const [entries, setEntries] = useState6({});
13281
- const entriesRef = useRef18(entries);
13302
+ const entriesRef = useRef19(entries);
13282
13303
  entriesRef.current = entries;
13283
13304
  const update = useCallback23(
13284
13305
  (ref, updater) => {
@@ -13559,7 +13580,7 @@ function useAgentGUISessionDetailTransport(input) {
13559
13580
  // agent-gui/agentGuiNode/controller/useAgentGUILocalState.ts
13560
13581
  import {
13561
13582
  useCallback as useCallback26,
13562
- useRef as useRef19,
13583
+ useRef as useRef20,
13563
13584
  useState as useState7
13564
13585
  } from "react";
13565
13586
  function useAgentGUILocalState({
@@ -13587,7 +13608,7 @@ function useAgentGUILocalState({
13587
13608
  data.lastActiveAgentSessionId === null
13588
13609
  );
13589
13610
  const [draftByScopeKey, setDraftByScopeKey] = useState7({});
13590
- const submittedDraftSnapshotsRef = useRef19({});
13611
+ const submittedDraftSnapshotsRef = useRef20({});
13591
13612
  const [draftSettingsBySessionId, setDraftSettingsBySessionId] = useState7({});
13592
13613
  const [isLoadingMessages, setIsLoadingMessages] = useState7(false);
13593
13614
  const [isDeletingConversation, setIsDeletingConversation] = useState7(false);
@@ -13601,7 +13622,7 @@ function useAgentGUILocalState({
13601
13622
  const [detailError, setDetailError] = useState7(null);
13602
13623
  const [goalClearNoticeSequence, setGoalClearNoticeSequence] = useState7(0);
13603
13624
  const [optimisticGoalControl, setOptimisticGoalControl] = useState7(null);
13604
- const railRevealRevisionRef = useRef19(0);
13625
+ const railRevealRevisionRef = useRef20(0);
13605
13626
  const [railRevealRequest, setRailRevealRequest] = useState7(null);
13606
13627
  const clearRailRevealRequest = useCallback26(() => {
13607
13628
  setRailRevealRequest(null);
@@ -13666,7 +13687,7 @@ import {
13666
13687
  selectTuttiModeActivationPresentation,
13667
13688
  tuttiModeActivationPresentationsEqual
13668
13689
  } from "@tutti-os/agent-activity-core";
13669
- import { useCallback as useCallback27, useMemo as useMemo19, useRef as useRef20 } from "react";
13690
+ import { useCallback as useCallback27, useMemo as useMemo19, useRef as useRef21 } from "react";
13670
13691
  function resolveAgentGUITuttiModeDraftKey(nodeId) {
13671
13692
  return `agent-gui:${nodeId?.trim() || "default"}:tutti-mode:home`;
13672
13693
  }
@@ -13676,7 +13697,7 @@ function useAgentGUITuttiModeActivation({
13676
13697
  engine,
13677
13698
  workspaceId
13678
13699
  }) {
13679
- const commandSequenceRef = useRef20(0);
13700
+ const commandSequenceRef = useRef21(0);
13680
13701
  const presentation = useEngineSelector(
13681
13702
  engine,
13682
13703
  useCallback27(
@@ -13919,9 +13940,9 @@ function useAgentGUINodeController({
13919
13940
  )
13920
13941
  )
13921
13942
  );
13922
- const updateComposerSettingsRef = useRef21(() => {
13943
+ const updateComposerSettingsRef = useRef22(() => {
13923
13944
  });
13924
- const planActionsRef = useRef21({ implement: () => {
13945
+ const planActionsRef = useRef22({ implement: () => {
13925
13946
  }, feedback: () => {
13926
13947
  }, skip: () => {
13927
13948
  } });
@@ -13940,7 +13961,7 @@ function useAgentGUINodeController({
13940
13961
  defaultReasoningEffort,
13941
13962
  providerComposerOptions
13942
13963
  } = composerCapabilities;
13943
- const planImplementationTurnIdRef = useRef21(null);
13964
+ const planImplementationTurnIdRef = useRef22(null);
13944
13965
  const accountProfilesByUserId = useAccountStore(
13945
13966
  (state) => state.profilesByUserId
13946
13967
  );
@@ -15028,7 +15049,7 @@ import {
15028
15049
  useCallback as useCallback66,
15029
15050
  useEffect as useEffect38,
15030
15051
  useMemo as useMemo47,
15031
- useRef as useRef59,
15052
+ useRef as useRef60,
15032
15053
  useState as useState53
15033
15054
  } from "react";
15034
15055
  import { TooltipProvider as TooltipProvider7 } from "@tutti-os/ui-system";
@@ -15247,7 +15268,7 @@ var styles = {
15247
15268
  var AgentGUINode_styles_default = styles;
15248
15269
 
15249
15270
  // agent-gui/agentGuiNode/view/agentGUIViewUtils.ts
15250
- import { useCallback as useCallback30, useLayoutEffect, useMemo as useMemo22, useRef as useRef22 } from "react";
15271
+ import { useCallback as useCallback30, useLayoutEffect, useMemo as useMemo22, useRef as useRef23 } from "react";
15251
15272
  function objectRecord(value) {
15252
15273
  return value && typeof value === "object" && !Array.isArray(value) ? value : null;
15253
15274
  }
@@ -15265,14 +15286,14 @@ function stringValue3(value) {
15265
15286
  return typeof value === "string" ? value : "";
15266
15287
  }
15267
15288
  function useStableEventCallback(callback) {
15268
- const callbackRef = useRef22(callback);
15289
+ const callbackRef = useRef23(callback);
15269
15290
  useLayoutEffect(() => {
15270
15291
  callbackRef.current = callback;
15271
15292
  }, [callback]);
15272
15293
  return useCallback30((...args) => callbackRef.current(...args), []);
15273
15294
  }
15274
15295
  function useOptionalStableEventCallback(callback) {
15275
- const callbackRef = useRef22(callback);
15296
+ const callbackRef = useRef23(callback);
15276
15297
  useLayoutEffect(() => {
15277
15298
  callbackRef.current = callback;
15278
15299
  }, [callback]);
@@ -15641,7 +15662,7 @@ import {
15641
15662
  memo as memo3,
15642
15663
  useCallback as useCallback50,
15643
15664
  useMemo as useMemo37,
15644
- useRef as useRef45,
15665
+ useRef as useRef46,
15645
15666
  useState as useState33
15646
15667
  } from "react";
15647
15668
  import { Tooltip as Tooltip9, TooltipContent as TooltipContent9, TooltipTrigger as TooltipTrigger9 } from "@tutti-os/ui-system";
@@ -17216,7 +17237,7 @@ import {
17216
17237
  useCallback as useCallback31,
17217
17238
  useEffect as useEffect15,
17218
17239
  useImperativeHandle,
17219
- useRef as useRef23
17240
+ useRef as useRef24
17220
17241
  } from "react";
17221
17242
  import {
17222
17243
  motion as motion2,
@@ -17247,7 +17268,7 @@ var CastIcon = forwardRef2(
17247
17268
  }, ref) => {
17248
17269
  const controls = useAnimation();
17249
17270
  const reduceMotion = useReducedMotion();
17250
- const isControlledRef = useRef23(false);
17271
+ const isControlledRef = useRef24(false);
17251
17272
  const startAnimation = useCallback31(() => {
17252
17273
  if (reduceMotion) {
17253
17274
  return;
@@ -17575,7 +17596,7 @@ function AgentSessionChrome({
17575
17596
  }
17576
17597
 
17577
17598
  // agent-gui/agentGuiNode/AgentComposer.tsx
17578
- import { useCallback as useCallback47, useEffect as useEffect27, useRef as useRef42, useState as useState29 } from "react";
17599
+ import { useCallback as useCallback47, useEffect as useEffect27, useRef as useRef43, useState as useState29 } from "react";
17579
17600
  import { repairMentionPaletteHighlight } from "@tutti-os/ui-rich-text/at-panel";
17580
17601
 
17581
17602
  // agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
@@ -17720,7 +17741,7 @@ import { flushSync as flushSync3 } from "react-dom";
17720
17741
  import {
17721
17742
  startTransition,
17722
17743
  useCallback as useCallback32,
17723
- useRef as useRef24
17744
+ useRef as useRef25
17724
17745
  } from "react";
17725
17746
 
17726
17747
  // agent-gui/agentGuiNode/model/agentComposerDraftFileReconciliation.ts
@@ -17800,7 +17821,7 @@ function agentComposerDevConsoleDiagnosticSinkEnabled(runtime) {
17800
17821
 
17801
17822
  // agent-gui/agentGuiNode/composer/useComposerDraftAttachments.ts
17802
17823
  function useStableEventCallback2(callback) {
17803
- const callbackRef = useRef24(callback);
17824
+ const callbackRef = useRef25(callback);
17804
17825
  callbackRef.current = callback;
17805
17826
  return useCallback32((...args) => callbackRef.current(...args), []);
17806
17827
  }
@@ -17832,7 +17853,7 @@ function useComposerDraftAttachments({
17832
17853
  }) {
17833
17854
  const agentHostApi = useOptionalAgentHostApi();
17834
17855
  const agentActivityRuntime = useOptionalAgentActivityRuntime();
17835
- const activeDraftScopeKeyRef = useRef24(draftScopeKey);
17856
+ const activeDraftScopeKeyRef = useRef25(draftScopeKey);
17836
17857
  activeDraftScopeKeyRef.current = draftScopeKey;
17837
17858
  const reportContentEntered = useStableEventCallback2(
17838
17859
  (contentType) => {
@@ -17865,7 +17886,7 @@ function useComposerDraftAttachments({
17865
17886
  return next;
17866
17887
  }
17867
17888
  );
17868
- const openReferencesForEntityRef = useRef24(null);
17889
+ const openReferencesForEntityRef = useRef25(null);
17869
17890
  const handleDraftChange = useStableEventCallback2(
17870
17891
  (nextDraft) => {
17871
17892
  if (isGoalModeActive) {
@@ -18431,7 +18452,7 @@ import {
18431
18452
  useCallback as useCallback33,
18432
18453
  useLayoutEffect as useLayoutEffect2,
18433
18454
  useMemo as useMemo23,
18434
- useRef as useRef25
18455
+ useRef as useRef26
18435
18456
  } from "react";
18436
18457
  var DOCK_COMPOSER_INPUT_MIN_HEIGHT = 56;
18437
18458
  var DOCK_COMPOSER_TEXT_LINE_HEIGHT = 24;
@@ -18471,7 +18492,7 @@ function useComposerLayout({
18471
18492
  draftImages,
18472
18493
  draftLargeTexts
18473
18494
  }) {
18474
- const composerMeasurementFrameRef = useRef25(null);
18495
+ const composerMeasurementFrameRef = useRef26(null);
18475
18496
  const labels = { promptTipsPrefix };
18476
18497
  const showEdgeGlow = isHeroLayout && !inputDisabled;
18477
18498
  const showPromptTips = isHeroLayout && promptTips.length > 0;
@@ -18964,7 +18985,7 @@ import {
18964
18985
  import {
18965
18986
  useCallback as useCallback34,
18966
18987
  useEffect as useEffect16,
18967
- useRef as useRef26,
18988
+ useRef as useRef27,
18968
18989
  useState as useState10
18969
18990
  } from "react";
18970
18991
  import {
@@ -19013,14 +19034,14 @@ function AgentUsageChip({
19013
19034
  }) {
19014
19035
  "use memo";
19015
19036
  const [usagePopoverOpen, setUsagePopoverOpen] = useState10(false);
19016
- const usagePopoverHoverTimerRef = useRef26(null);
19017
- const usagePopoverContentRef = useRef26(null);
19037
+ const usagePopoverHoverTimerRef = useRef27(null);
19038
+ const usagePopoverContentRef = useRef27(null);
19018
19039
  const clampedPercent = Math.max(0, Math.min(100, percentUsed));
19019
19040
  const chipLabel = labels.usageChipLabel({ percent: clampedPercent });
19020
19041
  const showTokens = usedTokens !== null && totalTokens !== null;
19021
19042
  const usageLevel = agentUsageChipLevel(clampedPercent);
19022
19043
  const ringColor = agentUsageRingColor(usageLevel);
19023
- const usagePopoverCloseTimerRef = useRef26(null);
19044
+ const usagePopoverCloseTimerRef = useRef27(null);
19024
19045
  const clearUsagePopoverHoverTimer = useCallback34(() => {
19025
19046
  if (usagePopoverHoverTimerRef.current) {
19026
19047
  clearTimeout(usagePopoverHoverTimerRef.current);
@@ -19402,10 +19423,10 @@ function useMentionPaletteFrame(inputShellRef, showFileMentionPalette) {
19402
19423
  import {
19403
19424
  useCallback as useCallback36,
19404
19425
  useMemo as useMemo26,
19405
- useRef as useRef27
19426
+ useRef as useRef28
19406
19427
  } from "react";
19407
19428
  function useStableEventCallback3(callback) {
19408
- const callbackRef = useRef27(callback);
19429
+ const callbackRef = useRef28(callback);
19409
19430
  callbackRef.current = callback;
19410
19431
  return useCallback36((...args) => callbackRef.current(...args), []);
19411
19432
  }
@@ -19906,7 +19927,7 @@ function useComposerSlashActions(input) {
19906
19927
  import {
19907
19928
  useCallback as useCallback37,
19908
19929
  useEffect as useEffect17,
19909
- useRef as useRef28
19930
+ useRef as useRef29
19910
19931
  } from "react";
19911
19932
  import {
19912
19933
  createMentionPaletteStateAdapter,
@@ -19926,7 +19947,7 @@ function isAgentRichTextImeComposing(event) {
19926
19947
 
19927
19948
  // agent-gui/agentGuiNode/composer/useComposerMentionActions.ts
19928
19949
  function useStableEventCallback4(callback) {
19929
- const callbackRef = useRef28(callback);
19950
+ const callbackRef = useRef29(callback);
19930
19951
  callbackRef.current = callback;
19931
19952
  return useCallback37((...args) => callbackRef.current(...args), []);
19932
19953
  }
@@ -21184,7 +21205,7 @@ import {
21184
21205
  import {
21185
21206
  Component as Component2,
21186
21207
  useLayoutEffect as useLayoutEffect4,
21187
- useRef as useRef29,
21208
+ useRef as useRef30,
21188
21209
  useState as useState15
21189
21210
  } from "react";
21190
21211
  import { ChevronRight } from "lucide-react";
@@ -21380,9 +21401,9 @@ function AgentQueuedPromptPanel({
21380
21401
  "use memo";
21381
21402
  const runtime = useOptionalAgentActivityRuntime();
21382
21403
  const [isExpanded, setIsExpanded] = useState15(false);
21383
- const singlePromptTextRef = useRef29(null);
21384
- const queuedPromptListRef = useRef29(null);
21385
- const pointerHandledEditPromptIdRef = useRef29(null);
21404
+ const singlePromptTextRef = useRef30(null);
21405
+ const queuedPromptListRef = useRef30(null);
21406
+ const pointerHandledEditPromptIdRef = useRef30(null);
21386
21407
  const [isSinglePromptOverflowing, setIsSinglePromptOverflowing] = useState15(false);
21387
21408
  const [expandedListMaxHeightPx, setExpandedListMaxHeightPx] = useState15(280);
21388
21409
  const singlePromptHasImages = queuedPrompts.length === 1 && queuedPromptImages(queuedPrompts[0]).length > 0;
@@ -23271,7 +23292,7 @@ import {
23271
23292
  useCallback as useCallback42,
23272
23293
  useEffect as useEffect22,
23273
23294
  useMemo as useMemo29,
23274
- useRef as useRef31,
23295
+ useRef as useRef32,
23275
23296
  useState as useState19
23276
23297
  } from "react";
23277
23298
  import { useEditor } from "@tiptap/react";
@@ -23868,7 +23889,7 @@ function useAgentRichTextEditorHandle(input) {
23868
23889
  // agent-gui/agentGuiNode/agentRichText/AgentRichTextEditorSurface.tsx
23869
23890
  import {
23870
23891
  useCallback as useCallback41,
23871
- useRef as useRef30
23892
+ useRef as useRef31
23872
23893
  } from "react";
23873
23894
  import { createPortal as createPortal2 } from "react-dom";
23874
23895
  import { EditorContent } from "@tiptap/react";
@@ -23956,7 +23977,7 @@ function AgentRichTextContextMenuButton({
23956
23977
  label,
23957
23978
  onSelect
23958
23979
  }) {
23959
- const selectionStartedRef = useRef30(false);
23980
+ const selectionStartedRef = useRef31(false);
23960
23981
  const select = useCallback41(() => {
23961
23982
  if (disabled || selectionStartedRef.current) return;
23962
23983
  selectionStartedRef.current = true;
@@ -24095,38 +24116,38 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
24095
24116
  }, ref) {
24096
24117
  "use memo";
24097
24118
  const { t } = useTranslation();
24098
- const lastEmittedPromptRef = useRef31(value);
24099
- const controlledValueTrackerRef = useRef31(
24119
+ const lastEmittedPromptRef = useRef32(value);
24120
+ const controlledValueTrackerRef = useRef32(
24100
24121
  createAgentRichTextControlledValueTracker(contentScopeKey)
24101
24122
  );
24102
- const editorRef = useRef31(null);
24103
- const onChangeRef = useRef31(onChange);
24104
- const onContentLayoutInvalidatedRef = useRef31(onContentLayoutInvalidated);
24105
- const onFocusRef = useRef31(onFocus);
24106
- const onUserContentChangeRef = useRef31(onUserContentChange);
24107
- const pendingFocusMethodRef = useRef31(null);
24108
- const onSubmitRef = useRef31(onSubmit);
24109
- const onSubmitGuidanceRef = useRef31(onSubmitGuidance);
24110
- const onKeyDownForPaletteRef = useRef31(onKeyDownForPalette);
24111
- const onFileMentionSuggestionChangeRef = useRef31(
24123
+ const editorRef = useRef32(null);
24124
+ const onChangeRef = useRef32(onChange);
24125
+ const onContentLayoutInvalidatedRef = useRef32(onContentLayoutInvalidated);
24126
+ const onFocusRef = useRef32(onFocus);
24127
+ const onUserContentChangeRef = useRef32(onUserContentChange);
24128
+ const pendingFocusMethodRef = useRef32(null);
24129
+ const onSubmitRef = useRef32(onSubmit);
24130
+ const onSubmitGuidanceRef = useRef32(onSubmitGuidance);
24131
+ const onKeyDownForPaletteRef = useRef32(onKeyDownForPalette);
24132
+ const onFileMentionSuggestionChangeRef = useRef32(
24112
24133
  onFileMentionSuggestionChange
24113
24134
  );
24114
- const onFileMentionSuggestionKeyDownRef = useRef31(
24135
+ const onFileMentionSuggestionKeyDownRef = useRef32(
24115
24136
  onFileMentionSuggestionKeyDown
24116
24137
  );
24117
- const onLinkClickRef = useRef31(onLinkClick);
24118
- const onPromptImagesUnsupportedRef = useRef31(onPromptImagesUnsupported);
24119
- const onPasteImagesRef = useRef31(onPasteImages);
24120
- const onPasteLargeTextRef = useRef31(onPasteLargeText);
24121
- const onPasteFilesRef = useRef31(onPasteFiles);
24122
- const onDropFilesRef = useRef31(onDropFiles);
24123
- const promptImagesSupportedRef = useRef31(promptImagesSupported);
24124
- const placeholderRef = useRef31(placeholder);
24125
- const removeMentionLabelRef = useRef31(removeMentionLabel);
24126
- const availableSkillsRef = useRef31(availableSkills);
24127
- const availableCapabilitiesRef = useRef31(availableCapabilities);
24128
- const suppressPastedAtSuggestionRef = useRef31(false);
24129
- const scrollFrameRef = useRef31(null);
24138
+ const onLinkClickRef = useRef32(onLinkClick);
24139
+ const onPromptImagesUnsupportedRef = useRef32(onPromptImagesUnsupported);
24140
+ const onPasteImagesRef = useRef32(onPasteImages);
24141
+ const onPasteLargeTextRef = useRef32(onPasteLargeText);
24142
+ const onPasteFilesRef = useRef32(onPasteFiles);
24143
+ const onDropFilesRef = useRef32(onDropFiles);
24144
+ const promptImagesSupportedRef = useRef32(promptImagesSupported);
24145
+ const placeholderRef = useRef32(placeholder);
24146
+ const removeMentionLabelRef = useRef32(removeMentionLabel);
24147
+ const availableSkillsRef = useRef32(availableSkills);
24148
+ const availableCapabilitiesRef = useRef32(availableCapabilities);
24149
+ const suppressPastedAtSuggestionRef = useRef32(false);
24150
+ const scrollFrameRef = useRef32(null);
24130
24151
  const [contextMenu, setContextMenu] = useState19(null);
24131
24152
  const closeContextMenu = useCallback42(() => {
24132
24153
  setContextMenu(null);
@@ -24692,7 +24713,7 @@ function AgentReferenceProvenanceFilterControl({
24692
24713
  }
24693
24714
 
24694
24715
  // agent-gui/agentGuiNode/AgentSlashCommandPalette.tsx
24695
- import { Fragment as Fragment10, useEffect as useEffect23, useRef as useRef32 } from "react";
24716
+ import { Fragment as Fragment10, useEffect as useEffect23, useRef as useRef33 } from "react";
24696
24717
  import { Spinner as Spinner3 } from "@tutti-os/ui-system";
24697
24718
  import {
24698
24719
  Globe,
@@ -24739,7 +24760,7 @@ function AgentSlashCommandPalette({
24739
24760
  onSelectSkill
24740
24761
  }) {
24741
24762
  "use memo";
24742
- const highlightedOptionRef = useRef32(null);
24763
+ const highlightedOptionRef = useRef33(null);
24743
24764
  useEffect23(() => {
24744
24765
  highlightedOptionRef.current?.scrollIntoView({ block: "nearest" });
24745
24766
  }, [highlightedIndex]);
@@ -24947,7 +24968,7 @@ function slashPaletteEntryIcon(entry) {
24947
24968
  }
24948
24969
 
24949
24970
  // agent-gui/agentGuiNode/AgentReviewPickerPanel.tsx
24950
- import { useCallback as useCallback43, useEffect as useEffect24, useMemo as useMemo30, useRef as useRef33, useState as useState20 } from "react";
24971
+ import { useCallback as useCallback43, useEffect as useEffect24, useMemo as useMemo30, useRef as useRef34, useState as useState20 } from "react";
24951
24972
  import { menuItemClassName } from "@tutti-os/ui-system";
24952
24973
 
24953
24974
  // agent-gui/agentGuiNode/AgentReviewBranchController.ts
@@ -25065,9 +25086,9 @@ function AgentReviewPickerPanel({
25065
25086
  const [stage, setStage] = useState20("root");
25066
25087
  const [query, setQuery] = useState20("");
25067
25088
  const [highlightedIndex, setHighlightedIndex] = useState20(0);
25068
- const searchInputRef = useRef33(null);
25069
- const highlightedOptionRef = useRef33(null);
25070
- const reviewBranchControllerRef = useRef33(
25089
+ const searchInputRef = useRef34(null);
25090
+ const highlightedOptionRef = useRef34(null);
25091
+ const reviewBranchControllerRef = useRef34(
25071
25092
  null
25072
25093
  );
25073
25094
  const [branchState, setBranchState] = useState20({
@@ -25312,7 +25333,7 @@ import {
25312
25333
  useEffect as useEffect25,
25313
25334
  useLayoutEffect as useLayoutEffect5,
25314
25335
  useMemo as useMemo31,
25315
- useRef as useRef34,
25336
+ useRef as useRef35,
25316
25337
  useState as useState21
25317
25338
  } from "react";
25318
25339
  import { createPortal as createPortal3 } from "react-dom";
@@ -25459,7 +25480,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
25459
25480
  surfaceRef,
25460
25481
  testId
25461
25482
  }, forwardedRef) {
25462
- const localSurfaceRef = useRef34(null);
25483
+ const localSurfaceRef = useRef35(null);
25463
25484
  const frame = useComposerAnchoredMenuFrame({
25464
25485
  anchorRef,
25465
25486
  maxHeight,
@@ -26402,7 +26423,7 @@ function RemovableBadgeIcon({ icon }) {
26402
26423
  }
26403
26424
 
26404
26425
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptPopover.tsx
26405
- import { useId as useId2, useRef as useRef38, useState as useState25 } from "react";
26426
+ import { useId as useId2, useRef as useRef39, useState as useState25 } from "react";
26406
26427
  import {
26407
26428
  Button as Button6,
26408
26429
  ConfirmationDialog as ConfirmationDialog2,
@@ -26429,7 +26450,7 @@ import {
26429
26450
  } from "@tutti-os/ui-system/icons";
26430
26451
 
26431
26452
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptEditorDialog.tsx
26432
- import { useRef as useRef35, useState as useState24 } from "react";
26453
+ import { useRef as useRef36, useState as useState24 } from "react";
26433
26454
  import {
26434
26455
  Button as Button4,
26435
26456
  Dialog,
@@ -26454,7 +26475,7 @@ function AgentQuickPromptEditorDialog({
26454
26475
  () => controller.initialDraft ?? promptDraft(source)
26455
26476
  );
26456
26477
  const [validationError, setValidationError] = useState24(null);
26457
- const cancelRequestedOnPointerDownRef = useRef35(false);
26478
+ const cancelRequestedOnPointerDownRef = useRef36(false);
26458
26479
  const submit = async () => {
26459
26480
  const error = validateDraft(draft, labels);
26460
26481
  if (error) {
@@ -26596,11 +26617,11 @@ function validateDraft(draft, labels) {
26596
26617
  }
26597
26618
 
26598
26619
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptList.tsx
26599
- import { useMemo as useMemo32, useRef as useRef37 } from "react";
26620
+ import { useMemo as useMemo32, useRef as useRef38 } from "react";
26600
26621
  import { Sortable, SortableContent, SortableItem } from "@tutti-os/ui-system";
26601
26622
 
26602
26623
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptRow.tsx
26603
- import { useRef as useRef36 } from "react";
26624
+ import { useRef as useRef37 } from "react";
26604
26625
  import {
26605
26626
  BareIconButton,
26606
26627
  Button as Button5,
@@ -26711,7 +26732,7 @@ function AgentQuickPromptRow({
26711
26732
  ] });
26712
26733
  }
26713
26734
  function usePrimaryPointerAction(action) {
26714
- const requestedOnPointerDownRef = useRef36(false);
26735
+ const requestedOnPointerDownRef = useRef37(false);
26715
26736
  return {
26716
26737
  onPointerDown: (event) => {
26717
26738
  if (event.button !== 0) return;
@@ -26739,7 +26760,7 @@ function AgentQuickPromptList({
26739
26760
  onSelect,
26740
26761
  rowRefs
26741
26762
  }) {
26742
- const handleRefs = useRef37(/* @__PURE__ */ new Map());
26763
+ const handleRefs = useRef38(/* @__PURE__ */ new Map());
26743
26764
  const { filteredPrompts, labels, snapshot } = controller;
26744
26765
  const promptsById = useMemo32(
26745
26766
  () => new Map(filteredPrompts.map((prompt) => [prompt.id, prompt])),
@@ -26859,12 +26880,12 @@ function AgentQuickPromptPopover({
26859
26880
  controller,
26860
26881
  disabled
26861
26882
  }) {
26862
- const searchRef = useRef38(null);
26863
- const rowRefs = useRef38(/* @__PURE__ */ new Map());
26864
- const firstTemplateRef = useRef38(null);
26865
- const preserveExternalFocusRef = useRef38(false);
26866
- const createRequestedOnPointerDownRef = useRef38(false);
26867
- const templateRequestedOnPointerDownRef = useRef38(false);
26883
+ const searchRef = useRef39(null);
26884
+ const rowRefs = useRef39(/* @__PURE__ */ new Map());
26885
+ const firstTemplateRef = useRef39(null);
26886
+ const preserveExternalFocusRef = useRef39(false);
26887
+ const createRequestedOnPointerDownRef = useRef39(false);
26888
+ const templateRequestedOnPointerDownRef = useRef39(false);
26868
26889
  const [view, setView] = useState25("prompts");
26869
26890
  const [sortingState, setSortingState] = useState25({
26870
26891
  isPopoverOpen: controller.isPopoverOpen,
@@ -27310,7 +27331,7 @@ function TemplateEntry({
27310
27331
  );
27311
27332
  }
27312
27333
  function usePrimaryPointerAction2(action) {
27313
- const actionRequestedOnPointerDownRef = useRef38(false);
27334
+ const actionRequestedOnPointerDownRef = useRef39(false);
27314
27335
  return {
27315
27336
  onPointerDown: (event) => {
27316
27337
  if (event.button !== 0) return;
@@ -27929,7 +27950,7 @@ function AgentComposerView(input) {
27929
27950
  }
27930
27951
 
27931
27952
  // agent-gui/agentGuiNode/composer/useAgentMentionSearchController.ts
27932
- import { useEffect as useEffect26, useMemo as useMemo33, useRef as useRef39, useState as useState26 } from "react";
27953
+ import { useEffect as useEffect26, useMemo as useMemo33, useRef as useRef40, useState as useState26 } from "react";
27933
27954
  import { useRichTextMentionService } from "@tutti-os/ui-rich-text/editor";
27934
27955
  var EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS = [];
27935
27956
  function useAgentMentionSearchController(referenceProvenanceFilters) {
@@ -27939,7 +27960,7 @@ function useAgentMentionSearchController(referenceProvenanceFilters) {
27939
27960
  [mentionService]
27940
27961
  );
27941
27962
  const [mentionSearchState, setMentionSearchState] = useState26(INITIAL_AGENT_MENTION_SEARCH_STATE);
27942
- const mentionControllerRef = useRef39(
27963
+ const mentionControllerRef = useRef40(
27943
27964
  null
27944
27965
  );
27945
27966
  const sessionProvenanceFilter = referenceProvenanceFilters?.byFilter.session.snapshot.value ?? null;
@@ -28001,7 +28022,7 @@ var INITIAL_AGENT_MENTION_SEARCH_STATE = {
28001
28022
  };
28002
28023
 
28003
28024
  // agent-gui/agentGuiNode/composer/quickPrompts/useAgentQuickPromptLibrary.ts
28004
- import { useCallback as useCallback45, useMemo as useMemo34, useRef as useRef40, useState as useState27 } from "react";
28025
+ import { useCallback as useCallback45, useMemo as useMemo34, useRef as useRef41, useState as useState27 } from "react";
28005
28026
  var unavailableSnapshot = {
28006
28027
  enabled: false,
28007
28028
  status: "idle",
@@ -28024,7 +28045,7 @@ function useAgentQuickPromptLibrary(input) {
28024
28045
  selectQuickPromptSnapshot
28025
28046
  );
28026
28047
  const [mode, setMode] = useState27("closed");
28027
- const modeRef = useRef40(mode);
28048
+ const modeRef = useRef41(mode);
28028
28049
  modeRef.current = mode;
28029
28050
  const [searchQuery, setSearchQuery] = useState27("");
28030
28051
  const [selectedPrompt, setSelectedPrompt] = useState27(null);
@@ -28038,7 +28059,7 @@ function useAgentQuickPromptLibrary(input) {
28038
28059
  const capabilityAvailable = Boolean(quickPrompts && snapshot.enabled);
28039
28060
  const disclosureAvailable = capabilityAvailable && !disabled;
28040
28061
  const [previousDisclosureAvailable, setPreviousDisclosureAvailable] = useState27(disclosureAvailable);
28041
- const disclosureAvailableRef = useRef40(disclosureAvailable);
28062
+ const disclosureAvailableRef = useRef41(disclosureAvailable);
28042
28063
  disclosureAvailableRef.current = disclosureAvailable;
28043
28064
  if (previousDisclosureAvailable !== disclosureAvailable) {
28044
28065
  setPreviousDisclosureAvailable(disclosureAvailable);
@@ -28318,9 +28339,9 @@ function isVersionConflict(error) {
28318
28339
  }
28319
28340
 
28320
28341
  // agent-gui/agentGuiNode/composer/useScopedProjectMissingState.ts
28321
- import { useCallback as useCallback46, useRef as useRef41, useState as useState28 } from "react";
28342
+ import { useCallback as useCallback46, useRef as useRef42, useState as useState28 } from "react";
28322
28343
  function useScopedProjectMissingState(scopeKey) {
28323
- const identityRef = useRef41({
28344
+ const identityRef = useRef42({
28324
28345
  key: scopeKey,
28325
28346
  revision: 0
28326
28347
  });
@@ -28556,29 +28577,29 @@ function AgentComposer(props) {
28556
28577
  const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useScopedProjectMissingState(selectedProjectPath);
28557
28578
  const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState29(false);
28558
28579
  const slashStatusAgentSessionId = slashStatus?.agentSessionId ?? null;
28559
- const previousSlashStatusAgentSessionIdRef = useRef42(
28580
+ const previousSlashStatusAgentSessionIdRef = useRef43(
28560
28581
  slashStatusAgentSessionId
28561
28582
  );
28562
28583
  const selectedProjectSectionKey = composerSettings.selectedProjectSectionKey?.trim() ?? "";
28563
- const previousSelectedProjectPathRef = useRef42(selectedProjectPath);
28564
- const composerRef = useRef42(null);
28565
- const inputShellRef = useRef42(null);
28566
- const promptInputAreaRef = useRef42(null);
28567
- const paletteContentRef = useRef42(null);
28568
- const draftPromptRef = useRef42(draftPrompt);
28569
- const draftImagesRef = useRef42(draftImages);
28570
- const draftFilesRef = useRef42(draftFiles);
28571
- const draftLargeTextsRef = useRef42(draftLargeTexts);
28572
- const draftByScopeKeyRef = useRef42({
28584
+ const previousSelectedProjectPathRef = useRef43(selectedProjectPath);
28585
+ const composerRef = useRef43(null);
28586
+ const inputShellRef = useRef43(null);
28587
+ const promptInputAreaRef = useRef43(null);
28588
+ const paletteContentRef = useRef43(null);
28589
+ const draftPromptRef = useRef43(draftPrompt);
28590
+ const draftImagesRef = useRef43(draftImages);
28591
+ const draftFilesRef = useRef43(draftFiles);
28592
+ const draftLargeTextsRef = useRef43(draftLargeTexts);
28593
+ const draftByScopeKeyRef = useRef43({
28573
28594
  [draftScopeKey]: draftContent
28574
28595
  });
28575
28596
  draftByScopeKeyRef.current[draftScopeKey] = draftContent;
28576
- const promptTipRef = useRef42(null);
28597
+ const promptTipRef = useRef43(null);
28577
28598
  const { mentionControllerRef, mentionSearchState } = useAgentMentionSearchController(referenceProvenanceFilters);
28578
- const editorHandleRef = useRef42(null);
28579
- const wasActiveRef = useRef42(isActive);
28580
- const lastComposerFocusRequestRef = useRef42(null);
28581
- const autoMentionHighlightedKeyRef = useRef42(null);
28599
+ const editorHandleRef = useRef43(null);
28600
+ const wasActiveRef = useRef43(isActive);
28601
+ const lastComposerFocusRequestRef = useRef43(null);
28602
+ const autoMentionHighlightedKeyRef = useRef43(null);
28582
28603
  const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState29(false);
28583
28604
  const [dockComposerMetrics, setDockComposerMetrics] = useState29(
28584
28605
  INITIAL_DOCK_COMPOSER_METRICS
@@ -29365,7 +29386,7 @@ import {
29365
29386
  useCallback as useCallback48,
29366
29387
  useContext,
29367
29388
  useMemo as useMemo35,
29368
- useRef as useRef43
29389
+ useRef as useRef44
29369
29390
  } from "react";
29370
29391
  import { toast as toast2 } from "@tutti-os/ui-system";
29371
29392
 
@@ -29453,7 +29474,7 @@ function useCreateAgentTargetSetupController(agentTarget) {
29453
29474
  },
29454
29475
  [agentTargetId, hostApi?.debug]
29455
29476
  );
29456
- const controllerRef = useRef43(null);
29477
+ const controllerRef = useRef44(null);
29457
29478
  const targetKey = enabled ? agentTargetId : "";
29458
29479
  const controllerEntry = useMemo35(() => {
29459
29480
  const previousState = controllerRef.current?.targetKey === targetKey ? controllerRef.current.controller.getSnapshot() : null;
@@ -29932,27 +29953,28 @@ var AgentGUIEmptyHomePane = memo2(function AgentGUIEmptyHomePane2({
29932
29953
  ...heroProps
29933
29954
  }) {
29934
29955
  "use memo";
29956
+ const presentedSelectedAgentTarget = selectedAgentTarget?.ref.kind === "loading" ? null : selectedAgentTarget;
29935
29957
  const runtimeProviderLabel = labels.emptyProviderForProvider?.(provider) ?? labels.emptyProvider ?? "";
29936
- const providerLabel = selectedAgentTarget ? projectAgentGUIAgentTargetName({
29958
+ const providerLabel = presentedSelectedAgentTarget ? projectAgentGUIAgentTargetName({
29937
29959
  ownerSeparator: labels.sharedAgentOwnerSeparator,
29938
- target: selectedAgentTarget
29960
+ target: presentedSelectedAgentTarget
29939
29961
  }).fullLabel : runtimeProviderLabel;
29940
29962
  const baseLabel = labels.emptyForProvider?.(provider) ?? labels.empty;
29941
29963
  const emptyLabel = runtimeProviderLabel ? baseLabel.replace(runtimeProviderLabel, providerLabel) : baseLabel;
29942
29964
  const avatarPresentations = useMemo36(
29943
- () => agentTargets.length ? agentTargets.map(projectAgentGUIAgentTargetAvatar) : selectedAgentTarget ? [projectAgentGUIAgentTargetAvatar(selectedAgentTarget)] : [
29965
+ () => agentTargets.length ? agentTargets.map(projectAgentGUIAgentTargetAvatar) : presentedSelectedAgentTarget ? [projectAgentGUIAgentTargetAvatar(presentedSelectedAgentTarget)] : [
29944
29966
  createFallbackAgentGUIAgentAvatar({
29945
29967
  provider,
29946
29968
  label: providerLabel
29947
29969
  })
29948
29970
  ],
29949
- [agentTargets, provider, providerLabel, selectedAgentTarget]
29971
+ [agentTargets, presentedSelectedAgentTarget, provider, providerLabel]
29950
29972
  );
29951
29973
  const carouselMountedExternally = avatarPresentations.length > 1;
29952
29974
  return /* @__PURE__ */ jsx50(
29953
29975
  AgentGUIEmptyHeroCarouselStage,
29954
29976
  {
29955
- activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
29977
+ activeAgentTargetId: presentedSelectedAgentTarget?.agentTargetId ?? presentedSelectedAgentTarget?.targetId,
29956
29978
  items: avatarPresentations,
29957
29979
  onProviderSelect,
29958
29980
  providerSelectLabel: labels.providerSwitchLabel,
@@ -29973,7 +29995,7 @@ var AgentGUIEmptyHomePane = memo2(function AgentGUIEmptyHomePane2({
29973
29995
  onProviderSelect,
29974
29996
  providerLabel,
29975
29997
  providerSelectLabel: labels.providerSwitchLabel,
29976
- selectedAgentTarget,
29998
+ selectedAgentTarget: presentedSelectedAgentTarget,
29977
29999
  labels
29978
30000
  }
29979
30001
  ) : /* @__PURE__ */ jsx50(
@@ -29987,7 +30009,7 @@ var AgentGUIEmptyHomePane = memo2(function AgentGUIEmptyHomePane2({
29987
30009
  carouselMountedExternally,
29988
30010
  onProviderSelect,
29989
30011
  agentTargets,
29990
- selectedAgentTarget,
30012
+ selectedAgentTarget: presentedSelectedAgentTarget,
29991
30013
  providerSelectLabel: labels.providerSwitchLabel,
29992
30014
  sharedAgentOwnerSeparator: labels.sharedAgentOwnerSeparator
29993
30015
  }
@@ -30385,7 +30407,7 @@ function EmptyHeroTitle({
30385
30407
 
30386
30408
  // agent-gui/agentGuiNode/view/AgentGUIProviderManagerDialog.tsx
30387
30409
  import {
30388
- useRef as useRef44,
30410
+ useRef as useRef45,
30389
30411
  useState as useState31
30390
30412
  } from "react";
30391
30413
  import { CircleMinus, CirclePlus } from "lucide-react";
@@ -30427,12 +30449,12 @@ function AgentGUIProviderManagerDialog({
30427
30449
  null
30428
30450
  );
30429
30451
  const [dragPreview, setDragPreview] = useState31(null);
30430
- const dragStateRef = useRef44(null);
30431
- const dragPreviewRef = useRef44(null);
30452
+ const dragStateRef = useRef45(null);
30453
+ const dragPreviewRef = useRef45(null);
30432
30454
  const [longPressTargetId, setLongPressTargetId] = useState31(
30433
30455
  null
30434
30456
  );
30435
- const longPressOriginRef = useRef44(null);
30457
+ const longPressOriginRef = useRef45(null);
30436
30458
  const finalAvailableAgent = availableTargets.length === 1;
30437
30459
  const showRunningAgentBlocked = (targetId) => {
30438
30460
  const target = targets.find((candidate) => candidate.targetId === targetId);
@@ -31030,7 +31052,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
31030
31052
  preferences: providerRailPreferences
31031
31053
  } = useAgentGUIProviderRailPreferences();
31032
31054
  const [dragState, setDragState] = useState33(null);
31033
- const dragStateRef = useRef45(null);
31055
+ const dragStateRef = useRef46(null);
31034
31056
  const setProviderRailDragState = useCallback50(
31035
31057
  (nextDragState) => {
31036
31058
  dragStateRef.current = nextDragState;
@@ -31500,7 +31522,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
31500
31522
  import { memo as memo8, useState as useState40 } from "react";
31501
31523
 
31502
31524
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
31503
- import { Fragment as Fragment21, memo as memo7, useEffect as useEffect29, useMemo as useMemo40, useRef as useRef48, useState as useState39 } from "react";
31525
+ import { Fragment as Fragment21, memo as memo7, useEffect as useEffect29, useMemo as useMemo40, useRef as useRef49, useState as useState39 } from "react";
31504
31526
  import { Button as SystemButton } from "@tutti-os/ui-system";
31505
31527
  import { ScrollArea as ScrollArea2 } from "@tutti-os/ui-system/components";
31506
31528
  import { CreateChatIcon as CreateChatIcon2 } from "@tutti-os/ui-system/icons";
@@ -32685,7 +32707,7 @@ import {
32685
32707
  Fragment as Fragment18,
32686
32708
  useCallback as useCallback52,
32687
32709
  useMemo as useMemo38,
32688
- useRef as useRef46,
32710
+ useRef as useRef47,
32689
32711
  useState as useState35
32690
32712
  } from "react";
32691
32713
  import {
@@ -32897,7 +32919,7 @@ function useConversationActionGroups({
32897
32919
  const agentActivityRuntime = useOptionalAgentActivityRuntime();
32898
32920
  const copyConversationValue = useAgentGUIConversationCopyAction(labels);
32899
32921
  const [resetKey, setResetKey] = useState35(0);
32900
- const pendingActionRef = useRef46(false);
32922
+ const pendingActionRef = useRef47(false);
32901
32923
  const run = useCallback52(
32902
32924
  (action) => {
32903
32925
  if (pendingActionRef.current) {
@@ -34213,7 +34235,7 @@ function AgentGUIProjectActionConfirmationDialog(props) {
34213
34235
  }
34214
34236
 
34215
34237
  // agent-gui/agentGuiNode/view/useAgentGUIConversationRailViewState.ts
34216
- import { useCallback as useCallback56, useLayoutEffect as useLayoutEffect6, useReducer, useRef as useRef47 } from "react";
34238
+ import { useCallback as useCallback56, useLayoutEffect as useLayoutEffect6, useReducer, useRef as useRef48 } from "react";
34217
34239
  function applyRailScrollNavigation(input) {
34218
34240
  const activeConversationId = input.activeConversationId?.trim() || null;
34219
34241
  const current = input.current.navigationKey === input.navigationKey ? input.current : {
@@ -34259,10 +34281,10 @@ function useAgentGUIConversationRailViewState(input) {
34259
34281
  reduceAgentGUIConversationRailViewState,
34260
34282
  /* @__PURE__ */ new Map()
34261
34283
  );
34262
- const conversationListRef = useRef47(null);
34263
- const conversationItemElementsRef = useRef47(/* @__PURE__ */ new Map());
34264
- const scrollTopByScopeRef = useRef47(/* @__PURE__ */ new Map());
34265
- const navigationRef = useRef47({
34284
+ const conversationListRef = useRef48(null);
34285
+ const conversationItemElementsRef = useRef48(/* @__PURE__ */ new Map());
34286
+ const scrollTopByScopeRef = useRef48(/* @__PURE__ */ new Map());
34287
+ const navigationRef = useRef48({
34266
34288
  handledRevealRevision: 0,
34267
34289
  navigationKey: null,
34268
34290
  phase: "scope-pending"
@@ -34433,9 +34455,9 @@ var AgentGUIConversationRailPane = memo7(
34433
34455
  const [pendingProjectAction, setPendingProjectAction] = useState39(null);
34434
34456
  const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState39(false);
34435
34457
  const { railSearch } = railQuery;
34436
- const railElementRef = useRef48(null);
34437
- const railActiveConversationRef = useRef48([]);
34438
- const groupedConversationsRef = useRef48(null);
34458
+ const railElementRef = useRef49(null);
34459
+ const railActiveConversationRef = useRef49([]);
34460
+ const groupedConversationsRef = useRef49(null);
34439
34461
  const {
34440
34462
  batchDeletionAvailable,
34441
34463
  loadMoreSectionConversations,
@@ -34867,7 +34889,7 @@ var AgentGUIConversationRailPane = memo7(
34867
34889
  );
34868
34890
 
34869
34891
  // agent-gui/agentGuiNode/controller/useAgentGUIConversationRailQuery.ts
34870
- import { useEffect as useEffect30, useMemo as useMemo41, useRef as useRef49 } from "react";
34892
+ import { useEffect as useEffect30, useMemo as useMemo41, useRef as useRef50 } from "react";
34871
34893
 
34872
34894
  // agent-gui/agentGuiNode/controller/agentGuiConversationRailDiagnostics.ts
34873
34895
  var CONVERSATION_RAIL_SLOW_DIAGNOSTIC_THRESHOLD_MS = 250;
@@ -36150,7 +36172,7 @@ function useAgentGUIConversationRailQuery({
36150
36172
  () => runtime.getSessionEngine(workspaceId),
36151
36173
  [runtime, workspaceId]
36152
36174
  );
36153
- const activeConversationIdRef = useRef49(activeConversationId);
36175
+ const activeConversationIdRef = useRef50(activeConversationId);
36154
36176
  activeConversationIdRef.current = activeConversationId;
36155
36177
  const controller = useMemo41(
36156
36178
  () => new AgentGUIConversationRailQueryController({
@@ -36269,10 +36291,10 @@ var AgentGUIConversationRailController = memo8(
36269
36291
  );
36270
36292
 
36271
36293
  // agent-gui/agentGuiNode/view/AgentGUIDetailPane.tsx
36272
- import { memo as memo12, useCallback as useCallback60, useEffect as useEffect34, useMemo as useMemo44, useRef as useRef53, useState as useState50 } from "react";
36294
+ import { memo as memo12, useCallback as useCallback60, useEffect as useEffect34, useMemo as useMemo44, useRef as useRef54, useState as useState50 } from "react";
36273
36295
 
36274
36296
  // agent-gui/agentGuiNode/view/agentGUIDetailModelHelpers.ts
36275
- import { useRef as useRef50 } from "react";
36297
+ import { useRef as useRef51 } from "react";
36276
36298
  function commandAppSource(command) {
36277
36299
  if (!command || typeof command !== "object" || !("source" in command)) {
36278
36300
  return null;
@@ -36352,7 +36374,7 @@ function slashStatusesEqual(left, right) {
36352
36374
  return (left.agentSessionId ?? null) === (right.agentSessionId ?? null) && (left.baseUrl ?? null) === (right.baseUrl ?? null) && (left.contextWindow?.usedTokens ?? null) === (right.contextWindow?.usedTokens ?? null) && (left.contextWindow?.totalTokens ?? null) === (right.contextWindow?.totalTokens ?? null) && slashStatusLimitsEqual(left.limits, right.limits) && Boolean(left.limitsLoading) === Boolean(right.limitsLoading) && Boolean(left.limitsUnavailable) === Boolean(right.limitsUnavailable);
36353
36375
  }
36354
36376
  function useStableSlashStatus(status) {
36355
- const statusRef = useRef50(null);
36377
+ const statusRef = useRef51(null);
36356
36378
  if (statusRef.current === null || !slashStatusesEqual(statusRef.current, status)) {
36357
36379
  statusRef.current = status;
36358
36380
  }
@@ -37821,7 +37843,7 @@ function TuttiPlanIssueList({
37821
37843
  }
37822
37844
 
37823
37845
  // workspaceWorkflow/tuttiModePlan/useTuttiModePlanPanels.ts
37824
- import { useCallback as useCallback58, useEffect as useEffect32, useMemo as useMemo42, useRef as useRef51, useState as useState43 } from "react";
37846
+ import { useCallback as useCallback58, useEffect as useEffect32, useMemo as useMemo42, useRef as useRef52, useState as useState43 } from "react";
37825
37847
  function emptyState(scopeKey) {
37826
37848
  return {
37827
37849
  error: null,
@@ -37848,15 +37870,15 @@ function useTuttiModePlanPanels(input) {
37848
37870
  result: null,
37849
37871
  scopeKey: ""
37850
37872
  });
37851
- const requestSequenceRef = useRef51(0);
37873
+ const requestSequenceRef = useRef52(0);
37852
37874
  const [retrySequence, setRetrySequence] = useState43(0);
37853
37875
  const enabled = input.enabled ?? true;
37854
37876
  const workspaceId = input.workspaceId.trim();
37855
37877
  const sourceSessionId = input.sourceSessionId?.trim() ?? "";
37856
37878
  const scopeKey = enabled && runtime && workspaceId && sourceSessionId ? JSON.stringify([workspaceId, sourceSessionId]) : "";
37857
- const activeScopeRef = useRef51("");
37858
- const assignmentRequestsRef = useRef51(/* @__PURE__ */ new Set());
37859
- const planIssueRefreshRef = useRef51(null);
37879
+ const activeScopeRef = useRef52("");
37880
+ const assignmentRequestsRef = useRef52(/* @__PURE__ */ new Set());
37881
+ const planIssueRefreshRef = useRef52(null);
37860
37882
  const assignmentSource = runtime?.assignmentOptions ?? null;
37861
37883
  const loadAgentOptions = useCallback58(
37862
37884
  (agentTargetId) => {
@@ -39096,7 +39118,7 @@ import {
39096
39118
  useCallback as useCallback59,
39097
39119
  useEffect as useEffect33,
39098
39120
  useLayoutEffect as useLayoutEffect7,
39099
- useRef as useRef52,
39121
+ useRef as useRef53,
39100
39122
  useState as useState47
39101
39123
  } from "react";
39102
39124
  var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
@@ -39174,11 +39196,11 @@ function useAgentGUIDetailScroll(input) {
39174
39196
  } = input;
39175
39197
  const [isTimelineScrolledToTop, setIsTimelineScrolledToTop] = useState47(true);
39176
39198
  const [isTimelineScrolledToBottom, setIsTimelineScrolledToBottom] = useState47(true);
39177
- const bottomLockOwnerRef = useRef52(null);
39178
- const pointerScrollConversationRef = useRef52(null);
39179
- const userScrollAwayIntentConversationRef = useRef52(null);
39180
- const lastShowTimelineSkeletonRef = useRef52(showTimelineSkeleton);
39181
- const bottomDockSafeAreaRef = useRef52(null);
39199
+ const bottomLockOwnerRef = useRef53(null);
39200
+ const pointerScrollConversationRef = useRef53(null);
39201
+ const userScrollAwayIntentConversationRef = useRef53(null);
39202
+ const lastShowTimelineSkeletonRef = useRef53(showTimelineSkeleton);
39203
+ const bottomDockSafeAreaRef = useRef53(null);
39182
39204
  useLayoutEffect7(() => {
39183
39205
  const timelineSkeletonChanged = lastShowTimelineSkeletonRef.current !== showTimelineSkeleton;
39184
39206
  lastShowTimelineSkeletonRef.current = showTimelineSkeleton;
@@ -40553,12 +40575,12 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
40553
40575
  readiness,
40554
40576
  operations
40555
40577
  };
40556
- const timelineRef = useRef53(null);
40557
- const timelineContentRef = useRef53(null);
40558
- const bottomDockRef = useRef53(null);
40559
- const timelineScrollAnchorRef = useRef53(null);
40560
- const submittedPromptScrollConversationRef = useRef53(null);
40561
- const pendingPrependScrollAnchorRef = useRef53(null);
40578
+ const timelineRef = useRef54(null);
40579
+ const timelineContentRef = useRef54(null);
40580
+ const bottomDockRef = useRef54(null);
40581
+ const timelineScrollAnchorRef = useRef54(null);
40582
+ const submittedPromptScrollConversationRef = useRef54(null);
40583
+ const pendingPrependScrollAnchorRef = useRef54(null);
40562
40584
  const [
40563
40585
  bottomDockDismissedPromptRequestId,
40564
40586
  setBottomDockDismissedPromptRequestId
@@ -41096,7 +41118,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
41096
41118
  });
41097
41119
 
41098
41120
  // agent-gui/agentGuiNode/view/AgentGUIRenameConversationDialog.tsx
41099
- import { memo as memo13, useCallback as useCallback61, useEffect as useEffect35, useRef as useRef54, useState as useState51 } from "react";
41121
+ import { memo as memo13, useCallback as useCallback61, useEffect as useEffect35, useRef as useRef55, useState as useState51 } from "react";
41100
41122
  import { ConfirmationDialog as ConfirmationDialog4, Input as Input4 } from "@tutti-os/ui-system";
41101
41123
  import { jsx as jsx83, jsxs as jsxs59 } from "react/jsx-runtime";
41102
41124
  var AgentGUIRenameConversationDialog = memo13(
@@ -41110,9 +41132,9 @@ var AgentGUIRenameConversationDialog = memo13(
41110
41132
  "use memo";
41111
41133
  const [title, setTitle] = useState51("");
41112
41134
  const [isSaving, setIsSaving] = useState51(false);
41113
- const isSavingRef = useRef54(false);
41114
- const armedPointerActionRef = useRef54(null);
41115
- const inputRef = useRef54(null);
41135
+ const isSavingRef = useRef55(false);
41136
+ const armedPointerActionRef = useRef55(null);
41137
+ const inputRef = useRef55(null);
41116
41138
  const trimmedTitle = title.trim();
41117
41139
  useEffect35(() => {
41118
41140
  if (!open || !conversation) {
@@ -41397,7 +41419,7 @@ function AgentTargetSetupRoot({
41397
41419
  }
41398
41420
 
41399
41421
  // agent-gui/agentGuiNode/view/useAgentGUIWorkspaceReferencePicker.ts
41400
- import { useCallback as useCallback63, useMemo as useMemo46, useRef as useRef55, useState as useState52 } from "react";
41422
+ import { useCallback as useCallback63, useMemo as useMemo46, useRef as useRef56, useState as useState52 } from "react";
41401
41423
  import { createRichTextMentionHref } from "@tutti-os/ui-rich-text/core";
41402
41424
  function useAgentGUIWorkspaceReferencePicker(input) {
41403
41425
  const {
@@ -41413,8 +41435,8 @@ function useAgentGUIWorkspaceReferencePicker(input) {
41413
41435
  const [workspaceReferencePickerOpen, setWorkspaceReferencePickerOpen] = useState52(false);
41414
41436
  const [workspaceReferencePickerPurpose, setWorkspaceReferencePickerPurpose] = useState52("reference");
41415
41437
  const [workspaceReferencePickerTarget, setWorkspaceReferencePickerTarget] = useState52(null);
41416
- const workspaceReferencePickerResolverRef = useRef55(null);
41417
- const projectDirectoryPickerResolverRef = useRef55(null);
41438
+ const workspaceReferencePickerResolverRef = useRef56(null);
41439
+ const projectDirectoryPickerResolverRef = useRef56(null);
41418
41440
  const emptyReferencePickResult = useMemo46(
41419
41441
  () => ({ files: [], mentionItems: [] }),
41420
41442
  []
@@ -41566,7 +41588,7 @@ function useAgentGUIWorkspaceReferencePicker(input) {
41566
41588
  }
41567
41589
 
41568
41590
  // agent-gui/agentGuiNode/engagement/useAgentGUINodeEngagement.ts
41569
- import { useRef as useRef57 } from "react";
41591
+ import { useRef as useRef58 } from "react";
41570
41592
 
41571
41593
  // agent-gui/agentGuiNode/engagement/projectAgentGUIEngagementContext.ts
41572
41594
  function projectAgentGUIEngagementContext(viewModel, composerReady) {
@@ -41598,7 +41620,7 @@ function createAgentGUIEngagementContextKey(input) {
41598
41620
  }
41599
41621
 
41600
41622
  // agent-gui/agentGuiNode/engagement/useAgentGUIPanelEngagement.ts
41601
- import { useEffect as useEffect36, useRef as useRef56 } from "react";
41623
+ import { useEffect as useEffect36, useRef as useRef57 } from "react";
41602
41624
 
41603
41625
  // agent-gui/agentGuiNode/engagement/AgentGUIPanelEngagementController.ts
41604
41626
  var AGENT_GUI_PANEL_EXPOSURE_DWELL_MS = 1e3;
@@ -41752,10 +41774,10 @@ function documentIsVisible() {
41752
41774
 
41753
41775
  // agent-gui/agentGuiNode/engagement/useAgentGUIPanelEngagement.ts
41754
41776
  function useAgentGUIPanelEngagement(input) {
41755
- const inputRef = useRef56(input);
41756
- const controllerRef = useRef56(null);
41757
- const intersectionRatioRef = useRef56(0);
41758
- const engagementRef = useRef56(null);
41777
+ const inputRef = useRef57(input);
41778
+ const controllerRef = useRef57(null);
41779
+ const intersectionRatioRef = useRef57(0);
41780
+ const engagementRef = useRef57(null);
41759
41781
  inputRef.current = input;
41760
41782
  if (!engagementRef.current) {
41761
41783
  engagementRef.current = {
@@ -41795,7 +41817,7 @@ function useAgentGUIPanelEngagement(input) {
41795
41817
 
41796
41818
  // agent-gui/agentGuiNode/engagement/useAgentGUINodeEngagement.ts
41797
41819
  function useAgentGUINodeEngagement(input) {
41798
- const layoutElementRef = useRef57(null);
41820
+ const layoutElementRef = useRef58(null);
41799
41821
  const projected = projectAgentGUIEngagementContext(
41800
41822
  input.viewModel,
41801
41823
  input.composerReady
@@ -41856,7 +41878,7 @@ function useAgentGUIConversationRailResizePointerMove({
41856
41878
  }
41857
41879
 
41858
41880
  // agent-gui/agentGuiNode/view/useAgentGUIExternalRequests.ts
41859
- import { useCallback as useCallback65, useEffect as useEffect37, useRef as useRef58 } from "react";
41881
+ import { useCallback as useCallback65, useEffect as useEffect37, useRef as useRef59 } from "react";
41860
41882
  function resolveSessionActionConversation(viewModel, agentSessionId) {
41861
41883
  const active = viewModel.rail.activeConversation;
41862
41884
  if (!agentSessionId) {
@@ -41881,17 +41903,17 @@ function useAgentGUIExternalRequests(input) {
41881
41903
  viewModel
41882
41904
  } = input;
41883
41905
  const agentHostApi = useOptionalAgentHostApi();
41884
- const railInteractionLockProbeRef = useRef58(null);
41906
+ const railInteractionLockProbeRef = useRef59(null);
41885
41907
  const registerRailInteractionLockProbe = useCallback65(
41886
41908
  (probe) => {
41887
41909
  railInteractionLockProbeRef.current = probe;
41888
41910
  },
41889
41911
  []
41890
41912
  );
41891
- const handledNewConversationRequestSequenceRef = useRef58(
41913
+ const handledNewConversationRequestSequenceRef = useRef59(
41892
41914
  newConversationRequestSequence
41893
41915
  );
41894
- const handledSessionActionRequestSequenceRef = useRef58(
41916
+ const handledSessionActionRequestSequenceRef = useRef59(
41895
41917
  sessionActionRequest?.sequence ?? null
41896
41918
  );
41897
41919
  const copyConversationValue = useAgentGUIConversationCopyAction(labels);
@@ -42018,7 +42040,7 @@ function AgentGUINodeView({
42018
42040
  viewModel
42019
42041
  });
42020
42042
  const [providerManagerOpen, setProviderManagerOpen] = useState53(false);
42021
- const railResizeInteractionRef = useRef59(null);
42043
+ const railResizeInteractionRef = useRef60(null);
42022
42044
  const [isRailResizing, setIsRailResizing] = useState53(false);
42023
42045
  const [railResizeWidthPx, setRailResizeWidthPx] = useState53(
42024
42046
  null
@@ -42566,7 +42588,7 @@ import {
42566
42588
  useCallback as useCallback67,
42567
42589
  useEffect as useEffect39,
42568
42590
  useLayoutEffect as useLayoutEffect9,
42569
- useRef as useRef60,
42591
+ useRef as useRef61,
42570
42592
  useState as useState54
42571
42593
  } from "react";
42572
42594
  import { createPortal as createPortal5 } from "react-dom";
@@ -42605,8 +42627,8 @@ function AgentProbeInfoPopover({
42605
42627
  onClose
42606
42628
  }) {
42607
42629
  "use memo";
42608
- const anchorRef = useRef60(null);
42609
- const popoverRef = useRef60(null);
42630
+ const anchorRef = useRef61(null);
42631
+ const popoverRef = useRef61(null);
42610
42632
  const [isOpen, setIsOpen] = useState54(false);
42611
42633
  const [popoverStyle, setPopoverStyle] = useState54(null);
42612
42634
  const openPopover = useCallback67(() => {
@@ -44096,7 +44118,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
44096
44118
  isVisible = true,
44097
44119
  embedded = false
44098
44120
  } = frame;
44099
- const widthRef = useRef61(width);
44121
+ const widthRef = useRef62(width);
44100
44122
  widthRef.current = width;
44101
44123
  const {
44102
44124
  composerAppend: composerAppendRequest = null,
@@ -44598,4 +44620,4 @@ export {
44598
44620
  AgentHandoffMenu,
44599
44621
  AgentGUI
44600
44622
  };
44601
- //# sourceMappingURL=chunk-THBQIB3O.js.map
44623
+ //# sourceMappingURL=chunk-ZVSKNM6D.js.map