@tutti-os/agent-gui 0.0.37 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  AgentInteractivePromptSurface,
15
15
  approvalOptionDisplayLabel
16
- } from "./chunk-BQNHPMQY.js";
16
+ } from "./chunk-L7FBT3VR.js";
17
17
  import {
18
18
  PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
19
19
  PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
@@ -37,13 +37,13 @@ import {
37
37
  skillDescriptionForDisplay,
38
38
  skillTriggerForPrefix,
39
39
  useProjectedAgentConversation
40
- } from "./chunk-5YJPISWJ.js";
40
+ } from "./chunk-7F4M55U3.js";
41
41
  import {
42
42
  AgentMessageMarkdown,
43
43
  ZoomableImage,
44
44
  cn,
45
45
  resolveWorkspaceLinkAction
46
- } from "./chunk-UHQDBXGH.js";
46
+ } from "./chunk-44YASHVW.js";
47
47
  import {
48
48
  AGENT_MENTION_FILTER_TAB_ORDER,
49
49
  AgentFileMentionPalette,
@@ -61,7 +61,7 @@ import {
61
61
  isWorkspaceAgentUntitledTask,
62
62
  mergeWorkspaceAgentActivityDurableAndOverlayMessages,
63
63
  selectWorkspaceAgentActivityOverlayMessages
64
- } from "./chunk-SXHVKUUI.js";
64
+ } from "./chunk-SS5YEVAI.js";
65
65
  import {
66
66
  MANAGED_AGENT_ICON_FALLBACK_URL,
67
67
  MANAGED_AGENT_ICON_URLS,
@@ -2721,7 +2721,8 @@ function conversationSummaryFromAgentSession(session, options = {}) {
2721
2721
  titleFallback,
2722
2722
  status: conversationStatusFromActivity("idle"),
2723
2723
  cwd: session.cwd?.trim() ?? "",
2724
- project: projectResolver.resolve(session.cwd),
2724
+ project: resolveConversationProject(session, projectResolver),
2725
+ ...isExternalImportNoProjectSession(session) ? { projectMode: "none" } : {},
2725
2726
  pinnedAtUnixMs: session.pinnedAtUnixMs ?? null,
2726
2727
  sortTimeUnixMs: resolveWorkspaceAgentSessionSortTimeUnixMs(
2727
2728
  workspaceAgentSession
@@ -2737,7 +2738,7 @@ function applyAgentGUIConversationProjects(conversations, userProjects = [], opt
2737
2738
  options
2738
2739
  );
2739
2740
  const next = conversations.map((conversation) => {
2740
- const project = projectResolver.resolve(conversation.cwd);
2741
+ const project = conversation.projectMode === "none" ? null : projectResolver.resolve(conversation.cwd);
2741
2742
  if (isSameAgentGUIConversationProject(conversation.project, project)) {
2742
2743
  return conversation;
2743
2744
  }
@@ -2816,13 +2817,24 @@ function conversationSummaryFromActivity(activity, session, options) {
2816
2817
  titleFallback,
2817
2818
  status,
2818
2819
  cwd: session?.cwd.trim() ?? "",
2819
- project: options.projectResolver.resolve(session?.cwd),
2820
+ project: resolveConversationProject(session, options.projectResolver),
2821
+ ...isExternalImportNoProjectSession(session) ? { projectMode: "none" } : {},
2820
2822
  pinnedAtUnixMs: session?.pinnedAtUnixMs ?? null,
2821
2823
  sortTimeUnixMs: activity.sortTimeUnixMs,
2822
2824
  updatedAtUnixMs: session?.updatedAtUnixMs || activity.sortTimeUnixMs || 0,
2823
2825
  syncState: session?.syncState
2824
2826
  };
2825
2827
  }
2828
+ function resolveConversationProject(session, projectResolver) {
2829
+ if (isExternalImportNoProjectSession(session)) {
2830
+ return null;
2831
+ }
2832
+ return projectResolver.resolve(session?.cwd);
2833
+ }
2834
+ function isExternalImportNoProjectSession(session) {
2835
+ const runtimeContext = session && "runtimeContext" in session ? session.runtimeContext : void 0;
2836
+ return runtimeContext?.externalImportNoProject === true;
2837
+ }
2826
2838
  function isSameAgentGUIConversationProject(left, right) {
2827
2839
  if (!left && !right) {
2828
2840
  return true;
@@ -8891,6 +8903,15 @@ function useAgentGUINodeController({
8891
8903
  const updateSelectedProjectPath = useCallback4(
8892
8904
  (path, metadata) => {
8893
8905
  const normalizedPath = normalizeProjectDraftPath(path);
8906
+ const project = metadata?.project;
8907
+ if (project && normalizedPath && project.path === normalizedPath) {
8908
+ const nextProjects = upsertAgentGUIUserProject(
8909
+ userProjectsRef.current,
8910
+ project
8911
+ );
8912
+ userProjectsRef.current = nextProjects;
8913
+ setUserProjectsSnapshot(nextProjects);
8914
+ }
8894
8915
  selectedProjectPathRef.current = normalizedPath;
8895
8916
  setSelectedProjectPath(normalizedPath);
8896
8917
  const agentSessionId = activeConversationIdRef.current;
@@ -13405,6 +13426,25 @@ function areAgentGUIUserProjectsEqual(left, right) {
13405
13426
  return candidate !== void 0 && project.id === candidate.id && project.path === candidate.path && project.label === candidate.label;
13406
13427
  });
13407
13428
  }
13429
+ function upsertAgentGUIUserProject(projects, project) {
13430
+ const normalizedProject = {
13431
+ ...project.createdAtUnixMs === void 0 ? {} : { createdAtUnixMs: project.createdAtUnixMs },
13432
+ id: project.id,
13433
+ ...project.lastUsedAtUnixMs === void 0 || project.lastUsedAtUnixMs === null ? {} : { lastUsedAtUnixMs: project.lastUsedAtUnixMs },
13434
+ label: project.label,
13435
+ path: project.path,
13436
+ ...project.updatedAtUnixMs === void 0 ? {} : { updatedAtUnixMs: project.updatedAtUnixMs }
13437
+ };
13438
+ const index = projects.findIndex(
13439
+ (candidate) => candidate.id === normalizedProject.id || candidate.path === normalizedProject.path
13440
+ );
13441
+ if (index === -1) {
13442
+ return [...projects, normalizedProject];
13443
+ }
13444
+ const next = [...projects];
13445
+ next[index] = normalizedProject;
13446
+ return next;
13447
+ }
13408
13448
  function readAgentGUIUserProjectSnapshot(api) {
13409
13449
  const projects = api?.service?.getSnapshot?.().projects ?? [];
13410
13450
  return projects.map((project) => ({
@@ -16083,6 +16123,7 @@ function AgentProjectDropdown({
16083
16123
  labels,
16084
16124
  i18n,
16085
16125
  previewMode = false,
16126
+ selectProjectDirectory,
16086
16127
  onProjectMissingChange,
16087
16128
  onProjectPathChange
16088
16129
  }) {
@@ -16095,12 +16136,13 @@ function AgentProjectDropdown({
16095
16136
  const userProjectApi = useMemo5(
16096
16137
  () => !previewMode && agentHostApi.userProjects ? {
16097
16138
  ...agentHostApi.userProjects,
16098
- selectDirectory: agentHostApi.workspace.selectDirectory
16139
+ selectDirectory: selectProjectDirectory ?? agentHostApi.workspace.selectDirectory
16099
16140
  } : null,
16100
16141
  [
16101
16142
  agentHostApi.userProjects,
16102
16143
  agentHostApi.workspace.selectDirectory,
16103
- previewMode
16144
+ previewMode,
16145
+ selectProjectDirectory
16104
16146
  ]
16105
16147
  );
16106
16148
  if (previewMode) {
@@ -16171,7 +16213,6 @@ function AgentProjectDropdown({
16171
16213
  ),
16172
16214
  selectedProjectPath: composerSettings.selectedProjectPath,
16173
16215
  service: agentHostApi.userProjects?.service ?? null,
16174
- showCreateProjectAction: true,
16175
16216
  onProjectMissingChange,
16176
16217
  onProjectPathChange
16177
16218
  }
@@ -18310,7 +18351,6 @@ function AgentComposer({
18310
18351
  promptImagesSupported = true,
18311
18352
  composerFocusRequestSequence = null,
18312
18353
  layoutMode = "dock",
18313
- showProjectSelector = true,
18314
18354
  labels,
18315
18355
  workspaceUserProjectI18n,
18316
18356
  onDraftContentChange,
@@ -18328,6 +18368,7 @@ function AgentComposer({
18328
18368
  onCapabilitySettingsRequest,
18329
18369
  onLinkAction,
18330
18370
  onRequestWorkspaceReferences = null,
18371
+ selectProjectDirectory,
18331
18372
  onRequestGitBranches = null,
18332
18373
  contextMentionProviders = EMPTY_CONTEXT_MENTION_PROVIDERS
18333
18374
  }) {
@@ -19525,9 +19566,9 @@ function AgentComposer({
19525
19566
  const showEdgeGlow = layoutMode === "hero" && !inputDisabled;
19526
19567
  const showPromptTips = layoutMode === "hero" && promptTips.length > 0;
19527
19568
  const activePromptTip = showPromptTips ? promptTips[0] ?? null : null;
19528
- const showHeroProjectSelector = layoutMode === "hero" && showProjectSelector;
19529
- const showProjectRow = layoutMode === "hero" && (showHeroProjectSelector || activePromptTip);
19530
- const showProjectMissingProbe = !showProjectRow && showProjectSelector && Boolean(composerSettings.projectLocked) && selectedProjectPath !== "";
19569
+ const showHeroProjectSelector = layoutMode === "hero";
19570
+ const showProjectRow = layoutMode === "hero";
19571
+ const showProjectMissingProbe = !showProjectRow && Boolean(composerSettings.projectLocked) && selectedProjectPath !== "";
19531
19572
  const activePromptTipId = activePromptTip?.id ?? null;
19532
19573
  const activePromptTipText = activePromptTip ? `${labels.promptTipsPrefix}${activePromptTip.label} \xB7 ${activePromptTip.prompt}` : "";
19533
19574
  const rotatingPromptTips = activePromptTip && promptTips.length > 1 ? [...promptTips, activePromptTip] : activePromptTip ? [activePromptTip] : [];
@@ -20236,6 +20277,7 @@ function AgentComposer({
20236
20277
  projectLocked: labels.projectLocked,
20237
20278
  projectMissingDescription: labels.projectMissingDescription
20238
20279
  },
20280
+ selectProjectDirectory,
20239
20281
  onProjectMissingChange: setIsSelectedProjectMissing,
20240
20282
  onProjectPathChange
20241
20283
  }
@@ -20838,7 +20880,6 @@ function AgentGUINodeView({
20838
20880
  slashStatusLimits = [],
20839
20881
  slashStatusLimitsLoading = false,
20840
20882
  previewMode = false,
20841
- showProjectSelector = true,
20842
20883
  onAgentProviderLogin,
20843
20884
  actions,
20844
20885
  conversationRailCollapsed,
@@ -20853,6 +20894,7 @@ function AgentGUINodeView({
20853
20894
  workspaceUserProjectI18n,
20854
20895
  workspaceFileReferenceAdapter = null,
20855
20896
  onOpenConversationWindow,
20897
+ selectProjectDirectory,
20856
20898
  workspaceFileReferenceCopy = null,
20857
20899
  onRequestGitBranches = null,
20858
20900
  contextMentionProviders,
@@ -21184,7 +21226,6 @@ function AgentGUINodeView({
21184
21226
  labels,
21185
21227
  workspaceUserProjectI18n,
21186
21228
  uiLanguage,
21187
- showProjectSelector,
21188
21229
  previewMode,
21189
21230
  createConversationDisabled,
21190
21231
  openclawGateway,
@@ -21200,7 +21241,8 @@ function AgentGUINodeView({
21200
21241
  onCancelDeleteConversation: cancelDeleteConversation,
21201
21242
  onConfirmDeleteConversation: confirmDeleteConversation,
21202
21243
  onOpenProjectFiles: openProjectFiles,
21203
- onOpenConversationWindow: openConversationWindow
21244
+ onOpenConversationWindow: openConversationWindow,
21245
+ selectProjectDirectory
21204
21246
  }),
21205
21247
  [
21206
21248
  cancelDeleteConversation,
@@ -21219,7 +21261,7 @@ function AgentGUINodeView({
21219
21261
  requestDeleteConversation,
21220
21262
  retryOpenclawGateway,
21221
21263
  selectConversation,
21222
- showProjectSelector,
21264
+ selectProjectDirectory,
21223
21265
  toggleConversationPinned,
21224
21266
  uiLanguage,
21225
21267
  viewModel.activeConversationId,
@@ -21309,12 +21351,12 @@ function AgentGUINodeView({
21309
21351
  isAgentProviderReady,
21310
21352
  slashStatusLimits,
21311
21353
  slashStatusLimitsLoading,
21312
- showProjectSelector,
21313
21354
  onLinkAction,
21314
21355
  capabilityMenuState,
21315
21356
  onCapabilitySettingsRequest,
21316
21357
  onAgentProviderLogin,
21317
21358
  onRequestWorkspaceReferences: requestWorkspaceReferences,
21359
+ selectProjectDirectory,
21318
21360
  onRequestGitBranches,
21319
21361
  contextMentionProviders,
21320
21362
  workspaceAppIcons: effectiveWorkspaceAppIcons,
@@ -21425,12 +21467,12 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
21425
21467
  isAgentProviderReady,
21426
21468
  slashStatusLimits,
21427
21469
  slashStatusLimitsLoading,
21428
- showProjectSelector,
21429
21470
  onLinkAction,
21430
21471
  capabilityMenuState,
21431
21472
  onCapabilitySettingsRequest,
21432
21473
  onAgentProviderLogin,
21433
21474
  onRequestWorkspaceReferences,
21475
+ selectProjectDirectory,
21434
21476
  onRequestGitBranches,
21435
21477
  contextMentionProviders,
21436
21478
  workspaceAppIcons = EMPTY_WORKSPACE_APP_ICONS3
@@ -21869,6 +21911,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
21869
21911
  const stableRequestWorkspaceReferences = useOptionalStableEventCallback(
21870
21912
  onRequestWorkspaceReferences
21871
21913
  );
21914
+ const stableSelectProjectDirectory = useOptionalStableEventCallback(selectProjectDirectory);
21872
21915
  const stableRequestGitBranches = useOptionalStableEventCallback(onRequestGitBranches);
21873
21916
  const authLogin = useOptionalStableEventCallback(onAgentProviderLogin);
21874
21917
  const submitBottomDockInteractivePrompt = useCallback10(
@@ -21909,7 +21952,6 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
21909
21952
  composerFocusRequestSequence,
21910
21953
  isActive,
21911
21954
  promptImagesSupported: viewModel.promptImagesSupported,
21912
- showProjectSelector,
21913
21955
  isInterrupting: viewModel.isInterrupting,
21914
21956
  isSendingTurn: isComposerSending,
21915
21957
  isSubmittingPrompt: viewModel.isRespondingApproval,
@@ -21929,6 +21971,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
21929
21971
  onCapabilitySettingsRequest,
21930
21972
  onLinkAction: stableLinkAction,
21931
21973
  onRequestWorkspaceReferences: stableRequestWorkspaceReferences,
21974
+ selectProjectDirectory: stableSelectProjectDirectory,
21932
21975
  onRequestGitBranches: stableRequestGitBranches,
21933
21976
  contextMentionProviders
21934
21977
  }),
@@ -21953,7 +21996,6 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
21953
21996
  removeQueuedPrompt,
21954
21997
  sendQueuedPromptNext,
21955
21998
  showPromptImagesUnsupported,
21956
- showProjectSelector,
21957
21999
  showStopButton,
21958
22000
  slashStatus,
21959
22001
  submitDisabled,
@@ -21961,6 +22003,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
21961
22003
  submitPrompt,
21962
22004
  stableLinkAction,
21963
22005
  stableRequestGitBranches,
22006
+ stableSelectProjectDirectory,
21964
22007
  stableRequestWorkspaceReferences,
21965
22008
  updateComposerSettings,
21966
22009
  updateDraftContent,
@@ -22552,7 +22595,7 @@ function syncAgentGUIConversationRailStore(store, next) {
22552
22595
  Object.assign(store, next);
22553
22596
  }
22554
22597
  function agentGUIConversationRailStoreSnapshotsEqual(current, next) {
22555
- return current.activeConversationId === next.activeConversationId && current.pendingDeleteConversationId === next.pendingDeleteConversationId && current.isLoadingConversations === next.isLoadingConversations && current.isDeletingConversation === next.isDeletingConversation && current.isDeletingProjectConversations === next.isDeletingProjectConversations && current.labels === next.labels && current.workspaceUserProjectI18n === next.workspaceUserProjectI18n && current.uiLanguage === next.uiLanguage && current.showProjectSelector === next.showProjectSelector && current.previewMode === next.previewMode && current.createConversationDisabled === next.createConversationDisabled && current.openclawGateway === next.openclawGateway && current.isCollapsed === next.isCollapsed && current.onCreateConversation === next.onCreateConversation && current.onOpenAgentEnvSetup === next.onOpenAgentEnvSetup && current.onRetryOpenclawGateway === next.onRetryOpenclawGateway && current.onSelectConversation === next.onSelectConversation && current.onToggleConversationPinned === next.onToggleConversationPinned && current.onOpenProjectFiles === next.onOpenProjectFiles && current.onOpenConversationWindow === next.onOpenConversationWindow && current.onRemoveProject === next.onRemoveProject && current.onConfirmDeleteProjectConversations === next.onConfirmDeleteProjectConversations && current.onRequestDeleteConversation === next.onRequestDeleteConversation && current.onCancelDeleteConversation === next.onCancelDeleteConversation && current.onConfirmDeleteConversation === next.onConfirmDeleteConversation;
22598
+ return current.activeConversationId === next.activeConversationId && current.pendingDeleteConversationId === next.pendingDeleteConversationId && current.isLoadingConversations === next.isLoadingConversations && current.isDeletingConversation === next.isDeletingConversation && current.isDeletingProjectConversations === next.isDeletingProjectConversations && current.labels === next.labels && current.workspaceUserProjectI18n === next.workspaceUserProjectI18n && current.uiLanguage === next.uiLanguage && current.previewMode === next.previewMode && current.createConversationDisabled === next.createConversationDisabled && current.openclawGateway === next.openclawGateway && current.isCollapsed === next.isCollapsed && current.onCreateConversation === next.onCreateConversation && current.onOpenAgentEnvSetup === next.onOpenAgentEnvSetup && current.onRetryOpenclawGateway === next.onRetryOpenclawGateway && current.onSelectConversation === next.onSelectConversation && current.onToggleConversationPinned === next.onToggleConversationPinned && current.onOpenProjectFiles === next.onOpenProjectFiles && current.onOpenConversationWindow === next.onOpenConversationWindow && current.selectProjectDirectory === next.selectProjectDirectory && current.onRemoveProject === next.onRemoveProject && current.onConfirmDeleteProjectConversations === next.onConfirmDeleteProjectConversations && current.onRequestDeleteConversation === next.onRequestDeleteConversation && current.onCancelDeleteConversation === next.onCancelDeleteConversation && current.onConfirmDeleteConversation === next.onConfirmDeleteConversation;
22556
22599
  }
22557
22600
  var AgentGUIConversationRailStorePane = memo(
22558
22601
  function AgentGUIConversationRailStorePane2({
@@ -22661,7 +22704,6 @@ var AgentGUIConversationRailPane = memo(
22661
22704
  labels,
22662
22705
  workspaceUserProjectI18n,
22663
22706
  uiLanguage,
22664
- showProjectSelector,
22665
22707
  previewMode,
22666
22708
  createConversationDisabled,
22667
22709
  openclawGateway,
@@ -22673,6 +22715,7 @@ var AgentGUIConversationRailPane = memo(
22673
22715
  onToggleConversationPinned,
22674
22716
  onOpenProjectFiles,
22675
22717
  onOpenConversationWindow,
22718
+ selectProjectDirectory,
22676
22719
  onRemoveProject,
22677
22720
  onConfirmDeleteProjectConversations,
22678
22721
  onRequestDeleteConversation,
@@ -22848,7 +22891,7 @@ var AgentGUIConversationRailPane = memo(
22848
22891
  const normalizedProjectPath = normalizeConversationRailProjectPath(projectPath);
22849
22892
  const projectLabel = section.kind === "project" ? section.label : "";
22850
22893
  const isProjectSection = section.kind === "project";
22851
- const showProjectRailHeader = showProjectSelector && !conversationQuery.trim() && section.kind !== "pinned" && (sectionIndex === 0 || groupedConversations[sectionIndex - 1]?.kind === "pinned");
22894
+ const showProjectRailHeader = !conversationQuery.trim() && section.kind !== "pinned" && (sectionIndex === 0 || groupedConversations[sectionIndex - 1]?.kind === "pinned");
22852
22895
  const isSectionCollapsed = isProjectSection && collapsedProjectSectionIds.has(section.id);
22853
22896
  const projectConversationCount = normalizedProjectPath ? projectConversationCountsByPath.get(normalizedProjectPath) ?? 0 : 0;
22854
22897
  return /* @__PURE__ */ jsxs15(Fragment7, { children: [
@@ -22856,6 +22899,7 @@ var AgentGUIConversationRailPane = memo(
22856
22899
  AgentGUIProjectRailHeader,
22857
22900
  {
22858
22901
  labels,
22902
+ selectProjectDirectory,
22859
22903
  workspaceUserProjectI18n
22860
22904
  }
22861
22905
  ) : null,
@@ -23388,6 +23432,7 @@ var AgentGUIConversationRailItem = memo(
23388
23432
  );
23389
23433
  function AgentGUIProjectRailHeader({
23390
23434
  labels,
23435
+ selectProjectDirectory,
23391
23436
  workspaceUserProjectI18n
23392
23437
  }) {
23393
23438
  "use memo";
@@ -23395,9 +23440,13 @@ function AgentGUIProjectRailHeader({
23395
23440
  const userProjectApi = useMemo10(
23396
23441
  () => agentHostApi.userProjects ? {
23397
23442
  ...agentHostApi.userProjects,
23398
- selectDirectory: agentHostApi.workspace.selectDirectory
23443
+ selectDirectory: selectProjectDirectory ?? agentHostApi.workspace.selectDirectory
23399
23444
  } : null,
23400
- [agentHostApi.userProjects, agentHostApi.workspace.selectDirectory]
23445
+ [
23446
+ agentHostApi.userProjects,
23447
+ agentHostApi.workspace.selectDirectory,
23448
+ selectProjectDirectory
23449
+ ]
23401
23450
  );
23402
23451
  return /* @__PURE__ */ jsxs15("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
23403
23452
  /* @__PURE__ */ jsx29("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx29("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
@@ -24193,11 +24242,11 @@ function composerOverridesByProviderEqual(left, right) {
24193
24242
  return true;
24194
24243
  }
24195
24244
  function areAgentGUINodePropsEqual(previous, next) {
24196
- return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && workspaceAgentProbeRenderStateEqualsForProvider(
24245
+ return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && workspaceAgentProbeRenderStateEqualsForProvider(
24197
24246
  previous.workspaceAgentProbes,
24198
24247
  next.workspaceAgentProbes,
24199
24248
  previous.state.provider
24200
- ) && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.showProjectSelector === next.showProjectSelector && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
24249
+ ) && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
24201
24250
  }
24202
24251
  var AgentGUINode = memo2(function AgentGUINode2({
24203
24252
  nodeId,
@@ -24206,6 +24255,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
24206
24255
  workspacePath,
24207
24256
  workspaceFileReferenceAdapter = null,
24208
24257
  onRequestGitBranches = null,
24258
+ selectProjectDirectory,
24209
24259
  referenceSourceAggregator = null,
24210
24260
  resolveMentionReferenceTarget = null,
24211
24261
  resolveWorkspaceReferenceInitialTarget = null,
@@ -24231,7 +24281,6 @@ var AgentGUINode = memo2(function AgentGUINode2({
24231
24281
  newConversationRequestSequence = null,
24232
24282
  openSessionRequest = null,
24233
24283
  prefillPromptRequest = null,
24234
- showProjectSelector = true,
24235
24284
  isMuted = false,
24236
24285
  onMinimize,
24237
24286
  onToggleMaximize,
@@ -24953,7 +25002,6 @@ var AgentGUINode = memo2(function AgentGUINode2({
24953
25002
  slashStatusLimits,
24954
25003
  slashStatusLimitsLoading: workspaceAgentProbes?.isLoadingUsage ?? false,
24955
25004
  previewMode,
24956
- showProjectSelector,
24957
25005
  onLinkAction: handleLinkAction,
24958
25006
  capabilityMenuState,
24959
25007
  onCapabilitySettingsRequest,
@@ -24976,6 +25024,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
24976
25024
  workspaceFileReferenceAdapter,
24977
25025
  onOpenConversationWindow,
24978
25026
  onRequestGitBranches,
25027
+ selectProjectDirectory,
24979
25028
  referenceSourceAggregator,
24980
25029
  resolveMentionReferenceTarget,
24981
25030
  resolveWorkspaceReferenceInitialTarget,